Teleport Cube related additions.

Contributed by Horus.
This commit is contained in:
MobiusDevelopment
2021-08-03 00:17:14 +00:00
parent bcef5c23bd
commit 8cba0d9a54
18 changed files with 194 additions and 78 deletions

View File

@@ -23,17 +23,22 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.quest.QuestState;
import quests.Q10589_WhereFatesIntersect.Q10589_WhereFatesIntersect;
import quests.Q10590_ReawakenedFate.Q10590_ReawakenedFate;
import quests.Q10591_NobleMaterial.Q10591_NobleMaterial;
import quests.Q11024_PathOfDestinyBeginning.Q11024_PathOfDestinyBeginning;
import quests.Q11025_PathOfDestinyProving.Q11025_PathOfDestinyProving;
import quests.Q11026_PathOfDestinyConviction.Q11026_PathOfDestinyConviction;
import quests.Q11027_PathOfDestinyOvercome.Q11027_PathOfDestinyOvercome;
/**
* @author Nasseka
* @author Nasseka, Horus
*/
public class TeleportCube implements IItemHandler
{
private static final Location TARTI_TELEPORT = new Location(-14180, 123840, -3120);
private static final Location HERPHAH_TELEPORT = new Location(146532, 26802, -2208);
private static final Location JOACHIM_TELEPORT = new Location(146524, 26722, -2208);
private static final Location SILVAN_TELEPORT = new Location(-19353, 136854, -3760);
private static final Location KALLESIN_TELEPORT = new Location(-41314, 122982, -2904);
private static final Location ZENATH_TELEPORT = new Location(-46159, 109438, -3808);
@@ -58,12 +63,17 @@ public class TeleportCube implements IItemHandler
private static final Location QS3_TELEPORT6 = new Location(-88533, 104054, -3416);
private static final Location QS3_TELEPORT7 = new Location(-78669, 251000, -2971);
private static final Location QS3_TELEPORT8 = new Location(-14180, 123840, -3120);
private static final Location QS4_TELEPORT1 = new Location(-14088, 22168, -3621);
private static final Location QS5_TELEPORT1 = new Location(-14218, 44794, -3595);
private static final Location QS5_TELEPORT2 = new Location(147452, 22715, -1995);
private static final Location QS5_TELEPORT3 = new Location(146524, 26722, -2208);
private static final Location QS6_TELEPORT1 = new Location(111257, 221071, -3550);
@Override
public boolean useItem(Playable playable, ItemInstance item, boolean forceUse)
{
final PlayerInstance player = playable.getActingPlayer();
if (!playable.isPlayer())
if (player == null)
{
return false;
}
@@ -72,7 +82,16 @@ public class TeleportCube implements IItemHandler
final QuestState qs11025 = player.getQuestState(Q11025_PathOfDestinyProving.class.getSimpleName());
final QuestState qs11026 = player.getQuestState(Q11026_PathOfDestinyConviction.class.getSimpleName());
final QuestState qs11027 = player.getQuestState(Q11027_PathOfDestinyOvercome.class.getSimpleName());
if (((qs11024 == null) || qs11024.isCond(0)) && ((qs11025 == null) || qs11025.isCond(0)) && ((qs11026 == null) || qs11026.isCond(0)) && ((qs11027 == null) || qs11027.isCond(0)))
final QuestState qs10589 = player.getQuestState(Q10589_WhereFatesIntersect.class.getSimpleName());
final QuestState qs10590 = player.getQuestState(Q10590_ReawakenedFate.class.getSimpleName());
final QuestState qs10591 = player.getQuestState(Q10591_NobleMaterial.class.getSimpleName());
if (((qs11024 == null) || qs11024.isCond(0)) //
&& ((qs11025 == null) || qs11025.isCond(0)) //
&& ((qs11026 == null) || qs11026.isCond(0)) //
&& ((qs11027 == null) || qs11027.isCond(0)) //
&& ((qs10589 == null) || qs10589.isCond(0)) //
&& ((qs10590 == null) || qs10590.isCond(0)) //
&& ((qs10591 == null) || qs10591.isCond(0)))
{
return false;
}
@@ -252,6 +271,71 @@ public class TeleportCube implements IItemHandler
}
}
if (qs10589 != null)
{
switch (qs10589.getCond())
{
case 2:
case 3:
{
player.teleToLocation(QS4_TELEPORT1);
return true;
}
case 4:
{
player.teleToLocation(HERPHAH_TELEPORT);
return true;
}
}
}
if (qs10590 != null)
{
switch (qs10590.getCond())
{
case 1:
case 2:
{
player.teleToLocation(QS5_TELEPORT1);
return true;
}
case 3:
{
player.teleToLocation(JOACHIM_TELEPORT);
return true;
}
case 5:
{
player.teleToLocation(QS5_TELEPORT2);
return true;
}
case 7:
{
player.teleToLocation(QS5_TELEPORT3);
return true;
}
}
}
if (qs10591 != null)
{
switch (qs10591.getCond())
{
case 1:
case 2:
case 3:
{
player.teleToLocation(JOACHIM_TELEPORT);
return true;
}
case 5:
{
player.teleToLocation(QS6_TELEPORT1);
return true;
}
}
}
return false;
}
}

