Quest The Dark Secret of the Ketra Orcs (10526).

Contributed by gigilo1968.
This commit is contained in:
MobiusDev 2017-11-20 18:19:06 +00:00
parent 3b3ba7946d
commit 3dc1d19278
12 changed files with 282 additions and 1 deletions

View File

@ -148,7 +148,6 @@
10457 Kefensis' Illusion
10506 Diana's Request
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

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,241 @@
/*
* 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);
if (npc.getId() == LUGONNES)
{
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

@ -331,6 +331,7 @@ import quests.Q10521_QueenNavarisLetterVarkaSilenosBarracks.Q10521_QueenNavarisL
import quests.Q10522_TheDarkSecretOfVarkaSilenos.Q10522_TheDarkSecretOfVarkaSilenos;
import quests.Q10523_TheAssassinationOfTheVarkaSilenosCommander.Q10523_TheAssassinationOfTheVarkaSilenosCommander;
import quests.Q10524_TheAssassinationOfTheVarkaSilenosCommanderChief.Q10524_TheAssassinationOfTheVarkaSilenosCommanderChief;
import quests.Q10526_TheDarkSecretOfTheKetraOrcs.Q10526_TheDarkSecretOfTheKetraOrcs;
import quests.Q10534_HatchlingResearch.Q10534_HatchlingResearch;
import quests.Q10541_TrainLikeTheRealThing.Q10541_TrainLikeTheRealThing;
import quests.Q10542_SearchingForNewPower.Q10542_SearchingForNewPower;
@ -752,6 +753,7 @@ public class QuestMasterHandler
Q10522_TheDarkSecretOfVarkaSilenos.class,
Q10523_TheAssassinationOfTheVarkaSilenosCommander.class,
Q10524_TheAssassinationOfTheVarkaSilenosCommanderChief.class,
Q10526_TheDarkSecretOfTheKetraOrcs.class,
Q10534_HatchlingResearch.class,
Q10541_TrainLikeTheRealThing.class,
Q10542_SearchingForNewPower.class,