Distinguish getVisibleObjectsInRange from getVisibleObjects.
This commit is contained in:
@@ -148,7 +148,7 @@ public final class AirShipGludioGracia extends AbstractNpcAI implements Runnable
|
||||
private final L2Npc findController()
|
||||
{
|
||||
// check objects around the ship
|
||||
for (L2Npc obj : L2World.getInstance().getVisibleObjects(_ship, L2Npc.class, 600))
|
||||
for (L2Npc obj : L2World.getInstance().getVisibleObjectsInRange(_ship, L2Npc.class, 600))
|
||||
{
|
||||
for (int id : CONTROLLERS)
|
||||
{
|
||||
|
@@ -312,7 +312,7 @@ public final class Antharas extends AbstractNpcAI
|
||||
}
|
||||
case "START_MOVE":
|
||||
{
|
||||
for (L2PcInstance players : L2World.getInstance().getVisibleObjects(npc, L2PcInstance.class, 4000))
|
||||
for (L2PcInstance players : L2World.getInstance().getVisibleObjectsInRange(npc, L2PcInstance.class, 4000))
|
||||
{
|
||||
if (players.isHero())
|
||||
{
|
||||
|
@@ -335,7 +335,7 @@ public final class Baium extends AbstractNpcAI
|
||||
else
|
||||
{
|
||||
boolean found = false;
|
||||
for (L2Playable creature : L2World.getInstance().getVisibleObjects(mob, L2Playable.class, 1000))
|
||||
for (L2Playable creature : L2World.getInstance().getVisibleObjectsInRange(mob, L2Playable.class, 1000))
|
||||
{
|
||||
if (zone.isInsideZone(creature) && !creature.isDead())
|
||||
{
|
||||
@@ -777,7 +777,7 @@ public final class Baium extends AbstractNpcAI
|
||||
|
||||
private L2PcInstance getRandomPlayer(L2Npc npc)
|
||||
{
|
||||
for (L2Character creature : L2World.getInstance().getVisibleObjects(npc, L2PcInstance.class, 2000))
|
||||
for (L2Character creature : L2World.getInstance().getVisibleObjectsInRange(npc, L2PcInstance.class, 2000))
|
||||
{
|
||||
if ((creature != null) && zone.isInsideZone(creature) && !creature.isDead())
|
||||
{
|
||||
|
@@ -610,7 +610,7 @@ public final class Beleth extends AbstractNpcAI
|
||||
{
|
||||
if (!npc.isDead() && !npc.isCastingNow())
|
||||
{
|
||||
if ((getRandom(100) < 40) && !L2World.getInstance().getVisibleObjects(npc, L2PcInstance.class, 200).isEmpty())
|
||||
if ((getRandom(100) < 40) && !L2World.getInstance().getVisibleObjectsInRange(npc, L2PcInstance.class, 200).isEmpty())
|
||||
{
|
||||
npc.doCast(BLEED.getSkill());
|
||||
return null;
|
||||
@@ -643,12 +643,12 @@ public final class Beleth extends AbstractNpcAI
|
||||
}
|
||||
return null;
|
||||
}
|
||||
if ((getRandom(100) < 40) && !L2World.getInstance().getVisibleObjects(npc, L2PcInstance.class, 200).isEmpty())
|
||||
if ((getRandom(100) < 40) && !L2World.getInstance().getVisibleObjectsInRange(npc, L2PcInstance.class, 200).isEmpty())
|
||||
{
|
||||
npc.doCast(LIGHTENING.getSkill());
|
||||
return null;
|
||||
}
|
||||
for (L2PcInstance plr : L2World.getInstance().getVisibleObjects(npc, L2PcInstance.class, 950))
|
||||
for (L2PcInstance plr : L2World.getInstance().getVisibleObjectsInRange(npc, L2PcInstance.class, 950))
|
||||
{
|
||||
npc.setTarget(plr);
|
||||
npc.doCast(FIREBALL.getSkill());
|
||||
@@ -663,7 +663,7 @@ public final class Beleth extends AbstractNpcAI
|
||||
public String onSpawn(L2Npc npc)
|
||||
{
|
||||
npc.setRunning();
|
||||
if (!L2World.getInstance().getVisibleObjects(npc, L2PcInstance.class, 300).isEmpty() && (getRandom(100) < 60))
|
||||
if (!L2World.getInstance().getVisibleObjectsInRange(npc, L2PcInstance.class, 300).isEmpty() && (getRandom(100) < 60))
|
||||
{
|
||||
npc.doCast(BLEED.getSkill());
|
||||
}
|
||||
@@ -728,7 +728,7 @@ public final class Beleth extends AbstractNpcAI
|
||||
}
|
||||
else if (!npc.isDead() && !npc.isCastingNow())
|
||||
{
|
||||
if (!L2World.getInstance().getVisibleObjects(npc, L2PcInstance.class, 200).isEmpty())
|
||||
if (!L2World.getInstance().getVisibleObjectsInRange(npc, L2PcInstance.class, 200).isEmpty())
|
||||
{
|
||||
npc.doCast(LIGHTENING.getSkill());
|
||||
return null;
|
||||
|
@@ -175,7 +175,7 @@ public class DrChaos extends AbstractNpcAI
|
||||
{
|
||||
if (GrandBossManager.getInstance().getBossStatus(CHAOS_GOLEM) == NORMAL)
|
||||
{
|
||||
for (L2PcInstance obj : L2World.getInstance().getVisibleObjects(npc, L2PcInstance.class, 500))
|
||||
for (L2PcInstance obj : L2World.getInstance().getVisibleObjectsInRange(npc, L2PcInstance.class, 500))
|
||||
{
|
||||
if (obj.isDead())
|
||||
{
|
||||
|
@@ -519,7 +519,7 @@ public final class Valakas extends AbstractNpcAI
|
||||
}
|
||||
|
||||
// Valakas will use mass spells if he feels surrounded.
|
||||
if (L2World.getInstance().getVisibleObjects(npc, L2PcInstance.class, 1200).size() >= 20)
|
||||
if (L2World.getInstance().getVisibleObjectsInRange(npc, L2PcInstance.class, 1200).size() >= 20)
|
||||
{
|
||||
return VALAKAS_AOE_SKILLS[getRandom(VALAKAS_AOE_SKILLS.length)];
|
||||
}
|
||||
|
@@ -81,7 +81,7 @@ public class NpcBufferAI implements Runnable
|
||||
}
|
||||
case RANGE:
|
||||
{
|
||||
for (L2Character target : L2World.getInstance().getVisibleObjects(_npc, L2Character.class, skill.getAffectRange()))
|
||||
for (L2Character target : L2World.getInstance().getVisibleObjectsInRange(_npc, L2Character.class, skill.getAffectRange()))
|
||||
{
|
||||
switch (_skillData.getAffectObject())
|
||||
{
|
||||
|
@@ -105,7 +105,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final L2Object target = npc.getTarget();
|
||||
if (!npc.isInCombat() || (target == null) || (npc.calculateDistance2D(target) > npc.getAggroRange()))
|
||||
{
|
||||
for (L2Character nearby : L2World.getInstance().getVisibleObjects(npc, L2Character.class, npc.getAggroRange()))
|
||||
for (L2Character nearby : L2World.getInstance().getVisibleObjectsInRange(npc, L2Character.class, npc.getAggroRange()))
|
||||
{
|
||||
if (nearby.isPlayable() && GeoEngine.getInstance().canSeeTarget(npc, nearby))
|
||||
{
|
||||
|
@@ -126,7 +126,7 @@ public class AdminScan implements IAdminCommandHandler
|
||||
final NpcHtmlMessage html = new NpcHtmlMessage();
|
||||
html.setFile(activeChar, "data/html/admin/scan.htm");
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
for (L2Character character : L2World.getInstance().getVisibleObjects(activeChar, L2Character.class, radius))
|
||||
for (L2Character character : L2World.getInstance().getVisibleObjectsInRange(activeChar, L2Character.class, radius))
|
||||
{
|
||||
if (character instanceof L2Npc)
|
||||
{
|
||||
|
@@ -39,7 +39,7 @@ public class Aura implements ITargetTypeHandler
|
||||
{
|
||||
final List<L2Character> targetList = new ArrayList<>();
|
||||
final boolean srcInArena = (activeChar.isInsideZone(ZoneId.PVP) && !activeChar.isInsideZone(ZoneId.SIEGE));
|
||||
for (L2Character obj : L2World.getInstance().getVisibleObjects(activeChar, L2Character.class, skill.getAffectRange()))
|
||||
for (L2Character obj : L2World.getInstance().getVisibleObjectsInRange(activeChar, L2Character.class, skill.getAffectRange()))
|
||||
{
|
||||
if (obj.isDoor() || obj.isAttackable() || obj.isPlayable())
|
||||
{
|
||||
|
@@ -38,7 +38,7 @@ public class AuraCorpseMob implements ITargetTypeHandler
|
||||
final List<L2Character> targetList = new ArrayList<>();
|
||||
// Go through the L2Character _knownList
|
||||
final int maxTargets = skill.getAffectLimit();
|
||||
for (L2Attackable obj : L2World.getInstance().getVisibleObjects(activeChar, L2Attackable.class, skill.getAffectRange()))
|
||||
for (L2Attackable obj : L2World.getInstance().getVisibleObjectsInRange(activeChar, L2Attackable.class, skill.getAffectRange()))
|
||||
{
|
||||
if (obj.isDead())
|
||||
{
|
||||
|
@@ -38,7 +38,7 @@ public class BehindAura implements ITargetTypeHandler
|
||||
final List<L2Character> targetList = new ArrayList<>();
|
||||
final boolean srcInArena = (activeChar.isInsideZone(ZoneId.PVP) && !activeChar.isInsideZone(ZoneId.SIEGE));
|
||||
final int maxTargets = skill.getAffectLimit();
|
||||
for (L2Character obj : L2World.getInstance().getVisibleObjects(activeChar, L2Character.class, skill.getAffectRange()))
|
||||
for (L2Character obj : L2World.getInstance().getVisibleObjectsInRange(activeChar, L2Character.class, skill.getAffectRange()))
|
||||
{
|
||||
if (obj.isAttackable() || obj.isPlayable())
|
||||
{
|
||||
|
@@ -147,7 +147,7 @@ public class Clan implements ITargetTypeHandler
|
||||
|
||||
targetList.add(activeChar);
|
||||
|
||||
for (L2Npc newTarget : L2World.getInstance().getVisibleObjects(activeChar, L2Npc.class, skill.getCastRange()))
|
||||
for (L2Npc newTarget : L2World.getInstance().getVisibleObjectsInRange(activeChar, L2Npc.class, skill.getCastRange()))
|
||||
{
|
||||
if (newTarget.isNpc() && npc.isInMyClan(newTarget))
|
||||
{
|
||||
|
@@ -47,7 +47,7 @@ public class ClanMember implements ITargetTypeHandler
|
||||
activeChar
|
||||
};
|
||||
}
|
||||
for (L2Npc newTarget : L2World.getInstance().getVisibleObjects(activeChar, L2Npc.class, skill.getCastRange()))
|
||||
for (L2Npc newTarget : L2World.getInstance().getVisibleObjectsInRange(activeChar, L2Npc.class, skill.getCastRange()))
|
||||
{
|
||||
if (newTarget.isNpc() && npc.isInMyClan(newTarget))
|
||||
{
|
||||
|
@@ -135,7 +135,7 @@ public class CorpseClan implements ITargetTypeHandler
|
||||
|
||||
targetList.add(activeChar);
|
||||
|
||||
for (L2Npc newTarget : L2World.getInstance().getVisibleObjects(activeChar, L2Npc.class, skill.getCastRange()))
|
||||
for (L2Npc newTarget : L2World.getInstance().getVisibleObjectsInRange(activeChar, L2Npc.class, skill.getCastRange()))
|
||||
{
|
||||
if (npc.isInMyClan(newTarget))
|
||||
{
|
||||
|
@@ -38,7 +38,7 @@ public class FrontAura implements ITargetTypeHandler
|
||||
final List<L2Character> targetList = new ArrayList<>();
|
||||
final boolean srcInArena = (activeChar.isInsideZone(ZoneId.PVP) && !activeChar.isInsideZone(ZoneId.SIEGE));
|
||||
final int maxTargets = skill.getAffectLimit();
|
||||
for (L2Character obj : L2World.getInstance().getVisibleObjects(activeChar, L2Character.class, skill.getAffectRange()))
|
||||
for (L2Character obj : L2World.getInstance().getVisibleObjectsInRange(activeChar, L2Character.class, skill.getAffectRange()))
|
||||
{
|
||||
if (obj.isAttackable() || obj.isPlayable())
|
||||
{
|
||||
|
@@ -71,7 +71,7 @@ public class PartyClan implements ITargetTypeHandler
|
||||
|
||||
// Get all visible objects in a spherical area near the L2Character
|
||||
final int maxTargets = skill.getAffectLimit();
|
||||
for (L2PcInstance obj : L2World.getInstance().getVisibleObjects(activeChar, L2PcInstance.class, radius))
|
||||
for (L2PcInstance obj : L2World.getInstance().getVisibleObjectsInRange(activeChar, L2PcInstance.class, radius))
|
||||
{
|
||||
if (obj == null)
|
||||
{
|
||||
|
@@ -1366,7 +1366,7 @@ public final class CrystalCaverns extends AbstractInstance
|
||||
|
||||
final CrystalGolem cryGolem = world.crystalGolems.get(npc);
|
||||
int minDist = 300000;
|
||||
for (L2ItemInstance object : L2World.getInstance().getVisibleObjects(npc, L2ItemInstance.class, 300))
|
||||
for (L2ItemInstance object : L2World.getInstance().getVisibleObjectsInRange(npc, L2ItemInstance.class, 300))
|
||||
{
|
||||
if (object.getId() == CRYSTALFOOD)
|
||||
{
|
||||
|
@@ -682,7 +682,7 @@ public class Q00144_PailakaInjuredDragon extends Quest
|
||||
// This function will check if there is other mob alive in this wall of mobs. If all mobs in the first row are dead then despawn the second row mobs, the mages.
|
||||
private void checkIfLastInWall(L2Npc npc)
|
||||
{
|
||||
final Collection<L2Npc> knowns = L2World.getInstance().getVisibleObjects(npc, L2Npc.class, 700);
|
||||
final Collection<L2Npc> knowns = L2World.getInstance().getVisibleObjectsInRange(npc, L2Npc.class, 700);
|
||||
for (L2Npc npcs : knowns)
|
||||
{
|
||||
if (npcs.isDead())
|
||||
@@ -876,7 +876,7 @@ public class Q00144_PailakaInjuredDragon extends Quest
|
||||
final int[] zoneTeleport = NOEXIT_ZONES.get(zone.getId());
|
||||
if (zoneTeleport != null)
|
||||
{
|
||||
for (L2Character npc : L2World.getInstance().getVisibleObjects(character, L2Npc.class, 700))
|
||||
for (L2Character npc : L2World.getInstance().getVisibleObjectsInRange(character, L2Npc.class, 700))
|
||||
{
|
||||
if (npc.isDead())
|
||||
{
|
||||
|
@@ -259,7 +259,7 @@ public class Q00727_HopeWithinTheDarkness extends Quest
|
||||
{
|
||||
if (npc.getAI().getIntention() != CtrlIntention.AI_INTENTION_ATTACK)
|
||||
{
|
||||
for (L2Character foe : L2World.getInstance().getVisibleObjects(npc, L2Character.class, npc.getAggroRange()))
|
||||
for (L2Character foe : L2World.getInstance().getVisibleObjectsInRange(npc, L2Character.class, npc.getAggroRange()))
|
||||
{
|
||||
if (foe.isAttackable() && !(foe instanceof L2QuestGuardInstance))
|
||||
{
|
||||
|
@@ -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