From 66f0a226294a85fe2292e8ee3f5fd1d3ebf8f4e2 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 18 Apr 2019 03:16:31 +0000 Subject: [PATCH] Addition of quests 589 and 590. --- .../data/scripts/quests/MissingQuests.txt | 2 - .../scripts/quests/QuestMasterHandler.java | 6 +- .../Q00589_ASecretChange.java | 183 ++++++++++++++++++ .../custom/Q00589_ASecretChange/accept.htm | 3 + .../custom/Q00589_ASecretChange/finish.html | 4 + .../custom/Q00589_ASecretChange/reward.html | 3 + .../custom/Q00589_ASecretChange/start.htm | 5 + .../Q00590_ToEachTheirOwn.java | 182 +++++++++++++++++ .../custom/Q00590_ToEachTheirOwn/accept.htm | 3 + .../custom/Q00590_ToEachTheirOwn/finish.html | 4 + .../custom/Q00590_ToEachTheirOwn/reward.html | 3 + .../custom/Q00590_ToEachTheirOwn/start.htm | 5 + .../quests/not_done/Q00589_ASecretChange.java | 36 ---- .../not_done/Q00590_ToEachTheirOwn.java | 36 ---- .../game/data/stats/items/48500-48599.xml | 24 +++ .../data/scripts/quests/MissingQuests.txt | 2 - .../scripts/quests/QuestMasterHandler.java | 6 +- .../Q00589_ASecretChange.java | 183 ++++++++++++++++++ .../custom/Q00589_ASecretChange/accept.htm | 3 + .../custom/Q00589_ASecretChange/finish.html | 4 + .../custom/Q00589_ASecretChange/reward.html | 3 + .../custom/Q00589_ASecretChange/start.htm | 5 + .../Q00590_ToEachTheirOwn.java | 182 +++++++++++++++++ .../custom/Q00590_ToEachTheirOwn/accept.htm | 3 + .../custom/Q00590_ToEachTheirOwn/finish.html | 4 + .../custom/Q00590_ToEachTheirOwn/reward.html | 3 + .../custom/Q00590_ToEachTheirOwn/start.htm | 5 + .../quests/not_done/Q00589_ASecretChange.java | 36 ---- .../not_done/Q00590_ToEachTheirOwn.java | 36 ---- .../game/data/stats/items/48500-48599.xml | 2 + 30 files changed, 824 insertions(+), 152 deletions(-) create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/Q00589_ASecretChange.java create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/accept.htm create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/finish.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/reward.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/start.htm create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/Q00590_ToEachTheirOwn.java create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/accept.htm create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/finish.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/reward.html create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/start.htm delete mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00589_ASecretChange.java delete mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00590_ToEachTheirOwn.java create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/Q00589_ASecretChange.java create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/accept.htm create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/finish.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/reward.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/start.htm create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/Q00590_ToEachTheirOwn.java create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/accept.htm create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/finish.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/reward.html create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/start.htm delete mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00589_ASecretChange.java delete mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00590_ToEachTheirOwn.java 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 f6b734cd0a..d32a3dc29e 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 @@ -21,8 +21,6 @@ 586 Mutated Creatures 587 More Aggressive Operation 588 Head-on Crash -589 A Secret Change -590 To Each Their Own 591 Great Ambitions 599 Demons and Dimensional Energy 600 Key to the Refining Process 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 92d4b76006..3854ee9441 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 @@ -408,6 +408,8 @@ import quests.Q10839_BlackbirdsNameValue.Q10839_BlackbirdsNameValue; import quests.Q10840_TimeToRecover.Q10840_TimeToRecover; import quests.Q10841_DeepInsideAteliaFortress.Q10841_DeepInsideAteliaFortress; import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedValley; +import quests.custom.Q00589_ASecretChange.Q00589_ASecretChange; +import quests.custom.Q00590_ToEachTheirOwn.Q00590_ToEachTheirOwn; import quests.not_done.*; /** @@ -543,8 +545,8 @@ public class QuestMasterHandler Q00586_MutatedCreatures.class, // TODO: Not done. Q00587_MoreAggressiveOperation.class, // TODO: Not done. Q00588_HeadOnCrash.class, // TODO: Not done. - Q00589_ASecretChange.class, // TODO: Not done. - Q00590_ToEachTheirOwn.class, // TODO: Not done. + Q00589_ASecretChange.class, // FIXME: Custom. + Q00590_ToEachTheirOwn.class, // FIXME: Custom. Q00591_GreatAmbitions.class, // TODO: Not done. Q00599_DemonsAndDimensionalEnergy.class, // TODO: Not done. Q00600_KeyToTheRefiningProcess.class, // TODO: Not done. diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/Q00589_ASecretChange.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/Q00589_ASecretChange.java new file mode 100644 index 0000000000..e7f7d7d6ab --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/Q00589_ASecretChange.java @@ -0,0 +1,183 @@ +/* + * 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.custom.Q00589_ASecretChange; + +import java.util.HashSet; +import java.util.Set; + +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; + +/** + * A Secret Change (589) + * @URL https://l2wiki.com/A_Secret_Change + * @author Mobius + */ +public class Q00589_ASecretChange extends Quest +{ + // NPCs + private static final int START_NPC = 34424; + private static final int[] MONSTERS = + { + 24200, + 24201, + 24202, + 24203, + }; + // Item + private static final int MONSTER_DROP = 48533; + // Misc + private static final int REQUIRED_DROP_COUNT = 250; + private static final int KILLING_NPCSTRING_ID = NpcStringId.LV_95_105_A_SECRET_CHANGE_IN_PROGRESS.getId(); + private static final QuestType QUEST_TYPE = QuestType.DAILY; // REPEATABLE, ONE_TIME, DAILY + private static final boolean PARTY_QUEST = false; + private static final int KILLING_COND = 1; + private static final int FINISH_COND = 2; + private static final int MIN_LEVEL = 95; + private static final int MAX_LEVEL = 105; + + public Q00589_ASecretChange() + { + super(589); + addStartNpc(START_NPC); + addTalkId(START_NPC); + addKillId(MONSTERS); + registerQuestItems(MONSTER_DROP); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + addCondMaxLevel(MAX_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return null; + } + + switch (event) + { + case "accept.htm": + { + if (qs.isCreated()) + { + qs.startQuest(); + qs.setCond(KILLING_COND); + } + break; + } + case "reward.html": + { + if (qs.isCond(FINISH_COND) && (getQuestItemsCount(player, MONSTER_DROP) >= REQUIRED_DROP_COUNT)) + { + takeItems(player, MONSTER_DROP, -1); + // Reward. + addExpAndSp(player, 1793099880, 1793070); + giveAdena(player, 680100, false); + qs.exitQuest(QUEST_TYPE, true); + } + break; + } + default: + { + return null; + } + } + return event; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + if (npc.getId() == START_NPC) + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "start.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(KILLING_COND)) + { + htmltext = "accept.htm"; + } + else if (qs.isCond(FINISH_COND)) + { + htmltext = "finish.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable()) + { + qs.setState(State.CREATED); + htmltext = "start.htm"; + } + else + { + htmltext = getAlreadyCompletedMsg(player, QUEST_TYPE); + } + break; + } + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) + { + final QuestState qs = PARTY_QUEST ? getRandomPartyMemberState(killer, -1, 3, npc) : getQuestState(killer, false); + if ((qs != null) && qs.isCond(KILLING_COND)) + { + final PlayerInstance player = qs.getPlayer(); + if (giveItemRandomly(player, npc, MONSTER_DROP, 1, REQUIRED_DROP_COUNT, 1, true)) + { + qs.setCond(FINISH_COND, true); + } + sendNpcLogList(player); + } + return super.onKill(npc, killer, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(KILLING_COND)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(KILLING_NPCSTRING_ID, true, (int) getQuestItemsCount(player, MONSTER_DROP))); + return holder; + } + return super.getNpcLogList(player); + } +} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/accept.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/accept.htm new file mode 100644 index 0000000000..42f2e8fb83 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/accept.htm @@ -0,0 +1,3 @@ +Corzet:
+You have to hunt monsters in Silent Valley. Hunt Silence Warrior, Silence Slave, Silence Claw, Silence Witch. You need to gather 250 Trace of Evil. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/finish.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/finish.html new file mode 100644 index 0000000000..d3bd1cdebc --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/finish.html @@ -0,0 +1,4 @@ +Corzet:
+Have you retrieved the items I asked for?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/reward.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/reward.html new file mode 100644 index 0000000000..56e74601a9 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/reward.html @@ -0,0 +1,3 @@ +Corzet:
+Thank you for your assistance. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/start.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/start.htm new file mode 100644 index 0000000000..e0c3db61b8 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/start.htm @@ -0,0 +1,5 @@ +Corzet:
+If you have time I have a mission for you. +This area needs to be cleansed.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/Q00590_ToEachTheirOwn.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/Q00590_ToEachTheirOwn.java new file mode 100644 index 0000000000..fe298aa333 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/Q00590_ToEachTheirOwn.java @@ -0,0 +1,182 @@ +/* + * 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.custom.Q00590_ToEachTheirOwn; + +import java.util.HashSet; +import java.util.Set; + +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; + +/** + * To Each Their Own (590) + * @URL https://l2wiki.com/To_Each_Their_Own + * @author Mobius + */ +public class Q00590_ToEachTheirOwn extends Quest +{ + // NPCs + private static final int START_NPC = 34424; + private static final int[] MONSTERS = + { + 24204, + 24205, + 24206, + }; + // Item + private static final int MONSTER_DROP = 48534; + // Misc + private static final int REQUIRED_DROP_COUNT = 50; + private static final int KILLING_NPCSTRING_ID = NpcStringId.LV_95_105_TO_EACH_THEIR_OWN_IN_PROGRESS.getId(); + private static final QuestType QUEST_TYPE = QuestType.DAILY; // REPEATABLE, ONE_TIME, DAILY + private static final boolean PARTY_QUEST = false; + private static final int KILLING_COND = 1; + private static final int FINISH_COND = 2; + private static final int MIN_LEVEL = 95; + private static final int MAX_LEVEL = 105; + + public Q00590_ToEachTheirOwn() + { + super(590); + addStartNpc(START_NPC); + addTalkId(START_NPC); + addKillId(MONSTERS); + registerQuestItems(MONSTER_DROP); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + addCondMaxLevel(MAX_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return null; + } + + switch (event) + { + case "accept.htm": + { + if (qs.isCreated()) + { + qs.startQuest(); + qs.setCond(KILLING_COND); + } + break; + } + case "reward.html": + { + if (qs.isCond(FINISH_COND) && (getQuestItemsCount(player, MONSTER_DROP) >= REQUIRED_DROP_COUNT)) + { + takeItems(player, MONSTER_DROP, -1); + // Reward. + addExpAndSp(player, 1793099880, 1793070); + giveAdena(player, 680100, false); + qs.exitQuest(QUEST_TYPE, true); + } + break; + } + default: + { + return null; + } + } + return event; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + if (npc.getId() == START_NPC) + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "start.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(KILLING_COND)) + { + htmltext = "accept.htm"; + } + else if (qs.isCond(FINISH_COND)) + { + htmltext = "finish.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable()) + { + qs.setState(State.CREATED); + htmltext = "start.htm"; + } + else + { + htmltext = getAlreadyCompletedMsg(player, QUEST_TYPE); + } + break; + } + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) + { + final QuestState qs = PARTY_QUEST ? getRandomPartyMemberState(killer, -1, 3, npc) : getQuestState(killer, false); + if ((qs != null) && qs.isCond(KILLING_COND)) + { + final PlayerInstance player = qs.getPlayer(); + if (giveItemRandomly(player, npc, MONSTER_DROP, 1, REQUIRED_DROP_COUNT, 1, true)) + { + qs.setCond(FINISH_COND, true); + } + sendNpcLogList(player); + } + return super.onKill(npc, killer, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(KILLING_COND)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(KILLING_NPCSTRING_ID, true, (int) getQuestItemsCount(player, MONSTER_DROP))); + return holder; + } + return super.getNpcLogList(player); + } +} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/accept.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/accept.htm new file mode 100644 index 0000000000..3787b9db10 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/accept.htm @@ -0,0 +1,3 @@ +Corzet:
+You have to hunt monsters in Silent Valley. Hunt Silence Hannibal, Silence Preacle, Silence Phantom. You need to gather 50 Dust of Destroyed Demon. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/finish.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/finish.html new file mode 100644 index 0000000000..fe5f81f07a --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/finish.html @@ -0,0 +1,4 @@ +Corzet:
+Have you retrieved the items I asked for?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/reward.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/reward.html new file mode 100644 index 0000000000..56e74601a9 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/reward.html @@ -0,0 +1,3 @@ +Corzet:
+Thank you for your assistance. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/start.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/start.htm new file mode 100644 index 0000000000..ebb7fdcc4d --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/start.htm @@ -0,0 +1,5 @@ +Corzet:
+If you have time I have a mission for you. +This area needs to be cleansed.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00589_ASecretChange.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00589_ASecretChange.java deleted file mode 100644 index 20a05c5489..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00589_ASecretChange.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 Q00589_ASecretChange extends Quest -{ - private static final int START_NPC = 34424; - - public Q00589_ASecretChange() - { - super(589); - 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/Q00590_ToEachTheirOwn.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00590_ToEachTheirOwn.java deleted file mode 100644 index d35b853896..0000000000 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00590_ToEachTheirOwn.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 Q00590_ToEachTheirOwn extends Quest -{ - private static final int START_NPC = 34424; - - public Q00590_ToEachTheirOwn() - { - super(590); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/items/48500-48599.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/items/48500-48599.xml index 3e71750fb0..b26ed18b63 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/items/48500-48599.xml +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/stats/items/48500-48599.xml @@ -148,4 +148,28 @@ 40 + + + + + + + + + + + + + + + + + + + + + + + + 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 4dd7df231f..b932ba8e9c 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 @@ -25,8 +25,6 @@ 586 Mutated Creatures 587 More Aggressive Operation 588 Head-on Crash -589 A Secret Change -590 To Each Their Own 591 Great Ambitions 593 Basic Mission: Pagan Temple 594 Basic Mission: Dimensional Rift 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 143c4896c0..183ee2df7f 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 @@ -408,6 +408,8 @@ import quests.Q10841_DeepInsideAteliaFortress.Q10841_DeepInsideAteliaFortress; import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedValley; import quests.custom.Q00529_RegularBarrierMaintenance.Q00529_RegularBarrierMaintenance; import quests.custom.Q00560_HowToOvercomeFear.Q00560_HowToOvercomeFear; +import quests.custom.Q00589_ASecretChange.Q00589_ASecretChange; +import quests.custom.Q00590_ToEachTheirOwn.Q00590_ToEachTheirOwn; import quests.custom.Q00683_AdventOfKrofinSubspecies.Q00683_AdventOfKrofinSubspecies; import quests.custom.Q00684_DisturbedFields.Q00684_DisturbedFields; import quests.custom.Q10516_UnveiledFafurionTemple.Q10516_UnveiledFafurionTemple; @@ -553,8 +555,8 @@ public class QuestMasterHandler Q00586_MutatedCreatures.class, // TODO: Not done. Q00587_MoreAggressiveOperation.class, // TODO: Not done. Q00588_HeadOnCrash.class, // TODO: Not done. - Q00589_ASecretChange.class, // TODO: Not done. - Q00590_ToEachTheirOwn.class, // TODO: Not done. + Q00589_ASecretChange.class, // FIXME: Custom. + Q00590_ToEachTheirOwn.class, // FIXME: Custom. Q00591_GreatAmbitions.class, // TODO: Not done. Q00593_BasicMissionPaganTemple.class, // TODO: Not done. Q00594_BasicMissionDimensionalRift.class, // TODO: Not done. diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/Q00589_ASecretChange.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/Q00589_ASecretChange.java new file mode 100644 index 0000000000..e7f7d7d6ab --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/Q00589_ASecretChange.java @@ -0,0 +1,183 @@ +/* + * 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.custom.Q00589_ASecretChange; + +import java.util.HashSet; +import java.util.Set; + +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; + +/** + * A Secret Change (589) + * @URL https://l2wiki.com/A_Secret_Change + * @author Mobius + */ +public class Q00589_ASecretChange extends Quest +{ + // NPCs + private static final int START_NPC = 34424; + private static final int[] MONSTERS = + { + 24200, + 24201, + 24202, + 24203, + }; + // Item + private static final int MONSTER_DROP = 48533; + // Misc + private static final int REQUIRED_DROP_COUNT = 250; + private static final int KILLING_NPCSTRING_ID = NpcStringId.LV_95_105_A_SECRET_CHANGE_IN_PROGRESS.getId(); + private static final QuestType QUEST_TYPE = QuestType.DAILY; // REPEATABLE, ONE_TIME, DAILY + private static final boolean PARTY_QUEST = false; + private static final int KILLING_COND = 1; + private static final int FINISH_COND = 2; + private static final int MIN_LEVEL = 95; + private static final int MAX_LEVEL = 105; + + public Q00589_ASecretChange() + { + super(589); + addStartNpc(START_NPC); + addTalkId(START_NPC); + addKillId(MONSTERS); + registerQuestItems(MONSTER_DROP); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + addCondMaxLevel(MAX_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return null; + } + + switch (event) + { + case "accept.htm": + { + if (qs.isCreated()) + { + qs.startQuest(); + qs.setCond(KILLING_COND); + } + break; + } + case "reward.html": + { + if (qs.isCond(FINISH_COND) && (getQuestItemsCount(player, MONSTER_DROP) >= REQUIRED_DROP_COUNT)) + { + takeItems(player, MONSTER_DROP, -1); + // Reward. + addExpAndSp(player, 1793099880, 1793070); + giveAdena(player, 680100, false); + qs.exitQuest(QUEST_TYPE, true); + } + break; + } + default: + { + return null; + } + } + return event; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + if (npc.getId() == START_NPC) + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "start.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(KILLING_COND)) + { + htmltext = "accept.htm"; + } + else if (qs.isCond(FINISH_COND)) + { + htmltext = "finish.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable()) + { + qs.setState(State.CREATED); + htmltext = "start.htm"; + } + else + { + htmltext = getAlreadyCompletedMsg(player, QUEST_TYPE); + } + break; + } + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) + { + final QuestState qs = PARTY_QUEST ? getRandomPartyMemberState(killer, -1, 3, npc) : getQuestState(killer, false); + if ((qs != null) && qs.isCond(KILLING_COND)) + { + final PlayerInstance player = qs.getPlayer(); + if (giveItemRandomly(player, npc, MONSTER_DROP, 1, REQUIRED_DROP_COUNT, 1, true)) + { + qs.setCond(FINISH_COND, true); + } + sendNpcLogList(player); + } + return super.onKill(npc, killer, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(KILLING_COND)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(KILLING_NPCSTRING_ID, true, (int) getQuestItemsCount(player, MONSTER_DROP))); + return holder; + } + return super.getNpcLogList(player); + } +} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/accept.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/accept.htm new file mode 100644 index 0000000000..42f2e8fb83 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/accept.htm @@ -0,0 +1,3 @@ +Corzet:
+You have to hunt monsters in Silent Valley. Hunt Silence Warrior, Silence Slave, Silence Claw, Silence Witch. You need to gather 250 Trace of Evil. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/finish.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/finish.html new file mode 100644 index 0000000000..d3bd1cdebc --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/finish.html @@ -0,0 +1,4 @@ +Corzet:
+Have you retrieved the items I asked for?
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/reward.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/reward.html new file mode 100644 index 0000000000..56e74601a9 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/reward.html @@ -0,0 +1,3 @@ +Corzet:
+Thank you for your assistance. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/start.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/start.htm new file mode 100644 index 0000000000..e0c3db61b8 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00589_ASecretChange/start.htm @@ -0,0 +1,5 @@ +Corzet:
+If you have time I have a mission for you. +This area needs to be cleansed.
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/Q00590_ToEachTheirOwn.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/Q00590_ToEachTheirOwn.java new file mode 100644 index 0000000000..fe298aa333 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/Q00590_ToEachTheirOwn.java @@ -0,0 +1,182 @@ +/* + * 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.custom.Q00590_ToEachTheirOwn; + +import java.util.HashSet; +import java.util.Set; + +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; + +/** + * To Each Their Own (590) + * @URL https://l2wiki.com/To_Each_Their_Own + * @author Mobius + */ +public class Q00590_ToEachTheirOwn extends Quest +{ + // NPCs + private static final int START_NPC = 34424; + private static final int[] MONSTERS = + { + 24204, + 24205, + 24206, + }; + // Item + private static final int MONSTER_DROP = 48534; + // Misc + private static final int REQUIRED_DROP_COUNT = 50; + private static final int KILLING_NPCSTRING_ID = NpcStringId.LV_95_105_TO_EACH_THEIR_OWN_IN_PROGRESS.getId(); + private static final QuestType QUEST_TYPE = QuestType.DAILY; // REPEATABLE, ONE_TIME, DAILY + private static final boolean PARTY_QUEST = false; + private static final int KILLING_COND = 1; + private static final int FINISH_COND = 2; + private static final int MIN_LEVEL = 95; + private static final int MAX_LEVEL = 105; + + public Q00590_ToEachTheirOwn() + { + super(590); + addStartNpc(START_NPC); + addTalkId(START_NPC); + addKillId(MONSTERS); + registerQuestItems(MONSTER_DROP); + addCondMinLevel(MIN_LEVEL, getNoQuestMsg(null)); + addCondMaxLevel(MAX_LEVEL, getNoQuestMsg(null)); + } + + @Override + public String onAdvEvent(String event, Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return null; + } + + switch (event) + { + case "accept.htm": + { + if (qs.isCreated()) + { + qs.startQuest(); + qs.setCond(KILLING_COND); + } + break; + } + case "reward.html": + { + if (qs.isCond(FINISH_COND) && (getQuestItemsCount(player, MONSTER_DROP) >= REQUIRED_DROP_COUNT)) + { + takeItems(player, MONSTER_DROP, -1); + // Reward. + addExpAndSp(player, 1793099880, 1793070); + giveAdena(player, 680100, false); + qs.exitQuest(QUEST_TYPE, true); + } + break; + } + default: + { + return null; + } + } + return event; + } + + @Override + public String onTalk(Npc npc, PlayerInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + if (npc.getId() == START_NPC) + { + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "start.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(KILLING_COND)) + { + htmltext = "accept.htm"; + } + else if (qs.isCond(FINISH_COND)) + { + htmltext = "finish.html"; + } + break; + } + case State.COMPLETED: + { + if (qs.isNowAvailable()) + { + qs.setState(State.CREATED); + htmltext = "start.htm"; + } + else + { + htmltext = getAlreadyCompletedMsg(player, QUEST_TYPE); + } + break; + } + } + } + return htmltext; + } + + @Override + public String onKill(Npc npc, PlayerInstance killer, boolean isSummon) + { + final QuestState qs = PARTY_QUEST ? getRandomPartyMemberState(killer, -1, 3, npc) : getQuestState(killer, false); + if ((qs != null) && qs.isCond(KILLING_COND)) + { + final PlayerInstance player = qs.getPlayer(); + if (giveItemRandomly(player, npc, MONSTER_DROP, 1, REQUIRED_DROP_COUNT, 1, true)) + { + qs.setCond(FINISH_COND, true); + } + sendNpcLogList(player); + } + return super.onKill(npc, killer, isSummon); + } + + @Override + public Set getNpcLogList(PlayerInstance player) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(KILLING_COND)) + { + final Set holder = new HashSet<>(); + holder.add(new NpcLogListHolder(KILLING_NPCSTRING_ID, true, (int) getQuestItemsCount(player, MONSTER_DROP))); + return holder; + } + return super.getNpcLogList(player); + } +} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/accept.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/accept.htm new file mode 100644 index 0000000000..3787b9db10 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/accept.htm @@ -0,0 +1,3 @@ +Corzet:
+You have to hunt monsters in Silent Valley. Hunt Silence Hannibal, Silence Preacle, Silence Phantom. You need to gather 50 Dust of Destroyed Demon. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/finish.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/finish.html new file mode 100644 index 0000000000..fe5f81f07a --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/finish.html @@ -0,0 +1,4 @@ +Corzet:
+Have you retrieved the items I asked for?
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/reward.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/reward.html new file mode 100644 index 0000000000..56e74601a9 --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/reward.html @@ -0,0 +1,3 @@ +Corzet:
+Thank you for your assistance. + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/start.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/start.htm new file mode 100644 index 0000000000..ebb7fdcc4d --- /dev/null +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/custom/Q00590_ToEachTheirOwn/start.htm @@ -0,0 +1,5 @@ +Corzet:
+If you have time I have a mission for you. +This area needs to be cleansed.
+ + \ No newline at end of file diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00589_ASecretChange.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00589_ASecretChange.java deleted file mode 100644 index 20a05c5489..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00589_ASecretChange.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 Q00589_ASecretChange extends Quest -{ - private static final int START_NPC = 34424; - - public Q00589_ASecretChange() - { - super(589); - 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/Q00590_ToEachTheirOwn.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00590_ToEachTheirOwn.java deleted file mode 100644 index d35b853896..0000000000 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00590_ToEachTheirOwn.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 Q00590_ToEachTheirOwn extends Quest -{ - private static final int START_NPC = 34424; - - public Q00590_ToEachTheirOwn() - { - super(590); - addStartNpc(START_NPC); - addTalkId(START_NPC); - addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null)); - } -} diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/items/48500-48599.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/items/48500-48599.xml index 7d0066f60e..2e15e2ae55 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/items/48500-48599.xml +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/stats/items/48500-48599.xml @@ -337,6 +337,7 @@ + @@ -348,6 +349,7 @@ +