jackysk 发表于 2006-1-13 11:22:47

回复: 请问yanexp,网页查看CS排行及状态+地图背景PHP 能否放在TOP15或启动页中?

果然是强人,呵呵......

QQ8 发表于 2006-1-13 13:40:13

回复: 请问yanexp,网页查看CS排行及状态+地图背景PHP 能否放在TOP15或启动页中?

yanexp 路过就请进来一下

以下是我根椐你所给出代码修改的sma,原代码应该是AMXX0.16版的,由于我用AMXX1.0编译出错,所以用AMXX0.2编译,在AMXX1.0里使用(不知有无问题)。
我现在遇到的问题是这样的,服务器会自动关了TOP15这个选项,就是打/top15的时候,显示服务器已经关闭此选项,不知何解。换图后,能显示一次,再打就出现服务器关闭选项字样。

plugins.ini里相关设置如下
;statsx.amxx                            ; 在死亡或者结束一局的时候显示统计信息 (需要开启 CSX 模块!)
statshtml.amxx
miscstats.amxx                         ; 为反恐精英提供事件的显示
;stats_logging.amxx                   ; 武器数据统计记录 (需要开启 CSX 模块!)
statscfg.amxx                   ; 通过命令或者菜单来配置管理数据统计插件

stats.ini里相关设置如下
ShowAttackers         ;Show Attackers
ShowVictims             ;Show Victims
SayHP                   ;Say /hp
SayStatsMe            ;Say /statsme
SayRankStats            ;Say /rankstats
SayMe                   ;Say /me
SayRank               ;Say /rank
SayReport               ;Say /report
SayScore                ;Say /score
SayTop15                ;Say /top15
SayStatsAll             ;Say /stats

在stats.ini里,我也试着关闭 SayRankStats SayReport SayScore 等statshtml.sma里没有的选项,但也是一样的结果。 :brick:
请指教

zhangsheng 发表于 2006-1-13 13:53:06

回复: 请问yanexp,网页查看CS排行及状态+地图背景PHP 能否放在TOP15或启动页中?

/* AMX Mod X
*   CS Stats Plugin
*
* by the AMX Mod X Development Team
*originally developed by OLO
*
* This file is part of AMX Mod X.
*
*
*This program is free software; you can redistribute it and/or modify it
*under the terms of the GNU General Public License as published by the
*Free Software Foundation; either version 2 of the License, or (at
*your option) any later version.
*
*This program is distributed in the hope that it will be useful, but
*WITHOUT ANY WARRANTY; without even the implied warranty of
*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
*General Public License for more details.
*
*You should have received a copy of the GNU General Public License
*along with this program; if not, write to the Free Software Foundation,
*Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*In addition, as a special exception, the author gives permission to
*link the code of this program with the Half-Life Game Engine ("HL
*Engine") and Modified Game Libraries ("MODs") developed by Valve,
*L.L.C ("Valve"). You must obey the GNU General Public License in all
*respects for all of the code used other than the HL Engine and MODs
*from Valve. If you modify this file, you may extend this exception
*to your version of the file, but you are not obligated to do so. If
*you do not wish to do so, delete this exception statement from your
*version.
*/

#include <amxmodx>
#include <amxmisc>
#include <csstats>

// You can also manualy enable these options by setting them to 1
// For example:
// public ShowAttackers = 1
// However amx_statscfg command is recommended

public ShowAttackers      // shows attackers
public ShowVictims      // shows victims
public ShowKiller         // shows killer
public EndPlayer          // displays player stats at the end of map
public EndTop15         // displays top15 at the end of map
public KillerHpAp         // displays killer hp&ap to victim console and screen
public SpecRankInfo       // displays rank info when spectating

public SayHP            // displays information about user killer
public SayStatsAll      // displays players stats and rank
public SayTop15         // displays first 15. players
public SayRank            // displays user position in rank
public SayStatsMe         // displays user stats

public EndTeamScore       // displays at the end of round team score
public EndMostKills       // displays at the end of who made most kills
public EndMostDamage      // displays at the end of who made most damage

new g_Killers
new g_Buffer
new g_userPosition
new g_userState
new g_userPlayers
new g_bodyParts[] = {"whole body","head","chest","stomach","left arm","right arm","left leg","right leg"}
new bool:g_specMode
new g_teamScore

new g_disabledMsg[] = "Server has disabled that option"

public plugin_init() {
register_plugin("CS Stats","0.16","AMXX Dev Team")
register_event("CS_DeathMsg","eCSDeathMsg","a")
register_event("ResetHUD","eResetHud","b")
register_event("SendAudio","eRoundEnd","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw")
register_event("30","eInterMission","a")
register_clcmd("say /hp","cmdKiller",0,"- displays info. about your killer")
register_clcmd("say /statsme","cmdStatsMe",0,"- displays your stats")
register_clcmd("say /stats","cmdStats",0,"- displays others stats")
register_clcmd("say /top15","cmdTop15",0,"- displays top 15 players")
register_clcmd("say /rank","cmdRank",0,"- displays your server stats")
register_menucmd(register_menuid("Server Stats"),1023,"actionStatsMenu")
register_event("TextMsg","setSpecMode","bd","2&ec_Mod")
register_event("StatusValue","showRank","bd","1=2")
register_event( "TeamScore", "eTeamScore", "a" )
}

public plugin_cfg(){
new g_addStast[] = "amx_statscfg add ^"%s^" %s"
server_cmd(g_addStast,"Show Attackers","ShowAttackers")
server_cmd(g_addStast,"Show Victims","ShowVictims")
server_cmd(g_addStast,"Show killer","ShowKiller")
server_cmd(g_addStast,"Stats at the end of map","EndPlayer")
server_cmd(g_addStast,"Top15 at the end of map","EndTop15")
server_cmd(g_addStast,"Show killer hp&ap","KillerHpAp")
server_cmd(g_addStast,"Say /hp","SayHP")
server_cmd(g_addStast,"Say /stats","SayStatsAll")
server_cmd(g_addStast,"Say /top15","SayTop15")
server_cmd(g_addStast,"Say /rank","SayRank")
server_cmd(g_addStast,"Say /statsme","SayStatsMe")
server_cmd(g_addStast,"Spec. Rank Info","SpecRankInfo")
server_cmd(g_addStast,"Team Score","EndTeamScore")
server_cmd(g_addStast,"Most Kills","EndMostKills")
server_cmd(g_addStast,"Most Damage","EndMostDamage")
}

public eTeamScore(){
new team
read_data( 1, team, 1 )
g_teamScore[ (team=='C') ? 1 : 0 ] = read_data(2)
}

public setSpecMode(id) {
new arg
read_data( 2 , arg , 11 )
g_specMode[ id ] = ( arg == '2' )
}

public showRank(id)
if ( SpecRankInfo && g_specMode ){
    new a = read_data(2)
    if ( is_user_connected( a ) ){
      new name, data
      get_user_name( a ,name,31)
      new pos = get_user_stats( a ,data,data)
      set_hudmessage(255,255,255,0.02,0.85,2, 0.05, 0.1, 0.01, 3.0, 1)
      show_hudmessage(id,"%s's rank is %d of %d",name,pos,get_statsnum())
    }
}

/* build list of attackers */
getAttackers(id) {
new name,wpn, stats,body,found=0
new pos = copy(g_Buffer,2047,"Attackers:^n")
new amax = get_maxplayers()
for(new a = 1; a <= amax; ++a){
    if(get_user_astats(id,a,stats,body,wpn,31)){
      found = 1
      if (stats)
      format(wpn,31," -- %s",wpn)
      else
      wpn = 0
      get_user_name(a,name,31)
      pos += format(g_Buffer,2047-pos,"%s --%d hit%s / %d dmg %s^n",name,stats,(stats==1)?"":"s",stats,wpn)
    }
}
return found
}

/* build list of victims */
getVictims(id) {
new name,wpn, stats,body,found=0
new pos = copy(g_Buffer,2047,"Victims:^n")
new amax = get_maxplayers()
for(new a = 1; a <= amax; ++a){
    if(get_user_vstats(id,a,stats,body,wpn,31)){
      found = 1
      if (stats)
      format(wpn,31," -- %s",wpn)
      else
      wpn = 0
      get_user_name(a,name,31)
      pos += format(g_Buffer,2047-pos,"%s -- %d hit%s / %d dmg %s^n",name,stats,(stats==1)?"":"s",stats,wpn)
    }
}
return found
}

/* build list of hita for AV List */
getHits(id,killer) {
new stats, body, pos = 0
g_Buffer = 0
get_user_astats(id,killer,stats,body)
for(new a = 1; a < 8; ++a)
    if(body)
      pos += format(g_Buffer,2047-pos,"%s: %d^n",g_bodyParts,body)
}

/* get top 15 */
getTop15() {
new pos, stats, body, name
#if !defined NO_STEAM
new state
pos = copy(g_Buffer,2047,"<html><head><body><style type=^"text/css^">")
pos += copy(g_Buffer,2047-pos,"body{font-family:Arial,sans-serif;font-size:12px;color:#FFCC99;background-color:#000000;margin-left:8px;margin-top:3px}.header{background-color:#9C0000;}.one{background-color:#310000;}.two{background-color:#630000;}")
pos += copy(g_Buffer,2047-pos,"</style></head><body><table><tr class=^"header^"><td>#</td><td>Nick</td><td>Kills</td><td>Deaths</td><td>Hits</td><td>Shots</td><td>HS</td></tr>")

new imax = get_statsnum()
if (imax > 15) imax = 15
for(new a = 0; a < imax; ++a){
    if (equal(state,"one")) copy(state,3,"two")
    else copy(state,3,"one")
    get_stats(a,stats,body,name,31)
    pos += format(g_Buffer,2047-pos,"<tr class=^"%s^"><td>%d.</td><td>%s</td><td>%d</td><td>%d</td><td>%d</td><td>%d</td><td>%d</td></tr>",state,a+1,name,stats,stats,stats,stats,stats)
}
copy(g_Buffer,2047-pos,"</table></body></html>")
#else
pos = format(g_Buffer,2047," #%-28.27s %6s %6s %6s %6s %6s^n",
        "nick", "kills" , "deaths" , "hits","shots","hs" )
new imax = get_statsnum()
if (imax > 15) imax = 15
for(new a = 0; a < imax; ++a){
    get_stats(a,stats,body,name,31)
    pos += format(g_Buffer,2047-pos,"%2d. %-28.27s %6d %6d %6d %6d %6d^n",a+1,name,stats,stats,stats,stats,stats)
}
#endif
}

/* build list of hits for say hp */
getMyHits(id,killed) {
new name, stats, body
get_user_name(killed,name,31)
new pos = format(g_Buffer,2047,"You hit %s in:",name)
get_user_vstats(id,killed,stats,body)
for(new a = 1; a < 8; ++a){
    if(body)
      pos += format(g_Buffer,2047-pos," %s: %d ",g_bodyParts,body)
}
}

/* save hits and damage */
public eCSDeathMsg() {
    new killer = read_data(1)
    new victim = read_data(2)
    if ( killer == victim ) return
    new vorigin, korigin
    get_user_origin(victim,vorigin)
    get_user_origin(killer,korigin)
    g_Killers = killer
    g_Killers = get_user_health(killer)
    g_Killers = get_user_armor(killer)      
    g_Killers = get_distance(vorigin,korigin)
    if ( ShowKiller ){
      new name, stats, body, wpn, mstats, mbody
      get_user_name(killer,name,31)
      get_user_astats(victim,killer,stats,body,wpn,31)
      if ( !get_user_vstats(victim,killer,mstats,mbody) )
      mstats = mstats = 0
      set_hudmessage(220,80,0,0.05,0.15,0, 6.0, 12.0, 1.0, 2.0, 1)
      getHits(victim,killer)
      show_hudmessage(victim,"%s killed you with %s^nfrom distance of %.2f meters.^nHe did %d damage to you with %d hit%s^nand still has %dhp and %dap.^nYou did %d damage to him with %d hit%s.^nHe hits you in:^n%s",
          name,wpn,float(g_Killers) * 0.0254,stats,stats, (stats==1) ? "":"s",   g_Killers,g_Killers,
            mstats,mstats,(mstats==1) ? "" : "s",g_Buffer )
    }
    if ( ShowVictims && getVictims(victim) ){
      set_hudmessage(0,80,220,0.55,0.60,0, 6.0, 12.0, 1.0, 2.0, 4)
      show_hudmessage(victim,g_Buffer)
    }
    if ( ShowAttackers&& getAttackers(victim)){
      set_hudmessage(220,80,0,0.55,0.35,0, 6.0, 12.0, 1.0, 2.0, 3)
      show_hudmessage(victim,g_Buffer)
    }
    if (KillerHpAp ){
      new name, kmsg
      get_user_name(killer,name,31)
      format(kmsg,127,"%s still has %dhp and %dap",name,g_Killers,g_Killers)
      client_print(victim,print_console,kmsg)
      set_hudmessage(255,255,255,0.02,0.85,2, 1.5, 3.0, 0.02, 5.0, 1)
      show_hudmessage(victim,kmsg)
    }
}

public eResetHud( id )
g_Killers[ id ] = 0

public eRoundEnd()
set_task( 0.3 , "eRoundEndTask" )

public eRoundEndTask() {
if (ShowVictims || ShowAttackers ) {
    new players, pnum
    get_players( players , pnum, "a")
    for(new i = 0; i < pnum; ++i ) {
      if ( ShowVictims &&getVictims( players[ i ] )){
      set_hudmessage(0,80,220,0.55,0.60,0, 6.0, 12.0, 1.0, 2.0, 4)
      show_hudmessage( players[ i ] ,g_Buffer)
      }
      if ( ShowAttackers && getAttackers( players[ i ] ) ){
      set_hudmessage(220,80,0,0.55,0.35,0, 6.0, 12.0, 1.0, 2.0, 3)
      show_hudmessage( players[ i ] ,g_Buffer)
      }
    }
}
if ( EndMostKills || EndTeamScore || EndMostDamage){
    new players, pnum, stats,bodyhits, len = 0
    get_players( players , pnum )
    g_Buffer = 0
    if ( EndMostKills ){
      new kills = 0, who = 0, hs = 0
      for(new i = 0; i < pnum; ++i){
      get_user_rstats( players,stats, bodyhits )
      if ( stats > kills ){
          who = players
          kills = stats
          hs = stats
      }
      }
      if ( is_user_connected(who) ) {
      new name
      get_user_name( who, name, 31 )
      len += format(g_Buffer , 512 - len ,
          "Most kills: %s^n%d kill%s / %d headshot%s^n", name , kills , (kills == 1) ? "": "s",
            hs , (hs == 1) ? "": "s" )
      }
    }
    if ( EndMostDamage ) {
      new damage = 0, who = 0, hits = 0
      for(new i = 0; i < pnum; ++i){
      get_user_rstats( players,stats, bodyhits )
      if ( stats > damage ){
          who = players
          hits = stats
          damage = stats
      }
      }
      if ( is_user_connected(who) ) {
      new name
      get_user_name( who, name, 31 )
      len += format(g_Buffer , 512 - len ,
          "Most damage: %s^n%d damage / %d hit%s^n", name , damage , hits, (hits == 1) ? "": "s" )
      }
    }
    if ( EndTeamScore )
      format(g_Buffer , 512 - len , "TERRORISTs %d -- %d CTs^n", g_teamScore , g_teamScore )
    set_hudmessage(100,200,0,0.02,0.65,2, 0.01, 5.0, 0.01, 0.01, 2 )
    show_hudmessage( 0 , g_Buffer )
}
}

