diff --git a/server/gameserver/android.ai.cc b/server/gameserver/android.ai.cc index b90a24f..917f31e 100644 --- a/server/gameserver/android.ai.cc +++ b/server/gameserver/android.ai.cc @@ -220,8 +220,14 @@ void AndroidAI::UpdateLastNpc() } else if (hum->room->GetFrameNo() - hum->enable_frameno < SERVER_FRAME_RATE * 1.5) { int speed = std::max(1, (int)hum->GetSpeed()); for (int i = 0; i < speed; ++i) { + a8::Vec2 old_pos = hum->GetPos(); hum->SetPos(hum->GetPos() + hum->move_dir); - hum->room->grid_service->MoveHuman(hum); + if (!hum->room->OverBorder(hum->GetPos(), hum->meta->i->radius())) { + hum->room->grid_service->MoveHuman(hum); + } else { + hum->SetPos(old_pos); + break; + } } } else if (hum->room->GetFrameNo() - hum->enable_frameno < SERVER_FRAME_RATE * 3) { Human* enemy = hum->last_human_target;