в начало
Code
enum kXY
{
k,
Float:X,
Float:Y
}
new FreezePlayer[MAX_PLAYERS][kXY];
forward Freez();
public Freez()
{
for(new =0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i) && FreezePlayer[i][k])
{
new Float,x,Float:y,Float:z;
GetPlayerPos(i,x,y,z);
SetPlayerPos(i,FreezePlayer[i][X],FreezePlayer[i][Y],z);
}
}
}
Каманда на заморозку
Code
if(!strcmp("/freez",cmd,true))
{
new tmp[40];
new id = strval(tmp);
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
//Сообщение что не введён id игрока
else if(!IsPlayerConnected(id))
//Сообщение что игрок не подключён к серверу
else
{
FreezePlayer[id][k] = !FreezePlayer[id][k];
if(FreezePlayer[id][k])
{
//Сообщение что игрок был заморожен
new Float:z
GetPlayerPos(id,FreezePlayer[id][X],FreezePlayer[id][Y],z);
}
else
//Разморожен
}
retrun 1;
}
На случай если игрок вышел из игры
Code
public OnPlayerDisconnect(playerid, reason)
{
FreezePlayer[playerid][k] = 0;
return 1;
}