Xonotic
sv_rocketminsta.qc
Go to the documentation of this file.
1 #include "sv_rocketminsta.qh"
2 
5 
7 
8 MUTATOR_HOOKFUNCTION(rm, Damage_Calculate)
9 {
10  // we do it this way, so rm can be toggled during the match
11  if(!autocvar_g_rm) { return; }
12 
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);
17 
18  if(DEATH_ISWEAPON(frag_deathtype, WEP_DEVASTATOR))
19  if(frag_attacker == frag_target || frag_target.classname == "nade")
20  frag_damage = 0;
21 
23  if(DEATH_ISWEAPON(frag_deathtype, WEP_ELECTRO))
24  if(frag_attacker == frag_target || (round_handler_IsActive() && !round_handler_IsRoundStarted()))
25  frag_damage = 0;
26 
27  M_ARGV(4, float) = frag_damage;
28 }
29 
30 MUTATOR_HOOKFUNCTION(rm, PlayerDies)
31 {
32  // we do it this way, so rm can be toggled during the match
33  if(!autocvar_g_rm) { return; }
34 
35  float frag_deathtype = M_ARGV(3, float);
36 
37  if(DEATH_ISWEAPON(frag_deathtype, WEP_DEVASTATOR) || DEATH_ISWEAPON(frag_deathtype, WEP_ELECTRO))
38  M_ARGV(4, float) = 1000; // always gib if it was a vaporizer death
39 }
#define round_handler_IsActive()
MUTATOR_HOOKFUNCTION(rm, Damage_Calculate)
entity() spawn
#define round_handler_IsRoundStarted()
bool autocvar_g_instagib
Definition: sv_instagib.qh:27
REGISTER_MUTATOR(rm, autocvar_g_instagib)
float autocvar_g_rm
Definition: sv_instagib.qh:8
#define M_ARGV(x, type)
Definition: events.qh:17
#define DEATH_ISWEAPON(t, w)
Definition: all.qh:42
float autocvar_g_rm_laser
Definition: sv_instagib.qh:13