Reawakened Fate (10590) improvements.

Contributed by NightBR.
This commit is contained in:
MobiusDevelopment 2019-12-05 23:37:25 +00:00
parent 341e60ea27
commit f1432a6a09
8 changed files with 102 additions and 58 deletions

View File

@ -1,3 +1,4 @@
<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>.
Please defeat the monsters here in the <font color="LEVEL">Bloody Swampland</font>. 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>. You must alse 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.<br>
</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.htm">"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.htm">"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.htm">"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

@ -1,4 +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.
You must complete the following mission to awaken the new power. Go to the <font color="LEVEL">Bloody Swampland</font> and complete de 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 are not qualified for this mission.<br>
(Only characters level 95 or higher who have completed the quest Where Fates Intersect can carry out this mission.)
</body></html>

View File

@ -16,11 +16,15 @@
*/
package quests.Q10590_ReawakenedFate;
import java.util.HashSet;
import java.util.Set;
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.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;
@ -31,46 +35,45 @@ import org.l2jmobius.gameserver.util.Util;
import quests.Q10589_WhereFatesIntersect.Q10589_WhereFatesIntersect;
/**
* Q10590_ReawakenedFate
* @URL https://www.youtube.com/watch?v=HCd784Gnguw
* @author NightBR
* Reawakened Fate (10590)
* @URL https://l2wiki.com/Reawakened_Fate
* @author Dmitri
* @author NightBR (fixes and standardization)
*/
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 LAPATHIA = 34414;
private static final int HERPHAH = 34362;
private static final int ORVEN = 30857;
private static final int[] MONSTERS =
{
24457, // Swamp Vampire Rogue
24458, // Swamp Vampire Warrior
24459, // Swamp Vampire Wizard
24460 // Swamp Vampire Shooter
24457, // Marsh Vampire Rogue
24458, // Marsh Vampire Warrior
24459, // Marsh Vampire Wizard
24460 // Marsh Vampire Shooter
};
// Item
private static final int IHOR_VAMPIRE = 80854; // Ihor Vampire - monster drop
private static final int VAMPIRE_ICHOR = 80854; // Vampire Ichor - 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;
private static final int MIN_LEVEL = 95;
private static final int REACH_LV_99 = NpcStringId.REACH_LV_99.getId();
// Location
private static final Location ALTAR_OF_EVIL = new Location(-14467, 44242, -3673);
private static final Location BLOODY_SWAMPLAND = new Location(-14467, 44242, -3673);
public Q10590_ReawakenedFate()
{
super(10590);
addStartNpc(JOACHIM);
addTalkId(JOACHIM, RAFLASIA, HERPA, ORWEN);
addTalkId(JOACHIM, LAPATHIA, HERPHAH, ORVEN);
addKillId(MONSTERS);
registerQuestItems(IHOR_VAMPIRE);
addCondMinLevel(95, "34513-16.html");
registerQuestItems(VAMPIRE_ICHOR);
addCondMinLevel(MIN_LEVEL, "34513-16.html");
addCondCompletedQuest(Q10589_WhereFatesIntersect.class.getSimpleName(), "34513-16.html");
}
@ -87,19 +90,18 @@ public class Q10590_ReawakenedFate extends Quest
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-02.htm":
case "34513-03.htm":
case "34513-06.html":
case "34414-02.html":
case "34362-02.html":
case "30857-02.html":
case "34513-09.html":
case "34513-12.html":
case "34513-13.html":
{
htmltext = event;
break;
}
case "34513-03.html":
case "34513-04.htm":
{
qs.startQuest();
htmltext = event;
@ -109,52 +111,42 @@ public class Q10590_ReawakenedFate extends Quest
{
if (qs.isCond(1))
{
player.teleToLocation(ALTAR_OF_EVIL);
player.teleToLocation(BLOODY_SWAMPLAND); // Teleport to Bloody Swampland near npc Lapathia
}
break;
}
case "34414-02.html":
case "34414-03.html":
{
qs.setCond(2, true);
htmltext = event;
break;
}
case "34513-06.html":
case "34513-07.html":
{
qs.setCond(4, true);
htmltext = event;
break;
}
case "34362-02.html":
case "34362-03.html":
{
qs.setCond(5, true);
htmltext = event;
break;
}
case "30857-02.html":
case "30857-03.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)
if (player.getLevel() >= 99)
{
// Reward 1
addExpAndSp(player, EXP, SP);
giveAdena(player, ADENA_AMOUNT, false);
takeItems(player, VAMPIRE_ICHOR, -1);
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);
@ -168,11 +160,10 @@ public class Q10590_ReawakenedFate extends Quest
{
if (qs.isCond(7))
{
if (player.getLevel() >= MIN_LEVEL)
if (player.getLevel() >= 99)
{
// Reward 2
addExpAndSp(player, EXP, SP);
giveAdena(player, ADENA_AMOUNT, false);
takeItems(player, VAMPIRE_ICHOR, -1);
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);
@ -182,6 +173,15 @@ public class Q10590_ReawakenedFate extends Quest
break;
}
}
case "34513-12.html":
{
if (player.hasDualClass())
{
htmltext = "34513-13.html";
}
// TODO: We need info about what to do, when player does not have dual class yet.
// else {}
}
}
return htmltext;
}
@ -198,7 +198,7 @@ public class Q10590_ReawakenedFate extends Quest
{
if (npc.getId() == JOACHIM)
{
htmltext = "34513-01.html";
htmltext = "34513-01.htm";
}
break;
}
@ -210,7 +210,7 @@ public class Q10590_ReawakenedFate extends Quest
{
if (qs.isCond(1))
{
htmltext = "34513-03.html";
htmltext = "34513-03.htm";
}
else if (qs.isCond(2))
{
@ -230,7 +230,7 @@ public class Q10590_ReawakenedFate extends Quest
}
break;
}
case RAFLASIA:
case LAPATHIA:
{
if (qs.isCond(1))
{
@ -246,7 +246,7 @@ public class Q10590_ReawakenedFate extends Quest
}
break;
}
case HERPA:
case HERPHAH:
{
if (qs.isCond(4))
{
@ -258,7 +258,7 @@ public class Q10590_ReawakenedFate extends Quest
}
break;
}
case ORWEN:
case ORVEN:
{
if (qs.isCond(5))
{
@ -293,15 +293,16 @@ public class Q10590_ReawakenedFate extends Quest
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))
if ((getQuestItemsCount(player, VAMPIRE_ICHOR) < 500) && (getRandom(100) < 90))
{
giveItems(player, IHOR_VAMPIRE, 1);
giveItems(player, VAMPIRE_ICHOR, 1);
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
if ((getQuestItemsCount(player, IHOR_VAMPIRE) >= 500) && (player.getLevel() >= MIN_LEVEL))
if ((getQuestItemsCount(player, VAMPIRE_ICHOR) >= 500) && (player.getLevel() >= 99))
{
qs.setCond(3, true);
}
sendNpcLogList(player);
}
}
@ -311,4 +312,21 @@ public class Q10590_ReawakenedFate extends Quest
executeForEachPlayer(killer, npc, isSummon, true, false);
return super.onKill(npc, killer, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(2))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
if (player.getLevel() >= 99)
{
holder.add(new NpcLogListHolder(REACH_LV_99, true, 1));
}
return holder;
}
return super.getNpcLogList(player);
}
}