Сдается мне, что проблема в $destx = (pos[0] + $game_map.display_x / 4) / 32.
Дело все в том, что персонаж можешь находиться и не по центру экрана, а скраю - если действие происходит в углу карты. Или я ошибаюсь? Или там это вообще отменяется?
Кроме того, если пихать патч в апдейт, следует еще и очищать уже существующее действие, по принципу скрипта следования.
Ну и наконец не
Код:
e = Node.new($destx, $desty)
$path = A_Star_Pathfinder.new(e)
а
e = Node.new($destx, $desty)
$path = A_Star_Pathfinder.new(e, -1)
Ибо иначе кто будет ходить? о.О