Stats: Replace len hardcoded contents by charsmax and sizeof
This commit is contained in:
		@@ -222,19 +222,19 @@ public cmdStatsMe(id){
 | 
			
		||||
displayStats(id,dest) {
 | 
			
		||||
  new name[32], stats[8], body[8]
 | 
			
		||||
  get_user_wstats(id,0,stats,body)
 | 
			
		||||
  new pos = format(g_Buffer,2047,"Kills: %d^nDeaths: %d^nTKs: %d^nDamage: %d^nHits: %d^nShots: %d^n^n",
 | 
			
		||||
  new pos = format(g_Buffer,charsmax(g_Buffer),"Kills: %d^nDeaths: %d^nTKs: %d^nDamage: %d^nHits: %d^nShots: %d^n^n",
 | 
			
		||||
    stats[0],stats[1],stats[3],stats[6],stats[5],stats[4])
 | 
			
		||||
  new a
 | 
			
		||||
  for( a = 1; a < TFCMAX_WEAPONS; a++) {
 | 
			
		||||
    if (get_user_wstats(id,a,stats,body)){
 | 
			
		||||
      if ( xmod_is_melee_wpn(a) )
 | 
			
		||||
        stats[4] = -1;
 | 
			
		||||
      xmod_get_wpnname(a,name,31)
 | 
			
		||||
      pos += format(g_Buffer[pos],2047-pos,"%s shots: %d  hits: %d  damage: %d  kills: %d  deaths: %d^n",
 | 
			
		||||
      xmod_get_wpnname(a,name,charsmax(name))
 | 
			
		||||
      pos += format(g_Buffer[pos],charsmax(g_Buffer)-pos,"%s shots: %d  hits: %d  damage: %d  kills: %d  deaths: %d^n",
 | 
			
		||||
        name,stats[4],stats[5],stats[6],stats[0],stats[1])
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  get_user_name(id,name,31)
 | 
			
		||||
  get_user_name(id,name,charsmax(name))
 | 
			
		||||
  show_motd(dest,g_Buffer,name)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -250,13 +250,13 @@ public cmdRank(id){
 | 
			
		||||
displayRank(id,dest) {
 | 
			
		||||
  new name[MAX_NAME_LENGTH], stats[8], body[8]
 | 
			
		||||
  new rank_pos = get_user_stats(id,stats,body)
 | 
			
		||||
  new pos = format(g_Buffer,2047,"Kills: %d^nDeaths: %d^nTKs: %d^nDamage: %d^nHits: %d^nShots: %d^n^n",
 | 
			
		||||
  new pos = format(g_Buffer,charsmax(g_Buffer),"Kills: %d^nDeaths: %d^nTKs: %d^nDamage: %d^nHits: %d^nShots: %d^n^n",
 | 
			
		||||
    stats[0],stats[1],stats[3],stats[6],stats[5],stats[4])
 | 
			
		||||
  pos += format(g_Buffer[pos],2047-pos,"Hits:^n%s: %d^n%s: %d^n%s: %d^n%s: %d^n%s: %d^n%s: %d^n%s: %d^n^n",
 | 
			
		||||
  pos += format(g_Buffer[pos],charsmax(g_Buffer)-pos,"Hits:^n%s: %d^n%s: %d^n%s: %d^n%s: %d^n%s: %d^n%s: %d^n%s: %d^n^n",
 | 
			
		||||
    g_bodyParts[1],body[1],g_bodyParts[2],body[2],g_bodyParts[3],body[3], g_bodyParts[4],body[4],
 | 
			
		||||
    g_bodyParts[5],body[5],g_bodyParts[6],body[6],g_bodyParts[7],body[7])
 | 
			
		||||
  format(g_Buffer[pos],2047-pos,"%s rank is %d of %d",(id==dest)?"Your":"His", rank_pos,get_statsnum())
 | 
			
		||||
  get_user_name(id,name,31)
 | 
			
		||||
  format(g_Buffer[pos],charsmax(g_Buffer)-pos,"%s rank is %d of %d",(id==dest)?"Your":"His", rank_pos,get_statsnum())
 | 
			
		||||
  get_user_name(id,name,charsmax(name))
 | 
			
		||||
  show_motd(dest,g_Buffer,name)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -273,14 +273,14 @@ public cmdTop15(id) {
 | 
			
		||||
/* get top 15 */
 | 
			
		||||
getTop15(){
 | 
			
		||||
  new stats[8], body[8], name[MAX_NAME_LENGTH]
 | 
			
		||||
  new pos = copy(g_Buffer,2047,"#   nick                           kills/deaths    TKs      hits/shots/headshots^n")
 | 
			
		||||
  new pos = copy(g_Buffer,charsmax(g_Buffer),"#   nick                           kills/deaths    TKs      hits/shots/headshots^n")
 | 
			
		||||
  new imax = get_statsnum()
 | 
			
		||||
  if (imax > 15) imax = 15
 | 
			
		||||
  for(new a = 0; a < imax; ++a){
 | 
			
		||||
    get_stats(a,stats,body,name,31)
 | 
			
		||||
    replace_all(name, 31, "<", "[")
 | 
			
		||||
    replace_all(name, 31, ">", "]")
 | 
			
		||||
    pos += format(g_Buffer[pos],2047-pos,"%2d.  %-28.27s    %d/%d         %d            %d/%d/%d^n",a+1,name,stats[0],stats[1],stats[3],stats[5],stats[4],stats[2])
 | 
			
		||||
    get_stats(a,stats,body,name,charsmax(name))
 | 
			
		||||
    replace_all(name, charsmax(name), "<", "[")
 | 
			
		||||
    replace_all(name, charsmax(name), ">", "]")
 | 
			
		||||
    pos += format(g_Buffer[pos],charsmax(g_Buffer)-pos,"%2d.  %-28.27s    %d/%d         %d            %d/%d/%d^n",a+1,name,stats[0],stats[1],stats[3],stats[5],stats[4],stats[2])
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -319,17 +319,17 @@ public cmdStats(id){
 | 
			
		||||
/* build list of attackers */ 
 | 
			
		||||
getAttackers(id) { 
 | 
			
		||||
  new name[MAX_NAME_LENGTH],wpn[32], stats[8],body[8],found=0 
 | 
			
		||||
  new pos = copy(g_Buffer,2047,"Attackers:^n") 
 | 
			
		||||
  new pos = copy(g_Buffer,charsmax(g_Buffer),"Attackers:^n") 
 | 
			
		||||
  for(new a = 1; a <= MaxClients; ++a){ 
 | 
			
		||||
 | 
			
		||||
    if(get_user_astats(id,a,stats,body,wpn,31)){ 
 | 
			
		||||
    if(get_user_astats(id,a,stats,body,wpn,charsmax(wpn))){ 
 | 
			
		||||
      found = 1 
 | 
			
		||||
      if (stats[0]) 
 | 
			
		||||
        format(wpn,31," -- %s",wpn) 
 | 
			
		||||
        format(wpn,charsmax(wpn)," -- %s",wpn) 
 | 
			
		||||
      else 
 | 
			
		||||
        wpn[0] = 0 
 | 
			
		||||
      get_user_name(a,name,31) 
 | 
			
		||||
      pos += format(g_Buffer[pos],2047-pos,"%s -- %d dmg / %d hit(s)%s^n",name,stats[6],stats[5],wpn) 
 | 
			
		||||
      get_user_name(a,name,charsmax(name)) 
 | 
			
		||||
      pos += format(g_Buffer[pos],charsmax(g_Buffer)-pos,"%s -- %d dmg / %d hit(s)%s^n",name,stats[6],stats[5],wpn) 
 | 
			
		||||
    } 
 | 
			
		||||
  } 
 | 
			
		||||
  return found 
 | 
			
		||||
@@ -339,16 +339,16 @@ getAttackers(id) {
 | 
			
		||||
/* build list of victims */ 
 | 
			
		||||
getVictims(id) { 
 | 
			
		||||
  new name[MAX_NAME_LENGTH],wpn[32], stats[8],body[8],found=0 
 | 
			
		||||
  new pos = copy(g_Buffer,2047,"Victims:^n") 
 | 
			
		||||
  new pos = copy(g_Buffer,charsmax(g_Buffer),"Victims:^n") 
 | 
			
		||||
  for(new a = 1; a <= MaxClients; ++a){ 
 | 
			
		||||
    if(get_user_vstats(id,a,stats,body,wpn,31)){ 
 | 
			
		||||
    if(get_user_vstats(id,a,stats,body,wpn,charsmax(wpn))){ 
 | 
			
		||||
      found = 1 
 | 
			
		||||
      if (stats[1]) 
 | 
			
		||||
        format(wpn,31," -- %s",wpn) 
 | 
			
		||||
        format(wpn,charsmax(wpn)," -- %s",wpn) 
 | 
			
		||||
      else 
 | 
			
		||||
        wpn[0] = 0 
 | 
			
		||||
      get_user_name(a,name,31) 
 | 
			
		||||
      pos += format(g_Buffer[pos],2047-pos,"%s -- %d dmg / %d hit(s)%s^n",name,stats[6],stats[5],wpn) 
 | 
			
		||||
      get_user_name(a,name,charsmax(name)) 
 | 
			
		||||
      pos += format(g_Buffer[pos],charsmax(g_Buffer)-pos,"%s -- %d dmg / %d hit(s)%s^n",name,stats[6],stats[5],wpn) 
 | 
			
		||||
    } 
 | 
			
		||||
  } 
 | 
			
		||||
  return found 
 | 
			
		||||
@@ -359,22 +359,22 @@ getHits(id,killer) {
 | 
			
		||||
  new stats[8], body[8], pos = 0 
 | 
			
		||||
  g_Buffer[0] = 0 
 | 
			
		||||
  get_user_astats(id,killer,stats,body) 
 | 
			
		||||
  for(new a = 1; a < 8; ++a) 
 | 
			
		||||
  for(new a = 1; a < sizeof(body); ++a) 
 | 
			
		||||
    if(body[a]) 
 | 
			
		||||
      pos += format(g_Buffer[pos],2047-pos,"%s: %d^n",g_bodyParts[a],body[a]) 
 | 
			
		||||
      pos += format(g_Buffer[pos],charsmax(g_Buffer)-pos,"%s: %d^n",g_bodyParts[a],body[a]) 
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* build list of hits for say hp */ 
 | 
			
		||||
getMyHits(id,killed) { 
 | 
			
		||||
  new name[MAX_NAME_LENGTH], stats[8], body[8], found = 0 
 | 
			
		||||
  get_user_name(killed,name,31) 
 | 
			
		||||
  new pos = format(g_Buffer,2047,"You hit %s in:",name) 
 | 
			
		||||
  get_user_name(killed,name,charsmax(name)) 
 | 
			
		||||
  new pos = format(g_Buffer,charsmax(g_Buffer),"You hit %s in:",name) 
 | 
			
		||||
  get_user_vstats(id,killed,stats,body) 
 | 
			
		||||
  for(new a = 1; a < 8; ++a){ 
 | 
			
		||||
  for(new a = 1; a < sizeof(body); ++a){ 
 | 
			
		||||
    if(body[a]){ 
 | 
			
		||||
      found = 1 
 | 
			
		||||
      pos += format(g_Buffer[pos],2047-pos," %s: %d ",g_bodyParts[a],body[a]) 
 | 
			
		||||
      pos += format(g_Buffer[pos],charsmax(g_Buffer)-pos," %s: %d ",g_bodyParts[a],body[a]) 
 | 
			
		||||
    } 
 | 
			
		||||
  } 
 | 
			
		||||
  return found 
 | 
			
		||||
@@ -390,9 +390,9 @@ public cmdKiller(id) {
 | 
			
		||||
    return PLUGIN_HANDLED
 | 
			
		||||
  }
 | 
			
		||||
  if (g_Killers[id][0]) {
 | 
			
		||||
    new name[MAX_NAME_LENGTH], stats[8], body[8], wpn[33], mstats[8], mbody[8]
 | 
			
		||||
    get_user_name(g_Killers[id][0],name,31)
 | 
			
		||||
    get_user_astats(id,g_Killers[id][0],stats,body,wpn,31)
 | 
			
		||||
    new name[MAX_NAME_LENGTH], stats[8], body[8], wpn[32], mstats[8], mbody[8]
 | 
			
		||||
    get_user_name(g_Killers[id][0],name,charsmax(name))
 | 
			
		||||
    get_user_astats(id,g_Killers[id][0],stats,body,wpn,charsmax(wpn))
 | 
			
		||||
    client_print(id,print_chat,"%s killed you with %s from distance of %.2f meters",  name,wpn,float(g_Killers[id][3]) * 0.0254 )
 | 
			
		||||
    client_print(id,print_chat,"He did %d damage to you with %d hit%s and still had %dhp and %dap",
 | 
			
		||||
      stats[6],stats[5],(stats[5]==1)?"":"s" , g_Killers[id][1],g_Killers[id][2] )
 | 
			
		||||
@@ -441,22 +441,22 @@ showStatsMenu(id,pos){
 | 
			
		||||
  get_players(g_userPlayers[id],inum)
 | 
			
		||||
  if (start >= inum) start = pos = g_userPosition[id] = 0
 | 
			
		||||
 | 
			
		||||
  new len = format(menu_body,511,"Server Stats %d/%d^n^n",pos + 1,((inum/max_menupos)+((inum%max_menupos)?1:0)))
 | 
			
		||||
  new len = format(menu_body,charsmax(menu_body),"Server Stats %d/%d^n^n",pos + 1,((inum/max_menupos)+((inum%max_menupos)?1:0)))
 | 
			
		||||
  new name[MAX_NAME_LENGTH], end = start + max_menupos, keys = (1<<9)|(1<<7)
 | 
			
		||||
  if (end > inum) end = inum
 | 
			
		||||
  for(new a = start; a < end; ++a){
 | 
			
		||||
    get_user_name(g_userPlayers[id][a],name,31)
 | 
			
		||||
    get_user_name(g_userPlayers[id][a],name,charsmax(name))
 | 
			
		||||
    keys |= (1<<k)
 | 
			
		||||
    len += format(menu_body[len],511-len,"%d. %s^n",++k,name)
 | 
			
		||||
    len += format(menu_body[len],charsmax(menu_body)-len,"%d. %s^n",++k,name)
 | 
			
		||||
  }
 | 
			
		||||
  len += format(menu_body[len],511-len,"^n8. %s^n",g_userState[id] ? "Show rank" : "Show stats" )
 | 
			
		||||
  len += format(menu_body[len],charsmax(menu_body)-len,"^n8. %s^n",g_userState[id] ? "Show rank" : "Show stats" )
 | 
			
		||||
  if (end != inum){
 | 
			
		||||
    len += format(menu_body[len],511-len,"^n9. More...^n0. %s" , pos ? "Back" : "Exit" )
 | 
			
		||||
    len += format(menu_body[len],charsmax(menu_body)-len,"^n9. More...^n0. %s" , pos ? "Back" : "Exit" )
 | 
			
		||||
    keys |= (1<<8)
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  else len += format(menu_body[len],511-len,"^n0. %s" , pos ? "Back" : "Exit" )
 | 
			
		||||
  else len += format(menu_body[len],charsmax(menu_body)-len,"^n0. %s" , pos ? "Back" : "Exit" )
 | 
			
		||||
  show_menu(id,keys,menu_body)
 | 
			
		||||
  return PLUGIN_HANDLED
 | 
			
		||||
}
 | 
			
		||||
@@ -481,7 +481,7 @@ public client_damage(attacker,victim,damage,wpnindex,hitplace,TA){
 | 
			
		||||
/* save state at death */ 
 | 
			
		||||
public client_death(killer,victim,wpnindex,hitplace,TK){
 | 
			
		||||
  new killer_name[MAX_NAME_LENGTH]
 | 
			
		||||
  get_user_name(killer,killer_name,31) 
 | 
			
		||||
  get_user_name(killer,killer_name,charsmax(killer_name)) 
 | 
			
		||||
 | 
			
		||||
  if ( KillingStreak || KillingStreakSound ){ 
 | 
			
		||||
    g_streakKills[ victim ][ 1 ]++
 | 
			
		||||
@@ -493,7 +493,7 @@ public client_death(killer,victim,wpnindex,hitplace,TK){
 | 
			
		||||
  new selfKill = ( killer == victim ) ? 1:0
 | 
			
		||||
 | 
			
		||||
  new victim_name[MAX_NAME_LENGTH] 
 | 
			
		||||
  get_user_name(victim,victim_name,31) 
 | 
			
		||||
  get_user_name(victim,victim_name,charsmax(victim_name)) 
 | 
			
		||||
 | 
			
		||||
  new Float:statstime = get_cvar_float("tfcstats_statstime")
 | 
			
		||||
 | 
			
		||||
@@ -527,9 +527,9 @@ public client_death(killer,victim,wpnindex,hitplace,TK){
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  if ( ShowKiller && !(!get_cvar_num("tfcstats_rankbots") &&  (is_user_bot(killer) || is_user_bot(killer)))  ){ 
 | 
			
		||||
    new stats[8], body[8], wpn[33], mstats[8], mbody[8] 
 | 
			
		||||
    new stats[8], body[8], wpn[32], mstats[8], mbody[8] 
 | 
			
		||||
  
 | 
			
		||||
    get_user_astats(victim,killer,stats,body,wpn,31) 
 | 
			
		||||
    get_user_astats(victim,killer,stats,body,wpn,charsmax(wpn)) 
 | 
			
		||||
    get_user_vstats(victim,killer,mstats,mbody) 
 | 
			
		||||
    set_hudmessage(220,80,0,0.05,0.15,0, statstime, 12.0, 1.0, 2.0, -1) 
 | 
			
		||||
    getHits(victim,killer) 
 | 
			
		||||
@@ -540,7 +540,7 @@ public client_death(killer,victim,wpnindex,hitplace,TK){
 | 
			
		||||
 | 
			
		||||
  if ( KillerHp ){
 | 
			
		||||
    new kmsg[128]
 | 
			
		||||
    format(kmsg,127,"%s still has %dhp and %d ap",killer_name,g_Killers[victim][1],g_Killers[victim][1])
 | 
			
		||||
    format(kmsg,charsmax(kmsg),"%s still has %dhp and %d ap",killer_name,g_Killers[victim][1],g_Killers[victim][1])
 | 
			
		||||
    client_print(victim,print_console, "%s", kmsg)
 | 
			
		||||
    set_hudmessage(255,255,255,0.02,0.9,2, 1.5, 3.0, 0.02, 5.0, -1)
 | 
			
		||||
    show_hudmessage(victim, "%s", kmsg)
 | 
			
		||||
@@ -572,7 +572,7 @@ public client_death(killer,victim,wpnindex,hitplace,TK){
 | 
			
		||||
      new param[2]
 | 
			
		||||
      param[0] = killer 
 | 
			
		||||
      param[1] = g_multiKills[killer][0] 
 | 
			
		||||
      set_task( 4.0 + float( param[1] ) ,"checkKills",0,param,2)
 | 
			
		||||
      set_task( 4.0 + float( param[1] ) ,"checkKills",0,param,sizeof(param))
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if ( xmod_is_melee_wpn(wpnindex) && ( KnifeKill || KnifeKillSound )  ){
 | 
			
		||||
@@ -601,11 +601,11 @@ public client_death(killer,victim,wpnindex,hitplace,TK){
 | 
			
		||||
  if ( headshot && (HeadShotKill || HeadShotKillSound) && !xmod_is_melee_wpn(wpnindex) ){
 | 
			
		||||
    if ( HeadShotKill ){
 | 
			
		||||
      new weapon[32], message[256]
 | 
			
		||||
      xmod_get_wpnname(wpnindex,weapon,31) 
 | 
			
		||||
      copy( message, sizeof(message)-1, g_HeadShots[ random_num(0,6) ] )
 | 
			
		||||
      replace( message, sizeof(message)-1, "$vn", victim_name )
 | 
			
		||||
      replace( message, sizeof(message)-1, "$wn", weapon )    
 | 
			
		||||
      replace( message, sizeof(message)-1, "$kn", killer_name )
 | 
			
		||||
      xmod_get_wpnname(wpnindex,weapon,charsmax(weapon)) 
 | 
			
		||||
      copy( message, charsmax(message), g_HeadShots[ random_num(0,6) ] )
 | 
			
		||||
      replace( message, charsmax(message), "$vn", victim_name )
 | 
			
		||||
      replace( message, charsmax(message), "$wn", weapon )    
 | 
			
		||||
      replace( message, charsmax(message), "$kn", killer_name )
 | 
			
		||||
      set_hudmessage(100, 100, 255, -1.0, 0.19, 0, 6.0, 6.0, 0.5, 0.15, -1) 
 | 
			
		||||
      for (new i=1;i<=MaxClients;i++){
 | 
			
		||||
        if ( g_Killers[i][0] && g_DeathStats[i] > get_gametime() )
 | 
			
		||||
@@ -642,13 +642,13 @@ public showDoubleKill(){
 | 
			
		||||
 | 
			
		||||
  if ( DoubleKill ) {
 | 
			
		||||
    new name[MAX_NAME_LENGTH],message[128]
 | 
			
		||||
    get_user_name(g_prevKillerId,name,31)
 | 
			
		||||
    copy( message, 127, g_DoubleKillMsg[pos] )
 | 
			
		||||
    replace( message, 127 , "$kn", name )
 | 
			
		||||
    get_user_name(g_prevKillerId,name,charsmax(name))
 | 
			
		||||
    copy( message, charsmax(message), g_DoubleKillMsg[pos] )
 | 
			
		||||
    replace( message, charsmax(message) , "$kn", name )
 | 
			
		||||
    if ( pos == 2 ){
 | 
			
		||||
      new kills[3]
 | 
			
		||||
      num_to_str(g_KillCount,kills,2)
 | 
			
		||||
      replace( message, 127 , "$kk", kills )
 | 
			
		||||
      num_to_str(g_KillCount,kills,charsmax(kills))
 | 
			
		||||
      replace( message, charsmax(message) , "$kk", kills )
 | 
			
		||||
    }
 | 
			
		||||
    set_hudmessage(65, 102, 158, -1.0, 0.25, 0, 6.0, 6.0, 0.5, 0.15, -1)
 | 
			
		||||
    for (new i=1;i<=MaxClients;i++){
 | 
			
		||||
@@ -671,7 +671,7 @@ public checkKills(param[]){
 | 
			
		||||
    if ( a > -1 ){
 | 
			
		||||
      if ( MultiKill ) {
 | 
			
		||||
        new name[MAX_NAME_LENGTH]
 | 
			
		||||
        get_user_name(id,name,31)
 | 
			
		||||
        get_user_name(id,name,charsmax(name))
 | 
			
		||||
        set_hudmessage(255, 0, 100, 0.05, 0.65, 2, 0.02, 6.0, 0.01, 0.1, -1)
 | 
			
		||||
        if ( a > 6 ) a = 6
 | 
			
		||||
        for (new i=1;i<=MaxClients;i++){
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user