1 #include "sv_rocketminsta.qh"
3 #include <common/deathtypes/all.qh>
4 #include <server/round_handler.qh>
6 REGISTER_MUTATOR(rm, cvar("g_instagib"));
8 MUTATOR_HOOKFUNCTION(rm, Damage_Calculate)
10 // we do it this way, so rm can be toggled during the match
11 if (!autocvar_g_rm) { return; }
13 entity frag_attacker = M_ARGV(1, entity);
14 entity frag_target = M_ARGV(2, entity);
15 float frag_deathtype = M_ARGV(3, float);
16 float frag_damage = M_ARGV(4, float);
18 if (DEATH_ISWEAPON(frag_deathtype, WEP_DEVASTATOR)) {
19 if (frag_attacker == frag_target || frag_target.classname == "nade") {
24 if (autocvar_g_rm_laser) {
25 if (DEATH_ISWEAPON(frag_deathtype, WEP_ELECTRO)) {
26 if (frag_attacker == frag_target || (round_handler_IsActive() && !round_handler_IsRoundStarted())) {
32 M_ARGV(4, float) = frag_damage;
35 MUTATOR_HOOKFUNCTION(rm, PlayerDies)
37 // we do it this way, so rm can be toggled during the match
38 if (!autocvar_g_rm) { return; }
40 float frag_deathtype = M_ARGV(3, float);
42 if (DEATH_ISWEAPON(frag_deathtype, WEP_DEVASTATOR) || DEATH_ISWEAPON(frag_deathtype, WEP_ELECTRO)) {
43 M_ARGV(4, float) = 1000; // always gib if it was a vaporizer death