Quest The Ketra Orc Supporters (10425).
Contributed by Stayway.
This commit is contained in:
@@ -93,7 +93,6 @@
|
|||||||
10380 The Executioner's Execution
|
10380 The Executioner's Execution
|
||||||
10388 Conspiracy Behind Doors
|
10388 Conspiracy Behind Doors
|
||||||
10389 The Voice of Authority
|
10389 The Voice of Authority
|
||||||
10425 The Ketra Orc Supporters
|
|
||||||
10426 Assassination of the Ketra Orc Commander
|
10426 Assassination of the Ketra Orc Commander
|
||||||
10427 Assassination of the Ketra Orc Chief
|
10427 Assassination of the Ketra Orc Chief
|
||||||
10430 Kekropus' Letter: Tracking the Evil (9/9)
|
10430 Kekropus' Letter: Tracking the Evil (9/9)
|
||||||
|
4
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-01.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-01.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Giant's Minion Lugonnes:<br>
|
||||||
|
If it is true that you defeated <font color="LEVEL">Sakum</font> in the <font color="LEVEL">Wasteland</font> you should have no trouble with <font color="LEVEL">Belos</font>, a clone of Sakum created by <font color="LEVEL">Embryo</font>. But how do I know if it's really you?<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10425_TheKetraOrcSupporters 33852-02.htm">"How can I prove myself?"</Button>
|
||||||
|
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-02.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-02.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Giant's Minion Lugonnes:<br>
|
||||||
|
First, hide yourself among the <font color="LEVEL">Ketra Orcs</font>. Then, find and kill those who help <font color="LEVEL">Embryo</font>. That will make things easier.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10425_TheKetraOrcSupporters 33852-03.htm">"Okay. Go on."</Button>
|
||||||
|
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-03.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-03.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Giant's Minion Lugonnes:<br>
|
||||||
|
If I am right, the helpers sent by <font color="LEVEL">Embryo</font> will appear when the <font color="LEVEL">Ketra Orc</font> soldiers are in danger.<br>
|
||||||
|
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10425_TheKetraOrcSupporters 33852-04.htm">"Go on."</Button>
|
||||||
|
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-04.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-04.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Giant's Minion Lugonnes:<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. Kill <font color="LEVEL">50</font> each and come back to me.
|
||||||
|
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-05.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-05.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Giant's Minion Lugonnes:<br>You haven't finished the mission yet!<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. Kill <font color="LEVEL">50</font> each and come back to me.
|
||||||
|
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-06.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-06.html
vendored
Normal 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 Q10425_TheKetraOrcSupporters 33852-07.html">"What should we do now?"</Button>
|
||||||
|
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-07.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-07.html
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<html><body>Giant's Minion Lugonnes:<br>
|
||||||
|
For now, let's wait and observe their movements. That will help us find <font color="LEVEL">Belos</font>. Until then, get some rest.
|
||||||
|
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-08.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-08.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Giant's Minion Lugonnes:<br>
|
||||||
|
Maybe you're not prepared after all...<br>
|
||||||
|
(This quest may only be undertaken by a Wizard class character who is level 76 to 80.)
|
||||||
|
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-09.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/33852-09.html
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<html><body>Giant's Minion Lugonnes:<br>
|
||||||
|
I don't trust you.<br>
|
||||||
|
(Ertheia classes cannot perform this quest.)
|
||||||
|
</body></html>
|
224
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/Q10425_TheKetraOrcSupporters.java
vendored
Normal file
224
trunk/dist/game/data/scripts/quests/Q10425_TheKetraOrcSupporters/Q10425_TheKetraOrcSupporters.java
vendored
Normal file
@@ -0,0 +1,224 @@
|
|||||||
|
/*
|
||||||
|
* 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.Q10425_TheKetraOrcSupporters;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import com.l2jmobius.commons.util.CommonUtil;
|
||||||
|
import com.l2jmobius.gameserver.enums.CategoryType;
|
||||||
|
import com.l2jmobius.gameserver.enums.ChatType;
|
||||||
|
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||||
|
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 Ketra Orc Supporters (10425)
|
||||||
|
* @author Stayway
|
||||||
|
*/
|
||||||
|
public final class Q10425_TheKetraOrcSupporters extends Quest
|
||||||
|
{
|
||||||
|
// NPCs
|
||||||
|
private static final int LUGONNES = 33852;
|
||||||
|
private static final int EMBRYO_SHOOTER = 27514;
|
||||||
|
private static final int EMBRYO_WIZARD = 27515;
|
||||||
|
private static final int[] SHOOTER_MONSTERS =
|
||||||
|
{
|
||||||
|
21327, // Ketra Orc Raider
|
||||||
|
21331, // Ketra Orc Warrior
|
||||||
|
21332, // Ketra Orc Lieutenant
|
||||||
|
21335, // Ketra Orc Elite Soldier
|
||||||
|
21336, // Ketra Orc White Captain
|
||||||
|
21339, // Ketra Orc Officer
|
||||||
|
21340, // Ketra Orc Battalion Commander
|
||||||
|
27511, // Ketra Backup Shooter
|
||||||
|
};
|
||||||
|
private static final int[] WIZARD_MONSTERS =
|
||||||
|
{
|
||||||
|
21334, // Ketra Orc Medium
|
||||||
|
21338, // Ketra Orc Seer
|
||||||
|
21342, // Ketra Orc Grand Priest
|
||||||
|
27512, // Varka Backup Wizard
|
||||||
|
};
|
||||||
|
// Items
|
||||||
|
private static final int EAS = 26353; // Scroll: Enchant Armor (S-grade)
|
||||||
|
// Misc
|
||||||
|
private static final int MIN_LEVEL = 76;
|
||||||
|
private static final int MAX_LEVEL = 80;
|
||||||
|
|
||||||
|
public Q10425_TheKetraOrcSupporters()
|
||||||
|
{
|
||||||
|
super(10425);
|
||||||
|
addStartNpc(LUGONNES);
|
||||||
|
addTalkId(LUGONNES);
|
||||||
|
addKillId(SHOOTER_MONSTERS);
|
||||||
|
addKillId(WIZARD_MONSTERS);
|
||||||
|
addCondNotRace(Race.ERTHEIA, "33852-09.html");
|
||||||
|
addCondInCategory(CategoryType.WIZARD_GROUP, "33852-08.html");
|
||||||
|
addCondMinLevel(MIN_LEVEL, "33852-08.html");
|
||||||
|
addCondMaxLevel(MAX_LEVEL, "33852-08.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))
|
||||||
|
{
|
||||||
|
qs.exitQuest(false, true);
|
||||||
|
giveItems(player, EAS, 2);
|
||||||
|
giveStoryQuestReward(player, 89);
|
||||||
|
if ((player.getLevel() >= MIN_LEVEL) && (player.getLevel() <= MAX_LEVEL))
|
||||||
|
{
|
||||||
|
addExpAndSp(player, 22_997_520, 5519);
|
||||||
|
}
|
||||||
|
htmltext = event;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return htmltext;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(player, true);
|
||||||
|
String htmltext = null;
|
||||||
|
|
||||||
|
switch (qs.getState())
|
||||||
|
{
|
||||||
|
case State.CREATED:
|
||||||
|
{
|
||||||
|
htmltext = "33852-01.htm";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case State.STARTED:
|
||||||
|
{
|
||||||
|
htmltext = qs.isCond(1) ? "33852-05.html" : "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, false);
|
||||||
|
|
||||||
|
if ((qs != null) && qs.isCond(1))
|
||||||
|
{
|
||||||
|
if ((npc.getId() == EMBRYO_SHOOTER) || (npc.getId() == EMBRYO_WIZARD))
|
||||||
|
{
|
||||||
|
int shooterCount = qs.getInt("KillCount_" + EMBRYO_SHOOTER);
|
||||||
|
int wizardCount = qs.getInt("KillCount_" + EMBRYO_WIZARD);
|
||||||
|
|
||||||
|
if (npc.getId() == EMBRYO_SHOOTER)
|
||||||
|
{
|
||||||
|
if (shooterCount < 50)
|
||||||
|
{
|
||||||
|
qs.set("KillCount_" + EMBRYO_SHOOTER, ++shooterCount);
|
||||||
|
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (wizardCount < 50)
|
||||||
|
{
|
||||||
|
qs.set("KillCount_" + EMBRYO_WIZARD, ++wizardCount);
|
||||||
|
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((shooterCount >= 50) && (wizardCount >= 50))
|
||||||
|
{
|
||||||
|
qs.setCond(2, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (CommonUtil.contains(WIZARD_MONSTERS, npc.getId()))
|
||||||
|
{
|
||||||
|
if (qs.getInt("KillCount_" + EMBRYO_WIZARD) < 50)
|
||||||
|
{
|
||||||
|
final L2Npc embryo = addSpawn(EMBRYO_WIZARD, npc, false, 60000);
|
||||||
|
addAttackPlayerDesire(embryo, killer);
|
||||||
|
embryo.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_DARE_INTERFERE_WITH_EMBRYO_SURELY_YOU_WISH_FOR_DEATH);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (qs.getInt("KillCount_" + EMBRYO_SHOOTER) < 50)
|
||||||
|
{
|
||||||
|
final L2Npc embryo = addSpawn(EMBRYO_SHOOTER, npc, false, 60000);
|
||||||
|
addAttackPlayerDesire(embryo, killer);
|
||||||
|
embryo.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_DARE_INTERFERE_WITH_EMBRYO_SURELY_YOU_WISH_FOR_DEATH);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.onKill(npc, killer, isSummon);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance activeChar)
|
||||||
|
{
|
||||||
|
final QuestState qs = getQuestState(activeChar, false);
|
||||||
|
if ((qs != null) && qs.isCond(1))
|
||||||
|
{
|
||||||
|
final Set<NpcLogListHolder> npcLogList = new HashSet<>(2);
|
||||||
|
npcLogList.add(new NpcLogListHolder(EMBRYO_SHOOTER, false, qs.getInt("KillCount_" + EMBRYO_SHOOTER)));
|
||||||
|
npcLogList.add(new NpcLogListHolder(EMBRYO_WIZARD, false, qs.getInt("KillCount_" + EMBRYO_WIZARD)));
|
||||||
|
return npcLogList;
|
||||||
|
}
|
||||||
|
return super.getNpcLogList(activeChar);
|
||||||
|
}
|
||||||
|
}
|
@@ -284,6 +284,7 @@ import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters;
|
|||||||
import quests.Q10421_AssassinationOfTheVarkaSilenosCommander.Q10421_AssassinationOfTheVarkaSilenosCommander;
|
import quests.Q10421_AssassinationOfTheVarkaSilenosCommander.Q10421_AssassinationOfTheVarkaSilenosCommander;
|
||||||
import quests.Q10422_AssassinationOfTheVarkaSilenosChief.Q10422_AssassinationOfTheVarkaSilenosChief;
|
import quests.Q10422_AssassinationOfTheVarkaSilenosChief.Q10422_AssassinationOfTheVarkaSilenosChief;
|
||||||
import quests.Q10424_KekropusLetterBelosWhereabouts.Q10424_KekropusLetterBelosWhereabouts;
|
import quests.Q10424_KekropusLetterBelosWhereabouts.Q10424_KekropusLetterBelosWhereabouts;
|
||||||
|
import quests.Q10425_TheKetraOrcSupporters.Q10425_TheKetraOrcSupporters;
|
||||||
import quests.Q10442_TheAnnihilatedPlains1.Q10442_TheAnnihilatedPlains1;
|
import quests.Q10442_TheAnnihilatedPlains1.Q10442_TheAnnihilatedPlains1;
|
||||||
import quests.Q10445_AnImpendingThreat.Q10445_AnImpendingThreat;
|
import quests.Q10445_AnImpendingThreat.Q10445_AnImpendingThreat;
|
||||||
import quests.Q10450_ADarkAmbition.Q10450_ADarkAmbition;
|
import quests.Q10450_ADarkAmbition.Q10450_ADarkAmbition;
|
||||||
@@ -650,6 +651,7 @@ public class QuestMasterHandler
|
|||||||
Q10421_AssassinationOfTheVarkaSilenosCommander.class,
|
Q10421_AssassinationOfTheVarkaSilenosCommander.class,
|
||||||
Q10422_AssassinationOfTheVarkaSilenosChief.class,
|
Q10422_AssassinationOfTheVarkaSilenosChief.class,
|
||||||
Q10424_KekropusLetterBelosWhereabouts.class,
|
Q10424_KekropusLetterBelosWhereabouts.class,
|
||||||
|
Q10425_TheKetraOrcSupporters.class,
|
||||||
Q10442_TheAnnihilatedPlains1.class,
|
Q10442_TheAnnihilatedPlains1.class,
|
||||||
Q10445_AnImpendingThreat.class,
|
Q10445_AnImpendingThreat.class,
|
||||||
Q10450_ADarkAmbition.class,
|
Q10450_ADarkAmbition.class,
|
||||||
|
Reference in New Issue
Block a user