Сообщение от
Nexius_Tailer
гораздо проще
...сделать так
PHP код:
CMD:gethere(playerid, params[])
{
new Float:x,
Float:y,
Float:z,
Float: health = -1.0;
GetPlayerPos(playerid, x, y, z);
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))
continue;
SetPlayerPos(i, x, y+1.0, z+2.0);
GetPlayerHealth(i, health);
SetPVarFloat(i, "SpawnHealth", health);
SetPlayerHealth(i, 0x7F800000);
}
if(floatcmp(health, -1.0))
SetTimer("@___ReturnPlayerHealth", 3000, false);
}
PHP код:
@___ReturnPlayerHealth();
@___ReturnPlayerHealth()
{
new
Float: health;
for(new i; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || !floatcmp(health = GetPVarFloat(i, "SpawnHealth"), 0.0))
continue;
SetPlayerHealth(i, health);
DeletePVar(i, "SpawnHealth");
}
}
Я думаю, автор получил ответ на свой вопрос
UPD: И да, формула для спавна по кругу должна выглядеть как-то так
PHP код:
pos_x + floatsin((360.0/число_игроков_в_круге) * число_игроков_в_круге, degrees) * радиус_от_центрального_игрока//Х координата
pos_y + floatcos((360.0/число_игроков_в_круге) * число_игроков_в_круге, degrees) * радиус_от_центрального_игрока//Y координата
Часть формулы можно подсчитать для каждого круга ещё на этапе написания скрипта. Если всё настроить, такое телепортирование будет выглядеть довольно интересно.
Можно так же и с углом поворота игроков поиграться, дабы, например, все смотрели конкретно в сторону того, кто их телепортировал.
Вроде мелочь, а уже часть игроков оценит такой щепетильный подход