[nexuiz-commits] r8128 - in trunk/data/qcsrc: client common server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Wed Oct 14 06:40:09 EDT 2009
Author: fruitiex
Date: 2009-10-14 06:40:08 -0400 (Wed, 14 Oct 2009)
New Revision: 8128
Modified:
trunk/data/qcsrc/client/Defs.qc
trunk/data/qcsrc/client/Main.qc
trunk/data/qcsrc/client/sbar.qc
trunk/data/qcsrc/common/constants.qh
trunk/data/qcsrc/server/cl_client.qc
trunk/data/qcsrc/server/cl_physics.qc
trunk/data/qcsrc/server/constants.qh
trunk/data/qcsrc/server/race.qc
Log:
Fix the race server best and speed award by sending to all clients when neccessary, and add a all time fastest speed award
Modified: trunk/data/qcsrc/client/Defs.qc
===================================================================
--- trunk/data/qcsrc/client/Defs.qc 2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/client/Defs.qc 2009-10-14 10:40:08 UTC (rev 8128)
@@ -193,8 +193,10 @@
float race_penaltytime; // duration of penalty time, in tenths
string race_penaltyreason; // reason for penalty
float race_server_record; // server record
-float race_speed_award;
-string race_speed_award_holder;
+float race_speedaward;
+string race_speedaward_holder;
+float race_speedaward_alltimebest;
+string race_speedaward_alltimebest_holder;
// RACE
float race_mycheckpoint;
Modified: trunk/data/qcsrc/client/Main.qc
===================================================================
--- trunk/data/qcsrc/client/Main.qc 2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/client/Main.qc 2009-10-14 10:40:08 UTC (rev 8128)
@@ -1032,9 +1032,13 @@
race_server_record = ReadInt24_t();
break;
case RACE_NET_SPEED_AWARD:
- race_speed_award = ReadShort();
- race_speed_award_holder = strzone(ReadString());
+ race_speedaward = ReadShort();
+ race_speedaward_holder = strzone(ReadString());
break;
+ case RACE_NET_SPEED_AWARD_BEST:
+ race_speedaward_alltimebest = ReadShort();
+ race_speedaward_alltimebest_holder = strzone(ReadString());
+ break;
}
}
Modified: trunk/data/qcsrc/client/sbar.qc
===================================================================
--- trunk/data/qcsrc/client/sbar.qc 2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/client/sbar.qc 2009-10-14 10:40:08 UTC (rev 8128)
@@ -1211,9 +1211,15 @@
}
}
- if(gametype == GAME_CTS && race_speed_award) {
- drawcolorcodedstring(pos, strcat("Speed award: ", ftos(race_speed_award), " (", race_speed_award_holder, ")"), sbar_fontsize, sbar_scoreboard_alpha_fg, DRAWFLAG_NORMAL);
- pos_y += 1.25 * sbar_fontsize_y;
+ if(gametype == GAME_CTS || gametype == GAME_RACE) {
+ if(race_speedaward) {
+ drawcolorcodedstring(pos, strcat("Speed award: ", ftos(race_speedaward), " (", race_speedaward_holder, ")"), sbar_fontsize, sbar_scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+ pos_y += 1.25 * sbar_fontsize_y;
+ }
+ if(race_speedaward_alltimebest) {
+ drawcolorcodedstring(pos, strcat("All-time fastest: ", ftos(race_speedaward_alltimebest), " (", race_speedaward_alltimebest_holder, ")"), sbar_fontsize, sbar_scoreboard_alpha_fg, DRAWFLAG_NORMAL);
+ pos_y += 1.25 * sbar_fontsize_y;
+ }
}
tmp = pos + '0 1.5 0' * sbar_fontsize_y;
Modified: trunk/data/qcsrc/common/constants.qh
===================================================================
--- trunk/data/qcsrc/common/constants.qh 2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/common/constants.qh 2009-10-14 10:40:08 UTC (rev 8128)
@@ -61,6 +61,7 @@
const float RACE_NET_PENALTY_QUALIFYING = 7; // byte penaltytime, string reason
const float RACE_NET_SERVER_RECORD = 8; // server record, sent to client
const float RACE_NET_SPEED_AWARD = 9; // speed award, sent to client
+const float RACE_NET_SPEED_AWARD_BEST = 10; // all time best speed award, sent to client
const float ENT_CLIENT = 0;
const float ENT_CLIENT_DEAD = 1;
Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc 2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/server/cl_client.qc 2009-10-14 10:40:08 UTC (rev 8128)
@@ -1,4 +1,4 @@
-void race_send_recordtime(float t);
+void race_send_recordtime(float t, float msg);
float ClientData_Send(entity to, float sf)
{
@@ -1465,9 +1465,12 @@
rr = RACE_RECORD;
t = stof(db_get(ServerProgsDB, strcat(GetMapname(), rr, "time")));
- race_send_recordtime(t);
- if (g_cts)
- race_send_speedaward();
+ race_send_recordtime(t, MSG_ONE);
+ race_send_speedaward(MSG_ONE);
+
+ speedaward_alltimebest = stof(db_get(ServerProgsDB, strcat(GetMapname(), "bestspeed")));
+ speedaward_alltimebest_holder = db_get(ServerProgsDB, strcat(GetMapname(), "bestspeed_holder"));
+ race_send_speedaward_alltimebest(MSG_ONE);
}
}
Modified: trunk/data/qcsrc/server/cl_physics.qc
===================================================================
--- trunk/data/qcsrc/server/cl_physics.qc 2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/server/cl_physics.qc 2009-10-14 10:40:08 UTC (rev 8128)
@@ -514,18 +514,29 @@
float speedaward_speed;
string speedaward_holder;
-void race_send_speedaward()
+void race_send_speedaward(float msg)
{
// send the best speed of the round
- WRITESPECTATABLE_MSG_ONE({
- WriteByte(MSG_ONE, SVC_TEMPENTITY);
- WriteByte(MSG_ONE, TE_CSQC_RACE);
- WriteByte(MSG_ONE, RACE_NET_SPEED_AWARD);
- WriteShort(MSG_ONE, floor(speedaward_speed+0.5));
- WriteString(MSG_ONE, speedaward_holder);
-});
+ WriteByte(msg, SVC_TEMPENTITY);
+ WriteByte(msg, TE_CSQC_RACE);
+ WriteByte(msg, RACE_NET_SPEED_AWARD);
+ WriteShort(msg, floor(speedaward_speed+0.5));
+ WriteString(msg, speedaward_holder);
}
+float speedaward_alltimebest;
+string speedaward_alltimebest_holder;
+void race_send_speedaward_alltimebest(float msg)
+{
+ // send the best speed
+ WriteByte(msg, SVC_TEMPENTITY);
+ WriteByte(msg, TE_CSQC_RACE);
+ WriteByte(msg, RACE_NET_SPEED_AWARD_BEST);
+ WriteShort(msg, floor(speedaward_alltimebest+0.5));
+ WriteString(msg, speedaward_alltimebest_holder);
+}
+
+string GetMapname(void);
float speedaward_lastupdate;
float speedaward_lastsent;
void SV_PlayerPhysics()
@@ -1173,15 +1184,22 @@
}
}
- if(g_cts && self.classname != "observer") {
+ if((g_cts || g_race) && self.classname != "observer") {
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;
speedaward_lastupdate = time;
}
if(speedaward_speed > speedaward_lastsent && time - speedaward_lastupdate > 1) {
- race_send_speedaward();
+ race_send_speedaward(MSG_ALL);
speedaward_lastsent = speedaward_speed;
+ if (speedaward_speed > speedaward_alltimebest) {
+ speedaward_alltimebest = speedaward_speed;
+ speedaward_alltimebest_holder = speedaward_holder;
+ db_put(ServerProgsDB, strcat(GetMapname(), "bestspeed"), ftos(speedaward_alltimebest));
+ db_put(ServerProgsDB, strcat(GetMapname(), "bestspeed_holder"), speedaward_alltimebest_holder);
+ race_send_speedaward_alltimebest(MSG_ALL);
+ }
}
}
:end
Modified: trunk/data/qcsrc/server/constants.qh
===================================================================
--- trunk/data/qcsrc/server/constants.qh 2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/server/constants.qh 2009-10-14 10:40:08 UTC (rev 8128)
@@ -1,5 +1,5 @@
-string CVAR_CHECK_DEFAULT = "5d48426c72cdfbf78480870c75601f89";
-string CVAR_CHECK_BALANCE = "7f0cddd65617fa39bd3efb7942dceea9";
+string CVAR_CHECK_DEFAULT = "37cc3aae4b042acd9cf2b71135034bcf";
+string CVAR_CHECK_BALANCE = "1e423b95c67bac7998289473abe8feb1";
float FALSE = 0;
float TRUE = 1;
Modified: trunk/data/qcsrc/server/race.qc
===================================================================
--- trunk/data/qcsrc/server/race.qc 2009-10-14 07:20:38 UTC (rev 8127)
+++ trunk/data/qcsrc/server/race.qc 2009-10-14 10:40:08 UTC (rev 8128)
@@ -93,15 +93,13 @@
race_SendNextCheckpoint(msg_entity.enemy, 1);
}
-void race_send_recordtime(float t)
+void race_send_recordtime(float t, float msg)
{
// send the server best time
- WRITESPECTATABLE_MSG_ONE({
- WriteByte(MSG_ONE, SVC_TEMPENTITY);
- WriteByte(MSG_ONE, TE_CSQC_RACE);
- WriteByte(MSG_ONE, RACE_NET_SERVER_RECORD);
- WriteInt24_t(MSG_ONE, t);
- });
+ WriteByte(msg, SVC_TEMPENTITY);
+ WriteByte(msg, TE_CSQC_RACE);
+ WriteByte(msg, RACE_NET_SERVER_RECORD);
+ WriteInt24_t(msg, t);
}
void race_SendTime(entity e, float cp, float t, float tvalid)
@@ -184,7 +182,7 @@
db_put(ServerProgsDB, strcat(GetMapname(), rr, "time"), ftos(t));
db_put(ServerProgsDB, strcat(GetMapname(), rr, "netname"), e.netname);
write_recordmarker(e, time - TIME_DECODE(t), TIME_DECODE(t));
- race_send_recordtime(t);
+ race_send_recordtime(t, MSG_ALL);
}
else if(t < grecordtime)
{
@@ -196,7 +194,7 @@
db_put(ServerProgsDB, strcat(GetMapname(), rr, "time"), ftos(t));
db_put(ServerProgsDB, strcat(GetMapname(), rr, "netname"), e.netname);
write_recordmarker(e, time - TIME_DECODE(t), TIME_DECODE(t));
- race_send_recordtime(t);
+ race_send_recordtime(t, MSG_ALL);
}
else
{
More information about the nexuiz-commits
mailing list