Gressie
Мастер
Как сделать проверку чтобы лидер лидера не мог повысить/понизить и уволить?
Сама команда /giverank:
Сама команда /uninvite:
Сама команда /giverank:
PHP:
if(strcmp(cmd, "/giverank", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "*Используйте: /giverank [id] [ранг]");
return 1;
}
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
if(PlayerInfo[playerid][pLeader] <= 0 && PlayerInfo[playerid][pRank] <= PlayerInfo[para1][pRank]) return SendClientMessage(playerid, COLOR_GREY, "Вы не можите давать ранг тому,кто старше вас по рангу");
if(PlayerInfo[playerid][pMember] > 0 && playerid == para1) return SendClientMessage(playerid, COLOR_GREY, "Вы не можете дать ранг самому себе!");//ну и проверяем не себе ли он даёт!
if(IsPlayerConnected(para1))
{
if(!IsValidRank(playerid,level)) return SendClientMessage(playerid,COLOR_GREY,"Неправильный номер ранга");
if(PlayerInfo[para1][pMember] == PlayerInfo[playerid][pLeader] || PlayerInfo[para1][pLeader] == PlayerInfo[playerid][pLeader])
{
if(CanGiverankPlayer(playerid,para1))
{
if(para1 != INVALID_PLAYER_ID)
{
new mem = 0;
if(PlayerInfo[playerid][pLeader] > 0) mem = PlayerInfo[playerid][pLeader];
else if(PlayerInfo[playerid][pMember] > 0) mem = PlayerInfo[playerid][pMember];
if(PlayerInfo[para1][pMember] != mem) return SendClientMessage(playerid,COLOR_RED,"Этот игрок не в вашей фракции");
if(PlayerInfo[playerid][pMember] > 0 && PlayerInfo[playerid][pRank] < level) return SendClientMessage(playerid,COLOR_GREY,"Вы не можете повысить ранг выше своего");
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pRank] = level;
format(string, sizeof(string), "%s повысил/понизил вас до %d ранга", sendername,level);
SendClientMessage(para1, 0x6AB1FFAA, string);
format(string, sizeof(string), "Вы повысили/понизили %s до %d ранга", giveplayer,level);
SendClientMessage(playerid, 0x6AB1FFAA, string);
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Нет прав на использование команды!");
}
}
else
{
SendClientMessage(playerid,COLOR_GRAD1,"Этот игрок не из вашей фракции");
}
}
}
return 1;
}
PHP:
if(strcmp(cmd, "/uninvite", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, " Используйте: /uninvite [id]");
return 1;
}
new para1;
para1 = ReturnUser(tmp);
if(para1 == playerid) return SendClientMessage(playerid,-1,"Себя невозможно уволить");
if(PlayerInfo[para1][pMember] == PlayerInfo[playerid][pLeader] ||PlayerInfo[para1][pMember] == PlayerInfo[playerid][pMember])
{
if(IsPlayerConnected(para1))
{
if(CanUninvitePlayer(playerid,para1))
{
if(para1 != INVALID_PLAYER_ID)
{
if(PlayerInfo[para1][pMember] > 0)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s выгнал вас из организации", sendername);
SendClientMessage(para1, 0x6AB1FFAA, string);
format(string, sizeof(string), "Вы снова гражданский", sendername);
SendClientMessage(para1, 0x6AB1FFAA, string);
format(string, sizeof(string), "Вы выгнали %s из организации", giveplayer);
SendClientMessage(playerid, 0x6AB1FFAA, string);
PlayerInfo[para1][pMember] = 0;
PlayerInfo[para1][pRank] = 0;
PlayerInfo[para1][pLeader] = 0;
PlayerInfo[para1][pJob] = 0;
SetPlayerArmourAC(para1,0);
SpawnPlayer(para1);
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Вы не уполномочены использовать эту команду!");
}
}
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Этот игрок не в вашей фракции");
}
}
return 1;
}
