Quest An Uninvited Guest (10379).
Contributed by gigilo1968.
This commit is contained in:
parent
b3144d7103
commit
06c877ce78
@ -76,7 +76,6 @@
|
||||
10375 Succubus Disciples
|
||||
10376 Bloody Good Time
|
||||
10378 Weeding Work
|
||||
10379 An Uninvited Guest
|
||||
10380 The Executioner's Execution
|
||||
10388 Conspiracy Behind Doors
|
||||
10389 The Voice of Authority
|
||||
|
@ -0,0 +1,198 @@
|
||||
/*
|
||||
* 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.Q10379_AnUninvitedGuest;
|
||||
|
||||
import com.l2jmobius.gameserver.enums.ChatType;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.network.NpcStringId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
|
||||
import com.l2jmobius.gameserver.util.Util;
|
||||
|
||||
import quests.Q10377_TheInvadedExecutionGrounds.Q10377_TheInvadedExecutionGrounds;
|
||||
|
||||
/**
|
||||
* An Uninvited Guest (10379)
|
||||
* @URL https://l2wiki.com/An_Uninvited_Guest
|
||||
* @author Gigi
|
||||
*/
|
||||
public final class Q10379_AnUninvitedGuest extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int ENDRIGO = 30632;
|
||||
// Monsters
|
||||
private static final int SCALDISECT_THE_FURIOUS = 23212;
|
||||
private static final int NAGDU_THE_DEFORMED = 23201;
|
||||
private static final int SADIAC_THE_KILLER = 23199;
|
||||
private static final int ROSENIAS_DIVINE_SPIRIT = 23208;
|
||||
private static final int HASKAL_GHOST = 23205;
|
||||
private static final int CANTA_STANDING_BEAST = 23203;
|
||||
private static final int GAZAM = 23207;
|
||||
private static final int TURAN_GHOST = 23200;
|
||||
private static final int KILLER_FRANGS = 23204;
|
||||
private static final int KALLBERA = 23209;
|
||||
private static final int HAKAL_THE_BUTTCHERED = 23202;
|
||||
private static final int SAMMITA = 23206;
|
||||
// Items
|
||||
private static final int SOE_GUILLOTINE_FORTRESS = 35292;
|
||||
private static final int ADENA = 57;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 95;
|
||||
|
||||
public Q10379_AnUninvitedGuest()
|
||||
{
|
||||
super(10379);
|
||||
addStartNpc(ENDRIGO);
|
||||
addTalkId(ENDRIGO);
|
||||
addKillId(SCALDISECT_THE_FURIOUS, NAGDU_THE_DEFORMED, SADIAC_THE_KILLER, ROSENIAS_DIVINE_SPIRIT, HASKAL_GHOST, CANTA_STANDING_BEAST, GAZAM, TURAN_GHOST, KILLER_FRANGS, KALLBERA, HAKAL_THE_BUTTCHERED, SAMMITA);
|
||||
addCondMinLevel(MIN_LEVEL);
|
||||
addCondCompletedQuest(Q10377_TheInvadedExecutionGrounds.class.getSimpleName(), "warden_endrigo_q10379_02.html");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
String htmltext = event;
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return getNoQuestMsg(player);
|
||||
}
|
||||
|
||||
switch (event)
|
||||
{
|
||||
case "warden_endrigo_q10379_04.htm":
|
||||
case "warden_endrigo_q10379_05.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "warden_endrigo_q10379_06.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, ENDRIGO, NpcStringId.SCALDISECT_OF_HELLFIRE_BE_PREPARED_FOR_ITS_ATTACK));
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "warden_endrigo_q10379_09.html":
|
||||
{
|
||||
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, ENDRIGO, NpcStringId.YOU_OBTAINED_A_REALLY_IMPORTANT_RESULT_I_WILL_DEFINITELY_TELL_THE_RULERS_OF_DION));
|
||||
giveItems(player, ADENA, 3441680);
|
||||
giveItems(player, SOE_GUILLOTINE_FORTRESS, 2);
|
||||
addExpAndSp(player, 934013430, 224163);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
if (qs.isCreated())
|
||||
{
|
||||
htmltext = "warden_endrigo_q10379_01.htm";
|
||||
}
|
||||
else if (qs.isStarted())
|
||||
{
|
||||
if (qs.isCond(1) || qs.isCond(2))
|
||||
{
|
||||
htmltext = "warden_endrigo_q10379_07.html";
|
||||
}
|
||||
else if (qs.isCond(3))
|
||||
{
|
||||
htmltext = "warden_endrigo_q10379_08.html";
|
||||
}
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
htmltext = "warden_endrigo_q10379_03.html";
|
||||
}
|
||||
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && Util.checkIfInRange(1500, npc, player, false))
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case NAGDU_THE_DEFORMED:
|
||||
case SADIAC_THE_KILLER:
|
||||
case ROSENIAS_DIVINE_SPIRIT:
|
||||
case HASKAL_GHOST:
|
||||
case CANTA_STANDING_BEAST:
|
||||
case GAZAM:
|
||||
case TURAN_GHOST:
|
||||
case KILLER_FRANGS:
|
||||
case KALLBERA:
|
||||
case HAKAL_THE_BUTTCHERED:
|
||||
case SAMMITA:
|
||||
{
|
||||
if ((getRandom(100) < 5) && qs.isCond(1))
|
||||
{
|
||||
showOnScreenMsg(player, NpcStringId.S1_S_PROOF_OF_SURVIVAL_DISAPPEARS_AND_SCALDISECT_THE_FURIOUS_APPEARS, ExShowScreenMessage.TOP_CENTER, 8000);
|
||||
addSpawn(SCALDISECT_THE_FURIOUS, npc.getX() + 500, npc.getY() + 500, npc.getZ(), 0, false, 150000);
|
||||
qs.setCond(2);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SCALDISECT_THE_FURIOUS:
|
||||
{
|
||||
if (qs.isCond(2))
|
||||
{
|
||||
int kills = qs.getInt(Integer.toString(SCALDISECT_THE_FURIOUS));
|
||||
if (kills < 1)
|
||||
{
|
||||
kills++;
|
||||
qs.set(Integer.toString(SCALDISECT_THE_FURIOUS), kills);
|
||||
}
|
||||
final ExQuestNpcLogList log = new ExQuestNpcLogList(getId());
|
||||
log.addNpc(SCALDISECT_THE_FURIOUS, qs.getInt("SCALDISECT_THE_FURIOUS"));
|
||||
player.sendPacket(log);
|
||||
|
||||
}
|
||||
if (qs.getInt(Integer.toString(SCALDISECT_THE_FURIOUS)) == 1)
|
||||
{
|
||||
qs.setCond(0);
|
||||
qs.setCond(3, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
executeForEachPlayer(killer, npc, isSummon, true, false);
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
<html><body>Guillotine Fortress Watchman Endrigo:<br>
|
||||
Any outstanding danger? Anything we should know?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10379_AnUninvitedGuest warden_endrigo_q10379_04.htm">"That never happened"</button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10379_AnUninvitedGuest warden_endrigo_q10379_05.htm">"I was ambushed"</button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Guillotine Fortress Watchman Endrigo:<br>
|
||||
I'm not sure you're prepared for this.<br>
|
||||
(The quest is only available for level 95 players or above and requires completion of "The Invaded Execution Grounds")<br>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Guillotine Fortress Watchman Endrigo:<br>
|
||||
Hmm? We're done here, aren't we?<br>
|
||||
(You have already completed this quest.)<br>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Guillotine Fortress Watchman Endrigo:<br>
|
||||
There are a lot of Undead here after the change, but few seem to move by Shilen's will. They are sort of like... administrators? Anyway, by the look of them ambushing adventurers here to kill the Undead, Shilen was sure not glad to see them killing the monsters here.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10379_AnUninvitedGuest warden_endrigo_q10379_05.htm">"Go on"</button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Guillotine Fortress Watchman Endrigo:<br>
|
||||
That guy right there is Scaldisect the Furious. It's one of Shilen's more ardent followers.<br>
|
||||
He has become a great hazard to the security of this area. Can you take him out?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10379_AnUninvitedGuest warden_endrigo_q10379_06.htm">"I think so, yeah."</button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Guillotine Fortress Watchman Endrigo:<br>
|
||||
As you kill the Undead, you can earn <font color="LEVEL">Proof of Survival</font>. I think this object will act as a bait for the <font color="LEVEL">Scaldisect the Furious</font>. Try it out.<br>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Guillotine Fortress Watchman Endrigo:<br>
|
||||
As you kill the Undead, you can earn <font color="LEVEL">Proof of Survival</font>. I think this object will act as a bait for the <font color="LEVEL">Scaldisect the Furious</font>. Try it out.<br>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Guillotine Fortress Watchman Endrigo:<br>
|
||||
How did the mission go?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10379_AnUninvitedGuest warden_endrigo_q10379_09.html">"I called out Scaldisect the Furious and defeated him."</button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Guillotine Fortress Watchman Endrigo:<br>
|
||||
You have finished a very important mission. Good job.<br>
|
||||
</body></html>
|
@ -260,6 +260,7 @@ import quests.Q10366_RuinsStatusUpdate.Q10366_RuinsStatusUpdate;
|
||||
import quests.Q10368_RebellionOfMonsters.Q10368_RebellionOfMonsters;
|
||||
import quests.Q10369_NoblesseSoulTesting.Q10369_NoblesseSoulTesting;
|
||||
import quests.Q10377_TheInvadedExecutionGrounds.Q10377_TheInvadedExecutionGrounds;
|
||||
import quests.Q10379_AnUninvitedGuest.Q10379_AnUninvitedGuest;
|
||||
import quests.Q10381_ToTheSeedOfHellfire.Q10381_ToTheSeedOfHellfire;
|
||||
import quests.Q10382_DayOfLiberation.Q10382_DayOfLiberation;
|
||||
import quests.Q10383_FergasonsOffer.Q10383_FergasonsOffer;
|
||||
@ -658,6 +659,7 @@ public class QuestMasterHandler
|
||||
Q10368_RebellionOfMonsters.class,
|
||||
Q10369_NoblesseSoulTesting.class,
|
||||
Q10377_TheInvadedExecutionGrounds.class,
|
||||
Q10379_AnUninvitedGuest.class,
|
||||
Q10381_ToTheSeedOfHellfire.class,
|
||||
Q10382_DayOfLiberation.class,
|
||||
Q10383_FergasonsOffer.class,
|
||||
|
Loading…
Reference in New Issue
Block a user