Ewil
Ученик
Помогите пожалуйста, у меня в сервере есть система выговоров все кто состоит в той же организации могут выдать лидера выговор и уволить его , не понимаю в чем проблема здесь , хочу делать так чтобы 10 могла дать 9 рангу а 9 ранг с 8 и ниже могла дать
PHP:
CMD:fwarn(playerid,params[])
{
if(p_info[playerid][pFraction] == 0 && !IsALeader(playerid)) return SendErr(playerid, "Вам недоступен");
if(sscanf(params, "ds[32]", params[0], params[1])) return SendClientMessage(playerid,CGRAY,"/fwarn [ID èãðîêà] [Ïðè÷èíà]");
new id = params[0];
if(!IsPlayerConnected(id) || IsKicked(id)) return SendClientMessage(playerid,CGRAY,"Неверный ID");
if(p_info[id][pFraction] != p_info[playerid][pFraction] || p_info[id][pSubfraction] != p_info[playerid][pSubfraction]) return SendClientMessage(playerid,CGRAY,"Èãðîê íå ñîñòîèò â âàøåé îðãàíèçàöèè");
if(id == playerid) return SendClientMessage(playerid,CGRAY,"Вы указали свой ID");
if(!p_info[id][pMysqlID]) return SendClientMessage(playerid,CGRAY,"Игрок не зарегистрирован");
new mes[256];
p_info[id][pTWarn] = p_info[id][pTWarn]+1;
new koll = p_info[id][pTWarn];
if(koll < 3)
format(mes,sizeof(mes),"Вы получили выговор (%d/3) от %s. Причина: %s",koll,p_info[playerid][pNickname],params[1]);
SendClientMessage(id,CBADINFO,mes);
format(mes,sizeof(mes),"%s получил выговор от %s (%d/3). Причина: %s",p_info[id][pNickname],p_info[playerid][pNickname],koll,params[1]);
SendFMes(p_info[playerid][pFraction],CBLUE, mes);
format(mes,sizeof(mes),"%s получил выговор от (%d/3). Причина: %s",p_info[id][pNickname],koll,params[1]);
SendClientMessage(playerid,CINFO,mes);
p_info[id][pTWarn] = koll;
UpdatePlayerData(id,"TWarn",p_info[id][pTWarn]);
if(koll == 3)
{
p_info[id][pTWarn] = 0;
UpdatePlayerData(id,"TWarn",p_info[id][pTWarn]);
new f_str[350];
format(f_str,sizeof(f_str),"UPDATE `accounts` SET `fraction` = '0', `rank` = '0', `fractionskin` = '0', `subfraction` = '0' WHERE `id` = '%d'",p_info[id][pMysqlID]);
mysql_query(dbHandle, f_str);
ResetPlayerWeaponsEx(id);
p_info[id][pFraction] = 0;
p_info[id][pRank] = 0;
p_info[id][pFractionSkin] = 0;
p_info[id][pSubfraction] = 0;
ResetPlayerWeaponsEx(id);
SetPlayerColor(id,0xFFFFFF11);
new houseid = p_info[id][pHouse]-1;
if(!(houseid+1) || ((houseid+1) > 0 && p_info[id][pMysqlID] != gHouses[houseid][houseOwnerID])) SetPlayerSkinEx(id,p_info[id][p_skin]);
else if(!gHouses[houseid][houseImprove][3]) SetPlayerSkinEx(id,p_info[id][p_skin]);
else
{
for(new x; x < 3; x ++) {
if(!gHouses[houseid][houseSkin]) continue;
p_info[id][p_skin] = gHouses[houseid][houseSkin];
if(GetPlayerSkin(id) == gHouses[houseid][houseSkin][3]) SetPlayerSkinEx(id,p_info[id][p_skin]);
}
gHouses[houseid][houseSkin][3] = 0;
UpdateHouseDress(houseid);
}
SetPlayerSkinEx(id,p_info[id][p_skin]);
format(mes,sizeof(mes),"%s уволил Вас из организации. Причина: %s",p_info[playerid][pNickname], params[1]);
SendClientMessage(id,CBADINFO,mes);
format(mes,sizeof(mes),"%s получил выговор от %s (3/3). Причина: %s",p_info[id][pNickname],p_info[playerid][pNickname],params[1]);
SendFMes(p_info[playerid][pFraction],CBLUE, mes);
format(mes,sizeof(mes),"%s был уволен из организации. Причина: %s",p_info[id][pNickname], params[1]);
SendClientMessage(playerid,CINFO,mes);
for(new i=0; i<MAX_PLAYER_ATTACHED_OBJECTS; i++)
{
if(IsPlayerAttachedObjectSlotUsed(id, i)) RemovePlayerAttachedObject(id, i);
}
}
return 1;
}
