public RankCallback(iClientToShow, rank, any:iClient)
{
if (!IsClientInGame(iClient) || !IsClientInGame(iClientToShow))
return;
new stats[STATS_NAMES];
new session[STATS_NAMES];
RankMe_GetStats(iClientToShow, stats);
RankMe_GetSession(iClientToShow, session);
new iPoints = stats[SCORE];
new iScore = session[SCORE];
new iKills = stats[KILLS];
new iDeaths = stats[DEATHS];
new Float:fKDR;
if(iDeaths == 0)
{
fKDR = 1.0*iKills;
}
else
{
fKDR = (1.0*iKills)/(1.0*iDeaths);
}
new Float:fAccuracy;
new iShots = stats[SHOTS];
new iHits = stats[HITS];
if(iShots == 0)
{
fAccuracy = 1.0*iHits;
}
else
{
fAccuracy = (1.0*iHits)/(1.0*iShots);
}
new iHeadshots = stats[HEADSHOTS];
new Float:fHSR;
if(iKills == 0)
{
fHSR = 1.0*iHeadshots;
}
else
{
fHSR = (1.0*iHeadshots)/(1.0*iKills);
}
new String:sMessage[255];
Format(sMessage, sizeof(sMessage), TEXT_PLAYER ... "%N\n" ... TEXT_RANK ... "%i\n" ... TEXT_POINTS ... "%i (%s%i)\n" ... TEXT_KDR, iClientToShow, rank, iPoints, (iScore > 0) ? "+" : "", iScore);
if(iKills >= 1000000)
{
Format(sMessage, sizeof(sMessage), "%s%iKK/", sMessage, iKills/1000/1000);
}
else if(iKills >= 1000)
{
Format(sMessage, sizeof(sMessage), "%s%iK/", sMessage, iKills/1000);
}
else
{
Format(sMessage, sizeof(sMessage), "%s%i/", sMessage, iKills);
}
if(iDeaths >= 1000000)
{
Format(sMessage, sizeof(sMessage), "%s%iKK", sMessage, iDeaths/1000/1000);
}
else if(iDeaths >= 1000)
{
Format(sMessage, sizeof(sMessage), "%s%iK", sMessage, iDeaths/1000);
}
else
{
Format(sMessage, sizeof(sMessage), "%s%i", sMessage, iDeaths);
}
Format(sMessage, sizeof(sMessage), "%s (%.2f)\n" ... TEXT_HEADSHOTS, sMessage, fKDR);
if(iHeadshots >= 1000000)
{
Format(sMessage, sizeof(sMessage), "%s%iKK", sMessage, iHeadshots/1000/1000);
}
else if(iHeadshots >= 1000)
{
Format(sMessage, sizeof(sMessage), "%s%iK", sMessage, iHeadshots/1000);
}
else
{
Format(sMessage, sizeof(sMessage), "%s%i", sMessage, iHeadshots);
}
Format(sMessage, sizeof(sMessage), "%s (%.2f)\n" ... TEXT_HITS, sMessage, fHSR);
if(iHits >= 1000000)
{
Format(sMessage, sizeof(sMessage), "%s%iKK/", sMessage, iHits/1000/1000);
}
else if(iHits >= 1000)
{
Format(sMessage, sizeof(sMessage), "%s%iK/", sMessage, iHits/1000);
}
else
{
Format(sMessage, sizeof(sMessage), "%s%i/", sMessage, iHits);
}
if(iShots >= 1000000)
{
Format(sMessage, sizeof(sMessage), "%s%iKK", sMessage, iShots/1000/1000);
}
else if(iShots >= 1000)
{
Format(sMessage, sizeof(sMessage), "%s%iK", sMessage, iShots/1000);
}
else
{
Format(sMessage, sizeof(sMessage), "%s%i", sMessage, iShots);
}
Format(sMessage, sizeof(sMessage), "%s (%.2f)", sMessage, fAccuracy);
new Handle:hBuffer = StartMessageOne("KeyHintText", iClient);
BfWriteByte(hBuffer, 1);
BfWriteString(hBuffer, sMessage);
EndMessage();
}