From b609dc6347c6214dfb20d6e86c16d0cad38c1ee3 Mon Sep 17 00:00:00 2001
From: terencehill <piuntn@gmail.com>
Date: Mon, 11 May 2020 16:58:38 +0200
Subject: [PATCH] Don't log frags and damage while round hasn't started yet
 (telefrags, lava, trigger_hurt)

---
 qcsrc/server/player.qc |  2 ++
 qcsrc/server/scores.qc | 11 ++++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/qcsrc/server/player.qc b/qcsrc/server/player.qc
index 9bf3f7c60..e5a8f47f9 100644
--- a/qcsrc/server/player.qc
+++ b/qcsrc/server/player.qc
@@ -468,6 +468,7 @@ void PlayerDamage(entity this, entity inflictor, entity attacker, float damage,
 
 			float realdmg = damage - excess;
 			if (this != attacker && realdmg)
+			if (!(round_handler_IsActive() && !round_handler_IsRoundStarted()) && time >= game_starttime)
 			{
 				if (IS_PLAYER(attacker) && DIFF_TEAM(attacker, this)) {
 					GameRules_scoring_add(attacker, DMG, realdmg);
@@ -490,6 +491,7 @@ void PlayerDamage(entity this, entity inflictor, entity attacker, float damage,
 	bool valid_damage_for_weaponstats = false;
 	Weapon awep = WEP_Null;
 
+	if (!(round_handler_IsActive() && !round_handler_IsRoundStarted()) && time >= game_starttime)
 	if(vbot || IS_REAL_CLIENT(this))
 	if(abot || IS_REAL_CLIENT(attacker))
 	if(attacker && this != attacker)
diff --git a/qcsrc/server/scores.qc b/qcsrc/server/scores.qc
index af2f4b574..0680d6a49 100644
--- a/qcsrc/server/scores.qc
+++ b/qcsrc/server/scores.qc
@@ -107,8 +107,11 @@ float TeamScore_AddToTeam(int t, float scorefield, float score)
 {
 	entity s;
 
-	if(game_stopped)
+	if(game_stopped || time < game_starttime
+		|| (round_handler_IsActive() && !round_handler_IsRoundStarted()))
+	{
 		score = 0;
+	}
 
 	if(!scores_initialized) return 0; // FIXME remove this when everything uses this system
 	if(t <= 0 || t >= 16)
@@ -334,9 +337,11 @@ float PlayerScore_Add(entity player, PlayerScoreField scorefield, float score)
 	bool mutator_returnvalue = MUTATOR_CALLHOOK(AddPlayerScore, scorefield, score, player);
 	score = M_ARGV(1, float);
 
-	if(game_stopped)
-	if(!mutator_returnvalue)
+	if((!mutator_returnvalue && game_stopped) || time < game_starttime
+		|| (round_handler_IsActive() && !round_handler_IsRoundStarted()))
+	{
 		score = 0;
+	}
 
 	if(!scores_initialized) return 0; // FIXME remove this when everything uses this system
 	entity s = CS(player).scorekeeper;
-- 
2.39.5