r4546 - in trunk/data: . qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Mon Sep 29 02:13:46 EDT 2008
Author: div0
Date: 2008-09-29 02:13:44 -0400 (Mon, 29 Sep 2008)
New Revision: 4546
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:
implement CTF suggestion by [-z-] as comments
Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg 2008-09-28 19:29:29 UTC (rev 4545)
+++ trunk/data/defaultNexuiz.cfg 2008-09-29 06:13:44 UTC (rev 4546)
@@ -387,41 +387,65 @@
set gamecfg 1 // deathmatch
// ctf
-set g_ctf 0
-set g_ctf_flag_returntime 30
+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)
+set g_ctf_flagscore_pickup_base 1
+set g_ctf_flagscore_pickup_dropped_early 1
+set g_ctf_flagscore_pickup_dropped_late 5
+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)
+// 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)
// 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_flagscore_pickup_base 1
+// set g_ctf_flagscore_pickup_dropped_early 1
+// set g_ctf_flagscore_pickup_dropped_late 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)
+// // 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_flagcarrier_selfdamage 1
-set g_ctf_flagcarrier_selfforce 0.7
+// Suggestion by [-z-]
+// 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_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
+// // 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)
+set g_ctf_flagcarrier_selfdamage 1
+set g_ctf_flagcarrier_selfforce 1
+
// 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 19:29:29 UTC (rev 4545)
+++ trunk/data/qcsrc/server/arena.qc 2008-09-29 06:13:44 UTC (rev 4546)
@@ -54,7 +54,7 @@
}
else if(self.items & (IT_KEY1 | IT_KEY2))
{
- DropFlag(self, world);
+ DropFlag(self, world, 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 19:29:29 UTC (rev 4545)
+++ trunk/data/qcsrc/server/cl_client.qc 2008-09-29 06:13:44 UTC (rev 4546)
@@ -417,7 +417,7 @@
Portal_ClearAll(self);
if(self.flagcarried)
- DropFlag(self.flagcarried, world);
+ DropFlag(self.flagcarried, world, world);
WaypointSprite_PlayerDead();
@@ -1313,7 +1313,7 @@
Portal_ClearAll(self);
if(self.flagcarried)
- DropFlag(self.flagcarried, world);
+ DropFlag(self.flagcarried, world, 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 19:29:29 UTC (rev 4545)
+++ trunk/data/qcsrc/server/cl_player.qc 2008-09-29 06:13:44 UTC (rev 4546)
@@ -508,11 +508,11 @@
if(self.flagcarried)
{
if(attacker.classname != "player" && attacker.classname != "gib")
- DropFlag(self.flagcarried, self); // penalty for flag loss by suicide
+ DropFlag(self.flagcarried, self, attacker); // penalty for flag loss by suicide
else if(attacker.team == self.team)
- DropFlag(self.flagcarried, attacker); // penalty for flag loss by suicide/teamkill
+ DropFlag(self.flagcarried, attacker, attacker); // penalty for flag loss by suicide/teamkill
else
- DropFlag(self.flagcarried, world);
+ DropFlag(self.flagcarried, world, attacker);
}
Portal_ClearAllLater(self);
// clear waypoints
Modified: trunk/data/qcsrc/server/clientcommands.qc
===================================================================
--- trunk/data/qcsrc/server/clientcommands.qc 2008-09-28 19:29:29 UTC (rev 4545)
+++ trunk/data/qcsrc/server/clientcommands.qc 2008-09-29 06:13:44 UTC (rev 4546)
@@ -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, world);
+ DropFlag(self.flagcarried, world, 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 19:29:29 UTC (rev 4545)
+++ trunk/data/qcsrc/server/ctf.qc 2008-09-29 06:13:44 UTC (rev 4546)
@@ -106,7 +106,7 @@
RegenFlag(e);
};
-void DropFlag(entity e, entity penalty_receiver)
+void DropFlag(entity e, entity penalty_receiver, entity attacker)
{
local entity p;
@@ -134,9 +134,8 @@
else
UpdateFrags(p, -cvar("g_ctf_flagpenalty_drop"));
PlayerScore_Add(p, SP_CTF_DROPS, +1);
+ e.playerid = attacker.playerid;
- //if(e.enemy && e.enemy != e)
- //UpdateFrags(e.enemy, cvar("g_ctf_flagscore_kill"));
WaypointSprite_DetachCarrier(p);
LogCTF("dropped", p.team, p);
@@ -227,7 +226,7 @@
if (e.classname != "player" || (e.deadflag) || (e.flagcarried != self))
{
dprint("CANNOT HAPPEN - player dead and STILL had a flag!\n");
- DropFlag(self, world);
+ DropFlag(self, world, world);
return;
}
};
@@ -319,7 +318,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"));
+ UpdateFrags(other, cvar("g_ctf_flagscore_pickup_base"));
PlayerScore_Add(other, SP_CTF_PICKUPS, 1);
LogCTF("steal", self.team, other);
sound (other, CHAN_AUTO, self.noise, VOL_BASE, ATTN_NONE);
@@ -343,7 +342,7 @@
{
// return flag
bprint(other.netname, "^7 returned the ", self.netname, "\n");
- if(other == self.enemy)
+ 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"));
@@ -371,7 +370,14 @@
other.flagcarried = self;
self.cnt = FLAG_CARRY;
bprint(other.netname, "^7 picked up the ", self.netname, "\n");
- UpdateFrags(other, cvar("g_ctf_flagscore_pickup"));
+
+ float f;
+ f = (time - self.pain_finished) / cvar("g_ctf_flag_returntime");
+ f = cvar("g_ctf_flagscore_pickup_dropped_late") * (1-f)
+ + cvar("g_ctf_flagscore_pickup_dropped_early") * f;
+ f = floor(f + 0.5);
+
+ UpdateFrags(other, f);
PlayerScore_Add(other, SP_CTF_PICKUPS, 1);
LogCTF("pickup", self.team, other);
sound (other, CHAN_AUTO, self.noise, VOL_BASE, ATTN_NONE);
Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh 2008-09-28 19:29:29 UTC (rev 4545)
+++ trunk/data/qcsrc/server/defs.qh 2008-09-29 06:13:44 UTC (rev 4546)
@@ -359,7 +359,7 @@
float startitem_failed;
-void DropFlag(entity flag, entity penalty_receiver);
+void DropFlag(entity flag, entity penalty_receiver, entity attacker);
void DropAllRunes(entity pl);
Modified: trunk/data/qcsrc/server/portals.qc
===================================================================
--- trunk/data/qcsrc/server/portals.qc 2008-09-28 19:29:29 UTC (rev 4545)
+++ trunk/data/qcsrc/server/portals.qc 2008-09-29 06:13:44 UTC (rev 4546)
@@ -193,7 +193,7 @@
player.right_vector = -1 * Portal_Transform_Apply(transform, player.right_vector);
if(player.flagcarried)
- DropFlag(player.flagcarried, player);
+ DropFlag(player.flagcarried, player, world);
TeleportPlayer(teleporter, player, to, ang, newvel, teleporter.enemy.absmin, teleporter.enemy.absmax);
// reset fade counter
More information about the nexuiz-commits
mailing list