diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index 70037df7..ab478840 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -1580,7 +1580,8 @@ public class CreatureObject extends TangibleObject implements IPersistent { synchronized(objectMutex) { this.performanceListenee = performanceListenee; } - getClient().getSession().write(messageBuilder.buildListenToId(performanceListenee.getObjectId())); + if(getClient() != null) + getClient().getSession().write(messageBuilder.buildListenToId(performanceListenee.getObjectId())); } diff --git a/src/services/ai/states/AIState.java b/src/services/ai/states/AIState.java index 7238d6ed..0aa18891 100644 --- a/src/services/ai/states/AIState.java +++ b/src/services/ai/states/AIState.java @@ -144,8 +144,8 @@ public abstract class AIState { } else { newX = currentPathPosition.x; - newY = currentPathPosition.y; newZ = currentPathPosition.z; + newY = core.terrainService.getHeight(creature.getPlanetId(), newX, newX); } oldPosition = currentPathPosition; } diff --git a/src/services/ai/states/AttackState.java b/src/services/ai/states/AttackState.java index 690c5c18..2d49791c 100644 --- a/src/services/ai/states/AttackState.java +++ b/src/services/ai/states/AttackState.java @@ -76,6 +76,7 @@ public class AttackState extends AIState { actor.setNextPosition(actor.getFollowObject().getPosition()); else { //recover(actor); + actor.faceObject(actor.getFollowObject()); actor.scheduleMovement(); return StateResult.UNFINISHED; } @@ -136,7 +137,7 @@ public class AttackState extends AIState { actor.scheduleRecovery(); return StateResult.UNFINISHED; } - actor.faceObject(target); + //actor.faceObject(target); Vector attacks = actor.getMobileTemplate().getAttacks();