Party restrictions for Benusta instances.

Contributed by nasseka.
This commit is contained in:
MobiusDevelopment
2021-11-24 00:32:35 +00:00
parent ac2aef92f9
commit 58086b44cc
37 changed files with 1878 additions and 93 deletions

View File

@@ -16,7 +16,12 @@
*/ */
package ai.bosses.Baylor; package ai.bosses.Baylor;
import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
@@ -28,7 +33,9 @@ import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureDeath;
import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -69,9 +76,55 @@ public class BaylorWarzone extends AbstractInstance
public String onAdvEvent(String event, Npc npc, Player player) public String onAdvEvent(String event, Npc npc, Player player)
{ {
if (event.equals("enterInstance")) if (event.equals("enterInstance"))
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
} }
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
}
return super.onAdvEvent(event, npc, player); return super.onAdvEvent(event, npc, player);
} }

View File

@@ -17,11 +17,17 @@
package instances.NightmareKamaloka; package instances.NightmareKamaloka;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -67,8 +73,54 @@ public class NightmareKamaloka extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
break; break;
} }
case "SPAWN_BOSSES": case "SPAWN_BOSSES":

View File

@@ -16,7 +16,12 @@
*/ */
package ai.bosses.Baylor; package ai.bosses.Baylor;
import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
@@ -28,7 +33,9 @@ import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureDeath;
import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -69,9 +76,55 @@ public class BaylorWarzone extends AbstractInstance
public String onAdvEvent(String event, Npc npc, Player player) public String onAdvEvent(String event, Npc npc, Player player)
{ {
if (event.equals("enterInstance")) if (event.equals("enterInstance"))
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
} }
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
}
return super.onAdvEvent(event, npc, player); return super.onAdvEvent(event, npc, player);
} }

View File

@@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries;
import java.util.List; import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -30,7 +33,9 @@ import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
import org.l2jmobius.gameserver.model.zone.ZoneType; import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.model.zone.type.ScriptZone; import org.l2jmobius.gameserver.model.zone.type.ScriptZone;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -155,8 +160,55 @@ public class AshenShadowRevolutionaries extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
if (player.getInstanceWorld() != null) if (player.getInstanceWorld() != null)
{ {
startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null);

View File

@@ -17,11 +17,17 @@
package instances.NightmareKamaloka; package instances.NightmareKamaloka;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -67,8 +73,54 @@ public class NightmareKamaloka extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
break; break;
} }
case "SPAWN_BOSSES": case "SPAWN_BOSSES":

View File

@@ -16,7 +16,12 @@
*/ */
package ai.bosses.Baylor; package ai.bosses.Baylor;
import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
@@ -28,7 +33,9 @@ import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureDeath;
import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -69,9 +76,55 @@ public class BaylorWarzone extends AbstractInstance
public String onAdvEvent(String event, Npc npc, Player player) public String onAdvEvent(String event, Npc npc, Player player)
{ {
if (event.equals("enterInstance")) if (event.equals("enterInstance"))
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
} }
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
}
return super.onAdvEvent(event, npc, player); return super.onAdvEvent(event, npc, player);
} }

View File

@@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries;
import java.util.List; import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -30,7 +33,9 @@ import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
import org.l2jmobius.gameserver.model.zone.ZoneType; import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.model.zone.type.ScriptZone; import org.l2jmobius.gameserver.model.zone.type.ScriptZone;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -155,8 +160,55 @@ public class AshenShadowRevolutionaries extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
if (player.getInstanceWorld() != null) if (player.getInstanceWorld() != null)
{ {
startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null);

View File

@@ -17,11 +17,17 @@
package instances.NightmareKamaloka; package instances.NightmareKamaloka;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -67,8 +73,54 @@ public class NightmareKamaloka extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
break; break;
} }
case "SPAWN_BOSSES": case "SPAWN_BOSSES":

View File

