Addition of quests 10423, 10899, 10900 and 10901.

Contributed by Dmitri.
This commit is contained in:
MobiusDevelopment
2020-01-27 13:33:35 +00:00
parent a58a2e11f9
commit 6d89220f21
118 changed files with 1961 additions and 386 deletions

View File

@@ -0,0 +1,4 @@
<html><body>Erda:<br>
In order to take on this mission, you must first build more trust with us.<br>
<font color="LEVEL">(Only characters with faction level 5 or above with the Blackbird Clan may undertake this quest.)</font><br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Erda:<br>
Your're the one that Hephah has sent, right? If not, you should go meet Herphah and receive a mission from her before you continue. If you think it doesn't matter, I can continue anyway. Do you want me to continue?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10423_EmbryoStrongholdRaid 34319-02.htm">"Sure, no problem!"</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Erda:<br>
Herphah wants you to do some missions, and I'll chose an appropriate mission depending on your relationship with us at the Adventure Guild.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10423_EmbryoStrongholdRaid 34319-03.htm">"Go on."</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Erda:<br>
Your mission is to assist with the task at the Altar of Evil. If successful, our Adventure Guild will give you additional rewards on top of the mission payment and your relationship with our faction will grow even stronger.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10423_EmbryoStrongholdRaid 34319-04.htm">"Alright."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Erda:<br>
You've already leamed everything you need to know about the mission. By that I mean, how to go to the Altar of Evil. You should be able to start the mission right away without further explanation.<br>
But if you want to listen to the explanation again, I'd be happy to tell you.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Erda:<br>
Good choice. Now, go to <font color="LEVEL">Black Wizard Lapathia</font> at the <font color="LEVEL">Altar of Evil</font> and do the mission that she gives you. When the mission is done, come back to me.<br>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Erda:<br>
I asked the Adventure Guild to send an adventurer but didn't expect they would send you. I'd like to see how good you are.<br>
<font color="LEVEL">(To do "Basic Mission: Isle of Souls," you must do "Uncover the Secret" and "More Aggressive Operation" through Black Wizard Lapathia.)</font><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10423_EmbryoStrongholdRaid 34319-07.html">"Go on."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Erda:<br>
You completed all the missions I gave you, meaning that you also completed those of the Adventure Guildsman. Are you going back to the Town of Aden? How?<br>
Don't tell me you're going to walk all the way up there. I know a better way.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10423_EmbryoStrongholdRaid 34319-08.html">"Go on."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Erda:<br>
When setting out for a joumey, veteran adventurers always pack <font color="LEVEL">Scrolls of Escape</font>, it teleports the user immediately to the closest village or to the check point.<br>
If you have these useful items, you can move easily after hunting or when you are far away from the village. Since you've been a great help to me, I'll give you the scroll that can teleport you directly to the Town of Aden.
</body></html>

View File

@@ -0,0 +1,202 @@
/*
* 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.Q10423_EmbryoStrongholdRaid;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.enums.QuestSound;
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;
/**
* Embryo Stronghold Raid (10423)
* @URL https://l2wiki.com/Embryo_Stronghold_Raid
* @author Dmitri
*/
public class Q10423_EmbryoStrongholdRaid extends Quest
{
// NPCs
private static final int ERDA = 34319;
// Monsters
private static final int[] MOBS =
{
26199, // Sampson
26200, // Hanson
26201, // Grom
26202, // Medvez
26203, // Zigatan
26204, // Hunchback Kwai
26205, // Cornix
26206, // Caranix
26207, // Jonadan
26208, // Demien
26209, // Berg
26210, // Tarku
26211, // Tarpin
26212, // Embryo Safe Vault
26213, // Embryo Secret Vault
26214, // Sakum
26215, // Crazy Typhoon
26216, // Cursed Haren
26217, // Flynt
26218, // Harp
26219, // Maliss
26220, // Isadora
26221, // Whitra
26222, // Bletra
26223, // Upgraded Siege Tank
26224, // Vegima
26225, // Varonia
26226, // Aronia
26227, // Odd
26228, // Even
26229 // Nemertess
};
// Rewards
private static final int SUPERIOR_GIANTS_CODEX = 46151; // Superior Giant's Codex - Mastery Chapter 1
// Misc
private static final int MIN_LEVEL = 100;
public Q10423_EmbryoStrongholdRaid()
{
super(10423);
addStartNpc(ERDA);
addTalkId(ERDA);
addKillId(MOBS);
addCondMinLevel(MIN_LEVEL, "34319-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 "34319-02.htm":
case "34319-03.htm":
case "34319-07.html":
{
htmltext = event;
break;
}
case "34319-04.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "34319-08.html":
{
if (qs.isCond(2))
{
giveItems(player, SUPERIOR_GIANTS_CODEX, 1);
addExpAndSp(player, 29682570651L, 71108570);
qs.exitQuest(false, 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 = "34319-01.htm";
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
htmltext = "34319-05.html";
}
else
{
htmltext = "34319-06.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
int killedEmbryo = qs.getInt("killed_" + MOBS[0]);
if (CommonUtil.contains(MOBS, npc.getId()))
{
if (killedEmbryo < 30)
{
killedEmbryo++;
qs.set("killed_" + MOBS[0], killedEmbryo);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
if (killedEmbryo == 30)
{
qs.setCond(2, true);
}
}
return super.onKill(npc, player, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isStarted() && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_EMBRYO_OFFICER, qs.getInt("killed_" + MOBS[0])));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@@ -333,6 +333,7 @@ import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfs
import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters;
import quests.Q10421_AssassinationOfTheVarkaSilenosCommander.Q10421_AssassinationOfTheVarkaSilenosCommander;
import quests.Q10422_AssassinationOfTheVarkaSilenosChief.Q10422_AssassinationOfTheVarkaSilenosChief;
import quests.Q10423_EmbryoStrongholdRaid.Q10423_EmbryoStrongholdRaid;
import quests.Q10424_KekropusLetterBelosWhereabouts.Q10424_KekropusLetterBelosWhereabouts;
import quests.Q10425_TheKetraOrcSupporters.Q10425_TheKetraOrcSupporters;
import quests.Q10426_AssassinationOfTheKetraOrcCommander.Q10426_AssassinationOfTheKetraOrcCommander;
@@ -882,7 +883,7 @@ public class QuestMasterHandler
Q10420_TheVarkaSilenosSupporters.class,
Q10421_AssassinationOfTheVarkaSilenosCommander.class,
Q10422_AssassinationOfTheVarkaSilenosChief.class,
Q10423_EmbryoStrongholdRaid.class, // TODO: Not done.
Q10423_EmbryoStrongholdRaid.class,
Q10424_KekropusLetterBelosWhereabouts.class,
Q10425_TheKetraOrcSupporters.class,
Q10426_AssassinationOfTheKetraOrcCommander.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 Q10423_EmbryoStrongholdRaid extends Quest
{
private static final int START_NPC = 34319;
public Q10423_EmbryoStrongholdRaid()
{
super(10423);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}