Всем привет.
Вот решил выложить заморозку и разморозку игрока (доступно только для администраторов).
В public OnPlayerCommandText(playerid, cmdtext[]):
В начало public`а:
new string[256];
new giveplayer[MAX_PLAYER_NAME];
new giveplayerid, idx;
new cmd[256], tmp[256];
new sendername[MAX_PLAYER_NAME];
cmd = strtok(cmdtext, idx);
Ниже добавляем сами команды:
else if(strcmp(cmd, "/freeze", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 1) <------ Тут ставим свой уровень Администратора который может использовать данную команду
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Введите: /freeze [id]");
new playa;
playa = ReturnUser(tmp);
if(PlayerInfo[playa][pAdmin] > 0) return SendClientMessage(playerid, COLOR_RED, "Администратор не может быть заморожен");
if (PlayerInfo[playerid][pAdmin] >= 2)
{
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
TogglePlayerControllable(playa, 0);
format(string, sizeof(string), "Администратор %s заморозил %s",sendername, giveplayer);
printf("%s",string);
format(string, sizeof(string), "%s был заморожен Администраторов %s",giveplayer ,sendername);
ABroadCast(COLOR_LIGHTRED,string,1);
}
}
}
else SendClientMessage(playerid, COLOR_GRAD1, "Вы не уполномочены использовать данную команду!");
}
return true;
}
Вот решил выложить заморозку и разморозку игрока (доступно только для администраторов).
В public OnPlayerCommandText(playerid, cmdtext[]):
В начало public`а:
new string[256];
new giveplayer[MAX_PLAYER_NAME];
new giveplayerid, idx;
new cmd[256], tmp[256];
new sendername[MAX_PLAYER_NAME];
cmd = strtok(cmdtext, idx);
Ниже добавляем сами команды:
else if(strcmp(cmd, "/freeze", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 1) <------ Тут ставим свой уровень Администратора который может использовать данную команду
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Введите: /freeze [id]");
new playa;
playa = ReturnUser(tmp);
if(PlayerInfo[playa][pAdmin] > 0) return SendClientMessage(playerid, COLOR_RED, "Администратор не может быть заморожен");
if (PlayerInfo[playerid][pAdmin] >= 2)
{
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
TogglePlayerControllable(playa, 0);
format(string, sizeof(string), "Администратор %s заморозил %s",sendername, giveplayer);
printf("%s",string);
format(string, sizeof(string), "%s был заморожен Администраторов %s",giveplayer ,sendername);
ABroadCast(COLOR_LIGHTRED,string,1);
}
}
}
else SendClientMessage(playerid, COLOR_GRAD1, "Вы не уполномочены использовать данную команду!");
}
return true;
}
Код:
else if(strcmp(cmd, "/unfreeze", true) == 0)
{
if(PlayerInfo[playerid][pAdmin] >= 1) <------ Тут ставим свой уровень Администратора который может использовать данную команду
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Введите: /unfreeze [id]");
return true;
}
new playa;
playa = ReturnUser(tmp);
if (PlayerInfo[playerid][pAdmin] >= 1)
{
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
TogglePlayerControllable(playa, 1);
format(string, sizeof(string), "Администратор %s разоморозил %s",sendername, giveplayer);
printf("%s",string);
format(string, sizeof(string), "Администратор %s разморозил %s ",sendername, giveplayer);
ABroadCast(COLOR_LIGHTRED,string,1);
}
}
}
else SendClientMessage(playerid, COLOR_GRAD1, "Вы не уполномочены использовать данную команду!");
}
return true;
}
Ко всем forward:
forward ABroadCast(color,const string[],level);
Ко всем public`ам:
public ABroadCast(color,const string[],level)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if (PlayerInfo[pAdmin] >= level)
{
SendClientMessage(i, color, string);
}
}
}
return true;
}
Если буду проблемы, то пишите в данную тему, будем решать 83DDE0F: Удачи!
forward ABroadCast(color,const string[],level);
Ко всем public`ам:
public ABroadCast(color,const string[],level)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if (PlayerInfo[pAdmin] >= level)
{
SendClientMessage(i, color, string);
}
}
}
return true;
}
Если буду проблемы, то пишите в данную тему, будем решать 83DDE0F: Удачи!
Последнее редактирование модератором: