diff --git a/dist/game/data/scripts/custom/Validators/SubClassSkills.java b/dist/game/data/scripts/custom/Validators/SubClassSkills.java index 7a9411ac0ec8e6769fd509c6d4658cdfe62650ee..b2d5b9c446bb25a687ab11c073bc31782edc6d00 100644 --- a/dist/game/data/scripts/custom/Validators/SubClassSkills.java +++ b/dist/game/data/scripts/custom/Validators/SubClassSkills.java @@ -139,7 +139,7 @@ public final class SubClassSkills extends Quest cItems[i][1] = (int) Math.min(item.getCount(), Integer.MAX_VALUE); } - QuestState st = player.getQuestState("SubClassSkills"); + QuestState st = getQuestState(player, false); if (st == null) { st = newQuestState(player); diff --git a/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java index 73da3328ee275b5fc06167605771d43adbf67eaf..20e6a5705de918dbf58decf6d8ec776774f12b69 100644 --- a/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java +++ b/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java @@ -288,10 +288,7 @@ public final class DarkCloudMansion extends AbstractInstance { for (L2PcInstance partyMember : party.getMembers()) { - if (partyMember.getQuestState(getName()) == null) - { - newQuestState(partyMember); - } + getQuestState(partyMember, true); world.addAllowed(partyMember.getObjectId()); teleportPlayer(partyMember, new Location(146534, 180464, -6117), world.getInstanceId()); } diff --git a/dist/game/data/scripts/quests/Q00114_ResurrectionOfAnOldManager/Q00114_ResurrectionOfAnOldManager.java b/dist/game/data/scripts/quests/Q00114_ResurrectionOfAnOldManager/Q00114_ResurrectionOfAnOldManager.java index 38289f784b31996e8c146d8577637e01a24cfc5b..0e2f0a6e27eb54c20009aa314bfdc18afcf738d6 100644 --- a/dist/game/data/scripts/quests/Q00114_ResurrectionOfAnOldManager/Q00114_ResurrectionOfAnOldManager.java +++ b/dist/game/data/scripts/quests/Q00114_ResurrectionOfAnOldManager/Q00114_ResurrectionOfAnOldManager.java @@ -18,8 +18,6 @@ */ package quests.Q00114_ResurrectionOfAnOldManager; -import quests.Q00121_PavelTheGiant.Q00121_PavelTheGiant; - import com.l2jserver.gameserver.ai.CtrlIntention; import com.l2jserver.gameserver.model.actor.L2Attackable; import com.l2jserver.gameserver.model.actor.L2Character; @@ -33,6 +31,8 @@ import com.l2jserver.gameserver.network.NpcStringId; import com.l2jserver.gameserver.network.clientpackets.Say2; import com.l2jserver.gameserver.network.serverpackets.NpcSay; +import quests.Q00121_PavelTheGiant.Q00121_PavelTheGiant; + /** * Resurrection of an Old Manager (114)<br> * Original Jython script by Kerberos @@ -80,7 +80,7 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest String htmltext = event; switch (event) { - // Yumi + // Yumi case "32041-04.htm": st.startQuest(); break; @@ -342,7 +342,7 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest { if (creature.isPlayer()) { - final QuestState st = creature.getActingPlayer().getQuestState(getName()); + final QuestState st = getQuestState(creature.getActingPlayer(), false); if ((st != null) && st.isCond(17)) { st.takeItems(DETCTOR, 1); diff --git a/dist/game/data/scripts/quests/Q00142_FallenAngelRequestOfDawn/Q00142_FallenAngelRequestOfDawn.java b/dist/game/data/scripts/quests/Q00142_FallenAngelRequestOfDawn/Q00142_FallenAngelRequestOfDawn.java index a5614f7bea5af132149f2fae8102c46badc4c5b5..59ef15dc754d699fcfd6d14cc130acb3dd54e2a8 100644 --- a/dist/game/data/scripts/quests/Q00142_FallenAngelRequestOfDawn/Q00142_FallenAngelRequestOfDawn.java +++ b/dist/game/data/scripts/quests/Q00142_FallenAngelRequestOfDawn/Q00142_FallenAngelRequestOfDawn.java @@ -42,6 +42,7 @@ public class Q00142_FallenAngelRequestOfDawn extends Quest // Monsters private static final int FALLEN_ANGEL = 27338; private static final Map<Integer, Integer> MOBS = new HashMap<>(); + static { MOBS.put(20079, 338); // Ant @@ -55,6 +56,7 @@ public class Q00142_FallenAngelRequestOfDawn extends Quest MOBS.put(20089, 431); // Noble Ant MOBS.put(20090, 917); // Noble Ant Leader } + // Items private static final int CRYPTOGRAM_OF_THE_ANGEL_SEARCH = 10351; private static final int PROPHECY_FRAGMENT = 10352; @@ -138,7 +140,7 @@ public class Q00142_FallenAngelRequestOfDawn extends Quest final QuestState st; if ((npc.getId() == FALLEN_ANGEL)) { - st = player.getQuestState(getName()); + st = getQuestState(player, false); if (st.isCond(5)) { st.giveItems(FALLEN_ANGEL_BLOOD, 1); diff --git a/dist/game/data/scripts/quests/Q00179_IntoTheLargeCavern/Q00179_IntoTheLargeCavern.java b/dist/game/data/scripts/quests/Q00179_IntoTheLargeCavern/Q00179_IntoTheLargeCavern.java index 982e8030bce792a4e3323b501bd266f180488484..988baa4f3d09bfc2c77cb113baa6cfda1605a2ee 100644 --- a/dist/game/data/scripts/quests/Q00179_IntoTheLargeCavern/Q00179_IntoTheLargeCavern.java +++ b/dist/game/data/scripts/quests/Q00179_IntoTheLargeCavern/Q00179_IntoTheLargeCavern.java @@ -25,6 +25,8 @@ import com.l2jserver.gameserver.model.quest.Quest; import com.l2jserver.gameserver.model.quest.QuestState; import com.l2jserver.gameserver.model.quest.State; +import quests.Q00178_IconicTrinity.Q00178_IconicTrinity; + /** * Into the Large Cavern (179) * @author Gnacik @@ -35,6 +37,9 @@ public class Q00179_IntoTheLargeCavern extends Quest // NPCs private static final int KEKROPUS = 32138; private static final int MENACING_MACHINE = 32258; + // Misc + private static final int MIN_LEVEL = 17; + private static final int MAX_LEVEL = 21; public Q00179_IntoTheLargeCavern() { @@ -100,13 +105,13 @@ public class Q00179_IntoTheLargeCavern extends Quest } else { - final QuestState prev = player.getQuestState("178_IconicTrinity"); + final QuestState prev = player.getQuestState(Q00178_IconicTrinity.class.getSimpleName()); final int level = player.getLevel(); - if ((prev != null) && prev.isCompleted() && (level >= 17) && (level <= 21) && (player.getClassId().level() == 0)) + if ((prev != null) && prev.isCompleted() && (level >= MIN_LEVEL) && (level <= MAX_LEVEL) && (player.getClassId().level() == 0)) { htmltext = "32138-01.htm"; } - else if (level < 17) + else if (level < MIN_LEVEL) { htmltext = "32138-00.html"; } diff --git a/dist/game/data/scripts/quests/Q00234_FatesWhisper/Q00234_FatesWhisper.java b/dist/game/data/scripts/quests/Q00234_FatesWhisper/Q00234_FatesWhisper.java index 3af2fc284109acf8d50b81f78f2b376a5da8385b..5e89c6886806c4325265751fbf31288e627db9e0 100644 --- a/dist/game/data/scripts/quests/Q00234_FatesWhisper/Q00234_FatesWhisper.java +++ b/dist/game/data/scripts/quests/Q00234_FatesWhisper/Q00234_FatesWhisper.java @@ -1121,7 +1121,7 @@ public final class Q00234_FatesWhisper extends Quest @Override public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon) { - QuestState qs = attacker.getQuestState(getName()); + QuestState qs = getQuestState(attacker, false); if ((qs != null) && (npc.getId() == BAIUM)) { if ((attacker.getActiveWeaponItem() != null) && (attacker.getActiveWeaponItem().getId() == Q_PIPETTE_KNIFE)) @@ -1137,7 +1137,7 @@ public final class Q00234_FatesWhisper extends Quest private QuestState getRandomPlayerFromParty(L2PcInstance player, L2Npc npc, int memoState) { - QuestState qs = player.getQuestState(getName()); + QuestState qs = getQuestState(player, false); final List<QuestState> candidates = new ArrayList<>(); if ((qs != null) && qs.isStarted() && (qs.getMemoState() == memoState) && !qs.hasQuestItems(Q_WHITE_FABRIC_Q0234)) @@ -1151,7 +1151,7 @@ public final class Q00234_FatesWhisper extends Quest player.getParty().getMembers().stream().forEach(pm -> { - QuestState qss = pm.getQuestState(getName()); + QuestState qss = getQuestState(pm, false); if ((qss != null) && qss.isStarted() && (qss.getMemoState() == memoState) && !qss.hasQuestItems(Q_WHITE_FABRIC_Q0234) && Util.checkIfInRange(1500, npc, pm, true)) { candidates.add(qss); diff --git a/dist/game/data/scripts/quests/Q00246_PossessorOfAPreciousSoul3/Q00246_PossessorOfAPreciousSoul3.java b/dist/game/data/scripts/quests/Q00246_PossessorOfAPreciousSoul3/Q00246_PossessorOfAPreciousSoul3.java index 319d969a08274f3b276e451cd7d0c7a8d5fa58fe..8b6c07970185bcac38da6a549a89f29550f7ef64 100644 --- a/dist/game/data/scripts/quests/Q00246_PossessorOfAPreciousSoul3/Q00246_PossessorOfAPreciousSoul3.java +++ b/dist/game/data/scripts/quests/Q00246_PossessorOfAPreciousSoul3/Q00246_PossessorOfAPreciousSoul3.java @@ -18,8 +18,6 @@ */ package quests.Q00246_PossessorOfAPreciousSoul3; -import quests.Q00242_PossessorOfAPreciousSoul2.Q00242_PossessorOfAPreciousSoul2; - import com.l2jserver.gameserver.enums.QuestSound; import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; @@ -28,6 +26,8 @@ import com.l2jserver.gameserver.model.quest.QuestState; import com.l2jserver.gameserver.model.quest.State; import com.l2jserver.gameserver.util.Util; +import quests.Q00242_PossessorOfAPreciousSoul2.Q00242_PossessorOfAPreciousSoul2; + /** * Possessor Of A PreciousSoul part 3 (246)<br> * Original Jython script by disKret. @@ -212,7 +212,7 @@ public class Q00246_PossessorOfAPreciousSoul3 extends Quest } else { - pst = player.getQuestState(getName()); + pst = getQuestState(player, false); if (pst != null) { if (pst.isCond(4) && !pst.hasQuestItems(RAIN_SONG)) @@ -224,7 +224,7 @@ public class Q00246_PossessorOfAPreciousSoul3 extends Quest } break; default: - st = player.getQuestState(getName()); + st = getQuestState(player, false); if ((st == null)) { return super.onKill(npc, player, isSummon); diff --git a/dist/game/data/scripts/quests/Q00289_NoMoreSoupForYou/Q00289_NoMoreSoupForYou.java b/dist/game/data/scripts/quests/Q00289_NoMoreSoupForYou/Q00289_NoMoreSoupForYou.java index 30b824c99da1eebea03d51a783dffb973d9d6fbc..8ccc2f378d12886c1c12e7507cf90e5aa5e2b368 100644 --- a/dist/game/data/scripts/quests/Q00289_NoMoreSoupForYou/Q00289_NoMoreSoupForYou.java +++ b/dist/game/data/scripts/quests/Q00289_NoMoreSoupForYou/Q00289_NoMoreSoupForYou.java @@ -248,8 +248,8 @@ public class Q00289_NoMoreSoupForYou extends Quest switch (st.getState()) { case State.CREATED: - QuestState _prev = player.getQuestState(Q00252_ItSmellsDelicious.class.getSimpleName()); - htmltext = ((_prev != null) && _prev.isCompleted() && (player.getLevel() >= 82)) ? "30200-01.htm" : "30200-00.htm"; + QuestState qs252 = player.getQuestState(Q00252_ItSmellsDelicious.class.getSimpleName()); + htmltext = ((qs252 != null) && qs252.isCompleted() && (player.getLevel() >= 82)) ? "30200-01.htm" : "30200-00.htm"; break; case State.STARTED: if (st.isCond(1)) diff --git a/dist/game/data/scripts/quests/Q00336_CoinsOfMagic/Q00336_CoinsOfMagic.java b/dist/game/data/scripts/quests/Q00336_CoinsOfMagic/Q00336_CoinsOfMagic.java index 29f352ba1027bc8745df0c655db206948ba180a2..6ca8aa3aa50435702b6861d49f5e9437de24fe26 100644 --- a/dist/game/data/scripts/quests/Q00336_CoinsOfMagic/Q00336_CoinsOfMagic.java +++ b/dist/game/data/scripts/quests/Q00336_CoinsOfMagic/Q00336_CoinsOfMagic.java @@ -1793,7 +1793,7 @@ public final class Q00336_CoinsOfMagic extends Quest private QuestState getRandomPlayerFromParty(L2PcInstance player, L2Npc npc, int memoState) { - QuestState qs = player.getQuestState(getName()); + QuestState qs = getQuestState(player, false); final List<QuestState> candidates = new ArrayList<>(); if ((qs != null) && qs.isStarted() && (qs.getMemoState() == memoState)) @@ -1807,7 +1807,7 @@ public final class Q00336_CoinsOfMagic extends Quest player.getParty().getMembers().stream().forEach(pm -> { - QuestState qss = pm.getQuestState(getName()); + QuestState qss = getQuestState(pm, false); if ((qss != null) && qss.isStarted() && (qss.getMemoState() == memoState) && Util.checkIfInRange(1500, npc, pm, true)) { candidates.add(qss); @@ -1819,7 +1819,7 @@ public final class Q00336_CoinsOfMagic extends Quest private QuestState getRandomPlayerFromPartyCoin(L2PcInstance player, L2Npc npc, int memoState) { - QuestState qs = player.getQuestState(getName()); + QuestState qs = getQuestState(player, false); final List<QuestState> candidates = new ArrayList<>(); if ((qs != null) && qs.isStarted() && (qs.getMemoState() == memoState) && !qs.hasQuestItems(Q_KALDIS_GOLD_DRAGON)) { @@ -1832,7 +1832,7 @@ public final class Q00336_CoinsOfMagic extends Quest player.getParty().getMembers().stream().forEach(pm -> { - QuestState qss = pm.getQuestState(getName()); + QuestState qss = getQuestState(pm, false); if ((qss != null) && qss.isStarted() && (qss.getMemoState() == memoState) && !qss.hasQuestItems(Q_KALDIS_GOLD_DRAGON) && Util.checkIfInRange(1500, npc, pm, true)) { candidates.add(qss); diff --git a/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/Q00367_ElectrifyingRecharge.java b/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/Q00367_ElectrifyingRecharge.java index 23967af0365d1880f87409c375cadf2f6d873871..0484a28822ae6118178b4205372e09f78aeadfb3 100644 --- a/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/Q00367_ElectrifyingRecharge.java +++ b/dist/game/data/scripts/quests/Q00367_ElectrifyingRecharge/Q00367_ElectrifyingRecharge.java @@ -149,7 +149,7 @@ public final class Q00367_ElectrifyingRecharge extends Quest { giveItems(luckyPlayer, TITAN_LAMP5, 1); takeItems(luckyPlayer, TITAN_LAMP4, -1); - luckyPlayer.getQuestState(getName()).setCond(2, true); + getQuestState(luckyPlayer, false).setCond(2, true); } } else if ((random == 1) && !hasQuestItems(luckyPlayer, BROKEN_TITAN_LAMP)) diff --git a/dist/game/data/scripts/quests/Q00386_StolenDignity/Q00386_StolenDignity.java b/dist/game/data/scripts/quests/Q00386_StolenDignity/Q00386_StolenDignity.java index f2cd3ed50b7a4a31fec82e885cbd1ae66eca9067..26289bb6f6089337825f52b156acd632969115df 100644 --- a/dist/game/data/scripts/quests/Q00386_StolenDignity/Q00386_StolenDignity.java +++ b/dist/game/data/scripts/quests/Q00386_StolenDignity/Q00386_StolenDignity.java @@ -873,7 +873,7 @@ public final class Q00386_StolenDignity extends Quest private QuestState getRandomPlayerFromParty(L2PcInstance player, L2Npc npc) { - QuestState qs = player.getQuestState(getName()); + QuestState qs = getQuestState(player, false); final List<QuestState> candidates = new ArrayList<>(); if ((qs != null) && qs.isStarted()) @@ -887,7 +887,7 @@ public final class Q00386_StolenDignity extends Quest player.getParty().getMembers().stream().forEach(pm -> { - QuestState qss = pm.getQuestState(getName()); + QuestState qss = getQuestState(pm, false); if ((qss != null) && qss.isStarted() && Util.checkIfInRange(1500, npc, pm, true)) { candidates.add(qss); diff --git a/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/Q00423_TakeYourBestShot.java b/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/Q00423_TakeYourBestShot.java index f92a879ffa266f5846d9bcb6b8ce0fcd2ef59afc..a8da2d073d530e2bd551666834d19793cecd92f9 100644 --- a/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/Q00423_TakeYourBestShot.java +++ b/dist/game/data/scripts/quests/Q00423_TakeYourBestShot/Q00423_TakeYourBestShot.java @@ -122,8 +122,8 @@ public class Q00423_TakeYourBestShot extends Quest switch (st.getState()) { case State.CREATED: - final QuestState _prev = player.getQuestState(Q00249_PoisonedPlainsOfTheLizardmen.class.getSimpleName()); - if ((_prev != null) && _prev.isCompleted() && (player.getLevel() >= MIN_LEVEL)) + final QuestState qs249 = player.getQuestState(Q00249_PoisonedPlainsOfTheLizardmen.class.getSimpleName()); + if ((qs249 != null) && qs249.isCompleted() && (player.getLevel() >= MIN_LEVEL)) { htmltext = (st.hasQuestItems(SEER_UGOROS_PASS)) ? "32744-07.htm" : "32744-01.htm"; }