Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 4 ПерваяПервая 1 2 3 4 ПоследняяПоследняя
Показано с 11 по 20 из 36
  1. #11
    Аватар для qwezert
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.06.2016
    Адрес
    Одесса, Украина
    Сообщений
    281
    Репутация:
    51 ±
    Дебаг, дебаг и еще раз дебаг. Перед спавном игрока выведи в printf кол-во хп которые ему должен выдать сервер. Смотри почему у тебя теряется это кол-во. Не советовал бы сохранять в БД в строку а потом доставать оттуда через floatstr. 0.5 хп для игрока что ли жалко?)
    Все переменные хп задебагай и смотри в консоли - сколько загружается, сколько передается и сколько игроку в итоге присваивает сервер. Тогда поймешь в чем трабла.

  2. Пользователь сказал cпасибо:
    bred (05.10.2016)
  3. #12
    Аватар для nikvlad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.02.2016
    Сообщений
    94
    Репутация:
    2 ±
    Цитата Сообщение от m1n1vv Посмотреть сообщение
    Еще можно сделать так:
    PHP код:
    forward secondupdate(); 
    public 
    healthupdate() 

       new
          
    Float:health;

       foreach(new 
    i:Player
       { 
          
    GetPlayerHealth(ihealth); 
          if(
    _:health != _:pData[i][pHealth]) 
             
    SetPlayerHealthEx(ipData[i][pHealth]);  
       } 

       return 
    1;

    До сих пор умираю

    - - - Добавлено - - -

    Цитата Сообщение от qwezert Посмотреть сообщение
    Дебаг, дебаг и еще раз дебаг. Перед спавном игрока выведи в printf кол-во хп которые ему должен выдать сервер. Смотри почему у тебя теряется это кол-во. Не советовал бы сохранять в БД в строку а потом доставать оттуда через floatstr. 0.5 хп для игрока что ли жалко?)
    Все переменные хп задебагай и смотри в консоли - сколько загружается, сколько передается и сколько игроку в итоге присваивает сервер. Тогда поймешь в чем трабла.
    Залогировал паблик OnPlayerTakeDamage, а именно переменные amount и pData[playerid][pHealth]:

    Тут творится ахинея! Откуда берется урон 1079194420?

    - - - Добавлено - - -

    Немного тупанул, вот новые логи:

    В чем проблема? Вот код еще раз:

    PHP код:
    public OnPlayerTakeDamage(playeridissueridFloatamountweaponidbodypart)
    {
        if(
    GetPVarInt(playerid"loggined") == 0) return 0;
        
    printf("OnPlayerTakeDamage (pData[playerid][pHealth]) = %f",pData[playerid][pHealth]);
        
    printf("OnPlayerTakeDamage (amount) = %f",amount);
        
    SetPlayerHealthEx(playerid,pData[playerid][pHealth]-amount);
        return 
    1;

    - - - Добавлено - - -

    Снял видео, так как я не всегда умирал, а лишь после перезахода:


  4. #13
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Я бы советовал отключить собейт. Это во-первых.

    Во-вторых, нужно логировать загрузку/сохранение. Смотрите сколько HP загружается из БД и сколько потом сохранится. От этого и нужно плясать
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Пока игрок не загрузил данные с БД его жизни ушли в стандартный 0.0 от античита вот и помер достойно
    Отключай античит пока ты не заспавнился и всё будет в ажуре

    Ещё хотелось бы узреть как ты создал данную переменную
    Код:
    pData[playerid][pHealth]
    Последний раз редактировалось vovandolg; 03.10.2016 в 20:10.
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    04.02.2016
    Сообщений
    94
    Репутация:
    2 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Я бы советовал отключить собейт. Это во-первых.

    Во-вторых, нужно логировать загрузку/сохранение. Смотрите сколько HP загружается из БД и сколько потом сохранится. От этого и нужно плясать
    А зачем выключать собейт? Он мне помогает находить координаты, быстро перемещаться по карте.







    - - - Добавлено - - -

    Цитата Сообщение от vovandolg Посмотреть сообщение
    Пока игрок не загрузил данные с БД его жизни ушли в стандартный 0.0 от античита вот и помер достойно
    Отключай античит пока ты не заспавнился и всё будет в ажуре

    Ещё хотелось бы узреть как ты создал данную переменную
    Код:
    pData[playerid][pHealth]
    Тоже об этом думал, сделал уже:



    - - - Добавлено - - -

    Цитата Сообщение от vovandolg Посмотреть сообщение
    Пока игрок не загрузил данные с БД его жизни ушли в стандартный 0.0 от античита вот и помер достойно
    Отключай античит пока ты не заспавнился и всё будет в ажуре

    Ещё хотелось бы узреть как ты создал данную переменную
    Код:
    pData[playerid][pHealth]
    Вот так создал:
    PHP код:
    enum PDATA
    {
        
    pID,
        
    pNickname[24],
        
    pPassword[32],
        
    pAdminPassword[32],
        
    pEmail[32],
        
    pAdmin,
        
    pGender,
        
    pAge,
        
    pRace,
        
    pSkin,
        
    pRegData[25],
        
    pRegIP[25],
        
    pLevel,
        
    pFraction,
        
    pSubFraction,
        
    pRank,
        
    pSpawn,
        
    pFractionSkin,
        
    Float:pHealth,
        
    pMoney,
    }; 

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Ммм ты мне не тот код показал и другая надпись не то...
    Во первых найди переменную
    PHP код:
    pData[playerid][pHealth
    и покажи как ты её сделал, во вторых тебя убивает при входе, паблик получения/нанесения дамага тут не причем, настраивай таймер в апдейте чтобы до спавна не проверял тебя..
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  8. #17
    Аватар для m1n1vv
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    Добавь в дисконект
    PHP код:
    pData[playerid][pHealth] = 0

  9. #18
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от m1n1vv Посмотреть сообщение
    Добавь в дисконект
    PHP код:
    pData[playerid][pHealth] = 0
    Это ж Float)) во вторых это тут не нужно, у него грузит при коннекте с БД, ему что осталось решить так это в апдейте паузу сделать пока он спавнится или умирает...
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  10. #19
    Аватар для nikvlad
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.02.2016
    Сообщений
    94
    Репутация:
    2 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Ммм ты мне не тот код показал и другая надпись не то...
    Во первых найди переменную
    PHP код:
    pData[playerid][pHealth
    и покажи как ты её сделал, во вторых тебя убивает при входе, паблик получения/нанесения дамага тут не причем, настраивай таймер в апдейте чтобы до спавна не проверял тебя..
    Ам, извиняюсь, выделение pHealth красным сбило меня с толку.

    PHP код:
    new pData[MAX_PLAYERS][PDATA]; 
    Я уже сделал так, чтобы меня не трогало до логина, смотри выше скрин.

    - - - Добавлено - - -

    Цитата Сообщение от m1n1vv Посмотреть сообщение
    Добавь в дисконект
    PHP код:
    pData[playerid][pHealth] = 0
    Уже есть такое:
    PHP код:
        pData[playerid][pHealth] = 0.0

  11. #20
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    PHP код:
    new pPauseAC[MAX_PLAYERS char];

    public 
    healthupdate() 

        foreach(new 
    i:Player
        {
            new 
    state GetPlayerState(i) ;
            if(
    state == || state == || state == 9) continue;
            if(
    pPauseAC{i} > 0)
            {
                    
    pPauseAC{i}--;
                    continue;
            }
            
    GetPlayerHealth(ipTemp[i][pHealth]); 
            if(
    _:pTemp[i][pHealth] != _:pData[i][pHealth]) SetPlayerHealthEx(ipData[i][pHealth]); 
            
    pTemp[i][pHealth] = 0.0
        } 
        return 
    1;


    stock SetPlayerHealthEx(playeridFloat:hp

        
    //сохранять HP тут не советую, флудануть можно так, что БД ляжет, сохранять можно 1 раз при дисконнекте и достаточно
        
    pPauseAC{i} = 3//3 секунды или 2 отрегулируешь на свой вкус
        
    pData[playerid][pHealth] = hp
        
    SetPlayerHealth(playeridhp); 
        return 
    1;

    Последний раз редактировалось vovandolg; 03.10.2016 в 20:50.
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

 

 
Страница 2 из 4 ПерваяПервая 1 2 3 4 ПоследняяПоследняя

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

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

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

Ваши права

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