Fixed quest 985 and 578 discrepancies.
This commit is contained in:
parent
2ba03ae802
commit
6acb6101ca
@ -1,5 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
What brings you to such a dangerous place?<br>
|
||||
You shouldn't be here. Go back.<br>
|
||||
(Only characters above Lv. 85-89.)
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Huh? Are you an ally?<br>
|
||||
That seal... Isn't it Elikia's? Well I guess you are an ally.<br>
|
||||
Did Elikia send you?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-02.htm">"Yes."</Button>
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Elikia must have been in a hurry. <br>
|
||||
Well, I'm doing fine. Of course I didn't completly recover from my time with the Embryo, but I should be able to carry out my revenge soon.<br>
|
||||
Elise is pretty talented. I was able to recover thanks to her.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-03.htm">"Revenge?"</Button>
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Why are you talking to me?<br>
|
||||
I don't know you... Don't you even try to trick me.<br>
|
||||
(Quest may only be undertaken by characters with the Blackbird Seal.)
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-04.htm">"Revenge?"</Button>
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
We have to get our revenge!<br>
|
||||
They dared set up a trap for me, and made me rely on Elise! Unforgivable!<br>
|
||||
Won't you help me get my revenge?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-05.htm">"How can I help?"</Button>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Travelers Guild asks to destroy monsters in the Blood Marsh and on the Altar of Evil.<br>
|
||||
Hunting objectives: all monsters in these locations.<br>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Travelers Guild asks to destroy <font color="LEVEL">200</font> monsters in the Blood Marsh and on the Altar of Evil.<br>
|
||||
Hunting objectives: all monsters in these locations.
|
||||
</body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Not enough. You think this is enough to honor our name?<br>
|
||||
Kill <font color="LEVEL">200 Atelia Passionate Soldiers, Atelia Elite Captains, Atelia High Pirests, and Fortress Dark Wizards</font>.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-08.html">"I know."</Button>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Already done? Great!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-09.html">"I know."</Button>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Great! No wonder Elikia sent you here.<br>
|
||||
But this isn't enough. I'll stay here until I'm satisfied. Elikia and Leona might be worried about me, so can you tell them I'm alright? Here's a letter. They'll know I'm safe with this.
|
||||
</body></html>
|
@ -1,179 +0,0 @@
|
||||
/*
|
||||
* 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.Q00985_AdventureGuildsSpecialRequestLv1;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.QuestSound;
|
||||
import org.l2jmobius.gameserver.enums.QuestType;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
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.model.quest.State;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
|
||||
/**
|
||||
* Adventure Guilds Special Request Lv1 (985)
|
||||
* @author Dmitri
|
||||
*/
|
||||
public class Q00985_AdventureGuildsSpecialRequestLv1 extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int ADVENTURE_GUILDSMAN = 33946;
|
||||
// Monsters
|
||||
private static final int[] MONSTERS =
|
||||
{
|
||||
24458, // Vampire Swamp Warrior
|
||||
24457, // Swamp Vampire Rogue
|
||||
24460, // Swamp Vampire Shooter
|
||||
24459, // Swamp Vampire Wizard
|
||||
24454, // Berserker of Fate
|
||||
24455, // Prophet of Doom
|
||||
24453, // Servant of Fate
|
||||
24452, // Soldier of Fate
|
||||
};
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 85;
|
||||
private static final int MAX_LEVEL = 89;
|
||||
private static final boolean PARTY_QUEST = true;
|
||||
// Reward
|
||||
private static final int RUNE_WIND_RESISTANCE_RING = 14599;
|
||||
|
||||
public Q00985_AdventureGuildsSpecialRequestLv1()
|
||||
{
|
||||
super(985);
|
||||
addStartNpc(ADVENTURE_GUILDSMAN);
|
||||
addTalkId(ADVENTURE_GUILDSMAN);
|
||||
addKillId(MONSTERS);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33946-00.htm");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33946-02.htm":
|
||||
case "33946-03.htm":
|
||||
case "33946-04.htm":
|
||||
case "33946-08.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33946-05.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33946-09.html":
|
||||
{
|
||||
giveItems(player, RUNE_WIND_RESISTANCE_RING, 1);
|
||||
addExpAndSp(player, 2108117571L, 2529741);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(Npc npc, PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33946-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "33946-06.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "33946-07.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
htmltext = "33946-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = PARTY_QUEST ? getRandomPartyMemberState(killer, -1, 3, npc) : getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final int killedGhosts = qs.getInt("AncientGhosts") + 1;
|
||||
qs.set("AncientGhosts", killedGhosts);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
|
||||
if (killedGhosts >= 200)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance 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_MONSTER.getId(), true, qs.getInt("AncientGhosts")));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -223,7 +223,6 @@ import quests.Q00930_DisparagingThePhantoms.Q00930_DisparagingThePhantoms;
|
||||
import quests.Q00931_MemoriesOfTheWind.Q00931_MemoriesOfTheWind;
|
||||
import quests.Q00932_SayhasEnergy.Q00932_SayhasEnergy;
|
||||
import quests.Q00937_ToReviveTheFishingGuild.Q00937_ToReviveTheFishingGuild;
|
||||
import quests.Q00985_AdventureGuildsSpecialRequestLv1.Q00985_AdventureGuildsSpecialRequestLv1;
|
||||
import quests.Q10273_GoodDayToFly.Q10273_GoodDayToFly;
|
||||
import quests.Q10274_CollectingInTheAir.Q10274_CollectingInTheAir;
|
||||
import quests.Q10275_ContainingTheAttributePower.Q10275_ContainingTheAttributePower;
|
||||
@ -522,6 +521,7 @@ import quests.not_done.Q00841_ContaminationContainment;
|
||||
import quests.not_done.Q00843_GiantEvolutionControl;
|
||||
import quests.not_done.Q00846_BuildingUpStrength;
|
||||
import quests.not_done.Q00929_SeekerRescue;
|
||||
import quests.not_done.Q00985_AdventureGuildsSpecialRequestLv1;
|
||||
import quests.not_done.Q00986_AdventureGuildsSpecialRequestLv2;
|
||||
import quests.not_done.Q00987_AdventureGuildsSpecialRequestLv3;
|
||||
import quests.not_done.Q00988_AdventureGuildsSpecialRequestLv4;
|
||||
@ -787,7 +787,7 @@ public class QuestMasterHandler
|
||||
Q00931_MemoriesOfTheWind.class,
|
||||
Q00932_SayhasEnergy.class,
|
||||
Q00937_ToReviveTheFishingGuild.class,
|
||||
Q00985_AdventureGuildsSpecialRequestLv1.class,
|
||||
Q00985_AdventureGuildsSpecialRequestLv1.class, // TODO: Not done.
|
||||
Q00986_AdventureGuildsSpecialRequestLv2.class, // TODO: Not done.
|
||||
Q00987_AdventureGuildsSpecialRequestLv3.class, // TODO: Not done.
|
||||
Q00988_AdventureGuildsSpecialRequestLv4.class, // TODO: Not done.
|
||||
|
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* 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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q00985_AdventureGuildsSpecialRequestLv1 extends Quest
|
||||
{
|
||||
private static final int START_NPC = 33946;
|
||||
|
||||
public Q00985_AdventureGuildsSpecialRequestLv1()
|
||||
{
|
||||
super(986);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
What brings you to such a dangerous place?<br>
|
||||
You shouldn't be here. Go back.<br>
|
||||
(Only characters above Lv. 85-89.)
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Huh? Are you an ally?<br>
|
||||
That seal... Isn't it Elikia's? Well I guess you are an ally.<br>
|
||||
Did Elikia send you?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-02.htm">"Yes."</Button>
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Elikia must have been in a hurry. <br>
|
||||
Well, I'm doing fine. Of course I didn't completly recover from my time with the Embryo, but I should be able to carry out my revenge soon.<br>
|
||||
Elise is pretty talented. I was able to recover thanks to her.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-03.htm">"Revenge?"</Button>
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Why are you talking to me?<br>
|
||||
I don't know you... Don't you even try to trick me.<br>
|
||||
(Quest may only be undertaken by characters with the Blackbird Seal.)
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-04.htm">"Revenge?"</Button>
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
We have to get our revenge!<br>
|
||||
They dared set up a trap for me, and made me rely on Elise! Unforgivable!<br>
|
||||
Won't you help me get my revenge?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-05.htm">"How can I help?"</Button>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Travelers Guild asks to destroy monsters in the Blood Marsh and on the Altar of Evil.<br>
|
||||
Hunting objectives: all monsters in these locations.<br>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Travelers Guild asks to destroy <font color="LEVEL">200</font> monsters in the Blood Marsh and on the Altar of Evil.<br>
|
||||
Hunting objectives: all monsters in these locations.
|
||||
</body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Not enough. You think this is enough to honor our name?<br>
|
||||
Kill <font color="LEVEL">200 Atelia Passionate Soldiers, Atelia Elite Captains, Atelia High Pirests, and Fortress Dark Wizards</font>.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-08.html">"I know."</Button>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Already done? Great!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-09.html">"I know."</Button>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Great! No wonder Elikia sent you here.<br>
|
||||
But this isn't enough. I'll stay here until I'm satisfied. Elikia and Leona might be worried about me, so can you tell them I'm alright? Here's a letter. They'll know I'm safe with this.
|
||||
</body></html>
|
@ -1,179 +0,0 @@
|
||||
/*
|
||||
* 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.Q00985_AdventureGuildsSpecialRequestLv1;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.QuestSound;
|
||||
import org.l2jmobius.gameserver.enums.QuestType;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
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.model.quest.State;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
|
||||
/**
|
||||
* Adventure Guilds Special Request Lv1 (985)
|
||||
* @author Dmitri
|
||||
*/
|
||||
public class Q00985_AdventureGuildsSpecialRequestLv1 extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int ADVENTURE_GUILDSMAN = 33946;
|
||||
// Monsters
|
||||
private static final int[] MONSTERS =
|
||||
{
|
||||
24458, // Vampire Swamp Warrior
|
||||
24457, // Swamp Vampire Rogue
|
||||
24460, // Swamp Vampire Shooter
|
||||
24459, // Swamp Vampire Wizard
|
||||
24454, // Berserker of Fate
|
||||
24455, // Prophet of Doom
|
||||
24453, // Servant of Fate
|
||||
24452, // Soldier of Fate
|
||||
};
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 85;
|
||||
private static final int MAX_LEVEL = 89;
|
||||
private static final boolean PARTY_QUEST = true;
|
||||
// Reward
|
||||
private static final int RUNE_WIND_RESISTANCE_RING = 14599;
|
||||
|
||||
public Q00985_AdventureGuildsSpecialRequestLv1()
|
||||
{
|
||||
super(985);
|
||||
addStartNpc(ADVENTURE_GUILDSMAN);
|
||||
addTalkId(ADVENTURE_GUILDSMAN);
|
||||
addKillId(MONSTERS);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33946-00.htm");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33946-02.htm":
|
||||
case "33946-03.htm":
|
||||
case "33946-04.htm":
|
||||
case "33946-08.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33946-05.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33946-09.html":
|
||||
{
|
||||
giveItems(player, RUNE_WIND_RESISTANCE_RING, 1);
|
||||
addExpAndSp(player, 2108117571L, 2529741);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(Npc npc, PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33946-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "33946-06.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "33946-07.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
htmltext = "33946-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = PARTY_QUEST ? getRandomPartyMemberState(killer, -1, 3, npc) : getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final int killedGhosts = qs.getInt("AncientGhosts") + 1;
|
||||
qs.set("AncientGhosts", killedGhosts);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
|
||||
if (killedGhosts >= 200)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance 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_MONSTER.getId(), true, qs.getInt("AncientGhosts")));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -245,7 +245,6 @@ import quests.Q00930_DisparagingThePhantoms.Q00930_DisparagingThePhantoms;
|
||||
import quests.Q00931_MemoriesOfTheWind.Q00931_MemoriesOfTheWind;
|
||||
import quests.Q00932_SayhasEnergy.Q00932_SayhasEnergy;
|
||||
import quests.Q00937_ToReviveTheFishingGuild.Q00937_ToReviveTheFishingGuild;
|
||||
import quests.Q00985_AdventureGuildsSpecialRequestLv1.Q00985_AdventureGuildsSpecialRequestLv1;
|
||||
import quests.Q10273_GoodDayToFly.Q10273_GoodDayToFly;
|
||||
import quests.Q10274_CollectingInTheAir.Q10274_CollectingInTheAir;
|
||||
import quests.Q10282_ToTheSeedOfAnnihilation.Q10282_ToTheSeedOfAnnihilation;
|
||||
@ -557,6 +556,7 @@ import quests.not_done.Q00841_ContaminationContainment;
|
||||
import quests.not_done.Q00843_GiantEvolutionControl;
|
||||
import quests.not_done.Q00846_BuildingUpStrength;
|
||||
import quests.not_done.Q00929_SeekerRescue;
|
||||
import quests.not_done.Q00985_AdventureGuildsSpecialRequestLv1;
|
||||
import quests.not_done.Q00986_AdventureGuildsSpecialRequestLv2;
|
||||
import quests.not_done.Q00987_AdventureGuildsSpecialRequestLv3;
|
||||
import quests.not_done.Q00988_AdventureGuildsSpecialRequestLv4;
|
||||
@ -862,7 +862,7 @@ public class QuestMasterHandler
|
||||
Q00931_MemoriesOfTheWind.class,
|
||||
Q00932_SayhasEnergy.class,
|
||||
Q00937_ToReviveTheFishingGuild.class,
|
||||
Q00985_AdventureGuildsSpecialRequestLv1.class,
|
||||
Q00985_AdventureGuildsSpecialRequestLv1.class, // TODO: Not done.
|
||||
Q00986_AdventureGuildsSpecialRequestLv2.class, // TODO: Not done.
|
||||
Q00987_AdventureGuildsSpecialRequestLv3.class, // TODO: Not done.
|
||||
Q00988_AdventureGuildsSpecialRequestLv4.class, // TODO: Not done.
|
||||
|
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* 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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q00985_AdventureGuildsSpecialRequestLv1 extends Quest
|
||||
{
|
||||
private static final int START_NPC = 33946;
|
||||
|
||||
public Q00985_AdventureGuildsSpecialRequestLv1()
|
||||
{
|
||||
super(986);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
What brings you to such a dangerous place?<br>
|
||||
You shouldn't be here. Go back.<br>
|
||||
(Only characters above Lv. 85-89.)
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Huh? Are you an ally?<br>
|
||||
That seal... Isn't it Elikia's? Well I guess you are an ally.<br>
|
||||
Did Elikia send you?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-02.htm">"Yes."</Button>
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Elikia must have been in a hurry. <br>
|
||||
Well, I'm doing fine. Of course I didn't completly recover from my time with the Embryo, but I should be able to carry out my revenge soon.<br>
|
||||
Elise is pretty talented. I was able to recover thanks to her.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-03.htm">"Revenge?"</Button>
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Why are you talking to me?<br>
|
||||
I don't know you... Don't you even try to trick me.<br>
|
||||
(Quest may only be undertaken by characters with the Blackbird Seal.)
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-04.htm">"Revenge?"</Button>
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
We have to get our revenge!<br>
|
||||
They dared set up a trap for me, and made me rely on Elise! Unforgivable!<br>
|
||||
Won't you help me get my revenge?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-05.htm">"How can I help?"</Button>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Travelers Guild asks to destroy monsters in the Blood Marsh and on the Altar of Evil.<br>
|
||||
Hunting objectives: all monsters in these locations.<br>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Travelers Guild asks to destroy <font color="LEVEL">200</font> monsters in the Blood Marsh and on the Altar of Evil.<br>
|
||||
Hunting objectives: all monsters in these locations.
|
||||
</body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Not enough. You think this is enough to honor our name?<br>
|
||||
Kill <font color="LEVEL">200 Atelia Passionate Soldiers, Atelia Elite Captains, Atelia High Pirests, and Fortress Dark Wizards</font>.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-08.html">"I know."</Button>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Already done? Great!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-09.html">"I know."</Button>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Great! No wonder Elikia sent you here.<br>
|
||||
But this isn't enough. I'll stay here until I'm satisfied. Elikia and Leona might be worried about me, so can you tell them I'm alright? Here's a letter. They'll know I'm safe with this.
|
||||
</body></html>
|
@ -1,179 +0,0 @@
|
||||
/*
|
||||
* 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.Q00985_AdventureGuildsSpecialRequestLv1;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.QuestSound;
|
||||
import org.l2jmobius.gameserver.enums.QuestType;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
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.model.quest.State;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
|
||||
/**
|
||||
* Adventure Guilds Special Request Lv1 (985)
|
||||
* @author Dmitri
|
||||
*/
|
||||
public class Q00985_AdventureGuildsSpecialRequestLv1 extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int ADVENTURE_GUILDSMAN = 33946;
|
||||
// Monsters
|
||||
private static final int[] MONSTERS =
|
||||
{
|
||||
24458, // Vampire Swamp Warrior
|
||||
24457, // Swamp Vampire Rogue
|
||||
24460, // Swamp Vampire Shooter
|
||||
24459, // Swamp Vampire Wizard
|
||||
24454, // Berserker of Fate
|
||||
24455, // Prophet of Doom
|
||||
24453, // Servant of Fate
|
||||
24452, // Soldier of Fate
|
||||
};
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 85;
|
||||
private static final int MAX_LEVEL = 89;
|
||||
private static final boolean PARTY_QUEST = true;
|
||||
// Reward
|
||||
private static final int RUNE_WIND_RESISTANCE_RING = 14599;
|
||||
|
||||
public Q00985_AdventureGuildsSpecialRequestLv1()
|
||||
{
|
||||
super(985);
|
||||
addStartNpc(ADVENTURE_GUILDSMAN);
|
||||
addTalkId(ADVENTURE_GUILDSMAN);
|
||||
addKillId(MONSTERS);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33946-00.htm");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33946-02.htm":
|
||||
case "33946-03.htm":
|
||||
case "33946-04.htm":
|
||||
case "33946-08.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33946-05.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33946-09.html":
|
||||
{
|
||||
giveItems(player, RUNE_WIND_RESISTANCE_RING, 1);
|
||||
addExpAndSp(player, 2108117571L, 2529741);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(Npc npc, PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33946-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "33946-06.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "33946-07.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
htmltext = "33946-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = PARTY_QUEST ? getRandomPartyMemberState(killer, -1, 3, npc) : getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final int killedGhosts = qs.getInt("AncientGhosts") + 1;
|
||||
qs.set("AncientGhosts", killedGhosts);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
|
||||
if (killedGhosts >= 200)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance 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_MONSTER.getId(), true, qs.getInt("AncientGhosts")));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -221,7 +221,6 @@ import quests.Q00930_DisparagingThePhantoms.Q00930_DisparagingThePhantoms;
|
||||
import quests.Q00931_MemoriesOfTheWind.Q00931_MemoriesOfTheWind;
|
||||
import quests.Q00932_SayhasEnergy.Q00932_SayhasEnergy;
|
||||
import quests.Q00937_ToReviveTheFishingGuild.Q00937_ToReviveTheFishingGuild;
|
||||
import quests.Q00985_AdventureGuildsSpecialRequestLv1.Q00985_AdventureGuildsSpecialRequestLv1;
|
||||
import quests.Q10282_ToTheSeedOfAnnihilation.Q10282_ToTheSeedOfAnnihilation;
|
||||
import quests.Q10283_RequestOfIceMerchant.Q10283_RequestOfIceMerchant;
|
||||
import quests.Q10284_AcquisitionOfDivineSword.Q10284_AcquisitionOfDivineSword;
|
||||
@ -515,6 +514,7 @@ import quests.not_done.Q00841_ContaminationContainment;
|
||||
import quests.not_done.Q00843_GiantEvolutionControl;
|
||||
import quests.not_done.Q00846_BuildingUpStrength;
|
||||
import quests.not_done.Q00929_SeekerRescue;
|
||||
import quests.not_done.Q00985_AdventureGuildsSpecialRequestLv1;
|
||||
import quests.not_done.Q00986_AdventureGuildsSpecialRequestLv2;
|
||||
import quests.not_done.Q00987_AdventureGuildsSpecialRequestLv3;
|
||||
import quests.not_done.Q00988_AdventureGuildsSpecialRequestLv4;
|
||||
@ -804,7 +804,7 @@ public class QuestMasterHandler
|
||||
Q00931_MemoriesOfTheWind.class,
|
||||
Q00932_SayhasEnergy.class,
|
||||
Q00937_ToReviveTheFishingGuild.class,
|
||||
Q00985_AdventureGuildsSpecialRequestLv1.class,
|
||||
Q00985_AdventureGuildsSpecialRequestLv1.class, // TODO: Not done.
|
||||
Q00986_AdventureGuildsSpecialRequestLv2.class, // TODO: Not done.
|
||||
Q00987_AdventureGuildsSpecialRequestLv3.class, // TODO: Not done.
|
||||
Q00988_AdventureGuildsSpecialRequestLv4.class, // TODO: Not done.
|
||||
|
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* 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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q00985_AdventureGuildsSpecialRequestLv1 extends Quest
|
||||
{
|
||||
private static final int START_NPC = 33946;
|
||||
|
||||
public Q00985_AdventureGuildsSpecialRequestLv1()
|
||||
{
|
||||
super(986);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@ -1,3 +1,3 @@
|
||||
<html><body>Quartermaster:<br>
|
||||
Complete Aden Vanguard Quartermaster’s daily quest. The necessary quest: <font color="LEVEL">The Fallen King's Men</font>.
|
||||
Complete Aden Vanguard Quartermaster's daily quest. The necessary quest: <font color="LEVEL">The Fallen King's Men</font>.
|
||||
</body></html>
|
@ -1,3 +1,3 @@
|
||||
<html><body>Quartermaster:<br>
|
||||
Complete Aden Vanguard Quartermaster’s daily quest. The necessary quest: <font color="LEVEL">The Fallen King's Men</font>.
|
||||
Complete Aden Vanguard Quartermaster's daily quest. The necessary quest: <font color="LEVEL">The Fallen King's Men</font>.
|
||||
</body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
What brings you to such a dangerous place?<br>
|
||||
You shouldn't be here. Go back.<br>
|
||||
(Only characters above Lv. 85-89.)
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Huh? Are you an ally?<br>
|
||||
That seal... Isn't it Elikia's? Well I guess you are an ally.<br>
|
||||
Did Elikia send you?<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-02.htm">"Yes."</Button>
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Elikia must have been in a hurry. <br>
|
||||
Well, I'm doing fine. Of course I didn't completly recover from my time with the Embryo, but I should be able to carry out my revenge soon.<br>
|
||||
Elise is pretty talented. I was able to recover thanks to her.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-03.htm">"Revenge?"</Button>
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Why are you talking to me?<br>
|
||||
I don't know you... Don't you even try to trick me.<br>
|
||||
(Quest may only be undertaken by characters with the Blackbird Seal.)
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-04.htm">"Revenge?"</Button>
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
We have to get our revenge!<br>
|
||||
They dared set up a trap for me, and made me rely on Elise! Unforgivable!<br>
|
||||
Won't you help me get my revenge?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-05.htm">"How can I help?"</Button>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Travelers Guild asks to destroy monsters in the Blood Marsh and on the Altar of Evil.<br>
|
||||
Hunting objectives: all monsters in these locations.<br>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Travelers Guild asks to destroy <font color="LEVEL">200</font> monsters in the Blood Marsh and on the Altar of Evil.<br>
|
||||
Hunting objectives: all monsters in these locations.
|
||||
</body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Not enough. You think this is enough to honor our name?<br>
|
||||
Kill <font color="LEVEL">200 Atelia Passionate Soldiers, Atelia Elite Captains, Atelia High Pirests, and Fortress Dark Wizards</font>.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-08.html">"I know."</Button>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Already done? Great!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00985_AdventureGuildsSpecialRequestLv1 33946-09.html">"I know."</Button>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Histie:<br>
|
||||
Great! No wonder Elikia sent you here.<br>
|
||||
But this isn't enough. I'll stay here until I'm satisfied. Elikia and Leona might be worried about me, so can you tell them I'm alright? Here's a letter. They'll know I'm safe with this.
|
||||
</body></html>
|
@ -1,179 +0,0 @@
|
||||
/*
|
||||
* 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.Q00985_AdventureGuildsSpecialRequestLv1;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.QuestSound;
|
||||
import org.l2jmobius.gameserver.enums.QuestType;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
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.model.quest.State;
|
||||
import org.l2jmobius.gameserver.network.NpcStringId;
|
||||
|
||||
/**
|
||||
* Adventure Guilds Special Request Lv1 (985)
|
||||
* @author Dmitri
|
||||
*/
|
||||
public class Q00985_AdventureGuildsSpecialRequestLv1 extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int ADVENTURE_GUILDSMAN = 33946;
|
||||
// Monsters
|
||||
private static final int[] MONSTERS =
|
||||
{
|
||||
24458, // Vampire Swamp Warrior
|
||||
24457, // Swamp Vampire Rogue
|
||||
24460, // Swamp Vampire Shooter
|
||||
24459, // Swamp Vampire Wizard
|
||||
24454, // Berserker of Fate
|
||||
24455, // Prophet of Doom
|
||||
24453, // Servant of Fate
|
||||
24452, // Soldier of Fate
|
||||
};
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 85;
|
||||
private static final int MAX_LEVEL = 89;
|
||||
private static final boolean PARTY_QUEST = true;
|
||||
// Reward
|
||||
private static final int RUNE_WIND_RESISTANCE_RING = 14599;
|
||||
|
||||
public Q00985_AdventureGuildsSpecialRequestLv1()
|
||||
{
|
||||
super(985);
|
||||
addStartNpc(ADVENTURE_GUILDSMAN);
|
||||
addTalkId(ADVENTURE_GUILDSMAN);
|
||||
addKillId(MONSTERS);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33946-00.htm");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
String htmltext = null;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "33946-02.htm":
|
||||
case "33946-03.htm":
|
||||
case "33946-04.htm":
|
||||
case "33946-08.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33946-05.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33946-09.html":
|
||||
{
|
||||
giveItems(player, RUNE_WIND_RESISTANCE_RING, 1);
|
||||
addExpAndSp(player, 2108117571L, 2529741);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(Npc npc, PlayerInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33946-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "33946-06.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "33946-07.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
htmltext = "33946-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = PARTY_QUEST ? getRandomPartyMemberState(killer, -1, 3, npc) : getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1))
|
||||
{
|
||||
final int killedGhosts = qs.getInt("AncientGhosts") + 1;
|
||||
qs.set("AncientGhosts", killedGhosts);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
|
||||
if (killedGhosts >= 200)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance 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_MONSTER.getId(), true, qs.getInt("AncientGhosts")));
|
||||
return holder;
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -227,7 +227,6 @@ import quests.Q00930_DisparagingThePhantoms.Q00930_DisparagingThePhantoms;
|
||||
import quests.Q00931_MemoriesOfTheWind.Q00931_MemoriesOfTheWind;
|
||||
import quests.Q00932_SayhasEnergy.Q00932_SayhasEnergy;
|
||||
import quests.Q00937_ToReviveTheFishingGuild.Q00937_ToReviveTheFishingGuild;
|
||||
import quests.Q00985_AdventureGuildsSpecialRequestLv1.Q00985_AdventureGuildsSpecialRequestLv1;
|
||||
import quests.Q10282_ToTheSeedOfAnnihilation.Q10282_ToTheSeedOfAnnihilation;
|
||||
import quests.Q10283_RequestOfIceMerchant.Q10283_RequestOfIceMerchant;
|
||||
import quests.Q10284_AcquisitionOfDivineSword.Q10284_AcquisitionOfDivineSword;
|
||||
@ -536,6 +535,7 @@ import quests.not_done.Q00841_ContaminationContainment;
|
||||
import quests.not_done.Q00843_GiantEvolutionControl;
|
||||
import quests.not_done.Q00846_BuildingUpStrength;
|
||||
import quests.not_done.Q00929_SeekerRescue;
|
||||
import quests.not_done.Q00985_AdventureGuildsSpecialRequestLv1;
|
||||
import quests.not_done.Q00986_AdventureGuildsSpecialRequestLv2;
|
||||
import quests.not_done.Q00987_AdventureGuildsSpecialRequestLv3;
|
||||
import quests.not_done.Q00988_AdventureGuildsSpecialRequestLv4;
|
||||
@ -832,7 +832,7 @@ public class QuestMasterHandler
|
||||
Q00931_MemoriesOfTheWind.class,
|
||||
Q00932_SayhasEnergy.class,
|
||||
Q00937_ToReviveTheFishingGuild.class,
|
||||
Q00985_AdventureGuildsSpecialRequestLv1.class,
|
||||
Q00985_AdventureGuildsSpecialRequestLv1.class, // TODO: Not done.
|
||||
Q00986_AdventureGuildsSpecialRequestLv2.class, // TODO: Not done.
|
||||
Q00987_AdventureGuildsSpecialRequestLv3.class, // TODO: Not done.
|
||||
Q00988_AdventureGuildsSpecialRequestLv4.class, // TODO: Not done.
|
||||
|
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* 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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q00985_AdventureGuildsSpecialRequestLv1 extends Quest
|
||||
{
|
||||
private static final int START_NPC = 33946;
|
||||
|
||||
public Q00985_AdventureGuildsSpecialRequestLv1()
|
||||
{
|
||||
super(986);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user