X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fsv_main.qc;h=63d91f6070ca3ecee2ecb56527f7a0c6710c9a98;hp=eb386005d16f16201ba064b01d32e799b1a85bee;hb=fcbf9538330960b989dbe84e7188349d7e8b109f;hpb=23fc0e8dbdfe468cbac2b79e14e03445a9996fd0 diff --git a/qcsrc/server/sv_main.qc b/qcsrc/server/sv_main.qc index eb386005d..63d91f607 100644 --- a/qcsrc/server/sv_main.qc +++ b/qcsrc/server/sv_main.qc @@ -128,8 +128,8 @@ void CreatureFrame (void) } } } - - self.oldvelocity = self.velocity; + + self.oldvelocity = self.velocity; } self = oldself; } @@ -151,6 +151,8 @@ float RedirectionThink(); entity SelectSpawnPoint (float anypoint); void StartFrame (void) { + execute_next_frame(); + remove = remove_unsafely; // not during spawning! serverprevtime = servertime; servertime = time; @@ -196,14 +198,17 @@ void StartFrame (void) if(sys_frametime <= 0) sys_frametime = 1.0 / 60.0; // somewhat safe fallback - if (timeoutStatus == 1) // just before the timeout (when timeoutStatus will be 2) + if (timeout_status == TIMEOUT_LEADTIME) // just before the timeout (when timeout_status will be TIMEOUT_ACTIVE) orig_slowmo = autocvar_slowmo; // slowmo will be restored after the timeout skill = autocvar_skill; + count_players(); + if(g_ca || g_freezetag) + count_alive_players(); + Arena_Warmup(); Spawnqueue_Check(); - // detect when the pre-game countdown (if any) has ended and the game has started game_delay = (time < game_starttime) ? TRUE : FALSE; @@ -226,22 +231,13 @@ void StartFrame (void) CreatureFrame (); CheckRules_World (); - AuditTeams(); - 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; @@ -252,8 +248,9 @@ void StartFrame (void) float DoesQ3ARemoveThisEntity(); void SV_OnEntityPreSpawnFunction() { - if(self.gametypefilter != "") - if not(isGametypeInFilter(game, teamplay, have_team_spawns, self.gametypefilter)) + if (self) + if (self.gametypefilter != "") + if not(isGametypeInFilter(MapInfo_LoadedGametype, teamplay, have_team_spawns, self.gametypefilter)) { remove(self); return;