1 #include "sv_breakablehook.qh"
3 #include <common/deathtypes/all.qh>
4 #include <server/g_hook.qh>
6 REGISTER_MUTATOR(breakablehook, cvar("g_breakablehook"));
8 bool autocvar_g_breakablehook; // allow toggling mid match?
9 bool autocvar_g_breakablehook_owner;
11 MUTATOR_HOOKFUNCTION(breakablehook, PlayerDamage_Calculate)
13 entity frag_attacker = M_ARGV(1, entity);
14 entity frag_target = M_ARGV(2, entity);
16 if(frag_target.classname == "grapplinghook")
18 if((!autocvar_g_breakablehook)
19 || (!autocvar_g_breakablehook_owner && frag_attacker == frag_target.realowner)
20 ) { M_ARGV(4, float) = 0; }
22 // hurt the owner of the hook
23 if(DIFF_TEAM(frag_attacker, frag_target.realowner))
25 Damage (frag_target.realowner, frag_attacker, frag_attacker, 5, WEP_HOOK.m_id | HITTYPE_SPLASH, frag_target.realowner.origin, '0 0 0');
26 RemoveGrapplingHook(frag_target.realowner);