Исходник Исправление фейклагов после фейк угла

int main(int nNumberofArgs, char pszArgs[])
Забаненный
Статус
Оффлайн
Регистрация
23 Мар 2018
Сообщения
759
Реакции[?]
173
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
credits: notvvav

и-такс. Большая часть объяснений находится в самом коде.
Обратите внимание, что это работает только с текущим состоянием обработки пакетов cs go и сети, обратитесь к тому, как игроки моделируются на сервере теперь против до поддельного угла патча (теперь все команды имитируются).
Теперь мы знаем этот факт, мы можем использовать его в наших интересах.
PS. Это также позволяет нам компенсировать отставание игроков, которые "ломают" его, что было невозможно до поддельного углового патча (опять же, каждая команда имитируется, и вы просто не можете двигаться так сильно в данном тике, чтобы сломать его, если другой игрок использует исправление, как показано на рисунке). В основном все, что связано с симуляцией, не учитывается, и приводится только примитивный пример. Это потому, что все, имеющие идеальное моделирование не будет весело нан hvh.

Код:
void animation_system_rebuilt::process_predicted_animations(c_entity* entity_to_predict) {

    /*DISCLAIMER*/  /*DISCLAIMER*/  /*DISCLAIMER*/  /*DISCLAIMER*/  /*DISCLAIMER*/  /*DISCLAIMER*/  /*DISCLAIMER*/  /*DISCLAIMER*/  /*DISCLAIMER*/
    // This is very basic and should only be used as guidance when constructing your own player simulation logic.
    // Full paste will not be given. I believe that with this info given and no more, the gap between good and bad cheats will widen, which is good.
    // No validity checks performed here since all are done beforehand. Of course you can add those if wanted.

    // Use latest predicted data to predict next tick too.
    c_animation_system_data resontructed_data = animation_system_rebuilt::stored::data.at(0);

    // If in air we can just use our latest up velocity to predict the next since how it decreases is very simple.
    // velocity_decrease you will have to figure out yourself, though a tip for you is server_anim_state->base_entity + 388.
    // Of course adding something like bhop detection would be nice but once again, that will be up to you.
    if (!(reconstructed_data.flags & flags::player::fl_onground))
        reconstructed_data.animation_instance.velocity.z = std::max(0.f, reconstructed_data.animation_instance.velocity.z - velocity_decrease);
    else
        reconstructed_data.animation_instance.velocity.z = calculate_ground_velocity_z(bsp_scan::movement_dir_ground_level(reconstructed_data.animation_instance));

    reconstructed_data.animation_instance.velocity.x = ; // Calculate these yourself. I'm not going to spoonfeed everything, and since this is basically the most important part especially on moving players, no.
    reconstructed_data.animation_instance.velocity.y = ; // A couple hints i can give you is that you need to account for stamina, acceleration/deceleration, current and old movement direction.


    // The point of this is to correct the direction of the player and determine the player's new origin.
    reconstructed_data.animation_instance.origin = extrapolate_origin(reconstructed_data.animation_instance.origin, reconstructed_data.animation_instance.velocity)

    // Source will not be posted, though looking at how the server handles pose parameters is a good start. Refer to functions called from CCSGOPlayerAnimState::Update();, they control most of this.
    resonstructed_data.poses = animation_system_rebuilt::construct_player_poses();
    reconstructed_data.flags = animation_system_rebuilt::construct_player_flags();
    reconstructed_data.animation_instance->udpate();

    // We need to correct timulation time for our record so we can abuse the game's lag compensation to essentially unlag compensate them.
    // Doing this is relatively simple, we just take their current simulation time, add the amount of ticks predicted, and then the lerp

    reconstructed_data.simulation_time = entity_to_predict->m_flSimulationTime() + ticks_to_time(animation_system_rebuilt::stored::data.size()) + animation_system_rebuilt::lerp();

    // You could use the game's default bone set up here but your results will of course not be as accurate as proper bone setup.
    // We will be using these bones for our aimbot.
    animation_system_rebuilt::allow_bone_setup();
    reconstructed_data.matrix = animation_system_rebuilt::build_entity_bones(reconstructed_data);
    animation_system_rebuilt::disallow_bone_setup();
    animation_system_rebuilt::stored::data.emplace_front(resonstructed_data);
    latest_predicted_entity = resonstructed_data.entity;
}

