From 5e0e54812d3dfbb73bf182930c4885815ac83fd5 Mon Sep 17 00:00:00 2001 From: Samual Date: Mon, 3 Oct 2011 14:31:03 -0400 Subject: [PATCH] Re-wrote sv_fragmessage_information -- In preparation for new features to it. --- qcsrc/server/g_damage.qc | 42 ++++++++++++++++++++++++++++--- qcsrc/server/miscfunctions.qc | 47 ----------------------------------- 2 files changed, 38 insertions(+), 51 deletions(-) diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index 994ee260b..f49df6bae 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -221,6 +221,40 @@ void GiveFrags (entity attacker, entity targ, float f, float deathtype) UpdateFrags(attacker, f); } +string Obituary_ExtraFragInfo(entity player) // Extra fragmessage information +{ + string health_output; + string ping_output; + string handicap_output; + string output; + + // health/armor of attacker (person who killed you) + if(autocvar_sv_fragmessage_information_stats && (player.health >= 1)) + health_output = strcat("^7(Health ^1", ftos(rint(player.health)), "^7 / Armor ^2", ftos(rint(player.armorvalue)), "^7)"); + + // ping display + if(autocvar_sv_fragmessage_information_ping) + ping_output = ((clienttype(player) == CLIENTTYPE_BOT) ? "^2Bot" : strcat("Ping ", ((player.ping >= 150) ? "^1" : "^2"), ftos(player.ping), "ms")); + + // handicap display + if(autocvar_sv_fragmessage_information_handicap) + { + if(autocvar_sv_fragmessage_information_handicap == 2) + handicap_output = strcat(output, strcat("Handicap ^2", ((player.cvar_cl_handicap <= 1) ? "Off" : ftos(player.cvar_cl_handicap)))); + else if(player.cvar_cl_handicap) // with _handicap 1, only show this if there actually is a handicap enabled. + handicap_output = strcat("Handicap ^2", ftos(player.cvar_cl_handicap)); + } + + output = strcat(health_output, (health_output ? " ^7(" : ((ping_output || handicap_output) ? "^7(" : "")), + ping_output, ((ping_output && handicap_output) ? "^7 / " : ""), + handicap_output, ((ping_output || handicap_output) ? "^7)" : "")); + + // add new line to the beginning if there is a message + if(output) { output = strcat("\n", output); } + + return output; +} + string AppendItemcodes(string s, entity player) { float w; @@ -368,11 +402,11 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype) } if((autocvar_sv_fragmessage_information_typefrag) && (targ.BUTTON_CHAT)) { - Send_CSQC_KillCenterprint(attacker, s, GetAdvancedDeathReports(targ), KILL_TYPEFRAG, MSG_KILL); - Send_CSQC_KillCenterprint(targ, a, GetAdvancedDeathReports(attacker), KILL_TYPEFRAGGED, MSG_KILL); + Send_CSQC_KillCenterprint(attacker, s, Obituary_ExtraFragInfo(targ), KILL_TYPEFRAG, MSG_KILL); + Send_CSQC_KillCenterprint(targ, a, Obituary_ExtraFragInfo(attacker), KILL_TYPEFRAGGED, MSG_KILL); } else { - Send_CSQC_KillCenterprint(attacker, s, GetAdvancedDeathReports(targ), KILL_FRAG, MSG_KILL); - Send_CSQC_KillCenterprint(targ, a, GetAdvancedDeathReports(attacker), KILL_FRAGGED, MSG_KILL); + Send_CSQC_KillCenterprint(attacker, s, Obituary_ExtraFragInfo(targ), KILL_FRAG, MSG_KILL); + Send_CSQC_KillCenterprint(targ, a, Obituary_ExtraFragInfo(attacker), KILL_FRAGGED, MSG_KILL); } attacker.taunt_soundtime = time + 1; diff --git a/qcsrc/server/miscfunctions.qc b/qcsrc/server/miscfunctions.qc index b0b1aa3e0..6e12cded5 100644 --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@ -79,53 +79,6 @@ string strcat1(string s) = #115; // FRIK_FILE float logfile_open; float logfile; -string GetAdvancedDeathReports(entity enPlayer) // Extra fragmessage information -{ - float nPlayerHealth = rint(enPlayer.health); - float nPlayerArmor = rint(enPlayer.armorvalue); - float nPlayerHandicap = enPlayer.cvar_cl_handicap; - float nPlayerPing = rint(enPlayer.ping); - string strPlayerPingColor; - string strMessage; - - if(nPlayerPing >= 150) - strPlayerPingColor = "^1"; - else - strPlayerPingColor = "^2"; - - if((autocvar_sv_fragmessage_information_stats) && (enPlayer.health >= 1)) - strMessage = strcat(strMessage, "^7(Health ^1", ftos(nPlayerHealth), "^7 / Armor ^2", ftos(nPlayerArmor), "^7)"); - - if(autocvar_sv_fragmessage_information_ping) { - if(clienttype(enPlayer) == CLIENTTYPE_BOT) // Bots have no ping - strMessage = strcat(strMessage, " ^7(^2Bot"); - else - strMessage = strcat(strMessage, " ^7(Ping ", strPlayerPingColor, ftos(nPlayerPing), "ms"); - if(autocvar_sv_fragmessage_information_handicap) - if(autocvar_sv_fragmessage_information_handicap == 2) - if(nPlayerHandicap <= 1) - strMessage = strcat(strMessage, "^7 / Handicap ^2Off^7)"); - else - strMessage = strcat(strMessage, "^7 / Handicap ^2", ftos(nPlayerHandicap), "^7)"); - else if not(nPlayerHandicap <= 1) - strMessage = strcat(strMessage, "^7 / Handicap ^2", ftos(nPlayerHandicap), "^7)"); - else - strMessage = strcat(strMessage, "^7)"); - } else if(autocvar_sv_fragmessage_information_handicap) { - if(autocvar_sv_fragmessage_information_handicap == 2) - if(nPlayerHandicap <= 1) - strMessage = strcat(strMessage, "^7(Handicap ^2Off^7)"); - else - strMessage = strcat(strMessage, "^7(Handicap ^2", ftos(nPlayerHandicap), "^7)"); - else if(nPlayerHandicap > 1) - strMessage = strcat(strMessage, "^7(Handicap ^2", ftos(nPlayerHandicap), "^7)"); - } - - if(strMessage) // add new line to the beginning if there is a message - strMessage = strcat("\n", strMessage); - - return strMessage; -} void bcenterprint(string s) { // TODO replace by MSG_ALL (would show it to spectators too, though)? -- 2.39.2