Addition of quest Path of Destiny - Conviction (11026).

Contributed by Dmitri.
This commit is contained in:
MobiusDevelopment
2019-11-14 09:25:51 +00:00
parent 3f5e226e66
commit e8b7bce516
31 changed files with 473 additions and 1 deletions

View File

@@ -232,7 +232,6 @@
10900 Path to Strength
10901 A Model Adventurer
11024 Path of Destiny - Beginning
11026 Path of Destiny - Conviction
11027 Path of Destiny - Overcome
11028 Wind of Destiny - Encounter
11029 Wind of Destiny - Promise

View File

@@ -0,0 +1,5 @@
<html><body>High Priest Raymond:<br>
You have the Ertheia's prophecy device.<br>
Then you must be the one I've been waiting for.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 30289-02.html">Story?</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>High Priest Raymond:<br>
I was chosen one day. It was an oracle after so long, but the message was very ambiguous.<br>
What I do remember is that someone will come to me with the Ertheia's prophecy device, and I must guide them to some place.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 30289-03.html">Where is it?</Button>
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>High Priest Raymond:<br>
That place... Is where the one with noble blood must face eternal pain.<br>
No one wants to go to the Fortress of the Dead.<br>
But... That man reached that place because he wanted to, and you must go there to meet that man.<br>
That's as far as I know from the oracle. All I can do is guide you to that place.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction teleport">Please send me there.</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Mysterious Wizard:<br>
It seems nothing happened.<br>
Did you find the person you were looking for?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction falver">How did you come here?</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Kain Van Halter:<br>
Who are you? Why would you try to kill Giselle all the way out here?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 31639-02.html">I didn't know that it was Giselle. She attacked first!</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Kain Van Halter:<br>
That's not a good reason. The fast that you came all the way here alone is suspicious.<br>
You were after Giselle's life in the first place!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 31639-03.html">Tell him about High Priest Raymond</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Kain Van Halter:<br>
The High Priest of Gludio?<br>
Alright, then. Let's say I believe that Giselle has attacked you first. Vampires have a hard time controlling themselves, that's for sure...<br>
However, what brings you all the way here? Why have you been looking for Giselle? I can't imagine you having business with her.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 31639-04.html">I am here for you</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Kain Van Halter:<br>
Me?<br>
What do you want with a wanderer like me? And I don't see why I should even help you. You tried to harm my sister! Good thing I stopped by to check on her.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 31639-05.html">It's about the Prophecy Machine.</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Kain Van Halter:<br>
Prophecy Machine?<br>
What about the Prophecy Machine?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 31639-06.html">Here, take a look.</Button>
</body></html>

View File

