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 11c07cf0de..a19a8a80fc 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
@@ -201,5 +201,4 @@
10888 Savior's Path - Defeat the Embryo
10889 Savior's Path - Fallen Emperor's Throne
10890 Savior's Path - Fall of Etina
-10892 Revenge, One Step at a Time
10893 End of Twisted Fate
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-00.htm
new file mode 100644
index 0000000000..d55d7ffb43
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-00.htm
@@ -0,0 +1,4 @@
+
Leona Blackbird:
+Hey, this place is dangerous! You shouldn't be here.
+(Only characters above Lv. 103 and Blackbird Clan amity level 10 and above faction.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-01.htm
new file mode 100644
index 0000000000..2363cd10e2
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-01.htm
@@ -0,0 +1,4 @@
+Leona Blackbird:
+That seal is something that only a few people can have. You must have been recognized by a member of the Blackbird clan.
+Am I right?
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-02.htm
new file mode 100644
index 0000000000..5844475ace
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-02.htm
@@ -0,0 +1,5 @@
+Leona Blackbird:
+Oh, Elikia? Then I know I can trust you.
+But... Did Elikia send you to bring me back? I can't just leave...
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-04.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-04.htm
new file mode 100644
index 0000000000..6aa6c2214e
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-04.htm
@@ -0,0 +1,5 @@
+Leona Blackbird:
+A problem? Well, it might not be a problem really. I was captured by the Embryo, and was saved by the Aden Vanguard member, Eliyah.
+After I was recued, I've been trying to carry out Leona's mission. But it's been hard since the Embryo are getting stronger by the day. I haven't been able to recover fully.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-05.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-05.htm
new file mode 100644
index 0000000000..26d9f868f3
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-05.htm
@@ -0,0 +1,5 @@
+Leona Blackbird:
+I know that Elikia is worried, but I must carry out Leona's mission. To do that, I have to recover as soon as possible and find out what the Embryo are up to.
+Can you buy me some time to recover and go kill 250 Atelia Passionate Soldiers, Atelia Elite Captains, Atelia High Priests, Fortress Archons, and Atelia Flame Masters?
+We should be able to keep the stronghold safe and I'll have more time to recover. I'm counting on you.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-06.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-06.html
new file mode 100644
index 0000000000..f3371fcbc9
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-06.html
@@ -0,0 +1,3 @@
+Leona Blackbird:
+This isn't enough. I need more time to recover. Can you kill 250 Atelia Passionate Soldiers, Atelia Elite Captains, Atelia High Priests, Fortress Dark Wizards, Fortress Archons, and Atelia Flame Masters? We need to make sure that they don't threaten the stronghold.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-07.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-07.html
new file mode 100644
index 0000000000..932d6dd644
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-07.html
@@ -0,0 +1,5 @@
+Leona Blackbird:
+Did you carry out my request?
+I think I'm recovering well.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-08.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-08.html
new file mode 100644
index 0000000000..e980d0a395
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-08.html
@@ -0,0 +1,4 @@
+Leona Blackbird:
+Thank you. I haven't recovered completely, but I will have no problem carrying out Leona's mission.
+Did Elikia tell you to bring me back? I'm sorry, but I can't do that. I'll give you this letter though, so please take it to Elikia. I'm doing just fine. Thanks.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/Q10892_RevengeOneStepAtATime.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/Q10892_RevengeOneStepAtATime.java
new file mode 100644
index 0000000000..e5619457d2
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/Q10892_RevengeOneStepAtATime.java
@@ -0,0 +1,215 @@
+/*
+ * 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.Q10892_RevengeOneStepAtATime;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.l2jmobius.commons.util.CommonUtil;
+import org.l2jmobius.gameserver.enums.Faction;
+import org.l2jmobius.gameserver.enums.QuestSound;
+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;
+
+/**
+ * Revenge, One Step at a Time (10892)
+ * @URL https://l2wiki.com/Revenge,_One_Step_at_a_Time
+ * @author Dmitri
+ */
+public class Q10892_RevengeOneStepAtATime extends Quest
+{
+ // NPCs
+ private static final int LEONA = 34425; // Blackbird Clan Lord: Leona Blackbird
+ private static final int[] MONSTERS =
+ {
+ 24144, // Death Rogue
+ 24145, // Death Shooter
+ 24146, // Death Warrior
+ 24147, // Death Sorcerer
+ 24148, // Death Pondus
+ 24149, // Devil Nightmare
+ 24150, // Devil Warrior
+ 24151, // Devil Guardian
+ 24152, // Devil Sinist
+ 24153, // Devil Varos
+ 24154, // Demonic Wizard
+ 24155, // Demonic Warrior
+ 24156, // Demonic Archer
+ 24157, // Demonic Keras
+ 24158, // Demonic Weiss
+ 24159, // Atelia Yuyurina
+ 24160 // Atelia Popobena
+ };
+ private static final int[] GUARDIAN =
+ {
+ 24161, // Harke
+ 24162, // Ergalion
+ 24163 // Spira
+ };
+ // Reward
+ private static final int RUNE_STONE = 39738;
+ private static final int ELCYUM_CRYSTAL = 36514;
+ // Misc
+ private static final int MIN_LEVEL = 103;
+
+ public Q10892_RevengeOneStepAtATime()
+ {
+ super(10892);
+ addStartNpc(LEONA);
+ addTalkId(LEONA);
+ addKillId(MONSTERS);
+ addKillId(GUARDIAN);
+ addCondMinLevel(MIN_LEVEL, "34425-00.htm");
+ addFactionLevel(Faction.BLACKBIRD_CLAN, 10, "34425-00.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "34425-02.htm":
+ case "34425-04.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "34425-05.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "34425-08.html":
+ {
+ giveItems(player, ELCYUM_CRYSTAL, 3);
+ giveItems(player, RUNE_STONE, 1);
+ addExpAndSp(player, 543832495200L, 543832200);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ if (npc.getId() == LEONA)
+ {
+ htmltext = "34425-01.htm";
+ }
+ break;
+ }
+ case State.STARTED:
+ {
+ switch (npc.getId())
+ {
+ case LEONA:
+ {
+ if (qs.isCond(1))
+ {
+ htmltext = "34425-06.html";
+ }
+ else
+ {
+ htmltext = "34425-07.html";
+ }
+ break;
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+
+ int killedMonsters = qs.getInt("killed_" + MONSTERS[0]);
+ int killedGuardian = qs.getInt("killed_" + GUARDIAN[0]);
+
+ if (CommonUtil.contains(MONSTERS, npc.getId()))
+ {
+ if (killedMonsters < 1000)
+ {
+ killedMonsters++;
+ qs.set("killed_" + MONSTERS[0], killedMonsters);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ }
+ else if (CommonUtil.contains(GUARDIAN, npc.getId()))
+ {
+ if (killedGuardian < 1)
+ {
+ killedGuardian++;
+ qs.set("killed_" + GUARDIAN[0], killedGuardian);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ }
+
+ if ((killedMonsters == 1000) && (killedGuardian == 1))
+ {
+ qs.setCond(2, true);
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ @Override
+ public Set getNpcLogList(PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isStarted() && qs.isCond(1))
+ {
+ final Set npcLogList = new HashSet<>(2);
+ npcLogList.add(new NpcLogListHolder(MONSTERS[0], false, qs.getInt("killed_" + MONSTERS[0])));
+ npcLogList.add(new NpcLogListHolder(GUARDIAN[0], false, qs.getInt("killed_" + GUARDIAN[0])));
+ return npcLogList;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java
index f3f01cde84..54a3a6dbae 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
@@ -448,6 +448,7 @@ import quests.Q10852_TheMotherTreeRevivalProject.Q10852_TheMotherTreeRevivalProj
import quests.Q10856_SuperionAppears.Q10856_SuperionAppears;
import quests.Q10857_SecretTeleport.Q10857_SecretTeleport;
import quests.Q10891_AtANewPlace.Q10891_AtANewPlace;
+import quests.Q10892_RevengeOneStepAtATime.Q10892_RevengeOneStepAtATime;
import quests.custom.Q00589_ASecretChange.Q00589_ASecretChange;
import quests.custom.Q00590_ToEachTheirOwn.Q00590_ToEachTheirOwn;
import quests.not_done.*;
@@ -1005,7 +1006,7 @@ public class QuestMasterHandler
Q10889_SaviorsPathFallenEmperorsThrone.class, // TODO: Not done.
Q10890_SaviorsPathFallOfEtina.class, // TODO: Not done.
Q10891_AtANewPlace.class,
- Q10892_RevengeOneStepAtATime.class, // TODO: Not done.
+ Q10892_RevengeOneStepAtATime.class,
Q10893_EndOfTwistedFate.class, // TODO: Not done.
};
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10892_RevengeOneStepAtATime.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10892_RevengeOneStepAtATime.java
deleted file mode 100644
index b8a2ed8ae9..0000000000
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10892_RevengeOneStepAtATime.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 Q10892_RevengeOneStepAtATime extends Quest
-{
- private static final int START_NPC = 34425;
-
- public Q10892_RevengeOneStepAtATime()
- {
- super(10892);
- 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 c23bcb19d0..e78f8eb49f 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
@@ -209,7 +209,6 @@
10888 Savior's Path - Defeat the Embryo
10889 Savior's Path - Fallen Emperor's Throne
10890 Savior's Path - Fall of Etina
-10892 Revenge, One Step at a Time
10893 End of Twisted Fate
10895 Restrain Queen Krosha
10896 Visit the Adventure Guild
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-00.htm
new file mode 100644
index 0000000000..d55d7ffb43
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-00.htm
@@ -0,0 +1,4 @@
+Leona Blackbird:
+Hey, this place is dangerous! You shouldn't be here.
+(Only characters above Lv. 103 and Blackbird Clan amity level 10 and above faction.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-01.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-01.htm
new file mode 100644
index 0000000000..2363cd10e2
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-01.htm
@@ -0,0 +1,4 @@
+Leona Blackbird:
+That seal is something that only a few people can have. You must have been recognized by a member of the Blackbird clan.
+Am I right?
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-02.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-02.htm
new file mode 100644
index 0000000000..5844475ace
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-02.htm
@@ -0,0 +1,5 @@
+Leona Blackbird:
+Oh, Elikia? Then I know I can trust you.
+But... Did Elikia send you to bring me back? I can't just leave...
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-04.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-04.htm
new file mode 100644
index 0000000000..6aa6c2214e
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-04.htm
@@ -0,0 +1,5 @@
+Leona Blackbird:
+A problem? Well, it might not be a problem really. I was captured by the Embryo, and was saved by the Aden Vanguard member, Eliyah.
+After I was recued, I've been trying to carry out Leona's mission. But it's been hard since the Embryo are getting stronger by the day. I haven't been able to recover fully.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-05.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-05.htm
new file mode 100644
index 0000000000..26d9f868f3
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-05.htm
@@ -0,0 +1,5 @@
+Leona Blackbird:
+I know that Elikia is worried, but I must carry out Leona's mission. To do that, I have to recover as soon as possible and find out what the Embryo are up to.
+Can you buy me some time to recover and go kill 250 Atelia Passionate Soldiers, Atelia Elite Captains, Atelia High Priests, Fortress Archons, and Atelia Flame Masters?
+We should be able to keep the stronghold safe and I'll have more time to recover. I'm counting on you.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-06.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-06.html
new file mode 100644
index 0000000000..f3371fcbc9
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-06.html
@@ -0,0 +1,3 @@
+Leona Blackbird:
+This isn't enough. I need more time to recover. Can you kill 250 Atelia Passionate Soldiers, Atelia Elite Captains, Atelia High Priests, Fortress Dark Wizards, Fortress Archons, and Atelia Flame Masters? We need to make sure that they don't threaten the stronghold.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-07.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-07.html
new file mode 100644
index 0000000000..932d6dd644
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-07.html
@@ -0,0 +1,5 @@
+Leona Blackbird:
+Did you carry out my request?
+I think I'm recovering well.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-08.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-08.html
new file mode 100644
index 0000000000..e980d0a395
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-08.html
@@ -0,0 +1,4 @@
+Leona Blackbird:
+Thank you. I haven't recovered completely, but I will have no problem carrying out Leona's mission.
+Did Elikia tell you to bring me back? I'm sorry, but I can't do that. I'll give you this letter though, so please take it to Elikia. I'm doing just fine. Thanks.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/Q10892_RevengeOneStepAtATime.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/Q10892_RevengeOneStepAtATime.java
new file mode 100644
index 0000000000..e5619457d2
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/Q10892_RevengeOneStepAtATime.java
@@ -0,0 +1,215 @@
+/*
+ * 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.Q10892_RevengeOneStepAtATime;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.l2jmobius.commons.util.CommonUtil;
+import org.l2jmobius.gameserver.enums.Faction;
+import org.l2jmobius.gameserver.enums.QuestSound;
+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;
+
+/**
+ * Revenge, One Step at a Time (10892)
+ * @URL https://l2wiki.com/Revenge,_One_Step_at_a_Time
+ * @author Dmitri
+ */
+public class Q10892_RevengeOneStepAtATime extends Quest
+{
+ // NPCs
+ private static final int LEONA = 34425; // Blackbird Clan Lord: Leona Blackbird
+ private static final int[] MONSTERS =
+ {
+ 24144, // Death Rogue
+ 24145, // Death Shooter
+ 24146, // Death Warrior
+ 24147, // Death Sorcerer
+ 24148, // Death Pondus
+ 24149, // Devil Nightmare
+ 24150, // Devil Warrior
+ 24151, // Devil Guardian
+ 24152, // Devil Sinist
+ 24153, // Devil Varos
+ 24154, // Demonic Wizard
+ 24155, // Demonic Warrior
+ 24156, // Demonic Archer
+ 24157, // Demonic Keras
+ 24158, // Demonic Weiss
+ 24159, // Atelia Yuyurina
+ 24160 // Atelia Popobena
+ };
+ private static final int[] GUARDIAN =
+ {
+ 24161, // Harke
+ 24162, // Ergalion
+ 24163 // Spira
+ };
+ // Reward
+ private static final int RUNE_STONE = 39738;
+ private static final int ELCYUM_CRYSTAL = 36514;
+ // Misc
+ private static final int MIN_LEVEL = 103;
+
+ public Q10892_RevengeOneStepAtATime()
+ {
+ super(10892);
+ addStartNpc(LEONA);
+ addTalkId(LEONA);
+ addKillId(MONSTERS);
+ addKillId(GUARDIAN);
+ addCondMinLevel(MIN_LEVEL, "34425-00.htm");
+ addFactionLevel(Faction.BLACKBIRD_CLAN, 10, "34425-00.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "34425-02.htm":
+ case "34425-04.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "34425-05.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "34425-08.html":
+ {
+ giveItems(player, ELCYUM_CRYSTAL, 3);
+ giveItems(player, RUNE_STONE, 1);
+ addExpAndSp(player, 543832495200L, 543832200);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ if (npc.getId() == LEONA)
+ {
+ htmltext = "34425-01.htm";
+ }
+ break;
+ }
+ case State.STARTED:
+ {
+ switch (npc.getId())
+ {
+ case LEONA:
+ {
+ if (qs.isCond(1))
+ {
+ htmltext = "34425-06.html";
+ }
+ else
+ {
+ htmltext = "34425-07.html";
+ }
+ break;
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+
+ int killedMonsters = qs.getInt("killed_" + MONSTERS[0]);
+ int killedGuardian = qs.getInt("killed_" + GUARDIAN[0]);
+
+ if (CommonUtil.contains(MONSTERS, npc.getId()))
+ {
+ if (killedMonsters < 1000)
+ {
+ killedMonsters++;
+ qs.set("killed_" + MONSTERS[0], killedMonsters);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ }
+ else if (CommonUtil.contains(GUARDIAN, npc.getId()))
+ {
+ if (killedGuardian < 1)
+ {
+ killedGuardian++;
+ qs.set("killed_" + GUARDIAN[0], killedGuardian);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ }
+
+ if ((killedMonsters == 1000) && (killedGuardian == 1))
+ {
+ qs.setCond(2, true);
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ @Override
+ public Set getNpcLogList(PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isStarted() && qs.isCond(1))
+ {
+ final Set npcLogList = new HashSet<>(2);
+ npcLogList.add(new NpcLogListHolder(MONSTERS[0], false, qs.getInt("killed_" + MONSTERS[0])));
+ npcLogList.add(new NpcLogListHolder(GUARDIAN[0], false, qs.getInt("killed_" + GUARDIAN[0])));
+ return npcLogList;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java
index 2f3ded8a68..805657430b 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
@@ -447,6 +447,7 @@ import quests.Q10852_TheMotherTreeRevivalProject.Q10852_TheMotherTreeRevivalProj
import quests.Q10856_SuperionAppears.Q10856_SuperionAppears;
import quests.Q10857_SecretTeleport.Q10857_SecretTeleport;
import quests.Q10891_AtANewPlace.Q10891_AtANewPlace;
+import quests.Q10892_RevengeOneStepAtATime.Q10892_RevengeOneStepAtATime;
import quests.custom.Q00529_RegularBarrierMaintenance.Q00529_RegularBarrierMaintenance;
import quests.custom.Q00560_HowToOvercomeFear.Q00560_HowToOvercomeFear;
import quests.custom.Q00589_ASecretChange.Q00589_ASecretChange;
@@ -1027,7 +1028,7 @@ public class QuestMasterHandler
Q10889_SaviorsPathFallenEmperorsThrone.class, // TODO: Not done.
Q10890_SaviorsPathFallOfEtina.class, // TODO: Not done.
Q10891_AtANewPlace.class,
- Q10892_RevengeOneStepAtATime.class, // TODO: Not done.
+ Q10892_RevengeOneStepAtATime.class,
Q10893_EndOfTwistedFate.class, // TODO: Not done.
Q10895_RestrainQueenKrosha.class, // TODO: Not done.
Q10896_VisitTheAdventureGuild.class, // TODO: Not done.
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10892_RevengeOneStepAtATime.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10892_RevengeOneStepAtATime.java
deleted file mode 100644
index b8a2ed8ae9..0000000000
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10892_RevengeOneStepAtATime.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 Q10892_RevengeOneStepAtATime extends Quest
-{
- private static final int START_NPC = 34425;
-
- public Q10892_RevengeOneStepAtATime()
- {
- super(10892);
- 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 8ceb102436..f992b2a7f3 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
@@ -195,7 +195,6 @@
10888 Savior's Path - Defeat the Embryo
10889 Savior's Path - Fallen Emperor's Throne
10890 Savior's Path - Fall of Etina
-10892 Revenge, One Step at a Time
10893 End of Twisted Fate
10896 Visit the Adventure Guild
10897 Show Your Ability
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-00.htm
new file mode 100644
index 0000000000..d55d7ffb43
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-00.htm
@@ -0,0 +1,4 @@
+Leona Blackbird:
+Hey, this place is dangerous! You shouldn't be here.
+(Only characters above Lv. 103 and Blackbird Clan amity level 10 and above faction.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-01.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-01.htm
new file mode 100644
index 0000000000..2363cd10e2
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-01.htm
@@ -0,0 +1,4 @@
+Leona Blackbird:
+That seal is something that only a few people can have. You must have been recognized by a member of the Blackbird clan.
+Am I right?
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-02.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-02.htm
new file mode 100644
index 0000000000..5844475ace
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-02.htm
@@ -0,0 +1,5 @@
+Leona Blackbird:
+Oh, Elikia? Then I know I can trust you.
+But... Did Elikia send you to bring me back? I can't just leave...
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-04.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-04.htm
new file mode 100644
index 0000000000..6aa6c2214e
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-04.htm
@@ -0,0 +1,5 @@
+Leona Blackbird:
+A problem? Well, it might not be a problem really. I was captured by the Embryo, and was saved by the Aden Vanguard member, Eliyah.
+After I was recued, I've been trying to carry out Leona's mission. But it's been hard since the Embryo are getting stronger by the day. I haven't been able to recover fully.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-05.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-05.htm
new file mode 100644
index 0000000000..26d9f868f3
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-05.htm
@@ -0,0 +1,5 @@
+Leona Blackbird:
+I know that Elikia is worried, but I must carry out Leona's mission. To do that, I have to recover as soon as possible and find out what the Embryo are up to.
+Can you buy me some time to recover and go kill 250 Atelia Passionate Soldiers, Atelia Elite Captains, Atelia High Priests, Fortress Archons, and Atelia Flame Masters?
+We should be able to keep the stronghold safe and I'll have more time to recover. I'm counting on you.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-06.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-06.html
new file mode 100644
index 0000000000..f3371fcbc9
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-06.html
@@ -0,0 +1,3 @@
+Leona Blackbird:
+This isn't enough. I need more time to recover. Can you kill 250 Atelia Passionate Soldiers, Atelia Elite Captains, Atelia High Priests, Fortress Dark Wizards, Fortress Archons, and Atelia Flame Masters? We need to make sure that they don't threaten the stronghold.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-07.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-07.html
new file mode 100644
index 0000000000..932d6dd644
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-07.html
@@ -0,0 +1,5 @@
+Leona Blackbird:
+Did you carry out my request?
+I think I'm recovering well.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-08.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-08.html
new file mode 100644
index 0000000000..e980d0a395
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/34425-08.html
@@ -0,0 +1,4 @@
+Leona Blackbird:
+Thank you. I haven't recovered completely, but I will have no problem carrying out Leona's mission.
+Did Elikia tell you to bring me back? I'm sorry, but I can't do that. I'll give you this letter though, so please take it to Elikia. I'm doing just fine. Thanks.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/Q10892_RevengeOneStepAtATime.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/Q10892_RevengeOneStepAtATime.java
new file mode 100644
index 0000000000..e5619457d2
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10892_RevengeOneStepAtATime/Q10892_RevengeOneStepAtATime.java
@@ -0,0 +1,215 @@
+/*
+ * 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.Q10892_RevengeOneStepAtATime;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.l2jmobius.commons.util.CommonUtil;
+import org.l2jmobius.gameserver.enums.Faction;
+import org.l2jmobius.gameserver.enums.QuestSound;
+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;
+
+/**
+ * Revenge, One Step at a Time (10892)
+ * @URL https://l2wiki.com/Revenge,_One_Step_at_a_Time
+ * @author Dmitri
+ */
+public class Q10892_RevengeOneStepAtATime extends Quest
+{
+ // NPCs
+ private static final int LEONA = 34425; // Blackbird Clan Lord: Leona Blackbird
+ private static final int[] MONSTERS =
+ {
+ 24144, // Death Rogue
+ 24145, // Death Shooter
+ 24146, // Death Warrior
+ 24147, // Death Sorcerer
+ 24148, // Death Pondus
+ 24149, // Devil Nightmare
+ 24150, // Devil Warrior
+ 24151, // Devil Guardian
+ 24152, // Devil Sinist
+ 24153, // Devil Varos
+ 24154, // Demonic Wizard
+ 24155, // Demonic Warrior
+ 24156, // Demonic Archer
+ 24157, // Demonic Keras
+ 24158, // Demonic Weiss
+ 24159, // Atelia Yuyurina
+ 24160 // Atelia Popobena
+ };
+ private static final int[] GUARDIAN =
+ {
+ 24161, // Harke
+ 24162, // Ergalion
+ 24163 // Spira
+ };
+ // Reward
+ private static final int RUNE_STONE = 39738;
+ private static final int ELCYUM_CRYSTAL = 36514;
+ // Misc
+ private static final int MIN_LEVEL = 103;
+
+ public Q10892_RevengeOneStepAtATime()
+ {
+ super(10892);
+ addStartNpc(LEONA);
+ addTalkId(LEONA);
+ addKillId(MONSTERS);
+ addKillId(GUARDIAN);
+ addCondMinLevel(MIN_LEVEL, "34425-00.htm");
+ addFactionLevel(Faction.BLACKBIRD_CLAN, 10, "34425-00.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "34425-02.htm":
+ case "34425-04.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "34425-05.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "34425-08.html":
+ {
+ giveItems(player, ELCYUM_CRYSTAL, 3);
+ giveItems(player, RUNE_STONE, 1);
+ addExpAndSp(player, 543832495200L, 543832200);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ if (npc.getId() == LEONA)
+ {
+ htmltext = "34425-01.htm";
+ }
+ break;
+ }
+ case State.STARTED:
+ {
+ switch (npc.getId())
+ {
+ case LEONA:
+ {
+ if (qs.isCond(1))
+ {
+ htmltext = "34425-06.html";
+ }
+ else
+ {
+ htmltext = "34425-07.html";
+ }
+ break;
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+
+ int killedMonsters = qs.getInt("killed_" + MONSTERS[0]);
+ int killedGuardian = qs.getInt("killed_" + GUARDIAN[0]);
+
+ if (CommonUtil.contains(MONSTERS, npc.getId()))
+ {
+ if (killedMonsters < 1000)
+ {
+ killedMonsters++;
+ qs.set("killed_" + MONSTERS[0], killedMonsters);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ }
+ else if (CommonUtil.contains(GUARDIAN, npc.getId()))
+ {
+ if (killedGuardian < 1)
+ {
+ killedGuardian++;
+ qs.set("killed_" + GUARDIAN[0], killedGuardian);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ }
+
+ if ((killedMonsters == 1000) && (killedGuardian == 1))
+ {
+ qs.setCond(2, true);
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ @Override
+ public Set getNpcLogList(PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isStarted() && qs.isCond(1))
+ {
+ final Set npcLogList = new HashSet<>(2);
+ npcLogList.add(new NpcLogListHolder(MONSTERS[0], false, qs.getInt("killed_" + MONSTERS[0])));
+ npcLogList.add(new NpcLogListHolder(GUARDIAN[0], false, qs.getInt("killed_" + GUARDIAN[0])));
+ return npcLogList;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/QuestMasterHandler.java
index 1884d8f1bc..b2c2991dfc 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
@@ -192,6 +192,7 @@ import quests.Q10852_TheMotherTreeRevivalProject.Q10852_TheMotherTreeRevivalProj
import quests.Q10856_SuperionAppears.Q10856_SuperionAppears;
import quests.Q10857_SecretTeleport.Q10857_SecretTeleport;
import quests.Q10891_AtANewPlace.Q10891_AtANewPlace;
+import quests.Q10892_RevengeOneStepAtATime.Q10892_RevengeOneStepAtATime;
import quests.Q11025_PathOfDestinyProving.Q11025_PathOfDestinyProving;
import quests.Q11026_PathOfDestinyConviction.Q11026_PathOfDestinyConviction;
import quests.Q11027_PathOfDestinyOvercome.Q11027_PathOfDestinyOvercome;
@@ -517,7 +518,7 @@ public class QuestMasterHandler
Q10889_SaviorsPathFallenEmperorsThrone.class, // TODO: Not done.
Q10890_SaviorsPathFallOfEtina.class, // TODO: Not done.
Q10891_AtANewPlace.class,
- Q10892_RevengeOneStepAtATime.class, // TODO: Not done.
+ Q10892_RevengeOneStepAtATime.class,
Q10893_EndOfTwistedFate.class, // TODO: Not done.
Q10896_VisitTheAdventureGuild.class, // TODO: Not done.
Q10897_ShowYourAbility.class, // TODO: Not done.
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10892_RevengeOneStepAtATime.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10892_RevengeOneStepAtATime.java
deleted file mode 100644
index b8a2ed8ae9..0000000000
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10892_RevengeOneStepAtATime.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 Q10892_RevengeOneStepAtATime extends Quest
-{
- private static final int START_NPC = 34425;
-
- public Q10892_RevengeOneStepAtATime()
- {
- super(10892);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}