I investigated the code , and wound up doing this in player.qc :
Code: Select all
void () player_pain =
{
// Modify to check if inflictor ent is yours
if ( (self.weaponframe && self.dmg_inflictor.owner != self) || self.invisible_finished > time) return;
if (((self.weapon == IT_AXE) || (self.weapon == IT_HOOK)))
{
player_axpain1 ();
}
else
{
player_pain1 ();
}
};
I also put in an extra painframe in player_pain1 () sequence for the take damage being 50% or more of the last known health value before damage was inflicted. (I will post that code later).
Also after studying the code, realized the fact that the painframes never alter your attack_finished time, which I have found kind of unusual. If you were stalked from behind and your opponent lands a good shot on you, you should be sort of stunned, but instead the engine lets you spin around at normal mouse speed and return fire as if what just hit was no biggie. I know nothing can be done to slow down mouse speed, as its direct angles from the client, but changing attack_finished ought to be easy to do in the painframes sequences.
PS: I have seen a player Rocket - then grenade jump....or was it the other way around?