PDA

Просмотр полной версии : [Вопрос] Система бана на сервере



HoveringRuss
23.06.2018, 00:53
Здравствуйте, столкнулись с проблемой не можем сделать так, чтобы нельзя было забаниить админа, у которого уровнь больше 100.
Подскажите какие-нибудь решения.

Вот сама команда:


CMD:ban(playerid, params[])
{
if(PI[playerid][Admin] < 1000) return SCM(playerid, COLOR_SYSTEM, "У тебя нет прав использовать эту команду");
new plid, str[75];
if(sscanf(params, "d", plid)) return SCM(playerid, COLOR_SYSTEM, "Введи /бан [номер игрока]");
else if(!IsPlayerConnected(plid)) return SCM(playerid, COLOR_SYSTEM, "Такого игрока не существует");
// else if(playerid == plid) return SCM(playerid, COLOR_SYSTEM, "Ты не можешь забанить себя");
else if(PI[playerid][Admin] < PI[plid][Admin] && !IsPlayerAdmin(playerid))
{
if(!strcmp(Name(playerid), "Aleksander_Severov", true)) return 1;
SendClientMessage(playerid, COLOR_SYSTEM, "Игрок администратор");
return 1;
}
format(str, sizeof(str), "Админ %s [%d] забанил %s", Name(playerid), playerid, Name(plid), plid);
SendClientMessageToAll(0x962929FF, str);
format(str, sizeof(str), "Админ %s [%d] забанил %s [%d]", Name(playerid), PI[playerid][ID], Name(plid), PI[plid][ID]);
alog(str, 0);
format(query1, sizeof(query1), "INSERT INTO `bans` (`IP`) VALUES ('%s')", PI[plid][IP]);
mysql_query(query1);
PlayerPlaySound(plid,1187,0.0,0.0,0.0);
SetTimerEx("ClearMuz", 10000, false, "d", plid);
BanEx(plid, Name(playerid));
return true;
}

Sambook
23.06.2018, 02:22
Уровень админки имеется ввиду? Если да, то вставь это, например, между проверкой на то, в сети ли игрок, и не является ли введенный id своим собственным:

else if(PI[plid][Admin] >= 100) return SCM(playerid, COLOR_SYSTEM, "Нельзя заблокировать админа с уровнем 100+");