r2653 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Tue May 22 05:20:24 EDT 2007


Author: lordhavoc
Date: 2007-05-22 05:20:24 -0400 (Tue, 22 May 2007)
New Revision: 2653

Modified:
   trunk/data/qcsrc/server/extensions.qh
   trunk/data/qcsrc/server/g_hook.qc
   trunk/data/qcsrc/server/miscfunctions.qc
   trunk/data/qcsrc/server/w_crylink.qc
   trunk/data/qcsrc/server/w_electro.qc
   trunk/data/qcsrc/server/w_grenadelauncher.qc
   trunk/data/qcsrc/server/w_hagar.qc
   trunk/data/qcsrc/server/w_laser.qc
   trunk/data/qcsrc/server/w_nex.qc
   trunk/data/qcsrc/server/w_rocketlauncher.qc
   trunk/data/qcsrc/server/w_shotgun.qc
   trunk/data/qcsrc/server/w_uzi.qc
Log:
fix W_SetupShot calls to not have any start points outside player box,
even at odd angles


Modified: trunk/data/qcsrc/server/extensions.qh
===================================================================
--- trunk/data/qcsrc/server/extensions.qh	2007-05-22 07:55:28 UTC (rev 2652)
+++ trunk/data/qcsrc/server/extensions.qh	2007-05-22 09:20:24 UTC (rev 2653)
@@ -1000,6 +1000,18 @@
 //description:
 //.movement vector contains the movement input from the player, allowing QC to do as it wishs with the input, and SV_PlayerPhysics will completely replace the player physics if present (works for all MOVETYPE's), see darkplaces mod source for example of this function (in playermovement.qc, adds HalfLife ladders support, as well as acceleration/deceleration while airborn (rather than the quake sudden-stop while airborn), and simplifies the physics a bit)
 
+//DP_SV_POINTPARTICLES
+//idea: Spike
+//darkplaces implementation: LordHavoc
+//function definitions:
+float(string effectname) particleeffectnum = #335; // same as in CSQC
+void(entity ent, float effectnum, vector start, vector end) trailparticles = #336; // same as in CSQC
+void(float effectnum, vector org, vector vel, float howmany) pointparticles = #337; // same as in CSQC
+//description:
+//provides the ability to spawn non-standard particle effects, typically these are defined in a particle effect information file such as effectinfo.txt in darkplaces.
+//this is a port of particle effect features from clientside QC (EXT_CSQC) to server QC, as these effects are potentially useful to all games even if they do not make use of EXT_CSQC.
+//warning: server must have same order of effects in effectinfo.txt as client does or the numbers would not match up, except for standard quake effects which are always the same numbers.
+
 //DP_SV_PRINT
 //idea: id Software (QuakeWorld Server)
 //darkplaces implementation: Black, LordHavoc

Modified: trunk/data/qcsrc/server/g_hook.qc
===================================================================
--- trunk/data/qcsrc/server/g_hook.qc	2007-05-22 07:55:28 UTC (rev 2652)
+++ trunk/data/qcsrc/server/g_hook.qc	2007-05-22 09:20:24 UTC (rev 2653)
@@ -215,7 +215,7 @@
 	makevectors(self.v_angle);
 
 	sound (self, CHAN_WEAPON, "weapons/hook_fire.wav", 1, ATTN_NORM);
-	org = self.origin + self.view_ofs + v_forward * 15 - v_right * 5 + v_up * -12;
+	org = self.origin + self.view_ofs + v_forward * 8 - v_right * 8 + '0 0 -12';
 	te_customflash(org, 160, 0.2, '1 0 0');
 
 	missile = spawn ();

Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc	2007-05-22 07:55:28 UTC (rev 2652)
+++ trunk/data/qcsrc/server/miscfunctions.qc	2007-05-22 09:20:24 UTC (rev 2653)
@@ -678,6 +678,16 @@
 		return p.netname;
 }
 
