diff --git a/src/engine/net/client/msg/LoadCharacterMsg.java b/src/engine/net/client/msg/LoadCharacterMsg.java index 49464cf7..e88783ad 100644 --- a/src/engine/net/client/msg/LoadCharacterMsg.java +++ b/src/engine/net/client/msg/LoadCharacterMsg.java @@ -102,6 +102,22 @@ public class LoadCharacterMsg extends ClientNetMsg { writer.putInt(region.getRoom()); } } + else if (absChar.getObjectType().equals(GameObjectType.Mob)){ + Regions Mobregion = absChar.getRegion(); + + if (region == null){ + writer.putInt(-1); + writer.putInt(-1); + }else{ + Building regionBuilding = Regions.GetBuildingForRegion(Mobregion); + if (regionBuilding == null){ + writer.putInt(-1); + writer.putInt(-1); + }else{ + writer.putInt(region.getLevel()); + writer.putInt(region.getRoom()); + } + } //TODO below is Mob Region Serialization, not implemented. default to -1, which is ground. }else { diff --git a/src/engine/objects/Mob.java b/src/engine/objects/Mob.java index 4130be5d..5390903e 100644 --- a/src/engine/objects/Mob.java +++ b/src/engine/objects/Mob.java @@ -1152,11 +1152,13 @@ public class Mob extends AbstractIntelligenceAgent { if (newLoc.equals(this.getEndLoc())) { this.stopMovement(newLoc); + this.region = AbstractWorldObject.GetRegionByWorldObject(this); return; //Next upda } setLoc(newLoc); + this.region = AbstractWorldObject.GetRegionByWorldObject(this); //Next update will be end Loc, lets stop him here. } diff --git a/src/engine/objects/NPC.java b/src/engine/objects/NPC.java index 7ee76473..7f925c49 100644 --- a/src/engine/objects/NPC.java +++ b/src/engine/objects/NPC.java @@ -1222,6 +1222,7 @@ public class NPC extends AbstractCharacter { }catch (Exception e){ Logger.error( e.getMessage()); } + this.region = AbstractWorldObject.GetRegionByWorldObject(this); } public void removeFromZone() {