X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fmutators%2Fmutator_random_gravity.qc;h=060ed74f831dfe53cbe47ab6fe500b2450b9d28f;hp=b17f7e5941946d75c6c06f335e77c885a1e0e87d;hb=86c9dc7c3696c329496b06375c1e79fb407401ce;hpb=80b525bbb46ee6fe395a05dac00204cd4ff68e12 diff --git a/qcsrc/server/mutators/mutator_random_gravity.qc b/qcsrc/server/mutators/mutator_random_gravity.qc index b17f7e5941..060ed74f83 100644 --- a/qcsrc/server/mutators/mutator_random_gravity.qc +++ b/qcsrc/server/mutators/mutator_random_gravity.qc @@ -1,21 +1,31 @@ +#include "../_all.qh" + +#include "mutator.qh" + +// Random Gravity +// +// Mutator by Mario +// Inspired by Player 2 + float gravity_delay; + MUTATOR_HOOKFUNCTION(gravity_StartFrame) { - if(gameover || !cvar("g_random_gravity")) return FALSE; - if(time < gravity_delay) return FALSE; - if(time < game_starttime) return FALSE; - if(round_handler_IsActive() && !round_handler_IsRoundStarted()) return FALSE; - - if(random() >= autocvar_g_random_gravity_negative_chance) + if(gameover || !cvar("g_random_gravity")) return false; + if(time < gravity_delay) return false; + if(time < game_starttime) return false; + if(round_handler_IsActive() && !round_handler_IsRoundStarted()) return false; + + if(random() >= autocvar_g_random_gravity_negative_chance) cvar_set("sv_gravity", ftos(bound(autocvar_g_random_gravity_min, random() - random() * -autocvar_g_random_gravity_negative, autocvar_g_random_gravity_max))); else cvar_set("sv_gravity", ftos(bound(autocvar_g_random_gravity_min, random() * autocvar_g_random_gravity_positive, autocvar_g_random_gravity_max))); - + gravity_delay = time + autocvar_g_random_gravity_delay; - - dprint("Gravity is now: ", ftos(autocvar_sv_gravity), "\n"); - - return FALSE; + + LOG_TRACE("Gravity is now: ", ftos(autocvar_sv_gravity), "\n"); + + return false; } MUTATOR_HOOKFUNCTION(gravity_BuildMutatorsString) @@ -35,11 +45,11 @@ MUTATOR_DEFINITION(mutator_random_gravity) MUTATOR_HOOK(SV_StartFrame, gravity_StartFrame, CBC_ORDER_ANY); MUTATOR_HOOK(BuildMutatorsString, gravity_BuildMutatorsString, CBC_ORDER_ANY); MUTATOR_HOOK(BuildMutatorsPrettyString, gravity_BuildMutatorsPrettyString, CBC_ORDER_ANY); - + MUTATOR_ONADD { - cvar_settemp("sv_gravity", ftos(cvar("sv_gravity"))); // settemp current gravity so it's restored on match end + cvar_settemp("sv_gravity", cvar_string("sv_gravity")); // settemp current gravity so it's restored on match end } - return FALSE; + return false; }