Addition of quests 10590 and 10591.

Contributed by Dmitri.
This commit is contained in:
MobiusDevelopment
2019-11-25 19:21:21 +00:00
parent e94f763da3
commit 1aa43deec1
63 changed files with 1033 additions and 76 deletions

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Eva's Hidden Space -->
<instance id="217" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/instance.xsd">
<time empty="0" />
<locations>
<enter type="FIXED">
<location x="-121680" y="-116556" z="-5777" />
</enter>
<exit type="FIXED">
<location x="111257" y="221071" z="-3550" />
</exit>
</locations>
<conditions>
<condition type="Level">
<param name="min" value="75" />
</condition>
</conditions>
<spawnlist>
<group>
<npc id="33686" x="-121207" y="-116537" z="-5728" heading="32768" /> <!-- Eva's Avatar -->
</group>
</spawnlist>
</instance>

View File

@@ -0,0 +1,7 @@
<html><body>Goddess of Water Eva's Avatar:<br>
You've come a long way. I'm Eva's Avatar. Are you surprised to see me? No need to. I was impressed by your actions.<br>
The reason I wanted to see you was because I wanted to ask you something.<br>
<font color="LEVEL">What do you think makes up nobility?</font><br>
That's the question I had for you. Can you tell me what you think?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest EvasHiddenSpace inter_quest_10591_NPC33686">I'm not sure</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Goddess of Water Eva's Avatar:<br>
The reason I'm telling you this is because you will continue to face trials where your sacrifice and devotion will be needed. But do you think that means that your path is filled with hardship and sadness? I don't think so. The path that you go is a noble path that will raise your name. Please remember what I just said. That's why I wanted to see you.<br>
That's all. Now go up and talk to <font color="LEVEL">Lionel Hunter</font>, who will give you your qualification.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest EvasHiddenSpace endCinematic">Go outside</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Eva's Avatar:<br>
The Goddess of Destruction has finally resurrected! The energy of water continues to be contaminated....<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest EvasHiddenSpace exitInstance">Back</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest EvasHiddenSpace 33686-04.html">Quest</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Goddess of Water Eva's Avatar:<br>
The reason I'm telling you this is because you will continue to face trials where your sacrifice and devotion will be needed. But do you think that means that your path is filled with hardship and sadness? I don't think so. The path that you go is a noble path that will raise your name. Please remember what I just said. That's why I wanted to see you.<br>
That's all. Now go up and talk to <font color="LEVEL">Lionel Hunter</font>, who will give you your qualification.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest EvasHiddenSpace endCinematic">Go outside</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Eva's Avatar:<br>
The Goddess of Destruction has finally resurrected! The energy of water continues to be contaminated....<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest EvasHiddenSpace exitInstance">Back</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest EvasHiddenSpace 33686-01.html">Quest</Button>
</body></html>

View File

@@ -0,0 +1,122 @@
/*
* 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 instances.EvasHiddenSpace;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.quest.QuestState;
import instances.AbstractInstance;
import quests.Q10591_NobleMaterial.Q10591_NobleMaterial;
/**
* Eva's Hidden Space instance zone.
* @author Gladicek, St3eT
*/
public class EvasHiddenSpace extends AbstractInstance
{
// NPCs
private static final int EVAS_AVATAR = 33686;
// Misc
private static final int TEMPLATE_ID = 217;
public EvasHiddenSpace()
{
super(TEMPLATE_ID);
addStartNpc(EVAS_AVATAR);
addTalkId(EVAS_AVATAR);
addFirstTalkId(EVAS_AVATAR);
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
String htmltext = null;
if (event.equals("enterInstance"))
{
enterInstance(player, npc, TEMPLATE_ID);
}
else
{
final Instance world = npc.getInstanceWorld();
if (isInInstance(world))
{
switch (event)
{
case "33686-01.html":
case "33686-04.html":
{
htmltext = event;
break;
}
case "inter_quest_10591_NPC33686":
{
final QuestState qs = player.getQuestState(Q10591_NobleMaterial.class.getSimpleName());
if ((qs != null) && qs.isCond(6))
{
qs.setCond(7, true);
htmltext = "33686-02.html";
}
break;
}
case "exitInstance":
{
world.finishInstance(0);
break;
}
case "endCinematic":
{
startQuestTimer("exitInstance", 250, npc, player);
break;
}
}
}
else if (event.equals("exitInstance"))
{
teleportPlayerOut(player, world);
}
}
return htmltext;
}
@Override
public String onFirstTalk(Npc npc, PlayerInstance player)
{
String htmltext = null;
final QuestState qs = player.getQuestState(Q10591_NobleMaterial.class.getSimpleName());
if (qs != null)
{
if (qs.isCond(6))
{
htmltext = "33686.html";
}
else if (qs.isCond(7))
{
htmltext = "33686-03.html";
}
}
return htmltext;
}
public static void main(String[] args)
{
new EvasHiddenSpace();
}
}

