Tapoy:
+ Do you have something else you need?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-02.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-02.html
new file mode 100644
index 0000000000..e1360ff7e7
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-02.html
@@ -0,0 +1,6 @@
+Tapoy:
+Are you here on a mission from the Adventure Guild? I've seen many who are. If so, I'll explain the details.
+You'll have to select Dark Elf Village from the teleport link I give you and go there. The area for an active mission will appear at the top of the teleport list so it won't be hard to find.
+But you have to watch out for one thing.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-03.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-03.html
new file mode 100644
index 0000000000..fcb638c859
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-03.html
@@ -0,0 +1,4 @@
+Tapoy:
+There's no Gatekeeper in the Dark Elf Village. In the past, there had been a Gatekeeper, however, now, due to a tragic accident, there is only a Teleport Device.
+Anyway, there's no other option. Go and check the missions.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-04.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-04.html
new file mode 100644
index 0000000000..fcb638c859
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-04.html
@@ -0,0 +1,4 @@
+Tapoy:
+There's no Gatekeeper in the Dark Elf Village. In the past, there had been a Gatekeeper, however, now, due to a tragic accident, there is only a Teleport Device.
+Anyway, there's no other option. Go and check the missions.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-01.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-01.html
new file mode 100644
index 0000000000..727212aebb
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-01.html
@@ -0,0 +1,5 @@
+Heset:
+I asked the Adventure Guild to send an adventurer but didn't expect they would send you. I'd like to see how good you are.
+(To do "Basic Mission: Isle of Souls," you must do "Uncover the Secret" and "More Aggressive Operation" through Black Wizard Lapathia.)
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-02.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-02.html
new file mode 100644
index 0000000000..7e438f0e2c
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-02.html
@@ -0,0 +1,5 @@
+Heset:
+You completed all the missions I gave you, meaning that you also completed those of the Adventure Guildsman. Are you going back to the Town of Aden? How?
+Don't tell me you're going to walk all the way up there. I know a better way.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-03.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-03.html
new file mode 100644
index 0000000000..8ad5d85470
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-03.html
@@ -0,0 +1,4 @@
+Heset:
+When setting out for a joumey, veteran adventurers always pack Scrolls of Escape, it teleports the user immediately to the closest village or to the check point.
+If you have these useful items, you can move easily after hunting or when you are far away from the village. Since you've been a great help to me, I'll give you the scroll that can teleport you directly to the Town of Aden.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-04.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-04.html
new file mode 100644
index 0000000000..d8f5cf572e
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-04.html
@@ -0,0 +1,5 @@
+Heset:
+You can use the scroll now or later. Just don't forget to pack enough Scrolls of Escape once you retum to town.
+You can easily buy Scrolls of Escape at stores. Be safe until we meet again.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-05.html
new file mode 100644
index 0000000000..8726c112ef
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-05.html
@@ -0,0 +1,5 @@
+Heset:
+You completed all the missions I gave you, meaning that you also completed those of the Adventure Guildsman. Are you going back to the Town of Aden? How?
+Don't tell me you're going to walk all the way up there. I know a better way.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-00.htm
new file mode 100644
index 0000000000..35c37e687a
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-00.htm
@@ -0,0 +1,4 @@
+Truth Seeker Devianne:
+In order to take on this mission, you must first build more trust with us.
+(Only characters with faction level 5 or above with the Blackbird Clan may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-01.htm
new file mode 100644
index 0000000000..05c85abeb2
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-01.htm
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Your're the one that Hephah has sent, right? If not, you should go meet Herphah and receive a mission from her before you continue. If you think it doesn't matter, I can continue anyway. Do you want me to continue?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-02.htm
new file mode 100644
index 0000000000..eeb5960f1d
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-02.htm
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Herphah wants you to do some missions, and I'll chose an appropriate mission depending on your relationship with us at the Adventure Guild.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-03.htm
new file mode 100644
index 0000000000..e7179bf0f0
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-03.htm
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Your mission is to assist with the task at the Altar of Evil. If successful, our Adventure Guild will give you additional rewards on top of the mission payment and your relationship with our faction will grow even stronger.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-04.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-04.htm
new file mode 100644
index 0000000000..b6a29bc3d6
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-04.htm
@@ -0,0 +1,5 @@
+Adventure Guildsman Penny:
+You've already leamed everything you need to know about the mission. By that I mean, how to go to the Altar of Evil. You should be able to start the mission right away without further explanation.
+But if you want to listen to the explanation again, I'd be happy to tell you.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-05.html
new file mode 100644
index 0000000000..b6dd01273d
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-05.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Good choice. Now, go to Black Wizard Lapathia at the Altar of Evil and do the mission that she gives you. When the mission is done, come back to me.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-06.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-06.html
new file mode 100644
index 0000000000..c04a739296
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-06.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Welcome back! So, did you do a good job?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-07.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-07.html
new file mode 100644
index 0000000000..a88cd54592
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-07.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Thanks, you've done a great job! I'm sure eveyone in the Adventure Guild will know your name now. If there is another opportunity, we'd love for you to help us again. Good luck and farewell!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-08.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-08.html
new file mode 100644
index 0000000000..190351d034
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-08.html
@@ -0,0 +1,3 @@
+Adventure Guildsman Penny:
+To do the mission, you have to go to Black Wizard Lapathia at the Altar of Evil. Do the mission that Lapathia gives. Then, come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-09.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-09.html
new file mode 100644
index 0000000000..ab1c194642
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-09.html
@@ -0,0 +1,5 @@
+Adventure Guildsman Penny:
+I'm sure the Gatekeeper of the town, Gatekeeper Elise, could give you a better explanation. Go to her and ask how you can go to the Altar of Evil. She's very friendly so don't be shy.
+If you anive successfully, meet the black wizard, Lapathia, and ask about the mission.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-10.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-10.html
new file mode 100644
index 0000000000..3ecc46dbe2
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-10.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+You need to leam how to get there first. Go to Gatekeeper Elise and ask how to go to the Altar of Evil. She will give you a detailed explanation.
+If you arive successfully, meet the black wizard, Lapathia, and ask about the mission.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/Q00568_SpecialMissionNornilsCave.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/Q00568_SpecialMissionNornilsCave.java
new file mode 100644
index 0000000000..f2635a4b38
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/Q00568_SpecialMissionNornilsCave.java
@@ -0,0 +1,261 @@
+/*
+ * 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.Q00568_SpecialMissionNornilsCave;
+
+import org.l2jmobius.gameserver.enums.Faction;
+import org.l2jmobius.gameserver.enums.QuestType;
+import org.l2jmobius.gameserver.model.Location;
+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;
+
+/**
+ * Special Mission: Nornil's Cave (568)
+ * @URL https://l2wiki.com/Special_Mission:_Nornil%27s_Cave
+ * @author Dmitri
+ */
+public class Q00568_SpecialMissionNornilsCave extends Quest
+{
+ // NPCs
+ private static final int PENNY = 34413;
+ private static final int HESET = 33780;
+ private static final int TAPOY = 30499;
+ // Rewards
+ private static final int SCROLL_OF_ESCAPE_NORNIL_CAVE = 39503;
+ private static final int SCROLL_OF_ESCAPE_TOWN_OF_ADEN = 48413;
+ // Misc
+ private static final int MIN_LEVEL = 93;
+ private static final int MAX_LEVEL = 95;
+ // Location
+ private static final Location TOWN_OF_ADEN = new Location(146632, 26760, -2213);
+
+ public Q00568_SpecialMissionNornilsCave()
+ {
+ super(568);
+ addStartNpc(PENNY);
+ addTalkId(PENNY, HESET, TAPOY);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "nolevel.html");
+ addFactionLevel(Faction.ADVENTURE_GUILD, 5, "34413-00.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+
+ if (qs == null)
+ {
+ return null;
+ }
+
+ String htmltext = null;
+ switch (event)
+ {
+ case "34413-02.htm":
+ case "34413-03.htm":
+ case "34413-06.html":
+ case "34413-07.html":
+ case "30499-02.html":
+ case "33780-02.html":
+ {
+ htmltext = event;
+ break;
+ }
+ case "34413-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "34413-08.html": // PENNY
+ {
+ qs.setCond(2, true);
+ htmltext = event;
+ break;
+ }
+ case "30499-03.html": // TAPOY
+ {
+ qs.setCond(3, true);
+ htmltext = event;
+ break;
+ }
+ case "33780-03.html": // HESET
+ {
+ qs.setCond(5, true);
+ htmltext = event;
+ break;
+ }
+ case "33780-05.html": // HESET
+ {
+ giveItems(player, SCROLL_OF_ESCAPE_TOWN_OF_ADEN, 1);
+ htmltext = event;
+ break;
+ }
+ case "usescroll":
+ {
+ // TODO: force player to use item SCROLL_OF_ESCAPE_TOWN_OF_ADEN
+ player.teleToLocation(TOWN_OF_ADEN); // Town of Aden near Npc Penny - temp solution
+ takeItems(player, SCROLL_OF_ESCAPE_TOWN_OF_ADEN, -1); // remove SOE - temp solution
+ break;
+ }
+ case "34413-10.html":
+ {
+ final StringBuilder str = new StringBuilder("00");
+ checkQuestCompleted(player, str); // Initialize the array with all quests completed
+
+ if (str.indexOf("11") != -1) // verify if all quests completed
+ {
+ giveItems(player, SCROLL_OF_ESCAPE_NORNIL_CAVE, 1);
+ addExpAndSp(player, 2386605060L, 2386560);
+ addFactionPoints(player, Faction.ADVENTURE_GUILD, 260); // add FP points to ADVENTURE_GUILD Faction
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = "34413-08.html";
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ if (npc.getId() == PENNY)
+ {
+ htmltext = "34413-01.htm";
+ }
+ break;
+ }
+ case State.STARTED:
+ {
+ switch (npc.getId())
+ {
+ case PENNY:
+ {
+ if (qs.getCond() == 1)
+ {
+ htmltext = "34413-05.html";
+ }
+ else if (qs.getCond() == 2)
+ {
+ htmltext = "34413-08.html";
+ }
+ else if (qs.getCond() == 6)
+ {
+ htmltext = "34413-09.html";
+ }
+ break;
+ }
+ case TAPOY:
+ {
+ if (qs.getCond() == 2)
+ {
+ htmltext = "30499-01.html";
+ }
+ else if (qs.getCond() == 3)
+ {
+ final QuestState st = player.getQuestState("Q10386_MysteriousJourney");
+ if ((st != null) && st.isCompleted())
+ {
+ qs.setCond(4, true);
+ htmltext = null;
+ }
+ else
+ {
+ htmltext = "30499-03.html";
+ }
+ }
+ else if (qs.getCond() == 4)
+ {
+ htmltext = "30499-04.html";
+ }
+ break;
+ }
+ case HESET:
+ {
+ if (qs.getCond() == 4)
+ {
+ htmltext = "33780-01.html";
+ }
+ else if (qs.getCond() == 5)
+ {
+ final StringBuilder str = new StringBuilder("00");
+ checkQuestCompleted(player, str); // Initialize the array with all quests completed
+ if (str.indexOf("11") != -1) // verify if all quests completed
+ {
+ qs.setCond(6, true);
+ htmltext = "33780-04.html";
+ }
+ else
+ {
+ htmltext = "33780-03.html";
+ }
+ }
+ break;
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (qs.isNowAvailable())
+ {
+ qs.setState(State.CREATED);
+ htmltext = "34413-01.htm";
+ }
+ else
+ {
+ htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ private StringBuilder checkQuestCompleted(PlayerInstance player, StringBuilder string)
+ {
+ int index = 0;
+ final char ch = '1';
+ final QuestState st1 = player.getQuestState("Q00753_ReactingToACrisis");
+ if ((st1 != null) && st1.isCompleted())
+ {
+ index = 0;
+ string.setCharAt(index, ch);
+ }
+ final QuestState st2 = player.getQuestState("Q00588_HeadOnCrash");
+ if ((st2 != null) && st2.isCompleted())
+ {
+ index = 1;
+ string.setCharAt(index, ch);
+ }
+ return string;
+ }
+}
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/nolevel.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/nolevel.html
new file mode 100644
index 0000000000..66fbe6d5db
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/nolevel.html
@@ -0,0 +1,4 @@
+Penny:
+I don't understand why someone like you is interested in this mission?
+(Only characters above Lv.93-95.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-00.htm
new file mode 100644
index 0000000000..18729b0786
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-00.htm
@@ -0,0 +1,4 @@
+Bern:
+Hmm ... For you, as long as there is no work.
+(This quest is available once a day. Updating quest takes place daily at 6:30 am.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-01.htm
new file mode 100644
index 0000000000..7c5a8dfd79
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-01.htm
@@ -0,0 +1,4 @@
+Bern:
+Wanderer Wanderer! You are just in time! I need your help .. coming contamination on all of us .. help us, we need such brave war like you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-02.htm
new file mode 100644
index 0000000000..15d5bb97b1
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-02.htm
@@ -0,0 +1,5 @@
+Bern:
+We were closing in Golem shaped monsters infect us and our children, they have a machine "Devices Creating Golem" and only 5 but we do not force ... In addition, some of them kept the keys to the cells they store materials that are collected for reproduction itself, collect at least 30 of the Keys to the Red Door. I'll help you, here is a list of monsters in which they are kept:
+Scout Nornil 1, spicules Warrior 1, Scout Nornil 2, spicules Warrior 2, spicules Ratnikov Commander (1) Commander Ratnikov spicules (2), spicules Adjutant Ratnikov ...
+Thank you, O brave warrior, we're waiting for you with good news!
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-03.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-03.html
new file mode 100644
index 0000000000..840066b345
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-03.html
@@ -0,0 +1,5 @@
+Bern:
+We were closing in Golem shaped monsters infect us and our children, they have a machine "Devices Creating Golem" and only 5 but we do not force ... In addition, some of them kept the keys to the cells they store materials that are collected for reproduction itself, collect at least 30 of the Keys to the Red Door. I'll help you, here is a list of monsters in which they are kept:
+Scout Nornil 1, spicules Warrior 1, Scout Nornil 2, spicules Warrior 2, spicules Ratnikov Commander (1) Commander Ratnikov spicules (2), spicules Adjutant Ratnikov ...
+Thank you, O brave warrior, we're waiting for you with good news!
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-04.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-04.html
new file mode 100644
index 0000000000..ed824d96f3
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-04.html
@@ -0,0 +1,4 @@
+Bern:
+I have heard of your exploits! You brought all that I asked for?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-05.html
new file mode 100644
index 0000000000..93f104218b
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-05.html
@@ -0,0 +1,4 @@
+Bern:
+Thank you, we are all indebted to you!
+However, this is very small, we only recaptured the golems for a few days, they can launch an attack at any moment .. That's your reward for your lion heart! But you know may need your help at any time!
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/Q00588_HeadOnCrash.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/Q00588_HeadOnCrash.java
new file mode 100644
index 0000000000..c83bc6d3cc
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/Q00588_HeadOnCrash.java
@@ -0,0 +1,163 @@
+/*
+ * 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.Q00588_HeadOnCrash;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.l2jmobius.gameserver.enums.QuestSound;
+import org.l2jmobius.gameserver.enums.QuestType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+import org.l2jmobius.gameserver.network.NpcStringId;
+
+/**
+ * Head-on Crash (588)
+ * @URL https://l2wiki.com/Head-on_Crash
+ * @author Dmitri
+ */
+public class Q00588_HeadOnCrash extends Quest
+{
+ // Npc
+ private static final int BERNA = 33796;
+ // Monsters
+ private static final int SPICULA_LARVA = 23304;
+ // Misc
+ private static final String KILL_COUNT_VAR = "KillCount";
+ private static final int MIN_LEVEL = 93;
+ private static final int MAX_LEVEL = 103;
+
+ public Q00588_HeadOnCrash()
+ {
+ super(588);
+ addStartNpc(BERNA);
+ addTalkId(BERNA);
+ addKillId(SPICULA_LARVA);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "lvl.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return getNoQuestMsg(player);
+ }
+
+ switch (event)
+ {
+ case "33796-02.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33796-05.html":
+ {
+ giveAdena(player, 587070, true);
+ addExpAndSp(player, 1193302530L, 1193280);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ if (npc.getId() == BERNA)
+ {
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33796-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ if (qs.isCond(1))
+ {
+ htmltext = "33796-03.html";
+ }
+ else if (qs.isCond(2))
+ {
+ htmltext = "33796-04.html";
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (!qs.isNowAvailable())
+ {
+ htmltext = "33796-00.htm";
+ break;
+ }
+ qs.setState(State.CREATED);
+ // fallthrough
+ }
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
+ if (killCount < 5)
+ {
+ qs.set(KILL_COUNT_VAR, killCount);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ sendNpcLogList(killer);
+ }
+ else
+ {
+ qs.setCond(2, true);
+ qs.unset(KILL_COUNT_VAR);
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ @Override
+ public Set getNpcLogList(PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(NpcStringId.DEFEATED_SPICULA_LARVA.getId(), true, qs.getInt(KILL_COUNT_VAR)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/lvl.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/lvl.htm
new file mode 100644
index 0000000000..fa3a034069
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q00588_HeadOnCrash/lvl.htm
@@ -0,0 +1,4 @@
+Bern:
+Hmm ... For you, as long as there is no work.
+(This quest is available after reaching level 93-103.)
+
\ No newline at end of file
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 432f8f8b0c..f0d21fe2bf 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
@@ -144,6 +144,7 @@ import quests.Q00564_BasicMissionKartiasLabyrinthSolo.Q00564_BasicMissionKartias
import quests.Q00565_BasicMissionFairySettlementWest.Q00565_BasicMissionFairySettlementWest;
import quests.Q00566_BasicMissionFairySettlementEast.Q00566_BasicMissionFairySettlementEast;
import quests.Q00567_BasicMissionIsleOfSouls.Q00567_BasicMissionIsleOfSouls;
+import quests.Q00568_SpecialMissionNornilsCave.Q00568_SpecialMissionNornilsCave;
import quests.Q00569_BasicMissionSealOfShilen.Q00569_BasicMissionSealOfShilen;
import quests.Q00574_SpecialMissionNornilsGarden.Q00574_SpecialMissionNornilsGarden;
import quests.Q00580_BeyondTheMemories.Q00580_BeyondTheMemories;
@@ -152,6 +153,7 @@ import quests.Q00582_WashBloodWithBlood.Q00582_WashBloodWithBlood;
import quests.Q00583_MeaningOfSurvival.Q00583_MeaningOfSurvival;
import quests.Q00584_NeverSayGoodBye.Q00584_NeverSayGoodBye;
import quests.Q00587_MoreAggressiveOperation.Q00587_MoreAggressiveOperation;
+import quests.Q00588_HeadOnCrash.Q00588_HeadOnCrash;
import quests.Q00617_GatherTheFlames.Q00617_GatherTheFlames;
import quests.Q00618_IntoTheFlame.Q00618_IntoTheFlame;
import quests.Q00620_FourGoblets.Q00620_FourGoblets;
@@ -512,7 +514,6 @@ import quests.Q10852_TheMotherTreeRevivalProject.Q10852_TheMotherTreeRevivalProj
import quests.Q10856_SuperionAppears.Q10856_SuperionAppears;
import quests.Q10857_SecretTeleport.Q10857_SecretTeleport;
import quests.not_done.Q00504_CompetitionForTheBanditStronghold;
-import quests.not_done.Q00568_SpecialMissionNornilsCave;
import quests.not_done.Q00570_SpecialMissionKartiasLabyrinthParty;
import quests.not_done.Q00571_SpecialMissionProofOfUnityFieldRaid;
import quests.not_done.Q00572_SpecialMissionProofOfCourageFieldRaid;
@@ -521,7 +522,6 @@ import quests.not_done.Q00575_SpecialMissionFortuna;
import quests.not_done.Q00576_SpecialMissionDefeatSpezion;
import quests.not_done.Q00585_CantGoAgainstTheTime;
import quests.not_done.Q00586_MutatedCreatures;
-import quests.not_done.Q00588_HeadOnCrash;
import quests.not_done.Q00655_AGrandPlanForTamingWildBeasts;
import quests.not_done.Q00667_CoveringShilensEyes;
import quests.not_done.Q00744_TheAlligatorHunterReturns;
@@ -736,7 +736,7 @@ public class QuestMasterHandler
Q00565_BasicMissionFairySettlementWest.class,
Q00566_BasicMissionFairySettlementEast.class,
Q00567_BasicMissionIsleOfSouls.class,
- Q00568_SpecialMissionNornilsCave.class, // TODO: Not done.
+ Q00568_SpecialMissionNornilsCave.class,
Q00569_BasicMissionSealOfShilen.class,
Q00570_SpecialMissionKartiasLabyrinthParty.class, // TODO: Not done.
Q00571_SpecialMissionProofOfUnityFieldRaid.class, // TODO: Not done.
@@ -753,7 +753,7 @@ public class QuestMasterHandler
Q00585_CantGoAgainstTheTime.class, // TODO: Not done.
Q00586_MutatedCreatures.class, // TODO: Not done.
Q00587_MoreAggressiveOperation.class,
- Q00588_HeadOnCrash.class, // TODO: Not done.
+ Q00588_HeadOnCrash.class,
Q00617_GatherTheFlames.class,
Q00618_IntoTheFlame.class,
Q00620_FourGoblets.class,
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q00568_SpecialMissionNornilsCave.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q00568_SpecialMissionNornilsCave.java
deleted file mode 100644
index 3d0bd9d7bb..0000000000
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q00568_SpecialMissionNornilsCave.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 Q00568_SpecialMissionNornilsCave extends Quest
-{
- private static final int START_NPC = 34413;
-
- public Q00568_SpecialMissionNornilsCave()
- {
- super(568);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q00588_HeadOnCrash.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q00588_HeadOnCrash.java
deleted file mode 100644
index 4085c221d8..0000000000
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q00588_HeadOnCrash.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 Q00588_HeadOnCrash extends Quest
-{
- private static final int START_NPC = 33796;
-
- public Q00588_HeadOnCrash()
- {
- super(588);
- 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 6cda72bfc2..43f5199eb9 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
@@ -4,7 +4,6 @@
555 Red Libra Request - Atelia Refinery
556 Red Libra Request - Fallen Emperor's Throne
557 Red Libra Request - Fall of Etina
-568 Special Mission: Nornil's Cave
570 Special Mission: Kartia's Labyrinth (Party)
571 Special Mission: Proof of Unity (Field Raid)
572 Special Mission: Proof of Courage (Field Raid)
@@ -14,7 +13,6 @@
577 Basic Mission: Silent Valley
585 Can't Go Against the Time
586 Mutated Creatures
-588 Head-on Crash
591 Great Ambitions
599 Demons and Dimensional Energy
655 A Grand Plan for Taming Wild Beasts
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-01.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-01.html
new file mode 100644
index 0000000000..cf3e0aa25f
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-01.html
@@ -0,0 +1,4 @@
+Tapoy:
+ Do you have something else you need?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-02.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-02.html
new file mode 100644
index 0000000000..e1360ff7e7
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-02.html
@@ -0,0 +1,6 @@
+Tapoy:
+Are you here on a mission from the Adventure Guild? I've seen many who are. If so, I'll explain the details.
+You'll have to select Dark Elf Village from the teleport link I give you and go there. The area for an active mission will appear at the top of the teleport list so it won't be hard to find.
+But you have to watch out for one thing.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-03.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-03.html
new file mode 100644
index 0000000000..fcb638c859
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-03.html
@@ -0,0 +1,4 @@
+Tapoy:
+There's no Gatekeeper in the Dark Elf Village. In the past, there had been a Gatekeeper, however, now, due to a tragic accident, there is only a Teleport Device.
+Anyway, there's no other option. Go and check the missions.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-04.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-04.html
new file mode 100644
index 0000000000..fcb638c859
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-04.html
@@ -0,0 +1,4 @@
+Tapoy:
+There's no Gatekeeper in the Dark Elf Village. In the past, there had been a Gatekeeper, however, now, due to a tragic accident, there is only a Teleport Device.
+Anyway, there's no other option. Go and check the missions.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-01.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-01.html
new file mode 100644
index 0000000000..727212aebb
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-01.html
@@ -0,0 +1,5 @@
+Heset:
+I asked the Adventure Guild to send an adventurer but didn't expect they would send you. I'd like to see how good you are.
+(To do "Basic Mission: Isle of Souls," you must do "Uncover the Secret" and "More Aggressive Operation" through Black Wizard Lapathia.)
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-02.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-02.html
new file mode 100644
index 0000000000..7e438f0e2c
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-02.html
@@ -0,0 +1,5 @@
+Heset:
+You completed all the missions I gave you, meaning that you also completed those of the Adventure Guildsman. Are you going back to the Town of Aden? How?
+Don't tell me you're going to walk all the way up there. I know a better way.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-03.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-03.html
new file mode 100644
index 0000000000..8ad5d85470
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-03.html
@@ -0,0 +1,4 @@
+Heset:
+When setting out for a joumey, veteran adventurers always pack Scrolls of Escape, it teleports the user immediately to the closest village or to the check point.
+If you have these useful items, you can move easily after hunting or when you are far away from the village. Since you've been a great help to me, I'll give you the scroll that can teleport you directly to the Town of Aden.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-04.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-04.html
new file mode 100644
index 0000000000..d8f5cf572e
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-04.html
@@ -0,0 +1,5 @@
+Heset:
+You can use the scroll now or later. Just don't forget to pack enough Scrolls of Escape once you retum to town.
+You can easily buy Scrolls of Escape at stores. Be safe until we meet again.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-05.html
new file mode 100644
index 0000000000..8726c112ef
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-05.html
@@ -0,0 +1,5 @@
+Heset:
+You completed all the missions I gave you, meaning that you also completed those of the Adventure Guildsman. Are you going back to the Town of Aden? How?
+Don't tell me you're going to walk all the way up there. I know a better way.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-00.htm
new file mode 100644
index 0000000000..35c37e687a
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-00.htm
@@ -0,0 +1,4 @@
+Truth Seeker Devianne:
+In order to take on this mission, you must first build more trust with us.
+(Only characters with faction level 5 or above with the Blackbird Clan may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-01.htm
new file mode 100644
index 0000000000..05c85abeb2
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-01.htm
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Your're the one that Hephah has sent, right? If not, you should go meet Herphah and receive a mission from her before you continue. If you think it doesn't matter, I can continue anyway. Do you want me to continue?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-02.htm
new file mode 100644
index 0000000000..eeb5960f1d
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-02.htm
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Herphah wants you to do some missions, and I'll chose an appropriate mission depending on your relationship with us at the Adventure Guild.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-03.htm
new file mode 100644
index 0000000000..e7179bf0f0
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-03.htm
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Your mission is to assist with the task at the Altar of Evil. If successful, our Adventure Guild will give you additional rewards on top of the mission payment and your relationship with our faction will grow even stronger.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-04.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-04.htm
new file mode 100644
index 0000000000..b6a29bc3d6
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-04.htm
@@ -0,0 +1,5 @@
+Adventure Guildsman Penny:
+You've already leamed everything you need to know about the mission. By that I mean, how to go to the Altar of Evil. You should be able to start the mission right away without further explanation.
+But if you want to listen to the explanation again, I'd be happy to tell you.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-05.html
new file mode 100644
index 0000000000..b6dd01273d
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-05.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Good choice. Now, go to Black Wizard Lapathia at the Altar of Evil and do the mission that she gives you. When the mission is done, come back to me.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-06.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-06.html
new file mode 100644
index 0000000000..c04a739296
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-06.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Welcome back! So, did you do a good job?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-07.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-07.html
new file mode 100644
index 0000000000..a88cd54592
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-07.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Thanks, you've done a great job! I'm sure eveyone in the Adventure Guild will know your name now. If there is another opportunity, we'd love for you to help us again. Good luck and farewell!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-08.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-08.html
new file mode 100644
index 0000000000..190351d034
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-08.html
@@ -0,0 +1,3 @@
+Adventure Guildsman Penny:
+To do the mission, you have to go to Black Wizard Lapathia at the Altar of Evil. Do the mission that Lapathia gives. Then, come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-09.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-09.html
new file mode 100644
index 0000000000..ab1c194642
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-09.html
@@ -0,0 +1,5 @@
+Adventure Guildsman Penny:
+I'm sure the Gatekeeper of the town, Gatekeeper Elise, could give you a better explanation. Go to her and ask how you can go to the Altar of Evil. She's very friendly so don't be shy.
+If you anive successfully, meet the black wizard, Lapathia, and ask about the mission.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-10.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-10.html
new file mode 100644
index 0000000000..3ecc46dbe2
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-10.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+You need to leam how to get there first. Go to Gatekeeper Elise and ask how to go to the Altar of Evil. She will give you a detailed explanation.
+If you arive successfully, meet the black wizard, Lapathia, and ask about the mission.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/Q00568_SpecialMissionNornilsCave.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/Q00568_SpecialMissionNornilsCave.java
new file mode 100644
index 0000000000..f2635a4b38
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/Q00568_SpecialMissionNornilsCave.java
@@ -0,0 +1,261 @@
+/*
+ * 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.Q00568_SpecialMissionNornilsCave;
+
+import org.l2jmobius.gameserver.enums.Faction;
+import org.l2jmobius.gameserver.enums.QuestType;
+import org.l2jmobius.gameserver.model.Location;
+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;
+
+/**
+ * Special Mission: Nornil's Cave (568)
+ * @URL https://l2wiki.com/Special_Mission:_Nornil%27s_Cave
+ * @author Dmitri
+ */
+public class Q00568_SpecialMissionNornilsCave extends Quest
+{
+ // NPCs
+ private static final int PENNY = 34413;
+ private static final int HESET = 33780;
+ private static final int TAPOY = 30499;
+ // Rewards
+ private static final int SCROLL_OF_ESCAPE_NORNIL_CAVE = 39503;
+ private static final int SCROLL_OF_ESCAPE_TOWN_OF_ADEN = 48413;
+ // Misc
+ private static final int MIN_LEVEL = 93;
+ private static final int MAX_LEVEL = 95;
+ // Location
+ private static final Location TOWN_OF_ADEN = new Location(146632, 26760, -2213);
+
+ public Q00568_SpecialMissionNornilsCave()
+ {
+ super(568);
+ addStartNpc(PENNY);
+ addTalkId(PENNY, HESET, TAPOY);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "nolevel.html");
+ addFactionLevel(Faction.ADVENTURE_GUILD, 5, "34413-00.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+
+ if (qs == null)
+ {
+ return null;
+ }
+
+ String htmltext = null;
+ switch (event)
+ {
+ case "34413-02.htm":
+ case "34413-03.htm":
+ case "34413-06.html":
+ case "34413-07.html":
+ case "30499-02.html":
+ case "33780-02.html":
+ {
+ htmltext = event;
+ break;
+ }
+ case "34413-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "34413-08.html": // PENNY
+ {
+ qs.setCond(2, true);
+ htmltext = event;
+ break;
+ }
+ case "30499-03.html": // TAPOY
+ {
+ qs.setCond(3, true);
+ htmltext = event;
+ break;
+ }
+ case "33780-03.html": // HESET
+ {
+ qs.setCond(5, true);
+ htmltext = event;
+ break;
+ }
+ case "33780-05.html": // HESET
+ {
+ giveItems(player, SCROLL_OF_ESCAPE_TOWN_OF_ADEN, 1);
+ htmltext = event;
+ break;
+ }
+ case "usescroll":
+ {
+ // TODO: force player to use item SCROLL_OF_ESCAPE_TOWN_OF_ADEN
+ player.teleToLocation(TOWN_OF_ADEN); // Town of Aden near Npc Penny - temp solution
+ takeItems(player, SCROLL_OF_ESCAPE_TOWN_OF_ADEN, -1); // remove SOE - temp solution
+ break;
+ }
+ case "34413-10.html":
+ {
+ final StringBuilder str = new StringBuilder("00");
+ checkQuestCompleted(player, str); // Initialize the array with all quests completed
+
+ if (str.indexOf("11") != -1) // verify if all quests completed
+ {
+ giveItems(player, SCROLL_OF_ESCAPE_NORNIL_CAVE, 1);
+ addExpAndSp(player, 2386605060L, 2386560);
+ addFactionPoints(player, Faction.ADVENTURE_GUILD, 260); // add FP points to ADVENTURE_GUILD Faction
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = "34413-08.html";
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ if (npc.getId() == PENNY)
+ {
+ htmltext = "34413-01.htm";
+ }
+ break;
+ }
+ case State.STARTED:
+ {
+ switch (npc.getId())
+ {
+ case PENNY:
+ {
+ if (qs.getCond() == 1)
+ {
+ htmltext = "34413-05.html";
+ }
+ else if (qs.getCond() == 2)
+ {
+ htmltext = "34413-08.html";
+ }
+ else if (qs.getCond() == 6)
+ {
+ htmltext = "34413-09.html";
+ }
+ break;
+ }
+ case TAPOY:
+ {
+ if (qs.getCond() == 2)
+ {
+ htmltext = "30499-01.html";
+ }
+ else if (qs.getCond() == 3)
+ {
+ final QuestState st = player.getQuestState("Q10386_MysteriousJourney");
+ if ((st != null) && st.isCompleted())
+ {
+ qs.setCond(4, true);
+ htmltext = null;
+ }
+ else
+ {
+ htmltext = "30499-03.html";
+ }
+ }
+ else if (qs.getCond() == 4)
+ {
+ htmltext = "30499-04.html";
+ }
+ break;
+ }
+ case HESET:
+ {
+ if (qs.getCond() == 4)
+ {
+ htmltext = "33780-01.html";
+ }
+ else if (qs.getCond() == 5)
+ {
+ final StringBuilder str = new StringBuilder("00");
+ checkQuestCompleted(player, str); // Initialize the array with all quests completed
+ if (str.indexOf("11") != -1) // verify if all quests completed
+ {
+ qs.setCond(6, true);
+ htmltext = "33780-04.html";
+ }
+ else
+ {
+ htmltext = "33780-03.html";
+ }
+ }
+ break;
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (qs.isNowAvailable())
+ {
+ qs.setState(State.CREATED);
+ htmltext = "34413-01.htm";
+ }
+ else
+ {
+ htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ private StringBuilder checkQuestCompleted(PlayerInstance player, StringBuilder string)
+ {
+ int index = 0;
+ final char ch = '1';
+ final QuestState st1 = player.getQuestState("Q00753_ReactingToACrisis");
+ if ((st1 != null) && st1.isCompleted())
+ {
+ index = 0;
+ string.setCharAt(index, ch);
+ }
+ final QuestState st2 = player.getQuestState("Q00588_HeadOnCrash");
+ if ((st2 != null) && st2.isCompleted())
+ {
+ index = 1;
+ string.setCharAt(index, ch);
+ }
+ return string;
+ }
+}
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/nolevel.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/nolevel.html
new file mode 100644
index 0000000000..66fbe6d5db
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/nolevel.html
@@ -0,0 +1,4 @@
+Penny:
+I don't understand why someone like you is interested in this mission?
+(Only characters above Lv.93-95.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-00.htm
new file mode 100644
index 0000000000..18729b0786
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-00.htm
@@ -0,0 +1,4 @@
+Bern:
+Hmm ... For you, as long as there is no work.
+(This quest is available once a day. Updating quest takes place daily at 6:30 am.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-01.htm
new file mode 100644
index 0000000000..7c5a8dfd79
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-01.htm
@@ -0,0 +1,4 @@
+Bern:
+Wanderer Wanderer! You are just in time! I need your help .. coming contamination on all of us .. help us, we need such brave war like you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-02.htm
new file mode 100644
index 0000000000..15d5bb97b1
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-02.htm
@@ -0,0 +1,5 @@
+Bern:
+We were closing in Golem shaped monsters infect us and our children, they have a machine "Devices Creating Golem" and only 5 but we do not force ... In addition, some of them kept the keys to the cells they store materials that are collected for reproduction itself, collect at least 30 of the Keys to the Red Door. I'll help you, here is a list of monsters in which they are kept:
+Scout Nornil 1, spicules Warrior 1, Scout Nornil 2, spicules Warrior 2, spicules Ratnikov Commander (1) Commander Ratnikov spicules (2), spicules Adjutant Ratnikov ...
+Thank you, O brave warrior, we're waiting for you with good news!
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-03.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-03.html
new file mode 100644
index 0000000000..840066b345
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-03.html
@@ -0,0 +1,5 @@
+Bern:
+We were closing in Golem shaped monsters infect us and our children, they have a machine "Devices Creating Golem" and only 5 but we do not force ... In addition, some of them kept the keys to the cells they store materials that are collected for reproduction itself, collect at least 30 of the Keys to the Red Door. I'll help you, here is a list of monsters in which they are kept:
+Scout Nornil 1, spicules Warrior 1, Scout Nornil 2, spicules Warrior 2, spicules Ratnikov Commander (1) Commander Ratnikov spicules (2), spicules Adjutant Ratnikov ...
+Thank you, O brave warrior, we're waiting for you with good news!
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-04.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-04.html
new file mode 100644
index 0000000000..ed824d96f3
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-04.html
@@ -0,0 +1,4 @@
+Bern:
+I have heard of your exploits! You brought all that I asked for?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-05.html
new file mode 100644
index 0000000000..93f104218b
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-05.html
@@ -0,0 +1,4 @@
+Bern:
+Thank you, we are all indebted to you!
+However, this is very small, we only recaptured the golems for a few days, they can launch an attack at any moment .. That's your reward for your lion heart! But you know may need your help at any time!
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/Q00588_HeadOnCrash.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/Q00588_HeadOnCrash.java
new file mode 100644
index 0000000000..f0739b21c1
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/Q00588_HeadOnCrash.java
@@ -0,0 +1,163 @@
+/*
+ * 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.Q00588_HeadOnCrash;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.l2jmobius.gameserver.enums.QuestSound;
+import org.l2jmobius.gameserver.enums.QuestType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+import org.l2jmobius.gameserver.network.NpcStringId;
+
+/**
+ * Head-on Crash (588)
+ * @URL https://l2wiki.com/Head-on_Crash
+ * @author Dmitri
+ */
+public class Q00588_HeadOnCrash extends Quest
+{
+ // Npc
+ private static final int BERNA = 33796;
+ // Monsters
+ private static final int SPICULA_LARVA = 23304;
+ // Misc
+ private static final String KILL_COUNT_VAR = "KillCount";
+ private static final int MIN_LEVEL = 93;
+ private static final int MAX_LEVEL = 103;
+
+ public Q00588_HeadOnCrash()
+ {
+ super(588);
+ addStartNpc(BERNA);
+ addTalkId(BERNA);
+ addKillId(SPICULA_LARVA);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "lvl.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return getNoQuestMsg(player);
+ }
+
+ switch (event)
+ {
+ case "33796-02.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33796-05.html":
+ {
+ giveAdena(player, 587070, true);
+ addExpAndSp(player, 1193302530L, 1193280);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ if (npc.getId() == BERNA)
+ {
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33796-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ if (qs.isCond(1))
+ {
+ htmltext = "33796-03.html";
+ }
+ else if (qs.isCond(2))
+ {
+ htmltext = "33796-04.html";
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (!qs.isNowAvailable())
+ {
+ htmltext = "33796-00.htm";
+ break;
+ }
+ qs.setState(State.CREATED);
+ // fallthrough
+ }
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
+ if (killCount < 5)
+ {
+ qs.set(KILL_COUNT_VAR, killCount);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ sendNpcLogList(killer);
+ }
+ else
+ {
+ qs.setCond(2, true);
+ qs.unset(KILL_COUNT_VAR);
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ @Override
+ public Set getNpcLogList(PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_SPICULA_LARVA.getId(), true, qs.getInt(KILL_COUNT_VAR)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/lvl.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/lvl.htm
new file mode 100644
index 0000000000..fa3a034069
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q00588_HeadOnCrash/lvl.htm
@@ -0,0 +1,4 @@
+Bern:
+Hmm ... For you, as long as there is no work.
+(This quest is available after reaching level 93-103.)
+
\ No newline at end of file
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 ec41b6be5e..21eec903ef 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
@@ -122,6 +122,7 @@ import quests.Q00564_BasicMissionKartiasLabyrinthSolo.Q00564_BasicMissionKartias
import quests.Q00565_BasicMissionFairySettlementWest.Q00565_BasicMissionFairySettlementWest;
import quests.Q00566_BasicMissionFairySettlementEast.Q00566_BasicMissionFairySettlementEast;
import quests.Q00567_BasicMissionIsleOfSouls.Q00567_BasicMissionIsleOfSouls;
+import quests.Q00568_SpecialMissionNornilsCave.Q00568_SpecialMissionNornilsCave;
import quests.Q00569_BasicMissionSealOfShilen.Q00569_BasicMissionSealOfShilen;
import quests.Q00574_SpecialMissionNornilsGarden.Q00574_SpecialMissionNornilsGarden;
import quests.Q00580_BeyondTheMemories.Q00580_BeyondTheMemories;
@@ -130,6 +131,7 @@ import quests.Q00582_WashBloodWithBlood.Q00582_WashBloodWithBlood;
import quests.Q00583_MeaningOfSurvival.Q00583_MeaningOfSurvival;
import quests.Q00584_NeverSayGoodBye.Q00584_NeverSayGoodBye;
import quests.Q00587_MoreAggressiveOperation.Q00587_MoreAggressiveOperation;
+import quests.Q00588_HeadOnCrash.Q00588_HeadOnCrash;
import quests.Q00600_KeyToTheRefiningProcess.Q00600_KeyToTheRefiningProcess;
import quests.Q00617_GatherTheFlames.Q00617_GatherTheFlames;
import quests.Q00618_IntoTheFlame.Q00618_IntoTheFlame;
@@ -582,7 +584,7 @@ public class QuestMasterHandler
Q00565_BasicMissionFairySettlementWest.class,
Q00566_BasicMissionFairySettlementEast.class,
Q00567_BasicMissionIsleOfSouls.class,
- Q00568_SpecialMissionNornilsCave.class, // TODO: Not done.
+ Q00568_SpecialMissionNornilsCave.class,
Q00569_BasicMissionSealOfShilen.class,
Q00570_SpecialMissionKartiasLabyrinthParty.class, // TODO: Not done.
Q00571_SpecialMissionProofOfUnityFieldRaid.class, // TODO: Not done.
@@ -600,7 +602,7 @@ public class QuestMasterHandler
Q00585_CantGoAgainstTheTime.class, // TODO: Not done.
Q00586_MutatedCreatures.class, // TODO: Not done.
Q00587_MoreAggressiveOperation.class,
- Q00588_HeadOnCrash.class, // TODO: Not done.
+ Q00588_HeadOnCrash.class,
Q00589_ASecretChange.class, // FIXME: Custom.
Q00590_ToEachTheirOwn.class, // FIXME: Custom.
Q00591_GreatAmbitions.class, // TODO: Not done.
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00568_SpecialMissionNornilsCave.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00568_SpecialMissionNornilsCave.java
deleted file mode 100644
index 3d0bd9d7bb..0000000000
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00568_SpecialMissionNornilsCave.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 Q00568_SpecialMissionNornilsCave extends Quest
-{
- private static final int START_NPC = 34413;
-
- public Q00568_SpecialMissionNornilsCave()
- {
- super(568);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00588_HeadOnCrash.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00588_HeadOnCrash.java
deleted file mode 100644
index 4085c221d8..0000000000
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q00588_HeadOnCrash.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 Q00588_HeadOnCrash extends Quest
-{
- private static final int START_NPC = 33796;
-
- public Q00588_HeadOnCrash()
- {
- super(588);
- 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 d1590e22d2..0923715241 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
@@ -7,7 +7,6 @@
557 Red Libra Request - Fall of Etina
558 Request from the Red Libra Guild - Sea of Spores
559 Request from the Red Libra Guild - Krofin’s Nest
-568 Special Mission: Nornil's Cave
570 Special Mission: Kartia's Labyrinth (Party)
571 Special Mission: Proof of Unity (Field Raid)
572 Special Mission: Proof of Courage (Field Raid)
@@ -18,7 +17,6 @@
579 Basic Mission: Blazing Swamp
585 Can't Go Against the Time
586 Mutated Creatures
-588 Head-on Crash
591 Great Ambitions
593 Basic Mission: Pagan Temple
594 Basic Mission: Dimensional Rift
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-01.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-01.html
new file mode 100644
index 0000000000..cf3e0aa25f
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-01.html
@@ -0,0 +1,4 @@
+Tapoy:
+ Do you have something else you need?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-02.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-02.html
new file mode 100644
index 0000000000..e1360ff7e7
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-02.html
@@ -0,0 +1,6 @@
+Tapoy:
+Are you here on a mission from the Adventure Guild? I've seen many who are. If so, I'll explain the details.
+You'll have to select Dark Elf Village from the teleport link I give you and go there. The area for an active mission will appear at the top of the teleport list so it won't be hard to find.
+But you have to watch out for one thing.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-03.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-03.html
new file mode 100644
index 0000000000..fcb638c859
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-03.html
@@ -0,0 +1,4 @@
+Tapoy:
+There's no Gatekeeper in the Dark Elf Village. In the past, there had been a Gatekeeper, however, now, due to a tragic accident, there is only a Teleport Device.
+Anyway, there's no other option. Go and check the missions.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-04.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-04.html
new file mode 100644
index 0000000000..fcb638c859
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-04.html
@@ -0,0 +1,4 @@
+Tapoy:
+There's no Gatekeeper in the Dark Elf Village. In the past, there had been a Gatekeeper, however, now, due to a tragic accident, there is only a Teleport Device.
+Anyway, there's no other option. Go and check the missions.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-01.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-01.html
new file mode 100644
index 0000000000..727212aebb
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-01.html
@@ -0,0 +1,5 @@
+Heset:
+I asked the Adventure Guild to send an adventurer but didn't expect they would send you. I'd like to see how good you are.
+(To do "Basic Mission: Isle of Souls," you must do "Uncover the Secret" and "More Aggressive Operation" through Black Wizard Lapathia.)
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-02.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-02.html
new file mode 100644
index 0000000000..7e438f0e2c
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-02.html
@@ -0,0 +1,5 @@
+Heset:
+You completed all the missions I gave you, meaning that you also completed those of the Adventure Guildsman. Are you going back to the Town of Aden? How?
+Don't tell me you're going to walk all the way up there. I know a better way.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-03.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-03.html
new file mode 100644
index 0000000000..8ad5d85470
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-03.html
@@ -0,0 +1,4 @@
+Heset:
+When setting out for a joumey, veteran adventurers always pack Scrolls of Escape, it teleports the user immediately to the closest village or to the check point.
+If you have these useful items, you can move easily after hunting or when you are far away from the village. Since you've been a great help to me, I'll give you the scroll that can teleport you directly to the Town of Aden.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-04.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-04.html
new file mode 100644
index 0000000000..d8f5cf572e
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-04.html
@@ -0,0 +1,5 @@
+Heset:
+You can use the scroll now or later. Just don't forget to pack enough Scrolls of Escape once you retum to town.
+You can easily buy Scrolls of Escape at stores. Be safe until we meet again.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-05.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-05.html
new file mode 100644
index 0000000000..8726c112ef
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-05.html
@@ -0,0 +1,5 @@
+Heset:
+You completed all the missions I gave you, meaning that you also completed those of the Adventure Guildsman. Are you going back to the Town of Aden? How?
+Don't tell me you're going to walk all the way up there. I know a better way.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-00.htm
new file mode 100644
index 0000000000..35c37e687a
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-00.htm
@@ -0,0 +1,4 @@
+Truth Seeker Devianne:
+In order to take on this mission, you must first build more trust with us.
+(Only characters with faction level 5 or above with the Blackbird Clan may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-01.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-01.htm
new file mode 100644
index 0000000000..05c85abeb2
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-01.htm
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Your're the one that Hephah has sent, right? If not, you should go meet Herphah and receive a mission from her before you continue. If you think it doesn't matter, I can continue anyway. Do you want me to continue?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-02.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-02.htm
new file mode 100644
index 0000000000..eeb5960f1d
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-02.htm
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Herphah wants you to do some missions, and I'll chose an appropriate mission depending on your relationship with us at the Adventure Guild.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-03.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-03.htm
new file mode 100644
index 0000000000..e7179bf0f0
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-03.htm
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Your mission is to assist with the task at the Altar of Evil. If successful, our Adventure Guild will give you additional rewards on top of the mission payment and your relationship with our faction will grow even stronger.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-04.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-04.htm
new file mode 100644
index 0000000000..b6a29bc3d6
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-04.htm
@@ -0,0 +1,5 @@
+Adventure Guildsman Penny:
+You've already leamed everything you need to know about the mission. By that I mean, how to go to the Altar of Evil. You should be able to start the mission right away without further explanation.
+But if you want to listen to the explanation again, I'd be happy to tell you.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-05.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-05.html
new file mode 100644
index 0000000000..b6dd01273d
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-05.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Good choice. Now, go to Black Wizard Lapathia at the Altar of Evil and do the mission that she gives you. When the mission is done, come back to me.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-06.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-06.html
new file mode 100644
index 0000000000..c04a739296
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-06.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Welcome back! So, did you do a good job?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-07.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-07.html
new file mode 100644
index 0000000000..a88cd54592
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-07.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Thanks, you've done a great job! I'm sure eveyone in the Adventure Guild will know your name now. If there is another opportunity, we'd love for you to help us again. Good luck and farewell!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-08.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-08.html
new file mode 100644
index 0000000000..190351d034
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-08.html
@@ -0,0 +1,3 @@
+Adventure Guildsman Penny:
+To do the mission, you have to go to Black Wizard Lapathia at the Altar of Evil. Do the mission that Lapathia gives. Then, come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-09.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-09.html
new file mode 100644
index 0000000000..ab1c194642
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-09.html
@@ -0,0 +1,5 @@
+Adventure Guildsman Penny:
+I'm sure the Gatekeeper of the town, Gatekeeper Elise, could give you a better explanation. Go to her and ask how you can go to the Altar of Evil. She's very friendly so don't be shy.
+If you anive successfully, meet the black wizard, Lapathia, and ask about the mission.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-10.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-10.html
new file mode 100644
index 0000000000..3ecc46dbe2
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-10.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+You need to leam how to get there first. Go to Gatekeeper Elise and ask how to go to the Altar of Evil. She will give you a detailed explanation.
+If you arive successfully, meet the black wizard, Lapathia, and ask about the mission.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/Q00568_SpecialMissionNornilsCave.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/Q00568_SpecialMissionNornilsCave.java
new file mode 100644
index 0000000000..f2635a4b38
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/Q00568_SpecialMissionNornilsCave.java
@@ -0,0 +1,261 @@
+/*
+ * 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.Q00568_SpecialMissionNornilsCave;
+
+import org.l2jmobius.gameserver.enums.Faction;
+import org.l2jmobius.gameserver.enums.QuestType;
+import org.l2jmobius.gameserver.model.Location;
+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;
+
+/**
+ * Special Mission: Nornil's Cave (568)
+ * @URL https://l2wiki.com/Special_Mission:_Nornil%27s_Cave
+ * @author Dmitri
+ */
+public class Q00568_SpecialMissionNornilsCave extends Quest
+{
+ // NPCs
+ private static final int PENNY = 34413;
+ private static final int HESET = 33780;
+ private static final int TAPOY = 30499;
+ // Rewards
+ private static final int SCROLL_OF_ESCAPE_NORNIL_CAVE = 39503;
+ private static final int SCROLL_OF_ESCAPE_TOWN_OF_ADEN = 48413;
+ // Misc
+ private static final int MIN_LEVEL = 93;
+ private static final int MAX_LEVEL = 95;
+ // Location
+ private static final Location TOWN_OF_ADEN = new Location(146632, 26760, -2213);
+
+ public Q00568_SpecialMissionNornilsCave()
+ {
+ super(568);
+ addStartNpc(PENNY);
+ addTalkId(PENNY, HESET, TAPOY);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "nolevel.html");
+ addFactionLevel(Faction.ADVENTURE_GUILD, 5, "34413-00.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+
+ if (qs == null)
+ {
+ return null;
+ }
+
+ String htmltext = null;
+ switch (event)
+ {
+ case "34413-02.htm":
+ case "34413-03.htm":
+ case "34413-06.html":
+ case "34413-07.html":
+ case "30499-02.html":
+ case "33780-02.html":
+ {
+ htmltext = event;
+ break;
+ }
+ case "34413-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "34413-08.html": // PENNY
+ {
+ qs.setCond(2, true);
+ htmltext = event;
+ break;
+ }
+ case "30499-03.html": // TAPOY
+ {
+ qs.setCond(3, true);
+ htmltext = event;
+ break;
+ }
+ case "33780-03.html": // HESET
+ {
+ qs.setCond(5, true);
+ htmltext = event;
+ break;
+ }
+ case "33780-05.html": // HESET
+ {
+ giveItems(player, SCROLL_OF_ESCAPE_TOWN_OF_ADEN, 1);
+ htmltext = event;
+ break;
+ }
+ case "usescroll":
+ {
+ // TODO: force player to use item SCROLL_OF_ESCAPE_TOWN_OF_ADEN
+ player.teleToLocation(TOWN_OF_ADEN); // Town of Aden near Npc Penny - temp solution
+ takeItems(player, SCROLL_OF_ESCAPE_TOWN_OF_ADEN, -1); // remove SOE - temp solution
+ break;
+ }
+ case "34413-10.html":
+ {
+ final StringBuilder str = new StringBuilder("00");
+ checkQuestCompleted(player, str); // Initialize the array with all quests completed
+
+ if (str.indexOf("11") != -1) // verify if all quests completed
+ {
+ giveItems(player, SCROLL_OF_ESCAPE_NORNIL_CAVE, 1);
+ addExpAndSp(player, 2386605060L, 2386560);
+ addFactionPoints(player, Faction.ADVENTURE_GUILD, 260); // add FP points to ADVENTURE_GUILD Faction
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = "34413-08.html";
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ if (npc.getId() == PENNY)
+ {
+ htmltext = "34413-01.htm";
+ }
+ break;
+ }
+ case State.STARTED:
+ {
+ switch (npc.getId())
+ {
+ case PENNY:
+ {
+ if (qs.getCond() == 1)
+ {
+ htmltext = "34413-05.html";
+ }
+ else if (qs.getCond() == 2)
+ {
+ htmltext = "34413-08.html";
+ }
+ else if (qs.getCond() == 6)
+ {
+ htmltext = "34413-09.html";
+ }
+ break;
+ }
+ case TAPOY:
+ {
+ if (qs.getCond() == 2)
+ {
+ htmltext = "30499-01.html";
+ }
+ else if (qs.getCond() == 3)
+ {
+ final QuestState st = player.getQuestState("Q10386_MysteriousJourney");
+ if ((st != null) && st.isCompleted())
+ {
+ qs.setCond(4, true);
+ htmltext = null;
+ }
+ else
+ {
+ htmltext = "30499-03.html";
+ }
+ }
+ else if (qs.getCond() == 4)
+ {
+ htmltext = "30499-04.html";
+ }
+ break;
+ }
+ case HESET:
+ {
+ if (qs.getCond() == 4)
+ {
+ htmltext = "33780-01.html";
+ }
+ else if (qs.getCond() == 5)
+ {
+ final StringBuilder str = new StringBuilder("00");
+ checkQuestCompleted(player, str); // Initialize the array with all quests completed
+ if (str.indexOf("11") != -1) // verify if all quests completed
+ {
+ qs.setCond(6, true);
+ htmltext = "33780-04.html";
+ }
+ else
+ {
+ htmltext = "33780-03.html";
+ }
+ }
+ break;
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (qs.isNowAvailable())
+ {
+ qs.setState(State.CREATED);
+ htmltext = "34413-01.htm";
+ }
+ else
+ {
+ htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ private StringBuilder checkQuestCompleted(PlayerInstance player, StringBuilder string)
+ {
+ int index = 0;
+ final char ch = '1';
+ final QuestState st1 = player.getQuestState("Q00753_ReactingToACrisis");
+ if ((st1 != null) && st1.isCompleted())
+ {
+ index = 0;
+ string.setCharAt(index, ch);
+ }
+ final QuestState st2 = player.getQuestState("Q00588_HeadOnCrash");
+ if ((st2 != null) && st2.isCompleted())
+ {
+ index = 1;
+ string.setCharAt(index, ch);
+ }
+ return string;
+ }
+}
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/nolevel.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/nolevel.html
new file mode 100644
index 0000000000..66fbe6d5db
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/nolevel.html
@@ -0,0 +1,4 @@
+Penny:
+I don't understand why someone like you is interested in this mission?
+(Only characters above Lv.93-95.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-00.htm
new file mode 100644
index 0000000000..18729b0786
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-00.htm
@@ -0,0 +1,4 @@
+Bern:
+Hmm ... For you, as long as there is no work.
+(This quest is available once a day. Updating quest takes place daily at 6:30 am.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-01.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-01.htm
new file mode 100644
index 0000000000..7c5a8dfd79
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-01.htm
@@ -0,0 +1,4 @@
+Bern:
+Wanderer Wanderer! You are just in time! I need your help .. coming contamination on all of us .. help us, we need such brave war like you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-02.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-02.htm
new file mode 100644
index 0000000000..15d5bb97b1
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-02.htm
@@ -0,0 +1,5 @@
+Bern:
+We were closing in Golem shaped monsters infect us and our children, they have a machine "Devices Creating Golem" and only 5 but we do not force ... In addition, some of them kept the keys to the cells they store materials that are collected for reproduction itself, collect at least 30 of the Keys to the Red Door. I'll help you, here is a list of monsters in which they are kept:
+Scout Nornil 1, spicules Warrior 1, Scout Nornil 2, spicules Warrior 2, spicules Ratnikov Commander (1) Commander Ratnikov spicules (2), spicules Adjutant Ratnikov ...
+Thank you, O brave warrior, we're waiting for you with good news!
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-03.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-03.html
new file mode 100644
index 0000000000..840066b345
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-03.html
@@ -0,0 +1,5 @@
+Bern:
+We were closing in Golem shaped monsters infect us and our children, they have a machine "Devices Creating Golem" and only 5 but we do not force ... In addition, some of them kept the keys to the cells they store materials that are collected for reproduction itself, collect at least 30 of the Keys to the Red Door. I'll help you, here is a list of monsters in which they are kept:
+Scout Nornil 1, spicules Warrior 1, Scout Nornil 2, spicules Warrior 2, spicules Ratnikov Commander (1) Commander Ratnikov spicules (2), spicules Adjutant Ratnikov ...
+Thank you, O brave warrior, we're waiting for you with good news!
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-04.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-04.html
new file mode 100644
index 0000000000..ed824d96f3
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-04.html
@@ -0,0 +1,4 @@
+Bern:
+I have heard of your exploits! You brought all that I asked for?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-05.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-05.html
new file mode 100644
index 0000000000..93f104218b
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-05.html
@@ -0,0 +1,4 @@
+Bern:
+Thank you, we are all indebted to you!
+However, this is very small, we only recaptured the golems for a few days, they can launch an attack at any moment .. That's your reward for your lion heart! But you know may need your help at any time!
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/Q00588_HeadOnCrash.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/Q00588_HeadOnCrash.java
new file mode 100644
index 0000000000..f0739b21c1
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/Q00588_HeadOnCrash.java
@@ -0,0 +1,163 @@
+/*
+ * 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.Q00588_HeadOnCrash;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.l2jmobius.gameserver.enums.QuestSound;
+import org.l2jmobius.gameserver.enums.QuestType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+import org.l2jmobius.gameserver.network.NpcStringId;
+
+/**
+ * Head-on Crash (588)
+ * @URL https://l2wiki.com/Head-on_Crash
+ * @author Dmitri
+ */
+public class Q00588_HeadOnCrash extends Quest
+{
+ // Npc
+ private static final int BERNA = 33796;
+ // Monsters
+ private static final int SPICULA_LARVA = 23304;
+ // Misc
+ private static final String KILL_COUNT_VAR = "KillCount";
+ private static final int MIN_LEVEL = 93;
+ private static final int MAX_LEVEL = 103;
+
+ public Q00588_HeadOnCrash()
+ {
+ super(588);
+ addStartNpc(BERNA);
+ addTalkId(BERNA);
+ addKillId(SPICULA_LARVA);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "lvl.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return getNoQuestMsg(player);
+ }
+
+ switch (event)
+ {
+ case "33796-02.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33796-05.html":
+ {
+ giveAdena(player, 587070, true);
+ addExpAndSp(player, 1193302530L, 1193280);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ if (npc.getId() == BERNA)
+ {
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33796-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ if (qs.isCond(1))
+ {
+ htmltext = "33796-03.html";
+ }
+ else if (qs.isCond(2))
+ {
+ htmltext = "33796-04.html";
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (!qs.isNowAvailable())
+ {
+ htmltext = "33796-00.htm";
+ break;
+ }
+ qs.setState(State.CREATED);
+ // fallthrough
+ }
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
+ if (killCount < 5)
+ {
+ qs.set(KILL_COUNT_VAR, killCount);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ sendNpcLogList(killer);
+ }
+ else
+ {
+ qs.setCond(2, true);
+ qs.unset(KILL_COUNT_VAR);
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ @Override
+ public Set getNpcLogList(PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_SPICULA_LARVA.getId(), true, qs.getInt(KILL_COUNT_VAR)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/lvl.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/lvl.htm
new file mode 100644
index 0000000000..fa3a034069
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q00588_HeadOnCrash/lvl.htm
@@ -0,0 +1,4 @@
+Bern:
+Hmm ... For you, as long as there is no work.
+(This quest is available after reaching level 93-103.)
+
\ No newline at end of file
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 058f9d4270..88b01853ba 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
@@ -122,6 +122,7 @@ import quests.Q00564_BasicMissionKartiasLabyrinthSolo.Q00564_BasicMissionKartias
import quests.Q00565_BasicMissionFairySettlementWest.Q00565_BasicMissionFairySettlementWest;
import quests.Q00566_BasicMissionFairySettlementEast.Q00566_BasicMissionFairySettlementEast;
import quests.Q00567_BasicMissionIsleOfSouls.Q00567_BasicMissionIsleOfSouls;
+import quests.Q00568_SpecialMissionNornilsCave.Q00568_SpecialMissionNornilsCave;
import quests.Q00569_BasicMissionSealOfShilen.Q00569_BasicMissionSealOfShilen;
import quests.Q00574_SpecialMissionNornilsGarden.Q00574_SpecialMissionNornilsGarden;
import quests.Q00580_BeyondTheMemories.Q00580_BeyondTheMemories;
@@ -130,6 +131,7 @@ import quests.Q00582_WashBloodWithBlood.Q00582_WashBloodWithBlood;
import quests.Q00583_MeaningOfSurvival.Q00583_MeaningOfSurvival;
import quests.Q00584_NeverSayGoodBye.Q00584_NeverSayGoodBye;
import quests.Q00587_MoreAggressiveOperation.Q00587_MoreAggressiveOperation;
+import quests.Q00588_HeadOnCrash.Q00588_HeadOnCrash;
import quests.Q00600_KeyToTheRefiningProcess.Q00600_KeyToTheRefiningProcess;
import quests.Q00617_GatherTheFlames.Q00617_GatherTheFlames;
import quests.Q00618_IntoTheFlame.Q00618_IntoTheFlame;
@@ -600,7 +602,7 @@ public class QuestMasterHandler
Q00565_BasicMissionFairySettlementWest.class,
Q00566_BasicMissionFairySettlementEast.class,
Q00567_BasicMissionIsleOfSouls.class,
- Q00568_SpecialMissionNornilsCave.class, // TODO: Not done.
+ Q00568_SpecialMissionNornilsCave.class,
Q00569_BasicMissionSealOfShilen.class,
Q00570_SpecialMissionKartiasLabyrinthParty.class, // TODO: Not done.
Q00571_SpecialMissionProofOfUnityFieldRaid.class, // TODO: Not done.
@@ -619,7 +621,7 @@ public class QuestMasterHandler
Q00585_CantGoAgainstTheTime.class, // TODO: Not done.
Q00586_MutatedCreatures.class, // TODO: Not done.
Q00587_MoreAggressiveOperation.class,
- Q00588_HeadOnCrash.class, // TODO: Not done.
+ Q00588_HeadOnCrash.class,
Q00589_ASecretChange.class, // FIXME: Custom.
Q00590_ToEachTheirOwn.class, // FIXME: Custom.
Q00591_GreatAmbitions.class, // TODO: Not done.
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00568_SpecialMissionNornilsCave.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00568_SpecialMissionNornilsCave.java
deleted file mode 100644
index 3d0bd9d7bb..0000000000
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00568_SpecialMissionNornilsCave.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 Q00568_SpecialMissionNornilsCave extends Quest
-{
- private static final int START_NPC = 34413;
-
- public Q00568_SpecialMissionNornilsCave()
- {
- super(568);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00588_HeadOnCrash.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00588_HeadOnCrash.java
deleted file mode 100644
index 4085c221d8..0000000000
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q00588_HeadOnCrash.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 Q00588_HeadOnCrash extends Quest
-{
- private static final int START_NPC = 33796;
-
- public Q00588_HeadOnCrash()
- {
- super(588);
- 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 9b6b9a1184..99544ca661 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
@@ -39,7 +39,6 @@
557 Red Libra Request - Fall of Etina
558 Red Libra Request - Sea of Spores
559 Request from the Red Libra Guild - Krofin's Nest
-568 Special Mission: Nornil's Cave
570 Special Mission: Kartia's Labyrinth (Party)
571 Special Mission: Proof of Unity (Field Raid)
572 Special Mission: Proof of Courage (Field Raid)
@@ -49,7 +48,6 @@
578 Basic Mission: Cemetery
585 Can't Go Against the Time
586 Mutated Creatures
-588 Head-on Crash
591 Great Ambitions
592 Snow's Plea - Monsters from Three Areas
593 Basic Mission: Pagan Temple
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-01.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-01.html
new file mode 100644
index 0000000000..cf3e0aa25f
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-01.html
@@ -0,0 +1,4 @@
+Tapoy:
+ Do you have something else you need?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-02.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-02.html
new file mode 100644
index 0000000000..e1360ff7e7
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-02.html
@@ -0,0 +1,6 @@
+Tapoy:
+Are you here on a mission from the Adventure Guild? I've seen many who are. If so, I'll explain the details.
+You'll have to select Dark Elf Village from the teleport link I give you and go there. The area for an active mission will appear at the top of the teleport list so it won't be hard to find.
+But you have to watch out for one thing.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-03.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-03.html
new file mode 100644
index 0000000000..fcb638c859
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-03.html
@@ -0,0 +1,4 @@
+Tapoy:
+There's no Gatekeeper in the Dark Elf Village. In the past, there had been a Gatekeeper, however, now, due to a tragic accident, there is only a Teleport Device.
+Anyway, there's no other option. Go and check the missions.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-04.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-04.html
new file mode 100644
index 0000000000..fcb638c859
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/30499-04.html
@@ -0,0 +1,4 @@
+Tapoy:
+There's no Gatekeeper in the Dark Elf Village. In the past, there had been a Gatekeeper, however, now, due to a tragic accident, there is only a Teleport Device.
+Anyway, there's no other option. Go and check the missions.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-01.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-01.html
new file mode 100644
index 0000000000..727212aebb
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-01.html
@@ -0,0 +1,5 @@
+Heset:
+I asked the Adventure Guild to send an adventurer but didn't expect they would send you. I'd like to see how good you are.
+(To do "Basic Mission: Isle of Souls," you must do "Uncover the Secret" and "More Aggressive Operation" through Black Wizard Lapathia.)
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-02.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-02.html
new file mode 100644
index 0000000000..7e438f0e2c
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-02.html
@@ -0,0 +1,5 @@
+Heset:
+You completed all the missions I gave you, meaning that you also completed those of the Adventure Guildsman. Are you going back to the Town of Aden? How?
+Don't tell me you're going to walk all the way up there. I know a better way.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-03.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-03.html
new file mode 100644
index 0000000000..8ad5d85470
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-03.html
@@ -0,0 +1,4 @@
+Heset:
+When setting out for a joumey, veteran adventurers always pack Scrolls of Escape, it teleports the user immediately to the closest village or to the check point.
+If you have these useful items, you can move easily after hunting or when you are far away from the village. Since you've been a great help to me, I'll give you the scroll that can teleport you directly to the Town of Aden.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-04.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-04.html
new file mode 100644
index 0000000000..d8f5cf572e
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-04.html
@@ -0,0 +1,5 @@
+Heset:
+You can use the scroll now or later. Just don't forget to pack enough Scrolls of Escape once you retum to town.
+You can easily buy Scrolls of Escape at stores. Be safe until we meet again.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-05.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-05.html
new file mode 100644
index 0000000000..8726c112ef
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/33780-05.html
@@ -0,0 +1,5 @@
+Heset:
+You completed all the missions I gave you, meaning that you also completed those of the Adventure Guildsman. Are you going back to the Town of Aden? How?
+Don't tell me you're going to walk all the way up there. I know a better way.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-00.htm
new file mode 100644
index 0000000000..35c37e687a
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-00.htm
@@ -0,0 +1,4 @@
+Truth Seeker Devianne:
+In order to take on this mission, you must first build more trust with us.
+(Only characters with faction level 5 or above with the Blackbird Clan may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-01.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-01.htm
new file mode 100644
index 0000000000..05c85abeb2
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-01.htm
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Your're the one that Hephah has sent, right? If not, you should go meet Herphah and receive a mission from her before you continue. If you think it doesn't matter, I can continue anyway. Do you want me to continue?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-02.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-02.htm
new file mode 100644
index 0000000000..eeb5960f1d
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-02.htm
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Herphah wants you to do some missions, and I'll chose an appropriate mission depending on your relationship with us at the Adventure Guild.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-03.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-03.htm
new file mode 100644
index 0000000000..e7179bf0f0
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-03.htm
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Your mission is to assist with the task at the Altar of Evil. If successful, our Adventure Guild will give you additional rewards on top of the mission payment and your relationship with our faction will grow even stronger.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-04.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-04.htm
new file mode 100644
index 0000000000..b6a29bc3d6
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-04.htm
@@ -0,0 +1,5 @@
+Adventure Guildsman Penny:
+You've already leamed everything you need to know about the mission. By that I mean, how to go to the Altar of Evil. You should be able to start the mission right away without further explanation.
+But if you want to listen to the explanation again, I'd be happy to tell you.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-05.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-05.html
new file mode 100644
index 0000000000..b6dd01273d
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-05.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Good choice. Now, go to Black Wizard Lapathia at the Altar of Evil and do the mission that she gives you. When the mission is done, come back to me.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-06.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-06.html
new file mode 100644
index 0000000000..c04a739296
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-06.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Welcome back! So, did you do a good job?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-07.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-07.html
new file mode 100644
index 0000000000..a88cd54592
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-07.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+Thanks, you've done a great job! I'm sure eveyone in the Adventure Guild will know your name now. If there is another opportunity, we'd love for you to help us again. Good luck and farewell!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-08.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-08.html
new file mode 100644
index 0000000000..190351d034
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-08.html
@@ -0,0 +1,3 @@
+Adventure Guildsman Penny:
+To do the mission, you have to go to Black Wizard Lapathia at the Altar of Evil. Do the mission that Lapathia gives. Then, come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-09.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-09.html
new file mode 100644
index 0000000000..ab1c194642
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-09.html
@@ -0,0 +1,5 @@
+Adventure Guildsman Penny:
+I'm sure the Gatekeeper of the town, Gatekeeper Elise, could give you a better explanation. Go to her and ask how you can go to the Altar of Evil. She's very friendly so don't be shy.
+If you anive successfully, meet the black wizard, Lapathia, and ask about the mission.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-10.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-10.html
new file mode 100644
index 0000000000..3ecc46dbe2
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/34413-10.html
@@ -0,0 +1,4 @@
+Adventure Guildsman Penny:
+You need to leam how to get there first. Go to Gatekeeper Elise and ask how to go to the Altar of Evil. She will give you a detailed explanation.
+If you arive successfully, meet the black wizard, Lapathia, and ask about the mission.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/Q00568_SpecialMissionNornilsCave.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/Q00568_SpecialMissionNornilsCave.java
new file mode 100644
index 0000000000..f2635a4b38
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/Q00568_SpecialMissionNornilsCave.java
@@ -0,0 +1,261 @@
+/*
+ * 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.Q00568_SpecialMissionNornilsCave;
+
+import org.l2jmobius.gameserver.enums.Faction;
+import org.l2jmobius.gameserver.enums.QuestType;
+import org.l2jmobius.gameserver.model.Location;
+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;
+
+/**
+ * Special Mission: Nornil's Cave (568)
+ * @URL https://l2wiki.com/Special_Mission:_Nornil%27s_Cave
+ * @author Dmitri
+ */
+public class Q00568_SpecialMissionNornilsCave extends Quest
+{
+ // NPCs
+ private static final int PENNY = 34413;
+ private static final int HESET = 33780;
+ private static final int TAPOY = 30499;
+ // Rewards
+ private static final int SCROLL_OF_ESCAPE_NORNIL_CAVE = 39503;
+ private static final int SCROLL_OF_ESCAPE_TOWN_OF_ADEN = 48413;
+ // Misc
+ private static final int MIN_LEVEL = 93;
+ private static final int MAX_LEVEL = 95;
+ // Location
+ private static final Location TOWN_OF_ADEN = new Location(146632, 26760, -2213);
+
+ public Q00568_SpecialMissionNornilsCave()
+ {
+ super(568);
+ addStartNpc(PENNY);
+ addTalkId(PENNY, HESET, TAPOY);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "nolevel.html");
+ addFactionLevel(Faction.ADVENTURE_GUILD, 5, "34413-00.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+
+ if (qs == null)
+ {
+ return null;
+ }
+
+ String htmltext = null;
+ switch (event)
+ {
+ case "34413-02.htm":
+ case "34413-03.htm":
+ case "34413-06.html":
+ case "34413-07.html":
+ case "30499-02.html":
+ case "33780-02.html":
+ {
+ htmltext = event;
+ break;
+ }
+ case "34413-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "34413-08.html": // PENNY
+ {
+ qs.setCond(2, true);
+ htmltext = event;
+ break;
+ }
+ case "30499-03.html": // TAPOY
+ {
+ qs.setCond(3, true);
+ htmltext = event;
+ break;
+ }
+ case "33780-03.html": // HESET
+ {
+ qs.setCond(5, true);
+ htmltext = event;
+ break;
+ }
+ case "33780-05.html": // HESET
+ {
+ giveItems(player, SCROLL_OF_ESCAPE_TOWN_OF_ADEN, 1);
+ htmltext = event;
+ break;
+ }
+ case "usescroll":
+ {
+ // TODO: force player to use item SCROLL_OF_ESCAPE_TOWN_OF_ADEN
+ player.teleToLocation(TOWN_OF_ADEN); // Town of Aden near Npc Penny - temp solution
+ takeItems(player, SCROLL_OF_ESCAPE_TOWN_OF_ADEN, -1); // remove SOE - temp solution
+ break;
+ }
+ case "34413-10.html":
+ {
+ final StringBuilder str = new StringBuilder("00");
+ checkQuestCompleted(player, str); // Initialize the array with all quests completed
+
+ if (str.indexOf("11") != -1) // verify if all quests completed
+ {
+ giveItems(player, SCROLL_OF_ESCAPE_NORNIL_CAVE, 1);
+ addExpAndSp(player, 2386605060L, 2386560);
+ addFactionPoints(player, Faction.ADVENTURE_GUILD, 260); // add FP points to ADVENTURE_GUILD Faction
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = "34413-08.html";
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ if (npc.getId() == PENNY)
+ {
+ htmltext = "34413-01.htm";
+ }
+ break;
+ }
+ case State.STARTED:
+ {
+ switch (npc.getId())
+ {
+ case PENNY:
+ {
+ if (qs.getCond() == 1)
+ {
+ htmltext = "34413-05.html";
+ }
+ else if (qs.getCond() == 2)
+ {
+ htmltext = "34413-08.html";
+ }
+ else if (qs.getCond() == 6)
+ {
+ htmltext = "34413-09.html";
+ }
+ break;
+ }
+ case TAPOY:
+ {
+ if (qs.getCond() == 2)
+ {
+ htmltext = "30499-01.html";
+ }
+ else if (qs.getCond() == 3)
+ {
+ final QuestState st = player.getQuestState("Q10386_MysteriousJourney");
+ if ((st != null) && st.isCompleted())
+ {
+ qs.setCond(4, true);
+ htmltext = null;
+ }
+ else
+ {
+ htmltext = "30499-03.html";
+ }
+ }
+ else if (qs.getCond() == 4)
+ {
+ htmltext = "30499-04.html";
+ }
+ break;
+ }
+ case HESET:
+ {
+ if (qs.getCond() == 4)
+ {
+ htmltext = "33780-01.html";
+ }
+ else if (qs.getCond() == 5)
+ {
+ final StringBuilder str = new StringBuilder("00");
+ checkQuestCompleted(player, str); // Initialize the array with all quests completed
+ if (str.indexOf("11") != -1) // verify if all quests completed
+ {
+ qs.setCond(6, true);
+ htmltext = "33780-04.html";
+ }
+ else
+ {
+ htmltext = "33780-03.html";
+ }
+ }
+ break;
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (qs.isNowAvailable())
+ {
+ qs.setState(State.CREATED);
+ htmltext = "34413-01.htm";
+ }
+ else
+ {
+ htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ private StringBuilder checkQuestCompleted(PlayerInstance player, StringBuilder string)
+ {
+ int index = 0;
+ final char ch = '1';
+ final QuestState st1 = player.getQuestState("Q00753_ReactingToACrisis");
+ if ((st1 != null) && st1.isCompleted())
+ {
+ index = 0;
+ string.setCharAt(index, ch);
+ }
+ final QuestState st2 = player.getQuestState("Q00588_HeadOnCrash");
+ if ((st2 != null) && st2.isCompleted())
+ {
+ index = 1;
+ string.setCharAt(index, ch);
+ }
+ return string;
+ }
+}
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/nolevel.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/nolevel.html
new file mode 100644
index 0000000000..66fbe6d5db
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00568_SpecialMissionNornilsCave/nolevel.html
@@ -0,0 +1,4 @@
+Penny:
+I don't understand why someone like you is interested in this mission?
+(Only characters above Lv.93-95.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-00.htm
new file mode 100644
index 0000000000..18729b0786
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-00.htm
@@ -0,0 +1,4 @@
+Bern:
+Hmm ... For you, as long as there is no work.
+(This quest is available once a day. Updating quest takes place daily at 6:30 am.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-01.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-01.htm
new file mode 100644
index 0000000000..7c5a8dfd79
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-01.htm
@@ -0,0 +1,4 @@
+Bern:
+Wanderer Wanderer! You are just in time! I need your help .. coming contamination on all of us .. help us, we need such brave war like you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-02.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-02.htm
new file mode 100644
index 0000000000..15d5bb97b1
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-02.htm
@@ -0,0 +1,5 @@
+Bern:
+We were closing in Golem shaped monsters infect us and our children, they have a machine "Devices Creating Golem" and only 5 but we do not force ... In addition, some of them kept the keys to the cells they store materials that are collected for reproduction itself, collect at least 30 of the Keys to the Red Door. I'll help you, here is a list of monsters in which they are kept:
+Scout Nornil 1, spicules Warrior 1, Scout Nornil 2, spicules Warrior 2, spicules Ratnikov Commander (1) Commander Ratnikov spicules (2), spicules Adjutant Ratnikov ...
+Thank you, O brave warrior, we're waiting for you with good news!
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-03.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-03.html
new file mode 100644
index 0000000000..840066b345
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-03.html
@@ -0,0 +1,5 @@
+Bern:
+We were closing in Golem shaped monsters infect us and our children, they have a machine "Devices Creating Golem" and only 5 but we do not force ... In addition, some of them kept the keys to the cells they store materials that are collected for reproduction itself, collect at least 30 of the Keys to the Red Door. I'll help you, here is a list of monsters in which they are kept:
+Scout Nornil 1, spicules Warrior 1, Scout Nornil 2, spicules Warrior 2, spicules Ratnikov Commander (1) Commander Ratnikov spicules (2), spicules Adjutant Ratnikov ...
+Thank you, O brave warrior, we're waiting for you with good news!
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-04.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-04.html
new file mode 100644
index 0000000000..ed824d96f3
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-04.html
@@ -0,0 +1,4 @@
+Bern:
+I have heard of your exploits! You brought all that I asked for?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-05.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-05.html
new file mode 100644
index 0000000000..93f104218b
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/33796-05.html
@@ -0,0 +1,4 @@
+Bern:
+Thank you, we are all indebted to you!
+However, this is very small, we only recaptured the golems for a few days, they can launch an attack at any moment .. That's your reward for your lion heart! But you know may need your help at any time!
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/Q00588_HeadOnCrash.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/Q00588_HeadOnCrash.java
new file mode 100644
index 0000000000..f0739b21c1
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/Q00588_HeadOnCrash.java
@@ -0,0 +1,163 @@
+/*
+ * 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.Q00588_HeadOnCrash;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.l2jmobius.gameserver.enums.QuestSound;
+import org.l2jmobius.gameserver.enums.QuestType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+import org.l2jmobius.gameserver.network.NpcStringId;
+
+/**
+ * Head-on Crash (588)
+ * @URL https://l2wiki.com/Head-on_Crash
+ * @author Dmitri
+ */
+public class Q00588_HeadOnCrash extends Quest
+{
+ // Npc
+ private static final int BERNA = 33796;
+ // Monsters
+ private static final int SPICULA_LARVA = 23304;
+ // Misc
+ private static final String KILL_COUNT_VAR = "KillCount";
+ private static final int MIN_LEVEL = 93;
+ private static final int MAX_LEVEL = 103;
+
+ public Q00588_HeadOnCrash()
+ {
+ super(588);
+ addStartNpc(BERNA);
+ addTalkId(BERNA);
+ addKillId(SPICULA_LARVA);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "lvl.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return getNoQuestMsg(player);
+ }
+
+ switch (event)
+ {
+ case "33796-02.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33796-05.html":
+ {
+ giveAdena(player, 587070, true);
+ addExpAndSp(player, 1193302530L, 1193280);
+ qs.exitQuest(QuestType.DAILY, true);
+ htmltext = event;
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ if (npc.getId() == BERNA)
+ {
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33796-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ if (qs.isCond(1))
+ {
+ htmltext = "33796-03.html";
+ }
+ else if (qs.isCond(2))
+ {
+ htmltext = "33796-04.html";
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (!qs.isNowAvailable())
+ {
+ htmltext = "33796-00.htm";
+ break;
+ }
+ qs.setState(State.CREATED);
+ // fallthrough
+ }
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
+ if (killCount < 5)
+ {
+ qs.set(KILL_COUNT_VAR, killCount);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ sendNpcLogList(killer);
+ }
+ else
+ {
+ qs.setCond(2, true);
+ qs.unset(KILL_COUNT_VAR);
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ @Override
+ public Set getNpcLogList(PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_SPICULA_LARVA.getId(), true, qs.getInt(KILL_COUNT_VAR)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/lvl.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/lvl.htm
new file mode 100644
index 0000000000..fa3a034069
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q00588_HeadOnCrash/lvl.htm
@@ -0,0 +1,4 @@
+Bern:
+Hmm ... For you, as long as there is no work.
+(This quest is available after reaching level 93-103.)
+
\ No newline at end of file
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 463dd802ca..e3ac15e3d0 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
@@ -56,10 +56,12 @@ import quests.Q00553_OlympiadUndefeated.Q00553_OlympiadUndefeated;
import quests.Q00561_BasicMissionHarnakUndergroundRuins.Q00561_BasicMissionHarnakUndergroundRuins;
import quests.Q00564_BasicMissionKartiasLabyrinthSolo.Q00564_BasicMissionKartiasLabyrinthSolo;
import quests.Q00567_BasicMissionIsleOfSouls.Q00567_BasicMissionIsleOfSouls;
+import quests.Q00568_SpecialMissionNornilsCave.Q00568_SpecialMissionNornilsCave;
import quests.Q00569_BasicMissionSealOfShilen.Q00569_BasicMissionSealOfShilen;
import quests.Q00574_SpecialMissionNornilsGarden.Q00574_SpecialMissionNornilsGarden;
import quests.Q00580_BeyondTheMemories.Q00580_BeyondTheMemories;
import quests.Q00587_MoreAggressiveOperation.Q00587_MoreAggressiveOperation;
+import quests.Q00588_HeadOnCrash.Q00588_HeadOnCrash;
import quests.Q00600_KeyToTheRefiningProcess.Q00600_KeyToTheRefiningProcess;
import quests.Q00618_IntoTheFlame.Q00618_IntoTheFlame;
import quests.Q00620_FourGoblets.Q00620_FourGoblets;
@@ -248,7 +250,6 @@ import quests.custom.Q10529_IvoryTowersResearchFloatingSeaJournal.Q10529_IvoryTo
import quests.custom.Q10533_OrfensAmbition.Q10533_OrfensAmbition;
import quests.not_done.Q00282_ADayOfKindnessAndCaring;
import quests.not_done.Q00504_CompetitionForTheBanditStronghold;
-import quests.not_done.Q00568_SpecialMissionNornilsCave;
import quests.not_done.Q00570_SpecialMissionKartiasLabyrinthParty;
import quests.not_done.Q00571_SpecialMissionProofOfUnityFieldRaid;
import quests.not_done.Q00572_SpecialMissionProofOfCourageFieldRaid;
@@ -258,7 +259,6 @@ import quests.not_done.Q00577_BasicMissionSilentValley;
import quests.not_done.Q00578_BasicMissionCemetery;
import quests.not_done.Q00585_CantGoAgainstTheTime;
import quests.not_done.Q00586_MutatedCreatures;
-import quests.not_done.Q00588_HeadOnCrash;
import quests.not_done.Q00591_GreatAmbitions;
import quests.not_done.Q00593_BasicMissionPaganTemple;
import quests.not_done.Q00594_BasicMissionDimensionalRift;
@@ -379,7 +379,7 @@ public class QuestMasterHandler
Q00561_BasicMissionHarnakUndergroundRuins.class,
Q00564_BasicMissionKartiasLabyrinthSolo.class,
Q00567_BasicMissionIsleOfSouls.class,
- Q00568_SpecialMissionNornilsCave.class, // TODO: Not done.
+ Q00568_SpecialMissionNornilsCave.class,
Q00569_BasicMissionSealOfShilen.class,
Q00570_SpecialMissionKartiasLabyrinthParty.class, // TODO: Not done.
Q00571_SpecialMissionProofOfUnityFieldRaid.class, // TODO: Not done.
@@ -393,7 +393,7 @@ public class QuestMasterHandler
Q00585_CantGoAgainstTheTime.class, // TODO: Not done.
Q00586_MutatedCreatures.class, // TODO: Not done.
Q00587_MoreAggressiveOperation.class,
- Q00588_HeadOnCrash.class, // TODO: Not done.
+ Q00588_HeadOnCrash.class,
Q00589_ASecretChange.class, // FIXME: Custom.
Q00590_ToEachTheirOwn.class, // FIXME: Custom.
Q00591_GreatAmbitions.class, // TODO: Not done.
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q00568_SpecialMissionNornilsCave.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q00568_SpecialMissionNornilsCave.java
deleted file mode 100644
index 3d0bd9d7bb..0000000000
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q00568_SpecialMissionNornilsCave.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 Q00568_SpecialMissionNornilsCave extends Quest
-{
- private static final int START_NPC = 34413;
-
- public Q00568_SpecialMissionNornilsCave()
- {
- super(568);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q00588_HeadOnCrash.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q00588_HeadOnCrash.java
deleted file mode 100644
index 4085c221d8..0000000000
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q00588_HeadOnCrash.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 Q00588_HeadOnCrash extends Quest
-{
- private static final int START_NPC = 33796;
-
- public Q00588_HeadOnCrash()
- {
- super(588);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}