function __construct($id) { global $config, $mysql, $_SYSTEM; $this->id = -1; $r = $mysql->getRow("SELECT guild.guildid as id,guild.name,guild.leaderguid,characters.race,characters.class,characters.name as leader,characters.guid as leader_guid,mid(lpad( hex( CAST(substring_index(substring_index(characters.data,' ',23),' ',-1) as unsigned) ),8,'0'),4,1) as gender FROM `guild` inner join `characters` on guild.leaderguid = characters.guid where guild.guildid = ?1", $id, 'char'); if ($r['id']) { $this->id = $r['id']; } else { return; } $this->name = $r['name']; $this->leader_guid = $r['leader_guid']; $this->leader = $r['leader']; $this->faction = character::getAlliance($r['race']); $this->leader_race = $r['race']; $this->leader_class = $r['class']; $this->leader_gender = $r['gender']; $this->realm = $_SYSTEM->Realms[$_SYSTEM->Realm]; $this->realmID = $_SYSTEM->Realm; $this->members = mysql_result($mysql->query("SELECT count(*) FROM `guild_member` WHERE guildid = ?1", $this->id, 'char'), 0) or $this->members = 0; $r = $mysql->getRows("select rname,rid from guild_rank where guildid = ?1", $this->id, 'char'); if ($r) { foreach ($r as $row) { $this->ranks[$row['rid']] = $row['rname']; } } $r = $mysql->getRows("select guid,race,class,?3 as level,?4 as gender,name from characters where ?1 = ?2", SQL_template(CHAR_GUILD_OFFSET), $this->id, SQL_template(CHAR_LEVEL_OFFSET), CHAR_GENDER_OFFSET, 'char'); if ($r) { foreach ($r as $key => $row) { foreach ($row as $c => $col) { $this->membersList[$key][$c] = $col; } } } }
function __construct($guid) { global $config, $SQL, $mysql, $_SYSTEM; $this->guid = -1; $r = $mysql->getRow("SELECT characters.*,?1 as gender,guild.name as guild\n\t FROM `characters` left join guild_member on characters.guid = guild_member.guid\n\t left join guild on guild.guildid = guild_member.guildid WHERE characters.guid = ?2", CHAR_GENDER_OFFSET, $guid, SQL_template(CHAR_GUILD_OFFSET), SQL_template(CHAR_GUILD_OFFSET + 1), 'char'); if ($r === 0) { $_SYSTEM->error('Character not found!'); } else { if ($r === false) { $_SYSTEM->error('SQL query error! Check character database structure.'); } } // Ustawienie bazowych informacji $this->guid = $guid; $this->name = $r['name']; $this->class = $r['class']; $this->race = $r['race']; $this->online = $r['online']; $this->gender = $r['gender']; $this->guild_id = $r['guildid']; $this->guild = $r['guild']; $this->activeSpec = (int) $r['activespec']; $this->specCount = $r['speccount']; $this->data = explode(' ', $r['data']); $this->honor = $r['totalHonorPoints']; $this->hk = $r['totalKills']; $this->arenapoints = $r['arenaPoints']; $this->gold = $this->data[MONEY_OFFSET]; $this->level = $this->data[CHAR_LEVEL_OFFSET]; $t_time = $r['totaltime']; $t_days = (int) ($t_time / 86400); $t_time = $t_time - $t_days * 86400; $t_hours = (int) ($t_time / 3600); $t_time = $t_time - $t_hours * 3600; $t_min = (int) ($t_time / 60); $this->played[0] = $t_days; $this->played[1] = $t_hours; $this->played[2] = $t_min; $this->realm = $_SYSTEM->Realms[$_SYSTEM->Realm]; $this->guild_id = $this->data[CHAR_GUILD_ID_OFFSET]; $this->stats = $this->read_stats(); $this->read_skills(); $this->sort_skills(); if ($config['mangos_version'] !== 0) { $this->load_glyphs(); } $this->load_arena_info(); $this->read_items(); $this->load_reputation(); $this->load_tooltips(); $this->load_talents(); if ($config['mangos_version'] !== 0) { $this->load_achievements(); } $this->lastupdate = time(); return true; }
function __construct($guid) { global $config, $SQL, $mysql, $_SYSTEM; $this->guid = -1; $r = $mysql->getRow("SELECT name,race,class,totaltime,data,online,?1 as gender,?3 as guildid,?4 as guildrank\n\t FROM `characters` WHERE guid = ?2", CHAR_GENDER_OFFSET, $guid, SQL_template(CHAR_GUILD_OFFSET), SQL_template(CHAR_GUILD_OFFSET + 1), 'char'); if (!$r) { $_SYSTEM->error('Character not found!'); } if ($r['guildid']) { $r2 = $mysql->getRow("select * from `guild_rank` where guildid = ?1 and rid = ?2", $r['guildid'], $r['guildrank'], 'char'); } // Ustawienie bazowych informacji if ($r2) { $this->guild_rank = $r2['rname']; } else { $r2['rname'] = 'Unknown'; } $this->guid = $guid; $this->name = $r['name']; $this->class = $r['class']; $this->race = $r['race']; $this->online = $r['online']; $this->gender = $r['gender']; $this->guild_id = $r['guildid']; $this->guild = guild($r['guildid']); $this->guild = $this->guild->name; $this->data = explode(' ', $r['data']); $this->honor = $this->data[CHAR_HONOR_OFFSET]; $this->hk = $this->data[CHAR_HK_OFFSET]; $this->arenapoints = $this->data[CHAR_ARENAPOINTS_OFFSET]; $this->gold = $this->data[MONEY_OFFSET]; $this->level = $this->data[CHAR_LEVEL_OFFSET]; $t_time = $r['totaltime']; $t_days = (int) ($t_time / 86400); $t_time = $t_time - $t_days * 86400; $t_hours = (int) ($t_time / 3600); $t_time = $t_time - $t_hours * 3600; $t_min = (int) ($t_time / 60); $this->played[0] = $t_days; $this->played[1] = $t_hours; $this->played[2] = $t_min; $this->realm = $_SYSTEM->Realms[$_SYSTEM->Realm]; $this->guild_id = $this->data[CHAR_GUILD_ID_OFFSET]; $this->stats = $this->read_stats(); $this->read_skills(); $this->sort_skills(); $this->read_items(); $this->load_reputation(); $this->load_tooltips(); $this->load_talents(); $this->load_achievements(); $this->lastupdate = time(); return true; }
function load_arena_members($arenalist) { global $config, $mysql, $SQL; $r = $mysql->getRows("select arena_team_member.*, characters.race,characters.name,characters.class, ?3 as level, ?4 as gender\n\t\t\t\t\t\t\t from ?1.arena_team_member inner join ?1.characters on arena_team_member.guid = characters.guid\n\t\t\t\t\t\t\t where arenateamid IN (?2-1)", $config['charDB'], $arenalist, SQL_template(CHAR_LEVEL_OFFSET), CHAR_GENDER_OFFSET); if (!$r) { return; } foreach ($this->Types as $t) { foreach ($this->ArenaTeams[$t] as $key => $value) { $this->ArenaTeams[$t][$key]['members'] = array(); foreach ($r as $row) { if ($row['arenateamid'] == $this->ArenaTeams[$t][$key]['arenateamid']) { array_push($this->ArenaTeams[$t][$key]['members'], $row); } } } } }
function __construct($items, $item_instance, $guid, $data) { global $_SYSTEM, $SQL, $EQ_SLOT, $mysql, $config; $this->owner_id = $guid; $this->items = $items; $this->item_instance = $item_instance; $this->get_tooltip($this->items); // Load small tip cache for ($i = 0; $i < 19; $i++) { $this->html[$i] = $this->get_tooltip($this->items[$i]); // Download from cache or try update db and cache. if ($this->item_instance[$i]) { $item_list .= $this->item_instance[$i] . ','; } } if ($r = $mysql->getRows("select * from `item_instance` where owner_guid = ?2 and guid IN (?4-1)", $this->owner_id, SQL_template(3), $item_list, 'char')) { foreach ($r as $row) { $this->items_data[$row['guid']] = $row['data']; } } }
require 'init.php'; $c->add('main'); $c->assign('menu', $menu->output); $r = $mysql->getRows("select * from achievement where name like 'Realm First!%'", 'armory'); if (!$r) { exit; } foreach ($r as $row) { $iconIDs .= $row['iconId'] . ','; $achiIDs .= $row['id'] . ','; } $icons_r = $mysql->getRows("select * from spellicon where id IN (?1-1)", $iconIDs, 'armory'); foreach ($icons_r as $icon) { $icons[$icon['id']] = strtolower(str_replace(' ', '', $icon['name'])); } $char = $mysql->getRows("select character_achievement.*,characters.name,characters.race,characters.class,?2 as level,?3 as gender,?4 as guildid from character_achievement,characters where achievement IN (?1-1) and characters.guid=character_achievement.guid order by character_achievement.date desc", $achiIDs, SQL_template(CHAR_LEVEL_OFFSET), CHAR_GENDER_OFFSET, SQL_template(CHAR_GUILD_OFFSET), 'char'); if ($char) { foreach ($char as $val) { foreach ($val as $key => $value) { $info[$val['achievement']][$key] = $value; } if ($info[$val['achievement']]['guild']) { $g = $mysql->getRow("select name from guid where id = ?1", $info[$val['achievement']]['guild'], 'char'); $info[$val['achievement']]['guild'] = $g['name']; } } } $count = $done = 0; foreach ($r as $row) { if (!$info[$row['id']]['guid']) { continue;
function start() { global $mysql, $_SYSTEM; $WHERE = "WHERE "; if ($this->guild > 0) { $WHERE .= SQL_template(CHAR_GUILD_OFFSET) . ' = ' . $this->guild . ' AND '; } if ($this->guid > 0) { $WHERE .= 'characters.guid = ' . $this->guid . ' AND '; } if ($this->class != 0) { $WHERE .= 'characters.class = ' . $this->class . ' AND '; } if ($this->name != '') { $WHERE .= 'name LIKE \'%' . $this->name . '%\' AND '; } $WHERE .= '1=1'; $il = $this->per_page + 1; $st = $this->per_page * $this->page; $LIMIT = 'LIMIT ' . $st . ', ' . $il; $data = array(); $i = 0; foreach ($_SYSTEM->Realms as $rID => $rName) { if ($this->Realm != -1 && $rID != $this->Realm) { continue; } $d = $mysql->getRows("SELECT characters.name,characters.race,characters.class,characters.guid,characters.online,\n\t\t\t\tguild_rank.rname,?1 AS level,?2 AS guild,?3 AS honor,?4 AS hk,?5 as gender\n FROM `characters` left join `guild_rank` on ?6 = guild_rank.rid and ?7 = guild_rank.guildid\n\t\t\t\t{$WHERE} {$this->order} {$LIMIT}", SQL_template(CHAR_LEVEL_OFFSET), SQL_template(CHAR_GUILD_OFFSET), SQL_template(CHAR_HONOR_OFFSET), SQL_template(CHAR_HK_OFFSET), CHAR_GENDER_OFFSET, SQL_template(CHAR_GUILD_OFFSET + 1), SQL_template(CHAR_GUILD_OFFSET), 'char_' . $rID); if (!$d) { continue; } $c = $mysql->query("select count(*) from characters {$WHERE}", 'char_' . $rID); $this->count += mysql_result($c, 0); foreach ($d as $char) { foreach ($char as $key => $value) { $data[$i][$key] = $value; } if ($data[$i]['guild'] == 0) { $data[$i]['guild'] = 'None'; $data[$i]['guildid'] = 0; } else { $g = guild($data[$i]['guild']); $data[$i]['guild'] = $g->name; $data[$i]['guildid'] = $g->id; } $data[$i]['race_string'] = character::raceToString($data[$i]['race']); $data[$i]['class_string'] = character::classToString($data[$i]['class']); if ($data[$i]['honor'] > 2000000000) { $data[$i]['honor'] = 0; } $data[$i]['realm'] = $rName; $i++; } } return $data; }
$place = getPlace($rank[1]); $tp->assign('rank', $rank[0]); $tp->assign('place', $place); $tp->assign('rank_border', $rank[2]); $tp->assign('wg', $r['games']); $tp->assign('ww', $r['wins']); $tp->assign('wl', $r['games'] - $r['wins']); $tp->assign('wp', $r['games'] ? round($r['wins'] / $r['games'] * 100) : 0); $tp->assign('wr', $r['rating']); $tp->assign('sg', $r['played']); $tp->assign('sw', $r['wins2']); $tp->assign('sl', $r['played'] - $r['wins2']); $tp->assign('sp', $r['played'] ? round($r['wins2'] / $r['played'] * 100) : 0); $icon = getSmallArenaIcon($r); $tp->assign('icon', $icon); $m = $mysql->getRows("select arena_team_member.*,characters.name,characters.race,characters.class,?3 as level,?4 as gender,guild.name as gname from arena_team_member inner join characters on arena_team_member.guid= characters.guid left join guild on guild.guildid = ?2 where arena_team_member.arenateamid = ?1", $r['arenateamid'], SQL_template(CHAR_GUILD_OFFSET), SQL_template(CHAR_LEVEL_OFFSET), CHAR_GENDER_OFFSET, 'char'); if ($m) { foreach ($m as $member) { $team_faction = character::getAlliance($member['race']); $table .= '<tr><td><a href="character-sheet.php?Realm={$realm}&name=' . $member['name'] . '">' . $member['name'] . '</a></td>'; $table .= '<td>' . ($member['gname'] ? '<a href="guild-info.php?Realm={$realm}&name=' . $member['gname'] . '">' . $member['gname'] . '</a>' : 'None') . '</td>'; $table .= '<td><img class="staticTip" onmouseover="setTipText(\'' . character::raceToString($member['race']) . '\');" src="images/icons/race/' . $member['race'] . '-' . $member['gender'] . '.gif"> <img class="staticTip" onmouseover="setTipText(\'' . character::classToString($member['class']) . '\');" src="images/icons/class/' . $member['class'] . '.gif"></td>'; $table .= '<td class="rightNum">' . $member['played_season'] . '</td><td class="rightNum" style="color: #678705;">' . $member['wons_season'] . '</td><td class="rightNum" style="color: #9A1401;">' . ($member['played_season'] - $member['wons_season']) . '</td><td class="rightNum">' . ($member['played_season'] ? round($member['wons_season'] / $member['played_season'] * 100) : 0) . '%</td><td class="rightNum">' . $member['personal_rating'] . '</td></tr>'; } } else { $table = '<tr><td colspan="8">No members</td></tr>'; } $tp->assign('table', $table); $tp->assign('faction', $team_faction); $tp->assign('realm', $_SYSTEM->Realms[$_SYSTEM->Realm]); $c->assign('content', $tp->output);
function start() { global $mysql, $_SYSTEM; $WHERE = "WHERE "; if ($this->guild > 0) { $WHERE .= 'guild_member.guildid = ' . $this->guild . ' AND '; } if ($this->guid > 0) { $WHERE .= 'characters.guid = ' . $this->guid . ' AND '; } if ($this->class != 0) { $WHERE .= 'characters.class = ' . $this->class . ' AND '; } if ($this->name != '') { $WHERE .= 'characters.name LIKE \'%' . $this->name . '%\' AND '; } $WHERE .= '1=1'; $il = $this->per_page; $st = $this->per_page * $this->page; $LIMIT = 'LIMIT ' . $st . ', ' . $il; $data = array(); $i = 0; foreach ($_SYSTEM->Realms as $rID => $rName) { if ($this->Realm != -1 && $rID != $this->Realm) { continue; } $d = $mysql->getRows("SELECT characters.name,characters.race,characters.class,characters.guid,characters.online,\n\t\t\t\tguild_rank.rname,guild_rank.rid,?1 AS level,guild_member.guildid AS guildid,totalHonorPoints as honor,totalKills as hk,?3 as gender,guild.name as guild\n FROM `characters` left join guild_member on characters.guid = guild_member.guid\n left join guild on guild.guildid = guild_member.guildid\n left join `guild_rank` on guild_member.rank = guild_rank.rid and guild_member.guildid = guild_rank.guildid\n\t\t\t\t{$WHERE} {$this->order} {$LIMIT}", SQL_template(CHAR_LEVEL_OFFSET), SQL_template(CHAR_GUILD_OFFSET), CHAR_GENDER_OFFSET, SQL_template(CHAR_GUILD_OFFSET + 1), 'char_' . $rID); if (!$d) { continue; } $c = $mysql->query("select count(*) from characters left join guild_member on characters.guid = guild_member.guid\n left join guild on guild.guildid = guild_member.guildid\n left join `guild_rank` on guild_member.rank = guild_rank.rid and guild_member.guildid = guild_rank.guildid {$WHERE}", 'char_' . $rID); $this->count += mysql_result($c, 0); foreach ($d as $char) { foreach ($char as $key => $value) { $data[$i][$key] = $value; } if ($data[$i]['guildid'] == 0) { $data[$i]['guild'] = ' None'; $data[$i]['guildid'] = 0; } else { if ($data[$i]['rid'] == '') { //$v = $mysql->getRow("select rname from guild_rank where rid = '1' and guildid = ?1",$this->guild,'char_'.$rID); $data[$i]['rname'] = 'Guild Master'; $data[$i]['rid'] = '0'; } } $data[$i]['race_string'] = character::raceToString($data[$i]['race']); $data[$i]['class_string'] = character::classToString($data[$i]['class']); if ($data[$i]['honor'] > 2000000000) { $data[$i]['honor'] = 0; } $data[$i]['realm'] = $rName; $i++; } } return $data; }
<?php require 'init.php'; $c->add('main'); $c->assign('menu', $menu->output); $tp = new template(); $tp->add('honor-ranking'); if (!in_array($_GET['type'], array('hk', 'honor'))) { $_SYSTEM->error("Invalid ranking type."); } $r = $mysql->getRows("select characters.name,characters.race,characters.class,?2 as gender,?1 as hh,guild.name as gname,?4 as level from characters left join guild on guild.guildid = ?3 where ?1 < 2000000000 order by ?1 desc limit ?5", $_GET['type'] == 'hk' ? SQL_template(CHAR_HK_OFFSET) : SQL_template(CHAR_HONOR_OFFSET), CHAR_GENDER_OFFSET, SQL_template(CHAR_GUILD_OFFSET), SQL_template(CHAR_LEVEL_OFFSET), $config['ladder_rows_limit'], 'char'); if ($r) { $i = 1; foreach ($r as $row) { $row['faction'] = character::getAlliance($row['race']); $table .= '<tr onMouseOver="zoomInArenaIcon(this)" onMouseOut="zoomOutArenaIcon(this)"><td class="rightNum" style="font-weight: bold;">' . $i++ . '</td><td> <a href="character-sheet.php?Realm={$realm}&name=' . $row['name'] . '">' . $row['name'] . '</a></td><td style="white-space: nowrap">' . $row['level'] . '</td><td class="centNum"><img src="images/icons/race/' . $row['race'] . '-' . $row['gender'] . '.gif" > <img src="images/icons/class/' . $row['class'] . '.gif" ></td><td class="centNum"><img class="" src="images/icons/faction/icon-' . $row['faction'] . '.gif" ></td><td style="font-weight: bold; color: #678705;">' . ($row['gname'] ? '<a href="guild-info.php?Realm={$realm}&name=' . $row['gname'] . '">' . $row['gname'] . '</a>' : 'None') . '</td><td class="rightNum" style="font-weight: bold;">' . $row['hh'] . '</td> </tr>'; } } else { $table = '<tr><td colspan="7">No results</td></tr>'; } $tp->assign('table', $table); $tp->assign('realm', $_SYSTEM->Realms[$_SYSTEM->Realm]); if (count($_SYSTEM->Realms) > 1) { foreach ($_SYSTEM->Realms as $r) { $realmlist .= '<a href="honor-ranking.php?Realm=' . $r . '&type=' . $_GET['type'] . '">' . $r . '</a>, '; } } $tp->assign('realmlist', $realmlist ? '(Realms: ' . substr($realmlist, 0, -2) . ')' : ''); $tp->assign('type', $_GET['type'] == 'hk' ? 'HK' : 'Honor');