NSTraceAttack: Check if we're a client before making the assumptions that our owner class has attributes related to bullet patterns

This commit is contained in:
Marco Cawthorne 2022-06-16 14:39:08 -07:00
parent d0a2480aae
commit b51541a3ae
Signed by: eukara
GPG key ID: CE2032F0A2882A22
2 changed files with 18 additions and 15 deletions

View file

@ -412,7 +412,7 @@ prop_vehicle_driveable_wheel::Accel(float flMoveTime, float m_flTurn)
if (trace_ent.takedamage) { if (trace_ent.takedamage) {
NSSurfacePropEntity foo = (NSSurfacePropEntity)trace_ent; NSSurfacePropEntity foo = (NSSurfacePropEntity)trace_ent;
Damage_Apply(foo, vehParent.m_eDriver, iImpactDamage, 0, DMG_VEHICLE); Damage_Apply(foo, vehParent.m_eDriver, iImpactDamage, 0, DMG_VEHICLE);
print(sprintf("Delivering %i impact damage\n", iImpactDamage)); //print(sprintf("Delivering %i impact damage\n", iImpactDamage));
} }
#endif #endif
} }
@ -762,8 +762,6 @@ prop_vehicle_driveable::ReceiveEntity(float flSendFlags, float flNew)
velocity = [0,0,0]; velocity = [0,0,0];
RunVehiclePhysics(); RunVehiclePhysics();
customphysics = Physics; customphysics = Physics;
print(sprintf("%v\n", origin));
} }
PredictPreFrame(); PredictPreFrame();
@ -795,7 +793,6 @@ prop_vehicle_driveable::EvaluateEntity(void)
if (ATTR_CHANGED(flags)) if (ATTR_CHANGED(flags))
SetSendFlags(VEHFL_FLAGS); SetSendFlags(VEHFL_FLAGS);
SAVE_STATE(origin); SAVE_STATE(origin);
SAVE_STATE(angles); SAVE_STATE(angles);
SAVE_STATE(modelindex); SAVE_STATE(modelindex);

View file

@ -172,20 +172,26 @@ NSTraceAttack::Fire(void)
vecDir += random(-1,1) * m_vecSpread[0] * v_right; vecDir += random(-1,1) * m_vecSpread[0] * v_right;
vecDir += random(-1,1) * m_vecSpread[1] * v_up; vecDir += random(-1,1) * m_vecSpread[1] * v_up;
#else #else
player pl = (player) m_eOwner; /* FOR NOW Monsters will not be able to do spread like players if patterns are enabled */
if (!(flags & FL_CLIENT)) {
vecDir += random(-1,1) * m_vecSpread[0] * v_right;
vecDir += random(-1,1) * m_vecSpread[1] * v_up;
} else {
player pl = (player) m_eOwner;
/* weapons have already applied their multiplier... so attempt this */ /* weapons have already applied their multiplier... so attempt this */
int multiplier = pl.cs_shotmultiplier - m_iShots; int multiplier = pl.cs_shotmultiplier - m_iShots;
float frand = (multiplier / 6); float frand = (multiplier / 6);
/* shoddy attempt at spray patterns */ /* shoddy attempt at spray patterns */
if (frand < 1) if (frand < 1)
frand = frand; frand = frand;
else if (frand <= 2) else if (frand <= 2)
frand = 2 - (frand * 1.5); frand = 2 - (frand * 1.5);
vecDir += frand * m_vecSpread[0] * v_right; vecDir += frand * m_vecSpread[0] * v_right;
vecDir += (m_vecSpread[1] * v_up) * 2; vecDir += (m_vecSpread[1] * v_up) * 2;
}
#endif #endif
_FireSingle(m_vecOrigin, vecDir, m_flDamage, m_flRange); _FireSingle(m_vecOrigin, vecDir, m_flDamage, m_flRange);
m_iShots--; m_iShots--;