Distinguish getVisibleObjectsInRange from getVisibleObjects.
This commit is contained in:
@@ -491,7 +491,7 @@ public class L2AttackableAI extends L2CharacterAI
|
||||
{
|
||||
L2Character nearestTarget = null;
|
||||
double closestDistance = Double.MAX_VALUE;
|
||||
for (L2Character t : L2World.getInstance().getVisibleObjects(npc, L2Character.class, npc.getAggroRange()))
|
||||
for (L2Character t : L2World.getInstance().getVisibleObjectsInRange(npc, L2Character.class, npc.getAggroRange()))
|
||||
{
|
||||
if ((t == _actor) || (t == null) || t.isDead())
|
||||
{
|
||||
@@ -824,7 +824,7 @@ public class L2AttackableAI extends L2CharacterAI
|
||||
// Go through all L2Object that belong to its faction
|
||||
try
|
||||
{
|
||||
for (L2Npc called : L2World.getInstance().getVisibleObjects(npc, L2Npc.class, factionRange))
|
||||
for (L2Npc called : L2World.getInstance().getVisibleObjectsInRange(npc, L2Npc.class, factionRange))
|
||||
{
|
||||
if (!getActiveChar().getTemplate().isClan(called.getTemplate().getClans()))
|
||||
{
|
||||
@@ -1080,7 +1080,7 @@ public class L2AttackableAI extends L2CharacterAI
|
||||
|
||||
if (sk.getTargetType() == L2TargetType.ONE)
|
||||
{
|
||||
for (L2Attackable obj : L2World.getInstance().getVisibleObjects(npc, L2Attackable.class, sk.getCastRange() + collision))
|
||||
for (L2Attackable obj : L2World.getInstance().getVisibleObjectsInRange(npc, L2Attackable.class, sk.getCastRange() + collision))
|
||||
{
|
||||
if (!obj.isDead())
|
||||
{
|
||||
@@ -1167,7 +1167,7 @@ public class L2AttackableAI extends L2CharacterAI
|
||||
}
|
||||
if (sk.getTargetType() == L2TargetType.ONE)
|
||||
{
|
||||
for (L2Attackable obj : L2World.getInstance().getVisibleObjects(npc, L2Attackable.class, sk.getCastRange() + collision))
|
||||
for (L2Attackable obj : L2World.getInstance().getVisibleObjectsInRange(npc, L2Attackable.class, sk.getCastRange() + collision))
|
||||
{
|
||||
if (!obj.isDead())
|
||||
{
|
||||
@@ -1456,7 +1456,7 @@ public class L2AttackableAI extends L2CharacterAI
|
||||
|
||||
if (sk.getTargetType() == L2TargetType.ONE)
|
||||
{
|
||||
for (L2Attackable obj : L2World.getInstance().getVisibleObjects(caster, L2Attackable.class, sk.getCastRange() + caster.getTemplate().getCollisionRadius()))
|
||||
for (L2Attackable obj : L2World.getInstance().getVisibleObjectsInRange(caster, L2Attackable.class, sk.getCastRange() + caster.getTemplate().getCollisionRadius()))
|
||||
{
|
||||
if (obj.isDead())
|
||||
{
|
||||
@@ -1484,7 +1484,7 @@ public class L2AttackableAI extends L2CharacterAI
|
||||
}
|
||||
if (isParty(sk))
|
||||
{
|
||||
for (L2Attackable obj : L2World.getInstance().getVisibleObjects(caster, L2Attackable.class, sk.getAffectRange() + caster.getTemplate().getCollisionRadius()))
|
||||
for (L2Attackable obj : L2World.getInstance().getVisibleObjectsInRange(caster, L2Attackable.class, sk.getAffectRange() + caster.getTemplate().getCollisionRadius()))
|
||||
{
|
||||
if (obj.isInMyClan(caster))
|
||||
{
|
||||
@@ -1675,7 +1675,7 @@ public class L2AttackableAI extends L2CharacterAI
|
||||
}
|
||||
}
|
||||
|
||||
for (L2Attackable obj : L2World.getInstance().getVisibleObjects(caster, L2Attackable.class, sk.getCastRange() + caster.getTemplate().getCollisionRadius()))
|
||||
for (L2Attackable obj : L2World.getInstance().getVisibleObjectsInRange(caster, L2Attackable.class, sk.getCastRange() + caster.getTemplate().getCollisionRadius()))
|
||||
{
|
||||
if (!obj.isDead())
|
||||
{
|
||||
@@ -1702,7 +1702,7 @@ public class L2AttackableAI extends L2CharacterAI
|
||||
}
|
||||
else if (isParty(sk))
|
||||
{
|
||||
for (L2Npc obj : L2World.getInstance().getVisibleObjects(caster, L2Npc.class, sk.getAffectRange() + caster.getTemplate().getCollisionRadius()))
|
||||
for (L2Npc obj : L2World.getInstance().getVisibleObjectsInRange(caster, L2Npc.class, sk.getAffectRange() + caster.getTemplate().getCollisionRadius()))
|
||||
{
|
||||
if (caster.isInMyClan(obj))
|
||||
{
|
||||
@@ -1916,7 +1916,7 @@ public class L2AttackableAI extends L2CharacterAI
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// If there is nearby Target with aggro, start going on random target that is attackable
|
||||
for (L2Character obj : L2World.getInstance().getVisibleObjects(actor, L2Character.class, range))
|
||||
for (L2Character obj : L2World.getInstance().getVisibleObjectsInRange(actor, L2Character.class, range))
|
||||
{
|
||||
if (obj.isDead() || !GeoEngine.getInstance().canSeeTarget(actor, obj))
|
||||
{
|
||||
@@ -1949,7 +1949,7 @@ public class L2AttackableAI extends L2CharacterAI
|
||||
double dist = 0;
|
||||
double dist2 = 0;
|
||||
int range = 0;
|
||||
for (L2Attackable targets : L2World.getInstance().getVisibleObjects(actor, L2Attackable.class, range))
|
||||
for (L2Attackable targets : L2World.getInstance().getVisibleObjectsInRange(actor, L2Attackable.class, range))
|
||||
{
|
||||
if (targets.isDead() || !GeoEngine.getInstance().canSeeTarget(actor, targets))
|
||||
{
|
||||
@@ -1988,7 +1988,7 @@ public class L2AttackableAI extends L2CharacterAI
|
||||
double dist = 0;
|
||||
double dist2 = 0;
|
||||
int range = sk.getCastRange() + actor.getTemplate().getCollisionRadius() + getAttackTarget().getTemplate().getCollisionRadius();
|
||||
for (L2Character obj : L2World.getInstance().getVisibleObjects(actor, L2Character.class, range))
|
||||
for (L2Character obj : L2World.getInstance().getVisibleObjectsInRange(actor, L2Character.class, range))
|
||||
{
|
||||
if (obj.isDead() || !GeoEngine.getInstance().canSeeTarget(actor, obj))
|
||||
{
|
||||
|
@@ -1404,7 +1404,7 @@ public class L2CharacterAI extends AbstractAI
|
||||
{
|
||||
if ((sk.getTargetType() == L2TargetType.AURA) || (sk.getTargetType() == L2TargetType.BEHIND_AURA) || (sk.getTargetType() == L2TargetType.FRONT_AURA) || (sk.getTargetType() == L2TargetType.AURA_CORPSE_MOB))
|
||||
{
|
||||
for (L2Object target : L2World.getInstance().getVisibleObjects(_actor, L2Character.class, sk.getAffectRange()))
|
||||
for (L2Object target : L2World.getInstance().getVisibleObjectsInRange(_actor, L2Character.class, sk.getAffectRange()))
|
||||
{
|
||||
if (target == getAttackTarget())
|
||||
{
|
||||
@@ -1422,7 +1422,7 @@ public class L2CharacterAI extends AbstractAI
|
||||
if ((sk.getTargetType() == L2TargetType.AURA) || (sk.getTargetType() == L2TargetType.BEHIND_AURA) || (sk.getTargetType() == L2TargetType.FRONT_AURA) || (sk.getTargetType() == L2TargetType.AURA_CORPSE_MOB))
|
||||
{
|
||||
boolean cancast = true;
|
||||
for (L2Character target : L2World.getInstance().getVisibleObjects(_actor, L2Character.class, sk.getAffectRange()))
|
||||
for (L2Character target : L2World.getInstance().getVisibleObjectsInRange(_actor, L2Character.class, sk.getAffectRange()))
|
||||
{
|
||||
if (!GeoEngine.getInstance().canSeeTarget(_actor, target) || (target.isAttackable() && !((L2Npc) _actor).isChaos()))
|
||||
{
|
||||
@@ -1441,7 +1441,7 @@ public class L2CharacterAI extends AbstractAI
|
||||
else if ((sk.getTargetType() == L2TargetType.AREA) || (sk.getTargetType() == L2TargetType.BEHIND_AREA) || (sk.getTargetType() == L2TargetType.FRONT_AREA))
|
||||
{
|
||||
boolean cancast = true;
|
||||
for (L2Character target : L2World.getInstance().getVisibleObjects(getAttackTarget(), L2Character.class, sk.getAffectRange()))
|
||||
for (L2Character target : L2World.getInstance().getVisibleObjectsInRange(getAttackTarget(), L2Character.class, sk.getAffectRange()))
|
||||
{
|
||||
if (!GeoEngine.getInstance().canSeeTarget(_actor, target) || (target == null) || (target.isAttackable() && !((L2Npc) _actor).isChaos()))
|
||||
{
|
||||
@@ -1461,7 +1461,7 @@ public class L2CharacterAI extends AbstractAI
|
||||
else if ((sk.getTargetType() == L2TargetType.AURA) || (sk.getTargetType() == L2TargetType.BEHIND_AURA) || (sk.getTargetType() == L2TargetType.FRONT_AURA) || (sk.getTargetType() == L2TargetType.AURA_CORPSE_MOB))
|
||||
{
|
||||
boolean cancast = false;
|
||||
for (L2Character target : L2World.getInstance().getVisibleObjects(_actor, L2Character.class, sk.getAffectRange()))
|
||||
for (L2Character target : L2World.getInstance().getVisibleObjectsInRange(_actor, L2Character.class, sk.getAffectRange()))
|
||||
{
|
||||
if (!GeoEngine.getInstance().canSeeTarget(_actor, target) || (target.isAttackable() && !((L2Npc) _actor).isChaos()))
|
||||
{
|
||||
@@ -1480,7 +1480,7 @@ public class L2CharacterAI extends AbstractAI
|
||||
else if ((sk.getTargetType() == L2TargetType.AREA) || (sk.getTargetType() == L2TargetType.BEHIND_AREA) || (sk.getTargetType() == L2TargetType.FRONT_AREA))
|
||||
{
|
||||
boolean cancast = true;
|
||||
for (L2Character target : L2World.getInstance().getVisibleObjects(getAttackTarget(), L2Character.class, sk.getAffectRange()))
|
||||
for (L2Character target : L2World.getInstance().getVisibleObjectsInRange(getAttackTarget(), L2Character.class, sk.getAffectRange()))
|
||||
{
|
||||
if (!GeoEngine.getInstance().canSeeTarget(_actor, target) || (target.isAttackable() && !((L2Npc) _actor).isChaos()))
|
||||
{
|
||||
@@ -1505,7 +1505,7 @@ public class L2CharacterAI extends AbstractAI
|
||||
{
|
||||
int count = 0;
|
||||
int ccount = 0;
|
||||
for (L2Attackable target : L2World.getInstance().getVisibleObjects(_actor, L2Attackable.class, sk.getAffectRange()))
|
||||
for (L2Attackable target : L2World.getInstance().getVisibleObjectsInRange(_actor, L2Attackable.class, sk.getAffectRange()))
|
||||
{
|
||||
if (!GeoEngine.getInstance().canSeeTarget(_actor, target))
|
||||
{
|
||||
|
@@ -356,7 +356,7 @@ public class L2FortSiegeGuardAI extends L2CharacterAI implements Runnable
|
||||
|
||||
// Go through all L2Character that belong to its faction
|
||||
// for (L2Character cha : _actor.getKnownList().getKnownCharactersInRadius(((L2NpcInstance) _actor).getFactionRange()+_actor.getTemplate().collisionRadius))
|
||||
for (L2Character cha : L2World.getInstance().getVisibleObjects(_actor, L2Character.class, 1000))
|
||||
for (L2Character cha : L2World.getInstance().getVisibleObjectsInRange(_actor, L2Character.class, 1000))
|
||||
{
|
||||
if (!(cha instanceof L2Npc))
|
||||
{
|
||||
|
@@ -349,7 +349,7 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
|
||||
|
||||
// Go through all L2Character that belong to its faction
|
||||
// for (L2Character cha : _actor.getKnownList().getKnownCharactersInRadius(((L2NpcInstance) _actor).getFactionRange()+_actor.getTemplate().collisionRadius))
|
||||
for (L2Character cha : L2World.getInstance().getVisibleObjects(_actor, L2Character.class, 1000))
|
||||
for (L2Character cha : L2World.getInstance().getVisibleObjectsInRange(_actor, L2Character.class, 1000))
|
||||
{
|
||||
if (!(cha instanceof L2Npc))
|
||||
{
|
||||
|
@@ -644,14 +644,14 @@ public final class L2World
|
||||
}
|
||||
}
|
||||
|
||||
public <T extends L2Object> List<T> getVisibleObjects(L2Object object, Class<T> clazz, int range)
|
||||
public <T extends L2Object> List<T> getVisibleObjectsInRange(L2Object object, Class<T> clazz, int range)
|
||||
{
|
||||
final List<T> result = new ArrayList<>();
|
||||
forEachVisibleObjectInRange(object, clazz, range, result::add);
|
||||
return result;
|
||||
}
|
||||
|
||||
public <T extends L2Object> List<T> getVisibleObjects(L2Object object, Class<T> clazz, int range, Predicate<T> predicate)
|
||||
public <T extends L2Object> List<T> getVisibleObjectsInRange(L2Object object, Class<T> clazz, int range, Predicate<T> predicate)
|
||||
{
|
||||
final List<T> result = new ArrayList<>();
|
||||
forEachVisibleObjectInRange(object, clazz, range, o ->
|
||||
|
@@ -1325,7 +1325,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
|
||||
final int maxRadius = _stat.getPhysicalAttackRange();
|
||||
final int maxAngleDiff = _stat.getPhysicalAttackAngle();
|
||||
double attackpercent = 85;
|
||||
for (L2Character obj : L2World.getInstance().getVisibleObjects(this, L2Character.class, maxRadius))
|
||||
for (L2Character obj : L2World.getInstance().getVisibleObjectsInRange(this, L2Character.class, maxRadius))
|
||||
{
|
||||
// Skip main target.
|
||||
if (obj == target)
|
||||
|
@@ -49,7 +49,7 @@ public class ConditionPlayerRangeFromNpc extends Condition
|
||||
boolean existNpc = false;
|
||||
if ((_npcIds != null) && (_npcIds.length > 0) && (_radius > 0))
|
||||
{
|
||||
for (L2Npc target : L2World.getInstance().getVisibleObjects(effector, L2Npc.class, _radius))
|
||||
for (L2Npc target : L2World.getInstance().getVisibleObjectsInRange(effector, L2Npc.class, _radius))
|
||||
{
|
||||
if (CommonUtil.contains(_npcIds, target.getId()))
|
||||
{
|
||||
|
Reference in New Issue
Block a user