r4692 - in trunk/data: . qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Oct 10 02:53:05 EDT 2008


Author: div0
Date: 2008-10-10 02:53:05 -0400 (Fri, 10 Oct 2008)
New Revision: 4692

Added:
   trunk/data/ctfscoring-z-lowdeposit.cfg
Modified:
   trunk/data/ctfscoring-ai.cfg
   trunk/data/ctfscoring-alien.cfg
   trunk/data/ctfscoring-alpha.cfg
   trunk/data/ctfscoring-nex242.cfg
   trunk/data/ctfscoring-z.cfg
   trunk/data/qcsrc/server/ctf.qc
   trunk/data/qcsrc/server/defs.qh
   trunk/data/qcsrc/server/g_damage.qc
   trunk/data/qcsrc/server/scores_rules.qc
   trunk/data/qcsrc/server/teamplay.qc
Log:
use g_ctf_personalscore* cvars if g_ctf_win_mode is 0 or 1 (caps scoring); this fixes the problems with [-z-]'s scoring system as it would be HIGHLY broken as only decider of a match (it would reward camping more than anything else)


Modified: trunk/data/ctfscoring-ai.cfg
===================================================================
--- trunk/data/ctfscoring-ai.cfg	2008-10-10 05:46:11 UTC (rev 4691)
+++ trunk/data/ctfscoring-ai.cfg	2008-10-10 06:53:05 UTC (rev 4692)
@@ -15,3 +15,16 @@
 // 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)
+
+set g_ctf_personalscore_pickup_base                   0
+set g_ctf_personalscore_pickup_dropped_early          0
+set g_ctf_personalscore_pickup_dropped_late           0
+set g_ctf_personalscore_capture                      20
+set g_ctf_personalscore_kill                          0
+set g_ctf_personalpenalty_drop                        0
+set g_ctf_personalpenalty_suicidedrop                 0
+set g_ctf_personalpenalty_returned                    5
+set g_ctf_personalscore_return                        0
+set g_ctf_personalscore_return_rogue                 10
+set g_ctf_personalscore_return_by_killer              0
+set g_ctf_personalscore_return_rogue_by_killer       10

Modified: trunk/data/ctfscoring-alien.cfg
===================================================================
--- trunk/data/ctfscoring-alien.cfg	2008-10-10 05:46:11 UTC (rev 4691)
+++ trunk/data/ctfscoring-alien.cfg	2008-10-10 06:53:05 UTC (rev 4692)
@@ -15,3 +15,16 @@
 // failed (shot into void) (pickup kill drop)     1 (1 for enemy)
 // capture retry (kill drop pickup)              -1 (1 for enemy)
 // suicide, then retake (suicidedrop pickup)     -1 (0 for enemy)
+
+set g_ctf_personalscore_pickup_base                   1
+set g_ctf_personalscore_pickup_dropped_early          1
+set g_ctf_personalscore_pickup_dropped_late           1
+set g_ctf_personalscore_capture                      30
+set g_ctf_personalscore_kill                          1
+set g_ctf_personalpenalty_drop                        2
+set g_ctf_personalpenalty_suicidedrop                 2
+set g_ctf_personalpenalty_returned                    0
+set g_ctf_personalscore_return                        5
+set g_ctf_personalscore_return_rogue                 10
+set g_ctf_personalscore_return_by_killer              6
+set g_ctf_personalscore_return_rogue_by_killer       11

Modified: trunk/data/ctfscoring-alpha.cfg
===================================================================
--- trunk/data/ctfscoring-alpha.cfg	2008-10-10 05:46:11 UTC (rev 4691)
+++ trunk/data/ctfscoring-alpha.cfg	2008-10-10 06:53:05 UTC (rev 4692)
@@ -15,3 +15,16 @@
 // 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)
+
+set g_ctf_personalscore_pickup_base                   0
+set g_ctf_personalscore_pickup_dropped_early          0
+set g_ctf_personalscore_pickup_dropped_late           0
+set g_ctf_personalscore_capture                      20
+set g_ctf_personalscore_kill                          0
+set g_ctf_personalpenalty_drop                        0
+set g_ctf_personalpenalty_suicidedrop                 0
+set g_ctf_personalpenalty_returned                    0
+set g_ctf_personalscore_return                        5
+set g_ctf_personalscore_return_rogue                 10
+set g_ctf_personalscore_return_by_killer              5
+set g_ctf_personalscore_return_rogue_by_killer       10

