Funky_Storage
Компетентный
Информация: Данная команда позволяет выдать предупреждение администратору. При каждом предупреждении уровень администрирования становится меньше. После 3-х предупреждений администратор снимается с должности. (Все легко настроить)
Команда: /awarn [ID] [Причина]
Автор: Funky Storage (Я)
И так, приступим.
Для начала нажмем Ctrl+F и найдем: public OnPlayerCommandText
Далее впишем туда нашу команду:
PHP:
else if(strcmp(cmd, "/awarn", true) == 0)
{
if (PlayerInfo[playerid][pAdmin] >= 7)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /awarn [id] [причина]");
if (dostup[playerid] != 1) return ShowPlayerDialog(playerid,2934,DIALOG_STYLE_INPUT,"Доступ администратора","Введите пароль от административной панели","Ок","Отмена");
giveplayerid = ReturnUser(tmp);
if (PlayerInfo[playerid][pAdmin] >= 7)
{
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /awarn [id] [причина]");
PlayerInfo[giveplayerid][pWarns] += 1;
PlayerInfo[giveplayerid][pAdmin] -=1;
if(PlayerInfo[giveplayerid][pWarns] >= 3)
{
new ip[256];
new year, month,day;
getdate(year, month, day);
format(string, sizeof(string), "{ff4f30}Администратор %s был снят с администрирования. [%d/3] предупреждений.", giveplayer,PlayerInfo[giveplayerid][pWarns]);
SendClientMessageToAll(COLOR_LIGHTRED, string);
GetPlayerIp(giveplayerid,ip,sizeof(ip));
PlayerInfo[giveplayerid][pAdmin] = 0;
format(string, sizeof(string), "- Ник: [%s] IP: [%s]",giveplayer,ip);
ABroadCast(COLOR_LIGHTRED,string,1);
PlayerInfo[giveplayerid][pLocked] = 1;
return 1;
}
format(string, sizeof(string), "{ff4f30}Администратор %s получил предупреждение [%d/3]. Причина: %s", giveplayer,PlayerInfo[giveplayerid][pWarns], (result));
SendClientMessageToAll(COLOR_LIGHTRED,string);
format(string, sizeof(string), "Внимание! Вы получили предупреждение! После 3-х предупреждений вы будите сняты с должности!");
SendClientMessage(giveplayerid, COLOR_LIGHTRED, string);
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Игрок не найден!");
}
}
return 1;
}
Код:
else if(strcmp(cmd, "[B][COLOR="#800000"]/awarn[/COLOR][/B]", true) == 0)
Код:
if (PlayerInfo[playerid][pAdmin] >= [B][COLOR="#800000"]7[/COLOR][/B])
Код:
PlayerInfo[giveplayerid][pAdmin] [B][COLOR="#800000"]-=1[/COLOR][/B];
Код:
if(PlayerInfo[giveplayerid][pWarns] >= [B][COLOR="#800000"]3[/COLOR][/B])
Код:
PlayerInfo[giveplayerid][pAdmin] = [B][COLOR="#800000"]0[/COLOR][/B];
Код:
PlayerInfo[giveplayerid][pLocked] = [B][COLOR="#800000"]1[/COLOR][/B];
Думаю, разберетесь, т.к. я все подробно расписал. Если будут ошибки при компилировании или что то еще, пишите в тему, постараюсь ответить всем.
P.S. После предупреждения, администратора не кикает
