2 REGISTER_MUTATOR(bloodloss, cvar("g_bloodloss"));
4 .float bloodloss_timer;
6 MUTATOR_HOOKFUNCTION(bloodloss, PlayerPreThink)
8 entity player = M_ARGV(0, entity);
11 if(player.health <= autocvar_g_bloodloss && !IS_DEAD(player))
13 PHYS_INPUT_BUTTON_CROUCH(player) = true;
15 if(time >= player.bloodloss_timer)
18 vehicles_exit(player.vehicle, VHEF_RELEASE);
19 if(player.event_damage)
20 player.event_damage(player, player, player, 1, DEATH_ROT.m_id, player.origin, '0 0 0');
21 player.bloodloss_timer = time + 0.5 + random() * 0.5;
26 MUTATOR_HOOKFUNCTION(bloodloss, PlayerJump)
28 entity player = M_ARGV(0, entity);
30 if(player.health <= autocvar_g_bloodloss)
34 MUTATOR_HOOKFUNCTION(bloodloss, BuildMutatorsString)
36 M_ARGV(0, string) = strcat(M_ARGV(0, string), ":bloodloss");
39 MUTATOR_HOOKFUNCTION(bloodloss, BuildMutatorsPrettyString)
41 M_ARGV(0, string) = strcat(M_ARGV(0, string), ", Blood loss");