r2583 - in trunk/data: menu/data qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Thu May 17 15:45:43 EDT 2007
Author: div0
Date: 2007-05-17 15:45:43 -0400 (Thu, 17 May 2007)
New Revision: 2583
Modified:
trunk/data/menu/data/input.menu
trunk/data/qcsrc/server/cl_client.qc
trunk/data/qcsrc/server/cl_player.qc
trunk/data/qcsrc/server/clientcommands.qc
trunk/data/qcsrc/server/keyhunt.qc
trunk/data/qcsrc/server/keyhunt.qh
Log:
menu: allow sensitivity up to 30
keyhunt: fix exploit with suicide or key dropping to get points; basically, if you lose a key by suicide or dropping, someone of your team who picks it up gets no points for it
Modified: trunk/data/menu/data/input.menu
===================================================================
--- trunk/data/menu/data/input.menu 2007-05-17 18:16:23 UTC (rev 2582)
+++ trunk/data/menu/data/input.menu 2007-05-17 19:45:43 UTC (rev 2583)
@@ -10,7 +10,7 @@
Item DataLink_Value Value
{
minValue 0.0
- maxValue 20.0
+ maxValue 30.0
stepValue 1
link "##up"
}
Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc 2007-05-17 18:16:23 UTC (rev 2582)
+++ trunk/data/qcsrc/server/cl_client.qc 2007-05-17 19:45:43 UTC (rev 2583)
@@ -288,7 +288,7 @@
}
DropAllRunes(self);
- kh_Key_DropAll(self);
+ kh_Key_DropAll(self, TRUE);
if(self.flagcarried)
DropFlag(self.flagcarried);
@@ -746,7 +746,7 @@
WaypointSprite_PlayerGone();
DropAllRunes(self);
- kh_Key_DropAll(self);
+ kh_Key_DropAll(self, TRUE);
if(self.flagcarried)
DropFlag(self.flagcarried);
Modified: trunk/data/qcsrc/server/cl_player.qc
===================================================================
--- trunk/data/qcsrc/server/cl_player.qc 2007-05-17 18:16:23 UTC (rev 2582)
+++ trunk/data/qcsrc/server/cl_player.qc 2007-05-17 19:45:43 UTC (rev 2583)
@@ -309,7 +309,12 @@
// print an obituary message
Obituary (attacker, self, deathtype);
DropAllRunes(self);
- kh_Key_DropAll(self);
+ if(self == attacker)
+ kh_Key_DropAll(self, TRUE);
+ else if(attacker.classname == "player" || attacker.classname == "gib")
+ kh_Key_DropAll(self, FALSE);
+ else
+ kh_Key_DropAll(self, TRUE);
if(self.flagcarried)
DropFlag(self.flagcarried);
// clear waypoints
Modified: trunk/data/qcsrc/server/clientcommands.qc
===================================================================
--- trunk/data/qcsrc/server/clientcommands.qc 2007-05-17 18:16:23 UTC (rev 2582)
+++ trunk/data/qcsrc/server/clientcommands.qc 2007-05-17 19:45:43 UTC (rev 2583)
@@ -319,7 +319,7 @@
if(self.classname == "player" && cvar("sv_spectate") == 1) {
if(self.flagcarried)
DropFlag(self.flagcarried);
- kh_Key_DropAll(self);
+ kh_Key_DropAll(self, TRUE);
WaypointSprite_PlayerDead();
DistributeFragsAmongTeam(self, self.team, 1.0);
self.classname = "observer";
Modified: trunk/data/qcsrc/server/keyhunt.qc
===================================================================
--- trunk/data/qcsrc/server/keyhunt.qc 2007-05-17 18:16:23 UTC (rev 2582)
+++ trunk/data/qcsrc/server/keyhunt.qc 2007-05-17 19:45:43 UTC (rev 2583)
@@ -42,6 +42,7 @@
float kh_interferemsg_time, kh_interferemsg_team;
.entity kh_next, kh_prev; // linked list
.float kh_droptime;
+.float kh_dropperteam;
string kh_sound_capture = "sound/ctf/capture.wav";
string kh_sound_destroy = "sound/ctf/return.wav";
@@ -296,6 +297,7 @@
key.event_damage = kh_Key_Damage;
key.modelindex = kh_key_dropped;
key.model = "key";
+ key.kh_dropperteam = 0;
setsize(key, KH_KEY_MIN, KH_KEY_MAX);
switch(initial_owner.team)
@@ -370,7 +372,9 @@
{
sound(player, CHAN_AUTO, kh_sound_collect, 1, ATTN_NORM);
- kh_Scores_Event(player, key, "collect", cvar("g_balance_keyhunt_score_collect"), 0);
+ if(key.kh_dropperteam != player.team)
+ kh_Scores_Event(player, key, "collect", cvar("g_balance_keyhunt_score_collect"), 0);
+ key.kh_dropperteam = 0;
bprint(player.netname, "^7 collected the ", key.netname, "\n");
kh_Key_AssignTo(key, player);
@@ -381,7 +385,7 @@
}
}
-void kh_Key_DropAll(entity player)
+void kh_Key_DropAll(entity player, float suicide)
{
entity key;
entity mypusher;
@@ -400,6 +404,8 @@
key.velocity = W_CalculateProjectileVelocity(player.velocity, cvar("g_balance_keyhunt_dropvelocity") * v_forward);
key.pusher = mypusher;
key.pushltime = time + cvar("g_balance_keyhunt_protecttime");
+ if(suicide)
+ key.kh_dropperteam = player.team;
}
sound(player, CHAN_AUTO, kh_sound_drop, 1, ATTN_NORM);
}
@@ -461,6 +467,7 @@
self.velocity = W_CalculateProjectileVelocity(self.owner.velocity, cvar("g_balance_keyhunt_throwvelocity") * v_forward);
kh_Key_AssignTo(self, world);
self.pushltime = time + cvar("g_balance_keyhunt_protecttime");
+ self.kh_dropperteam = self.team;
}
}
Modified: trunk/data/qcsrc/server/keyhunt.qh
===================================================================
--- trunk/data/qcsrc/server/keyhunt.qh 2007-05-17 18:16:23 UTC (rev 2582)
+++ trunk/data/qcsrc/server/keyhunt.qh 2007-05-17 19:45:43 UTC (rev 2583)
@@ -9,7 +9,7 @@
void kh_Key_Spawn(entity initial_owner, float angle);
void kh_Key_Remove(entity key);
void kh_Key_Collect(entity key, entity player);
-void kh_Key_DropAll(entity player);
+void kh_Key_DropAll(entity player, float suicide);
void kh_Key_Touch();
void kh_Key_Think();
void kh_WinnerTeam(float teem);
More information about the nexuiz-commits
mailing list