Modified: trunk/data/ctfscoring-nex242.cfg
===================================================================
--- trunk/data/ctfscoring-nex242.cfg	2008-10-10 05:46:11 UTC (rev 4691)
+++ trunk/data/ctfscoring-nex242.cfg	2008-10-10 06:53:05 UTC (rev 4692)
@@ -15,3 +15,16 @@
 // failed (shot into void) (pickup kill drop)     1 (1 for enemy)
 // capture retry (kill drop pickup)               1 (1 for enemy)
 // suicide, then retake (suicidedrop pickup)      0 (0 for enemy)
+
+set g_ctf_personalscore_pickup_base                   1
+set g_ctf_personalscore_pickup_dropped_early          1
+set g_ctf_personalscore_pickup_dropped_late           1
+set g_ctf_personalscore_capture                      20
+set g_ctf_personalscore_kill                          1
+set g_ctf_personalpenalty_drop                        0
+set g_ctf_personalpenalty_suicidedrop                 1
+set g_ctf_personalpenalty_returned                    0
+set g_ctf_personalscore_return                        5
+set g_ctf_personalscore_return_rogue                 10
+set g_ctf_personalscore_return_by_killer              5
+set g_ctf_personalscore_return_rogue_by_killer       10

Copied: trunk/data/ctfscoring-z-lowdeposit.cfg (from rev 4679, trunk/data/ctfscoring-z.cfg)
===================================================================
--- trunk/data/ctfscoring-z-lowdeposit.cfg	                        (rev 0)
+++ trunk/data/ctfscoring-z-lowdeposit.cfg	2008-10-10 06:53:05 UTC (rev 4692)
@@ -0,0 +1,19 @@
+exec ctfscoring-ai.cfg // fall back to ai's scoring for flag scores, if g_ctf_win_mode is 2, as this system is highly broken in that mode
+
+set g_ctf_personalscore_pickup_base                  -1
+set g_ctf_personalscore_pickup_dropped_early          5
+set g_ctf_personalscore_pickup_dropped_late           9
+set g_ctf_personalscore_capture                      26
+set g_ctf_personalscore_kill                          5
+set g_ctf_personalpenalty_drop                       10
+set g_ctf_personalpenalty_suicidedrop                10
+set g_ctf_personalpenalty_returned                    0
+set g_ctf_personalscore_return                        3
+set g_ctf_personalscore_return_rogue                 10
+set g_ctf_personalscore_return_by_killer              3
+set g_ctf_personalscore_return_rogue_by_killer       10
+// succeeded capture (pickup capture)            25 (0 for enemy)
+// failed capture (pickup kill drop return)     -10 (8 for enemy)
+// failed (shot into void) (pickup kill drop)   -10 (5 for enemy)
+// capture retry (kill drop pickup)          -1..-4 (5 for enemy)
+// suicide, then retake (suicidedrop pickup) -1..-4 (0 for enemy)


Property changes on: trunk/data/ctfscoring-z-lowdeposit.cfg
___________________________________________________________________
Name: svn:mergeinfo
   + 

Modified: trunk/data/ctfscoring-z.cfg
===================================================================
--- trunk/data/ctfscoring-z.cfg	2008-10-10 05:46:11 UTC (rev 4691)
+++ trunk/data/ctfscoring-z.cfg	2008-10-10 06:53:05 UTC (rev 4692)
@@ -1,15 +1,17 @@
-set g_ctf_flagscore_pickup_base                  -5
-set g_ctf_flagscore_pickup_dropped_early          1
-set g_ctf_flagscore_pickup_dropped_late           5
-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
-set g_ctf_flagscore_return_rogue_by_killer       10
+exec ctfscoring-ai.cfg // fall back to ai's scoring for flag scores, if g_ctf_win_mode is 2, as this system is highly broken in that mode
+
+set g_ctf_personalscore_pickup_base                  -5
+set g_ctf_personalscore_pickup_dropped_early          1
+set g_ctf_personalscore_pickup_dropped_late           5
+set g_ctf_personalscore_capture                      30
+set g_ctf_personalscore_kill                          5
+set g_ctf_personalpenalty_drop                        5
+set g_ctf_personalpenalty_suicidedrop                 5
+set g_ctf_personalpenalty_returned                    0
+set g_ctf_personalscore_return                        3
+set g_ctf_personalscore_return_rogue                 10
+set g_ctf_personalscore_return_by_killer              3
+set g_ctf_personalscore_return_rogue_by_killer       10
 // succeeded capture (pickup capture)            25 (0 for enemy)
 // failed capture (pickup kill drop return)     -10 (8 for enemy)
 // failed (shot into void) (pickup kill drop)   -10 (5 for enemy)

