Untested: Some Grand Crusade quests to Helios.

This commit is contained in:
MobiusDev
2018-03-30 02:48:14 +00:00
parent fb861c24a7
commit 1ea7ad3e2b
78 changed files with 1645 additions and 8 deletions

View File

@@ -76,14 +76,6 @@
10456 Operation: Rescue
10457 Kefensis' Illusion
10506 Diana's Request
10521 Queen Navari's Letter: Varka Silenos Barracks Achieve Level 76
10522 The Dark Secret of Varka Silenos Reveal the dark secret
10523 The Assassination of the Varka Silenos Commander Defeat Varka's Commander Mos
10524 The Assassination of the Varka Silenos Commander Chief Defeat Varka's Chief Horus
10525 Queen Navari's Letter, Ketra Orc Outpost Achieve Level 76
10526 The Dark Secret of the Ketra Orcs Reveal the dark secret
10527 The Assassination of the Ketra Orc Commander Defeat Ketra's Commander Tayr
10528 The Assassination of the Ketra Orc Chief Defeat Ketra's Chief Brakki
10530 Kekropus' Letter, The Dragon's Transition Achieve Level 81
10531 Odd Happenings at Dragon Valley Strange Things Afoot in the Valley
10532 Uncovering the Conspiracy Eliminate the Undead and Dragons

View File