@@ -16,7 +16,12 @@
*/ */
package ai.bosses.Baylor; package ai.bosses.Baylor;
import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
@@ -28,7 +33,9 @@ import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureDeath;
import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -69,9 +76,55 @@ public class BaylorWarzone extends AbstractInstance
public String onAdvEvent(String event, Npc npc, Player player) public String onAdvEvent(String event, Npc npc, Player player)
{ {
if (event.equals("enterInstance")) if (event.equals("enterInstance"))
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
} }
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
}
return super.onAdvEvent(event, npc, player); return super.onAdvEvent(event, npc, player);
} }

View File

@@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries;
import java.util.List; import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -30,7 +33,9 @@ import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
import org.l2jmobius.gameserver.model.zone.ZoneType; import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.model.zone.type.ScriptZone; import org.l2jmobius.gameserver.model.zone.type.ScriptZone;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -155,8 +160,55 @@ public class AshenShadowRevolutionaries extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
if (player.getInstanceWorld() != null) if (player.getInstanceWorld() != null)
{ {
startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null);

View File

@@ -17,11 +17,17 @@
package instances.NightmareKamaloka; package instances.NightmareKamaloka;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -67,8 +73,54 @@ public class NightmareKamaloka extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
break; break;
} }
case "SPAWN_BOSSES": case "SPAWN_BOSSES":

View File

@@ -16,7 +16,12 @@
*/ */
package ai.bosses.Baylor; package ai.bosses.Baylor;
import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
@@ -28,7 +33,9 @@ import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureDeath;
import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -69,9 +76,55 @@ public class BaylorWarzone extends AbstractInstance
public String onAdvEvent(String event, Npc npc, Player player) public String onAdvEvent(String event, Npc npc, Player player)
{ {
if (event.equals("enterInstance")) if (event.equals("enterInstance"))
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
} }
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
}
return super.onAdvEvent(event, npc, player); return super.onAdvEvent(event, npc, player);
} }

View File

@@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries;
import java.util.List; import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -30,7 +33,9 @@ import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
import org.l2jmobius.gameserver.model.zone.ZoneType; import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.model.zone.type.ScriptZone; import org.l2jmobius.gameserver.model.zone.type.ScriptZone;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -155,8 +160,55 @@ public class AshenShadowRevolutionaries extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
if (player.getInstanceWorld() != null) if (player.getInstanceWorld() != null)
{ {
startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null);

View File

@@ -17,11 +17,17 @@
package instances.NightmareKamaloka; package instances.NightmareKamaloka;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -67,8 +73,54 @@ public class NightmareKamaloka extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
break; break;
} }
case "SPAWN_BOSSES": case "SPAWN_BOSSES":

View File

@@ -16,7 +16,12 @@
*/ */
package ai.bosses.Baylor; package ai.bosses.Baylor;
import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
@@ -28,7 +33,9 @@ import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureDeath;
import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -69,9 +76,55 @@ public class BaylorWarzone extends AbstractInstance
public String onAdvEvent(String event, Npc npc, Player player) public String onAdvEvent(String event, Npc npc, Player player)
{ {
if (event.equals("enterInstance")) if (event.equals("enterInstance"))
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
} }
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
}
return super.onAdvEvent(event, npc, player); return super.onAdvEvent(event, npc, player);
} }

View File

@@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries;
import java.util.List; import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -30,7 +33,9 @@ import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
import org.l2jmobius.gameserver.model.zone.ZoneType; import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.model.zone.type.ScriptZone; import org.l2jmobius.gameserver.model.zone.type.ScriptZone;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -155,8 +160,55 @@ public class AshenShadowRevolutionaries extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
if (player.getInstanceWorld() != null) if (player.getInstanceWorld() != null)
{ {
startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null);

View File

@@ -17,11 +17,17 @@
package instances.NightmareKamaloka; package instances.NightmareKamaloka;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -67,8 +73,54 @@ public class NightmareKamaloka extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_MAY_NOT_RE_ENTER_YET);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
break; break;
} }
case "SPAWN_BOSSES": case "SPAWN_BOSSES":

