diff --git a/Northstar.CustomServers/mod/scripts/vscripts/mp/_codecallbacks.gnut b/Northstar.CustomServers/mod/scripts/vscripts/mp/_codecallbacks.gnut index 0d1b42b7..c72acaa0 100644 --- a/Northstar.CustomServers/mod/scripts/vscripts/mp/_codecallbacks.gnut +++ b/Northstar.CustomServers/mod/scripts/vscripts/mp/_codecallbacks.gnut @@ -25,6 +25,10 @@ global function CodeCallback_WeaponDropped global function AddCallback_OnWeaponDropped #endif +global function CodeCallback_OnWeaponAttack +global function AddCallback_OnWeaponAttack +global function RemoveCallback_OnWeaponAttack + struct AccumulatedDamageData { float accumulatedDamage @@ -46,6 +50,7 @@ struct table playerAccumulatedDamageData array< void functionref( entity ) > weaponDroppedCallbacks + array< void functionref( entity, entity, string, int ) > weaponAttackCallbacks } file void function CodeCallback_Init() @@ -1055,4 +1060,24 @@ void function CodeCallback_WeaponDropped( entity weapon ) foreach( callback in file.weaponDroppedCallbacks ) callback( weapon ) } -#endif // #if MP \ No newline at end of file +#endif // #if MP + +void function AddCallback_OnWeaponAttack( void functionref( entity player, entity weapon, string weaponName, int attackIndex ) callbackFunc ) +{ + Assert( !file.weaponAttackCallbacks.contains( callbackFunc ), "Already added " + string( callbackFunc ) + " with AddCallback_OnWeaponAttackCallback" ) + file.weaponAttackCallbacks.append( callbackFunc ) +} + +void function RemoveCallback_OnWeaponAttack( void functionref( entity player, entity weapon, string weaponName, int attackIndex ) callbackFunc ) +{ + Assert( file.weaponAttackCallbacks.contains( callbackFunc ), "Tried to remove " + string( callbackFunc ) + " with RemoveCallback_OnWeaponAttackCallback but it was not found" ) + file.weaponAttackCallbacks.fastremovebyvalue( callbackFunc ) +} + +void function CodeCallback_OnWeaponAttack(entity player, entity weapon, string weaponName,int shotsFired) +{ + foreach ( callbackFunc in file.weaponAttackCallbacks ) + { + callbackFunc( player, weapon, weaponName, shotsFired ) + } +} \ No newline at end of file