Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: TimerFix

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

    Статус
    Оффлайн
    Регистрация
    26.12.2016
    Адрес
    Беларусь
    Сообщений
    41
    Репутация:
    1 ±

    TimerFix

    После установки постоянно флудит в консоль:
    Код:
    (TimerFix) WARNING: The function "UpdateTimers" took 14ms to execute! This will affect other timers.
    Но ведь это нормально, что ему не нравится?

  2. #2
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Можно отключить проверку производительности добавив перед подключением timerfix это:
    PHP код:
    #define TIMER_FIX_PERFORMANCE_CHECKS false 
    Но это не решение проблемы - медленного выполнения кода, это лишь сокрытие этого сообщения.

    P.S. Вообще, эту библиотеку лучше не использовать, но если точные таймеры очень нужны, то лучше воспользоваться плагином (но даже этот плагин не решает всех проблем с таймерами).

  3. Пользователь сказал cпасибо:
    Mr_LemoneZ (22.01.2017)
  4. #3
    Аватар для Mr_LemoneZ
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.12.2016
    Адрес
    Беларусь
    Сообщений
    41
    Репутация:
    1 ±
    Медленного? Он мне даже вот на это ругался:
    PHP код:
    @_Kick(playerid)
    {
        return 
    Kick(playerid);

    Это скорее всего из-за моего древнего ПК, на котором даже браузер тормозит.

  5. #4
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Mr_LemoneZ Посмотреть сообщение
    Медленного? Он мне даже вот на это ругался:
    PHP код:
    @_Kick(playerid)
    {
        return 
    Kick(playerid);

    Это скорее всего из-за моего древнего ПК, на котором даже браузер тормозит.
    Покажи весь код. Ты же понимаешь, что эта библиотека объединяет все таймеры в один?

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

    Статус
    Оффлайн
    Регистрация
    26.12.2016
    Адрес
    Беларусь
    Сообщений
    41
    Репутация:
    1 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Покажи весь код. Ты же понимаешь, что эта библиотека объединяет все таймеры в один?
    Не знал об этом. А какой именно кусок кода нужно показать, где задаётся таймер?

  7. #6
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Mr_LemoneZ Посмотреть сообщение
    Не знал об этом.
    Дак ты понял почему выходит это сообщение?

    Цитата Сообщение от Mr_LemoneZ Посмотреть сообщение
    А какой именно кусок кода нужно показать, где задаётся таймер?
    Все public функции, для которых вызывается SetTimer.

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

    Статус
    Оффлайн
    Регистрация
    26.12.2016
    Адрес
    Беларусь
    Сообщений
    41
    Репутация:
    1 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Дак ты понял почему выходит это сообщение?
    Уже понял.

    Цитата Сообщение от ziggi Посмотреть сообщение
    Все public функции, для которых вызывается SetTimer.
      Открыть/закрыть

    PHP код:
    publics SetHeadpiece(playerid)
    {
        
    SetPVarInt(playerid, !"headpiece"1);
        
    SpawnPlayer(playerid);

        
    SetPlayerVirtualWorld(playeridplayerid);
        
    SetPlayerPos(playerid1787.3605, -1311.8920120.2656);
        
    SetPlayerFacingAngle(playerid180.0);
        
    SetPlayerCameraPos(playerid1860.065673, -1388.359985136.248153);
        
    SetPlayerCameraLookAt(playerid1855.589721, -1386.343872137.197555);
        return 
    1;

    PHP код:
    @_RegistrationAndLoginTimer(playeridbool:type);
    @
    _RegistrationAndLoginTimer(playeridbool:type)
    {
        if(
    type)
            
    SendClientMessage(playeridCOLOR_LRED,!"Время не авторизацию ограничено! \
                Для выхода введите {FFA500}/q{FF4E4E}."
    );
        else
            
    SendClientMessage(playeridCOLOR_LRED, !"Время не регистрацию ограничено! \
                Для выхода введите {FFA500}/q{FF4E4E}."
    );
        return 
    KickEx(playerid);

    PHP код:
    publics UpdateTimers()
    {
        new 
    time gettime();
        if(
    timers[0] <= time// Ежесекундный
        
    {
            
    gettime(hoursminutesseconds);
            if(!
    seconds && !minutes)
                
    PayDay();

            foreach(new 
    Player)
            {
                if(
    GetPlayerMoney(i) != player_info[i][pMoney])
                {
                    
    ResetPlayerMoney(i);
                    
    GivePlayerMoney(iplayer_info[i][pMoney]);
                }
            }
            
    timers[0] ++;
        }
        if(
    timers[1] <= time// Каждые 20 секунд
        
    {
            foreach(new 
    Player)
            {
                if(
    player_flood_attempts{i})
                    
    player_flood_attempts{i} = 0;
            }
            
    timers[1] = gettime() + 20;
        }
        return 
    SetTimer(!"UpdateTimers"200false);

    Последний раз редактировалось Mr_LemoneZ; 22.01.2017 в 22:07.

  9. #8
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Mr_LemoneZ Посмотреть сообщение
    PHP код:
    publics UpdateTimers()
    {
        new 
    time gettime();
        if(
    timers[0] <= time// Ежесекундный
        
    {
            
    gettime(hoursminutesseconds);
            if(!
    seconds && !minutes)
                
    PayDay();

            foreach(new 
    Player)
            {
                if(
    GetPlayerMoney(i) != player_info[i][pMoney])
                {
                    
    ResetPlayerMoney(i);
                    
    GivePlayerMoney(iplayer_info[i][pMoney]);
                }
            }
            
    timers[0] ++;
        }
        if(
    timers[1] <= time// Каждые 20 секунд
        
    {
            foreach(new 
    Player)
            {
                if(
    player_flood_attempts{i})
                    
    player_flood_attempts{i} = 0;
            }
            
    timers[1] = gettime() + 20;
        }
        return 
    SetTimer(!"UpdateTimers"200false);

    Попробуй создать нормальный таймер, а не этот позор. Я к тому, что для подобных таймеров в функции SetTimer существует специальный аргумент - repeating, с помощью которого и нужно создавать подобные таймеры.

  10. Пользователь сказал cпасибо:
    Mr_LemoneZ (22.01.2017)
  11. #9
    Аватар для Mr_LemoneZ
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.12.2016
    Адрес
    Беларусь
    Сообщений
    41
    Репутация:
    1 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Попробуй создать нормальный таймер, а не этот позор. Я к тому, что для подобных таймеров в функции SetTimer существует специальный аргумент - repeating, с помощью которого и нужно создавать подобные таймеры.
    Но если создавать обычные таймеры, то они уже не будет такими точными. Например, у счётчика AFK будет большая погрешность (это я говорю, если не использовать инклуд).
    Последний раз редактировалось Mr_LemoneZ; 22.01.2017 в 22:53.

  12. #10
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Для чего тебе точность в странной реализации античита на деньги и в, как я понимаю, антифлуде?
    И почему нельзя для кода, который срабатывает раз в 20 секунд, создать таймер на 20 секунд, а не делать винегрет в одном таймере?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

 

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

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

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

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

Ваши права

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