Гайд Улучшение счётчика миссов

Забаненный
Статус
Оффлайн
Регистрация
3 Май 2018
Сообщения
234
Реакции[?]
68
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обычный счётчик миссов обнуляется каждый раунд (по крайней мере должен обнуляться). Но в таком случае, если наш ресольвер тапает условного игрока со второго выстрела, то каждый новый раунд мы будем по одному разу миссать. Значит если игрок с прошлого раунда сохранился, обнулять его счётчик не нужно. Для определения самого игрока я использую Steam ID.

Заводим глобальный массив Steam IDs:
C++:
unsigned long steam_ids[65];

Функция инициализации массива:
C++:
void misc::init_player_ids()
{
    for (int i = 0; i < 65; i++)
    {
        auto e = static_cast<player_t*>(g_csgo.m_entitylist()->GetClientEntity(i));

        if (!e)
        {
            steam_ids[i] = 0;
            continue;
        }

        player_info_t player_info;
        g_csgo.m_engine()->GetPlayerInfo(e->EntIndex(), &player_info);

        steam_ids[i] = player_info.iSteamID;
    }
}

Основная функция:
C++:
void misc::reset_missed_shots()
{
    if (!g_csgo.m_engine()->IsInGame())
        return;

    static bool should_init = true;

    if (should_init)
    {
        should_init = false;
        init_player_ids(); // Один раз записываем в массив Steam IDs игроков.
    }

    for (int i = 0; i < 65; i++)
    {
        auto e = static_cast<player_t*>(g_csgo.m_entitylist()->GetClientEntity(i));

        if (!e)
            continue;

        player_info_t player_info;
        g_csgo.m_engine()->GetPlayerInfo(e->EntIndex(), &player_info);

        if (player_info.iSteamID != steam_ids[i]) // Если текущий Steam ID игрока отличается от начального Steam ID,
        {
            steam_ids[i] = player_info.iSteamID; // то записываем в массив новый
            g_ctx.m_globals.missed_shots[i] = 0; // и обнуляем счётчик миссов для игрока по этому индексу.
        }
    }
}

Саму функцию вызываем в event listener:
C++:
if (!strcmp(event->GetName(), "round_start"))
    misc::get().reset_missed_shots();
 
Последнее редактирование:
НАЧНИ ПРОГРАММИРОВАТЬ ПРЯМО СЕЙЧАС
Участник
Статус
Оффлайн
Регистрация
19 Июн 2017
Сообщения
608
Реакции[?]
924
Поинты[?]
4K
1557519049123.png
твоя подпись соответствует гайду
 
Забаненный
Статус
Оффлайн
Регистрация
3 Май 2018
Сообщения
234
Реакции[?]
68
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Посмотреть вложение 22708
твоя подпись соответствует гайду
Эта штука конечно не поможет всё и вся тапать, но она все равно будет полезна для корректности счётчика миссов. И к слову если ты посмотришь некоторые темы из этого же раздела (гайды), то там есть гораздо более бессмысленные чем моя :roflanEbalo:
 
get good get desync.vip
Забаненный
Статус
Оффлайн
Регистрация
19 Мар 2017
Сообщения
785
Реакции[?]
150
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Давай еще один интересный гайд:D
 
Забаненный
Статус
Оффлайн
Регистрация
3 Май 2018
Сообщения
234
Реакции[?]
68
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
НАЧНИ ПРОГРАММИРОВАТЬ ПРЯМО СЕЙЧАС
Участник
Статус
Оффлайн
Регистрация
19 Июн 2017
Сообщения
608
Реакции[?]
924
Поинты[?]
4K
              ru p2cs > all                      
Разработчик
Статус
Оффлайн
Регистрация
19 Авг 2016
Сообщения
1,580
Реакции[?]
1,963
Поинты[?]
134K
Сверху Снизу