Better callback hooking

This commit is contained in:
6arelyFuture 2021-10-26 17:05:09 +01:00
parent dd80beff95
commit 098972a091

View File

@ -12,7 +12,6 @@ init()
replaceFunc( maps\mp\perks\_perkfunctions::GlowStickDamageListener, ::GlowStickDamageListenerStub ); replaceFunc( maps\mp\perks\_perkfunctions::GlowStickDamageListener, ::GlowStickDamageListenerStub );
replaceFunc( maps\mp\perks\_perkfunctions::GlowStickEnemyUseListener, ::GlowStickEnemyUseListenerStub ); replaceFunc( maps\mp\perks\_perkfunctions::GlowStickEnemyUseListener, ::GlowStickEnemyUseListenerStub );
create_dvar( "sv_fallDamage", 0 );
setDvar( "scr_killcam_time", 7 ); setDvar( "scr_killcam_time", 7 );
setDvar( "scr_killcam_posttime", 2 ); setDvar( "scr_killcam_posttime", 2 );
@ -24,8 +23,13 @@ init()
thread gameEnded(); thread gameEnded();
thread gameStart(); thread gameStart();
if ( getDvarInt( "sv_fallDamage" ) != 0 ) return; thread hookCallbacks();
}
hookCallbacks()
{
level waittill( "prematch_over" );
waittillframeend;
level.prevCallbackPlayerDamage = level.callbackPlayerDamage; level.prevCallbackPlayerDamage = level.callbackPlayerDamage;
level.callbackPlayerDamage = ::codeCallbackPlayerDamage; level.callbackPlayerDamage = ::codeCallbackPlayerDamage;
} }
@ -73,6 +77,11 @@ codeCallbackPlayerDamage( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath
return; return;
} }
if ( sWeapon == "iw5_1887_mp" )
{
iDamage = 35;
}
[[level.prevCallbackPlayerDamage]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset ); [[level.prevCallbackPlayerDamage]]( eInflictor, eAttacker, iDamage, iDFlags, sMeansOfDeath, sWeapon, vPoint, vDir, sHitLoc, timeOffset );
} }