Hi,
Here is how to manage a trigger bot ( auto shoots if the crosshair is over an enemy ) using a processing command:
You could use it IE in ProcessAngles before returning the original functionPHP Code:m_pClient = m_pGame->GetClient( );
CWeaponClass *pLocalWeapon = m_pLocalPlayer->GetSelectedWeapon( );
ray_hit WeaponHitTest;
if( pLocalWeapon )
{
WeaponParams wp;
m_pLocalPlayer->GetCurrentWeaponParams( wp );
m_fMaxWeaponDistance = wp.fDistance;
Vec3 LocalViewPos, LocalViewAngle;
if ( m_pLocalPlayer->GetVehicle( ) )
{
LocalViewPos = m_pLocalEntity->GetCamera( )->GetPos( );
LocalViewAngle = m_pLocalEntity->GetCamera( )->GetAngles( );
}
else
{
LocalViewAngle = m_pLocalPlayer->m_vEyeAngles + m_pLocalPlayer->m_vShake;
LocalViewPos = m_pLocalPlayer->m_vEyePos;
}
Vec3d Direction( 0, -1, 0 );
Matrix44 LocalMatrix = Matrix44::CreateRotationZYX( -LocalViewAngle*gf_DEGTORAD );
Direction = GetTransposed44( LocalMatrix )*( Direction );
Direction *= m_fMaxWeaponDistance;
if( m_pSystem->GetIPhysicalWorld( )->RayWorldIntersection( vectorf( LocalViewPos ), vectorf( Direction ), ent_all, rwi_pierceability0, &WeaponHitTest, 1, m_pLocalEntity->GetPhysics( ) ) )
{
if( WeaponHitTest.pCollider )
{
IEntity *pEntTmp = ( IEntity * )WeaponHitTest.pCollider->GetForeignData( );
CPlayer *pTmp = 0;
if( pEntTmp && pEntTmp->IsTrackable( ) && pEntTmp->GetContainer( ) && pEntTmp->GetContainer( )->QueryContainerInterface( CIT_IPLAYER, ( void ** )&pTmp ) && !m_pLocalPlayer->m_stats.firing )
m_pClient->m_PlayerProcessingCmd.AddAction( ACTION_FIRE0 );
}
}
}
}
Regards.


.gif)
Reply With Quote