View File

@@ -25,7 +25,6 @@ import org.l2jmobius.gameserver.enums.QuestType;
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.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
@@ -56,7 +55,6 @@ public class Q10589_WhereFatesIntersect extends Quest
};
// Items
private static final int MONSTER_DROP = 80853; // Undead Blood
private static final ItemHolder SOE_HERPHAH = new ItemHolder(80857, 1); // Scroll of Escape: Herphah
// Misc
private static final int REQUIRED_DROP_COUNT = 200;
private static final int KILLING_NPCSTRING_ID1 = NpcStringId.LV_85_WHERE_FATES_INTERSECT_IN_PROGRESS.getId();
@@ -269,7 +267,6 @@ public class Q10589_WhereFatesIntersect extends Quest
if ((getQuestItemsCount(player, MONSTER_DROP) >= REQUIRED_DROP_COUNT) && (player.getLevel() >= 95))
{
qs.setCond(FINISH_COND, true);
giveItems(player, SOE_HERPHAH);
}
sendNpcLogList(player);
}

View File

@@ -24,7 +24,6 @@ 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.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
@@ -57,7 +56,6 @@ public class Q10590_ReawakenedFate extends Quest
};
// Items
private static final int VAMPIRE_ICHOR = 80854; // Vampire Ichor - monster drop
private static final ItemHolder SOE_JOACHIM = new ItemHolder(80858, 1);
// Rewards
private static final int ACHIEVEMENT_BOX = 80909;
private static final int RUBIN_LV2 = 38856;
@@ -298,7 +296,6 @@ public class Q10590_ReawakenedFate extends Quest
if ((getQuestItemsCount(player, VAMPIRE_ICHOR) >= 500) && (player.getLevel() >= 99))
{
qs.setCond(3, true);
giveItems(player, SOE_JOACHIM);
}
sendNpcLogList(player);
}

View File

@@ -1,4 +1,6 @@
<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.
I'll send you there once you are ready.<br><br><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial teleportWP"><font color="LEVEL">"Teleport to the War-Torn Plains(recommended)"</font></button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial teleportBS">"Teleport to Blasing Swamp"</button>
</body></html>

View File

@@ -67,7 +67,7 @@ public class Q10591_NobleMaterial extends Quest
};
// Items
private static final int FLAME_ENERGY = 80856; // Flame Energy - monster drop
private static final ItemHolder SOE_JOACHIM = new ItemHolder(80858, 1);
private static final ItemHolder TELEPORT_CUBE = new ItemHolder(81875, 1);
// Rewards
private static final int ADENA_AMOUNT = 5050;
private static final int ACHIEVEMENT_BOX_LV_100 = 80910;
@@ -187,6 +187,7 @@ public class Q10591_NobleMaterial extends Quest
giveItems(player, ACHIEVEMENT_BOX_LV_100, 1);
giveItems(player, ACQUIRE_NOBLESSE_PRIVILEGES, 1);
giveItems(player, WARRIOR_CICLET_BOX_LV5, 1);
takeItem(player, TELEPORT_CUBE);
player.setNobleLevel(1);
player.broadcastInfo();
showOnScreenMsg(player, NpcStringId.CONGRATULATIONS_YOU_ARE_NOW_A_NOBLESSE, ExShowScreenMessage.TOP_CENTER, 10000);
@@ -204,6 +205,7 @@ public class Q10591_NobleMaterial extends Quest
giveItems(player, ACHIEVEMENT_BOX_LV_100, 1);
giveItems(player, ACQUIRE_NOBLESSE_PRIVILEGES, 1);
giveItems(player, WIZARD_CICLET_BOX_LV5, 1);
takeItem(player, TELEPORT_CUBE);
player.setNobleLevel(1);
player.broadcastInfo();
showOnScreenMsg(player, NpcStringId.CONGRATULATIONS_YOU_ARE_NOW_A_NOBLESSE, ExShowScreenMessage.TOP_CENTER, 10000);
@@ -221,6 +223,7 @@ public class Q10591_NobleMaterial extends Quest
giveItems(player, ACHIEVEMENT_BOX_LV_100, 1);
giveItems(player, ACQUIRE_NOBLESSE_PRIVILEGES, 1);
giveItems(player, KNIGHT_CICLET_BOX_LV5, 1);
takeItem(player, TELEPORT_CUBE);
player.setNobleLevel(1);
player.broadcastInfo();
showOnScreenMsg(player, NpcStringId.CONGRATULATIONS_YOU_ARE_NOW_A_NOBLESSE, ExShowScreenMessage.TOP_CENTER, 10000);
@@ -363,7 +366,6 @@ public class Q10591_NobleMaterial extends Quest
if ((getQuestItemsCount(player, FLAME_ENERGY) >= 1000) && (player.getLevel() >= MIN_LEVEL))
{
qs.setCond(3, true);
giveItems(player, SOE_JOACHIM);
}
}
}

