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