diff --git a/Maple2.Server.Game/Model/Field/Actor/ActorStateComponent/MovementState.cs b/Maple2.Server.Game/Model/Field/Actor/ActorStateComponent/MovementState.cs index 1018b189a..acd9a715e 100644 --- a/Maple2.Server.Game/Model/Field/Actor/ActorStateComponent/MovementState.cs +++ b/Maple2.Server.Game/Model/Field/Actor/ActorStateComponent/MovementState.cs @@ -179,6 +179,7 @@ public void KeyframeEvent(string keyName) { case ActorState.PcSkill: StateSkillEvent(keyName); break; + case ActorState.Idle: case ActorState.Emotion: case ActorState.EmotionIdle: StateEmoteEvent(keyName); @@ -224,6 +225,7 @@ public void Update(long tickCount) { case ActorState.PcSkill: StateSkillCastUpdate(tickCount, tickDelta); break; + case ActorState.Idle: case ActorState.Emotion: case ActorState.EmotionIdle: EmoteStateUpdate(tickCount, tickDelta); diff --git a/Maple2.Server.Game/Model/Field/Actor/ActorStateComponent/MovementStateTasks/MovementState.EmoteTask.cs b/Maple2.Server.Game/Model/Field/Actor/ActorStateComponent/MovementStateTasks/MovementState.EmoteTask.cs index 4842c6dba..359c70dc8 100644 --- a/Maple2.Server.Game/Model/Field/Actor/ActorStateComponent/MovementStateTasks/MovementState.EmoteTask.cs +++ b/Maple2.Server.Game/Model/Field/Actor/ActorStateComponent/MovementStateTasks/MovementState.EmoteTask.cs @@ -48,6 +48,6 @@ private void Emote(NpcTask task, string sequence, bool isIdle, float duration) { emoteActionTask = task; stateSequence = actor.AnimationState.PlayingSequence; - SetState(isIdle ? ActorState.Emotion : ActorState.EmotionIdle); + SetState(isIdle ? ActorState.Idle : ActorState.Emotion); } } diff --git a/Maple2.Server.Game/Model/Field/Actor/FieldNpc.cs b/Maple2.Server.Game/Model/Field/Actor/FieldNpc.cs index 70930b4bc..aeec2504e 100644 --- a/Maple2.Server.Game/Model/Field/Actor/FieldNpc.cs +++ b/Maple2.Server.Game/Model/Field/Actor/FieldNpc.cs @@ -311,7 +311,9 @@ public virtual void Animate(string sequenceName, float duration = -1f) { return; } - idleTask = MovementState.TryEmote(sequence.Name, false, duration); + bool isIdle = sequenceName.Contains("idle", StringComparison.OrdinalIgnoreCase); + + idleTask = MovementState.TryEmote(sequence.Name, isIdle, duration); } public void DropLoot(FieldPlayer firstPlayer) {