From 3bae515741f59ca9679cbacc1f81dce6734fa67b Mon Sep 17 00:00:00 2001 From: Vincent Herbert Date: Sat, 15 Jun 2013 23:08:00 +0200 Subject: [PATCH] Fix cs_user_spawn to properly respawn players (bug 3752, r=dvander) --- dlls/cstrike/cstrike/cstrike.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/dlls/cstrike/cstrike/cstrike.cpp b/dlls/cstrike/cstrike/cstrike.cpp index 17a0db31..b767622d 100755 --- a/dlls/cstrike/cstrike/cstrike.cpp +++ b/dlls/cstrike/cstrike/cstrike.cpp @@ -1327,8 +1327,14 @@ static cell AMX_NATIVE_CALL cs_user_spawn(AMX *amx, cell *params) edict_t *pPlayer = MF_GetPlayerEdict(params[1]); pPlayer->v.deadflag = DEAD_RESPAWNABLE; - MDLL_Spawn(pPlayer); - pPlayer->v.iuser1 = 0; + MDLL_Think(pPlayer); + + const char *auth = GETPLAYERAUTHID(pPlayer); + if (((pPlayer->v.flags & FL_FAKECLIENT) == FL_FAKECLIENT || (auth && (strcmp(auth, "BOT") == 0))) && pPlayer->v.deadflag == DEAD_RESPAWNABLE) { + MDLL_Spawn(pPlayer); + } + + // pPlayer->v.iuser1 = 0; return 1; }