Addition of missing Orven quests.

Thanks to petryxa.
This commit is contained in:
MobiusDevelopment 2022-10-22 21:23:53 +00:00
parent e8e899d8e0
commit 65fdb3dc19
129 changed files with 3954 additions and 0 deletions

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
On the Plans of the Lizardmen.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10302_FoilPlansOfTheLizardmen 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>High Priest Orven:<br>
Many Overlords had diied on the Plans of the Lizardmen.<br>
Echoes of their suffering and deaths had been imprinted in the plains for ever. That's why monsters like wandering there.<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10302_FoilPlansOfTheLizardmen 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Plans of the Lizardmen and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Tanta Lizardman, Tanta Lizardman Warrior, Tanta Lizardman Berserker, Tanta Lizardman Archer, Tanta Lizardman Summoner</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Where do you think the most Overlords live?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10302_FoilPlansOfTheLizardmen 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -0,0 +1,186 @@
/*
* 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.Q10302_FoilPlansOfTheLizardmen;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10302_FoilPlansOfTheLizardmen extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
22151,
22152,
22153,
22154,
22155,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 10);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 6);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 1);
// Misc
private static final int MIN_LEVEL = 76;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10302_FoilPlansOfTheLizardmen()
{
super(10302);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.ERADICATE_MONSTERS_IN_THE_PLAINS_OF_THE_LIZARDMEN);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 100000000, 2700000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.ERADICATE_MONSTERS_IN_THE_PLAINS_OF_THE_LIZARDMEN.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Plans of the Lizardmen</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Tanta Lizardman, Tanta Lizardman Warrior, Tanta Lizardman Berserker, Tanta Lizardman Archer, Tanta Lizardman Summoner</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 76+.)<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
It's called a Tower of Insolence.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10303_SymbolOfHubris 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10303_SymbolOfHubris 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Tower of Insolence and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Ghost of the Tower, Tower Watchman, Ghastly Warrior, Archer of Despair, Judge of Despair, Crendion, Swordsman of Ordeal, Hound of Destruction, Royal Guard of Insolence</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Hello my friend. Do you want to explore a dangerous tower near Aden?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10303_SymbolOfHubris 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -0,0 +1,192 @@
/*
* 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.Q10303_SymbolOfHubris;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10303_SymbolOfHubris extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
21989,
21990,
21991,
21992,
21993,
21994,
21995,
21996,
21997,
21998,
21999,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 10);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 8);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 1);
// Misc
private static final int MIN_LEVEL = 78;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10303_SymbolOfHubris()
{
super(10303);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.DEFEAT_MONSTERS_IN_THE_TOWER_OF_INSOLENCE);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 100000000, 2700000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_TOWER_OF_INSOLENCE.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Tower of Insolence</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Ghost of the Tower, Tower Watchman, Ghastly Warrior, Archer of Despair, Judge of Despair, Crendion, Swordsman of Ordeal, Hound of Destruction, Royal Guard of Insolence</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 78+.)<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
It's called a Dragon Valley.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10304_ChangesintheDragonValley 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10304_ChangesintheDragonValley 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Dragon Valley (west) and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Cave Maiden, Headless Knight, Convict, Cave Servant Captain, Cave Keeper, Drake, Gargoyle Hunter, Dustwind Gargoyle, Thunder Wyrm, Blood Queen, Maluk Succubus, Cave Banshee, Cave Servant, Cave Servant Archer, Cave Servant Warrior, Royal Cave Servant, Dragon Bearer Captain, Dragon Bearer Warrior, Dragon Bearer Archer, Lord Ishka</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Hello my friend. Do you want to explore a dangerous place with full of Dragons?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10304_ChangesintheDragonValley 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -0,0 +1,200 @@
/*
* 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.Q10304_ChangesintheDragonValley;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10304_ChangesintheDragonValley extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
20412,
20142,
20246,
20134,
20236,
20237,
20239,
20238,
20760,
20758,
20759,
20137,
20242,
20146,
20241,
20244,
20240,
20235,
20243,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 10);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 10);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 2);
// Misc
private static final int MIN_LEVEL = 76;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10304_ChangesintheDragonValley()
{
super(10304);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.DEFEAT_MONSTERS_IN_THE_DRAGON_VALLEY_WEST);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 100000000, 2700000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_DRAGON_VALLEY_WEST.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Dragon Valley</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Cave Maiden, Headless Knight, Convict, Cave Servant Captain, Cave Keeper, Drake, Gargoyle Hunter, Dustwind Gargoyle, Thunder Wyrm, Blood Queen, Maluk Succubus, Cave Banshee, Cave Servant, Cave Servant Archer, Cave Servant Warrior, Royal Cave Servant, Dragon Bearer Captain, Dragon Bearer Warrior, Dragon Bearer Archer, Lord Ishka</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 76+.)<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
It's called a Dragon Valley.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10305_DragonsSuspiciousMovements 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10305_DragonsSuspiciousMovements 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Dragon Valley (east) and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Dragontroop Soldier, Dragontroop Lancer, Dragontroop Berserker, Dragontroop Minion, Dragontroop Wizard, Dragontroop Elite Wizard, Drake Minion, Mutated Drake.</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Hello my friend. Do you want to explore a dangerous place with full of Dragons?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10305_DragonsSuspiciousMovements 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -0,0 +1,189 @@
/*
* 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.Q10305_DragonsSuspiciousMovements;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10305_DragonsSuspiciousMovements extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
22307,
22312,
22306,
22308,
22309,
22310,
22311,
22305,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 20);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 12);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 2);
// Misc
private static final int MIN_LEVEL = 82;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10305_DragonsSuspiciousMovements()
{
super(10305);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.DEFEAT_MONSTERS_IN_THE_DRAGON_VALLEY_EAST);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 300000000, 8100000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_DRAGON_VALLEY_EAST.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Dragon Valley</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Dragontroop Soldier, Dragontroop Lancer, Dragontroop Berserker, Dragontroop Minion, Dragontroop Wizard, Dragontroop Elite Wizard, Drake Minion, Mutated Drake.</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 82+.)<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
It's called a Sel Mahum Base.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10306_StopSelMahumsTroops 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10306_StopSelMahumsTroops 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Sel Mahum Base and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Sel Mahum Sniper, Sel Mahum Raider, Sel Mahum Berserker, Sel Mahum Mage, Sel Mahum Thief, Sel Mahum Wizard, Sel Mahum Knight, Sel Mahum Footman, Sel Mahum Bowman.</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Hello my friend. Do you want to explore a dangerous place with full of Mahums?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10306_StopSelMahumsTroops 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -0,0 +1,200 @@
/*
* 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.Q10306_StopSelMahumsTroops;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10306_StopSelMahumsTroops extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
22256,
22237,
22238,
22239,
22240,
22241,
22242,
22243,
22244,
22245,
22247,
22248,
22249,
22250,
22251,
22252,
22253,
22254,
22255,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 20);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 12);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 2);
// Misc
private static final int MIN_LEVEL = 85;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10306_StopSelMahumsTroops()
{
super(10306);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.DEFEAT_MONSTERS_IN_SEL_MAHUM_BASE);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 400000000, 10800000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_SEL_MAHUM_BASE.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Sel Mahum Base</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Sel Mahum Sniper, Sel Mahum Raider, Sel Mahum Berserker, Sel Mahum Mage, Sel Mahum Thief, Sel Mahum Wizard, Sel Mahum Knight, Sel Mahum Footman, Sel Mahum Bowman.</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 85+.)<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
It's called a Orc Barracks.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10307_TurekOrcsSecret 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10307_TurekOrcsSecret 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Orc Barracks and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Turek Orc, Turek Orc Footman, Turek Orc Marksman, Turek Orc Warrior, Turek Orc Shaman, Kerr, Turek Orc Elite, Turek Orc Skirmisher, Turek Orc Sniper, Turek Orc Prefect, Turek Orc Elder, Turek.</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Hello my friend. Do you want to explore a dangerous place with full of dirty Orcs?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10307_TurekOrcsSecret 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -0,0 +1,193 @@
/*
* 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.Q10307_TurekOrcsSecret;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10307_TurekOrcsSecret extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
22135,
22136,
22137,
22138,
22139,
22140,
22146,
22141,
22142,
22143,
22144,
22145,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 20);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 12);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 2);
// Misc
private static final int MIN_LEVEL = 85;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10307_TurekOrcsSecret()
{
super(10307);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.DEFEAT_MONSTERS_IN_THE_ORC_BARRACKS);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 500000000, 13500000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_ORC_BARRACKS.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Orc Barracks</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Turek Orc, Turek Orc Footman, Turek Orc Marksman, Turek Orc Warrior, Turek Orc Shaman, Kerr, Turek Orc Elite, Turek Orc Skirmisher, Turek Orc Sniper, Turek Orc Prefect, Turek Orc Elder, Turek.</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 85+.)<br>
</body></html>

View File

@ -35,6 +35,12 @@ import quests.Q10298_TracesOfBattle.Q10298_TracesOfBattle;
import quests.Q10299_GetIncrediblePower.Q10299_GetIncrediblePower;
import quests.Q10300_ExploringTheCrumaTower.Q10300_ExploringTheCrumaTower;
import quests.Q10301_NotSoSilentValley.Q10301_NotSoSilentValley;
import quests.Q10302_FoilPlansOfTheLizardmen.Q10302_FoilPlansOfTheLizardmen;
import quests.Q10303_SymbolOfHubris.Q10303_SymbolOfHubris;
import quests.Q10304_ChangesintheDragonValley.Q10304_ChangesintheDragonValley;
import quests.Q10305_DragonsSuspiciousMovements.Q10305_DragonsSuspiciousMovements;
import quests.Q10306_StopSelMahumsTroops.Q10306_StopSelMahumsTroops;
import quests.Q10307_TurekOrcsSecret.Q10307_TurekOrcsSecret;
import quests.Q10673_SagaOfLegend.Q10673_SagaOfLegend;
import quests.Q10954_SayhaChildren.Q10954_SayhaChildren;
import quests.Q10955_NewLifeLessons.Q10955_NewLifeLessons;
@ -87,6 +93,12 @@ public class QuestMasterHandler
Q10299_GetIncrediblePower.class,
Q10300_ExploringTheCrumaTower.class,
Q10301_NotSoSilentValley.class,
Q10302_FoilPlansOfTheLizardmen.class,
Q10303_SymbolOfHubris.class,
Q10304_ChangesintheDragonValley.class,
Q10305_DragonsSuspiciousMovements.class,
Q10306_StopSelMahumsTroops.class,
Q10307_TurekOrcsSecret.class,
Q10954_SayhaChildren.class,
Q10955_NewLifeLessons.class,
Q10956_WeSylphs.class,

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
On the Plans of the Lizardmen.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10302_FoilPlansOfTheLizardmen 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>High Priest Orven:<br>
Many Overlords had diied on the Plans of the Lizardmen.<br>
Echoes of their suffering and deaths had been imprinted in the plains for ever. That's why monsters like wandering there.<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10302_FoilPlansOfTheLizardmen 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Plans of the Lizardmen and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Tanta Lizardman, Tanta Lizardman Warrior, Tanta Lizardman Berserker, Tanta Lizardman Archer, Tanta Lizardman Summoner</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Where do you think the most Overlords live?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10302_FoilPlansOfTheLizardmen 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -0,0 +1,186 @@
/*
* 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.Q10302_FoilPlansOfTheLizardmen;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10302_FoilPlansOfTheLizardmen extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
22151,
22152,
22153,
22154,
22155,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 10);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 6);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 1);
// Misc
private static final int MIN_LEVEL = 76;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10302_FoilPlansOfTheLizardmen()
{
super(10302);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.ERADICATE_MONSTERS_IN_THE_PLAINS_OF_THE_LIZARDMEN);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 100000000, 2700000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.ERADICATE_MONSTERS_IN_THE_PLAINS_OF_THE_LIZARDMEN.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Plans of the Lizardmen</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Tanta Lizardman, Tanta Lizardman Warrior, Tanta Lizardman Berserker, Tanta Lizardman Archer, Tanta Lizardman Summoner</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 76+.)<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
It's called a Tower of Insolence.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10303_SymbolOfHubris 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10303_SymbolOfHubris 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Tower of Insolence and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Ghost of the Tower, Tower Watchman, Ghastly Warrior, Archer of Despair, Judge of Despair, Crendion, Swordsman of Ordeal, Hound of Destruction, Royal Guard of Insolence</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Hello my friend. Do you want to explore a dangerous tower near Aden?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10303_SymbolOfHubris 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -0,0 +1,192 @@
/*
* 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.Q10303_SymbolOfHubris;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10303_SymbolOfHubris extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
21989,
21990,
21991,
21992,
21993,
21994,
21995,
21996,
21997,
21998,
21999,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 10);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 8);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 1);
// Misc
private static final int MIN_LEVEL = 78;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10303_SymbolOfHubris()
{
super(10303);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.KILL_MONSTERS_IN_THE_TOWER_OF_INSOLENCE);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 100000000, 2700000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.KILL_MONSTERS_IN_THE_TOWER_OF_INSOLENCE.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Tower of Insolence</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Ghost of the Tower, Tower Watchman, Ghastly Warrior, Archer of Despair, Judge of Despair, Crendion, Swordsman of Ordeal, Hound of Destruction, Royal Guard of Insolence</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 78+.)<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
It's called a Dragon Valley.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10304_ChangesintheDragonValley 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10304_ChangesintheDragonValley 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Dragon Valley (west) and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Cave Maiden, Headless Knight, Convict, Cave Servant Captain, Cave Keeper, Drake, Gargoyle Hunter, Dustwind Gargoyle, Thunder Wyrm, Blood Queen, Maluk Succubus, Cave Banshee, Cave Servant, Cave Servant Archer, Cave Servant Warrior, Royal Cave Servant, Dragon Bearer Captain, Dragon Bearer Warrior, Dragon Bearer Archer, Lord Ishka</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Hello my friend. Do you want to explore a dangerous place with full of Dragons?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10304_ChangesintheDragonValley 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -0,0 +1,200 @@
/*
* 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.Q10304_ChangesintheDragonValley;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10304_ChangesintheDragonValley extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
20412,
20142,
20246,
20134,
20236,
20237,
20239,
20238,
20760,
20758,
20759,
20137,
20242,
20146,
20241,
20244,
20240,
20235,
20243,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 10);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 10);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 2);
// Misc
private static final int MIN_LEVEL = 76;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10304_ChangesintheDragonValley()
{
super(10304);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.DEFEAT_MONSTERS_IN_THE_DRAGON_VALLEY_WEST);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 100000000, 2700000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_DRAGON_VALLEY_WEST.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Dragon Valley</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Cave Maiden, Headless Knight, Convict, Cave Servant Captain, Cave Keeper, Drake, Gargoyle Hunter, Dustwind Gargoyle, Thunder Wyrm, Blood Queen, Maluk Succubus, Cave Banshee, Cave Servant, Cave Servant Archer, Cave Servant Warrior, Royal Cave Servant, Dragon Bearer Captain, Dragon Bearer Warrior, Dragon Bearer Archer, Lord Ishka</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 76+.)<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
It's called a Dragon Valley.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10305_DragonsSuspiciousMovements 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10305_DragonsSuspiciousMovements 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Dragon Valley (east) and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Dragontroop Soldier, Dragontroop Lancer, Dragontroop Berserker, Dragontroop Minion, Dragontroop Wizard, Dragontroop Elite Wizard, Drake Minion, Mutated Drake.</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Hello my friend. Do you want to explore a dangerous place with full of Dragons?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10305_DragonsSuspiciousMovements 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -0,0 +1,189 @@
/*
* 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.Q10305_DragonsSuspiciousMovements;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10305_DragonsSuspiciousMovements extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
22307,
22312,
22306,
22308,
22309,
22310,
22311,
22305,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 20);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 12);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 2);
// Misc
private static final int MIN_LEVEL = 82;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10305_DragonsSuspiciousMovements()
{
super(10305);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.DEFEAT_MONSTERS_IN_THE_DRAGON_VALLEY_EAST);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 300000000, 8100000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_DRAGON_VALLEY_EAST.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Dragon Valley</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Dragontroop Soldier, Dragontroop Lancer, Dragontroop Berserker, Dragontroop Minion, Dragontroop Wizard, Dragontroop Elite Wizard, Drake Minion, Mutated Drake.</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 82+.)<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
It's called a Sel Mahum Base.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10306_StopSelMahumsTroops 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10306_StopSelMahumsTroops 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Sel Mahum Base and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Sel Mahum Sniper, Sel Mahum Raider, Sel Mahum Berserker, Sel Mahum Mage, Sel Mahum Thief, Sel Mahum Wizard, Sel Mahum Knight, Sel Mahum Footman, Sel Mahum Bowman.</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Hello my friend. Do you want to explore a dangerous place with full of Mahums?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10306_StopSelMahumsTroops 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -0,0 +1,200 @@
/*
* 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.Q10306_StopSelMahumsTroops;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10306_StopSelMahumsTroops extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
22256,
22237,
22238,
22239,
22240,
22241,
22242,
22243,
22244,
22245,
22247,
22248,
22249,
22250,
22251,
22252,
22253,
22254,
22255,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 20);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 12);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 2);
// Misc
private static final int MIN_LEVEL = 85;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10306_StopSelMahumsTroops()
{
super(10306);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.DEFEAT_MONSTERS_IN_SEL_MAHUM_BASE);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 400000000, 10800000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_SEL_MAHUM_BASE.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Sel Mahum Base</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Sel Mahum Sniper, Sel Mahum Raider, Sel Mahum Berserker, Sel Mahum Mage, Sel Mahum Thief, Sel Mahum Wizard, Sel Mahum Knight, Sel Mahum Footman, Sel Mahum Bowman.</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 85+.)<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
It's called a Orc Barracks.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10307_TurekOrcsSecret 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10307_TurekOrcsSecret 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Orc Barracks and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Turek Orc, Turek Orc Footman, Turek Orc Marksman, Turek Orc Warrior, Turek Orc Shaman, Kerr, Turek Orc Elite, Turek Orc Skirmisher, Turek Orc Sniper, Turek Orc Prefect, Turek Orc Elder, Turek.</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Hello my friend. Do you want to explore a dangerous place with full of dirty Orcs?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10307_TurekOrcsSecret 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -0,0 +1,193 @@
/*
* 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.Q10307_TurekOrcsSecret;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10307_TurekOrcsSecret extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
22135,
22136,
22137,
22138,
22139,
22140,
22146,
22141,
22142,
22143,
22144,
22145,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 20);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 12);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 2);
// Misc
private static final int MIN_LEVEL = 85;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10307_TurekOrcsSecret()
{
super(10307);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.DEFEAT_MONSTERS_IN_THE_ORC_BARRACKS);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 500000000, 13500000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_MONSTERS_IN_THE_ORC_BARRACKS.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Orc Barracks</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Turek Orc, Turek Orc Footman, Turek Orc Marksman, Turek Orc Warrior, Turek Orc Shaman, Kerr, Turek Orc Elite, Turek Orc Skirmisher, Turek Orc Sniper, Turek Orc Prefect, Turek Orc Elder, Turek.</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 85+.)<br>
</body></html>

View File

@ -35,6 +35,12 @@ import quests.Q10298_TracesOfBattle.Q10298_TracesOfBattle;
import quests.Q10299_GetIncrediblePower.Q10299_GetIncrediblePower;
import quests.Q10300_ExploringTheCrumaTower.Q10300_ExploringTheCrumaTower;
import quests.Q10301_NotSoSilentValley.Q10301_NotSoSilentValley;
import quests.Q10302_FoilPlansOfTheLizardmen.Q10302_FoilPlansOfTheLizardmen;
import quests.Q10303_SymbolOfHubris.Q10303_SymbolOfHubris;
import quests.Q10304_ChangesintheDragonValley.Q10304_ChangesintheDragonValley;
import quests.Q10305_DragonsSuspiciousMovements.Q10305_DragonsSuspiciousMovements;
import quests.Q10306_StopSelMahumsTroops.Q10306_StopSelMahumsTroops;
import quests.Q10307_TurekOrcsSecret.Q10307_TurekOrcsSecret;
import quests.Q10311_BestMedicine.Q10311_BestMedicine;
import quests.Q10312_GordesLegend.Q10312_GordesLegend;
import quests.Q10313_CunningMorgos.Q10313_CunningMorgos;
@ -94,6 +100,12 @@ public class QuestMasterHandler
Q10299_GetIncrediblePower.class,
Q10300_ExploringTheCrumaTower.class,
Q10301_NotSoSilentValley.class,
Q10302_FoilPlansOfTheLizardmen.class,
Q10303_SymbolOfHubris.class,
Q10304_ChangesintheDragonValley.class,
Q10305_DragonsSuspiciousMovements.class,
Q10306_StopSelMahumsTroops.class,
Q10307_TurekOrcsSecret.class,
Q10311_BestMedicine.class,
Q10312_GordesLegend.class,
Q10313_CunningMorgos.class,

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
On the Plans of the Lizardmen.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10302_FoilPlansOfTheLizardmen 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>High Priest Orven:<br>
Many Overlords had diied on the Plans of the Lizardmen.<br>
Echoes of their suffering and deaths had been imprinted in the plains for ever. That's why monsters like wandering there.<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10302_FoilPlansOfTheLizardmen 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Plans of the Lizardmen and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Tanta Lizardman, Tanta Lizardman Warrior, Tanta Lizardman Berserker, Tanta Lizardman Archer, Tanta Lizardman Summoner</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Where do you think the most Overlords live?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10302_FoilPlansOfTheLizardmen 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -0,0 +1,186 @@
/*
* 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.Q10302_FoilPlansOfTheLizardmen;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10302_FoilPlansOfTheLizardmen extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
22151,
22152,
22153,
22154,
22155,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 10);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 6);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 1);
// Misc
private static final int MIN_LEVEL = 76;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10302_FoilPlansOfTheLizardmen()
{
super(10302);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.ERADICATE_MONSTERS_IN_THE_PLAINS_OF_THE_LIZARDMEN);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 100000000, 2700000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.ERADICATE_MONSTERS_IN_THE_PLAINS_OF_THE_LIZARDMEN.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Plans of the Lizardmen</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Tanta Lizardman, Tanta Lizardman Warrior, Tanta Lizardman Berserker, Tanta Lizardman Archer, Tanta Lizardman Summoner</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 76+.)<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
It's called a Tower of Insolence.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10303_SymbolOfHubris 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10303_SymbolOfHubris 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Tower of Insolence and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Ghost of the Tower, Tower Watchman, Ghastly Warrior, Archer of Despair, Judge of Despair, Crendion, Swordsman of Ordeal, Hound of Destruction, Royal Guard of Insolence</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Hello my friend. Do you want to explore a dangerous tower near Aden?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10303_SymbolOfHubris 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -0,0 +1,192 @@
/*
* 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.Q10303_SymbolOfHubris;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10303_SymbolOfHubris extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
21989,
21990,
21991,
21992,
21993,
21994,
21995,
21996,
21997,
21998,
21999,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 10);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 8);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 1);
// Misc
private static final int MIN_LEVEL = 78;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10303_SymbolOfHubris()
{
super(10303);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.KILL_MONSTERS_IN_THE_TOWER_OF_INSOLENCE);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 100000000, 2700000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.KILL_MONSTERS_IN_THE_TOWER_OF_INSOLENCE.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Tower of Insolence</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Ghost of the Tower, Tower Watchman, Ghastly Warrior, Archer of Despair, Judge of Despair, Crendion, Swordsman of Ordeal, Hound of Destruction, Royal Guard of Insolence</font>.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 78+.)<br>
</body></html>

Some files were not shown because too many files have changed in this diff Show More