Chesha:
+All of the people on the Talking Island were killed when the Airborne Island dropped onto Ye Sagira. The dead then became the source of energy for the monsters there...
+The monsters may look like the townspeople, but we can't let them just roam around either.
+
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-02.htm b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-02.htm
new file mode 100644
index 0000000000..3dfccf85a6
--- /dev/null
+++ b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-02.htm
@@ -0,0 +1,6 @@
+Chesha:
+Rangers never let emotion get in the way of their work.
+Show me what you've got. Know that the monsters were created from the bodies of people sacrificed here, but know that they are gone, and monsters do not care of their origins.
+Can you do as I said?
+
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-03.htm b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-03.htm
new file mode 100644
index 0000000000..4d33ffc26a
--- /dev/null
+++ b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-03.htm
@@ -0,0 +1,5 @@
+Chesha:
+Good. I will trust you.
+Clear up horrible situation by killing 10 Husk Stalkers and 5 Husk Crawlers in Exploration Zone 1.
+I will see you after the mission is complete.
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-04.html b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-04.html
new file mode 100644
index 0000000000..259eacfc87
--- /dev/null
+++ b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-04.html
@@ -0,0 +1,3 @@
+Chesha:
+Defeat 10 Husk Stalkers and 5 Husk Crawlers.
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-05.html b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-05.html
new file mode 100644
index 0000000000..a5069e5b8a
--- /dev/null
+++ b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-05.html
@@ -0,0 +1,5 @@
+Chesha:
+You've done well...
+Listen, Nagel needs someone like you. He's the seeker in Exploration Region 2. He's too kind to be here, and says he hears things...
+Go to him and encourage him as best you can. Oh, and use the Red Ye Sagira Teleport Device.
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-06.html b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-06.html
new file mode 100644
index 0000000000..93a9ab7b14
--- /dev/null
+++ b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33449-06.html
@@ -0,0 +1,4 @@
+Chesha:
+Have you met Nagel yet? A seeker should find his way...
+Nagel is in Exploration Region 2. You can use the Red Ye Sagira Teleport Device to reach him.
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33450-01.html b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33450-01.html
new file mode 100644
index 0000000000..d5284a517c
--- /dev/null
+++ b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33450-01.html
@@ -0,0 +1,6 @@
+Nagel:
+How long will I have to stay here?
+I don't mind the days, but at night, this place get decidedly creepy. You know that the monsters here were created from the ashes of the dead townspeople, right? You know that they are death personified, and exist only murder and maim?
+Why did you come here?
+
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33450-02.html b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33450-02.html
new file mode 100644
index 0000000000..d288ed746d
--- /dev/null
+++ b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33450-02.html
@@ -0,0 +1,6 @@
+Nagel:
+Haha! Brilliant!
+Well, either Chesha has absoulte faith in you, or has something against you.
+You know, it's not even the threat of death that scares me anymore. Death's fine. It's the long, drawn out threat of it that drives me insane...
+
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33450-03.html b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33450-03.html
new file mode 100644
index 0000000000..f9f48cf4d5
--- /dev/null
+++ b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/33450-03.html
@@ -0,0 +1,4 @@
+Nagel:
+Yes! Do you not hear the crying?
+It never ends. It's driving me insane...
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/Q10362_CertificationOfTheSeeker.java b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/Q10362_CertificationOfTheSeeker.java
new file mode 100644
index 0000000000..392e83b488
--- /dev/null
+++ b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/Q10362_CertificationOfTheSeeker.java
@@ -0,0 +1,203 @@
+/*
+ * Copyright (C) 2004-2015 L2J Server
+ *
+ * This file is part of L2J Server.
+ *
+ * L2J Server 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.
+ *
+ * L2J Server 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.Q10362_CertificationOfTheSeeker;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import quests.Q10361_RolesOfTheSeeker.Q10361_RolesOfTheSeeker;
+
+import com.l2jserver.gameserver.model.actor.L2Npc;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.holders.ItemHolder;
+import com.l2jserver.gameserver.model.quest.Quest;
+import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.model.quest.State;
+import com.l2jserver.gameserver.network.NpcStringId;
+import com.l2jserver.gameserver.network.serverpackets.ExQuestNpcLogList;
+import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
+import com.l2jserver.gameserver.util.Util;
+
+/**
+ * Certification of the Seeker (10362)
+ * @author spider
+ */
+public class Q10362_CertificationOfTheSeeker extends Quest
+{
+ // NPCs
+ private static final int CHESHA = 33449;
+ private static final int NAGEL = 33450;
+ // Monsters
+ private static final int CRAWLER = 22991;
+ private static final int STALKER = 22992;
+ private static final Map MOBS_REQUIRED = new HashMap<>();
+ {
+ MOBS_REQUIRED.put(CRAWLER, 5);
+ MOBS_REQUIRED.put(STALKER, 10);
+ }
+ // Rewards
+ private static final int ADENA_REWARD = 43000;
+ private static final int EXP_REWARD = 50000;
+ private static final int SP_REWARD = 12;
+ private static final ItemHolder GLOVES = new ItemHolder(49, 1);
+ private static final ItemHolder HEALING_POTIONS = new ItemHolder(1060, 50);
+ // Others
+ private static final int MIN_LEVEL = 10;
+ private static final int MAX_LEVEL = 20;
+
+ public Q10362_CertificationOfTheSeeker()
+ {
+ super(10362, Q10362_CertificationOfTheSeeker.class.getSimpleName(), "Certification of the Seeker");
+ addStartNpc(CHESHA);
+ addTalkId(CHESHA, NAGEL);
+ addKillId(CRAWLER, STALKER);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "no_level.htm");
+ addCondCompletedQuest(Q10361_RolesOfTheSeeker.class.getSimpleName(), "no_prequest.html");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return null;
+ }
+
+ String htmltext = null;
+ switch (event)
+ {
+ case "33449-02.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33449-03.htm": // start the quest
+ {
+ qs.startQuest();
+ qs.set(Integer.toString(CRAWLER), 0);
+ qs.set(Integer.toString(STALKER), 0);
+ htmltext = event;
+ break;
+ }
+ case "33450-02.html":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33450-03.html": // exit quest
+ {
+ giveAdena(player, ADENA_REWARD, true);
+ addExpAndSp(player, EXP_REWARD, SP_REWARD);
+ giveItems(player, GLOVES);
+ giveItems(player, HEALING_POTIONS);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = null;
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = npc.getId() == CHESHA ? "33449-01.htm" : getNoQuestMsg(player);
+ break;
+ }
+ case State.STARTED:
+ {
+ if (qs.isCond(1))
+ {
+ htmltext = npc.getId() == CHESHA ? "33449-04.html" : getNoQuestMsg(player);
+ }
+ else if (qs.isCond(2))
+ {
+ if (npc.getId() == CHESHA) // mobs defeated
+ {
+ htmltext = "33449-05.html";
+ showOnScreenMsg(player, NpcStringId.USE_THE_YE_SAGIRA_TELEPORT_DEVICE_TO_GO_TO_EXPLORATION_AREA_2, ExShowScreenMessage.TOP_CENTER, 5000);
+ qs.setCond(3);
+ qs.unset(Integer.toString(CRAWLER));
+ qs.unset(Integer.toString(STALKER));
+ }
+ else
+ {
+ htmltext = getNoQuestMsg(player);
+ }
+ }
+ else
+ {
+ htmltext = npc.getId() == CHESHA ? "33449-06.html" : "33450-01.html";
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
+ if ((qs != null) && qs.isStarted() && qs.isCond(1) && (Util.checkIfInRange(1500, npc, qs.getPlayer(), false)))
+ {
+ int kills = 0;
+ switch (npc.getId())
+ {
+ case CRAWLER:
+ {
+ kills = qs.getInt(Integer.toString(CRAWLER));
+ kills++;
+ qs.set(Integer.toString(CRAWLER), kills);
+ break;
+ }
+ case STALKER:
+ {
+ kills = qs.getInt(Integer.toString(STALKER));
+ kills++;
+ qs.set(Integer.toString(STALKER), kills);
+ break;
+ }
+ }
+
+ ExQuestNpcLogList log = new ExQuestNpcLogList(getId());
+ log.addNpc(CRAWLER, qs.getInt(Integer.toString(CRAWLER)));
+ log.addNpc(STALKER, qs.getInt(Integer.toString(STALKER)));
+ killer.sendPacket(log);
+
+ if (((qs.getInt(Integer.toString(CRAWLER)) >= MOBS_REQUIRED.get(CRAWLER)) && (qs.getInt(Integer.toString(STALKER)) >= MOBS_REQUIRED.get(STALKER))))
+ {
+ qs.setCond(2);
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+}
diff --git a/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/no_level.htm b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/no_level.htm
new file mode 100644
index 0000000000..4a2589974c
--- /dev/null
+++ b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/no_level.htm
@@ -0,0 +1,3 @@
+You don't meet level requirements
+(Quest available from level 10 to level 20)
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/no_prequest.html b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/no_prequest.html
new file mode 100644
index 0000000000..3343f3b538
--- /dev/null
+++ b/trunk/dist/game/data/scripts/quests/Q10362_CertificationOfTheSeeker/no_prequest.html
@@ -0,0 +1,2 @@
+To begin this quest, you need to complete Roles of the Seeker quest first.
+
\ No newline at end of file
diff --git a/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java b/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java
index 5952fc4334..f0cf72c187 100644
--- a/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java
+++ b/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java
@@ -205,6 +205,7 @@ import quests.Q10338_SeizeYourDestiny.Q10338_SeizeYourDestiny;
import quests.Q10358_DividedSakumPoslof.Q10358_DividedSakumPoslof;
import quests.Q10359_SakumsTrace.Q10359_SakumsTrace;
import quests.Q10361_RolesOfTheSeeker.Q10361_RolesOfTheSeeker;
+import quests.Q10362_CertificationOfTheSeeker.Q10362_CertificationOfTheSeeker;
import quests.Q10365_SeekerEscort.Q10365_SeekerEscort;
import quests.Q10368_RebellionOfMonsters.Q10368_RebellionOfMonsters;
import quests.Q10390_KekropusLetter.Q10390_KekropusLetter;
@@ -430,6 +431,7 @@ public class QuestMasterHandler
Q10358_DividedSakumPoslof.class,
Q10359_SakumsTrace.class,
Q10361_RolesOfTheSeeker.class,
+ Q10362_CertificationOfTheSeeker.class,
Q10365_SeekerEscort.class,
Q10368_RebellionOfMonsters.class,
Q10390_KekropusLetter.class,