r4544 - in trunk/data: . qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sun Sep 28 15:26:51 EDT 2008
Author: div0
Date: 2008-09-28 15:26:50 -0400 (Sun, 28 Sep 2008)
New Revision: 4544
Modified:
trunk/data/defaultNexuiz.cfg
trunk/data/qcsrc/server/arena.qc
trunk/data/qcsrc/server/cl_client.qc
trunk/data/qcsrc/server/cl_player.qc
trunk/data/qcsrc/server/clientcommands.qc
trunk/data/qcsrc/server/ctf.qc
trunk/data/qcsrc/server/defs.qh
trunk/data/qcsrc/server/portals.qc
Log:
ctf fixes (and comments containing ^R_Alien's scoring)
Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg 2008-09-28 17:16:09 UTC (rev 4543)
+++ trunk/data/defaultNexuiz.cfg 2008-09-28 19:26:50 UTC (rev 4544)
@@ -387,18 +387,41 @@
set gamecfg 1 // deathmatch
// ctf
-set g_ctf 0
-set g_ctf_flag_returntime 30
-set g_ctf_flagscore_capture 20
-set g_ctf_flagscore_capture_team 0
-set g_ctf_flagscore_pickup 1
-set g_ctf_flagscore_return 5
-set g_ctf_flagscore_return_rogue 10
-set g_ctf_flagpenalty_drop 0
-set g_ctf_flagscore_kill 1
-set g_ctf_flagcarrier_selfdamage 1
-set g_ctf_flagcarrier_selfforce 0.7
+set g_ctf 0
+set g_ctf_flag_returntime 30
+
+set g_ctf_flagscore_pickup 1
+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_flagscore_return 5
+set g_ctf_flagscore_return_rogue 10
+set g_ctf_flagscore_return_by_killer 5
+set g_ctf_flagscore_return_rogue_by_killer 10
+// succeeded capture (pickup capture) 21 (0 for enemy)
+// failed capture (pickup kill drop return) 1 (6 for enemy)
+// capture retry (kill drop pickup) 1 (1 for enemy)
+// suicide, then retake (suicidedrop pickup) 0 (0 for enemy)
+// Suggestion by Alien:
+// set g_ctf_flagscore_pickup 1
+// 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_flagscore_return 5
+// set g_ctf_flagscore_return_rogue 10
+// set g_ctf_flagscore_return_by_killer 6
+// set g_ctf_flagscore_return_rogue_by_killer 11
+// // succeeded capture (pickup capture) 31 (0 for enemy)
+// // failed capture (pickup kill drop return) -1 (6 or 7 for enemy)
+// // capture retry (kill drop pickup) -1 (1 for enemy)
+// // suicide, then retake (suicidedrop pickup) -1 (0 for enemy)
+
+set g_ctf_flagcarrier_selfdamage 1
+set g_ctf_flagcarrier_selfforce 0.7
+
// runematch
set g_runematch 0
set g_runematch_pointrate 5
Modified: trunk/data/qcsrc/server/arena.qc
===================================================================
--- trunk/data/qcsrc/server/arena.qc 2008-09-28 17:16:09 UTC (rev 4543)
+++ trunk/data/qcsrc/server/arena.qc 2008-09-28 19:26:50 UTC (rev 4544)
@@ -54,7 +54,7 @@
}
else if(self.items & (IT_KEY1 | IT_KEY2))
{
- DropFlag(self, 0);
+ DropFlag(self, world);
ReturnFlag(self);
}
else if(self.classname == "rune")
Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc 2008-09-28 17:16:09 UTC (rev 4543)
+++ trunk/data/qcsrc/server/cl_client.qc 2008-09-28 19:26:50 UTC (rev 4544)
@@ -417,7 +417,7 @@
Portal_ClearAll(self);
if(self.flagcarried)
- DropFlag(self.flagcarried, 0);
+ DropFlag(self.flagcarried, world);
WaypointSprite_PlayerDead();
@@ -1313,7 +1313,7 @@
Portal_ClearAll(self);
if(self.flagcarried)
- DropFlag(self.flagcarried, 0);
+ DropFlag(self.flagcarried, world);
save = self.flags;
self.flags = self.flags - (self.flags & FL_CLIENT);
Modified: trunk/data/qcsrc/server/cl_player.qc
===================================================================
--- trunk/data/qcsrc/server/cl_player.qc 2008-09-28 17:16:09 UTC (rev 4543)
+++ trunk/data/qcsrc/server/cl_player.qc 2008-09-28 19:26:50 UTC (rev 4544)
@@ -507,10 +507,12 @@
kh_Key_DropAll(self, TRUE);
if(self.flagcarried)
{
- if(attacker.classname != "player" || attacker.team == self.team)
- DropFlag(self.flagcarried, 1); // penalty for flag loss by suicide
+ if(attacker.classname != "player" && attacker.classname != "gib")
+ DropFlag(self.flagcarried, self); // penalty for flag loss by suicide
+ else if(attacker.team == self.team)
+ DropFlag(self.flagcarried, attacker); // penalty for flag loss by suicide/teamkill
else
- DropFlag(self.flagcarried, 0);
+ DropFlag(self.flagcarried, world);
}
Portal_ClearAllLater(self);
// clear waypoints
Modified: trunk/data/qcsrc/server/clientcommands.qc
===================================================================
--- trunk/data/qcsrc/server/clientcommands.qc 2008-09-28 17:16:09 UTC (rev 4543)
+++ trunk/data/qcsrc/server/clientcommands.qc 2008-09-28 19:26:50 UTC (rev 4544)
@@ -270,7 +270,7 @@
return; // don't allow spectating in lms, unless player runs out of lives
if(self.classname == "player" && cvar("sv_spectate") == 1) {
if(self.flagcarried)
- DropFlag(self.flagcarried, 0);
+ DropFlag(self.flagcarried, world);
kh_Key_DropAll(self, TRUE);
WaypointSprite_PlayerDead();
self.classname = "observer";
Modified: trunk/data/qcsrc/server/ctf.qc
===================================================================
--- trunk/data/qcsrc/server/ctf.qc 2008-09-28 17:16:09 UTC (rev 4543)
+++ trunk/data/qcsrc/server/ctf.qc 2008-09-28 19:26:50 UTC (rev 4544)
@@ -8,7 +8,6 @@
//float FLAGSCORE_RETURN = 5; // returned by owner team
//float FLAGSCORE_RETURNROGUE = 10; // returned by rogue team
//float FLAGSCORE_CAPTURE = 5;
-//float FLAGSCORE_CAPTURE_TEAM = 20;
#define FLAG_CARRY_POS '-15 0 7'
@@ -107,7 +106,7 @@
RegenFlag(e);
};
-void DropFlag(entity e, float penalty)
+void DropFlag(entity e, entity penalty_receiver)
{
local entity p;
@@ -130,13 +129,9 @@
}
bprint(p.netname, "^7 lost the ", e.netname, "\n");
- if(penalty)
- {
- UpdateFrags(p, -cvar("g_ctf_flagscore_pickup"));
- PlayerScore_Add(p, SP_CTF_PICKUPS, -1);
- }
-
- if(cvar("g_ctf_flagpenalty_drop"))
+ if(penalty_receiver)
+ UpdateFrags(penalty_receiver, -cvar("g_ctf_flagpenalty_suicidedrop"));
+ else
UpdateFrags(p, -cvar("g_ctf_flagpenalty_drop"));
PlayerScore_Add(p, SP_CTF_DROPS, +1);
@@ -232,7 +227,7 @@
if (e.classname != "player" || (e.deadflag) || (e.flagcarried != self))
{
dprint("CANNOT HAPPEN - player dead and STILL had a flag!\n");
- DropFlag(self, 0);
+ DropFlag(self, world);
return;
}
};
@@ -242,7 +237,6 @@
if(gameover) return;
local float t;
- local entity head;
local entity player;
local string s, s0, h0, h1;
if (other.classname != "player")
@@ -297,12 +291,6 @@
// give credit to the individual player
UpdateFrags(other, cvar("g_ctf_flagscore_capture"));
- // give credit to all players of the team (rewards large teams)
- // NOTE: this defaults to 0
- FOR_EACH_PLAYER(head)
- if (head.team == self.team)
- UpdateFrags(head, cvar("g_ctf_flagscore_capture_team"));
-
sound (other, CHAN_AUTO, self.noise2, VOL_BASE, ATTN_NONE);
WaypointSprite_DetachCarrier(other);
if(self.speedrunning)
@@ -355,10 +343,20 @@
{
// return flag
bprint(other.netname, "^7 returned the ", self.netname, "\n");
- if (other.team == COLOR_TEAM1 || other.team == COLOR_TEAM2)
- UpdateFrags(other, cvar("g_ctf_flagscore_return"));
+ if(other == self.enemy)
+ {
+ if (other.team == COLOR_TEAM1 || other.team == COLOR_TEAM2)
+ UpdateFrags(other, cvar("g_ctf_flagscore_return_by_killer"));
+ else
+ UpdateFrags(other, cvar("g_ctf_flagscore_return_rogue_by_killer"));
+ }
else
- UpdateFrags(other, cvar("g_ctf_flagscore_return_rogue"));
+ {
+ if (other.team == COLOR_TEAM1 || other.team == COLOR_TEAM2)
+ UpdateFrags(other, cvar("g_ctf_flagscore_return"));
+ else
+ UpdateFrags(other, cvar("g_ctf_flagscore_return_rogue"));
+ }
PlayerScore_Add(other, SP_CTF_RETURNS, 1);
LogCTF("return", self.team, other);
sound (other, CHAN_AUTO, self.noise1, VOL_BASE, ATTN_NONE);
Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh 2008-09-28 17:16:09 UTC (rev 4543)
+++ trunk/data/qcsrc/server/defs.qh 2008-09-28 19:26:50 UTC (rev 4544)
@@ -359,7 +359,7 @@
float startitem_failed;
-void DropFlag(entity flag, float penalty);
+void DropFlag(entity flag, entity penalty_receiver);
void DropAllRunes(entity pl);
Modified: trunk/data/qcsrc/server/portals.qc
===================================================================
--- trunk/data/qcsrc/server/portals.qc 2008-09-28 17:16:09 UTC (rev 4543)
+++ trunk/data/qcsrc/server/portals.qc 2008-09-28 19:26:50 UTC (rev 4544)
@@ -193,7 +193,7 @@
player.right_vector = -1 * Portal_Transform_Apply(transform, player.right_vector);
if(player.flagcarried)
- DropFlag(player.flagcarried, 1);
+ DropFlag(player.flagcarried, player);
TeleportPlayer(teleporter, player, to, ang, newvel, teleporter.enemy.absmin, teleporter.enemy.absmax);
// reset fade counter
More information about the nexuiz-commits
mailing list