@@ -0,0 +1,11 @@
<html><body>Kain Van Halter:<br>
<font color="LEVEL">A red river flows...hard frost upon the earth... Listen.</font><br>
<font color="LEVEL">And One of half-noble blood,</font><br>
<font color="LEVEL">And One of half-noble blood, descending with the winds to deliver from torment, will come.</font><br>
<font color="LEVEL">Listen.</font><br>
<font color="LEVEL">When joined by one of nobility,</font><br>
<font color="LEVEL">The path will open to the Grail</font>.<br>
... ...<br>
So why are you showing me this?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 31639-07.html">I know that you're interested in the Grail.</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Kain Van Halter:<br>
I see. Did Karla tell you? So sge still remembers me mentioning the Grail that day.<br>
Check this out first.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 31639-08.html">This?</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Kain Van Halter:<br>
Surprised? I found it while passing Goddard Territory.<br>
This looks similar to the Prophecy Machine that you showed me. It's probably a part of the whole.<br>
And about what's written on your machine... I think I know what it's saying.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 31639-09.html">Do tell.</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Kain Van Halter:<br>
A red river flows... hard frost upon the earth. You see, Elmore rules over a <font color="LEVEL">cold part of the land</font>, which it once shared with Aden as Elmoreden. Now the whole continent is swarming with Shilen's bloody works.<br>
But this part is surprising. When joined by one... the path will open to the Grail. Truly?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 31639-10.html">Who is this one?</Button>
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>Kain Van Halter:<br>
<font color="LEVEL">One of half-noble blood...</font><br>
Ha! Even the prophecy of Ertheia describes me so, huh? Well, it's right. My mother was a commoner. A tragic farce, to be loved by the king! So here I am, a prince only in name. And descending with the winds to deliver from...yes, that is me. I happened to save <font color="LEVEL">Faeron</font> once. <font color="LEVEL">Kain</font> is your man!<br>
The <font color="LEVEL">Grail</font>...if it's the same <font color="LEVEL">Grail</font>, then...anyway, you can read the rest of the prophecy with the fragment that I found, right?<br>
Take it. Your village needs it more than I.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 31639-11.html">Receive the fragment.</Button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Kain Van Halter:<br>
Who is that person standing there?<br>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Kain Van Halter:<br>
Who are you? Why would you try to kill Giselle all the way out here?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 31639-13.html">I didn't know that it was Giselle. She attacked first!</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Kain Van Halter:<br>
That's not a good reason. The fact that you came all the way here alone is suspicious.<br>
You were after Giselle's life in the first place!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 31639-14.html">Tell him about High Priest Raymond</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Kain van Halter:<br>
The High Priest of Gludio?<br>
Alright, then. Let's say I believe that Giselle has attacked you first. Vampires have a hard time controlling themselves, that's for sure...<br>
However, what brings you all the way here? Why have you been looking for Giselle? I can't imagine you having business with her.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 33980-01.html">I am here for you.</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Tarti:<br>
Do you remember what you've heard about the immortality curse in the Ruins of Despair? I've learned about a... let's say, an antidote that might have something to do with this curse.<br>
There is a place you can go to investigate it. It's not far from here.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 34505-02.html">"Learn more".</Button>
</body></html>

View File

@@ -0,0 +1,10 @@
<html><body>Tarti:<br>
<font color="LEVEL">The land that was once united is now covered in blood</font>.<br>
<font color="LEVEL">......</font><br>
<font color="LEVEL">A half-blood destined to become a noble hero will descend upon frozen earth following the wind</font>.<br>
<font color="LEVEL">......</font><br>
<font color="LEVEL">Once his noble blood awakens he will lead you to the Holy Chalice</font>.<br>
That's all I could decypher. It's a prophecy so the meaning is not entirely clear.<br>
I was thinking about this once I returned from Faeron but my thoughts were interrupted when <font color="LEVEL">High Priest Raymond</font> from the <font color="LEVEL">Einhasad Temple</font> came up to me and told something even stranger.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 34505-03.html">"So what did he say?".</Button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Tarti:<br>
You need to reach level 76 as quickly as possible. If you have already reached level 76, talk to <font color="LEVEL">Tarti</font>, she is waiting for you!.<br>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Tarti:<br>
I agree completely.<br>
Go to the <font color="LEVEL">Einhasad Temple</font> and find <font color="LEVEL">Raymond</font>.<br>
I'm sure this quest won't be easy... But you're strong enough.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Tarti:<br>
The quest can be performed by <font color="LEVEL">arteys</font> who have completed their second liberation, and other races who have completed their third profession. Character level must be 76! Requires completed quest <font color="LEVEL">Path of Destiny - Conviction</font>.<br>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Tarti:<br>
You look so strange... What's happened?<br>
Have you met with kain?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 34505-08.html">"And someone else, too".</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Tarti:<br>
Someone else? But it's only been... How did you manage to do it all so quickly?<br>
Tell me what happened.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 34505-09.html">"Kain is actually a prince".</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Tarti:<br>
So Kain is... a prince?<br>
Karla will be so surprised!<br>
I wonder, what prince would lead such a quite and unremarkable life? There must be a reason.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 34505-10.html">"Kain's sister is cursed".</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Tarti:<br>
That means... the holy Chalice?<br>
It is the holy Grail? Ertheians are looking for it too. Maybe it could help us return to the Wind Spirit Realm.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q11026_PathOfDestinyConviction 34505-11.html">"Looks like it".</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Tarti:<br>
Wow!<br>
There is no time for contemplation!<br>
We need to tell Navari everything as soon as possible.<br>
Oh!.. Looks like it's time for another class change! Now the third class change is available to you. Congratulations. Don't waste your time, <font color="LEVEL">change the class</font>!
</body></html>

