Вопрос Разные импакты на сервере и клиенте (позиция выстрела)

Модератор раздела «Создание читов CS2»
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
21 Июн 2022
Сообщения
148
Реакции
368
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Делал сайлент для рейдж бота и столкнулся с неприятностью.
Серверный импакт - красный.
Клиентский - синий.

ragebot.cpp:
Expand Collapse Copy
g_sdk.m_packet_data.m_cmd->m_tick_count = time_to_ticks(g_sdk.m_current_target.m_lag_record.m_sim_time + c_lag_comp::get()->lerp_time());
g_sdk.m_packet_data.m_cmd->m_view_angles = c_math::get()->calc_angle(g_sdk.m_shoot_pos, g_sdk.m_current_target.m_hitbox.m_point);
g_sdk.m_packet_data.m_cmd->m_buttons.add(in_attack);

math.cpp:
Expand Collapse Copy
    vec3_t c_math::calc_angle(const vec3_t& source, const vec3_t& destination)
    {
        vec3_t v_angle;
        const vec3_t delta(source.x - destination.x, source.y - destination.y, source.z - destination.z);
        const double hyp = sqrt(delta.x * delta.x + delta.y * delta.y);

        v_angle.x = atanf(static_cast<float>(delta.z / hyp)) * 57.295779513082f;
        v_angle.y = atanf(delta.y / delta.x) * 57.295779513082f;
        v_angle.z = 0.0f;

        if (delta.x >= 0.0)
            v_angle.y += 180.0f;

        return v_angle;
    }

Если поставить g_sdk.m_interfaces->m_engine->set_view_angles(angle), то регистрация пуль будет работать нормально (но будет наводка на поинт игрока, а мне нужен сайлент)

При выключенном предикшене и анти аимах тоже самый баг.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Делал сайлент для рейдж бота и столкнулся с неприятностью.
Серверный импакт - красный.
Клиентский - синий.

ragebot.cpp:
Expand Collapse Copy
g_sdk.m_packet_data.m_cmd->m_tick_count = time_to_ticks(g_sdk.m_current_target.m_lag_record.m_sim_time + c_lag_comp::get()->lerp_time());
g_sdk.m_packet_data.m_cmd->m_view_angles = c_math::get()->calc_angle(g_sdk.m_shoot_pos, g_sdk.m_current_target.m_hitbox.m_point);
g_sdk.m_packet_data.m_cmd->m_buttons.add(in_attack);

math.cpp:
Expand Collapse Copy
    vec3_t c_math::calc_angle(const vec3_t& source, const vec3_t& destination)
    {
        vec3_t v_angle;
        const vec3_t delta(source.x - destination.x, source.y - destination.y, source.z - destination.z);
        const double hyp = sqrt(delta.x * delta.x + delta.y * delta.y);

        v_angle.x = atanf(static_cast<float>(delta.z / hyp)) * 57.295779513082f;
        v_angle.y = atanf(delta.y / delta.x) * 57.295779513082f;
        v_angle.z = 0.0f;

        if (delta.x >= 0.0)
            v_angle.y += 180.0f;

        return v_angle;
    }

Если поставить g_sdk.m_interfaces->m_engine->set_view_angles(angle), то регистрация пуль будет работать нормально (но будет наводка на поинт игрока, а мне нужен сайлент)

При выключенном предикшене и анти аимах тоже самый баг.
я конечно не уверен
но в чем проблема
сделать так:

C++:
Expand Collapse Copy
if ( !do_silent ) // cfg->ragebot.silent_enable
    engine_client->set_view_ang( aim_angle );

tick_count = TIME_TO_TICKS( best_record->m_sim_time + lerp_time );
view_ang = aim_angle;
buttons.add( in_attack );
updated:
C++:
Expand Collapse Copy
auto aim_angle = calc_angle( shoot_pos, aim_point ).clamp( );
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
я конечно не уверен
но в чем проблема
сделать так:

C++:
Expand Collapse Copy
if ( !do_silent ) // cfg->ragebot.silent_enable
    engine_client->set_view_ang( aim_angle );

tick_count = TIME_TO_TICKS( best_record->m_sim_time + lerp_time );
view_ang = aim_angle;
buttons.add( in_attack );
Чем твой код отличается от моего?
И еще...
Если поставить g_sdk.m_interfaces->m_engine->set_view_angles(angle), то регистрация пуль будет работать нормально (но будет наводка на поинт игрока, а мне нужен сайлент)
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
тут идет чек если сайлент не включен... как ты мне там отвечал? в глазки долбишься?
Ну и зачем мне чек на не вкл сайлент, если я делаю автоматически включенный сайлент..
В глазки долбишься?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вот они P2C девелоперы

on topic: ты бы хоть показал как ты клиент импакты делаешь я не знаю даже...
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вот они P2C девелоперы

on topic: ты бы хоть показал как ты клиент импакты делаешь я не знаю даже...
Хорошо, вот код клиент импактов

