From 8bec8fb77a23b5f723473fc56b6da16c68b50629 Mon Sep 17 00:00:00 2001 From: div0 Date: Tue, 30 Sep 2008 18:31:39 +0000 Subject: [PATCH] g_ctf_flagpenalty_returned for ai's scoring system git-svn-id: svn://svn.icculus.org/nexuiz/trunk@4563 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/ctfscoring-ai.cfg | 17 +++++++++++++++++ data/ctfscoring-alien.cfg | 1 + data/ctfscoring-alpha.cfg | 1 + data/ctfscoring-nex242.cfg | 1 + data/ctfscoring-z.cfg | 1 + data/qcsrc/server/ctf.qc | 13 +++++++++++++ 6 files changed, 34 insertions(+) create mode 100644 data/ctfscoring-ai.cfg diff --git a/data/ctfscoring-ai.cfg b/data/ctfscoring-ai.cfg new file mode 100644 index 000000000..e1534b87b --- /dev/null +++ b/data/ctfscoring-ai.cfg @@ -0,0 +1,17 @@ +set g_ctf_flagscore_pickup_base 0 +set g_ctf_flagscore_pickup_dropped_early 0 +set g_ctf_flagscore_pickup_dropped_late 0 +set g_ctf_flagscore_capture 20 +set g_ctf_flagscore_kill 0 +set g_ctf_flagpenalty_drop 0 +set g_ctf_flagpenalty_suicidedrop 0 +set g_ctf_flagpenalty_returned 5 +set g_ctf_flagscore_return 0 +set g_ctf_flagscore_return_rogue 10 +set g_ctf_flagscore_return_by_killer 0 +set g_ctf_flagscore_return_rogue_by_killer 10 +// succeeded capture (pickup capture) 20 (0 for enemy) +// failed capture (pickup kill drop return) -5 (0 for enemy) +// failed (shot into void) (pickup kill drop) 0 (0 for enemy) +// capture retry (kill drop pickup) 0 (0 for enemy) +// suicide, then retake (suicidedrop pickup) 0 (0 for enemy) diff --git a/data/ctfscoring-alien.cfg b/data/ctfscoring-alien.cfg index 3e790e66c..c10fcfeb8 100644 --- a/data/ctfscoring-alien.cfg +++ b/data/ctfscoring-alien.cfg @@ -5,6 +5,7 @@ set g_ctf_flagscore_capture 30 set g_ctf_flagscore_kill 1 set g_ctf_flagpenalty_drop 2 set g_ctf_flagpenalty_suicidedrop 2 +set g_ctf_flagpenalty_returned 0 set g_ctf_flagscore_return 5 set g_ctf_flagscore_return_rogue 10 set g_ctf_flagscore_return_by_killer 6 diff --git a/data/ctfscoring-alpha.cfg b/data/ctfscoring-alpha.cfg index 92376dd09..7a938d08e 100644 --- a/data/ctfscoring-alpha.cfg +++ b/data/ctfscoring-alpha.cfg @@ -5,6 +5,7 @@ set g_ctf_flagscore_capture 20 set g_ctf_flagscore_kill 0 set g_ctf_flagpenalty_drop 0 set g_ctf_flagpenalty_suicidedrop 0 +set g_ctf_flagpenalty_returned 0 set g_ctf_flagscore_return 5 set g_ctf_flagscore_return_rogue 10 set g_ctf_flagscore_return_by_killer 5 diff --git a/data/ctfscoring-nex242.cfg b/data/ctfscoring-nex242.cfg index 66044ed24..9179331f9 100644 --- a/data/ctfscoring-nex242.cfg +++ b/data/ctfscoring-nex242.cfg @@ -5,6 +5,7 @@ set g_ctf_flagscore_capture 20 set g_ctf_flagscore_kill 1 set g_ctf_flagpenalty_drop 0 set g_ctf_flagpenalty_suicidedrop 1 +set g_ctf_flagpenalty_returned 0 set g_ctf_flagscore_return 5 set g_ctf_flagscore_return_rogue 10 set g_ctf_flagscore_return_by_killer 5 diff --git a/data/ctfscoring-z.cfg b/data/ctfscoring-z.cfg index cbf5900d9..83a8c4edf 100644 --- a/data/ctfscoring-z.cfg +++ b/data/ctfscoring-z.cfg @@ -5,6 +5,7 @@ set g_ctf_flagscore_capture 30 set g_ctf_flagscore_kill 5 set g_ctf_flagpenalty_drop 5 set g_ctf_flagpenalty_suicidedrop 5 +set g_ctf_flagpenalty_returned 0 set g_ctf_flagscore_return 3 set g_ctf_flagscore_return_rogue 10 set g_ctf_flagscore_return_by_killer 3 diff --git a/data/qcsrc/server/ctf.qc b/data/qcsrc/server/ctf.qc index a581e7544..8515918c4 100644 --- a/data/qcsrc/server/ctf.qc +++ b/data/qcsrc/server/ctf.qc @@ -342,6 +342,19 @@ void FlagTouch() { // return flag bprint(other.netname, "^7 returned the ", self.netname, "\n"); + + // punish the player who last had it + FOR_EACH_PLAYER(player) + if(player.playerid == self.playerid) + PlayerScore_Add(player, SP_SCORE, -cvar("g_ctf_flagpenalty_returned")); + + // punish the team who was last carrying it + if(self.team == COLOR_TEAM1) + TeamScore_AddToTeam(COLOR_TEAM2, ST_SCORE, -cvar("g_ctf_flagpenalty_returned")); + else + TeamScore_AddToTeam(COLOR_TEAM1, ST_SCORE, -cvar("g_ctf_flagpenalty_returned")); + + // reward the player who returned it if(other.playerid == self.playerid) // is this the guy who killed the FC last? { if (other.team == COLOR_TEAM1 || other.team == COLOR_TEAM2) -- 2.39.2