resolver for xy0

memory

User
User
User
User
Status
Offline
Joined
Jun 25, 2019
Messages
55
Reaction score
25
C++:
inline float ClampYaw(float yaw)
{
    while (yaw > 180.f)
        yaw -= 360.f;
    while (yaw < -180.f)
        yaw += 360.f;
    return yaw;
}

float __fastcall AngleDiff(float a1, float a2)
{
    float val = fmodf(a1 - a2, 360.0);

    while (val < -180.0f) val += 360.0f;
    while (val > 180.0f) val -= 360.0f;

    return val;
}

void Resolver::Skeet(C_BaseEntity* pEnt)
{
    for (int i = 1; i <= g_pGlobalVars->maxClients; i++)
    {
        C_BaseEntity* entity = g_pEntityList->GetClientEntity(i);

        auto animState = pEnt->AnimState();

        if (!entity ||
            entity->GetTeam() ||
            !entity->IsAlive())
            continue;
        auto v3 = entity->AnimStatev2(); //animstate
        auto v1 = entity->GetEyeAngles(); //current angles
        auto v8 = animState->m_flCurrentFeetYaw; //currentfeet

        auto v6 = v3->pad10[516]; //maxrotqation

        auto v12 = entity->GetVelocity().Length2D(); //velocity
        auto delta = AngleDiff(v1.y, v8);
        if (delta <= v6) {
            if (delta < 35.f && delta > -35) {
                if (v12 > 0.1f)
                    entity->GetEyeAnglesPointer()->y = entity->GetLowerBodyYaw();
                continue;
            }
            else if (delta > 35.f) {
                if (v1.y < 0.f && v1.y > -180.f)
                    entity->GetEyeAnglesPointer()->y = ClampYaw(v1.y + delta);
                else if (v1.y > 0.f && v1.y < 180.f)
                    entity->GetEyeAnglesPointer()->y = ClampYaw(v1.y - delta);
            }
            else if (delta < -35.f) {
                if (v1.y < 0.f && v1.y > -180.f)
                    entity->GetEyeAnglesPointer()->y = ClampYaw(v1.y - delta);
                else if (v1.y > 0.f && v1.y < 180.f)
                    entity->GetEyeAnglesPointer()->y = ClampYaw(v1.y + delta);
            }
        }
    }
}

not the best, just something i found on blooms.pw source
 
Top