• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Система выговоров

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;
}
 
Сверху Снизу