Нужен помощь с ресольвером

Забаненный
Статус
Оффлайн
Регистрация
21 Авг 2020
Сообщения
25
Реакции[?]
4
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
крч спастил я значит антифристенд в пандору из вейв
и немогу сделать брутфорс под афристенд
кто может примерно код написать буду блогодарен
заранее спасибо
оставлю и код


C++:
    void Resolver::StoreAntifreestand(Player, int)
{
    if ( !g_cl.m_local->alive( ) )
        return;

    if ( !g_cl.m_weapon->GetWeapon() )
        return;

    int FreestandSide[ 64 ];

    for ( int i = 1; i < g_csgo.m_globals->m_max_clients; ++i )
    {
        auto player = ( Player* )g_csgo.m_entlist->GetClientEntity( i );

        if ( !player || !player->m_lifeState( ) == LIFE_ALIVE || player->dormant( ) || player->m_iTeamNum( ) == g_cl.m_local->m_iTeamNum( ) )
            continue;

        bool Autowalled = false, HitSide1 = false, HitSide2 = false;
        auto idx = player->index( );
        float angToLocal = math::CalcAngle( g_cl.m_local->m_vecOrigin( ), player->m_vecOrigin( ) ).y;
        vec3_t ViewPoint = g_cl.m_local->m_vecOrigin( ) + vec3_t( 0, 0, 90 );
        vec2_t Side1 = { ( 45 * sin( math::deg_to_rad( angToLocal ) ) ),( 45 * cos( math::deg_to_rad( angToLocal ) ) ) };
        vec2_t Side2 = { ( 45 * sin( math::deg_to_rad( angToLocal + 180 ) ) ) ,( 45 * cos( math::deg_to_rad( angToLocal + 180 ) ) ) };

        vec2_t Side3 = { ( 50 * sin( math::deg_to_rad( angToLocal ) ) ),( 50 * cos( math::deg_to_rad( angToLocal ) ) ) };
        vec2_t Side4 = { ( 50 * sin( math::deg_to_rad( angToLocal + 180 ) ) ) ,( 50 * cos( math::deg_to_rad( angToLocal + 180 ) ) ) };

        vec3_t Origin = player->m_vecOrigin( );

        vec2_t OriginLeftRight[ ] = { vec2_t( Side1.x, Side1.y ), vec2_t( Side2.x, Side2.y ) };

        vec2_t OriginLeftRightLocal[ ] = { vec2_t( Side3.x, Side3.y ), vec2_t( Side4.x, Side4.y ) };

        float niggaangle = GetAngle( player );

        for ( int side = 0; side < 2; side++ )
        {
            vec3_t OriginAutowall = { Origin.x + OriginLeftRight[ side ].x,  Origin.y - OriginLeftRight[ side ].y , Origin.z + 90 };
            vec3_t ViewPointAutowall = { ViewPoint.x + OriginLeftRightLocal[ side ].x,  ViewPoint.y - OriginLeftRightLocal[ side ].y , ViewPoint.z };

            if ( penetration::CanHitFloatingPoint( OriginAutowall, ViewPoint ) )
            {
                if ( niggaangle >= 45.f || niggaangle <= -45.f )
                {
                    if ( side == 0 )
                    {
                        HitSide1 = true;
                        FreestandSide[ idx ] = -1;
                    }
                    else if ( side == 1 )
                    {
                        HitSide2 = true;
                        FreestandSide[ idx ] = 1;
                    }

                    Autowalled = true;
                }
                else
                {
                    for ( int sidealternative = 0; sidealternative < 2; sidealternative++ )
                    {
                        vec3_t ViewPointAutowallalternative = { Origin.x + OriginLeftRight[ sidealternative ].x,  Origin.y - OriginLeftRight[ sidealternative ].y , Origin.z + 90 };

                        if ( penetration::CanHitFloatingPoint( ViewPointAutowallalternative, ViewPointAutowall ) )
                        {
                            if ( niggaangle >= 45.f )
                            {
                                if ( sidealternative == 0 )
                                {
                                    HitSide1 = true;
                                    FreestandSide[ idx ] = -1;
                                }
                                else if ( sidealternative == 1 )
                                {
                                    HitSide2 = true;
                                    FreestandSide[ idx ] = 1;
                                }

                                Autowalled = true;
                            }
                        }
                    }
                }
            }
        }
    }
}
void Resolver::ResolveStand(AimPlayer* idx, LagComp::LagRecord_t* record) {
    // get the players max rotation.
    float max_rotation = record->m_pEntity->GetMaxBodyRotation();

    // setup a starting brute angle.
    float resolve_value = 50.f;

    if (!record->m_pState)
        return;

    const auto info = g_anims.GetAnimationInfo(record->m_pEntity);
    if (!info)
        return;

    float eye_yaw = record->m_pState->m_flEyeYaw;

    // clamp our starting brute angle, to not brute an angle, we most likely can't hit.
    if (max_rotation < resolve_value)
        resolve_value = max_rotation;

    // detect if player is using maximum desync.
    idx->m_extending = record->m_pLayers[3].m_cycle == 0.f && record->m_pLayers[3].m_weight == 0.f;

    if (idx->m_extending)
        resolve_value = max_rotation;

    // resolve shooting players separately.
    if (record->m_bDidShot)
        info->m_flBrute = Resolver::ResolveShot(idx, record);

    // bruteforce player accordingly.
    else {
        float lbyt = record->m_pEntity->m_flLowerBodyYawTarget();
        idx->m_delta = std::abs(math::NormalizedAngle(eye_yaw - lbyt));

        float resolve_yaw = ((idx->m_delta < 0.f) ? resolve_value : resolve_value);

        switch (idx->m_missed_shots % 3) {
        case 0:
            info->m_flBrute = idx->m_last_resolve = resolve_yaw;
            break;
        case 1:
            info->m_flBrute = -idx->m_last_resolve;
            break;
        case 2:
            info->m_flBrute = 0;
            break;
        }
    }

    record->m_pState->m_flGoalFeetYaw = eye_yaw + info->m_flBrute;
}

