From 64fc5677a34488f6eb53abe26733c9517813f164 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sat, 20 Jun 2020 22:18:28 +0000 Subject: [PATCH] Fixed summon follow mode after target is killed. Contributed by Sahar. --- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- .../java/org/l2jmobius/gameserver/ai/SummonAI.java | 14 +++++++++++++- 15 files changed, 195 insertions(+), 15 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try { diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try { diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try { diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try { diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try { diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try { diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try { diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try { diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try { diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try { diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try { diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try { diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try { diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/SummonAI.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/SummonAI.java index 908f5ab3ce..1646ec86d9 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/SummonAI.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/ai/SummonAI.java @@ -98,13 +98,18 @@ public class SummonAI extends PlayableAI implements Runnable if (checkTargetLostOrDead(attackTarget)) { setTarget(null); - ((Summon) _actor).setFollowStatus(true); + if (_startFollow) + { + ((Summon) _actor).setFollowStatus(true); + } return; } + if (maybeMoveToPawn(attackTarget, _actor.getPhysicalAttackRange())) { return; } + clientStopMoving(null); _actor.doAutoAttack(attackTarget); } @@ -124,11 +129,13 @@ public class SummonAI extends PlayableAI implements Runnable summon.setFollowStatus(true); return; } + final boolean val = _startFollow; if (maybeMoveToPawn(target, _actor.getMagicalAttackRange(_skill))) { return; } + summon.setFollowStatus(false); setIntention(AI_INTENTION_IDLE); _startFollow = val; @@ -142,10 +149,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); getActor().doPickupItem(target); } @@ -157,10 +166,12 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + if (maybeMoveToPawn(target, 36)) { return; } + setIntention(AI_INTENTION_IDLE); } @@ -171,6 +182,7 @@ public class SummonAI extends PlayableAI implements Runnable { return; } + _thinking = true; try {