diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index 76940da412..d93a07e3b1 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -16,7 +16,12 @@ */ 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.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.World; 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.instancezone.Instance; 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.SystemMessage; import instances.AbstractInstance; @@ -70,7 +77,53 @@ public class BaylorWarzone extends AbstractInstance { if (event.equals("enterInstance")) { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java index 17a8fb3347..2081ecd541 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java @@ -17,11 +17,17 @@ package instances.NightmareKamaloka; import java.util.HashMap; +import java.util.List; 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.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import instances.AbstractInstance; @@ -68,7 +74,53 @@ public class NightmareKamaloka extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } break; } case "SPAWN_BOSSES": diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index 76940da412..d93a07e3b1 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -16,7 +16,12 @@ */ 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.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.World; 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.instancezone.Instance; 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.SystemMessage; import instances.AbstractInstance; @@ -70,7 +77,53 @@ public class BaylorWarzone extends AbstractInstance { if (event.equals("enterInstance")) { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index a122c1c292..aaf979da12 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries; import java.util.List; +import org.l2jmobius.commons.util.Chronos; import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.enums.ChatType; +import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; 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.Npc; 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.type.ScriptZone; 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.SystemMessage; import instances.AbstractInstance; @@ -156,7 +161,54 @@ public class AshenShadowRevolutionaries extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } + if (player.getInstanceWorld() != null) { startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java index 17a8fb3347..2081ecd541 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java +++ b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java @@ -17,11 +17,17 @@ package instances.NightmareKamaloka; import java.util.HashMap; +import java.util.List; 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.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import instances.AbstractInstance; @@ -68,7 +74,53 @@ public class NightmareKamaloka extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } break; } case "SPAWN_BOSSES": diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index 76940da412..d93a07e3b1 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -16,7 +16,12 @@ */ 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.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.World; 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.instancezone.Instance; 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.SystemMessage; import instances.AbstractInstance; @@ -70,7 +77,53 @@ public class BaylorWarzone extends AbstractInstance { if (event.equals("enterInstance")) { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index a122c1c292..aaf979da12 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries; import java.util.List; +import org.l2jmobius.commons.util.Chronos; import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.enums.ChatType; +import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; 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.Npc; 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.type.ScriptZone; 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.SystemMessage; import instances.AbstractInstance; @@ -156,7 +161,54 @@ public class AshenShadowRevolutionaries extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } + if (player.getInstanceWorld() != null) { startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java index 17a8fb3347..2081ecd541 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java +++ b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java @@ -17,11 +17,17 @@ package instances.NightmareKamaloka; import java.util.HashMap; +import java.util.List; 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.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import instances.AbstractInstance; @@ -68,7 +74,53 @@ public class NightmareKamaloka extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } break; } case "SPAWN_BOSSES": diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index 76940da412..d93a07e3b1 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -16,7 +16,12 @@ */ 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.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.World; 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.instancezone.Instance; 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.SystemMessage; import instances.AbstractInstance; @@ -70,7 +77,53 @@ public class BaylorWarzone extends AbstractInstance { if (event.equals("enterInstance")) { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index a122c1c292..aaf979da12 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries; import java.util.List; +import org.l2jmobius.commons.util.Chronos; import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.enums.ChatType; +import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; 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.Npc; 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.type.ScriptZone; 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.SystemMessage; import instances.AbstractInstance; @@ -156,7 +161,54 @@ public class AshenShadowRevolutionaries extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } + if (player.getInstanceWorld() != null) { startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java index 17a8fb3347..2081ecd541 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java @@ -17,11 +17,17 @@ package instances.NightmareKamaloka; import java.util.HashMap; +import java.util.List; 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.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import instances.AbstractInstance; @@ -68,7 +74,53 @@ public class NightmareKamaloka extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } break; } case "SPAWN_BOSSES": diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index 76940da412..d93a07e3b1 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -16,7 +16,12 @@ */ 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.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.World; 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.instancezone.Instance; 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.SystemMessage; import instances.AbstractInstance; @@ -70,7 +77,53 @@ public class BaylorWarzone extends AbstractInstance { if (event.equals("enterInstance")) { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index a122c1c292..aaf979da12 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries; import java.util.List; +import org.l2jmobius.commons.util.Chronos; import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.enums.ChatType; +import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; 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.Npc; 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.type.ScriptZone; 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.SystemMessage; import instances.AbstractInstance; @@ -156,7 +161,54 @@ public class AshenShadowRevolutionaries extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } + if (player.getInstanceWorld() != null) { startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java index 17a8fb3347..2081ecd541 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java @@ -17,11 +17,17 @@ package instances.NightmareKamaloka; import java.util.HashMap; +import java.util.List; 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.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import instances.AbstractInstance; @@ -68,7 +74,53 @@ public class NightmareKamaloka extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } break; } case "SPAWN_BOSSES": diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index 76940da412..d93a07e3b1 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -16,7 +16,12 @@ */ 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.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.World; 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.instancezone.Instance; 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.SystemMessage; import instances.AbstractInstance; @@ -70,7 +77,53 @@ public class BaylorWarzone extends AbstractInstance { if (event.equals("enterInstance")) { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index a122c1c292..aaf979da12 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries; import java.util.List; +import org.l2jmobius.commons.util.Chronos; import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.enums.ChatType; +import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; 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.Npc; 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.type.ScriptZone; 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.SystemMessage; import instances.AbstractInstance; @@ -156,7 +161,54 @@ public class AshenShadowRevolutionaries extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } + if (player.getInstanceWorld() != null) { startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java index 17a8fb3347..2081ecd541 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java @@ -17,11 +17,17 @@ package instances.NightmareKamaloka; import java.util.HashMap; +import java.util.List; 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.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import instances.AbstractInstance; @@ -68,7 +74,53 @@ public class NightmareKamaloka extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } break; } case "SPAWN_BOSSES": diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index 76940da412..f6b09d6580 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -16,7 +16,12 @@ */ 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.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.World; 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.instancezone.Instance; 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.SystemMessage; import instances.AbstractInstance; @@ -70,7 +77,53 @@ public class BaylorWarzone extends AbstractInstance { if (event.equals("enterInstance")) { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index a122c1c292..3eeb11640c 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries; import java.util.List; +import org.l2jmobius.commons.util.Chronos; import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.enums.ChatType; +import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; 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.Npc; 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.type.ScriptZone; 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.SystemMessage; import instances.AbstractInstance; @@ -156,7 +161,54 @@ public class AshenShadowRevolutionaries extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } + if (player.getInstanceWorld() != null) { startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java index 17a8fb3347..105ceaf280 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java @@ -17,11 +17,17 @@ package instances.NightmareKamaloka; import java.util.HashMap; +import java.util.List; 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.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import instances.AbstractInstance; @@ -68,7 +74,53 @@ public class NightmareKamaloka extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } break; } case "SPAWN_BOSSES": diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index 76940da412..f30803fc3b 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -16,7 +16,12 @@ */ 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.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.World; 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.instancezone.Instance; 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.SystemMessage; import instances.AbstractInstance; @@ -70,7 +77,53 @@ public class BaylorWarzone extends AbstractInstance { if (event.equals("enterInstance")) { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index a122c1c292..3e6856f28b 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries; import java.util.List; +import org.l2jmobius.commons.util.Chronos; import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.enums.ChatType; +import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; 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.Npc; 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.type.ScriptZone; 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.SystemMessage; import instances.AbstractInstance; @@ -156,7 +161,54 @@ public class AshenShadowRevolutionaries extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } + if (player.getInstanceWorld() != null) { startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java index 17a8fb3347..b49ceb854f 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java @@ -17,11 +17,17 @@ package instances.NightmareKamaloka; import java.util.HashMap; +import java.util.List; 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.Player; import org.l2jmobius.gameserver.model.instancezone.Instance; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import instances.AbstractInstance; @@ -68,7 +74,53 @@ public class NightmareKamaloka extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } break; } case "SPAWN_BOSSES": diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index 83439d7cce..cb47743fdb 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -16,7 +16,12 @@ */ 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.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.World; 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.instancezone.Instance; 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.SystemMessage; import instances.AbstractInstance; @@ -72,7 +79,53 @@ public class BaylorWarzone extends AbstractInstance { if (event.equals("enterInstance")) { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } } return super.onAdvEvent(event, npc, player); } diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index 83c0a61e86..afac5f0554 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -18,10 +18,13 @@ package instances.AshenShadowRevolutionaries; import java.util.List; +import org.l2jmobius.commons.util.Chronos; import org.l2jmobius.commons.util.CommonUtil; import org.l2jmobius.gameserver.enums.ChatType; +import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; 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.Npc; 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.type.ScriptZone; 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.SystemMessage; import instances.AbstractInstance; @@ -159,7 +164,54 @@ public class AshenShadowRevolutionaries extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } + if (player.getInstanceWorld() != null) { startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/KrofinNest/KrofinNest.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/KrofinNest/KrofinNest.java index f22aeb9a69..e2f1e863ee 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/KrofinNest/KrofinNest.java +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/KrofinNest/KrofinNest.java @@ -16,13 +16,20 @@ */ package instances.KrofinNest; +import java.util.List; + +import org.l2jmobius.commons.util.Chronos; 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.Player; import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.instancezone.Instance; 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.SystemMessage; import instances.AbstractInstance; @@ -101,7 +108,54 @@ public class KrofinNest extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } + if (player.getInstanceWorld() != null) { startQuestTimer("check_status", 1000, null, player); diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java index 8acfe2220e..f0437189d3 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java @@ -17,12 +17,18 @@ package instances.NightmareKamaloka; import java.util.HashMap; +import java.util.List; 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.Player; import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.instancezone.Instance; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import instances.AbstractInstance; @@ -71,7 +77,53 @@ public class NightmareKamaloka extends AbstractInstance { case "enterInstance": { - enterInstance(player, npc, TEMPLATE_ID); + 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 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); + } + else + { + player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_CURRENTLY_IN_A_PARTY_SO_YOU_CANNOT_ENTER)); + } break; } case "SPAWN_BOSSES": diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index 166f3714e9..cc1060f1b7 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -21,6 +21,7 @@ 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.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.Attackable; @@ -64,8 +65,8 @@ public class BaylorWarzone extends AbstractInstance // Misc private static final int[] TEMPLATE_IDS = { - 166, - 312 + 166, // lv. 105 + 312, // lv. 110 }; public BaylorWarzone() @@ -84,21 +85,56 @@ public class BaylorWarzone extends AbstractInstance { 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 long currentTime = Chronos.currentTimeMillis(); - if ((currentTime < InstanceManager.getInstance().getInstanceTime(player, 166))) + final Party party = player.getParty(); + if (!party.isLeader(player)) { - 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; } - 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 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 { - 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); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index d1c8e90bbc..d7ee2ec6bd 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -24,6 +24,7 @@ import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; 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.Npc; 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 int[] TEMPLATE_IDS = { - 260, - 311 + 260, // lv. 105 + 311, // lv. 110 }; public AshenShadowRevolutionaries() @@ -201,21 +202,58 @@ public class AshenShadowRevolutionaries extends AbstractInstance { 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 long currentTime = Chronos.currentTimeMillis(); - if ((currentTime < InstanceManager.getInstance().getInstanceTime(player, 260))) + final Party party = player.getParty(); + if (!party.isLeader(player)) { - 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; } - 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 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 { - 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) { startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/KrofinNest/KrofinNest.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/KrofinNest/KrofinNest.java index 37bbe3bf6d..e4524846fe 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/KrofinNest/KrofinNest.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/KrofinNest/KrofinNest.java @@ -16,9 +16,12 @@ */ package instances.KrofinNest; +import java.util.List; + import org.l2jmobius.commons.util.Chronos; 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.Player; import org.l2jmobius.gameserver.model.holders.ItemHolder; @@ -103,8 +106,8 @@ public class KrofinNest extends AbstractInstance // Misc private static final int[] TEMPLATE_IDS = { - 291, - 315 + 291, // lv. 105 + 315, // lv. 110 }; private static final int DOOR1 = 23220101; private static final int DOOR2 = 24250002; @@ -138,21 +141,58 @@ public class KrofinNest extends AbstractInstance { 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 long currentTime = Chronos.currentTimeMillis(); - if ((currentTime < InstanceManager.getInstance().getInstanceTime(player, 291))) + final Party party = player.getParty(); + if (!party.isLeader(player)) { - 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; } - 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 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 { - 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) { startQuestTimer("check_status", 1000, null, player); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java index 549e61dd2e..4e778e6719 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java @@ -17,12 +17,18 @@ package instances.NightmareKamaloka; import java.util.HashMap; +import java.util.List; 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.Player; import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.instancezone.Instance; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import instances.AbstractInstance; @@ -61,8 +67,8 @@ public class NightmareKamaloka extends AbstractInstance } private static final int[] TEMPLATE_IDS = { - 258, - 313 + 258, // lv. 105 + 313, // lv. 110 }; public NightmareKamaloka() @@ -80,7 +86,57 @@ public class NightmareKamaloka extends AbstractInstance { 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 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)) { diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/SpiritForest/SpiritForest.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/SpiritForest/SpiritForest.java index f9045b1bf0..628ec17b7c 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/SpiritForest/SpiritForest.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/instances/SpiritForest/SpiritForest.java @@ -18,6 +18,8 @@ package instances.SpiritForest; 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.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; @@ -36,8 +38,8 @@ public class SpiritForest extends AbstractInstance { private static final int[] TEMPLATE_IDS = { - 310, - 314 + 310, // lv. 110 + 314, // lv. 105 }; public SpiritForest() @@ -51,7 +53,8 @@ public class SpiritForest extends AbstractInstance { 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()) { final Party party = player.getParty(); @@ -67,6 +70,7 @@ public class SpiritForest extends AbstractInstance return null; } + final long currentTime = Chronos.currentTimeMillis(); final List members = party.getMembers(); for (Player member : members) { @@ -75,6 +79,17 @@ public class SpiritForest extends AbstractInstance player.sendMessage("Player " + member.getName() + " must go closer to Gatekeeper Spirit."); 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) diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java index 166f3714e9..cc1060f1b7 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/ai/bosses/Baylor/BaylorWarzone.java @@ -21,6 +21,7 @@ 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.Party; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.World; import org.l2jmobius.gameserver.model.actor.Attackable; @@ -64,8 +65,8 @@ public class BaylorWarzone extends AbstractInstance // Misc private static final int[] TEMPLATE_IDS = { - 166, - 312 + 166, // lv. 105 + 312, // lv. 110 }; public BaylorWarzone() @@ -84,21 +85,56 @@ public class BaylorWarzone extends AbstractInstance { 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 long currentTime = Chronos.currentTimeMillis(); - if ((currentTime < InstanceManager.getInstance().getInstanceTime(player, 166))) + final Party party = player.getParty(); + if (!party.isLeader(player)) { - 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; } - 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 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 { - 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); diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java index d1c8e90bbc..d7ee2ec6bd 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/AshenShadowRevolutionaries/AshenShadowRevolutionaries.java @@ -24,6 +24,7 @@ import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.instancemanager.InstanceManager; import org.l2jmobius.gameserver.instancemanager.ZoneManager; 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.Npc; 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 int[] TEMPLATE_IDS = { - 260, - 311 + 260, // lv. 105 + 311, // lv. 110 }; public AshenShadowRevolutionaries() @@ -201,21 +202,58 @@ public class AshenShadowRevolutionaries extends AbstractInstance { 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 long currentTime = Chronos.currentTimeMillis(); - if ((currentTime < InstanceManager.getInstance().getInstanceTime(player, 260))) + final Party party = player.getParty(); + if (!party.isLeader(player)) { - 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; } - 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 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 { - 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) { startQuestTimer("chest_talk", 1000, player.getInstanceWorld().getNpc(TREASURE_CHEST), null); diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/KrofinNest/KrofinNest.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/KrofinNest/KrofinNest.java index 37bbe3bf6d..e4524846fe 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/KrofinNest/KrofinNest.java +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/KrofinNest/KrofinNest.java @@ -16,9 +16,12 @@ */ package instances.KrofinNest; +import java.util.List; + import org.l2jmobius.commons.util.Chronos; 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.Player; import org.l2jmobius.gameserver.model.holders.ItemHolder; @@ -103,8 +106,8 @@ public class KrofinNest extends AbstractInstance // Misc private static final int[] TEMPLATE_IDS = { - 291, - 315 + 291, // lv. 105 + 315, // lv. 110 }; private static final int DOOR1 = 23220101; private static final int DOOR2 = 24250002; @@ -138,21 +141,58 @@ public class KrofinNest extends AbstractInstance { 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 long currentTime = Chronos.currentTimeMillis(); - if ((currentTime < InstanceManager.getInstance().getInstanceTime(player, 291))) + final Party party = player.getParty(); + if (!party.isLeader(player)) { - 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; } - 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 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 { - 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) { startQuestTimer("check_status", 1000, null, player); diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java index 549e61dd2e..4e778e6719 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/NightmareKamaloka/NightmareKamaloka.java @@ -17,12 +17,18 @@ package instances.NightmareKamaloka; import java.util.HashMap; +import java.util.List; 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.Player; import org.l2jmobius.gameserver.model.holders.ItemHolder; import org.l2jmobius.gameserver.model.instancezone.Instance; +import org.l2jmobius.gameserver.network.SystemMessageId; +import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import instances.AbstractInstance; @@ -61,8 +67,8 @@ public class NightmareKamaloka extends AbstractInstance } private static final int[] TEMPLATE_IDS = { - 258, - 313 + 258, // lv. 105 + 313, // lv. 110 }; public NightmareKamaloka() @@ -80,7 +86,57 @@ public class NightmareKamaloka extends AbstractInstance { 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 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)) { diff --git a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/SpiritForest/SpiritForest.java b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/SpiritForest/SpiritForest.java index f9045b1bf0..628ec17b7c 100644 --- a/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/SpiritForest/SpiritForest.java +++ b/L2J_Mobius_10.0_MasterClass/dist/game/data/scripts/instances/SpiritForest/SpiritForest.java @@ -18,6 +18,8 @@ package instances.SpiritForest; 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.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; @@ -36,8 +38,8 @@ public class SpiritForest extends AbstractInstance { private static final int[] TEMPLATE_IDS = { - 310, - 314 + 310, // lv. 110 + 314, // lv. 105 }; public SpiritForest() @@ -51,7 +53,8 @@ public class SpiritForest extends AbstractInstance { 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()) { final Party party = player.getParty(); @@ -67,6 +70,7 @@ public class SpiritForest extends AbstractInstance return null; } + final long currentTime = Chronos.currentTimeMillis(); final List members = party.getMembers(); for (Player member : members) { @@ -75,6 +79,17 @@ public class SpiritForest extends AbstractInstance player.sendMessage("Player " + member.getName() + " must go closer to Gatekeeper Spirit."); 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)