1 #include "sv_midair.qh"
3 string autocvar_g_midair;
4 float autocvar_g_midair_shieldtime;
6 REGISTER_MUTATOR(midair, expr_evaluate(autocvar_g_midair));
8 .float midair_shieldtime;
10 MUTATOR_HOOKFUNCTION(midair, Damage_Calculate)
12 entity frag_attacker = M_ARGV(1, entity);
13 entity frag_target = M_ARGV(2, entity);
15 if(IS_PLAYER(frag_attacker))
16 if(IS_PLAYER(frag_target))
17 if(time < frag_target.midair_shieldtime)
21 MUTATOR_HOOKFUNCTION(midair, PlayerPowerups)
23 entity player = M_ARGV(0, entity);
25 if(time >= game_starttime)
26 if(IS_ONGROUND(player))
28 player.effects |= (EF_ADDITIVE | EF_FULLBRIGHT);
29 player.midair_shieldtime = max(player.midair_shieldtime, time + autocvar_g_midair_shieldtime);
33 MUTATOR_HOOKFUNCTION(midair, PlayerSpawn)
35 entity player = M_ARGV(0, entity);
37 if(IS_BOT_CLIENT(player))
38 player.bot_moveskill = 0; // disable bunnyhopping
41 MUTATOR_HOOKFUNCTION(midair, BuildMutatorsString)
43 M_ARGV(0, string) = strcat(M_ARGV(0, string), ":midair");
46 MUTATOR_HOOKFUNCTION(midair, BuildMutatorsPrettyString)
48 M_ARGV(0, string) = strcat(M_ARGV(0, string), ", Midair");