From 8432e3de7501c06eb384fd603f66d6de91e62ae2 Mon Sep 17 00:00:00 2001 From: Adry_85 <Adrya85@hotmail.it> Date: Mon, 25 Mar 2013 15:37:14 +0000 Subject: [PATCH] BETA: Improved !SagaSuperClass script. Patch by: jurchiks, xban1x Reviewed by: Adry_85 --- .../quests/SagasScripts/SagasSuperClass.java | 1216 ++++++++--------- 1 file changed, 568 insertions(+), 648 deletions(-) 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 94a10b96c7..a7bc01f0d9 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 @@ -30,7 +30,6 @@ import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.quest.Quest; import com.l2jserver.gameserver.model.quest.QuestState; -import com.l2jserver.gameserver.model.quest.State; import com.l2jserver.gameserver.model.skills.L2Skill; import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse; import com.l2jserver.gameserver.network.serverpackets.NpcSay; @@ -44,7 +43,7 @@ import com.l2jserver.util.L2FastMap; public class SagasSuperClass extends Quest { private static L2FastList<Quest> _scripts = new L2FastList<>(); - public String qn = "SagasSuperClass"; + public String qn = SagasSuperClass.class.getSimpleName(); public int qnu; public int[] NPC = {}; public int[] Items = {}; @@ -78,14 +77,7 @@ public class SagasSuperClass extends Quest QuestState st = player.getQuestState(qn); if (st != null) { - if (qnu != 68) - { - if (player.getClassId().getId() == QuestClass[qnu - 67][0]) - { - return st; - } - } - else + if (qnu == 68) { for (int q = 0; q < 2; q++) { @@ -95,6 +87,10 @@ public class SagasSuperClass extends Quest } } } + else if (player.getClassId().getId() == QuestClass[qnu - 67][0]) + { + return st; + } } return null; } @@ -136,7 +132,7 @@ public class SagasSuperClass extends Quest return prevclass[0]; } - private void giveHallishaMark(QuestState st2) + private void giveHalishaMark(QuestState st2) { if (st2.getInt("spawned") == 0) { @@ -165,331 +161,282 @@ public class SagasSuperClass extends Quest public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { QuestState st = player.getQuestState(qn); - String htmltext = ""; + String htmltext = null; if (st != null) { - if (event.equalsIgnoreCase("0-011.htm") || event.equalsIgnoreCase("0-012.htm") || event.equalsIgnoreCase("0-013.htm") || event.equalsIgnoreCase("0-014.htm") || event.equalsIgnoreCase("0-015.htm")) - { - htmltext = event; - } - else if (event.equalsIgnoreCase("accept")) + switch (event) { - st.startQuest(); - st.giveItems(Items[10], 1); - htmltext = "0-03.htm"; - } - else if (event.equalsIgnoreCase("0-1")) - { - if (player.getLevel() < 76) - { - htmltext = "0-02.htm"; - if (st.getState() == State.CREATED) + case "0-011.htm": + case "0-012.htm": + case "0-013.htm": + case "0-014.htm": + case "0-015.htm": + htmltext = event; + break; + case "accept": + st.startQuest(); + giveItems(player, Items[10], 1); + htmltext = "0-03.htm"; + break; + case "0-1": + if (player.getLevel() < 76) { - st.exitQuest(true); + htmltext = "0-02.htm"; + if (st.isCreated()) + { + st.exitQuest(true); + } } - } - else - { - htmltext = "0-05.htm"; - } - } - else if (event.equalsIgnoreCase("0-2")) - { - if (player.getLevel() >= 76) - { - st.exitQuest(false); - st.set("cond", "0"); - htmltext = "0-07.htm"; - st.takeItems(Items[10], -1); - st.addExpAndSp(2299404, 0); - st.giveItems(57, 5000000); - st.giveItems(6622, 1); - int Class = getClassId(player); - int prevClass = getPrevClass(player); - player.setClassId(Class); - if (!player.isSubClassActive() && (player.getBaseClass() == prevClass)) + else { - player.setBaseClass(Class); + htmltext = "0-05.htm"; } - player.broadcastUserInfo(); - cast(npc, player, 4339, 1); - } - else - { - st.takeItems(Items[10], -1); - st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); - st.set("cond", "20"); - htmltext = "0-08.htm"; - } - } - else if (event.equalsIgnoreCase("1-3")) - { - st.set("cond", "3"); - htmltext = "1-05.htm"; - } - else if (event.equalsIgnoreCase("1-4")) - { - st.set("cond", "4"); - st.takeItems(Items[0], 1); - if (Items[11] != 0) - { - st.takeItems(Items[11], 1); - } - st.giveItems(Items[1], 1); - htmltext = "1-06.htm"; - } - else if (event.equalsIgnoreCase("2-1")) - { - st.set("cond", "2"); - htmltext = "2-05.htm"; - } - else if (event.equalsIgnoreCase("2-2")) - { - st.set("cond", "5"); - st.takeItems(Items[1], 1); - st.giveItems(Items[4], 1); - htmltext = "2-06.htm"; - } - else if (event.equalsIgnoreCase("3-5")) - { - htmltext = "3-07.htm"; - } - else if (event.equalsIgnoreCase("3-6")) - { - st.set("cond", "11"); - htmltext = "3-02.htm"; - } - else if (event.equalsIgnoreCase("3-7")) - { - st.set("cond", "12"); - htmltext = "3-03.htm"; - } - else if (event.equalsIgnoreCase("3-8")) - { - st.set("cond", "13"); - st.takeItems(Items[2], 1); - st.giveItems(Items[7], 1); - htmltext = "3-08.htm"; - } - else if (event.equalsIgnoreCase("4-1")) - { - htmltext = "4-010.htm"; - } - else if (event.equalsIgnoreCase("4-2")) - { - st.giveItems(Items[9], 1); - st.set("cond", "18"); - st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); - htmltext = "4-011.htm"; - } - else if (event.equalsIgnoreCase("4-3")) - { - st.giveItems(Items[9], 1); - st.set("cond", "18"); - autoChat(npc, Text[13].replace("PLAYERNAME", player.getName())); - st.set("Quest0", "0"); - cancelQuestTimer("Mob_2 has despawned", npc, player); - st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); - DeleteSpawn(st, npc); - return null; - } - else if (event.equalsIgnoreCase("5-1")) - { - st.set("cond", "6"); - st.takeItems(Items[4], 1); - cast(npc, player, 4546, 1); - st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); - htmltext = "5-02.htm"; - } - else if (event.equalsIgnoreCase("6-1")) - { - st.set("cond", "8"); - st.takeItems(Items[5], 1); - cast(npc, player, 4546, 1); - st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); - htmltext = "6-03.htm"; - } - else if (event.equalsIgnoreCase("7-1")) - { - if (st.getInt("spawned") == 1) - { - htmltext = "7-03.htm"; - } - else if (st.getInt("spawned") == 0) - { - L2Npc Mob_1 = st.addSpawn(Mob[0], X[0], Y[0], Z[0]); - st.set("spawned", "1"); - st.startQuestTimer("Mob_1 Timer 1", 500, Mob_1); - st.startQuestTimer("Mob_1 has despawned", 300000, Mob_1); - addSpawn(st, Mob_1); - htmltext = "7-02.htm"; - } - else - { - htmltext = "7-04.htm"; - } - } - else if (event.equalsIgnoreCase("7-2")) - { - st.set("cond", "10"); - st.takeItems(Items[6], 1); - cast(npc, player, 4546, 1); - st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); - htmltext = "7-06.htm"; - } - else if (event.equalsIgnoreCase("8-1")) - { - st.set("cond", "14"); - st.takeItems(Items[7], 1); - cast(npc, player, 4546, 1); - st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); - htmltext = "8-02.htm"; - } - else if (event.equalsIgnoreCase("9-1")) - { - st.set("cond", "17"); - st.takeItems(Items[8], 1); - cast(npc, player, 4546, 1); - st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); - htmltext = "9-03.htm"; - } - else if (event.equalsIgnoreCase("10-1")) - { - if (st.getInt("Quest0") == 0) - { - L2Npc Mob_3 = st.addSpawn(Mob[2], X[1], Y[1], Z[1]); - L2Npc Mob_2 = st.addSpawn(NPC[4], X[2], Y[2], Z[2]); - addSpawn(st, Mob_3); - addSpawn(st, Mob_2); - st.set("Mob_2", String.valueOf(Mob_2.getObjectId())); - st.set("Quest0", "1"); - st.set("Quest1", "45"); - st.startRepeatingQuestTimer("Mob_3 Timer 1", 500, Mob_3); - st.startQuestTimer("Mob_3 has despawned", 59000, Mob_3); - st.startQuestTimer("Mob_2 Timer 1", 500, Mob_2); - st.startQuestTimer("Mob_2 has despawned", 60000, Mob_2); - htmltext = "10-02.htm"; - } - else if (st.getInt("Quest1") == 45) - { - htmltext = "10-03.htm"; - } - else - { - htmltext = "10-04.htm"; - } - } - else if (event.equalsIgnoreCase("10-2")) - { - st.set("cond", "19"); - st.takeItems(Items[9], 1); - cast(npc, player, 4546, 1); - st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); - htmltext = "10-06.htm"; - } - else if (event.equalsIgnoreCase("11-9")) - { - st.set("cond", "15"); - htmltext = "11-03.htm"; - } - else if (event.equalsIgnoreCase("Mob_1 Timer 1")) - { - autoChat(npc, Text[0].replace("PLAYERNAME", player.getName())); - return null; - } - else if (event.equalsIgnoreCase("Mob_1 has despawned")) - { - autoChat(npc, Text[1].replace("PLAYERNAME", player.getName())); - st.set("spawned", "0"); - DeleteSpawn(st, npc); - return null; - } - else if (event.equalsIgnoreCase("Archon Hellisha has despawned")) - { - autoChat(npc, Text[6].replace("PLAYERNAME", player.getName())); - st.set("spawned", "0"); - DeleteSpawn(st, npc); - return null; - } - else if (event.equalsIgnoreCase("Mob_3 Timer 1")) - { - L2Npc Mob_2 = FindSpawn(player, (L2Npc) L2World.getInstance().findObject(st.getInt("Mob_2"))); - if (npc.getKnownList().knowsObject(Mob_2)) - { - ((L2Attackable) npc).addDamageHate(Mob_2, 0, 99999); - npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, Mob_2, null); - Mob_2.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, npc, null); - autoChat(npc, Text[14].replace("PLAYERNAME", player.getName())); - cancelQuestTimer("Mob_3 Timer 1", npc, player); - } - return null; - } - else if (event.equalsIgnoreCase("Mob_3 has despawned")) - { - autoChat(npc, Text[15].replace("PLAYERNAME", player.getName())); - st.set("Quest0", "2"); - DeleteSpawn(st, npc); - return null; - } - else if (event.equalsIgnoreCase("Mob_2 Timer 1")) - { - autoChat(npc, Text[7].replace("PLAYERNAME", player.getName())); - st.startQuestTimer("Mob_2 Timer 2", 1500, npc); - if (st.getInt("Quest1") == 45) - { - st.set("Quest1", "0"); - } - return null; - } - else if (event.equalsIgnoreCase("Mob_2 Timer 2")) - { - autoChat(npc, Text[8].replace("PLAYERNAME", player.getName())); - st.startQuestTimer("Mob_2 Timer 3", 10000, npc); - return null; - } - else if (event.equalsIgnoreCase("Mob_2 Timer 3")) - { - if (st.getInt("Quest0") == 0) - { - st.startQuestTimer("Mob_2 Timer 3", 13000, npc); - if (getRandom(2) == 0) + break; + case "0-2": + if (player.getLevel() < 76) { - autoChat(npc, Text[9].replace("PLAYERNAME", player.getName())); + takeItems(player, Items[10], -1); + st.setCond(20, true); + htmltext = "0-08.htm"; } else { - autoChat(npc, Text[10].replace("PLAYERNAME", player.getName())); + takeItems(player, Items[10], -1); + addExpAndSp(player, 2299404, 0); + giveAdena(player, 5000000, true); + giveItems(player, 6622, 1); + int Class = getClassId(player); + int prevClass = getPrevClass(player); + player.setClassId(Class); + if (!player.isSubClassActive() && (player.getBaseClass() == prevClass)) + { + player.setBaseClass(Class); + } + player.broadcastUserInfo(); + cast(npc, player, 4339, 1); + st.exitQuest(false); + htmltext = "0-07.htm"; } - } - return null; - } - else if (event.equalsIgnoreCase("Mob_2 has despawned")) - { - st.set("Quest1", String.valueOf(st.getInt("Quest1") + 1)); - if ((st.getInt("Quest0") == 1) || (st.getInt("Quest0") == 2) || (st.getInt("Quest1") > 3)) - { + break; + case "1-3": + st.setCond(3); + htmltext = "1-05.htm"; + break; + case "1-4": + st.setCond(4); + takeItems(player, Items[0], 1); + if (Items[11] != 0) + { + takeItems(player, Items[11], 1); + } + giveItems(player, Items[1], 1); + htmltext = "1-06.htm"; + break; + case "2-1": + st.setCond(2); + htmltext = "2-05.htm"; + break; + case "2-2": + st.setCond(5); + takeItems(player, Items[1], 1); + giveItems(player, Items[4], 1); + htmltext = "2-06.htm"; + break; + case "3-5": + htmltext = "3-07.htm"; + break; + case "3-6": + st.setCond(11); + htmltext = "3-02.htm"; + break; + case "3-7": + st.setCond(12); + htmltext = "3-03.htm"; + break; + case "3-8": + st.setCond(13); + takeItems(player, Items[2], 1); + giveItems(player, Items[7], 1); + htmltext = "3-08.htm"; + break; + case "4-1": + htmltext = "4-010.htm"; + break; + case "4-2": + giveItems(player, Items[9], 1); + st.setCond(18, true); + htmltext = "4-011.htm"; + break; + case "4-3": + giveItems(player, Items[9], 1); + st.setCond(18, true); + autoChat(npc, Text[13].replace("PLAYERNAME", player.getName())); st.set("Quest0", "0"); - if (st.getInt("Quest0") == 1) + cancelQuestTimer("Mob_2 has despawned", npc, player); + DeleteSpawn(st, npc); + return null; + case "5-1": + st.setCond(6, true); + takeItems(player, Items[4], 1); + cast(npc, player, 4546, 1); + htmltext = "5-02.htm"; + break; + case "6-1": + st.setCond(8, true); + takeItems(player, Items[5], 1); + cast(npc, player, 4546, 1); + htmltext = "6-03.htm"; + break; + case "7-1": + if (st.getInt("spawned") == 1) + { + htmltext = "7-03.htm"; + } + else if (st.getInt("spawned") == 0) + { + L2Npc Mob_1 = st.addSpawn(Mob[0], X[0], Y[0], Z[0]); + st.set("spawned", "1"); + st.startQuestTimer("Mob_1 Timer 1", 500, Mob_1); + st.startQuestTimer("Mob_1 has despawned", 300000, Mob_1); + addSpawn(st, Mob_1); + htmltext = "7-02.htm"; + } + else + { + htmltext = "7-04.htm"; + } + break; + case "7-2": + st.setCond(10, true); + takeItems(player, Items[6], 1); + cast(npc, player, 4546, 1); + htmltext = "7-06.htm"; + break; + case "8-1": + st.setCond(14, true); + takeItems(player, Items[7], 1); + cast(npc, player, 4546, 1); + htmltext = "8-02.htm"; + break; + case "9-1": + st.setCond(17, true); + takeItems(player, Items[8], 1); + cast(npc, player, 4546, 1); + htmltext = "9-03.htm"; + break; + case "10-1": + if (st.getInt("Quest0") == 0) { - autoChat(npc, Text[11].replace("PLAYERNAME", player.getName())); + L2Npc Mob_3 = st.addSpawn(Mob[2], X[1], Y[1], Z[1]); + L2Npc Mob_2 = st.addSpawn(NPC[4], X[2], Y[2], Z[2]); + addSpawn(st, Mob_3); + addSpawn(st, Mob_2); + st.set("Mob_2", String.valueOf(Mob_2.getObjectId())); + st.set("Quest0", "1"); + st.set("Quest1", "45"); + st.startRepeatingQuestTimer("Mob_3 Timer 1", 500, Mob_3); + st.startQuestTimer("Mob_3 has despawned", 59000, Mob_3); + st.startQuestTimer("Mob_2 Timer 1", 500, Mob_2); + st.startQuestTimer("Mob_2 has despawned", 60000, Mob_2); + htmltext = "10-02.htm"; + } + else if (st.getInt("Quest1") == 45) + { + htmltext = "10-03.htm"; } else { - autoChat(npc, Text[12].replace("PLAYERNAME", player.getName())); + htmltext = "10-04.htm"; } + break; + case "10-2": + st.setCond(19, true); + takeItems(player, Items[9], 1); + cast(npc, player, 4546, 1); + htmltext = "10-06.htm"; + break; + case "11-9": + st.setCond(15); + htmltext = "11-03.htm"; + break; + case "Mob_1 Timer 1": + autoChat(npc, Text[0].replace("PLAYERNAME", player.getName())); + return null; + case "Mob_1 has despawned": + autoChat(npc, Text[1].replace("PLAYERNAME", player.getName())); + st.set("spawned", "0"); DeleteSpawn(st, npc); - } - else - { - st.startQuestTimer("Mob_2 has despawned", 1000, npc); - } - return null; + return null; + case "Archon Hellisha has despawned": + autoChat(npc, Text[6].replace("PLAYERNAME", player.getName())); + st.set("spawned", "0"); + DeleteSpawn(st, npc); + return null; + case "Mob_3 Timer 1": + L2Npc Mob_2 = FindSpawn(player, (L2Npc) L2World.getInstance().findObject(st.getInt("Mob_2"))); + if (npc.getKnownList().knowsObject(Mob_2)) + { + ((L2Attackable) npc).addDamageHate(Mob_2, 0, 99999); + npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, Mob_2, null); + Mob_2.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, npc, null); + autoChat(npc, Text[14].replace("PLAYERNAME", player.getName())); + cancelQuestTimer("Mob_3 Timer 1", npc, player); + } + return null; + case "Mob_3 has despawned": + autoChat(npc, Text[15].replace("PLAYERNAME", player.getName())); + st.set("Quest0", "2"); + DeleteSpawn(st, npc); + return null; + case "Mob_2 Timer 1": + autoChat(npc, Text[7].replace("PLAYERNAME", player.getName())); + st.startQuestTimer("Mob_2 Timer 2", 1500, npc); + if (st.getInt("Quest1") == 45) + { + st.set("Quest1", "0"); + } + return null; + case "Mob_2 Timer 2": + autoChat(npc, Text[8].replace("PLAYERNAME", player.getName())); + st.startQuestTimer("Mob_2 Timer 3", 10000, npc); + return null; + case "Mob_2 Timer 3": + if (st.getInt("Quest0") == 0) + { + st.startQuestTimer("Mob_2 Timer 3", 13000, npc); + if (getRandom(2) == 0) + { + autoChat(npc, Text[9].replace("PLAYERNAME", player.getName())); + } + else + { + autoChat(npc, Text[10].replace("PLAYERNAME", player.getName())); + } + } + return null; + case "Mob_2 has despawned": + st.set("Quest1", String.valueOf(st.getInt("Quest1") + 1)); + if ((st.getInt("Quest0") == 1) || (st.getInt("Quest0") == 2) || (st.getInt("Quest1") > 3)) + { + st.set("Quest0", "0"); + // TODO this IF will never be true + if (st.getInt("Quest0") == 1) + { + autoChat(npc, Text[11].replace("PLAYERNAME", player.getName())); + } + else + { + autoChat(npc, Text[12].replace("PLAYERNAME", player.getName())); + } + DeleteSpawn(st, npc); + } + else + { + st.startQuestTimer("Mob_2 has despawned", 1000, npc); + } + return null; } } - else - { - return null; - } return htmltext; } @@ -497,37 +444,39 @@ public class SagasSuperClass extends Quest public String onAttack(L2Npc npc, L2PcInstance player, int damage, boolean isSummon) { QuestState st2 = findRightState(npc); - if (st2 == null) + if (st2 != null) { - return super.onAttack(npc, player, damage, isSummon); - } - int cond = st2.getInt("cond"); - QuestState st = player.getQuestState(qn); - int npcId = npc.getNpcId(); - if ((npcId == Mob[2]) && (st == st2) && (cond == 17)) - { - st.set("Quest0", String.valueOf(st.getInt("Quest0") + 1)); - if (st.getInt("Quest0") == 1) - { - autoChat(npc, Text[16].replace("PLAYERNAME", player.getName())); - } - if (st.getInt("Quest0") > 15) + int cond = st2.getCond(); + QuestState st = player.getQuestState(qn); + int npcId = npc.getNpcId(); + if ((npcId == Mob[2]) && (st == st2) && (cond == 17)) { - st.set("Quest0", "1"); - autoChat(npc, Text[17].replace("PLAYERNAME", player.getName())); - cancelQuestTimer("Mob_3 has despawned", npc, st2.getPlayer()); - st.set("Tab", "1"); - DeleteSpawn(st, npc); + int quest0 = st.getInt("Quest0") + 1; + if (quest0 == 1) + { + autoChat(npc, Text[16].replace("PLAYERNAME", player.getName())); + } + + if (quest0 > 15) + { + quest0 = 1; + autoChat(npc, Text[17].replace("PLAYERNAME", player.getName())); + cancelQuestTimer("Mob_3 has despawned", npc, st2.getPlayer()); + st.set("Tab", "1"); + DeleteSpawn(st, npc); + } + + st.set("Quest0", Integer.toString(quest0)); } - } - else if ((npcId == Mob[1]) && (cond == 15)) - { - if ((st != st2) || ((st == st2) && player.isInParty())) + else if ((npcId == Mob[1]) && (cond == 15)) { - autoChat(npc, Text[5].replace("PLAYERNAME", player.getName())); - cancelQuestTimer("Archon Hellisha has despawned", npc, st2.getPlayer()); - st2.set("spawned", "0"); - DeleteSpawn(st2, npc); + if ((st != st2) || ((st == st2) && player.isInParty())) + { + autoChat(npc, Text[5].replace("PLAYERNAME", player.getName())); + cancelQuestTimer("Archon Hellisha has despawned", npc, st2.getPlayer()); + st2.set("spawned", "0"); + DeleteSpawn(st2, npc); + } } } return super.onAttack(npc, player, damage, isSummon); @@ -541,61 +490,55 @@ public class SagasSuperClass extends Quest int npcId = npc.getNpcId(); if (st != null) { - int cond = st.getInt("cond"); if (npcId == NPC[4]) { + int cond = st.getCond(); if (cond == 17) { QuestState st2 = findRightState(npc); if (st2 != null) { player.setLastQuestNpcObject(npc.getObjectId()); + int tab = st.getInt("Tab"); + int quest0 = st.getInt("Quest0"); + if (st == st2) { - if (st.getInt("Tab") == 1) + if (tab == 1) { - if (st.getInt("Quest0") == 0) + if (quest0 == 0) { htmltext = "4-04.htm"; } - else if (st.getInt("Quest0") == 1) + else if (quest0 == 1) { htmltext = "4-06.htm"; } } - else + else if (quest0 == 0) { - if (st.getInt("Quest0") == 0) - { - htmltext = "4-01.htm"; - } - else if (st.getInt("Quest0") == 1) - { - htmltext = "4-03.htm"; - } + htmltext = "4-01.htm"; + } + else if (quest0 == 1) + { + htmltext = "4-03.htm"; } } - else + else if (tab == 1) { - if (st.getInt("Tab") == 1) + if (quest0 == 0) { - if (st.getInt("Quest0") == 0) - { - htmltext = "4-05.htm"; - } - else if (st.getInt("Quest0") == 1) - { - htmltext = "4-07.htm"; - } + htmltext = "4-05.htm"; } - else + else if (quest0 == 1) { - if (st.getInt("Quest0") == 0) - { - htmltext = "4-02.htm"; - } + htmltext = "4-07.htm"; } } + else if (quest0 == 0) + { + htmltext = "4-02.htm"; + } } } else if (cond == 18) @@ -629,7 +572,7 @@ public class SagasSuperClass extends Quest QuestState st1 = findQuest(player1); if ((st1 != null) && player1.isInsideRadius(player, Config.ALT_PARTY_RANGE2, false, false)) { - if (st1.getInt("cond") == 15) + if (st1.isCond(15)) { PartyQuestMembers.add(st1); } @@ -638,7 +581,7 @@ public class SagasSuperClass extends Quest if (PartyQuestMembers.size() > 0) { QuestState st2 = PartyQuestMembers.get(getRandom(PartyQuestMembers.size())); - giveHallishaMark(st2); + giveHalishaMark(st2); } } else @@ -646,9 +589,9 @@ public class SagasSuperClass extends Quest QuestState st1 = findQuest(player); if (st1 != null) { - if (st1.getInt("cond") == 15) + if (st1.isCond(15)) { - giveHallishaMark(st1); + giveHalishaMark(st1); } } } @@ -671,7 +614,7 @@ public class SagasSuperClass extends Quest QuestState st1 = findQuest(player); if (st1 != null) { - if (st1.getInt("cond") == 15) + if (st1.isCond(15)) { // This is just a guess....not really sure what it actually says, if anything autoChat(npc, Text[4].replace("PLAYERNAME", st1.getPlayer().getName())); @@ -679,7 +622,6 @@ public class SagasSuperClass extends Quest st1.takeItems(Items[3], -1); st1.setCond(16, true); } - } return super.onKill(npc, player, isSummon); } @@ -690,21 +632,18 @@ public class SagasSuperClass extends Quest if (npcId == Guardian_Angel) { QuestState st1 = findQuest(player); - if (st1 != null) + if ((st1 != null) && st1.isCond(6)) { - if (st1.getInt("cond") == 6) + int kills = st1.getInt("kills"); + if (kills < 9) { - if (st1.getInt("kills") < 9) - { - st1.set("kills", String.valueOf(st1.getInt("kills") + 1)); - } - else - { - st1.giveItems(Items[5], 1); - st1.setCond(7, true); - } + st1.set("kills", Integer.toString(kills + 1)); + } + else + { + st1.giveItems(Items[5], 1); + st.setCond(7, true); } - } return super.onKill(npc, player, isSummon); } @@ -712,68 +651,64 @@ public class SagasSuperClass extends Quest if ((st != null) && (npcId != Mob[2])) { QuestState st2 = findRightState(npc); - if (st2 == null) + if (st2 != null) { - return super.onKill(npc, player, isSummon); - } - int cond = st.getInt("cond"); - if ((npcId == Mob[0]) && (cond == 8)) - { - if (!player.isInParty()) + int cond = st.getCond(); + if ((npcId == Mob[0]) && (cond == 8)) { - if (st == st2) + if (!player.isInParty()) { - autoChat(npc, Text[12].replace("PLAYERNAME", player.getName())); - st.giveItems(Items[6], 1); - st.setCond(9, true); + if (st == st2) + { + autoChat(npc, Text[12].replace("PLAYERNAME", player.getName())); + giveItems(player, Items[6], 1); + st.setCond(9, true); + } } + cancelQuestTimer("Mob_1 has despawned", npc, st2.getPlayer()); + st2.set("spawned", "0"); + DeleteSpawn(st2, npc); } - cancelQuestTimer("Mob_1 has despawned", npc, st2.getPlayer()); - st2.set("spawned", "0"); - DeleteSpawn(st2, npc); - } - else if ((npcId == Mob[1]) && (cond == 15)) - { - if (!player.isInParty()) + else if ((npcId == Mob[1]) && (cond == 15)) { - if (st == st2) + if (!player.isInParty()) { - autoChat(npc, Text[4].replace("PLAYERNAME", player.getName())); - st.giveItems(Items[8], 1); - st.takeItems(Items[3], -1); - st.setCond(16, true); - } - else - { - autoChat(npc, Text[5].replace("PLAYERNAME", player.getName())); + if (st == st2) + { + autoChat(npc, Text[4].replace("PLAYERNAME", player.getName())); + giveItems(player, Items[8], 1); + takeItems(player, Items[3], -1); + st.setCond(16, true); + } + else + { + autoChat(npc, Text[5].replace("PLAYERNAME", player.getName())); + } } + cancelQuestTimer("Archon Hellisha has despawned", npc, st2.getPlayer()); + st2.set("spawned", "0"); + DeleteSpawn(st2, npc); } - cancelQuestTimer("Archon Hellisha has despawned", npc, st2.getPlayer()); - st2.set("spawned", "0"); - DeleteSpawn(st2, npc); } } - else + else if (npcId == Mob[0]) { - if (npcId == Mob[0]) + st = findRightState(npc); + if (st != null) { - st = findRightState(npc); - if (st != null) - { - cancelQuestTimer("Mob_1 has despawned", npc, st.getPlayer()); - st.set("spawned", "0"); - DeleteSpawn(st, npc); - } + cancelQuestTimer("Mob_1 has despawned", npc, st.getPlayer()); + st.set("spawned", "0"); + DeleteSpawn(st, npc); } - else if (npcId == Mob[1]) + } + else if (npcId == Mob[1]) + { + st = findRightState(npc); + if (st != null) { - st = findRightState(npc); - if (st != null) - { - cancelQuestTimer("Archon Hellisha has despawned", npc, st.getPlayer()); - st.set("spawned", "0"); - DeleteSpawn(st, npc); - } + cancelQuestTimer("Archon Hellisha has despawned", npc, st.getPlayer()); + st.set("spawned", "0"); + DeleteSpawn(st, npc); } } return super.onKill(npc, player, isSummon); @@ -817,235 +752,220 @@ public class SagasSuperClass extends Quest if (st != null) { int npcId = npc.getNpcId(); - int cond = st.getInt("cond"); - if (st.isCompleted() && (npcId == NPC[0])) + if ((npcId == NPC[0]) && st.isCompleted()) { - htmltext = "<html><body>You have already completed this quest!</body></html>"; + htmltext = getAlreadyCompletedMsg(player); } else if (player.getClassId().getId() == getPrevClass(player)) { - if (cond == 0) - { - if (npcId == NPC[0]) - { - htmltext = "0-01.htm"; - } - } - else if (cond == 1) - { - if (npcId == NPC[0]) - { - htmltext = "0-04.htm"; - } - else if (npcId == NPC[2]) - { - htmltext = "2-01.htm"; - } - } - else if (cond == 2) - { - if (npcId == NPC[2]) - { - htmltext = "2-02.htm"; - } - else if (npcId == NPC[1]) - { - htmltext = "1-01.htm"; - } - } - else if (cond == 3) + switch (st.getCond()) { - if ((npcId == NPC[1]) && st.hasQuestItems(Items[0])) - { - htmltext = "1-02.htm"; - if ((Items[11] == 0) || st.hasQuestItems(Items[11])) + case 0: + if (npcId == NPC[0]) { - htmltext = "1-03.htm"; + htmltext = "0-01.htm"; } - } - } - else if (cond == 4) - { - if (npcId == NPC[1]) - { - htmltext = "1-04.htm"; - } - else if (npcId == NPC[2]) - { - htmltext = "2-03.htm"; - } - } - else if (cond == 5) - { - if (npcId == NPC[2]) - { - htmltext = "2-04.htm"; - } - else if (npcId == NPC[5]) - { - htmltext = "5-01.htm"; - } - } - else if (cond == 6) - { - if (npcId == NPC[5]) - { - htmltext = "5-03.htm"; - } - else if (npcId == NPC[6]) - { - htmltext = "6-01.htm"; - } - } - else if (cond == 7) - { - if (npcId == NPC[6]) - { - htmltext = "6-02.htm"; - } - } - else if (cond == 8) - { - if (npcId == NPC[6]) - { - htmltext = "6-04.htm"; - } - else if (npcId == NPC[7]) - { - htmltext = "7-01.htm"; - } - } - else if (cond == 9) - { - if (npcId == NPC[7]) - { - htmltext = "7-05.htm"; - } - } - else if (cond == 10) - { - if (npcId == NPC[7]) - { - htmltext = "7-07.htm"; - } - else if (npcId == NPC[3]) - { - htmltext = "3-01.htm"; - } - } - else if ((cond == 11) || (cond == 12)) - { - if (npcId == NPC[3]) - { - if (st.hasQuestItems(Items[2])) + break; + case 1: + if (npcId == NPC[0]) { - htmltext = "3-05.htm"; + htmltext = "0-04.htm"; } - else + else if (npcId == NPC[2]) { - htmltext = "3-04.htm"; + htmltext = "2-01.htm"; } - } - } - else if (cond == 13) - { - if (npcId == NPC[3]) - { - htmltext = "3-06.htm"; - } - else if (npcId == NPC[8]) - { - htmltext = "8-01.htm"; - } - } - else if (cond == 14) - { - if (npcId == NPC[8]) - { - htmltext = "8-03.htm"; - } - else if (npcId == NPC[11]) - { - htmltext = "11-01.htm"; - } - } - else if (cond == 15) - { - if (npcId == NPC[11]) - { - htmltext = "11-02.htm"; - } - else if (npcId == NPC[9]) - { - htmltext = "9-01.htm"; - } - } - else if (cond == 16) - { - if (npcId == NPC[9]) - { - htmltext = "9-02.htm"; - } - } - else if (cond == 17) - { - if (npcId == NPC[9]) - { - htmltext = "9-04.htm"; - } - else if (npcId == NPC[10]) - { - htmltext = "10-01.htm"; - } - } - else if (cond == 18) - { - if (npcId == NPC[10]) - { - htmltext = "10-05.htm"; - } - } - else if (cond == 19) - { - if (npcId == NPC[10]) - { - htmltext = "10-07.htm"; - } - else if (npcId == NPC[0]) - { - htmltext = "0-06.htm"; - } - } - else if (cond == 20) - { - if (npcId == NPC[0]) - { - if (player.getLevel() >= 76) + break; + case 2: + if (npcId == NPC[2]) { - htmltext = "0-09.htm"; - if ((getClassId(player) < 131) || (getClassId(player) > 135)) // in Kamael quests, npc wants to chat for a bit before changing class + htmltext = "2-02.htm"; + } + else if (npcId == NPC[1]) + { + htmltext = "1-01.htm"; + } + break; + case 3: + if ((npcId == NPC[1]) && hasQuestItems(player, Items[0])) + { + if ((Items[11] == 0) || hasQuestItems(player, Items[11])) { - st.exitQuest(false); - st.set("cond", "0"); - st.addExpAndSp(2299404, 0); - st.giveItems(57, 5000000); - st.giveItems(6622, 1); - int Class = getClassId(player); - int prevClass = getPrevClass(player); - player.setClassId(Class); - if (!player.isSubClassActive() && (player.getBaseClass() == prevClass)) - { - player.setBaseClass(Class); - } - player.broadcastUserInfo(); - cast(npc, player, 4339, 1); + htmltext = "1-03.htm"; + } + else + { + htmltext = "1-02.htm"; } } - else + break; + case 4: + if (npcId == NPC[1]) { - htmltext = "0-010.htm"; + htmltext = "1-04.htm"; } - } + else if (npcId == NPC[2]) + { + htmltext = "2-03.htm"; + } + break; + case 5: + if (npcId == NPC[2]) + { + htmltext = "2-04.htm"; + } + else if (npcId == NPC[5]) + { + htmltext = "5-01.htm"; + } + break; + case 6: + if (npcId == NPC[5]) + { + htmltext = "5-03.htm"; + } + else if (npcId == NPC[6]) + { + htmltext = "6-01.htm"; + } + break; + case 7: + if (npcId == NPC[6]) + { + htmltext = "6-02.htm"; + } + break; + case 8: + if (npcId == NPC[6]) + { + htmltext = "6-04.htm"; + } + else if (npcId == NPC[7]) + { + htmltext = "7-01.htm"; + } + break; + case 9: + if (npcId == NPC[7]) + { + htmltext = "7-05.htm"; + } + break; + case 10: + if (npcId == NPC[7]) + { + htmltext = "7-07.htm"; + } + else if (npcId == NPC[3]) + { + htmltext = "3-01.htm"; + } + break; + case 11: + case 12: + if (npcId == NPC[3]) + { + if (hasQuestItems(player, Items[2])) + { + htmltext = "3-05.htm"; + } + else + { + htmltext = "3-04.htm"; + } + } + break; + case 13: + if (npcId == NPC[3]) + { + htmltext = "3-06.htm"; + } + else if (npcId == NPC[8]) + { + htmltext = "8-01.htm"; + } + break; + case 14: + if (npcId == NPC[8]) + { + htmltext = "8-03.htm"; + } + else if (npcId == NPC[11]) + { + htmltext = "11-01.htm"; + } + break; + case 15: + if (npcId == NPC[11]) + { + htmltext = "11-02.htm"; + } + else if (npcId == NPC[9]) + { + htmltext = "9-01.htm"; + } + break; + case 16: + if (npcId == NPC[9]) + { + htmltext = "9-02.htm"; + } + break; + case 17: + if (npcId == NPC[9]) + { + htmltext = "9-04.htm"; + } + else if (npcId == NPC[10]) + { + htmltext = "10-01.htm"; + } + break; + case 18: + if (npcId == NPC[10]) + { + htmltext = "10-05.htm"; + } + break; + case 19: + if (npcId == NPC[10]) + { + htmltext = "10-07.htm"; + } + else if (npcId == NPC[0]) + { + htmltext = "0-06.htm"; + } + break; + case 20: + if (npcId == NPC[0]) + { + if (player.getLevel() >= 76) + { + htmltext = "0-09.htm"; + if ((getClassId(player) < 131) || (getClassId(player) > 135)) // in Kamael quests, npc wants to chat for a bit before changing class + { + st.exitQuest(false); + addExpAndSp(player, 2299404, 0); + giveAdena(player, 5000000, true); + giveItems(player, 6622, 1); // XXX rewardItems? + int classId = getClassId(player); + int prevClass = getPrevClass(player); + player.setClassId(classId); + if (!player.isSubClassActive() && (player.getBaseClass() == prevClass)) + { + player.setBaseClass(classId); + } + player.broadcastUserInfo(); + cast(npc, player, 4339, 1); + } + } + else + { + htmltext = "0-010.htm"; + } + } + break; } } } @@ -1144,7 +1064,7 @@ public class SagasSuperClass extends Quest public static void main(String[] args) { // initialize superclass - new SagasSuperClass(-1, "SagasSuperClass", "Saga's SuperClass"); + new SagasSuperClass(-1, SagasSuperClass.class.getSimpleName(), "Saga's SuperClass"); // initialize subclasses _scripts.add(new SagaOfEvasSaint()); -- GitLab