Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 7 из 7

Тема: GetPlayerScore

  1. #1
    Аватар для Эдуард
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.01.2015
    Сообщений
    32
    Репутация:
    0 ±

    GetPlayerScore

    Здравствуйте возникла такая проблема, что обнуляются очки при сохранении:

    PHP код:
    SavePlayerStats(playerid)
    {
        if(
    LoggedIn[playerid] == 1)
        {
            static const 
    fmt_str[] = "UPDATE `Accounts` SET `Money` = '%d', `Score` = '%d', `Mute` = '%d', `Gang` = '%d', `GangState` = '%d', `Deaths` = '%d', `Kills` = '%d', `BizFlood` = '%d', `DriftLevel` = '%d' WHERE `Nickname` = '%s'";
            new 
    string[sizeof(fmt_str) + (-11) + (-11) + (-11) + (-5) + (-3) + (-10) + (-10) + (-11) + (-5) + (-MAX_PLAYER_NAME)];
            
    format(stringsizeof(string),fmt_strGetPlayerMoney(playerid), GetPlayerScore(playerid), GetPVarInt(playerid,"Mute"), PlayerInfo[playerid][uGang], PlayerInfo[playerid][uGangState], Deaths[playerid], Kills[playerid], BizFlood[playerid], Kills_Lvl[playerid], PlayerInfo[playerid][pName]);
            
    mysql_tquery(MYSQL_ARGstring"""");
        }

    Вызываю его в OnPlayerDisconnect - всё сохраняется, кроме GetPlayerScore и Kills_Lvl[playerid] - часто слетают и равняются 0.
    В чём может быть проблема?

    Вот так загружаю данные с бд
    PHP код:
    Kills_Lvl[playerid] = cache_get_field_content_int(i"Level");
        
    SetPlayerScore(playerid,cache_get_field_content_int(i"Score")); 

  2. #2
    Аватар для Seviel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.12.2016
    Адрес
    Казахстан
    Сообщений
    148
    Репутация:
    26 ±
    Лучше сохраняй очки в отдельной переменной. И лучше покажи весь код загрузки из бд.

  3. #3
    Аватар для Эдуард
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.01.2015
    Сообщений
    32
    Репутация:
    0 ±
    Цитата Сообщение от Seviel Посмотреть сообщение
    Лучше сохраняй очки в отдельной переменной. И лучше покажи весь код загрузки из бд.
    Так получается то, что в бд они и сохраняютя как 0 а потом загружаются соответственно с 0 значением. Я попробовал сделать на переменной - стало ещё хуже, у игроков очки вместо обнулений стали нереально огромными, менять значения при перезаходе, хотя я 0 присваивал эту переменную при коннекте

  4. #4
    Аватар для Seviel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.12.2016
    Адрес
    Казахстан
    Сообщений
    148
    Репутация:
    26 ±
    Пожалуйста покажи код загрузки из бд.

  5. #5
    Аватар для Эдуард
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.01.2015
    Сообщений
    32
    Репутация:
    0 ±
    код диалога

    PHP код:
                  static const s_t[] = "SELECT * FROM `Accounts` WHERE `Nickname` = '%s' AND `Password` = '%s'";
                new 
    s_up[sizeof(s_t) + (-MAX_PLAYER_NAME) + (-30)];
                
    format(s_upsizeof(s_up),s_tPlayerInfo[playerid][pName], inputtext);
                
    mysql_tquery(MYSQL_ARGs_up"Avtoriz""ds"playeridinputtext); 
    PHP код:
    public Avtoriz(playeridpassword[])
    {
        new 
    rowsfields;
        
    cache_get_data(rowsfields);
        if(!
    rows)
        {
            
    SetPVarInt(playerid,"FailLogin",GetPVarInt(playerid,"FailLogin") + 1);
            if(
    GetPVarInt(playerid,"FailLogin") == 3)
            {
                
    SendLanguageMessage(playerid,orange"INFORMATION: {FFFFFF}You was kicked for entering the wrong password 3/3","ИНФОРМАЦИЯ: {FFFFFF}Вы были кикнуты за ввод неверного пароля 3/3");
                return 
    Kick(playerid);
            }
            
    ShowPlayerDialog(playerid200DIALOG_STYLE_PASSWORD"{FF4500}Ошибка","{FF7F00}Вы указали неверный пароль!\n     {FFA500}Введите пароль заново!""Войти""");
            return 
    true;
        }
        
    LoggedIn[playerid] = 1;

        
    DeletePVar(playerid"player_kick_time");

        
    SetPVarInt(playerid"count_time"0);

        
    PlayerTextDrawDestroy(playeridCheckTimeLog[0]);
        
    PlayerTextDrawDestroy(playeridCheckTimeLog[1]);

        for(new 
    0rows;i++)
        {
            
    Avt(i,playerid);
        }

        
    format(PlayerInfo[playerid][pPassword], 30,"%s"password);//Записываем пароль в переменную
        
    return true;

    PHP код:
    stock Avt(i,playerid)
    {
           
    Kills_Lvl[playerid] = cache_get_field_content_int(i"Level");
           
        
    SetPlayerScore(playerid,cache_get_field_content_int(i"Score"));

        
    ALevel[playerid] = cache_get_field_content_int(i"Admin");

        
    GivePlayerMoney(playerid,cache_get_field_content_int(i"Money"));

        
    NBAN[playerid] = cache_get_field_content_int(i,"Banned");

        
    SetPVarIntplayerid"Mute"cache_get_field_content_int0"Mute" ) );

        
    pDuelAll[playerid] = cache_get_field_content_int(i"DuelAll");

        
    pDuelWin[playerid] = cache_get_field_content_int(i"DuelWin");

        
    pDuelLoose[playerid] = cache_get_field_content_int(i"DuelLoose");

        
    pDragAll[playerid] = cache_get_field_content_int(i"DragAll");

        
    pDragLoose[playerid] = cache_get_field_content_int(i"DragLoose");

        
    pDragWin[playerid] = cache_get_field_content_int(i"DragWin");

        
    pVIP[playerid] = cache_get_field_content_int(i"AccountType");

        
    pKiss[playerid] = cache_get_field_content_int(i"Kiss");

        
    SKin[playerid] = cache_get_field_content_int(i"Skin");

        
    Deaths[playerid] = cache_get_field_content_int(i"Deaths");

        
    Kills[playerid] = cache_get_field_content_int(i"Kills");

        
    BizFlood[playerid] = cache_get_field_content_int(i"BizFlood");

        
    ZapretPlayeridPM[playerid] = cache_get_field_content_int(i"ZapretPM");

        
    ZapretPlayeridDrag[playerid] = cache_get_field_content_int(i"ZapretDRAG");

        
    ZapretPlayeridDuel[playerid] = cache_get_field_content_int(i"ZapretDUEL");

        
    ZapretVhod[playerid] = cache_get_field_content_int(i"ZapretCONNECT");

        
    Language[playerid] = cache_get_field_content_int(i"Language");

        
    PlayerInfo[playerid][AllPick] = cache_get_field_content_int(i"AllPick");

        
    SetPVarInt(playerid,"DateUnAdm",cache_get_field_content_int(i"TimeUnAdm"));

        
    SI[playerid][Time] = cache_get_field_content_int(i"AutoTime");

        
    PlayerInfo[playerid][uGang] = cache_get_field_content_int(i"Gang");

        
    PlayerInfo[playerid][uGangState] = cache_get_field_content_int(i"GangState");

        
    SI[playerid][WeatherID] = cache_get_field_content_int(i"WeatherID");

        
    SColor[playerid] = cache_get_field_content_int(i"SColor");
        
        
    LoggedIn[playerid] = 1;


  6. #6
    Аватар для Seviel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.12.2016
    Адрес
    Казахстан
    Сообщений
    148
    Репутация:
    26 ±
    Ммм, там как бы одна строка выборки должна быть. По этому можешь избавиться от цикла и i в stock-е, заменив на 0, ну примерно так:
    PHP код:
    cache_get_field_content_int(0"GangState"); 
    И ты дважды авторизуешь игрока.
    А по загрузке ты уверен что с остальными всё в порядке?

  7. #7
    Аватар для Эдуард
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.01.2015
    Сообщений
    32
    Репутация:
    0 ±
    Цитата Сообщение от Seviel Посмотреть сообщение
    Ммм, там как бы одна строка выборки должна быть. По этому можешь избавиться от цикла и i в stock-е, заменив на 0, ну примерно так:
    PHP код:
    cache_get_field_content_int(0"GangState"); 
    И ты дважды авторизуешь игрока.
    А по загрузке ты уверен что с остальными всё в порядке?
    Насчёт цикла - раньше было через 0, но потом решил почему-то сделать циклом, но не суть.
    Все данные загружаются нормально, всё показывает всё есть, только лвл и фраги обнуляются часто

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •