AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   [Help]About the motd (the size and how to add images) (https://forums.alliedmods.net/showthread.php?t=89832)

mwy5ym 04-11-2009 04:02

[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)

Hunter-Digital 04-11-2009 14:16

Re: [Help]About the motd (the size and how to add images)
 
2. use a webserver and in the images src use the server's address or IP, don't download them manually.. they are already are beeing downloaded in the browser's cache.


All times are GMT -4. The time now is 02:15.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.