Вообщем по просьбе Project-X чуть переделал клановый бонус.
Выкладываю сюда, может кому будет нужен.
Что изменил и добавил:?
- Сделал запись в отдельную таблицу игроков которые уже получили бонус ( лидера и сокланов) по HWID
- Сделал, что бы можно получить было только один бонус из 3х. Раньше можно было получить 1. 2 . 3 по очереди ( если условия соблюдены)
- Сделал награду лидеру отдельно итемов.
- Возможность выдавать Хиро лидеру и или игрокам
- Возможность выдавать ПА лидеру и или игрокам
- Вообщем смотрите конфиг.
-Вариации работает 3
Конфиг создать в папке с конфигами. название ai2 (можете в классе конфига изменить на свое)
Выкладываю сюда, может кому будет нужен.
Что изменил и добавил:?
- Сделал запись в отдельную таблицу игроков которые уже получили бонус ( лидера и сокланов) по HWID
- Сделал, что бы можно получить было только один бонус из 3х. Раньше можно было получить 1. 2 . 3 по очереди ( если условия соблюдены)
- Сделал награду лидеру отдельно итемов.
- Возможность выдавать Хиро лидеру и или игрокам
- Возможность выдавать ПА лидеру и или игрокам
- Вообщем смотрите конфиг.
-Вариации работает 3
Конфиг создать в папке с конфигами. название ai2 (можете в классе конфига изменить на свое)
# Сервис по выдаче бонусов кланам, проверка игроков происходит если они онлайн и у них не совпадает HWID
# Команда в чат .clanbonus .clanhelp или вызывать у Service NPC
ClanHelperEnableCustom = True
# Параметры награды за каждый из menuId.
# Формат строки: <menuId>=<player amount>:<clan_level>,[<item_id1>-<item_count1>,<item_id2>-<item_count2>]
# id клановой репутации -200
ClanHelperRewardParametersCustom = 1=1:8,[-200-3000];2=1:7,[-200-5000];3=1:8,[-200-10000]
ClanHelperAddFullSkillsCustom = true
#Ид Па бонуса
idPaBonusClan = 1
#Давать лидеру ПА? если всем отключено
ClanHelperAddPaBonusLeader = true
#Давать лидеру хиро? если всем отключено
ClanHelperAddHeroBonusLeader = true
#Давать лидеру отдельно бонус итемы?
ClanHelperAddLeaderReward = true
#Время на которое даем ПА всем в секундах!
TimeBonusSecondClan = 86400
#Время на которое даем ХИро ЛИДЕРУ в милисекундах!
durationHeroBonusClanLeader = 86400000
#Вариации бонуса
#MenuID - 1
#Давать всем членам клана ПА
ClanHelperAddPaBonusAll = true
#Давать всем членам клана Хиро
ClanHelperAddHeroBonusAll = false
#Итемы которые даем лидеру
ClanHelperAddLeaderRewardItems = 9509,500;9508,100
#Время на которое даем Хиро
durationHeroBonusClan = 86400000
#MenuID - 2
#Давать всем членам клана ПА
ClanHelperAddPaBonusAll2 = true
#Давать всем членам клана Хиро
ClanHelperAddHeroBonusAll2 = true
#Итемы которые даем лидеру
ClanHelperAddLeaderRewardItems2 = 9509,1000;9508,200
#Время на которое даем Хиро
durationHeroBonusClan2 = 86400000
#MenuID - 3
#Давать всем членам клана ПА
ClanHelperAddPaBonusAll3 = true
#Давать всем членам клана Хиро
ClanHelperAddHeroBonusAll3 = true
#Итемы которые даем лидеру
ClanHelperAddLeaderRewardItems3 = 9509,2000;9508,300
#Время на которое даем Хиро
durationHeroBonusClan3 = 86400000
# Команда в чат .clanbonus .clanhelp или вызывать у Service NPC
ClanHelperEnableCustom = True
# Параметры награды за каждый из menuId.
# Формат строки: <menuId>=<player amount>:<clan_level>,[<item_id1>-<item_count1>,<item_id2>-<item_count2>]
# id клановой репутации -200
ClanHelperRewardParametersCustom = 1=1:8,[-200-3000];2=1:7,[-200-5000];3=1:8,[-200-10000]
ClanHelperAddFullSkillsCustom = true
#Ид Па бонуса
idPaBonusClan = 1
#Давать лидеру ПА? если всем отключено
ClanHelperAddPaBonusLeader = true
#Давать лидеру хиро? если всем отключено
ClanHelperAddHeroBonusLeader = true
#Давать лидеру отдельно бонус итемы?
ClanHelperAddLeaderReward = true
#Время на которое даем ПА всем в секундах!
TimeBonusSecondClan = 86400
#Время на которое даем ХИро ЛИДЕРУ в милисекундах!
durationHeroBonusClanLeader = 86400000
#Вариации бонуса
#MenuID - 1
#Давать всем членам клана ПА
ClanHelperAddPaBonusAll = true
#Давать всем членам клана Хиро
ClanHelperAddHeroBonusAll = false
#Итемы которые даем лидеру
ClanHelperAddLeaderRewardItems = 9509,500;9508,100
#Время на которое даем Хиро
durationHeroBonusClan = 86400000
#MenuID - 2
#Давать всем членам клана ПА
ClanHelperAddPaBonusAll2 = true
#Давать всем членам клана Хиро
ClanHelperAddHeroBonusAll2 = true
#Итемы которые даем лидеру
ClanHelperAddLeaderRewardItems2 = 9509,1000;9508,200
#Время на которое даем Хиро
durationHeroBonusClan2 = 86400000
#MenuID - 3
#Давать всем членам клана ПА
ClanHelperAddPaBonusAll3 = true
#Давать всем членам клана Хиро
ClanHelperAddHeroBonusAll3 = true
#Итемы которые даем лидеру
ClanHelperAddLeaderRewardItems3 = 9509,2000;9508,300
#Время на которое даем Хиро
durationHeroBonusClan3 = 86400000
Java:
package ai;
import l2.commons.configuration.ExProperties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static l2.commons.threading.RunnableImpl._log;
import static l2.gameserver.Config.load;
public class configAi {
private static final Logger log = LoggerFactory.getLogger(configAi.class);
public static final String CONFINGAI = "config/ai2.properties";
public static boolean SERVICES_CLANHELPER_ENABLED_CUSTOM;
public static String SERVICES_CLANHELPER_CONFIG_CUSTOM;
public static boolean SERVICES_CLANHELPER_ADD_FULL_CLAN_SKILLS_CUSTOM;
public static boolean SERVICES_CLANHELPER_ENABLED_PABONUS_ALL;
public static boolean SERVICES_CLANHELPER_ENABLED_HEROBONUS_ALL;
public static boolean SERVICES_CLANHELPER_ENABLED_PABONUS_ALL2;
public static boolean SERVICES_CLANHELPER_ENABLED_HEROBONUS_ALL2;
public static boolean SERVICES_CLANHELPER_ENABLED_PABONUS_ALL3;
public static boolean SERVICES_CLANHELPER_ENABLED_HEROBONUS_ALL3;
public static boolean SERVICES_CLANHELPER_ENABLED_PABONUS_LEADER;
public static boolean SERVICES_CLANHELPER_ENABLED_HEROBONUS_LEADER;
public static boolean CLAN_LEADER_REWARD;
public static String CLAN_LEADER_REWARD_ITEMS;
public static String CLAN_LEADER_REWARD_ITEMS2;
public static String CLAN_LEADER_REWARD_ITEMS3;
public static int ID_PA_BONUS;
public static int ID_HERO_DURATION;
public static int ID_HERO_DURATION_LEADER;
public static int ID_HERO_DURATION2;
public static int ID_HERO_DURATION3;
public static long TIME_BONUS_MAKE2;
public static void loadAISettings() {
ExProperties var0 = load("config/ai2.properties");
SERVICES_CLANHELPER_CONFIG_CUSTOM = var0.getProperty("ClanHelperRewardParametersCustom", "1=1:2;2=2:3,[-200-10000,57-100500];3=2:4,[-200-20000]");
SERVICES_CLANHELPER_ENABLED_CUSTOM = var0.getProperty("ClanHelperEnableCustom", true);
SERVICES_CLANHELPER_ADD_FULL_CLAN_SKILLS_CUSTOM = var0.getProperty("ClanHelperAddFullSkillsCustom", true);
SERVICES_CLANHELPER_ENABLED_PABONUS_ALL = var0.getProperty("ClanHelperAddPaBonusAll", true);
SERVICES_CLANHELPER_ENABLED_HEROBONUS_ALL = var0.getProperty("ClanHelperAddHeroBonusAll", true);
SERVICES_CLANHELPER_ENABLED_PABONUS_ALL2 = var0.getProperty("ClanHelperAddPaBonusAll2", true);
SERVICES_CLANHELPER_ENABLED_HEROBONUS_ALL2 = var0.getProperty("ClanHelperAddHeroBonusAll2", true);
SERVICES_CLANHELPER_ENABLED_PABONUS_ALL3 = var0.getProperty("ClanHelperAddPaBonusAll3", true);
SERVICES_CLANHELPER_ENABLED_HEROBONUS_ALL3 = var0.getProperty("ClanHelperAddHeroBonusAll3", true);
SERVICES_CLANHELPER_ENABLED_PABONUS_LEADER = var0.getProperty("ClanHelperAddPaBonusLeader", true);
SERVICES_CLANHELPER_ENABLED_HEROBONUS_LEADER = var0.getProperty("ClanHelperAddHeroBonusLeader", true);
CLAN_LEADER_REWARD = var0.getProperty("ClanHelperAddLeaderReward", true);
TIME_BONUS_MAKE2 = var0.getProperty("TimeBonusSecondClan", 1L);
CLAN_LEADER_REWARD_ITEMS = var0.getProperty("ClanHelperAddLeaderRewardItems", "57,1;57,2");
CLAN_LEADER_REWARD_ITEMS2 = var0.getProperty("ClanHelperAddLeaderRewardItems2", "57,1;57,2");
CLAN_LEADER_REWARD_ITEMS3 = var0.getProperty("ClanHelperAddLeaderRewardItems3", "57,1;57,2");
ID_PA_BONUS = var0.getProperty("idPaBonusClan", 0);
ID_HERO_DURATION = var0.getProperty("durationHeroBonusClan", 0);
ID_HERO_DURATION2 = var0.getProperty("durationHeroBonusClan2", 0);
ID_HERO_DURATION3 = var0.getProperty("durationHeroBonusClan3", 0);
ID_HERO_DURATION_LEADER = var0.getProperty("durationHeroBonusClanLeader", 0);
log.info("Download okei ebat ai2.properties");
}
public void onReload() {
}
public void onShutdown() {
}
}
Java:
package services;
import l2.gameserver.Announcements;
import l2.gameserver.Config;
import l2.gameserver.dao.AccountBonusDAO;
import l2.gameserver.model.Player;
import static ai.configAi.TIME_BONUS_MAKE2;
public class addHeroAndPa {
public static void addPaCustom(Player player, int Id) {
Config.RateBonusInfo bonusInfo = null;
for (Config.RateBonusInfo info : Config.SERVICES_RATE_BONUS_INFO) {
if (info.id == Id) {
bonusInfo = info;
bonusInfo.bonusTimeSeconds = TIME_BONUS_MAKE2;
break;
}
}
AccountBonusDAO.getInstance().store(player.getAccountName(), bonusInfo.makeBonus());
player.stopBonusTask();
player.startBonusTask();
player.sendMessage("Поздравляю с получением премиума! Перезайдите(.relog)");
}
public static void addHeroCustom(Player killer, int duration) {
if (killer.isPlayer()) {
Player player = (Player) killer;
if (!player.isHero()) {
makeCustomHero(player, duration / 1000L);
Announcements.getInstance().announceToAll("Поздравляем с получением статуса Героя, игрока - " + player.getName());
}
}
}
private static void makeCustomHero(Player player, long duration) {
if (player.isHero()) {
return;
}
player.setCustomHero(true, duration, Config.ALT_ALLOW_CUSTOM_HERO_SKILLS);
player.broadcastUserInfo(true);
}
}