rendered paste body<?phpif(INCLUDED!==true)exit;// ==================== //$pathway_info[] = array('title'=>$lang['honor'],'link'=>'index.php?n=server&sub=honor');// ==================== //// some config //$max_display_chars = 200; // Only top 40 in stats$site_defines = Array( 'character_race' => Array( 1 => $lang['Human'], 2 => $lang['Orc'], 3 => $lang['Dwarf'], 4 => $lang['Nightelf'], 5 => $lang['Undead'], 6 => $lang['Tauren'], 7 => $lang['Gnome'], 8 => $lang['Troll'], 9 => $lang['Goblin'], 10 => $lang['Bloodelf'], 11 => $lang['Dranei'], ), 'character_class' => Array( 1 => $lang['Warrior'], 2 => $lang['Paladin'], 3 => $lang['Hunter'], 4 => $lang['Rogue'], 5 => $lang['Priest'], 7 => $lang['Shaman'], 8 => $lang['Mage'], 9 => $lang['Warlock'], 11 => $lang['Druid'], ), 'character_gender' => Array( 0 => $lang['Male'], 1 => $lang['Female'], 2 => 'None', ), 'character_rank' => Array( 'alliance' => Array( 1 => $lang['ar1'], 2 => $lang['ar2'], 3 => $lang['ar3'], 4 => $lang['ar4'], 5 => $lang['ar5'], 6 => $lang['ar6'], 7 => $lang['ar7'], 8 => $lang['ar8'], 9 => $lang['ar9'], 10 => $lang['ar10'], 11 => $lang['ar11'], 12 => $lang['ar12'], 13 => $lang['ar13'], 14 => $lang['ar14'] ), 'horde' => Array( 1 => $lang['hr1'], 2 => $lang['hr2'], 3 => $lang['hr3'], 4 => $lang['hr4'], 5 => $lang['hr5'], 6 => $lang['hr6'], 7 => $lang['hr7'], 8 => $lang['hr8'], 9 => $lang['hr9'], 10 => $lang['hr10'], 11 => $lang['hr11'], 12 => $lang['hr12'], 13 => $lang['hr13'], 14 => $lang['hr14'] ) ));if(!$_GET['realm']){ $realm_list = realm_list();}elseif($_GET['realm']){ $pos = 0; $realm_list = realm_list(); $realm = $DB->selectRow("SELECT * FROM realmlist WHERE id=?d LIMIT 1",$_GET['realm']); $pathway_info[] = array('title'=>$realm['name'],''); if(!$realm['dbinfo'])output_message('alert','Check field <u>dbinfo</u> in table `realmlist` for realm id='.$realm['id']); $wsdb_info = parse_worlddb_info($realm['dbinfo']); $WSDB = DbSimple_Generic::connect("".$realmd['db_type']."://".$wsdb_info['user'].":".$wsdb_info['password']."@".$wsdb_info['host'].":".$wsdb_info['port']."/".$wsdb_info['db'].""); if($WSDB)$WSDB->setErrorHandler('databaseErrorHandler'); if($WSDB)$WSDB->query("SET NAMES ".$mangos['db_encoding']); if($WSDB)$honor = $WSDB->select("SELECT guid, CAST( SUBSTRING_INDEX(SUBSTRING_INDEX(`data`, ' ', 1433), ' ', -1) AS UNSIGNED) AS honor FROM `character`;"); foreach($honor as $res_row) {// if($res_row['type']==0){ $honor_arr[$res_row['guid']] += $res_row['honor'];// }elseif($res_row['type']==2){// $honor_arr[$res_row['guid']] -= $res_row['honor'];// } }// print_r($honor_arr);// exit; unset($honor); if(!is_array($honor_arr))$honor_arr = array(); $honor_arr = array_filter($honor_arr,"zehohonorfilter"); arsort($honor_arr);// reset($honor_arr); $honor_arr = array_slice($honor_arr,0,$max_display_chars,true); $allhonor['alliance'] = array(); $allhonor['horde'] = array(); $charinfo_arr = array(); $precharinfo_arr = array(); $sql="SELECT character.guid AS ARRAY_KEY,character.guid,character.data,character.name,character.race,character.class, ifnull(a.count,0) as count " ."FROM `character` left join (select guid as gid,sum(count) as count from character_kill group by guid) a" ." on a.gid=character.guid left join `realmd`.`account` on `account`.`id` = `character`.`account` WHERE character.guid IN(?a) and `account`.`gmlevel` <2"; if(count($honor_arr)>0)$precharinfo_arr = $WSDB->select($sql,array_keys($honor_arr));// if(count($honor_arr)>0)$precharinfo_arr = $WSDB->select("SELECT character.guid AS ARRAY_KEY,character.guid,character.data,character.name,character.race,character.class FROM `character` WHERE guid IN(?a)",array_keys($honor_arr)); foreach ($honor_arr as $honor_uid=>$honor_val){ $charinfo_arr[$honor_uid] = $precharinfo_arr[$honor_uid]; } unset($precharinfo_arr); // Prepair data ... foreach($charinfo_arr as $charinfo_item){ $char_data = explode(' ',$charinfo_item['data']); $char_gender = dechex($char_data[36]); $char_gender = str_pad($char_gender,8, 0, STR_PAD_LEFT); $char_gender = $char_gender{3}; $char_rank_id = calc_character_rank($honor_arr[$charinfo_item['guid']]); if($charinfo_item['race']==1 || $charinfo_item['race']==3 || $charinfo_item['race']==4 || $charinfo_item['race']==7 || $charinfo_item['race']==11)$faction = 'alliance'; else$faction = 'horde'; $honor_kills = $char_data[1387];// $honor_kills = $WSDB->select("SELECT (sum(count)) FROM `character_kill` WHERE guid = ".$char_data[0]); $character = array( 'name' => $charinfo_item['name'], 'race' => $site_defines['character_race'][$charinfo_item['race']], 'class' => $site_defines['character_class'][$charinfo_item['class']], 'gender' => $site_defines['character_gender'][$char_gender], 'rank' => $site_defines['character_rank'][$faction][$char_rank_id], 'level' => $char_data[34], 'honor_points' => $honor_arr[$charinfo_item['guid']], 'honorable_kills' => $honor_kills, 'race_icon' => $config['template_href'].'images/icon/race/'.$charinfo_item['race'].'-'.$char_gender.'.gif', 'class_icon' => $config['template_href'].'images/icon/class/'.$charinfo_item['class'].'.gif', 'rank_icon' => $config['template_href'].'images/icon/pvpranks/rank'.$char_rank_id.'.gif', ); $allhonor[$faction][] = $character; } unset($honor_arr); unset($charinfo_arr); unset($honor_kills); unset($WSDB); }function realm_list(){ global $DB; $res = $DB->selectCol("SELECT id AS ARRAY_KEY,name FROM realmlist ORDER BY name"); return $res;}function get_rank_numending($n){ $n = substr("$n", -1); if($n==1)return 'st'; elseif($n==2)return 'nd'; elseif($n==3)return 'rd'; elseif($n>=4)return 'th';}function parse_worlddb_info($str){ $arr = explode(';',$str); $mangosd_database['host'] = $arr[0]; $mangosd_database['port'] = $arr[1]; $mangosd_database['user'] = $arr[2]; $mangosd_database['password'] = $arr[3]; $mangosd_database['db'] = $arr[4]; return $mangosd_database;}function calc_character_rank($honor_points){ $rank = 0; if($honor_points <= 0){ $rank = 0; }else{ if($honor_points < 2000) $rank = 1; else $rank = ceil($honor_points / 5000) + 1; } return $rank;}function zehohonorfilter($var){ return ($var>0);}?>