diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 03274966..a7ba10a9 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -28,6 +28,7 @@ #include "effect.h" #include "stats.h" #include "team.h" +#include "bornpoint.h" #include "mt/Param.h" #include "mt/Hero.h" @@ -2560,15 +2561,22 @@ void Creature::OnLand() break; } } - if (!ok) { - abort(); - } #if 1 if (point.y < 1.2) { point.y = 3.0f; } #endif - room->map_instance->UnScale(point); + if (!ok) { + #if 1 + if (IsHuman()) { + point = AsHuman()->born_point->RandPoint().ToGlmVec3(); + } + #else + abort(); + #endif + } else { + room->map_instance->UnScale(point); + } Global::Instance()->verify_set_pos = 1; GetMutablePos().FromGlmVec3(point); Global::Instance()->verify_set_pos = 0;