Missing Kartia dialogs and condition checks.
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
*/
|
||||
package instances.KartiasLabyrinth;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jmobius.commons.util.CommonUtil;
|
||||
@@ -36,6 +37,7 @@ import com.l2jmobius.gameserver.model.quest.State;
|
||||
import com.l2jmobius.gameserver.model.zone.L2ZoneType;
|
||||
import com.l2jmobius.gameserver.network.NpcStringId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
|
||||
import com.l2jmobius.gameserver.util.Util;
|
||||
|
||||
import instances.AbstractInstance;
|
||||
import quests.Q00494_IncarnationOfGreedZellakaGroup.Q00494_IncarnationOfGreedZellakaGroup;
|
||||
@@ -60,6 +62,30 @@ public final class KartiasLabyrinth extends AbstractInstance
|
||||
33619,
|
||||
33630,
|
||||
};
|
||||
private static final int[] BARTON =
|
||||
{
|
||||
33610,
|
||||
33621,
|
||||
33632,
|
||||
};
|
||||
private static final int[] ELISE =
|
||||
{
|
||||
33616,
|
||||
33627,
|
||||
33638,
|
||||
};
|
||||
private static final int[] ELIYAH =
|
||||
{
|
||||
33614,
|
||||
33625,
|
||||
33636,
|
||||
};
|
||||
private static final int[] HAYUK =
|
||||
{
|
||||
33612,
|
||||
33623,
|
||||
33634,
|
||||
};
|
||||
// @formatter:off
|
||||
private static final int[] MONSTERS =
|
||||
{
|
||||
@@ -130,12 +156,26 @@ public final class KartiasLabyrinth extends AbstractInstance
|
||||
private static final int TEMPLATE_ID_GROUP_85 = 208;
|
||||
private static final int TEMPLATE_ID_GROUP_90 = 209;
|
||||
private static final int TEMPLATE_ID_GROUP_95 = 210;
|
||||
private static final int MIN_LVL_85 = 85;
|
||||
private static final int MIN_LVL_90 = 90;
|
||||
private static final int MIN_LVL_95 = 95;
|
||||
private static final int MAX_LVL_85 = 89;
|
||||
private static final int MAX_LVL_90 = 94;
|
||||
private static final int MAX_LVL_95 = 99;
|
||||
private static final String KARTIA_ENTRY_VAR = "Last_Kartia_entry";
|
||||
private static final String KARTIA_PARTY_ENTRY_VAR = "Last_Kartia_party_entry";
|
||||
|
||||
public KartiasLabyrinth()
|
||||
{
|
||||
addStartNpc(KARTIA_RESEARCHER);
|
||||
addFirstTalkId(KARTIA_RESEARCHER);
|
||||
addFirstTalkId(ADOLPH);
|
||||
addFirstTalkId(BARTON);
|
||||
addFirstTalkId(ELISE);
|
||||
addFirstTalkId(ELIYAH);
|
||||
addFirstTalkId(HAYUK);
|
||||
addTalkId(ADOLPH);
|
||||
addTalkId(KARTIA_RESEARCHER);
|
||||
addSpawnId(BOZ_ENERGY);
|
||||
addSpawnId(BOSSES);
|
||||
addAttackId(MINI_BOSSES);
|
||||
@@ -157,35 +197,132 @@ public final class KartiasLabyrinth extends AbstractInstance
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "enter_85_solo":
|
||||
case "33647-1.htm":
|
||||
case "33647-2.htm":
|
||||
case "33647-3.htm":
|
||||
case "33647-4.htm":
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID_SOLO_85);
|
||||
break;
|
||||
return event;
|
||||
}
|
||||
case "enter_90_solo":
|
||||
case "request_zellaka_solo":
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID_SOLO_90);
|
||||
break;
|
||||
if (!checkConditions(player, TEMPLATE_ID_SOLO_85))
|
||||
{
|
||||
return "33647-8.htm";
|
||||
}
|
||||
else if ((player.getLevel() >= MIN_LVL_85) && (player.getLevel() <= MAX_LVL_85))
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID_SOLO_85);
|
||||
savePlayer(player);
|
||||
return "33647-5.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "33647-6.htm";
|
||||
}
|
||||
}
|
||||
case "enter_95_solo":
|
||||
case "request_pelline_solo":
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID_SOLO_95);
|
||||
break;
|
||||
if (!checkConditions(player, TEMPLATE_ID_SOLO_90))
|
||||
{
|
||||
return "33647-8.htm";
|
||||
}
|
||||
else if ((player.getLevel() >= MIN_LVL_90) && (player.getLevel() <= MAX_LVL_90))
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID_SOLO_90);
|
||||
savePlayer(player);
|
||||
return "33647-5.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "33647-6.htm";
|
||||
}
|
||||
}
|
||||
case "enter_85_group":
|
||||
case "request_kalios_solo":
|
||||
{
|
||||
if (!checkConditions(player, TEMPLATE_ID_SOLO_95))
|
||||
{
|
||||
return "33647-8.htm";
|
||||
}
|
||||
else if ((player.getLevel() >= MIN_LVL_95) && (player.getLevel() <= MAX_LVL_95))
|
||||
{
|
||||
enterInstance(player, npc, TEMPLATE_ID_SOLO_95);
|
||||
savePlayer(player);
|
||||
return "33647-5.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "33647-6.htm";
|
||||
}
|
||||
}
|
||||
case "request_zellaka_party":
|
||||
{
|
||||
if ((player.getParty() == null) || !player.getParty().isLeader(player))
|
||||
{
|
||||
return "33647-7.htm";
|
||||
}
|
||||
for (L2PcInstance member : player.getParty().getMembers())
|
||||
{
|
||||
if (!checkConditions(member, TEMPLATE_ID_GROUP_85) || (member.getLevel() < MIN_LVL_85) || (member.getLevel() > MAX_LVL_85) || (Util.calculateDistance(player, member, false, false) > 500))
|
||||
{
|
||||
return "33647-8.htm";
|
||||
}
|
||||
}
|
||||
enterInstance(player, npc, TEMPLATE_ID_GROUP_85);
|
||||
break;
|
||||
savePlayer(player);
|
||||
for (L2PcInstance member : player.getParty().getMembers())
|
||||
{
|
||||
player.getInstanceWorld().addAllowed(member);
|
||||
member.teleToLocation(player, true);
|
||||
savePlayer(member);
|
||||
}
|
||||
return "33647-5.htm";
|
||||
}
|
||||
case "enter_90_group":
|
||||
case "request_pelline_party":
|
||||
{
|
||||
if ((player.getParty() == null) || !player.getParty().isLeader(player))
|
||||
{
|
||||
return "33647-7.htm";
|
||||
}
|
||||
for (L2PcInstance member : player.getParty().getMembers())
|
||||
{
|
||||
if (!checkConditions(member, TEMPLATE_ID_GROUP_90) || (member.getLevel() < MIN_LVL_90) || (member.getLevel() > MAX_LVL_90) || (Util.calculateDistance(player, member, false, false) > 500))
|
||||
{
|
||||
return "33647-8.htm";
|
||||
}
|
||||
}
|
||||
enterInstance(player, npc, TEMPLATE_ID_GROUP_90);
|
||||
break;
|
||||
savePlayer(player);
|
||||
for (L2PcInstance member : player.getParty().getMembers())
|
||||
{
|
||||
player.getInstanceWorld().addAllowed(member);
|
||||
member.teleToLocation(player, true);
|
||||
savePlayer(member);
|
||||
}
|
||||
return "33647-5.htm";
|
||||
}
|
||||
case "enter_95_group":
|
||||
case "request_kalios_party":
|
||||
{
|
||||
if ((player.getParty() == null) || !player.getParty().isLeader(player))
|
||||
{
|
||||
return "33647-7.htm";
|
||||
}
|
||||
for (L2PcInstance member : player.getParty().getMembers())
|
||||
{
|
||||
if (!checkConditions(member, TEMPLATE_ID_GROUP_95) || (member.getLevel() < MIN_LVL_95) || (member.getLevel() > MAX_LVL_95) || (Util.calculateDistance(player, member, false, false) > 500))
|
||||
{
|
||||
return "33647-8.htm";
|
||||
}
|
||||
}
|
||||
enterInstance(player, npc, TEMPLATE_ID_GROUP_95);
|
||||
break;
|
||||
savePlayer(player);
|
||||
for (L2PcInstance member : player.getParty().getMembers())
|
||||
{
|
||||
player.getInstanceWorld().addAllowed(member);
|
||||
member.teleToLocation(player, true);
|
||||
savePlayer(member);
|
||||
}
|
||||
return "33647-5.htm";
|
||||
}
|
||||
default:
|
||||
{
|
||||
@@ -925,7 +1062,31 @@ public final class KartiasLabyrinth extends AbstractInstance
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
return "adolph.html";
|
||||
if (npc.getId() == KARTIA_RESEARCHER)
|
||||
{
|
||||
return "33647.htm";
|
||||
}
|
||||
if (CommonUtil.contains(ADOLPH, npc.getId()))
|
||||
{
|
||||
return "adolph.html";
|
||||
}
|
||||
if (CommonUtil.contains(BARTON, npc.getId()))
|
||||
{
|
||||
return "barton.html";
|
||||
}
|
||||
if (CommonUtil.contains(ELISE, npc.getId()))
|
||||
{
|
||||
return "elise.html";
|
||||
}
|
||||
if (CommonUtil.contains(ELIYAH, npc.getId()))
|
||||
{
|
||||
return "eliyah.html";
|
||||
}
|
||||
if (CommonUtil.contains(HAYUK, npc.getId()))
|
||||
{
|
||||
return "hayuk.html";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
private boolean isSoloKartia(Instance instance)
|
||||
@@ -933,6 +1094,36 @@ public final class KartiasLabyrinth extends AbstractInstance
|
||||
return (instance.getTemplateId() == TEMPLATE_ID_SOLO_85) || (instance.getTemplateId() == TEMPLATE_ID_SOLO_90) || (instance.getTemplateId() == TEMPLATE_ID_SOLO_95);
|
||||
}
|
||||
|
||||
protected void savePlayer(L2PcInstance player)
|
||||
{
|
||||
if (isSoloKartia(player.getInstanceWorld()))
|
||||
{
|
||||
player.getVariables().set(KARTIA_ENTRY_VAR, System.currentTimeMillis());
|
||||
}
|
||||
else
|
||||
{
|
||||
player.getVariables().set(KARTIA_PARTY_ENTRY_VAR, System.currentTimeMillis());
|
||||
}
|
||||
}
|
||||
|
||||
protected boolean checkConditions(L2PcInstance player, int templateId)
|
||||
{
|
||||
long lastEntry = 0;
|
||||
if ((templateId == TEMPLATE_ID_SOLO_85) || (templateId == TEMPLATE_ID_SOLO_90) || (templateId == TEMPLATE_ID_SOLO_95))
|
||||
{
|
||||
lastEntry = player.getVariables().getLong(KARTIA_ENTRY_VAR, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
lastEntry = player.getVariables().getLong(KARTIA_PARTY_ENTRY_VAR, 0);
|
||||
}
|
||||
final Calendar entryResetTime = Calendar.getInstance();
|
||||
entryResetTime.set(Calendar.HOUR, 6);
|
||||
entryResetTime.set(Calendar.MINUTE, 30);
|
||||
entryResetTime.set(Calendar.AM_PM, Calendar.AM);
|
||||
return lastEntry < entryResetTime.getTimeInMillis();
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new KartiasLabyrinth();
|
||||
|
Reference in New Issue
Block a user