From 5a198ccff5673160df4ac67eb5c72b9bbf9ac9c7 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Wed, 22 Jan 2020 01:32:15 +0000 Subject: [PATCH] Addition of quest More Aggressive Operation (587). Contributed by Dmitri. --- .../data/scripts/quests/MissingQuests.txt | 1 - .../33780-00.htm | 4 + .../33780-01.htm | 4 + .../33780-02.htm | 4 + .../33780-03.htm | 4 + .../33780-04.htm | 4 + .../33780-05.html | 3 + .../33780-06.html | 5 + .../33780-07.html | 5 + .../33780-08.html | 4 + .../Q00587_MoreAggressiveOperation.java | 223 ++++++++++++++++++ .../scripts/quests/QuestMasterHandler.java | 3 +- .../Q00587_MoreAggressiveOperation.java | 36 --- .../data/scripts/quests/MissingQuests.txt | 1 - .../33780-00.htm | 4 + .../33780-01.htm | 4 + .../33780-02.htm | 4 + .../33780-03.htm | 4 + .../33780-04.htm | 4 + .../33780-05.html | 3 + .../33780-06.html | 5 + .../33780-07.html | 5 + .../33780-08.html | 4 + .../Q00587_MoreAggressiveOperation.java | 223 ++++++++++++++++++ .../scripts/quests/QuestMasterHandler.java | 3 +- .../Q00587_MoreAggressiveOperation.java | 36 --- .../data/scripts/quests/MissingQuests.txt | 1 - .../33780-00.htm | 4 + .../33780-01.htm | 4 + .../33780-02.htm | 4 + .../33780-03.htm | 4 + .../33780-04.htm | 4 + .../33780-05.html | 3 + .../33780-06.html | 5 + .../33780-07.html | 5 + .../33780-08.html | 4 + .../Q00587_MoreAggressiveOperation.java | 223 ++++++++++++++++++ .../scripts/quests/QuestMasterHandler.java | 3 +- .../Q00587_MoreAggressiveOperation.java | 36 --- .../data/scripts/quests/MissingQuests.txt | 1 - .../33780-00.htm | 4 + .../33780-01.htm | 4 + .../33780-02.htm | 4 + .../33780-03.htm | 4 + .../33780-04.htm | 4 + .../33780-05.html | 3 + .../33780-06.html | 5 + .../33780-07.html | 5 + .../33780-08.html | 4 + .../Q00587_MoreAggressiveOperation.java | 223 ++++++++++++++++++ .../scripts/quests/QuestMasterHandler.java | 4 +- .../Q00587_MoreAggressiveOperation.java | 36 --- 52 files changed, 1048 insertions(+), 153 deletions(-) create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java delete mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.java create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java delete mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.java create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java delete mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.java create mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm create mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm create mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm create mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm create mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm create mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html create mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html create mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html create mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html create mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java delete mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.java 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 ca2fc9f360..a990086a34 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 @@ -9,7 +9,6 @@ 576 Special Mission: Defeat Spezion 585 Can't Go Against the Time 586 Mutated Creatures -587 More Aggressive Operation 588 Head-on Crash 655 A Grand Plan for Taming Wild Beasts 665 Basic Training for Hunter Guild Member diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm new file mode 100644 index 0000000000..35c37e687a --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+In order to take on this mission, you must first build more trust with us.
+(Only characters with faction level 5 or above with the Blackbird Clan may undertake this quest.)
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm new file mode 100644 index 0000000000..cfd4929d96 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+Your're the one that Hephah has sent, right? If not, you should go meet Herphah and receive a mission from her before you continue. If you think it doesn't matter, I can continue anyway. Do you want me to continue?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm new file mode 100644 index 0000000000..d53f2b97bc --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+Herphah wants you to do some missions, and I'll chose an appropriate mission depending on your relationship with us at the Adventure Guild.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm new file mode 100644 index 0000000000..3b56d0a991 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+Your mission is to assist with the task at the Altar of Evil. If successful, our Adventure Guild will give you additional rewards on top of the mission payment and your relationship with our faction will grow even stronger.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm new file mode 100644 index 0000000000..841edf2f57 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+You've already leamed everything you need to know about the mission. By that I mean, how to go to the Altar of Evil. You should be able to start the mission right away without further explanation.
+But if you want to listen to the explanation again, I'd be happy to tell you. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html new file mode 100644 index 0000000000..6a2b0fce5e --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html @@ -0,0 +1,3 @@ +Adventure Guildsman Penny:
+Good choice. Now, go to Black Wizard Lapathia at the Altar of Evil and do the mission that she gives you. When the mission is done, come back to me.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html new file mode 100644 index 0000000000..ff1be54d6e --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html @@ -0,0 +1,5 @@ +Black Wizard Lapathia:
+I asked the Adventure Guild to send an adventurer but didn't expect they would send you. I'd like to see how good you are.
+(To do "Basic Mission: Isle of Souls," you must do "Uncover the Secret" and "More Aggressive Operation" through Black Wizard Lapathia.)
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html new file mode 100644 index 0000000000..59db8b4423 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html @@ -0,0 +1,5 @@ +Black Wizard Lapathia:
+You completed all the missions I gave you, meaning that you also completed those of the Adventure Guildsman. Are you going back to the Town of Aden? How?
+Don't tell me you're going to walk all the way up there. I know a better way.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html new file mode 100644 index 0000000000..aadd989501 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html @@ -0,0 +1,4 @@ +Black Wizard Lapathia:
+When setting out for a joumey, veteran adventurers always pack Scrolls of Escape, it teleports the user immediately to the closest village or to the check point.
+If you have these useful items, you can move easily after hunting or when you are far away from the village. Since you've been a great help to me, I'll give you the scroll that can teleport you directly to the Town of Aden. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java new file mode 100644 index 0000000000..4fdaf0ba34 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java @@ -0,0 +1,223 @@ +/* + * 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.Q00587_MoreAggressiveOperation; + +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.commons.util.CommonUtil; +import org.l2jmobius.gameserver.enums.QuestSound; +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.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; + +/** + * More Aggressive Operation (587) + * @URL https://l2wiki.com/More_Aggressive_Operation + * @author Dmitri + */ +public class Q00587_MoreAggressiveOperation extends Quest +{ + // NPCs + private static final int HESET = 33780; + // Monsters + private static final int BERSERK_CONTROL_GOLEM = 24130; + private static final int CONTROL_GOLEM = 23261; + private static final int[] MOBS = + { + 23254, // Yin Spicula + 23246, // Spicula 1 + 23247, // Spicula 2 + 23248, // Spicula 3 + 23249, // Spicula 4 + 23250, // Spicula 5 + 23251, // Spicula 6 + 23255, // Light Golem + 23257, // Twosword Golem + 23259, // Broken-bodied Golem + 23260, // Summoned Golem Body + 23263, // Broken Golem of Repairs + 23264, // Broken Drill Golem + 23266, // Broken Pincer Golem + 23267, // Screw Golem + }; + // Items + private static final int CONTROL_MODULE = 48383; + // Misc + private static final int MIN_LEVEL = 93; + private static final int MAX_LEVEL = 103; + + public Q00587_MoreAggressiveOperation() + { + super(587); + addStartNpc(HESET); + addTalkId(HESET); + addKillId(BERSERK_CONTROL_GOLEM, CONTROL_GOLEM); + addKillId(MOBS); + registerQuestItems(CONTROL_MODULE); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "33780-00.htm"); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "33780-02.htm": + case "33780-03.htm": + case "33780-07.html": + { + htmltext = event; + break; + } + case "33780-04.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "33780-08.html": + { + if (qs.isCond(2)) + { + giveAdena(player, 587070, true); + addExpAndSp(player, 1193302530L, 1193280); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + } + break; + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == HESET) + { + htmltext = "33780-01.htm"; + } + break; + } + case State.STARTED: + { + switch (npc.getId()) + { + case HESET: + { + if (qs.isCond(1)) + { + htmltext = "33780-05.html"; + } + else + { + htmltext = "33780-06.html"; + } + break; + } + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable()) + { + qs.setState(State.CREATED); + htmltext = "33780-01.htm"; + } + else + { + htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY); + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance player, boolean isSummon) + { + final QuestState qs = getQuestState(player, false); + + if ((qs != null) && qs.isCond(1)) + { + int killedAntelope = qs.getInt("killed_" + MOBS[0]); + + if (npc.getId() == CONTROL_GOLEM) + { + if (getRandom(100) < 50) + { + final Npc mob = addSpawn(BERSERK_CONTROL_GOLEM, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000); + addAttackPlayerDesire(mob, player, 5); + } + } + if ((npc.getId() == BERSERK_CONTROL_GOLEM) && (getQuestItemsCount(player, CONTROL_MODULE) < 4) && (getRandom(100) < 40)) + { + giveItems(player, CONTROL_MODULE, 1); + playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + else if (CommonUtil.contains(MOBS, npc.getId())) + { + if (killedAntelope < 400) + { + killedAntelope++; + qs.set("killed_" + MOBS[0], killedAntelope); + playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if ((killedAntelope == 400) && (getQuestItemsCount(player, CONTROL_MODULE) == 4)) + { + qs.setCond(2, true); + } + } + return super.onKill(npc, player, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isStarted() && qs.isCond(1)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_AROUND_THE_TENT, qs.getInt("killed_" + MOBS[0]))); + return holder; + } + return super.getNpcLogList(player); + } +} 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 152c3fcc1d..0a3a3bac8f 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 @@ -150,6 +150,7 @@ import quests.Q00581_ThePurificationRitual.Q00581_ThePurificationRitual; import quests.Q00582_WashBloodWithBlood.Q00582_WashBloodWithBlood; import quests.Q00583_MeaningOfSurvival.Q00583_MeaningOfSurvival; import quests.Q00584_NeverSayGoodBye.Q00584_NeverSayGoodBye; +import quests.Q00587_MoreAggressiveOperation.Q00587_MoreAggressiveOperation; import quests.Q00617_GatherTheFlames.Q00617_GatherTheFlames; import quests.Q00618_IntoTheFlame.Q00618_IntoTheFlame; import quests.Q00620_FourGoblets.Q00620_FourGoblets; @@ -651,7 +652,7 @@ public class QuestMasterHandler Q00584_NeverSayGoodBye.class, // TODO: Not done. Q00585_CantGoAgainstTheTime.class, // TODO: Not done. Q00586_MutatedCreatures.class, // TODO: Not done. - Q00587_MoreAggressiveOperation.class, // TODO: Not done. + Q00587_MoreAggressiveOperation.class, Q00588_HeadOnCrash.class, // TODO: Not done. Q00617_GatherTheFlames.class, Q00618_IntoTheFlame.class, diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.java deleted file mode 100644 index ca469a83b5..0000000000 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.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 Q00587_MoreAggressiveOperation extends Quest -{ - private static final int START_NPC = 33780; - - public Q00587_MoreAggressiveOperation() - { - super(587); - 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 7c88074d04..07b95c787b 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 @@ -15,7 +15,6 @@ 577 Basic Mission: Silent Valley 585 Can't Go Against the Time 586 Mutated Creatures -587 More Aggressive Operation 588 Head-on Crash 591 Great Ambitions 599 Demons and Dimensional Energy diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm new file mode 100644 index 0000000000..35c37e687a --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+In order to take on this mission, you must first build more trust with us.
+(Only characters with faction level 5 or above with the Blackbird Clan may undertake this quest.)
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm new file mode 100644 index 0000000000..cfd4929d96 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+Your're the one that Hephah has sent, right? If not, you should go meet Herphah and receive a mission from her before you continue. If you think it doesn't matter, I can continue anyway. Do you want me to continue?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm new file mode 100644 index 0000000000..d53f2b97bc --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+Herphah wants you to do some missions, and I'll chose an appropriate mission depending on your relationship with us at the Adventure Guild.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm new file mode 100644 index 0000000000..3b56d0a991 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+Your mission is to assist with the task at the Altar of Evil. If successful, our Adventure Guild will give you additional rewards on top of the mission payment and your relationship with our faction will grow even stronger.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm new file mode 100644 index 0000000000..841edf2f57 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+You've already leamed everything you need to know about the mission. By that I mean, how to go to the Altar of Evil. You should be able to start the mission right away without further explanation.
+But if you want to listen to the explanation again, I'd be happy to tell you. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html new file mode 100644 index 0000000000..6a2b0fce5e --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html @@ -0,0 +1,3 @@ +Adventure Guildsman Penny:
+Good choice. Now, go to Black Wizard Lapathia at the Altar of Evil and do the mission that she gives you. When the mission is done, come back to me.
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html new file mode 100644 index 0000000000..ff1be54d6e --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html @@ -0,0 +1,5 @@ +Black Wizard Lapathia:
+I asked the Adventure Guild to send an adventurer but didn't expect they would send you. I'd like to see how good you are.
+(To do "Basic Mission: Isle of Souls," you must do "Uncover the Secret" and "More Aggressive Operation" through Black Wizard Lapathia.)
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html new file mode 100644 index 0000000000..59db8b4423 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html @@ -0,0 +1,5 @@ +Black Wizard Lapathia:
+You completed all the missions I gave you, meaning that you also completed those of the Adventure Guildsman. Are you going back to the Town of Aden? How?
+Don't tell me you're going to walk all the way up there. I know a better way.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html new file mode 100644 index 0000000000..aadd989501 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html @@ -0,0 +1,4 @@ +Black Wizard Lapathia:
+When setting out for a joumey, veteran adventurers always pack Scrolls of Escape, it teleports the user immediately to the closest village or to the check point.
+If you have these useful items, you can move easily after hunting or when you are far away from the village. Since you've been a great help to me, I'll give you the scroll that can teleport you directly to the Town of Aden. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java new file mode 100644 index 0000000000..4fdaf0ba34 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java @@ -0,0 +1,223 @@ +/* + * 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.Q00587_MoreAggressiveOperation; + +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.commons.util.CommonUtil; +import org.l2jmobius.gameserver.enums.QuestSound; +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.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; + +/** + * More Aggressive Operation (587) + * @URL https://l2wiki.com/More_Aggressive_Operation + * @author Dmitri + */ +public class Q00587_MoreAggressiveOperation extends Quest +{ + // NPCs + private static final int HESET = 33780; + // Monsters + private static final int BERSERK_CONTROL_GOLEM = 24130; + private static final int CONTROL_GOLEM = 23261; + private static final int[] MOBS = + { + 23254, // Yin Spicula + 23246, // Spicula 1 + 23247, // Spicula 2 + 23248, // Spicula 3 + 23249, // Spicula 4 + 23250, // Spicula 5 + 23251, // Spicula 6 + 23255, // Light Golem + 23257, // Twosword Golem + 23259, // Broken-bodied Golem + 23260, // Summoned Golem Body + 23263, // Broken Golem of Repairs + 23264, // Broken Drill Golem + 23266, // Broken Pincer Golem + 23267, // Screw Golem + }; + // Items + private static final int CONTROL_MODULE = 48383; + // Misc + private static final int MIN_LEVEL = 93; + private static final int MAX_LEVEL = 103; + + public Q00587_MoreAggressiveOperation() + { + super(587); + addStartNpc(HESET); + addTalkId(HESET); + addKillId(BERSERK_CONTROL_GOLEM, CONTROL_GOLEM); + addKillId(MOBS); + registerQuestItems(CONTROL_MODULE); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "33780-00.htm"); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "33780-02.htm": + case "33780-03.htm": + case "33780-07.html": + { + htmltext = event; + break; + } + case "33780-04.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "33780-08.html": + { + if (qs.isCond(2)) + { + giveAdena(player, 587070, true); + addExpAndSp(player, 1193302530L, 1193280); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + } + break; + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == HESET) + { + htmltext = "33780-01.htm"; + } + break; + } + case State.STARTED: + { + switch (npc.getId()) + { + case HESET: + { + if (qs.isCond(1)) + { + htmltext = "33780-05.html"; + } + else + { + htmltext = "33780-06.html"; + } + break; + } + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable()) + { + qs.setState(State.CREATED); + htmltext = "33780-01.htm"; + } + else + { + htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY); + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance player, boolean isSummon) + { + final QuestState qs = getQuestState(player, false); + + if ((qs != null) && qs.isCond(1)) + { + int killedAntelope = qs.getInt("killed_" + MOBS[0]); + + if (npc.getId() == CONTROL_GOLEM) + { + if (getRandom(100) < 50) + { + final Npc mob = addSpawn(BERSERK_CONTROL_GOLEM, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000); + addAttackPlayerDesire(mob, player, 5); + } + } + if ((npc.getId() == BERSERK_CONTROL_GOLEM) && (getQuestItemsCount(player, CONTROL_MODULE) < 4) && (getRandom(100) < 40)) + { + giveItems(player, CONTROL_MODULE, 1); + playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + else if (CommonUtil.contains(MOBS, npc.getId())) + { + if (killedAntelope < 400) + { + killedAntelope++; + qs.set("killed_" + MOBS[0], killedAntelope); + playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if ((killedAntelope == 400) && (getQuestItemsCount(player, CONTROL_MODULE) == 4)) + { + qs.setCond(2, true); + } + } + return super.onKill(npc, player, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isStarted() && qs.isCond(1)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_AROUND_THE_TENT, qs.getInt("killed_" + MOBS[0]))); + return holder; + } + return super.getNpcLogList(player); + } +} 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 12bd9368c4..2a4129bcf9 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 @@ -128,6 +128,7 @@ import quests.Q00581_ThePurificationRitual.Q00581_ThePurificationRitual; import quests.Q00582_WashBloodWithBlood.Q00582_WashBloodWithBlood; import quests.Q00583_MeaningOfSurvival.Q00583_MeaningOfSurvival; import quests.Q00584_NeverSayGoodBye.Q00584_NeverSayGoodBye; +import quests.Q00587_MoreAggressiveOperation.Q00587_MoreAggressiveOperation; import quests.Q00600_KeyToTheRefiningProcess.Q00600_KeyToTheRefiningProcess; import quests.Q00617_GatherTheFlames.Q00617_GatherTheFlames; import quests.Q00618_IntoTheFlame.Q00618_IntoTheFlame; @@ -586,7 +587,7 @@ public class QuestMasterHandler Q00584_NeverSayGoodBye.class, Q00585_CantGoAgainstTheTime.class, // TODO: Not done. Q00586_MutatedCreatures.class, // TODO: Not done. - Q00587_MoreAggressiveOperation.class, // TODO: Not done. + Q00587_MoreAggressiveOperation.class, Q00588_HeadOnCrash.class, // TODO: Not done. Q00589_ASecretChange.class, // FIXME: Custom. Q00590_ToEachTheirOwn.class, // FIXME: Custom. diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.java deleted file mode 100644 index ca469a83b5..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.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 Q00587_MoreAggressiveOperation extends Quest -{ - private static final int START_NPC = 33780; - - public Q00587_MoreAggressiveOperation() - { - super(587); - 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 abf998ae73..c9e39f8fa1 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 @@ -19,7 +19,6 @@ 579 Basic Mission: Blazing Swamp 585 Can't Go Against the Time 586 Mutated Creatures -587 More Aggressive Operation 588 Head-on Crash 591 Great Ambitions 593 Basic Mission: Pagan Temple diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm new file mode 100644 index 0000000000..35c37e687a --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+In order to take on this mission, you must first build more trust with us.
+(Only characters with faction level 5 or above with the Blackbird Clan may undertake this quest.)
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm new file mode 100644 index 0000000000..cfd4929d96 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+Your're the one that Hephah has sent, right? If not, you should go meet Herphah and receive a mission from her before you continue. If you think it doesn't matter, I can continue anyway. Do you want me to continue?
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm new file mode 100644 index 0000000000..d53f2b97bc --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+Herphah wants you to do some missions, and I'll chose an appropriate mission depending on your relationship with us at the Adventure Guild.
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm new file mode 100644 index 0000000000..3b56d0a991 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+Your mission is to assist with the task at the Altar of Evil. If successful, our Adventure Guild will give you additional rewards on top of the mission payment and your relationship with our faction will grow even stronger.
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm new file mode 100644 index 0000000000..841edf2f57 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+You've already leamed everything you need to know about the mission. By that I mean, how to go to the Altar of Evil. You should be able to start the mission right away without further explanation.
+But if you want to listen to the explanation again, I'd be happy to tell you. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html new file mode 100644 index 0000000000..6a2b0fce5e --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html @@ -0,0 +1,3 @@ +Adventure Guildsman Penny:
+Good choice. Now, go to Black Wizard Lapathia at the Altar of Evil and do the mission that she gives you. When the mission is done, come back to me.
+ \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html new file mode 100644 index 0000000000..ff1be54d6e --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html @@ -0,0 +1,5 @@ +Black Wizard Lapathia:
+I asked the Adventure Guild to send an adventurer but didn't expect they would send you. I'd like to see how good you are.
+(To do "Basic Mission: Isle of Souls," you must do "Uncover the Secret" and "More Aggressive Operation" through Black Wizard Lapathia.)
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html new file mode 100644 index 0000000000..59db8b4423 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html @@ -0,0 +1,5 @@ +Black Wizard Lapathia:
+You completed all the missions I gave you, meaning that you also completed those of the Adventure Guildsman. Are you going back to the Town of Aden? How?
+Don't tell me you're going to walk all the way up there. I know a better way.
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html new file mode 100644 index 0000000000..aadd989501 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html @@ -0,0 +1,4 @@ +Black Wizard Lapathia:
+When setting out for a joumey, veteran adventurers always pack Scrolls of Escape, it teleports the user immediately to the closest village or to the check point.
+If you have these useful items, you can move easily after hunting or when you are far away from the village. Since you've been a great help to me, I'll give you the scroll that can teleport you directly to the Town of Aden. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java new file mode 100644 index 0000000000..4fdaf0ba34 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java @@ -0,0 +1,223 @@ +/* + * 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.Q00587_MoreAggressiveOperation; + +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.commons.util.CommonUtil; +import org.l2jmobius.gameserver.enums.QuestSound; +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.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; + +/** + * More Aggressive Operation (587) + * @URL https://l2wiki.com/More_Aggressive_Operation + * @author Dmitri + */ +public class Q00587_MoreAggressiveOperation extends Quest +{ + // NPCs + private static final int HESET = 33780; + // Monsters + private static final int BERSERK_CONTROL_GOLEM = 24130; + private static final int CONTROL_GOLEM = 23261; + private static final int[] MOBS = + { + 23254, // Yin Spicula + 23246, // Spicula 1 + 23247, // Spicula 2 + 23248, // Spicula 3 + 23249, // Spicula 4 + 23250, // Spicula 5 + 23251, // Spicula 6 + 23255, // Light Golem + 23257, // Twosword Golem + 23259, // Broken-bodied Golem + 23260, // Summoned Golem Body + 23263, // Broken Golem of Repairs + 23264, // Broken Drill Golem + 23266, // Broken Pincer Golem + 23267, // Screw Golem + }; + // Items + private static final int CONTROL_MODULE = 48383; + // Misc + private static final int MIN_LEVEL = 93; + private static final int MAX_LEVEL = 103; + + public Q00587_MoreAggressiveOperation() + { + super(587); + addStartNpc(HESET); + addTalkId(HESET); + addKillId(BERSERK_CONTROL_GOLEM, CONTROL_GOLEM); + addKillId(MOBS); + registerQuestItems(CONTROL_MODULE); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "33780-00.htm"); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "33780-02.htm": + case "33780-03.htm": + case "33780-07.html": + { + htmltext = event; + break; + } + case "33780-04.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "33780-08.html": + { + if (qs.isCond(2)) + { + giveAdena(player, 587070, true); + addExpAndSp(player, 1193302530L, 1193280); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + } + break; + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == HESET) + { + htmltext = "33780-01.htm"; + } + break; + } + case State.STARTED: + { + switch (npc.getId()) + { + case HESET: + { + if (qs.isCond(1)) + { + htmltext = "33780-05.html"; + } + else + { + htmltext = "33780-06.html"; + } + break; + } + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable()) + { + qs.setState(State.CREATED); + htmltext = "33780-01.htm"; + } + else + { + htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY); + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance player, boolean isSummon) + { + final QuestState qs = getQuestState(player, false); + + if ((qs != null) && qs.isCond(1)) + { + int killedAntelope = qs.getInt("killed_" + MOBS[0]); + + if (npc.getId() == CONTROL_GOLEM) + { + if (getRandom(100) < 50) + { + final Npc mob = addSpawn(BERSERK_CONTROL_GOLEM, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000); + addAttackPlayerDesire(mob, player, 5); + } + } + if ((npc.getId() == BERSERK_CONTROL_GOLEM) && (getQuestItemsCount(player, CONTROL_MODULE) < 4) && (getRandom(100) < 40)) + { + giveItems(player, CONTROL_MODULE, 1); + playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + else if (CommonUtil.contains(MOBS, npc.getId())) + { + if (killedAntelope < 400) + { + killedAntelope++; + qs.set("killed_" + MOBS[0], killedAntelope); + playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if ((killedAntelope == 400) && (getQuestItemsCount(player, CONTROL_MODULE) == 4)) + { + qs.setCond(2, true); + } + } + return super.onKill(npc, player, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isStarted() && qs.isCond(1)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_AROUND_THE_TENT, qs.getInt("killed_" + MOBS[0]))); + return holder; + } + return super.getNpcLogList(player); + } +} 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 714214faa7..9cb65c7770 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 @@ -128,6 +128,7 @@ import quests.Q00581_ThePurificationRitual.Q00581_ThePurificationRitual; import quests.Q00582_WashBloodWithBlood.Q00582_WashBloodWithBlood; import quests.Q00583_MeaningOfSurvival.Q00583_MeaningOfSurvival; import quests.Q00584_NeverSayGoodBye.Q00584_NeverSayGoodBye; +import quests.Q00587_MoreAggressiveOperation.Q00587_MoreAggressiveOperation; import quests.Q00600_KeyToTheRefiningProcess.Q00600_KeyToTheRefiningProcess; import quests.Q00617_GatherTheFlames.Q00617_GatherTheFlames; import quests.Q00618_IntoTheFlame.Q00618_IntoTheFlame; @@ -602,7 +603,7 @@ public class QuestMasterHandler Q00584_NeverSayGoodBye.class, Q00585_CantGoAgainstTheTime.class, // TODO: Not done. Q00586_MutatedCreatures.class, // TODO: Not done. - Q00587_MoreAggressiveOperation.class, // TODO: Not done. + Q00587_MoreAggressiveOperation.class, Q00588_HeadOnCrash.class, // TODO: Not done. Q00589_ASecretChange.class, // FIXME: Custom. Q00590_ToEachTheirOwn.class, // FIXME: Custom. diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.java deleted file mode 100644 index ca469a83b5..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.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 Q00587_MoreAggressiveOperation extends Quest -{ - private static final int START_NPC = 33780; - - public Q00587_MoreAggressiveOperation() - { - super(587); - 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 e2e06e13f6..98e598b6db 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 @@ -50,7 +50,6 @@ 578 Basic Mission: Cemetery 585 Can't Go Against the Time 586 Mutated Creatures -587 More Aggressive Operation 588 Head-on Crash 591 Great Ambitions 592 Snow's Plea - Monsters from Three Areas diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm new file mode 100644 index 0000000000..35c37e687a --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-00.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+In order to take on this mission, you must first build more trust with us.
+(Only characters with faction level 5 or above with the Blackbird Clan may undertake this quest.)
+ \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm new file mode 100644 index 0000000000..cfd4929d96 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-01.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+Your're the one that Hephah has sent, right? If not, you should go meet Herphah and receive a mission from her before you continue. If you think it doesn't matter, I can continue anyway. Do you want me to continue?
+ + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm new file mode 100644 index 0000000000..d53f2b97bc --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-02.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+Herphah wants you to do some missions, and I'll chose an appropriate mission depending on your relationship with us at the Adventure Guild.
+ + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm new file mode 100644 index 0000000000..3b56d0a991 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-03.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+Your mission is to assist with the task at the Altar of Evil. If successful, our Adventure Guild will give you additional rewards on top of the mission payment and your relationship with our faction will grow even stronger.
+ + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm new file mode 100644 index 0000000000..841edf2f57 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-04.htm @@ -0,0 +1,4 @@ +Adventure Guildsman Penny:
+You've already leamed everything you need to know about the mission. By that I mean, how to go to the Altar of Evil. You should be able to start the mission right away without further explanation.
+But if you want to listen to the explanation again, I'd be happy to tell you. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html new file mode 100644 index 0000000000..6a2b0fce5e --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-05.html @@ -0,0 +1,3 @@ +Adventure Guildsman Penny:
+Good choice. Now, go to Black Wizard Lapathia at the Altar of Evil and do the mission that she gives you. When the mission is done, come back to me.
+ \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html new file mode 100644 index 0000000000..ff1be54d6e --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-06.html @@ -0,0 +1,5 @@ +Black Wizard Lapathia:
+I asked the Adventure Guild to send an adventurer but didn't expect they would send you. I'd like to see how good you are.
+(To do "Basic Mission: Isle of Souls," you must do "Uncover the Secret" and "More Aggressive Operation" through Black Wizard Lapathia.)
+ + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html new file mode 100644 index 0000000000..59db8b4423 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-07.html @@ -0,0 +1,5 @@ +Black Wizard Lapathia:
+You completed all the missions I gave you, meaning that you also completed those of the Adventure Guildsman. Are you going back to the Town of Aden? How?
+Don't tell me you're going to walk all the way up there. I know a better way.
+ + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html new file mode 100644 index 0000000000..aadd989501 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/33780-08.html @@ -0,0 +1,4 @@ +Black Wizard Lapathia:
+When setting out for a joumey, veteran adventurers always pack Scrolls of Escape, it teleports the user immediately to the closest village or to the check point.
+If you have these useful items, you can move easily after hunting or when you are far away from the village. Since you've been a great help to me, I'll give you the scroll that can teleport you directly to the Town of Aden. + \ No newline at end of file diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java new file mode 100644 index 0000000000..4fdaf0ba34 --- /dev/null +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00587_MoreAggressiveOperation/Q00587_MoreAggressiveOperation.java @@ -0,0 +1,223 @@ +/* + * 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.Q00587_MoreAggressiveOperation; + +import java.util.HashSet; +import java.util.Set; + +import org.l2jmobius.commons.util.CommonUtil; +import org.l2jmobius.gameserver.enums.QuestSound; +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.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; + +/** + * More Aggressive Operation (587) + * @URL https://l2wiki.com/More_Aggressive_Operation + * @author Dmitri + */ +public class Q00587_MoreAggressiveOperation extends Quest +{ + // NPCs + private static final int HESET = 33780; + // Monsters + private static final int BERSERK_CONTROL_GOLEM = 24130; + private static final int CONTROL_GOLEM = 23261; + private static final int[] MOBS = + { + 23254, // Yin Spicula + 23246, // Spicula 1 + 23247, // Spicula 2 + 23248, // Spicula 3 + 23249, // Spicula 4 + 23250, // Spicula 5 + 23251, // Spicula 6 + 23255, // Light Golem + 23257, // Twosword Golem + 23259, // Broken-bodied Golem + 23260, // Summoned Golem Body + 23263, // Broken Golem of Repairs + 23264, // Broken Drill Golem + 23266, // Broken Pincer Golem + 23267, // Screw Golem + }; + // Items + private static final int CONTROL_MODULE = 48383; + // Misc + private static final int MIN_LEVEL = 93; + private static final int MAX_LEVEL = 103; + + public Q00587_MoreAggressiveOperation() + { + super(587); + addStartNpc(HESET); + addTalkId(HESET); + addKillId(BERSERK_CONTROL_GOLEM, CONTROL_GOLEM); + addKillId(MOBS); + registerQuestItems(CONTROL_MODULE); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "33780-00.htm"); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return htmltext; + } + + switch (event) + { + case "33780-02.htm": + case "33780-03.htm": + case "33780-07.html": + { + htmltext = event; + break; + } + case "33780-04.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "33780-08.html": + { + if (qs.isCond(2)) + { + giveAdena(player, 587070, true); + addExpAndSp(player, 1193302530L, 1193280); + qs.exitQuest(QuestType.DAILY, true); + htmltext = event; + } + break; + } + } + return htmltext; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == HESET) + { + htmltext = "33780-01.htm"; + } + break; + } + case State.STARTED: + { + switch (npc.getId()) + { + case HESET: + { + if (qs.isCond(1)) + { + htmltext = "33780-05.html"; + } + else + { + htmltext = "33780-06.html"; + } + break; + } + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable()) + { + qs.setState(State.CREATED); + htmltext = "33780-01.htm"; + } + else + { + htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY); + } + break; + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance player, boolean isSummon) + { + final QuestState qs = getQuestState(player, false); + + if ((qs != null) && qs.isCond(1)) + { + int killedAntelope = qs.getInt("killed_" + MOBS[0]); + + if (npc.getId() == CONTROL_GOLEM) + { + if (getRandom(100) < 50) + { + final Npc mob = addSpawn(BERSERK_CONTROL_GOLEM, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000); + addAttackPlayerDesire(mob, player, 5); + } + } + if ((npc.getId() == BERSERK_CONTROL_GOLEM) && (getQuestItemsCount(player, CONTROL_MODULE) < 4) && (getRandom(100) < 40)) + { + giveItems(player, CONTROL_MODULE, 1); + playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + else if (CommonUtil.contains(MOBS, npc.getId())) + { + if (killedAntelope < 400) + { + killedAntelope++; + qs.set("killed_" + MOBS[0], killedAntelope); + playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET); + } + } + if ((killedAntelope == 400) && (getQuestItemsCount(player, CONTROL_MODULE) == 4)) + { + qs.setCond(2, true); + } + } + return super.onKill(npc, player, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isStarted() && qs.isCond(1)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_AROUND_THE_TENT, qs.getInt("killed_" + MOBS[0]))); + return holder; + } + return super.getNpcLogList(player); + } +} 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 51980b0712..dbde87fd9b 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 @@ -58,6 +58,7 @@ import quests.Q00564_BasicMissionKartiasLabyrinthSolo.Q00564_BasicMissionKartias import quests.Q00567_BasicMissionIsleOfSouls.Q00567_BasicMissionIsleOfSouls; import quests.Q00569_BasicMissionSealOfShilen.Q00569_BasicMissionSealOfShilen; import quests.Q00580_BeyondTheMemories.Q00580_BeyondTheMemories; +import quests.Q00587_MoreAggressiveOperation.Q00587_MoreAggressiveOperation; import quests.Q00600_KeyToTheRefiningProcess.Q00600_KeyToTheRefiningProcess; import quests.Q00618_IntoTheFlame.Q00618_IntoTheFlame; import quests.Q00620_FourGoblets.Q00620_FourGoblets; @@ -243,7 +244,6 @@ import quests.not_done.Q00577_BasicMissionSilentValley; import quests.not_done.Q00578_BasicMissionCemetery; import quests.not_done.Q00585_CantGoAgainstTheTime; import quests.not_done.Q00586_MutatedCreatures; -import quests.not_done.Q00587_MoreAggressiveOperation; import quests.not_done.Q00588_HeadOnCrash; import quests.not_done.Q00591_GreatAmbitions; import quests.not_done.Q00593_BasicMissionPaganTemple; @@ -392,7 +392,7 @@ public class QuestMasterHandler Q00580_BeyondTheMemories.class, Q00585_CantGoAgainstTheTime.class, // TODO: Not done. Q00586_MutatedCreatures.class, // TODO: Not done. - Q00587_MoreAggressiveOperation.class, // TODO: Not done. + Q00587_MoreAggressiveOperation.class, Q00588_HeadOnCrash.class, // TODO: Not done. Q00589_ASecretChange.class, // FIXME: Custom. Q00590_ToEachTheirOwn.class, // FIXME: Custom. diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.java deleted file mode 100644 index ca469a83b5..0000000000 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q00587_MoreAggressiveOperation.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 Q00587_MoreAggressiveOperation extends Quest -{ - private static final int START_NPC = 33780; - - public Q00587_MoreAggressiveOperation() - { - super(587); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -}