r3202 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sun Jan 20 17:36:37 EST 2008


Author: div0
Date: 2008-01-20 17:36:37 -0500 (Sun, 20 Jan 2008)
New Revision: 3202

Modified:
   trunk/data/qcsrc/server/cl_weaponsystem.qc
Log:
even more antilag debug code (developer 2)


Modified: trunk/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weaponsystem.qc	2008-01-20 21:39:44 UTC (rev 3201)
+++ trunk/data/qcsrc/server/cl_weaponsystem.qc	2008-01-20 22:36:37 UTC (rev 3202)
@@ -79,6 +79,26 @@
 				{
 					// prydon cursor aimbot or odd network conditions
 					dprint("WARNING: antilag ghost trace for ", self.netname, " failed!\n");
+					if(cvar("developer") >= 2)
+					{
+						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));
+						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);
+						// solve: v + X * vel = closest to v_forward axis
+						// project into 2D by subtracting v_forward components:
+						v   -= (v   * v_forward) * v_forward;
+						vel -= (vel * v_forward) * v_forward;
+						// solve: v + X * vel = closest to origin
+						// (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("... could have adjusted antilag by ", ftos(X), "\n");
+						dprint(" (that is, ", ftos(self.ping + X * 1000), " instead of ", ftos(self.ping), "\n");
+					}
 				}
 			}
 		}




More information about the nexuiz-commits mailing list