View File

@@ -16,7 +16,12 @@
*/ */
package ai.bosses.Baylor; package ai.bosses.Baylor;
import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
@@ -28,7 +33,9 @@ import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureDeath;
import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -69,9 +76,55 @@ public class BaylorWarzone extends AbstractInstance
public String onAdvEvent(String event, Npc npc, Player player) public String onAdvEvent(String event, Npc npc, Player player)
{ {
if (event.equals("enterInstance")) if (event.equals("enterInstance"))
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_YOU_HAVE_ENTERED_ANOTHER_INSTANT_ZONE_THEREFORE_YOU_CANNOT_ENTER_CORRESPONDING_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
} }
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
}
return super.onAdvEvent(event, npc, player); return super.onAdvEvent(event, npc, player);
} }

View File

@@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries;
import java.util.List; import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -30,7 +33,9 @@ import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
import org.l2jmobius.gameserver.model.zone.ZoneType; import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.model.zone.type.ScriptZone; import org.l2jmobius.gameserver.model.zone.type.ScriptZone;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -155,8 +160,55 @@ public class AshenShadowRevolutionaries extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_YOU_HAVE_ENTERED_ANOTHER_INSTANT_ZONE_THEREFORE_YOU_CANNOT_ENTER_CORRESPONDING_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
if (player.getInstanceWorld() != null) if (player.getInstanceWorld() != null)
{ {
startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null);

View File

@@ -17,11 +17,17 @@
package instances.NightmareKamaloka; package instances.NightmareKamaloka;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -67,8 +73,54 @@ public class NightmareKamaloka extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.C1_YOU_HAVE_ENTERED_ANOTHER_INSTANT_ZONE_THEREFORE_YOU_CANNOT_ENTER_CORRESPONDING_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
break; break;
} }
case "SPAWN_BOSSES": case "SPAWN_BOSSES":

View File

@@ -16,7 +16,12 @@
*/ */
package ai.bosses.Baylor; package ai.bosses.Baylor;
import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
@@ -28,7 +33,9 @@ import org.l2jmobius.gameserver.model.events.impl.creature.OnCreatureDeath;
import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -69,9 +76,55 @@ public class BaylorWarzone extends AbstractInstance
public String onAdvEvent(String event, Npc npc, Player player) public String onAdvEvent(String event, Npc npc, Player player)
{ {
if (event.equals("enterInstance")) if (event.equals("enterInstance"))
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
} }
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
}
return super.onAdvEvent(event, npc, player); return super.onAdvEvent(event, npc, player);
} }

View File

@@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries;
import java.util.List; import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -30,7 +33,9 @@ import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
import org.l2jmobius.gameserver.model.zone.ZoneType; import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.model.zone.type.ScriptZone; import org.l2jmobius.gameserver.model.zone.type.ScriptZone;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -155,8 +160,55 @@ public class AshenShadowRevolutionaries extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
if (player.getInstanceWorld() != null) if (player.getInstanceWorld() != null)
{ {
startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null);

View File

@@ -17,11 +17,17 @@
package instances.NightmareKamaloka; package instances.NightmareKamaloka;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -67,8 +73,54 @@ public class NightmareKamaloka extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
break; break;
} }
case "SPAWN_BOSSES": case "SPAWN_BOSSES":

View File

@@ -16,7 +16,12 @@
*/ */
package ai.bosses.Baylor; package ai.bosses.Baylor;
import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
@@ -29,7 +34,9 @@ import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.SkillHolder; import org.l2jmobius.gameserver.model.holders.SkillHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.model.skill.Skill; import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SocialAction; import org.l2jmobius.gameserver.network.serverpackets.SocialAction;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -71,9 +78,55 @@ public class BaylorWarzone extends AbstractInstance
public String onAdvEvent(String event, Npc npc, Player player) public String onAdvEvent(String event, Npc npc, Player player)
{ {
if (event.equals("enterInstance")) if (event.equals("enterInstance"))
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
} }
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
}
return super.onAdvEvent(event, npc, player); return super.onAdvEvent(event, npc, player);
} }

