r4754 - in trunk/data: . qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Tue Oct 14 14:45:40 EDT 2008


Author: div0
Date: 2008-10-14 14:45:40 -0400 (Tue, 14 Oct 2008)
New Revision: 4754

Modified:
   trunk/data/defaultNexuiz.cfg
   trunk/data/qcsrc/server/antilag.qc
   trunk/data/qcsrc/server/antilag.qh
   trunk/data/qcsrc/server/cl_weaponsystem.qc
   trunk/data/qcsrc/server/g_damage.qc
   trunk/data/qcsrc/server/w_common.qc
Log:
fix antilag 2


Modified: trunk/data/defaultNexuiz.cfg
===================================================================
--- trunk/data/defaultNexuiz.cfg	2008-10-14 17:56:21 UTC (rev 4753)
+++ trunk/data/defaultNexuiz.cfg	2008-10-14 18:45:40 UTC (rev 4754)
@@ -268,7 +268,7 @@
 
 locs_enable 0
 pausable 0
-set g_antilag 1
+set g_antilag 2 // 1: client side hitscan, 2: history trace
 set g_shootfromeye 0
 set g_shootfromcenter 0
 set g_weapon_stay 0

Modified: trunk/data/qcsrc/server/antilag.qc
===================================================================
--- trunk/data/qcsrc/server/antilag.qc	2008-10-14 17:56:21 UTC (rev 4753)
+++ trunk/data/qcsrc/server/antilag.qc	2008-10-14 18:45:40 UTC (rev 4754)
@@ -1,4 +1,4 @@
-#define ANTILAG_MAX_ORIGINS 32
+#define ANTILAG_MAX_ORIGINS 16
 .vector antilag_origins[ANTILAG_MAX_ORIGINS];
 .float antilag_times[ANTILAG_MAX_ORIGINS];
 .float antilag_index;

Modified: trunk/data/qcsrc/server/antilag.qh
===================================================================
--- trunk/data/qcsrc/server/antilag.qh	2008-10-14 17:56:21 UTC (rev 4753)
+++ trunk/data/qcsrc/server/antilag.qh	2008-10-14 18:45:40 UTC (rev 4754)
@@ -3,3 +3,6 @@
 vector antilag_takebackorigin(entity e, float t);
 void antilag_takeback(entity e, float t);
 void antilag_restore(entity e);
+
+#define ANTILAG_LATENCY(e) min(0.4, e.ping * 0.001)
+// add one ticrate?

Modified: trunk/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weaponsystem.qc	2008-10-14 17:56:21 UTC (rev 4753)
+++ trunk/data/qcsrc/server/cl_weaponsystem.qc	2008-10-14 18:45:40 UTC (rev 4754)
@@ -79,7 +79,7 @@
 				if(self.antilag_debug)
 					antilag_takeback(self.cursor_trace_ent, time - self.antilag_debug);
 				else
-					antilag_takeback(self.cursor_trace_ent, time - self.ping * 0.001);
+					antilag_takeback(self.cursor_trace_ent, time - ANTILAG_LATENCY(self));
 
 				traceline(self.origin + self.view_ofs, self.origin + self.view_ofs + v_forward * MAX_SHOT_DISTANCE, MOVE_NORMAL, self);
 				antilag_restore(self.cursor_trace_ent);
@@ -100,8 +100,8 @@
 				{
 					vector v, vplus, vel;
 					float X;
-					v     = antilag_takebackorigin(self.cursor_trace_ent, time - (self.ping * 0.001       ));
-					vplus = antilag_takebackorigin(self.cursor_trace_ent, time - (self.ping * 0.001 + 0.01));
+					v     = antilag_takebackorigin(self.cursor_trace_ent, time - (ANTILAG_LATENCY(self)       ));
+					vplus = antilag_takebackorigin(self.cursor_trace_ent, time - (ANTILAG_LATENCY(self) + 0.01));
 					vel = (vplus - v) * (1 / 0.01);
 					// solve: v + X * vel = closest to self.origin + self.view_ofs, v_forward axis
 					v     -= (self.origin + self.view_ofs);
@@ -113,7 +113,7 @@
 					// (v + X * vel)^2 closest to 0
 					// v^2 + 2 * X * (v * vel) + X^2 * vel^2 closest to 0
 					X = -(v * vel) / (vel * vel);
-					dprint("dead center needs adjustment of ", ftos(X * 1000), " (that is, ", ftos(self.ping + X * 1000), " instead of ", ftos(self.ping), "\n");
+					dprint("dead center needs adjustment of ", ftos(X), " (that is, ", ftos(ANTILAG_LATENCY(self) + X), " instead of ", ftos(ANTILAG_LATENCY(self)), "\n");
 				}
 			}
 		}

Modified: trunk/data/qcsrc/server/g_damage.qc
===================================================================
--- trunk/data/qcsrc/server/g_damage.qc	2008-10-14 17:56:21 UTC (rev 4753)
+++ trunk/data/qcsrc/server/g_damage.qc	2008-10-14 18:45:40 UTC (rev 4754)
@@ -695,7 +695,7 @@
 			// find height of hit on player axis
 			// if above view_ofs and below maxs, and also in the middle half of the bbox, it is head shot
 			vector headmins, headmaxs, org;
-			org = antilag_takebackorigin(targ, time - (self.ping * 0.001));
+			org = antilag_takebackorigin(targ, time - ANTILAG_LATENCY(attacker));
 			headmins = org + '0.5 0 0' * targ.mins_x + '0 0.5 0' * targ.mins_y + '0 0 1' * targ.view_ofs_z;
 			headmaxs = org + '0.5 0 0' * targ.maxs_x + '0 0.5 0' * targ.maxs_y + '0 0 1' * targ.maxs_z;
 			if(trace_hits_box(railgun_start, railgun_end, headmins, headmaxs))

Modified: trunk/data/qcsrc/server/w_common.qc
===================================================================
--- trunk/data/qcsrc/server/w_common.qc	2008-10-14 17:56:21 UTC (rev 4753)
+++ trunk/data/qcsrc/server/w_common.qc	2008-10-14 18:45:40 UTC (rev 4754)
@@ -46,7 +46,7 @@
 		if(self.antilag_debug)
 			traceline_antilag (self, start, end, FALSE, self, self.antilag_debug);
 		else
-			traceline_antilag (self, start, end, FALSE, self, self.ping * 0.001);
+			traceline_antilag (self, start, end, FALSE, self, ANTILAG_LATENCY(self));
 
 		// if it is world we can't hurt it so stop now
 		if (trace_ent == world || trace_fraction == 1)
@@ -121,7 +121,7 @@
 	if(self.antilag_debug)
 		traceline_antilag (self, start, end, FALSE, self, self.antilag_debug);
 	else
-		traceline_antilag (self, start, end, FALSE, self, self.ping * 0.001);
+		traceline_antilag (self, start, end, FALSE, self, ANTILAG_LATENCY(self));
 
 	if (tracer)
 	{




More information about the nexuiz-commits mailing list