From: z411 Date: Wed, 19 Oct 2022 22:56:56 +0000 (-0300) Subject: Let spectators observe in CA either way X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=311a806db2de94db52d3ad163ae894b0683ac61a;p=xonotic%2Fxonotic-data.pk3dir.git Let spectators observe in CA either way --- diff --git a/qcsrc/common/gamemodes/gamemode/clanarena/sv_clanarena.qc b/qcsrc/common/gamemodes/gamemode/clanarena/sv_clanarena.qc index 4bfc47c7d..eb9a32b24 100644 --- a/qcsrc/common/gamemodes/gamemode/clanarena/sv_clanarena.qc +++ b/qcsrc/common/gamemodes/gamemode/clanarena/sv_clanarena.qc @@ -366,11 +366,13 @@ MUTATOR_HOOKFUNCTION(ca, MakePlayerObserver) INGAME_STATUS_CLEAR(player); } if (INGAME(player)) + { player.frags = FRAGS_PLAYER_OUT_OF_GAME; + if (autocvar_g_ca_spectate_enemies == -1) + player.would_spectate = true; // force to spectate only + } if (!warmup_stage) eliminatedPlayers.SendFlags |= 1; - if (autocvar_g_ca_spectate_enemies == -1) - player.would_spectate = true; // force to spectate only if (!INGAME(player)) return false; // allow team reset return true; // prevent team reset diff --git a/qcsrc/server/client.qc b/qcsrc/server/client.qc index c5c79ed02..4a4d157b4 100644 --- a/qcsrc/server/client.qc +++ b/qcsrc/server/client.qc @@ -138,7 +138,8 @@ bool ClientData_Send(entity this, entity to, int sf) if (CS(e).race_completed) sf |= BIT(0); // forced scoreboard if (CS(to).spectatee_status) sf |= BIT(1); // spectator ent number follows if (CS(e).zoomstate) sf |= BIT(2); // zoomed - if (observe_blocked) sf |= BIT(3); // observing blocked + if (observe_blocked && INGAME(to)) + sf |= BIT(3); // observing blocked if (autocvar_sv_showspectators == 1 || (autocvar_sv_showspectators && IS_SPEC(to))) sf |= BIT(4); // show spectators @@ -2254,7 +2255,7 @@ void ObserverOrSpectatorThink(entity this) } CS(this).impulse = 0; } else if(PHYS_INPUT_BUTTON_ATCK2(this)) { - if(!observe_blocked) { + if(!observe_blocked || !INGAME(this)) { this.would_spectate = false; this.flags &= ~FL_JUMPRELEASED; TRANSMUTE(Observer, this);