MUTATOR_ADD(mutator_rocketflying);
if(cvar("g_vampire"))
MUTATOR_ADD(mutator_vampire);
+ if(cvar("g_spawn_near_teammate"))
+ MUTATOR_ADD(mutator_spawn_near_teammate);
+
++ // is this a mutator? is this a mode?
+ if(cvar("g_sandbox"))
+ MUTATOR_ADD(sandbox);
+
if(cvar("sv_allow_fullbright"))
serverflags |= SERVERFLAG_ALLOW_FULLBRIGHT;
}
*/
+MUTATOR_HOOKABLE(Spawn_Score);
+ // called when a spawnpoint is being evaluated
+ // return 1 to make the spawnpoint unusable
+ // INPUT
+ entity self; // player wanting to spawn
+ entity spawn_spot; // spot to be evaluated
+ // IN+OUT
+ vector spawn_score; // _x is priority, _y is "distance"
++
+ MUTATOR_HOOKABLE(SV_StartFrame);
+ // runs globally each server frame
MUTATOR_DECLARATION(mutator_dodging);
MUTATOR_DECLARATION(mutator_rocketflying);
MUTATOR_DECLARATION(mutator_vampire);
-
+MUTATOR_DECLARATION(mutator_spawn_near_teammate);
+
+ MUTATOR_DECLARATION(sandbox);
mutators/mutator_dodging.qc
mutators/mutator_rocketflying.qc
mutators/mutator_vampire.qc
+mutators/mutator_spawn_near_teammate.qc
+ mutators/sandbox.qc
../warpzonelib/anglestransform.qc
../warpzonelib/mathlib.qc
RuneMatchGivePoints();
bot_serverframe();
- if(autocvar_spawn_debugview)
- {
- RandomSelection_Init();
- for(self = world; (self = find(self, classname, "player")); )
- RandomSelection_Add(self, 0, string_null, 1, 0);
- self = RandomSelection_chosen_ent;
- SelectSpawnPoint(0);
- }
-
FOR_EACH_PLAYER(self)
self.porto_forbidden = max(0, self.porto_forbidden - 1);
+
+ MUTATOR_CALLHOOK(SV_StartFrame);
}
.vector originjitter;