Функция вернет кол-во игроков рядом с текущей позицией игрока в заданном радиусе
Использую на своем сервере при рандомном спавне нового игрока, что бы не заспавнился рядом с уже вооруженным и злым
Если при спавне рядом есть игрок, то выбираются новые координаты для спавна
int CheckNearestObjects(PlayerBase player, int radius)
{
array<Object> nearest_objects = new array<Object>;
array<CargoBase> proxy_cargos = new array<CargoBase>;
Object object;
string className;
int objectcount = 0;
GetGame().GetObjectsAtPosition (player.GetPosition(), radius, nearest_objects, proxy_cargos );
Print("::: init_mod.c ::: CheckNearestObjects (int radius) ::: Radius: " + radius.ToString() + ", nearest_objects: " + nearest_objects.Count().ToString());
for ( int i = 0; i < nearest_objects.Count(); i++ )
{
object = nearest_objects.Get(i);
className = object.GetType();
if ( object )
{
if (object.IsMan())
{
if (player != object)
{
Print( "::: Init.c ::: CheckNearestObjects: IsMan(): "+i.ToString()+" => " + object.ToString() + " => Type: " + className + " => Position: " + object.GetPosition().ToString());
objectcount = objectcount + 1;
}
else
{
Print( "::: Init.c ::: CheckNearestObjects: isMan(): player and object " + object.ToString() + " the same object!");
}
}
}
}
return objectcount;
}