public cmdKiller(id) {
if ( !SayHP ){
    client_print(id,print_chat, g_disabledMsg )
    return PLUGIN_HANDLED
}
if (g_Killers) {
    new name, stats, body, wpn, mstats, mbody
    get_user_name(g_Killers,name,31)
    get_user_astats(id,g_Killers,stats,body,wpn,31)
    client_print(id,print_chat,"%s killed you with %s from distance of %.2f meters",name,wpn,float(g_Killers) * 0.0254 )
    client_print(id,print_chat,"He did %d damage to you with %d hit%s and still had %dhp and %dap",
      stats,stats,(stats==1)?"":"s" , g_Killers,g_Killers )
    if ( get_user_vstats(id,g_Killers,mstats,mbody) ){
      client_print(id,print_chat,"You did %d damage to him with %d hit%s",mstats, mstats,(mstats==1)?"":"s" )
      getMyHits(id,g_Killers)
      client_print(id,print_chat,g_Buffer)
    }
    else client_print(id,print_chat,"You did no damage to him")
}
else {
    client_print(id,print_chat,"You have no killer...")
}
return PLUGIN_CONTINUE
}

public cmdStatsMe(id){
if ( !SayStatsMe ){
    client_print(id,print_chat, g_disabledMsg )
    return PLUGIN_HANDLED
}
displayStats(id,id)
return PLUGIN_CONTINUE
}

public displayStats(id,dest) {
new pos, name, stats, body
get_user_wstats(id,0,stats,body)
#if !defined NO_STEAM
new state
pos = copy(g_Buffer,2047,"<html><head><body><style type=^"text/css^">")
pos += copy(g_Buffer,2047-pos,"body{font-family:Arial,sans-serif;font-size:12px;color:#FFCC99;background-color:#000000;margin-left:8px;margin-top:3px}.header{background-color:#9C0000;}.one{background-color:#310000;}.two{background-color:#630000;}")
pos += format(g_Buffer,2047-pos,"</style></head><body><table><tr class=^"one^"><td>Kills:</td><td>%d</td></tr><tr class=^"two^"><td>Deaths:</td><td>%d</td></tr><tr class=^"one^"><td>Damage:</td><td>%d</td></tr><tr class=^"two^"><td>Hits:</td><td>%d</td></tr><tr class=^"one^"><td>Shots:</td><td>%d</td></tr></table><br><br>",
    stats,stats,stats,stats,stats)
pos += copy(g_Buffer,2047-pos,"<table><tr class=^"header^"><td>Weapon</td><td>Shots</td><td>Hits</td><td>Damage</td><td>Kills</td><td>Deaths</td></tr>")
for(new a = 1; a < 31; ++a) {
    if (get_user_wstats(id,a,stats,body)) {
      if (equal(state,"one")) copy(state,3,"two")
      else copy(state,3,"one")
      get_weaponname(a,name,31)
      pos += format(g_Buffer,2047-pos,"<tr class=^"%s^"><td>%s</td><td>%d</td><td>%d</td><td>%d</td><td>%d</td><td>%d</td></tr>",
      state,name,stats,stats,stats,stats,stats)
    }
}
copy(g_Buffer,2047-pos,"</table></body></html>")
#else
pos = format(g_Buffer,2047,"%6s: %d^n%6s: %d^n%6s: %d^n%6s: %d^n%6s: %d^n^n",
    "Kills",stats,"Deaths",stats,"Damage",stats,"Hits",stats,"Shots",stats)
pos += format(g_Buffer,2047-pos, "%-12.11s%6s%6s%6s%6s%6s^n",
        "weapon","shots","hits","damage","kills","deaths")
for(new a = 1; a < 31; ++a) {
    if (get_user_wstats(id,a,stats,body)){
      get_weaponname(a,name,31)
      pos += format(g_Buffer,2047-pos,"%-12.11s%6d%6d%6d%6d%6d^n",
      name,stats,stats,stats,stats,stats)
    }
}
#endif
get_user_name(id,name,31)
show_motd(dest,g_Buffer,name)
return PLUGIN_CONTINUE
}

public cmdRank(id){
if ( !SayRank ){
    client_print(id,print_chat, g_disabledMsg )
    return PLUGIN_HANDLED
}
displayRank(id,id)
return PLUGIN_CONTINUE
}

displayRank(id,dest) {
new pos, name, stats, body
new rank_pos = get_user_stats(id,stats,body)
#if !defined NO_STEAM
pos = copy(g_Buffer,2047,"<html><head><body><style type=^"text/css^">")
pos += copy(g_Buffer,2047-pos,"body{font-family:Arial,sans-serif;font-size:12px;color:#FFCC99;background-color:#000000;margin-left:8px;margin-top:3px}.header{background-color:#9C0000;}.one{background-color:#310000;}.two{background-color:#630000;}")
pos += format(g_Buffer,2047-pos,"</style></head><body><table><tr><td colspan=2>%s rank is %d of %d</td></tr>",(id==dest)?"Your":"His", rank_pos,get_statsnum())
pos += format(g_Buffer,2047-pos,"<tr class=^"one^"><td>Kills:</td><td>%d</td></tr><tr class=^"two^"><td>Deaths:</td><td>%d</td></tr><tr class=^"one^"><td>Damage:</td><td>%d</td></tr><tr class=^"two^"><td>Hits:</td><td>%d</td></tr><tr class=^"one^"><td>Shots:</td><td>%d</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td></tr>",
    stats,stats,stats,stats,stats)
pos += format(g_Buffer,2047-pos,"<tr class=^"header^"><td colspan=2>Hits</td></tr><tr class=^"one^"><td>%s:</td><td>%d</td></tr><tr class=^"two^"><td>%s:</td><td>%d</td></tr><tr class=^"one^"><td>%s:</td><td>%d</td></tr><tr class=^"two^"><td>%s:</td><td>%d</td></tr><tr class=^"one^"><td>%s:</td><td>%d</td></tr><tr class=^"two^"><td>%s:</td><td>%d</td></tr><tr class=^"one^"><td>%s:</td><td>%d</td></tr>",
    g_bodyParts,body,g_bodyParts,body,g_bodyParts,body, g_bodyParts,body,
    g_bodyParts,body,g_bodyParts,body,g_bodyParts,body)
copy(g_Buffer,2047-pos,"</table></body></html>")
#else
pos = format(g_Buffer,2047,"%s rank is %d of %d^n^n",(id==dest)?"Your":"His", rank_pos,get_statsnum())
pos += format(g_Buffer,2047-pos,"%10s: %d^n%10s: %d^n%10s: %d^n%10s: %d^n%10s: %d^n^n",
    "Kills",stats,"Deaths",stats,"Damage",stats,"Hits",stats,"Shots",stats)
pos += format(g_Buffer,2047-pos,"%10s:^n%10s: %d^n%10s: %d^n%10s: %d^n%10s: %d^n%10s: %d^n%10s: %d^n%10s: %d",
    "Hits",g_bodyParts,body,g_bodyParts,body,g_bodyParts,body, g_bodyParts,body,
    g_bodyParts,body,g_bodyParts,body,g_bodyParts,body)
#endif
get_user_name(id,name,31)
show_motd(dest,g_Buffer,name)
}

public cmdTop15(id) {
if ( !SayTop15 ){
    client_print(id,print_chat, g_disabledMsg )
    return PLUGIN_HANDLED
}
getTop15()
show_motd(id,g_Buffer,"Top 15")
return PLUGIN_CONTINUE
}

public endGameStats(){
if ( EndPlayer ){
    new players, inum
    get_players(players,inum)
    for(new i = 0; i < inum; ++i)
      displayStats(players,players)
}
else if ( EndTop15 ) {
    new players, inum
    get_players(players,inum)
    getTop15()
    for(new i = 0; i < inum; ++i)
      show_motd(players,g_Buffer,"Top 15")
}
}

public eInterMission()
set_task(1.0,"endGameStats")

public cmdStats(id){
if ( !SayStatsAll ){
    client_print(id,print_chat, g_disabledMsg )
    return PLUGIN_HANDLED
}
showStatsMenu(id,g_userPosition=0)
return PLUGIN_CONTINUE
}

public actionStatsMenu(id,key){
switch(key){
case 7: {
    g_userState = 1 - g_userState
    showStatsMenu(id,g_userPosition)
}
case 8: showStatsMenu(id,++g_userPosition)
case 9: showStatsMenu(id,--g_userPosition)
default:{
    new option = g_userPosition * 7 + key
    new index = g_userPlayers
    if (is_user_connected(index)){
      if (g_userState)
      displayRank(index,id)
      else
      displayStats(index,id)
    }
    showStatsMenu(id,g_userPosition)
    }
}
return PLUGIN_HANDLED
}

showStatsMenu(id,pos){
if (pos < 0) return PLUGIN_HANDLED
new menu_body, inum, k = 0, start = pos * 7
get_players(g_userPlayers,inum)
if (start >= inum) start = pos = g_userPosition = 0
new len = format(menu_body,511,"\yServer Stats\R%d/%d^n\w^n",pos + 1,((inum/7)+((inum%7)?1:0)))
new name, end = start + 7, keys = (1<<9)|(1<<7)
if (end > inum) end = inum
for(new a = start; a < end; ++a){
    get_user_name(g_userPlayers,name,31)
    keys |= (1<<k)
    len += format(menu_body,511-len,"%d. %s^n\w",++k,name)
}
len += format(menu_body,511-len,"^n8. %s^n\w",g_userState ? "Show rank" : "Show stats" )
if (end != inum){
    format(menu_body,511-len,"^n9. More...^n0. %s" , pos ? "Back" : "Exit" )
    keys |= (1<<8)
}
else format(menu_body,511-len,"^n0. %s" , pos ? "Back" : "Exit" )
show_menu(id,keys,menu_body)
return PLUGIN_HANDLED
}

英文版的stats.sma :rolleyes::spiderman:boss:

yanexp 发表于 2006-1-13 16:57:44

回复: 请问yanexp,网页查看CS排行及状态+地图背景PHP 能否放在TOP15或启动页中?

Post by QQ8
yanexp 路过就请进来一下

以下是我根椐你所给出代码修改的sma,原代码应该是AMXX0.16版的,由于我用AMXX1.0编译出错,所以用AMXX0.2编译,在AMXX1.0里使用(不知有无问题)。
我现在遇到的问题是这样的,服务器会自动关了TOP15这个选项,就是打/top15的时候,显示服务器已经关闭此选项,不知何解。换图后,能显示一次,...


版本不一样的Statsx需要到选项里重启用 top15功能

或者改源码将开关部分改掉也行


public cmdTop15(id) {
/*
if ( !SayTop15 ){
    client_print(id,print_chat, g_disabledMsg )
    return PLUGIN_HANDLED
}
*/
getTop15()
show_motd(id,g_Buffer,"Top 15")
return PLUGIN_CONTINUE
}

ifubo 发表于 2006-1-15 19:55:20

回复: 请问yanexp,网页查看CS排行及状态+地图背景PHP 能否放在TOP15或启动页中?

Post by wzf828
我修改的在AMXX1.60 下使用   :cold::super:
兄弟能不能发上来呀,amxx1.6下修改过的stats.amxx,谢谢啦,俺会永远感谢你的 :gogo:

aihaoyun 发表于 2006-1-15 20:18:11

回复: 请问yanexp,网页查看CS排行及状态+地图背景PHP 能否放在TOP15或启动页中?

Post by yanexp
可以是可以,你找个登录后在MOTD显示信息的插件源码改改就行了!

广告MOTD也要插件支持呀???

Zero0senven 发表于 2006-1-23 20:58:04

回复: 请问yanexp,网页查看CS排行及状态+地图背景PHP 能否放在TOP15或启动页中?

我修改的在AMXX1.60 下使用 :cold: :super:
发上来看看,还有源代码!!;) ;)

mao0797 发表于 2006-7-17 17:10:42

回复: 请问yanexp,网页查看CS排行及状态+地图背景PHP 能否放在TOP15或启动页中?

查找 /* get top 15 */处替换为以下内容即可,居我这测试在CS里以WEB显示TOP15数据还是很完整的!


我怎么都找不到/* get top 15 */

请yanexp帮我看看,谢谢!

Tiger2008 发表于 2010-5-12 17:43:39

找了 半天了 没钱呀

Tiger2008 发表于 2010-5-12 17:44:54

版主我真的想要呀 已下载就扣5币 没钱了 谅解呀
页: 1 2 3 4 5 6 [7] 8
查看完整版本: 请问yanexp,网页查看CS排行及状态+地图背景PHP 能否放在TOP15或启动页中?