Dis'kJokey
Новичок
Доброго времени суток. Помогите пожалуйста с перерписывание команд /ban /sban /kick /skick, чтобы админ не мог забанить админа, чтоб такая возможность была только при уровне 7 админки.
PHP:
CMD:skick(playerid, params[])
{
if(pData[playerid][pAdmin] > 0) return SendClientMessage(playerid, COLOR_GRAD2, "Администратор не может быть кикнут!");
if(dikg3dadminslogin[playerid] == false) return 1;
if(!pTemp[playerid][pLogined]) return 1;
if(pData[playerid][pAdmin] < 4) return 1;
if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, CYELLOW, "• [Подсказка]:{"#cWHITE"} /skick [id игрока]");
if(!IsPlayerConnected(params[0]) || IsKicked(params[0])) return SendClientMessage(playerid,CWHITE,"Неверный ID");
if(!strcmp(pData[params[0]][pNickname], "Ezio_Auditore", true)) return 1;
if(!strcmp(pData[params[0]][pNickname], "Evan_Basinger", true)) return 1;
new mes[128];
format(mes,sizeof(mes), "»[A] Администратор %s тихо кикнул игрока %s",pData[playerid][pNickname],pData[params[0]][pNickname]);
AdminChat(CGRAY,mes);
NewKick(params[0]);
return true;
}
CMD:kick(playerid, params[])
{
if(pData[playerid][pAdmin] > 0) return SendClientMessage(playerid, COLOR_GRAD2, "Администратор не может быть кикнут!");
if(dikg3dadminslogin[playerid] == false) return 1;
if(!pTemp[playerid][pLogined]) return 1;
if(pData[playerid][pAdmin] < 2) return 1;
if(sscanf(params, "us[36]", params[0], params[1])) return SendClientMessage(playerid, CYELLOW, "• [Подсказка]:{"#cWHITE"} /kick [id игрока] [причина]");
if(!strcmp(pData[params[0]][pNickname], "Ezio_Auditore", true)) return 1;
if(!strcmp(pData[params[0]][pNickname], "Evan_Basinger", true)) return 1;
if(!IsPlayerConnected(params[0]) || IsKicked(params[0])) return SendClientMessage(playerid,CWHITE,"Неверный ID");
if(IsPlayerNPC(params[0])) return SendClientMessage(playerid, -1, "Бота кикнуть нельзя");
if(IsIp(params[1]))
{
new string[128];
format(string, sizeof(string), "[АНТИРЕКЛАМА] %s[%d] /kick причина %s [Снят с поста]", pData[playerid][pNickname], playerid, params[1]);
AdminChat(COLOR_LIGHTRED,string);
pData[playerid][pAdmin] = 0;
UpdatePlayerData(playerid,"admin", pData[playerid][pAdmin]);
return true;
}
else
{
new mes[128];
format(mes,sizeof(mes), "Администратор %s кикнул игрока %s. Причина: %s",pData[playerid][pNickname],pData[params[0]][pNickname],params[1]);
SendAdminMessage(COLOR_LIGHTRED,mes,params[0]);
NewKick(params[0]);
}
return true;
}
CMD:ban(playerid, params[])
{
if(pData[playerid][pAdmin] > 0) return SendClientMessage(playerid, COLOR_GRAD2, "Администратор не может быть забанен!");
if(dikg3dadminslogin[playerid] == false) return 1;
if(!pTemp[playerid][pLogined]) return 1;
if(pData[playerid][pAdmin] < 3) return 1;
if(sscanf(params, "uds[36]", params[0], params[1], params[2])) return SendClientMessage(playerid, CYELLOW, "• [Подсказка]:{"#cWHITE"} /ban [id игрока] [кол-во дней] [причина]");
if(!IsPlayerConnected(params[0]) || IsKicked(params[0])) return SendClientMessage(playerid,CWHITE,"Неверный ID");
if(!strcmp(pData[params[0]][pNickname], "Ezio_Auditore", true)) return 1;
if(!strcmp(pData[params[0]][pNickname], "Evan_Basinger", true)) return 1;
if(!pData[params[0]][pMysqlID])
{
NewKick(params[0]);
return SendClientMessage(playerid,CWHITE,"Этот игрок не зарегистрирован, поэтому был кикнут");
}
if(params[1] < 1 || params[1] > 30 && pData[playerid][pAdmin] < 5) return SendClientMessage(playerid,CWHITE,"Неверное к-во дней");
if(params[1] < 0 || params[1] > 30 && pData[playerid][pAdmin] >= 5) return SendClientMessage(playerid,CWHITE,"Неверное к-во дней");
if(IsIp(params[2]))
{
new string[128];
format(string, sizeof(string), "[АНТИРЕКЛАМА] %s[%d] /ban причина %s [Снят с поста]", pData[playerid][pNickname], playerid, params[2]);
AdminChat(COLOR_LIGHTRED,string);
pData[playerid][pAdmin] = 0;
UpdatePlayerData(playerid,"admin", pData[playerid][pAdmin]);
return true;
}
else
{
new mes[128];
ServerBan(playerid,params[0],params[1],params[2]);
format(mes,sizeof(mes),"Администратор %s[%d] забанил игрока %s на %d дней. Причина: %s",pData[playerid][pNickname],playerid,pData[params[0]][pNickname],params[1],params[2]);
SendClientMessageToAll(COLOR_LIGHTRED,mes);
NewKick(params[0]);
}
return true;
}
CMD:sban(playerid, params[])
{
if(pData[playerid][pAdmin] > 0) return SendClientMessage(playerid, COLOR_GRAD2, "Администратор не может быть забанен!");
if(dikg3dadminslogin[playerid] == false) return 1;
if(!pTemp[playerid][pLogined]) return 1;
if(pData[playerid][pAdmin] < 6) return 1;
if(sscanf(params, "uds[36]", params[0], params[1], params[2])) return SendClientMessage(playerid, CYELLOW, "• [Подсказка]:{"#cWHITE"} /sban [id игрока] [кол-во дней] [причина]");
if(!IsPlayerConnected(params[0]) || IsKicked(params[0])) return SendClientMessage(playerid,CWHITE,"Неверный ID");
if(!strcmp(pData[params[0]][pNickname], "Ezio_Auditore", true)) return 1;
if(!strcmp(pData[params[0]][pNickname], "Evan_Basinger", true)) return 1;
if(!pData[params[0]][pMysqlID])
{
NewKick(params[0]);
return SendClientMessage(playerid,CWHITE,"Этот игрок не зарегистрирован, поэтому был кикнут");
}
if(params[1] < 1 || params[1] > 300) return SendClientMessage(playerid,CWHITE,"Кол-во дней [1-300]");
new mes[128];
ServerBan(playerid,params[0],params[1],params[2]);
format(mes,sizeof(mes), "[A] Администратор %s[%d] тихо забанил игрока %s на %d дней. Причина: %s",pData[playerid][pNickname],playerid,pData[params[0]][pNickname],params[1],params[2]);
AdminChat(CRED,mes);
NewKick(params[0]);
return true;
}
Последнее редактирование модератором:
