diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SkillTransferValidator.java b/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SkillTransferValidator.java index 74934eb880c4ac38331930eb426b8942ec3addbb..e87536c4f361a0b6333fe2392cf75cf4a4026019 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SkillTransferValidator.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/custom/Validators/SkillTransferValidator.java @@ -18,24 +18,20 @@ import com.l2jserver.Config; import com.l2jserver.gameserver.datatables.ClassListData; import com.l2jserver.gameserver.datatables.SkillTreesData; import com.l2jserver.gameserver.model.L2SkillLearn; +import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.holders.ItemHolder; -import com.l2jserver.gameserver.model.quest.Quest; import com.l2jserver.gameserver.model.quest.QuestState; import com.l2jserver.gameserver.model.skills.L2Skill; +import com.l2jserver.gameserver.scripting.scriptengine.events.ProfessionChangeEvent; +import com.l2jserver.gameserver.scripting.scriptengine.impl.L2Script; import com.l2jserver.gameserver.util.Util; /** * @author Zoey76 */ -public final class SkillTransferValidator extends Quest +public final class SkillTransferValidator extends L2Script { - public SkillTransferValidator(int id, String name, String descr) - { - super(id, name, descr); - setOnEnterWorld(true); - } - private static final String qn = "SkillTransfer"; private static final ItemHolder[] PORMANDERS = @@ -48,58 +44,84 @@ public final class SkillTransferValidator extends Quest new ItemHolder(15309, 4) }; + public SkillTransferValidator(int id, String name, String descr) + { + super(id, name, descr); + setOnEnterWorld(true); + } + + @Override + public void init() + { + + } + @Override public String onEnterWorld(L2PcInstance player) { - givePormanders(player); + if (getTransferClassIndex(player) > 0) + { + addProfessionChangeNotify(player); + startQuestTimer("givePormanders", 2000, null, player); + } return null; } - private void givePormanders(L2PcInstance player) + @Override + public void onProfessionChange(ProfessionChangeEvent event) { - final int index = getTransferClassIndex(player); - - if (index >= 0) + startQuestTimer("givePormanders", 2000, null, event.getPlayer()); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + if (event.equals("givePormanders")) { - QuestState st = player.getQuestState(qn); - if (st == null) - { - st = newQuestState(player); - } - - final String name = qn + String.valueOf(player.getClassId().getId()); - if (st.getInt(name) == 0) + final int index = getTransferClassIndex(player); + if (index >= 0) { - st.setInternal(name, "1"); - if (st.getGlobalQuestVar(name).isEmpty()) + QuestState st = player.getQuestState(qn); + if (st == null) { - st.saveGlobalQuestVar(name, "1"); - player.addItem(qn, PORMANDERS[index].getId(), PORMANDERS[index].getCount(), null, true); + st = newQuestState(player); } - } - - if (Config.SKILL_CHECK_ENABLE && (!player.isGM() || Config.SKILL_CHECK_GM)) - { - long count = PORMANDERS[index].getCount() - player.getInventory().getInventoryItemCount(PORMANDERS[index].getId(), -1, false); - for (L2Skill sk : player.getAllSkills()) + + final String name = qn + String.valueOf(player.getClassId().getId()); + if (st.getInt(name) == 0) { - for (L2SkillLearn s : SkillTreesData.getInstance().getTransferSkillTree(player.getClassId()).values()) + st.setInternal(name, "1"); + if (st.getGlobalQuestVar(name).isEmpty()) { - if (s.getSkillId() == sk.getId()) + st.saveGlobalQuestVar(name, "1"); + player.addItem(qn, PORMANDERS[index].getId(), PORMANDERS[index].getCount(), null, true); + } + } + + if (Config.SKILL_CHECK_ENABLE && (!player.isGM() || Config.SKILL_CHECK_GM)) + { + long count = PORMANDERS[index].getCount() - player.getInventory().getInventoryItemCount(PORMANDERS[index].getId(), -1, false); + for (L2Skill sk : player.getAllSkills()) + { + for (L2SkillLearn s : SkillTreesData.getInstance().getTransferSkillTree(player.getClassId()).values()) { - // Holy Weapon allowed for Shilien Saint/Inquisitor stance - if ((sk.getId() == 1043) && (index == 2) && player.isInStance()) + if (s.getSkillId() == sk.getId()) { - continue; - } - - count--; - if (count < 0) - { - Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " has too many transfered skills or items, skill:" + s.getName() + " ("+sk.getId() + "/" + sk.getLevel() + "), class:" + ClassListData.getInstance().getClass(player.getClassId()).getClassName(), 1); - if (Config.SKILL_CHECK_REMOVE) + // Holy Weapon allowed for Shilien Saint/Inquisitor stance + if ((sk.getId() == 1043) && (index == 2) && player.isInStance()) + { + continue; + } + + count--; + if (count < 0) { - player.removeSkill(sk); + final String className = ClassListData.getInstance().getClass(player.getClassId()).getClassName(); + Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " has too many transfered skills or items, skill:" + s.getName() + " (" + sk.getId() + "/" + sk.getLevel() + "), class:" + className, 1); + if (Config.SKILL_CHECK_REMOVE) + { + player.removeSkill(sk); + } } } } @@ -107,6 +129,7 @@ public final class SkillTransferValidator extends Quest } } } + return null; } private int getTransferClassIndex(L2PcInstance player) diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagasSuperClass.java b/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagasSuperClass.java index e84713c7edb40741f55b176ab7b56923536678cc..e5f3840e7ef2552133dfa0e0017bbd17fe111cb6 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagasSuperClass.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/quests/SagasScripts/SagasSuperClass.java @@ -379,12 +379,6 @@ public class SagasSuperClass extends QuestJython } player.broadcastUserInfo(); Cast(npc, player, 4339, 1); - - Quest q = QuestManager.getInstance().getQuest("SkillTransfer"); - if (q != null) - { - q.startQuestTimer("givePormanders", 1, npc, player); - } } else { @@ -895,12 +889,6 @@ public class SagasSuperClass extends QuestJython } player.broadcastUserInfo(); Cast(npc, player, 4339, 1); - - Quest q = QuestManager.getInstance().getQuest("SkillTransfer"); - if (q != null) - { - q.startQuestTimer("givePormanders", 1, npc, player); - } } } else