View File

@@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries;
import java.util.List; import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -31,7 +34,9 @@ import org.l2jmobius.gameserver.model.skill.AbnormalVisualEffect;
import org.l2jmobius.gameserver.model.zone.ZoneType; import org.l2jmobius.gameserver.model.zone.ZoneType;
import org.l2jmobius.gameserver.model.zone.type.ScriptZone; import org.l2jmobius.gameserver.model.zone.type.ScriptZone;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -158,8 +163,55 @@ public class AshenShadowRevolutionaries extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
if (player.getInstanceWorld() != null) if (player.getInstanceWorld() != null)
{ {
startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null);

View File

@@ -16,13 +16,20 @@
*/ */
package instances.KrofinNest; package instances.KrofinNest;
import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.network.NpcStringId; import org.l2jmobius.gameserver.network.NpcStringId;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -100,8 +107,55 @@ public class KrofinNest extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
if (player.getInstanceWorld() != null) if (player.getInstanceWorld() != null)
{ {
startQuestTimer("check_status", 1000, null, player); startQuestTimer("check_status", 1000, null, player);

View File

@@ -17,12 +17,18 @@
package instances.NightmareKamaloka; package instances.NightmareKamaloka;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -70,8 +76,54 @@ public class NightmareKamaloka extends AbstractInstance
switch (event) switch (event)
{ {
case "enterInstance": case "enterInstance":
{
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, TEMPLATE_ID))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
for (Player member : members)
{
enterInstance(member, npc, TEMPLATE_ID);
}
}
else if (player.isGM())
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
break; break;
} }
case "SPAWN_BOSSES": case "SPAWN_BOSSES":

View File

@@ -21,6 +21,7 @@ import java.util.List;
import org.l2jmobius.commons.util.Chronos; import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
@@ -64,8 +65,8 @@ public class BaylorWarzone extends AbstractInstance
// Misc // Misc
private static final int[] TEMPLATE_IDS = private static final int[] TEMPLATE_IDS =
{ {
166, 166, // lv. 105
312 312, // lv. 110
}; };
public BaylorWarzone() public BaylorWarzone()
@@ -84,21 +85,56 @@ public class BaylorWarzone extends AbstractInstance
{ {
if (event.contains("enterInstance")) if (event.contains("enterInstance"))
{ {
if (event.contains("110")) final int templateId = event.contains("110") ? TEMPLATE_IDS[1] : TEMPLATE_IDS[0];
if (player.isInParty())
{ {
// Cannot enter if player finished another instance. final Party party = player.getParty();
final long currentTime = Chronos.currentTimeMillis(); if (!party.isLeader(player))
if ((currentTime < InstanceManager.getInstance().getInstanceTime(player, 166)))
{ {
player.sendPacket(new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON).addString(player.getName())); player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null; return null;
} }
enterInstance(player, npc, TEMPLATE_IDS[1]); if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
for (int id : TEMPLATE_IDS)
{
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, id))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
}
for (Player member : members)
{
enterInstance(member, npc, templateId);
}
}
else if (player.isGM())
{
enterInstance(player, npc, templateId);
} }
else else
{ {
enterInstance(player, npc, TEMPLATE_IDS[0]); player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
} }
} }
return super.onAdvEvent(event, npc, player); return super.onAdvEvent(event, npc, player);

View File

