diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt index 1e89bdd065..769b3a6089 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt @@ -49,7 +49,6 @@ 940 Hunter Guild Request - Atelia Fortress 10298 Wasteland Queen 10357 Altar of Blood that Awakens Destruction -10373 Exploring the Dimension - Sealing the Dimension 10396 Witch of Spores 10506 Diana's Request 10712 The Minstrel's Song, Part 1 diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm new file mode 100644 index 0000000000..e2b5f08990 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm @@ -0,0 +1,3 @@ +Beola:
+You have completed the quest.
+ \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm new file mode 100644 index 0000000000..4a0776fac3 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm @@ -0,0 +1,3 @@ +Beola:
+It's a fortunate thing that such a skilled adventurer as yourself has committed to making yourself available to the cause. Here is your mission. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm new file mode 100644 index 0000000000..fa6a149721 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm @@ -0,0 +1,5 @@ +Beloa:
+You need 30 of the Renants of the Rift item in order to seal the Dimensional Rift..
+Are you strong enough to collect 30 Remnant of the Rift for me?
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm new file mode 100644 index 0000000000..451878630a --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm @@ -0,0 +1,3 @@ +Beola:
+Not done yet. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java new file mode 100644 index 0000000000..22b28c72dc --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java @@ -0,0 +1,107 @@ +/* + * 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.Q10373_ExploringTheDimensionSealingTheDimension; + +import org.l2jmobius.gameserver.enums.QuestType; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; + +/** + * @author Sero + */ +public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest +{ + private static final int BELOA = 34227; + private static final int RUNE_STONE = 39738; + private static final int COMMANDO_BELT = 47044; + private static final int REMNANT_OF_THE_RIFT = 46787; + private static final int ZODIAC_AGATHION = 45577; + private static final int MIN_LEVEL = 95; + + public Q10373_ExploringTheDimensionSealingTheDimension() + { + super(10373); + addStartNpc(BELOA); + addTalkId(BELOA); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + if (event.equals("34227-04.htm")) + { + qs.startQuest(); + htmltext = event; + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + if (npc.getId() == BELOA) + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "34227-05.htm"; + break; + } + case State.STARTED: + { + if (getQuestItemsCount(player, REMNANT_OF_THE_RIFT) >= 30) + { + takeItems(player, REMNANT_OF_THE_RIFT, -1); + giveItems(player, COMMANDO_BELT, 1); + giveItems(player, ZODIAC_AGATHION, 1); + giveItems(player, RUNE_STONE, 1); + addExpAndSp(player, 12113489880L, 12113460); + qs.exitQuest(QuestType.ONE_TIME); + htmltext = "30756-09.html"; + } + else + { + htmltext = "34227-05a.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + } + return htmltext; + } +} diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java index 042d19dc7e..4f786b2368 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -283,6 +283,7 @@ import quests.Q10369_NoblesseSoulTesting.Q10369_NoblesseSoulTesting; import quests.Q10370_MenacingTimes.Q10370_MenacingTimes; import quests.Q10371_GraspThyPower.Q10371_GraspThyPower; import quests.Q10372_PurgatoryVolvere.Q10372_PurgatoryVolvere; +import quests.Q10373_ExploringTheDimensionSealingTheDimension.Q10373_ExploringTheDimensionSealingTheDimension; import quests.Q10374_ThatPlaceSuccubus.Q10374_ThatPlaceSuccubus; import quests.Q10375_SuccubusDisciples.Q10375_SuccubusDisciples; import quests.Q10376_BloodyGoodTime.Q10376_BloodyGoodTime; @@ -518,7 +519,6 @@ import quests.not_done.Q00929_SeekerRescue; import quests.not_done.Q00938_TheFishermansOtherHobby; import quests.not_done.Q10298_WastelandQueen; import quests.not_done.Q10357_AltarOfBloodThatAwakensDestruction; -import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension; import quests.not_done.Q10396_WitchOfSpores; import quests.not_done.Q10506_DianasRequest; import quests.not_done.Q10748_MysteriousSuggestion1; @@ -835,7 +835,7 @@ public class QuestMasterHandler Q10370_MenacingTimes.class, Q10371_GraspThyPower.class, Q10372_PurgatoryVolvere.class, - Q10373_ExploringTheDimensionSealingTheDimension.class, // TODO: Not done. + Q10373_ExploringTheDimensionSealingTheDimension.class, Q10374_ThatPlaceSuccubus.class, Q10375_SuccubusDisciples.class, Q10376_BloodyGoodTime.class, diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java deleted file mode 100644 index 029171274e..0000000000 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest -{ - private static final int START_NPC = 34227; - - public Q10373_ExploringTheDimensionSealingTheDimension() - { - super(10373); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt index caac7b474a..6f3b00224a 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt @@ -1,4 +1,3 @@ -504 Competition for the Bandit Stronghold 655 A Grand Plan for Taming Wild Beasts 667 How to Cover Shilen's Eyes 690 |Attack| Begin Alliance Base Defense - 1 @@ -104,13 +103,9 @@ 988 Adventure Guild's Special Request - Lv. 4 989 Adventure Guild's Special Request - Lv. 5 10298 Wasteland Queen -10355 Blacksmith's Soul-awakening Weapon - 1 -10356 Blacksmith's Soul-awakening Weapon - 2 -10373 Exploring the Dimension - Sealing the Dimension 10396 Witch of Spores 10423 Embryo Stronghold Ambush 10506 Diana's Request -10535 Blacksmith's Soul-awakening Weapon - 3 10712 The Minstrel's Song, Part 1 10717 The Minstrel's Song, Part 2 10720 The Minstrel's Song, Part 3 diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm new file mode 100644 index 0000000000..5da6ba7013 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm @@ -0,0 +1,3 @@ +Taboy:
+Hello now Go ahead and talk with Legendary Blacksmith Shadai in Heine!
+ \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm new file mode 100644 index 0000000000..8ec0122332 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm @@ -0,0 +1,3 @@ +Mammon:
+You have made a great work now you go to Nightmare Kamaloka and defeat 5 of Dark Rider then go to Command Post and defeat 5 of Burnstein (Command Post)
+ \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm new file mode 100644 index 0000000000..18fad6ca27 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+You have made a great work now you go to Enchanted Valley and defeat 3000 of them. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm new file mode 100644 index 0000000000..5fe2df701a --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm @@ -0,0 +1,3 @@ +Mammon:
+You need to defeat 5 of Dark Rider then go to Command Post and defeat 5 of Burnstein (Command Post) and bring me 5 Shadow ingot. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm new file mode 100644 index 0000000000..28f0fe48fb --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm @@ -0,0 +1,3 @@ +Mammon:
+Congratulations you have complate the challenge now you're able to take the next challenge Blacksmiths Soul part 2 and bring me 5 Shadow ingot.
+ \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm new file mode 100644 index 0000000000..ac5c895004 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Hello now go ahead and talk with Maestro Ishuma at Wharf of Gludio Airships!
+ \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm new file mode 100644 index 0000000000..74df5978cf --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Hello now Go ahead and talk with Blacksmith of Mammon at Aden or Giran!
+ \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm new file mode 100644 index 0000000000..d41b284986 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm @@ -0,0 +1,4 @@ +Neti:
+This will be long way !
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm new file mode 100644 index 0000000000..f787693f2e --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm @@ -0,0 +1,3 @@ +Neti:
+Great you choose to take the challenge Go ahead and talk with Head Blacksmith Tapoy in Gludin !
+ \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java new file mode 100644 index 0000000000..8b727fbd02 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java @@ -0,0 +1,320 @@ +/* + * 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.Q10355_BlacksmithsSoul1; + +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.enums.QuestSound; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.holders.NpcLogListHolder; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.NpcStringId; + +/** + * @author Sero + */ +public class Q10355_BlacksmithsSoul1 extends Quest +{ + // NPC + private static final int NETI = 34095; + private static final int TAPOY = 30499; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + private static final int MERCHANT_OF_MAMMON = 31126; + // Items + private static final int SHADOW_INGOT = 46395; + + // Monsters + private static final int BURNSTEIN = 23587; + private static final int DARK_RIDER = 26102; + private static final int[] NYMPH_MONSTERS = + { + 23569, // Nymph Lily + 23583, // Nymph Lily big + 23573, // Nymph Cosmos + 23567, // Nymph Rose + 23578, // Nymph Guardian + 23570, // Nymph Tulip + 19600, // Flower Bud + 23581, // Apherus + }; + // Misc + private static final int MIN_LEVEL = 99; + private static final String KILL_COUNT_VAR = "KillCount"; + + public Q10355_BlacksmithsSoul1() + { + super(10355); + addStartNpc(NETI); + addTalkId(NETI, TAPOY, SHADAI, ISHUMA, MERCHANT_OF_MAMMON); + registerQuestItems(SHADOW_INGOT); + addKillId(DARK_RIDER); + addKillId(BURNSTEIN); + addKillId(NYMPH_MONSTERS); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + if (event.equals("34095-01.htm")) + { + qs.startQuest(); + htmltext = event; + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case NETI: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "34095-00.htm"; + break; + } + case State.STARTED: + { + htmltext = "30756-09.html"; + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case TAPOY: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "30499-00.htm"; + qs.setCond(2); + } + else + { + htmltext = "30499-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(2)) + { + htmltext = "32347-00.htm"; + qs.setCond(3); + } + else + { + htmltext = "32347-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(3)) + { + htmltext = "32615-00.htm"; + qs.setCond(4); + } + else + { + htmltext = "32615-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case MERCHANT_OF_MAMMON: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(4)) + { + htmltext = "31126-00.htm"; + qs.setCond(5); + } + else if (qs.isCond(5)) + { + htmltext = "31126-00.htm"; + } + else if (qs.isCond(6) && (getQuestItemsCount(player, SHADOW_INGOT) >= 5)) + { + takeItems(player, SHADOW_INGOT, 5); + htmltext = "31126-01.htm"; + qs.setCond(7); + } + else if (qs.isCond(8)) + { + htmltext = "31126-03.htm"; + addExpAndSp(player, 26918866543L, 24226979); + qs.exitQuest(false, true); + } + else + { + htmltext = "31126-02.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(5)) + { + final int killedCount = qs.getInt(Integer.toString(npc.getId())); + if (killedCount < 5) + { + qs.set(Integer.toString(npc.getId()), killedCount + 1); + } + + final int killedRessurected = qs.getInt(Integer.toString(DARK_RIDER)); + final int killedLunatic = qs.getInt(Integer.toString(BURNSTEIN)); + if ((killedLunatic == 5) && (killedRessurected == 5)) + { + qs.setCond(6, true); + } + } + else if ((qs != null) && qs.isCond(7)) + { + int count = qs.getInt(KILL_COUNT_VAR); + qs.set(KILL_COUNT_VAR, ++count); + if (count >= 3000) + { + qs.setCond(8, true); + } + else + { + playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + } + + @Override + public String onKill(Npc npc, PlayerInstance player, boolean isSummon) + { + executeForEachPlayer(player, npc, isSummon, true, false); + return super.onKill(npc, player, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(5)) + { + final Set npcLogList = new HashSet<>(2); + npcLogList.add(new NpcLogListHolder(DARK_RIDER, false, qs.getInt(Integer.toString(DARK_RIDER)))); + npcLogList.add(new NpcLogListHolder(NpcStringId.DEFEAT_COMMANDER_BURNSTEIN_2, qs.getInt(Integer.toString(BURNSTEIN)))); + return npcLogList; + } + else if ((qs != null) && qs.isCond(7)) + { + final int killCount = qs.getInt(KILL_COUNT_VAR); + if (killCount > 0) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_ENCHANTED_VALLEY_2, killCount)); + return holder; + } + } + return super.getNpcLogList(player); + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm new file mode 100644 index 0000000000..3597791e3f --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm @@ -0,0 +1,4 @@ +Mammon:
+Now the next part of your challenge is to bring me Improved Shadow Ingot.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm new file mode 100644 index 0000000000..7701eafb92 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+When you have Improved Shadow Ingot come back to me. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm new file mode 100644 index 0000000000..8b45d522e3 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm @@ -0,0 +1,3 @@ +Mammon:
+You need to complete Blacksmiths Soul - Part 1 first. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm new file mode 100644 index 0000000000..5e4b0372ff --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm @@ -0,0 +1,4 @@ +Mammon:
+Do you have the Improved Shadow Ingot?
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm new file mode 100644 index 0000000000..41db2ca110 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm @@ -0,0 +1,3 @@ +Mammon:
+Do you have the Improved Shadow Ingot? + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm new file mode 100644 index 0000000000..2cd5a4c360 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm @@ -0,0 +1,3 @@ +Mammon:
+Good job now bring me a Shadow weapon that you don't want so I can make my research. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm new file mode 100644 index 0000000000..6c85b53868 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm @@ -0,0 +1,13 @@ +Mammon:
+Choose the weapon that you don't need to I can make my research on it "Warning! The weapon will not be returned to you"
+ + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm new file mode 100644 index 0000000000..3d5106f81e --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm @@ -0,0 +1,3 @@ +Mammon:
+Great work! Now take this weapon, upgrade it to +7 and bring it back to me. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm new file mode 100644 index 0000000000..95bd9a311e --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm @@ -0,0 +1,4 @@ +Mammon:
+Nice now hand me the weapon let me do my research.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm new file mode 100644 index 0000000000..d3855a838b --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm @@ -0,0 +1,3 @@ +Mammon:
+It's hard work but please enchant my the weapon to +7. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm new file mode 100644 index 0000000000..8675786a66 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm @@ -0,0 +1,3 @@ +Mammon:
+You have done good so far now you can take your reward and be ready for the next challenge. Have a great day. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm new file mode 100644 index 0000000000..0088de0fdc --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+I agreed to take a part in the research. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm new file mode 100644 index 0000000000..f42c9f126a --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm @@ -0,0 +1,3 @@ +Ishuma:
+I agreed to take a part in the research. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java new file mode 100644 index 0000000000..ff3b015706 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java @@ -0,0 +1,371 @@ +/* + * 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.Q10356_BlacksmithsSoul2; + +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.holders.NpcLogListHolder; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.NpcStringId; + +import quests.Q10355_BlacksmithsSoul1.Q10355_BlacksmithsSoul1; + +/** + * @author Sero + */ +public class Q10356_BlacksmithsSoul2 extends Quest +{ + // NPCs + private static final int BLACKSMITH_MAMMON = 31126; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + // Items + private static final int Improved_SHADOW_Ingot = 47896; + private static final int RESEARCH_SHADOW_WEAPON = 47890; + private static final int SHADOW_WEAPON_1 = 46317; + private static final int SHADOW_WEAPON_2 = 46318; + private static final int SHADOW_WEAPON_3 = 46319; + private static final int SHADOW_WEAPON_4 = 46320; + private static final int SHADOW_WEAPON_5 = 46321; + private static final int SHADOW_WEAPON_6 = 46322; + private static final int SHADOW_WEAPON_7 = 46323; + private static final int SHADOW_WEAPON_8 = 46324; + private static final int SHADOW_WEAPON_9 = 46325; + private static final int SHADOW_WEAPON_10 = 46326; + private static final int SHADOW_CRYSTAL = 47899; + private static final int MAIN_LEVEL = 99; + + public Q10356_BlacksmithsSoul2() + { + super(10356); + addStartNpc(BLACKSMITH_MAMMON); + addTalkId(BLACKSMITH_MAMMON, SHADAI, ISHUMA); + addCondCompletedQuest(Q10355_BlacksmithsSoul1.class.getSimpleName(), "31126-02.htm"); + addCondMinLevel(MAIN_LEVEL, getNoQuestMsg(null)); + registerQuestItems(Improved_SHADOW_Ingot, SHADOW_WEAPON_1, SHADOW_WEAPON_2, SHADOW_WEAPON_3, SHADOW_WEAPON_4, SHADOW_WEAPON_5, SHADOW_WEAPON_6, SHADOW_WEAPON_7, SHADOW_WEAPON_8, SHADOW_WEAPON_9, SHADOW_WEAPON_10, RESEARCH_SHADOW_WEAPON); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + switch (event) + { + case "31126-01.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "31126-04.htm": + { + if (hasQuestItems(player, Improved_SHADOW_Ingot)) + { + takeItems(player, Improved_SHADOW_Ingot, 1); + qs.setCond(2); + htmltext = event; + } + else + { + htmltext = "31126-03r.htm"; + } + break; + } + case "SHADOW_WEAPON_1": + { + if (hasQuestItems(player, SHADOW_WEAPON_1)) + { + takeItems(player, SHADOW_WEAPON_1, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_2": + { + if (hasQuestItems(player, SHADOW_WEAPON_2)) + { + takeItems(player, SHADOW_WEAPON_2, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_3": + { + if (hasQuestItems(player, SHADOW_WEAPON_3)) + { + takeItems(player, SHADOW_WEAPON_3, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_4": + { + if (hasQuestItems(player, SHADOW_WEAPON_4)) + { + takeItems(player, SHADOW_WEAPON_4, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_5": + { + if (hasQuestItems(player, SHADOW_WEAPON_5)) + { + takeItems(player, SHADOW_WEAPON_5, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_6": + { + if (hasQuestItems(player, SHADOW_WEAPON_6)) + { + takeItems(player, SHADOW_WEAPON_6, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + htmltext = event; + } + break; + } + case "SHADOW_WEAPON_7": + { + if (hasQuestItems(player, SHADOW_WEAPON_7)) + { + takeItems(player, SHADOW_WEAPON_7, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_8": + { + if (hasQuestItems(player, SHADOW_WEAPON_8)) + { + takeItems(player, SHADOW_WEAPON_8, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_9": + { + if (hasQuestItems(player, SHADOW_WEAPON_9)) + { + takeItems(player, SHADOW_WEAPON_9, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_10": + { + if (hasQuestItems(player, SHADOW_WEAPON_10)) + { + takeItems(player, SHADOW_WEAPON_10, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "RESEARCH_SHADOW_WEAPON7": + { + if (hasQuestItems(player, RESEARCH_SHADOW_WEAPON) && (getEnchantLevel(player, RESEARCH_SHADOW_WEAPON) >= 7)) + { + takeItems(player, RESEARCH_SHADOW_WEAPON, -1); + giveItems(player, SHADOW_CRYSTAL, 2); + qs.setCond(5); + } + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case BLACKSMITH_MAMMON: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31126-00.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "31126-03.htm"; + } + else if (qs.isCond(2)) + { + htmltext = "31126-05.htm"; + } + else if (qs.isCond(3)) + { + htmltext = "31126-08.htm"; + qs.setCond(4); + } + else if (qs.isCond(4)) + { + if (hasQuestItems(player, RESEARCH_SHADOW_WEAPON)) + { + htmltext = "31126-07.htm"; + } + else + { + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + } + } + else if (qs.isCond(6)) + { + htmltext = "31126-09.htm"; + addExpAndSp(player, 32958000000L, 29662200); + qs.exitQuest(false, true); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(5) && hasQuestItems(player, SHADOW_CRYSTAL)) + { + htmltext = "32347-00.htm"; + takeItems(player, SHADOW_CRYSTAL, -1); + qs.setCond(6); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(5) && hasQuestItems(player, SHADOW_CRYSTAL)) + { + htmltext = "32615-00.htm"; + takeItems(player, SHADOW_CRYSTAL, -1); + qs.setCond(6); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance player, boolean isSummon) + { + executeForEachPlayer(player, npc, isSummon, true, false); + return super.onKill(npc, player, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(2)) + { + if (hasAtLeastOneQuestItem(player, SHADOW_WEAPON_1, SHADOW_WEAPON_2, SHADOW_WEAPON_3, SHADOW_WEAPON_4, SHADOW_WEAPON_5, SHADOW_WEAPON_6, SHADOW_WEAPON_7, SHADOW_WEAPON_8, SHADOW_WEAPON_9, SHADOW_WEAPON_10)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.BRING_SHADOW_WEAPON, 1)); + return holder; + } + + } + if ((qs != null) && qs.isCond(4)) + { + if ((getEnchantLevel(player, RESEARCH_SHADOW_WEAPON) >= 7)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.ENCHANT_THE_RESEARCH_WEAPON, 1)); + return holder; + } + + } + return super.getNpcLogList(player); + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm new file mode 100644 index 0000000000..e2b5f08990 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm @@ -0,0 +1,3 @@ +Beola:
+You have completed the quest.
+ \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm new file mode 100644 index 0000000000..4a0776fac3 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm @@ -0,0 +1,3 @@ +Beola:
+It's a fortunate thing that such a skilled adventurer as yourself has committed to making yourself available to the cause. Here is your mission. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm new file mode 100644 index 0000000000..fa6a149721 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm @@ -0,0 +1,5 @@ +Beloa:
+You need 30 of the Renants of the Rift item in order to seal the Dimensional Rift..
+Are you strong enough to collect 30 Remnant of the Rift for me?
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm new file mode 100644 index 0000000000..451878630a --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm @@ -0,0 +1,3 @@ +Beola:
+Not done yet. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java new file mode 100644 index 0000000000..22b28c72dc --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java @@ -0,0 +1,107 @@ +/* + * 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.Q10373_ExploringTheDimensionSealingTheDimension; + +import org.l2jmobius.gameserver.enums.QuestType; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; + +/** + * @author Sero + */ +public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest +{ + private static final int BELOA = 34227; + private static final int RUNE_STONE = 39738; + private static final int COMMANDO_BELT = 47044; + private static final int REMNANT_OF_THE_RIFT = 46787; + private static final int ZODIAC_AGATHION = 45577; + private static final int MIN_LEVEL = 95; + + public Q10373_ExploringTheDimensionSealingTheDimension() + { + super(10373); + addStartNpc(BELOA); + addTalkId(BELOA); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + if (event.equals("34227-04.htm")) + { + qs.startQuest(); + htmltext = event; + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + if (npc.getId() == BELOA) + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "34227-05.htm"; + break; + } + case State.STARTED: + { + if (getQuestItemsCount(player, REMNANT_OF_THE_RIFT) >= 30) + { + takeItems(player, REMNANT_OF_THE_RIFT, -1); + giveItems(player, COMMANDO_BELT, 1); + giveItems(player, ZODIAC_AGATHION, 1); + giveItems(player, RUNE_STONE, 1); + addExpAndSp(player, 12113489880L, 12113460); + qs.exitQuest(QuestType.ONE_TIME); + htmltext = "30756-09.html"; + } + else + { + htmltext = "34227-05a.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + } + return htmltext; + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm new file mode 100644 index 0000000000..6cfa89b1be --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm @@ -0,0 +1,3 @@ +Mammon:
+This the Last challenge Defeat monster in Giant's Cave and Hellbound collect Ore with Giant's Energy and Crystal with Magical Power Crystal with Magical Power then take them to Shadai and Ishuma. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm new file mode 100644 index 0000000000..bd85c2b6b4 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+Congratulations you have completed the challenge you deserve your reward warrior! + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm new file mode 100644 index 0000000000..2abc5c3f37 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Thank you for your hard work. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm new file mode 100644 index 0000000000..c136bcdd72 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm @@ -0,0 +1,3 @@ +Ishuma:
+Thank you for your hard work. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java new file mode 100644 index 0000000000..e4dc121357 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java @@ -0,0 +1,238 @@ +/* +* 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.Q10535_BlacksmithsSoul3; + +import java.util.List; + +import org.l2jmobius.commons.util.CommonUtil; +import org.l2jmobius.gameserver.enums.QuestSound; +import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; + +import quests.Q10356_BlacksmithsSoul2.Q10356_BlacksmithsSoul2; + +/** + * @author Sero + */ +public class Q10535_BlacksmithsSoul3 extends Quest +{ + // NPCs + private static final int BLACKSMITH_MAMMON = 31126; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + // Monsters + private static final int[] HELL_MONSTERS = + { + 23386, // Jabberwok + 23387, // Kanzaroth + 23388, // Kandiloth + 23384, // Smaug + 23385, // Lunatikan + 23399, // Bend Beetle + 23398, // Koraza + 23397, // Desert Wendigo + 23395, // Garion + 23396, // Garion neti + }; + private static final int[] CAVE_MONSTERS = + { + 23727, // Shaqrima Bathus + 23728, // Shaqrima Carcass + 23729, // Kshana + }; + // Items + private static final int OREWITH_GIANTS_ENERGY = 47892; + private static final int CRYSTAL_WITH_MAGOCAL_POWER = 47891; + private static final int ENCHANTED_SHADOW_INGOT = 47886; + // Misc + private static final int MAIN_LEVEL = 99; + + public Q10535_BlacksmithsSoul3() + { + super(10535); + addStartNpc(BLACKSMITH_MAMMON); + addTalkId(BLACKSMITH_MAMMON, SHADAI, ISHUMA); + addKillId(HELL_MONSTERS); + addKillId(CAVE_MONSTERS); + addCondCompletedQuest(Q10356_BlacksmithsSoul2.class.getSimpleName(), "31126-02.htm"); + addCondMinLevel(MAIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case BLACKSMITH_MAMMON: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31126-00.htm"; + qs.startQuest(); + break; + } + case State.STARTED: + { + if (qs.isCond(9)) + { + htmltext = "31126-01.htm"; + addExpAndSp(player, 40346120829L, 36311508); + giveItems(player, ENCHANTED_SHADOW_INGOT, 1); + qs.exitQuest(false, true); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(7) && (getQuestItemsCount(player, CRYSTAL_WITH_MAGOCAL_POWER) >= 500) && (getQuestItemsCount(player, OREWITH_GIANTS_ENERGY) >= 500)) + { + htmltext = "32347-00.htm"; + takeItems(player, CRYSTAL_WITH_MAGOCAL_POWER, -1); + qs.setCond(8); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(8) && (getQuestItemsCount(player, OREWITH_GIANTS_ENERGY) >= 500)) + { + htmltext = "32615-00.htm"; + takeItems(player, OREWITH_GIANTS_ENERGY, -1); + qs.setCond(9); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) + { + if (killer.isInParty()) + { + final Party party = killer.getParty(); + final List partyMember = party.getMembers(); + for (PlayerInstance singleMember : partyMember) + { + final QuestState qsPartyMember = getQuestState(singleMember, false); + final double distance = npc.calculateDistance3D(singleMember); + if ((qsPartyMember != null) && (distance <= 1000)) + { + if (qsPartyMember.isCond(1)) + { + if (CommonUtil.contains(HELL_MONSTERS, npc.getId()) && (getQuestItemsCount(singleMember, CRYSTAL_WITH_MAGOCAL_POWER) < 500)) + { + giveItems(singleMember, CRYSTAL_WITH_MAGOCAL_POWER, 1); + playSound(singleMember, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qsPartyMember.isCond(1)) + { + if (CommonUtil.contains(CAVE_MONSTERS, npc.getId()) && (getQuestItemsCount(singleMember, OREWITH_GIANTS_ENERGY) < 500)) + { + giveItems(singleMember, OREWITH_GIANTS_ENERGY, 1); + playSound(singleMember, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qsPartyMember.isCond(1) && (getQuestItemsCount(singleMember, OREWITH_GIANTS_ENERGY) >= 500) && (getQuestItemsCount(singleMember, CRYSTAL_WITH_MAGOCAL_POWER) >= 500)) + { + qsPartyMember.setCond(7); + } + } + } + } + else + { + final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc); + if (qs != null) + { + if (qs.isCond(1)) + { + if (CommonUtil.contains(HELL_MONSTERS, npc.getId()) && (getQuestItemsCount(killer, CRYSTAL_WITH_MAGOCAL_POWER) < 500)) + { + giveItems(killer, CRYSTAL_WITH_MAGOCAL_POWER, 1); + playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); + + } + } + if (qs.isCond(1)) + { + if (CommonUtil.contains(CAVE_MONSTERS, npc.getId()) && (getQuestItemsCount(killer, OREWITH_GIANTS_ENERGY) < 500)) + { + giveItems(killer, OREWITH_GIANTS_ENERGY, 1); + playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qs.isCond(1) && (getQuestItemsCount(killer, OREWITH_GIANTS_ENERGY) >= 500) && (getQuestItemsCount(killer, CRYSTAL_WITH_MAGOCAL_POWER) >= 500)) + { + qs.setCond(7); + } + } + } + return super.onKill(npc, killer, isSummon); + } +} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java index 16a5693285..9ad3508220 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -277,6 +277,8 @@ import quests.Q10346_DayOfDestinyKamaelsFate.Q10346_DayOfDestinyKamaelsFate; import quests.Q10351_OwnerOfHall.Q10351_OwnerOfHall; import quests.Q10353_CertificationOfValue.Q10353_CertificationOfValue; import quests.Q10354_ResurrectedOwnerOfHall.Q10354_ResurrectedOwnerOfHall; +import quests.Q10355_BlacksmithsSoul1.Q10355_BlacksmithsSoul1; +import quests.Q10356_BlacksmithsSoul2.Q10356_BlacksmithsSoul2; import quests.Q10358_DividedSakumPoslof.Q10358_DividedSakumPoslof; import quests.Q10359_TracesOfEvil.Q10359_TracesOfEvil; import quests.Q10360_CertificationOfFate.Q10360_CertificationOfFate; @@ -375,6 +377,7 @@ import quests.Q10530_KekropusLetterTheDragonsTransition.Q10530_KekropusLetterThe import quests.Q10531_OddHappeningsAtDragonValley.Q10531_OddHappeningsAtDragonValley; import quests.Q10532_UncoveringTheConspiracy.Q10532_UncoveringTheConspiracy; import quests.Q10534_HatchlingResearch.Q10534_HatchlingResearch; +import quests.Q10535_BlacksmithsSoul3.Q10535_BlacksmithsSoul3; import quests.Q10537_KamaelDisarray.Q10537_KamaelDisarray; import quests.Q10538_GiantsEvolution.Q10538_GiantsEvolution; import quests.Q10539_EnergySupplyCutoffPlan.Q10539_EnergySupplyCutoffPlan; @@ -527,13 +530,9 @@ import quests.not_done.Q00987_AdventureGuildsSpecialRequestLv3; import quests.not_done.Q00988_AdventureGuildsSpecialRequestLv4; import quests.not_done.Q00989_AdventureGuildsSpecialRequestLv5; import quests.not_done.Q10298_WastelandQueen; -import quests.not_done.Q10355_BlacksmithsSoulAwakeningWeapon1; -import quests.not_done.Q10356_BlacksmithsSoulAwakeningWeapon2; -import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension; import quests.not_done.Q10396_WitchOfSpores; import quests.not_done.Q10423_EmbryoStrongholdAmbush; import quests.not_done.Q10506_DianasRequest; -import quests.not_done.Q10535_BlacksmithsSoulAwakeningWeapon3; import quests.not_done.Q10748_MysteriousSuggestion1; import quests.not_done.Q10749_MysteriousSuggestion2; import quests.not_done.Q10845_BloodyBattleRescueTheSmiths; @@ -847,8 +846,8 @@ public class QuestMasterHandler Q10351_OwnerOfHall.class, Q10353_CertificationOfValue.class, Q10354_ResurrectedOwnerOfHall.class, - Q10355_BlacksmithsSoulAwakeningWeapon1.class, // TODO: Not done. - Q10356_BlacksmithsSoulAwakeningWeapon2.class, // TODO: Not done. + Q10355_BlacksmithsSoul1.class, + Q10356_BlacksmithsSoul2.class, Q10358_DividedSakumPoslof.class, Q10359_TracesOfEvil.class, Q10360_CertificationOfFate.class, @@ -861,7 +860,6 @@ public class QuestMasterHandler Q10370_MenacingTimes.class, Q10371_GraspThyPower.class, Q10372_PurgatoryVolvere.class, - Q10373_ExploringTheDimensionSealingTheDimension.class, // TODO: Not done. Q10374_ThatPlaceSuccubus.class, Q10375_SuccubusDisciples.class, Q10376_BloodyGoodTime.class, @@ -951,7 +949,7 @@ public class QuestMasterHandler Q10531_OddHappeningsAtDragonValley.class, Q10532_UncoveringTheConspiracy.class, Q10534_HatchlingResearch.class, - Q10535_BlacksmithsSoulAwakeningWeapon3.class, // TODO: Not done. + Q10535_BlacksmithsSoul3.class, Q10537_KamaelDisarray.class, Q10538_GiantsEvolution.class, Q10539_EnergySupplyCutoffPlan.class, diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoulAwakeningWeapon1.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoulAwakeningWeapon1.java deleted file mode 100644 index 9a962a35e3..0000000000 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoulAwakeningWeapon1.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10355_BlacksmithsSoulAwakeningWeapon1 extends Quest -{ - private static final int START_NPC = 34095; - - public Q10355_BlacksmithsSoulAwakeningWeapon1() - { - super(10355); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoulAwakeningWeapon2.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoulAwakeningWeapon2.java deleted file mode 100644 index 72ef8b8838..0000000000 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoulAwakeningWeapon2.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10356_BlacksmithsSoulAwakeningWeapon2 extends Quest -{ - private static final int START_NPC = 31126; - - public Q10356_BlacksmithsSoulAwakeningWeapon2() - { - super(10356); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java deleted file mode 100644 index 029171274e..0000000000 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest -{ - private static final int START_NPC = 34227; - - public Q10373_ExploringTheDimensionSealingTheDimension() - { - super(10373); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoulAwakeningWeapon3.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoulAwakeningWeapon3.java deleted file mode 100644 index ca9e276789..0000000000 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoulAwakeningWeapon3.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10535_BlacksmithsSoulAwakeningWeapon3 extends Quest -{ - private static final int START_NPC = 31126; - - public Q10535_BlacksmithsSoulAwakeningWeapon3() - { - super(10535); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt index 3e371a332e..49e0c98c41 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt @@ -109,13 +109,9 @@ 988 Adventure Guild's Special Request - Lv. 4 989 Adventure Guild's Special Request - Lv. 5 10298 Wasteland Queen -10355 Blacksmith's Soul-awakening Weapon - 1 -10356 Blacksmith's Soul-awakening Weapon - 2 -10373 Exploring the Dimension - Sealing the Dimension 10396 Witch of Spores 10423 Embryo Stronghold Ambush 10506 Diana's Request -10535 Blacksmith's Soul-awakening Weapon - 3 10552 Challenge! Balthus Knight! 10553 What Matters More Than Ability 10554 Gift for You diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm new file mode 100644 index 0000000000..5da6ba7013 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm @@ -0,0 +1,3 @@ +Taboy:
+Hello now Go ahead and talk with Legendary Blacksmith Shadai in Heine!
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm new file mode 100644 index 0000000000..8ec0122332 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm @@ -0,0 +1,3 @@ +Mammon:
+You have made a great work now you go to Nightmare Kamaloka and defeat 5 of Dark Rider then go to Command Post and defeat 5 of Burnstein (Command Post)
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm new file mode 100644 index 0000000000..18fad6ca27 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+You have made a great work now you go to Enchanted Valley and defeat 3000 of them. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm new file mode 100644 index 0000000000..5fe2df701a --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm @@ -0,0 +1,3 @@ +Mammon:
+You need to defeat 5 of Dark Rider then go to Command Post and defeat 5 of Burnstein (Command Post) and bring me 5 Shadow ingot. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm new file mode 100644 index 0000000000..28f0fe48fb --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm @@ -0,0 +1,3 @@ +Mammon:
+Congratulations you have complate the challenge now you're able to take the next challenge Blacksmiths Soul part 2 and bring me 5 Shadow ingot.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm new file mode 100644 index 0000000000..ac5c895004 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Hello now go ahead and talk with Maestro Ishuma at Wharf of Gludio Airships!
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm new file mode 100644 index 0000000000..74df5978cf --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Hello now Go ahead and talk with Blacksmith of Mammon at Aden or Giran!
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm new file mode 100644 index 0000000000..d41b284986 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm @@ -0,0 +1,4 @@ +Neti:
+This will be long way !
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm new file mode 100644 index 0000000000..f787693f2e --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm @@ -0,0 +1,3 @@ +Neti:
+Great you choose to take the challenge Go ahead and talk with Head Blacksmith Tapoy in Gludin !
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java new file mode 100644 index 0000000000..8b727fbd02 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java @@ -0,0 +1,320 @@ +/* + * 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.Q10355_BlacksmithsSoul1; + +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.enums.QuestSound; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.holders.NpcLogListHolder; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.NpcStringId; + +/** + * @author Sero + */ +public class Q10355_BlacksmithsSoul1 extends Quest +{ + // NPC + private static final int NETI = 34095; + private static final int TAPOY = 30499; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + private static final int MERCHANT_OF_MAMMON = 31126; + // Items + private static final int SHADOW_INGOT = 46395; + + // Monsters + private static final int BURNSTEIN = 23587; + private static final int DARK_RIDER = 26102; + private static final int[] NYMPH_MONSTERS = + { + 23569, // Nymph Lily + 23583, // Nymph Lily big + 23573, // Nymph Cosmos + 23567, // Nymph Rose + 23578, // Nymph Guardian + 23570, // Nymph Tulip + 19600, // Flower Bud + 23581, // Apherus + }; + // Misc + private static final int MIN_LEVEL = 99; + private static final String KILL_COUNT_VAR = "KillCount"; + + public Q10355_BlacksmithsSoul1() + { + super(10355); + addStartNpc(NETI); + addTalkId(NETI, TAPOY, SHADAI, ISHUMA, MERCHANT_OF_MAMMON); + registerQuestItems(SHADOW_INGOT); + addKillId(DARK_RIDER); + addKillId(BURNSTEIN); + addKillId(NYMPH_MONSTERS); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + if (event.equals("34095-01.htm")) + { + qs.startQuest(); + htmltext = event; + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case NETI: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "34095-00.htm"; + break; + } + case State.STARTED: + { + htmltext = "30756-09.html"; + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case TAPOY: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "30499-00.htm"; + qs.setCond(2); + } + else + { + htmltext = "30499-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(2)) + { + htmltext = "32347-00.htm"; + qs.setCond(3); + } + else + { + htmltext = "32347-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(3)) + { + htmltext = "32615-00.htm"; + qs.setCond(4); + } + else + { + htmltext = "32615-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case MERCHANT_OF_MAMMON: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(4)) + { + htmltext = "31126-00.htm"; + qs.setCond(5); + } + else if (qs.isCond(5)) + { + htmltext = "31126-00.htm"; + } + else if (qs.isCond(6) && (getQuestItemsCount(player, SHADOW_INGOT) >= 5)) + { + takeItems(player, SHADOW_INGOT, 5); + htmltext = "31126-01.htm"; + qs.setCond(7); + } + else if (qs.isCond(8)) + { + htmltext = "31126-03.htm"; + addExpAndSp(player, 26918866543L, 24226979); + qs.exitQuest(false, true); + } + else + { + htmltext = "31126-02.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(5)) + { + final int killedCount = qs.getInt(Integer.toString(npc.getId())); + if (killedCount < 5) + { + qs.set(Integer.toString(npc.getId()), killedCount + 1); + } + + final int killedRessurected = qs.getInt(Integer.toString(DARK_RIDER)); + final int killedLunatic = qs.getInt(Integer.toString(BURNSTEIN)); + if ((killedLunatic == 5) && (killedRessurected == 5)) + { + qs.setCond(6, true); + } + } + else if ((qs != null) && qs.isCond(7)) + { + int count = qs.getInt(KILL_COUNT_VAR); + qs.set(KILL_COUNT_VAR, ++count); + if (count >= 3000) + { + qs.setCond(8, true); + } + else + { + playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + } + + @Override + public String onKill(Npc npc, PlayerInstance player, boolean isSummon) + { + executeForEachPlayer(player, npc, isSummon, true, false); + return super.onKill(npc, player, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(5)) + { + final Set npcLogList = new HashSet<>(2); + npcLogList.add(new NpcLogListHolder(DARK_RIDER, false, qs.getInt(Integer.toString(DARK_RIDER)))); + npcLogList.add(new NpcLogListHolder(NpcStringId.DEFEAT_COMMANDER_BURNSTEIN_2, qs.getInt(Integer.toString(BURNSTEIN)))); + return npcLogList; + } + else if ((qs != null) && qs.isCond(7)) + { + final int killCount = qs.getInt(KILL_COUNT_VAR); + if (killCount > 0) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_ENCHANTED_VALLEY_2, killCount)); + return holder; + } + } + return super.getNpcLogList(player); + } +} diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm new file mode 100644 index 0000000000..3597791e3f --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm @@ -0,0 +1,4 @@ +Mammon:
+Now the next part of your challenge is to bring me Improved Shadow Ingot.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm new file mode 100644 index 0000000000..7701eafb92 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+When you have Improved Shadow Ingot come back to me. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm new file mode 100644 index 0000000000..8b45d522e3 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm @@ -0,0 +1,3 @@ +Mammon:
+You need to complete Blacksmiths Soul - Part 1 first. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm new file mode 100644 index 0000000000..5e4b0372ff --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm @@ -0,0 +1,4 @@ +Mammon:
+Do you have the Improved Shadow Ingot?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm new file mode 100644 index 0000000000..41db2ca110 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm @@ -0,0 +1,3 @@ +Mammon:
+Do you have the Improved Shadow Ingot? + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm new file mode 100644 index 0000000000..2cd5a4c360 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm @@ -0,0 +1,3 @@ +Mammon:
+Good job now bring me a Shadow weapon that you don't want so I can make my research. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm new file mode 100644 index 0000000000..6c85b53868 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm @@ -0,0 +1,13 @@ +Mammon:
+Choose the weapon that you don't need to I can make my research on it "Warning! The weapon will not be returned to you"
+ + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm new file mode 100644 index 0000000000..3d5106f81e --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm @@ -0,0 +1,3 @@ +Mammon:
+Great work! Now take this weapon, upgrade it to +7 and bring it back to me. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm new file mode 100644 index 0000000000..95bd9a311e --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm @@ -0,0 +1,4 @@ +Mammon:
+Nice now hand me the weapon let me do my research.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm new file mode 100644 index 0000000000..d3855a838b --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm @@ -0,0 +1,3 @@ +Mammon:
+It's hard work but please enchant my the weapon to +7. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm new file mode 100644 index 0000000000..8675786a66 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm @@ -0,0 +1,3 @@ +Mammon:
+You have done good so far now you can take your reward and be ready for the next challenge. Have a great day. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm new file mode 100644 index 0000000000..0088de0fdc --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+I agreed to take a part in the research. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm new file mode 100644 index 0000000000..f42c9f126a --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm @@ -0,0 +1,3 @@ +Ishuma:
+I agreed to take a part in the research. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java new file mode 100644 index 0000000000..ff3b015706 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java @@ -0,0 +1,371 @@ +/* + * 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.Q10356_BlacksmithsSoul2; + +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.holders.NpcLogListHolder; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.NpcStringId; + +import quests.Q10355_BlacksmithsSoul1.Q10355_BlacksmithsSoul1; + +/** + * @author Sero + */ +public class Q10356_BlacksmithsSoul2 extends Quest +{ + // NPCs + private static final int BLACKSMITH_MAMMON = 31126; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + // Items + private static final int Improved_SHADOW_Ingot = 47896; + private static final int RESEARCH_SHADOW_WEAPON = 47890; + private static final int SHADOW_WEAPON_1 = 46317; + private static final int SHADOW_WEAPON_2 = 46318; + private static final int SHADOW_WEAPON_3 = 46319; + private static final int SHADOW_WEAPON_4 = 46320; + private static final int SHADOW_WEAPON_5 = 46321; + private static final int SHADOW_WEAPON_6 = 46322; + private static final int SHADOW_WEAPON_7 = 46323; + private static final int SHADOW_WEAPON_8 = 46324; + private static final int SHADOW_WEAPON_9 = 46325; + private static final int SHADOW_WEAPON_10 = 46326; + private static final int SHADOW_CRYSTAL = 47899; + private static final int MAIN_LEVEL = 99; + + public Q10356_BlacksmithsSoul2() + { + super(10356); + addStartNpc(BLACKSMITH_MAMMON); + addTalkId(BLACKSMITH_MAMMON, SHADAI, ISHUMA); + addCondCompletedQuest(Q10355_BlacksmithsSoul1.class.getSimpleName(), "31126-02.htm"); + addCondMinLevel(MAIN_LEVEL, getNoQuestMsg(null)); + registerQuestItems(Improved_SHADOW_Ingot, SHADOW_WEAPON_1, SHADOW_WEAPON_2, SHADOW_WEAPON_3, SHADOW_WEAPON_4, SHADOW_WEAPON_5, SHADOW_WEAPON_6, SHADOW_WEAPON_7, SHADOW_WEAPON_8, SHADOW_WEAPON_9, SHADOW_WEAPON_10, RESEARCH_SHADOW_WEAPON); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + switch (event) + { + case "31126-01.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "31126-04.htm": + { + if (hasQuestItems(player, Improved_SHADOW_Ingot)) + { + takeItems(player, Improved_SHADOW_Ingot, 1); + qs.setCond(2); + htmltext = event; + } + else + { + htmltext = "31126-03r.htm"; + } + break; + } + case "SHADOW_WEAPON_1": + { + if (hasQuestItems(player, SHADOW_WEAPON_1)) + { + takeItems(player, SHADOW_WEAPON_1, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_2": + { + if (hasQuestItems(player, SHADOW_WEAPON_2)) + { + takeItems(player, SHADOW_WEAPON_2, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_3": + { + if (hasQuestItems(player, SHADOW_WEAPON_3)) + { + takeItems(player, SHADOW_WEAPON_3, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_4": + { + if (hasQuestItems(player, SHADOW_WEAPON_4)) + { + takeItems(player, SHADOW_WEAPON_4, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_5": + { + if (hasQuestItems(player, SHADOW_WEAPON_5)) + { + takeItems(player, SHADOW_WEAPON_5, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_6": + { + if (hasQuestItems(player, SHADOW_WEAPON_6)) + { + takeItems(player, SHADOW_WEAPON_6, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + htmltext = event; + } + break; + } + case "SHADOW_WEAPON_7": + { + if (hasQuestItems(player, SHADOW_WEAPON_7)) + { + takeItems(player, SHADOW_WEAPON_7, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_8": + { + if (hasQuestItems(player, SHADOW_WEAPON_8)) + { + takeItems(player, SHADOW_WEAPON_8, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_9": + { + if (hasQuestItems(player, SHADOW_WEAPON_9)) + { + takeItems(player, SHADOW_WEAPON_9, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_10": + { + if (hasQuestItems(player, SHADOW_WEAPON_10)) + { + takeItems(player, SHADOW_WEAPON_10, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "RESEARCH_SHADOW_WEAPON7": + { + if (hasQuestItems(player, RESEARCH_SHADOW_WEAPON) && (getEnchantLevel(player, RESEARCH_SHADOW_WEAPON) >= 7)) + { + takeItems(player, RESEARCH_SHADOW_WEAPON, -1); + giveItems(player, SHADOW_CRYSTAL, 2); + qs.setCond(5); + } + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case BLACKSMITH_MAMMON: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31126-00.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "31126-03.htm"; + } + else if (qs.isCond(2)) + { + htmltext = "31126-05.htm"; + } + else if (qs.isCond(3)) + { + htmltext = "31126-08.htm"; + qs.setCond(4); + } + else if (qs.isCond(4)) + { + if (hasQuestItems(player, RESEARCH_SHADOW_WEAPON)) + { + htmltext = "31126-07.htm"; + } + else + { + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + } + } + else if (qs.isCond(6)) + { + htmltext = "31126-09.htm"; + addExpAndSp(player, 32958000000L, 29662200); + qs.exitQuest(false, true); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(5) && hasQuestItems(player, SHADOW_CRYSTAL)) + { + htmltext = "32347-00.htm"; + takeItems(player, SHADOW_CRYSTAL, -1); + qs.setCond(6); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(5) && hasQuestItems(player, SHADOW_CRYSTAL)) + { + htmltext = "32615-00.htm"; + takeItems(player, SHADOW_CRYSTAL, -1); + qs.setCond(6); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance player, boolean isSummon) + { + executeForEachPlayer(player, npc, isSummon, true, false); + return super.onKill(npc, player, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(2)) + { + if (hasAtLeastOneQuestItem(player, SHADOW_WEAPON_1, SHADOW_WEAPON_2, SHADOW_WEAPON_3, SHADOW_WEAPON_4, SHADOW_WEAPON_5, SHADOW_WEAPON_6, SHADOW_WEAPON_7, SHADOW_WEAPON_8, SHADOW_WEAPON_9, SHADOW_WEAPON_10)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.BRING_SHADOW_WEAPON, 1)); + return holder; + } + + } + if ((qs != null) && qs.isCond(4)) + { + if ((getEnchantLevel(player, RESEARCH_SHADOW_WEAPON) >= 7)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.ENCHANT_THE_RESEARCH_WEAPON, 1)); + return holder; + } + + } + return super.getNpcLogList(player); + } +} diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm new file mode 100644 index 0000000000..e2b5f08990 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm @@ -0,0 +1,3 @@ +Beola:
+You have completed the quest.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm new file mode 100644 index 0000000000..4a0776fac3 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm @@ -0,0 +1,3 @@ +Beola:
+It's a fortunate thing that such a skilled adventurer as yourself has committed to making yourself available to the cause. Here is your mission. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm new file mode 100644 index 0000000000..fa6a149721 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm @@ -0,0 +1,5 @@ +Beloa:
+You need 30 of the Renants of the Rift item in order to seal the Dimensional Rift..
+Are you strong enough to collect 30 Remnant of the Rift for me?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm new file mode 100644 index 0000000000..451878630a --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm @@ -0,0 +1,3 @@ +Beola:
+Not done yet. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java new file mode 100644 index 0000000000..22b28c72dc --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java @@ -0,0 +1,107 @@ +/* + * 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.Q10373_ExploringTheDimensionSealingTheDimension; + +import org.l2jmobius.gameserver.enums.QuestType; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; + +/** + * @author Sero + */ +public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest +{ + private static final int BELOA = 34227; + private static final int RUNE_STONE = 39738; + private static final int COMMANDO_BELT = 47044; + private static final int REMNANT_OF_THE_RIFT = 46787; + private static final int ZODIAC_AGATHION = 45577; + private static final int MIN_LEVEL = 95; + + public Q10373_ExploringTheDimensionSealingTheDimension() + { + super(10373); + addStartNpc(BELOA); + addTalkId(BELOA); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + if (event.equals("34227-04.htm")) + { + qs.startQuest(); + htmltext = event; + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + if (npc.getId() == BELOA) + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "34227-05.htm"; + break; + } + case State.STARTED: + { + if (getQuestItemsCount(player, REMNANT_OF_THE_RIFT) >= 30) + { + takeItems(player, REMNANT_OF_THE_RIFT, -1); + giveItems(player, COMMANDO_BELT, 1); + giveItems(player, ZODIAC_AGATHION, 1); + giveItems(player, RUNE_STONE, 1); + addExpAndSp(player, 12113489880L, 12113460); + qs.exitQuest(QuestType.ONE_TIME); + htmltext = "30756-09.html"; + } + else + { + htmltext = "34227-05a.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + } + return htmltext; + } +} diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm new file mode 100644 index 0000000000..6cfa89b1be --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm @@ -0,0 +1,3 @@ +Mammon:
+This the Last challenge Defeat monster in Giant's Cave and Hellbound collect Ore with Giant's Energy and Crystal with Magical Power Crystal with Magical Power then take them to Shadai and Ishuma. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm new file mode 100644 index 0000000000..bd85c2b6b4 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+Congratulations you have completed the challenge you deserve your reward warrior! + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm new file mode 100644 index 0000000000..2abc5c3f37 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Thank you for your hard work. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm new file mode 100644 index 0000000000..c136bcdd72 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm @@ -0,0 +1,3 @@ +Ishuma:
+Thank you for your hard work. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java new file mode 100644 index 0000000000..e4dc121357 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java @@ -0,0 +1,238 @@ +/* +* 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.Q10535_BlacksmithsSoul3; + +import java.util.List; + +import org.l2jmobius.commons.util.CommonUtil; +import org.l2jmobius.gameserver.enums.QuestSound; +import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; + +import quests.Q10356_BlacksmithsSoul2.Q10356_BlacksmithsSoul2; + +/** + * @author Sero + */ +public class Q10535_BlacksmithsSoul3 extends Quest +{ + // NPCs + private static final int BLACKSMITH_MAMMON = 31126; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + // Monsters + private static final int[] HELL_MONSTERS = + { + 23386, // Jabberwok + 23387, // Kanzaroth + 23388, // Kandiloth + 23384, // Smaug + 23385, // Lunatikan + 23399, // Bend Beetle + 23398, // Koraza + 23397, // Desert Wendigo + 23395, // Garion + 23396, // Garion neti + }; + private static final int[] CAVE_MONSTERS = + { + 23727, // Shaqrima Bathus + 23728, // Shaqrima Carcass + 23729, // Kshana + }; + // Items + private static final int OREWITH_GIANTS_ENERGY = 47892; + private static final int CRYSTAL_WITH_MAGOCAL_POWER = 47891; + private static final int ENCHANTED_SHADOW_INGOT = 47886; + // Misc + private static final int MAIN_LEVEL = 99; + + public Q10535_BlacksmithsSoul3() + { + super(10535); + addStartNpc(BLACKSMITH_MAMMON); + addTalkId(BLACKSMITH_MAMMON, SHADAI, ISHUMA); + addKillId(HELL_MONSTERS); + addKillId(CAVE_MONSTERS); + addCondCompletedQuest(Q10356_BlacksmithsSoul2.class.getSimpleName(), "31126-02.htm"); + addCondMinLevel(MAIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case BLACKSMITH_MAMMON: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31126-00.htm"; + qs.startQuest(); + break; + } + case State.STARTED: + { + if (qs.isCond(9)) + { + htmltext = "31126-01.htm"; + addExpAndSp(player, 40346120829L, 36311508); + giveItems(player, ENCHANTED_SHADOW_INGOT, 1); + qs.exitQuest(false, true); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(7) && (getQuestItemsCount(player, CRYSTAL_WITH_MAGOCAL_POWER) >= 500) && (getQuestItemsCount(player, OREWITH_GIANTS_ENERGY) >= 500)) + { + htmltext = "32347-00.htm"; + takeItems(player, CRYSTAL_WITH_MAGOCAL_POWER, -1); + qs.setCond(8); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(8) && (getQuestItemsCount(player, OREWITH_GIANTS_ENERGY) >= 500)) + { + htmltext = "32615-00.htm"; + takeItems(player, OREWITH_GIANTS_ENERGY, -1); + qs.setCond(9); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) + { + if (killer.isInParty()) + { + final Party party = killer.getParty(); + final List partyMember = party.getMembers(); + for (PlayerInstance singleMember : partyMember) + { + final QuestState qsPartyMember = getQuestState(singleMember, false); + final double distance = npc.calculateDistance3D(singleMember); + if ((qsPartyMember != null) && (distance <= 1000)) + { + if (qsPartyMember.isCond(1)) + { + if (CommonUtil.contains(HELL_MONSTERS, npc.getId()) && (getQuestItemsCount(singleMember, CRYSTAL_WITH_MAGOCAL_POWER) < 500)) + { + giveItems(singleMember, CRYSTAL_WITH_MAGOCAL_POWER, 1); + playSound(singleMember, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qsPartyMember.isCond(1)) + { + if (CommonUtil.contains(CAVE_MONSTERS, npc.getId()) && (getQuestItemsCount(singleMember, OREWITH_GIANTS_ENERGY) < 500)) + { + giveItems(singleMember, OREWITH_GIANTS_ENERGY, 1); + playSound(singleMember, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qsPartyMember.isCond(1) && (getQuestItemsCount(singleMember, OREWITH_GIANTS_ENERGY) >= 500) && (getQuestItemsCount(singleMember, CRYSTAL_WITH_MAGOCAL_POWER) >= 500)) + { + qsPartyMember.setCond(7); + } + } + } + } + else + { + final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc); + if (qs != null) + { + if (qs.isCond(1)) + { + if (CommonUtil.contains(HELL_MONSTERS, npc.getId()) && (getQuestItemsCount(killer, CRYSTAL_WITH_MAGOCAL_POWER) < 500)) + { + giveItems(killer, CRYSTAL_WITH_MAGOCAL_POWER, 1); + playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); + + } + } + if (qs.isCond(1)) + { + if (CommonUtil.contains(CAVE_MONSTERS, npc.getId()) && (getQuestItemsCount(killer, OREWITH_GIANTS_ENERGY) < 500)) + { + giveItems(killer, OREWITH_GIANTS_ENERGY, 1); + playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qs.isCond(1) && (getQuestItemsCount(killer, OREWITH_GIANTS_ENERGY) >= 500) && (getQuestItemsCount(killer, CRYSTAL_WITH_MAGOCAL_POWER) >= 500)) + { + qs.setCond(7); + } + } + } + return super.onKill(npc, killer, isSummon); + } +} diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/QuestMasterHandler.java index f68f04809d..80d02df229 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -297,6 +297,8 @@ import quests.Q10346_DayOfDestinyKamaelsFate.Q10346_DayOfDestinyKamaelsFate; import quests.Q10351_OwnerOfHall.Q10351_OwnerOfHall; import quests.Q10353_CertificationOfValue.Q10353_CertificationOfValue; import quests.Q10354_ResurrectedOwnerOfHall.Q10354_ResurrectedOwnerOfHall; +import quests.Q10355_BlacksmithsSoul1.Q10355_BlacksmithsSoul1; +import quests.Q10356_BlacksmithsSoul2.Q10356_BlacksmithsSoul2; import quests.Q10358_DividedSakumPoslof.Q10358_DividedSakumPoslof; import quests.Q10359_TracesOfEvil.Q10359_TracesOfEvil; import quests.Q10360_CertificationOfFate.Q10360_CertificationOfFate; @@ -309,6 +311,7 @@ import quests.Q10369_NoblesseSoulTesting.Q10369_NoblesseSoulTesting; import quests.Q10370_MenacingTimes.Q10370_MenacingTimes; import quests.Q10371_GraspThyPower.Q10371_GraspThyPower; import quests.Q10372_PurgatoryVolvere.Q10372_PurgatoryVolvere; +import quests.Q10373_ExploringTheDimensionSealingTheDimension.Q10373_ExploringTheDimensionSealingTheDimension; import quests.Q10374_ThatPlaceSuccubus.Q10374_ThatPlaceSuccubus; import quests.Q10375_SuccubusDisciples.Q10375_SuccubusDisciples; import quests.Q10376_BloodyGoodTime.Q10376_BloodyGoodTime; @@ -393,6 +396,7 @@ import quests.Q10530_KekropusLetterTheDragonsTransition.Q10530_KekropusLetterThe import quests.Q10531_OddHappeningsAtDragonValley.Q10531_OddHappeningsAtDragonValley; import quests.Q10532_UncoveringTheConspiracy.Q10532_UncoveringTheConspiracy; import quests.Q10534_HatchlingResearch.Q10534_HatchlingResearch; +import quests.Q10535_BlacksmithsSoul3.Q10535_BlacksmithsSoul3; import quests.Q10537_KamaelDisarray.Q10537_KamaelDisarray; import quests.Q10538_GiantsEvolution.Q10538_GiantsEvolution; import quests.Q10539_EnergySupplyCutoffPlan.Q10539_EnergySupplyCutoffPlan; @@ -562,12 +566,8 @@ import quests.not_done.Q00987_AdventureGuildsSpecialRequestLv3; import quests.not_done.Q00988_AdventureGuildsSpecialRequestLv4; import quests.not_done.Q00989_AdventureGuildsSpecialRequestLv5; import quests.not_done.Q10298_WastelandQueen; -import quests.not_done.Q10355_BlacksmithsSoul1; -import quests.not_done.Q10356_BlacksmithsSoul2; -import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension; import quests.not_done.Q10396_WitchOfSpores; import quests.not_done.Q10506_DianasRequest; -import quests.not_done.Q10535_BlacksmithsSoul3; import quests.not_done.Q10552_ChallengeBalthusKnight; import quests.not_done.Q10553_WhatMattersMoreThanAbility; import quests.not_done.Q10554_GiftForYou; @@ -920,8 +920,8 @@ public class QuestMasterHandler Q10351_OwnerOfHall.class, Q10353_CertificationOfValue.class, Q10354_ResurrectedOwnerOfHall.class, - Q10355_BlacksmithsSoul1.class, // TODO: Not done. - Q10356_BlacksmithsSoul2.class, // TODO: Not done. + Q10355_BlacksmithsSoul1.class, + Q10356_BlacksmithsSoul2.class, Q10358_DividedSakumPoslof.class, Q10359_TracesOfEvil.class, Q10360_CertificationOfFate.class, @@ -934,7 +934,7 @@ public class QuestMasterHandler Q10370_MenacingTimes.class, Q10371_GraspThyPower.class, Q10372_PurgatoryVolvere.class, - Q10373_ExploringTheDimensionSealingTheDimension.class, // TODO: Not done. + Q10373_ExploringTheDimensionSealingTheDimension.class, Q10374_ThatPlaceSuccubus.class, Q10375_SuccubusDisciples.class, Q10376_BloodyGoodTime.class, @@ -1021,7 +1021,7 @@ public class QuestMasterHandler Q10531_OddHappeningsAtDragonValley.class, Q10532_UncoveringTheConspiracy.class, Q10534_HatchlingResearch.class, - Q10535_BlacksmithsSoul3.class, // TODO: Not done. + Q10535_BlacksmithsSoul3.class, Q10537_KamaelDisarray.class, Q10538_GiantsEvolution.class, Q10539_EnergySupplyCutoffPlan.class, diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoul1.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoul1.java deleted file mode 100644 index e7399c2501..0000000000 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoul1.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10355_BlacksmithsSoul1 extends Quest -{ - private static final int START_NPC = 34095; - - public Q10355_BlacksmithsSoul1() - { - super(10355); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoul2.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoul2.java deleted file mode 100644 index 96044c608c..0000000000 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoul2.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10356_BlacksmithsSoul2 extends Quest -{ - private static final int START_NPC = 31126; - - public Q10356_BlacksmithsSoul2() - { - super(10356); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java deleted file mode 100644 index 029171274e..0000000000 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest -{ - private static final int START_NPC = 34227; - - public Q10373_ExploringTheDimensionSealingTheDimension() - { - super(10373); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoul3.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoul3.java deleted file mode 100644 index a9f1a2340d..0000000000 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoul3.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10535_BlacksmithsSoul3 extends Quest -{ - private static final int START_NPC = 31126; - - public Q10535_BlacksmithsSoul3() - { - super(10535); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/MissingQuests.txt index e55ab39c7f..a1e9a11b6f 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/MissingQuests.txt +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/MissingQuests.txt @@ -117,14 +117,10 @@ 988 Adventure Guild's Special Request - Lv. 4 989 Adventure Guild's Special Request - Lv. 5 10298 Wasteland Queen -10355 Blacksmith's Soul-awakening Weapon - 1 -10356 Blacksmith's Soul-awakening Weapon - 2 -10373 Exploring the Dimension - Sealing the Dimension 10423 Embryo Stronghold Ambush 10506 Diana's Request 10529 Ivory Tower's Research - Sea of Spores Journal 10533 Orfen's Ambition -10535 Blacksmith's Soul-awakening Weapon - 3 10552 Challenge! Balthus Knight! 10553 What Matters More Than Ability 10554 Gift for You diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm new file mode 100644 index 0000000000..5da6ba7013 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm @@ -0,0 +1,3 @@ +Taboy:
+Hello now Go ahead and talk with Legendary Blacksmith Shadai in Heine!
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm new file mode 100644 index 0000000000..8ec0122332 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm @@ -0,0 +1,3 @@ +Mammon:
+You have made a great work now you go to Nightmare Kamaloka and defeat 5 of Dark Rider then go to Command Post and defeat 5 of Burnstein (Command Post)
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm new file mode 100644 index 0000000000..18fad6ca27 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+You have made a great work now you go to Enchanted Valley and defeat 3000 of them. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm new file mode 100644 index 0000000000..5fe2df701a --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm @@ -0,0 +1,3 @@ +Mammon:
+You need to defeat 5 of Dark Rider then go to Command Post and defeat 5 of Burnstein (Command Post) and bring me 5 Shadow ingot. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm new file mode 100644 index 0000000000..28f0fe48fb --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm @@ -0,0 +1,3 @@ +Mammon:
+Congratulations you have complate the challenge now you're able to take the next challenge Blacksmiths Soul part 2 and bring me 5 Shadow ingot.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm new file mode 100644 index 0000000000..ac5c895004 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Hello now go ahead and talk with Maestro Ishuma at Wharf of Gludio Airships!
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm new file mode 100644 index 0000000000..74df5978cf --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Hello now Go ahead and talk with Blacksmith of Mammon at Aden or Giran!
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm new file mode 100644 index 0000000000..d41b284986 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm @@ -0,0 +1,4 @@ +Neti:
+This will be long way !
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm new file mode 100644 index 0000000000..f787693f2e --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm @@ -0,0 +1,3 @@ +Neti:
+Great you choose to take the challenge Go ahead and talk with Head Blacksmith Tapoy in Gludin !
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java new file mode 100644 index 0000000000..8b727fbd02 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java @@ -0,0 +1,320 @@ +/* + * 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.Q10355_BlacksmithsSoul1; + +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.enums.QuestSound; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.holders.NpcLogListHolder; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.NpcStringId; + +/** + * @author Sero + */ +public class Q10355_BlacksmithsSoul1 extends Quest +{ + // NPC + private static final int NETI = 34095; + private static final int TAPOY = 30499; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + private static final int MERCHANT_OF_MAMMON = 31126; + // Items + private static final int SHADOW_INGOT = 46395; + + // Monsters + private static final int BURNSTEIN = 23587; + private static final int DARK_RIDER = 26102; + private static final int[] NYMPH_MONSTERS = + { + 23569, // Nymph Lily + 23583, // Nymph Lily big + 23573, // Nymph Cosmos + 23567, // Nymph Rose + 23578, // Nymph Guardian + 23570, // Nymph Tulip + 19600, // Flower Bud + 23581, // Apherus + }; + // Misc + private static final int MIN_LEVEL = 99; + private static final String KILL_COUNT_VAR = "KillCount"; + + public Q10355_BlacksmithsSoul1() + { + super(10355); + addStartNpc(NETI); + addTalkId(NETI, TAPOY, SHADAI, ISHUMA, MERCHANT_OF_MAMMON); + registerQuestItems(SHADOW_INGOT); + addKillId(DARK_RIDER); + addKillId(BURNSTEIN); + addKillId(NYMPH_MONSTERS); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + if (event.equals("34095-01.htm")) + { + qs.startQuest(); + htmltext = event; + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case NETI: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "34095-00.htm"; + break; + } + case State.STARTED: + { + htmltext = "30756-09.html"; + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case TAPOY: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "30499-00.htm"; + qs.setCond(2); + } + else + { + htmltext = "30499-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(2)) + { + htmltext = "32347-00.htm"; + qs.setCond(3); + } + else + { + htmltext = "32347-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(3)) + { + htmltext = "32615-00.htm"; + qs.setCond(4); + } + else + { + htmltext = "32615-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case MERCHANT_OF_MAMMON: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(4)) + { + htmltext = "31126-00.htm"; + qs.setCond(5); + } + else if (qs.isCond(5)) + { + htmltext = "31126-00.htm"; + } + else if (qs.isCond(6) && (getQuestItemsCount(player, SHADOW_INGOT) >= 5)) + { + takeItems(player, SHADOW_INGOT, 5); + htmltext = "31126-01.htm"; + qs.setCond(7); + } + else if (qs.isCond(8)) + { + htmltext = "31126-03.htm"; + addExpAndSp(player, 26918866543L, 24226979); + qs.exitQuest(false, true); + } + else + { + htmltext = "31126-02.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(5)) + { + final int killedCount = qs.getInt(Integer.toString(npc.getId())); + if (killedCount < 5) + { + qs.set(Integer.toString(npc.getId()), killedCount + 1); + } + + final int killedRessurected = qs.getInt(Integer.toString(DARK_RIDER)); + final int killedLunatic = qs.getInt(Integer.toString(BURNSTEIN)); + if ((killedLunatic == 5) && (killedRessurected == 5)) + { + qs.setCond(6, true); + } + } + else if ((qs != null) && qs.isCond(7)) + { + int count = qs.getInt(KILL_COUNT_VAR); + qs.set(KILL_COUNT_VAR, ++count); + if (count >= 3000) + { + qs.setCond(8, true); + } + else + { + playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + } + + @Override + public String onKill(Npc npc, PlayerInstance player, boolean isSummon) + { + executeForEachPlayer(player, npc, isSummon, true, false); + return super.onKill(npc, player, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(5)) + { + final Set npcLogList = new HashSet<>(2); + npcLogList.add(new NpcLogListHolder(DARK_RIDER, false, qs.getInt(Integer.toString(DARK_RIDER)))); + npcLogList.add(new NpcLogListHolder(NpcStringId.DEFEAT_COMMANDER_BURNSTEIN_2, qs.getInt(Integer.toString(BURNSTEIN)))); + return npcLogList; + } + else if ((qs != null) && qs.isCond(7)) + { + final int killCount = qs.getInt(KILL_COUNT_VAR); + if (killCount > 0) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_ENCHANTED_VALLEY_2, killCount)); + return holder; + } + } + return super.getNpcLogList(player); + } +} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm new file mode 100644 index 0000000000..3597791e3f --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm @@ -0,0 +1,4 @@ +Mammon:
+Now the next part of your challenge is to bring me Improved Shadow Ingot.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm new file mode 100644 index 0000000000..7701eafb92 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+When you have Improved Shadow Ingot come back to me. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm new file mode 100644 index 0000000000..8b45d522e3 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm @@ -0,0 +1,3 @@ +Mammon:
+You need to complete Blacksmiths Soul - Part 1 first. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm new file mode 100644 index 0000000000..5e4b0372ff --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm @@ -0,0 +1,4 @@ +Mammon:
+Do you have the Improved Shadow Ingot?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm new file mode 100644 index 0000000000..41db2ca110 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm @@ -0,0 +1,3 @@ +Mammon:
+Do you have the Improved Shadow Ingot? + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm new file mode 100644 index 0000000000..2cd5a4c360 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm @@ -0,0 +1,3 @@ +Mammon:
+Good job now bring me a Shadow weapon that you don't want so I can make my research. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm new file mode 100644 index 0000000000..6c85b53868 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm @@ -0,0 +1,13 @@ +Mammon:
+Choose the weapon that you don't need to I can make my research on it "Warning! The weapon will not be returned to you"
+ + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm new file mode 100644 index 0000000000..3d5106f81e --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm @@ -0,0 +1,3 @@ +Mammon:
+Great work! Now take this weapon, upgrade it to +7 and bring it back to me. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm new file mode 100644 index 0000000000..95bd9a311e --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm @@ -0,0 +1,4 @@ +Mammon:
+Nice now hand me the weapon let me do my research.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm new file mode 100644 index 0000000000..d3855a838b --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm @@ -0,0 +1,3 @@ +Mammon:
+It's hard work but please enchant my the weapon to +7. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm new file mode 100644 index 0000000000..8675786a66 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm @@ -0,0 +1,3 @@ +Mammon:
+You have done good so far now you can take your reward and be ready for the next challenge. Have a great day. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm new file mode 100644 index 0000000000..0088de0fdc --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+I agreed to take a part in the research. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm new file mode 100644 index 0000000000..f42c9f126a --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm @@ -0,0 +1,3 @@ +Ishuma:
+I agreed to take a part in the research. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java new file mode 100644 index 0000000000..ff3b015706 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java @@ -0,0 +1,371 @@ +/* + * 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.Q10356_BlacksmithsSoul2; + +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.holders.NpcLogListHolder; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.NpcStringId; + +import quests.Q10355_BlacksmithsSoul1.Q10355_BlacksmithsSoul1; + +/** + * @author Sero + */ +public class Q10356_BlacksmithsSoul2 extends Quest +{ + // NPCs + private static final int BLACKSMITH_MAMMON = 31126; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + // Items + private static final int Improved_SHADOW_Ingot = 47896; + private static final int RESEARCH_SHADOW_WEAPON = 47890; + private static final int SHADOW_WEAPON_1 = 46317; + private static final int SHADOW_WEAPON_2 = 46318; + private static final int SHADOW_WEAPON_3 = 46319; + private static final int SHADOW_WEAPON_4 = 46320; + private static final int SHADOW_WEAPON_5 = 46321; + private static final int SHADOW_WEAPON_6 = 46322; + private static final int SHADOW_WEAPON_7 = 46323; + private static final int SHADOW_WEAPON_8 = 46324; + private static final int SHADOW_WEAPON_9 = 46325; + private static final int SHADOW_WEAPON_10 = 46326; + private static final int SHADOW_CRYSTAL = 47899; + private static final int MAIN_LEVEL = 99; + + public Q10356_BlacksmithsSoul2() + { + super(10356); + addStartNpc(BLACKSMITH_MAMMON); + addTalkId(BLACKSMITH_MAMMON, SHADAI, ISHUMA); + addCondCompletedQuest(Q10355_BlacksmithsSoul1.class.getSimpleName(), "31126-02.htm"); + addCondMinLevel(MAIN_LEVEL, getNoQuestMsg(null)); + registerQuestItems(Improved_SHADOW_Ingot, SHADOW_WEAPON_1, SHADOW_WEAPON_2, SHADOW_WEAPON_3, SHADOW_WEAPON_4, SHADOW_WEAPON_5, SHADOW_WEAPON_6, SHADOW_WEAPON_7, SHADOW_WEAPON_8, SHADOW_WEAPON_9, SHADOW_WEAPON_10, RESEARCH_SHADOW_WEAPON); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + switch (event) + { + case "31126-01.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "31126-04.htm": + { + if (hasQuestItems(player, Improved_SHADOW_Ingot)) + { + takeItems(player, Improved_SHADOW_Ingot, 1); + qs.setCond(2); + htmltext = event; + } + else + { + htmltext = "31126-03r.htm"; + } + break; + } + case "SHADOW_WEAPON_1": + { + if (hasQuestItems(player, SHADOW_WEAPON_1)) + { + takeItems(player, SHADOW_WEAPON_1, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_2": + { + if (hasQuestItems(player, SHADOW_WEAPON_2)) + { + takeItems(player, SHADOW_WEAPON_2, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_3": + { + if (hasQuestItems(player, SHADOW_WEAPON_3)) + { + takeItems(player, SHADOW_WEAPON_3, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_4": + { + if (hasQuestItems(player, SHADOW_WEAPON_4)) + { + takeItems(player, SHADOW_WEAPON_4, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_5": + { + if (hasQuestItems(player, SHADOW_WEAPON_5)) + { + takeItems(player, SHADOW_WEAPON_5, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_6": + { + if (hasQuestItems(player, SHADOW_WEAPON_6)) + { + takeItems(player, SHADOW_WEAPON_6, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + htmltext = event; + } + break; + } + case "SHADOW_WEAPON_7": + { + if (hasQuestItems(player, SHADOW_WEAPON_7)) + { + takeItems(player, SHADOW_WEAPON_7, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_8": + { + if (hasQuestItems(player, SHADOW_WEAPON_8)) + { + takeItems(player, SHADOW_WEAPON_8, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_9": + { + if (hasQuestItems(player, SHADOW_WEAPON_9)) + { + takeItems(player, SHADOW_WEAPON_9, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_10": + { + if (hasQuestItems(player, SHADOW_WEAPON_10)) + { + takeItems(player, SHADOW_WEAPON_10, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "RESEARCH_SHADOW_WEAPON7": + { + if (hasQuestItems(player, RESEARCH_SHADOW_WEAPON) && (getEnchantLevel(player, RESEARCH_SHADOW_WEAPON) >= 7)) + { + takeItems(player, RESEARCH_SHADOW_WEAPON, -1); + giveItems(player, SHADOW_CRYSTAL, 2); + qs.setCond(5); + } + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case BLACKSMITH_MAMMON: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31126-00.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "31126-03.htm"; + } + else if (qs.isCond(2)) + { + htmltext = "31126-05.htm"; + } + else if (qs.isCond(3)) + { + htmltext = "31126-08.htm"; + qs.setCond(4); + } + else if (qs.isCond(4)) + { + if (hasQuestItems(player, RESEARCH_SHADOW_WEAPON)) + { + htmltext = "31126-07.htm"; + } + else + { + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + } + } + else if (qs.isCond(6)) + { + htmltext = "31126-09.htm"; + addExpAndSp(player, 32958000000L, 29662200); + qs.exitQuest(false, true); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(5) && hasQuestItems(player, SHADOW_CRYSTAL)) + { + htmltext = "32347-00.htm"; + takeItems(player, SHADOW_CRYSTAL, -1); + qs.setCond(6); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(5) && hasQuestItems(player, SHADOW_CRYSTAL)) + { + htmltext = "32615-00.htm"; + takeItems(player, SHADOW_CRYSTAL, -1); + qs.setCond(6); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance player, boolean isSummon) + { + executeForEachPlayer(player, npc, isSummon, true, false); + return super.onKill(npc, player, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(2)) + { + if (hasAtLeastOneQuestItem(player, SHADOW_WEAPON_1, SHADOW_WEAPON_2, SHADOW_WEAPON_3, SHADOW_WEAPON_4, SHADOW_WEAPON_5, SHADOW_WEAPON_6, SHADOW_WEAPON_7, SHADOW_WEAPON_8, SHADOW_WEAPON_9, SHADOW_WEAPON_10)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.BRING_SHADOW_WEAPON, 1)); + return holder; + } + + } + if ((qs != null) && qs.isCond(4)) + { + if ((getEnchantLevel(player, RESEARCH_SHADOW_WEAPON) >= 7)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.ENCHANT_THE_RESEARCH_WEAPON, 1)); + return holder; + } + + } + return super.getNpcLogList(player); + } +} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm new file mode 100644 index 0000000000..e2b5f08990 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm @@ -0,0 +1,3 @@ +Beola:
+You have completed the quest.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm new file mode 100644 index 0000000000..4a0776fac3 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm @@ -0,0 +1,3 @@ +Beola:
+It's a fortunate thing that such a skilled adventurer as yourself has committed to making yourself available to the cause. Here is your mission. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm new file mode 100644 index 0000000000..fa6a149721 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm @@ -0,0 +1,5 @@ +Beloa:
+You need 30 of the Renants of the Rift item in order to seal the Dimensional Rift..
+Are you strong enough to collect 30 Remnant of the Rift for me?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm new file mode 100644 index 0000000000..451878630a --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm @@ -0,0 +1,3 @@ +Beola:
+Not done yet. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java new file mode 100644 index 0000000000..22b28c72dc --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java @@ -0,0 +1,107 @@ +/* + * 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.Q10373_ExploringTheDimensionSealingTheDimension; + +import org.l2jmobius.gameserver.enums.QuestType; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; + +/** + * @author Sero + */ +public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest +{ + private static final int BELOA = 34227; + private static final int RUNE_STONE = 39738; + private static final int COMMANDO_BELT = 47044; + private static final int REMNANT_OF_THE_RIFT = 46787; + private static final int ZODIAC_AGATHION = 45577; + private static final int MIN_LEVEL = 95; + + public Q10373_ExploringTheDimensionSealingTheDimension() + { + super(10373); + addStartNpc(BELOA); + addTalkId(BELOA); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + if (event.equals("34227-04.htm")) + { + qs.startQuest(); + htmltext = event; + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + if (npc.getId() == BELOA) + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "34227-05.htm"; + break; + } + case State.STARTED: + { + if (getQuestItemsCount(player, REMNANT_OF_THE_RIFT) >= 30) + { + takeItems(player, REMNANT_OF_THE_RIFT, -1); + giveItems(player, COMMANDO_BELT, 1); + giveItems(player, ZODIAC_AGATHION, 1); + giveItems(player, RUNE_STONE, 1); + addExpAndSp(player, 12113489880L, 12113460); + qs.exitQuest(QuestType.ONE_TIME); + htmltext = "30756-09.html"; + } + else + { + htmltext = "34227-05a.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + } + return htmltext; + } +} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm new file mode 100644 index 0000000000..6cfa89b1be --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm @@ -0,0 +1,3 @@ +Mammon:
+This the Last challenge Defeat monster in Giant's Cave and Hellbound collect Ore with Giant's Energy and Crystal with Magical Power Crystal with Magical Power then take them to Shadai and Ishuma. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm new file mode 100644 index 0000000000..bd85c2b6b4 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+Congratulations you have completed the challenge you deserve your reward warrior! + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm new file mode 100644 index 0000000000..2abc5c3f37 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Thank you for your hard work. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm new file mode 100644 index 0000000000..c136bcdd72 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm @@ -0,0 +1,3 @@ +Ishuma:
+Thank you for your hard work. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java new file mode 100644 index 0000000000..e4dc121357 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java @@ -0,0 +1,238 @@ +/* +* 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.Q10535_BlacksmithsSoul3; + +import java.util.List; + +import org.l2jmobius.commons.util.CommonUtil; +import org.l2jmobius.gameserver.enums.QuestSound; +import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; + +import quests.Q10356_BlacksmithsSoul2.Q10356_BlacksmithsSoul2; + +/** + * @author Sero + */ +public class Q10535_BlacksmithsSoul3 extends Quest +{ + // NPCs + private static final int BLACKSMITH_MAMMON = 31126; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + // Monsters + private static final int[] HELL_MONSTERS = + { + 23386, // Jabberwok + 23387, // Kanzaroth + 23388, // Kandiloth + 23384, // Smaug + 23385, // Lunatikan + 23399, // Bend Beetle + 23398, // Koraza + 23397, // Desert Wendigo + 23395, // Garion + 23396, // Garion neti + }; + private static final int[] CAVE_MONSTERS = + { + 23727, // Shaqrima Bathus + 23728, // Shaqrima Carcass + 23729, // Kshana + }; + // Items + private static final int OREWITH_GIANTS_ENERGY = 47892; + private static final int CRYSTAL_WITH_MAGOCAL_POWER = 47891; + private static final int ENCHANTED_SHADOW_INGOT = 47886; + // Misc + private static final int MAIN_LEVEL = 99; + + public Q10535_BlacksmithsSoul3() + { + super(10535); + addStartNpc(BLACKSMITH_MAMMON); + addTalkId(BLACKSMITH_MAMMON, SHADAI, ISHUMA); + addKillId(HELL_MONSTERS); + addKillId(CAVE_MONSTERS); + addCondCompletedQuest(Q10356_BlacksmithsSoul2.class.getSimpleName(), "31126-02.htm"); + addCondMinLevel(MAIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case BLACKSMITH_MAMMON: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31126-00.htm"; + qs.startQuest(); + break; + } + case State.STARTED: + { + if (qs.isCond(9)) + { + htmltext = "31126-01.htm"; + addExpAndSp(player, 40346120829L, 36311508); + giveItems(player, ENCHANTED_SHADOW_INGOT, 1); + qs.exitQuest(false, true); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(7) && (getQuestItemsCount(player, CRYSTAL_WITH_MAGOCAL_POWER) >= 500) && (getQuestItemsCount(player, OREWITH_GIANTS_ENERGY) >= 500)) + { + htmltext = "32347-00.htm"; + takeItems(player, CRYSTAL_WITH_MAGOCAL_POWER, -1); + qs.setCond(8); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(8) && (getQuestItemsCount(player, OREWITH_GIANTS_ENERGY) >= 500)) + { + htmltext = "32615-00.htm"; + takeItems(player, OREWITH_GIANTS_ENERGY, -1); + qs.setCond(9); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) + { + if (killer.isInParty()) + { + final Party party = killer.getParty(); + final List partyMember = party.getMembers(); + for (PlayerInstance singleMember : partyMember) + { + final QuestState qsPartyMember = getQuestState(singleMember, false); + final double distance = npc.calculateDistance3D(singleMember); + if ((qsPartyMember != null) && (distance <= 1000)) + { + if (qsPartyMember.isCond(1)) + { + if (CommonUtil.contains(HELL_MONSTERS, npc.getId()) && (getQuestItemsCount(singleMember, CRYSTAL_WITH_MAGOCAL_POWER) < 500)) + { + giveItems(singleMember, CRYSTAL_WITH_MAGOCAL_POWER, 1); + playSound(singleMember, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qsPartyMember.isCond(1)) + { + if (CommonUtil.contains(CAVE_MONSTERS, npc.getId()) && (getQuestItemsCount(singleMember, OREWITH_GIANTS_ENERGY) < 500)) + { + giveItems(singleMember, OREWITH_GIANTS_ENERGY, 1); + playSound(singleMember, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qsPartyMember.isCond(1) && (getQuestItemsCount(singleMember, OREWITH_GIANTS_ENERGY) >= 500) && (getQuestItemsCount(singleMember, CRYSTAL_WITH_MAGOCAL_POWER) >= 500)) + { + qsPartyMember.setCond(7); + } + } + } + } + else + { + final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc); + if (qs != null) + { + if (qs.isCond(1)) + { + if (CommonUtil.contains(HELL_MONSTERS, npc.getId()) && (getQuestItemsCount(killer, CRYSTAL_WITH_MAGOCAL_POWER) < 500)) + { + giveItems(killer, CRYSTAL_WITH_MAGOCAL_POWER, 1); + playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); + + } + } + if (qs.isCond(1)) + { + if (CommonUtil.contains(CAVE_MONSTERS, npc.getId()) && (getQuestItemsCount(killer, OREWITH_GIANTS_ENERGY) < 500)) + { + giveItems(killer, OREWITH_GIANTS_ENERGY, 1); + playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qs.isCond(1) && (getQuestItemsCount(killer, OREWITH_GIANTS_ENERGY) >= 500) && (getQuestItemsCount(killer, CRYSTAL_WITH_MAGOCAL_POWER) >= 500)) + { + qs.setCond(7); + } + } + } + return super.onKill(npc, killer, isSummon); + } +} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java index 90b4def963..42b7174af3 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -269,6 +269,8 @@ import quests.Q10346_DayOfDestinyKamaelsFate.Q10346_DayOfDestinyKamaelsFate; import quests.Q10351_OwnerOfHall.Q10351_OwnerOfHall; import quests.Q10353_CertificationOfValue.Q10353_CertificationOfValue; import quests.Q10354_ResurrectedOwnerOfHall.Q10354_ResurrectedOwnerOfHall; +import quests.Q10355_BlacksmithsSoul1.Q10355_BlacksmithsSoul1; +import quests.Q10356_BlacksmithsSoul2.Q10356_BlacksmithsSoul2; import quests.Q10358_DividedSakumPoslof.Q10358_DividedSakumPoslof; import quests.Q10359_TracesOfEvil.Q10359_TracesOfEvil; import quests.Q10360_CertificationOfFate.Q10360_CertificationOfFate; @@ -278,6 +280,7 @@ import quests.Q10364_ObligationsOfTheSeeker.Q10364_ObligationsOfTheSeeker; import quests.Q10365_ForTheSearchdogKing.Q10365_ForTheSearchdogKing; import quests.Q10366_ReportOnTheSituationAtTheRuins.Q10366_ReportOnTheSituationAtTheRuins; import quests.Q10369_NoblesseSoulTesting.Q10369_NoblesseSoulTesting; +import quests.Q10373_ExploringTheDimensionSealingTheDimension.Q10373_ExploringTheDimensionSealingTheDimension; import quests.Q10377_TheInvadedExecutionGrounds.Q10377_TheInvadedExecutionGrounds; import quests.Q10378_WeedingWork.Q10378_WeedingWork; import quests.Q10379_AnUninvitedGuest.Q10379_AnUninvitedGuest; @@ -352,6 +355,7 @@ import quests.Q10530_KekropusLetterTheDragonsTransition.Q10530_KekropusLetterThe import quests.Q10531_OddHappeningsAtDragonValley.Q10531_OddHappeningsAtDragonValley; import quests.Q10532_UncoveringTheConspiracy.Q10532_UncoveringTheConspiracy; import quests.Q10534_HatchlingResearch.Q10534_HatchlingResearch; +import quests.Q10535_BlacksmithsSoul3.Q10535_BlacksmithsSoul3; import quests.Q10537_KamaelDisarray.Q10537_KamaelDisarray; import quests.Q10538_GiantsEvolution.Q10538_GiantsEvolution; import quests.Q10539_EnergySupplyCutoffPlan.Q10539_EnergySupplyCutoffPlan; @@ -520,13 +524,9 @@ import quests.not_done.Q00987_AdventureGuildsSpecialRequestLv3; import quests.not_done.Q00988_AdventureGuildsSpecialRequestLv4; import quests.not_done.Q00989_AdventureGuildsSpecialRequestLv5; import quests.not_done.Q10298_WastelandQueen; -import quests.not_done.Q10355_BlacksmithsSoul1; -import quests.not_done.Q10356_BlacksmithsSoul2; -import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension; import quests.not_done.Q10506_DianasRequest; import quests.not_done.Q10529_IvoryTowersResearchSeaOfSporesJournal; import quests.not_done.Q10533_OrfensAmbition; -import quests.not_done.Q10535_BlacksmithsSoul3; import quests.not_done.Q10552_ChallengeBalthusKnight; import quests.not_done.Q10553_WhatMattersMoreThanAbility; import quests.not_done.Q10554_GiftForYou; @@ -858,8 +858,8 @@ public class QuestMasterHandler Q10351_OwnerOfHall.class, Q10353_CertificationOfValue.class, Q10354_ResurrectedOwnerOfHall.class, - Q10355_BlacksmithsSoul1.class, // TODO: Not done. - Q10356_BlacksmithsSoul2.class, // TODO: Not done. + Q10355_BlacksmithsSoul1.class, + Q10356_BlacksmithsSoul2.class, Q10358_DividedSakumPoslof.class, Q10359_TracesOfEvil.class, Q10360_CertificationOfFate.class, @@ -869,7 +869,7 @@ public class QuestMasterHandler Q10365_ForTheSearchdogKing.class, Q10366_ReportOnTheSituationAtTheRuins.class, Q10369_NoblesseSoulTesting.class, - Q10373_ExploringTheDimensionSealingTheDimension.class, // TODO: Not done. + Q10373_ExploringTheDimensionSealingTheDimension.class, Q10377_TheInvadedExecutionGrounds.class, Q10378_WeedingWork.class, Q10379_AnUninvitedGuest.class, @@ -947,7 +947,7 @@ public class QuestMasterHandler Q10532_UncoveringTheConspiracy.class, Q10533_OrfensAmbition.class, // TODO: Not done. Q10534_HatchlingResearch.class, - Q10535_BlacksmithsSoul3.class, // TODO: Not done. + Q10535_BlacksmithsSoul3.class, Q10537_KamaelDisarray.class, Q10538_GiantsEvolution.class, Q10539_EnergySupplyCutoffPlan.class, diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoul1.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoul1.java deleted file mode 100644 index e7399c2501..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoul1.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10355_BlacksmithsSoul1 extends Quest -{ - private static final int START_NPC = 34095; - - public Q10355_BlacksmithsSoul1() - { - super(10355); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoul2.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoul2.java deleted file mode 100644 index 96044c608c..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoul2.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10356_BlacksmithsSoul2 extends Quest -{ - private static final int START_NPC = 31126; - - public Q10356_BlacksmithsSoul2() - { - super(10356); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java deleted file mode 100644 index 029171274e..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest -{ - private static final int START_NPC = 34227; - - public Q10373_ExploringTheDimensionSealingTheDimension() - { - super(10373); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoul3.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoul3.java deleted file mode 100644 index a9f1a2340d..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoul3.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10535_BlacksmithsSoul3 extends Quest -{ - private static final int START_NPC = 31126; - - public Q10535_BlacksmithsSoul3() - { - super(10535); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/MissingQuests.txt index 2ca4c1c936..345000e005 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/MissingQuests.txt +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/MissingQuests.txt @@ -120,10 +120,6 @@ 988 Adventure Guild's Special Request - Lv. 4 989 Adventure Guild's Special Request - Lv. 5 10298 Wasteland Queen -10355 Blacksmith's Soul-awakening Weapon - 1 -10356 Blacksmith's Soul-awakening Weapon - 2 -10373 Exploring the Dimension - Sealing the Dimension -10535 Blacksmith's Soul-awakening Weapon - 3 10552 Challenge! Balthus Knight! 10553 What Matters More Than Ability 10554 Gift for You diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm new file mode 100644 index 0000000000..5da6ba7013 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm @@ -0,0 +1,3 @@ +Taboy:
+Hello now Go ahead and talk with Legendary Blacksmith Shadai in Heine!
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm new file mode 100644 index 0000000000..8ec0122332 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm @@ -0,0 +1,3 @@ +Mammon:
+You have made a great work now you go to Nightmare Kamaloka and defeat 5 of Dark Rider then go to Command Post and defeat 5 of Burnstein (Command Post)
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm new file mode 100644 index 0000000000..18fad6ca27 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+You have made a great work now you go to Enchanted Valley and defeat 3000 of them. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm new file mode 100644 index 0000000000..5fe2df701a --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm @@ -0,0 +1,3 @@ +Mammon:
+You need to defeat 5 of Dark Rider then go to Command Post and defeat 5 of Burnstein (Command Post) and bring me 5 Shadow ingot. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm new file mode 100644 index 0000000000..28f0fe48fb --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm @@ -0,0 +1,3 @@ +Mammon:
+Congratulations you have complate the challenge now you're able to take the next challenge Blacksmiths Soul part 2 and bring me 5 Shadow ingot.
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm new file mode 100644 index 0000000000..ac5c895004 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Hello now go ahead and talk with Maestro Ishuma at Wharf of Gludio Airships!
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm new file mode 100644 index 0000000000..74df5978cf --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Hello now Go ahead and talk with Blacksmith of Mammon at Aden or Giran!
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm new file mode 100644 index 0000000000..d41b284986 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm @@ -0,0 +1,4 @@ +Neti:
+This will be long way !
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm new file mode 100644 index 0000000000..f787693f2e --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm @@ -0,0 +1,3 @@ +Neti:
+Great you choose to take the challenge Go ahead and talk with Head Blacksmith Tapoy in Gludin !
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java new file mode 100644 index 0000000000..8b727fbd02 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java @@ -0,0 +1,320 @@ +/* + * 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.Q10355_BlacksmithsSoul1; + +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.enums.QuestSound; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.holders.NpcLogListHolder; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.NpcStringId; + +/** + * @author Sero + */ +public class Q10355_BlacksmithsSoul1 extends Quest +{ + // NPC + private static final int NETI = 34095; + private static final int TAPOY = 30499; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + private static final int MERCHANT_OF_MAMMON = 31126; + // Items + private static final int SHADOW_INGOT = 46395; + + // Monsters + private static final int BURNSTEIN = 23587; + private static final int DARK_RIDER = 26102; + private static final int[] NYMPH_MONSTERS = + { + 23569, // Nymph Lily + 23583, // Nymph Lily big + 23573, // Nymph Cosmos + 23567, // Nymph Rose + 23578, // Nymph Guardian + 23570, // Nymph Tulip + 19600, // Flower Bud + 23581, // Apherus + }; + // Misc + private static final int MIN_LEVEL = 99; + private static final String KILL_COUNT_VAR = "KillCount"; + + public Q10355_BlacksmithsSoul1() + { + super(10355); + addStartNpc(NETI); + addTalkId(NETI, TAPOY, SHADAI, ISHUMA, MERCHANT_OF_MAMMON); + registerQuestItems(SHADOW_INGOT); + addKillId(DARK_RIDER); + addKillId(BURNSTEIN); + addKillId(NYMPH_MONSTERS); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + if (event.equals("34095-01.htm")) + { + qs.startQuest(); + htmltext = event; + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case NETI: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "34095-00.htm"; + break; + } + case State.STARTED: + { + htmltext = "30756-09.html"; + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case TAPOY: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "30499-00.htm"; + qs.setCond(2); + } + else + { + htmltext = "30499-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(2)) + { + htmltext = "32347-00.htm"; + qs.setCond(3); + } + else + { + htmltext = "32347-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(3)) + { + htmltext = "32615-00.htm"; + qs.setCond(4); + } + else + { + htmltext = "32615-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case MERCHANT_OF_MAMMON: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(4)) + { + htmltext = "31126-00.htm"; + qs.setCond(5); + } + else if (qs.isCond(5)) + { + htmltext = "31126-00.htm"; + } + else if (qs.isCond(6) && (getQuestItemsCount(player, SHADOW_INGOT) >= 5)) + { + takeItems(player, SHADOW_INGOT, 5); + htmltext = "31126-01.htm"; + qs.setCond(7); + } + else if (qs.isCond(8)) + { + htmltext = "31126-03.htm"; + addExpAndSp(player, 26918866543L, 24226979); + qs.exitQuest(false, true); + } + else + { + htmltext = "31126-02.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(5)) + { + final int killedCount = qs.getInt(Integer.toString(npc.getId())); + if (killedCount < 5) + { + qs.set(Integer.toString(npc.getId()), killedCount + 1); + } + + final int killedRessurected = qs.getInt(Integer.toString(DARK_RIDER)); + final int killedLunatic = qs.getInt(Integer.toString(BURNSTEIN)); + if ((killedLunatic == 5) && (killedRessurected == 5)) + { + qs.setCond(6, true); + } + } + else if ((qs != null) && qs.isCond(7)) + { + int count = qs.getInt(KILL_COUNT_VAR); + qs.set(KILL_COUNT_VAR, ++count); + if (count >= 3000) + { + qs.setCond(8, true); + } + else + { + playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + } + + @Override + public String onKill(Npc npc, PlayerInstance player, boolean isSummon) + { + executeForEachPlayer(player, npc, isSummon, true, false); + return super.onKill(npc, player, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(5)) + { + final Set npcLogList = new HashSet<>(2); + npcLogList.add(new NpcLogListHolder(DARK_RIDER, false, qs.getInt(Integer.toString(DARK_RIDER)))); + npcLogList.add(new NpcLogListHolder(NpcStringId.DEFEAT_COMMANDER_BURNSTEIN_2, qs.getInt(Integer.toString(BURNSTEIN)))); + return npcLogList; + } + else if ((qs != null) && qs.isCond(7)) + { + final int killCount = qs.getInt(KILL_COUNT_VAR); + if (killCount > 0) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_ENCHANTED_VALLEY_2, killCount)); + return holder; + } + } + return super.getNpcLogList(player); + } +} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm new file mode 100644 index 0000000000..3597791e3f --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm @@ -0,0 +1,4 @@ +Mammon:
+Now the next part of your challenge is to bring me Improved Shadow Ingot.
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm new file mode 100644 index 0000000000..7701eafb92 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+When you have Improved Shadow Ingot come back to me. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm new file mode 100644 index 0000000000..8b45d522e3 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm @@ -0,0 +1,3 @@ +Mammon:
+You need to complete Blacksmiths Soul - Part 1 first. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm new file mode 100644 index 0000000000..5e4b0372ff --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm @@ -0,0 +1,4 @@ +Mammon:
+Do you have the Improved Shadow Ingot?
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm new file mode 100644 index 0000000000..41db2ca110 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm @@ -0,0 +1,3 @@ +Mammon:
+Do you have the Improved Shadow Ingot? + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm new file mode 100644 index 0000000000..2cd5a4c360 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm @@ -0,0 +1,3 @@ +Mammon:
+Good job now bring me a Shadow weapon that you don't want so I can make my research. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm new file mode 100644 index 0000000000..6c85b53868 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm @@ -0,0 +1,13 @@ +Mammon:
+Choose the weapon that you don't need to I can make my research on it "Warning! The weapon will not be returned to you"
+ + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm new file mode 100644 index 0000000000..3d5106f81e --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm @@ -0,0 +1,3 @@ +Mammon:
+Great work! Now take this weapon, upgrade it to +7 and bring it back to me. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm new file mode 100644 index 0000000000..95bd9a311e --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm @@ -0,0 +1,4 @@ +Mammon:
+Nice now hand me the weapon let me do my research.
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm new file mode 100644 index 0000000000..d3855a838b --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm @@ -0,0 +1,3 @@ +Mammon:
+It's hard work but please enchant my the weapon to +7. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm new file mode 100644 index 0000000000..8675786a66 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm @@ -0,0 +1,3 @@ +Mammon:
+You have done good so far now you can take your reward and be ready for the next challenge. Have a great day. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm new file mode 100644 index 0000000000..0088de0fdc --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+I agreed to take a part in the research. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm new file mode 100644 index 0000000000..f42c9f126a --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm @@ -0,0 +1,3 @@ +Ishuma:
+I agreed to take a part in the research. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java new file mode 100644 index 0000000000..ff3b015706 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java @@ -0,0 +1,371 @@ +/* + * 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.Q10356_BlacksmithsSoul2; + +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.holders.NpcLogListHolder; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.NpcStringId; + +import quests.Q10355_BlacksmithsSoul1.Q10355_BlacksmithsSoul1; + +/** + * @author Sero + */ +public class Q10356_BlacksmithsSoul2 extends Quest +{ + // NPCs + private static final int BLACKSMITH_MAMMON = 31126; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + // Items + private static final int Improved_SHADOW_Ingot = 47896; + private static final int RESEARCH_SHADOW_WEAPON = 47890; + private static final int SHADOW_WEAPON_1 = 46317; + private static final int SHADOW_WEAPON_2 = 46318; + private static final int SHADOW_WEAPON_3 = 46319; + private static final int SHADOW_WEAPON_4 = 46320; + private static final int SHADOW_WEAPON_5 = 46321; + private static final int SHADOW_WEAPON_6 = 46322; + private static final int SHADOW_WEAPON_7 = 46323; + private static final int SHADOW_WEAPON_8 = 46324; + private static final int SHADOW_WEAPON_9 = 46325; + private static final int SHADOW_WEAPON_10 = 46326; + private static final int SHADOW_CRYSTAL = 47899; + private static final int MAIN_LEVEL = 99; + + public Q10356_BlacksmithsSoul2() + { + super(10356); + addStartNpc(BLACKSMITH_MAMMON); + addTalkId(BLACKSMITH_MAMMON, SHADAI, ISHUMA); + addCondCompletedQuest(Q10355_BlacksmithsSoul1.class.getSimpleName(), "31126-02.htm"); + addCondMinLevel(MAIN_LEVEL, getNoQuestMsg(null)); + registerQuestItems(Improved_SHADOW_Ingot, SHADOW_WEAPON_1, SHADOW_WEAPON_2, SHADOW_WEAPON_3, SHADOW_WEAPON_4, SHADOW_WEAPON_5, SHADOW_WEAPON_6, SHADOW_WEAPON_7, SHADOW_WEAPON_8, SHADOW_WEAPON_9, SHADOW_WEAPON_10, RESEARCH_SHADOW_WEAPON); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + switch (event) + { + case "31126-01.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "31126-04.htm": + { + if (hasQuestItems(player, Improved_SHADOW_Ingot)) + { + takeItems(player, Improved_SHADOW_Ingot, 1); + qs.setCond(2); + htmltext = event; + } + else + { + htmltext = "31126-03r.htm"; + } + break; + } + case "SHADOW_WEAPON_1": + { + if (hasQuestItems(player, SHADOW_WEAPON_1)) + { + takeItems(player, SHADOW_WEAPON_1, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_2": + { + if (hasQuestItems(player, SHADOW_WEAPON_2)) + { + takeItems(player, SHADOW_WEAPON_2, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_3": + { + if (hasQuestItems(player, SHADOW_WEAPON_3)) + { + takeItems(player, SHADOW_WEAPON_3, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_4": + { + if (hasQuestItems(player, SHADOW_WEAPON_4)) + { + takeItems(player, SHADOW_WEAPON_4, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_5": + { + if (hasQuestItems(player, SHADOW_WEAPON_5)) + { + takeItems(player, SHADOW_WEAPON_5, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_6": + { + if (hasQuestItems(player, SHADOW_WEAPON_6)) + { + takeItems(player, SHADOW_WEAPON_6, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + htmltext = event; + } + break; + } + case "SHADOW_WEAPON_7": + { + if (hasQuestItems(player, SHADOW_WEAPON_7)) + { + takeItems(player, SHADOW_WEAPON_7, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_8": + { + if (hasQuestItems(player, SHADOW_WEAPON_8)) + { + takeItems(player, SHADOW_WEAPON_8, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_9": + { + if (hasQuestItems(player, SHADOW_WEAPON_9)) + { + takeItems(player, SHADOW_WEAPON_9, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_10": + { + if (hasQuestItems(player, SHADOW_WEAPON_10)) + { + takeItems(player, SHADOW_WEAPON_10, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "RESEARCH_SHADOW_WEAPON7": + { + if (hasQuestItems(player, RESEARCH_SHADOW_WEAPON) && (getEnchantLevel(player, RESEARCH_SHADOW_WEAPON) >= 7)) + { + takeItems(player, RESEARCH_SHADOW_WEAPON, -1); + giveItems(player, SHADOW_CRYSTAL, 2); + qs.setCond(5); + } + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case BLACKSMITH_MAMMON: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31126-00.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "31126-03.htm"; + } + else if (qs.isCond(2)) + { + htmltext = "31126-05.htm"; + } + else if (qs.isCond(3)) + { + htmltext = "31126-08.htm"; + qs.setCond(4); + } + else if (qs.isCond(4)) + { + if (hasQuestItems(player, RESEARCH_SHADOW_WEAPON)) + { + htmltext = "31126-07.htm"; + } + else + { + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + } + } + else if (qs.isCond(6)) + { + htmltext = "31126-09.htm"; + addExpAndSp(player, 32958000000L, 29662200); + qs.exitQuest(false, true); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(5) && hasQuestItems(player, SHADOW_CRYSTAL)) + { + htmltext = "32347-00.htm"; + takeItems(player, SHADOW_CRYSTAL, -1); + qs.setCond(6); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(5) && hasQuestItems(player, SHADOW_CRYSTAL)) + { + htmltext = "32615-00.htm"; + takeItems(player, SHADOW_CRYSTAL, -1); + qs.setCond(6); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance player, boolean isSummon) + { + executeForEachPlayer(player, npc, isSummon, true, false); + return super.onKill(npc, player, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(2)) + { + if (hasAtLeastOneQuestItem(player, SHADOW_WEAPON_1, SHADOW_WEAPON_2, SHADOW_WEAPON_3, SHADOW_WEAPON_4, SHADOW_WEAPON_5, SHADOW_WEAPON_6, SHADOW_WEAPON_7, SHADOW_WEAPON_8, SHADOW_WEAPON_9, SHADOW_WEAPON_10)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.BRING_SHADOW_WEAPON, 1)); + return holder; + } + + } + if ((qs != null) && qs.isCond(4)) + { + if ((getEnchantLevel(player, RESEARCH_SHADOW_WEAPON) >= 7)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.ENCHANT_THE_RESEARCH_WEAPON, 1)); + return holder; + } + + } + return super.getNpcLogList(player); + } +} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm new file mode 100644 index 0000000000..e2b5f08990 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm @@ -0,0 +1,3 @@ +Beola:
+You have completed the quest.
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm new file mode 100644 index 0000000000..4a0776fac3 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm @@ -0,0 +1,3 @@ +Beola:
+It's a fortunate thing that such a skilled adventurer as yourself has committed to making yourself available to the cause. Here is your mission. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm new file mode 100644 index 0000000000..fa6a149721 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm @@ -0,0 +1,5 @@ +Beloa:
+You need 30 of the Renants of the Rift item in order to seal the Dimensional Rift..
+Are you strong enough to collect 30 Remnant of the Rift for me?
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm new file mode 100644 index 0000000000..451878630a --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm @@ -0,0 +1,3 @@ +Beola:
+Not done yet. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java new file mode 100644 index 0000000000..22b28c72dc --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java @@ -0,0 +1,107 @@ +/* + * 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.Q10373_ExploringTheDimensionSealingTheDimension; + +import org.l2jmobius.gameserver.enums.QuestType; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; + +/** + * @author Sero + */ +public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest +{ + private static final int BELOA = 34227; + private static final int RUNE_STONE = 39738; + private static final int COMMANDO_BELT = 47044; + private static final int REMNANT_OF_THE_RIFT = 46787; + private static final int ZODIAC_AGATHION = 45577; + private static final int MIN_LEVEL = 95; + + public Q10373_ExploringTheDimensionSealingTheDimension() + { + super(10373); + addStartNpc(BELOA); + addTalkId(BELOA); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + if (event.equals("34227-04.htm")) + { + qs.startQuest(); + htmltext = event; + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + if (npc.getId() == BELOA) + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "34227-05.htm"; + break; + } + case State.STARTED: + { + if (getQuestItemsCount(player, REMNANT_OF_THE_RIFT) >= 30) + { + takeItems(player, REMNANT_OF_THE_RIFT, -1); + giveItems(player, COMMANDO_BELT, 1); + giveItems(player, ZODIAC_AGATHION, 1); + giveItems(player, RUNE_STONE, 1); + addExpAndSp(player, 12113489880L, 12113460); + qs.exitQuest(QuestType.ONE_TIME); + htmltext = "30756-09.html"; + } + else + { + htmltext = "34227-05a.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + } + return htmltext; + } +} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm new file mode 100644 index 0000000000..6cfa89b1be --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm @@ -0,0 +1,3 @@ +Mammon:
+This the Last challenge Defeat monster in Giant's Cave and Hellbound collect Ore with Giant's Energy and Crystal with Magical Power Crystal with Magical Power then take them to Shadai and Ishuma. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm new file mode 100644 index 0000000000..bd85c2b6b4 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+Congratulations you have completed the challenge you deserve your reward warrior! + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm new file mode 100644 index 0000000000..2abc5c3f37 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Thank you for your hard work. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm new file mode 100644 index 0000000000..c136bcdd72 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm @@ -0,0 +1,3 @@ +Ishuma:
+Thank you for your hard work. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java new file mode 100644 index 0000000000..e4dc121357 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java @@ -0,0 +1,238 @@ +/* +* 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.Q10535_BlacksmithsSoul3; + +import java.util.List; + +import org.l2jmobius.commons.util.CommonUtil; +import org.l2jmobius.gameserver.enums.QuestSound; +import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; + +import quests.Q10356_BlacksmithsSoul2.Q10356_BlacksmithsSoul2; + +/** + * @author Sero + */ +public class Q10535_BlacksmithsSoul3 extends Quest +{ + // NPCs + private static final int BLACKSMITH_MAMMON = 31126; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + // Monsters + private static final int[] HELL_MONSTERS = + { + 23386, // Jabberwok + 23387, // Kanzaroth + 23388, // Kandiloth + 23384, // Smaug + 23385, // Lunatikan + 23399, // Bend Beetle + 23398, // Koraza + 23397, // Desert Wendigo + 23395, // Garion + 23396, // Garion neti + }; + private static final int[] CAVE_MONSTERS = + { + 23727, // Shaqrima Bathus + 23728, // Shaqrima Carcass + 23729, // Kshana + }; + // Items + private static final int OREWITH_GIANTS_ENERGY = 47892; + private static final int CRYSTAL_WITH_MAGOCAL_POWER = 47891; + private static final int ENCHANTED_SHADOW_INGOT = 47886; + // Misc + private static final int MAIN_LEVEL = 99; + + public Q10535_BlacksmithsSoul3() + { + super(10535); + addStartNpc(BLACKSMITH_MAMMON); + addTalkId(BLACKSMITH_MAMMON, SHADAI, ISHUMA); + addKillId(HELL_MONSTERS); + addKillId(CAVE_MONSTERS); + addCondCompletedQuest(Q10356_BlacksmithsSoul2.class.getSimpleName(), "31126-02.htm"); + addCondMinLevel(MAIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case BLACKSMITH_MAMMON: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31126-00.htm"; + qs.startQuest(); + break; + } + case State.STARTED: + { + if (qs.isCond(9)) + { + htmltext = "31126-01.htm"; + addExpAndSp(player, 40346120829L, 36311508); + giveItems(player, ENCHANTED_SHADOW_INGOT, 1); + qs.exitQuest(false, true); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(7) && (getQuestItemsCount(player, CRYSTAL_WITH_MAGOCAL_POWER) >= 500) && (getQuestItemsCount(player, OREWITH_GIANTS_ENERGY) >= 500)) + { + htmltext = "32347-00.htm"; + takeItems(player, CRYSTAL_WITH_MAGOCAL_POWER, -1); + qs.setCond(8); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(8) && (getQuestItemsCount(player, OREWITH_GIANTS_ENERGY) >= 500)) + { + htmltext = "32615-00.htm"; + takeItems(player, OREWITH_GIANTS_ENERGY, -1); + qs.setCond(9); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) + { + if (killer.isInParty()) + { + final Party party = killer.getParty(); + final List partyMember = party.getMembers(); + for (PlayerInstance singleMember : partyMember) + { + final QuestState qsPartyMember = getQuestState(singleMember, false); + final double distance = npc.calculateDistance3D(singleMember); + if ((qsPartyMember != null) && (distance <= 1000)) + { + if (qsPartyMember.isCond(1)) + { + if (CommonUtil.contains(HELL_MONSTERS, npc.getId()) && (getQuestItemsCount(singleMember, CRYSTAL_WITH_MAGOCAL_POWER) < 500)) + { + giveItems(singleMember, CRYSTAL_WITH_MAGOCAL_POWER, 1); + playSound(singleMember, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qsPartyMember.isCond(1)) + { + if (CommonUtil.contains(CAVE_MONSTERS, npc.getId()) && (getQuestItemsCount(singleMember, OREWITH_GIANTS_ENERGY) < 500)) + { + giveItems(singleMember, OREWITH_GIANTS_ENERGY, 1); + playSound(singleMember, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qsPartyMember.isCond(1) && (getQuestItemsCount(singleMember, OREWITH_GIANTS_ENERGY) >= 500) && (getQuestItemsCount(singleMember, CRYSTAL_WITH_MAGOCAL_POWER) >= 500)) + { + qsPartyMember.setCond(7); + } + } + } + } + else + { + final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc); + if (qs != null) + { + if (qs.isCond(1)) + { + if (CommonUtil.contains(HELL_MONSTERS, npc.getId()) && (getQuestItemsCount(killer, CRYSTAL_WITH_MAGOCAL_POWER) < 500)) + { + giveItems(killer, CRYSTAL_WITH_MAGOCAL_POWER, 1); + playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); + + } + } + if (qs.isCond(1)) + { + if (CommonUtil.contains(CAVE_MONSTERS, npc.getId()) && (getQuestItemsCount(killer, OREWITH_GIANTS_ENERGY) < 500)) + { + giveItems(killer, OREWITH_GIANTS_ENERGY, 1); + playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qs.isCond(1) && (getQuestItemsCount(killer, OREWITH_GIANTS_ENERGY) >= 500) && (getQuestItemsCount(killer, CRYSTAL_WITH_MAGOCAL_POWER) >= 500)) + { + qs.setCond(7); + } + } + } + return super.onKill(npc, killer, isSummon); + } +} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java index 279aaf58da..eb6aa1b997 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -274,6 +274,8 @@ import quests.Q10346_DayOfDestinyKamaelsFate.Q10346_DayOfDestinyKamaelsFate; import quests.Q10351_OwnerOfHall.Q10351_OwnerOfHall; import quests.Q10353_CertificationOfValue.Q10353_CertificationOfValue; import quests.Q10354_ResurrectedOwnerOfHall.Q10354_ResurrectedOwnerOfHall; +import quests.Q10355_BlacksmithsSoul1.Q10355_BlacksmithsSoul1; +import quests.Q10356_BlacksmithsSoul2.Q10356_BlacksmithsSoul2; import quests.Q10358_DividedSakumPoslof.Q10358_DividedSakumPoslof; import quests.Q10359_TracesOfEvil.Q10359_TracesOfEvil; import quests.Q10360_CertificationOfFate.Q10360_CertificationOfFate; @@ -283,6 +285,7 @@ import quests.Q10364_ObligationsOfTheSeeker.Q10364_ObligationsOfTheSeeker; import quests.Q10365_ForTheSearchdogKing.Q10365_ForTheSearchdogKing; import quests.Q10366_ReportOnTheSituationAtTheRuins.Q10366_ReportOnTheSituationAtTheRuins; import quests.Q10369_NoblesseSoulTesting.Q10369_NoblesseSoulTesting; +import quests.Q10373_ExploringTheDimensionSealingTheDimension.Q10373_ExploringTheDimensionSealingTheDimension; import quests.Q10377_TheInvadedExecutionGrounds.Q10377_TheInvadedExecutionGrounds; import quests.Q10378_WeedingWork.Q10378_WeedingWork; import quests.Q10379_AnUninvitedGuest.Q10379_AnUninvitedGuest; @@ -357,6 +360,7 @@ import quests.Q10530_KekropusLetterTheDragonsTransition.Q10530_KekropusLetterThe import quests.Q10531_OddHappeningsAtDragonValley.Q10531_OddHappeningsAtDragonValley; import quests.Q10532_UncoveringTheConspiracy.Q10532_UncoveringTheConspiracy; import quests.Q10534_HatchlingResearch.Q10534_HatchlingResearch; +import quests.Q10535_BlacksmithsSoul3.Q10535_BlacksmithsSoul3; import quests.Q10537_KamaelDisarray.Q10537_KamaelDisarray; import quests.Q10538_GiantsEvolution.Q10538_GiantsEvolution; import quests.Q10539_EnergySupplyCutoffPlan.Q10539_EnergySupplyCutoffPlan; @@ -541,10 +545,6 @@ import quests.not_done.Q00987_AdventureGuildsSpecialRequestLv3; import quests.not_done.Q00988_AdventureGuildsSpecialRequestLv4; import quests.not_done.Q00989_AdventureGuildsSpecialRequestLv5; import quests.not_done.Q10298_WastelandQueen; -import quests.not_done.Q10355_BlacksmithsSoul1; -import quests.not_done.Q10356_BlacksmithsSoul2; -import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension; -import quests.not_done.Q10535_BlacksmithsSoul3; import quests.not_done.Q10552_ChallengeBalthusKnight; import quests.not_done.Q10553_WhatMattersMoreThanAbility; import quests.not_done.Q10554_GiftForYou; @@ -885,8 +885,8 @@ public class QuestMasterHandler Q10351_OwnerOfHall.class, Q10353_CertificationOfValue.class, Q10354_ResurrectedOwnerOfHall.class, - Q10355_BlacksmithsSoul1.class, // TODO: Not done. - Q10356_BlacksmithsSoul2.class, // TODO: Not done. + Q10355_BlacksmithsSoul1.class, + Q10356_BlacksmithsSoul2.class, Q10358_DividedSakumPoslof.class, Q10359_TracesOfEvil.class, Q10360_CertificationOfFate.class, @@ -896,7 +896,7 @@ public class QuestMasterHandler Q10365_ForTheSearchdogKing.class, Q10366_ReportOnTheSituationAtTheRuins.class, Q10369_NoblesseSoulTesting.class, - Q10373_ExploringTheDimensionSealingTheDimension.class, // TODO: Not done. + Q10373_ExploringTheDimensionSealingTheDimension.class, Q10377_TheInvadedExecutionGrounds.class, Q10378_WeedingWork.class, Q10379_AnUninvitedGuest.class, @@ -978,7 +978,7 @@ public class QuestMasterHandler Q10532_UncoveringTheConspiracy.class, Q10533_OrfensAmbition.class, // FIXME: Custom. Q10534_HatchlingResearch.class, - Q10535_BlacksmithsSoul3.class, // TODO: Not done. + Q10535_BlacksmithsSoul3.class, Q10537_KamaelDisarray.class, Q10538_GiantsEvolution.class, Q10539_EnergySupplyCutoffPlan.class, diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoul1.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoul1.java deleted file mode 100644 index e7399c2501..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoul1.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10355_BlacksmithsSoul1 extends Quest -{ - private static final int START_NPC = 34095; - - public Q10355_BlacksmithsSoul1() - { - super(10355); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoul2.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoul2.java deleted file mode 100644 index 96044c608c..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoul2.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10356_BlacksmithsSoul2 extends Quest -{ - private static final int START_NPC = 31126; - - public Q10356_BlacksmithsSoul2() - { - super(10356); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java deleted file mode 100644 index 029171274e..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest -{ - private static final int START_NPC = 34227; - - public Q10373_ExploringTheDimensionSealingTheDimension() - { - super(10373); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoul3.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoul3.java deleted file mode 100644 index e81312c4db..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoul3.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10535_BlacksmithsSoul3 extends Quest -{ - private static final int[] START_NPC = - { - 31126, - 34483, - 34484, - 34485 - }; - - public Q10535_BlacksmithsSoul3() - { - super(10535); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/MissingQuests.txt index 3c6b9ba6e9..ab7155e52f 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/MissingQuests.txt +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/MissingQuests.txt @@ -116,12 +116,8 @@ 1900 Storm Isle - Secret Spot 1901 Storm Isle - Furtive Deal 10298 Wasteland Queen -10355 Blacksmiths Soul - 1 -10356 Blacksmiths Soul - 2 -10373 Exploring the Dimension - Sealing the Dimension 10514 New Path to Glory 10515 New Way for Pride -10535 Blacksmiths Soul - 3 10554 To Weaken the Giants 10555 To Weaken the Giants 10556 To Weaken the Giants diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm new file mode 100644 index 0000000000..5da6ba7013 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/30499-00.htm @@ -0,0 +1,3 @@ +Taboy:
+Hello now Go ahead and talk with Legendary Blacksmith Shadai in Heine!
+ \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm new file mode 100644 index 0000000000..8ec0122332 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-00.htm @@ -0,0 +1,3 @@ +Mammon:
+You have made a great work now you go to Nightmare Kamaloka and defeat 5 of Dark Rider then go to Command Post and defeat 5 of Burnstein (Command Post)
+ \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm new file mode 100644 index 0000000000..18fad6ca27 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+You have made a great work now you go to Enchanted Valley and defeat 3000 of them. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm new file mode 100644 index 0000000000..5fe2df701a --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-02.htm @@ -0,0 +1,3 @@ +Mammon:
+You need to defeat 5 of Dark Rider then go to Command Post and defeat 5 of Burnstein (Command Post) and bring me 5 Shadow ingot. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm new file mode 100644 index 0000000000..28f0fe48fb --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/31126-03.htm @@ -0,0 +1,3 @@ +Mammon:
+Congratulations you have complate the challenge now you're able to take the next challenge Blacksmiths Soul part 2 and bring me 5 Shadow ingot.
+ \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm new file mode 100644 index 0000000000..ac5c895004 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Hello now go ahead and talk with Maestro Ishuma at Wharf of Gludio Airships!
+ \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm new file mode 100644 index 0000000000..74df5978cf --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/32615-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Hello now Go ahead and talk with Blacksmith of Mammon at Aden or Giran!
+ \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm new file mode 100644 index 0000000000..d41b284986 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-00.htm @@ -0,0 +1,4 @@ +Neti:
+This will be long way !
+ + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm new file mode 100644 index 0000000000..f787693f2e --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/34095-01.htm @@ -0,0 +1,3 @@ +Neti:
+Great you choose to take the challenge Go ahead and talk with Head Blacksmith Tapoy in Gludin !
+ \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java new file mode 100644 index 0000000000..8b727fbd02 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10355_BlacksmithsSoul1/Q10355_BlacksmithsSoul1.java @@ -0,0 +1,320 @@ +/* + * 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.Q10355_BlacksmithsSoul1; + +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.enums.QuestSound; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.holders.NpcLogListHolder; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.NpcStringId; + +/** + * @author Sero + */ +public class Q10355_BlacksmithsSoul1 extends Quest +{ + // NPC + private static final int NETI = 34095; + private static final int TAPOY = 30499; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + private static final int MERCHANT_OF_MAMMON = 31126; + // Items + private static final int SHADOW_INGOT = 46395; + + // Monsters + private static final int BURNSTEIN = 23587; + private static final int DARK_RIDER = 26102; + private static final int[] NYMPH_MONSTERS = + { + 23569, // Nymph Lily + 23583, // Nymph Lily big + 23573, // Nymph Cosmos + 23567, // Nymph Rose + 23578, // Nymph Guardian + 23570, // Nymph Tulip + 19600, // Flower Bud + 23581, // Apherus + }; + // Misc + private static final int MIN_LEVEL = 99; + private static final String KILL_COUNT_VAR = "KillCount"; + + public Q10355_BlacksmithsSoul1() + { + super(10355); + addStartNpc(NETI); + addTalkId(NETI, TAPOY, SHADAI, ISHUMA, MERCHANT_OF_MAMMON); + registerQuestItems(SHADOW_INGOT); + addKillId(DARK_RIDER); + addKillId(BURNSTEIN); + addKillId(NYMPH_MONSTERS); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + if (event.equals("34095-01.htm")) + { + qs.startQuest(); + htmltext = event; + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case NETI: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "34095-00.htm"; + break; + } + case State.STARTED: + { + htmltext = "30756-09.html"; + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case TAPOY: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "30499-00.htm"; + qs.setCond(2); + } + else + { + htmltext = "30499-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(2)) + { + htmltext = "32347-00.htm"; + qs.setCond(3); + } + else + { + htmltext = "32347-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(3)) + { + htmltext = "32615-00.htm"; + qs.setCond(4); + } + else + { + htmltext = "32615-00.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + case MERCHANT_OF_MAMMON: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(4)) + { + htmltext = "31126-00.htm"; + qs.setCond(5); + } + else if (qs.isCond(5)) + { + htmltext = "31126-00.htm"; + } + else if (qs.isCond(6) && (getQuestItemsCount(player, SHADOW_INGOT) >= 5)) + { + takeItems(player, SHADOW_INGOT, 5); + htmltext = "31126-01.htm"; + qs.setCond(7); + } + else if (qs.isCond(8)) + { + htmltext = "31126-03.htm"; + addExpAndSp(player, 26918866543L, 24226979); + qs.exitQuest(false, true); + } + else + { + htmltext = "31126-02.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(5)) + { + final int killedCount = qs.getInt(Integer.toString(npc.getId())); + if (killedCount < 5) + { + qs.set(Integer.toString(npc.getId()), killedCount + 1); + } + + final int killedRessurected = qs.getInt(Integer.toString(DARK_RIDER)); + final int killedLunatic = qs.getInt(Integer.toString(BURNSTEIN)); + if ((killedLunatic == 5) && (killedRessurected == 5)) + { + qs.setCond(6, true); + } + } + else if ((qs != null) && qs.isCond(7)) + { + int count = qs.getInt(KILL_COUNT_VAR); + qs.set(KILL_COUNT_VAR, ++count); + if (count >= 3000) + { + qs.setCond(8, true); + } + else + { + playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + } + + @Override + public String onKill(Npc npc, PlayerInstance player, boolean isSummon) + { + executeForEachPlayer(player, npc, isSummon, true, false); + return super.onKill(npc, player, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(5)) + { + final Set npcLogList = new HashSet<>(2); + npcLogList.add(new NpcLogListHolder(DARK_RIDER, false, qs.getInt(Integer.toString(DARK_RIDER)))); + npcLogList.add(new NpcLogListHolder(NpcStringId.DEFEAT_COMMANDER_BURNSTEIN_2, qs.getInt(Integer.toString(BURNSTEIN)))); + return npcLogList; + } + else if ((qs != null) && qs.isCond(7)) + { + final int killCount = qs.getInt(KILL_COUNT_VAR); + if (killCount > 0) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_ENCHANTED_VALLEY_2, killCount)); + return holder; + } + } + return super.getNpcLogList(player); + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm new file mode 100644 index 0000000000..3597791e3f --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-00.htm @@ -0,0 +1,4 @@ +Mammon:
+Now the next part of your challenge is to bring me Improved Shadow Ingot.
+ + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm new file mode 100644 index 0000000000..7701eafb92 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+When you have Improved Shadow Ingot come back to me. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm new file mode 100644 index 0000000000..8b45d522e3 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-02.htm @@ -0,0 +1,3 @@ +Mammon:
+You need to complete Blacksmiths Soul - Part 1 first. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm new file mode 100644 index 0000000000..5e4b0372ff --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03.htm @@ -0,0 +1,4 @@ +Mammon:
+Do you have the Improved Shadow Ingot?
+ + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm new file mode 100644 index 0000000000..41db2ca110 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-03r.htm @@ -0,0 +1,3 @@ +Mammon:
+Do you have the Improved Shadow Ingot? + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm new file mode 100644 index 0000000000..2cd5a4c360 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-04.htm @@ -0,0 +1,3 @@ +Mammon:
+Good job now bring me a Shadow weapon that you don't want so I can make my research. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm new file mode 100644 index 0000000000..6c85b53868 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-05.htm @@ -0,0 +1,13 @@ +Mammon:
+Choose the weapon that you don't need to I can make my research on it "Warning! The weapon will not be returned to you"
+ + + + + + + + + + + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm new file mode 100644 index 0000000000..3d5106f81e --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-06.htm @@ -0,0 +1,3 @@ +Mammon:
+Great work! Now take this weapon, upgrade it to +7 and bring it back to me. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm new file mode 100644 index 0000000000..95bd9a311e --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-07.htm @@ -0,0 +1,4 @@ +Mammon:
+Nice now hand me the weapon let me do my research.
+ + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm new file mode 100644 index 0000000000..d3855a838b --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-08.htm @@ -0,0 +1,3 @@ +Mammon:
+It's hard work but please enchant my the weapon to +7. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm new file mode 100644 index 0000000000..8675786a66 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/31126-09.htm @@ -0,0 +1,3 @@ +Mammon:
+You have done good so far now you can take your reward and be ready for the next challenge. Have a great day. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm new file mode 100644 index 0000000000..0088de0fdc --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+I agreed to take a part in the research. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm new file mode 100644 index 0000000000..f42c9f126a --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/32615-00.htm @@ -0,0 +1,3 @@ +Ishuma:
+I agreed to take a part in the research. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java new file mode 100644 index 0000000000..ff3b015706 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10356_BlacksmithsSoul2/Q10356_BlacksmithsSoul2.java @@ -0,0 +1,371 @@ +/* + * 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.Q10356_BlacksmithsSoul2; + +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.holders.NpcLogListHolder; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; +import org.l2jmobius.gameserver.network.NpcStringId; + +import quests.Q10355_BlacksmithsSoul1.Q10355_BlacksmithsSoul1; + +/** + * @author Sero + */ +public class Q10356_BlacksmithsSoul2 extends Quest +{ + // NPCs + private static final int BLACKSMITH_MAMMON = 31126; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + // Items + private static final int Improved_SHADOW_Ingot = 47896; + private static final int RESEARCH_SHADOW_WEAPON = 47890; + private static final int SHADOW_WEAPON_1 = 46317; + private static final int SHADOW_WEAPON_2 = 46318; + private static final int SHADOW_WEAPON_3 = 46319; + private static final int SHADOW_WEAPON_4 = 46320; + private static final int SHADOW_WEAPON_5 = 46321; + private static final int SHADOW_WEAPON_6 = 46322; + private static final int SHADOW_WEAPON_7 = 46323; + private static final int SHADOW_WEAPON_8 = 46324; + private static final int SHADOW_WEAPON_9 = 46325; + private static final int SHADOW_WEAPON_10 = 46326; + private static final int SHADOW_CRYSTAL = 47899; + private static final int MAIN_LEVEL = 99; + + public Q10356_BlacksmithsSoul2() + { + super(10356); + addStartNpc(BLACKSMITH_MAMMON); + addTalkId(BLACKSMITH_MAMMON, SHADAI, ISHUMA); + addCondCompletedQuest(Q10355_BlacksmithsSoul1.class.getSimpleName(), "31126-02.htm"); + addCondMinLevel(MAIN_LEVEL, getNoQuestMsg(null)); + registerQuestItems(Improved_SHADOW_Ingot, SHADOW_WEAPON_1, SHADOW_WEAPON_2, SHADOW_WEAPON_3, SHADOW_WEAPON_4, SHADOW_WEAPON_5, SHADOW_WEAPON_6, SHADOW_WEAPON_7, SHADOW_WEAPON_8, SHADOW_WEAPON_9, SHADOW_WEAPON_10, RESEARCH_SHADOW_WEAPON); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + switch (event) + { + case "31126-01.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "31126-04.htm": + { + if (hasQuestItems(player, Improved_SHADOW_Ingot)) + { + takeItems(player, Improved_SHADOW_Ingot, 1); + qs.setCond(2); + htmltext = event; + } + else + { + htmltext = "31126-03r.htm"; + } + break; + } + case "SHADOW_WEAPON_1": + { + if (hasQuestItems(player, SHADOW_WEAPON_1)) + { + takeItems(player, SHADOW_WEAPON_1, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_2": + { + if (hasQuestItems(player, SHADOW_WEAPON_2)) + { + takeItems(player, SHADOW_WEAPON_2, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_3": + { + if (hasQuestItems(player, SHADOW_WEAPON_3)) + { + takeItems(player, SHADOW_WEAPON_3, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_4": + { + if (hasQuestItems(player, SHADOW_WEAPON_4)) + { + takeItems(player, SHADOW_WEAPON_4, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_5": + { + if (hasQuestItems(player, SHADOW_WEAPON_5)) + { + takeItems(player, SHADOW_WEAPON_5, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_6": + { + if (hasQuestItems(player, SHADOW_WEAPON_6)) + { + takeItems(player, SHADOW_WEAPON_6, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + htmltext = event; + } + break; + } + case "SHADOW_WEAPON_7": + { + if (hasQuestItems(player, SHADOW_WEAPON_7)) + { + takeItems(player, SHADOW_WEAPON_7, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_8": + { + if (hasQuestItems(player, SHADOW_WEAPON_8)) + { + takeItems(player, SHADOW_WEAPON_8, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_9": + { + if (hasQuestItems(player, SHADOW_WEAPON_9)) + { + takeItems(player, SHADOW_WEAPON_9, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "SHADOW_WEAPON_10": + { + if (hasQuestItems(player, SHADOW_WEAPON_10)) + { + takeItems(player, SHADOW_WEAPON_10, 1); + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + qs.setCond(3); + } + break; + } + case "RESEARCH_SHADOW_WEAPON7": + { + if (hasQuestItems(player, RESEARCH_SHADOW_WEAPON) && (getEnchantLevel(player, RESEARCH_SHADOW_WEAPON) >= 7)) + { + takeItems(player, RESEARCH_SHADOW_WEAPON, -1); + giveItems(player, SHADOW_CRYSTAL, 2); + qs.setCond(5); + } + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case BLACKSMITH_MAMMON: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31126-00.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "31126-03.htm"; + } + else if (qs.isCond(2)) + { + htmltext = "31126-05.htm"; + } + else if (qs.isCond(3)) + { + htmltext = "31126-08.htm"; + qs.setCond(4); + } + else if (qs.isCond(4)) + { + if (hasQuestItems(player, RESEARCH_SHADOW_WEAPON)) + { + htmltext = "31126-07.htm"; + } + else + { + giveItems(player, RESEARCH_SHADOW_WEAPON, 1); + htmltext = "31126-06.htm"; + } + } + else if (qs.isCond(6)) + { + htmltext = "31126-09.htm"; + addExpAndSp(player, 32958000000L, 29662200); + qs.exitQuest(false, true); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(5) && hasQuestItems(player, SHADOW_CRYSTAL)) + { + htmltext = "32347-00.htm"; + takeItems(player, SHADOW_CRYSTAL, -1); + qs.setCond(6); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(5) && hasQuestItems(player, SHADOW_CRYSTAL)) + { + htmltext = "32615-00.htm"; + takeItems(player, SHADOW_CRYSTAL, -1); + qs.setCond(6); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance player, boolean isSummon) + { + executeForEachPlayer(player, npc, isSummon, true, false); + return super.onKill(npc, player, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(2)) + { + if (hasAtLeastOneQuestItem(player, SHADOW_WEAPON_1, SHADOW_WEAPON_2, SHADOW_WEAPON_3, SHADOW_WEAPON_4, SHADOW_WEAPON_5, SHADOW_WEAPON_6, SHADOW_WEAPON_7, SHADOW_WEAPON_8, SHADOW_WEAPON_9, SHADOW_WEAPON_10)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.BRING_SHADOW_WEAPON, 1)); + return holder; + } + + } + if ((qs != null) && qs.isCond(4)) + { + if ((getEnchantLevel(player, RESEARCH_SHADOW_WEAPON) >= 7)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.ENCHANT_THE_RESEARCH_WEAPON, 1)); + return holder; + } + + } + return super.getNpcLogList(player); + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm new file mode 100644 index 0000000000..e2b5f08990 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-00a.htm @@ -0,0 +1,3 @@ +Beola:
+You have completed the quest.
+ \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm new file mode 100644 index 0000000000..4a0776fac3 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-04.htm @@ -0,0 +1,3 @@ +Beola:
+It's a fortunate thing that such a skilled adventurer as yourself has committed to making yourself available to the cause. Here is your mission. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm new file mode 100644 index 0000000000..fa6a149721 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05.htm @@ -0,0 +1,5 @@ +Beloa:
+You need 30 of the Renants of the Rift item in order to seal the Dimensional Rift..
+Are you strong enough to collect 30 Remnant of the Rift for me?
+ + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm new file mode 100644 index 0000000000..451878630a --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/34227-05a.htm @@ -0,0 +1,3 @@ +Beola:
+Not done yet. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java new file mode 100644 index 0000000000..22b28c72dc --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10373_ExploringTheDimensionSealingTheDimension/Q10373_ExploringTheDimensionSealingTheDimension.java @@ -0,0 +1,107 @@ +/* + * 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.Q10373_ExploringTheDimensionSealingTheDimension; + +import org.l2jmobius.gameserver.enums.QuestType; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; + +/** + * @author Sero + */ +public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest +{ + private static final int BELOA = 34227; + private static final int RUNE_STONE = 39738; + private static final int COMMANDO_BELT = 47044; + private static final int REMNANT_OF_THE_RIFT = 46787; + private static final int ZODIAC_AGATHION = 45577; + private static final int MIN_LEVEL = 95; + + public Q10373_ExploringTheDimensionSealingTheDimension() + { + super(10373); + addStartNpc(BELOA); + addTalkId(BELOA); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + if (event.equals("34227-04.htm")) + { + qs.startQuest(); + htmltext = event; + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + if (npc.getId() == BELOA) + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "34227-05.htm"; + break; + } + case State.STARTED: + { + if (getQuestItemsCount(player, REMNANT_OF_THE_RIFT) >= 30) + { + takeItems(player, REMNANT_OF_THE_RIFT, -1); + giveItems(player, COMMANDO_BELT, 1); + giveItems(player, ZODIAC_AGATHION, 1); + giveItems(player, RUNE_STONE, 1); + addExpAndSp(player, 12113489880L, 12113460); + qs.exitQuest(QuestType.ONE_TIME); + htmltext = "30756-09.html"; + } + else + { + htmltext = "34227-05a.htm"; + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "34227-00a.htm"; + break; + } + } + } + } + return htmltext; + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm new file mode 100644 index 0000000000..6cfa89b1be --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-00.htm @@ -0,0 +1,3 @@ +Mammon:
+This the Last challenge Defeat monster in Giant's Cave and Hellbound collect Ore with Giant's Energy and Crystal with Magical Power Crystal with Magical Power then take them to Shadai and Ishuma. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm new file mode 100644 index 0000000000..bd85c2b6b4 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/31126-01.htm @@ -0,0 +1,3 @@ +Mammon:
+Congratulations you have completed the challenge you deserve your reward warrior! + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm new file mode 100644 index 0000000000..2abc5c3f37 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32347-00.htm @@ -0,0 +1,3 @@ +Shadai:
+Thank you for your hard work. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm new file mode 100644 index 0000000000..c136bcdd72 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/32615-00.htm @@ -0,0 +1,3 @@ +Ishuma:
+Thank you for your hard work. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java new file mode 100644 index 0000000000..e4dc121357 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10535_BlacksmithsSoul3/Q10535_BlacksmithsSoul3.java @@ -0,0 +1,238 @@ +/* +* 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.Q10535_BlacksmithsSoul3; + +import java.util.List; + +import org.l2jmobius.commons.util.CommonUtil; +import org.l2jmobius.gameserver.enums.QuestSound; +import org.l2jmobius.gameserver.model.Party; +import org.l2jmobius.gameserver.model.actor.Npc; +import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; +import org.l2jmobius.gameserver.model.quest.Quest; +import org.l2jmobius.gameserver.model.quest.QuestState; +import org.l2jmobius.gameserver.model.quest.State; + +import quests.Q10356_BlacksmithsSoul2.Q10356_BlacksmithsSoul2; + +/** + * @author Sero + */ +public class Q10535_BlacksmithsSoul3 extends Quest +{ + // NPCs + private static final int BLACKSMITH_MAMMON = 31126; + private static final int SHADAI = 32347; + private static final int ISHUMA = 32615; + // Monsters + private static final int[] HELL_MONSTERS = + { + 23386, // Jabberwok + 23387, // Kanzaroth + 23388, // Kandiloth + 23384, // Smaug + 23385, // Lunatikan + 23399, // Bend Beetle + 23398, // Koraza + 23397, // Desert Wendigo + 23395, // Garion + 23396, // Garion neti + }; + private static final int[] CAVE_MONSTERS = + { + 23727, // Shaqrima Bathus + 23728, // Shaqrima Carcass + 23729, // Kshana + }; + // Items + private static final int OREWITH_GIANTS_ENERGY = 47892; + private static final int CRYSTAL_WITH_MAGOCAL_POWER = 47891; + private static final int ENCHANTED_SHADOW_INGOT = 47886; + // Misc + private static final int MAIN_LEVEL = 99; + + public Q10535_BlacksmithsSoul3() + { + super(10535); + addStartNpc(BLACKSMITH_MAMMON); + addTalkId(BLACKSMITH_MAMMON, SHADAI, ISHUMA); + addKillId(HELL_MONSTERS); + addKillId(CAVE_MONSTERS); + addCondCompletedQuest(Q10356_BlacksmithsSoul2.class.getSimpleName(), "31126-02.htm"); + addCondMinLevel(MAIN_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + switch (npc.getId()) + { + case BLACKSMITH_MAMMON: + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31126-00.htm"; + qs.startQuest(); + break; + } + case State.STARTED: + { + if (qs.isCond(9)) + { + htmltext = "31126-01.htm"; + addExpAndSp(player, 40346120829L, 36311508); + giveItems(player, ENCHANTED_SHADOW_INGOT, 1); + qs.exitQuest(false, true); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case SHADAI: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(7) && (getQuestItemsCount(player, CRYSTAL_WITH_MAGOCAL_POWER) >= 500) && (getQuestItemsCount(player, OREWITH_GIANTS_ENERGY) >= 500)) + { + htmltext = "32347-00.htm"; + takeItems(player, CRYSTAL_WITH_MAGOCAL_POWER, -1); + qs.setCond(8); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + case ISHUMA: + { + switch (qs.getState()) + { + case State.STARTED: + { + if (qs.isCond(8) && (getQuestItemsCount(player, OREWITH_GIANTS_ENERGY) >= 500)) + { + htmltext = "32615-00.htm"; + takeItems(player, OREWITH_GIANTS_ENERGY, -1); + qs.setCond(9); + } + break; + } + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31126-00a.htm"; + break; + } + } + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) + { + if (killer.isInParty()) + { + final Party party = killer.getParty(); + final List partyMember = party.getMembers(); + for (PlayerInstance singleMember : partyMember) + { + final QuestState qsPartyMember = getQuestState(singleMember, false); + final double distance = npc.calculateDistance3D(singleMember); + if ((qsPartyMember != null) && (distance <= 1000)) + { + if (qsPartyMember.isCond(1)) + { + if (CommonUtil.contains(HELL_MONSTERS, npc.getId()) && (getQuestItemsCount(singleMember, CRYSTAL_WITH_MAGOCAL_POWER) < 500)) + { + giveItems(singleMember, CRYSTAL_WITH_MAGOCAL_POWER, 1); + playSound(singleMember, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qsPartyMember.isCond(1)) + { + if (CommonUtil.contains(CAVE_MONSTERS, npc.getId()) && (getQuestItemsCount(singleMember, OREWITH_GIANTS_ENERGY) < 500)) + { + giveItems(singleMember, OREWITH_GIANTS_ENERGY, 1); + playSound(singleMember, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qsPartyMember.isCond(1) && (getQuestItemsCount(singleMember, OREWITH_GIANTS_ENERGY) >= 500) && (getQuestItemsCount(singleMember, CRYSTAL_WITH_MAGOCAL_POWER) >= 500)) + { + qsPartyMember.setCond(7); + } + } + } + } + else + { + final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc); + if (qs != null) + { + if (qs.isCond(1)) + { + if (CommonUtil.contains(HELL_MONSTERS, npc.getId()) && (getQuestItemsCount(killer, CRYSTAL_WITH_MAGOCAL_POWER) < 500)) + { + giveItems(killer, CRYSTAL_WITH_MAGOCAL_POWER, 1); + playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); + + } + } + if (qs.isCond(1)) + { + if (CommonUtil.contains(CAVE_MONSTERS, npc.getId()) && (getQuestItemsCount(killer, OREWITH_GIANTS_ENERGY) < 500)) + { + giveItems(killer, OREWITH_GIANTS_ENERGY, 1); + playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if (qs.isCond(1) && (getQuestItemsCount(killer, OREWITH_GIANTS_ENERGY) >= 500) && (getQuestItemsCount(killer, CRYSTAL_WITH_MAGOCAL_POWER) >= 500)) + { + qs.setCond(7); + } + } + } + return super.onKill(npc, killer, isSummon); + } +} diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/QuestMasterHandler.java index 721c004961..6d00eeb766 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -149,6 +149,9 @@ import quests.Q10286_ReunionWithSirra.Q10286_ReunionWithSirra; import quests.Q10287_StoryOfThoseLeft.Q10287_StoryOfThoseLeft; import quests.Q10297_GrandOpeningComeToOurPub.Q10297_GrandOpeningComeToOurPub; import quests.Q10303_CrossroadsBetweenLightAndDarkness.Q10303_CrossroadsBetweenLightAndDarkness; +import quests.Q10355_BlacksmithsSoul1.Q10355_BlacksmithsSoul1; +import quests.Q10356_BlacksmithsSoul2.Q10356_BlacksmithsSoul2; +import quests.Q10373_ExploringTheDimensionSealingTheDimension.Q10373_ExploringTheDimensionSealingTheDimension; import quests.Q10381_ToTheSeedOfHellfire.Q10381_ToTheSeedOfHellfire; import quests.Q10383_FergasonsOffer.Q10383_FergasonsOffer; import quests.Q10386_MysteriousJourney.Q10386_MysteriousJourney; @@ -168,6 +171,7 @@ import quests.Q10459_ASickAmbition.Q10459_ASickAmbition; import quests.Q10501_ZakenEmbroideredSoulCloak.Q10501_ZakenEmbroideredSoulCloak; import quests.Q10502_FreyaEmbroideredSoulCloak.Q10502_FreyaEmbroideredSoulCloak; import quests.Q10503_FrintezzaEmbroideredSoulCloak.Q10503_FrintezzaEmbroideredSoulCloak; +import quests.Q10535_BlacksmithsSoul3.Q10535_BlacksmithsSoul3; import quests.Q10537_KamaelDisarray.Q10537_KamaelDisarray; import quests.Q10538_GiantsEvolution.Q10538_GiantsEvolution; import quests.Q10539_EnergySupplyCutoffPlan.Q10539_EnergySupplyCutoffPlan; @@ -298,12 +302,8 @@ import quests.not_done.Q00989_AdventureGuildsSpecialRequestLv5; import quests.not_done.Q01900_StormIsleSecretSpot; import quests.not_done.Q01901_StormIsleFurtiveDeal; import quests.not_done.Q10298_WastelandQueen; -import quests.not_done.Q10355_BlacksmithsSoul1; -import quests.not_done.Q10356_BlacksmithsSoul2; -import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension; import quests.not_done.Q10514_NewPathToGlory; import quests.not_done.Q10515_NewWayForPride; -import quests.not_done.Q10535_BlacksmithsSoul3; import quests.not_done.Q10570_HurrahForKamaelsIndependence; import quests.not_done.Q10572_ToExpelTheEmbryosForces; import quests.not_done.Q10594_FergasonsScheme; @@ -497,9 +497,9 @@ public class QuestMasterHandler Q10297_GrandOpeningComeToOurPub.class, Q10298_WastelandQueen.class, // TODO: Not done. Q10303_CrossroadsBetweenLightAndDarkness.class, - Q10355_BlacksmithsSoul1.class, // TODO: Not done. - Q10356_BlacksmithsSoul2.class, // TODO: Not done. - Q10373_ExploringTheDimensionSealingTheDimension.class, // TODO: Not done. + Q10355_BlacksmithsSoul1.class, + Q10356_BlacksmithsSoul2.class, + Q10373_ExploringTheDimensionSealingTheDimension.class, Q10381_ToTheSeedOfHellfire.class, Q10383_FergasonsOffer.class, Q10386_MysteriousJourney.class, @@ -528,7 +528,7 @@ public class QuestMasterHandler Q10520_TempleGuardians.class, // FIXME: Custom. Q10529_IvoryTowersResearchFloatingSeaJournal.class, // FIXME: Custom. Q10533_OrfensAmbition.class, // FIXME: Custom. - Q10535_BlacksmithsSoul3.class, // TODO: Not done. + Q10535_BlacksmithsSoul3.class, Q10537_KamaelDisarray.class, Q10538_GiantsEvolution.class, Q10539_EnergySupplyCutoffPlan.class, diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoul1.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoul1.java deleted file mode 100644 index e7399c2501..0000000000 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10355_BlacksmithsSoul1.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10355_BlacksmithsSoul1 extends Quest -{ - private static final int START_NPC = 34095; - - public Q10355_BlacksmithsSoul1() - { - super(10355); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoul2.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoul2.java deleted file mode 100644 index 96044c608c..0000000000 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10356_BlacksmithsSoul2.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10356_BlacksmithsSoul2 extends Quest -{ - private static final int START_NPC = 31126; - - public Q10356_BlacksmithsSoul2() - { - super(10356); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java deleted file mode 100644 index 029171274e..0000000000 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10373_ExploringTheDimensionSealingTheDimension.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10373_ExploringTheDimensionSealingTheDimension extends Quest -{ - private static final int START_NPC = 34227; - - public Q10373_ExploringTheDimensionSealingTheDimension() - { - super(10373); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoul3.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoul3.java deleted file mode 100644 index e81312c4db..0000000000 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10535_BlacksmithsSoul3.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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.not_done; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.model.quest.Quest; - -/** - * @author Mobius - */ -public class Q10535_BlacksmithsSoul3 extends Quest -{ - private static final int[] START_NPC = - { - 31126, - 34483, - 34484, - 34485 - }; - - public Q10535_BlacksmithsSoul3() - { - super(10535); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -}