r1895 - branches/nexuiz-2.0/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sat Oct 14 12:59:46 EDT 2006
Author: div0
Date: 2006-10-14 12:59:46 -0400 (Sat, 14 Oct 2006)
New Revision: 1895
Modified:
branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc
branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc
Log:
- slow armor increase fix
- frag redistribution on forced team change
Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc 2006-09-21 20:02:59 UTC (rev 1894)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc 2006-10-14 16:59:46 UTC (rev 1895)
@@ -1126,6 +1126,16 @@
self.effects = self.effects | (EF_ADDITIVE | EF_FULLBRIGHT);
}
+float CalcRegen(float current, float stable, float maxv, float regenfactor)
+{
+ if(current > stable)
+ return current;
+ else if(current > stable - 0.25) // when close enough, "snap"
+ return stable;
+ else
+ return bound(0, current + (stable - current) * regenfactor * frametime, maxv);
+}
+
void player_regen (void)
{
float maxh, maxa, limith, limita, max_mod, regen_mod, rot_mod, limit_mod;
@@ -1181,10 +1191,8 @@
}
if (time > self.pauseregen_finished)
{
- if (self.health < maxh)
- self.health = bound(0, self.health + (maxh- self.health) * regen_mod*cvar("g_balance_health_regen") * frametime + 0.001, 1000);
- if (self.armorvalue < maxa)
- self.armorvalue = bound(0, self.armorvalue + (maxa - self.armorvalue) * cvar("g_balance_armor_regen") * frametime + 0.001, 1000);
+ self.health = CalcRegen(self.health, maxh, 1000, regen_mod * cvar("g_balance_health_regen"));
+ self.armorvalue = CalcRegen(self.armorvalue, maxa, 1000, cvar("g_balance_armor_regen"));
}
}
else
@@ -1197,10 +1205,8 @@
self.armorvalue = bound(0, self.armorvalue + (maxa - self.armorvalue) * cvar("g_balance_armor_rot") * frametime, 1000);
if (time > self.pauseregen_finished)
{
- if (self.health < maxh)
- self.health = bound(0, self.health + (maxh - self.health) * cvar("g_balance_health_regen") * frametime + 0.001, 1000);
- if (self.armorvalue < maxa)
- self.armorvalue = bound(0, self.armorvalue + (maxa - self.armorvalue) * cvar("g_balance_armor_regen") * frametime + 0.001, 1000);
+ self.health = CalcRegen(self.health, maxh, 1000, cvar("g_balance_health_regen"));
+ self.armorvalue = CalcRegen(self.armorvalue, maxa, 1000, cvar("g_balance_armor_regen"));
}
}
Modified: branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc 2006-09-21 20:02:59 UTC (rev 1894)
+++ branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc 2006-10-14 16:59:46 UTC (rev 1895)
@@ -1057,6 +1057,7 @@
}
// move the player to the new team
+ TeamchangeFrags(selected);
SetPlayerTeam(selected, smallestteam, source_team, FALSE);
if(selected.deadflag == DEAD_NO)
More information about the nexuiz-commits
mailing list