Addition of quest 571, 572 and 573.
Contributed by Dmitri.
This commit is contained in:
parent
559fe9caf6
commit
fb9482c8f6
@ -1,7 +1,4 @@
|
||||
504 Competition for the Bandit Stronghold
|
||||
571 Special Mission: Proof of Unity (Field Raid)
|
||||
572 Special Mission: Proof of Courage (Field Raid)
|
||||
573 Special Mission: Proof of Strength (Field Raid)
|
||||
575 Special Mission: Fortuna
|
||||
585 Can't Go Against the Time
|
||||
586 Mutated Creatures
|
||||
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny<br>
|
||||
I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.<br>
|
||||
(Only characters with Lv. 86-88 or above and Faction level 1-2 or above with the Adventure Guild may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
What is it? Do you want to check new missions of the Adventure Guild?<br>
|
||||
Come on. We are always in high demand.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00571_SpecialMissionProofOfUnityFieldRaid 34413-02.htm">Ask about the mission</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny:<br>
|
||||
Adventure Guildsman Penny wants you to defeat 5 raid bosses whose level is below 88.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00571_SpecialMissionProofOfUnityFieldRaid 34413-03.htm">"Really?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,6 @@
|
||||
<html><body>Penny:<br>
|
||||
Do you detract from the intelligence of the Hunters Guild? This is all true!<br>
|
||||
Are you ready to kill 5 raid bosses?. So we agreed.<br>
|
||||
With whom? Of course, with Aden.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00571_SpecialMissionProofOfUnityFieldRaid select_mission">Ask about the agreement</Button>
|
||||
</body></html>
|
@ -0,0 +1,7 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Earth Terakan</font>.<br>
|
||||
<font color="LEVEL">* Bloody Swampland/Altar of Evil: Transformed: Dartanion, Bloody Earth Dragon Gagia, Demon Fardune, Demon Harsia, Demon Bedukel, Bloody Witch Rumilla, Shilen's Priest Sasia</font>.<br>
|
||||
<font color="LEVEL">* Town of Gludio: Monster Laum, Monster Minotaur, Monster Sarga, Monster Hogliff, Monster Artarot, Monster Centaur</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,7 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Earth Terakan</font>.<br>
|
||||
<font color="LEVEL">* Bloody Swampland/Altar of Evil: Transformed: Dartanion, Bloody Earth Dragon Gagia, Demon Fardune, Demon Harsia, Demon Bedukel, Bloody Witch Rumilla, Shilen's Priest Sasia</font>.<br>
|
||||
<font color="LEVEL">* Town of Gludio: Monster Laum, Monster Minotaur, Monster Sarga, Monster Hogliff, Monster Artarot, Monster Centaur</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
Did you kill 5 bosses?<br>
|
||||
You ruined 5 bosses designs...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00571_SpecialMissionProofOfUnityFieldRaid 34413-07.html">"I figured out 5 bosses"</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Penny:<br>
|
||||
Good job. This will help the Adventure Guild take the lead.
|
||||
</body></html>
|
@ -0,0 +1,188 @@
|
||||
/*
|
||||
* 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.Q00571_SpecialMissionProofOfUnityFieldRaid;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.enums.Faction;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Special Mission: Proof of Unity (Field Raid) (571)
|
||||
* @URL https://l2wiki.com/Special_Mission:_Proof_of_Unity_(Field_Raid)
|
||||
* @author Dmitri
|
||||
*/
|
||||
public class Q00571_SpecialMissionProofOfUnityFieldRaid extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int PENNY = 34413;
|
||||
// Raidbosses
|
||||
private static final int[] BOSSES =
|
||||
{
|
||||
25944, // Earth Terakan
|
||||
25932, // Transformed: Dartanion
|
||||
26011, // Bloody Earth Dragon Gagia
|
||||
26012, // Demon Fardune
|
||||
26013, // Demon Harsia
|
||||
26014, // Demon Bedukel
|
||||
26015, // Bloody Witch Rumilla
|
||||
26016, // Shilen's Priest Sasia
|
||||
26077, // Monster Laum
|
||||
26078, // Monster Minotaur
|
||||
26079, // Monster Sarga
|
||||
26080, // Monster Hogliff
|
||||
26081, // Monster Artarot
|
||||
26082, // Monster Centaur
|
||||
};
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 86;
|
||||
private static final int MAX_LEVEL = 88;
|
||||
private static final String KILL_COUNT_VAR = "KillCount";
|
||||
|
||||
public Q00571_SpecialMissionProofOfUnityFieldRaid()
|
||||
{
|
||||
super(571);
|
||||
addStartNpc(PENNY);
|
||||
addTalkId(PENNY);
|
||||
addKillId(BOSSES);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "34413-00.htm");
|
||||
addFactionLevel(Faction.ADVENTURE_GUILD, 1, "34413-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 "34413-02.htm":
|
||||
case "34413-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "select_mission":
|
||||
{
|
||||
qs.startQuest();
|
||||
if ((player.getFactionLevel(Faction.ADVENTURE_GUILD) >= 1) && (player.getFactionLevel(Faction.ADVENTURE_GUILD) <= 2))
|
||||
{
|
||||
htmltext = "34413-04.htm";
|
||||
break;
|
||||
}
|
||||
htmltext = "34413-00.htm";
|
||||
break;
|
||||
}
|
||||
case "34413-07.html":
|
||||
{
|
||||
// Rewards
|
||||
addExpAndSp(player, 569407440, 569400);
|
||||
addFactionPoints(player, Faction.ADVENTURE_GUILD, 220);
|
||||
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 = "34413-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "34413-05.html" : "34413-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
htmltext = "34413-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int count = qs.getInt(KILL_COUNT_VAR);
|
||||
qs.set(KILL_COUNT_VAR, ++count);
|
||||
if (count >= 5)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
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 int killCount = qs.getInt(KILL_COUNT_VAR);
|
||||
if (killCount > 0)
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(NpcStringId.LV_86_88_SPECIAL_MISSION_PROOF_OF_UNITY_FIELD_RAID_2.getId(), true, killCount));
|
||||
return holder;
|
||||
}
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny<br>
|
||||
I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.<br>
|
||||
(Only characters with Lv. 88-92 or above and Faction level 3-4 or above with the Adventure Guild may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
What is it? Do you want to check new missions of the Adventure Guild?<br>
|
||||
Come on. We are always in high demand.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00572_SpecialMissionProofOfCourageFieldRaid 34413-02.htm">Ask about the mission</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny:<br>
|
||||
Adventure Guildsman Penny wants you to defeat 5 raid bosses whose level is below 88.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00572_SpecialMissionProofOfCourageFieldRaid 34413-03.htm">"Really?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,6 @@
|
||||
<html><body>Penny:<br>
|
||||
Do you detract from the intelligence of the Hunters Guild? This is all true!<br>
|
||||
Are you ready to kill 5 raid bosses?. So we agreed.<br>
|
||||
With whom? Of course, with Aden.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00572_SpecialMissionProofOfCourageFieldRaid select_mission">Ask about the agreement</Button>
|
||||
</body></html>
|
@ -0,0 +1,8 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Orc Barracks: Amden Orc Turahot, Amden Orc Turation, Amden Orc Turamathia, Amden Orc Turabait, Nerva Orc Nermion, Nerva Orc Nergatt</font>.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Wind Cassius</font>.<br>
|
||||
<font color="LEVEL">* Elven Village: Harp's Clone, Isadora's Avatar, Maliss' Avatar, Embryo Garron, Embryo Nigel, Embryo Dabos</font>.<br>
|
||||
<font color="LEVEL">* Fairy Settlement: Ekidna's Statue Tarstan, Ekidna's Statue Abelsnif, Ekidna's Statue Kimesis, Ekidna's Statue Kathargon, Ekidna's Statue Pantasaus, Ekidna's Statue Ixignon</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,8 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Orc Barracks: Amden Orc Turahot, Amden Orc Turation, Amden Orc Turamathia, Amden Orc Turabait, Nerva Orc Nermion, Nerva Orc Nergatt</font>.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Wind Cassius</font>.<br>
|
||||
<font color="LEVEL">* Elven Village: Harp's Clone, Isadora's Avatar, Maliss' Avatar, Embryo Garron, Embryo Nigel, Embryo Dabos</font>.<br>
|
||||
<font color="LEVEL">* Fairy Settlement: Ekidna's Statue Tarstan, Ekidna's Statue Abelsnif, Ekidna's Statue Kimesis, Ekidna's Statue Kathargon, Ekidna's Statue Pantasaus, Ekidna's Statue Ixignon</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
Did you kill 5 bosses?<br>
|
||||
You ruined 5 bosses designs...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00572_SpecialMissionProofOfCourageFieldRaid 34413-07.html">"I figured out 5 bosses"</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Penny:<br>
|
||||
Good job. This will help the Adventure Guild take the lead.
|
||||
</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.Q00572_SpecialMissionProofOfCourageFieldRaid;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.enums.Faction;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Special Mission: Proof of Courage (Field Raid) (572)
|
||||
* @URL https://l2wiki.com/Special_Mission:_Proof_of_Courage_(Field_Raid)
|
||||
* @author Dmitri
|
||||
*/
|
||||
public class Q00572_SpecialMissionProofOfCourageFieldRaid extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int PENNY = 34413;
|
||||
// Raidbosses
|
||||
private static final int[] BOSSES =
|
||||
{
|
||||
26000, // Amden Orc Turahot
|
||||
26001, // Amden Orc Turation
|
||||
26002, // Amden Orc Turamathia
|
||||
26003, // Amden Orc Turabait
|
||||
26004, // Nerva Orc Nermion
|
||||
26005, // Nerva Orc Nergatt
|
||||
25943, // Wind Cassius
|
||||
25989, // Harp's Clone
|
||||
25990, // Isadora's Avatar
|
||||
25991, // Maliss' Avatar
|
||||
25992, // Embryo Garron
|
||||
25993, // Embryo Nigel
|
||||
25994, // Embryo Dabos
|
||||
26055, // Ekidna's Statue Tarstan
|
||||
26056, // Ekidna's Statue Abelsnif
|
||||
26057, // Ekidna's Statue Kimesis
|
||||
26058, // Ekidna's Statue Kathargon
|
||||
26059, // Ekidna's Statue Pantasaus
|
||||
26060, // Ekidna's Statue Ixignon
|
||||
};
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 88;
|
||||
private static final int MAX_LEVEL = 92;
|
||||
private static final String KILL_COUNT_VAR = "KillCount";
|
||||
|
||||
public Q00572_SpecialMissionProofOfCourageFieldRaid()
|
||||
{
|
||||
super(572);
|
||||
addStartNpc(PENNY);
|
||||
addTalkId(PENNY);
|
||||
addKillId(BOSSES);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "34413-00.htm");
|
||||
addFactionLevel(Faction.ADVENTURE_GUILD, 3, "34413-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 "34413-02.htm":
|
||||
case "34413-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "select_mission":
|
||||
{
|
||||
qs.startQuest();
|
||||
if ((player.getFactionLevel(Faction.ADVENTURE_GUILD) >= 3) && (player.getFactionLevel(Faction.ADVENTURE_GUILD) <= 4))
|
||||
{
|
||||
htmltext = "34413-04.htm";
|
||||
break;
|
||||
}
|
||||
htmltext = "34413-00.htm";
|
||||
break;
|
||||
}
|
||||
case "34413-07.html":
|
||||
{
|
||||
// Rewards
|
||||
addExpAndSp(player, 859052940, 859020);
|
||||
addFactionPoints(player, Faction.ADVENTURE_GUILD, 240);
|
||||
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 = "34413-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "34413-05.html" : "34413-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
htmltext = "34413-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int count = qs.getInt(KILL_COUNT_VAR);
|
||||
qs.set(KILL_COUNT_VAR, ++count);
|
||||
if (count >= 5)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
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 int killCount = qs.getInt(KILL_COUNT_VAR);
|
||||
if (killCount > 0)
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(NpcStringId.LV_88_92_SPECIAL_MISSION_PROOF_OF_COURAGE_FIELD_RAID_2.getId(), true, killCount));
|
||||
return holder;
|
||||
}
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny<br>
|
||||
I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.<br>
|
||||
(Only characters with Lv. 92-95 or above and Faction level 5 or higher or above with the Adventure Guild may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
What is it? Do you want to check new missions of the Adventure Guild?<br>
|
||||
Come on. We are always in high demand.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00573_SpecialMissionProofOfStrengthFieldRaid 34413-02.htm">Ask about the mission</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny:<br>
|
||||
Adventure Guildsman Penny wants you to defeat 5 raid bosses whose level is below 88.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00573_SpecialMissionProofOfStrengthFieldRaid 34413-03.htm">"Really?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,6 @@
|
||||
<html><body>Penny:<br>
|
||||
Do you detract from the intelligence of the Hunters Guild? This is all true!<br>
|
||||
Are you ready to kill 5 raid bosses?. So we agreed.<br>
|
||||
With whom? Of course, with Aden.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00573_SpecialMissionProofOfStrengthFieldRaid 34413-04.htm">Ask about the agreement</Button>
|
||||
</body></html>
|
@ -0,0 +1,8 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Wind Cassius</font>.<br>
|
||||
<font color="LEVEL">* Elven Village: Harp's Clone, Isadora's Avatar, Maliss' Avatar, Embryo Garron, Embryo Nigel, Embryo Dabos</font>.<br>
|
||||
<font color="LEVEL">* Fairy Settlement: Ekidna's Statue Tarstan, Ekidna's Statue Abelsnif, Ekidna's Statue Kimesis, Ekidna's Statue Kathargon, Ekidna's Statue Pantasaus, Ekidna's Statue Ixignon</font>.<br>
|
||||
<font color="LEVEL">* Garden of Beasts: Enhanced Mahum Radium, Typheron, Timarga, Tycepton, Tiverga, Enhanced Mahum Supercium</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,8 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Wind Cassius</font>.<br>
|
||||
<font color="LEVEL">* Elven Village: Harp's Clone, Isadora's Avatar, Maliss' Avatar, Embryo Garron, Embryo Nigel, Embryo Dabos</font>.<br>
|
||||
<font color="LEVEL">* Fairy Settlement: Ekidna's Statue Tarstan, Ekidna's Statue Abelsnif, Ekidna's Statue Kimesis, Ekidna's Statue Kathargon, Ekidna's Statue Pantasaus, Ekidna's Statue Ixignon</font>.<br>
|
||||
<font color="LEVEL">* Garden of Beasts: Enhanced Mahum Radium, Typheron, Timarga, Tycepton, Tiverga, Enhanced Mahum Supercium</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
Did you kill 5 bosses?<br>
|
||||
You ruined 5 bosses designs...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00573_SpecialMissionProofOfStrengthFieldRaid 34413-07.html">"I figured out 5 bosses"</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Penny:<br>
|
||||
Good job. This will help the Adventure Guild take the lead.
|
||||
</body></html>
|
@ -0,0 +1,188 @@
|
||||
/*
|
||||
* 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.Q00573_SpecialMissionProofOfStrengthFieldRaid;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.enums.Faction;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Special Mission: Proof of Strength (Field Raid) (573)
|
||||
* @URL https://l2wiki.com/Special_Mission:_Proof_of_Strength_(Field_Raid)
|
||||
* @author Dmitri
|
||||
*/
|
||||
public class Q00573_SpecialMissionProofOfStrengthFieldRaid extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int PENNY = 34413;
|
||||
// Raidbosses
|
||||
private static final int[] BOSSES =
|
||||
{
|
||||
25943, // Wind Cassius
|
||||
25989, // Harp's Clone
|
||||
25990, // Isadora's Avatar
|
||||
25991, // Maliss' Avatar
|
||||
25992, // Embryo Garron
|
||||
25993, // Embryo Nigel
|
||||
25994, // Embryo Dabos
|
||||
26055, // Ekidna's Statue Tarstan
|
||||
26056, // Ekidna's Statue Abelsnif
|
||||
26057, // Ekidna's Statue Kimesis
|
||||
26058, // Ekidna's Statue Kathargon
|
||||
26059, // Ekidna's Statue Pantasaus
|
||||
26060, // Ekidna's Statue Ixignon
|
||||
26066, // Enhanced Mahum Radium
|
||||
26067, // Typheron
|
||||
26068, // Timarga
|
||||
26069, // Tycepton
|
||||
26070, // Tiverga
|
||||
26071, // Enhanced Mahum Supercium
|
||||
};
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 92;
|
||||
private static final int MAX_LEVEL = 95;
|
||||
private static final String KILL_COUNT_VAR = "KillCount";
|
||||
|
||||
public Q00573_SpecialMissionProofOfStrengthFieldRaid()
|
||||
{
|
||||
super(573);
|
||||
addStartNpc(PENNY);
|
||||
addTalkId(PENNY);
|
||||
addKillId(BOSSES);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "34413-00.htm");
|
||||
addFactionLevel(Faction.ADVENTURE_GUILD, 5, "34413-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 "34413-02.htm":
|
||||
case "34413-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "34413-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "34413-07.html":
|
||||
{
|
||||
// Rewards
|
||||
addExpAndSp(player, 1946405580L, 1946400);
|
||||
addFactionPoints(player, Faction.ADVENTURE_GUILD, 260);
|
||||
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 = "34413-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "34413-05.html" : "34413-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
htmltext = "34413-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int count = qs.getInt(KILL_COUNT_VAR);
|
||||
qs.set(KILL_COUNT_VAR, ++count);
|
||||
if (count >= 5)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
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 int killCount = qs.getInt(KILL_COUNT_VAR);
|
||||
if (killCount > 0)
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(NpcStringId.LV_92_95_SPECIAL_MISSION_PROOF_OF_STRENGTH_FIELD_RAID_2.getId(), true, killCount));
|
||||
return holder;
|
||||
}
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -147,6 +147,9 @@ import quests.Q00567_BasicMissionIsleOfSouls.Q00567_BasicMissionIsleOfSouls;
|
||||
import quests.Q00568_SpecialMissionNornilsCave.Q00568_SpecialMissionNornilsCave;
|
||||
import quests.Q00569_BasicMissionSealOfShilen.Q00569_BasicMissionSealOfShilen;
|
||||
import quests.Q00570_SpecialMissionKartiasLabyrinthParty.Q00570_SpecialMissionKartiasLabyrinthParty;
|
||||
import quests.Q00571_SpecialMissionProofOfUnityFieldRaid.Q00571_SpecialMissionProofOfUnityFieldRaid;
|
||||
import quests.Q00572_SpecialMissionProofOfCourageFieldRaid.Q00572_SpecialMissionProofOfCourageFieldRaid;
|
||||
import quests.Q00573_SpecialMissionProofOfStrengthFieldRaid.Q00573_SpecialMissionProofOfStrengthFieldRaid;
|
||||
import quests.Q00574_SpecialMissionNornilsGarden.Q00574_SpecialMissionNornilsGarden;
|
||||
import quests.Q00576_SpecialMissionDefeatSpezion.Q00576_SpecialMissionDefeatSpezion;
|
||||
import quests.Q00580_BeyondTheMemories.Q00580_BeyondTheMemories;
|
||||
@ -516,9 +519,6 @@ import quests.Q10852_TheMotherTreeRevivalProject.Q10852_TheMotherTreeRevivalProj
|
||||
import quests.Q10856_SuperionAppears.Q10856_SuperionAppears;
|
||||
import quests.Q10857_SecretTeleport.Q10857_SecretTeleport;
|
||||
import quests.not_done.Q00504_CompetitionForTheBanditStronghold;
|
||||
import quests.not_done.Q00571_SpecialMissionProofOfUnityFieldRaid;
|
||||
import quests.not_done.Q00572_SpecialMissionProofOfCourageFieldRaid;
|
||||
import quests.not_done.Q00573_SpecialMissionProofOfStrengthFieldRaid;
|
||||
import quests.not_done.Q00575_SpecialMissionFortuna;
|
||||
import quests.not_done.Q00585_CantGoAgainstTheTime;
|
||||
import quests.not_done.Q00586_MutatedCreatures;
|
||||
@ -739,9 +739,9 @@ public class QuestMasterHandler
|
||||
Q00568_SpecialMissionNornilsCave.class,
|
||||
Q00569_BasicMissionSealOfShilen.class,
|
||||
Q00570_SpecialMissionKartiasLabyrinthParty.class,
|
||||
Q00571_SpecialMissionProofOfUnityFieldRaid.class, // TODO: Not done.
|
||||
Q00572_SpecialMissionProofOfCourageFieldRaid.class, // TODO: Not done.
|
||||
Q00573_SpecialMissionProofOfStrengthFieldRaid.class, // TODO: Not done.
|
||||
Q00571_SpecialMissionProofOfUnityFieldRaid.class,
|
||||
Q00572_SpecialMissionProofOfCourageFieldRaid.class,
|
||||
Q00573_SpecialMissionProofOfStrengthFieldRaid.class,
|
||||
Q00574_SpecialMissionNornilsGarden.class,
|
||||
Q00575_SpecialMissionFortuna.class, // TODO: Not done.
|
||||
Q00576_SpecialMissionDefeatSpezion.class,
|
||||
|
@ -1,36 +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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q00571_SpecialMissionProofOfUnityFieldRaid extends Quest
|
||||
{
|
||||
private static final int START_NPC = 34413;
|
||||
|
||||
public Q00571_SpecialMissionProofOfUnityFieldRaid()
|
||||
{
|
||||
super(571);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@ -1,36 +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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q00572_SpecialMissionProofOfCourageFieldRaid extends Quest
|
||||
{
|
||||
private static final int START_NPC = 34413;
|
||||
|
||||
public Q00572_SpecialMissionProofOfCourageFieldRaid()
|
||||
{
|
||||
super(572);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@ -1,36 +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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q00573_SpecialMissionProofOfStrengthFieldRaid extends Quest
|
||||
{
|
||||
private static final int START_NPC = 34413;
|
||||
|
||||
public Q00573_SpecialMissionProofOfStrengthFieldRaid()
|
||||
{
|
||||
super(573);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@ -4,9 +4,6 @@
|
||||
555 Red Libra Request - Atelia Refinery
|
||||
556 Red Libra Request - Fallen Emperor's Throne
|
||||
557 Red Libra Request - Fall of Etina
|
||||
571 Special Mission: Proof of Unity (Field Raid)
|
||||
572 Special Mission: Proof of Courage (Field Raid)
|
||||
573 Special Mission: Proof of Strength (Field Raid)
|
||||
575 Special Mission: Fortuna
|
||||
585 Can't Go Against the Time
|
||||
586 Mutated Creatures
|
||||
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny<br>
|
||||
I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.<br>
|
||||
(Only characters with Lv. 86-88 or above and Faction level 1-2 or above with the Adventure Guild may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
What is it? Do you want to check new missions of the Adventure Guild?<br>
|
||||
Come on. We are always in high demand.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00571_SpecialMissionProofOfUnityFieldRaid 34413-02.htm">Ask about the mission</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny:<br>
|
||||
Adventure Guildsman Penny wants you to defeat 5 raid bosses whose level is below 88.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00571_SpecialMissionProofOfUnityFieldRaid 34413-03.htm">"Really?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,6 @@
|
||||
<html><body>Penny:<br>
|
||||
Do you detract from the intelligence of the Hunters Guild? This is all true!<br>
|
||||
Are you ready to kill 5 raid bosses?. So we agreed.<br>
|
||||
With whom? Of course, with Aden.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00571_SpecialMissionProofOfUnityFieldRaid select_mission">Ask about the agreement</Button>
|
||||
</body></html>
|
@ -0,0 +1,7 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Earth Terakan</font>.<br>
|
||||
<font color="LEVEL">* Bloody Swampland/Altar of Evil: Transformed: Dartanion, Bloody Earth Dragon Gagia, Demon Fardune, Demon Harsia, Demon Bedukel, Bloody Witch Rumilla, Shilen's Priest Sasia</font>.<br>
|
||||
<font color="LEVEL">* Town of Gludio: Monster Laum, Monster Minotaur, Monster Sarga, Monster Hogliff, Monster Artarot, Monster Centaur</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,7 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Earth Terakan</font>.<br>
|
||||
<font color="LEVEL">* Bloody Swampland/Altar of Evil: Transformed: Dartanion, Bloody Earth Dragon Gagia, Demon Fardune, Demon Harsia, Demon Bedukel, Bloody Witch Rumilla, Shilen's Priest Sasia</font>.<br>
|
||||
<font color="LEVEL">* Town of Gludio: Monster Laum, Monster Minotaur, Monster Sarga, Monster Hogliff, Monster Artarot, Monster Centaur</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
Did you kill 5 bosses?<br>
|
||||
You ruined 5 bosses designs...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00571_SpecialMissionProofOfUnityFieldRaid 34413-07.html">"I figured out 5 bosses"</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Penny:<br>
|
||||
Good job. This will help the Adventure Guild take the lead.
|
||||
</body></html>
|
@ -0,0 +1,188 @@
|
||||
/*
|
||||
* 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.Q00571_SpecialMissionProofOfUnityFieldRaid;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.enums.Faction;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Special Mission: Proof of Unity (Field Raid) (571)
|
||||
* @URL https://l2wiki.com/Special_Mission:_Proof_of_Unity_(Field_Raid)
|
||||
* @author Dmitri
|
||||
*/
|
||||
public class Q00571_SpecialMissionProofOfUnityFieldRaid extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int PENNY = 34413;
|
||||
// Raidbosses
|
||||
private static final int[] BOSSES =
|
||||
{
|
||||
25944, // Earth Terakan
|
||||
25932, // Transformed: Dartanion
|
||||
26011, // Bloody Earth Dragon Gagia
|
||||
26012, // Demon Fardune
|
||||
26013, // Demon Harsia
|
||||
26014, // Demon Bedukel
|
||||
26015, // Bloody Witch Rumilla
|
||||
26016, // Shilen's Priest Sasia
|
||||
26077, // Monster Laum
|
||||
26078, // Monster Minotaur
|
||||
26079, // Monster Sarga
|
||||
26080, // Monster Hogliff
|
||||
26081, // Monster Artarot
|
||||
26082, // Monster Centaur
|
||||
};
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 86;
|
||||
private static final int MAX_LEVEL = 88;
|
||||
private static final String KILL_COUNT_VAR = "KillCount";
|
||||
|
||||
public Q00571_SpecialMissionProofOfUnityFieldRaid()
|
||||
{
|
||||
super(571);
|
||||
addStartNpc(PENNY);
|
||||
addTalkId(PENNY);
|
||||
addKillId(BOSSES);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "34413-00.htm");
|
||||
addFactionLevel(Faction.ADVENTURE_GUILD, 1, "34413-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 "34413-02.htm":
|
||||
case "34413-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "select_mission":
|
||||
{
|
||||
qs.startQuest();
|
||||
if ((player.getFactionLevel(Faction.ADVENTURE_GUILD) >= 1) && (player.getFactionLevel(Faction.ADVENTURE_GUILD) <= 2))
|
||||
{
|
||||
htmltext = "34413-04.htm";
|
||||
break;
|
||||
}
|
||||
htmltext = "34413-00.htm";
|
||||
break;
|
||||
}
|
||||
case "34413-07.html":
|
||||
{
|
||||
// Rewards
|
||||
addExpAndSp(player, 569407440, 569400);
|
||||
addFactionPoints(player, Faction.ADVENTURE_GUILD, 220);
|
||||
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 = "34413-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "34413-05.html" : "34413-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
htmltext = "34413-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int count = qs.getInt(KILL_COUNT_VAR);
|
||||
qs.set(KILL_COUNT_VAR, ++count);
|
||||
if (count >= 5)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
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 int killCount = qs.getInt(KILL_COUNT_VAR);
|
||||
if (killCount > 0)
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(NpcStringId.LV_86_88_SPECIAL_MISSION_PROOF_OF_UNITY_FIELD_RAID_2.getId(), true, killCount));
|
||||
return holder;
|
||||
}
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny<br>
|
||||
I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.<br>
|
||||
(Only characters with Lv. 88-92 or above and Faction level 3-4 or above with the Adventure Guild may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
What is it? Do you want to check new missions of the Adventure Guild?<br>
|
||||
Come on. We are always in high demand.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00572_SpecialMissionProofOfCourageFieldRaid 34413-02.htm">Ask about the mission</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny:<br>
|
||||
Adventure Guildsman Penny wants you to defeat 5 raid bosses whose level is below 88.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00572_SpecialMissionProofOfCourageFieldRaid 34413-03.htm">"Really?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,6 @@
|
||||
<html><body>Penny:<br>
|
||||
Do you detract from the intelligence of the Hunters Guild? This is all true!<br>
|
||||
Are you ready to kill 5 raid bosses?. So we agreed.<br>
|
||||
With whom? Of course, with Aden.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00572_SpecialMissionProofOfCourageFieldRaid select_mission">Ask about the agreement</Button>
|
||||
</body></html>
|
@ -0,0 +1,8 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Orc Barracks: Amden Orc Turahot, Amden Orc Turation, Amden Orc Turamathia, Amden Orc Turabait, Nerva Orc Nermion, Nerva Orc Nergatt</font>.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Wind Cassius</font>.<br>
|
||||
<font color="LEVEL">* Elven Village: Harp's Clone, Isadora's Avatar, Maliss' Avatar, Embryo Garron, Embryo Nigel, Embryo Dabos</font>.<br>
|
||||
<font color="LEVEL">* Fairy Settlement: Ekidna's Statue Tarstan, Ekidna's Statue Abelsnif, Ekidna's Statue Kimesis, Ekidna's Statue Kathargon, Ekidna's Statue Pantasaus, Ekidna's Statue Ixignon</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,8 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Orc Barracks: Amden Orc Turahot, Amden Orc Turation, Amden Orc Turamathia, Amden Orc Turabait, Nerva Orc Nermion, Nerva Orc Nergatt</font>.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Wind Cassius</font>.<br>
|
||||
<font color="LEVEL">* Elven Village: Harp's Clone, Isadora's Avatar, Maliss' Avatar, Embryo Garron, Embryo Nigel, Embryo Dabos</font>.<br>
|
||||
<font color="LEVEL">* Fairy Settlement: Ekidna's Statue Tarstan, Ekidna's Statue Abelsnif, Ekidna's Statue Kimesis, Ekidna's Statue Kathargon, Ekidna's Statue Pantasaus, Ekidna's Statue Ixignon</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
Did you kill 5 bosses?<br>
|
||||
You ruined 5 bosses designs...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00572_SpecialMissionProofOfCourageFieldRaid 34413-07.html">"I figured out 5 bosses"</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Penny:<br>
|
||||
Good job. This will help the Adventure Guild take the lead.
|
||||
</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.Q00572_SpecialMissionProofOfCourageFieldRaid;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.enums.Faction;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Special Mission: Proof of Courage (Field Raid) (572)
|
||||
* @URL https://l2wiki.com/Special_Mission:_Proof_of_Courage_(Field_Raid)
|
||||
* @author Dmitri
|
||||
*/
|
||||
public class Q00572_SpecialMissionProofOfCourageFieldRaid extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int PENNY = 34413;
|
||||
// Raidbosses
|
||||
private static final int[] BOSSES =
|
||||
{
|
||||
26000, // Amden Orc Turahot
|
||||
26001, // Amden Orc Turation
|
||||
26002, // Amden Orc Turamathia
|
||||
26003, // Amden Orc Turabait
|
||||
26004, // Nerva Orc Nermion
|
||||
26005, // Nerva Orc Nergatt
|
||||
25943, // Wind Cassius
|
||||
25989, // Harp's Clone
|
||||
25990, // Isadora's Avatar
|
||||
25991, // Maliss' Avatar
|
||||
25992, // Embryo Garron
|
||||
25993, // Embryo Nigel
|
||||
25994, // Embryo Dabos
|
||||
26055, // Ekidna's Statue Tarstan
|
||||
26056, // Ekidna's Statue Abelsnif
|
||||
26057, // Ekidna's Statue Kimesis
|
||||
26058, // Ekidna's Statue Kathargon
|
||||
26059, // Ekidna's Statue Pantasaus
|
||||
26060, // Ekidna's Statue Ixignon
|
||||
};
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 88;
|
||||
private static final int MAX_LEVEL = 92;
|
||||
private static final String KILL_COUNT_VAR = "KillCount";
|
||||
|
||||
public Q00572_SpecialMissionProofOfCourageFieldRaid()
|
||||
{
|
||||
super(572);
|
||||
addStartNpc(PENNY);
|
||||
addTalkId(PENNY);
|
||||
addKillId(BOSSES);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "34413-00.htm");
|
||||
addFactionLevel(Faction.ADVENTURE_GUILD, 3, "34413-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 "34413-02.htm":
|
||||
case "34413-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "select_mission":
|
||||
{
|
||||
qs.startQuest();
|
||||
if ((player.getFactionLevel(Faction.ADVENTURE_GUILD) >= 3) && (player.getFactionLevel(Faction.ADVENTURE_GUILD) <= 4))
|
||||
{
|
||||
htmltext = "34413-04.htm";
|
||||
break;
|
||||
}
|
||||
htmltext = "34413-00.htm";
|
||||
break;
|
||||
}
|
||||
case "34413-07.html":
|
||||
{
|
||||
// Rewards
|
||||
addExpAndSp(player, 859052940, 859020);
|
||||
addFactionPoints(player, Faction.ADVENTURE_GUILD, 240);
|
||||
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 = "34413-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "34413-05.html" : "34413-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
htmltext = "34413-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int count = qs.getInt(KILL_COUNT_VAR);
|
||||
qs.set(KILL_COUNT_VAR, ++count);
|
||||
if (count >= 5)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
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 int killCount = qs.getInt(KILL_COUNT_VAR);
|
||||
if (killCount > 0)
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(NpcStringId.LV_88_92_SPECIAL_MISSION_PROOF_OF_COURAGE_FIELD_RAID_2.getId(), true, killCount));
|
||||
return holder;
|
||||
}
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny<br>
|
||||
I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.<br>
|
||||
(Only characters with Lv. 92-95 or above and Faction level 5 or higher or above with the Adventure Guild may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
What is it? Do you want to check new missions of the Adventure Guild?<br>
|
||||
Come on. We are always in high demand.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00573_SpecialMissionProofOfStrengthFieldRaid 34413-02.htm">Ask about the mission</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny:<br>
|
||||
Adventure Guildsman Penny wants you to defeat 5 raid bosses whose level is below 88.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00573_SpecialMissionProofOfStrengthFieldRaid 34413-03.htm">"Really?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,6 @@
|
||||
<html><body>Penny:<br>
|
||||
Do you detract from the intelligence of the Hunters Guild? This is all true!<br>
|
||||
Are you ready to kill 5 raid bosses?. So we agreed.<br>
|
||||
With whom? Of course, with Aden.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00573_SpecialMissionProofOfStrengthFieldRaid 34413-04.htm">Ask about the agreement</Button>
|
||||
</body></html>
|
@ -0,0 +1,8 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Wind Cassius</font>.<br>
|
||||
<font color="LEVEL">* Elven Village: Harp's Clone, Isadora's Avatar, Maliss' Avatar, Embryo Garron, Embryo Nigel, Embryo Dabos</font>.<br>
|
||||
<font color="LEVEL">* Fairy Settlement: Ekidna's Statue Tarstan, Ekidna's Statue Abelsnif, Ekidna's Statue Kimesis, Ekidna's Statue Kathargon, Ekidna's Statue Pantasaus, Ekidna's Statue Ixignon</font>.<br>
|
||||
<font color="LEVEL">* Garden of Beasts: Enhanced Mahum Radium, Typheron, Timarga, Tycepton, Tiverga, Enhanced Mahum Supercium</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,8 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Wind Cassius</font>.<br>
|
||||
<font color="LEVEL">* Elven Village: Harp's Clone, Isadora's Avatar, Maliss' Avatar, Embryo Garron, Embryo Nigel, Embryo Dabos</font>.<br>
|
||||
<font color="LEVEL">* Fairy Settlement: Ekidna's Statue Tarstan, Ekidna's Statue Abelsnif, Ekidna's Statue Kimesis, Ekidna's Statue Kathargon, Ekidna's Statue Pantasaus, Ekidna's Statue Ixignon</font>.<br>
|
||||
<font color="LEVEL">* Garden of Beasts: Enhanced Mahum Radium, Typheron, Timarga, Tycepton, Tiverga, Enhanced Mahum Supercium</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
Did you kill 5 bosses?<br>
|
||||
You ruined 5 bosses designs...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00573_SpecialMissionProofOfStrengthFieldRaid 34413-07.html">"I figured out 5 bosses"</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Penny:<br>
|
||||
Good job. This will help the Adventure Guild take the lead.
|
||||
</body></html>
|
@ -0,0 +1,188 @@
|
||||
/*
|
||||
* 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.Q00573_SpecialMissionProofOfStrengthFieldRaid;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.enums.Faction;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Special Mission: Proof of Strength (Field Raid) (573)
|
||||
* @URL https://l2wiki.com/Special_Mission:_Proof_of_Strength_(Field_Raid)
|
||||
* @author Dmitri
|
||||
*/
|
||||
public class Q00573_SpecialMissionProofOfStrengthFieldRaid extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int PENNY = 34413;
|
||||
// Raidbosses
|
||||
private static final int[] BOSSES =
|
||||
{
|
||||
25943, // Wind Cassius
|
||||
25989, // Harp's Clone
|
||||
25990, // Isadora's Avatar
|
||||
25991, // Maliss' Avatar
|
||||
25992, // Embryo Garron
|
||||
25993, // Embryo Nigel
|
||||
25994, // Embryo Dabos
|
||||
26055, // Ekidna's Statue Tarstan
|
||||
26056, // Ekidna's Statue Abelsnif
|
||||
26057, // Ekidna's Statue Kimesis
|
||||
26058, // Ekidna's Statue Kathargon
|
||||
26059, // Ekidna's Statue Pantasaus
|
||||
26060, // Ekidna's Statue Ixignon
|
||||
26066, // Enhanced Mahum Radium
|
||||
26067, // Typheron
|
||||
26068, // Timarga
|
||||
26069, // Tycepton
|
||||
26070, // Tiverga
|
||||
26071, // Enhanced Mahum Supercium
|
||||
};
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 92;
|
||||
private static final int MAX_LEVEL = 95;
|
||||
private static final String KILL_COUNT_VAR = "KillCount";
|
||||
|
||||
public Q00573_SpecialMissionProofOfStrengthFieldRaid()
|
||||
{
|
||||
super(573);
|
||||
addStartNpc(PENNY);
|
||||
addTalkId(PENNY);
|
||||
addKillId(BOSSES);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "34413-00.htm");
|
||||
addFactionLevel(Faction.ADVENTURE_GUILD, 5, "34413-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 "34413-02.htm":
|
||||
case "34413-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "34413-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "34413-07.html":
|
||||
{
|
||||
// Rewards
|
||||
addExpAndSp(player, 1946405580L, 1946400);
|
||||
addFactionPoints(player, Faction.ADVENTURE_GUILD, 260);
|
||||
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 = "34413-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "34413-05.html" : "34413-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
htmltext = "34413-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int count = qs.getInt(KILL_COUNT_VAR);
|
||||
qs.set(KILL_COUNT_VAR, ++count);
|
||||
if (count >= 5)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
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 int killCount = qs.getInt(KILL_COUNT_VAR);
|
||||
if (killCount > 0)
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(NpcStringId.LV_92_95_SPECIAL_MISSION_PROOF_OF_STRENGTH_FIELD_RAID_2.getId(), true, killCount));
|
||||
return holder;
|
||||
}
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -125,6 +125,9 @@ import quests.Q00567_BasicMissionIsleOfSouls.Q00567_BasicMissionIsleOfSouls;
|
||||
import quests.Q00568_SpecialMissionNornilsCave.Q00568_SpecialMissionNornilsCave;
|
||||
import quests.Q00569_BasicMissionSealOfShilen.Q00569_BasicMissionSealOfShilen;
|
||||
import quests.Q00570_SpecialMissionKartiasLabyrinthParty.Q00570_SpecialMissionKartiasLabyrinthParty;
|
||||
import quests.Q00571_SpecialMissionProofOfUnityFieldRaid.Q00571_SpecialMissionProofOfUnityFieldRaid;
|
||||
import quests.Q00572_SpecialMissionProofOfCourageFieldRaid.Q00572_SpecialMissionProofOfCourageFieldRaid;
|
||||
import quests.Q00573_SpecialMissionProofOfStrengthFieldRaid.Q00573_SpecialMissionProofOfStrengthFieldRaid;
|
||||
import quests.Q00574_SpecialMissionNornilsGarden.Q00574_SpecialMissionNornilsGarden;
|
||||
import quests.Q00576_SpecialMissionDefeatSpezion.Q00576_SpecialMissionDefeatSpezion;
|
||||
import quests.Q00577_BasicMissionSilentValley.Q00577_BasicMissionSilentValley;
|
||||
@ -473,9 +476,6 @@ import quests.Q10891_AtANewPlace.Q10891_AtANewPlace;
|
||||
import quests.Q10892_RevengeOneStepAtATime.Q10892_RevengeOneStepAtATime;
|
||||
import quests.not_done.Q00504_CompetitionForTheBanditStronghold;
|
||||
import quests.not_done.Q00529_RegularBarrierMaintenance;
|
||||
import quests.not_done.Q00571_SpecialMissionProofOfUnityFieldRaid;
|
||||
import quests.not_done.Q00572_SpecialMissionProofOfCourageFieldRaid;
|
||||
import quests.not_done.Q00573_SpecialMissionProofOfStrengthFieldRaid;
|
||||
import quests.not_done.Q00575_SpecialMissionFortuna;
|
||||
import quests.not_done.Q00585_CantGoAgainstTheTime;
|
||||
import quests.not_done.Q00586_MutatedCreatures;
|
||||
@ -683,9 +683,9 @@ public class QuestMasterHandler
|
||||
Q00568_SpecialMissionNornilsCave.class,
|
||||
Q00569_BasicMissionSealOfShilen.class,
|
||||
Q00570_SpecialMissionKartiasLabyrinthParty.class,
|
||||
Q00571_SpecialMissionProofOfUnityFieldRaid.class, // TODO: Not done.
|
||||
Q00572_SpecialMissionProofOfCourageFieldRaid.class, // TODO: Not done.
|
||||
Q00573_SpecialMissionProofOfStrengthFieldRaid.class, // TODO: Not done.
|
||||
Q00571_SpecialMissionProofOfUnityFieldRaid.class,
|
||||
Q00572_SpecialMissionProofOfCourageFieldRaid.class,
|
||||
Q00573_SpecialMissionProofOfStrengthFieldRaid.class,
|
||||
Q00574_SpecialMissionNornilsGarden.class,
|
||||
Q00575_SpecialMissionFortuna.class, // TODO: Not done.
|
||||
Q00576_SpecialMissionDefeatSpezion.class,
|
||||
|
@ -1,36 +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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q00571_SpecialMissionProofOfUnityFieldRaid extends Quest
|
||||
{
|
||||
private static final int START_NPC = 34413;
|
||||
|
||||
public Q00571_SpecialMissionProofOfUnityFieldRaid()
|
||||
{
|
||||
super(571);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@ -1,36 +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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q00572_SpecialMissionProofOfCourageFieldRaid extends Quest
|
||||
{
|
||||
private static final int START_NPC = 34413;
|
||||
|
||||
public Q00572_SpecialMissionProofOfCourageFieldRaid()
|
||||
{
|
||||
super(572);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@ -1,36 +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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q00573_SpecialMissionProofOfStrengthFieldRaid extends Quest
|
||||
{
|
||||
private static final int START_NPC = 34413;
|
||||
|
||||
public Q00573_SpecialMissionProofOfStrengthFieldRaid()
|
||||
{
|
||||
super(573);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@ -7,9 +7,6 @@
|
||||
557 Red Libra Request - Fall of Etina
|
||||
558 Request from the Red Libra Guild - Sea of Spores
|
||||
559 Request from the Red Libra Guild - Krofin's Nest
|
||||
571 Special Mission: Proof of Unity (Field Raid)
|
||||
572 Special Mission: Proof of Courage (Field Raid)
|
||||
573 Special Mission: Proof of Strength (Field Raid)
|
||||
578 Basic Mission: Cemetery
|
||||
579 Basic Mission: Blazing Swamp
|
||||
585 Can't Go Against the Time
|
||||
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny<br>
|
||||
I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.<br>
|
||||
(Only characters with Lv. 86-88 or above and Faction level 1-2 or above with the Adventure Guild may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
What is it? Do you want to check new missions of the Adventure Guild?<br>
|
||||
Come on. We are always in high demand.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00571_SpecialMissionProofOfUnityFieldRaid 34413-02.htm">Ask about the mission</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny:<br>
|
||||
Adventure Guildsman Penny wants you to defeat 5 raid bosses whose level is below 88.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00571_SpecialMissionProofOfUnityFieldRaid 34413-03.htm">"Really?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,6 @@
|
||||
<html><body>Penny:<br>
|
||||
Do you detract from the intelligence of the Hunters Guild? This is all true!<br>
|
||||
Are you ready to kill 5 raid bosses?. So we agreed.<br>
|
||||
With whom? Of course, with Aden.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00571_SpecialMissionProofOfUnityFieldRaid select_mission">Ask about the agreement</Button>
|
||||
</body></html>
|
@ -0,0 +1,7 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Earth Terakan</font>.<br>
|
||||
<font color="LEVEL">* Bloody Swampland/Altar of Evil: Transformed: Dartanion, Bloody Earth Dragon Gagia, Demon Fardune, Demon Harsia, Demon Bedukel, Bloody Witch Rumilla, Shilen's Priest Sasia</font>.<br>
|
||||
<font color="LEVEL">* Town of Gludio: Monster Laum, Monster Minotaur, Monster Sarga, Monster Hogliff, Monster Artarot, Monster Centaur</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,7 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Earth Terakan</font>.<br>
|
||||
<font color="LEVEL">* Bloody Swampland/Altar of Evil: Transformed: Dartanion, Bloody Earth Dragon Gagia, Demon Fardune, Demon Harsia, Demon Bedukel, Bloody Witch Rumilla, Shilen's Priest Sasia</font>.<br>
|
||||
<font color="LEVEL">* Town of Gludio: Monster Laum, Monster Minotaur, Monster Sarga, Monster Hogliff, Monster Artarot, Monster Centaur</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
Did you kill 5 bosses?<br>
|
||||
You ruined 5 bosses designs...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00571_SpecialMissionProofOfUnityFieldRaid 34413-07.html">"I figured out 5 bosses"</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Penny:<br>
|
||||
Good job. This will help the Adventure Guild take the lead.
|
||||
</body></html>
|
@ -0,0 +1,188 @@
|
||||
/*
|
||||
* 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.Q00571_SpecialMissionProofOfUnityFieldRaid;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.enums.Faction;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Special Mission: Proof of Unity (Field Raid) (571)
|
||||
* @URL https://l2wiki.com/Special_Mission:_Proof_of_Unity_(Field_Raid)
|
||||
* @author Dmitri
|
||||
*/
|
||||
public class Q00571_SpecialMissionProofOfUnityFieldRaid extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int PENNY = 34413;
|
||||
// Raidbosses
|
||||
private static final int[] BOSSES =
|
||||
{
|
||||
25944, // Earth Terakan
|
||||
25932, // Transformed: Dartanion
|
||||
26011, // Bloody Earth Dragon Gagia
|
||||
26012, // Demon Fardune
|
||||
26013, // Demon Harsia
|
||||
26014, // Demon Bedukel
|
||||
26015, // Bloody Witch Rumilla
|
||||
26016, // Shilen's Priest Sasia
|
||||
26077, // Monster Laum
|
||||
26078, // Monster Minotaur
|
||||
26079, // Monster Sarga
|
||||
26080, // Monster Hogliff
|
||||
26081, // Monster Artarot
|
||||
26082, // Monster Centaur
|
||||
};
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 86;
|
||||
private static final int MAX_LEVEL = 88;
|
||||
private static final String KILL_COUNT_VAR = "KillCount";
|
||||
|
||||
public Q00571_SpecialMissionProofOfUnityFieldRaid()
|
||||
{
|
||||
super(571);
|
||||
addStartNpc(PENNY);
|
||||
addTalkId(PENNY);
|
||||
addKillId(BOSSES);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "34413-00.htm");
|
||||
addFactionLevel(Faction.ADVENTURE_GUILD, 1, "34413-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 "34413-02.htm":
|
||||
case "34413-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "select_mission":
|
||||
{
|
||||
qs.startQuest();
|
||||
if ((player.getFactionLevel(Faction.ADVENTURE_GUILD) >= 1) && (player.getFactionLevel(Faction.ADVENTURE_GUILD) <= 2))
|
||||
{
|
||||
htmltext = "34413-04.htm";
|
||||
break;
|
||||
}
|
||||
htmltext = "34413-00.htm";
|
||||
break;
|
||||
}
|
||||
case "34413-07.html":
|
||||
{
|
||||
// Rewards
|
||||
addExpAndSp(player, 569407440, 569400);
|
||||
addFactionPoints(player, Faction.ADVENTURE_GUILD, 220);
|
||||
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 = "34413-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "34413-05.html" : "34413-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
htmltext = "34413-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int count = qs.getInt(KILL_COUNT_VAR);
|
||||
qs.set(KILL_COUNT_VAR, ++count);
|
||||
if (count >= 5)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
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 int killCount = qs.getInt(KILL_COUNT_VAR);
|
||||
if (killCount > 0)
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(NpcStringId.LV_86_88_SPECIAL_MISSION_PROOF_OF_UNITY_FIELD_RAID_2.getId(), true, killCount));
|
||||
return holder;
|
||||
}
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny<br>
|
||||
I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.<br>
|
||||
(Only characters with Lv. 88-92 or above and Faction level 3-4 or above with the Adventure Guild may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
What is it? Do you want to check new missions of the Adventure Guild?<br>
|
||||
Come on. We are always in high demand.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00572_SpecialMissionProofOfCourageFieldRaid 34413-02.htm">Ask about the mission</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny:<br>
|
||||
Adventure Guildsman Penny wants you to defeat 5 raid bosses whose level is below 88.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00572_SpecialMissionProofOfCourageFieldRaid 34413-03.htm">"Really?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,6 @@
|
||||
<html><body>Penny:<br>
|
||||
Do you detract from the intelligence of the Hunters Guild? This is all true!<br>
|
||||
Are you ready to kill 5 raid bosses?. So we agreed.<br>
|
||||
With whom? Of course, with Aden.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00572_SpecialMissionProofOfCourageFieldRaid select_mission">Ask about the agreement</Button>
|
||||
</body></html>
|
@ -0,0 +1,8 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Orc Barracks: Amden Orc Turahot, Amden Orc Turation, Amden Orc Turamathia, Amden Orc Turabait, Nerva Orc Nermion, Nerva Orc Nergatt</font>.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Wind Cassius</font>.<br>
|
||||
<font color="LEVEL">* Elven Village: Harp's Clone, Isadora's Avatar, Maliss' Avatar, Embryo Garron, Embryo Nigel, Embryo Dabos</font>.<br>
|
||||
<font color="LEVEL">* Fairy Settlement: Ekidna's Statue Tarstan, Ekidna's Statue Abelsnif, Ekidna's Statue Kimesis, Ekidna's Statue Kathargon, Ekidna's Statue Pantasaus, Ekidna's Statue Ixignon</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,8 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Orc Barracks: Amden Orc Turahot, Amden Orc Turation, Amden Orc Turamathia, Amden Orc Turabait, Nerva Orc Nermion, Nerva Orc Nergatt</font>.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Wind Cassius</font>.<br>
|
||||
<font color="LEVEL">* Elven Village: Harp's Clone, Isadora's Avatar, Maliss' Avatar, Embryo Garron, Embryo Nigel, Embryo Dabos</font>.<br>
|
||||
<font color="LEVEL">* Fairy Settlement: Ekidna's Statue Tarstan, Ekidna's Statue Abelsnif, Ekidna's Statue Kimesis, Ekidna's Statue Kathargon, Ekidna's Statue Pantasaus, Ekidna's Statue Ixignon</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
Did you kill 5 bosses?<br>
|
||||
You ruined 5 bosses designs...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00572_SpecialMissionProofOfCourageFieldRaid 34413-07.html">"I figured out 5 bosses"</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Penny:<br>
|
||||
Good job. This will help the Adventure Guild take the lead.
|
||||
</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.Q00572_SpecialMissionProofOfCourageFieldRaid;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.enums.Faction;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Special Mission: Proof of Courage (Field Raid) (572)
|
||||
* @URL https://l2wiki.com/Special_Mission:_Proof_of_Courage_(Field_Raid)
|
||||
* @author Dmitri
|
||||
*/
|
||||
public class Q00572_SpecialMissionProofOfCourageFieldRaid extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int PENNY = 34413;
|
||||
// Raidbosses
|
||||
private static final int[] BOSSES =
|
||||
{
|
||||
26000, // Amden Orc Turahot
|
||||
26001, // Amden Orc Turation
|
||||
26002, // Amden Orc Turamathia
|
||||
26003, // Amden Orc Turabait
|
||||
26004, // Nerva Orc Nermion
|
||||
26005, // Nerva Orc Nergatt
|
||||
25943, // Wind Cassius
|
||||
25989, // Harp's Clone
|
||||
25990, // Isadora's Avatar
|
||||
25991, // Maliss' Avatar
|
||||
25992, // Embryo Garron
|
||||
25993, // Embryo Nigel
|
||||
25994, // Embryo Dabos
|
||||
26055, // Ekidna's Statue Tarstan
|
||||
26056, // Ekidna's Statue Abelsnif
|
||||
26057, // Ekidna's Statue Kimesis
|
||||
26058, // Ekidna's Statue Kathargon
|
||||
26059, // Ekidna's Statue Pantasaus
|
||||
26060, // Ekidna's Statue Ixignon
|
||||
};
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 88;
|
||||
private static final int MAX_LEVEL = 92;
|
||||
private static final String KILL_COUNT_VAR = "KillCount";
|
||||
|
||||
public Q00572_SpecialMissionProofOfCourageFieldRaid()
|
||||
{
|
||||
super(572);
|
||||
addStartNpc(PENNY);
|
||||
addTalkId(PENNY);
|
||||
addKillId(BOSSES);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "34413-00.htm");
|
||||
addFactionLevel(Faction.ADVENTURE_GUILD, 3, "34413-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 "34413-02.htm":
|
||||
case "34413-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "select_mission":
|
||||
{
|
||||
qs.startQuest();
|
||||
if ((player.getFactionLevel(Faction.ADVENTURE_GUILD) >= 3) && (player.getFactionLevel(Faction.ADVENTURE_GUILD) <= 4))
|
||||
{
|
||||
htmltext = "34413-04.htm";
|
||||
break;
|
||||
}
|
||||
htmltext = "34413-00.htm";
|
||||
break;
|
||||
}
|
||||
case "34413-07.html":
|
||||
{
|
||||
// Rewards
|
||||
addExpAndSp(player, 859052940, 859020);
|
||||
addFactionPoints(player, Faction.ADVENTURE_GUILD, 240);
|
||||
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 = "34413-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "34413-05.html" : "34413-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
htmltext = "34413-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int count = qs.getInt(KILL_COUNT_VAR);
|
||||
qs.set(KILL_COUNT_VAR, ++count);
|
||||
if (count >= 5)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
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 int killCount = qs.getInt(KILL_COUNT_VAR);
|
||||
if (killCount > 0)
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(NpcStringId.LV_88_92_SPECIAL_MISSION_PROOF_OF_COURAGE_FIELD_RAID_2.getId(), true, killCount));
|
||||
return holder;
|
||||
}
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny<br>
|
||||
I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.<br>
|
||||
(Only characters with Lv. 92-95 or above and Faction level 5 or higher or above with the Adventure Guild may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
What is it? Do you want to check new missions of the Adventure Guild?<br>
|
||||
Come on. We are always in high demand.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00573_SpecialMissionProofOfStrengthFieldRaid 34413-02.htm">Ask about the mission</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny:<br>
|
||||
Adventure Guildsman Penny wants you to defeat 5 raid bosses whose level is below 88.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00573_SpecialMissionProofOfStrengthFieldRaid 34413-03.htm">"Really?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,6 @@
|
||||
<html><body>Penny:<br>
|
||||
Do you detract from the intelligence of the Hunters Guild? This is all true!<br>
|
||||
Are you ready to kill 5 raid bosses?. So we agreed.<br>
|
||||
With whom? Of course, with Aden.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00573_SpecialMissionProofOfStrengthFieldRaid 34413-04.htm">Ask about the agreement</Button>
|
||||
</body></html>
|
@ -0,0 +1,8 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Wind Cassius</font>.<br>
|
||||
<font color="LEVEL">* Elven Village: Harp's Clone, Isadora's Avatar, Maliss' Avatar, Embryo Garron, Embryo Nigel, Embryo Dabos</font>.<br>
|
||||
<font color="LEVEL">* Fairy Settlement: Ekidna's Statue Tarstan, Ekidna's Statue Abelsnif, Ekidna's Statue Kimesis, Ekidna's Statue Kathargon, Ekidna's Statue Pantasaus, Ekidna's Statue Ixignon</font>.<br>
|
||||
<font color="LEVEL">* Garden of Beasts: Enhanced Mahum Radium, Typheron, Timarga, Tycepton, Tiverga, Enhanced Mahum Supercium</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,8 @@
|
||||
<html><body>Penny:<br>
|
||||
The Adventure Guild maintains close ties with the Aden Courtyard. In accordance with the agreement, we have been instructed to kill 5 raid bosses of your choice.<br>
|
||||
<font color="LEVEL">* Whispering Woods: Wind Cassius</font>.<br>
|
||||
<font color="LEVEL">* Elven Village: Harp's Clone, Isadora's Avatar, Maliss' Avatar, Embryo Garron, Embryo Nigel, Embryo Dabos</font>.<br>
|
||||
<font color="LEVEL">* Fairy Settlement: Ekidna's Statue Tarstan, Ekidna's Statue Abelsnif, Ekidna's Statue Kimesis, Ekidna's Statue Kathargon, Ekidna's Statue Pantasaus, Ekidna's Statue Ixignon</font>.<br>
|
||||
<font color="LEVEL">* Garden of Beasts: Enhanced Mahum Radium, Typheron, Timarga, Tycepton, Tiverga, Enhanced Mahum Supercium</font>.<br>
|
||||
set off on a mission soon, we will be waiting for you.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
Did you kill 5 bosses?<br>
|
||||
You ruined 5 bosses designs...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00573_SpecialMissionProofOfStrengthFieldRaid 34413-07.html">"I figured out 5 bosses"</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Penny:<br>
|
||||
Good job. This will help the Adventure Guild take the lead.
|
||||
</body></html>
|
@ -0,0 +1,188 @@
|
||||
/*
|
||||
* 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.Q00573_SpecialMissionProofOfStrengthFieldRaid;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.enums.Faction;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Special Mission: Proof of Strength (Field Raid) (573)
|
||||
* @URL https://l2wiki.com/Special_Mission:_Proof_of_Strength_(Field_Raid)
|
||||
* @author Dmitri
|
||||
*/
|
||||
public class Q00573_SpecialMissionProofOfStrengthFieldRaid extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int PENNY = 34413;
|
||||
// Raidbosses
|
||||
private static final int[] BOSSES =
|
||||
{
|
||||
25943, // Wind Cassius
|
||||
25989, // Harp's Clone
|
||||
25990, // Isadora's Avatar
|
||||
25991, // Maliss' Avatar
|
||||
25992, // Embryo Garron
|
||||
25993, // Embryo Nigel
|
||||
25994, // Embryo Dabos
|
||||
26055, // Ekidna's Statue Tarstan
|
||||
26056, // Ekidna's Statue Abelsnif
|
||||
26057, // Ekidna's Statue Kimesis
|
||||
26058, // Ekidna's Statue Kathargon
|
||||
26059, // Ekidna's Statue Pantasaus
|
||||
26060, // Ekidna's Statue Ixignon
|
||||
26066, // Enhanced Mahum Radium
|
||||
26067, // Typheron
|
||||
26068, // Timarga
|
||||
26069, // Tycepton
|
||||
26070, // Tiverga
|
||||
26071, // Enhanced Mahum Supercium
|
||||
};
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 92;
|
||||
private static final int MAX_LEVEL = 95;
|
||||
private static final String KILL_COUNT_VAR = "KillCount";
|
||||
|
||||
public Q00573_SpecialMissionProofOfStrengthFieldRaid()
|
||||
{
|
||||
super(573);
|
||||
addStartNpc(PENNY);
|
||||
addTalkId(PENNY);
|
||||
addKillId(BOSSES);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "34413-00.htm");
|
||||
addFactionLevel(Faction.ADVENTURE_GUILD, 5, "34413-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 "34413-02.htm":
|
||||
case "34413-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "34413-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "34413-07.html":
|
||||
{
|
||||
// Rewards
|
||||
addExpAndSp(player, 1946405580L, 1946400);
|
||||
addFactionPoints(player, Faction.ADVENTURE_GUILD, 260);
|
||||
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 = "34413-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
htmltext = (qs.isCond(1)) ? "34413-05.html" : "34413-06.html";
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
htmltext = "34413-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && qs.isCond(1) && killer.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
|
||||
{
|
||||
int count = qs.getInt(KILL_COUNT_VAR);
|
||||
qs.set(KILL_COUNT_VAR, ++count);
|
||||
if (count >= 5)
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
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 int killCount = qs.getInt(KILL_COUNT_VAR);
|
||||
if (killCount > 0)
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(NpcStringId.LV_92_95_SPECIAL_MISSION_PROOF_OF_STRENGTH_FIELD_RAID_2.getId(), true, killCount));
|
||||
return holder;
|
||||
}
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -125,6 +125,9 @@ import quests.Q00567_BasicMissionIsleOfSouls.Q00567_BasicMissionIsleOfSouls;
|
||||
import quests.Q00568_SpecialMissionNornilsCave.Q00568_SpecialMissionNornilsCave;
|
||||
import quests.Q00569_BasicMissionSealOfShilen.Q00569_BasicMissionSealOfShilen;
|
||||
import quests.Q00570_SpecialMissionKartiasLabyrinthParty.Q00570_SpecialMissionKartiasLabyrinthParty;
|
||||
import quests.Q00571_SpecialMissionProofOfUnityFieldRaid.Q00571_SpecialMissionProofOfUnityFieldRaid;
|
||||
import quests.Q00572_SpecialMissionProofOfCourageFieldRaid.Q00572_SpecialMissionProofOfCourageFieldRaid;
|
||||
import quests.Q00573_SpecialMissionProofOfStrengthFieldRaid.Q00573_SpecialMissionProofOfStrengthFieldRaid;
|
||||
import quests.Q00574_SpecialMissionNornilsGarden.Q00574_SpecialMissionNornilsGarden;
|
||||
import quests.Q00576_SpecialMissionDefeatSpezion.Q00576_SpecialMissionDefeatSpezion;
|
||||
import quests.Q00577_BasicMissionSilentValley.Q00577_BasicMissionSilentValley;
|
||||
@ -489,9 +492,6 @@ import quests.custom.Q10520_TempleGuardians.Q10520_TempleGuardians;
|
||||
import quests.custom.Q10529_IvoryTowersResearchFloatingSeaJournal.Q10529_IvoryTowersResearchFloatingSeaJournal;
|
||||
import quests.custom.Q10533_OrfensAmbition.Q10533_OrfensAmbition;
|
||||
import quests.not_done.Q00504_CompetitionForTheBanditStronghold;
|
||||
import quests.not_done.Q00571_SpecialMissionProofOfUnityFieldRaid;
|
||||
import quests.not_done.Q00572_SpecialMissionProofOfCourageFieldRaid;
|
||||
import quests.not_done.Q00573_SpecialMissionProofOfStrengthFieldRaid;
|
||||
import quests.not_done.Q00578_BasicMissionCemetery;
|
||||
import quests.not_done.Q00579_BasicMissionBlazingSwamp;
|
||||
import quests.not_done.Q00585_CantGoAgainstTheTime;
|
||||
@ -703,9 +703,9 @@ public class QuestMasterHandler
|
||||
Q00568_SpecialMissionNornilsCave.class,
|
||||
Q00569_BasicMissionSealOfShilen.class,
|
||||
Q00570_SpecialMissionKartiasLabyrinthParty.class,
|
||||
Q00571_SpecialMissionProofOfUnityFieldRaid.class, // TODO: Not done.
|
||||
Q00572_SpecialMissionProofOfCourageFieldRaid.class, // TODO: Not done.
|
||||
Q00573_SpecialMissionProofOfStrengthFieldRaid.class, // TODO: Not done.
|
||||
Q00571_SpecialMissionProofOfUnityFieldRaid.class,
|
||||
Q00572_SpecialMissionProofOfCourageFieldRaid.class,
|
||||
Q00573_SpecialMissionProofOfStrengthFieldRaid.class,
|
||||
Q00574_SpecialMissionNornilsGarden.class,
|
||||
Q00576_SpecialMissionDefeatSpezion.class,
|
||||
Q00577_BasicMissionSilentValley.class,
|
||||
|
@ -1,36 +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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q00571_SpecialMissionProofOfUnityFieldRaid extends Quest
|
||||
{
|
||||
private static final int START_NPC = 34413;
|
||||
|
||||
public Q00571_SpecialMissionProofOfUnityFieldRaid()
|
||||
{
|
||||
super(571);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@ -1,36 +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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q00572_SpecialMissionProofOfCourageFieldRaid extends Quest
|
||||
{
|
||||
private static final int START_NPC = 34413;
|
||||
|
||||
public Q00572_SpecialMissionProofOfCourageFieldRaid()
|
||||
{
|
||||
super(572);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@ -1,36 +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.not_done;
|
||||
|
||||
import org.l2jmobius.Config;
|
||||
import org.l2jmobius.gameserver.model.quest.Quest;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class Q00573_SpecialMissionProofOfStrengthFieldRaid extends Quest
|
||||
{
|
||||
private static final int START_NPC = 34413;
|
||||
|
||||
public Q00573_SpecialMissionProofOfStrengthFieldRaid()
|
||||
{
|
||||
super(573);
|
||||
addStartNpc(START_NPC);
|
||||
addTalkId(START_NPC);
|
||||
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
|
||||
}
|
||||
}
|
@ -39,9 +39,6 @@
|
||||
557 Red Libra Request - Fall of Etina
|
||||
558 Red Libra Request - Sea of Spores
|
||||
559 Request from the Red Libra Guild - Krofin's Nest
|
||||
571 Special Mission: Proof of Unity (Field Raid)
|
||||
572 Special Mission: Proof of Courage (Field Raid)
|
||||
573 Special Mission: Proof of Strength (Field Raid)
|
||||
578 Basic Mission: Cemetery
|
||||
585 Can't Go Against the Time
|
||||
586 Mutated Creatures
|
||||
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny<br>
|
||||
I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.<br>
|
||||
(Only characters with Lv. 86-88 or above and Faction level 1-2 or above with the Adventure Guild may undertake this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Penny:<br>
|
||||
What is it? Do you want to check new missions of the Adventure Guild?<br>
|
||||
Come on. We are always in high demand.<br>
|
||||
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00571_SpecialMissionProofOfUnityFieldRaid 34413-02.htm">Ask about the mission</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Penny:<br>
|
||||
Adventure Guildsman Penny wants you to defeat 5 raid bosses whose level is below 88.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00571_SpecialMissionProofOfUnityFieldRaid 34413-03.htm">"Really?"</Button>
|
||||
</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