r5097 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Tue Nov 25 12:33:44 EST 2008


Author: div0
Date: 2008-11-25 12:33:43 -0500 (Tue, 25 Nov 2008)
New Revision: 5097

Modified:
   trunk/data/qcsrc/server/cl_physics.qc
   trunk/data/qcsrc/server/cl_player.qc
Log:
comments in cl_physics.qc
handicap: apply handicap both to dealt and to received damage, but only square rooted. So a player with handicap 4 deals 0.5x damage, and receives 2x, making him 4x weaker in comparison.


Modified: trunk/data/qcsrc/server/cl_physics.qc
===================================================================
--- trunk/data/qcsrc/server/cl_physics.qc	2008-11-25 14:15:18 UTC (rev 5096)
+++ trunk/data/qcsrc/server/cl_physics.qc	2008-11-25 17:33:43 UTC (rev 5097)
@@ -175,6 +175,7 @@
 
 		// responsiveness factor for steering and acceleration
 		f = 1 / (1 + pow(max(-myspeed, myspeed) / g_bugrigs_speed_ref, g_bugrigs_speed_pow));
+		//MAXIMA: f(v) := 1 / (1 + (v / g_bugrigs_speed_ref) ^ g_bugrigs_speed_pow);
 
 		if(myspeed < 0 && g_bugrigs_reverse_spinning)
 			steerfactor = -myspeed * g_bugrigs_steer;
@@ -185,6 +186,7 @@
 			accelfactor = g_bugrigs_accel;
 		else
 			accelfactor = f * g_bugrigs_accel;
+		//MAXIMA: accel(v) := f(v) * g_bugrigs_accel;
 
 		if(accel < 0)
 		{
@@ -213,6 +215,7 @@
 			}
 		}
 		// terminal velocity = velocity at which 50 == accelfactor, that is, 1549 units/sec
+		//MAXIMA: friction(v) := g_bugrigs_friction_floor;
 
 		self.angles_y += steer * frametime * steerfactor; // apply steering
 		makevectors(self.angles); // new forward direction!
@@ -235,6 +238,9 @@
 	}
 
 	rigvel = rigvel * max(0, 1 - vlen(rigvel) * g_bugrigs_friction_air * frametime);
+	//MAXIMA: airfriction(v) := v * v * g_bugrigs_friction_air;
+	//MAXIMA: total_acceleration(v) := accel(v) - friction(v) - airfriction(v);
+	//MAXIMA: solve(total_acceleration(v) = 0, v);
 
 	if(g_bugrigs_planar_movement)
 	{

Modified: trunk/data/qcsrc/server/cl_player.qc
===================================================================
--- trunk/data/qcsrc/server/cl_player.qc	2008-11-25 14:15:18 UTC (rev 5096)
+++ trunk/data/qcsrc/server/cl_player.qc	2008-11-25 17:33:43 UTC (rev 5097)
@@ -364,7 +364,13 @@
 {
 	local float take, save, waves, sdelay;
 
-	damage = damage * bound(1.0, self.cvar_cl_handicap, 100.0);
+	if(!DEATH_ISSPECIAL(deathtype))
+	{
+		damage *= sqrt(bound(1.0, self.cvar_cl_handicap, 100.0));
+		if(self != attacker)
+			damage /= sqrt(bound(1.0, attacker.cvar_cl_handicap, 100.0));
+	}
+
 	if(sv_gentle > 0) {
 		pointparticles(particleeffectnum("damage_hit"), hitloc, force, bound(0, damage, 200));
 	} else {




More information about the nexuiz-commits mailing list