r3717 - in trunk/data: . qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Jun 27 05:47:52 EDT 2008


Author: div0
Date: 2008-06-27 05:47:41 -0400 (Fri, 27 Jun 2008)
New Revision: 3717

Modified:
   trunk/data/qcsrc/server/w_crylink.qc
   trunk/data/weapons.cfg
Log:
make the "star" projectiles of the crylink range limited (after 1400 distance, they fade out, till they reach a distance of 3500, where they vanish); only the center projectile stays virtually unlimited (for sniping).


Modified: trunk/data/qcsrc/server/w_crylink.qc
===================================================================
--- trunk/data/qcsrc/server/w_crylink.qc	2008-06-22 17:43:59 UTC (rev 3716)
+++ trunk/data/qcsrc/server/w_crylink.qc	2008-06-27 09:47:41 UTC (rev 3717)
@@ -1,17 +1,8 @@
-
 .float gravity;
 const vector proj_color = '1 1 1';
 
 .entity realowner;
 
-void W_Crylink_Think (void)
-{
-	self.nextthink = self.count;
-	self.angles = vectoangles(self.velocity);
-	if (time >= self.count)
-		remove(self);
-}
-
 void W_Crylink_Touch (void)
 {
 	float finalhit;
@@ -27,6 +18,8 @@
 		f = 1;
 	else
 		f = cvar("g_balance_crylink_primary_bouncedamagefactor");
+	if(self.alpha)
+		f *= self.alpha;
 	RadiusDamage (self, self.realowner, cvar("g_balance_crylink_primary_damage") * f, cvar("g_balance_crylink_primary_edgedamage") * f, cvar("g_balance_crylink_primary_radius"), world, cvar("g_balance_crylink_primary_force") * f, IT_CRYLINK);
 	if (finalhit)
 	{
@@ -35,7 +28,6 @@
 	}
 	self.cnt = self.cnt - 1;
 	self.angles = vectoangles(self.velocity);
-	self.nextthink = time;
 	self.owner = world;
 	//self.scale = 1 + self.cnt;
 }
@@ -55,6 +47,8 @@
 		f = 1;
 	else
 		f = cvar("g_balance_crylink_secondary_bouncedamagefactor");
+	if(self.alpha)
+		f *= self.alpha;
 	RadiusDamage (self, self.realowner, cvar("g_balance_crylink_secondary_damage") * f, cvar("g_balance_crylink_secondary_edgedamage") * f, cvar("g_balance_crylink_secondary_radius"), world, cvar("g_balance_crylink_secondary_force") * f, IT_CRYLINK);
 	if (finalhit)
 	{
@@ -63,7 +57,6 @@
 	}
 	self.cnt = self.cnt - 1;
 	self.angles = vectoangles(self.velocity);
-	self.nextthink = time;
 	self.owner = world;
 //	self.scale = 1 + 1 * self.cnt;
 }
@@ -113,9 +106,12 @@
 //		proj.velocity = (w_shotdir + randomvec() * cvar("g_balance_crylink_primary_spread")) * cvar("g_balance_crylink_primary_speed");
 		W_SetupProjectileVelocity(proj);
 		proj.touch = W_Crylink_Touch;
-		proj.count = time + cvar("g_balance_crylink_primary_lifetime");
-		proj.think = W_Crylink_Think;
-		proj.nextthink = proj.count;
+		if(counter == 0)
+			SUB_SetFade(proj, time + cvar("g_balance_crylink_primary_middle_lifetime"), cvar("g_balance_crylink_primary_middle_fadetime"));
+		else if(counter <= 3)
+			SUB_SetFade(proj, time + cvar("g_balance_crylink_primary_star_lifetime"), cvar("g_balance_crylink_primary_star_fadetime"));
+		else
+			SUB_SetFade(proj, time + cvar("g_balance_crylink_primary_other_lifetime"), cvar("g_balance_crylink_primary_other_fadetime"));
 		proj.cnt = cvar("g_balance_crylink_primary_bounces");
 		proj.scale = 1 + 1 * proj.cnt;
 
@@ -161,9 +157,10 @@
 		proj.velocity = (w_shotdir + (((counter + 0.5) / shots) * 2 - 1) * v_right * cvar("g_balance_crylink_secondary_spread")) * cvar("g_balance_crylink_secondary_speed");
 		W_SetupProjectileVelocity(proj);
 		proj.touch = W_Crylink_Touch2;
