Исходник Legendware shift system

Начинающий
Статус
Оффлайн
Регистрация
12 Дек 2023
Сообщения
13
Реакции[?]
17
Поинты[?]
12K
when draining the source, the shift itself was cut out
Код:
void Exploits::teleport(int ticks, crypt_ptr <CUserCmd> cmd)
{
    if (!ctx->weapon_data())
        return;

    auto teleporting = false;

    auto forwardmove = ctx->original_forwardmove;
    auto sidemove = ctx->original_sidemove;

    if (ctx->weapon_config != WEAPON_CONFIG_INVALID && engine_prediction->flags & FL_ONGROUND && ctx->local()->m_fFlags() & FL_ONGROUND)
    {
        if (config->rage.weapon[ctx->weapon_config].extended_teleport && ctx->local()->m_vecVelocity().Length2D() > 5.0f)
        {
            if (abs(forwardmove) > 5.0f)
            {
                teleporting = true;
                forwardmove = copysign(convars_manager->convars[CONVAR_CL_FORWARDSPEED]->GetFloat(), forwardmove);
            }
            else
                forwardmove = 0.0f;

            if (abs(sidemove) > 5.0f)
            {
                teleporting = true;
                sidemove = copysign(convars_manager->convars[CONVAR_CL_SIDESPEED]->GetFloat(), sidemove);
            }
            else
                sidemove = 0.0f;
        }
        else
        {
            forwardmove = 0.0f;
            sidemove = 0.0f;
        }
    }

    auto additional_stop_ticks = 0;

    if (teleporting && in_attack)
    {
        auto backup_tickbase = ctx->tickbase;
        auto backup_next_attack = ctx->local()->m_flNextAttack();
        auto backup_next_primary_attack = ctx->weapon()->m_flNextPrimaryAttack();

        ctx->local()->m_flNextAttack() = TICKS_TO_TIME(ctx->tickbase) + ctx->weapon_data()->cycle_time;
        ctx->weapon()->m_flNextPrimaryAttack() = TICKS_TO_TIME(ctx->tickbase) + ctx->weapon_data()->cycle_time; //-V656

        auto next_tickbase = ctx->tickbase + ticks;

        for (auto tickbase = next_tickbase; tickbase < next_tickbase + 14; ++tickbase)
        {
            ctx->tickbase = tickbase;

            if (ctx->local()->can_shoot())
                break;

            ++additional_stop_ticks;
        }

        ctx->tickbase = backup_tickbase;
        ctx->local()->m_flNextAttack() = backup_next_attack;
        ctx->weapon()->m_flNextPrimaryAttack() = backup_next_primary_attack;
    }

    auto backup_tickbase = ctx->local()->m_nTickBase();
    auto backup_curtime = globals->curtime;

    movehelper->set_host(ctx->local().get());
    globals->curtime = TICKS_TO_TIME(ctx->local()->m_nTickBase());

    ctx->local()->post_think();
    ++ctx->local()->m_nTickBase();

    movehelper->set_host(nullptr);

    auto commands_to_add = 0;
    auto next_command_number = cmd->command_number + 1;

    CUserCmd next_cmd;
    memcpy(&next_cmd, cmd.get(), sizeof(CUserCmd));

    next_cmd.command_number = next_command_number;
    next_cmd.buttons &= ~IN_ATTACK;
    next_cmd.buttons &= ~IN_ATTACK2;
    next_cmd.forwardmove = forwardmove;
    next_cmd.sidemove = sidemove;

    do
    {

        auto sequence_number = commands_to_add + next_cmd.command_number;

        auto command = crypt_ptr <CUserCmd> (input->GetUserCmd(sequence_number));
        auto verified_command = crypt_ptr <CVerifiedUserCmd> (input->GetVerifiedUserCmd(sequence_number));

        auto view_angles = movement_system->wish_angle;


        memcpy(command.get(), &next_cmd, sizeof(CUserCmd));

        command->command_number = sequence_number;
        command->predicted = true;
        command->buttons |= engine_prediction->buttons & IN_JUMP;
        command->viewangles = view_angles;
        if (ctx->local()->m_fFlags() & FL_ONGROUND && !(command->buttons & IN_JUMP))
        {
            if (ctx->automatic_peek && !ctx->automatic_peek_position.IsZero() && movement_system->holding_automatic_peek)
            {
                auto delta = ctx->automatic_peek_position - ctx->local()->m_vecOrigin();

                if (delta.Length() >= 10.0f)
                {
                    view_angles.y = math::calculate_angle(ctx->local()->m_vecOrigin(), ctx->automatic_peek_position).y;

                    command->forwardmove = convars_manager->convars[CONVAR_CL_FORWARDSPEED]->GetFloat();
                    command->sidemove = 0.0f;
                }
            }
            else if (teleporting && in_attack)
            {
                RestoreData restore_data;
                engine_prediction->store_restore_data(restore_data);

                CUserCmd predict_command;
                memcpy(&predict_command, command.get(), sizeof(CUserCmd)); //-V598

                auto ticks_to_stop = 0;

                for (ticks_to_stop = 0; ticks_to_stop < 14; ++ticks_to_stop)
                {
                    if (ctx->local()->m_vecVelocity().Length2D() + 1.0f < ctx->max_speed * 0.34f)
                        break;

                    Vector angle;
                    math::vector_angles(ctx->local()->m_vecVelocity() * -1.0f, angle);

                    angle.y = math::normalize_yaw(view_angles.y - angle.y);

                    Vector direction;
                    math::angle_vectors(angle, &direction, nullptr, nullptr);

                    auto stop = direction * ctx->local()->m_vecVelocity().Length2D(); //-V688

                    predict_command.forwardmove = stop.x;
                    predict_command.sidemove = stop.y;

                    engine_prediction->start(&predict_command);
                }

                if (ticks_to_stop)
                {
                    engine_prediction->apply_restore_data(restore_data);

                    if (commands_to_add >= ticks - ticks_to_stop - 1 + additional_stop_ticks)
                    {
                        Vector angle;
                        math::vector_angles(ctx->local()->m_vecVelocity() * -1.0f, angle);

                        angle.y = math::normalize_yaw(view_angles.y - angle.y);

                        Vector direction;
                        math::angle_vectors(angle, &direction, nullptr, nullptr);

                        auto stop = direction * ctx->local()->m_vecVelocity().Length2D(); //-V688

                        command->forwardmove = stop.x;
                        command->sidemove = stop.y;
                    }
                }
            }
        }
        else if (!(ctx->local()->m_fFlags() & FL_ONGROUND) && command->buttons & IN_JUMP)
            command->buttons &= ~IN_JUMP;

   
        anti_aim->force_disable_desync = true;
        anti_aim->run(command);
        anti_aim->force_disable_desync = false;
        movement_system->fix_movement(command, view_angles, abs(command->viewangles.z) > 0.0f);
        movehelper->set_host(ctx->local().get());
        prediction->RunCommand(ctx->local().get(), command.get(), movehelper.get());
        movehelper->set_host(nullptr);


        --ctx->local()->m_nTickBase();
        local_animations->run(command, false);
        ++ctx->local()->m_nTickBase();

        movement_system->edge_jump(command);
        command->predicted = false;

        memcpy(&verified_command->m_cmd, command.get(), sizeof(CUserCmd));
        verified_command->m_crc = command->GetChecksum();

        ++clientstate->m_nChokedCommands;

        if (clientstate->m_NetChannel)
        {
            ++clientstate->m_NetChannel->m_nChokedPackets;
            ++clientstate->m_NetChannel->m_nOutSequenceNr;
        }

        ++commands_to_add;
    }
    while (commands_to_add != ticks);

    if (!previous_tickbase_shift)
        tickbase_adjust = commands_to_add;

    ctx->local()->m_nTickBase() = backup_tickbase;
    globals->curtime = backup_curtime;

    prediction->m_bPreviousAckHadErrors = true;
    prediction->m_nCommandsPredicted = 0;

    *ctx->send_packet.get() = true;
}