+vector(vector m1, vector m2) randompos =
+{
+	local vector v;
+	m2 = m2 - m1;
+	v_x = m2_x * random() + m1_x;
+	v_y = m2_y * random() + m1_y;
+	v_z = m2_z * random() + m1_z;
+	return  v;
+};
+
 // requires that m2>m1 in all coordinates, and that m4>m3
 float(vector m1, vector m2, vector m3, vector m4) boxesoverlap = {return m2_x >= m3_x && m1_x <= m4_x && m2_y >= m3_y && m1_y <= m4_y && m2_z >= m3_z && m1_z <= m4_z;};
 
@@ -877,3 +887,13 @@
 {
 	stuffcmd(e, strcat("play2 ", filename, "\n"));
 }
+
+void play2team(float t, string filename)
+{
+	local entity head;
+	FOR_EACH_REALPLAYER(head)
+	{
+		if (head.team == t)
+			play2(head, filename);
+	}
+}

Modified: trunk/data/qcsrc/server/w_crylink.qc
===================================================================
--- trunk/data/qcsrc/server/w_crylink.qc	2007-05-22 07:55:28 UTC (rev 2652)
+++ trunk/data/qcsrc/server/w_crylink.qc	2007-05-22 09:20:24 UTC (rev 2653)
@@ -75,7 +75,7 @@
 	if (cvar("g_use_ammunition"))
 		self.ammo_cells = self.ammo_cells - cvar("g_balance_crylink_primary_ammo");
 
-	W_SetupShot (self, '15 8 -8', FALSE, 2, "weapons/crylink_fire.wav");
+	W_SetupShot (self, '11 8 -8', FALSE, 2, "weapons/crylink_fire.wav");
 	te_smallflash(w_shotorg);
 
 	shots = cvar("g_balance_crylink_primary_shots");
@@ -120,7 +120,7 @@
 	if (cvar("g_use_ammunition"))
 		self.ammo_cells = self.ammo_cells - cvar("g_balance_crylink_secondary_ammo");
 
-	W_SetupShot (self, '15 8 -8', FALSE, 2, "weapons/crylink_fire.wav");
+	W_SetupShot (self, '11 8 -8', FALSE, 2, "weapons/crylink_fire.wav");
 	te_smallflash(w_shotorg);
 
 	shots = cvar("g_balance_crylink_secondary_shots");
@@ -164,8 +164,7 @@
 {
 	if (cvar("g_use_ammunition"))
 		self.ammo_cells = self.ammo_cells - cvar("g_balance_crylink_primary_ammo");
-	//W_SetupShot(self, '10 5 -14', TRUE, 0, "weapons/crylink_fire.wav");
-	W_SetupShot (self, '15 7 -8', TRUE, 0, "weapons/crylink_fire.wav");
+	W_SetupShot (self, '11 8 -8', TRUE, 0, "weapons/crylink_fire.wav");
 
 	// use traceline_hitcorpse to make sure it can hit gibs and corpses too
 	traceline_hitcorpse(self, w_shotorg, w_shotorg + w_shotdir * 1000, FALSE, self);

Modified: trunk/data/qcsrc/server/w_electro.qc
===================================================================
--- trunk/data/qcsrc/server/w_electro.qc	2007-05-22 07:55:28 UTC (rev 2652)
+++ trunk/data/qcsrc/server/w_electro.qc	2007-05-22 09:20:24 UTC (rev 2653)
@@ -86,7 +86,7 @@
 {
 	local entity proj;
 
-	W_SetupShot (self, '15 8 -8', FALSE, 2, "weapons/electro_fire.wav");
+	W_SetupShot (self, '11 8 -8', FALSE, 2, "weapons/electro_fire.wav");
 
 	proj = spawn ();
 	proj.classname = "plasma_prim";
@@ -118,7 +118,7 @@
 {
 	local entity proj;
 
-	W_SetupShot (self, '15 8 -8', FALSE, 2, "weapons/electro_fire2.wav");
+	W_SetupShot (self, '11 8 -8', FALSE, 2, "weapons/electro_fire2.wav");
 
 	proj = spawn ();
 	proj.classname = "plasma";

Modified: trunk/data/qcsrc/server/w_grenadelauncher.qc
===================================================================
--- trunk/data/qcsrc/server/w_grenadelauncher.qc	2007-05-22 07:55:28 UTC (rev 2652)
+++ trunk/data/qcsrc/server/w_grenadelauncher.qc	2007-05-22 09:20:24 UTC (rev 2653)
@@ -81,7 +81,7 @@
 
 	if (cvar("g_use_ammunition"))
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_grenadelauncher_primary_ammo");
-	W_SetupShot (self, '15 8 -8', FALSE, 4, "weapons/grenade_fire.wav");
+	W_SetupShot (self, '11 8 -8', FALSE, 4, "weapons/grenade_fire.wav");
 
 	gren = spawn ();
 	gren.owner = self;
@@ -112,7 +112,7 @@
 
 	if (cvar("g_use_ammunition"))
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_grenadelauncher_secondary_ammo");
-	W_SetupShot (self, '15 8 -8', FALSE, 4, "weapons/grenade_fire.wav");
+	W_SetupShot (self, '11 8 -8', FALSE, 4, "weapons/grenade_fire.wav");
 
 	gren = spawn ();
 	gren.owner = self;

Modified: trunk/data/qcsrc/server/w_hagar.qc
===================================================================
--- trunk/data/qcsrc/server/w_hagar.qc	2007-05-22 07:55:28 UTC (rev 2652)
+++ trunk/data/qcsrc/server/w_hagar.qc	2007-05-22 09:20:24 UTC (rev 2653)
@@ -81,7 +81,7 @@
 
 	if (cvar("g_use_ammunition"))
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_hagar_primary_ammo");
-	W_SetupShot (self, '15 5 -8', FALSE, 2, "weapons/hagar_fire.wav");
+	W_SetupShot (self, '11 5 -8', FALSE, 2, "weapons/hagar_fire.wav");
 
 	missile = spawn ();
 	missile.owner = self;
@@ -116,7 +116,7 @@
 
 	if (cvar("g_use_ammunition"))
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_hagar_secondary_ammo");
-	W_SetupShot (self, '15 5 -8', FALSE, 2, "weapons/hagar_fire.wav");
+	W_SetupShot (self, '11 5 -8', FALSE, 2, "weapons/hagar_fire.wav");
 
 	missile = spawn ();
 	missile.owner = self;

Modified: trunk/data/qcsrc/server/w_laser.qc
===================================================================
--- trunk/data/qcsrc/server/w_laser.qc	2007-05-22 07:55:28 UTC (rev 2652)
+++ trunk/data/qcsrc/server/w_laser.qc	2007-05-22 09:20:24 UTC (rev 2653)
@@ -34,7 +34,7 @@
 {
 	local entity missile;
 
-	W_SetupShot (self, '15 8 -8', FALSE, 3, "weapons/lasergun_fire.wav");
+	W_SetupShot (self, '11 8 -8', FALSE, 3, "weapons/lasergun_fire.wav");
 	//te_customflash(w_shotorg, 160, 0.2, '1 0 0');
 
 	missile = spawn ();

Modified: trunk/data/qcsrc/server/w_nex.qc
===================================================================
--- trunk/data/qcsrc/server/w_nex.qc	2007-05-22 07:55:28 UTC (rev 2652)
+++ trunk/data/qcsrc/server/w_nex.qc	2007-05-22 09:20:24 UTC (rev 2653)
@@ -2,7 +2,7 @@
 void W_Nex_Attack (void)
 {
 	//w_shotorg = self.origin + self.view_ofs + v_forward * 5 + v_right * 14 + v_up * -7;
-	W_SetupShot(self, '5 14 -8', TRUE, 5, "weapons/nexfire.wav");
+	W_SetupShot (self, '5 14 -8', TRUE, 5, "weapons/nexfire.wav");
 
 	// assure that nexdamage is high enough in minstagib
 	if (cvar("g_minstagib"))

Modified: trunk/data/qcsrc/server/w_rocketlauncher.qc
===================================================================
--- trunk/data/qcsrc/server/w_rocketlauncher.qc	2007-05-22 07:55:28 UTC (rev 2652)
+++ trunk/data/qcsrc/server/w_rocketlauncher.qc	2007-05-22 09:20:24 UTC (rev 2653)
@@ -204,7 +204,7 @@
 	if (cvar("g_use_ammunition") && !cvar("g_rocketarena"))
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_rocketlauncher_ammo");
 
-	W_SetupShot (self, '15 3 -8', FALSE, 5, "weapons/rocket_fire.wav");
+	W_SetupShot (self, '8 3 -8', FALSE, 5, "weapons/rocket_fire.wav");
 	te_smallflash(w_shotorg);
 
 	missile = spawn ();
@@ -222,7 +222,7 @@
 	missile.movetype = MOVETYPE_FLY;
 	missile.solid = SOLID_BBOX;
 	setmodel (missile, "models/rocket.md3"); // precision set below
-	setsize (missile, '0 0 0', '0 0 0');
+	setsize (missile, '-3 -3 -3', '3 3 3'); // give it some size so it can be shot
 
 	setorigin (missile, w_shotorg);
 	if(cvar("g_laserguided_missile") && self.laser_on)

Modified: trunk/data/qcsrc/server/w_shotgun.qc
===================================================================
--- trunk/data/qcsrc/server/w_shotgun.qc	2007-05-22 07:55:28 UTC (rev 2652)
+++ trunk/data/qcsrc/server/w_shotgun.qc	2007-05-22 09:20:24 UTC (rev 2653)
@@ -12,7 +12,7 @@
 	f = cvar("g_balance_shotgun_primary_force");
 	spread = cvar("g_balance_shotgun_primary_spread");
 
-	W_SetupShot (self, '15 8 -8', TRUE, 5, "weapons/shotgun_fire.wav");
+	W_SetupShot (self, '11 8 -8', TRUE, 5, "weapons/shotgun_fire.wav");
 	for (sc = 0;sc < bullets;sc = sc + 1)
 		fireBullet (w_shotorg, w_shotdir, spread, d, f, IT_SHOTGUN, sc < 3);
 	if (cvar("g_use_ammunition"))
@@ -39,7 +39,7 @@
 	f = cvar("g_balance_shotgun_secondary_force");
 	spread = cvar("g_balance_shotgun_secondary_spread");
 
-	W_SetupShot (self, '15 8 -8', TRUE, 5, "weapons/shotgun_fire.wav");
+	W_SetupShot (self, '11 8 -8', TRUE, 5, "weapons/shotgun_fire.wav");
 	for (sc = 0;sc < bullets;sc = sc + 1)
 		fireBullet (w_shotorg, w_shotdir, spread, d, f, IT_SHOTGUN, sc < 3);
 	if (cvar("g_use_ammunition"))

Modified: trunk/data/qcsrc/server/w_uzi.qc
===================================================================
--- trunk/data/qcsrc/server/w_uzi.qc	2007-05-22 07:55:28 UTC (rev 2652)
+++ trunk/data/qcsrc/server/w_uzi.qc	2007-05-22 09:20:24 UTC (rev 2653)
@@ -10,7 +10,7 @@
 		else
 			self.ammo_nails = self.ammo_nails - cvar("g_balance_uzi_sustained_ammo");
 	}
-	W_SetupShot (self, '15 5.5 -8', TRUE, 0, "weapons/uzi_fire.wav");
+	W_SetupShot (self, '11 5.5 -8', TRUE, 0, "weapons/uzi_fire.wav");
 	if (!cvar("g_norecoil"))
 	{
 		self.punchangle_x = random () - 0.5;




More information about the nexuiz-commits mailing list