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