View File

@@ -34,6 +34,7 @@ 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.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
@@ -60,10 +61,9 @@ public class Q11024_PathOfDestinyBeginning extends Quest
private static final int NASTY_ZOMBIE = 24382;
private static final int NASTY_ZOMBIE_LORD = 24383;
// Items
private static final int SOE_SILVAN = 80678;
private static final int SOE_TARTI = 80677;
private static final int SS_NG_NOVICE = 5789;
private static final int BSS_NG_NOVICE = 5790;
private static final ItemHolder TELEPORT_CUBE = new ItemHolder(81875, 1);
// Locations
private static final Location TRAINING_GROUNDS_TELEPORT = new Location(-17916, 143630, -3904);
private static final Location TRAINING_GROUNDS_TELEPORT2 = new Location(-16744, 140209, -3872);
@@ -106,6 +106,7 @@ public class Q11024_PathOfDestinyBeginning extends Quest
qs.startQuest();
qs.setCond(1, true);
htmltext = event;
giveItems(player, TELEPORT_CUBE);
player.sendPacket(new ExTutorialShowId(9)); // Quest
break;
}
@@ -352,7 +353,6 @@ public class Q11024_PathOfDestinyBeginning extends Quest
{
qs.setCond(4, true);
qs.unset(KILL_COUNT_VAR);
giveItems(killer, SOE_SILVAN, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_SILVAN_IN_YOUR_INVENTORY_NTALK_TO_SILVAN_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -374,7 +374,6 @@ public class Q11024_PathOfDestinyBeginning extends Quest
{
qs.setCond(7, true);
qs.unset(KILL_COUNT_VAR2);
giveItems(killer, SOE_TARTI, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_TARTI_IN_YOUR_INVENTORY_NTALK_TO_TARTI_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}

View File

@@ -68,10 +68,6 @@ public class Q11025_PathOfDestinyProving extends Quest
private static final int RAGING_SPARTOI = 24390;
private static final int SKELETON_WARRIOR_2 = 27528;
private static final int SKELETON_SCOUT_2 = 27529;
// Items
private static final int SOE_KALLESIN = 80679;
private static final int SOE_ZENATH = 80680;
private static final int SOE_TARTI = 80677;
// Quest Item
private static final int WIND_SPIRIT_REALM_RELIC = 39535;
private static final int SECRET_MATERIAL = 80671;
@@ -535,7 +531,6 @@ public class Q11025_PathOfDestinyProving extends Quest
{
giveItems(killer, SECRET_MATERIAL, 1);
qs.setCond(2, true);
giveItems(killer, SOE_KALLESIN, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_KALLESIN_IN_YOUR_INVENTORY_NTALK_TO_KALLESIN_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -558,7 +553,6 @@ public class Q11025_PathOfDestinyProving extends Quest
{
qs.setCond(5, true);
qs.unset(KILL_COUNT_VAR);
giveItems(killer, SOE_ZENATH, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_ZENATH_IN_YOUR_INVENTORY_NTALK_TO_ZENATH_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -577,7 +571,6 @@ public class Q11025_PathOfDestinyProving extends Quest
else if (getQuestItemsCount(killer, BREATH_OF_DEATH) == 14)
{
qs.setCond(8, true);
giveItems(killer, SOE_TARTI, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_TARTI_IN_YOUR_INVENTORY_NTALK_TO_TARTI_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}

View File

@@ -67,9 +67,6 @@ public class Q11026_PathOfDestinyConviction extends Quest
private static final int FUSSY_ARBOR = 24400;
private static final int TINY_WINDIMA = 24401;
private static final int GIANT_WINDIMA = 24402;
// Item
private static final int SOE_TARTI = 80677;
private static final int SOE_PIO = 80681;
// Quest Item
private static final int KAIN_PROPHECY_MACHINE_FRAGMENT = 39538;
private static final int CORRUPTED_ENERGY = 80673;
@@ -533,7 +530,6 @@ public class Q11026_PathOfDestinyConviction extends Quest
{
qs.setCond(2, true);
qs.unset(KILL_COUNT_VAR);
giveItems(killer, SOE_PIO, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_PIO_IN_YOUR_INVENTORY_NTALK_TO_PIO_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -555,7 +551,6 @@ public class Q11026_PathOfDestinyConviction extends Quest
{
qs.setCond(5, true);
qs.unset(KILL_COUNT_VAR2);
giveItems(killer, SOE_PIO, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_PIO_IN_YOUR_INVENTORY_NTALK_TO_PIO_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -575,7 +570,6 @@ public class Q11026_PathOfDestinyConviction extends Quest
if (getQuestItemsCount(killer, CORRUPTED_ENERGY) >= 15)
{
qs.setCond(8, true);
giveItems(killer, SOE_PIO, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_PIO_IN_YOUR_INVENTORY_NTALK_TO_PIO_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -594,7 +588,6 @@ public class Q11026_PathOfDestinyConviction extends Quest
if (getQuestItemsCount(killer, EMBEDDED_SHARD) >= 15)
{
qs.setCond(11, true);
giveItems(killer, SOE_PIO, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_PIO_IN_YOUR_INVENTORY_NTALK_TO_PIO_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -616,7 +609,6 @@ public class Q11026_PathOfDestinyConviction extends Quest
{
qs.setCond(14, true);
qs.unset(KILL_COUNT_VAR3);
giveItems(killer, SOE_TARTI, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_TARTI_IN_YOUR_INVENTORY_NTALK_TO_TARTI_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}

View File

@@ -63,8 +63,6 @@ public class Q11027_PathOfDestinyOvercome extends Quest
// Items
private static final int PROPHECY_MACHINE = 39540;
private static final int ATELIA = 39542;
private static final int SOE_RECLOUS = 80682;
private static final int SOE_TARTI = 80677;
private static final int ORC_EMPOWERING_POTION = 80675;
private static final int KETRA_ORDER = 80676;
// Monsters
@@ -658,7 +656,6 @@ public class Q11027_PathOfDestinyOvercome extends Quest
{
qs.setCond(2, true);
qs.unset(KILL_COUNT_VAR);
giveItems(killer, SOE_RECLOUS, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_RECLOUS_IN_YOUR_INVENTORY_NTALK_TO_RECLOUS_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -680,7 +677,6 @@ public class Q11027_PathOfDestinyOvercome extends Quest
{
qs.setCond(5, true);
qs.unset(KILL_COUNT_VAR2);
giveItems(killer, SOE_RECLOUS, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_RECLOUS_IN_YOUR_INVENTORY_NTALK_TO_RECLOUS_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -699,7 +695,6 @@ public class Q11027_PathOfDestinyOvercome extends Quest
if (getQuestItemsCount(killer, ORC_EMPOWERING_POTION) >= 15)
{
qs.setCond(8, true);
giveItems(killer, SOE_RECLOUS, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_RECLOUS_IN_YOUR_INVENTORY_NTALK_TO_RECLOUS_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -721,7 +716,6 @@ public class Q11027_PathOfDestinyOvercome extends Quest
{
qs.setCond(11, true);
qs.unset(KILL_COUNT_VAR3);
giveItems(killer, SOE_RECLOUS, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_RECLOUS_IN_YOUR_INVENTORY_NTALK_TO_RECLOUS_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -740,7 +734,6 @@ public class Q11027_PathOfDestinyOvercome extends Quest
if (getQuestItemsCount(killer, KETRA_ORDER) >= 15)
{
qs.setCond(14, true);
giveItems(killer, SOE_RECLOUS, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_RECLOUS_IN_YOUR_INVENTORY_NTALK_TO_RECLOUS_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -762,7 +755,6 @@ public class Q11027_PathOfDestinyOvercome extends Quest
{
qs.setCond(17, true);
qs.unset(KILL_COUNT_VAR4);
giveItems(killer, SOE_TARTI, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_TARTI_IN_YOUR_INVENTORY_NTALK_TO_TARTI_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}

View File

@@ -23,17 +23,22 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.quest.QuestState;
import quests.Q10589_WhereFatesIntersect.Q10589_WhereFatesIntersect;
import quests.Q10590_ReawakenedFate.Q10590_ReawakenedFate;
import quests.Q10591_NobleMaterial.Q10591_NobleMaterial;
import quests.Q11024_PathOfDestinyBeginning.Q11024_PathOfDestinyBeginning;
import quests.Q11025_PathOfDestinyProving.Q11025_PathOfDestinyProving;
import quests.Q11026_PathOfDestinyConviction.Q11026_PathOfDestinyConviction;
import quests.Q11027_PathOfDestinyOvercome.Q11027_PathOfDestinyOvercome;
/**
* @author Nasseka
* @author Nasseka, Horus
*/
public class TeleportCube implements IItemHandler
{
private static final Location TARTI_TELEPORT = new Location(-14180, 123840, -3120);
private static final Location HERPHAH_TELEPORT = new Location(146532, 26802, -2208);
private static final Location JOACHIM_TELEPORT = new Location(146524, 26722, -2208);
private static final Location SILVAN_TELEPORT = new Location(-19353, 136854, -3760);
private static final Location KALLESIN_TELEPORT = new Location(-41314, 122982, -2904);
private static final Location ZENATH_TELEPORT = new Location(-46159, 109438, -3808);
@@ -58,12 +63,17 @@ public class TeleportCube implements IItemHandler
private static final Location QS3_TELEPORT6 = new Location(-88533, 104054, -3416);
private static final Location QS3_TELEPORT7 = new Location(-78669, 251000, -2971);
private static final Location QS3_TELEPORT8 = new Location(-14180, 123840, -3120);
private static final Location QS4_TELEPORT1 = new Location(-14088, 22168, -3621);
private static final Location QS5_TELEPORT1 = new Location(-14218, 44794, -3595);
private static final Location QS5_TELEPORT2 = new Location(147452, 22715, -1995);
private static final Location QS5_TELEPORT3 = new Location(146524, 26722, -2208);
private static final Location QS6_TELEPORT1 = new Location(111257, 221071, -3550);
@Override
public boolean useItem(Playable playable, ItemInstance item, boolean forceUse)
{
final PlayerInstance player = playable.getActingPlayer();
if (!playable.isPlayer())
if (player == null)
{
return false;
}
@@ -72,7 +82,16 @@ public class TeleportCube implements IItemHandler
final QuestState qs11025 = player.getQuestState(Q11025_PathOfDestinyProving.class.getSimpleName());
final QuestState qs11026 = player.getQuestState(Q11026_PathOfDestinyConviction.class.getSimpleName());
final QuestState qs11027 = player.getQuestState(Q11027_PathOfDestinyOvercome.class.getSimpleName());
if (((qs11024 == null) || qs11024.isCond(0)) && ((qs11025 == null) || qs11025.isCond(0)) && ((qs11026 == null) || qs11026.isCond(0)) && ((qs11027 == null) || qs11027.isCond(0)))
final QuestState qs10589 = player.getQuestState(Q10589_WhereFatesIntersect.class.getSimpleName());
final QuestState qs10590 = player.getQuestState(Q10590_ReawakenedFate.class.getSimpleName());
final QuestState qs10591 = player.getQuestState(Q10591_NobleMaterial.class.getSimpleName());
if (((qs11024 == null) || qs11024.isCond(0)) //
&& ((qs11025 == null) || qs11025.isCond(0)) //
&& ((qs11026 == null) || qs11026.isCond(0)) //
&& ((qs11027 == null) || qs11027.isCond(0)) //
&& ((qs10589 == null) || qs10589.isCond(0)) //
&& ((qs10590 == null) || qs10590.isCond(0)) //
&& ((qs10591 == null) || qs10591.isCond(0)))
{
return false;
}
@@ -252,6 +271,71 @@ public class TeleportCube implements IItemHandler
}
}
if (qs10589 != null)
{
switch (qs10589.getCond())
{
case 2:
case 3:
{
player.teleToLocation(QS4_TELEPORT1);
return true;
}
case 4:
{
player.teleToLocation(HERPHAH_TELEPORT);
return true;
}
}
}
if (qs10590 != null)
{
switch (qs10590.getCond())
{
case 1:
case 2:
{
player.teleToLocation(QS5_TELEPORT1);
return true;
}
case 3:
{
player.teleToLocation(JOACHIM_TELEPORT);
return true;
}
case 5:
{
player.teleToLocation(QS5_TELEPORT2);
return true;
}
case 7:
{
player.teleToLocation(QS5_TELEPORT3);
return true;
}
}
}
if (qs10591 != null)
{
switch (qs10591.getCond())
{
case 1:
case 2:
case 3:
{
player.teleToLocation(JOACHIM_TELEPORT);
return true;
}
case 5:
{
player.teleToLocation(QS6_TELEPORT1);
return true;
}
}
}
return false;
}
}

View File

@@ -25,7 +25,6 @@ import org.l2jmobius.gameserver.enums.QuestType;
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.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
@@ -56,7 +55,6 @@ public class Q10589_WhereFatesIntersect extends Quest
};
// Items
private static final int MONSTER_DROP = 80853; // Undead Blood
private static final ItemHolder SOE_HERPHAH = new ItemHolder(80857, 1); // Scroll of Escape: Herphah
// Misc
private static final int REQUIRED_DROP_COUNT = 200;
private static final int KILLING_NPCSTRING_ID1 = NpcStringId.LV_85_WHERE_FATES_INTERSECT_IN_PROGRESS.getId();
@@ -269,7 +267,6 @@ public class Q10589_WhereFatesIntersect extends Quest
if ((getQuestItemsCount(player, MONSTER_DROP) >= REQUIRED_DROP_COUNT) && (player.getLevel() >= 95))
{
qs.setCond(FINISH_COND, true);
giveItems(player, SOE_HERPHAH);
}
sendNpcLogList(player);
}

View File

@@ -24,7 +24,6 @@ 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.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
@@ -57,7 +56,6 @@ public class Q10590_ReawakenedFate extends Quest
};
// Items
private static final int VAMPIRE_ICHOR = 80854; // Vampire Ichor - monster drop
private static final ItemHolder SOE_JOACHIM = new ItemHolder(80858, 1);
// Rewards
private static final int ACHIEVEMENT_BOX = 80909;
private static final int RUBIN_LV2 = 38856;
@@ -298,7 +296,6 @@ public class Q10590_ReawakenedFate extends Quest
if ((getQuestItemsCount(player, VAMPIRE_ICHOR) >= 500) && (player.getLevel() >= 99))
{
qs.setCond(3, true);
giveItems(player, SOE_JOACHIM);
}
sendNpcLogList(player);
}

View File

@@ -1,4 +1,6 @@
<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.
I'll send you there once you are ready.<br><br><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial teleportWP"><font color="LEVEL">"Teleport to the War-Torn Plains(recommended)"</font></button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10591_NobleMaterial teleportBS">"Teleport to Blasing Swamp"</button>
</body></html>

View File

@@ -67,7 +67,7 @@ public class Q10591_NobleMaterial extends Quest
};
// Items
private static final int FLAME_ENERGY = 80856; // Flame Energy - monster drop
private static final ItemHolder SOE_JOACHIM = new ItemHolder(80858, 1);
private static final ItemHolder TELEPORT_CUBE = new ItemHolder(81875, 1);
// Rewards
private static final int ADENA_AMOUNT = 5050;
private static final int ACHIEVEMENT_BOX_LV_100 = 80910;
@@ -187,6 +187,7 @@ public class Q10591_NobleMaterial extends Quest
giveItems(player, ACHIEVEMENT_BOX_LV_100, 1);
giveItems(player, ACQUIRE_NOBLESSE_PRIVILEGES, 1);
giveItems(player, WARRIOR_CICLET_BOX_LV5, 1);
takeItem(player, TELEPORT_CUBE);
player.setNobleLevel(1);
player.broadcastInfo();
showOnScreenMsg(player, NpcStringId.CONGRATULATIONS_YOU_ARE_NOW_A_NOBLESSE, ExShowScreenMessage.TOP_CENTER, 10000);
@@ -204,6 +205,7 @@ public class Q10591_NobleMaterial extends Quest
giveItems(player, ACHIEVEMENT_BOX_LV_100, 1);
giveItems(player, ACQUIRE_NOBLESSE_PRIVILEGES, 1);
giveItems(player, WIZARD_CICLET_BOX_LV5, 1);
takeItem(player, TELEPORT_CUBE);
player.setNobleLevel(1);
player.broadcastInfo();
showOnScreenMsg(player, NpcStringId.CONGRATULATIONS_YOU_ARE_NOW_A_NOBLESSE, ExShowScreenMessage.TOP_CENTER, 10000);
@@ -221,6 +223,7 @@ public class Q10591_NobleMaterial extends Quest
giveItems(player, ACHIEVEMENT_BOX_LV_100, 1);
giveItems(player, ACQUIRE_NOBLESSE_PRIVILEGES, 1);
giveItems(player, KNIGHT_CICLET_BOX_LV5, 1);
takeItem(player, TELEPORT_CUBE);
player.setNobleLevel(1);
player.broadcastInfo();
showOnScreenMsg(player, NpcStringId.CONGRATULATIONS_YOU_ARE_NOW_A_NOBLESSE, ExShowScreenMessage.TOP_CENTER, 10000);
@@ -363,7 +366,6 @@ public class Q10591_NobleMaterial extends Quest
if ((getQuestItemsCount(player, FLAME_ENERGY) >= 1000) && (player.getLevel() >= MIN_LEVEL))
{
qs.setCond(3, true);
giveItems(player, SOE_JOACHIM);
}
}
}

View File

@@ -34,6 +34,7 @@ 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.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
@@ -60,10 +61,9 @@ public class Q11024_PathOfDestinyBeginning extends Quest
private static final int NASTY_ZOMBIE = 24382;
private static final int NASTY_ZOMBIE_LORD = 24383;
// Items
private static final int SOE_SILVAN = 80678;
private static final int SOE_TARTI = 80677;
private static final int SS_NG_NOVICE = 5789;
private static final int BSS_NG_NOVICE = 5790;
private static final ItemHolder TELEPORT_CUBE = new ItemHolder(81875, 1);
// Locations
private static final Location TRAINING_GROUNDS_TELEPORT = new Location(-17916, 143630, -3904);
private static final Location TRAINING_GROUNDS_TELEPORT2 = new Location(-16744, 140209, -3872);
@@ -106,6 +106,7 @@ public class Q11024_PathOfDestinyBeginning extends Quest
qs.startQuest();
qs.setCond(1, true);
htmltext = event;
giveItems(player, TELEPORT_CUBE);
player.sendPacket(new ExTutorialShowId(9)); // Quest
break;
}
@@ -352,7 +353,6 @@ public class Q11024_PathOfDestinyBeginning extends Quest
{
qs.setCond(4, true);
qs.unset(KILL_COUNT_VAR);
giveItems(killer, SOE_SILVAN, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_SILVAN_IN_YOUR_INVENTORY_NTALK_TO_SILVAN_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -374,7 +374,6 @@ public class Q11024_PathOfDestinyBeginning extends Quest
{
qs.setCond(7, true);
qs.unset(KILL_COUNT_VAR2);
giveItems(killer, SOE_TARTI, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_TARTI_IN_YOUR_INVENTORY_NTALK_TO_TARTI_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}

View File

@@ -68,10 +68,6 @@ public class Q11025_PathOfDestinyProving extends Quest
private static final int RAGING_SPARTOI = 24390;
private static final int SKELETON_WARRIOR_2 = 27528;
private static final int SKELETON_SCOUT_2 = 27529;
// Items
private static final int SOE_KALLESIN = 80679;
private static final int SOE_ZENATH = 80680;
private static final int SOE_TARTI = 80677;
// Quest Item
private static final int WIND_SPIRIT_REALM_RELIC = 39535;
private static final int SECRET_MATERIAL = 80671;
@@ -535,7 +531,6 @@ public class Q11025_PathOfDestinyProving extends Quest
{
giveItems(killer, SECRET_MATERIAL, 1);
qs.setCond(2, true);
giveItems(killer, SOE_KALLESIN, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_KALLESIN_IN_YOUR_INVENTORY_NTALK_TO_KALLESIN_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -558,7 +553,6 @@ public class Q11025_PathOfDestinyProving extends Quest
{
qs.setCond(5, true);
qs.unset(KILL_COUNT_VAR);
giveItems(killer, SOE_ZENATH, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_ZENATH_IN_YOUR_INVENTORY_NTALK_TO_ZENATH_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -577,7 +571,6 @@ public class Q11025_PathOfDestinyProving extends Quest
else if (getQuestItemsCount(killer, BREATH_OF_DEATH) == 14)
{
qs.setCond(8, true);
giveItems(killer, SOE_TARTI, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_TARTI_IN_YOUR_INVENTORY_NTALK_TO_TARTI_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}

View File

@@ -67,9 +67,6 @@ public class Q11026_PathOfDestinyConviction extends Quest
private static final int FUSSY_ARBOR = 24400;
private static final int TINY_WINDIMA = 24401;
private static final int GIANT_WINDIMA = 24402;
// Item
private static final int SOE_TARTI = 80677;
private static final int SOE_PIO = 80681;
// Quest Item
private static final int KAIN_PROPHECY_MACHINE_FRAGMENT = 39538;
private static final int CORRUPTED_ENERGY = 80673;
@@ -533,7 +530,6 @@ public class Q11026_PathOfDestinyConviction extends Quest
{
qs.setCond(2, true);
qs.unset(KILL_COUNT_VAR);
giveItems(killer, SOE_PIO, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_PIO_IN_YOUR_INVENTORY_NTALK_TO_PIO_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -555,7 +551,6 @@ public class Q11026_PathOfDestinyConviction extends Quest
{
qs.setCond(5, true);
qs.unset(KILL_COUNT_VAR2);
giveItems(killer, SOE_PIO, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_PIO_IN_YOUR_INVENTORY_NTALK_TO_PIO_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -575,7 +570,6 @@ public class Q11026_PathOfDestinyConviction extends Quest
if (getQuestItemsCount(killer, CORRUPTED_ENERGY) >= 15)
{
qs.setCond(8, true);
giveItems(killer, SOE_PIO, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_PIO_IN_YOUR_INVENTORY_NTALK_TO_PIO_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -594,7 +588,6 @@ public class Q11026_PathOfDestinyConviction extends Quest
if (getQuestItemsCount(killer, EMBEDDED_SHARD) >= 15)
{
qs.setCond(11, true);
giveItems(killer, SOE_PIO, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_PIO_IN_YOUR_INVENTORY_NTALK_TO_PIO_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -616,7 +609,6 @@ public class Q11026_PathOfDestinyConviction extends Quest
{
qs.setCond(14, true);
qs.unset(KILL_COUNT_VAR3);
giveItems(killer, SOE_TARTI, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_TARTI_IN_YOUR_INVENTORY_NTALK_TO_TARTI_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}

View File

@@ -63,8 +63,6 @@ public class Q11027_PathOfDestinyOvercome extends Quest
// Items
private static final int PROPHECY_MACHINE = 39540;
private static final int ATELIA = 39542;
private static final int SOE_RECLOUS = 80682;
private static final int SOE_TARTI = 80677;
private static final int ORC_EMPOWERING_POTION = 80675;
private static final int KETRA_ORDER = 80676;
// Monsters
@@ -658,7 +656,6 @@ public class Q11027_PathOfDestinyOvercome extends Quest
{
qs.setCond(2, true);
qs.unset(KILL_COUNT_VAR);
giveItems(killer, SOE_RECLOUS, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_RECLOUS_IN_YOUR_INVENTORY_NTALK_TO_RECLOUS_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -680,7 +677,6 @@ public class Q11027_PathOfDestinyOvercome extends Quest
{
qs.setCond(5, true);
qs.unset(KILL_COUNT_VAR2);
giveItems(killer, SOE_RECLOUS, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_RECLOUS_IN_YOUR_INVENTORY_NTALK_TO_RECLOUS_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -699,7 +695,6 @@ public class Q11027_PathOfDestinyOvercome extends Quest
if (getQuestItemsCount(killer, ORC_EMPOWERING_POTION) >= 15)
{
qs.setCond(8, true);
giveItems(killer, SOE_RECLOUS, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_RECLOUS_IN_YOUR_INVENTORY_NTALK_TO_RECLOUS_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -721,7 +716,6 @@ public class Q11027_PathOfDestinyOvercome extends Quest
{
qs.setCond(11, true);
qs.unset(KILL_COUNT_VAR3);
giveItems(killer, SOE_RECLOUS, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_RECLOUS_IN_YOUR_INVENTORY_NTALK_TO_RECLOUS_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -740,7 +734,6 @@ public class Q11027_PathOfDestinyOvercome extends Quest
if (getQuestItemsCount(killer, KETRA_ORDER) >= 15)
{
qs.setCond(14, true);
giveItems(killer, SOE_RECLOUS, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_RECLOUS_IN_YOUR_INVENTORY_NTALK_TO_RECLOUS_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}
@@ -762,7 +755,6 @@ public class Q11027_PathOfDestinyOvercome extends Quest
{
qs.setCond(17, true);
qs.unset(KILL_COUNT_VAR4);
giveItems(killer, SOE_TARTI, 1);
showOnScreenMsg(killer, NpcStringId.USE_SCROLL_OF_ESCAPE_TARTI_IN_YOUR_INVENTORY_NTALK_TO_TARTI_TO_COMPLETE_THE_QUEST, ExShowScreenMessage.TOP_CENTER, 10000);
}
}