Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/aCis/java/net/sf/l2j/gameserver/model/zone/type/BossZone.java b/aCis/java/net/sf/l2j/gameserver/model/zone/type/BossZone.java
- index 56adf02..fe19610 100644
- --- a/aCis/java/net/sf/l2j/gameserver/model/zone/type/BossZone.java
- +++ b/aCis/java/net/sf/l2j/gameserver/model/zone/type/BossZone.java
- @@ -3,6 +3,8 @@
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- +import java.util.ArrayList;
- +import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- @@ -13,6 +15,7 @@
- import net.sf.l2j.Config;
- import net.sf.l2j.gameserver.data.xml.MapRegionData.TeleportType;
- import net.sf.l2j.gameserver.enums.ZoneId;
- +import net.sf.l2j.gameserver.model.World;
- import net.sf.l2j.gameserver.model.actor.Attackable;
- import net.sf.l2j.gameserver.model.actor.Creature;
- import net.sf.l2j.gameserver.model.actor.Playable;
- @@ -35,12 +38,13 @@
- // Track players admitted to the zone who should be allowed back in after reboot/server downtime, within 30min of server restart
- private final Set<Integer> _allowedPlayers = ConcurrentHashMap.newKeySet();
- + private final Map<String, List<Player>> _players = new HashMap<>();
- + private int _maxPlayers;
- +
- private final int[] _oustLoc = new int[3];
- private int _invadeTime;
- public BossZone(int id)
- {
- super(id);
- @@ -73,8 +77,6 @@
- _oustLoc[1] = Integer.parseInt(value);
- else if (name.equals("oustZ"))
- _oustLoc[2] = Integer.parseInt(value);
- + else if (name.equals("maxPlayers"))
- + _maxPlayers = Integer.parseInt(value);
- else
- super.setParameter(name, value);
- }
- @@ -90,16 +92,29 @@
- final Player player = (Player) character;
- player.setInsideZone(ZoneId.NO_SUMMON_FRIEND, true);
- + for (Player players : World.getInstance().getPlayers())
- + {
- + final String playerOne = players.getName();
- + final String playerTwo = player.getName();
- +
- + if (playerOne.equals(playerTwo))
- + {
- + if (_players.get(playerOne) == null)
- + _players.put(playerOne, new ArrayList<Player>());
- +
- + _players.get(playerOne).add(player);
- +
- + if (_players.get(playerOne).size() > _maxPlayers)
- + {
- + player.sendMessage("Only "+ _maxPlayers +" players per ip in this zone.");
- + player.teleportTo(TeleportType.TOWN);
- + }
- + }
- + }
- +
- if (player.isFlying())
- player.dismount();
- // Skip other checks for GM or if no invade time is set.
- if (player.isGM() || _invadeTime == 0 || Config.ACCEPT_PLAYERS_WITHOUT_QUEST)
- return;
- @@ -150,9 +165,9 @@
- // Get player and set zone info.
- final Player player = (Player) character;
- player.setInsideZone(ZoneId.NO_SUMMON_FRIEND, false);
- +
- + if (_players.containsKey(player.getName()))
- + _players.remove(player.getName());
- +
- // Skip other checks for GM or if no invade time is set.
- if (player.isGM() || _invadeTime == 0)
- \ No newline at end of file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement