float speedaward_speed;
string speedaward_holder;
+string speedaward_uid;
void race_send_speedaward(float msg)
{
// send the best speed of the round
float speedaward_alltimebest;
string speedaward_alltimebest_holder;
+string speedaward_alltimebest_uid;
void race_send_speedaward_alltimebest(float msg)
{
// send the best speed
if(vlen(self.velocity - self.velocity_z * '0 0 1') > speedaward_speed) {
speedaward_speed = vlen(self.velocity - self.velocity_z * '0 0 1');
speedaward_holder = self.netname;
+ if(speedaward_uid)
+ strunzone(speedaward_uid);
+ speedaward_uid = strzone(self.crypto_idfp);
speedaward_lastupdate = time;
}
if(speedaward_speed > speedaward_lastsent && time - speedaward_lastupdate > 1) {
speedaward_alltimebest_holder = speedaward_holder;
db_put(ServerProgsDB, strcat(GetMapname(), rr, "speed/speed"), ftos(speedaward_alltimebest));
db_put(ServerProgsDB, strcat(GetMapname(), rr, "speed/netname"), speedaward_alltimebest_holder);
+ db_put(ServerProgsDB, strcat(GetMapname(), rr, "speed/crypto_idfp"), speedaward_alltimebest_holder);
race_send_speedaward_alltimebest(MSG_ALL);
}
}
}
- float f;
float xyspeed;
- f = cvar("g_balance_nex_velocitydependent_falloff_rate");
xyspeed = vlen('1 0 0' * self.velocity_x + '0 1 0' * self.velocity_y);
- if(xyspeed > self.nexspeed)
- self.nexspeed = min(xyspeed, cvar("g_balance_nex_velocitydependent_maxspeed"));
- else
- self.nexspeed = max(cvar("g_balance_nex_velocitydependent_minspeed"), self.nexspeed - f * frametime);
+ if(self.weapon == WEP_NEX && cvar("g_balance_nex_charge") && cvar("g_balance_nex_charge_velocity_rate") && xyspeed > cvar("g_balance_nex_charge_minspeed"))
+ {
+ // add a maximum of charge_velocity_rate when going fast (f = 1), gradually increasing from minspeed (f = 0) to maxspeed
+ xyspeed = min(xyspeed, cvar("g_balance_nex_charge_maxspeed"));
+ f = (xyspeed - cvar("g_balance_nex_charge_minspeed")) / (cvar("g_balance_nex_charge_maxspeed") - cvar("g_balance_nex_charge_minspeed"));
+ // add the extra charge
+ self.nex_charge = min(1, self.nex_charge + cvar("g_balance_nex_charge_velocity_rate") * f * frametime);
+ }
:end
if(self.flags & FL_ONGROUND)
self.lastground = time;