diff --git a/trunk/dist/game/data/scripts/quests/MissingQuests.txt b/trunk/dist/game/data/scripts/quests/MissingQuests.txt index 990b807862..3b95231e68 100644 --- a/trunk/dist/game/data/scripts/quests/MissingQuests.txt +++ b/trunk/dist/game/data/scripts/quests/MissingQuests.txt @@ -100,7 +100,6 @@ 10380 The Executioner's Execution 10388 Conspiracy Behind Doors 10389 The Voice of Authority -10415 Kekropus' Letter: With Wisdom (7/9) 10422 Assassination of the Varka Silenos Chief 10424 Kekropus' Letter: Belos' Whereabouts (8/9) 10425 The Ketra Orc Supporters @@ -155,9 +154,7 @@ 10748 Mysterious Suggestion - 1 10749 Mysterious Suggestion - 2 10753 Winds of Fate: Choices -10766 A New Craft 10767 A Whole New Level of Alchemy -10791 The Man of Mystery 10794 Investigate the Forest 10796 The Eye that Defied the Gods 10797 Crossing Fate diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/31292-01.html b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/31292-01.html new file mode 100644 index 0000000000..781e3c744b --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/31292-01.html @@ -0,0 +1,4 @@ +Captain Andrei:
+Nice to meet you. Kekropus promised me that he would send me someone trustworthy. I guess he kept his word. You probably know what is going on after reading Kekropus letter, but let me tell you more details.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/31292-02.html b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/31292-02.html new file mode 100644 index 0000000000..1e4eb5b01a --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/31292-02.html @@ -0,0 +1,4 @@ +Captain Andrei:
+Orc Trackers were chasing after a suspicious group when they split up toward the Wall of Argos. The Orc Trackers also divided into two groups and chased after them separately. But now they are asking for help. I think both of the groups have run into problems.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/31292-03.html b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/31292-03.html new file mode 100644 index 0000000000..51552c52c0 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/31292-03.html @@ -0,0 +1,4 @@ +Captain Andrei:
+You're a brave one, aren't you? Go to the Wall of Argos and meet Janitt + Get the details from him and help him with whatever he needs. I look forward to hearing the result. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/31292-04.html b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/31292-04.html new file mode 100644 index 0000000000..76f6d782a8 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/31292-04.html @@ -0,0 +1,4 @@ +Captain Andrei:
+Hurry to the Wall of Argos and help the Giant's Minion Janitt there.
+To get there quickly, use the Scroll of Escape: Wall of Argos I gave you. You could also ask a Gatekeeper for help.. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/33851-01.html b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/33851-01.html new file mode 100644 index 0000000000..ae134ef7a9 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/33851-01.html @@ -0,0 +1,4 @@ +Giant's Minion Janitt:
+Me? I'm Janitt. The Giant's Minion. Since Shilen and her followees ruined the world, I have been chasing them. For revenge!
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/33851-02.html b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/33851-02.html new file mode 100644 index 0000000000..03c22dd3d8 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/33851-02.html @@ -0,0 +1,4 @@ +Giant's Minion Janitt:
+It was a trap! But no more. The Suspicious Vagabond will never harm another. Not if you go after him
+- Note: You can develop yourself through quests and hunting at the hunting ground on Wall of Argos. You can get the next item, Kekropus' Letter, at Lv. 76. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/Q10415_KekropusLetterWithWisdom.java b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/Q10415_KekropusLetterWithWisdom.java new file mode 100644 index 0000000000..0b6d28448d --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/Q10415_KekropusLetterWithWisdom.java @@ -0,0 +1,151 @@ +/* + * 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.Q10415_KekropusLetterWithWisdom; + +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.quest.QuestState; +import com.l2jmobius.gameserver.network.NpcStringId; +import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; + +import quests.LetterQuest; + +/** + * Kekropus Letter: With Wisdom (10415) + * @URL https://l2wiki.com/Kekropus%27_Letter:_With_Wisdom + * @author Gigi + */ +public class Q10415_KekropusLetterWithWisdom extends LetterQuest +{ + // NPCs + private static final int ANDREI = 31292; + private static final int JANITT = 33851; + private static final int INVISIBLE_NPC = 19543; + // Items + private static final int SOE_WALL_OF_ARGOS = 37032; // Scroll of Escape: Wall of Argos + private static final int SOE_TOWN_OF_GODDARD = 37119; // Scroll of Escape: Town of Goddard + private static final int EAA = 730; // Scroll: Enchant Armor (A-grade) + // Requirements + private static final int MIN_LEVEL = 70; + private static final int MAX_LEVEL = 75; + // Teleport + private static final Location TELEPORT_LOC = new Location(147491, -56633, -2776); + + public Q10415_KekropusLetterWithWisdom() + { + super(10415); + addTalkId(ANDREI, JANITT); + addSeeCreatureId(INVISIBLE_NPC); + + setIsErtheiaQuest(false); + setLevel(MIN_LEVEL, MAX_LEVEL); + setStartQuestSound("Npcdialog1.kekrops_quest_8"); + setStartLocation(SOE_TOWN_OF_GODDARD, TELEPORT_LOC); + registerQuestItems(SOE_TOWN_OF_GODDARD, SOE_WALL_OF_ARGOS); + } + + @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 "31292-02.html": + { + htmltext = event; + break; + } + case "31292-03.html": + { + if (qs.isCond(1)) + { + takeItems(player, SOE_TOWN_OF_GODDARD, -1); + giveItems(player, SOE_WALL_OF_ARGOS, 1); + qs.setCond(2, true); + htmltext = event; + } + break; + } + case "33851-02.html": + { + if (qs.isCond(2)) + { + qs.exitQuest(false, true); + giveItems(player, EAA, 5); + giveStoryQuestReward(player, 123); + if (player.getLevel() >= MIN_LEVEL) + { + addExpAndSp(player, 1_088_640, 261); + } + showOnScreenMsg(player, NpcStringId.GROW_STRONGER_HERE_UNTIL_YOU_RECEIVE_THE_NEXT_LETTER_FROM_KEKROPUS_AT_LV_76, ExShowScreenMessage.TOP_CENTER, 6000); + htmltext = event; + } + break; + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + if (qs.isStarted()) + { + if ((npc.getId() == ANDREI) && qs.isCond(1)) + { + htmltext = "31292-01.html"; + } + else if (qs.isCond(2)) + { + htmltext = npc.getId() == ANDREI ? "31292-04.html" : "33851-01.html"; + } + } + return htmltext; + } + + @Override + public String onSeeCreature(L2Npc npc, L2Character creature, boolean isSummon) + { + if (creature.isPlayer()) + { + final L2PcInstance player = creature.getActingPlayer(); + final QuestState st = getQuestState(player, false); + + if ((st != null) && st.isCond(2)) + { + showOnScreenMsg(player, NpcStringId.WALL_OF_ARGOS_IS_A_GOOD_HUNTING_ZONE_FOR_LV_70_OR_ABOVE, ExShowScreenMessage.TOP_CENTER, 6000); + } + } + return super.onSeeCreature(npc, creature, isSummon); + } + + @Override + public boolean canShowTutorialMark(L2PcInstance player) + { + return player.isMageClass(); + } +} diff --git a/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/popup.html b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/popup.html new file mode 100644 index 0000000000..f48296f3d8 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10415_KekropusLetterWithWisdom/popup.html @@ -0,0 +1,6 @@ +Kekropus' LetterKekropus' Letter:
+A group of suspicious people were seen in the Wall of Argos, a part of the Goddard territory. Go to Captain Andrei in the Town of Goddard for details.
+(A Scroll of Escape is enclosed. If you want to go now, use it to travel immediately.)
+ + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-01.htm b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-01.htm new file mode 100644 index 0000000000..c2ee2611fe --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-01.htm @@ -0,0 +1,5 @@ +Magister Ayanthe:
+Now that you've unlocked your ability, you should get ready to take the leap into the world. Speaking of which, I'd like to advise you to learn a skill that will help you.
+We call it Alchemy.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-02.htm b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-02.htm new file mode 100644 index 0000000000..a03b905237 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-02.htm @@ -0,0 +1,5 @@ +Magister Ayanthe:
+While we did not need means of wealth for our lives, the Material Realm requires Adena to live. That's why we developed a new study where we use existing materials to create new valuables: Alchemy.
+Using this skill will help you obtain what you need in the Material Realm.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-03.htm b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-03.htm new file mode 100644 index 0000000000..d171632aaf --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-03.htm @@ -0,0 +1,5 @@ +Magister Ayanthe:
+Interested? Good. You will need that to learn Alchemy.
+Unfortunately, there's nothing more I can tell you about Alchemy. In Faeron Village, there is an Ertheia who invented and organized Alchemy. You can go to her to learn.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-04.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-04.html new file mode 100644 index 0000000000..6103cf3d45 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-04.html @@ -0,0 +1,3 @@ +Magister Ayanthe:
+Go to Alchemist Zephyra, one of the twin sisters who invented Alchemy after Faeron Village came to the Material Realm. Tell her that I sent you, and she will teach you the basics. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-05.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-05.html new file mode 100644 index 0000000000..93fd7e0ed3 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33942-05.html @@ -0,0 +1,3 @@ +Magister Ayanthe:
+Go to Alchemist Zephyra. Say that I have sent you, and she will teach you the basics of Alchemy. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-01.htm b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-01.htm new file mode 100644 index 0000000000..a36c5675d5 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-01.htm @@ -0,0 +1,5 @@ +Master Katalin:
+Now that you've unlocked your ability, you should get ready to take the leap into the world. Speaking of which, I'd like to advise you to learn a skill that will help you.
+We call it Alchemy.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-02.htm b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-02.htm new file mode 100644 index 0000000000..9537484aee --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-02.htm @@ -0,0 +1,5 @@ +Master Katalin:
+While we did not need means of wealth for our lives, the Material Realm requires Adena to live. That's why we developed a new study where we use existing materials to create new valuables: Alchemy.
+Using this skill will help you obtain what you need in the Material Realm.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-03.htm b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-03.htm new file mode 100644 index 0000000000..83a256c831 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-03.htm @@ -0,0 +1,5 @@ +Master Katalin:
+Interested? Good. You will need that to learn Alchemy.
+Unfortunately, there's nothing more I can tell you about Alchemy. In Faeron Village, there is an Ertheia who invented and organized Alchemy. You can go to her to learn.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-04.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-04.html new file mode 100644 index 0000000000..412984153f --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-04.html @@ -0,0 +1,3 @@ +Master Katalin:
+Go to Alchemist Zephyra, one of the twin sisters who invented Alchemy after Faeron Village came to the Material Realm. Tell her that I sent you, and she will teach you the basics. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-05.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-05.html new file mode 100644 index 0000000000..b90cede551 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33943-05.html @@ -0,0 +1,3 @@ +Master Katalin:
+Go to Alchemist Zephyra. Say that I have sent you, and she will teach you the basics of Alchemy. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-01.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-01.html new file mode 100644 index 0000000000..029c26f266 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-01.html @@ -0,0 +1,4 @@ +Zephyra the Alchemist:
+An Ertheia yet unknown to me. You must be new to the Material Realm. How may I help you?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-02.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-02.html new file mode 100644 index 0000000000..6a94b6c5b6 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-02.html @@ -0,0 +1,6 @@ +Zephyra the Alchemist:
+Oh! Learn about Alchemy? Fine, let me explain.
+Alchemy is divided into Combination, which makes Air Stones, and Transmutation, which uses Air Stones or Material Realm items to make Potions, Enchant Scrolls, Life Stones, and Dyes.
+You must have the power to control the wind spirits as a child of Sayha, but the amount of control needed for Alchemy calls for an Alchemy Cube.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-03.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-03.html new file mode 100644 index 0000000000..659733c87a --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-03.html @@ -0,0 +1,4 @@ +Zephyra the Alchemist:
+The Alchemy Cube is made of compressed wind energy. You may grind the items with it to make Air Stones.
+You cannot understand Alchemy through words. You've gotten this far, which means that you can use the Alchemy Cube. Let's try "Combination" to actually make something. I will allow you time to prepare. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-04.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-04.html new file mode 100644 index 0000000000..a0064352ac --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-04.html @@ -0,0 +1,4 @@ +Zephyra the Alchemist:
+Are you ready now? Let's try to make something with Alchemy. Try to remember the instructions. Bring me the transmuted item and I will trade it for something more valuable. You must make it.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-05.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-05.html new file mode 100644 index 0000000000..de6d043e8e --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-05.html @@ -0,0 +1,5 @@ +Zephyra the Alchemist:
+Now try making 1 Air Stone and 1 Windy Healing Potion.
+Use Alchemy - Combination to use an Alchemy Cube. You can create Air Stones with it. You can check the number of items you can get beforehand by inserting items in the Alchemy Cube. The more items you have in the cube, the more items you can get.
+Windy Healing Potions can be made via Alchemy - Transmutation. You can see the list of items you can make by clicking on Transmutation. Go to Pelu the Grocer for the items you need. Remember that you can only create one when you have all the required items. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-06.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-06.html new file mode 100644 index 0000000000..634edf39aa --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-06.html @@ -0,0 +1,4 @@ +Zephyra the Alchemist:
+Did you make it? Let me see. + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-07.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-07.html new file mode 100644 index 0000000000..70e1928a3f --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-07.html @@ -0,0 +1,3 @@ +Zephyra the Alchemist:
+Congratulations on understanding the basics of Alchemy. You can make the items you need in combat yourself with this skill. Or you could make money to buy those. I wish you luck then. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-08.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-08.html new file mode 100644 index 0000000000..de6d043e8e --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/33978-08.html @@ -0,0 +1,5 @@ +Zephyra the Alchemist:
+Now try making 1 Air Stone and 1 Windy Healing Potion.
+Use Alchemy - Combination to use an Alchemy Cube. You can create Air Stones with it. You can check the number of items you can get beforehand by inserting items in the Alchemy Cube. The more items you have in the cube, the more items you can get.
+Windy Healing Potions can be made via Alchemy - Transmutation. You can see the list of items you can make by clicking on Transmutation. Go to Pelu the Grocer for the items you need. Remember that you can only create one when you have all the required items. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/Q10766_ANewCraft.java b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/Q10766_ANewCraft.java new file mode 100644 index 0000000000..d003a3e0fe --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/Q10766_ANewCraft.java @@ -0,0 +1,211 @@ +/* + * 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.Q10766_ANewCraft; + +import com.l2jmobius.gameserver.enums.Race; +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.Id; +import com.l2jmobius.gameserver.model.events.annotations.RegisterEvent; +import com.l2jmobius.gameserver.model.events.annotations.RegisterType; +import com.l2jmobius.gameserver.model.events.impl.item.OnItemCreate; +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.network.serverpackets.TutorialShowHtml; + +/** + * A New Craft (10766) + * @URL https://l2wiki.com/A_New_Craft + * @author Gigi + */ +public class Q10766_ANewCraft extends Quest +{ + // NPCs + private static final int KATALIN = 33943; + private static final int AYANTHE = 33942; + private static final int ZEPHYRA = 33978; + // Items + private static final ItemHolder WINDY_HEALING_POTION = new ItemHolder(39466, 50); + private static final ItemHolder WINDY_QUICK_HEALING_POTION = new ItemHolder(39471, 50); + private static final int AIR_STONE = 39461; + private static final int WINDY_HEALING_POTION_1 = 39466; + // Misc + private static final int MIN_LEVEL = 40; + // Reward + private static final int EXP_REWARD = 168000; + private static final int SP_REWARD = 40; + + public Q10766_ANewCraft() + { + super(10766); + addStartNpc(KATALIN, AYANTHE); + addTalkId(KATALIN, AYANTHE, ZEPHYRA); + registerQuestItems(AIR_STONE, WINDY_HEALING_POTION_1); + addCondMinLevel(MIN_LEVEL, "noLevel.html"); + addCondRace(Race.ERTHEIA, "noErtheia.html"); + } + + @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 "33943-02.htm": + case "33943-03.htm": + case "33942-02.htm": + case "33942-03.htm": + case "33978-02.html": + { + htmltext = event; + break; + } + case "33943-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "33942-04.html": + { + qs.startQuest(); + htmltext = event; + break; + } + case "33978-03.html": + { + qs.setCond(2, true); + player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_026_alchemy_01.htm", TutorialShowHtml.LARGE_WINDOW)); + htmltext = event; + break; + } + case "33978-05.html": + { + qs.setCond(3, true); + qs.set(Integer.toString(AIR_STONE), 0); + qs.set(Integer.toString(WINDY_HEALING_POTION_1), 0); + htmltext = event; + break; + } + case "33978-07.html": + { + takeItems(player, AIR_STONE, 1); + takeItems(player, WINDY_HEALING_POTION_1, 1); + giveItems(player, WINDY_HEALING_POTION); + giveItems(player, WINDY_QUICK_HEALING_POTION); + addExpAndSp(player, EXP_REWARD, SP_REWARD); + 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 = getNoQuestMsg(player); + + switch (npc.getId()) + { + case KATALIN: + { + if (qs.isCreated() && !player.isMageClass()) + { + htmltext = "33943-01.htm"; + } + else + { + htmltext = "noFighter.html"; + } + if (qs.getCond() > 0) + { + htmltext = "33943-05.html"; + } + else if (qs.isCompleted()) + { + htmltext = getAlreadyCompletedMsg(player); + } + break; + } + case AYANTHE: + { + if (qs.isCreated() && player.isMageClass()) + { + htmltext = "33942-01.htm"; + } + else + { + htmltext = "noMage.html"; + } + if (qs.getCond() > 0) + { + htmltext = "33942-05.html"; + } + else if (qs.isCompleted()) + { + htmltext = getAlreadyCompletedMsg(player); + } + break; + } + case ZEPHYRA: + { + if (qs.isCond(1)) + { + htmltext = "33978-01.html"; + } + if (qs.isCond(2)) + { + htmltext = "33978-04.html"; + } + if (qs.isCond(3) && ((getQuestItemsCount(player, AIR_STONE) == 0) || (getQuestItemsCount(player, WINDY_HEALING_POTION_1) == 1))) + { + htmltext = "33978-08.html"; + } + if (qs.isCond(4)) + { + htmltext = "33978-06.html"; + } + } + } + return htmltext; + } + + @RegisterEvent(EventType.ON_ITEM_CREATE) + @RegisterType(ListenerRegisterType.ITEM) + @Id(AIR_STONE) + @Id(WINDY_HEALING_POTION_1) + public void onItemCreate(OnItemCreate event) + { + final L2PcInstance player = event.getActiveChar(); + final QuestState qs = getQuestState(player, false); + if ((qs != null) && (qs.isCond(3)) && (getQuestItemsCount(qs.getPlayer(), AIR_STONE) >= 1) && (getQuestItemsCount(qs.getPlayer(), WINDY_HEALING_POTION_1) >= 1)) + { + qs.setCond(4, true); + } + } +} \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/noErtheia.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/noErtheia.html new file mode 100644 index 0000000000..30c328973d --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/noErtheia.html @@ -0,0 +1,3 @@ +Ivory Tower Wizard Rombel:
+This quest is only for Ertheia class. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/noFighter.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/noFighter.html new file mode 100644 index 0000000000..e1d3390e03 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/noFighter.html @@ -0,0 +1,3 @@ +Master Katalin:
+This quest available only Fighter class Entheria race character + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/noLevel.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/noLevel.html new file mode 100644 index 0000000000..593813da23 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/noLevel.html @@ -0,0 +1,4 @@ +
+This mission will be too hard for you. Don't be disappointed. Once you have grown a little more, please come back
+(You must be level 40 or above to start this quest.) + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/noMage.html b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/noMage.html new file mode 100644 index 0000000000..68a717b8d9 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10766_ANewCraft/noMage.html @@ -0,0 +1,3 @@ +Magister Ayanthe:
+This quest available only Mage class Entheria race character + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-01.htm b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-01.htm new file mode 100644 index 0000000000..2ca1b9ad51 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-01.htm @@ -0,0 +1,4 @@ +Tracker Dokara:
+Wait! I thought if we felled that many Stakatos it'd be enough, but there's more of them. We'll need to find a better solution to this.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-02.htm b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-02.htm new file mode 100644 index 0000000000..2cbb8d9b32 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-02.htm @@ -0,0 +1,5 @@ +Tracker Dokara:
+I thought for sure that we'd gotten rid of them all...Were you really as thorough as you claim?
+No, someone recommended by Innocentin wouldn't be so careless. Did you happen to discover anything strange while fighting the Stakatos?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-03.htm b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-03.htm new file mode 100644 index 0000000000..aa62ea020f --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-03.htm @@ -0,0 +1,5 @@ +Tracker Dokara:
+A cocoon? No!
Are all these Stakatos being born out of cocoons? Wait, it sounds plausible. This means we need to get rid of more than just the Stakatos!
+I need your help again, in that case.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-04.htm b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-04.htm new file mode 100644 index 0000000000..7903a0d0cc --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-04.htm @@ -0,0 +1,4 @@ +Tracker Dokara:
+I'm guessing that these Suspicious Cocoons are the real problem. If we got rid of them, we'd be rid of the Stakato problem as well.
+Go get rid of 5 Suspicious Cocoons.That shouldn't be too difficult. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-05.html b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-05.html new file mode 100644 index 0000000000..82fdab2c53 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-05.html @@ -0,0 +1,4 @@ +Tracker Dokara:
+You're a few monsters short. +You weren't trying to fast talk me like everyone else, were you? + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-06.html b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-06.html new file mode 100644 index 0000000000..0cbceecdcc --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-06.html @@ -0,0 +1,4 @@ +Tracker Dokara:
+I think that takes care of it. Did anything happen while you were getting rid of those Suspicious Cocoons?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-07.html b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-07.html new file mode 100644 index 0000000000..8130a38402 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33847-07.html @@ -0,0 +1,5 @@ +html>Tracker Dokara:
+So, this Kain has appeared and helped you again? Pa'agrio always shows the way to outstanding warriors.
+Anyway, we know that those Suspicious Cocoons are the root of our problems, and you've gotten rid of a high number of them, so there's no longer a need to worry. Of course, this Kain fellow helped you, but to me, the outcome is all the same.
+Thank you for your help. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33993-01.html b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33993-01.html new file mode 100644 index 0000000000..1dc0e6d63d --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33993-01.html @@ -0,0 +1,4 @@ +Kain:
+You aren't strong enough to be out here alone.
+I stopped by because someone was having trouble with Stakato. How funny it's another Ertheia.
+ \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33993.html b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33993.html new file mode 100644 index 0000000000..7d865f077e --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/33993.html @@ -0,0 +1,6 @@ +Kain:
+What are Stakatos doing here?
+Huh? You're Ertheia. Faeron must be stable enough for you to leave town, eh?
+But what are you doing here? Did Stakatos attack you?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/Q10791_TheManOfMystery.java b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/Q10791_TheManOfMystery.java new file mode 100644 index 0000000000..5cb3feacc2 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/Q10791_TheManOfMystery.java @@ -0,0 +1,222 @@ +/* + * 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.Q10791_TheManOfMystery; + +import com.l2jmobius.gameserver.enums.QuestSound; +import com.l2jmobius.gameserver.enums.Race; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.actor.instance.L2QuestGuardInstance; +import com.l2jmobius.gameserver.model.base.ClassId; +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.ExQuestNpcLogList; + +import quests.Q10790_AMercenaryHelper.Q10790_AMercenaryHelper; + +/** + * The Man Of Mystery (10791) + * @URL https://l2wiki.com/The_Man_of_Mystery + * @author Gigi + */ +public class Q10791_TheManOfMystery extends Quest +{ + // NPCs + private static final int DOKARA = 33847; + private static final int KAIN_VAN_HALTER = 33993; + // Monsters + private static final int SUSPICIOUS_COCOON = 27536; + private static final int SUSPICIOUS_COCOON1 = 27537; + private static final int SUSPICIOUS_COCOON2 = 27538; + private static final int NEEDLE_STAKATO_CAPTAIN = 27542; + private static final int NEEDLE_STAKATO = 27543; + // Items + private static final int EAA = 730; + // Misc + private static final int MIN_LEVEL = 65; + private static final int MAX_LEVEL = 70; + + public Q10791_TheManOfMystery() + { + super(10791); + addStartNpc(DOKARA); + addTalkId(DOKARA, KAIN_VAN_HALTER); + addFirstTalkId(KAIN_VAN_HALTER); + addKillId(SUSPICIOUS_COCOON, SUSPICIOUS_COCOON1, SUSPICIOUS_COCOON2, NEEDLE_STAKATO_CAPTAIN); + addAttackId(NEEDLE_STAKATO_CAPTAIN); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "no_level.html"); + addCondRace(Race.ERTHEIA, "noErtheia.html"); + addCondClassId(ClassId.MARAUDER, "no_quest.html"); + addCondCompletedQuest(Q10790_AMercenaryHelper.class.getSimpleName(), "restriction.html"); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = event; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + + switch (event) + { + case "33847-02.htm": + case "33847-03.htm": + { + break; + } + case "33847-04.htm": + { + qs.startQuest(); + break; + } + case "thank": + { + npc.deleteMe(); + htmltext = "33993-01.html"; + break; + } + default: + { + if (qs.isCond(3)) + { + addExpAndSp(player, 16968420, 4072); + giveStoryQuestReward(player, 63); + giveItems(player, EAA, 2); + qs.exitQuest(false, true); + htmltext = "33847-07.html"; + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "33847-01.htm"; + break; + } + case State.STARTED: + { + if ((qs.getCond() > 0) && (qs.getCond() < 3)) + { + htmltext = "33847-05.html"; + } + else if (qs.isCond(3)) + { + htmltext = "33847-06.html"; + } + break; + } + case State.COMPLETED: + { + htmltext = getAlreadyCompletedMsg(player); + break; + } + } + return htmltext; + } + + @Override + public String onFirstTalk(L2Npc npc, L2PcInstance player) + { + return "33993.html"; + } + + @Override + public String onAttack(L2Npc npc, L2PcInstance attacker, int damage, boolean isSummon) + { + if (npc.isScriptValue(0)) + { + for (int i = 0; i < 5; i++) + { + final L2Npc creature = addSpawn(NEEDLE_STAKATO, npc.getX() + getRandom(-20, 20), npc.getY() + getRandom(-20, 20), npc.getZ(), npc.getHeading(), true, 120000, false); + addAttackPlayerDesire(creature, attacker); + npc.setScriptValue(1); + } + } + return super.onAttack(npc, attacker, damage, isSummon); + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) + { + final QuestState qs = getQuestState(killer, true); + if ((qs != null) && (qs.getCond() > 0)) + { + switch (npc.getId()) + { + case SUSPICIOUS_COCOON: + case SUSPICIOUS_COCOON1: + case SUSPICIOUS_COCOON2: + { + int kills = qs.getInt(Integer.toString(SUSPICIOUS_COCOON)); + if (kills < 5) + { + kills++; + qs.set(Integer.toString(SUSPICIOUS_COCOON), kills); + playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + if (kills >= 5) + { + final L2Npc monster = addSpawn(NEEDLE_STAKATO_CAPTAIN, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), true, 600000, false); + final L2QuestGuardInstance kain = (L2QuestGuardInstance) addSpawn(KAIN_VAN_HALTER, killer.getX() + getRandom(-100, 100), killer.getY() + getRandom(-100, 100), killer.getZ(), 0, true, 300000, false); + kain.setRunning(); + kain.setIsInvul(true); + kain.reduceCurrentHp(1, monster, null); // TODO: Find better way for attack + addAttackPlayerDesire(monster, killer); + qs.setCond(2); + } + break; + } + case NEEDLE_STAKATO_CAPTAIN: + { + int kills = qs.getInt(Integer.toString(NEEDLE_STAKATO_CAPTAIN)); + if ((kills < 1) && qs.isCond(2)) + { + kills++; + qs.set(Integer.toString(NEEDLE_STAKATO_CAPTAIN), kills); + playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + if (qs.getInt(Integer.toString(NEEDLE_STAKATO_CAPTAIN)) >= 1) + { + qs.setCond(1); + qs.setCond(3, true); + } + break; + } + } + final ExQuestNpcLogList log = new ExQuestNpcLogList(getId()); + log.addNpc(SUSPICIOUS_COCOON, qs.getInt(Integer.toString(SUSPICIOUS_COCOON))); + log.addNpc(NEEDLE_STAKATO_CAPTAIN, qs.getInt(Integer.toString(NEEDLE_STAKATO_CAPTAIN))); + qs.getPlayer().sendPacket(log); + } + return super.onKill(npc, killer, isSummon); + } +} \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/noErtheia.html b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/noErtheia.html new file mode 100644 index 0000000000..9cf9d66a8d --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/noErtheia.html @@ -0,0 +1,3 @@ +Tracker Dokara:
+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/Q10791_TheManOfMystery/no_class.html b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/no_class.html new file mode 100644 index 0000000000..d5fcf44977 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/no_class.html @@ -0,0 +1,3 @@ +You don't meet class requirements
+(Quest available for Ertheia Marauder.) + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/no_level.html b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/no_level.html new file mode 100644 index 0000000000..cecbd2469a --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/no_level.html @@ -0,0 +1,4 @@ +Tracker Dokara:
+You don't meet level requirements
+(Quest available from level 65 - 70) + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/no_quest.html b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/no_quest.html new file mode 100644 index 0000000000..26b4e5a666 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/no_quest.html @@ -0,0 +1 @@ +You are not Marauder class, this quest is not for you. \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/restriction.html b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/restriction.html new file mode 100644 index 0000000000..09f4081ea4 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10791_TheManOfMystery/restriction.html @@ -0,0 +1,3 @@ +Research Pio:
+(Quest only available to Ertheia characters Lv. 58-61 who have completed the quest "A Mercenary Helper.") + \ 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 b4f9c5cc0a..bfbc1b1324 100644 --- a/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -269,6 +269,7 @@ import quests.Q10411_KekropusLetterTheForestOfTheDead.Q10411_KekropusLetterTheFo import quests.Q10412_ASuspiciousVagabondInTheForest.Q10412_ASuspiciousVagabondInTheForest; import quests.Q10413_EmbryoInTheForestOfTheDead.Q10413_EmbryoInTheForestOfTheDead; import quests.Q10414_KekropusLetterWithCourage.Q10414_KekropusLetterWithCourage; +import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom; import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos; import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed; import quests.Q10421_AssassinationOfTheVarkaSilenosCommander.Q10421_AssassinationOfTheVarkaSilenosCommander; @@ -319,6 +320,7 @@ import quests.Q10761_AnOrcInLove.Q10761_AnOrcInLove; import quests.Q10762_MarionetteSpirit.Q10762_MarionetteSpirit; import quests.Q10763_TerrifyingChertuba.Q10763_TerrifyingChertuba; import quests.Q10764_FreeSpirit.Q10764_FreeSpirit; +import quests.Q10766_ANewCraft.Q10766_ANewCraft; import quests.Q10769_LettersFromTheQueenCrumaTowerPart1.Q10769_LettersFromTheQueenCrumaTowerPart1; import quests.Q10770_InSearchOfTheGrail.Q10770_InSearchOfTheGrail; import quests.Q10771_VolatilePower.Q10771_VolatilePower; @@ -338,6 +340,7 @@ import quests.Q10786_ResidentProblemSolver.Q10786_ResidentProblemSolver; import quests.Q10787_ASpyMission.Q10787_ASpyMission; import quests.Q10789_LettersFromTheQueenSwampOfScreams.Q10789_LettersFromTheQueenSwampOfScreams; import quests.Q10790_AMercenaryHelper.Q10790_AMercenaryHelper; +import quests.Q10791_TheManOfMystery.Q10791_TheManOfMystery; import quests.Q10792_LettersFromTheQueenForestOfTheDead.Q10792_LettersFromTheQueenForestOfTheDead; import quests.Q10793_SaveTheSouls.Q10793_SaveTheSouls; import quests.Q10795_LettersFromTheQueenWallOfAgros.Q10795_LettersFromTheQueenWallOfAgros; @@ -609,6 +612,7 @@ public class QuestMasterHandler Q10412_ASuspiciousVagabondInTheForest.class, Q10413_EmbryoInTheForestOfTheDead.class, Q10414_KekropusLetterWithCourage.class, + Q10415_KekropusLetterWithWisdom.class, Q10416_InSearchOfTheEyeOfArgos.class, Q10417_DaimonTheWhiteEyed.class, Q10421_AssassinationOfTheVarkaSilenosCommander.class, @@ -659,6 +663,7 @@ public class QuestMasterHandler Q10762_MarionetteSpirit.class, Q10763_TerrifyingChertuba.class, Q10764_FreeSpirit.class, + Q10766_ANewCraft.class, Q10769_LettersFromTheQueenCrumaTowerPart1.class, Q10770_InSearchOfTheGrail.class, Q10771_VolatilePower.class, @@ -678,6 +683,7 @@ public class QuestMasterHandler Q10787_ASpyMission.class, Q10789_LettersFromTheQueenSwampOfScreams.class, Q10790_AMercenaryHelper.class, + Q10791_TheManOfMystery.class, Q10792_LettersFromTheQueenForestOfTheDead.class, Q10793_SaveTheSouls.class, Q10795_LettersFromTheQueenWallOfAgros.class, diff --git a/trunk/dist/game/data/stats/npcs/33900-33999.xml b/trunk/dist/game/data/stats/npcs/33900-33999.xml index c770e33895..2071445ccf 100644 --- a/trunk/dist/game/data/stats/npcs/33900-33999.xml +++ b/trunk/dist/game/data/stats/npcs/33900-33999.xml @@ -2099,27 +2099,38 @@ - - + HUMAN - FEMALE + MALE + - + + + + + + - - + + - - + + + + + + + - + true + - - + +