Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
sv_random_gravity.qc
Go to the documentation of this file.
2
3// Random Gravity
4
5// Mutator by Mario
6// Inspired by Player 2
7
14
15REGISTER_MUTATOR(random_gravity, cvar("g_random_gravity"))
16{
18 {
19 cvar_settemp("sv_gravity", cvar_string("sv_gravity")); // settemp current gravity so it's restored on match end
20 }
21}
22
23float gravity_delay;
24
25MUTATOR_HOOKFUNCTION(random_gravity, SV_StartFrame)
26{
27 if(game_stopped || !cvar("g_random_gravity")) return false;
28 if(time < gravity_delay) return false;
29 if(time < game_starttime) return false;
31
34 else
36
37 gravity_delay = time + autocvar_g_random_gravity_delay;
38
39 LOG_TRACE("Gravity is now: ", ftos(autocvar_sv_gravity));
40}
41
42MUTATOR_HOOKFUNCTION(random_gravity, BuildMutatorsString)
43{
44 M_ARGV(0, string) = strcat(M_ARGV(0, string), ":RandomGravity");
45}
46
47MUTATOR_HOOKFUNCTION(random_gravity, BuildMutatorsPrettyString)
48{
49 M_ARGV(0, string) = strcat(M_ARGV(0, string), ", Random gravity");
50}
#define MUTATOR_ONADD
Definition base.qh:309
#define REGISTER_MUTATOR(...)
Definition base.qh:295
#define MUTATOR_HOOKFUNCTION(...)
Definition base.qh:335
#define M_ARGV(x, type)
Definition events.qh:17
#define autocvar_sv_gravity
Definition stats.qh:421
float game_starttime
Definition stats.qh:82
float game_stopped
Definition stats.qh:81
float cvar_settemp(string tmp_cvar, string tmp_value)
Definition util.qc:811
float time
#define LOG_TRACE(...)
Definition log.qh:76
void cvar_set(string name, string value)
float bound(float min, float value, float max)
float cvar(string name)
float random(void)
const string cvar_string(string name)
string ftos(float f)
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))
#define round_handler_IsActive()
#define round_handler_IsRoundStarted()
float autocvar_g_random_gravity_delay
float autocvar_g_random_gravity_min
float autocvar_g_random_gravity_max
float autocvar_g_random_gravity_negative_chance
float autocvar_g_random_gravity_negative
float autocvar_g_random_gravity_positive