bool animation_system_rebuilt::handle_commands(c_entity* entity) {
    static bool needs_resimulating = false;
    if (!entity)
        return false;
    // This is lacking about 100% of everything else done, i am only including what is essential.
    // Look at C_CSPlayer::PostThink() in both the client and the server for more insight.
    // The included code is for the most part in this function in void of any anti paste, so enjoy.
    static c_entity* latest_networked_entity = nullptr;
    if (new_commands_incoming) {
        animation_system_rebuilt::process_networked_animations(entity);
        latest_predicted_entity = entity;
        needs_resimulating = true;
        return true;
    } else if (needs_resimulating) { //We want to predict all of the possible ticks the player could be choking as soon as we can, so we can predict them whenever we want.
        for (unsigned int process_index = 0u; process_index < sv_maxusrcmdprocessticks; ++process_index) {
            animation_system_rebuilt::process_predicted_animations(latest_predicted_entity); // This also updates latest_predicted_entity.
            // We want to break out of prediction and start over next time if our product is faulty.
            if (!latest_predicted_entity) {
                needs_resimulating = true;
                return false;
            }
        }
        needs_resimulating = false;
        return true;
    }
    else // Nothing new to handle.
        return false;
}

void lag_comp() {
    for (auto lag_iterator : animation_system_rebuilt::stored::data) {
        // Sort your records and whatnot as if you would with normal records.
        get_best_record();
    }
    /*
        Do the rest as you would with normal lag compensation.
        The normal forward track limit of 200ms does not exist here.
        This is because we will be shooting our shots at the moment that the player is where they are.
        The server will register our shot when the enemy stops choking and it runs hitscan on the choked ticks.
        Our code will not work without this since that would be like backtracking without backtracking, it won't magically work.
    */
}
 
Последнее редактирование:
Эксперт
Статус
Оффлайн
Регистрация
8 Авг 2018
Сообщения
2,218
Реакции[?]
631
Поинты[?]
0
и-такс. Большая часть объяснений находится в самом коде.
Обратите внимание, что это работает только с текущим состоянием обработки пакетов cs go и сети, обратитесь к тому, как игроки моделируются на сервере теперь против до поддельного угла патча (теперь все команды имитируются).
Теперь мы знаем этот факт, мы можем использовать его в наших интересах.
PS. Это также позволяет нам компенсировать отставание игроков, которые "ломают" его, что было невозможно до поддельного углового патча (опять же, каждая команда имитируется, и вы просто не можете двигаться так сильно в данном тике, чтобы сломать его, если другой игрок использует исправление, как показано на рисунке). В основном все, что связано с симуляцией, не учитывается, и приводится только примитивный пример. Это потому, что все, имеющие идеальное моделирование не будет весело нан hvh.

Код:
void animation_system_rebuilt::process_predicted_animations(c_entity* entity_to_predict) {

    /*DISCLAIMER*/  /*DISCLAIMER*/  /*DISCLAIMER*/  /*DISCLAIMER*/  /*DISCLAIMER*/  /*DISCLAIMER*/  /*DISCLAIMER*/  /*DISCLAIMER*/  /*DISCLAIMER*/
    // This is very basic and should only be used as guidance when constructing your own player simulation logic.
    // Full paste will not be given. I believe that with this info given and no more, the gap between good and bad cheats will widen, which is good.
    // No validity checks performed here since all are done beforehand. Of course you can add those if wanted.

    // Use latest predicted data to predict next tick too.
    c_animation_system_data resontructed_data = animation_system_rebuilt::stored::data.at(0);

    // If in air we can just use our latest up velocity to predict the next since how it decreases is very simple.
    // velocity_decrease you will have to figure out yourself, though a tip for you is server_anim_state->base_entity + 388.
    // Of course adding something like bhop detection would be nice but once again, that will be up to you.
    if (!(reconstructed_data.flags & flags::player::fl_onground))
        reconstructed_data.animation_instance.velocity.z = std::max(0.f, reconstructed_data.animation_instance.velocity.z - velocity_decrease);
    else
        reconstructed_data.animation_instance.velocity.z = calculate_ground_velocity_z(bsp_scan::movement_dir_ground_level(reconstructed_data.animation_instance));

    reconstructed_data.animation_instance.velocity.x = ; // Calculate these yourself. I'm not going to spoonfeed everything, and since this is basically the most important part especially on moving players, no.
    reconstructed_data.animation_instance.velocity.y = ; // A couple hints i can give you is that you need to account for stamina, acceleration/deceleration, current and old movement direction.


    // The point of this is to correct the direction of the player and determine the player's new origin.
    reconstructed_data.animation_instance.origin = extrapolate_origin(reconstructed_data.animation_instance.origin, reconstructed_data.animation_instance.velocity)

    // Source will not be posted, though looking at how the server handles pose parameters is a good start. Refer to functions called from CCSGOPlayerAnimState::Update();, they control most of this.
    resonstructed_data.poses = animation_system_rebuilt::construct_player_poses();
    reconstructed_data.flags = animation_system_rebuilt::construct_player_flags();
    reconstructed_data.animation_instance->udpate();

    // We need to correct timulation time for our record so we can abuse the game's lag compensation to essentially unlag compensate them.
    // Doing this is relatively simple, we just take their current simulation time, add the amount of ticks predicted, and then the lerp

    reconstructed_data.simulation_time = entity_to_predict->m_flSimulationTime() + ticks_to_time(animation_system_rebuilt::stored::data.size()) + animation_system_rebuilt::lerp();

    // You could use the game's default bone set up here but your results will of course not be as accurate as proper bone setup.
    // We will be using these bones for our aimbot.
    animation_system_rebuilt::allow_bone_setup();
    reconstructed_data.matrix = animation_system_rebuilt::build_entity_bones(reconstructed_data);
    animation_system_rebuilt::disallow_bone_setup();
    animation_system_rebuilt::stored::data.emplace_front(resonstructed_data);
    latest_predicted_entity = resonstructed_data.entity;
}

bool animation_system_rebuilt::handle_commands(c_entity* entity) {
    static bool needs_resimulating = false;
    if (!entity)
        return false;
    // This is lacking about 100% of everything else done, i am only including what is essential.
    // Look at C_CSPlayer::PostThink() in both the client and the server for more insight.
    // The included code is for the most part in this function in void of any anti paste, so enjoy.
    static c_entity* latest_networked_entity = nullptr;
    if (new_commands_incoming) {
        animation_system_rebuilt::process_networked_animations(entity);
        latest_predicted_entity = entity;
        needs_resimulating = true;
        return true;
    } else if (needs_resimulating) { //We want to predict all of the possible ticks the player could be choking as soon as we can, so we can predict them whenever we want.
        for (unsigned int process_index = 0u; process_index < sv_maxusrcmdprocessticks; ++process_index) {
            animation_system_rebuilt::process_predicted_animations(latest_predicted_entity); // This also updates latest_predicted_entity.
            // We want to break out of prediction and start over next time if our product is faulty.
            if (!latest_predicted_entity) {
                needs_resimulating = true;
                return false;
            }
        }
        needs_resimulating = false;
        return true;
    }
    else // Nothing new to handle.
        return false;
}

void lag_comp() {
    for (auto lag_iterator : animation_system_rebuilt::stored::data) {
        // Sort your records and whatnot as if you would with normal records.
        get_best_record();
    }
    /*
        Do the rest as you would with normal lag compensation.
        The normal forward track limit of 200ms does not exist here.
        This is because we will be shooting our shots at the moment that the player is where they are.
        The server will register our shot when the enemy stops choking and it runs hitscan on the choked ticks.
        Our code will not work without this since that would be like backtracking without backtracking, it won't magically work.
    */
}
Пожалуйста, авторизуйтесь для просмотра ссылки.
если что
 
int main(int nNumberofArgs, char pszArgs[])
Забаненный
Статус
Оффлайн
Регистрация
23 Мар 2018
Сообщения
759
Реакции[?]
173
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
push me to the edge
Олдфаг
Статус
Оффлайн
Регистрация
22 Мар 2017
Сообщения
2,253
Реакции[?]
1,204
Поинты[?]
1K
Знаешь вот вас жестко тролят юц шитпостеры а мне не смешно!
 
int main(int nNumberofArgs, char pszArgs[])
Забаненный
Статус
Оффлайн
Регистрация
23 Мар 2018
Сообщения
759
Реакции[?]
173
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
              ru p2cs > all                      
Разработчик
Статус
Оффлайн
Регистрация
19 Авг 2016
Сообщения
1,579
Реакции[?]
1,963
Поинты[?]
133K
это ты свои скилы использования гугл переводчика показываешь? неплохо, но все равно нечитаемо. по 10 раз прогоняй из английского в русский и обратно будет заебись.

вот пример -

Обратите внимание, что это работает только с текущими процессами обработки пакетов.
Мы можем использовать это в нашу пользу.
Пс. Кроме того, каждая команда использует исправления. как показано на рисунке). В принципе, все, что касается моделирования, не учитывается, это лишь примитивный пример. Это будет весело, не так весело.
удачи мистер int aimware = 1, и побольше bool onetap = INT_MAX.
 
int main(int nNumberofArgs, char pszArgs[])
Забаненный
Статус
Оффлайн
Регистрация
23 Мар 2018
Сообщения
759
Реакции[?]
173
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
это ты свои скилы использования гугл переводчика показываешь? неплохо, но все равно нечитаемо. по 10 раз прогоняй из английского в русский и обратно будет заебись.

вот пример -



удачи мистер int aimware = 1, и побольше bool onetap = INT_MAX.
я не говорил, то не брал код с юц лмао.
это все хорошо реализовал notvvav


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