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