mirror of
https://github.com/YGGverse/hlsdk-portable.git
synced 2025-02-06 20:14:44 +00:00
Crossbow gravgun tweaks
This commit is contained in:
parent
b9af0eb80a
commit
22b1664df8
@ -40,6 +40,20 @@ class CCrossbowBolt : public CBaseEntity
|
|||||||
void EXPORT BubbleThink( void );
|
void EXPORT BubbleThink( void );
|
||||||
void EXPORT BoltTouch( CBaseEntity *pOther );
|
void EXPORT BoltTouch( CBaseEntity *pOther );
|
||||||
void EXPORT ExplodeThink( void );
|
void EXPORT ExplodeThink( void );
|
||||||
|
float TouchGravGun( CBaseEntity *attacker, int stage )
|
||||||
|
{
|
||||||
|
if( stage >= 2 )
|
||||||
|
{
|
||||||
|
|
||||||
|
pev->movetype = MOVETYPE_FLY;
|
||||||
|
pev->solid = SOLID_BBOX;
|
||||||
|
pev->nextthink = gpGlobals->time + 60.0;
|
||||||
|
SetTouch( &CCrossbowBolt::BoltTouch );
|
||||||
|
UTIL_MakeVectors( attacker->pev->v_angle + attacker->pev->punchangle);
|
||||||
|
pev->angles = UTIL_VecToAngles(gpGlobals->v_forward);
|
||||||
|
}
|
||||||
|
return 2000;
|
||||||
|
}
|
||||||
|
|
||||||
int m_iTrail;
|
int m_iTrail;
|
||||||
|
|
||||||
@ -149,12 +163,12 @@ void CCrossbowBolt::BoltTouch( CBaseEntity *pOther )
|
|||||||
Vector vecDir = pev->velocity.Normalize();
|
Vector vecDir = pev->velocity.Normalize();
|
||||||
UTIL_SetOrigin( pev, pev->origin - vecDir * 12 );
|
UTIL_SetOrigin( pev, pev->origin - vecDir * 12 );
|
||||||
pev->angles = UTIL_VecToAngles( vecDir );
|
pev->angles = UTIL_VecToAngles( vecDir );
|
||||||
pev->solid = SOLID_NOT;
|
//pev->solid = SOLID_NOT;
|
||||||
pev->movetype = MOVETYPE_FLY;
|
pev->movetype = MOVETYPE_FLY;
|
||||||
pev->velocity = Vector( 0, 0, 0 );
|
pev->velocity = Vector( 0, 0, 0 );
|
||||||
pev->avelocity.z = 0;
|
pev->avelocity.z = 0;
|
||||||
pev->angles.z = RANDOM_LONG( 0, 360 );
|
pev->angles.z = RANDOM_LONG( 0, 360 );
|
||||||
pev->nextthink = gpGlobals->time + 10.0;
|
pev->nextthink = gpGlobals->time + 60.0;
|
||||||
}
|
}
|
||||||
else if( pOther->pev->movetype == MOVETYPE_PUSH || pOther->pev->movetype == MOVETYPE_PUSHSTEP )
|
else if( pOther->pev->movetype == MOVETYPE_PUSH || pOther->pev->movetype == MOVETYPE_PUSHSTEP )
|
||||||
{
|
{
|
||||||
@ -165,7 +179,7 @@ void CCrossbowBolt::BoltTouch( CBaseEntity *pOther )
|
|||||||
pev->velocity = Vector( 0, 0, 0 );
|
pev->velocity = Vector( 0, 0, 0 );
|
||||||
pev->avelocity.z = 0;
|
pev->avelocity.z = 0;
|
||||||
pev->angles.z = RANDOM_LONG( 0, 360 );
|
pev->angles.z = RANDOM_LONG( 0, 360 );
|
||||||
pev->nextthink = gpGlobals->time + 10.0;
|
pev->nextthink = gpGlobals->time + 60.0;
|
||||||
|
|
||||||
// g-cont. Setup movewith feature
|
// g-cont. Setup movewith feature
|
||||||
pev->movetype = MOVETYPE_COMPOUND; // set movewith type
|
pev->movetype = MOVETYPE_COMPOUND; // set movewith type
|
||||||
@ -388,6 +402,12 @@ void CCrossbow::FireSniperBolt()
|
|||||||
CBaseEntity::Instance( tr.pHit )->TraceAttack( m_pPlayer->pev, 120, vecDir, &tr, DMG_BULLET | DMG_NEVERGIB );
|
CBaseEntity::Instance( tr.pHit )->TraceAttack( m_pPlayer->pev, 120, vecDir, &tr, DMG_BULLET | DMG_NEVERGIB );
|
||||||
ApplyMultiDamage( pev, m_pPlayer->pev );
|
ApplyMultiDamage( pev, m_pPlayer->pev );
|
||||||
}
|
}
|
||||||
|
CCrossbowBolt *pBolt = CCrossbowBolt::BoltCreate();
|
||||||
|
pBolt->pev->origin = tr.vecEndPos;
|
||||||
|
pBolt->pev->angles = -anglesAim;
|
||||||
|
pBolt->pev->owner = m_pPlayer->edict();
|
||||||
|
pBolt->pev->avelocity.z = 10;
|
||||||
|
pBolt->SetTouch( NULL );
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user