Вопрос Проблема с получением врага

PrimordialAgent
Пользователь
Статус
Оффлайн
Регистрация
4 Ноя 2020
Сообщения
236
Реакции[?]
97
Поинты[?]
1K
Ранее я получал его через

C++:
for (int i = 1; i < g_EngineClient->GetMaxClients(); i++) {
    auto m_pPlayer = reinterpret_cast<C_BasePlayer*>(g_EntityList->GetClientEntity(i));
}
После обновы m_pPlayer стал возвращать нулевое значение (NULL aka 0x000000). Можно ли гетать енеми каким-то другим способом?
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
енеми каким-то другим способом
Твой метод правильный.
Сущности идут в списке определенным порядком, 0 всегда мир, 1..64(G_global_vars->maxClients) игроки, 65..GetHighestEntityIndex()-1 все остальные.
Просто игроков может быть меньше чем 64, поэтому тебе нужно лишь добавить проверку что игрок != nullptr, это хорошая практика к ЛЮБЫМ указателем игры.

Код:
for (int i = 1; i <= g_EngineClient->GetMaxClients(); i++)
{
    auto player = reinterpret_cast<C_BasePlayer*>(g_EntityList->GetClientEntity(i));
    if (!player)
        continue;
    ...
}
 
Сверху Снизу