Modified: trunk/data/qcsrc/server/ctf.qc
===================================================================
--- trunk/data/qcsrc/server/ctf.qc	2008-10-10 05:46:11 UTC (rev 4691)
+++ trunk/data/qcsrc/server/ctf.qc	2008-10-10 06:53:05 UTC (rev 4692)
@@ -11,6 +11,14 @@
 
 #define FLAG_CARRY_POS '-15 0 7'
 
+float ctf_score_value(string parameter)
+{
+	if(g_ctf_win_mode != 2)
+		return cvar(strcat("g_ctf_personal", parameter));
+	else
+		return cvar(strcat("g_ctf_flag", parameter));
+}
+
 void FakeTimeLimit(entity e, float t)
 {
 	msg_entity = e;
@@ -129,9 +137,9 @@
 	bprint(p.netname, "^7 lost the ", e.netname, "\n");
 
 	if(penalty_receiver)
-		UpdateFrags(penalty_receiver, -cvar("g_ctf_flagpenalty_suicidedrop"));
+		UpdateFrags(penalty_receiver, -ctf_score_value("penalty_suicidedrop"));
 	else
-		UpdateFrags(p, -cvar("g_ctf_flagpenalty_drop"));
+		UpdateFrags(p, -ctf_score_value("penalty_drop"));
 	PlayerScore_Add(p, SP_CTF_DROPS, +1);
 	e.playerid = attacker.playerid;
 	
@@ -289,7 +297,7 @@
 		PlayerTeamScore_Add(other, SP_CTF_CAPS, ST_CTF_CAPS, 1);
 		LogCTF("capture", other.flagcarried.team, other);
 		// give credit to the individual player
-		UpdateFrags(other, cvar("g_ctf_flagscore_capture"));
+		UpdateFrags(other, ctf_score_value("score_capture"));
 
 		sound (other, CHAN_AUTO, self.noise2, VOL_BASE, ATTN_NONE);
 		WaypointSprite_DetachCarrier(other);
@@ -319,7 +327,7 @@
 		self.cnt = FLAG_CARRY;
 		self.angles = '0 0 0';
 		bprint(other.netname, "^7 got the ", self.netname, "\n");
-		UpdateFrags(other, cvar("g_ctf_flagscore_pickup_base"));
+		UpdateFrags(other, ctf_score_value("score_pickup_base"));
 		PlayerScore_Add(other, SP_CTF_PICKUPS, 1);
 		LogCTF("steal", self.team, other);
 		sound (other, CHAN_AUTO, self.noise, VOL_BASE, ATTN_NONE);
@@ -349,28 +357,28 @@
 			// 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"));
+					PlayerScore_Add(player, SP_SCORE, -ctf_score_value("penalty_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"));
+				TeamScore_AddToTeam(COLOR_TEAM2, ST_SCORE, -ctf_score_value("penalty_returned"));
 			else
-				TeamScore_AddToTeam(COLOR_TEAM1, ST_SCORE, -cvar("g_ctf_flagpenalty_returned"));
+				TeamScore_AddToTeam(COLOR_TEAM1, ST_SCORE, -ctf_score_value("penalty_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)
-					UpdateFrags(other, cvar("g_ctf_flagscore_return_by_killer"));
+					UpdateFrags(other, ctf_score_value("score_return_by_killer"));
 				else
-					UpdateFrags(other, cvar("g_ctf_flagscore_return_rogue_by_killer"));
+					UpdateFrags(other, ctf_score_value("score_return_rogue_by_killer"));
 			}
 			else
 			{
 				if (other.team == COLOR_TEAM1 || other.team == COLOR_TEAM2)
-					UpdateFrags(other, cvar("g_ctf_flagscore_return"));
+					UpdateFrags(other, ctf_score_value("score_return"));
 				else
-					UpdateFrags(other, cvar("g_ctf_flagscore_return_rogue"));
+					UpdateFrags(other, ctf_score_value("score_return_rogue"));
 			}
 			PlayerScore_Add(other, SP_CTF_RETURNS, 1);
 			LogCTF("return", self.team, other);
@@ -390,8 +398,8 @@
 			float f;
 			f = bound(0, (self.pain_finished - time) / cvar("g_ctf_flag_returntime"), 1);
 			//print("factor is ", ftos(f), "\n");
-			f = cvar("g_ctf_flagscore_pickup_dropped_late") * (1-f)
-			  + cvar("g_ctf_flagscore_pickup_dropped_early") * f;
+			f = ctf_score_value("score_pickup_dropped_late") * (1-f)
+			  + ctf_score_value("score_pickup_dropped_early") * f;
 			f = floor(f + 0.5);
 			//print("score is ", ftos(f), "\n");
 

Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh	2008-10-10 05:46:11 UTC (rev 4691)
+++ trunk/data/qcsrc/server/defs.qh	2008-10-10 06:53:05 UTC (rev 4692)
@@ -16,12 +16,15 @@
 
 // Globals
 
+float ctf_score_value(string parameter);
+
 float g_dm, g_domination, g_ctf, g_tdm, g_keyhunt, g_onslaught, g_assault, g_arena, g_lms, g_runematch, g_race;
 float g_cloaked, g_footsteps, g_jump_grunt, g_grappling_hook, g_laserguided_missile, g_midair, g_minstagib, g_nixnex, g_nixnex_with_laser, g_norecoil, g_rocketarena, g_vampire, g_minstagib_invis_alpha;
 float g_warmup_limit;
 float g_warmup_allguns;
 float g_warmup_allow_timeout;
 float g_ctf_win_mode;
+float g_ctf_ignore_frags;
 float g_race_qualifying;
 float inWarmupStage;
 float g_pickup_respawntime_short;

Modified: trunk/data/qcsrc/server/g_damage.qc
===================================================================
--- trunk/data/qcsrc/server/g_damage.qc	2008-10-10 05:46:11 UTC (rev 4691)
+++ trunk/data/qcsrc/server/g_damage.qc	2008-10-10 06:53:05 UTC (rev 4692)
@@ -93,7 +93,7 @@
 	}
 	else if(g_ctf)
 	{
-		if(g_ctf_win_mode == 3)
+		if(g_ctf_ignore_frags)
 			f = 0;
 	}
 
@@ -330,10 +330,9 @@
 				}
 				if(g_ctf && targ.flagcarried)
 				{
-					//GiveFrags(attacker, targ, cvar("g_ctf_flagscore_kill"));
-					UpdateFrags(attacker, cvar("g_ctf_flagscore_kill"));
+					UpdateFrags(attacker, ctf_score_value("score_kill"));
 					PlayerScore_Add(attacker, SP_CTF_FCKILLS, 1);
-					GiveFrags(attacker, targ, 0);
+					GiveFrags(attacker, targ, 0); // for logging
 				}
 				else
 					GiveFrags(attacker, targ, 1);

