[Help]About the motd (the size and how to add images)
I were trying to modify the statsx.sma, I just want to make the "top15" and the "stats" more abundant.
I added three function:
Code:
// HeadShotRate
Float:HSR(izStats[8])
{
if (!izStats[STATS_KILLS])
return (0.0)
return (100.0 * float(izStats[STATS_HS]) / float(izStats[STATS_KILLS]))
}
// DamagePerShot
Float:DPS(izStats[8])
{
if (!izStats[STATS_SHOTS])
return (0.0)
return (float(izStats[STATS_DAMAGE])/float(izStats[STATS_SHOTS]))
}
// KillPerDeath
Float:KD(izStats[8])
{
if (!izStats[STATS_KILLS])
return (0.0)
return (float(izStats[STATS_KILLS]) / float(izStats[STATS_DEATHS]))
}
And I modified the "top15"
Code:
// Get and format top 15.
format_top15(sBuffer[MAX_BUFFER_LENGTH + 1])
{
new iMax = get_statsnum()
new izStats[8], izBody[8]
new iLen = 0
if (iMax > 15)
iMax = 15
new lKills[16], lDeaths[16], lHits[16], lShots[16], lEff[16], lAcc[16]
format(lKills, 15, "%L", LANG_SERVER, "KILLS")
format(lDeaths, 15, "%L", LANG_SERVER, "DEATHS")
format(lHits, 15, "%L", LANG_SERVER, "HITS")
format(lShots, 15, "%L", LANG_SERVER, "SHOTS")
format(lEff, 15, "%L", LANG_SERVER, "EFF")
format(lAcc, 15, "%L", LANG_SERVER, "ACC")
ucfirst(lEff)
ucfirst(lAcc)
//iLen = format(sBuffer, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>")
//iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%2s %-22.22s %6s %6s %6s %6s %4s %4s %4s^n", "#", "Nick", lKills, lDeaths, lHits, lShots, "HS", lEff, lAcc)
////iLen = format(sBuffer, MAX_BUFFER_LENGTH, "<meta charset=UTF-8 /><style>body{color:#FFB000}.tr0{background-color:#565656}.tr1{background-color:#3D3D3D}td{text-align:center;width:90}</style><body bgcolor=#000000><table>")
iLen = format(sBuffer, MAX_BUFFER_LENGTH, "<meta charset=UTF-8 /><style>body{color:#FFB000}td{text-align:center;width:90}</style><body bgcolor=#000000><table>")
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "<tr><td>Rank<td>NickName<td>Kills<td>Deaths<td>KD<td>HS<td>HSRate<td>Shots<td>Hits<td>Acc</tr>")
for (new i = 0; i < iMax && MAX_BUFFER_LENGTH - iLen > 0; i++)
{
get_stats(i, izStats, izBody, t_sName, MAX_NAME_LENGTH)
replace_all(t_sName, MAX_NAME_LENGTH, "<", "[")
replace_all(t_sName, MAX_NAME_LENGTH, ">", "]")
//iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%2d %-22.22s %6d %6d %6d %6d %4d %3.0f%% %3.0f%%^n", i + 1, t_sName, izStats[STATS_KILLS],
//izStats[STATS_DEATHS], izStats[STATS_HITS], izStats[STATS_SHOTS], izStats[STATS_HS], effec(izStats), accuracy(izStats))
////iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "<tr class=tr%d><td>%d<td>%s<td>%d<td>%d<td>%.2f<td>%d<td>%.2f%%<td>%d<td>%d<td>%.2f%%</tr>", i%2, i+1, t_sName, izStats[STATS_KILLS],
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "<tr><td>%d<td>%s<td>%d<td>%d<td>%.2f<td>%d<td>%.2f%%<td>%d<td>%d<td>%.2f%%</tr>", i+1, t_sName, izStats[STATS_KILLS],
izStats[STATS_DEATHS], KD(izStats), izStats[STATS_HS], HSR(izStats), izStats[STATS_SHOTS], izStats[STATS_HITS], accuracy(izStats))
}
//iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "</table></body>")
}
And the "stats"
Code:
// Get and format stats.
format_stats(id, sBuffer[MAX_BUFFER_LENGTH + 1])
{
new izStats[8] = {0, ...}
new izBody[8]
new iWeapon, iRankPos, iLen, cWeapon
new lKills[16], lDeaths[16], lHits[16], lShots[16], lDamage[16], lEff[16], lAcc[16], lWeapon[16]
format(lKills, 15, "%L", id, "KILLS")
format(lDeaths, 15, "%L", id, "DEATHS")
format(lHits, 15, "%L", id, "HITS")
format(lShots, 15, "%L", id, "SHOTS")
format(lDamage, 15, "%L", id, "DAMAGE")
format(lEff, 15, "%L", id, "EFF")
format(lAcc, 15, "%L", id, "ACC")
format(lWeapon, 15, "%L", id, "WEAPON")
ucfirst(lEff)
ucfirst(lAcc)
get_user_wstats(id, 0, izStats, izBody)
iRankPos = get_user_stats(id, izStats, izBody)
//iLen = format(sBuffer, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>")
//iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%6s: %d (%d with hs)^n%6s: %d^n%6s: %d^n%6s: %d^n%6s: %d^n%6s: %0.2f%%^n%6s: %0.2f%%^n^n",
//lKills, izStats[STATS_KILLS], izStats[STATS_HS], lDeaths, izStats[STATS_DEATHS], lHits, izStats[STATS_HITS], lShots, izStats[STATS_SHOTS],
//lDamage, izStats[STATS_DAMAGE], lEff, effec(izStats), lAcc, accuracy(izStats))
//iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%-12.12s %6s %6s %6s %6s %6s %4s^n", lWeapon, lKills, lDeaths, lHits, lShots, lDamage, lAcc)
iLen = format(sBuffer, MAX_BUFFER_LENGTH, "<meta charset=UTF-8 /><style>body{color:#FFB000}.trh{background-color:#161411;color:#FFFFFF}.tr0{background-color:#211F1B;color:#C5B89E}.tr1{background-color:#33312A;color:#C5B89E}td{text-align:center;width:80}</style><body bgcolor=#000000><table>")
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "<tr><td>Rank<td>NickName<td>Kills<td>Deaths<td>KD<td>HS<td>HSRate<td>Shots<td>Hits<td>Acc</tr>")
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "<tr><td>%d<td>%d<td>%d<td>%.2f<td>%d<td>%.2f%%<td>%d<td>%d<td>%.2f%%</tr>",
iRankPos, izStats[STATS_KILLS], izStats[STATS_DEATHS], KD(izStats), izStats[STATS_HS], HSR(izStats), izStats[STATS_SHOTS], izStats[STATS_HITS], accuracy(izStats))
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "</table><table>")
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "<tr class=trh><td>WeaponPic<td>Kills<td>Deaths<td>KD<td>HS<td>HSRate<td>Shots<td>Hits<td>Acc<td>TotalDamage<td>AverageDamage</tr>")
for (iWeapon = 1, cWeapon = 1; iWeapon < xmod_get_maxweapons() && MAX_BUFFER_LENGTH - iLen > 0 ; iWeapon++)
{
if (get_user_wstats(id, iWeapon, izStats, izBody))
{
cWeapon += 1
xmod_get_wpnname(iWeapon, t_sWpn, MAX_WEAPON_LENGTH)
//iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "%-12.12s %6d %6d %6d %6d %6d %3.0f%%^n", t_sWpn, izStats[STATS_KILLS], izStats[STATS_DEATHS],
//izStats[STATS_HITS], izStats[STATS_SHOTS], izStats[STATS_DAMAGE], accuracy(izStats))
iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "<tr class=tr%d><td><img src=./images/guns/%s.gif><td>%d<td>%d<td>%.2f<td>%d<td>%.2f%%<td>%d<td>%d<td>%.2f%%<td>%d<td>%.2f</tr>",
cWeapon%2, t_sWpn, izStats[STATS_KILLS], izStats[STATS_DEATHS], KD(izStats), izStats[STATS_HS], HSR(izStats), izStats[STATS_SHOTS], izStats[STATS_HITS], accuracy(izStats), izStats[STATS_DAMAGE], DPS(izStats))
}
}
//iLen += format(sBuffer[iLen], MAX_BUFFER_LENGTH - iLen, "</table></body>")
}
My problems:
1. The "top15" and "stats" are only partly loaded.I thinke the motd size is fixed.I had tried to change the code:
"#define MAX_BUFFER_LENGTH 2047" to
"#define MAX_BUFFER_LENGTH 4095"
but it did not work.
Is there any method to solve this.
2.I added some pic in the "stats", I want that each player in my server can
download the pics when he entered.(the files: cstrike/images/guns/*.gif)
|