From 9a4bd5dd63a7c455d7ec006711c81efb34884cbd Mon Sep 17 00:00:00 2001 From: ac_stef Date: Sat, 6 Sep 2008 12:16:04 +0000 Subject: [PATCH] htf, ktf bugfixes git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@2488 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/clients2c.cpp | 1 + source/src/server.cpp | 14 +++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/source/src/clients2c.cpp b/source/src/clients2c.cpp index 32f6b833..3efc3acb 100644 --- a/source/src/clients2c.cpp +++ b/source/src/clients2c.cpp @@ -564,6 +564,7 @@ void parsemessages(int cn, playerent *d, ucharbuf &p) flaginbase(flag, action, actor); break; case CTFF_IDLE: + flaginbase(flag, action, actor); f.flagent->spawned = false; f.ack = true; break; diff --git a/source/src/server.cpp b/source/src/server.cpp index 9ba1fbf5..196c58d6 100644 --- a/source/src/server.cpp +++ b/source/src/server.cpp @@ -919,8 +919,8 @@ void flagaction(int flag, int action, int sender) { f.state = CTFF_IDLE; of.state = CTFF_INBASE; - sendflaginfo(team_opposite(flag), SV_FLAGRETURN); - action = 0; + sendflaginfo(team_opposite(flag), 0); + action = SV_FLAGRETURN; } f.lastupdate = gamemillis; @@ -1246,11 +1246,10 @@ void serverdamage(client *target, client *actor, int damage, int gun, bool gib, else { // suicide actor->state.frags--; - flagtk = true; suic = true; } sendf(-1, 1, "ri4", gib ? SV_GIBDIED : SV_DIED, target->clientnum, actor->clientnum, actor->state.frags); - if(flagtk && (m_htf || m_ktf) && targethasflag >= 0) + if((suic || flagtk) && (m_htf || m_ktf) && targethasflag >= 0) { actor->state.flagscore--; sendf(-1, 1, "riii", SV_FLAGS, actor->clientnum, actor->state.flagscore); @@ -1261,7 +1260,12 @@ void serverdamage(client *target, client *actor, int damage, int gun, bool gib, logger->writeline(log::info, "[%s] %s %s %s", actor->hostname, actor->name, gib ? "gibbed" : "fragged", target->name); if(m_flags && targethasflag >= 0) { - flagaction(targethasflag, suic ? SV_FLAGLOST : SV_FLAGRESET, -1); + if(m_ctf) + flagaction(targethasflag, flagtk ? SV_FLAGRESET : SV_FLAGLOST, -1); + else if(m_htf) + flagaction(targethasflag, SV_FLAGLOST, -1); + else // ktf + flagaction(targethasflag, SV_FLAGRESET, -1); } // don't issue respawn yet until DEATHMILLIS has elapsed // ts.respawn();