From 36ce794ee4b318b56c16b04fd91fa75e9c253b80 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 11 Feb 2016 07:39:42 +0000 Subject: [PATCH] Quest Letters From The Queen: Fields Of Massacre (10785). Contributed by gigilo1968. --- .../30857-01.html | 4 + .../30857-02.htm | 4 + .../30857-03.htm | 7 + .../30857-04.html | 4 + .../33867-01.html | 4 + .../33867-02.htm | 4 + .../33867-03.htm | 4 + .../Announce.html | 5 + ..._LettersFromTheQueen_FieldsOfMassacre.java | 253 ++++++++++++++++++ .../noErtheia.html | 3 + .../no_level.htm | 3 + .../scripts/quests/QuestMasterHandler.java | 5 +- 12 files changed, 298 insertions(+), 2 deletions(-) create mode 100644 trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-02.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-03.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-04.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-02.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-03.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/Announce.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/Q10785_LettersFromTheQueen_FieldsOfMassacre.java create mode 100644 trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/noErtheia.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/no_level.htm diff --git a/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-01.html b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-01.html new file mode 100644 index 0000000000..edceb0d1ac --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-01.html @@ -0,0 +1,4 @@ +High Priest Orven:
+Welcome. I have been waiting for you. The item you could not find the previous time has been found, which is why I contacted Queen Navari. I was sure that you would come this time.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-02.htm b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-02.htm new file mode 100644 index 0000000000..cda4e08b04 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-02.htm @@ -0,0 +1,4 @@ +High Priest Orven:
+You look rather worried. That device must have been important. But I do not think that rushing things will solve issue.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-03.htm b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-03.htm new file mode 100644 index 0000000000..f7997ec6a2 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-03.htm @@ -0,0 +1,7 @@ +High Priest Orven:
+Good idea. I did not confirm that device myself. +Rather, someone else had reported. +I'm not sure what it is, but it's definitely not ours. Its looks similar to the one the delegation had, which is why I was sure that it was that. + +First go find Shuvann at the Field of Massacre. It was him who found the device first. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-04.html b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-04.html new file mode 100644 index 0000000000..b300cf17f5 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/30857-04.html @@ -0,0 +1,4 @@ +High Priest Orven:
+I'm sure an Ertheia knows much better than us. First go find Shuvann at the Field of Massacre.
+It was him who found the device first + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-01.html b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-01.html new file mode 100644 index 0000000000..cb6e50c32b --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-01.html @@ -0,0 +1,4 @@ +Shuvann:
+What brings you here? The Fields of Massacre is not safe. I encourage you to go back.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-02.htm b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-02.htm new file mode 100644 index 0000000000..646a67143c --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-02.htm @@ -0,0 +1,4 @@ +Shuvann:
+Oh! You must be here for the item I came across. I did hear from Orven. It must be important to Ertheia.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-03.htm b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-03.htm new file mode 100644 index 0000000000..b1f32d98ab --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/33867-03.htm @@ -0,0 +1,4 @@ +Shuvann:
+I see. Let me find the document, where I recorded what happened.
+(You can obtain the next Letter from the Queen at Level 65.) + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/Announce.html b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/Announce.html new file mode 100644 index 0000000000..e7779e9b9d --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/Announce.html @@ -0,0 +1,5 @@ +The Queen's Letter
+A part of the Broken Device has been found. You must retrieve it
+Go talk to High Priest Orven in Einhased Temole in the Town of Aden. He will tell you the details.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/Q10785_LettersFromTheQueen_FieldsOfMassacre.java b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/Q10785_LettersFromTheQueen_FieldsOfMassacre.java new file mode 100644 index 0000000000..780338602e --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/Q10785_LettersFromTheQueen_FieldsOfMassacre.java @@ -0,0 +1,253 @@ +package quests.Q10785_LettersFromTheQueen_FieldsOfMassacre; + +import com.l2jmobius.Config; +import com.l2jmobius.gameserver.ai.CtrlIntention; +import com.l2jmobius.gameserver.cache.HtmCache; +import com.l2jmobius.gameserver.enums.QuestSound; +import com.l2jmobius.gameserver.enums.Race; +import com.l2jmobius.gameserver.handler.BypassHandler; +import com.l2jmobius.gameserver.handler.IBypassHandler; +import com.l2jmobius.gameserver.model.Location; +import com.l2jmobius.gameserver.model.actor.L2Character; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.events.EventType; +import com.l2jmobius.gameserver.model.events.ListenerRegisterType; +import com.l2jmobius.gameserver.model.events.annotations.RegisterEvent; +import com.l2jmobius.gameserver.model.events.annotations.RegisterType; +import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerLevelChanged; +import com.l2jmobius.gameserver.model.holders.ItemHolder; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; +import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; +import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * Letters From The Queen: Fields Of Massacre (10785) + * @URL https://l2wiki.com/Letters_from_the_Queen:_Fields_of_Massacre + * @author Gigi + */ +public class Q10785_LettersFromTheQueen_FieldsOfMassacre extends Quest implements IBypassHandler +{ + // NPCs + private static final int ORVEN = 30857; + private static final int SHUVANN = 33867; + // Items + private static final ItemHolder SCROLL_OF_ESCAPE_FIELDS_OF_MASSACRE = new ItemHolder(37029, 1); + private static final ItemHolder STEEL_DOOR_GUILD = new ItemHolder(37045, 71); + private static final ItemHolder EWA = new ItemHolder(729, 1); + // Reward + private static final int EXP_REWARD = 807240; + private static final int SP_REWARD = 193; + // Misc + private static final int MIN_LEVEL = 61; + private static final int MAX_LEVEL = 64; + // Teleport + private static final Location TP_LOC = new Location(147446, 22761, -1984); + private static final String[] TP_COMMANDS = + { + "Q10785_Teleport" + }; + + public Q10785_LettersFromTheQueen_FieldsOfMassacre() + { + super(10785, Q10785_LettersFromTheQueen_FieldsOfMassacre.class.getSimpleName(), "Letters from the Queen: FieldsOfMassacre"); + addStartNpc(ORVEN); + addTalkId(ORVEN, SHUVANN); + addCondRace(Race.ERTHEIA, "noErtheia.html"); + addCondMinLevel(MIN_LEVEL, "no_level.html"); + BypassHandler.getInstance().registerHandler(this); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return null; + } + String htmltext = null; + switch (event) + { + case "30857-02.htm": + case "30857-04.html": + case "33867-02.htm": + { + htmltext = event; + break; + } + case "30857-03.htm": // start the quest + { + qs.startQuest(); + if (qs.getQuestItemsCount(SCROLL_OF_ESCAPE_FIELDS_OF_MASSACRE.getId()) < 1) + { + qs.giveItems(SCROLL_OF_ESCAPE_FIELDS_OF_MASSACRE); + player.sendPacket(new ExShowScreenMessage("Try using the teleport scroll Orven gave you to go to Fields of Massacre.", 10000)); + qs.setCond(2, true); + htmltext = event; + } + break; + } + case "33867-03.htm": + { + if (qs.isCond(2)) + { + player.sendPacket(new ExShowScreenMessage("Grow stronger here until you receive the next letter from Queen Navari at Lv. 65!", 5000)); + qs.giveItems(STEEL_DOOR_GUILD); + qs.giveItems(EWA); + qs.addExpAndSp(EXP_REWARD, SP_REWARD); + playSound(player, QuestSound.ITEMSOUND_QUEST_FINISH); + qs.exitQuest(false, true); + htmltext = event; + } + break; + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = null; + if (qs == null) + { + return htmltext; + } + + if (player.getRace() != Race.ERTHEIA) + { + return "noErtheia.html"; + } + + switch (qs.getState()) + { + case State.CREATED: + { + switch (npc.getId()) + { + case ORVEN: + { + htmltext = "30857-01.html"; + break; + } + case SHUVANN: + { + if (player.getRace() != Race.ERTHEIA) + { + htmltext = getNoQuestMsg(player); + } + else if (qs.isCreated()) + { + htmltext = getNoQuestMsg(player); + } + break; + } + } + break; + } + case State.STARTED: + { + switch (npc.getId()) + { + case ORVEN: + { + if (qs.isCond(1)) + { + playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE); + htmltext = "30857-03.htm"; + } + else if (qs.isCond(2)) + { + htmltext = "30857-04.html"; + } + break; + } + case SHUVANN: + { + if (qs.isCond(2)) + { + htmltext = "33867-01.html"; + } + break; + } + } + break; + } + case State.COMPLETED: + { + htmltext = getAlreadyCompletedMsg(player); + break; + } + } + return htmltext; + } + + @RegisterEvent(EventType.ON_PLAYER_LEVEL_CHANGED) + @RegisterType(ListenerRegisterType.GLOBAL) + public void OnPlayerLevelChanged(OnPlayerLevelChanged event) + { + if (Config.DISABLE_TUTORIAL) + { + return; + } + final L2PcInstance player = event.getActiveChar(); + final int oldLevel = event.getOldLevel(); + final int newLevel = event.getNewLevel(); + if ((oldLevel == (newLevel - 1)) && (player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() == Race.ERTHEIA)) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + final NpcHtmlMessage html = new NpcHtmlMessage(0, 0); + html.setHtml(HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/Announce.html")); + player.sendPacket(html); + } + } + } + + @Override + public boolean useBypass(String command, L2PcInstance player, L2Character bypassOrigin) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) || (player.getLevel() < MIN_LEVEL) || (player.getLevel() > MAX_LEVEL) || (player.getRace() != Race.ERTHEIA)) + { + return false; + } + if (player.isInParty()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in party.", 5000)); + } + else if (player.isInCombat()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you in combat status.", 5000)); + } + else if (player.isInDuel()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in a duel.", 5000)); + } + else if (player.isInOlympiadMode()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in Olympiad.", 5000)); + } + else if (player.isInVehicle()) + { + player.sendPacket(new ExShowScreenMessage("You cannot teleport when you are in any vehicle or mount.", 5000)); + } + else + { + player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); + player.teleToLocation(TP_LOC); + } + return true; + } + + @Override + public String[] getBypassList() + { + return TP_COMMANDS; + } +} \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/noErtheia.html b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/noErtheia.html new file mode 100644 index 0000000000..ea67e16f1c --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/noErtheia.html @@ -0,0 +1,3 @@ +High Priest Orven:
+You are not Ertheia, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/no_level.htm b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/no_level.htm new file mode 100644 index 0000000000..2ab4634673 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10785_LettersFromTheQueen_FieldsOfMassacre/no_level.htm @@ -0,0 +1,3 @@ +You don't meet level requirements
+(Quest available from level 61 and above) + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java b/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java index 44ee1b193c..e37874e6eb 100644 --- a/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -274,7 +274,7 @@ import quests.Q10763_TerrifyingChertuba.Q10763_TerrifyingChertuba; import quests.Q10764_FreeSpirit.Q10764_FreeSpirit; import quests.Q10769_LettersFromTheQueen_CrumaTower.Q10769_LettersFromTheQueen_CrumaTower; import quests.Q10782_LettersFromTheQueen_ForsakenPlains.Q10782_LettersFromTheQueen_ForsakenPlains; - +import quests.Q10785_LettersFromTheQueen_FieldsOfMassacre.Q10785_LettersFromTheQueen_FieldsOfMassacre; /** * @author NosBit @@ -539,7 +539,8 @@ final class QuestMasterHandler Q10763_TerrifyingChertuba.class, Q10764_FreeSpirit.class, Q10769_LettersFromTheQueen_CrumaTower.class, - Q10782_LettersFromTheQueen_ForsakenPlains.class + Q10782_LettersFromTheQueen_ForsakenPlains.class, + Q10785_LettersFromTheQueen_FieldsOfMassacre.class }; public static void main(String[] args)