[nexuiz-commits] r7890 - in trunk/data: . qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Thu Sep 24 07:12:43 EDT 2009


Author: div0
Date: 2009-09-24 07:12:42 -0400 (Thu, 24 Sep 2009)
New Revision: 7890

Modified:
   trunk/data/balance.cfg
   trunk/data/balance25.cfg
   trunk/data/balanceHavoc.cfg
   trunk/data/qcsrc/server/constants.qh
   trunk/data/qcsrc/server/g_triggers.qc
   trunk/data/qcsrc/server/miscfunctions.qc
   trunk/data/qcsrc/server/w_common.qc
   trunk/data/qcsrc/server/w_minstanex.qc
   trunk/data/qcsrc/server/w_nex.qc
Log:
distance-based nex damage falloff option (not used in any config yet)


Modified: trunk/data/balance.cfg
===================================================================
--- trunk/data/balance.cfg	2009-09-24 05:49:56 UTC (rev 7889)
+++ trunk/data/balance.cfg	2009-09-24 11:12:42 UTC (rev 7890)
@@ -3,7 +3,7 @@
 //
 // And... don't forget to edit the other balance*.cfg too.
 
-set cvar_check_balance 3ff761c8f23b7181d7038c4d05b527aa
+set cvar_check_balance df069a840b96084fe7ea4de2efb12ae5
 
 // {{{ weapon replacement
 // NOTE: this only replaces weapons on the map
@@ -363,6 +363,9 @@
 set g_balance_nex_refire 1
 set g_balance_nex_animtime 0.3
 set g_balance_nex_ammo 5
+set g_balance_nex_damagefalloff_mindist 0
+set g_balance_nex_damagefalloff_maxdist 0
+set g_balance_nex_damagefalloff_halflife 0
 //   }}}
 //   {{{ minstanex
 set g_balance_minstanex_refire 1

Modified: trunk/data/balance25.cfg
===================================================================
--- trunk/data/balance25.cfg	2009-09-24 05:49:56 UTC (rev 7889)
+++ trunk/data/balance25.cfg	2009-09-24 11:12:42 UTC (rev 7890)
@@ -3,7 +3,7 @@
 //
 // And... don't forget to edit the other balance*.cfg too.
 
-set cvar_check_balance 3ff761c8f23b7181d7038c4d05b527aa
+set cvar_check_balance df069a840b96084fe7ea4de2efb12ae5
 
 // {{{ weapon replacement
 // NOTE: this only replaces weapons on the map
@@ -363,6 +363,9 @@
 set g_balance_nex_refire 1.5
 set g_balance_nex_animtime 0.3
 set g_balance_nex_ammo 5
+set g_balance_nex_damagefalloff_mindist 0
+set g_balance_nex_damagefalloff_maxdist 0
+set g_balance_nex_damagefalloff_halflife 0
 //   }}}
 //   {{{ minstanex
 set g_balance_minstanex_refire 1

Modified: trunk/data/balanceHavoc.cfg
===================================================================
--- trunk/data/balanceHavoc.cfg	2009-09-24 05:49:56 UTC (rev 7889)
+++ trunk/data/balanceHavoc.cfg	2009-09-24 11:12:42 UTC (rev 7890)
@@ -3,7 +3,7 @@
 //
 // And... don't forget to edit the other balance*.cfg too.
 
-set cvar_check_balance 3ff761c8f23b7181d7038c4d05b527aa
+set cvar_check_balance df069a840b96084fe7ea4de2efb12ae5
 
 // {{{ weapon replacement
 // NOTE: this only replaces weapons on the map
@@ -363,6 +363,9 @@
 set g_balance_nex_refire 0.7
 set g_balance_nex_animtime 0.3
 set g_balance_nex_ammo 5
+set g_balance_nex_damagefalloff_mindist 0
+set g_balance_nex_damagefalloff_maxdist 0
+set g_balance_nex_damagefalloff_halflife 0
 //   }}}
 //   {{{ minstanex
 set g_balance_minstanex_refire 1

Modified: trunk/data/qcsrc/server/constants.qh
===================================================================
--- trunk/data/qcsrc/server/constants.qh	2009-09-24 05:49:56 UTC (rev 7889)
+++ trunk/data/qcsrc/server/constants.qh	2009-09-24 11:12:42 UTC (rev 7890)
@@ -1,5 +1,5 @@
 string CVAR_CHECK_DEFAULT = "a806b2ec1a306ab62c20ebb3dd3fb5d2";
-string CVAR_CHECK_BALANCE = "3ff761c8f23b7181d7038c4d05b527aa";
+string CVAR_CHECK_BALANCE = "df069a840b96084fe7ea4de2efb12ae5";
 
 float	FALSE					= 0;
 float	TRUE					= 1;

Modified: trunk/data/qcsrc/server/g_triggers.qc
===================================================================
--- trunk/data/qcsrc/server/g_triggers.qc	2009-09-24 05:49:56 UTC (rev 7889)
+++ trunk/data/qcsrc/server/g_triggers.qc	2009-09-24 11:12:42 UTC (rev 7890)
@@ -838,7 +838,7 @@
 };
 
 