@@ -0,0 +1,4 @@
<html><body>High Priest Gregory:<br>
Haha. Queen Navari has already contacted me, and I have waiting for you. Have you heard what is happening?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10521_QueenNavarisLetterVarkaSilenosBarracks 31279-02.htm">"Not Exactly."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>High Priest Gregory:<br>
Hahaha. That's what I thought<br>
The Ertheia are quite impatient, and tend to rush over without asking too many questions when they're asked for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10521_QueenNavarisLetterVarkaSilenosBarracks 31279-03.htm">"How can I help you?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>High Priest Gregory:<br>
I thought that the Ertheia had nothing to do with this, but the Varka Silenos seem to be up to no good nowadays we have our eyes on them.<br>
We have been suspecting collision between the Embryo and the Varka Silenos for a long time now. Since the Ertheia also have something to do with the Embryo, you have been called on to provide help.<br>
For details, find the <font color="LEVEL">Giant's Minion Hansen</font> in the <font color="LEVEL">Varka Silenos Barracks</font>.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>High Priest Gregory:<br>
In the Town of Goddard has told you to go to the Giant's Minion Hansen in the Varka Silenos Barracks.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Hansen:<br>
You are...Ertheya.What brings you here?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10521_QueenNavarisLetterVarkaSilenosBarracks 33853-02.htm">"I have come because of the Delegation's Pledge."</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Giant's Minion Hansen:<br>
I was worried that I hadn't received a reply to my request for backup. I was starting to think that it was difficult for the Ertheia to make it all the way out here.<br>
I wonder if you have heard about the ancient monster <font color="LEVEL">Sakum</font>. We have gained intelligence that the ancient monster, who should have vanished years ago, was actually cloned by the <font color="LEVEL">Embryo</font> and is currently in the <font color="LEVEL">Varka Silenos Barracks</font>.<br>
It appears that the Embryo have colluded with the Varka Silenos. That means that we need to stop it right away. There is a lot work for us to do. Please come to me when you are done preparing.<br>
(You can obtain the next Queen Navari's Letter at Lv. 81.)<br>
</body></html>

View File

@@ -0,0 +1,136 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
package quests.Q10521_QueenNavarisLetterVarkaSilenosBarracks;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.Location;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.base.ClassId;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import quests.LetterQuest;
/**
* Queen Navari's Letter: Varka Silenos Barracks (10521)
* @URL https://l2wiki.com/Queen_Navari%27s_Letter:_Varka_Silenos_Barracks
* @author Gigi
* @date 2017-11-14 - [22:13:27]
*/
public class Q10521_QueenNavarisLetterVarkaSilenosBarracks extends LetterQuest
{
// NPCs
private static final int GREGORY = 31279;
private static final int HANSEN = 33853;
// Items
private static final int VARKA_SILENOS_BARRAKS = 46730;
private static final int SOE_TOWN_OF_GODDARD = 46731;
// Misc
private static final int MIN_LEVEL = 76;
private static final int MAX_LEVEL = 80;
// Teleport
private static final Location TELEPORT_LOC = new Location(147711, -52920, -2728);
public Q10521_QueenNavarisLetterVarkaSilenosBarracks()
{
super(10521);
addTalkId(GREGORY, HANSEN);
setIsErtheiaQuest(true);
setLevel(MIN_LEVEL, MAX_LEVEL);
setStartLocation(SOE_TOWN_OF_GODDARD, TELEPORT_LOC);
setStartQuestSound("Npcdialog1.serenia_quest_13");
registerQuestItems(SOE_TOWN_OF_GODDARD, VARKA_SILENOS_BARRAKS);
}
@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 "31279-02.htm":
{
htmltext = event;
break;
}
case "31279-03.htm":
{
if (qs.isCond(2))
{
qs.setCond(3, true);
giveItems(player, VARKA_SILENOS_BARRAKS, 1);
htmltext = event;
}
break;
}
case "33853-02.htm":
{
if (qs.isCond(3))
{
if (player.getLevel() >= MIN_LEVEL)
{
addExpAndSp(player, 1277640, 306);
giveStoryQuestReward(player, 10);
showOnScreenMsg(player, NpcStringId.YOU_HAVE_FINISHED_ALL_OF_QUEEN_NAVARI_S_LETTERS_GROW_STRONGER_HERE_UNTIL_YOU_RECEIVE_LETTERS_FROM_A_MINSTREL_AT_LV_85, ExShowScreenMessage.TOP_CENTER, 8000);
qs.exitQuest(QuestType.ONE_TIME, true);
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isStarted())
{
if (npc.getId() == GREGORY)
{
htmltext = (qs.isCond(2)) ? "31279-01.htm" : "31279-04.html";
}
else if (qs.isCond(3))
{
htmltext = "33853-01.html";
}
}
return htmltext;
}
@Override
public boolean canShowTutorialMark(L2PcInstance player)
{
return player.getClassId() == ClassId.RIPPER;
}
}

View File

@@ -0,0 +1,7 @@
<html><body>The Queen's Letter:<br>
I got an emergency request from the Town of Goddard. Near the Town of Goddard at Varka Sillenos Barracks.<br>
It's different from the one we came in, but it's worth looking into. Go see <font color="LEVEL">High Priest Gregory</font>.<br>
(A <font color="LEVEL">Scroll of Escape</font> is enclosed. If you want to go now, use it to travel immediately.)<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h %teleport%">"Here I go!"</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h tutorial_close">Close</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>
Your character's level exceeds the level limit for this quest.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Hansen:<br>
I am sorry, but I can't trust you.<br>
(This quest is for Ertheia with Lv. 76 or above.)
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Hansen:<br>
We lost touch with Spirit Realm a long time ago, and there are many of us who do not know about the Ertheia. However, I am a Kamael who knows of the stories of old times. I have not forgotten the reputation and powerful impression of the Ertheia.<br>
The Ertheia will be able to resolve the problems that with the Ertheia and the ancient monster Sakum.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10522_TheDarkSecretOfVarkaSilenos 33853-02.htm">"What is the problem?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Hansen:<br>
I trust that you already know about the Embryo. We have received information that the Embryo, who are behind all of these problems, have joined hands with the <font color="LEVEL">Varka Silenos</font>.<br>
We have also discovered that they have handed over <font color="LEVEL">Kampf</font> as a token of cooperation. For now, in order to verify this intelligence, we will need to hide among the <font color="LEVEL">Varka Silenos</font> and help the dark <font color="LEVEL">Embryo</font> sympathizers who are helping them.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10522_TheDarkSecretOfVarkaSilenos 33853-03.htm">"Go on."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Hansen:<br>
If I am right, the helpers <font color="LEVEL">Embryo</font> Sends will appear when <font color="LEVEL">Varka Silenos</font> soldiers are in danger.<br>
When the Embryo sympathizers appear, defeat them.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10522_TheDarkSecretOfVarkaSilenos 33853-04.htm">"I will."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Hansen:<br>
Slay the <font color="LEVEL">Varka Silenoses</font> here in the <font color="LEVEL">Varka Silenos Barracks</font> and lure out the Embryo sympathizers.<br>
The Embryo sympathizers, I expect, will be <font color="LEVEL">Varka Backup Shooters</font> or <font color="LEVEL">Varka Backup Wizards</font> When the appear, take out <font color="LEVEL">100</font> of each, and then return to me.<br>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Giant's Minion Hansen:<br>
Who is under cover in the Varka Silenos Barracks has asked you to find and defeat the Embryo Support Troops hiding in the Varka Silenos Barracks. He says that once the monsters at the Varka Silenos Barracks have been defeated, the Varka Backup Shooters and Varka Backup Wizards will appear.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Hansen:<br>
Good work. They must be very confused. Now that the situation has fallen into chaos, they will bring out <font color="LEVEL">Kampf</font>. They've been saving him as their last defense against us.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10522_TheDarkSecretOfVarkaSilenos 33853-07.html">"What should we do now?"</Button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Giant's Minion Hansen:<br>
For now, let's wait a bit and watch their movements. We will soon be able to figure out <font color="LEVEL">Kampf</font>'s whereabouts. Until then, get some rest.<br>
</body></html>

View File

@@ -0,0 +1,228 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
package quests.Q10522_TheDarkSecretOfVarkaSilenos;
import java.util.HashSet;
import java.util.Set;
import com.l2jmobius.gameserver.enums.CategoryType;
import com.l2jmobius.gameserver.enums.ChatType;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
/**
* The Dark Secret of Varka Silenos (10522)
* @URL https://l2wiki.com/The_Dark_Secret_of_Varka_Silenos
* @author Gigi
* @date 2017-11-17 - [19:27:54]
*/
public class Q10522_TheDarkSecretOfVarkaSilenos extends Quest
{
// NPCs
private static final int HANSEN = 33853;
// Monsters
private static final int VARKA_SILENOS_RECRUIT = 21350;
private static final int VARKA_SILENOS_FOOTMAN = 21351;
private static final int VARKA_SILENOS_SCOUT = 21353;
private static final int VARKA_SILENOS_HUNTER = 21354;
private static final int VARKA_SILENOS_COMANDER = 21369;
private static final int VARKAS_ELITE_ESCORT = 21370;
private static final int VARKA_SILENOS_WARRIOR = 21358;
private static final int VARKA_SILENOS_SHAMAN = 21357;
private static final int VARKA_SILENOS_PRIEST = 21355;
private static final int VARKA_BACKUP_SHOOTER = 27514;
private static final int VARKA_BACKUP_WIZARD = 27515;
// Misc
private static final int MIN_LEVEL = 76;
private static final int MAX_LEVEL = 80;
public Q10522_TheDarkSecretOfVarkaSilenos()
{
super(10522);
addStartNpc(HANSEN);
addTalkId(HANSEN);
addKillId(VARKA_BACKUP_SHOOTER, VARKA_BACKUP_WIZARD, VARKA_SILENOS_RECRUIT, VARKA_SILENOS_FOOTMAN, VARKA_SILENOS_SCOUT, VARKA_SILENOS_HUNTER, VARKA_SILENOS_SHAMAN, VARKA_SILENOS_COMANDER, VARKAS_ELITE_ESCORT, VARKA_SILENOS_WARRIOR, VARKA_SILENOS_PRIEST);
addCondRace(Race.ERTHEIA, "33853-00a.html");
addCondStart(p -> p.isInCategory(CategoryType.FIGHTER_GROUP), "33853-00a.html");
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33853-00.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 "33853-02.htm":
case "33853-03.htm":
{
htmltext = event;
break;
}
case "33853-04.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "33853-07.html":
{
if (qs.isCond(2))
{
if (player.getLevel() >= MIN_LEVEL)
{
addExpAndSp(player, 492760460, 5519);
qs.exitQuest(QuestType.ONE_TIME, true);
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = "33853-01.htm";
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
htmltext = "33853-05.html";
}
else if (qs.isCond(2))
{
htmltext = "33853-06.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, true);
if ((qs != null) && qs.isCond(1))
{
int killedShooter = qs.getInt("killed_" + VARKA_BACKUP_SHOOTER);
int killedWizard = qs.getInt("killed_" + VARKA_BACKUP_WIZARD);
switch (npc.getId())
{
case VARKA_SILENOS_RECRUIT:
case VARKA_SILENOS_FOOTMAN:
case VARKA_SILENOS_SCOUT:
case VARKA_SILENOS_HUNTER:
case VARKA_SILENOS_COMANDER:
case VARKAS_ELITE_ESCORT:
case VARKA_SILENOS_WARRIOR:
{
final L2Npc mob = addSpawn(VARKA_BACKUP_SHOOTER, npc, false, 60000);
mob.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_DARE_INTERFERE_WITH_EMBRYO_SURELY_YOU_WISH_FOR_DEATH);
addAttackPlayerDesire(mob, killer);
break;
}
case VARKA_SILENOS_SHAMAN:
case VARKA_SILENOS_PRIEST:
{
final L2Npc mob = addSpawn(VARKA_BACKUP_WIZARD, npc, false, 60000);
mob.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_DARE_INTERFERE_WITH_EMBRYO_SURELY_YOU_WISH_FOR_DEATH);
addAttackPlayerDesire(mob, killer);
break;
}
case VARKA_BACKUP_SHOOTER:
{
if (killedShooter < 100)
{
qs.set("killed_" + VARKA_BACKUP_SHOOTER, ++killedShooter);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
break;
}
case VARKA_BACKUP_WIZARD:
{
if (killedWizard < 100)
{
qs.set("killed_" + VARKA_BACKUP_WIZARD, ++killedWizard);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
break;
}
}
if ((killedShooter >= 100) && (killedWizard >= 100))
{
qs.setCond(2, true);
}
sendNpcLogList(killer);
}
return super.onKill(npc, killer, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>(2);
holder.add(new NpcLogListHolder(VARKA_BACKUP_SHOOTER, false, qs.getInt("killed_" + VARKA_BACKUP_SHOOTER)));
holder.add(new NpcLogListHolder(VARKA_BACKUP_WIZARD, false, qs.getInt("killed_" + VARKA_BACKUP_WIZARD)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Hansen:<br>
I don't think it's time.<br>
(Only Ertheia characters with Lv. 76 or above who have completed the quest "The Dark Secret of the Varka Silenos".)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Hansen:<br>
I don't think it's time.<br>
(This quest is for Ertheia Warriors with Lv. 76 or above.)
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Hansen:<br>
How are they keeping this so secret?.<br>
<font color="LEVEL">Kampf</font> is nowhere to be found. We need to flush them out.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10523_TheAssassinationOfTheVarkaSilenosCommander 33853-02.htm">"What should I do?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Hansen:<br>
We intend to <font color="LEVEL">take out their commander</font>.<br>
We have to assassinate their commander. When someone in such a high position is gone, they will have to bring out <font color="LEVEL">Kampf</font>. When that happens, kill <font color="LEVEL">Kampf</font> as well. Of course.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10523_TheAssassinationOfTheVarkaSilenosCommander 33853-03.htm">"Go on."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Hansen:<br>
Of course, we don't expect it to be an easy task, to take out the <font color="LEVEL">Varka Silenos Commander</font>.<br>
Also, <font color="LEVEL">Kampf</font> still might not show up, if they're being careful. But it's the best plan we've got!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10523_TheAssassinationOfTheVarkaSilenosCommander 33853-04.htm">"Alright."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Hansen:<br>
Find <font color="LEVEL">Varka's Silenos Commander Mos</font> in the <font color="LEVEL">Varka Silenos Barracks</font>, and defeat him.<br>
Even if Kampf does not show himself, do not be disappointed. Please return to me and report on the situation.<br>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Hansen:<br>
You haven't finished the mission yet. Let me explain again.<br>
Find <font color="LEVEL">Varka's Silenos Commander Mos</font> in the <font color="LEVEL">Varka Silenos Barracks</font>, and defeat him.<br>
Even if Kampf does not show himself, do not be disappointed. Please return to me and report on the situation.<br>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Hansen:<br>
Hmm.. You have taken out <font color="LEVEL">Varka's Silenos Commander Mos</font>, but <font color="LEVEL">Kampf</font> did not show himself. Anyways, it's a good thing that you have taken out <font color="LEVEL">Varka's Silenos Commander Mos</font>.<br>
With in now being out in the open that the <font color="LEVEL">Embryo</font> and the <font color="LEVEL">Varka Silenos</font> has conspired together, leaving one such as him alive cannot be good for us.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10523_TheAssassinationOfTheVarkaSilenosCommander 33853-07.html">"Go on."</Button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Giant's Minion Hansen:<br>
Anyways you've worked hard for the mission. Here you should take some rest. I'll try to come up with a way to find <font color="LEVEL">Kampf</font>.<br>
</body></html>

View File

@@ -0,0 +1,144 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
package quests.Q10523_TheAssassinationOfTheVarkaSilenosCommander;
import com.l2jmobius.gameserver.enums.CategoryType;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import quests.Q10522_TheDarkSecretOfVarkaSilenos.Q10522_TheDarkSecretOfVarkaSilenos;
/**
* The Assassination of the Varka Silenos Commander Mos (10523)
* @author Gigi
* @date 2017-11-18 - [12:27:08]
*/
public class Q10523_TheAssassinationOfTheVarkaSilenosCommander extends Quest
{
// NPCs
private static final int HANSEN = 33853;
// Monsters
private static final int VARKAS_COMMANDER_MOS = 27502;
// Misc
private static final int MIN_LEVEL = 76;
private static final int MAX_LEVEL = 80;
public Q10523_TheAssassinationOfTheVarkaSilenosCommander()
{
super(10523);
addStartNpc(HANSEN);
addTalkId(HANSEN);
addKillId(VARKAS_COMMANDER_MOS);
addCondRace(Race.ERTHEIA, "33853-00.html");
addCondStart(p -> p.isInCategory(CategoryType.FIGHTER_GROUP), "33853-00a.htm");
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33853-00.html");
addCondCompletedQuest(Q10522_TheDarkSecretOfVarkaSilenos.class.getSimpleName(), "33853-00.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 "33853-02.htm":
case "33853-03.htm":
{
htmltext = event;
break;
}
case "33853-04.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "33853-07.html":
{
if (qs.isCond(2))
{
if (player.getLevel() >= MIN_LEVEL)
{
addExpAndSp(player, 327446943, 1839);
qs.exitQuest(QuestType.ONE_TIME, true);
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = "33853-01.htm";
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
htmltext = "33853-05.html";
}
else if (qs.isCond(2))
{
htmltext = "33853-06.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, true);
if ((qs != null) && qs.isCond(1))
{
qs.setCond(2, true);
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Hansen:<br>
I don't think it's time.<br>
(Only Ertheia characters with Lv. 76 or above who have completed the quest "The Assassination of the Varka Silenos Commander".)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Hansen:<br>
I don't think it's time.<br>
(This quest may only be undertaken by an Ertheia Warrior class character with level 76 or above who has completed the quest "Assassination of the Varka Silenos Commander".)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Hansen:<br>
The situation is not favorable to us. Since you assassinated their commander, security's been tight around here. But we won't give up!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10524_TheAssassinationOfTheVarkaSilenosCommanderChief 33853-02.htm">"What should I do?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Hansen:<br>
It's a dangerous, but there is a way, nonetheless.<br>
We have to <font color="LEVEL">assassinate their chief</font>. If they lose their chief on top of their commander, they will fail into chaos. So, I bet <font color="LEVEL">Kampf</font> will show up this time.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10524_TheAssassinationOfTheVarkaSilenosCommanderChief 33853-03.htm">"Go on."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Hansen:<br>
Of course, talking out the <font color="LEVEL">Varka Silenos chief</font> won't be an easy thing do to. If the chief is taken out, Kampf is sure to reveal himself,
making this whole thing even more dangerous. But I have a good feeling about you. Will you take the mission?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10524_TheAssassinationOfTheVarkaSilenosCommanderChief 33853-04.htm">"I'll take care of everything."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Hansen:<br>
Be careful<br>
Find <font color="LEVEL">Varka's Silenos Chief Horus</font> in the <font color="LEVEL">Varka Silenos Barracks</font>, and defeat him. It won't be easy, but you'll be able to do it. When you're done, return to me, and report the situation.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Hansen:<br>
You haven't finished the mission yet.<br>
Find <font color="LEVEL">Varka's Silenos Chief Horus</font> in the <font color="LEVEL">Varka Silenos Barracks</font>, and defeat him. It won't be easy, but you'll be able to do it. When you're done, return to me, and report the situation.<br>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Hansen:<br>
Hahahaha! I knew it! When you killed <font color="LEVEL">Varka's Chief Horus</font>, of course <font color="LEVEL">Kampf</font> showed up. See, what did I tell you? Well done! I will report to my superiors right away.<br>
Well, I think that's it for both of us now. Time for some rest.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10524_TheAssassinationOfTheVarkaSilenosCommanderChief 33853-07.html">"No problem."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Hansen:<br>
Thank you for your hard work. Our greatest headache <font color="LEVEL">Kampf</font> is gone, and we have even taken out the <font color="LEVEL">Varka Silenos Chief</font> who had colluded with the <font color="LEVEL">Embryo</font>!<br>
I'll be sure to let <font color="LEVEL">Kekropus</font> know of your role in these dealings. You will always be honored among us, the Giant's Minions. Thank you.<br>
</body></html>

View File

@@ -0,0 +1,150 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
package quests.Q10524_TheAssassinationOfTheVarkaSilenosCommanderChief;
import com.l2jmobius.gameserver.enums.CategoryType;
import com.l2jmobius.gameserver.enums.ChatType;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
import quests.Q10523_TheAssassinationOfTheVarkaSilenosCommander.Q10523_TheAssassinationOfTheVarkaSilenosCommander;
/**
* The Assassination of the Varka Silenos Commander Chief (10524)
* @author Gigi
* @date 2017-11-18 - [14:37:41]
*/
public class Q10524_TheAssassinationOfTheVarkaSilenosCommanderChief extends Quest
{
// NPCs
private static final int HANSEN = 33853;
// Monsters
private static final int VARKAS_CHIEF_HORUS = 27503;
private static final int KAMPF = 27516;
// Misc
private static final int MIN_LEVEL = 76;
private static final int MAX_LEVEL = 80;
public Q10524_TheAssassinationOfTheVarkaSilenosCommanderChief()
{
super(10524);
addStartNpc(HANSEN);
addTalkId(HANSEN);
addKillId(VARKAS_CHIEF_HORUS);
addCondRace(Race.ERTHEIA, "33853-00.html");
addCondStart(p -> p.isInCategory(CategoryType.FIGHTER_GROUP), "33853-00a.htm");
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33853-00.html");
addCondCompletedQuest(Q10523_TheAssassinationOfTheVarkaSilenosCommander.class.getSimpleName(), "33853-00.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 "33853-02.htm":
case "33853-03.htm":
{
htmltext = event;
break;
}
case "33853-04.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "33853-07.html":
{
if (qs.isCond(2))
{
if (player.getLevel() >= MIN_LEVEL)
{
addExpAndSp(player, 351479151, 1839);
qs.exitQuest(QuestType.ONE_TIME, true);
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = "33853-01.htm";
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
htmltext = "33853-05.html";
}
else if (qs.isCond(2))
{
htmltext = "33853-06.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, true);
if ((qs != null) && qs.isCond(1))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.COME_KAMPF_PROTECT_ME);
final L2Npc mob = addSpawn(KAMPF, npc, false, 120000);
addAttackPlayerDesire(mob, killer);
qs.setCond(2, true);
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>High Priest Gregory:<br>
Haha. Queen Navari has already contacted me, and I have waiting for you. Have you heard what is happening?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10525_QueenNavarisLetterKetraOrcOutpost 31279-02.htm">"Not Exactly."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>High Priest Gregory:<br>
Hahaha. That's what I thought<br>
The Ertheia are quite impatient, and tend to rush over without asking too many questions when they're asked for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10525_QueenNavarisLetterKetraOrcOutpost 31279-03.htm">"How can I help you?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>High Priest Gregory:<br>
I thought that the Ertheia had nothing to do with this, but the Ketra Orcs seem to be up to no good nowadays we have our eyes on them.<br>
We have been suspecting collision between the Embryo and the Ketra Orcs for a long time now. Since the Ertheia also have something to do with the Embryo, you have been called on to provide help.<br>
For details, find the <font color="LEVEL">Giant's Minion Lugonnes</font> in the <font color="LEVEL">Ketra Orc Outpost</font>.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>High Priest Gregory:<br>
In the Town of Goddard has told you to go to the Giant's Minion Lugonnes in the Ketra Orc Outpost.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
You are... Ertheia. What brings you here?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10525_QueenNavarisLetterKetraOrcOutpost 33853-02.htm">"I have come because of the Delegation's Pledge."</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Giant's Minion Lugonnes:<br>
I was worried that I hadn't received a reply to my request for backup. I was starting to think that it was difficult for the Ertheia to make it all the way out here.<br>
I wonder if you have heard about the ancient monster <font color="LEVEL">Sakum</font>. We have gained intelligence that the ancient monster, who should have vanished years ago, was actually cloned by the <font color="LEVEL">Embryo</font> and is currently in the <font color="LEVEL">Ketra Orc Outpost</font>.<br>
It appears that the Embryo have colluded with the Ketra Orcs. That means that we need to stop it right away. There is a lot work for us to do. Please come to me when you are done preparing.<br>
(You can obtain the next Queen Navari's Letter at Lv. 81.)<br>
</body></html>

View File

@@ -0,0 +1,135 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
package quests.Q10525_QueenNavarisLetterKetraOrcOutpost;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.Location;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.base.ClassId;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import quests.LetterQuest;
/**
* Queen Navari's Letter, Ketra Orc Outpost (10521)
* @URL https://l2wiki.com/Queen_Navari%27s_Letter,_Ketra_Orc_Outpost
* @author Mobius
*/
public class Q10525_QueenNavarisLetterKetraOrcOutpost extends LetterQuest
{
// NPCs
private static final int GREGORY = 31279;
private static final int LUGONNES = 33852;
// Items
private static final int KETRA_ORC_OUTPOST = 46732;
private static final int SOE_TOWN_OF_GODDARD = 46731;
// Misc
private static final int MIN_LEVEL = 76;
private static final int MAX_LEVEL = 80;
// Teleport
private static final Location TELEPORT_LOC = new Location(147711, -52920, -2728);
public Q10525_QueenNavarisLetterKetraOrcOutpost()
{
super(10521);
addTalkId(GREGORY, LUGONNES);
setIsErtheiaQuest(true);
setLevel(MIN_LEVEL, MAX_LEVEL);
setStartLocation(SOE_TOWN_OF_GODDARD, TELEPORT_LOC);
setStartQuestSound("Npcdialog1.serenia_quest_13");
registerQuestItems(SOE_TOWN_OF_GODDARD, KETRA_ORC_OUTPOST);
}
@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 "31279-02.htm":
{
htmltext = event;
break;
}
case "31279-03.htm":
{
if (qs.isCond(2))
{
qs.setCond(3, true);
giveItems(player, KETRA_ORC_OUTPOST, 1);
htmltext = event;
}
break;
}
case "33852-02.htm":
{
if (qs.isCond(3))
{
if (player.getLevel() >= MIN_LEVEL)
{
addExpAndSp(player, 1277640, 306);
giveStoryQuestReward(player, 10);
showOnScreenMsg(player, NpcStringId.YOU_HAVE_FINISHED_ALL_OF_QUEEN_NAVARI_S_LETTERS_GROW_STRONGER_HERE_UNTIL_YOU_RECEIVE_LETTERS_FROM_A_MINSTREL_AT_LV_85, ExShowScreenMessage.TOP_CENTER, 8000);
qs.exitQuest(QuestType.ONE_TIME, true);
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isStarted())
{
if (npc.getId() == GREGORY)
{
htmltext = (qs.isCond(2)) ? "31279-01.htm" : "31279-04.html";
}
else if (qs.isCond(3))
{
htmltext = "33852-01.html";
}
}
return htmltext;
}
@Override
public boolean canShowTutorialMark(L2PcInstance player)
{
return player.getClassId() == ClassId.STRATOMANCER;
}
}

View File

@@ -0,0 +1,7 @@
<html><body>The Queen's Letter:<br>
I got an emergency request from the Town of Goddard. Near the Town of Goddard at Ketra Orc Outpost.<br>
It's different from the one we came in, but it's worth looking into. Go see <font color="LEVEL">High Priest Gregory</font>.<br>
(A <font color="LEVEL">Scroll of Escape</font> is enclosed. If you want to go now, use it to travel immediately.)<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h %teleport%">"Here I go!"</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h tutorial_close">Close</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
I admire your valor, but we require someone more adept.<br>
(This quest may only be undertaken by a Ertheia Wizard class character with Lv. 76 or above.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
I admire your valor, but we require someone more adept.<br>
(The quest is only for Ertheia characters.)
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Lugonnes:<br>
The Kamael and Ertheia have not traditionally been close, but I know very well of the skills of the Ertheia.<br>
The Ertheia are sure to bring down <font color="LEVEL">Belos</font>, the clone of Sakum created by the <font color="LEVEL">Embryo</font>. However, before Belos is brought down, something must e done.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10526_TheDarkSecretOfTheKetraOrcs 33852-02.htm">"What do you want me to do?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Lugonnes:<br>
First, find the <font color="LEVEL">Embryo</font>, sympathizers among the <font color="LEVEL">Ketra Orcs</font>, and teach them a lesson.<br>
This will make the work to follow much easier.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10526_TheDarkSecretOfTheKetraOrcs 33852-03.htm">"How can I find these sympathizers?"</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
If I am right, the <font color="LEVEL">Embryo Sympathizers</font> will appear when the <font color="LEVEL">Ketra Orcs</font> soldiers are in danger. Wait for this to happen taking out the Embryo Sympathizers.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10526_TheDarkSecretOfTheKetraOrcs 33852-04.htm">"Yes, I understand."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Lugonnes:<br>
I will explain again.<br>
If you kill some <font color="LEVEL">Ketra Orcs</font> here in the <font color="LEVEL">Ketra Orc Outpost</font>, <font color="LEVEL">Ketra Backup Shooters</font> and <font color="LEVEL">Ketra Backup Wizards</font> will appear.<br>
Kill <font color="LEVEL">100</font> of each and come back to me.
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Lugonnes:<br>
You're not yet done with the mission. I will explain again.<br>
If you kill some <font color="LEVEL">Ketra Orcs</font> here in the <font color="LEVEL">Ketra Orc Outpost</font>, <font color="LEVEL">Ketra Backup Shooters</font> and <font color="LEVEL">Ketra Backup Wizards</font> will appear.<br>
Kill <font color="LEVEL">100</font> of each and come back to me.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
You've certainly proved your worth! That was a devastating blow you struck. Now that the situation is desperate, they will bring out <font color="LEVEL">Belos</font>. They've been saving it as a last resort.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10526_TheDarkSecretOfTheKetraOrcs 33852-07.html">"What are you going to do now?"</Button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Giant's Minion Lugonnes:<br>
For now, we should wait, watching their activity. We will soon be able to locate <font color="LEVEL">Belos</font> whereabouts. Get some rest.<br>
</body></html

View File

@@ -0,0 +1,238 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
package quests.Q10526_TheDarkSecretOfTheKetraOrcs;
import java.util.HashSet;
import java.util.Set;
import com.l2jmobius.gameserver.enums.CategoryType;
import com.l2jmobius.gameserver.enums.ChatType;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
/**
* The Dark Secret of the Ketra Orcs (10526)
* @URL https://l2wiki.com/The_Dark_Secret_of_the_Ketra_Orcs
* @author Gigi
* @date 2017-11-20 - [20:03:04]
*/
public class Q10526_TheDarkSecretOfTheKetraOrcs extends Quest
{
// NPCs
private static final int LUGONNES = 33852;
// Monsters
private static final int KETRA_ORC_ELITE_SOLDIER = 21335;
private static final int KETRA_ORC_CENTURION = 21336;
private static final int KETRA_ORC_LIEUTENANT = 21332;
private static final int KETRA_ORC_RAIDER = 21327;
private static final int KETRA_ORC_WARRIOR = 21331;
private static final int KETRA_ORC_SCOUT = 21328;
private static final int KETRA_ORC_OFFICER = 21339;
private static final int KETRA_ORC_BATTALION_COMMANDER = 21340;
private static final int KETRA_ORC_HEAD_ROYAL_GUARD = 21346;
private static final int KETRAS_PROPHET = 21347;
private static final int KETRA_ORC_GRAND_PRIEST = 21342;
private static final int KETRAS_HEAD_SHAMAN = 21345;
private static final int KETRA_ORC_SHAMAN = 21329;
private static final int KETRA_ORC_MEDIUM = 21334;
private static final int KETRA_BACKUP_SHOOTER = 27511;
private static final int KETRA_BACKUP_WIZARD = 27512;
// Misc
private static final int MIN_LEVEL = 76;
private static final int MAX_LEVEL = 80;
public Q10526_TheDarkSecretOfTheKetraOrcs()
{
super(10526);
addStartNpc(LUGONNES);
addTalkId(LUGONNES);
addKillId(KETRA_ORC_HEAD_ROYAL_GUARD, KETRA_ORC_WARRIOR, KETRA_ORC_MEDIUM, KETRA_BACKUP_SHOOTER, KETRA_ORC_SHAMAN, KETRAS_HEAD_SHAMAN, KETRA_BACKUP_WIZARD, KETRA_ORC_ELITE_SOLDIER, KETRA_ORC_CENTURION, KETRA_ORC_LIEUTENANT, KETRA_ORC_RAIDER, KETRAS_PROPHET, KETRA_ORC_SCOUT, KETRA_ORC_OFFICER, KETRA_ORC_BATTALION_COMMANDER, KETRA_ORC_GRAND_PRIEST);
addCondRace(Race.ERTHEIA, "33852-00a.html");
addCondStart(p -> p.isInCategory(CategoryType.MAGE_GROUP), "33852-00.htm");
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33852-00.htm");
}
@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 "33852-02.htm":
case "33852-03.htm":
{
htmltext = event;
break;
}
case "33852-04.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "33852-07.html":
{
if (qs.isCond(2))
{
if (player.getLevel() >= MIN_LEVEL)
{
addExpAndSp(player, 492760460, 5519);
qs.exitQuest(QuestType.ONE_TIME, true);
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = "33852-01.htm";
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
htmltext = "33852-05.html";
}
else if (qs.isCond(2))
{
htmltext = "33852-06.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, true);
if ((qs != null) && qs.isCond(1))
{
int killedShooter = qs.getInt("killed_" + KETRA_BACKUP_SHOOTER);
int killedWizard = qs.getInt("killed_" + KETRA_BACKUP_WIZARD);
switch (npc.getId())
{
case KETRA_ORC_ELITE_SOLDIER:
case KETRA_ORC_CENTURION:
case KETRA_ORC_LIEUTENANT:
case KETRA_ORC_RAIDER:
case KETRA_ORC_SCOUT:
case KETRA_ORC_OFFICER:
case KETRA_ORC_BATTALION_COMMANDER:
case KETRA_ORC_HEAD_ROYAL_GUARD:
case KETRA_ORC_WARRIOR:
{
final L2Npc mob = addSpawn(KETRA_BACKUP_SHOOTER, npc, false, 60000);
mob.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_DARE_INTERFERE_WITH_EMBRYO_SURELY_YOU_WISH_FOR_DEATH);
addAttackPlayerDesire(mob, killer);
break;
}
case KETRAS_PROPHET:
case KETRA_ORC_GRAND_PRIEST:
case KETRA_ORC_SHAMAN:
case KETRAS_HEAD_SHAMAN:
case KETRA_ORC_MEDIUM:
{
final L2Npc mob = addSpawn(KETRA_BACKUP_WIZARD, npc, false, 60000);
mob.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_DARE_INTERFERE_WITH_EMBRYO_SURELY_YOU_WISH_FOR_DEATH);
addAttackPlayerDesire(mob, killer);
break;
}
case KETRA_BACKUP_SHOOTER:
{
if (killedShooter < 100)
{
qs.set("killed_" + KETRA_BACKUP_SHOOTER, ++killedShooter);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
break;
}
case KETRA_BACKUP_WIZARD:
{
if (killedWizard < 100)
{
qs.set("killed_" + KETRA_BACKUP_WIZARD, ++killedWizard);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
break;
}
}
if ((killedShooter >= 100) && (killedWizard >= 100))
{
qs.setCond(2, true);
}
sendNpcLogList(killer);
}
return super.onKill(npc, killer, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>(2);
holder.add(new NpcLogListHolder(KETRA_BACKUP_SHOOTER, false, qs.getInt("killed_" + KETRA_BACKUP_SHOOTER)));
holder.add(new NpcLogListHolder(KETRA_BACKUP_WIZARD, false, qs.getInt("killed_" + KETRA_BACKUP_WIZARD)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
I admire your valor, but we require someone more adept.<br>
(The quest is only for Ertheia characters.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
I admire your valor, but we require someone more adept.<br>
(This quest may only be undertaken by an Ertheia Wizard character with Lv. 76 or above who has completed the quest "The Dark Secret of the Ketra Orcs".)
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Lugonnes:<br>
Hmm... it appears that they are bring extremely cautious.<br>
<font color="LEVEL">Belos</font> is nowhere to be found. We need to flush them out.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10527_TheAssassinationOfTheKetraOrcCommander 33852-02.htm">"What should I do?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Lugonnes:<br>
We will go after their commander. There's no way they will keep<font color="LEVEL">Belos</font> hidden even when their commander is in danger.<br>
After creating a situation where they have no choice but to reveal Belos, we will slay Belos together once he shows himself.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10527_TheAssassinationOfTheKetraOrcCommander 33852-03.htm">"Go on."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
Of course, taking out the<font color="LEVEL">Ketra Orc</font> Commander will not be easy. Also, there is a chance that <font color="LEVEL">Belos</font> will not show himself. However, it is still worth a shot. Even if we only manage to slay their commander, we have nothing to lose from that.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10527_TheAssassinationOfTheKetraOrcCommander 33852-04.htm">"I understand."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
I will repeat my Instructions.<br>
Find and kill <font color="LEVEL">Ketra's Commander Tayr</font> here at the <font color="LEVEL">Ketra Orc Outpost</font> and report to me.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
Have you not found <font color="LEVEL">Ketra's Commander Tayr</font>?<br>
Again, find and kill <font color="LEVEL">Ketra's Commander Tayr</font> here at the <font color="LEVEL">Ketra Orc Outpost</font> and report to me.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
Hmm... Even after <font color="LEVEL">Ketra's Commander Tayr</font> was killed, <font color="LEVEL">Belos</font> didn't show up. I will think on this. Anyway, it is good that you killed Ketra's Commander Tayr. Now that the alliance between <font color="LEVEL">Embryo</font> and the <font color="LEVEL">Ketra Orcs</font> is proven, it is not good for us to have him alive.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10527_TheAssassinationOfTheKetraOrcCommander 33852-07.html">"Go on."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
Anyways, good work. You may get some rest now. I will devise another plan to bring <font color="LEVEL">Belos</font> out into the open.<br>
I will tell you when I come up with a good idea.
</body></html>

View File

@@ -0,0 +1,145 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
package quests.Q10527_TheAssassinationOfTheKetraOrcCommander;
import com.l2jmobius.gameserver.enums.CategoryType;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import quests.Q10526_TheDarkSecretOfTheKetraOrcs.Q10526_TheDarkSecretOfTheKetraOrcs;
/**
* The Assassination of the Ketra Orc Commander (10527)
* @URL https://l2wiki.com/The_Assassination_of_the_Ketra_Orc_Commander#Ertheia
* @author Gigi
* @date 2017-11-22 - [15:54:21]
*/
public class Q10527_TheAssassinationOfTheKetraOrcCommander extends Quest
{
// NPCs
private static final int LUGONNES = 33852;
// Monsters
private static final int KETRAS_COMMANDER_TAYR = 27500; // Ketra's Commander Tayr
// Misc
private static final int MIN_LEVEL = 76;
private static final int MAX_LEVEL = 80;
public Q10527_TheAssassinationOfTheKetraOrcCommander()
{
super(10527);
addStartNpc(LUGONNES);
addTalkId(LUGONNES);
addKillId(KETRAS_COMMANDER_TAYR);
addCondRace(Race.ERTHEIA, "33852-00.html");
addCondStart(p -> p.isInCategory(CategoryType.MAGE_GROUP), "33852-00a.htm");
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33852-00a.html");
addCondCompletedQuest(Q10526_TheDarkSecretOfTheKetraOrcs.class.getSimpleName(), "33852-00a.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 "33852-02.htm":
case "33852-03.htm":
{
htmltext = event;
break;
}
case "33852-04.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "33852-07.html":
{
if (qs.isCond(2))
{
if (player.getLevel() >= MIN_LEVEL)
{
addExpAndSp(player, 327446943, 1839);
qs.exitQuest(QuestType.ONE_TIME, true);
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = "33852-01.htm";
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
htmltext = "33852-05.html";
}
else if (qs.isCond(2))
{
htmltext = "33852-06.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, true);
if ((qs != null) && qs.isCond(1))
{
qs.setCond(2, true);
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
I admire your valor, but we require someone more adept.<br>
(The quest is only for Ertheia characters.)
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
I admire your valor, but we require someone more adept.<br>
(This quest may only be undertaken by an Ertheia Wizard character with Lv. 76 or above who has completed the quest "Assassination of the Ketra Orc Commander".)
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Lugonnes:<br>
The situation is not good. Since we took out their commander, their security has been tight. Though this was expected, it's hardly welcome.<br>
Of course, giving up now is not an option. We should simply do what we need to do.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10528_TheAssassinationOfTheKetraOrcChief 33852-02.htm">"What should I do?"</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Giant's Minion Lugonnes:<br>
The most dangerous thing that we can do may also be the most sure-fire way of bringing Belos out.<br>
We should find and slay their chief. Having already lost their Commander, if they also lose their chief to us, the Ketra Orcs will be plunged into confusion.<br>
At that point, no matter what agreement they entered into with the Embryo, they'll have no choice but to bring out <font color="LEVEL">Belos</font>.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10528_TheAssassinationOfTheKetraOrcChief 33852-03.htm">"I agree."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Lugonnes:<br>
I knew you'd agree with me.<br>
Of course, slaying the <font color="LEVEL">Ketra Orcs'</font> chief won't be an easy undertaking. However according to my observations until now, you're up to the task.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10528_TheAssassinationOfTheKetraOrcChief 33852-04.htm">"I'll take care of everything."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
Let me repeat my instructions.<br>
Find and kill <font color="LEVEL">Ketra's Chief Brakki</font> here at the <font color="LEVEL">Ketra Orc Outpost</font> and report to me.<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Giant's Minion Lugonnes:<br>
Have you not slayed <font color="LEVEL">Ketra's Chief Brakki</font> yet?<br>
I will give you the instructions again. Find and kill <font color="LEVEL">Ketra's Chief Brakki</font> here at the <font color="LEVEL">Ketra Orc Outpost</font> and report to me.<br>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Lugonnes:<br>
Finally! Killing <font color="LEVEL">Ketra's Chief Brakki</font> was exactly what we needed to flush out <font color="LEVEL">Belos</font>. We should have done that first!<br>
Well, I think that's it for both of us now. Time for some rest.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10528_TheAssassinationOfTheKetraOrcChief 33852-07.html">"Go on."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Giant's Minion Lugonnes:<br>
So you got rid of <font color="LEVEL">Belos</font>, and killed the chief of <font color="LEVEL">Ketra Orcs</font>. working with <font color="LEVEL">Embryo</font>, huh? what progress!<br>
Of course, that doesn't mean we can let our guard down against <font color="LEVEL">Embryo</font>. They'll be up to on good somewhere else before long!<br>
We will not forget the help the Ertheia have given us. Anyway, I'll let <font color="LEVEL">Kekropus</font> know of your valor. He will be grateful as well. We the Giant's Minions will always remember you.
</body></html>

View File

@@ -0,0 +1,151 @@
/*
* 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 <http://www.gnu.org/licenses/>.
*/
package quests.Q10528_TheAssassinationOfTheKetraOrcChief;
import com.l2jmobius.gameserver.enums.CategoryType;
import com.l2jmobius.gameserver.enums.ChatType;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
import quests.Q10527_TheAssassinationOfTheKetraOrcCommander.Q10527_TheAssassinationOfTheKetraOrcCommander;
/**
* The Assassination of the Ketra Orc Chief (10528)
* @URL https://l2wiki.com/The_Assassination_of_the_Ketra_Orc_Chief#Ertheia
* @author Gigi
* @date 2017-11-22 - [21:34:59]
*/
public class Q10528_TheAssassinationOfTheKetraOrcChief extends Quest
{
// NPCs
private static final int LUGONNES = 33852;
// Monsters
private static final int KETRAS_CHIEF_BRAKKI = 27501;
private static final int BELOS = 27513;
// Misc
private static final int MIN_LEVEL = 76;
private static final int MAX_LEVEL = 80;
public Q10528_TheAssassinationOfTheKetraOrcChief()
{
super(10528);
addStartNpc(LUGONNES);
addTalkId(LUGONNES);
addKillId(KETRAS_CHIEF_BRAKKI);
addCondRace(Race.ERTHEIA, "33852-00.html");
addCondStart(p -> p.isInCategory(CategoryType.MAGE_GROUP), "33852-00a.htm");
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33852-00a.htm");
addCondCompletedQuest(Q10527_TheAssassinationOfTheKetraOrcCommander.class.getSimpleName(), "33852-00a.htm");
}
@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 "33852-02.htm":
case "33852-03.htm":
{
htmltext = event;
break;
}
case "33852-04.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "33852-07.html":
{
if (qs.isCond(2))
{
if (player.getLevel() >= MIN_LEVEL)
{
addExpAndSp(player, 351479151, 1839);
qs.exitQuest(QuestType.ONE_TIME, true);
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
switch (qs.getState())
{
case State.CREATED:
{
htmltext = "33852-01.htm";
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
htmltext = "33852-05.html";
}
else if (qs.isCond(2))
{
htmltext = "33852-06.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, true);
if ((qs != null) && qs.isCond(1))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.COME_BELOS_PROTECT_ME);
final L2Npc mob = addSpawn(BELOS, npc, false, 120000);
addAttackPlayerDesire(mob, killer);
qs.setCond(2, true);
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -332,6 +332,14 @@ import quests.Q10502_FreyaEmbroideredSoulCloak.Q10502_FreyaEmbroideredSoulCloak;
import quests.Q10503_FrintezzaEmbroideredSoulCloak.Q10503_FrintezzaEmbroideredSoulCloak;
import quests.Q10504_JewelOfAntharas.Q10504_JewelOfAntharas;
import quests.Q10505_JewelOfValakas.Q10505_JewelOfValakas;
import quests.Q10521_QueenNavarisLetterVarkaSilenosBarracks.Q10521_QueenNavarisLetterVarkaSilenosBarracks;
import quests.Q10522_TheDarkSecretOfVarkaSilenos.Q10522_TheDarkSecretOfVarkaSilenos;
import quests.Q10523_TheAssassinationOfTheVarkaSilenosCommander.Q10523_TheAssassinationOfTheVarkaSilenosCommander;
import quests.Q10524_TheAssassinationOfTheVarkaSilenosCommanderChief.Q10524_TheAssassinationOfTheVarkaSilenosCommanderChief;
import quests.Q10525_QueenNavarisLetterKetraOrcOutpost.Q10525_QueenNavarisLetterKetraOrcOutpost;
import quests.Q10526_TheDarkSecretOfTheKetraOrcs.Q10526_TheDarkSecretOfTheKetraOrcs;
import quests.Q10527_TheAssassinationOfTheKetraOrcCommander.Q10527_TheAssassinationOfTheKetraOrcCommander;
import quests.Q10528_TheAssassinationOfTheKetraOrcChief.Q10528_TheAssassinationOfTheKetraOrcChief;
import quests.Q10534_HatchlingResearch.Q10534_HatchlingResearch;
import quests.Q10541_TrainLikeTheRealThing.Q10541_TrainLikeTheRealThing;
import quests.Q10542_SearchingForNewPower.Q10542_SearchingForNewPower;
@@ -754,6 +762,14 @@ public class QuestMasterHandler
Q10503_FrintezzaEmbroideredSoulCloak.class,
Q10504_JewelOfAntharas.class,
Q10505_JewelOfValakas.class,
Q10521_QueenNavarisLetterVarkaSilenosBarracks.class,
Q10522_TheDarkSecretOfVarkaSilenos.class,
Q10523_TheAssassinationOfTheVarkaSilenosCommander.class,
Q10524_TheAssassinationOfTheVarkaSilenosCommanderChief.class,
Q10525_QueenNavarisLetterKetraOrcOutpost.class,
Q10526_TheDarkSecretOfTheKetraOrcs.class,
Q10527_TheAssassinationOfTheKetraOrcCommander.class,
Q10528_TheAssassinationOfTheKetraOrcChief.class,
Q10534_HatchlingResearch.class,
Q10541_TrainLikeTheRealThing.class,
Q10542_SearchingForNewPower.class,