Addition of missing Orven quests.
Thanks to petryxa.
This commit is contained in:
parent
e8e899d8e0
commit
65fdb3dc19
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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,
|
||||
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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,
|
||||
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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);
|
||||
}
|
||||
}
|
@ -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>
|
@ -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
Loading…
Reference in New Issue
Block a user