• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Вопрос Is_valid lagcompensation

Пользователь
Пользователь
Статус
Оффлайн
Регистрация
8 Июн 2020
Сообщения
212
Реакции
68
Так как недавно прикрутил бектрек в свой чит, задался вопросом как чекать валидность рекорда что бы не только стрелять но и попадать в бектрек.
Нашёл код в интернете и модифицировал его,но бдв достаточно часто стреляю в не валидный рекорд.
Есть ли у кого то идеи или кто то может дать подсказку как улучшить данный код?

У самого есть идея использования значения интерполяции но пока без реализации.

C++:
Expand Collapse Copy
const auto nci = I::Engine->GetNetChannelInfo(0);
        if (!nci)
            return 0;

        const auto latency = nci->get_latency(flow::FLOW_OUTGOING) + nci->get_latency(FLOW_INCOMING);

        float dead_time = (SDK::LocalPawn->m_flSimulationTime() * 0.015625f) - m_simulation_time + latency;

        return dead_time < 0.2f;
 
бектрек в лц? не пон
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Так как недавно прикрутил бектрек в свой чит, задался вопросом как чекать валидность рекорда что бы не только стрелять но и попадать в бектрек.
Нашёл код в интернете и модифицировал его,но бдв достаточно часто стреляю в не валидный рекорд.
Есть ли у кого то идеи или кто то может дать подсказку как улучшить данный код?

У самого есть идея использования значения интерполяции но пока без реализации.

C++:
Expand Collapse Copy
const auto nci = I::Engine->GetNetChannelInfo(0);
        if (!nci)
            return 0;

        const auto latency = nci->get_latency(flow::FLOW_OUTGOING) + nci->get_latency(FLOW_INCOMING);

        float dead_time = (SDK::LocalPawn->m_flSimulationTime() * 0.015625f) - m_simulation_time + latency;

        return dead_time < 0.2f;
1730466870698.png


just use it to calculate delta_time via target_time
 
  • Попкорн
Реакции: mj12
Так как недавно прикрутил бектрек в свой чит, задался вопросом как чекать валидность рекорда что бы не только стрелять но и попадать в бектрек.
Нашёл код в интернете и модифицировал его,но бдв достаточно часто стреляю в не валидный рекорд.
Есть ли у кого то идеи или кто то может дать подсказку как улучшить данный код?

У самого есть идея использования значения интерполяции но пока без реализации.

C++:
Expand Collapse Copy
const auto nci = I::Engine->GetNetChannelInfo(0);
        if (!nci)
            return 0;

        const auto latency = nci->get_latency(flow::FLOW_OUTGOING) + nci->get_latency(FLOW_INCOMING);

        float dead_time = (SDK::LocalPawn->m_flSimulationTime() * 0.015625f) - m_simulation_time + latency;

        return dead_time < 0.2f;
Код:
Expand Collapse Copy
bool IsValidLagCompensationRecord(LagRecord* record) {
    if (!record) return false;

    auto nci = I::Engine->GetNetChannelInfo();
    if (!nci) return false;

    float latency = nci->GetLatency(FLOW_OUTGOING) + nci->GetLatency(FLOW_INCOMING);

    float interp = I::CVar->FindVar("cl_interp")->GetFloat();
    float interp_ratio = I::CVar->FindVar("cl_interp_ratio")->GetFloat();
    float tick_interval = 1.0f / I::GlobalVars->interval_per_tick;
    float lerp_time = std::max(interp, interp_ratio / tick_interval);

    float current_time = SDK::LocalPawn->m_flSimulationTime();
    float correct_time = current_time + latency + lerp_time;

    float delta_time = correct_time - record->m_flSimulationTime;

    float max_unlag = I::CVar->FindVar("sv_maxunlag")->GetFloat();
    if (delta_time >= 0.0f && delta_time < max_unlag) {
        if (record->velocity.Length() > 0.1f) {
            return true;
        }
    }

    return false;
}
пример простой валидации
 
Назад
Сверху Снизу