Modified: trunk/data/qcsrc/server/scores_rules.qc
===================================================================
--- trunk/data/qcsrc/server/scores_rules.qc	2008-10-10 05:46:11 UTC (rev 4691)
+++ trunk/data/qcsrc/server/scores_rules.qc	2008-10-10 06:53:05 UTC (rev 4692)
@@ -66,7 +66,6 @@
 			sp_score = SFL_SORT_PRIO_SECONDARY;
 			break;
 		case 2: // score only
-		case 3: // score only, no frags
 		default:
 			sp_score = SFL_SORT_PRIO_PRIMARY;
 			sp_caps = SFL_SORT_PRIO_SECONDARY; // looks better ;)

Modified: trunk/data/qcsrc/server/teamplay.qc
===================================================================
--- trunk/data/qcsrc/server/teamplay.qc	2008-10-10 05:46:11 UTC (rev 4691)
+++ trunk/data/qcsrc/server/teamplay.qc	2008-10-10 06:53:05 UTC (rev 4692)
@@ -227,7 +227,8 @@
 		gamemode_name = "Capture the Flag";
 		ActivateTeamplay();
 		g_ctf_win_mode = cvar("g_ctf_win_mode");
-		if(g_ctf_win_mode >= 2)
+		g_ctf_ignore_frags = cvar("g_ctf_ignore_frags");
+		if(g_ctf_win_mode == 2)
 			fraglimit_override = cvar("g_ctf_capture_limit");
 		else
 			fraglimit_override = cvar("capturelimit_override");




More information about the nexuiz-commits mailing list