1. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.596
    Симпатии:
    4.169
    Пол:
    Мужской
    Всем привет!
    В этом уроке я расскажу, как правильно считать раунды в реапи.
    Есть конечно member возвращающий количество сыгранных раундов(m_iTotalRoundsPlayed), но есть задачи, где нужны именно подсчеты.
    Урок навеян ошибками в коде VIP плагина от @pUzzlik(из-за чего @ops244 и пострадал при использовании плагина балансировки.) и First Kills System от @MakapoH.

    Собственно, код с комментариями:
    Код:
    #include <amxmodx>
    #include <reapi>
    
    new g_iRoundCount;
    
    public plugin_init()
    {
        RegisterHookChain(RG_CSGameRules_RestartRound, "CSGameRules_RestartRound_Pre", false);
        // Хукаем Pre, потому что в Post m_bCompleteReset всегда false
    }
    
    public CSGameRules_RestartRound_Pre()
    {
        // проверяем, что у нас новый раунд, а не рестарт
        if(get_member_game(m_bCompleteReset))
        {
            // если рестарт, то...
            g_iRoundCount = 0;
        }
     
        g_iRoundCount++;
        client_print(0, print_center, "*** Играем %i раунд ***", g_iRoundCount);
    }
    
    ---
    Важное дополнение
    m_bCompleteReset имеет значение true при любом сбросе раунда, т.е. sv_restart(sv_restartround) или Game Commencing
     
    Последнее редактирование: 20.10.16
    d3m37r4, ops244, ashok и 4 другим нравится это.
  2. d3m37r4 Пользователь

    Регистрация:
    19.07.15
    Сообщения:
    167
    Симпатии:
    46
    Пол:
    Мужской
    VKcom:
    id109544387
    Skype:
    d1mas1kw0w
    @neygomon, Т.е. за место этого:
    Можно использовать код из данного урока, это будет правильней?
     
  3. MakapoH. Команда форума

    Регистрация:
    06.02.16
    Сообщения:
    654
    Симпатии:
    241
    Пол:
    Мужской
    @d3m37r4, Если используешь ReAPI, то да.
     
    d3m37r4 нравится это.
  4. wopox1337 Пользователь

    Регистрация:
    10.12.15
    Сообщения:
    23
    Симпатии:
    6
    Пол:
    Мужской
    Skype:
    wopox3
    Мега-тутор! :acute: Зачем изобретать велосипед? Чем плох старый способ?
    Минус - каждый раунд использование лишнего натива get_member_game чтоб узнать что это первый раунд или нет.
    типа only ReAPI хД
     
  5. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.596
    Симпатии:
    4.169
    Пол:
    Мужской
    @wopox1337, ну вот попросили сделать тутор :)
     
  6. d3m37r4 Пользователь

    Регистрация:
    19.07.15
    Сообщения:
    167
    Симпатии:
    46
    Пол:
    Мужской
    VKcom:
    id109544387
    Skype:
    d1mas1kw0w
    RG_CSGameRules_RestartRound очепятка:)
     
  7. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.596
    Симпатии:
    4.169
    Пол:
    Мужской
    @d3m37r4, кто шарит, тот поймет
     
    wopox1337 нравится это.