-void FireRailgunBullet (vector start, vector end, float bdamage, float bforce, float deathtype);
+void FireRailgunBullet (vector start, vector end, float bdamage, float bforce, float mindist, float maxdist, float halflifedist, float deathtype);
 
 .float modelscale;
 void misc_laser_aim()
@@ -914,9 +914,9 @@
 	if(self.dmg)
 	{
 		if(self.dmg < 0)
-			FireRailgunBullet(self.origin, o, 100000, 0, DEATH_HURTTRIGGER);
+			FireRailgunBullet(self.origin, o, 100000, 0, 0, 0, 0, DEATH_HURTTRIGGER);
 		else
-			FireRailgunBullet(self.origin, o, self.dmg * frametime, 0, DEATH_HURTTRIGGER);
+			FireRailgunBullet(self.origin, o, self.dmg * frametime, 0, 0, 0, 0, DEATH_HURTTRIGGER);
 	}
 
 	if(self.enemy.target != "") // DETECTOR laser

Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc	2009-09-24 05:49:56 UTC (rev 7889)
+++ trunk/data/qcsrc/server/miscfunctions.qc	2009-09-24 11:12:42 UTC (rev 7890)
@@ -2637,3 +2637,13 @@
 		--iter;
 	}
 }
+
+float ExponentialFalloff(float mindist, float maxdist, float halflifedist, float d)
+{
+	if(halflifedist > 0)
+		return pow(0.5, (bound(mindist, d, maxdist) - mindist) / halflifedist);
+	else if(halflifedist < 0)
+		return pow(0.5, (maxdist - bound(mindist, d, maxdist)) / halflifedist);
+	else
+		return 1;
+}

Modified: trunk/data/qcsrc/server/w_common.qc
===================================================================
--- trunk/data/qcsrc/server/w_common.qc	2009-09-24 05:49:56 UTC (rev 7889)
+++ trunk/data/qcsrc/server/w_common.qc	2009-09-24 11:12:42 UTC (rev 7890)
@@ -24,11 +24,10 @@
 		sprint (other, "\n");
 	}
 
-
 	self = oldself;
 }
 
-void FireRailgunBullet (vector start, vector end, float bdamage, float bforce, float deathtype)
+void FireRailgunBullet (vector start, vector end, float bdamage, float bforce, float mindist, float maxdist, float halflifedist, float deathtype)
 {
 	local vector hitloc, force, endpoint, dir;
 	local entity ent, endent;
@@ -138,9 +137,11 @@
 		if(ent.team == self.team)
 			did_hit = 0;
 
+		f = ExponentialFalloff(mindist, maxdist, halflifedist, (msg_entity.origin - start) * dir);
+
 		// apply the damage
-		if (ent.takedamage || ent.classname == "case")
-			Damage (ent, self, self, bdamage, deathtype, hitloc, force);
+		if (ent.takedamage)
+			Damage (ent, self, self, bdamage * f, deathtype, hitloc, force * f);
 
 		// create a small explosion to throw gibs around (if applicable)
 		//setorigin (explosion, hitloc);

Modified: trunk/data/qcsrc/server/w_minstanex.qc
===================================================================
--- trunk/data/qcsrc/server/w_minstanex.qc	2009-09-24 05:49:56 UTC (rev 7889)
+++ trunk/data/qcsrc/server/w_minstanex.qc	2009-09-24 11:12:42 UTC (rev 7890)
@@ -10,7 +10,7 @@
 	yoda = 0;
 	damage_goodhits = 0;
 	headshot = 0;
-	FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, 10000, 800, WEP_MINSTANEX);
+	FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, 10000, 800, 0, 0, 0, WEP_MINSTANEX);
 
 	if(g_minstagib)
 	{

Modified: trunk/data/qcsrc/server/w_nex.qc
===================================================================
--- trunk/data/qcsrc/server/w_nex.qc	2009-09-24 05:49:56 UTC (rev 7889)
+++ trunk/data/qcsrc/server/w_nex.qc	2009-09-24 11:12:42 UTC (rev 7890)
@@ -18,7 +18,7 @@
 	W_SetupShot (self, TRUE, 5, "weapons/nexfire.wav", cvar("g_balance_nex_damage"));
 
 	yoda = 0;
-	FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, cvar("g_balance_nex_damage"), cvar("g_balance_nex_force"), WEP_NEX);
+	FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, cvar("g_balance_nex_damage"), cvar("g_balance_nex_force"), cvar("g_balance_nex_damagefalloff_mindist"), cvar("g_balance_nex_damagefalloff_maxdist"), cvar("g_balance_nex_damagefalloff_halflife"), WEP_NEX);
 
 	if(yoda && flying)
 		announce(self, "announcer/male/yoda.wav");



More information about the nexuiz-commits mailing list