r5837 - in trunk/data: . qcsrc/client qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Wed Feb 11 10:32:12 EST 2009
Author: div0
Date: 2009-02-11 10:32:12 -0500 (Wed, 11 Feb 2009)
New Revision: 5837
Modified:
trunk/data/effectinfo.txt
trunk/data/qcsrc/client/particles.qc
trunk/data/qcsrc/client/projectile.qc
trunk/data/qcsrc/server/miscfunctions.qc
trunk/data/qcsrc/server/w_common.qc
Log:
add a somewhat working tr_bullet trail effect to make antilagged bullets visible
Modified: trunk/data/effectinfo.txt
===================================================================
--- trunk/data/effectinfo.txt 2009-02-11 15:09:13 UTC (rev 5836)
+++ trunk/data/effectinfo.txt 2009-02-11 15:32:12 UTC (rev 5837)
@@ -3152,4 +3152,12 @@
velocityjitter 256 256 256
-
+// bullet trail (somewhat like a tracer)
+effect tr_bullet
+trailspacing 16
+type spark
+color 0x800000 0xFF8020
+alpha 256 256 10240
+size 2 2
+stretchfactor 0.3
+velocitymultiplier 1
Modified: trunk/data/qcsrc/client/particles.qc
===================================================================
--- trunk/data/qcsrc/client/particles.qc 2009-02-11 15:09:13 UTC (rev 5836)
+++ trunk/data/qcsrc/client/particles.qc 2009-02-11 15:32:12 UTC (rev 5837)
@@ -190,7 +190,8 @@
self.draw = Draw_Snow;
}
-void zcurveparticles(float effectnum, vector start, vector end, float end_dz, float depth)
+entity zcurve;
+void zcurveparticles(float effectnum, vector start, vector end, float end_dz, float speed, float depth)
{
// end_dz:
// IF IT WERE A STRAIGHT LINE, it'd end end_dz above end
@@ -207,12 +208,13 @@
// currently: 0.081 degrees
// 0.99999 would be 0.256 degrees and is visible
{
- trailparticles(world, effectnum, start, end);
+ zcurve.velocity = speed * normalize(end - start);
+ trailparticles(zcurve, effectnum, start, end);
}
else
{
- zcurveparticles(effectnum, start, mid, end_dz, depth);
- zcurveparticles(effectnum, mid, end, end_dz, depth);
+ zcurveparticles(effectnum, start, mid, end_dz, speed, depth);
+ zcurveparticles(effectnum, mid, end, end_dz, speed, depth);
}
}
@@ -220,8 +222,14 @@
{
vector start, end;
float end_dz;
- float effectnum;
+ float effectnum, speed;
+ if(!zcurve)
+ {
+ zcurve = spawn();
+ zcurve.classname = "zcurve";
+ }
+
effectnum = ReadShort();
start_x = ReadCoord();
@@ -231,6 +239,7 @@
end_y = ReadCoord();
end_z = ReadCoord();
end_dz = ReadCoord();
+ speed = ReadShort() * 16;
- zcurveparticles(effectnum, start, end, end_dz, 5); // at most 32 segments
+ zcurveparticles(effectnum, start, end, end_dz, speed, 5); // at most 32 segments
}
Modified: trunk/data/qcsrc/client/projectile.qc
===================================================================
--- trunk/data/qcsrc/client/projectile.qc 2009-02-11 15:09:13 UTC (rev 5836)
+++ trunk/data/qcsrc/client/projectile.qc 2009-02-11 15:32:12 UTC (rev 5837)
@@ -59,6 +59,10 @@
case PROJECTILE_HAGAR_BOUNCING:
trailparticles(self, particleeffectnum("TR_GRENADE"), from, to);
break;
+ case PROJECTILE_BULLET:
+ case PROJECTILE_BULLET_GLOWING:
+ trailparticles(self, particleeffectnum("tr_bullet"), from, to);
+ break;
default:
break;
}
Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc 2009-02-11 15:09:13 UTC (rev 5836)
+++ trunk/data/qcsrc/server/miscfunctions.qc 2009-02-11 15:32:12 UTC (rev 5837)
@@ -1968,7 +1968,7 @@
return FALSE;
}
-void zcurveparticles(float effectno, vector start, vector end, float end_dz)
+void zcurveparticles(float effectno, vector start, vector end, float end_dz, float spd)
{
WriteByte(MSG_BROADCAST, SVC_TEMPENTITY);
WriteByte(MSG_BROADCAST, TE_CSQC_ZCURVEPARTICLES);
@@ -1980,6 +1980,7 @@
WriteCoord(MSG_BROADCAST, end_y);
WriteCoord(MSG_BROADCAST, end_z);
WriteCoord(MSG_BROADCAST, end_dz);
+ WriteShort(MSG_BROADCAST, spd / 16);
}
void zcurveparticles_from_tracetoss(float effectno, vector start, vector end, vector vel)
@@ -1997,5 +1998,5 @@
}
end_dz = vlen(vecxy) / vlen(velxy) * vel_z - (end_z - start_z);
- zcurveparticles(effectno, start, end, end_dz);
+ zcurveparticles(effectno, start, end, end_dz, vlen(vel));
}
Modified: trunk/data/qcsrc/server/w_common.qc
===================================================================
--- trunk/data/qcsrc/server/w_common.qc 2009-02-11 15:09:13 UTC (rev 5836)
+++ trunk/data/qcsrc/server/w_common.qc 2009-02-11 15:32:12 UTC (rev 5837)
@@ -333,7 +333,7 @@
self.velocity = v0;
self.gravity = g0;
- zcurveparticles_from_tracetoss(particleeffectnum("TR_VORESPIKE"), self.origin, trace_endpos, self.velocity);
+ zcurveparticles_from_tracetoss(particleeffectnum("tr_bullet"), self.origin, trace_endpos, self.velocity);
if(trace_fraction == 1)
break;
// won't hit anything anytime soon (DP's
More information about the nexuiz-commits
mailing list