void Exploits::shift_tickbase(crypt_ptr <CUserCmd> cmd)
{
    if (!tickbase_shift)
        return;

    if (!*ctx->send_packet.get())
        return;

    auto command_number = cmd->command_number;
    auto ticks = tickbase_shift;

    do
    {
        auto command = crypt_ptr <CUserCmd> (input->GetUserCmd(++command_number));

        if (command.get() != cmd.get())
            memcpy(command.get(), cmd.get(), sizeof(CUserCmd));

        command->command_number = command_number;
        command->tickcount = 0x7F7FFFFF;

        command->predicted = true;
        command->buttons |= cmd->buttons & (IN_BULLRUSH | IN_SPEED | IN_DUCK);

        auto verified_cmd = crypt_ptr <CVerifiedUserCmd> (input->GetVerifiedUserCmd(command_number));

        memcpy(&verified_cmd->m_cmd, command.get(), sizeof(CUserCmd));
        verified_cmd->m_crc = command->GetChecksum();

        ++clientstate->m_nChokedCommands;
        --ticks;
    }
    while (ticks);
}
 
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2022
Сообщения
131
Реакции[?]
28
Поинты[?]
24K
Код:
            if (ctx->automatic_peek && !ctx->automatic_peek_position.IsZero() && movement_system->holding_automatic_peek)
            {
                auto delta = ctx->automatic_peek_position - ctx->local()->m_vecOrigin();

                if (delta.Length() >= 10.0f)
                {
                    view_angles.y = math::calculate_angle(ctx->local()->m_vecOrigin(), ctx->automatic_peek_position).y;

                    command->forwardmove = convars_manager->convars[CONVAR_CL_FORWARDSPEED]->GetFloat();
                    command->sidemove = 0.0f;
:4Head:
 
Начинающий
Статус
Оффлайн
Регистрация
15 Окт 2019
Сообщения
25
Реакции[?]
5
Поинты[?]
5K
Код:
            if (ctx->automatic_peek && !ctx->automatic_peek_position.IsZero() && movement_system->holding_automatic_peek)
            {
                auto delta = ctx->automatic_peek_position - ctx->local()->m_vecOrigin();

                if (delta.Length() >= 10.0f)
                {
                    view_angles.y = math::calculate_angle(ctx->local()->m_vecOrigin(), ctx->automatic_peek_position).y;

                    command->forwardmove = convars_manager->convars[CONVAR_CL_FORWARDSPEED]->GetFloat();
                    command->sidemove = 0.0f;
:4Head:
thread safe bro dont worry😂
 
HvH Legend
Забаненный
Статус
Оффлайн
Регистрация
23 Окт 2022
Сообщения
406
Реакции[?]
100
Поинты[?]
30K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
            if (ctx->automatic_peek && !ctx->automatic_peek_position.IsZero() && movement_system->holding_automatic_peek)
            {
                auto delta = ctx->automatic_peek_position - ctx->local()->m_vecOrigin();

                if (delta.Length() >= 10.0f)
                {
                    view_angles.y = math::calculate_angle(ctx->local()->m_vecOrigin(), ctx->automatic_peek_position).y;

                    command->forwardmove = convars_manager->convars[CONVAR_CL_FORWARDSPEED]->GetFloat();
                    command->sidemove = 0.0f;
:4Head:
как же похуй
 
Сверху Снизу