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);
                 }
             }
         }
     }
 }
示例#5
0
 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;
示例#7
0
 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;
 }
示例#8
0
$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">&nbsp;<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');