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

MySQL получает неверные данные

EZLIX

Ученик
Всем привет, делал сис-му выдачи предупреждений администрации, всё вроде бы работает, но выдаётся всегда только 2(сразу). И команда /unawarn пишет, что нет предупреждений, но в БД они есть. Весь код ниже
Обе команды:
Код:
CMD:awarn(playerid, params[]) {
    new text[130],string[415],giveplayerid;
    if(PI[playerid][pAdmin] < 10 || dostup[playerid] == 0) return true;
    if(sscanf(params, "us[128]",giveplayerid,text)) return SendEsp(playerid, "/awarn [playerid] [причина]");
//    if(!GetString(player_name[giveplayerid],FD_1) && !GetString(player_name[giveplayerid],FD_2) && !GetString(player_name[giveplayerid],FD_3)) return 1;
    if(GetPVarInt(playerid,"ban")>gettime()) {
        ErrorMessage(playerid,"Можно раз в 10 секунд");
        SetPVarInt(playerid,"bann",gettime()+3);
        return false;
    }
      if(GetString(player_name[giveplayerid],FD_1) || GetString(player_name[giveplayerid],FD_2) || GetString(player_name[giveplayerid],FD_3)) {
        format(string, sizeof(string),"[A] Администратор %s[%d] попытался выдать /awarn администратору %s[%d]. Сообщите главной администрации!",player_name[playerid],playerid,player_name[giveplayerid],giveplayerid);
        SendAdminMessage(COLOR_RED, string);
        return 1;
      }
//    if(PI[giveplayerid][pAdmin] < 1) return ErrorMessage(playerid, "Игрок не администратор");
    if(giveplayerid == INVALID_PLAYER_ID) return ErrorMessage(playerid, not_id);
    //if(giveplayerid == playerid) return ErrorMessage(playerid,"Вы указали свой ID");
    if(IsAIP(text))return 1;
    if(strlen(text) > 30) return ErrorMessage(playerid,"Не больше 30 символов");
//    if(PI[playerid][pAdmin] < PI[giveplayerid][pAdmin]) return 1;


    if(PI[giveplayerid][pAWarns]++ >= 2) {
        format(string, sizeof(string), "[A] Администратор %s снял с должности администартора (3 предупреждения) %s Причина: %s", player_name[playerid],player_name[giveplayerid], text);
        SendAdminMessage(COLOR_LIGHTRED, string);
        
        PI[giveplayerid][pAdmin] = 0;
        UpdatePlayerData(giveplayerid, "pAdmin", PI[giveplayerid][pAdmin]);

    //    WriteLog(LOG_BAN,player_name[playerid],player_name[giveplayerid],text);
        Kick(giveplayerid);
    }
    else {
        if(!GetPVarInt(giveplayerid,"AntiWarn")) {
             new query[128];
            PI[giveplayerid][pAWarns]++;
            format(query, sizeof(query), "UPDATE `admin` SET `pAWarns`='%d' WHERE `Name` = '%s'",PI[giveplayerid][pAWarns],player_name[giveplayerid]);
            mysql_tquery(connects, query);
            Kick(giveplayerid);
            
        }
        format(string, sizeof(string), "[A] Администратор %s выдал админ-предупреждение администратору %s [%d|3]. Причина: %s", player_name[playerid], player_name[giveplayerid], PI[giveplayerid][pAWarns], text);
        SendAdminMessage(COLOR_LIGHTRED, string);
    //    WriteLog(LOG_WARN,player_name[playerid],player_name[giveplayerid],text);
        SetPVarInt(giveplayerid,"AntiWarn", true);
    }
    
    new str[MAX_PLAYER_NAME+1];
    format(str,sizeof(str),"%s",player_name[giveplayerid]);
    D(giveplayerid, DIALOG_NONE, DSM, str, string, "Закрыть", "");
    return 1;
}
CMD:unawarn(playerid,params[]) {
    if(PI[playerid][pAdmin] < 10 || dostup[playerid] == 0) return true;
    new giveplayerid;
    if(!GetString(player_name[giveplayerid],FD_1) && !GetString(player_name[giveplayerid],FD_2) && !GetString(player_name[giveplayerid],FD_3)) return 1;
    if(sscanf(params, "d", giveplayerid)) return SendEsp(playerid, "/unwarn [playerid]");
    if(!IsPlayerConnected(giveplayerid)) return ErrorMessage(playerid,not_id);
    if(PI[giveplayerid][pAWarns] == 0) return ErrorMessage(playerid, "У администратора нет предупреждений");
    new string[92];
    format(string, sizeof(string), "[A] %s[%d] снял 1 предупреждение администратору %s[%d]", player_name[playerid], playerid, player_name[giveplayerid],giveplayerid);
    AdmMSG(0xAFAFAFAA, string,1);
    PI[giveplayerid][pAWarns]--;
    format(string, sizeof(string), "UPDATE `admin` SET `pAWarns`='%d' WHERE `Name` = '%s'",player_name[giveplayerid],player_name[giveplayerid]);
    mysql_tquery(connects, string);
    format(string, sizeof(string), "Администратор %s[%d] снял 1 админ-предупреждение администратору %s[%d]", player_name[playerid], playerid, player_name[giveplayerid], giveplayerid);
    AdmMSG(COLOR_LIGHTRED, string,1 );
    return 1;
}
Подрузка при авторизации администратора:
Код:
 cache_get_value_name(0, "pAWarns",PI[playerid][pAWarns]);
 
Сверху Снизу