Addition of quests 10521 to 10524.

Contributed by gigilo1968.
This commit is contained in:
MobiusDev 2017-11-18 22:44:39 +00:00
parent b9bda5150b
commit 957e9482e8
40 changed files with 824 additions and 4 deletions

View File

@ -147,10 +147,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

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);
// TODO: giveStoryQuestReward(npc, player);
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.htm";
}
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,231 @@
/*
* 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);
if (npc.getId() == HANSEN)
{
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,147 @@
/*
* 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);
if (npc.getId() == HANSEN)
{
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,153 @@
/*
* 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);
if (npc.getId() == HANSEN)
{
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

@ -327,6 +327,10 @@ 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.Q10534_HatchlingResearch.Q10534_HatchlingResearch;
import quests.Q10541_TrainLikeTheRealThing.Q10541_TrainLikeTheRealThing;
import quests.Q10542_SearchingForNewPower.Q10542_SearchingForNewPower;
@ -744,6 +748,10 @@ public class QuestMasterHandler
Q10503_FrintezzaEmbroideredSoulCloak.class,
Q10504_JewelOfAntharas.class,
Q10505_JewelOfValakas.class,
Q10521_QueenNavarisLetterVarkaSilenosBarracks.class,
Q10522_TheDarkSecretOfVarkaSilenos.class,
Q10523_TheAssassinationOfTheVarkaSilenosCommander.class,
Q10524_TheAssassinationOfTheVarkaSilenosCommanderChief.class,
Q10534_HatchlingResearch.class,
Q10541_TrainLikeTheRealThing.class,
Q10542_SearchingForNewPower.class,