C++:
Expand Collapse Copy
    auto& client_impact_list = *reinterpret_cast<CUtlVector<client_impact_t>*>(reinterpret_cast<uintptr_t>(g_sdk.m_local())
        + 0x11C50);
    for (auto impact = client_impact_list.count(); impact > m_last_processed_impact; --impact)
        g_sdk.m_interfaces.m_debug_overlay->add_box_overlay(
            client_impact_list[impact - 1].m_vec_position,
            vec3_t(-2.0f, -2.0f, -2.0f),
            vec3_t(2.0f, 2.0f, 2.0f),
            vec3_t(0.0f, 0.0f, 0.0f),
            g_cfg.visuals.m_client_impacts_color.r(),
            g_cfg.visuals.m_client_impacts_color.g(),
            g_cfg.visuals.m_client_impacts_color.b(),
            g_cfg.visuals.m_client_impacts_color.a(),
            4.0f);

    if (client_impact_list.count() != m_last_processed_impact)
        m_last_processed_impact = client_impact_list.count();
Вот серверных

C++:
Expand Collapse Copy
const auto vec_position = vec3_t(event->get_int(_("x")), event->get_int(_("y")), event->get_int(_("z")));

        auto player = c_base_player::get_player_by_index(
            g_sdk.m_interfaces.m_engine->get_player_for_userid(event->get_int(_("userid"))));
        if (!player || !player->is_alive() || !player->is_player() || !g_sdk.m_local())
            return;

        if (player == g_sdk.m_local())
        {
            if (g_cfg.m_visuals.m_server_impacts)
                g_sdk.m_interfaces.m_debug_overlay->add_box_overlay
                (
                    vec_position,
                    vec3_t(-2.0f, -2.0f, -2.0f),
                    vec3_t(2.0f, 2.0f, 2.0f),
                    vec3_t(0.0f, 0.0f, 0.0f),
                    g_cfg.m_visuals.m_server_impacts_color.r(),
                    g_cfg.m_visuals.m_server_impacts_color.g(),
                    g_cfg.m_visuals.m_server_impacts_color.b(),
                    g_cfg.m_visuals.m_server_impacts_color.a(),
                    4.0f
                );

            return;
        }

Причем тут вообще код импактов....
С командой sv_showimpacts 1 тоже самое (синий - позиция моего прицела, красный - куда пытается стрельнуть чит)
1656860781106.png
 
Последнее редактирование:
На сайленте линию проведи Addlineoverlay и увидишь в чем проблема
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Хорошо, вот код клиент импактов

C++:
Expand Collapse Copy
    auto& client_impact_list = *reinterpret_cast<CUtlVector<client_impact_t>*>(reinterpret_cast<uintptr_t>(g_sdk.m_local())
        + 0x11C50);
    for (auto impact = client_impact_list.count(); impact > m_last_processed_impact; --impact)
        g_sdk.m_interfaces.m_debug_overlay->add_box_overlay(
            client_impact_list[impact - 1].m_vec_position,
            vec3_t(-2.0f, -2.0f, -2.0f),
            vec3_t(2.0f, 2.0f, 2.0f),
            vec3_t(0.0f, 0.0f, 0.0f),
            g_cfg.visuals.m_client_impacts_color.r(),
            g_cfg.visuals.m_client_impacts_color.g(),
            g_cfg.visuals.m_client_impacts_color.b(),
            g_cfg.visuals.m_client_impacts_color.a(),
            4.0f);

    if (client_impact_list.count() != m_last_processed_impact)
        m_last_processed_impact = client_impact_list.count();
Вот серверных

C++:
Expand Collapse Copy
const auto vec_position = vec3_t(event->get_int(_("x")), event->get_int(_("y")), event->get_int(_("z")));

        auto player = c_base_player::get_player_by_index(
            g_sdk.m_interfaces.m_engine->get_player_for_userid(event->get_int(_("userid"))));
        if (!player || !player->is_alive() || !player->is_player() || !g_sdk.m_local())
            return;

        if (player == g_sdk.m_local())
        {
            if (g_cfg.m_visuals.m_server_impacts)
                g_sdk.m_interfaces.m_debug_overlay->add_box_overlay
                (
                    vec_position,
                    vec3_t(-2.0f, -2.0f, -2.0f),
                    vec3_t(2.0f, 2.0f, 2.0f),
                    vec3_t(0.0f, 0.0f, 0.0f),
                    g_cfg.m_visuals.m_server_impacts_color.r(),
                    g_cfg.m_visuals.m_server_impacts_color.g(),
                    g_cfg.m_visuals.m_server_impacts_color.b(),
                    g_cfg.m_visuals.m_server_impacts_color.a(),
                    4.0f
                );

            return;
        }

Причем тут вообще код импактов....
С командой sv_showimpacts 1 тоже самое (синий - позиция моего прицела, красный - куда пытается стрельнуть чит)
Посмотреть вложение 210531
Кринж код. В CEngineSound::EmitSound можно вполне удобно импакты клиентские рисовать, без подобной шизы.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу