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

Исходник Reversed physics stuff from the server.dll

Забаненный
Забаненный
Статус
Оффлайн
Регистрация
25 Мар 2025
Сообщения
29
Реакции
21
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
REVERSED STUFF ONLY FOR PREDICT THROW NADES!!! WITHOUT THROW, DETONATE, EXPIRE TIME(REVERSE THIS SHIT URSELF)

its can usage for grenade warning or other something stuff
C++:
Expand Collapse Copy
bool CPhysics::Simulate(  )
{
    GameTrace_t pTrace;
   
    PhysicsAddGravityMove( m_vecMove );
    PhysicsPushEntity( m_vecStart, m_vecMove, pTrace, m_pOwner );
   
    if ( m_bDetonated )
        return true;
   
    if ( pTrace.m_flFraction != 1.0f )
        ResolveFlyCollisionBounce( pTrace );
   
    m_vecStart = pTrace.m_vecEndPos;
    return false;
}

void CPhysics::PhysicsAddGravityMove( Vector& vecMove )
{
    float flGravity = sv_gravity->GetFloat( ) * 0.4f;
   
    vecMove.x = m_vecVelocity.x * 0.015625f;
    vecMove.y = m_vecVelocity.y * 0.015625f;
   
    float newZVelocity = m_vecVelocity.z - ( flGravity * 0.015625f );
    vecMove.z = ( ( m_vecVelocity.z + newZVelocity ) / 2.0f ) * 0.015625f;

    m_vecVelocity.z = newZVelocity;
}

void CPhysics::PhysicsClipVelocity( const Vector& vecIn, const Vector& vecNormal, Vector& vecOut, float flOverBounce )
{
    constexpr float STOP_EPSILON = 0.1f;
    float flBackOff = vecIn.DotProduct( vecNormal ) * flOverBounce;
   
    for ( int i{ }; i < 3; ++i )
    {
        vecOut[ i ] = vecIn[ i ] - ( vecNormal[ i ] * flBackOff );

        if ( vecOut[ i ] > -STOP_EPSILON && vecOut[ i ] < STOP_EPSILON )
            vecOut[ i ] = 0.0f;
    }
}

void CPhysics::PhysicsPushEntity( Vector& vecStart, const Vector& vecMove, GameTrace_t& pTrace, C_CSPlayerPawn* pPawn )
{
    Vector vecEnd = vecStart + vecMove;
    TraceHull( vecStart, vecEnd, pTrace, pPawn );
}

void CPhysics::ResolveFlyCollisionBounce( GameTrace_t& pTrace )
{
    // Get the impact surface's elasticity.
    float flSurfaceElasticity = 1.0f;
   
    if ( pTrace.m_pHitEntity )
    {
        SchemaClassInfoData_t* pClassInfo = nullptr;
        pTrace.m_pHitEntity->GetSchemaClassInfo( &pClassInfo );
        if ( pClassInfo == nullptr )
            return;
       
        const FNV1A_t uHashedName = FNV1A::Hash( pClassInfo->szName );
        if ( uHashedName == FNV1A::HashConst( "C_BreakableProp" )
            || uHashedName == FNV1A::HashConst( "C_DynamicProp" ) )
        {
            if ( uHashedName != FNV1A::HashConst( "C_FuncBrush" )
                && uHashedName != FNV1A::HashConst( "C_BaseDoor" )
                && uHashedName != FNV1A::HashConst( "C_CSPlayerPawn" )
                && uHashedName != FNV1A::HashConst( "C_BaseEntity" ) )
            {
                PhysicsPushEntity( m_vecStart, m_vecMove, pTrace, pTrace.m_pHitEntity );
                m_vecVelocity *= 0.4f;
                return;
            }
        }
       
        if ( pTrace.m_pHitEntity->IsBasePlayerPawn( ) )
            flSurfaceElasticity = 0.3f;
       
        if ( !pTrace.DidHitWorld( ) )
        {
            if ( pTrace.m_pHitEntity->IsBasePlayerPawn( )
                && m_pLastHitEntity == pTrace.m_pHitEntity )
                return;

            m_pLastHitEntity = pTrace.m_pHitEntity;
        }
    }
   
    Vector vecVelocity;
    PhysicsClipVelocity( m_vecVelocity, pTrace.m_vecNormal, vecVelocity, 2.0f );
    vecVelocity *= std::clamp( flSurfaceElasticity * 0.45f, 0.0f, 0.9f );
   
    if ( pTrace.m_vecNormal.z > 0.7f )
    {
        float flSpeed = vecVelocity.LengthSqr( );
        if ( flSpeed > 96000.0f )
        {
            float flLength = vecVelocity.Normalized( ).DotProduct( pTrace.m_vecNormal );
            if ( flLength > 0.5f )
                vecVelocity *= 1.5f - flLength;
        }
       
        if ( flSpeed < 400.0f )
            m_vecVelocity.Zero( );
        else
        {
            m_vecVelocity = vecVelocity;
            PhysicsPushEntity( pTrace.m_vecEndPos, vecVelocity * ( ( 1.0f - pTrace.m_flFraction ) * 0.015625f ), pTrace, m_pOwner );
        }
    }
    else
    {
        m_vecVelocity = vecVelocity;
        PhysicsPushEntity( pTrace.m_vecEndPos, vecVelocity * ( ( 1.0f - pTrace.m_flFraction ) * 0.015625f ), pTrace, m_pOwner );
    }
}
 
Последнее редактирование:
What a great post! Too bad it's wrong and useless.
 
REVERSED STUFF ONLY FOR PREDICT THROW NADES!!! WITHOUT THROW, DETONATE, EXPIRE TIME(REVERSE THIS SHIT URSELF)

its can usage for grenade warning or other something stuff
C++:
Expand Collapse Copy
bool CPhysics::Simulate(  )
{
    GameTrace_t pTrace;
  
    PhysicsAddGravityMove( m_vecMove );
    PhysicsPushEntity( m_vecStart, m_vecMove, pTrace, m_pOwner );
  
    if ( m_bDetonated )
        return true;
  
    if ( pTrace.m_flFraction != 1.0f )
        ResolveFlyCollisionBounce( pTrace );
  
    m_vecStart = pTrace.m_vecEndPos;
    return false;
}

void CPhysics::PhysicsAddGravityMove( Vector& vecMove )
{
    float flGravity = sv_gravity->GetFloat( ) * 0.4f;
  
    vecMove.x = m_vecVelocity.x * 0.015625f;
    vecMove.y = m_vecVelocity.y * 0.015625f;
  
    float newZVelocity = m_vecVelocity.z - ( flGravity * 0.015625f );
    vecMove.z = ( ( m_vecVelocity.z + newZVelocity ) / 2.0f ) * 0.015625f;

    m_vecVelocity.z = newZVelocity;
}

void CPhysics::PhysicsClipVelocity( const Vector& vecIn, const Vector& vecNormal, Vector& vecOut, float flOverBounce )
{
    constexpr float STOP_EPSILON = 0.1f;
    float flBackOff = vecIn.DotProduct( vecNormal ) * flOverBounce;
  
    for ( int i{ }; i < 3; ++i )
    {
        vecOut[ i ] = vecIn[ i ] - ( vecNormal[ i ] * flBackOff );

        if ( vecOut[ i ] > -STOP_EPSILON && vecOut[ i ] < STOP_EPSILON )
            vecOut[ i ] = 0.0f;
    }
}

void CPhysics::PhysicsPushEntity( Vector& vecStart, const Vector& vecMove, GameTrace_t& pTrace, C_CSPlayerPawn* pPawn )
{
    Vector vecEnd = vecStart + vecMove;
    TraceHull( vecStart, vecEnd, pTrace, pPawn );
}

void CPhysics::ResolveFlyCollisionBounce( GameTrace_t& pTrace )
{
    // Get the impact surface's elasticity.
    float flSurfaceElasticity = 1.0f;
  
    if ( pTrace.m_pHitEntity )
    {
        SchemaClassInfoData_t* pClassInfo = nullptr;
        pTrace.m_pHitEntity->GetSchemaClassInfo( &pClassInfo );
        if ( pClassInfo == nullptr )
            return;
      
        const FNV1A_t uHashedName = FNV1A::Hash( pClassInfo->szName );
        if ( uHashedName == FNV1A::HashConst( "C_BreakableProp" )
            || uHashedName == FNV1A::HashConst( "C_DynamicProp" ) )
        {
            if ( uHashedName != FNV1A::HashConst( "C_FuncBrush" )
                && uHashedName != FNV1A::HashConst( "C_BaseDoor" )
                && uHashedName != FNV1A::HashConst( "C_CSPlayerPawn" )
                && uHashedName != FNV1A::HashConst( "C_BaseEntity" ) )
            {
                PhysicsPushEntity( m_vecStart, m_vecMove, pTrace, pTrace.m_pHitEntity );
                m_vecVelocity *= 0.4f;
                return;
            }
        }
      
        if ( pTrace.m_pHitEntity->IsBasePlayerPawn( ) )
            flSurfaceElasticity = 0.3f;
      
        if ( !pTrace.DidHitWorld( ) )
        {
            if ( pTrace.m_pHitEntity->IsBasePlayerPawn( )
                && m_pLastHitEntity == pTrace.m_pHitEntity )
                return;

            m_pLastHitEntity = pTrace.m_pHitEntity;
        }
    }
  
    Vector vecVelocity;
    PhysicsClipVelocity( m_vecVelocity, pTrace.m_vecNormal, vecVelocity, 2.0f );
    vecVelocity *= std::clamp( flSurfaceElasticity * 0.45f, 0.0f, 0.9f );
  
    if ( pTrace.m_vecNormal.z > 0.7f )
    {
        float flSpeed = vecVelocity.LengthSqr( );
        if ( flSpeed > 96000.0f )
        {
            float flLength = vecVelocity.Normalized( ).DotProduct( pTrace.m_vecNormal );
            if ( flLength > 0.5f )
                vecVelocity *= 1.5f - flLength;
        }
      
        if ( flSpeed < 400.0f )
            m_vecVelocity.Zero( );
        else
        {
            m_vecVelocity = vecVelocity;
            PhysicsPushEntity( pTrace.m_vecEndPos, vecVelocity * ( ( 1.0f - pTrace.m_flFraction ) * 0.015625f ), pTrace, m_pOwner );
        }
    }
    else
    {
        m_vecVelocity = vecVelocity;
        PhysicsPushEntity( pTrace.m_vecEndPos, vecVelocity * ( ( 1.0f - pTrace.m_flFraction ) * 0.015625f ), pTrace, m_pOwner );
    }
}
Good
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
What a great post! Too bad it's wrong and useless.
ok bro but u cant prove anyway that its wrong

1745870630109.png
 
Последнее редактирование:
Congrats, you found the rename option in Ida. Good job. Can you please show a clip of your code in action? Would be more useful
 
  • Мне нравится
Реакции: mj12
Назад
Сверху Снизу