mirror of
https://github.com/YGGverse/hlsdk-portable.git
synced 2025-01-23 13:14:51 +00:00
Improve friendly fire check for barney (#405)
This commit is contained in:
parent
2c596747d2
commit
bee6aa02c4
@ -829,6 +829,7 @@ BOOL CBarney::NoFriendlyFire()
|
|||||||
CPlane backPlane;
|
CPlane backPlane;
|
||||||
CPlane leftPlane;
|
CPlane leftPlane;
|
||||||
CPlane rightPlane;
|
CPlane rightPlane;
|
||||||
|
CPlane frontPlane;
|
||||||
|
|
||||||
Vector vecLeftSide;
|
Vector vecLeftSide;
|
||||||
Vector vecRightSide;
|
Vector vecRightSide;
|
||||||
@ -841,9 +842,13 @@ BOOL CBarney::NoFriendlyFire()
|
|||||||
|
|
||||||
v_left = gpGlobals->v_right * -1.0f;
|
v_left = gpGlobals->v_right * -1.0f;
|
||||||
|
|
||||||
|
CBaseEntity* pEnemy = m_hEnemy;
|
||||||
|
const Vector enemyCenter = pEnemy->Center();
|
||||||
|
|
||||||
leftPlane.InitializePlane( gpGlobals->v_right, vecLeftSide );
|
leftPlane.InitializePlane( gpGlobals->v_right, vecLeftSide );
|
||||||
rightPlane.InitializePlane( v_left, vecRightSide );
|
rightPlane.InitializePlane( v_left, vecRightSide );
|
||||||
backPlane.InitializePlane( gpGlobals->v_forward, pev->origin );
|
backPlane.InitializePlane( gpGlobals->v_forward, pev->origin );
|
||||||
|
frontPlane.InitializePlane( gpGlobals->v_forward * -1, enemyCenter + gpGlobals->v_forward * pEnemy->pev->size.Length2D() / 2 );
|
||||||
|
|
||||||
for( int k = 1; k <= gpGlobals->maxClients; k++ )
|
for( int k = 1; k <= gpGlobals->maxClients; k++ )
|
||||||
{
|
{
|
||||||
@ -856,7 +861,10 @@ BOOL CBarney::NoFriendlyFire()
|
|||||||
{
|
{
|
||||||
//ALERT(at_aiconsole, "%s: Ally player at fire plane!\n", STRING(pev->classname));
|
//ALERT(at_aiconsole, "%s: Ally player at fire plane!\n", STRING(pev->classname));
|
||||||
// player is in the check volume! Don't shoot!
|
// player is in the check volume! Don't shoot!
|
||||||
return FALSE;
|
if (frontPlane.PointInFront( pPlayer->pev->origin ))
|
||||||
|
return FALSE;
|
||||||
|
else if (pEnemy->pev->deadflag == DEAD_DYING || pEnemy->pev->deadflag == DEAD_DEAD) // don't shoot when ally is behind the dying enemy
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user