From b2695908bbd8c7669f6bf0d18da7b7f369391306 Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Sat, 31 Jan 2015 23:17:18 -0500 Subject: [PATCH] Changed ping from float to unsigned short. --- Release/Plugins/RenX.Core.lib | Bin 77548 -> 77548 bytes RenX.Core/RenX_PlayerInfo.h | 2 +- RenX.Core/RenX_Server.cpp | 32 +++++++++++++++++++++----------- RenX.Core/RenX_Tags.cpp | 8 ++++---- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/Release/Plugins/RenX.Core.lib b/Release/Plugins/RenX.Core.lib index d2d92491e748e0fa0b5988b58c1017bd3f62ce83..adccc7479b7976208692f55b5e488982680bb00b 100644 GIT binary patch delta 4690 zcmZu!dr*|u73V5Y!XhFI>>8J45hJn~ijNp&EMOx(B9f)4riEfKBr&Nvt~EB(QKOm8 zBxbZ~xRYLDe9*DuB%SHRByEP0NJJ9wfk2|wXplm6k_M^3Bxw{M^qhOo{l2>!{@nAO z$M5{k>u%rW$iB;wds3rj<>tQK#lp1P<} zwi2IPpMcVmdIvM4&wY>(b*Sdd&oA)O`ZS(jH-R^O&}V&jiLG(W31+Uvg9m zD~~R=gnrbzWC;*QL4)%i^qmnA5iy$g98KoIhD>E3x*befoM?E=a$!dcd}KtkFm#ww zjUjN%#^BHthB_yXj$FrlNDq}es-PIemYuQeE6jD zGZXww06*)W%H*d{8-AeG?VhMPWl&%d<33GNtD|a88y&>~D`w3G;z(( zjBKhq-F(d#iD+8#*(M$Gtn@YX+4@kyzOy6{KA#Gge~u*Rr}dol(|ztm%gn{M{8K?# z1rTxp!l$ds!bT-{*2Nzku*L9o@PbnoXD#@e0iDf{%zAtTXBD3- zwJo4F6V=A@b^O}r)<{FV?29s9;l=%i`TtxkZ&8>E zvAOq4gH7qR3~UyI*FEV=LjiYwCBY4R#qA_&|C1;KJr71pFwo%MBp!TYSt#c`@U^Vv z=C7%i)xD~=y??N1m4e=0YJFaLO$v5i+f5oi)x5=hVaWq{1$K} z^R|AY9Myv=+rej*jo#k8d9Z>c07=!f0Nj)T`|%s6^Wi}nFS&YUaUO)v+7kcG* zTIh2D%}QM8jnO%L|2M`8*fn(V^4n4^c)LnRQYS-B37(9#I3)*D zynN~%ogT8X`i`{Qc86H8uI=4B`l#VfUw>Dv;U~dU5IwE@^K#*FFzt#!U(SxVpjYmk`cA&aeS2Wm=ncTDWE!zEOQCuzZuFrxM-e8h}P-L2=e<+ z;QJQ%{?4Xcu|JwoAHbOrUC~T6(i5Qa0;qIv!fmAq1d_$>A2BuWPlL)$1(HeO7BQ9C6Vceq`C1$ZKCc-xutaP=Q@8t7^YF@3~`>3 zr22Apl9jZk7q#n?LbU16oybeJ#74*0CtEq{ATs#Fi8vXuk| z8Kmnia=jxlSnt&gN}Ourio7%nCw2)fa8Z|LfzYE@>@!F2qEA7%?$hn7n_6ywMUd)W zag0je%`+0!33(^#giLO0Cu(j{iaP;|RhVH7w>Iz07|DFaB-30M?5-`94`^}VK3y;Q z*9=3HOdiQ!$7Jmc)}Wa4ej`&)H&^FY?3<#mftgNTmQDx$BD=&KzsmA_mY&uS zaf#m&!+&tZ+U#fauN=MV%Tt)GW6^~ZUD^7?+5axYOH-Nk_rfi__cQf;t%7PbVzmku sF5?>-^s@ms5B%N3s9)Z%*R`n4fo5HrqhLRg!{$)4f?NV@&0)U(1JXk#lK=n! delta 4690 zcmZu!dr*|u73V5Y!XhFI>>8J45i7D7iuj0OEMOx(B9f)4riDTHQyy$&WVPBuMmxv--J-Z!FI7`jZU z#t=AeV{q}mAD6&RAGhsgm`9pTt-mxo9SAHNfW<~c@_@t3M~_V-Ai-8?Qgou2uvU*} zF8;;|Wm60`abQzlGoM#qjOQCpq*w_^yOI_iia0=GT3a5rv|Ji`{s&`d{_O)p(@K5D zhjv1i{hJ?ZdtZxxA|{jt;G7YW5ru`bc>3uizP5QrXi^7SDJf1_CbroESusSrqfKMz zYLhwLX!kuR$5|cysU2BsY)^{$dhCIw4 zhvek}jP!`82wt{(8n5gO$Kgy=lW^qh63SBdu(v};q^vOFk&eg0)cl=cYH~O*`RROC zXA1A^oJSb3abE3^z~^-plJIDsEX9$oUy@%0j*$W%m5~b2#Ru;wQfGo+Ka%?6G;!U} zjBM(<-F)4riD+8-@fIEOob)yF@y1ZWfpa7fKA#F#aGoUSr~SP2(|i6U%gn{M{!>9% z0}yfn!bfY$!$u`|&c)|mkO@9=VW&nvAR$Cw+-mqbe9V$NK$Y1yh`DRU82IF zFg5;bt&Nl~?3FpK>iwM|bo5D~uTK+8K)U-3AV2@N0ulruKL8*J(`x`o1_cBVc~>Qf z#aA^5sP^I;QWkTKDpY3xd*_-4R)5)!Mgp@6$Tm*9pz=XMhH|4EdAUI3%z7-)EZ5)ZzrJ%o`TAx>6mx5i__mGB9HE+p4So7kPjSPhOY51=(LPTo$4YCw? zZp2R7HZg-wPz2a5Vv1LF!M?$t*it@WNZr}lkmV|Vcrck43_WOl_scai7rs3%zXe>$ zykpQPN8PZ>cKA7EqqjG29j+t^KvFd=1UKcte*ESgYqAhqu6<#vWha_!f8p;u3) zg}wmLtj2}j9G$}terc>gZj!nCf0|5!gzntm=z{^3mAO@cx2FK(q(A}xUYQg6m2mRl zIXBO}spcsFT2D)@hxy){IupDU7D3Oz=cB*ybJs1so{DbCJlEY?PdQOH#f}&~q3VbQ zc#cmR$>oD1`nKcMfgV8EOK;QF;V@$;XurM5uAz%p+>vU*J2g6zIvH|G@MNsVDLI_t z&mi)C{>;U(u8Qf9X*~Cqd;!Q0d)*+e#A%B#S-YVQSu=0hMiHbqu^tm(?x` z)1o6L%3~N^F?qpdp??U5FJXBS{7*ugBli{5Zt?^ouMn(K=qL!Eyj!)1PHoM_Sg6;-< zqtYu=_$M)IYk*Y!84+(zV&==0-jQNPBGV5^bK{HpMBR~cOX=Rvb$*L5OryaW;yfcs z_2v8|D``zHYBwf@Xw#oNk)LddjgD_jwsOREnU$hk7o;$AUs94MQ?v^;h_hWvd#Otg z)3*lX0F-%q>_WS51y&hhKJR7~s$^R9+sWY)vC9&n=bckkJoo)<165mHbe(r}RB|ljjl{9|z1ZVn)A-@y3=a}YO8%8prFtlpttK$Y zAYE^f>m7^1Mz3a2;#3<~)N%tXg;f8H zV^sFnd?Qhvkawz1$mF(us^%7@xD&8gMH$v`YxC}mvCONcndZ7+_iU+rK#N1))%B8p z%`imi^s)SPP1pWH1|^tj4T?GMH#7Bgb9HXTff@Q5nCawa>2%;PvP(SVS6N=j($g9u zF7;bt_z#X)Tm6jwm7`aEd5W@iEV^)_CtII5``?B5^-N~{y>JWf157<%YoJ=qSgpb( sEBU4-{cOO^1Aq50>Sqt=buH?1pjlVsDA-Ttu!pEwK`sHd=P=*@0izz$*Z=?k diff --git a/RenX.Core/RenX_PlayerInfo.h b/RenX.Core/RenX_PlayerInfo.h index cf28d49..ae0b0bd 100644 --- a/RenX.Core/RenX_PlayerInfo.h +++ b/RenX.Core/RenX_PlayerInfo.h @@ -55,7 +55,7 @@ namespace RenX bool isBot = false; time_t joinTime = 0; - float ping = -1.0f; + unsigned short ping = 0; float score = 0.0f; float credits = 0.0f; unsigned int kills = 0; diff --git a/RenX.Core/RenX_Server.cpp b/RenX.Core/RenX_Server.cpp index 24964e7..fcf195d 100644 --- a/RenX.Core/RenX_Server.cpp +++ b/RenX.Core/RenX_Server.cpp @@ -1095,28 +1095,38 @@ void RenX::Server::processLine(const Jupiter::ReadableString &line) header.shiftRight(1); switch (header[0]) { - case 1: // Client list: Normal Player Data | IP | Steam ID | Start Time | Ping | Kills | Deaths | Score | Credits | Class + case 1: // Client list: Normal Player Data | IP | Steam ID | Start Time | Ping Kills | Deaths | Score | Credits | Class header.shiftRight(1); { PARSE_PLAYER_DATA_P(header); PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, playerData.asUnsignedLongLong(0), action); - player->ping = static_cast(buff.getToken(4, RenX::DelimC).asDouble()); - player->kills = buff.getToken(5, RenX::DelimC).asUnsignedInt(); - player->deaths = buff.getToken(6, RenX::DelimC).asUnsignedInt(); - player->score = static_cast(buff.getToken(7, RenX::DelimC).asDouble()); - player->credits = static_cast(buff.getToken(8, RenX::DelimC).asDouble()); - player->character = RenX::getCharacter(buff.getToken(9, RenX::DelimC)); + Jupiter::ReferenceString pingKillsToken = buff.getToken(4, RenX::DelimC); + if (pingKillsToken.isEmpty() == false) + { + player->ping = static_cast(pingKillsToken.get(0)) * 4; + pingKillsToken.shiftRight(1); + player->kills = pingKillsToken.asUnsignedInt(); + } + player->deaths = buff.getToken(5, RenX::DelimC).asUnsignedInt(); + player->score = static_cast(buff.getToken(6, RenX::DelimC).asDouble()); + player->credits = static_cast(buff.getToken(7, RenX::DelimC).asDouble()); + player->character = RenX::getCharacter(buff.getToken(8, RenX::DelimC)); } header.shiftLeft(1); break; - case 2: // Ping, Score, Credits list: Normal Player Data | Ping | Score | Credits + case 2: // Ping, Score, Credits list: Normal Player Data | Ping Score | Credits header.shiftRight(1); { PARSE_PLAYER_DATA_P(header); PlayerInfo *player = getPlayerOrAdd(this, name, id, team, isBot, 0U, Jupiter::ReferenceString::empty); - player->ping = static_cast(playerData.asDouble()); - player->score = static_cast(action.asDouble()); - player->credits = static_cast(buff.getToken(3, RenX::DelimC).asDouble()); + if (playerData.isEmpty() == false) + { + player->ping = static_cast(playerData.get(0)) * 4; + playerData.shiftRight(1); + player->score = playerData.asDouble(); + playerData.shiftLeft(1); + } + player->credits = static_cast(action.asDouble()); } header.shiftLeft(1); break; diff --git a/RenX.Core/RenX_Tags.cpp b/RenX.Core/RenX_Tags.cpp index 30fa4ba..6a851d6 100644 --- a/RenX.Core/RenX_Tags.cpp +++ b/RenX.Core/RenX_Tags.cpp @@ -240,7 +240,7 @@ void TagsImp::processTags(Jupiter::StringType &msg, const RenX::Server *server, msg.replace(this->INTERNAL_TEAM_COLOR_TAG, RenX::getTeamColor(player->team)); msg.replace(this->INTERNAL_TEAM_SHORT_TAG, RenX::getTeamName(player->team)); msg.replace(this->INTERNAL_TEAM_LONG_TAG, RenX::getFullTeamName(player->team)); - msg.replace(this->INTERNAL_PING_TAG, Jupiter::StringS::Format("%.2f", player->ping)); + msg.replace(this->INTERNAL_PING_TAG, Jupiter::StringS::Format("%hu", player->ping)); msg.replace(this->INTERNAL_SCORE_TAG, Jupiter::StringS::Format("%.0f", player->score)); msg.replace(this->INTERNAL_CREDITS_TAG, Jupiter::StringS::Format("%.0f", player->credits)); msg.replace(this->INTERNAL_KILLS_TAG, Jupiter::StringS::Format("%u", player->kills)); @@ -271,9 +271,9 @@ void TagsImp::processTags(Jupiter::StringType &msg, const RenX::Server *server, msg.replace(this->INTERNAL_VICTIM_TEAM_COLOR_TAG, RenX::getTeamColor(victim->team)); msg.replace(this->INTERNAL_VICTIM_TEAM_SHORT_TAG, RenX::getTeamName(victim->team)); msg.replace(this->INTERNAL_VICTIM_TEAM_LONG_TAG, RenX::getFullTeamName(victim->team)); - msg.replace(this->INTERNAL_VICTIM_PING_TAG, Jupiter::StringS::Format("%f", victim->ping)); - msg.replace(this->INTERNAL_VICTIM_SCORE_TAG, Jupiter::StringS::Format("%f", victim->score)); - msg.replace(this->INTERNAL_VICTIM_CREDITS_TAG, Jupiter::StringS::Format("%f", victim->credits)); + msg.replace(this->INTERNAL_VICTIM_PING_TAG, Jupiter::StringS::Format("%hu", victim->ping)); + msg.replace(this->INTERNAL_VICTIM_SCORE_TAG, Jupiter::StringS::Format("%.0f", victim->score)); + msg.replace(this->INTERNAL_VICTIM_CREDITS_TAG, Jupiter::StringS::Format("%.0f", victim->credits)); msg.replace(this->INTERNAL_VICTIM_KILLS_TAG, Jupiter::StringS::Format("%u", victim->kills)); msg.replace(this->INTERNAL_VICTIM_DEATHS_TAG, Jupiter::StringS::Format("%u", victim->deaths)); msg.replace(this->INTERNAL_VICTIM_KDR_TAG, Jupiter::StringS::Format("%.2f", static_cast(victim->kills) / (victim->deaths == 0 ? 1.0f : static_cast(victim->deaths))));