}
}
+void PlayerStats_AddTeam(float t)
+{
+ if(playerstats_db < 0)
+ return;
+
+ string key;
+ key = sprintf("team#%d:*", t);
+
+ string p;
+ p = db_get(playerstats_db, key);
+ if(p == "")
+ {
+ if(playerstats_last)
+ {
+ db_put(playerstats_db, key, playerstats_last);
+ strunzone(playerstats_last);
+ }
+ else
+ db_put(playerstats_db, key, "#");
+ playerstats_last = strzone(sprintf("team%d", t));
+ }
+}
+
void PlayerStats_AddEvent(string event_id)
{
if(playerstats_db < 0)
db_put(playerstats_db, key, ftos(val));
}
+void PlayerStats_TeamScore(float t, string event_id, float value)
+{
+ string key;
+ float val;
+ key = sprintf("team#%d:%s", t, event_id);
+ val = stof(db_get(playerstats_db, key));
+ val += value;
+ db_put(playerstats_db, key, ftos(val));
+}
+
void PlayerStats_Sent_URI_Get_Callback(float id, float status, string data)
{
if(playerstats_requested)
// add a new player
void PlayerStats_AddPlayer(entity e);
+// add a new team
+void PlayerStats_AddTeam(float t);
+
// add a new event
void PlayerStats_AddEvent(string event_id);
// call on each event to track, or at player disconnect OR match end for "global stuff"
void PlayerStats_Event(entity e, string event_id, float value);
+// add a team score
+void PlayerStats_TeamScore(float t, string event_id, float value);
+
// call at game over
void PlayerStats_Shutdown(); // send stats to the server
Net_LinkEntity(ts, FALSE, 0, TeamScore_SendEntity);
teamscorekeepers[t - 1] = ts;
++teamscores_entities_count;
+ PlayerStats_AddTeam(t);
}
float TeamScore_AddToTeam(float t, float scorefield, float score)
if(scores_label[i] != "")
PlayerStats_Event(s.owner, strcat(PLAYERSTATS_SCOREBOARD, scores_label[i]), s.(scores[i]));
}
+
+void PlayerScore_TeamStats(void)
+{
+ entity sk;
+ float t, i;
+ for(t = 0; t < 16; ++t)
+ {
+ sk = teamscorekeepers[t];
+ if(!sk)
+ continue;
+ for(i = 0; i < MAX_TEAMSCORE; ++i)
+ if(sk.(teamscores[i]) != 0)
+ if(teamscores_label[i] != "")
+ PlayerStats_TeamScore(t, strcat(PLAYERSTATS_SCOREBOARD, teamscores_label[i]), sk.(teamscores[i]));
+ }
+}