r2587 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri May 18 06:12:51 EDT 2007


Author: div0
Date: 2007-05-18 06:12:51 -0400 (Fri, 18 May 2007)
New Revision: 2587

Modified:
   trunk/data/qcsrc/server/g_damage.qc
   trunk/data/qcsrc/server/keyhunt.qc
Log:
fix keyhunt friendly fire exploit


Modified: trunk/data/qcsrc/server/g_damage.qc
===================================================================
--- trunk/data/qcsrc/server/g_damage.qc	2007-05-18 09:27:01 UTC (rev 2586)
+++ trunk/data/qcsrc/server/g_damage.qc	2007-05-18 10:12:51 UTC (rev 2587)
@@ -28,8 +28,7 @@
 	}
 	else if(cvar("g_keyhunt"))
 	{
-		if(f > 0)
-			f = kh_HandleFrags(attacker, targ, f);
+		f = kh_HandleFrags(attacker, targ, f);
 	}
 	else if(cvar("g_lms"))
 	{

Modified: trunk/data/qcsrc/server/keyhunt.qc
===================================================================
--- trunk/data/qcsrc/server/keyhunt.qc	2007-05-18 09:27:01 UTC (rev 2586)
+++ trunk/data/qcsrc/server/keyhunt.qc	2007-05-18 10:12:51 UTC (rev 2587)
@@ -781,13 +781,25 @@
 
 float kh_HandleFrags(entity attacker, entity targ, float f)
 {
-	if(f <= 0)
-		return f;
 	if(attacker == targ)
 		return f;
 
 	if(targ.kh_next)
-		kh_Scores_Event(attacker, targ.kh_next, "carrierfrag", cvar("g_balance_keyhunt_score_carrierfrag")-1, 0);
+	{
+		if(attacker.team == targ.team)
+		{
+			entity k;
+			float nk;
+			nk = 0;
+			for(k = targ.kh_next; k != world; k = k.kh_next)
+				++nk;
+			kh_Scores_Event(attacker, targ.kh_next, "carrierfrag", -nk * cvar("g_balance_keyhunt_score_collect"), 0);
+		}
+		else
+		{
+			kh_Scores_Event(attacker, targ.kh_next, "carrierfrag", cvar("g_balance_keyhunt_score_carrierfrag")-1, 0);
+		}
+	}
 
 	return f;
 }




More information about the nexuiz-commits mailing list