@@ -24,6 +24,7 @@ import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -172,8 +173,8 @@ public class AshenShadowRevolutionaries extends AbstractInstance
private static final ScriptZone TOWN_ZONE = ZoneManager.getInstance().getZoneById(60200, ScriptZone.class); private static final ScriptZone TOWN_ZONE = ZoneManager.getInstance().getZoneById(60200, ScriptZone.class);
private static final int[] TEMPLATE_IDS = private static final int[] TEMPLATE_IDS =
{ {
260, 260, // lv. 105
311 311, // lv. 110
}; };
public AshenShadowRevolutionaries() public AshenShadowRevolutionaries()
@@ -201,21 +202,58 @@ public class AshenShadowRevolutionaries extends AbstractInstance
{ {
if (event.contains("enterInstance")) if (event.contains("enterInstance"))
{ {
if (event.contains("110")) final int templateId = event.contains("110") ? TEMPLATE_IDS[1] : TEMPLATE_IDS[0];
if (player.isInParty())
{ {
// Cannot enter if player finished another instance. final Party party = player.getParty();
final long currentTime = Chronos.currentTimeMillis(); if (!party.isLeader(player))
if ((currentTime < InstanceManager.getInstance().getInstanceTime(player, 260)))
{ {
player.sendPacket(new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON).addString(player.getName())); player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null; return null;
} }
enterInstance(player, npc, TEMPLATE_IDS[1]);
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
for (int id : TEMPLATE_IDS)
{
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, id))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
}
for (Player member : members)
{
enterInstance(member, npc, templateId);
}
}
else if (player.isGM())
{
enterInstance(player, npc, templateId);
} }
else else
{ {
enterInstance(player, npc, TEMPLATE_IDS[0]); player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
} }
if (player.getInstanceWorld() != null) if (player.getInstanceWorld() != null)
{ {
startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null);

View File

@@ -16,9 +16,12 @@
*/ */
package instances.KrofinNest; package instances.KrofinNest;
import java.util.List;
import org.l2jmobius.commons.util.Chronos; import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.ItemHolder;
@@ -103,8 +106,8 @@ public class KrofinNest extends AbstractInstance
// Misc // Misc
private static final int[] TEMPLATE_IDS = private static final int[] TEMPLATE_IDS =
{ {
291, 291, // lv. 105
315 315, // lv. 110
}; };
private static final int DOOR1 = 23220101; private static final int DOOR1 = 23220101;
private static final int DOOR2 = 24250002; private static final int DOOR2 = 24250002;
@@ -138,21 +141,58 @@ public class KrofinNest extends AbstractInstance
{ {
if (event.contains("enterInstance")) if (event.contains("enterInstance"))
{ {
if (event.contains("110")) final int templateId = event.contains("110") ? TEMPLATE_IDS[1] : TEMPLATE_IDS[0];
if (player.isInParty())
{ {
// Cannot enter if player finished another instance. final Party party = player.getParty();
final long currentTime = Chronos.currentTimeMillis(); if (!party.isLeader(player))
if ((currentTime < InstanceManager.getInstance().getInstanceTime(player, 291)))
{ {
player.sendPacket(new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON).addString(player.getName())); player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null; return null;
} }
enterInstance(player, npc, TEMPLATE_IDS[1]);
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
for (int id : TEMPLATE_IDS)
{
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, id))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
}
for (Player member : members)
{
enterInstance(member, npc, templateId);
}
}
else if (player.isGM())
{
enterInstance(player, npc, templateId);
} }
else else
{ {
enterInstance(player, npc, TEMPLATE_IDS[0]); player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
} }
if (player.getInstanceWorld() != null) if (player.getInstanceWorld() != null)
{ {
startQuestTimer("check_status", 1000, null, player); startQuestTimer("check_status", 1000, null, player);

View File

@@ -17,12 +17,18 @@
package instances.NightmareKamaloka; package instances.NightmareKamaloka;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -61,8 +67,8 @@ public class NightmareKamaloka extends AbstractInstance
} }
private static final int[] TEMPLATE_IDS = private static final int[] TEMPLATE_IDS =
{ {
258, 258, // lv. 105
313 313, // lv. 110
}; };
public NightmareKamaloka() public NightmareKamaloka()
@@ -80,7 +86,57 @@ public class NightmareKamaloka extends AbstractInstance
{ {
if (event.contains("enterInstance")) if (event.contains("enterInstance"))
{ {
enterInstance(player, npc, event.contains("110") ? TEMPLATE_IDS[1] : TEMPLATE_IDS[0]); final int templateId = event.contains("110") ? TEMPLATE_IDS[1] : TEMPLATE_IDS[0];
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
for (int id : TEMPLATE_IDS)
{
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, id))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
}
for (Player member : members)
{
enterInstance(member, npc, templateId);
}
}
else if (player.isGM())
{
enterInstance(player, npc, templateId);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
} }
else if ("SPAWN_BOSSES".equals(event)) else if ("SPAWN_BOSSES".equals(event))
{ {

View File

@@ -18,6 +18,8 @@ package instances.SpiritForest;
import java.util.List; import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -36,8 +38,8 @@ public class SpiritForest extends AbstractInstance
{ {
private static final int[] TEMPLATE_IDS = private static final int[] TEMPLATE_IDS =
{ {
310, 310, // lv. 110
314 314, // lv. 105
}; };
public SpiritForest() public SpiritForest()
@@ -51,7 +53,8 @@ public class SpiritForest extends AbstractInstance
{ {
if (event.contains("enterInstance")) if (event.contains("enterInstance"))
{ {
final int templateId = event.contains("105") ? TEMPLATE_IDS[1] : TEMPLATE_IDS[0];
final int templateId = event.contains("110") ? TEMPLATE_IDS[0] : TEMPLATE_IDS[1];
if (player.isInParty()) if (player.isInParty())
{ {
final Party party = player.getParty(); final Party party = player.getParty();
@@ -67,6 +70,7 @@ public class SpiritForest extends AbstractInstance
return null; return null;
} }
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers(); final List<Player> members = party.getMembers();
for (Player member : members) for (Player member : members)
{ {
@@ -75,6 +79,17 @@ public class SpiritForest extends AbstractInstance
player.sendMessage("Player " + member.getName() + " must go closer to Gatekeeper Spirit."); player.sendMessage("Player " + member.getName() + " must go closer to Gatekeeper Spirit.");
return null; return null;
} }
for (int id : TEMPLATE_IDS)
{
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, id))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
} }
for (Player member : members) for (Player member : members)

View File

@@ -21,6 +21,7 @@ import java.util.List;
import org.l2jmobius.commons.util.Chronos; import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Attackable; import org.l2jmobius.gameserver.model.actor.Attackable;
@@ -64,8 +65,8 @@ public class BaylorWarzone extends AbstractInstance
// Misc // Misc
private static final int[] TEMPLATE_IDS = private static final int[] TEMPLATE_IDS =
{ {
166, 166, // lv. 105
312 312, // lv. 110
}; };
public BaylorWarzone() public BaylorWarzone()
@@ -84,21 +85,56 @@ public class BaylorWarzone extends AbstractInstance
{ {
if (event.contains("enterInstance")) if (event.contains("enterInstance"))
{ {
if (event.contains("110")) final int templateId = event.contains("110") ? TEMPLATE_IDS[1] : TEMPLATE_IDS[0];
if (player.isInParty())
{ {
// Cannot enter if player finished another instance. final Party party = player.getParty();
final long currentTime = Chronos.currentTimeMillis(); if (!party.isLeader(player))
if ((currentTime < InstanceManager.getInstance().getInstanceTime(player, 166)))
{ {
player.sendPacket(new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON).addString(player.getName())); player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null; return null;
} }
enterInstance(player, npc, TEMPLATE_IDS[1]); if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
for (int id : TEMPLATE_IDS)
{
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, id))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
}
for (Player member : members)
{
enterInstance(member, npc, templateId);
}
}
else if (player.isGM())
{
enterInstance(player, npc, templateId);
} }
else else
{ {
enterInstance(player, npc, TEMPLATE_IDS[0]); player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
} }
} }
return super.onAdvEvent(event, npc, player); return super.onAdvEvent(event, npc, player);

View File

@@ -24,6 +24,7 @@ import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.instancemanager.ZoneManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager;
import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Location;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -172,8 +173,8 @@ public class AshenShadowRevolutionaries extends AbstractInstance
private static final ScriptZone TOWN_ZONE = ZoneManager.getInstance().getZoneById(60200, ScriptZone.class); private static final ScriptZone TOWN_ZONE = ZoneManager.getInstance().getZoneById(60200, ScriptZone.class);
private static final int[] TEMPLATE_IDS = private static final int[] TEMPLATE_IDS =
{ {
260, 260, // lv. 105
311 311, // lv. 110
}; };
public AshenShadowRevolutionaries() public AshenShadowRevolutionaries()
@@ -201,21 +202,58 @@ public class AshenShadowRevolutionaries extends AbstractInstance
{ {
if (event.contains("enterInstance")) if (event.contains("enterInstance"))
{ {
if (event.contains("110")) final int templateId = event.contains("110") ? TEMPLATE_IDS[1] : TEMPLATE_IDS[0];
if (player.isInParty())
{ {
// Cannot enter if player finished another instance. final Party party = player.getParty();
final long currentTime = Chronos.currentTimeMillis(); if (!party.isLeader(player))
if ((currentTime < InstanceManager.getInstance().getInstanceTime(player, 260)))
{ {
player.sendPacket(new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON).addString(player.getName())); player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null; return null;
} }
enterInstance(player, npc, TEMPLATE_IDS[1]);
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
for (int id : TEMPLATE_IDS)
{
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, id))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
}
for (Player member : members)
{
enterInstance(member, npc, templateId);
}
}
else if (player.isGM())
{
enterInstance(player, npc, templateId);
} }
else else
{ {
enterInstance(player, npc, TEMPLATE_IDS[0]); player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
} }
if (player.getInstanceWorld() != null) if (player.getInstanceWorld() != null)
{ {
startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null);

View File

@@ -16,9 +16,12 @@
*/ */
package instances.KrofinNest; package instances.KrofinNest;
import java.util.List;
import org.l2jmobius.commons.util.Chronos; import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.commons.util.CommonUtil;
import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.ItemHolder;
@@ -103,8 +106,8 @@ public class KrofinNest extends AbstractInstance
// Misc // Misc
private static final int[] TEMPLATE_IDS = private static final int[] TEMPLATE_IDS =
{ {
291, 291, // lv. 105
315 315, // lv. 110
}; };
private static final int DOOR1 = 23220101; private static final int DOOR1 = 23220101;
private static final int DOOR2 = 24250002; private static final int DOOR2 = 24250002;
@@ -138,21 +141,58 @@ public class KrofinNest extends AbstractInstance
{ {
if (event.contains("enterInstance")) if (event.contains("enterInstance"))
{ {
if (event.contains("110")) final int templateId = event.contains("110") ? TEMPLATE_IDS[1] : TEMPLATE_IDS[0];
if (player.isInParty())
{ {
// Cannot enter if player finished another instance. final Party party = player.getParty();
final long currentTime = Chronos.currentTimeMillis(); if (!party.isLeader(player))
if ((currentTime < InstanceManager.getInstance().getInstanceTime(player, 291)))
{ {
player.sendPacket(new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON).addString(player.getName())); player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null; return null;
} }
enterInstance(player, npc, TEMPLATE_IDS[1]);
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
for (int id : TEMPLATE_IDS)
{
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, id))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
}
for (Player member : members)
{
enterInstance(member, npc, templateId);
}
}
else if (player.isGM())
{
enterInstance(player, npc, templateId);
} }
else else
{ {
enterInstance(player, npc, TEMPLATE_IDS[0]); player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
} }
if (player.getInstanceWorld() != null) if (player.getInstanceWorld() != null)
{ {
startQuestTimer("check_status", 1000, null, player); startQuestTimer("check_status", 1000, null, player);

View File

@@ -17,12 +17,18 @@
package instances.NightmareKamaloka; package instances.NightmareKamaloka;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.instancezone.Instance; import org.l2jmobius.gameserver.model.instancezone.Instance;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance; import instances.AbstractInstance;
@@ -61,8 +67,8 @@ public class NightmareKamaloka extends AbstractInstance
} }
private static final int[] TEMPLATE_IDS = private static final int[] TEMPLATE_IDS =
{ {
258, 258, // lv. 105
313 313, // lv. 110
}; };
public NightmareKamaloka() public NightmareKamaloka()
@@ -80,7 +86,57 @@ public class NightmareKamaloka extends AbstractInstance
{ {
if (event.contains("enterInstance")) if (event.contains("enterInstance"))
{ {
enterInstance(player, npc, event.contains("110") ? TEMPLATE_IDS[1] : TEMPLATE_IDS[0]); final int templateId = event.contains("110") ? TEMPLATE_IDS[1] : TEMPLATE_IDS[0];
if (player.isInParty())
{
final Party party = player.getParty();
if (!party.isLeader(player))
{
player.sendPacket(new SystemMessage(SystemMessageId.ONLY_A_PARTY_LEADER_CAN_MAKE_THE_REQUEST_TO_ENTER));
return null;
}
if (player.isInCommandChannel())
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_ENTER_BECAUSE_YOU_DO_NOT_MEET_THE_REQUIREMENTS));
return null;
}
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers();
for (Player member : members)
{
if (!member.isInsideRadius3D(npc, 1000))
{
player.sendMessage("Player " + member.getName() + " must come closer.");
return null;
}
for (int id : TEMPLATE_IDS)
{
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, id))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
}
for (Player member : members)
{
enterInstance(member, npc, templateId);
}
}
else if (player.isGM())
{
enterInstance(player, npc, templateId);
}
else
{
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER));
}
} }
else if ("SPAWN_BOSSES".equals(event)) else if ("SPAWN_BOSSES".equals(event))
{ {

View File

@@ -18,6 +18,8 @@ package instances.SpiritForest;
import java.util.List; import java.util.List;
import org.l2jmobius.commons.util.Chronos;
import org.l2jmobius.gameserver.instancemanager.InstanceManager;
import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.Party;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -36,8 +38,8 @@ public class SpiritForest extends AbstractInstance
{ {
private static final int[] TEMPLATE_IDS = private static final int[] TEMPLATE_IDS =
{ {
310, 310, // lv. 110
314 314, // lv. 105
}; };
public SpiritForest() public SpiritForest()
@@ -51,7 +53,8 @@ public class SpiritForest extends AbstractInstance
{ {
if (event.contains("enterInstance")) if (event.contains("enterInstance"))
{ {
final int templateId = event.contains("105") ? TEMPLATE_IDS[1] : TEMPLATE_IDS[0];
final int templateId = event.contains("110") ? TEMPLATE_IDS[0] : TEMPLATE_IDS[1];
if (player.isInParty()) if (player.isInParty())
{ {
final Party party = player.getParty(); final Party party = player.getParty();
@@ -67,6 +70,7 @@ public class SpiritForest extends AbstractInstance
return null; return null;
} }
final long currentTime = Chronos.currentTimeMillis();
final List<Player> members = party.getMembers(); final List<Player> members = party.getMembers();
for (Player member : members) for (Player member : members)
{ {
@@ -75,6 +79,17 @@ public class SpiritForest extends AbstractInstance
player.sendMessage("Player " + member.getName() + " must go closer to Gatekeeper Spirit."); player.sendMessage("Player " + member.getName() + " must go closer to Gatekeeper Spirit.");
return null; return null;
} }
for (int id : TEMPLATE_IDS)
{
if (currentTime < InstanceManager.getInstance().getInstanceTime(member, id))
{
final SystemMessage msg = new SystemMessage(SystemMessageId.SINCE_C1_ENTERED_ANOTHER_INSTANCE_ZONE_THEREFORE_YOU_CANNOT_ENTER_THIS_DUNGEON);
msg.addString(member.getName());
party.broadcastToPartyMembers(member, msg);
return null;
}
}
} }
for (Player member : members) for (Player member : members)