From a29d7b915c32346eff426736ee584b25a7566485 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 24 Oct 2019 21:23:46 +0000 Subject: [PATCH] Fixed moveToPawn offset stackoverflow. Contributed by Sahar. --- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 9 ++++----- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- .../java/org/l2jmobius/gameserver/ai/CreatureAI.java | 8 ++++---- 18 files changed, 72 insertions(+), 73 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 0db56af7ae..2e0bdb7a6d 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 0db56af7ae..2e0bdb7a6d 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 0db56af7ae..2e0bdb7a6d 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 0db56af7ae..2e0bdb7a6d 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 0db56af7ae..2e0bdb7a6d 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 0db56af7ae..2e0bdb7a6d 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 0db56af7ae..2e0bdb7a6d 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 0db56af7ae..2e0bdb7a6d 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/ai/CreatureAI.java index f6415f696a..a315ff74ba 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -1006,14 +1006,13 @@ public class CreatureAI extends AbstractAI return false; } - offset += _actor.getTemplate().collisionRadius; - + int offsetWithCollision = offset + _actor.getTemplate().collisionRadius; if (target instanceof Creature) { - offset += ((Creature) target).getTemplate().collisionRadius; + offsetWithCollision += ((Creature) target).getTemplate().collisionRadius; } - if (!_actor.isInsideRadius(target, offset, false, false)) + if (!_actor.isInsideRadius(target, offsetWithCollision, false, false)) { final Creature follow = getFollowTarget(); @@ -1043,7 +1042,7 @@ public class CreatureAI extends AbstractAI return true; } // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius(target, offset + 100, false, false)) + if (!_actor.isInsideRadius(target, offsetWithCollision + 100, false, false)) { return true; } diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/ai/CreatureAI.java index a8d82e6b8c..4ca2d7c029 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -991,19 +991,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (getFollowTarget() != null) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/ai/CreatureAI.java index a8d82e6b8c..4ca2d7c029 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -991,19 +991,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (getFollowTarget() != null) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 7c28ca874b..9ee7cd3242 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 7c28ca874b..9ee7cd3242 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 7c28ca874b..9ee7cd3242 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 7c28ca874b..9ee7cd3242 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 7c28ca874b..9ee7cd3242 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 7c28ca874b..9ee7cd3242 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/CreatureAI.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/CreatureAI.java index 7c28ca874b..9ee7cd3242 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/CreatureAI.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/CreatureAI.java @@ -942,19 +942,19 @@ public class CreatureAI extends AbstractAI return false; // skill radius -1 } - offset += _actor.getTemplate().getCollisionRadius(); + int offsetWithCollision = offset + _actor.getTemplate().getCollisionRadius(); if (target.isCreature()) { - offset += ((Creature) target).getTemplate().getCollisionRadius(); + offsetWithCollision += ((Creature) target).getTemplate().getCollisionRadius(); } - if (!_actor.isInsideRadius2D(target, offset)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision)) { // Caller should be Playable and thinkAttack/thinkCast/thinkInteract/thinkPickUp if (isFollowing()) { // allow larger hit range when the target is moving (check is run only once per second) - if (!_actor.isInsideRadius2D(target, offset + 100)) + if (!_actor.isInsideRadius2D(target, offsetWithCollision + 100)) { return true; }