From df691280736f3a0951277e0d28d9ba607a0c8006 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 25 Feb 2016 20:13:09 +0000 Subject: [PATCH] Quest Letters from the Queen: Forest of the Dead (10792). Contributed by gigilo1968. --- .../dist/db_installer/sql/game/spawnlist.sql | 4 + trunk/dist/game/data/html/default/33847-1.htm | 6 + trunk/dist/game/data/html/default/33847-2.htm | 4 + trunk/dist/game/data/html/default/33847-3.htm | 5 + trunk/dist/game/data/html/default/33847.htm | 1 + trunk/dist/game/data/html/default/33849-1.htm | 7 + trunk/dist/game/data/html/default/33849-2.htm | 5 + trunk/dist/game/data/html/default/33849-3.htm | 6 + trunk/dist/game/data/html/default/33849.htm | 6 + trunk/dist/game/data/multisell/3386601.xml | 2 + ...89_LettersFromTheQueen_SwampOfScreams.java | 8 +- .../no_quest.html | 1 + .../31328-01.html | 5 + .../31328-02.htm | 5 + .../31328-03.htm | 4 + .../31328-04.html | 4 + .../33849-01.html | 4 + .../33849-02.htm | 4 + .../33849-03.html | 4 + .../Announce.html | 6 + ...2_LettersFromTheQueen_ForestOfTheDead.java | 273 ++++++++++++++++++ .../noErtheia.html | 3 + .../no_level.htm | 3 + .../no_quest.html | 2 + .../scripts/quests/QuestMasterHandler.java | 4 +- 25 files changed, 372 insertions(+), 4 deletions(-) create mode 100644 trunk/dist/game/data/html/default/33847-1.htm create mode 100644 trunk/dist/game/data/html/default/33847-2.htm create mode 100644 trunk/dist/game/data/html/default/33847-3.htm create mode 100644 trunk/dist/game/data/html/default/33849-1.htm create mode 100644 trunk/dist/game/data/html/default/33849-2.htm create mode 100644 trunk/dist/game/data/html/default/33849-3.htm create mode 100644 trunk/dist/game/data/html/default/33849.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10789_LettersFromTheQueen_SwampOfScreams/no_quest.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-02.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-03.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-04.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/33849-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/33849-02.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/33849-03.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/Announce.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/Q10792_LettersFromTheQueen_ForestOfTheDead.java create mode 100644 trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/noErtheia.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/no_level.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/no_quest.html diff --git a/trunk/dist/db_installer/sql/game/spawnlist.sql b/trunk/dist/db_installer/sql/game/spawnlist.sql index c12550a059..1399245220 100644 --- a/trunk/dist/db_installer/sql/game/spawnlist.sql +++ b/trunk/dist/db_installer/sql/game/spawnlist.sql @@ -49700,3 +49700,7 @@ INSERT INTO `spawnlist` VALUES -- Dokara INSERT INTO `spawnlist` VALUES ("Swamp of Screams", 1, 33847, 69540, -50392, -3292, 0, 0, 10000, 60, 0, 0, 0); + +-- Hatuba +INSERT INTO `spawnlist` VALUES +("ForestOfTheDead", 1, 33849, 52480, -54127, -3090, 0, 0, 32600, 60, 0, 0, 0); diff --git a/trunk/dist/game/data/html/default/33847-1.htm b/trunk/dist/game/data/html/default/33847-1.htm new file mode 100644 index 0000000000..d2ad4563ea --- /dev/null +++ b/trunk/dist/game/data/html/default/33847-1.htm @@ -0,0 +1,6 @@ +Tracker Dokara:
+The Steel Door Guild tops all Dwarven guilds in power and prestige. As such, it is our duty to aid adventures who work to restore peace unto this war-torn land. We will be happy to offer special assistance if you have Steel Door Guild Coins.
+Well?
+ + + \ No newline at end of file diff --git a/trunk/dist/game/data/html/default/33847-2.htm b/trunk/dist/game/data/html/default/33847-2.htm new file mode 100644 index 0000000000..5f5290a874 --- /dev/null +++ b/trunk/dist/game/data/html/default/33847-2.htm @@ -0,0 +1,4 @@ +Tracker Dokara:
+You can use Steel Door Guild Coins to purchase virious items. These items will be more than enough to help you on your journey. + + \ No newline at end of file diff --git a/trunk/dist/game/data/html/default/33847-3.htm b/trunk/dist/game/data/html/default/33847-3.htm new file mode 100644 index 0000000000..b52156883a --- /dev/null +++ b/trunk/dist/game/data/html/default/33847-3.htm @@ -0,0 +1,5 @@ +Tracker Dokara:
+You can purchase various items with Steel Door Guild Coins.
+Well?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/html/default/33847.htm b/trunk/dist/game/data/html/default/33847.htm index 83e7783a60..927bd9ca13 100644 --- a/trunk/dist/game/data/html/default/33847.htm +++ b/trunk/dist/game/data/html/default/33847.htm @@ -3,6 +3,7 @@ Tracker Dokara:
What's your business here?
+ \ No newline at end of file diff --git a/trunk/dist/game/data/html/default/33849-1.htm b/trunk/dist/game/data/html/default/33849-1.htm new file mode 100644 index 0000000000..65e9528330 --- /dev/null +++ b/trunk/dist/game/data/html/default/33849-1.htm @@ -0,0 +1,7 @@ + +Tracker Hatuba:
+The Steel Door Guild tops all Dwarven guilds in power and prestige. As such, it is our duty to aid adventurers who work to restore peace unto this war-torn land. We will be happy to offer special assistance if you have Steel Door Guild Coins.
+Well?
+ + + diff --git a/trunk/dist/game/data/html/default/33849-2.htm b/trunk/dist/game/data/html/default/33849-2.htm new file mode 100644 index 0000000000..b9beafe518 --- /dev/null +++ b/trunk/dist/game/data/html/default/33849-2.htm @@ -0,0 +1,5 @@ + +Tracker Hatuba:
+You can use Steel Door Guild Coins to purchase various items. These items will be more than enough to help you on your journey.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/html/default/33849-3.htm b/trunk/dist/game/data/html/default/33849-3.htm new file mode 100644 index 0000000000..bbbf51dc1b --- /dev/null +++ b/trunk/dist/game/data/html/default/33849-3.htm @@ -0,0 +1,6 @@ + +Tracker Hatuba:
+You can purchase various items with Steel Door Guild Coins.
+Well?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/html/default/33849.htm b/trunk/dist/game/data/html/default/33849.htm new file mode 100644 index 0000000000..6e3b3cbc85 --- /dev/null +++ b/trunk/dist/game/data/html/default/33849.htm @@ -0,0 +1,6 @@ + + Tracker Hatuba:
+Shh! Evil lingers in this forest.
+ + diff --git a/trunk/dist/game/data/multisell/3386601.xml b/trunk/dist/game/data/multisell/3386601.xml index 0e4583f1ef..57ffa7ccef 100644 --- a/trunk/dist/game/data/multisell/3386601.xml +++ b/trunk/dist/game/data/multisell/3386601.xml @@ -3,6 +3,8 @@ 33866 33867 + 33847 + 33849 diff --git a/trunk/dist/game/data/scripts/quests/Q10789_LettersFromTheQueen_SwampOfScreams/Q10789_LettersFromTheQueen_SwampOfScreams.java b/trunk/dist/game/data/scripts/quests/Q10789_LettersFromTheQueen_SwampOfScreams/Q10789_LettersFromTheQueen_SwampOfScreams.java index f5a8e28a40..020f8a0ab0 100644 --- a/trunk/dist/game/data/scripts/quests/Q10789_LettersFromTheQueen_SwampOfScreams/Q10789_LettersFromTheQueen_SwampOfScreams.java +++ b/trunk/dist/game/data/scripts/quests/Q10789_LettersFromTheQueen_SwampOfScreams/Q10789_LettersFromTheQueen_SwampOfScreams.java @@ -27,6 +27,7 @@ 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.base.ClassId; import com.l2jmobius.gameserver.model.events.EventType; import com.l2jmobius.gameserver.model.events.ListenerRegisterType; import com.l2jmobius.gameserver.model.events.annotations.RegisterEvent; @@ -73,7 +74,8 @@ public class Q10789_LettersFromTheQueen_SwampOfScreams extends Quest implements addStartNpc(INNOCENTIN); addTalkId(INNOCENTIN, DOKARA); addCondRace(Race.ERTHEIA, "noErtheia.html"); - addCondMinLevel(MIN_LEVEL, "no_level.html"); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "no_level.html"); + addCondClassId(ClassId.MARAUDER, "no_quest.html"); BypassHandler.getInstance().registerHandler(this); } @@ -214,7 +216,7 @@ public class Q10789_LettersFromTheQueen_SwampOfScreams extends Quest implements 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)) + if ((oldLevel == (newLevel - 1)) && (player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL) && (player.getRace() == Race.ERTHEIA) && (player.getClassId() == ClassId.MARAUDER)) { final QuestState qs = getQuestState(player, false); if (qs == null) @@ -230,7 +232,7 @@ public class Q10789_LettersFromTheQueen_SwampOfScreams extends Quest implements 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)) + if ((qs != null) || (player.getLevel() < MIN_LEVEL) || (player.getLevel() > MAX_LEVEL) || ((player.getRace() != Race.ERTHEIA) && (player.getClassId() != ClassId.MARAUDER))) { return false; } diff --git a/trunk/dist/game/data/scripts/quests/Q10789_LettersFromTheQueen_SwampOfScreams/no_quest.html b/trunk/dist/game/data/scripts/quests/Q10789_LettersFromTheQueen_SwampOfScreams/no_quest.html new file mode 100644 index 0000000000..216c66a59a --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10789_LettersFromTheQueen_SwampOfScreams/no_quest.html @@ -0,0 +1 @@ +You either don't meet this NPC's minimum quest requirements, or your level is too low to start this quest. \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-01.html b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-01.html new file mode 100644 index 0000000000..e9c102bb92 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-01.html @@ -0,0 +1,5 @@ +High Priest Innocentin:
+What brings you here?
+I'm just an empthy shell that can't hear the goddess' voice anymore.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-02.htm b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-02.htm new file mode 100644 index 0000000000..b9d698fad4 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-02.htm @@ -0,0 +1,5 @@ +High Priest Innocentin:
+Oh, you are the Ertheia That the messengers promised would help us? Lately, we've had a lot of problems here in Rune Castle. We haven't been able to take care of everything because of the sheer amout.
+Do you think you can help us?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-03.htm b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-03.htm new file mode 100644 index 0000000000..8f1082ec08 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-03.htm @@ -0,0 +1,4 @@ +High Priest Innocentin:
+Thank you. I never thought that one of the Ertheia that only come out in legends would come to help us like this... It looks like the gods haven't forsaken us.
+First, go to the Forest of the Dead and find Tracker Hatuba. He will tell you the details. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-04.html b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-04.html new file mode 100644 index 0000000000..720d691363 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/31328-04.html @@ -0,0 +1,4 @@ +High Priest Innocentin:
+I'm sure an Ertheia knows much better than us.
+First, go to the Forest of the Dead and find Tracker Hatuba. He will tell you the details. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/33849-01.html b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/33849-01.html new file mode 100644 index 0000000000..170da419ab --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/33849-01.html @@ -0,0 +1,4 @@ +Tracker Hatuba:
+Who are you and why are you here?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/33849-02.htm b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/33849-02.htm new file mode 100644 index 0000000000..b0b3f93418 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/33849-02.htm @@ -0,0 +1,4 @@ +Tracker Hatuba:
+Innocentin sent you? Hm. I did mention in passing that I needed some help. Looks like he hadn't forgotten.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/33849-03.html b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/33849-03.html new file mode 100644 index 0000000000..a0d3a1f18e --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/33849-03.html @@ -0,0 +1,4 @@ +Tracker Hatuba:
+Good. They've sent us someone who could actually be of some help.
+(You can get next Letters from the Queen at Lv.70.) + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/Announce.html b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/Announce.html new file mode 100644 index 0000000000..6618e28b64 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/Announce.html @@ -0,0 +1,6 @@ +The Queen's Letter
+The Town of Rune asked for help.
+We are held by an oath to help. Go see High Priest Innocentin in Town of Rune.
+He will tell you about the incidents in the Forest of the Dead.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/Q10792_LettersFromTheQueen_ForestOfTheDead.java b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/Q10792_LettersFromTheQueen_ForestOfTheDead.java new file mode 100644 index 0000000000..649f893513 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/Q10792_LettersFromTheQueen_ForestOfTheDead.java @@ -0,0 +1,273 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package quests.Q10792_LettersFromTheQueen_ForestOfTheDead; + +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.base.ClassId; +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.NpcStringId; +import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; +import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * Letters from the Queen: Forest of the Dead (10792) + * @URL https://l2wiki.com/Letters_from_the_Queen:_Forest_of_the_Dead + * @author Gigi + */ +public class Q10792_LettersFromTheQueen_ForestOfTheDead extends Quest implements IBypassHandler +{ + // NPCs + private static final int INNOCENTIN = 31328; + private static final int HATUBA = 33849; + // Items + private static final ItemHolder SCROLL_OF_ESCAPE_FOREST_OF_THE_DEAD = new ItemHolder(37031, 1); + private static final ItemHolder STEEL_DOOR_GUILD = new ItemHolder(37045, 91); + private static final ItemHolder EWA = new ItemHolder(729, 1); + // Reward + private static final int EXP_REWARD = 942690; + private static final int SP_REWARD = 226; + // Misc + private static final int MIN_LEVEL = 65; + private static final int MAX_LEVEL = 69; + // Teleport + private static final Location TP_LOC = new Location(36599, -49238, -1133); + private static final String[] TP_COMMANDS = + { + "Q10792_Teleport" + }; + + public Q10792_LettersFromTheQueen_ForestOfTheDead() + { + super(10792, Q10792_LettersFromTheQueen_ForestOfTheDead.class.getSimpleName(), "Letters from the Queen: ForestOfTheDead"); + addStartNpc(INNOCENTIN); + addTalkId(INNOCENTIN, HATUBA); + addCondRace(Race.ERTHEIA, "noErtheia.html"); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "no_level.html"); + addCondClassId(ClassId.CLOUD_BREAKER, "no_quest.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 "31328-02.htm": + case "31328-04.html": + case "33849-02.htm": + { + htmltext = event; + break; + } + case "31328-03.htm": + { + qs.startQuest(); + if (getQuestItemsCount(player, SCROLL_OF_ESCAPE_FOREST_OF_THE_DEAD.getId()) < 1) + { + giveItems(player, SCROLL_OF_ESCAPE_FOREST_OF_THE_DEAD); + player.sendPacket(new ExShowScreenMessage("Try using the teleport scroll Innocentin gave you to go to Forest of the Dead.", 10000)); + qs.setCond(2, true); + htmltext = event; + } + break; + } + case "33849-03.html": + { + if (qs.isCond(2)) + { + showOnScreenMsg(player, NpcStringId.GROW_STRONGER_HERE_UNTIL_YOU_RECEIVE_THE_NEXT_LETTER_FROM_QUEEN_NAVARI_AT_LV_70, ExShowScreenMessage.TOP_CENTER, 5000); + giveItems(player, STEEL_DOOR_GUILD); + giveItems(player, EWA); + addExpAndSp(player, 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 INNOCENTIN: + { + htmltext = "31328-01.html"; + break; + } + + case HATUBA: + { + if ((player.getRace() != Race.ERTHEIA)) + { + htmltext = getNoQuestMsg(player); + } + else if (qs.isCreated()) + { + htmltext = getNoQuestMsg(player); + } + break; + } + } + break; + } + case State.STARTED: + { + switch (npc.getId()) + { + case INNOCENTIN: + { + if (qs.isCond(1)) + { + playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE); + htmltext = "31328-03.htm"; + } + else if (qs.isCond(2)) + { + htmltext = "31328-04.html"; + } + break; + } + case HATUBA: + { + if (qs.isCond(2)) + { + htmltext = "33849-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) && (player.getClassId() == ClassId.CLOUD_BREAKER)) + { + 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/Q10792_LettersFromTheQueen_ForestOfTheDead/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) && (player.getClassId() != ClassId.CLOUD_BREAKER))) + { + 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/Q10792_LettersFromTheQueen_ForestOfTheDead/noErtheia.html b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/noErtheia.html new file mode 100644 index 0000000000..ea67e16f1c --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/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/Q10792_LettersFromTheQueen_ForestOfTheDead/no_level.htm b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/no_level.htm new file mode 100644 index 0000000000..e8ee20551f --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/no_level.htm @@ -0,0 +1,3 @@ +You don't meet level requirements
+(Quest available from level 65 - 69) + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/no_quest.html b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/no_quest.html new file mode 100644 index 0000000000..3a4a6cf778 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10792_LettersFromTheQueen_ForestOfTheDead/no_quest.html @@ -0,0 +1,2 @@ +You either don't meet this NPC's minimum quest requirements, or your level is too low to start this quest. + \ 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 9ad1ea3149..84c2feebaf 100644 --- a/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -292,6 +292,7 @@ import quests.Q10769_LettersFromTheQueen_CrumaTower.Q10769_LettersFromTheQueen_C import quests.Q10782_LettersFromTheQueen_ForsakenPlains.Q10782_LettersFromTheQueen_ForsakenPlains; import quests.Q10785_LettersFromTheQueen_FieldsOfMassacre.Q10785_LettersFromTheQueen_FieldsOfMassacre; import quests.Q10789_LettersFromTheQueen_SwampOfScreams.Q10789_LettersFromTheQueen_SwampOfScreams; +import quests.Q10792_LettersFromTheQueen_ForestOfTheDead.Q10792_LettersFromTheQueen_ForestOfTheDead; /** * @author NosBit @@ -574,7 +575,8 @@ final class QuestMasterHandler Q10769_LettersFromTheQueen_CrumaTower.class, Q10782_LettersFromTheQueen_ForsakenPlains.class, Q10785_LettersFromTheQueen_FieldsOfMassacre.class, - Q10789_LettersFromTheQueen_SwampOfScreams.class + Q10789_LettersFromTheQueen_SwampOfScreams.class, + Q10792_LettersFromTheQueen_ForestOfTheDead.class }; public static void main(String[] args)