Addition of quest 571, 572 and 573.

Contributed by Dmitri.
This commit is contained in:
MobiusDevelopment 2020-02-29 11:16:39 +00:00
parent 559fe9caf6
commit fb9482c8f6
129 changed files with 2809 additions and 477 deletions

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -0,0 +1,3 @@
<html><body>Penny:<br>
Good job. This will help the Adventure Guild take the lead.
</body></html>

View File

@ -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);
}
}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -0,0 +1,3 @@
<html><body>Penny:<br>
Good job. This will help the Adventure Guild take the lead.
</body></html>

View File

@ -0,0 +1,193 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package quests.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);
}
}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -0,0 +1,3 @@
<html><body>Penny:<br>
Good job. This will help the Adventure Guild take the lead.
</body></html>

View File

@ -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);
}
}

View File

@ -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,

View File

@ -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));
}
}

View File

@ -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));
}
}

View File

@ -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));
}
}

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -0,0 +1,3 @@
<html><body>Penny:<br>
Good job. This will help the Adventure Guild take the lead.
</body></html>

View File

@ -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);
}
}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -0,0 +1,3 @@
<html><body>Penny:<br>
Good job. This will help the Adventure Guild take the lead.
</body></html>

View File

@ -0,0 +1,193 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package quests.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);
}
}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -0,0 +1,3 @@
<html><body>Penny:<br>
Good job. This will help the Adventure Guild take the lead.
</body></html>

View File

@ -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);
}
}

View File

@ -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,

View File

@ -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));
}
}

View File

@ -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));
}
}

View File

@ -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));
}
}

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -0,0 +1,3 @@
<html><body>Penny:<br>
Good job. This will help the Adventure Guild take the lead.
</body></html>

View File

@ -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);
}
}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -0,0 +1,3 @@
<html><body>Penny:<br>
Good job. This will help the Adventure Guild take the lead.
</body></html>

View File

@ -0,0 +1,193 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package quests.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);
}
}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -0,0 +1,3 @@
<html><body>Penny:<br>
Good job. This will help the Adventure Guild take the lead.
</body></html>

View File

@ -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);
}
}

View File

@ -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,

View File

@ -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));
}
}

View File

@ -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));
}
}

View File

@ -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));
}
}

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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