View File

@@ -190,8 +190,6 @@
10572 To Expel the Embryo's Forces
10577 Temper a Rusting Blade
10578 The Soul of a Sword
10590 Reawakened Fate
10591 Noble Material
10594 Fergason's Scheme
10595 The Dimensional Warp, Part 8
10596 The Dimensional Warp, Part 9

View File

@@ -0,0 +1,4 @@
<html><body>High Priest Orven:<br>
Welcome. What brings you here?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 30857-02.html">"Explarn what happened so far."</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>High Priest Orven:<br>
A strange energy from hunting vampires? It sounds interesting. Hm... Let's see... I see.<br>
This energy is yours. When you train in the Ertheia training method, sometimes, your current power and your latent power collide. And that was unstable during the fight against a corrupt being, so it was materialized.<br>
This is yours, so you can absorb it. Don't worry. Think of becoming one with this energy.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 30857-03.html">"Absorb the energy."</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>High Priest Orven:<br>
The energy is being absorbed. Stay calm until you completely absorb that energy and it becomes yours. Once you are done, let me know.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>High Priest Orven:<br>
You are now one with that power. Now that that's over, return to <font color="LEVEL">Dual Class Master Joachim</font>.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>High Priest Orven:<br>
You are now one with that power. Now that that's over, return to <font color="LEVEL">Dual Class Master Joachim</font>.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Hm? You defeated vampires and something strange came out? Can I take a look?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34362-02.html">"Show her the Mystenous Energy of Power."</button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Herphah:<br>
I don't think this is from the corrupt body of vampires. I think I have a feeling. But I'm pretty bad at explaining these things.<br>
I'll introduce you to someone who can explain it better.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34362-03.html">"Who's that?"</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
It's <font color="LEVEL">High Priest Orven</font> in the <font color="LEVEL">Temple of Einhasad</font> in the <font color="LEVEL">Town of Aden</font>. I'm sure he'll be able to explain better. Go find him.<br>
The Einhasad Temple is not too far. You can find your way there, right?
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
It's <font color="LEVEL">High Priest Orven</font> in the <font color="LEVEL">Temple of Einhasad</font> in the <font color="LEVEL">Town of Aden</font>. I'm sure he'll be able to explain better. Go find him.<br>
The Einhasad Temple is not too far. You can find your way there, right?
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Black Wizard Lapathia:<br>
Change Isn't always bad, but I'm facing the bad kind of change once again. I'm waiting here helplessly for your help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34414-02.html">"What do you mean?"</button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Black Wizard Lapathia:<br>
Please take a look around. This land is filled with vampires. My revenge of purifying monsters called on other monsters.<br>
But I'm still alive, fortunately. And it seems like you'll be able to help me.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34414-03.html">"True."</button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Black Wizard Lapathia:<br>
Of course. If not why would you have come all the way here, where only blood and monsters are left? Adventurer, please defeat the monsters here in the <font color="LEVEL">Bloody Swampland</font>. These vampires... the <font color="LEVEL">Marsh Vampire Rogue, Marsh Vampire Warrior, Marsh Vampire Wizard, Marsh Vampire Shooter</font>. Defeat them and collect <font color="LEVEL">500 Vampire Fluids</font>.<br>
And Joachim said that you must reach <font color="LEVEL">level 99</font> in this place.<br>
Once you complete the mission, you don't need to come see me. Return to <font color="LEVEL">Dual Class Master Joachim</font>. You don't need me to teleport you, right? This place is filled with vampires anyway Good luck, then
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Black Wizard Lapathia:<br>
Of course. If not why would you have come all the way here, where only blood and monsters are left? Adventurer, please defeat the monsters here in the <font color="LEVEL">Bloody Swampland</font>. These vampires... the <font color="LEVEL">Marsh Vampire Rogue, Marsh Vampire Warrior, Marsh Vampire Wizard, Marsh Vampire Shooter</font>. Defeat them and collect <font color="LEVEL">500 Vampire Fluids</font>.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Dual Class Master Joachim:<br>
Are you ready to hear me out? It's about how to awaken another power hidden within you.....<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34513-02.html">"Go on"</button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Dual Class Master Joachim:<br>
I'm not sure if you are satisfied with your power at the moment. But you have another power hidden within you. It could even surpass your current power.<br>
I'm here to help you awaken that power.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34513-03.html">"What should I do?"</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Dual Class Master Joachim:<br>
In order to awaken that new power, you must get a little stronger. Your current power is not enough.<br>
So please get stronger with the missions I give you.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34513-04.html">"Alright"</button><br>
<font color="LEVEL">(Once you complete this quest, you'll be able to have a dual class. If you are carrying out Split Destiny or Winds of Fate: Encroachiling Shadows when you complete this quest, those quests will be deleted.)</font>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Dual Class Master Joachim:<br>
Then go to the <font color="LEVEL">Bloody Swampland</font> and complete the mission from <font color="LEVEL">Black Wizard Lapathia</font>.<br>
I'll send you there once you are ready.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate teleport">"Teleport"</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Dual Class Master Joachim:<br>
You've completed the growth and collection missions. Is that correct?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34513-06.html">"Yes."</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Dual Class Master Joachim:<br>
I see. Then it's time to move on to the next stage. Can you hand me what you brought?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34513-07.html">"Hand over the Vampire Fluids."</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Dual Class Master Joachim:<br>
Wait, I found this in the item you brought. This isn't a vampire's fluids... Can you ask <font color="LEVEL">Herphah</font> about this item?
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Dual Class Master Joachim:<br>
You are back. Did you find out?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34513-09.html">"Kinda..."</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Dual Class Master Joachim:<br>
You absorbed a new power? So that's possible. No wonder I could feel your power had grown. It looks like you are ready to awaken the new power now.<br>
Pick the reward that suits you and I'll give it to you.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34513-10.html">"Ruby Lv. 2"</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34513-11.html">"Sapphire Lv. 2"</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Dual Class Master Joachim:<br>
You are ready to obtain the power of Dual Class. The mission is completed, but you will need me to add a dual class.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34513-12.html">"On with a dual class!"</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Dual Class Master Joachim:<br>
You are ready to obtain the power of Dual Class. The mission is completed, but you will need me to add a dual class.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34513-12.html">"On with a dual class!"</button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Dual Class Master Joachim:<br>
A dual class lets you select another class besides your main class and to raise them to the same level.<br>
There are restrictions to what types of classes you can select, though. Do you want to see if you meet the conditions?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10590_ReawakenedFate 34513-13.html">"Yes, on with a dual class!"</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Dual Class Master Joachim:<br>
You already have a dual class, so you can't add another dual class.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Dual Class Master Joachim:<br>
Then go to the <font color="LEVEL">Bloody Swampland</font> and complete the mission from <font color="LEVEL">Black Wizard Lapathia</font>.<br>
I'll send you there once you are ready.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Dual Class Master Joachim:<br>
this quest is run at level 95+ and the quest Where Fates Intersect must be completed
</body></html>

View File

@@ -0,0 +1,314 @@
/*
* 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.Q10590_ReawakenedFate;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.QuestSound;
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.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.util.Util;
import quests.Q10589_WhereFatesIntersect.Q10589_WhereFatesIntersect;
/**
* Q10590_ReawakenedFate
* @URL https://www.youtube.com/watch?v=HCd784Gnguw
* @author NightBR
*/
public class Q10590_ReawakenedFate extends Quest
{
// NPCs
private static final int JOACHIM = 34513;
private static final int RAFLASIA = 34414;
private static final int HERPA = 34362;
private static final int ORWEN = 30857;
private static final int[] MONSTERS =
{
24457, // Swamp Vampire Rogue
24458, // Swamp Vampire Warrior
24459, // Swamp Vampire Wizard
24460 // Swamp Vampire Shooter
};
// Item
private static final int IHOR_VAMPIRE = 80854; // Ihor Vampire - monster drop
// Rewards
private static final long EXP = 1;
private static final int SP = 1;
private static final int ADENA_AMOUNT = 5050;
private static final int ACHIEVEMENT_BOX = 80909;
private static final int RUBIN_LV2 = 38856;
private static final int SAPPHIRE_LV2 = 38928;
// Misc
private static final int MIN_LEVEL = 99;
// Location
private static final Location ALTAR_OF_EVIL = new Location(-14467, 44242, -3673);
public Q10590_ReawakenedFate()
{
super(10590);
addStartNpc(JOACHIM);
addTalkId(JOACHIM, RAFLASIA, HERPA, ORWEN);
addKillId(MONSTERS);
registerQuestItems(IHOR_VAMPIRE);
addCondMinLevel(95, "34513-16.html");
addCondCompletedQuest(Q10589_WhereFatesIntersect.class.getSimpleName(), "34513-16.html");
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "34513-02.html":
case "34513-04.html":
case "34513-07.html":
case "34362-03.html":
case "30857-03.html":
case "34513-09.html":
case "34513-12.html":
case "34513-13.html":
{
htmltext = event;
break;
}
case "34513-03.html":
{
qs.startQuest();
htmltext = event;
break;
}
case "teleport":
{
if (qs.isCond(1))
{
player.teleToLocation(ALTAR_OF_EVIL);
}
break;
}
case "34414-02.html":
{
qs.setCond(2, true);
htmltext = event;
break;
}
case "34513-06.html":
{
qs.setCond(4, true);
htmltext = event;
break;
}
case "34362-02.html":
{
qs.setCond(5, true);
htmltext = event;
break;
}
case "30857-02.html":
{
qs.setCond(6, true);
htmltext = event;
break;
}
case "30857-04.html":
{
if (qs.isCond(6))
{
qs.setCond(7, true);
}
htmltext = event;
break;
}
case "34513-10.html":
{
if (qs.isCond(7))
{
if (player.getLevel() >= MIN_LEVEL)
{
// Reward №1
addExpAndSp(player, EXP, SP);
giveAdena(player, ADENA_AMOUNT, false);
giveItems(player, ACHIEVEMENT_BOX, 1);
giveItems(player, RUBIN_LV2, 1);
showOnScreenMsg(player, NpcStringId.YOU_ARE_READY_TO_ADD_A_DUAL_CLASS_NTALK_TO_THE_DUAL_CLASS_MASTER, ExShowScreenMessage.TOP_CENTER, 10000);
qs.exitQuest(false, true);
htmltext = event;
}
break;
}
}
case "34513-11.html":
{
if (qs.isCond(7))
{
if (player.getLevel() >= MIN_LEVEL)
{
// Reward №2
addExpAndSp(player, EXP, SP);
giveAdena(player, ADENA_AMOUNT, false);
giveItems(player, ACHIEVEMENT_BOX, 1);
giveItems(player, SAPPHIRE_LV2, 1);
showOnScreenMsg(player, NpcStringId.YOU_ARE_READY_TO_ADD_A_DUAL_CLASS_NTALK_TO_THE_DUAL_CLASS_MASTER, ExShowScreenMessage.TOP_CENTER, 10000);
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:
{
if (npc.getId() == JOACHIM)
{
htmltext = "34513-01.html";
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case JOACHIM:
{
if (qs.isCond(1))
{
htmltext = "34513-03.html";
}
else if (qs.isCond(2))
{
htmltext = "34513-15.html";
}
else if (qs.isCond(3))
{
htmltext = "34513-05.html";
}
else if (qs.isCond(4))
{
htmltext = "34513-07.html";
}
else if (qs.isCond(7))
{
htmltext = "34513-08.html";
}
break;
}
case RAFLASIA:
{
if (qs.isCond(1))
{
htmltext = "34414-01.html";
}
else if (qs.isCond(2))
{
htmltext = "34414-03.html";
}
else if (qs.isCond(3))
{
htmltext = "34414-04.html";
}
break;
}
case HERPA:
{
if (qs.isCond(4))
{
htmltext = "34362-01.html";
}
else if (qs.isCond(5))
{
htmltext = "34362-04.html";
}
break;
}
case ORWEN:
{
if (qs.isCond(5))
{
htmltext = "30857-01.html";
}
else if (qs.isCond(6))
{
qs.setCond(7, true);
htmltext = "30857-04.html";
}
else if (qs.isCond(7))
{
htmltext = "30857-05.html";
}
break;
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2) && Util.checkIfInRange(Config.ALT_PARTY_RANGE, npc, player, false))
{
if ((getQuestItemsCount(player, IHOR_VAMPIRE) < 500) && (getRandom(100) < 90))
{
giveItems(player, IHOR_VAMPIRE, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
if ((getQuestItemsCount(player, IHOR_VAMPIRE) >= 500) && (player.getLevel() >= MIN_LEVEL))
{
qs.setCond(3, true);
}
}
}
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
executeForEachPlayer(killer, npc, isSummon, true, false);
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -0,0 +1,4 @@
<html><body>Eva's Knight Lionel Hunter:<br>
I've heard about you. You've done so much that even I heard about you. I know that your good deeds have helped many people.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial 33907-02.html">"I'm flattered."</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Eva's Knight Lionel Hunter:<br>
The mission you've done this time is about to end as well. There's one last person you must meet. I will be introducing you to that person. Go now.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial 33907-03.html">"Who's that?"</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Eva's Knight Lionel Hunter:<br>
You will see when you go. We'll talk after.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest EvasHiddenSpace enterInstance">"Teleport"</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Eva's Knight Lionel Hunter:<br>
Alright I'll prove your qualification. First, choose the reward that suits you. Once you select the reward, I'll give you the qualification for that.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial 33907-05.html">"+5 Circlet of Authority Box - Attack Type"</button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial 33907-06.html">"+5 Circlet of Foresight Box - Magic Type"</button><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial 33907-07.html">"+5 Circlet of Grace Box - Defense Type"</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Eva's Knight Lionel Hunter:<br>
Great job. Your mission doesn't end here, but I hope you take a break.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Eva's Knight Lionel Hunter:<br>
Great job. Your mission doesn't end here, but I hope you take a break.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Eva's Knight Lionel Hunter:<br>
Great job. Your mission doesn't end here, but I hope you take a break.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Harp Zu Hestui:<br>
Your energy tells me you are not a bad person! Then you must have come to prove your qualification. I've been waiting for you.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial 34014-02.html">"What do you mean?"</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Harp Zu Hestui:<br>
You'll be able to grow in the Blazing Swamp. Please defeat the monsters there.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial 34014-03.html">"Alright."</button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Harp Zu Hestui:<br>
You mission is to defeat the monsters in the <font color="LEVEL">Blazing Swamp</font>. Defeat the <font color="LEVEL">Magma Allith, Lava Wyrm, Lava Drake, Lava Wendigo, Lava Stone Golem, Lava Leviah, Magma Salamander, Magma Dre Vanul, Flame Preta, Flame Crow, Flame Rael, Flame Salamander, Flame Drake, Flame Votis</font>. And collect <font color="LEVEL">1000 Hot Energy.</font>.<br>
And you must also reach <font color="LEVEL">level 100</font>.<br>
Once you complete the mission, you can return to Dual Class Master Joachim!
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
You've done very well. I think I can prove your qualification right away.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial 34362-02.html">"Thank you."</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
Unfortunately, proving that qualification and the power that you gain through that is not something I can give you. I can only introduce you to someone who can do that.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial 34362-03.html">"Who's that?"</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Herphah:<br>
That's <font color="LEVEL">Eva's Knight Lionel Hunter</font> in <font color="LEVEL">Heine</font>. Go and prove your qualification to that man.
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial teleport_s">"Teleport"</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Dual Class Master Joachim:<br>
You have the final growth mission and the talk about how to obtain a special qualification.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial 34513-02.htm">"Go on"</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Dual Class Master Joachim:<br>
You are already qualified to carry out the mission to become the noble one thanks to the missions you've already completed.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial 34513-03.htm">"What should I do?"</button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Dual Class Master Joachim:<br>
Please get a little stronger to be qualified.<br>
And you must complete the mission I give you.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial 34513-04.htm">"Alright"</button><br>
<font color="LEVEL">(Once you complete this quest, you'll become a Noblesse. If the quest Noblesse, Soul Testing is in progress when you comlete this quest, that quest will be deleted.)</font>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Dual Class Master Joachim:<br>
Please carry out the following mission to prove that you are qualified to become a noble one.<br>
Go to <font color="LEVEL">Blazing Swamp</font> to train and hunt, and complete the mission from <font color="LEVEL">Harp Zu Hestul</font>.<br>
I'll send you there once you are ready.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial teleport">"Teleport"</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Dual Class Master Joachim:<br>
You've completed the growth and collection missions. Is that correct?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial 34513-06.html">"Yes."</button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Dual Class Master Joachim:<br>
I see. Then it's time to move on to the next stage. Can you hand me what you brought?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial 34513-07.html">"Hand over the Energy."</button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Dual Class Master Joachim:<br>
Good, This is it for me. Now please talk to <font color="LEVEL">Herphah</font> She's next to me.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Dual Class Master Joachim:<br>
Then go to the <font color="LEVEL">Bloody Swampland</font> and complete the mission from <font color="LEVEL">Black Wizard Lapathia</font>.<br>
I'll send you there once you are ready.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Dual Class Master Joachim:<br>
this quest is run at level 95+ and the quest Where Fates Intersect must be completed
</body></html>

View File

@@ -0,0 +1,336 @@
/*
* 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.Q10591_NobleMaterial;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.QuestSound;
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.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.util.Util;
import quests.Q10590_ReawakenedFate.Q10590_ReawakenedFate;
/**
* Q10591_NobleMaterial
* @URL https://www.youtube.com/watch?v=HCd784Gnguw
* @author NightBR
*/
public class Q10591_NobleMaterial extends Quest
{
// NPCs
private static final int JOACHIM = 34513;
private static final int HARP_ZU_HESTUI = 34014;
private static final int HERPA = 34362;
private static final int LIONEL_HUNTER = 33907;
private static final int[] MONSTERS =
{
23487, // Magma Ailith
23489, // Lava Wyrm
23490, // Lava Drake
23491, // Lava Wendigo
23492, // Lavastone Golem
23493, // Lava Leviah
23494, // Magma Salamander
23495, // Magma Dre Vanul
23499, // Flame Preta
23500, // Flame Crow
23501, // Flame Rael
23502, // Flame Salamander
23503, // Flame Drake
23504 // Flame Votis
};
// Item
private static final int FLAME_ENERGY = 80856; // Flame Energy - monster drop
// Rewards
private static final long EXP = 1;
private static final int SP = 1;
private static final int ADENA_AMOUNT = 5050;
private static final int ACHIEVEMENT_BOX_LV_100 = 80910;
private static final int ACQUIRE_NOBLESSE_PRIVILEGES = 34983;
private static final int WARRIOR_CICLET_BOX_LV5 = 80911;
private static final int WIZARD_CICLET_BOX_LV5 = 80912;
private static final int KNIGHT_CICLET_BOX_LV5 = 80913;
// Misc
private static final int MIN_LEVEL = 100;
// Location
private static final Location BURNING_MARSH = new Location(152754, -15142, -4400);
private static final Location HEIN = new Location(111257, 221071, -3550);
public Q10591_NobleMaterial()
{
super(10591);
addStartNpc(JOACHIM);
addTalkId(JOACHIM, HARP_ZU_HESTUI, HERPA, LIONEL_HUNTER);
addKillId(MONSTERS);
registerQuestItems(FLAME_ENERGY);
addCondMinLevel(99, "34513-16.html");
addCondCompletedQuest(Q10590_ReawakenedFate.class.getSimpleName(), "34513-16.html");
}
@Override
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "34513-02.htm":
case "34513-07.html":
case "34513-04.html":
case "34014-03.html":
case "34362-03.html":
case "33907-03.html":
{
htmltext = event;
break;
}
case "34513-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "teleport":
{
if (qs.isCond(1))
{
player.teleToLocation(BURNING_MARSH);
}
break;
}
case "34014-02.html":
{
qs.setCond(2, true);
htmltext = event;
break;
}
case "34513-06.html":
{
qs.setCond(4, true);
htmltext = event;
break;
}
case "34362-02.html":
{
qs.setCond(5, true);
htmltext = event;
break;
}
case "teleport_s":
{
if (qs.isCond(5))
{
player.teleToLocation(HEIN);
}
break;
}
case "33907-02.html":
{
qs.setCond(6, true);
htmltext = event;
break;
}
case "33907-05.html":
{
if (qs.isCond(7))
{
if (player.getLevel() >= MIN_LEVEL)
{
// Reward №1
addExpAndSp(player, EXP, SP);
giveAdena(player, ADENA_AMOUNT, false);
giveItems(player, ACHIEVEMENT_BOX_LV_100, 1);
giveItems(player, ACQUIRE_NOBLESSE_PRIVILEGES, 1);
giveItems(player, WARRIOR_CICLET_BOX_LV5, 1);
showOnScreenMsg(player, NpcStringId.CONGRATULATIONS_YOU_ARE_NOW_A_NOBLESSE, ExShowScreenMessage.TOP_CENTER, 10000);
qs.exitQuest(false, true);
htmltext = event;
}
break;
}
}
case "33907-06.html":
{
if (qs.isCond(7))
{
if (player.getLevel() >= MIN_LEVEL)
{
// Reward №2
addExpAndSp(player, EXP, SP);
giveAdena(player, ADENA_AMOUNT, false);
giveItems(player, ACHIEVEMENT_BOX_LV_100, 1);
giveItems(player, ACQUIRE_NOBLESSE_PRIVILEGES, 1);
giveItems(player, WIZARD_CICLET_BOX_LV5, 1);
showOnScreenMsg(player, NpcStringId.CONGRATULATIONS_YOU_ARE_NOW_A_NOBLESSE, ExShowScreenMessage.TOP_CENTER, 10000);
qs.exitQuest(false, true);
htmltext = event;
}
break;
}
}
case "33907-07.html":
{
if (qs.isCond(7))
{
if (player.getLevel() >= MIN_LEVEL)
{
// Reward №3
addExpAndSp(player, EXP, SP);
giveAdena(player, ADENA_AMOUNT, false);
giveItems(player, ACHIEVEMENT_BOX_LV_100, 1);
giveItems(player, ACQUIRE_NOBLESSE_PRIVILEGES, 1);
giveItems(player, KNIGHT_CICLET_BOX_LV5, 1);
showOnScreenMsg(player, NpcStringId.CONGRATULATIONS_YOU_ARE_NOW_A_NOBLESSE, ExShowScreenMessage.TOP_CENTER, 10000);
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:
{
if (npc.getId() == JOACHIM)
{
htmltext = "34513-01.htm";
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case JOACHIM:
{
if (qs.isCond(1))
{
htmltext = "34513-04.htm";
}
else if (qs.isCond(2))
{
htmltext = "34513-15.html";
}
else if (qs.isCond(3))
{
htmltext = "34513-05.html";
}
else if (qs.isCond(4))
{
htmltext = "34513-07.html";
}
break;
}
case HARP_ZU_HESTUI:
{
if (qs.isCond(1))
{
htmltext = "34014-01.html";
}
else if (qs.isCond(2))
{
htmltext = "34014-03.html";
}
break;
}
case HERPA:
{
if (qs.isCond(4))
{
htmltext = "34362-01.html";
}
else if (qs.isCond(5))
{
htmltext = "34362-03.html";
}
break;
}
case LIONEL_HUNTER:
{
if (qs.isCond(5))
{
htmltext = "33907-01.html";
}
else if (qs.isCond(6))
{
htmltext = "33907-03.html";
}
else if (qs.isCond(7))
{
htmltext = "33907-04.html";
}
break;
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
@Override
public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2) && Util.checkIfInRange(Config.ALT_PARTY_RANGE, npc, player, false))
{
if ((getQuestItemsCount(player, FLAME_ENERGY) < 10) && (getRandom(100) < 90))
{
giveItems(player, FLAME_ENERGY, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
if ((getQuestItemsCount(player, FLAME_ENERGY) >= 10) && (player.getLevel() >= MIN_LEVEL))
{
qs.setCond(3, true);
}
}
}
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
executeForEachPlayer(killer, npc, isSummon, true, false);
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -128,6 +128,8 @@ import quests.Q10577_TemperARustingBlade.Q10577_TemperARustingBlade;
import quests.Q10578_TheSoulOfASword.Q10578_TheSoulOfASword;
import quests.Q10579_ContainingTheAttributePower.Q10579_ContainingTheAttributePower;
import quests.Q10589_WhereFatesIntersect.Q10589_WhereFatesIntersect;
import quests.Q10590_ReawakenedFate.Q10590_ReawakenedFate;
import quests.Q10591_NobleMaterial.Q10591_NobleMaterial;
import quests.Q10658_MakkumInTheDimension.Q10658_MakkumInTheDimension;
import quests.Q10701_TheRoadToDestruction.Q10701_TheRoadToDestruction;
import quests.Q10702_TheRoadToInfinity.Q10702_TheRoadToInfinity;
@@ -417,8 +419,8 @@ public class QuestMasterHandler
Q10578_TheSoulOfASword.class,
Q10579_ContainingTheAttributePower.class,
Q10589_WhereFatesIntersect.class,
Q10590_ReawakenedFate.class, // TODO: Not done.
Q10591_NobleMaterial.class, // TODO: Not done.
Q10590_ReawakenedFate.class,
Q10591_NobleMaterial.class,
Q10594_FergasonsScheme.class, // TODO: Not done.
Q10595_TheDimensionalWarpPart8.class, // TODO: Not done.
Q10596_TheDimensionalWarpPart9.class, // TODO: Not done.

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 Q10590_ReawakenedFate extends Quest
{
private static final int START_NPC = 34513;
public Q10590_ReawakenedFate()
{
super(10590);
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 Q10591_NobleMaterial extends Quest
{
private static final int START_NPC = 34513;
public Q10591_NobleMaterial()
{
super(10591);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}