View File

@@ -0,0 +1,319 @@
/*
* 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.Q11026_PathOfDestinyConviction;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.data.xml.impl.CategoryData;
import org.l2jmobius.gameserver.enums.CategoryType;
import org.l2jmobius.gameserver.enums.Movie;
import org.l2jmobius.gameserver.enums.Race;
import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.events.EventType;
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
import org.l2jmobius.gameserver.model.events.annotations.RegisterType;
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
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;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.classchange.ExRequestClassChangeUi;
import quests.Q11025_PathOfDestinyProving.Q11025_PathOfDestinyProving;
/**
* Path of Destiny - Conviction (11026)
* @URL https://l2wiki.com/Path_of_Destiny_-_Conviction
* @author Dmitri, Mobius
*/
public class Q11026_PathOfDestinyConviction extends Quest
{
// NPCs
private static final int TARTI = 34505;
private static final int RAYMOND = 30289;
private static final int KAIN_VAN_HALTER = 31639;
private static final int MYSTERIOUS_MAGE = 31522;
private static final int VAMPIRE_SOLDIER = 21582;
private static final int VON_HELLMANN = 19566;
// Items
private static final int WIND_SPIRIT = 80673;
// Location
private static final Location TELEPORT_1 = new Location(57983, -28955, 568);
private static final Location TELEPORT_2 = new Location(-14180, 123840, -3120);
// Misc
private static final int MIN_LEVEL = 76;
public Q11026_PathOfDestinyConviction()
{
super(11026);
addStartNpc(TARTI);
addTalkId(TARTI, RAYMOND, KAIN_VAN_HALTER, MYSTERIOUS_MAGE);
addFirstTalkId(KAIN_VAN_HALTER, MYSTERIOUS_MAGE);
addKillId(VAMPIRE_SOLDIER, VON_HELLMANN);
registerQuestItems(WIND_SPIRIT);
addCondMinLevel(MIN_LEVEL, "34505-06.html");
addCondCompletedQuest(Q11025_PathOfDestinyProving.class.getSimpleName(), "33963-06.html");
setQuestNameNpcStringId(NpcStringId.LV_40_PATH_OF_DESTINY_CONVICTION);
}
@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 "34505-08.html":
case "34505-09.html":
case "34505-11.html":
case "30289-03.html":
case "31639-02.html":
case "31639-03.html":
case "31639-04.html":
case "31639-05.html":
case "31639-06.html":
case "31639-07.html":
case "31639-08.html":
case "31639-09.html":
case "31639-11.html":
{
htmltext = event;
break;
}
case "34505-02.html":
{
qs.startQuest();
htmltext = event;
break;
}
case "34505-03.html":
{
htmltext = event;
if (player.getLevel() >= 76)
{
qs.setCond(2, true);
htmltext = "34505-04.html";
}
break;
}
case "30289-02.html":
{
if (qs.isCond(2))
{
qs.setCond(3, true);
}
htmltext = event;
break;
}
case "teleport":
{
if (qs.isCond(3))
{
final Npc mob = addSpawn(VAMPIRE_SOLDIER, 57983, -28955, 568, 0, true, 180000);
addAttackPlayerDesire(mob, player);
player.teleToLocation(TELEPORT_1);
}
break;
}
case "31639-10.html":
{
if (qs.isCond(3))
{
addSpawn(MYSTERIOUS_MAGE, npc.getX() + 40, npc.getY() + 40, npc.getZ(), npc.getHeading(), false, 120000);
showOnScreenMsg(player, NpcStringId.TALK_TO_THE_MYSTERIOUS_WIZARD, ExShowScreenMessage.TOP_CENTER, 10000);
break;
}
}
case "falver":
{
if (qs.isCond(3))
{
qs.setCond(4, true);
playMovie(player, Movie.SI_CHOICE_OF_KAIN_A);
giveItems(player, WIND_SPIRIT, 1);
player.teleToLocation(TELEPORT_2);
htmltext = event;
}
break;
}
case "34505-10.html":
{
if (qs.isCond(4))
{
addExpAndSp(player, 14281098, 12852);
qs.exitQuest(false, true);
if (CategoryData.getInstance().isInCategory(CategoryType.THIRD_CLASS_GROUP, player.getClassId().getId()) || //
(CategoryData.getInstance().isInCategory(CategoryType.SECOND_CLASS_GROUP, player.getClassId().getId()) && (player.getRace() == Race.ERTHEIA)))
{
player.sendPacket(ExRequestClassChangeUi.STATIC_PACKET);
}
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:
{
if (npc.getId() == TARTI)
{
htmltext = "34505-01.html";
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case TARTI:
{
if (qs.isCond(1))
{
qs.setCond(2, true);
htmltext = "34505-04.html";
break;
}
else if (qs.isCond(2))
{
htmltext = "34505-04.html"; // TODO: Proper second talk dialog.
break;
}
else if (qs.isCond(4))
{
htmltext = "34505-07.html";
}
break;
}
case RAYMOND:
{
if (qs.isCond(2))
{
htmltext = "30289-01.html";
}
break;
}
case KAIN_VAN_HALTER:
{
if (qs.isCond(3))
{
htmltext = "31639-01.html";
}
break;
}
case MYSTERIOUS_MAGE:
{
if (qs.isCond(3))
{
htmltext = "33980-01.html";
}
break;
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public String onFirstTalk(Npc npc, PlayerInstance player)
{
return npc.getId() + "-01.html";
}
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(3))
{
switch (npc.getId())
{
case VAMPIRE_SOLDIER:
{
final Npc mob = addSpawn(VON_HELLMANN, npc, false, 120000);
addAttackPlayerDesire(mob, killer);
break;
}
case VON_HELLMANN:
{
playMovie(killer, Movie.SI_CHOICE_OF_KAIN_B);
addSpawn(KAIN_VAN_HALTER, 57983, -28955, 568, 0, false, 120000);
break;
}
}
}
return super.onKill(npc, killer, isSummon);
}
@RegisterEvent(EventType.ON_PLAYER_LOGIN)
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
public void OnPlayerLogin(OnPlayerLogin event)
{
if (Config.DISABLE_TUTORIAL)
{
return;
}
final PlayerInstance player = event.getPlayer();
if (player == null)
{
return;
}
if (player.getRace() == Race.ERTHEIA)
{
if (!CategoryData.getInstance().isInCategory(CategoryType.SECOND_CLASS_GROUP, player.getClassId().getId()))
{
return;
}
}
else if (!CategoryData.getInstance().isInCategory(CategoryType.THIRD_CLASS_GROUP, player.getClassId().getId()))
{
return;
}
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCompleted())
{
player.sendPacket(ExRequestClassChangeUi.STATIC_PACKET);
}
}
}

View File

@@ -166,6 +166,7 @@ import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedVal
import quests.Q10851_ElvenBotany.Q10851_ElvenBotany;
import quests.Q10856_SuperionAppears.Q10856_SuperionAppears;
import quests.Q11025_PathOfDestinyProving.Q11025_PathOfDestinyProving;
import quests.Q11026_PathOfDestinyConviction.Q11026_PathOfDestinyConviction;
import quests.Q11031_TrainingBeginsNow.Q11031_TrainingBeginsNow;
import quests.Q11032_CurseOfUndying.Q11032_CurseOfUndying;
import quests.Q11033_AntidoteIngredients.Q11033_AntidoteIngredients;
@@ -490,6 +491,7 @@ public class QuestMasterHandler
Q10900_PathToStrength.class, // TODO: Not done.
Q10901_AModelAdventurer.class, // TODO: Not done.
Q11025_PathOfDestinyProving.class,
Q11026_PathOfDestinyConviction.class,
Q11031_TrainingBeginsNow.class,
Q11032_CurseOfUndying.class,
Q11033_AntidoteIngredients.class,