Вопрос Как сделать проверку на локального игрока

Начинающий
Статус
Оффлайн
Регистрация
13 Янв 2023
Сообщения
127
Реакции[?]
16
Поинты[?]
1K
Привет, имеется интересный код из этой темы - *кликабельно*
и хотел бы узнать как сделать чтобы это Ангельское кольцо не распространялось на всех игроков, а было только локальное у моего персонажа
1684951587331.png
Код который имеется у меня
player_esp.cpp:
void playeresp::eva(player_t* e, const Box& box)
{
    if (!g_cfg.player.type->eva)
        return;

    static auto model_index = m_modelinfo()->GetModelIndex(crypt_str("sprites/physbeam.vmt"));

    if (g_ctx.globals.should_update_beam_index)
        model_index = m_modelinfo()->GetModelIndex(crypt_str("sprites/physbeam.vmt"));
    std::vector<BeamInfo_t> new_beams;
    BeamInfo_t info;

    info.m_nType = TE_BEAMRINGPOINT;
    info.m_pszModelName = crypt_str("sprites/physbeam.vmt");
    info.m_nModelIndex = model_index;
    info.m_nHaloIndex = 1;
    info.m_flHaloScale = 3.0f;
    info.m_flLife = 0.05f;
    info.m_flWidth = 3.5f;
    info.m_flFadeLength = 0.0f;
    info.m_flAmplitude = 1.f + 4.f;
    info.m_flRed = (float)g_cfg.player.type->eva_color.r();
    info.m_flGreen = (float)g_cfg.player.type->eva_color.g();
    info.m_flBlue = (float)g_cfg.player.type->eva_color.b();
    info.m_flBrightness = (float)g_cfg.player.type->eva_color.a();
    info.m_flSpeed = 0.0f;
    info.m_nStartFrame = 0.0f;
    info.m_flFrameRate = 0.0f;
    info.m_nSegments = -1;
    info.m_nFlags = FBEAM_FADEOUT;
    info.m_vecCenter = e->GetAbsOrigin() + Vector(0.0f, 0.0f, 70.0f);
    info.m_flStartRadius = 19.0f; //20.0f
    info.m_flEndRadius = 17.0f; //18.0f
    info.m_bRenderable = true;

    auto beam_draw = m_viewrenderbeams()->CreateBeamRingPoint(info);

    if (beam_draw)
        m_viewrenderbeams()->DrawBeam(beam_draw);
}
 
Начинающий
Статус
Оффлайн
Регистрация
13 Янв 2023
Сообщения
127
Реакции[?]
16
Поинты[?]
1K
Когда перед
Код:
    if (!g_cfg.player.type->eva)
        return;
добавляю
Код:
    if (!g_ctx.local()->is_alive())
        return;
и начинает крашить, отладка ничего не показывает
 
Эксперт
Статус
Оффлайн
Регистрация
7 Сен 2019
Сообщения
2,107
Реакции[?]
984
Поинты[?]
88K
Когда перед
Код:
    if (!g_cfg.player.type->eva)
        return;
добавляю
Код:
    if (!g_ctx.local()->is_alive())
        return;
и начинает крашить, отладка ничего не показывает
Ёбанный рот, у тебя local равен nullptr, добавь проверку if( !g_ctx.local( ) ) return;

Да и ещё буду добрым, и скажу тебе что у тебя в данной функции круга или что это за херня, есть аргумент 'e' = entity(фулл расшифровка)
Сравни его с локал игроком, и если он не равен локал игроку, просто return ставь
 
ЧВК EB_LAN
Забаненный
Статус
Оффлайн
Регистрация
12 Янв 2019
Сообщения
838
Реакции[?]
298
Поинты[?]
17K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Когда перед
Код:
    if (!g_cfg.player.type->eva)
        return;
добавляю
Код:
    if (!g_ctx.local()->is_alive())
        return;
и начинает крашить, отладка ничего не показывает
C++:
if ( !e || e != g_ctx.local( ) )
    return;

if ( !g_ctx.local( )->is_alive( ) )
    return;
 
Эксперт
Статус
Онлайн
Регистрация
29 Мар 2021
Сообщения
1,572
Реакции[?]
594
Поинты[?]
33K
имею ввиду чтобы тему закрыли
то есть тебе некробампить вопросы которые тебе лично непонятны требуя фикс под конкретно твой сдк можно, а другим нельзя?
 
Ревёрсер среднего звена
Пользователь
Статус
Оффлайн
Регистрация
24 Ноя 2022
Сообщения
303
Реакции[?]
107
Поинты[?]
56K
Я думал локалплеер в каэске это основа основ, хуле там делать, сравниваешь энтити с ним и выполняешь/не выполняешь код...
А тут такое.

EDIT: а, ой, не посмотрел, автору же 0 лет, строчит треды со своими пастерскими проблемами тут
 
Последнее редактирование:
Сверху Снизу