fix(movement): drop idle FUNC_WAIT resend with no 40250 counterpart

40250 only calls OnWaiting inside CInstanceBase::Transform() while
IsWalking() (InstanceBase.cpp:1922-1930); it never resends position
while standing. Remove _tick_on_waiting and its throttle state.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-22 17:12:16 +09:00
co-authored by Claude Opus 5
parent ad6ea9ad7e
commit 6a175ee293
5 changed files with 17 additions and 26 deletions
+4
View File
@@ -623,6 +623,10 @@ func _run() -> void:
_ck(fc.calls.move.size() == 2 and fc.calls.move[1][0] == np.FUNC_MOVE, "OnMoving after 300ms -> FUNC_MOVE")
pc.anim_state.emit("wait") # OnStop
_ck(fc.calls.move.size() == 3 and fc.calls.move[2][0] == np.FUNC_WAIT, "OnStop -> FUNC_WAIT")
# 站立期间被推开也不补发:40250 的 OnWaiting 只在走/跑动作中触发(InstanceBase.cpp:1930)。
pc.player.position = Vector3(4, 0, -1)
np._process(0.2)
_ck(fc.calls.move.size() == 3, "idle displacement sends no FUNC_WAIT")
fc.calls.move.clear()
np.on_use_skill(5, 2) # OnUseSkill
_ck(fc.calls.move.size() == 1 and fc.calls.move[0][0] == (np.FUNC_SKILL | 5) and fc.calls.move[0][1] == 2,