X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fplayerstats.qc;h=cbf7f9eef4207c06b783b830ca17235c5d4b29f9;hb=67610c5b92e218cc245c040209c1a79ab6b02758;hp=2c9bbcde805eb9770015c385877971563b872731;hpb=b9998b31fc75c66b601e66241350b10ca694809f;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/playerstats.qc b/qcsrc/common/playerstats.qc index 2c9bbcde8..cbf7f9eef 100644 --- a/qcsrc/common/playerstats.qc +++ b/qcsrc/common/playerstats.qc @@ -5,9 +5,12 @@ #include "constants.qh" #include "util.qh" #include + #include #include "../server/anticheat.qh" - #include "../server/defs.qh" + #include + #include #include "../server/scores.qh" + #include #include "../server/weapons/accuracy.qh" #endif @@ -133,7 +136,7 @@ void PlayerStats_GameReport_FinalizePlayer(entity p) db_put(PS_GR_OUT_DB, sprintf("%s:_playerid", p.playerstats_id), ftos(p.playerid)); if(CS(p).cvar_cl_allow_uid2name == 1 || IS_BOT_CLIENT(p)) - db_put(PS_GR_OUT_DB, sprintf("%s:_netname", p.playerstats_id), playername(p, false)); + db_put(PS_GR_OUT_DB, sprintf("%s:_netname", p.playerstats_id), playername(p.netname, p.team, false)); if(teamplay) db_put(PS_GR_OUT_DB, sprintf("%s:_team", p.playerstats_id), ftos(p.team)); @@ -152,6 +155,8 @@ void PlayerStats_GameReport_FinalizePlayer(entity p) if(latency) PlayerStats_GameReport_Event_Player(p, PLAYERSTATS_AVGLATENCY, latency); } + + db_put(PS_GR_OUT_DB, sprintf("%s:_ranked", p.playerstats_id), ftos(CS(p).cvar_cl_allow_uidranking)); } strfree(p.playerstats_id); @@ -292,7 +297,7 @@ void PlayerStats_GameReport_Handler(entity fh, entity pass, float status) * G: game type * O: mod name (icon request) as in server browser * M: map name - * I: match ID (see "matchid" in g_world.qc) + * I: match ID (see "matchid" in world.qc) * S: "hostname" of the server * C: number of "unpure" cvar changes * U: UDP port number of the server @@ -376,6 +381,10 @@ void PlayerStats_GameReport_Handler(entity fh, entity pass, float status) url_fputs(fh, sprintf("t %s\n", tt)); } + // elo ranking enabled + nn = db_get(PS_GR_OUT_DB, sprintf("%s:_ranked", p)); + if(nn != "") { url_fputs(fh, sprintf("r %s\n", nn)); } + // output player events for(e = PS_GR_OUT_EVL; (en = db_get(PS_GR_OUT_DB, sprintf("*:%s", e))) != ""; e = en) { @@ -398,9 +407,9 @@ void PlayerStats_GameReport_Handler(entity fh, entity pass, float status) { // url_fclose is processing, we got a response for writing the data // this must come from HTTP - LOG_TRACE("Got response from player stats server:"); - while((s = url_fgets(fh))) { LOG_TRACE(" ", s); } - LOG_TRACE("End of response."); + LOG_DEBUG("Got response from player stats server:"); + while((s = url_fgets(fh))) { LOG_DEBUG(" ", s); } + LOG_DEBUG("End of response."); url_fclose(fh); break; } @@ -408,7 +417,7 @@ void PlayerStats_GameReport_Handler(entity fh, entity pass, float status) case URL_READY_CLOSED: { // url_fclose has finished - LOG_TRACE("Player stats written"); + LOG_DEBUG("Player stats written"); PlayerStats_GameReport_DelayMapVote = false; if(PS_GR_OUT_DB >= 0) { @@ -449,7 +458,7 @@ void PlayerStats_PlayerBasic(entity joiningplayer, float newrequest) // now request the information uri = strcat(uri, "/player/", uri_escape(uri_escape(uri_escape(joiningplayer.crypto_idfp))), "/elo.txt"); - LOG_TRACE("Retrieving playerstats from URL: ", uri); + LOG_DEBUG("Retrieving playerstats from URL: ", uri); url_single_fopen( uri, FILE_APPEND, @@ -484,11 +493,26 @@ void PlayerStats_PlayerBasic(entity joiningplayer, float newrequest) } } +SHUTDOWN(PlayerStats_PlayerBasic_Shutdown) +{ + if(PS_B_IN_DB >= 0) + { + db_close(PS_B_IN_DB); + PS_B_IN_DB = -1; + } + + if(PS_GR_OUT_DB >= 0) + { + db_close(PS_GR_OUT_DB); + PS_GR_OUT_DB = -1; + } +} + void PlayerStats_PlayerBasic_CheckUpdate(entity joiningplayer) { // determine whether we should retrieve playerbasic information again - LOG_TRACEF("PlayerStats_PlayerBasic_CheckUpdate('%s'): %f", + LOG_DEBUGF("PlayerStats_PlayerBasic_CheckUpdate('%s'): %f", joiningplayer.netname, time ); @@ -511,7 +535,7 @@ void PlayerStats_PlayerBasic_Handler(entity fh, entity p, float status) { case URL_READY_CANWRITE: { - LOG_TRACE("-- Sending data to player stats server"); + LOG_DEBUG("-- Sending data to player stats server"); /*url_fputs(fh, "V 1\n"); #ifdef WATERMARK url_fputs(fh, sprintf("R %s\n", WATERMARK)); @@ -569,8 +593,8 @@ void PlayerStats_PlayerBasic_Handler(entity fh, entity p, float status) gt = data; break; case "e": - LOG_TRACE("G: ", gt); - LOG_TRACE("e: ", data); + //LOG_TRACE("G: ", gt); + //LOG_TRACE("e: ", data); if (gt == PlayerStats_GetGametype()) { handled = true; float e = stof(data); @@ -638,7 +662,7 @@ void PlayerStats_PlayerDetail_AddItem(string event, string data) // now actually set the event data db_put(PS_D_IN_DB, sprintf("#%s", event), data); - LOG_TRACE("Added item ", sprintf("#%s", event), "=", data, " to PS_D_IN_DB"); + LOG_DEBUG("Added item ", sprintf("#%s", event), "=", data, " to PS_D_IN_DB"); } void PlayerStats_PlayerDetail() @@ -651,7 +675,7 @@ void PlayerStats_PlayerDetail() PS_D_IN_DB = db_create(); //uri = strcat(uri, "/player/", uri_escape(crypto_getmyidfp(0))); - LOG_TRACE("Retrieving playerstats from URL: ", autocvar_g_playerstats_playerdetail_uri); + LOG_DEBUG("Retrieving playerstats from URL: ", autocvar_g_playerstats_playerdetail_uri); url_single_fopen( autocvar_g_playerstats_playerdetail_uri, FILE_APPEND, @@ -706,7 +730,7 @@ void PlayerStats_PlayerDetail_Handler(entity fh, entity unused, float status) { case URL_READY_CANWRITE: { - LOG_TRACE("PlayerStats_PlayerDetail_Handler(): Sending data to player stats server..."); + LOG_DEBUG("PlayerStats_PlayerDetail_Handler(): Sending data to player stats server..."); url_fputs(fh, "V 1\n"); #ifdef WATERMARK url_fputs(fh, sprintf("R %s\n", WATERMARK));