From 80b1ab709d09f556122ec96ad93707a34c24f686 Mon Sep 17 00:00:00 2001 From: FatBoy-DOTC Date: Thu, 27 Feb 2025 19:16:37 -0600 Subject: [PATCH] relog crash bug --- src/engine/InterestManagement/InterestManager.java | 12 ++++++++++++ src/engine/mobileAI/MobAI.java | 12 +++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/engine/InterestManagement/InterestManager.java b/src/engine/InterestManagement/InterestManager.java index 854f0da9..e44da878 100644 --- a/src/engine/InterestManagement/InterestManager.java +++ b/src/engine/InterestManagement/InterestManager.java @@ -511,6 +511,18 @@ public enum InterestManager implements Runnable { if (player == null) return; + for(PlayerCharacter pc : SessionManager.getAllActivePlayerCharacters()){ + if(pc.equals(player)){ + try{ + WorldGrid.RemoveWorldObject(player); + }catch(Exception e){ + + } + } + } + + + ClientConnection origin = player.getClientConnection(); if (origin == null) diff --git a/src/engine/mobileAI/MobAI.java b/src/engine/mobileAI/MobAI.java index bf59cb46..ee1863e6 100644 --- a/src/engine/mobileAI/MobAI.java +++ b/src/engine/mobileAI/MobAI.java @@ -976,8 +976,8 @@ public class MobAI { if (mob.BehaviourType.ordinal() == Enum.MobBehaviourType.GuardCaptain.ordinal()) CheckForPlayerGuardAggro(mob); } else { - //CheckForAggro(mob); - NewAggroMechanic(mob); + if(mob.combatTarget == null) + NewAggroMechanic(mob); } } @@ -1416,10 +1416,16 @@ public class MobAI { public static void NewAggroMechanic(Mob mob){ - if(mob == null || !mob.isAlive()){ + if(mob == null || !mob.isAlive() || mob.playerAgroMap.isEmpty()){ return; } + if(mob.hate_values == null) + mob.hate_values = new HashMap<>(); + + if(mob.combatTarget != null) + return; + HashSet inRange = WorldGrid.getObjectsInRangePartial(mob.loc,60.0f,MBServerStatics.MASK_PLAYER); if(inRange.isEmpty()){