Пользователи, просматривающие тему (Пользователей: 0, Гостей: 0)

  1. neygomon Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    8.574
    Симпатии:
    4.655
    Пол:
    Мужской
    Всем привет!
    В этом уроке я расскажу, как правильно считать раунды в реапи.
    Есть конечно 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
    kpykpy, d3m37r4, ops244 и 5 другим нравится это.
  2. d3m37r4

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

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

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

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

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

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

    Регистрация:
    21.12.16
    Сообщения:
    50
    Симпатии:
    0
    Пол:
    Мужской
    does sv_restartround interfere with it ?
     
  9. neygomon Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    8.574
    Симпатии:
    4.655
    Пол:
    Мужской
  10. Ish Chhabra

    Регистрация:
    21.12.16
    Сообщения:
    50
    Симпатии:
    0
    Пол:
    Мужской
    then ?
    --- добавлено 21.03.17 ---
    how to do that ?
    :\
     
  11. neygomon Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    8.574
    Симпатии:
    4.655
    Пол:
    Мужской
    @Ish Chhabra,
    if(get_member_game(m_bCompleteReset))

    it's check restart...