float Resolver::ResolveShot( AimPlayer* data, LagComp::LagRecord_t* record ) {
    float flPseudoFireYaw = math::NormalizedAngle( math::CalcAngle( record->m_pMatrix[ 8 ].GetOrigin( ), g_cl.m_local->m_BoneCache( ).m_pCachedBones[ 0 ].GetOrigin( ) ).y );

    if ( data->m_extending ) {
        float flLeftFireYawDelta = fabsf( math::NormalizedAngle( flPseudoFireYaw - ( record->m_angEyeAngles.y + 58.f ) ) );
        float flRightFireYawDelta = fabsf( math::NormalizedAngle( flPseudoFireYaw - ( record->m_angEyeAngles.y - 58.f ) ) );


        return flLeftFireYawDelta > flRightFireYawDelta ? -58.f : 58.f;
    }
    else {
        float flLeftFireYawDelta = fabsf( math::NormalizedAngle( flPseudoFireYaw - ( record->m_angEyeAngles.y + 29.f ) ) );
        float flRightFireYawDelta = fabsf( math::NormalizedAngle( flPseudoFireYaw - ( record->m_angEyeAngles.y - 29.f ) ) );


        return flLeftFireYawDelta > flRightFireYawDelta ? -29.f :+29.f;
    }
}

C++:
class ShotRecord;

struct resolverInfo_t {
    resolverInfo_t( ) = default;

    struct missInfo_t {
        missInfo_t( ) {
            this->m_freestand = 0;
            this->m_first_shot = 0;
            this->m_static = 0;
            this->m_jitter = 0;
        }

        int m_freestand;
        int m_first_shot;
        int m_static;
        int m_jitter;
    };

    struct hitInfo_t {
        hitInfo_t( ) {
            this->m_freestand = 0;
            this->m_first_shot = 0;
            this->m_static = 0;
            this->m_jitter = 0;
        }

        int m_freestand;
        int m_first_shot;
        int m_static;
        int m_jitter;
    };

    bool m_jitter{};
    bool m_use_freestand{};

    missInfo_t m_misses{};
    hitInfo_t m_hits{};
};

class Resolver {
public:
    enum Modes : size_t {
        RESOLVE_NONE = 0,
        RESOLVE_MOVE,
        RESOLVE_STAND,
    };

public:


    void ResolveStand(AimPlayer* idx, LagComp::LagRecord_t* record);
    
    float ResolveShot(AimPlayer* data, LagComp::LagRecord_t* record );

public:
    std::array< vec3_t, 64 > m_impacts;
    void ResolveAngles( Player* player, LagComp::LagRecord_t* record );
    
    float GetAngle( Player* );
    float GetForwardYaw( Player* );
    float GetBackwardYaw( Player* );
    float GetLeftYaw( Player* );
    float GetRightYaw( Player* );
    bool TargetSide( Player* );
    
    void DetectSide( Player*, int*);
    void StoreAntifreestand(Player, int);
    bool DoesHaveJitter( Player* player, int* new_side );
    
};

extern Resolver g_resolver;
 
Сверху Снизу