diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt
index 5847929b66..502249dc15 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt
@@ -52,7 +52,6 @@
925 Hunter Guild Request - Garden of Spirits
929 Seeker Rescue
930 Disparaging the Phantoms
-931 Memories of the Wind
932 Sayha's Energy
938 The Fisherman's Other Hobby
940 Hunter Guild Request - Atelia Fortress
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm
new file mode 100644
index 0000000000..8198c3e20a
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm
@@ -0,0 +1,5 @@
+
Master Cyphona:
+I don't think you'll be able to complete this. You seem passionate, but you don't have enough experience.
+Please come back when you've become stronger.
+(Only characters above Lv. 102.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm
new file mode 100644
index 0000000000..44a426c8fa
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Ah, adventurer! There you are again. How about helping us some more? if you do, you can deepen the mutual trust with us and Ferin.
+What do you say? if you don't remember what to do, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm
new file mode 100644
index 0000000000..26b92013fb
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Ah, adventurer! There you are again. How about helping us some more?
+What do you say? If you don't remember what the mission was, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm
new file mode 100644
index 0000000000..ef15f51390
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Adventurer! Good to see you. Since you've helped us so much already, how about helping us some more?
+What do you say? If you don't remember what the mission was, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm
new file mode 100644
index 0000000000..18f6f1dfa7
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm
@@ -0,0 +1,5 @@
+Master Cyphona:
+I've been waiting for you, adventurer. Well since you are here now, will you listen to me? I know I can trust you, but if you complete this mission, we'll become better allies and your pockets will get heavier. What do you say? Or do you need me to explain the mission again?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm
new file mode 100644
index 0000000000..0ebd1190c2
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm
@@ -0,0 +1,4 @@
+Master Cyphona:
+We've begun an investigation in the Garden of Spirits starting from here. However, we are being threatened by the spirits there, so something must be done.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm
new file mode 100644
index 0000000000..d79f213654
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+We know of a way to defeat those spirits, at least temporarily. This way, we'll be able to put the spirits at rest, even if it's just for a little while.
+Of course, we will give you a reward for your help. And there is one more thing. While you are helping us, you'll build trust with us. The more we trust you, the more rewards we will give you, and there are some secret missions that we only give to those we trust.
+That's about it.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm
new file mode 100644
index 0000000000..f223236452
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm
@@ -0,0 +1,7 @@
+Master Cyphona:
+Good. Let me tell you what to do. Just choose the mission that you are capable of doing.
+Basic Mission - Collect 12 Mutated Spirit's Souls.
+Intermediate Mission - Collect 24 Mutated Spirit's Souls.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html
new file mode 100644
index 0000000000..0574084c95
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+This isn't the first time we've met? You've completed a mission before? I see... Well, I don't really have a good memory.
+If you have completed a mission before, then that means you must have a Mark of Trust. What? You don't have one?
+Then you are either a liar, or you haven't been here in a long time. My trust is something you must continously try to maintain. Will you listen to me?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm
new file mode 100644
index 0000000000..33ac489658
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm
@@ -0,0 +1,7 @@
+Master Cyphona:
+Good. Let me tell you what to do. Just choose the mission that you are capable of doing.
+Basic Mission - Collect 12 Mutated Spirit's Souls.
+Intermediate Mission - Collect 24 Mutated Spirit's Souls.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm
new file mode 100644
index 0000000000..9041babe57
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm
@@ -0,0 +1,3 @@
+Master Cyphona:
+Alright. Here's the mission. Hunt the Kerberos Leger, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and the Fury Kerberos Nero, and collect their Mutated Spirit's Souls as proof. You can get rewards only if you bring at least 200. Of course, you'll get more rewards if you bring more.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html
new file mode 100644
index 0000000000..9ab05d1b14
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Your Unworldly Visitors Faction Level Must be 3 or above may undertake this mission.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html
new file mode 100644
index 0000000000..e21b75e6da
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+You have chosen the basic mission to collect 200 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.
+Are you sure you want to proceed with this mission?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html
new file mode 100644
index 0000000000..5c54ac8312
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+You have chosen the intermediate mission to collect 400 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.
+Are you sure you want to proceed with this mission?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html
new file mode 100644
index 0000000000..0d646ed72d
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Good. Left me explain the details. Go to the Garden of Spirits, defeat the Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero, and put them to rest.
+As evidence, please bring back 12 Mutated Spirit's Souls. It should be manageable.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html
new file mode 100644
index 0000000000..4968b9e998
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Good. Left me explain the details. Go to the Garden of Spirits, defeat the Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero, and put them to rest.
+As evidence, please bring back 24 Mutated Spirit's Souls. It should be manageable.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html
new file mode 100644
index 0000000000..9d36d9e609
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html
@@ -0,0 +1,5 @@
+Master Cyphona:
+You want to finish already? Well, I can still give you a reward... But it won't be something good. Are you sure?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html
new file mode 100644
index 0000000000..7d75be2d18
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Go to the Garden of Spirits and defeat all type monsters until you collect 12 Mutated Spirit's Souls.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html
new file mode 100644
index 0000000000..9f18ae83b6
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Go to the Garden of Spirits and defeat all type monsters until you collect 24 Mutated Spirit's Souls.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html
new file mode 100644
index 0000000000..0b44c611f3
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+Toy have collected all of the Mutated Spirit's Souls. You have completed the mission successfully.
+I would like to congratulate you on completing the mission. Here's your reward. If you have a Faction Amity Token, I can give You more rewards.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html
new file mode 100644
index 0000000000..41c5aec17d
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+You completed the mission!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html
new file mode 100644
index 0000000000..8907184546
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+You completed the mission!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html
new file mode 100644
index 0000000000..ec3450a5fc
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Here is your reward. This will also help to improve the trust between you and us at the Unworldly Visitors.
+As long as you don't forget us, that is. We thank you for your hard work.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html
new file mode 100644
index 0000000000..2bf94feff3
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward. We'll be able to maintain our trust. As long as you don't forget about us, that is.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html
new file mode 100644
index 0000000000..c2f962f4f2
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward, I'll remember how you've helped us all those times. Here's a higher level Mark of Trust. Thank you for all of your help.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html
new file mode 100644
index 0000000000..aacd7919d3
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward for helping us. Although you didn't get all the Marks, I still remember how you helped us. I have no doubt the trust between us has deepened even more.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java
new file mode 100644
index 0000000000..913cc53c6d
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java
@@ -0,0 +1,337 @@
+/*
+ * 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.Q00931_MemoriesOfTheWind;
+
+import org.l2jmobius.Config;
+import org.l2jmobius.gameserver.enums.Faction;
+import org.l2jmobius.gameserver.enums.QuestType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10831_UnbelievableSight.Q10831_UnbelievableSight;
+
+/**
+ * Memories of the Wind (931)
+ * @URL: https://l2wiki.com/Memories_of_the_Wind
+ * @author Dmitri
+ */
+public class Q00931_MemoriesOfTheWind extends Quest
+{
+ // NPC
+ private static final int CYPHONA = 34055;
+ // Monsters
+ private static final int EL_FERA = 23797;
+ private static final int EL_FLOATO = 23559;
+ private static final int ENERGY_OF_WIND = 19647;
+ private static final int KERBEROS_LAGER_N = 23550; // (night)
+ private static final int KERBEROS_LAGER = 23541;
+ private static final int KERBEROS_FORT_N = 23551; // (night)
+ private static final int KERBEROS_FORT = 23542;
+ private static final int KERBEROS_NERO_N = 23552; // (night)
+ private static final int KERBEROS_NERO = 23543;
+ private static final int FURY_SYLPH_BARRENA_N = 23553; // (night)
+ private static final int FURY_SYLPH_BARRENA = 23544;
+ private static final int FURY_SYLPH_TEMPTRESS_N = 23555; // (night)
+ private static final int FURY_SYLPH_TEMPTRESS = 23546;
+ private static final int FURY_SYLPH_PURKA_N = 23556; // (night)
+ private static final int FURY_SYLPH_PURKA = 23547;
+ private static final int FURY_KERBEROS_LEGER_N = 23557; // (night)
+ private static final int FURY_KERBEROS_LEGER = 23545;
+ private static final int FURY_KERBEROS_NERO_N = 23558; // (night)
+ private static final int FURY_KERBEROS_NERO = 23549;
+ // Items
+ private static final int MEMORIES_OF_THE_WIND = 47188;
+ private static final int UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX = 47181;
+ private static final int UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX = 47182;
+ private static final int UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX = 47183;
+ // Misc
+ private static final int MIN_LEVEL = 102;
+
+ public Q00931_MemoriesOfTheWind()
+ {
+ super(931);
+ addStartNpc(CYPHONA);
+ addTalkId(CYPHONA);
+ addKillId(EL_FERA, EL_FLOATO);
+ addKillId(ENERGY_OF_WIND, KERBEROS_LAGER, KERBEROS_FORT, KERBEROS_NERO, FURY_SYLPH_BARRENA, FURY_SYLPH_TEMPTRESS, FURY_SYLPH_PURKA, FURY_KERBEROS_LEGER, FURY_KERBEROS_NERO);
+ registerQuestItems(MEMORIES_OF_THE_WIND);
+ addCondMinLevel(MIN_LEVEL, "34055-00.htm");
+ addCondCompletedQuest(Q10831_UnbelievableSight.class.getSimpleName(), "34055-00.htm");
+ addFactionLevel(Faction.UNWORLDLY_VISITORS, 2, "34055-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 "34055-02.htm":
+ case "34055-03.htm":
+ case "34055-04.htm":
+ case "34055-04a.htm":
+ case "34055-06.html":
+ case "34055-06a.html":
+ {
+ htmltext = event;
+ break;
+ }
+ case "select_mission":
+ {
+ qs.startQuest();
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case "return":
+ {
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case "34055-07.html":
+ {
+ qs.setCond(2, true);
+ htmltext = event;
+ break;
+ }
+ case "34055-07a.html":
+ {
+ qs.setCond(3, true);
+ htmltext = event;
+ break;
+ }
+ case "34055-10.html":
+ {
+ final int chance = getRandom(100);
+ switch (qs.getCond())
+ {
+ case 4:
+ {
+ if ((getQuestItemsCount(player, MEMORIES_OF_THE_WIND) == 12) && (player.getLevel() >= MIN_LEVEL))
+ {
+ if (chance < 2)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX, 1);
+ }
+ else if (chance < 20)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX, 1);
+ }
+ else if (chance < 100)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX, 1);
+ }
+ addExpAndSp(player, 22_221_427_950L, 22_221_360);
+ addFactionPoints(player, Faction.UNWORLDLY_VISITORS, 100);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ break;
+ }
+ case 5:
+ {
+ if ((getQuestItemsCount(player, MEMORIES_OF_THE_WIND) == 24) && (player.getLevel() >= MIN_LEVEL))
+ {
+ if (chance < 2)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX, 1);
+ }
+ else if (chance < 20)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX, 1);
+ }
+ else if (chance < 100)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX, 1);
+ }
+ addExpAndSp(player, 44_442_855_900L, 44_442_720);
+ addFactionPoints(player, Faction.UNWORLDLY_VISITORS, 200);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ break;
+ }
+ }
+ 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:
+ {
+ htmltext = "34055-01.htm";
+ }
+ case State.STARTED:
+ {
+ switch (qs.getCond())
+ {
+ case 1:
+ {
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case 2:
+ {
+ htmltext = "34055-08.html";
+ break;
+ }
+ case 3:
+ {
+ htmltext = "34055-08a.html";
+ break;
+ }
+ case 4:
+ case 5:
+ {
+ htmltext = "34055-09.html";
+ break;
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (!qs.isNowAvailable())
+ {
+ htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
+ }
+ else
+ {
+ qs.setState(State.CREATED);
+ htmltext = "34055-01.htm";
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if ((qs != null) && (qs.getCond() > 1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
+ {
+ switch (npc.getId())
+ {
+ case KERBEROS_LAGER:
+ case KERBEROS_FORT:
+ case KERBEROS_NERO:
+ case FURY_SYLPH_BARRENA:
+ case FURY_SYLPH_TEMPTRESS:
+ case FURY_SYLPH_PURKA:
+ case FURY_KERBEROS_LEGER:
+ case FURY_KERBEROS_NERO:
+ case KERBEROS_LAGER_N:
+ case KERBEROS_FORT_N:
+ case KERBEROS_NERO_N:
+ case FURY_SYLPH_BARRENA_N:
+ case FURY_SYLPH_TEMPTRESS_N:
+ case FURY_SYLPH_PURKA_N:
+ case FURY_KERBEROS_LEGER_N:
+ case FURY_KERBEROS_NERO_N:
+ {
+ if (getRandom(100) < 50)
+ {
+ final Npc mob = addSpawn(ENERGY_OF_WIND, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ else if (getRandom(100) < 25)
+ {
+ final Npc mob = addSpawn(EL_FERA, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ break;
+ }
+ case ENERGY_OF_WIND:
+ {
+ if (getRandom(100) < 50)
+ {
+ final Npc mob = addSpawn(EL_FLOATO, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ break;
+ }
+ case EL_FERA:
+ case EL_FLOATO:
+ {
+ switch (qs.getCond())
+ {
+ case 2:
+ {
+ if (giveItemRandomly(killer, npc, MEMORIES_OF_THE_WIND, 1, 12, 0.5, true))
+ {
+ qs.setCond(4, true);
+ }
+ break;
+ }
+ case 3:
+ {
+ if (giveItemRandomly(killer, npc, MEMORIES_OF_THE_WIND, 1, 24, 0.5, true))
+ {
+ qs.setCond(5, true);
+ }
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+}
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java
index d512e490d8..cd4ef8af11 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java
@@ -206,6 +206,7 @@ import quests.Q00907_DragonTrophyValakas.Q00907_DragonTrophyValakas;
import quests.Q00923_ShinedustExtraction.Q00923_ShinedustExtraction;
import quests.Q00926_30DaySearchOperation.Q00926_30DaySearchOperation;
import quests.Q00928_100DaySubjugationOperation.Q00928_100DaySubjugationOperation;
+import quests.Q00931_MemoriesOfTheWind.Q00931_MemoriesOfTheWind;
import quests.Q00937_ToReviveTheFishingGuild.Q00937_ToReviveTheFishingGuild;
import quests.Q10273_GoodDayToFly.Q10273_GoodDayToFly;
import quests.Q10274_CollectingInTheAir.Q10274_CollectingInTheAir;
@@ -500,7 +501,6 @@ import quests.not_done.Q00914_RedLibraRequestLv5;
import quests.not_done.Q00924_GiantOfTheRestorationRoom;
import quests.not_done.Q00929_SeekerRescue;
import quests.not_done.Q00930_DisparagingThePhantoms;
-import quests.not_done.Q00931_MemoriesOfTheWind;
import quests.not_done.Q00932_SayhasEnergy;
import quests.not_done.Q00938_TheFishermansOtherHobby;
import quests.not_done.Q10298_WastelandQueen;
@@ -763,7 +763,7 @@ public class QuestMasterHandler
Q00928_100DaySubjugationOperation.class,
Q00929_SeekerRescue.class, // TODO: Not done.
Q00930_DisparagingThePhantoms.class, // TODO: Not done.
- Q00931_MemoriesOfTheWind.class, // TODO: Not done.
+ Q00931_MemoriesOfTheWind.class,
Q00932_SayhasEnergy.class, // TODO: Not done.
Q00937_ToReviveTheFishingGuild.class,
Q00938_TheFishermansOtherHobby.class, // TODO: Not done.
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.java
deleted file mode 100644
index 9b840465bd..0000000000
--- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.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 Q00931_MemoriesOfTheWind extends Quest
-{
- private static final int START_NPC = 34055;
-
- public Q00931_MemoriesOfTheWind()
- {
- super(931);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt
index ea895222ce..4d6c5f06c5 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt
@@ -112,7 +112,6 @@
925 Hunter Guild Request - Garden of Spirits
929 Seeker Rescue
930 Disparaging the Phantoms
-931 Memories of the Wind
932 Sayha's Energy
938 The Fisherman's Other Hobby
940 Hunter Guild Request - Atelia Fortress
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm
new file mode 100644
index 0000000000..8198c3e20a
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm
@@ -0,0 +1,5 @@
+Master Cyphona:
+I don't think you'll be able to complete this. You seem passionate, but you don't have enough experience.
+Please come back when you've become stronger.
+(Only characters above Lv. 102.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm
new file mode 100644
index 0000000000..44a426c8fa
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Ah, adventurer! There you are again. How about helping us some more? if you do, you can deepen the mutual trust with us and Ferin.
+What do you say? if you don't remember what to do, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm
new file mode 100644
index 0000000000..26b92013fb
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Ah, adventurer! There you are again. How about helping us some more?
+What do you say? If you don't remember what the mission was, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm
new file mode 100644
index 0000000000..ef15f51390
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Adventurer! Good to see you. Since you've helped us so much already, how about helping us some more?
+What do you say? If you don't remember what the mission was, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm
new file mode 100644
index 0000000000..18f6f1dfa7
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm
@@ -0,0 +1,5 @@
+Master Cyphona:
+I've been waiting for you, adventurer. Well since you are here now, will you listen to me? I know I can trust you, but if you complete this mission, we'll become better allies and your pockets will get heavier. What do you say? Or do you need me to explain the mission again?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm
new file mode 100644
index 0000000000..0ebd1190c2
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm
@@ -0,0 +1,4 @@
+Master Cyphona:
+We've begun an investigation in the Garden of Spirits starting from here. However, we are being threatened by the spirits there, so something must be done.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm
new file mode 100644
index 0000000000..d79f213654
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+We know of a way to defeat those spirits, at least temporarily. This way, we'll be able to put the spirits at rest, even if it's just for a little while.
+Of course, we will give you a reward for your help. And there is one more thing. While you are helping us, you'll build trust with us. The more we trust you, the more rewards we will give you, and there are some secret missions that we only give to those we trust.
+That's about it.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm
new file mode 100644
index 0000000000..f223236452
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm
@@ -0,0 +1,7 @@
+Master Cyphona:
+Good. Let me tell you what to do. Just choose the mission that you are capable of doing.
+Basic Mission - Collect 12 Mutated Spirit's Souls.
+Intermediate Mission - Collect 24 Mutated Spirit's Souls.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html
new file mode 100644
index 0000000000..0574084c95
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+This isn't the first time we've met? You've completed a mission before? I see... Well, I don't really have a good memory.
+If you have completed a mission before, then that means you must have a Mark of Trust. What? You don't have one?
+Then you are either a liar, or you haven't been here in a long time. My trust is something you must continously try to maintain. Will you listen to me?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm
new file mode 100644
index 0000000000..33ac489658
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm
@@ -0,0 +1,7 @@
+Master Cyphona:
+Good. Let me tell you what to do. Just choose the mission that you are capable of doing.
+Basic Mission - Collect 12 Mutated Spirit's Souls.
+Intermediate Mission - Collect 24 Mutated Spirit's Souls.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm
new file mode 100644
index 0000000000..9041babe57
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm
@@ -0,0 +1,3 @@
+Master Cyphona:
+Alright. Here's the mission. Hunt the Kerberos Leger, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and the Fury Kerberos Nero, and collect their Mutated Spirit's Souls as proof. You can get rewards only if you bring at least 200. Of course, you'll get more rewards if you bring more.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html
new file mode 100644
index 0000000000..9ab05d1b14
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Your Unworldly Visitors Faction Level Must be 3 or above may undertake this mission.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html
new file mode 100644
index 0000000000..e21b75e6da
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+You have chosen the basic mission to collect 200 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.
+Are you sure you want to proceed with this mission?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html
new file mode 100644
index 0000000000..5c54ac8312
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+You have chosen the intermediate mission to collect 400 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.
+Are you sure you want to proceed with this mission?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html
new file mode 100644
index 0000000000..0d646ed72d
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Good. Left me explain the details. Go to the Garden of Spirits, defeat the Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero, and put them to rest.
+As evidence, please bring back 12 Mutated Spirit's Souls. It should be manageable.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html
new file mode 100644
index 0000000000..4968b9e998
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Good. Left me explain the details. Go to the Garden of Spirits, defeat the Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero, and put them to rest.
+As evidence, please bring back 24 Mutated Spirit's Souls. It should be manageable.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html
new file mode 100644
index 0000000000..9d36d9e609
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html
@@ -0,0 +1,5 @@
+Master Cyphona:
+You want to finish already? Well, I can still give you a reward... But it won't be something good. Are you sure?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html
new file mode 100644
index 0000000000..7d75be2d18
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Go to the Garden of Spirits and defeat all type monsters until you collect 12 Mutated Spirit's Souls.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html
new file mode 100644
index 0000000000..9f18ae83b6
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Go to the Garden of Spirits and defeat all type monsters until you collect 24 Mutated Spirit's Souls.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html
new file mode 100644
index 0000000000..0b44c611f3
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+Toy have collected all of the Mutated Spirit's Souls. You have completed the mission successfully.
+I would like to congratulate you on completing the mission. Here's your reward. If you have a Faction Amity Token, I can give You more rewards.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html
new file mode 100644
index 0000000000..41c5aec17d
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+You completed the mission!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html
new file mode 100644
index 0000000000..8907184546
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+You completed the mission!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html
new file mode 100644
index 0000000000..ec3450a5fc
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Here is your reward. This will also help to improve the trust between you and us at the Unworldly Visitors.
+As long as you don't forget us, that is. We thank you for your hard work.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html
new file mode 100644
index 0000000000..2bf94feff3
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward. We'll be able to maintain our trust. As long as you don't forget about us, that is.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html
new file mode 100644
index 0000000000..c2f962f4f2
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward, I'll remember how you've helped us all those times. Here's a higher level Mark of Trust. Thank you for all of your help.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html
new file mode 100644
index 0000000000..aacd7919d3
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward for helping us. Although you didn't get all the Marks, I still remember how you helped us. I have no doubt the trust between us has deepened even more.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java
new file mode 100644
index 0000000000..913cc53c6d
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java
@@ -0,0 +1,337 @@
+/*
+ * 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.Q00931_MemoriesOfTheWind;
+
+import org.l2jmobius.Config;
+import org.l2jmobius.gameserver.enums.Faction;
+import org.l2jmobius.gameserver.enums.QuestType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10831_UnbelievableSight.Q10831_UnbelievableSight;
+
+/**
+ * Memories of the Wind (931)
+ * @URL: https://l2wiki.com/Memories_of_the_Wind
+ * @author Dmitri
+ */
+public class Q00931_MemoriesOfTheWind extends Quest
+{
+ // NPC
+ private static final int CYPHONA = 34055;
+ // Monsters
+ private static final int EL_FERA = 23797;
+ private static final int EL_FLOATO = 23559;
+ private static final int ENERGY_OF_WIND = 19647;
+ private static final int KERBEROS_LAGER_N = 23550; // (night)
+ private static final int KERBEROS_LAGER = 23541;
+ private static final int KERBEROS_FORT_N = 23551; // (night)
+ private static final int KERBEROS_FORT = 23542;
+ private static final int KERBEROS_NERO_N = 23552; // (night)
+ private static final int KERBEROS_NERO = 23543;
+ private static final int FURY_SYLPH_BARRENA_N = 23553; // (night)
+ private static final int FURY_SYLPH_BARRENA = 23544;
+ private static final int FURY_SYLPH_TEMPTRESS_N = 23555; // (night)
+ private static final int FURY_SYLPH_TEMPTRESS = 23546;
+ private static final int FURY_SYLPH_PURKA_N = 23556; // (night)
+ private static final int FURY_SYLPH_PURKA = 23547;
+ private static final int FURY_KERBEROS_LEGER_N = 23557; // (night)
+ private static final int FURY_KERBEROS_LEGER = 23545;
+ private static final int FURY_KERBEROS_NERO_N = 23558; // (night)
+ private static final int FURY_KERBEROS_NERO = 23549;
+ // Items
+ private static final int MEMORIES_OF_THE_WIND = 47188;
+ private static final int UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX = 47181;
+ private static final int UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX = 47182;
+ private static final int UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX = 47183;
+ // Misc
+ private static final int MIN_LEVEL = 102;
+
+ public Q00931_MemoriesOfTheWind()
+ {
+ super(931);
+ addStartNpc(CYPHONA);
+ addTalkId(CYPHONA);
+ addKillId(EL_FERA, EL_FLOATO);
+ addKillId(ENERGY_OF_WIND, KERBEROS_LAGER, KERBEROS_FORT, KERBEROS_NERO, FURY_SYLPH_BARRENA, FURY_SYLPH_TEMPTRESS, FURY_SYLPH_PURKA, FURY_KERBEROS_LEGER, FURY_KERBEROS_NERO);
+ registerQuestItems(MEMORIES_OF_THE_WIND);
+ addCondMinLevel(MIN_LEVEL, "34055-00.htm");
+ addCondCompletedQuest(Q10831_UnbelievableSight.class.getSimpleName(), "34055-00.htm");
+ addFactionLevel(Faction.UNWORLDLY_VISITORS, 2, "34055-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 "34055-02.htm":
+ case "34055-03.htm":
+ case "34055-04.htm":
+ case "34055-04a.htm":
+ case "34055-06.html":
+ case "34055-06a.html":
+ {
+ htmltext = event;
+ break;
+ }
+ case "select_mission":
+ {
+ qs.startQuest();
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case "return":
+ {
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case "34055-07.html":
+ {
+ qs.setCond(2, true);
+ htmltext = event;
+ break;
+ }
+ case "34055-07a.html":
+ {
+ qs.setCond(3, true);
+ htmltext = event;
+ break;
+ }
+ case "34055-10.html":
+ {
+ final int chance = getRandom(100);
+ switch (qs.getCond())
+ {
+ case 4:
+ {
+ if ((getQuestItemsCount(player, MEMORIES_OF_THE_WIND) == 12) && (player.getLevel() >= MIN_LEVEL))
+ {
+ if (chance < 2)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX, 1);
+ }
+ else if (chance < 20)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX, 1);
+ }
+ else if (chance < 100)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX, 1);
+ }
+ addExpAndSp(player, 22_221_427_950L, 22_221_360);
+ addFactionPoints(player, Faction.UNWORLDLY_VISITORS, 100);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ break;
+ }
+ case 5:
+ {
+ if ((getQuestItemsCount(player, MEMORIES_OF_THE_WIND) == 24) && (player.getLevel() >= MIN_LEVEL))
+ {
+ if (chance < 2)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX, 1);
+ }
+ else if (chance < 20)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX, 1);
+ }
+ else if (chance < 100)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX, 1);
+ }
+ addExpAndSp(player, 44_442_855_900L, 44_442_720);
+ addFactionPoints(player, Faction.UNWORLDLY_VISITORS, 200);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ break;
+ }
+ }
+ 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:
+ {
+ htmltext = "34055-01.htm";
+ }
+ case State.STARTED:
+ {
+ switch (qs.getCond())
+ {
+ case 1:
+ {
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case 2:
+ {
+ htmltext = "34055-08.html";
+ break;
+ }
+ case 3:
+ {
+ htmltext = "34055-08a.html";
+ break;
+ }
+ case 4:
+ case 5:
+ {
+ htmltext = "34055-09.html";
+ break;
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (!qs.isNowAvailable())
+ {
+ htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
+ }
+ else
+ {
+ qs.setState(State.CREATED);
+ htmltext = "34055-01.htm";
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if ((qs != null) && (qs.getCond() > 1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
+ {
+ switch (npc.getId())
+ {
+ case KERBEROS_LAGER:
+ case KERBEROS_FORT:
+ case KERBEROS_NERO:
+ case FURY_SYLPH_BARRENA:
+ case FURY_SYLPH_TEMPTRESS:
+ case FURY_SYLPH_PURKA:
+ case FURY_KERBEROS_LEGER:
+ case FURY_KERBEROS_NERO:
+ case KERBEROS_LAGER_N:
+ case KERBEROS_FORT_N:
+ case KERBEROS_NERO_N:
+ case FURY_SYLPH_BARRENA_N:
+ case FURY_SYLPH_TEMPTRESS_N:
+ case FURY_SYLPH_PURKA_N:
+ case FURY_KERBEROS_LEGER_N:
+ case FURY_KERBEROS_NERO_N:
+ {
+ if (getRandom(100) < 50)
+ {
+ final Npc mob = addSpawn(ENERGY_OF_WIND, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ else if (getRandom(100) < 25)
+ {
+ final Npc mob = addSpawn(EL_FERA, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ break;
+ }
+ case ENERGY_OF_WIND:
+ {
+ if (getRandom(100) < 50)
+ {
+ final Npc mob = addSpawn(EL_FLOATO, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ break;
+ }
+ case EL_FERA:
+ case EL_FLOATO:
+ {
+ switch (qs.getCond())
+ {
+ case 2:
+ {
+ if (giveItemRandomly(killer, npc, MEMORIES_OF_THE_WIND, 1, 12, 0.5, true))
+ {
+ qs.setCond(4, true);
+ }
+ break;
+ }
+ case 3:
+ {
+ if (giveItemRandomly(killer, npc, MEMORIES_OF_THE_WIND, 1, 24, 0.5, true))
+ {
+ qs.setCond(5, true);
+ }
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+}
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java
index 53c64c0ac6..9583d93e78 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java
@@ -205,6 +205,7 @@ import quests.Q00906_TheCallOfValakas.Q00906_TheCallOfValakas;
import quests.Q00923_ShinedustExtraction.Q00923_ShinedustExtraction;
import quests.Q00926_30DaySearchOperation.Q00926_30DaySearchOperation;
import quests.Q00928_100DaySubjugationOperation.Q00928_100DaySubjugationOperation;
+import quests.Q00931_MemoriesOfTheWind.Q00931_MemoriesOfTheWind;
import quests.Q00937_ToReviveTheFishingGuild.Q00937_ToReviveTheFishingGuild;
import quests.Q10273_GoodDayToFly.Q10273_GoodDayToFly;
import quests.Q10274_CollectingInTheAir.Q10274_CollectingInTheAir;
@@ -501,7 +502,6 @@ import quests.not_done.Q00846_BuildingUpStrength;
import quests.not_done.Q00924_GiantOfTheRestorationRoom;
import quests.not_done.Q00929_SeekerRescue;
import quests.not_done.Q00930_DisparagingThePhantoms;
-import quests.not_done.Q00931_MemoriesOfTheWind;
import quests.not_done.Q00932_SayhasEnergy;
import quests.not_done.Q00985_AdventureGuildsSpecialRequestLv1;
import quests.not_done.Q00986_AdventureGuildsSpecialRequestLv2;
@@ -784,7 +784,7 @@ public class QuestMasterHandler
Q00928_100DaySubjugationOperation.class,
Q00929_SeekerRescue.class, // TODO: Not done.
Q00930_DisparagingThePhantoms.class, // TODO: Not done.
- Q00931_MemoriesOfTheWind.class, // TODO: Not done.
+ Q00931_MemoriesOfTheWind.class,
Q00932_SayhasEnergy.class, // TODO: Not done.
Q00937_ToReviveTheFishingGuild.class,
Q00985_AdventureGuildsSpecialRequestLv1.class, // TODO: Not done.
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.java
deleted file mode 100644
index 9b840465bd..0000000000
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.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 Q00931_MemoriesOfTheWind extends Quest
-{
- private static final int START_NPC = 34055;
-
- public Q00931_MemoriesOfTheWind()
- {
- super(931);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt
index 1f07466f18..4f6db4deb4 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
@@ -132,7 +132,6 @@
925 Hunter Guild Request - Garden of Spirits
929 Seeker Rescue
930 Disparaging the Phantoms
-931 Memories of the Wind
932 Sayha's Energy
938 The Fisherman's Other Hobby
940 Hunter Guild Request - Atelia Fortress
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm
new file mode 100644
index 0000000000..8198c3e20a
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm
@@ -0,0 +1,5 @@
+Master Cyphona:
+I don't think you'll be able to complete this. You seem passionate, but you don't have enough experience.
+Please come back when you've become stronger.
+(Only characters above Lv. 102.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm
new file mode 100644
index 0000000000..44a426c8fa
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Ah, adventurer! There you are again. How about helping us some more? if you do, you can deepen the mutual trust with us and Ferin.
+What do you say? if you don't remember what to do, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm
new file mode 100644
index 0000000000..26b92013fb
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Ah, adventurer! There you are again. How about helping us some more?
+What do you say? If you don't remember what the mission was, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm
new file mode 100644
index 0000000000..ef15f51390
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Adventurer! Good to see you. Since you've helped us so much already, how about helping us some more?
+What do you say? If you don't remember what the mission was, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm
new file mode 100644
index 0000000000..18f6f1dfa7
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm
@@ -0,0 +1,5 @@
+Master Cyphona:
+I've been waiting for you, adventurer. Well since you are here now, will you listen to me? I know I can trust you, but if you complete this mission, we'll become better allies and your pockets will get heavier. What do you say? Or do you need me to explain the mission again?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm
new file mode 100644
index 0000000000..0ebd1190c2
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm
@@ -0,0 +1,4 @@
+Master Cyphona:
+We've begun an investigation in the Garden of Spirits starting from here. However, we are being threatened by the spirits there, so something must be done.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm
new file mode 100644
index 0000000000..d79f213654
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+We know of a way to defeat those spirits, at least temporarily. This way, we'll be able to put the spirits at rest, even if it's just for a little while.
+Of course, we will give you a reward for your help. And there is one more thing. While you are helping us, you'll build trust with us. The more we trust you, the more rewards we will give you, and there are some secret missions that we only give to those we trust.
+That's about it.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm
new file mode 100644
index 0000000000..f223236452
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm
@@ -0,0 +1,7 @@
+Master Cyphona:
+Good. Let me tell you what to do. Just choose the mission that you are capable of doing.
+Basic Mission - Collect 12 Mutated Spirit's Souls.
+Intermediate Mission - Collect 24 Mutated Spirit's Souls.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html
new file mode 100644
index 0000000000..0574084c95
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+This isn't the first time we've met? You've completed a mission before? I see... Well, I don't really have a good memory.
+If you have completed a mission before, then that means you must have a Mark of Trust. What? You don't have one?
+Then you are either a liar, or you haven't been here in a long time. My trust is something you must continously try to maintain. Will you listen to me?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm
new file mode 100644
index 0000000000..33ac489658
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm
@@ -0,0 +1,7 @@
+Master Cyphona:
+Good. Let me tell you what to do. Just choose the mission that you are capable of doing.
+Basic Mission - Collect 12 Mutated Spirit's Souls.
+Intermediate Mission - Collect 24 Mutated Spirit's Souls.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm
new file mode 100644
index 0000000000..9041babe57
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm
@@ -0,0 +1,3 @@
+Master Cyphona:
+Alright. Here's the mission. Hunt the Kerberos Leger, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and the Fury Kerberos Nero, and collect their Mutated Spirit's Souls as proof. You can get rewards only if you bring at least 200. Of course, you'll get more rewards if you bring more.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html
new file mode 100644
index 0000000000..9ab05d1b14
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Your Unworldly Visitors Faction Level Must be 3 or above may undertake this mission.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html
new file mode 100644
index 0000000000..e21b75e6da
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+You have chosen the basic mission to collect 200 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.
+Are you sure you want to proceed with this mission?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html
new file mode 100644
index 0000000000..5c54ac8312
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+You have chosen the intermediate mission to collect 400 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.
+Are you sure you want to proceed with this mission?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html
new file mode 100644
index 0000000000..0d646ed72d
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Good. Left me explain the details. Go to the Garden of Spirits, defeat the Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero, and put them to rest.
+As evidence, please bring back 12 Mutated Spirit's Souls. It should be manageable.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html
new file mode 100644
index 0000000000..4968b9e998
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Good. Left me explain the details. Go to the Garden of Spirits, defeat the Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero, and put them to rest.
+As evidence, please bring back 24 Mutated Spirit's Souls. It should be manageable.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html
new file mode 100644
index 0000000000..9d36d9e609
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html
@@ -0,0 +1,5 @@
+Master Cyphona:
+You want to finish already? Well, I can still give you a reward... But it won't be something good. Are you sure?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html
new file mode 100644
index 0000000000..7d75be2d18
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Go to the Garden of Spirits and defeat all type monsters until you collect 12 Mutated Spirit's Souls.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html
new file mode 100644
index 0000000000..9f18ae83b6
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Go to the Garden of Spirits and defeat all type monsters until you collect 24 Mutated Spirit's Souls.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html
new file mode 100644
index 0000000000..0b44c611f3
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+Toy have collected all of the Mutated Spirit's Souls. You have completed the mission successfully.
+I would like to congratulate you on completing the mission. Here's your reward. If you have a Faction Amity Token, I can give You more rewards.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html
new file mode 100644
index 0000000000..41c5aec17d
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+You completed the mission!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html
new file mode 100644
index 0000000000..8907184546
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+You completed the mission!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html
new file mode 100644
index 0000000000..ec3450a5fc
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Here is your reward. This will also help to improve the trust between you and us at the Unworldly Visitors.
+As long as you don't forget us, that is. We thank you for your hard work.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html
new file mode 100644
index 0000000000..2bf94feff3
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward. We'll be able to maintain our trust. As long as you don't forget about us, that is.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html
new file mode 100644
index 0000000000..c2f962f4f2
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward, I'll remember how you've helped us all those times. Here's a higher level Mark of Trust. Thank you for all of your help.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html
new file mode 100644
index 0000000000..aacd7919d3
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward for helping us. Although you didn't get all the Marks, I still remember how you helped us. I have no doubt the trust between us has deepened even more.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java
new file mode 100644
index 0000000000..913cc53c6d
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java
@@ -0,0 +1,337 @@
+/*
+ * 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.Q00931_MemoriesOfTheWind;
+
+import org.l2jmobius.Config;
+import org.l2jmobius.gameserver.enums.Faction;
+import org.l2jmobius.gameserver.enums.QuestType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10831_UnbelievableSight.Q10831_UnbelievableSight;
+
+/**
+ * Memories of the Wind (931)
+ * @URL: https://l2wiki.com/Memories_of_the_Wind
+ * @author Dmitri
+ */
+public class Q00931_MemoriesOfTheWind extends Quest
+{
+ // NPC
+ private static final int CYPHONA = 34055;
+ // Monsters
+ private static final int EL_FERA = 23797;
+ private static final int EL_FLOATO = 23559;
+ private static final int ENERGY_OF_WIND = 19647;
+ private static final int KERBEROS_LAGER_N = 23550; // (night)
+ private static final int KERBEROS_LAGER = 23541;
+ private static final int KERBEROS_FORT_N = 23551; // (night)
+ private static final int KERBEROS_FORT = 23542;
+ private static final int KERBEROS_NERO_N = 23552; // (night)
+ private static final int KERBEROS_NERO = 23543;
+ private static final int FURY_SYLPH_BARRENA_N = 23553; // (night)
+ private static final int FURY_SYLPH_BARRENA = 23544;
+ private static final int FURY_SYLPH_TEMPTRESS_N = 23555; // (night)
+ private static final int FURY_SYLPH_TEMPTRESS = 23546;
+ private static final int FURY_SYLPH_PURKA_N = 23556; // (night)
+ private static final int FURY_SYLPH_PURKA = 23547;
+ private static final int FURY_KERBEROS_LEGER_N = 23557; // (night)
+ private static final int FURY_KERBEROS_LEGER = 23545;
+ private static final int FURY_KERBEROS_NERO_N = 23558; // (night)
+ private static final int FURY_KERBEROS_NERO = 23549;
+ // Items
+ private static final int MEMORIES_OF_THE_WIND = 47188;
+ private static final int UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX = 47181;
+ private static final int UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX = 47182;
+ private static final int UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX = 47183;
+ // Misc
+ private static final int MIN_LEVEL = 102;
+
+ public Q00931_MemoriesOfTheWind()
+ {
+ super(931);
+ addStartNpc(CYPHONA);
+ addTalkId(CYPHONA);
+ addKillId(EL_FERA, EL_FLOATO);
+ addKillId(ENERGY_OF_WIND, KERBEROS_LAGER, KERBEROS_FORT, KERBEROS_NERO, FURY_SYLPH_BARRENA, FURY_SYLPH_TEMPTRESS, FURY_SYLPH_PURKA, FURY_KERBEROS_LEGER, FURY_KERBEROS_NERO);
+ registerQuestItems(MEMORIES_OF_THE_WIND);
+ addCondMinLevel(MIN_LEVEL, "34055-00.htm");
+ addCondCompletedQuest(Q10831_UnbelievableSight.class.getSimpleName(), "34055-00.htm");
+ addFactionLevel(Faction.UNWORLDLY_VISITORS, 2, "34055-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 "34055-02.htm":
+ case "34055-03.htm":
+ case "34055-04.htm":
+ case "34055-04a.htm":
+ case "34055-06.html":
+ case "34055-06a.html":
+ {
+ htmltext = event;
+ break;
+ }
+ case "select_mission":
+ {
+ qs.startQuest();
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case "return":
+ {
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case "34055-07.html":
+ {
+ qs.setCond(2, true);
+ htmltext = event;
+ break;
+ }
+ case "34055-07a.html":
+ {
+ qs.setCond(3, true);
+ htmltext = event;
+ break;
+ }
+ case "34055-10.html":
+ {
+ final int chance = getRandom(100);
+ switch (qs.getCond())
+ {
+ case 4:
+ {
+ if ((getQuestItemsCount(player, MEMORIES_OF_THE_WIND) == 12) && (player.getLevel() >= MIN_LEVEL))
+ {
+ if (chance < 2)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX, 1);
+ }
+ else if (chance < 20)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX, 1);
+ }
+ else if (chance < 100)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX, 1);
+ }
+ addExpAndSp(player, 22_221_427_950L, 22_221_360);
+ addFactionPoints(player, Faction.UNWORLDLY_VISITORS, 100);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ break;
+ }
+ case 5:
+ {
+ if ((getQuestItemsCount(player, MEMORIES_OF_THE_WIND) == 24) && (player.getLevel() >= MIN_LEVEL))
+ {
+ if (chance < 2)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX, 1);
+ }
+ else if (chance < 20)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX, 1);
+ }
+ else if (chance < 100)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX, 1);
+ }
+ addExpAndSp(player, 44_442_855_900L, 44_442_720);
+ addFactionPoints(player, Faction.UNWORLDLY_VISITORS, 200);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ break;
+ }
+ }
+ 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:
+ {
+ htmltext = "34055-01.htm";
+ }
+ case State.STARTED:
+ {
+ switch (qs.getCond())
+ {
+ case 1:
+ {
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case 2:
+ {
+ htmltext = "34055-08.html";
+ break;
+ }
+ case 3:
+ {
+ htmltext = "34055-08a.html";
+ break;
+ }
+ case 4:
+ case 5:
+ {
+ htmltext = "34055-09.html";
+ break;
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (!qs.isNowAvailable())
+ {
+ htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
+ }
+ else
+ {
+ qs.setState(State.CREATED);
+ htmltext = "34055-01.htm";
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if ((qs != null) && (qs.getCond() > 1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
+ {
+ switch (npc.getId())
+ {
+ case KERBEROS_LAGER:
+ case KERBEROS_FORT:
+ case KERBEROS_NERO:
+ case FURY_SYLPH_BARRENA:
+ case FURY_SYLPH_TEMPTRESS:
+ case FURY_SYLPH_PURKA:
+ case FURY_KERBEROS_LEGER:
+ case FURY_KERBEROS_NERO:
+ case KERBEROS_LAGER_N:
+ case KERBEROS_FORT_N:
+ case KERBEROS_NERO_N:
+ case FURY_SYLPH_BARRENA_N:
+ case FURY_SYLPH_TEMPTRESS_N:
+ case FURY_SYLPH_PURKA_N:
+ case FURY_KERBEROS_LEGER_N:
+ case FURY_KERBEROS_NERO_N:
+ {
+ if (getRandom(100) < 50)
+ {
+ final Npc mob = addSpawn(ENERGY_OF_WIND, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ else if (getRandom(100) < 25)
+ {
+ final Npc mob = addSpawn(EL_FERA, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ break;
+ }
+ case ENERGY_OF_WIND:
+ {
+ if (getRandom(100) < 50)
+ {
+ final Npc mob = addSpawn(EL_FLOATO, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ break;
+ }
+ case EL_FERA:
+ case EL_FLOATO:
+ {
+ switch (qs.getCond())
+ {
+ case 2:
+ {
+ if (giveItemRandomly(killer, npc, MEMORIES_OF_THE_WIND, 1, 12, 0.5, true))
+ {
+ qs.setCond(4, true);
+ }
+ break;
+ }
+ case 3:
+ {
+ if (giveItemRandomly(killer, npc, MEMORIES_OF_THE_WIND, 1, 24, 0.5, true))
+ {
+ qs.setCond(5, true);
+ }
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+}
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/QuestMasterHandler.java
index 3b5c7594cb..884ad28a6b 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
@@ -212,6 +212,7 @@ import quests.Q00906_TheCallOfValakas.Q00906_TheCallOfValakas;
import quests.Q00923_ShinedustExtraction.Q00923_ShinedustExtraction;
import quests.Q00926_30DaySearchOperation.Q00926_30DaySearchOperation;
import quests.Q00928_100DaySubjugationOperation.Q00928_100DaySubjugationOperation;
+import quests.Q00931_MemoriesOfTheWind.Q00931_MemoriesOfTheWind;
import quests.Q00937_ToReviveTheFishingGuild.Q00937_ToReviveTheFishingGuild;
import quests.Q10273_GoodDayToFly.Q10273_GoodDayToFly;
import quests.Q10274_CollectingInTheAir.Q10274_CollectingInTheAir;
@@ -733,7 +734,7 @@ public class QuestMasterHandler
Q00928_100DaySubjugationOperation.class,
Q00929_SeekerRescue.class, // TODO: Not done.
Q00930_DisparagingThePhantoms.class, // TODO: Not done.
- Q00931_MemoriesOfTheWind.class, // TODO: Not done.
+ Q00931_MemoriesOfTheWind.class,
Q00932_SayhasEnergy.class, // TODO: Not done.
Q00937_ToReviveTheFishingGuild.class,
Q00985_AdventureGuildsSpecialRequestLv1.class, // TODO: Not done.
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.java
deleted file mode 100644
index 9b840465bd..0000000000
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.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 Q00931_MemoriesOfTheWind extends Quest
-{
- private static final int START_NPC = 34055;
-
- public Q00931_MemoriesOfTheWind()
- {
- super(931);
- 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 204e73af22..f30be50755 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
@@ -143,7 +143,6 @@
925 Hunter Guild Request - Garden of Spirits
929 Seeker Rescue
930 Disparaging the Phantoms
-931 Memories of the Wind
932 Sayha's Energy
938 The Fisherman's Other Hobby
940 Hunter Guild Request - Atelia Fortress
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm
new file mode 100644
index 0000000000..8198c3e20a
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm
@@ -0,0 +1,5 @@
+Master Cyphona:
+I don't think you'll be able to complete this. You seem passionate, but you don't have enough experience.
+Please come back when you've become stronger.
+(Only characters above Lv. 102.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm
new file mode 100644
index 0000000000..44a426c8fa
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Ah, adventurer! There you are again. How about helping us some more? if you do, you can deepen the mutual trust with us and Ferin.
+What do you say? if you don't remember what to do, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm
new file mode 100644
index 0000000000..26b92013fb
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Ah, adventurer! There you are again. How about helping us some more?
+What do you say? If you don't remember what the mission was, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm
new file mode 100644
index 0000000000..ef15f51390
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Adventurer! Good to see you. Since you've helped us so much already, how about helping us some more?
+What do you say? If you don't remember what the mission was, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm
new file mode 100644
index 0000000000..18f6f1dfa7
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm
@@ -0,0 +1,5 @@
+Master Cyphona:
+I've been waiting for you, adventurer. Well since you are here now, will you listen to me? I know I can trust you, but if you complete this mission, we'll become better allies and your pockets will get heavier. What do you say? Or do you need me to explain the mission again?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm
new file mode 100644
index 0000000000..0ebd1190c2
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm
@@ -0,0 +1,4 @@
+Master Cyphona:
+We've begun an investigation in the Garden of Spirits starting from here. However, we are being threatened by the spirits there, so something must be done.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm
new file mode 100644
index 0000000000..d79f213654
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+We know of a way to defeat those spirits, at least temporarily. This way, we'll be able to put the spirits at rest, even if it's just for a little while.
+Of course, we will give you a reward for your help. And there is one more thing. While you are helping us, you'll build trust with us. The more we trust you, the more rewards we will give you, and there are some secret missions that we only give to those we trust.
+That's about it.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm
new file mode 100644
index 0000000000..f223236452
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm
@@ -0,0 +1,7 @@
+Master Cyphona:
+Good. Let me tell you what to do. Just choose the mission that you are capable of doing.
+Basic Mission - Collect 12 Mutated Spirit's Souls.
+Intermediate Mission - Collect 24 Mutated Spirit's Souls.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html
new file mode 100644
index 0000000000..0574084c95
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+This isn't the first time we've met? You've completed a mission before? I see... Well, I don't really have a good memory.
+If you have completed a mission before, then that means you must have a Mark of Trust. What? You don't have one?
+Then you are either a liar, or you haven't been here in a long time. My trust is something you must continously try to maintain. Will you listen to me?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm
new file mode 100644
index 0000000000..33ac489658
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm
@@ -0,0 +1,7 @@
+Master Cyphona:
+Good. Let me tell you what to do. Just choose the mission that you are capable of doing.
+Basic Mission - Collect 12 Mutated Spirit's Souls.
+Intermediate Mission - Collect 24 Mutated Spirit's Souls.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm
new file mode 100644
index 0000000000..9041babe57
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm
@@ -0,0 +1,3 @@
+Master Cyphona:
+Alright. Here's the mission. Hunt the Kerberos Leger, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and the Fury Kerberos Nero, and collect their Mutated Spirit's Souls as proof. You can get rewards only if you bring at least 200. Of course, you'll get more rewards if you bring more.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html
new file mode 100644
index 0000000000..9ab05d1b14
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Your Unworldly Visitors Faction Level Must be 3 or above may undertake this mission.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html
new file mode 100644
index 0000000000..e21b75e6da
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+You have chosen the basic mission to collect 200 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.
+Are you sure you want to proceed with this mission?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html
new file mode 100644
index 0000000000..5c54ac8312
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+You have chosen the intermediate mission to collect 400 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.
+Are you sure you want to proceed with this mission?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html
new file mode 100644
index 0000000000..0d646ed72d
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Good. Left me explain the details. Go to the Garden of Spirits, defeat the Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero, and put them to rest.
+As evidence, please bring back 12 Mutated Spirit's Souls. It should be manageable.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html
new file mode 100644
index 0000000000..4968b9e998
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Good. Left me explain the details. Go to the Garden of Spirits, defeat the Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero, and put them to rest.
+As evidence, please bring back 24 Mutated Spirit's Souls. It should be manageable.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html
new file mode 100644
index 0000000000..9d36d9e609
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html
@@ -0,0 +1,5 @@
+Master Cyphona:
+You want to finish already? Well, I can still give you a reward... But it won't be something good. Are you sure?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html
new file mode 100644
index 0000000000..7d75be2d18
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Go to the Garden of Spirits and defeat all type monsters until you collect 12 Mutated Spirit's Souls.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html
new file mode 100644
index 0000000000..9f18ae83b6
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Go to the Garden of Spirits and defeat all type monsters until you collect 24 Mutated Spirit's Souls.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html
new file mode 100644
index 0000000000..0b44c611f3
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+Toy have collected all of the Mutated Spirit's Souls. You have completed the mission successfully.
+I would like to congratulate you on completing the mission. Here's your reward. If you have a Faction Amity Token, I can give You more rewards.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html
new file mode 100644
index 0000000000..41c5aec17d
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+You completed the mission!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html
new file mode 100644
index 0000000000..8907184546
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+You completed the mission!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html
new file mode 100644
index 0000000000..ec3450a5fc
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Here is your reward. This will also help to improve the trust between you and us at the Unworldly Visitors.
+As long as you don't forget us, that is. We thank you for your hard work.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html
new file mode 100644
index 0000000000..2bf94feff3
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward. We'll be able to maintain our trust. As long as you don't forget about us, that is.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html
new file mode 100644
index 0000000000..c2f962f4f2
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward, I'll remember how you've helped us all those times. Here's a higher level Mark of Trust. Thank you for all of your help.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html
new file mode 100644
index 0000000000..aacd7919d3
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward for helping us. Although you didn't get all the Marks, I still remember how you helped us. I have no doubt the trust between us has deepened even more.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java
new file mode 100644
index 0000000000..913cc53c6d
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java
@@ -0,0 +1,337 @@
+/*
+ * 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.Q00931_MemoriesOfTheWind;
+
+import org.l2jmobius.Config;
+import org.l2jmobius.gameserver.enums.Faction;
+import org.l2jmobius.gameserver.enums.QuestType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10831_UnbelievableSight.Q10831_UnbelievableSight;
+
+/**
+ * Memories of the Wind (931)
+ * @URL: https://l2wiki.com/Memories_of_the_Wind
+ * @author Dmitri
+ */
+public class Q00931_MemoriesOfTheWind extends Quest
+{
+ // NPC
+ private static final int CYPHONA = 34055;
+ // Monsters
+ private static final int EL_FERA = 23797;
+ private static final int EL_FLOATO = 23559;
+ private static final int ENERGY_OF_WIND = 19647;
+ private static final int KERBEROS_LAGER_N = 23550; // (night)
+ private static final int KERBEROS_LAGER = 23541;
+ private static final int KERBEROS_FORT_N = 23551; // (night)
+ private static final int KERBEROS_FORT = 23542;
+ private static final int KERBEROS_NERO_N = 23552; // (night)
+ private static final int KERBEROS_NERO = 23543;
+ private static final int FURY_SYLPH_BARRENA_N = 23553; // (night)
+ private static final int FURY_SYLPH_BARRENA = 23544;
+ private static final int FURY_SYLPH_TEMPTRESS_N = 23555; // (night)
+ private static final int FURY_SYLPH_TEMPTRESS = 23546;
+ private static final int FURY_SYLPH_PURKA_N = 23556; // (night)
+ private static final int FURY_SYLPH_PURKA = 23547;
+ private static final int FURY_KERBEROS_LEGER_N = 23557; // (night)
+ private static final int FURY_KERBEROS_LEGER = 23545;
+ private static final int FURY_KERBEROS_NERO_N = 23558; // (night)
+ private static final int FURY_KERBEROS_NERO = 23549;
+ // Items
+ private static final int MEMORIES_OF_THE_WIND = 47188;
+ private static final int UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX = 47181;
+ private static final int UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX = 47182;
+ private static final int UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX = 47183;
+ // Misc
+ private static final int MIN_LEVEL = 102;
+
+ public Q00931_MemoriesOfTheWind()
+ {
+ super(931);
+ addStartNpc(CYPHONA);
+ addTalkId(CYPHONA);
+ addKillId(EL_FERA, EL_FLOATO);
+ addKillId(ENERGY_OF_WIND, KERBEROS_LAGER, KERBEROS_FORT, KERBEROS_NERO, FURY_SYLPH_BARRENA, FURY_SYLPH_TEMPTRESS, FURY_SYLPH_PURKA, FURY_KERBEROS_LEGER, FURY_KERBEROS_NERO);
+ registerQuestItems(MEMORIES_OF_THE_WIND);
+ addCondMinLevel(MIN_LEVEL, "34055-00.htm");
+ addCondCompletedQuest(Q10831_UnbelievableSight.class.getSimpleName(), "34055-00.htm");
+ addFactionLevel(Faction.UNWORLDLY_VISITORS, 2, "34055-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 "34055-02.htm":
+ case "34055-03.htm":
+ case "34055-04.htm":
+ case "34055-04a.htm":
+ case "34055-06.html":
+ case "34055-06a.html":
+ {
+ htmltext = event;
+ break;
+ }
+ case "select_mission":
+ {
+ qs.startQuest();
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case "return":
+ {
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case "34055-07.html":
+ {
+ qs.setCond(2, true);
+ htmltext = event;
+ break;
+ }
+ case "34055-07a.html":
+ {
+ qs.setCond(3, true);
+ htmltext = event;
+ break;
+ }
+ case "34055-10.html":
+ {
+ final int chance = getRandom(100);
+ switch (qs.getCond())
+ {
+ case 4:
+ {
+ if ((getQuestItemsCount(player, MEMORIES_OF_THE_WIND) == 12) && (player.getLevel() >= MIN_LEVEL))
+ {
+ if (chance < 2)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX, 1);
+ }
+ else if (chance < 20)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX, 1);
+ }
+ else if (chance < 100)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX, 1);
+ }
+ addExpAndSp(player, 22_221_427_950L, 22_221_360);
+ addFactionPoints(player, Faction.UNWORLDLY_VISITORS, 100);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ break;
+ }
+ case 5:
+ {
+ if ((getQuestItemsCount(player, MEMORIES_OF_THE_WIND) == 24) && (player.getLevel() >= MIN_LEVEL))
+ {
+ if (chance < 2)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX, 1);
+ }
+ else if (chance < 20)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX, 1);
+ }
+ else if (chance < 100)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX, 1);
+ }
+ addExpAndSp(player, 44_442_855_900L, 44_442_720);
+ addFactionPoints(player, Faction.UNWORLDLY_VISITORS, 200);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ break;
+ }
+ }
+ 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:
+ {
+ htmltext = "34055-01.htm";
+ }
+ case State.STARTED:
+ {
+ switch (qs.getCond())
+ {
+ case 1:
+ {
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case 2:
+ {
+ htmltext = "34055-08.html";
+ break;
+ }
+ case 3:
+ {
+ htmltext = "34055-08a.html";
+ break;
+ }
+ case 4:
+ case 5:
+ {
+ htmltext = "34055-09.html";
+ break;
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (!qs.isNowAvailable())
+ {
+ htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
+ }
+ else
+ {
+ qs.setState(State.CREATED);
+ htmltext = "34055-01.htm";
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if ((qs != null) && (qs.getCond() > 1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
+ {
+ switch (npc.getId())
+ {
+ case KERBEROS_LAGER:
+ case KERBEROS_FORT:
+ case KERBEROS_NERO:
+ case FURY_SYLPH_BARRENA:
+ case FURY_SYLPH_TEMPTRESS:
+ case FURY_SYLPH_PURKA:
+ case FURY_KERBEROS_LEGER:
+ case FURY_KERBEROS_NERO:
+ case KERBEROS_LAGER_N:
+ case KERBEROS_FORT_N:
+ case KERBEROS_NERO_N:
+ case FURY_SYLPH_BARRENA_N:
+ case FURY_SYLPH_TEMPTRESS_N:
+ case FURY_SYLPH_PURKA_N:
+ case FURY_KERBEROS_LEGER_N:
+ case FURY_KERBEROS_NERO_N:
+ {
+ if (getRandom(100) < 50)
+ {
+ final Npc mob = addSpawn(ENERGY_OF_WIND, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ else if (getRandom(100) < 25)
+ {
+ final Npc mob = addSpawn(EL_FERA, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ break;
+ }
+ case ENERGY_OF_WIND:
+ {
+ if (getRandom(100) < 50)
+ {
+ final Npc mob = addSpawn(EL_FLOATO, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ break;
+ }
+ case EL_FERA:
+ case EL_FLOATO:
+ {
+ switch (qs.getCond())
+ {
+ case 2:
+ {
+ if (giveItemRandomly(killer, npc, MEMORIES_OF_THE_WIND, 1, 12, 0.5, true))
+ {
+ qs.setCond(4, true);
+ }
+ break;
+ }
+ case 3:
+ {
+ if (giveItemRandomly(killer, npc, MEMORIES_OF_THE_WIND, 1, 24, 0.5, true))
+ {
+ qs.setCond(5, true);
+ }
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+}
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java
index 1d1bbf8aa2..334e2c54c7 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
@@ -183,6 +183,7 @@ import quests.Q00906_TheCallOfValakas.Q00906_TheCallOfValakas;
import quests.Q00923_ShinedustExtraction.Q00923_ShinedustExtraction;
import quests.Q00926_30DaySearchOperation.Q00926_30DaySearchOperation;
import quests.Q00928_100DaySubjugationOperation.Q00928_100DaySubjugationOperation;
+import quests.Q00931_MemoriesOfTheWind.Q00931_MemoriesOfTheWind;
import quests.Q00937_ToReviveTheFishingGuild.Q00937_ToReviveTheFishingGuild;
import quests.Q10282_ToTheSeedOfAnnihilation.Q10282_ToTheSeedOfAnnihilation;
import quests.Q10283_RequestOfIceMerchant.Q10283_RequestOfIceMerchant;
@@ -662,7 +663,7 @@ public class QuestMasterHandler
Q00928_100DaySubjugationOperation.class,
Q00929_SeekerRescue.class, // TODO: Not done.
Q00930_DisparagingThePhantoms.class, // TODO: Not done.
- Q00931_MemoriesOfTheWind.class, // TODO: Not done.
+ Q00931_MemoriesOfTheWind.class,
Q00932_SayhasEnergy.class, // TODO: Not done.
Q00937_ToReviveTheFishingGuild.class,
Q00985_AdventureGuildsSpecialRequestLv1.class, // TODO: Not done.
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.java
deleted file mode 100644
index 9b840465bd..0000000000
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.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 Q00931_MemoriesOfTheWind extends Quest
-{
- private static final int START_NPC = 34055;
-
- public Q00931_MemoriesOfTheWind()
- {
- super(931);
- 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 b2f811205a..c4c0df9349 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
@@ -152,7 +152,6 @@
925 Hunter Guild Request - Garden of Spirits
929 Seeker Rescue
930 Disparaging the Phantoms
-931 Memories of the Wind
932 Sayha's Energy
938 The Fisherman's Other Hobby
940 Hunter Guild Request - Atelia Fortress
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm
new file mode 100644
index 0000000000..8198c3e20a
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm
@@ -0,0 +1,5 @@
+Master Cyphona:
+I don't think you'll be able to complete this. You seem passionate, but you don't have enough experience.
+Please come back when you've become stronger.
+(Only characters above Lv. 102.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm
new file mode 100644
index 0000000000..44a426c8fa
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Ah, adventurer! There you are again. How about helping us some more? if you do, you can deepen the mutual trust with us and Ferin.
+What do you say? if you don't remember what to do, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm
new file mode 100644
index 0000000000..26b92013fb
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Ah, adventurer! There you are again. How about helping us some more?
+What do you say? If you don't remember what the mission was, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm
new file mode 100644
index 0000000000..ef15f51390
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Adventurer! Good to see you. Since you've helped us so much already, how about helping us some more?
+What do you say? If you don't remember what the mission was, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm
new file mode 100644
index 0000000000..18f6f1dfa7
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm
@@ -0,0 +1,5 @@
+Master Cyphona:
+I've been waiting for you, adventurer. Well since you are here now, will you listen to me? I know I can trust you, but if you complete this mission, we'll become better allies and your pockets will get heavier. What do you say? Or do you need me to explain the mission again?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm
new file mode 100644
index 0000000000..0ebd1190c2
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm
@@ -0,0 +1,4 @@
+Master Cyphona:
+We've begun an investigation in the Garden of Spirits starting from here. However, we are being threatened by the spirits there, so something must be done.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm
new file mode 100644
index 0000000000..d79f213654
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+We know of a way to defeat those spirits, at least temporarily. This way, we'll be able to put the spirits at rest, even if it's just for a little while.
+Of course, we will give you a reward for your help. And there is one more thing. While you are helping us, you'll build trust with us. The more we trust you, the more rewards we will give you, and there are some secret missions that we only give to those we trust.
+That's about it.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm
new file mode 100644
index 0000000000..f223236452
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm
@@ -0,0 +1,7 @@
+Master Cyphona:
+Good. Let me tell you what to do. Just choose the mission that you are capable of doing.
+Basic Mission - Collect 12 Mutated Spirit's Souls.
+Intermediate Mission - Collect 24 Mutated Spirit's Souls.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html
new file mode 100644
index 0000000000..0574084c95
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+This isn't the first time we've met? You've completed a mission before? I see... Well, I don't really have a good memory.
+If you have completed a mission before, then that means you must have a Mark of Trust. What? You don't have one?
+Then you are either a liar, or you haven't been here in a long time. My trust is something you must continously try to maintain. Will you listen to me?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm
new file mode 100644
index 0000000000..33ac489658
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm
@@ -0,0 +1,7 @@
+Master Cyphona:
+Good. Let me tell you what to do. Just choose the mission that you are capable of doing.
+Basic Mission - Collect 12 Mutated Spirit's Souls.
+Intermediate Mission - Collect 24 Mutated Spirit's Souls.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm
new file mode 100644
index 0000000000..9041babe57
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm
@@ -0,0 +1,3 @@
+Master Cyphona:
+Alright. Here's the mission. Hunt the Kerberos Leger, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and the Fury Kerberos Nero, and collect their Mutated Spirit's Souls as proof. You can get rewards only if you bring at least 200. Of course, you'll get more rewards if you bring more.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html
new file mode 100644
index 0000000000..9ab05d1b14
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Your Unworldly Visitors Faction Level Must be 3 or above may undertake this mission.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html
new file mode 100644
index 0000000000..e21b75e6da
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+You have chosen the basic mission to collect 200 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.
+Are you sure you want to proceed with this mission?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html
new file mode 100644
index 0000000000..5c54ac8312
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+You have chosen the intermediate mission to collect 400 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.
+Are you sure you want to proceed with this mission?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html
new file mode 100644
index 0000000000..0d646ed72d
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Good. Left me explain the details. Go to the Garden of Spirits, defeat the Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero, and put them to rest.
+As evidence, please bring back 12 Mutated Spirit's Souls. It should be manageable.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html
new file mode 100644
index 0000000000..4968b9e998
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Good. Left me explain the details. Go to the Garden of Spirits, defeat the Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero, and put them to rest.
+As evidence, please bring back 24 Mutated Spirit's Souls. It should be manageable.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html
new file mode 100644
index 0000000000..9d36d9e609
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html
@@ -0,0 +1,5 @@
+Master Cyphona:
+You want to finish already? Well, I can still give you a reward... But it won't be something good. Are you sure?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html
new file mode 100644
index 0000000000..7d75be2d18
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Go to the Garden of Spirits and defeat all type monsters until you collect 12 Mutated Spirit's Souls.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html
new file mode 100644
index 0000000000..9f18ae83b6
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Go to the Garden of Spirits and defeat all type monsters until you collect 24 Mutated Spirit's Souls.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html
new file mode 100644
index 0000000000..0b44c611f3
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+Toy have collected all of the Mutated Spirit's Souls. You have completed the mission successfully.
+I would like to congratulate you on completing the mission. Here's your reward. If you have a Faction Amity Token, I can give You more rewards.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html
new file mode 100644
index 0000000000..41c5aec17d
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+You completed the mission!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html
new file mode 100644
index 0000000000..8907184546
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+You completed the mission!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html
new file mode 100644
index 0000000000..ec3450a5fc
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Here is your reward. This will also help to improve the trust between you and us at the Unworldly Visitors.
+As long as you don't forget us, that is. We thank you for your hard work.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html
new file mode 100644
index 0000000000..2bf94feff3
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward. We'll be able to maintain our trust. As long as you don't forget about us, that is.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html
new file mode 100644
index 0000000000..c2f962f4f2
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward, I'll remember how you've helped us all those times. Here's a higher level Mark of Trust. Thank you for all of your help.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html
new file mode 100644
index 0000000000..aacd7919d3
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward for helping us. Although you didn't get all the Marks, I still remember how you helped us. I have no doubt the trust between us has deepened even more.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java
new file mode 100644
index 0000000000..913cc53c6d
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java
@@ -0,0 +1,337 @@
+/*
+ * 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.Q00931_MemoriesOfTheWind;
+
+import org.l2jmobius.Config;
+import org.l2jmobius.gameserver.enums.Faction;
+import org.l2jmobius.gameserver.enums.QuestType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10831_UnbelievableSight.Q10831_UnbelievableSight;
+
+/**
+ * Memories of the Wind (931)
+ * @URL: https://l2wiki.com/Memories_of_the_Wind
+ * @author Dmitri
+ */
+public class Q00931_MemoriesOfTheWind extends Quest
+{
+ // NPC
+ private static final int CYPHONA = 34055;
+ // Monsters
+ private static final int EL_FERA = 23797;
+ private static final int EL_FLOATO = 23559;
+ private static final int ENERGY_OF_WIND = 19647;
+ private static final int KERBEROS_LAGER_N = 23550; // (night)
+ private static final int KERBEROS_LAGER = 23541;
+ private static final int KERBEROS_FORT_N = 23551; // (night)
+ private static final int KERBEROS_FORT = 23542;
+ private static final int KERBEROS_NERO_N = 23552; // (night)
+ private static final int KERBEROS_NERO = 23543;
+ private static final int FURY_SYLPH_BARRENA_N = 23553; // (night)
+ private static final int FURY_SYLPH_BARRENA = 23544;
+ private static final int FURY_SYLPH_TEMPTRESS_N = 23555; // (night)
+ private static final int FURY_SYLPH_TEMPTRESS = 23546;
+ private static final int FURY_SYLPH_PURKA_N = 23556; // (night)
+ private static final int FURY_SYLPH_PURKA = 23547;
+ private static final int FURY_KERBEROS_LEGER_N = 23557; // (night)
+ private static final int FURY_KERBEROS_LEGER = 23545;
+ private static final int FURY_KERBEROS_NERO_N = 23558; // (night)
+ private static final int FURY_KERBEROS_NERO = 23549;
+ // Items
+ private static final int MEMORIES_OF_THE_WIND = 47188;
+ private static final int UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX = 47181;
+ private static final int UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX = 47182;
+ private static final int UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX = 47183;
+ // Misc
+ private static final int MIN_LEVEL = 102;
+
+ public Q00931_MemoriesOfTheWind()
+ {
+ super(931);
+ addStartNpc(CYPHONA);
+ addTalkId(CYPHONA);
+ addKillId(EL_FERA, EL_FLOATO);
+ addKillId(ENERGY_OF_WIND, KERBEROS_LAGER, KERBEROS_FORT, KERBEROS_NERO, FURY_SYLPH_BARRENA, FURY_SYLPH_TEMPTRESS, FURY_SYLPH_PURKA, FURY_KERBEROS_LEGER, FURY_KERBEROS_NERO);
+ registerQuestItems(MEMORIES_OF_THE_WIND);
+ addCondMinLevel(MIN_LEVEL, "34055-00.htm");
+ addCondCompletedQuest(Q10831_UnbelievableSight.class.getSimpleName(), "34055-00.htm");
+ addFactionLevel(Faction.UNWORLDLY_VISITORS, 2, "34055-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 "34055-02.htm":
+ case "34055-03.htm":
+ case "34055-04.htm":
+ case "34055-04a.htm":
+ case "34055-06.html":
+ case "34055-06a.html":
+ {
+ htmltext = event;
+ break;
+ }
+ case "select_mission":
+ {
+ qs.startQuest();
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case "return":
+ {
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case "34055-07.html":
+ {
+ qs.setCond(2, true);
+ htmltext = event;
+ break;
+ }
+ case "34055-07a.html":
+ {
+ qs.setCond(3, true);
+ htmltext = event;
+ break;
+ }
+ case "34055-10.html":
+ {
+ final int chance = getRandom(100);
+ switch (qs.getCond())
+ {
+ case 4:
+ {
+ if ((getQuestItemsCount(player, MEMORIES_OF_THE_WIND) == 12) && (player.getLevel() >= MIN_LEVEL))
+ {
+ if (chance < 2)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX, 1);
+ }
+ else if (chance < 20)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX, 1);
+ }
+ else if (chance < 100)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX, 1);
+ }
+ addExpAndSp(player, 22_221_427_950L, 22_221_360);
+ addFactionPoints(player, Faction.UNWORLDLY_VISITORS, 100);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ break;
+ }
+ case 5:
+ {
+ if ((getQuestItemsCount(player, MEMORIES_OF_THE_WIND) == 24) && (player.getLevel() >= MIN_LEVEL))
+ {
+ if (chance < 2)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX, 1);
+ }
+ else if (chance < 20)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX, 1);
+ }
+ else if (chance < 100)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX, 1);
+ }
+ addExpAndSp(player, 44_442_855_900L, 44_442_720);
+ addFactionPoints(player, Faction.UNWORLDLY_VISITORS, 200);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ break;
+ }
+ }
+ 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:
+ {
+ htmltext = "34055-01.htm";
+ }
+ case State.STARTED:
+ {
+ switch (qs.getCond())
+ {
+ case 1:
+ {
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case 2:
+ {
+ htmltext = "34055-08.html";
+ break;
+ }
+ case 3:
+ {
+ htmltext = "34055-08a.html";
+ break;
+ }
+ case 4:
+ case 5:
+ {
+ htmltext = "34055-09.html";
+ break;
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (!qs.isNowAvailable())
+ {
+ htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
+ }
+ else
+ {
+ qs.setState(State.CREATED);
+ htmltext = "34055-01.htm";
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if ((qs != null) && (qs.getCond() > 1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
+ {
+ switch (npc.getId())
+ {
+ case KERBEROS_LAGER:
+ case KERBEROS_FORT:
+ case KERBEROS_NERO:
+ case FURY_SYLPH_BARRENA:
+ case FURY_SYLPH_TEMPTRESS:
+ case FURY_SYLPH_PURKA:
+ case FURY_KERBEROS_LEGER:
+ case FURY_KERBEROS_NERO:
+ case KERBEROS_LAGER_N:
+ case KERBEROS_FORT_N:
+ case KERBEROS_NERO_N:
+ case FURY_SYLPH_BARRENA_N:
+ case FURY_SYLPH_TEMPTRESS_N:
+ case FURY_SYLPH_PURKA_N:
+ case FURY_KERBEROS_LEGER_N:
+ case FURY_KERBEROS_NERO_N:
+ {
+ if (getRandom(100) < 50)
+ {
+ final Npc mob = addSpawn(ENERGY_OF_WIND, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ else if (getRandom(100) < 25)
+ {
+ final Npc mob = addSpawn(EL_FERA, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ break;
+ }
+ case ENERGY_OF_WIND:
+ {
+ if (getRandom(100) < 50)
+ {
+ final Npc mob = addSpawn(EL_FLOATO, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ break;
+ }
+ case EL_FERA:
+ case EL_FLOATO:
+ {
+ switch (qs.getCond())
+ {
+ case 2:
+ {
+ if (giveItemRandomly(killer, npc, MEMORIES_OF_THE_WIND, 1, 12, 0.5, true))
+ {
+ qs.setCond(4, true);
+ }
+ break;
+ }
+ case 3:
+ {
+ if (giveItemRandomly(killer, npc, MEMORIES_OF_THE_WIND, 1, 24, 0.5, true))
+ {
+ qs.setCond(5, true);
+ }
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+}
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java
index dccf97a8ef..de9f32a585 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
@@ -183,6 +183,7 @@ import quests.Q00906_TheCallOfValakas.Q00906_TheCallOfValakas;
import quests.Q00923_ShinedustExtraction.Q00923_ShinedustExtraction;
import quests.Q00926_30DaySearchOperation.Q00926_30DaySearchOperation;
import quests.Q00928_100DaySubjugationOperation.Q00928_100DaySubjugationOperation;
+import quests.Q00931_MemoriesOfTheWind.Q00931_MemoriesOfTheWind;
import quests.Q00937_ToReviveTheFishingGuild.Q00937_ToReviveTheFishingGuild;
import quests.Q10282_ToTheSeedOfAnnihilation.Q10282_ToTheSeedOfAnnihilation;
import quests.Q10283_RequestOfIceMerchant.Q10283_RequestOfIceMerchant;
@@ -681,7 +682,7 @@ public class QuestMasterHandler
Q00928_100DaySubjugationOperation.class,
Q00929_SeekerRescue.class, // TODO: Not done.
Q00930_DisparagingThePhantoms.class, // TODO: Not done.
- Q00931_MemoriesOfTheWind.class, // TODO: Not done.
+ Q00931_MemoriesOfTheWind.class,
Q00932_SayhasEnergy.class, // TODO: Not done.
Q00937_ToReviveTheFishingGuild.class,
Q00985_AdventureGuildsSpecialRequestLv1.class, // TODO: Not done.
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.java
deleted file mode 100644
index 9b840465bd..0000000000
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.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 Q00931_MemoriesOfTheWind extends Quest
-{
- private static final int START_NPC = 34055;
-
- public Q00931_MemoriesOfTheWind()
- {
- super(931);
- 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 a3c5298089..8ee6fd6cde 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
@@ -147,7 +147,6 @@
924 Recovered Giants
929 Seeker Rescue
930 Disparaging the Phantoms
-931 Memories of the Wind
932 Sayha's Energy
938 The Fisherman's Other Hobby
985 Adventure Guild's Special Request - Lv1
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm
new file mode 100644
index 0000000000..8198c3e20a
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-00.htm
@@ -0,0 +1,5 @@
+Master Cyphona:
+I don't think you'll be able to complete this. You seem passionate, but you don't have enough experience.
+Please come back when you've become stronger.
+(Only characters above Lv. 102.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm
new file mode 100644
index 0000000000..44a426c8fa
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Ah, adventurer! There you are again. How about helping us some more? if you do, you can deepen the mutual trust with us and Ferin.
+What do you say? if you don't remember what to do, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm
new file mode 100644
index 0000000000..26b92013fb
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01a.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Ah, adventurer! There you are again. How about helping us some more?
+What do you say? If you don't remember what the mission was, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm
new file mode 100644
index 0000000000..ef15f51390
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01b.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+Adventurer! Good to see you. Since you've helped us so much already, how about helping us some more?
+What do you say? If you don't remember what the mission was, I can tell you again.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm
new file mode 100644
index 0000000000..18f6f1dfa7
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-01c.htm
@@ -0,0 +1,5 @@
+Master Cyphona:
+I've been waiting for you, adventurer. Well since you are here now, will you listen to me? I know I can trust you, but if you complete this mission, we'll become better allies and your pockets will get heavier. What do you say? Or do you need me to explain the mission again?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm
new file mode 100644
index 0000000000..0ebd1190c2
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-02.htm
@@ -0,0 +1,4 @@
+Master Cyphona:
+We've begun an investigation in the Garden of Spirits starting from here. However, we are being threatened by the spirits there, so something must be done.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm
new file mode 100644
index 0000000000..d79f213654
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-03.htm
@@ -0,0 +1,6 @@
+Master Cyphona:
+We know of a way to defeat those spirits, at least temporarily. This way, we'll be able to put the spirits at rest, even if it's just for a little while.
+Of course, we will give you a reward for your help. And there is one more thing. While you are helping us, you'll build trust with us. The more we trust you, the more rewards we will give you, and there are some secret missions that we only give to those we trust.
+That's about it.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm
new file mode 100644
index 0000000000..f223236452
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.htm
@@ -0,0 +1,7 @@
+Master Cyphona:
+Good. Let me tell you what to do. Just choose the mission that you are capable of doing.
+Basic Mission - Collect 12 Mutated Spirit's Souls.
+Intermediate Mission - Collect 24 Mutated Spirit's Souls.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html
new file mode 100644
index 0000000000..0574084c95
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+This isn't the first time we've met? You've completed a mission before? I see... Well, I don't really have a good memory.
+If you have completed a mission before, then that means you must have a Mark of Trust. What? You don't have one?
+Then you are either a liar, or you haven't been here in a long time. My trust is something you must continously try to maintain. Will you listen to me?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm
new file mode 100644
index 0000000000..33ac489658
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-04a.htm
@@ -0,0 +1,7 @@
+Master Cyphona:
+Good. Let me tell you what to do. Just choose the mission that you are capable of doing.
+Basic Mission - Collect 12 Mutated Spirit's Souls.
+Intermediate Mission - Collect 24 Mutated Spirit's Souls.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm
new file mode 100644
index 0000000000..9041babe57
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.htm
@@ -0,0 +1,3 @@
+Master Cyphona:
+Alright. Here's the mission. Hunt the Kerberos Leger, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and the Fury Kerberos Nero, and collect their Mutated Spirit's Souls as proof. You can get rewards only if you bring at least 200. Of course, you'll get more rewards if you bring more.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html
new file mode 100644
index 0000000000..9ab05d1b14
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-05.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Your Unworldly Visitors Faction Level Must be 3 or above may undertake this mission.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html
new file mode 100644
index 0000000000..e21b75e6da
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+You have chosen the basic mission to collect 200 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.
+Are you sure you want to proceed with this mission?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html
new file mode 100644
index 0000000000..5c54ac8312
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-06a.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+You have chosen the intermediate mission to collect 400 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.
+Are you sure you want to proceed with this mission?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html
new file mode 100644
index 0000000000..0d646ed72d
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Good. Left me explain the details. Go to the Garden of Spirits, defeat the Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero, and put them to rest.
+As evidence, please bring back 12 Mutated Spirit's Souls. It should be manageable.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html
new file mode 100644
index 0000000000..4968b9e998
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07a.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Good. Left me explain the details. Go to the Garden of Spirits, defeat the Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero, and put them to rest.
+As evidence, please bring back 24 Mutated Spirit's Souls. It should be manageable.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html
new file mode 100644
index 0000000000..9d36d9e609
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-07c.html
@@ -0,0 +1,5 @@
+Master Cyphona:
+You want to finish already? Well, I can still give you a reward... But it won't be something good. Are you sure?
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html
new file mode 100644
index 0000000000..7d75be2d18
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Go to the Garden of Spirits and defeat all type monsters until you collect 12 Mutated Spirit's Souls.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html
new file mode 100644
index 0000000000..9f18ae83b6
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-08a.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Go to the Garden of Spirits and defeat all type monsters until you collect 24 Mutated Spirit's Souls.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html
new file mode 100644
index 0000000000..0b44c611f3
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09.html
@@ -0,0 +1,6 @@
+Master Cyphona:
+Toy have collected all of the Mutated Spirit's Souls. You have completed the mission successfully.
+I would like to congratulate you on completing the mission. Here's your reward. If you have a Faction Amity Token, I can give You more rewards.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html
new file mode 100644
index 0000000000..41c5aec17d
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09a.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+You completed the mission!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html
new file mode 100644
index 0000000000..8907184546
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-09c.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+You completed the mission!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html
new file mode 100644
index 0000000000..ec3450a5fc
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10.html
@@ -0,0 +1,4 @@
+Master Cyphona:
+Here is your reward. This will also help to improve the trust between you and us at the Unworldly Visitors.
+As long as you don't forget us, that is. We thank you for your hard work.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html
new file mode 100644
index 0000000000..2bf94feff3
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10a.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward. We'll be able to maintain our trust. As long as you don't forget about us, that is.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html
new file mode 100644
index 0000000000..c2f962f4f2
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10b.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward, I'll remember how you've helped us all those times. Here's a higher level Mark of Trust. Thank you for all of your help.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html
new file mode 100644
index 0000000000..aacd7919d3
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/34055-10c.html
@@ -0,0 +1,3 @@
+Master Cyphona:
+Here's your reward for helping us. Although you didn't get all the Marks, I still remember how you helped us. I have no doubt the trust between us has deepened even more.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java
new file mode 100644
index 0000000000..913cc53c6d
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00931_MemoriesOfTheWind/Q00931_MemoriesOfTheWind.java
@@ -0,0 +1,337 @@
+/*
+ * 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.Q00931_MemoriesOfTheWind;
+
+import org.l2jmobius.Config;
+import org.l2jmobius.gameserver.enums.Faction;
+import org.l2jmobius.gameserver.enums.QuestType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10831_UnbelievableSight.Q10831_UnbelievableSight;
+
+/**
+ * Memories of the Wind (931)
+ * @URL: https://l2wiki.com/Memories_of_the_Wind
+ * @author Dmitri
+ */
+public class Q00931_MemoriesOfTheWind extends Quest
+{
+ // NPC
+ private static final int CYPHONA = 34055;
+ // Monsters
+ private static final int EL_FERA = 23797;
+ private static final int EL_FLOATO = 23559;
+ private static final int ENERGY_OF_WIND = 19647;
+ private static final int KERBEROS_LAGER_N = 23550; // (night)
+ private static final int KERBEROS_LAGER = 23541;
+ private static final int KERBEROS_FORT_N = 23551; // (night)
+ private static final int KERBEROS_FORT = 23542;
+ private static final int KERBEROS_NERO_N = 23552; // (night)
+ private static final int KERBEROS_NERO = 23543;
+ private static final int FURY_SYLPH_BARRENA_N = 23553; // (night)
+ private static final int FURY_SYLPH_BARRENA = 23544;
+ private static final int FURY_SYLPH_TEMPTRESS_N = 23555; // (night)
+ private static final int FURY_SYLPH_TEMPTRESS = 23546;
+ private static final int FURY_SYLPH_PURKA_N = 23556; // (night)
+ private static final int FURY_SYLPH_PURKA = 23547;
+ private static final int FURY_KERBEROS_LEGER_N = 23557; // (night)
+ private static final int FURY_KERBEROS_LEGER = 23545;
+ private static final int FURY_KERBEROS_NERO_N = 23558; // (night)
+ private static final int FURY_KERBEROS_NERO = 23549;
+ // Items
+ private static final int MEMORIES_OF_THE_WIND = 47188;
+ private static final int UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX = 47181;
+ private static final int UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX = 47182;
+ private static final int UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX = 47183;
+ // Misc
+ private static final int MIN_LEVEL = 102;
+
+ public Q00931_MemoriesOfTheWind()
+ {
+ super(931);
+ addStartNpc(CYPHONA);
+ addTalkId(CYPHONA);
+ addKillId(EL_FERA, EL_FLOATO);
+ addKillId(ENERGY_OF_WIND, KERBEROS_LAGER, KERBEROS_FORT, KERBEROS_NERO, FURY_SYLPH_BARRENA, FURY_SYLPH_TEMPTRESS, FURY_SYLPH_PURKA, FURY_KERBEROS_LEGER, FURY_KERBEROS_NERO);
+ registerQuestItems(MEMORIES_OF_THE_WIND);
+ addCondMinLevel(MIN_LEVEL, "34055-00.htm");
+ addCondCompletedQuest(Q10831_UnbelievableSight.class.getSimpleName(), "34055-00.htm");
+ addFactionLevel(Faction.UNWORLDLY_VISITORS, 2, "34055-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 "34055-02.htm":
+ case "34055-03.htm":
+ case "34055-04.htm":
+ case "34055-04a.htm":
+ case "34055-06.html":
+ case "34055-06a.html":
+ {
+ htmltext = event;
+ break;
+ }
+ case "select_mission":
+ {
+ qs.startQuest();
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case "return":
+ {
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case "34055-07.html":
+ {
+ qs.setCond(2, true);
+ htmltext = event;
+ break;
+ }
+ case "34055-07a.html":
+ {
+ qs.setCond(3, true);
+ htmltext = event;
+ break;
+ }
+ case "34055-10.html":
+ {
+ final int chance = getRandom(100);
+ switch (qs.getCond())
+ {
+ case 4:
+ {
+ if ((getQuestItemsCount(player, MEMORIES_OF_THE_WIND) == 12) && (player.getLevel() >= MIN_LEVEL))
+ {
+ if (chance < 2)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX, 1);
+ }
+ else if (chance < 20)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX, 1);
+ }
+ else if (chance < 100)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX, 1);
+ }
+ addExpAndSp(player, 22_221_427_950L, 22_221_360);
+ addFactionPoints(player, Faction.UNWORLDLY_VISITORS, 100);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ break;
+ }
+ case 5:
+ {
+ if ((getQuestItemsCount(player, MEMORIES_OF_THE_WIND) == 24) && (player.getLevel() >= MIN_LEVEL))
+ {
+ if (chance < 2)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_ADVANCED_SUPPLY_BOX, 1);
+ }
+ else if (chance < 20)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_BASIC_SUPPLY_BOX, 1);
+ }
+ else if (chance < 100)
+ {
+ giveItems(player, UNWORLDLY_VISITORS_INTERMEDIATE_SUPPLY_BOX, 1);
+ }
+ addExpAndSp(player, 44_442_855_900L, 44_442_720);
+ addFactionPoints(player, Faction.UNWORLDLY_VISITORS, 200);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ break;
+ }
+ }
+ 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:
+ {
+ htmltext = "34055-01.htm";
+ }
+ case State.STARTED:
+ {
+ switch (qs.getCond())
+ {
+ case 1:
+ {
+ if (player.getFactionLevel(Faction.UNWORLDLY_VISITORS) >= 3)
+ {
+ htmltext = "34055-04a.htm";
+ break;
+ }
+ htmltext = "34055-04.htm";
+ break;
+ }
+ case 2:
+ {
+ htmltext = "34055-08.html";
+ break;
+ }
+ case 3:
+ {
+ htmltext = "34055-08a.html";
+ break;
+ }
+ case 4:
+ case 5:
+ {
+ htmltext = "34055-09.html";
+ break;
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (!qs.isNowAvailable())
+ {
+ htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
+ }
+ else
+ {
+ qs.setState(State.CREATED);
+ htmltext = "34055-01.htm";
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if ((qs != null) && (qs.getCond() > 1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
+ {
+ switch (npc.getId())
+ {
+ case KERBEROS_LAGER:
+ case KERBEROS_FORT:
+ case KERBEROS_NERO:
+ case FURY_SYLPH_BARRENA:
+ case FURY_SYLPH_TEMPTRESS:
+ case FURY_SYLPH_PURKA:
+ case FURY_KERBEROS_LEGER:
+ case FURY_KERBEROS_NERO:
+ case KERBEROS_LAGER_N:
+ case KERBEROS_FORT_N:
+ case KERBEROS_NERO_N:
+ case FURY_SYLPH_BARRENA_N:
+ case FURY_SYLPH_TEMPTRESS_N:
+ case FURY_SYLPH_PURKA_N:
+ case FURY_KERBEROS_LEGER_N:
+ case FURY_KERBEROS_NERO_N:
+ {
+ if (getRandom(100) < 50)
+ {
+ final Npc mob = addSpawn(ENERGY_OF_WIND, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ else if (getRandom(100) < 25)
+ {
+ final Npc mob = addSpawn(EL_FERA, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ break;
+ }
+ case ENERGY_OF_WIND:
+ {
+ if (getRandom(100) < 50)
+ {
+ final Npc mob = addSpawn(EL_FLOATO, npc.getX(), npc.getY(), npc.getZ(), 0, true, 120000);
+ addAttackPlayerDesire(mob, killer, 5);
+ }
+ break;
+ }
+ case EL_FERA:
+ case EL_FLOATO:
+ {
+ switch (qs.getCond())
+ {
+ case 2:
+ {
+ if (giveItemRandomly(killer, npc, MEMORIES_OF_THE_WIND, 1, 12, 0.5, true))
+ {
+ qs.setCond(4, true);
+ }
+ break;
+ }
+ case 3:
+ {
+ if (giveItemRandomly(killer, npc, MEMORIES_OF_THE_WIND, 1, 24, 0.5, true))
+ {
+ qs.setCond(5, true);
+ }
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+}
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10824_ConfrontingTheGreatestDanger/Q10824_ConfrontingTheGreatestDanger.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10824_ConfrontingTheGreatestDanger/Q10824_ConfrontingTheGreatestDanger.java
index 791a825d18..4e2e041569 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10824_ConfrontingTheGreatestDanger/Q10824_ConfrontingTheGreatestDanger.java
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10824_ConfrontingTheGreatestDanger/Q10824_ConfrontingTheGreatestDanger.java
@@ -25,7 +25,6 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder;
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.util.Util;
import quests.Q10823_ExaltedOneWhoShattersTheLimit.Q10823_ExaltedOneWhoShattersTheLimit;
@@ -239,6 +238,7 @@ public class Q10824_ConfrontingTheGreatestDanger extends Quest
}
return htmltext;
}
+
@Override
public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
{
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/QuestMasterHandler.java
index 6842592e63..00146c8d0a 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
@@ -96,6 +96,7 @@ import quests.Q00906_TheCallOfValakas.Q00906_TheCallOfValakas;
import quests.Q00923_ShinedustExtraction.Q00923_ShinedustExtraction;
import quests.Q00926_30DaySearchOperation.Q00926_30DaySearchOperation;
import quests.Q00928_100DaySubjugationOperation.Q00928_100DaySubjugationOperation;
+import quests.Q00931_MemoriesOfTheWind.Q00931_MemoriesOfTheWind;
import quests.Q00937_ToReviveTheFishingGuild.Q00937_ToReviveTheFishingGuild;
import quests.Q10282_ToTheSeedOfAnnihilation.Q10282_ToTheSeedOfAnnihilation;
import quests.Q10283_RequestOfIceMerchant.Q10283_RequestOfIceMerchant;
@@ -351,7 +352,7 @@ public class QuestMasterHandler
Q00928_100DaySubjugationOperation.class,
Q00929_SeekerRescue.class, // TODO: Not done.
Q00930_DisparagingThePhantoms.class, // TODO: Not done.
- Q00931_MemoriesOfTheWind.class, // TODO: Not done.
+ Q00931_MemoriesOfTheWind.class,
Q00932_SayhasEnergy.class, // TODO: Not done.
Q00937_ToReviveTheFishingGuild.class,
Q00985_AdventureGuildsSpecialRequestLv1.class, // TODO: Not done.
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.java
deleted file mode 100644
index 9b840465bd..0000000000
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q00931_MemoriesOfTheWind.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 Q00931_MemoriesOfTheWind extends Quest
-{
- private static final int START_NPC = 34055;
-
- public Q00931_MemoriesOfTheWind()
- {
- super(931);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}