From 5b50bc72dfc2b540e2c39ce455bedc5e592943e8 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Mon, 26 May 2025 09:13:20 -0400 Subject: [PATCH] Fix up antigrief --- src/k_kart.c | 4 ++-- src/p_user.c | 23 ++++++++++++++++------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 840044bac..37dad4b12 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -10888,7 +10888,7 @@ void K_CheckSpectateStatus(boolean considermapreset) return; // Organize by spectate wait timer (if there's more than one to sort) - if (cv_maxplayers.value && numjoiners > 1) + if (cv_ingamecap.value && numjoiners > 1) { UINT8 oldrespawnlist[MAXPLAYERS]; memcpy(oldrespawnlist, respawnlist, numjoiners); @@ -10919,7 +10919,7 @@ void K_CheckSpectateStatus(boolean considermapreset) for (i = 0; i < numjoiners; i++) { // Hit the in-game player cap while adding people? - if (cv_maxplayers.value && numingame >= cv_maxplayers.value) + if (cv_ingamecap.value && numingame >= cv_ingamecap.value) { if (numbots > 0) { diff --git a/src/p_user.c b/src/p_user.c index 117e01a81..cfdb53d23 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -3992,16 +3992,21 @@ void P_PlayerThink(player_t *player) if (netgame && cv_antigrief.value != 0 && (gametyperules & GTR_CIRCUIT)) { - if (!player->spectator && !player->exiting && !(player->pflags & PF_NOCONTEST)) + INT32 i; + for (i = 0; i < MAXPLAYERS; i++) + { + if (!playeringame[i] || players[i].spectator) + continue; + if (&players[i] == player) + continue; + break; + } + + if (i < MAXPLAYERS && !player->spectator && !player->exiting && !(player->pflags & PF_NOCONTEST)) { const tic_t griefval = cv_antigrief.value * TICRATE; const UINT8 n = player - players; - if (n != serverplayer -#ifndef DEVELOP - && !IsPlayerAdmin(n) -#endif - ) { if (player->grieftime > griefval) { @@ -4010,7 +4015,11 @@ void P_PlayerThink(player_t *player) if (server) { - if (player->griefstrikes > 2) + if ((player->griefstrikes > 2) +#ifndef DEVELOP + && !IsPlayerAdmin(n) +#endif + && !P_IsLocalPlayer(player)) // P_IsMachineLocalPlayer for DRRR { // Send kick SendKick(n, KICK_MSG_GRIEF);