Sync with L2jServer HighFive Mar 25th 2015.
This commit is contained in:
@@ -27,6 +27,7 @@ import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
@@ -220,9 +221,9 @@ public class Siege implements Siegable
|
||||
}
|
||||
|
||||
// must support Concurrent Modifications
|
||||
private final List<L2SiegeClan> _attackerClans = new ArrayList<>();
|
||||
private final List<L2SiegeClan> _defenderClans = new ArrayList<>();
|
||||
private final List<L2SiegeClan> _defenderWaitingClans = new ArrayList<>();
|
||||
private final List<L2SiegeClan> _attackerClans = new CopyOnWriteArrayList<>();
|
||||
private final List<L2SiegeClan> _defenderClans = new CopyOnWriteArrayList<>();
|
||||
private final List<L2SiegeClan> _defenderWaitingClans = new CopyOnWriteArrayList<>();
|
||||
|
||||
// Castle setting
|
||||
private final List<L2ControlTowerInstance> _controlTowers = new ArrayList<>();
|
||||
@@ -550,10 +551,7 @@ public class Siege implements Siegable
|
||||
L2Clan clan = ClanTable.getInstance().getClan(siegeClans.getClanId());
|
||||
for (L2PcInstance member : clan.getOnlineMembers(0))
|
||||
{
|
||||
if (member != null)
|
||||
{
|
||||
member.sendPacket(message);
|
||||
}
|
||||
member.sendPacket(message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -586,11 +584,6 @@ public class Siege implements Siegable
|
||||
clan = ClanTable.getInstance().getClan(siegeclan.getClanId());
|
||||
for (L2PcInstance member : clan.getOnlineMembers(0))
|
||||
{
|
||||
if (member == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (clear)
|
||||
{
|
||||
member.setSiegeState((byte) 0);
|
||||
@@ -833,11 +826,6 @@ public class Siege implements Siegable
|
||||
clan = ClanTable.getInstance().getClan(siegeclan.getClanId());
|
||||
for (L2PcInstance player : clan.getOnlineMembers(0))
|
||||
{
|
||||
if (player == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (player.isInSiege())
|
||||
{
|
||||
players.add(player);
|
||||
@@ -871,11 +859,6 @@ public class Siege implements Siegable
|
||||
}
|
||||
for (L2PcInstance player : clan.getOnlineMembers(0))
|
||||
{
|
||||
if (player == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (player.isInSiege())
|
||||
{
|
||||
players.add(player);
|
||||
@@ -1596,41 +1579,35 @@ public class Siege implements Siegable
|
||||
|
||||
// Register guard to the closest Control Tower
|
||||
// When CT dies, so do all the guards that it controls
|
||||
if (!getSiegeGuardManager().getSiegeGuardSpawn().isEmpty())
|
||||
for (L2Spawn spawn : getSiegeGuardManager().getSiegeGuardSpawn())
|
||||
{
|
||||
L2ControlTowerInstance closestCt;
|
||||
double distance;
|
||||
double distanceClosest = 0;
|
||||
for (L2Spawn spawn : getSiegeGuardManager().getSiegeGuardSpawn())
|
||||
if (spawn == null)
|
||||
{
|
||||
if (spawn == null)
|
||||
continue;
|
||||
}
|
||||
|
||||
L2ControlTowerInstance closestCt = null;
|
||||
double distanceClosest = Integer.MAX_VALUE;
|
||||
|
||||
for (L2ControlTowerInstance ct : _controlTowers)
|
||||
{
|
||||
if (ct == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
closestCt = null;
|
||||
distanceClosest = Integer.MAX_VALUE;
|
||||
double distance = ct.calculateDistance(spawn, true, true);
|
||||
|
||||
for (L2ControlTowerInstance ct : _controlTowers)
|
||||
if (distance < distanceClosest)
|
||||
{
|
||||
if (ct == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
distance = ct.calculateDistance(spawn, true, true);
|
||||
|
||||
if (distance < distanceClosest)
|
||||
{
|
||||
closestCt = ct;
|
||||
distanceClosest = distance;
|
||||
}
|
||||
}
|
||||
if (closestCt != null)
|
||||
{
|
||||
closestCt.registerGuard(spawn);
|
||||
closestCt = ct;
|
||||
distanceClosest = distance;
|
||||
}
|
||||
}
|
||||
if (closestCt != null)
|
||||
{
|
||||
closestCt.registerGuard(spawn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user