-		proj.count = time + cvar("g_balance_crylink_primary_lifetime");
-		proj.think = W_Crylink_Think;
-		proj.nextthink = proj.count;
+		if(counter == (shots - 1) / 2)
+			SUB_SetFade(proj, time + cvar("g_balance_crylink_secondary_middle_lifetime"), cvar("g_balance_crylink_secondary_middle_fadetime"));
+		else
+			SUB_SetFade(proj, time + cvar("g_balance_crylink_secondary_line_lifetime"), cvar("g_balance_crylink_secondary_line_fadetime"));
 		proj.cnt = cvar("g_balance_crylink_secondary_bounces");
 		proj.scale = 1 + 1 * proj.cnt;
 
@@ -203,9 +200,9 @@
 	if (req == WR_AIM)
 	{
 		if (random() > 0.15)
-			self.button0 = bot_aim(cvar("g_balance_crylink_primary_speed"), 0, cvar("g_balance_crylink_primary_lifetime"), FALSE);
+			self.button0 = bot_aim(cvar("g_balance_crylink_primary_speed"), 0, cvar("g_balance_crylink_primary_middle_lifetime"), FALSE);
 		else
-			self.button3 = bot_aim(cvar("g_balance_crylink_secondary_speed"), 0, cvar("g_balance_crylink_secondary_lifetime"), FALSE);
+			self.button3 = bot_aim(cvar("g_balance_crylink_secondary_speed"), 0, cvar("g_balance_crylink_secondary_middle_lifetime"), FALSE);
 	}
 	else if (req == WR_THINK)
 	{

Modified: trunk/data/weapons.cfg
===================================================================
--- trunk/data/weapons.cfg	2008-06-22 17:43:59 UTC (rev 3716)
+++ trunk/data/weapons.cfg	2008-06-27 09:47:41 UTC (rev 3717)
@@ -131,12 +131,19 @@
 set g_balance_crylink_primary_speed 7000
 set g_balance_crylink_primary_spread 0.03
 set g_balance_crylink_primary_shots 4
-set g_balance_crylink_primary_lifetime 30
 set g_balance_crylink_primary_bounces 1
 set g_balance_crylink_primary_refire 0.4
 set g_balance_crylink_primary_animtime 0.3
 set g_balance_crylink_primary_ammo 2
 set g_balance_crylink_primary_bouncedamagefactor 0.5
+
+set g_balance_crylink_primary_middle_lifetime 5 // range: 35000 full, fades to 70000
+set g_balance_crylink_primary_middle_fadetime 5
+set g_balance_crylink_primary_star_lifetime 0.2 // range: 1400 full, fades to 3500
+set g_balance_crylink_primary_star_fadetime 0.3
+set g_balance_crylink_primary_other_lifetime 0.2 // range: 1400 full, fades to 3500
+set g_balance_crylink_primary_other_fadetime 0.3
+
 set g_balance_crylink_secondary_damage 20
 set g_balance_crylink_secondary_edgedamage 0
 set g_balance_crylink_secondary_force -55
@@ -144,13 +151,17 @@
 set g_balance_crylink_secondary_speed 7000
 set g_balance_crylink_secondary_spread 0.08
 set g_balance_crylink_secondary_shots 7
-set g_balance_crylink_secondary_lifetime 30
 set g_balance_crylink_secondary_bounces 0
 set g_balance_crylink_secondary_refire 0.5
 set g_balance_crylink_secondary_animtime 0.3
 set g_balance_crylink_secondary_ammo 2
 set g_balance_crylink_secondary_bouncedamagefactor 0.5
 
+set g_balance_crylink_secondary_middle_lifetime 5 // range: 35000 full, fades to 70000
+set g_balance_crylink_secondary_middle_fadetime 5
+set g_balance_crylink_secondary_line_lifetime 2 // range: 35000 full, fades to 70000
+set g_balance_crylink_secondary_line_fadetime 2
+
 set g_balance_nex_damage 140
 set g_balance_nex_force 600
 set g_balance_nex_refire 1.5




More information about the nexuiz-commits mailing list