当前位置: 首页>>代码示例>>PHP>>正文


PHP Utils::GetFactionId方法代码示例

本文整理汇总了PHP中Utils::GetFactionId方法的典型用法代码示例。如果您正苦于以下问题:PHP Utils::GetFactionId方法的具体用法?PHP Utils::GetFactionId怎么用?PHP Utils::GetFactionId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Utils的用法示例。


在下文中一共展示了Utils::GetFactionId方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: BuildArenaLadderList

 public function BuildArenaLadderList($type, $page, $num = false, $order = 'rank', $type = 'DESC')
 {
     if ($num == true) {
         return $this->cDB->selectCell("SELECT COUNT(`arenateamid`) FROM `arena_team` WHERE `type`=?", $type);
     }
     $arenaTeamInfo = $this->cDB->select("\n        SELECT\n        `arena_team`.`arenateamid`,\n        `arena_team`.`name`,\n        `arena_team_stats`.`rating`,\n        `arena_team_stats`.`games`  AS `gamesPlayed`,\n        `arena_team_stats`.`wins`   AS `gamesWon`,\n        `arena_team_stats`.`rank`   AS `ranking`,\n        `arena_team_stats`.`played` AS `seasonGamesPlayed`,\n        `arena_team_stats`.`wins2`  AS `seasonGamesWon`,\n        `characters`.`race`\n            FROM `arena_team` AS `arena_team`\n                LEFT JOIN `arena_team_stats` AS `arena_team_stats` ON `arena_team_stats`.`arenateamid`=`arena_team`.`arenateamid`\n                LEFT JOIN `characters` AS `characters` ON `characters`.`guid`=`arena_team`.`captainguid`\n                    WHERE `type`=?\n                        ORDER BY `arena_team_stats`.`" . $order . "` " . $type . " LIMIT " . $page . ", 20\n        ", $type);
     if (!$arenaTeamInfo) {
         return false;
     }
     $result_areanteams = array();
     $i = 0;
     foreach ($arenaTeamInfo as $team) {
         $result_areanteams[$i]['data'] = $team;
         $result_areanteams[$i]['data']['num'] = $i + 1;
         $result_areanteams[$i]['data']['battleGroup'] = $this->armoryconfig['defaultBGName'];
         $result_areanteams[$i]['data']['faction'] = '';
         $result_areanteams[$i]['data']['factionId'] = Utils::GetFactionId($result_areanteams[$i]['data']['race']);
         //$result_areanteams[$i]['data']['factionId'] = 1;
         $result_areanteams[$i]['data']['lastSeasonRanking'] = '';
         $result_areanteams[$i]['data']['realm'] = $this->currentRealmInfo['name'];
         $result_areanteams[$i]['data']['realmUrl'] = sprintf('b=%s&r=%s&ts=%d&select=%s', urlencode($this->armoryconfig['defaultBGName']), urlencode($this->currentRealmInfo['name']), $type, urlencode($team['name']));
         $result_areanteams[$i]['data']['relevance'] = 0;
         $result_areanteams[$i]['data']['season'] = 0;
         $result_areanteams[$i]['data']['size'] = $type;
         $result_areanteams[$i]['data']['teamSize'] = $type;
         $result_areanteams[$i]['data']['teamUrl'] = sprintf('r=%s&ts=%d&t=%s', urlencode($this->armoryconfig['defaultBGName']), urlencode($this->currentRealmInfo['name']), $type, urlencode($team['name']));
         $result_areanteams[$i]['emblem'] = self::GetArenaTeamEmblem($team['arenateamid']);
         unset($result_areanteams[$i]['data']['arenateamid']);
         unset($result_areanteams[$i]['data']['captainguid']);
         $i++;
     }
     return $result_areanteams;
 }
开发者ID:Toshik,项目名称:wowarmory,代码行数:33,代码来源:class.arenateams.php

示例2: getGuildFaction

 /**
  * Sets $this->guildFaction as $this->guildleaderguid's faction
  * @category Guilds class
  * @example Guilds::getGuildFaction()
  * @return bool
  **/
 public function getGuildFaction()
 {
     if (!$this->guildleaderguid) {
         $this->Log()->writeError('%s : guildleaderguid not defined', __METHOD__);
         return false;
     }
     $race = $this->cDB->selectCell("SELECT `race` FROM `characters` WHERE `guid`=? LIMIT 1", $this->guildleaderguid);
     $this->guildFaction = Utils::GetFactionId($race);
     return true;
 }
开发者ID:sarrian,项目名称:wowarmory,代码行数:16,代码来源:class.guilds.php

示例3: BuildArenaLadderList

 /**
  * Builds arena ladder list
  * @category Arenateams class
  * @access   public
  * @param    int $type
  * @param    bool $num = false
  * @param    string $order = 'rating'
  * @param    string $sort = 'ASC'
  * @return   array
  **/
 public function BuildArenaLadderList($type, $page, $num = false, $order = 'rating', $sort = 'ASC')
 {
     if ($num == true) {
         $summary = 0;
         foreach (Armory::$realmData as $realm_info) {
             $db = new Armory::$dbClass($realm_info['host_characters'], $realm_info['user_characters'], $realm_info['pass_characters'], $realm_info['port_characters'], $realm_info['name_characters'], $realm_info['charset_characters']);
             $current_count = $db->selectCell("SELECT COUNT(`arena_team`.`arenateamid`) FROM `arena_team` AS `arena_team` LEFT JOIN `arena_team_stats` AS `arena_team_stats` ON `arena_team_stats`.`arenateamid` = `arena_team`.`arenateamid` WHERE `arena_team`.`type` = %d AND `arena_team_stats`.`rank` > 0", $type);
             $summary += $current_count;
         }
         return $summary;
     }
     $result_areanteams = array();
     $i = 0;
     foreach (Armory::$realmData as $realm_info) {
         $db = new Armory::$dbClass($realm_info['host_characters'], $realm_info['user_characters'], $realm_info['pass_characters'], $realm_info['port_characters'], $realm_info['name_characters'], $realm_info['charset_characters']);
         if ($order == 'lose') {
             // Special sorting
             switch ($realm_info['type']) {
                 default:
                 case SERVER_MANGOS:
                     $realmArenaTeamInfo = $db->select("\n                        SELECT\n                        `arena_team`.`arenateamid`,\n                        `arena_team`.`name`,\n                        `arena_team_stats`.`rating`,\n                        `arena_team_stats`.`games_week`  AS `gamesPlayed`,\n                        `arena_team_stats`.`wins_week`   AS `gamesWon`,\n                        `arena_team_stats`.`rank`   AS `ranking`,\n                        `arena_team_stats`.`games_season` AS `seasonGamesPlayed`,\n                        `arena_team_stats`.`wins_season`  AS `seasonGamesWon`,\n                        `characters`.`race`,\n                        `arena_team_stats`.`games_season`-`arena_team_stats`.`wins_season` AS `lose`\n                        FROM `arena_team` AS `arena_team`\n                        LEFT JOIN `arena_team_stats` AS `arena_team_stats` ON `arena_team_stats`.`arenateamid`=`arena_team`.`arenateamid`\n                        LEFT JOIN `characters` AS `characters` ON `characters`.`guid`=`arena_team`.`captainguid`\n                        WHERE `arena_team`.`type`=%d AND `arena_team_stats`.`rank` > 0\n                        ORDER BY `lose` %s LIMIT %d, 20", $type, $sort, $page);
                     break;
                 case SERVER_TRINITY:
                     $realmArenaTeamInfo = $db->select("\n                        SELECT\n                        `arena_team`.`arenaTeamId` AS `arenateamid`,\n                        `arena_team`.`name`,\n                        `arena_team`.`rating`,\n                        `arena_team`.`weekGames`   AS `gamesPlayed`,\n                        `arena_team`.`weekWins`    AS `gamesWon`,\n                        `arena_team`.`rank`        AS `ranking`,\n                        `arena_team`.`seasonGames` AS `seasonGamesPlayed`,\n                        `arena_team`.`seasonWins`  AS `seasonGamesWon`,\n                        `characters`.`race`,\n                        `arena_team`.`seasonGames`-`arena_team`.`seasonWins` AS `lose`\n                        FROM `arena_team` AS `arena_team`\n                        LEFT JOIN `characters` AS `characters` ON `characters`.`guid`=`arena_team`.`captainguid`\n                        WHERE `arena_team`.`type`=%d AND `arena_team`.`rank` > 0\n                        ORDER BY `lose` %s LIMIT %d, 20", $type, $sort, $page);
                     break;
             }
         } else {
             switch ($realm_info['type']) {
                 default:
                 case SERVER_MANGOS:
                     $realmArenaTeamInfo = $db->select("\n                        SELECT\n                        `arena_team`.`arenateamid`,\n                        `arena_team`.`name`,\n                        `arena_team_stats`.`rating`,\n                        `arena_team_stats`.`games_week`  AS `gamesPlayed`,\n                        `arena_team_stats`.`wins_week`   AS `gamesWon`,\n                        `arena_team_stats`.`rank`   AS `ranking`,\n                        `arena_team_stats`.`games_season` AS `seasonGamesPlayed`,\n                        `arena_team_stats`.`wins_season`  AS `seasonGamesWon`,\n                        `characters`.`race`\n                        FROM `arena_team` AS `arena_team`\n                        LEFT JOIN `arena_team_stats` AS `arena_team_stats` ON `arena_team_stats`.`arenateamid`=`arena_team`.`arenaTeamId`\n                        LEFT JOIN `characters` AS `characters` ON `characters`.`guid`=`arena_team`.`captainGuid`\n                        WHERE `arena_team`.`type`=%d AND `arena_team_stats`.`rank` > 0\n                        ORDER BY %s %s LIMIT %d, 20", $type, $order, $sort, $page);
                     break;
                 case SERVER_TRINITY:
                     $realmArenaTeamInfo = $db->select("\n                        SELECT\n                        `arena_team`.`arenaTeamId` AS `arenateamid`,\n                        `arena_team`.`name`,\n                        `arena_team`.`rating`,\n                        `arena_team`.`weekGames`   AS `gamesPlayed`,\n                        `arena_team`.`weekWins`    AS `gamesWon`,\n                        `arena_team`.`rank`        AS `ranking`,\n                        `arena_team`.`seasonGames` AS `seasonGamesPlayed`,\n                        `arena_team`.`seasonWins`  AS `seasonGamesWon`,\n                        `characters`.`race`\n                        FROM `arena_team` AS `arena_team`\n                        LEFT JOIN `characters` AS `characters` ON `characters`.`guid`=`arena_team`.`captainGuid`\n                        WHERE `arena_team`.`type`=%d AND `arena_team`.`rank` > 0\n                        ORDER BY %s %s LIMIT %d, 20", $type, $order, $sort, $page);
                     break;
             }
         }
         foreach ($realmArenaTeamInfo as $team) {
             $result_areanteams[$i]['data'] = $team;
             $result_areanteams[$i]['data']['num'] = $i + 1;
             $result_areanteams[$i]['data']['battleGroup'] = Armory::$armoryconfig['defaultBGName'];
             $result_areanteams[$i]['data']['faction'] = null;
             $result_areanteams[$i]['data']['factionId'] = Utils::GetFactionId($result_areanteams[$i]['data']['race']);
             $result_areanteams[$i]['data']['lastSeasonRanking'] = null;
             $result_areanteams[$i]['data']['realm'] = $realm_info['name'];
             $result_areanteams[$i]['data']['realmUrl'] = sprintf('b=%s&r=%s&ts=%d&select=%s', urlencode(Armory::$armoryconfig['defaultBGName']), urlencode($realm_info['name']), $type, urlencode($team['name']));
             $result_areanteams[$i]['data']['relevance'] = 0;
             $result_areanteams[$i]['data']['season'] = 0;
             $result_areanteams[$i]['data']['size'] = $type;
             $result_areanteams[$i]['data']['teamSize'] = $type;
             $result_areanteams[$i]['data']['teamUrl'] = sprintf('r=%s&ts=%d&t=%s', urlencode(Armory::$armoryconfig['defaultBGName']), urlencode($realm_info['name']), $type, urlencode($team['name']));
             $result_areanteams[$i]['emblem'] = self::GetArenaTeamEmblem($team['arenateamid'], $db);
             unset($result_areanteams[$i]['data']['arenateamid'], $result_areanteams[$i]['data']['captainguid']);
             $i++;
         }
     }
     if (!isset($result_areanteams[0]['data'])) {
         return false;
     }
     return $result_areanteams;
 }
开发者ID:saqar,项目名称:WoW-Armory,代码行数:71,代码来源:class.arenateams.php

示例4: SearchCharacters

 public function SearchCharacters($num = false)
 {
     if (!$this->searchQuery) {
         $this->Log()->writeError('%s : searchQuery not defined', __METHOD__);
         return false;
     }
     $results = array();
     // Full results
     $current_realm = array();
     $count_results = 0;
     // All realms results
     $count_results_currrent_realm = 0;
     // Current realm results
     $db = null;
     // Temporary handler
     if ($num == true) {
         foreach ($this->realmData as $realm_info) {
             $count_results_currrent_realm = 0;
             $db = DbSimple_Generic::connect('mysql://' . $realm_info['user_characters'] . ':' . $realm_info['pass_characters'] . '@' . $realm_info['host_characters'] . '/' . $realm_info['name_characters']);
             $db->query("SET NAMES ?", $realm_info['charset_characters']);
             $characters_data[] = $db->select("SELECT `guid`, `level`, `account` FROM `characters` WHERE `name` LIKE ? AND `level` >= ? LIMIT 200", '%' . $this->searchQuery . '%', $this->armoryconfig['minlevel']);
         }
         $count_result_chars = count($characters_data[0]);
         for ($i = 0; $i < $count_result_chars; $i++) {
             if (isset($characters_data[0][$i]) && self::IsCharacterAllowedForSearch($characters_data[0][$i]['guid'], $characters_data[0][$i]['level'], $characters_data[0][$i]['account'])) {
                 $count_results++;
             }
         }
         return $count_results;
     }
     foreach ($this->realmData as $realm_info) {
         $db = DbSimple_Generic::connect('mysql://' . $realm_info['user_characters'] . ':' . $realm_info['pass_characters'] . '@' . $realm_info['host_characters'] . '/' . $realm_info['name_characters']);
         $db->query("SET NAMES ?", $realm_info['charset_characters']);
         $current_realm = $db->select("SELECT `guid`, `name`, `class` AS `classId`, `gender` AS `genderId`, `race` AS `raceId`, `level`, `account` FROM `characters` WHERE `name` LIKE ?", '%' . $this->searchQuery . '%');
         if (!$current_realm) {
             continue;
         }
         $count_current_realm = count($current_realm);
         foreach ($current_realm as $realm) {
             if (!self::IsCharacterAllowedForSearch($realm['guid'], $realm['level'], $realm['account'])) {
                 continue;
             }
             if ($realm['guildId'] = $db->selectCell("SELECT `guildid` FROM `guild_member` WHERE `guid`=?", $realm['guid'])) {
                 $realm['guild'] = $db->selectCell("SELECT `name` FROM `guild` WHERE `guildid`=?", $realm['guildId']);
                 $realm['guildUrl'] = sprintf('r=%s&gn=%s', urlencode($realm_info['name']), urlencode($realm['guild']));
             }
             $realm['url'] = sprintf('r=%s&cn=%s', urlencode($realm_info['name']), urlencode($realm['name']));
             $realm['relevance'] = 100;
             $realm['battleGroup'] = $this->armoryconfig['defaultBGName'];
             $realm['battleGroupId'] = 1;
             $realm['class'] = $this->aDB->selectCell("SELECT `name_" . $this->_locale . "` FROM `armory_classes` WHERE `id`=?", $realm['classId']);
             $realm['race'] = $this->aDB->selectCell("SELECT `name_" . $this->_locale . "` FROM `armory_races` WHERE `id`=?", $realm['raceId']);
             $realm['realm'] = $realm_info['name'];
             $realm['factionId'] = Utils::GetFactionId($realm['raceId']);
             $realm['searchRank'] = 1;
             //???
             unset($realm['account'], $realm['guid']);
             $results[] = $realm;
         }
     }
     if ($results) {
         return $results;
     }
     return false;
 }
开发者ID:sarrian,项目名称:wowarmory,代码行数:65,代码来源:class.search.php

示例5: IsCharacterFitsRequirements

 private function IsCharacterFitsRequirements(&$player_data)
 {
     $gmLevel = 0;
     // Disable next SQL error
     Armory::$rDB->SkipNextError();
     if ($this->m_server == SERVER_TRINITY) {
         $gmLevel = Armory::$rDB->selectCell("SELECT `gmlevel` FROM `account_access` WHERE `id`=%d AND `RealmID` IN (-1, %d)", $player_data['account'], Armory::$connectionData['id']);
     } elseif ($this->m_server == SERVER_MANGOS) {
         $gmLevel = Armory::$rDB->selectCell("SELECT `gmlevel` FROM `account` WHERE `id`=%d LIMIT 1", $player_data['account']);
     }
     $allowed = $gmLevel <= Armory::$armoryconfig['minGmLevelToShow'] ? true : false;
     if (!$allowed) {
         Armory::Log()->writeLog('%s : unable to display character %s (GUID: %d): GM level restriction!', __METHOD__, $player_data['name'], $player_data['guid']);
         return false;
     }
     if ($player_data['level'] < Armory::$armoryconfig['minlevel']) {
         Armory::Log()->writeLog('%s : unable to load character %s (GUID: %d): level restriction.', __METHOD__, $player_data['name'], $player_data['guid']);
         return false;
     }
     if (Armory::$armoryconfig['skipBanned'] && Armory::$rDB->selectCell("SELECT 1 FROM `account_banned` WHERE `id` = %d AND `active` = 1", $player_data['account'])) {
         Armory::Log()->writeLog('%s : unable to load character %s (GUID: %d) from banned account %d.', __METHOD__, $player_data['name'], $player_data['guid'], $player_data['account']);
         return false;
     }
     // Class/race/faction checks
     if ($player_data['class'] >= MAX_CLASSES) {
         // Unknown class
         Armory::Log()->writeError('%s : character %s (GUID: %d) has wrong data in DB: classID %d was not found. Unable to continue.', __METHOD__, $player_data['name'], $player_data['guid'], $player_data['class']);
         return false;
     } elseif ($player_data['race'] >= MAX_RACES) {
         // Unknown race
         Armory::Log()->writeError('%s : character %s (GUID: %d) has wrong data in DB: raceID %d was not found. Unable to continue.', __METHOD__, $player_data['name'], $player_data['guid'], $player_data['race']);
         return false;
     }
     $this->faction = Utils::GetFactionId($player_data['race']);
     if ($this->faction === false) {
         // Unknown faction
         Armory::Log()->writeError('%s : character %s (GUID: %d) has wrong data in DB: factionID %d was not found (raceID: %d).', __METHOD__, $player_data['name'], $player_data['guid'], $this->faction, $player_data['race']);
         return false;
     }
     return true;
 }
开发者ID:Lankytim,项目名称:wowarmory,代码行数:41,代码来源:class.characters.php

示例6: BuildArenaLadderList

 /**
  * Builds arena ladder list
  * @category Arenateams class
  * @access   public
  * @param    int $type
  * @param    bool $num = false
  * @param    string $order = 'rating'
  * @param    string $sort = 'ASC'
  * @return   array
  **/
 public function BuildArenaLadderList($type, $page, $num = false, $order = 'rating', $sort = 'ASC')
 {
     if ($num == true) {
         $summary = 0;
         foreach ($this->armory->realmData as $realm_info) {
             $db = new ArmoryDatabaseHandler($realm_info['host_characters'], $realm_info['user_characters'], $realm_info['pass_characters'], $realm_info['name_characters'], $realm_info['charset_characters'], $this->armory->Log());
             $current_count = $db->selectCell("SELECT COUNT(`arena_team`.`arenateamid`) FROM `arena_team` AS `arena_team` LEFT JOIN `arena_team_stats` AS `arena_team_stats` ON `arena_team_stats`.`arenateamid` = `arena_team`.`arenateamid` WHERE `arena_team`.`type` = %d AND `arena_team_stats`.`rank` > 0", $type);
             $summary = $current_count + $summary;
         }
         return $summary;
     }
     $result_areanteams = array();
     $i = 0;
     foreach ($this->armory->realmData as $realm_info) {
         $db = new ArmoryDatabaseHandler($realm_info['host_characters'], $realm_info['user_characters'], $realm_info['pass_characters'], $realm_info['name_characters'], $realm_info['charset_characters'], $this->armory->Log());
         if ($order == 'lose') {
             // Special sorting
             $realmArenaTeamInfo = $db->select("\n                SELECT\n                `arena_team`.`arenateamid`,\n                `arena_team`.`name`,\n                `arena_team_stats`.`rating`,\n                `arena_team_stats`.`games`  AS `gamesPlayed`,\n                `arena_team_stats`.`wins`   AS `gamesWon`,\n                `arena_team_stats`.`rank`   AS `ranking`,\n                `arena_team_stats`.`played` AS `seasonGamesPlayed`,\n                `arena_team_stats`.`wins2`  AS `seasonGamesWon`,\n                `characters`.`race`,\n                `arena_team_stats`.`played`-`arena_team_stats`.`wins2` AS `lose`\n                FROM `arena_team` AS `arena_team`\n                LEFT JOIN `arena_team_stats` AS `arena_team_stats` ON `arena_team_stats`.`arenateamid`=`arena_team`.`arenateamid`\n                LEFT JOIN `characters` AS `characters` ON `characters`.`guid`=`arena_team`.`captainguid`\n                WHERE `arena_team`.`type`=%d AND `arena_team_stats`.`rank` > 0\n                ORDER BY `lose` %s LIMIT %d, 20", $type, $sort, $page);
         } else {
             $realmArenaTeamInfo = $db->select("\n                SELECT\n                `arena_team`.`arenateamid`,\n                `arena_team`.`name`,\n                `arena_team_stats`.`rating`,\n                `arena_team_stats`.`games`  AS `gamesPlayed`,\n                `arena_team_stats`.`wins`   AS `gamesWon`,\n                `arena_team_stats`.`rank`   AS `ranking`,\n                `arena_team_stats`.`played` AS `seasonGamesPlayed`,\n                `arena_team_stats`.`wins2`  AS `seasonGamesWon`,\n                `characters`.`race`\n                FROM `arena_team` AS `arena_team`\n                LEFT JOIN `arena_team_stats` AS `arena_team_stats` ON `arena_team_stats`.`arenateamid`=`arena_team`.`arenateamid`\n                LEFT JOIN `characters` AS `characters` ON `characters`.`guid`=`arena_team`.`captainguid`\n                WHERE `arena_team`.`type`=%d AND `arena_team_stats`.`rank` > 0\n                ORDER BY %s %s LIMIT %d, 20", $type, $order, $sort, $page);
         }
         if (!$realmArenaTeamInfo || !is_array($realmArenaTeamInfo)) {
             $this->armory->Log()->writeLog('%s : loop finished, no arena teams found (order: %s, type: %d, page: %d, sort: %s, db_name: %s).', __METHOD__, $order, $type, $page, $sort, $realm_info['name_characters']);
             continue;
         }
         foreach ($realmArenaTeamInfo as $team) {
             $result_areanteams[$i]['data'] = $team;
             $result_areanteams[$i]['data']['num'] = $i + 1;
             $result_areanteams[$i]['data']['battleGroup'] = $this->armory->armoryconfig['defaultBGName'];
             $result_areanteams[$i]['data']['faction'] = null;
             $result_areanteams[$i]['data']['factionId'] = Utils::GetFactionId($result_areanteams[$i]['data']['race']);
             $result_areanteams[$i]['data']['lastSeasonRanking'] = null;
             $result_areanteams[$i]['data']['realm'] = $realm_info['name'];
             $result_areanteams[$i]['data']['realmUrl'] = sprintf('b=%s&r=%s&ts=%d&select=%s', urlencode($this->armory->armoryconfig['defaultBGName']), urlencode($realm_info['name']), $type, urlencode($team['name']));
             $result_areanteams[$i]['data']['relevance'] = 0;
             $result_areanteams[$i]['data']['season'] = 0;
             $result_areanteams[$i]['data']['size'] = $type;
             $result_areanteams[$i]['data']['teamSize'] = $type;
             $result_areanteams[$i]['data']['teamUrl'] = sprintf('r=%s&ts=%d&t=%s', urlencode($this->armory->armoryconfig['defaultBGName']), urlencode($realm_info['name']), $type, urlencode($team['name']));
             $result_areanteams[$i]['emblem'] = self::GetArenaTeamEmblem($team['arenateamid'], $db);
             unset($result_areanteams[$i]['data']['arenateamid'], $result_areanteams[$i]['data']['captainguid']);
             $i++;
         }
     }
     if (!isset($result_areanteams[0]['data'])) {
         $this->armory->Log()->writeLog('%s : unable to find any arena teams', __METHOD__);
         return false;
     }
     return $result_areanteams;
 }
开发者ID:Wisher,项目名称:wowarmory,代码行数:60,代码来源:class.arenateams.php

示例7: PerformCharactersSearch

 public function PerformCharactersSearch($num = false)
 {
     if (!$this->searchQuery) {
         Armory::Log()->writeLog('%s : searchQuery not defined', __METHOD__);
         return false;
     }
     $currentTimeStamp = time();
     $results = array();
     // Full results
     $current_realm = array();
     $count_results = 0;
     // All realms results
     $count_results_currrent_realm = 0;
     // Current realm results
     $db = null;
     // Temporary handler
     $countRealmData = count(Armory::$realmData);
     $search = ucfirst(strtolower($this->searchQuery));
     if ($num == true) {
         foreach (Armory::$realmData as $realm_info) {
             $count_results_currrent_realm = 0;
             $db = new Armory::$dbClass($realm_info['host_characters'], $realm_info['user_characters'], $realm_info['pass_characters'], $realm_info['port_characters'], $realm_info['name_characters'], $realm_info['charset_characters']);
             $characters_data[] = $db->select("SELECT `guid`, `level`, `account` FROM `characters` WHERE `name`='%s' AND `level` >= %d LIMIT 200", $search, Armory::$armoryconfig['minlevel']);
         }
         for ($ii = 0; $ii < $countRealmData; $ii++) {
             $count_result_chars = count($characters_data[$ii]);
             for ($i = 0; $i < $count_result_chars; $i++) {
                 if (isset($characters_data[$ii][$i]) && self::IsCharacterAllowedForSearch($characters_data[$ii][$i]['guid'], $characters_data[$ii][$i]['level'], $characters_data[$ii][$i]['account'])) {
                     $count_results++;
                 }
             }
         }
         return $count_results;
     }
     $accounts_cache = array();
     // For relevance calculation
     foreach (Armory::$realmData as $realm_info) {
         $db = new Armory::$dbClass($realm_info['host_characters'], $realm_info['user_characters'], $realm_info['pass_characters'], $realm_info['port_characters'], $realm_info['name_characters'], $realm_info['charset_characters']);
         if (!$db) {
             continue;
         }
         $current_realm = $db->select("SELECT `guid`, `name`, `class` AS `classId`, `gender` AS `genderId`, `race` AS `raceId`, `level`, `account` FROM `characters` WHERE `name` = '%s'", $search);
         if (!$current_realm) {
             continue;
         }
         $count_current_realm = count($current_realm);
         foreach ($current_realm as $realm) {
             if (!self::IsCharacterAllowedForSearch($realm['guid'], $realm['level'], $realm['account'])) {
                 continue;
             }
             if ($realm['guildId'] = $db->selectCell("SELECT `guildid` FROM `guild_member` WHERE `guid`=%d", $realm['guid'])) {
                 $realm['guild'] = $db->selectCell("SELECT `name` FROM `guild` WHERE `guildid`=%d", $realm['guildId']);
                 $realm['guildUrl'] = sprintf('r=%s&gn=%s', urlencode($realm_info['name']), urlencode($realm['guild']));
             }
             $realm['url'] = sprintf('r=%s&cn=%s', urlencode($realm_info['name']), urlencode($realm['name']));
             $realm['battleGroup'] = Armory::$armoryconfig['defaultBGName'];
             $realm['battleGroupId'] = 1;
             $realm['class'] = Armory::$aDB->selectCell("SELECT `name_%s` FROM `ARMORYDBPREFIX_classes` WHERE `id`=%d", Armory::GetLocale(), $realm['classId']);
             $realm['race'] = Armory::$aDB->selectCell("SELECT `name_%s` FROM `ARMORYDBPREFIX_races` WHERE `id`=%d", Armory::GetLocale(), $realm['raceId']);
             $realm['realm'] = $realm_info['name'];
             $realm['factionId'] = Utils::GetFactionId($realm['raceId']);
             $realm['searchRank'] = 1;
             //???
             /* Calculate relevance */
             $realm['relevance'] = 100;
             // Relevance by last login date will check `realmd`.`account`.`last_login` timestamp
             // First of all - check character level
             $temp_value = $realm['level'];
             if ($temp_value > 70 && $temp_value < MAX_PLAYER_LEVEL) {
                 $realm['relevance'] -= 20;
             } elseif ($temp_value > 60 && $temp_value < 70) {
                 $realm['relevance'] -= 25;
             } elseif ($temp_value > 50 && $temp_value < 60) {
                 $realm['relevance'] -= 30;
             } elseif ($temp_value > 40 && $temp_value < 50) {
                 $realm['relevance'] -= 35;
             } elseif ($temp_value > 30 && $temp_value < 40) {
                 $realm['relevance'] -= 40;
             } elseif ($temp_value > 20 && $temp_value < 30) {
                 $realm['relevance'] -= 45;
             } elseif ($temp_value < 20) {
                 $realm['relevance'] -= 50;
                 // characters with level < 20 have 50% relevance and other reasons can't change this value
                 unset($realm['account'], $realm['guid']);
                 $results[] = $realm;
                 continue;
             }
             // Check last login date. If it's more than 2 days, decrease relevance by 4 for every day
             if (!isset($accounts_cache[$realm['account']])) {
                 $lastLogin = Armory::$rDB->selectCell("SELECT `last_login` FROM `account` WHERE `id`=%d", $realm['account']);
                 $accounts_cache[$realm['account']] = $lastLogin;
             } else {
                 $lastLogin = $accounts_cache[$realm['account']];
             }
             $lastLoginTimestamp = strtotime($lastLogin);
             $diff = $currentTimeStamp - $lastLoginTimestamp;
             if ($lastLogin && $diff > 0) {
                 // 1 day is 86400 seconds
                 $totalDays = round($diff / 86400);
                 if ($totalDays > 2) {
//.........这里部分代码省略.........
开发者ID:Lankytim,项目名称:wowarmory,代码行数:101,代码来源:class.search.php

示例8: SetGuildFaction

 /**
  * Assign guild faction by player faction ID
  * @category Guilds class
  * @access   private
  * @return   bool
  **/
 private function SetGuildFaction()
 {
     if (!$this->guildleaderguid) {
         Armory::Log()->writeError('%s : guildleaderguid not defined', __METHOD__);
         return false;
     }
     $race = Armory::$cDB->selectCell("SELECT `race` FROM `characters` WHERE `guid`=%d LIMIT 1", $this->guildleaderguid);
     $this->guildFaction = Utils::GetFactionId($race);
     return true;
 }
开发者ID:Lankytim,项目名称:wowarmory,代码行数:16,代码来源:class.guilds.php

示例9: BuildCharacter

 public function BuildCharacter($name, $realmId = 1)
 {
     if (!is_string($name)) {
         $this->Log()->writeLog('%s : name must be a string!', __METHOD__);
         return false;
     } elseif (!isset($this->realmData[$realmId])) {
         $this->Log()->writeError('%s : unable to find data for realmId %d', __METHOD__, $realmId);
         return false;
     }
     $realm_info = $this->realmData[$realmId];
     $this->db = DbSimple_Generic::connect('mysql://' . $realm_info['user_characters'] . ':' . $realm_info['pass_characters'] . '@' . $realm_info['host_characters'] . '/' . $realm_info['name_characters']);
     if (!$this->db) {
         $this->Log()->writeError('%s : unable to connect to MySQL server (error: %s; realmId: %d). Check your configs.', __METHOD__, mysql_error() ? mysql_error() : 'none', $realmId);
         return false;
     }
     $this->db->query("SET NAMES ?", isset($realm_info['charset']) ? $realm_info['charset'] : 'UTF8');
     $player_data = $this->db->selectRow("\n        SELECT\n        `characters`.`guid`,\n        `characters`.`account`,\n        `characters`.`name`,\n        `characters`.`race`,\n        `characters`.`class`,\n        `characters`.`gender`,\n        `characters`.`level`,\n        `characters`.`playerBytes`,\n        `characters`.`playerBytes2`,\n        `characters`.`playerFlags`,\n        `characters`.`specCount`,\n        `characters`.`activeSpec`,\n        `characters`.`chosenTitle`,\n        `characters`.`health`,\n        `characters`.`power1`,\n        `characters`.`power2`,\n        `characters`.`power3`,\n        `characters`.`equipmentCache`,\n        `guild_member`.`guildid` AS `guild_id`,\n        `guild`.`name` AS `guild_name`\n        FROM `characters` AS `characters`\n        LEFT JOIN `guild_member` AS `guild_member` ON `guild_member`.`guid`=`characters`.`guid`\n        LEFT JOIN `guild` AS `guild` ON `guild`.`guildid`=`guild_member`.`guildid`\n        WHERE `characters`.`name`=? LIMIT 1", $name);
     if (!$player_data || !is_array($player_data)) {
         $this->Log()->writeError('%s: unable to get data from characters DB for player %s', __METHOD__, $name);
         return false;
     }
     $player_stats_check = $this->db->selectCell("SELECT 1 FROM `armory_character_stats` WHERE `guid`=?d LIMIT 1", $player_data['guid']);
     if (!$player_stats_check) {
         $this->Log()->writeError('%s : player %d (%s) does not have any data in `armory_character_stats` table (SQL update to characters DB not applied?)', __METHOD__, $player_data['guid'], $player_data['name']);
         unset($player_data);
         return false;
     }
     // Is character allowed to be displayed in Armory?
     $gmLevel = false;
     $gmLevel_mangos = $this->rDB->selectCell("SELECT `gmlevel` FROM `account` WHERE `id`=?d LIMIT 1", $player_data['account']);
     $gmLevel_trinity = $this->rDB->selectCell("SELECT `gmlevel` FROM `account_access` WHERE `id`=? AND `RealmID` IN (-1, ?d)", $player_data['account'], $this->connectionData['id']);
     if ($gmLevel_mangos && $gmLevel_trinity) {
         // MaNGOS doesn't have `account_access` table in `realmd` DB
         if ($this->currentRealmInfo['type'] == 'trinity') {
             $this->Log()->writeLog('%s: Detected MaNGOS AND Trinity data in realmd DB, using Trinity (by armoryconfig[type])', __METHOD__);
             $gmLevel = $gmLevel_trinity;
         } else {
             // error?
             $this->Log()->writeLog('%s: Detected MaNGOS AND Trinity data in realmd DB, using MaNGOS (by armoryconfig[type])', __METHOD__);
             $gmLevel = $gmLevel_mangos;
         }
     } elseif ($gmLevel_mangos && !$gmLevel_trinity) {
         $gmLevel = $gmLevel_mangos;
     } elseif ($gmLevel_trinity && !$gmLevel_mangos) {
         $gmLevel = $gmLevel_trinity;
     }
     if (!$gmLevel) {
         $gmLevel = 0;
     }
     $allowed = $gmLevel <= $this->armoryconfig['minGmLevelToShow'] ? true : false;
     if (!$allowed || $player_data['level'] < $this->armoryconfig['minlevel']) {
         $this->Log()->writeLog('%s: Player %d (%s) is not allowed to be displayed in Armory!', __METHOD__, $player_data['guid'], $player_data['name']);
         unset($player_data);
         return false;
     }
     // Class/race/faction checks
     if ($player_data['class'] >= MAX_CLASSES) {
         // Unknown class
         $this->Log()->writeError('%s: Player %d (%s) have incorrect data in DB: class %d not found.', __METHOD__, $player_data['guid'], $player_data['name'], $player_data['class']);
         unset($player_data);
         return false;
     } elseif ($player_data['race'] >= MAX_RACES) {
         // Unknown race
         $this->Log()->writeError('%s: Player %d (%s) have incorrect data in DB: race %d not found.', __METHOD__, $player_data['guid'], $player_data['name'], $player_data['race']);
         unset($player_data);
         return false;
     }
     $this->faction = Utils::GetFactionId($player_data['race']);
     if ($this->faction != 0 && $this->faction != 1) {
         // Unknown faction
         $this->Log()->writeError('%s : player %d (%s) have incorrect faction in DB: faction %d not found (race: %d).', __METHOD__, $player_data['guid'], $player_data['name'], $this->faction, $player_data['class']);
         unset($player_data);
         return false;
     }
     // Everything correct, build class
     $this->Log()->writeLog('%s : All correct, player %s builded', __METHOD__, $name);
     foreach ($player_data as $pData_key => $pData_value) {
         $this->{$pData_key} = $pData_value;
     }
     // Get race and class strings
     $race_class = $this->aDB->selectRow("\n        SELECT\n        `armory_races`.`name_" . $this->_locale . "` AS `race`,\n        `armory_classes`.`name_" . $this->_locale . "` AS `class`\n        FROM `armory_races` AS `armory_races`\n        LEFT JOIN `armory_classes` AS `armory_classes` ON `armory_classes`.`id`=?d\n        WHERE `armory_races`.`id`=?d", $this->class, $this->race);
     if (!$race_class) {
         $this->Log()->writeError('%s : unable to find class/race text strings for player %d (name: %s, race: %d, class: %d)', __METHOD__, $player_data['guid'], $player_data['name'], $player_data['race'], $player_data['class']);
         unset($player_data);
         return false;
     }
     $this->classText = $race_class['class'];
     $this->raceText = $race_class['race'];
     // Get title info
     if ($this->chosenTitle > 0) {
         $this->__GetTitleInfo();
     }
     $this->realmName = $realm_info['name'];
     $this->realmID = $realm_info['id'];
     unset($realm_info);
     $this->__HandleEquipmentCacheData();
     return true;
 }
开发者ID:sarrian,项目名称:wowarmory,代码行数:98,代码来源:class.characters.php

示例10: BuildCharacter

 /**
  * Init character, load data from DB, checks for requirements, etc.
  * @category Characters class
  * @access   public
  * @param    string $name
  * @param    int $realmId = 1
  * @param    bool $full = true
  * @param    bool $initialBuild = false
  * @return   bool
  **/
 public function BuildCharacter($name, $realmId = 1, $full = true, $initialBuild = false)
 {
     if (!is_string($name)) {
         $this->armory->Log()->writeLog('%s : name must be a string!', __METHOD__);
         return false;
     }
     if ($realmId == false) {
         $this->armory->Log()->writeLog('%s : realmId not provided!', __METHOD__);
         return false;
     }
     if (!isset($this->armory->realmData[$realmId])) {
         $this->armory->Log()->writeError('%s : unable to find data for realmId %d', __METHOD__, $realmId);
         return false;
     }
     $realm_info = $this->armory->realmData[$realmId];
     $this->db = new ArmoryDatabaseHandler($realm_info['host_characters'], $realm_info['user_characters'], $realm_info['pass_characters'], $realm_info['name_characters'], $realm_info['charset_characters'], $this->armory->Log());
     if (!$this->db || !$this->db->TestLink()) {
         $this->armory->Log()->writeError('%s : unable to connect to MySQL server (error: %s; realmId: %d). Check your configs.', __METHOD__, mysql_error() ? mysql_error() : 'none', $realmId);
         return false;
     }
     // Set type
     $this->m_server = $this->armory->aDB->selectCell("SELECT `type` FROM `ARMORYDBPREFIX_realm_data` WHERE `id`=%d", $realmId);
     if ($this->m_server == UNK_SERVER) {
         $this->armory->Log()->writeError('%s : unknown server type! Unable to initialize characters class (name: %s, realmId: %d)', __METHOD__, $name, $realmId);
         return false;
     }
     if ($full == true) {
         $player_data = $this->db->selectRow("\n            SELECT\n            `characters`.`guid`,\n            `characters`.`account`,\n            `characters`.`name`,\n            `characters`.`race`,\n            `characters`.`class`,\n            `characters`.`gender`,\n            `characters`.`level`,\n            `characters`.`money`,\n            `characters`.`playerBytes`,\n            `characters`.`playerBytes2`,\n            `characters`.`playerFlags`,\n            `characters`.`specCount`,\n            `characters`.`activeSpec`,\n            `characters`.`chosenTitle`,\n            `characters`.`health`,\n            `characters`.`power1`,\n            `characters`.`power2`,\n            `characters`.`power3`,\n            `characters`.`equipmentCache`,\n            `guild_member`.`guildid` AS `guild_id`,\n            `guild`.`name` AS `guild_name`\n            FROM `characters` AS `characters`\n            LEFT JOIN `guild_member` AS `guild_member` ON `guild_member`.`guid`=`characters`.`guid`\n            LEFT JOIN `guild` AS `guild` ON `guild`.`guildid`=`guild_member`.`guildid`\n            WHERE `characters`.`name`='%s' LIMIT 1", $name);
     } else {
         $player_data = $this->db->selectRow("\n            SELECT\n            `characters`.`guid`,\n            `characters`.`account`,\n            `characters`.`name`,\n            `characters`.`race`,\n            `characters`.`class`,\n            `characters`.`gender`,\n            `characters`.`level`,\n            `characters`.`equipmentCache`,\n            `guild_member`.`guildid` AS `guild_id`,\n            `guild`.`name` AS `guild_name`\n            FROM `characters` AS `characters`\n            LEFT JOIN `guild_member` AS `guild_member` ON `guild_member`.`guid`=`characters`.`guid`\n            LEFT JOIN `guild` AS `guild` ON `guild`.`guildid`=`guild_member`.`guildid`\n            WHERE `characters`.`name`='%s' LIMIT 1", $name);
     }
     if ($player_data == false || !is_array($player_data)) {
         $this->armory->Log()->writeError('%s: unable to get data from characters DB for player %s (realmId: %d, expected realmName: %s, currentRealmName: %s)', __METHOD__, $name, $realmId, isset($_GET['r']) ? $_GET['r'] : 'none', $realm_info['name']);
         return false;
     }
     if ($full == true) {
         // Character data required for character-sheet page only.
         $player_stats_check = $this->db->selectCell("SELECT 1 FROM `armory_character_stats` WHERE `guid`=%d LIMIT 1", $player_data['guid']);
         if (!$player_stats_check) {
             $this->armory->Log()->writeError('%s : player %d (%s) does not have any data in `armory_character_stats` table (SQL update to Characters DB was not applied? / Character was not saved in game? / Server core was not patched?)', __METHOD__, $player_data['guid'], $player_data['name']);
             unset($player_data);
             return false;
         }
     }
     // Is character allowed to be displayed in Armory?
     $gmLevel = false;
     if ($this->m_server == SERVER_TRINITY) {
         $gmLevel = $this->armory->rDB->selectCell("SELECT `gmlevel` FROM `account_access` WHERE `id`=%d AND `RealmID` IN (-1, %d)", $player_data['account'], $this->armory->connectionData['id']);
     } elseif ($this->m_server == SERVER_MANGOS) {
         $gmLevel = $this->armory->rDB->selectCell("SELECT `gmlevel` FROM `account` WHERE `id`=%d LIMIT 1", $player_data['account']);
     }
     $allowed = $gmLevel <= $this->armory->armoryconfig['minGmLevelToShow'] ? true : false;
     if (!$allowed || $player_data['level'] < $this->armory->armoryconfig['minlevel']) {
         $this->armory->Log()->writeLog('%s : Player %d (%s) is not allowed to be displayed in Armory (GM level restriction or have low level)!', __METHOD__, $player_data['guid'], $player_data['name']);
         unset($player_data);
         return false;
     }
     // Class/race/faction checks
     if ($player_data['class'] >= MAX_CLASSES) {
         // Unknown class
         $this->armory->Log()->writeError('%s : Player %d (%s) have wrong data in DB: class %d was not found.', __METHOD__, $player_data['guid'], $player_data['name'], $player_data['class']);
         unset($player_data);
         return false;
     } elseif ($player_data['race'] >= MAX_RACES) {
         // Unknown race
         $this->armory->Log()->writeError('%s : Player %d (%s) have wrong data in DB: race %d was not found.', __METHOD__, $player_data['guid'], $player_data['name'], $player_data['race']);
         unset($player_data);
         return false;
     }
     $this->faction = Utils::GetFactionId($player_data['race']);
     if ($this->faction === false) {
         // Unknown faction
         $this->armory->Log()->writeError('%s : Player %d (%s) have wrong faction in DB: faction %d was not found (race: %d).', __METHOD__, $player_data['guid'], $player_data['name'], $this->faction, $player_data['class']);
         unset($player_data);
         return false;
     }
     foreach ($player_data as $pData_key => $pData_value) {
         if (is_string($pData_key)) {
             $this->{$pData_key} = $pData_value;
         }
     }
     $this->HandleEquipmentCacheData();
     if ($full == true) {
         // Get race and class strings
         $race_class = $this->armory->aDB->selectRow("\n            SELECT\n            `ARMORYDBPREFIX_races`.`name_%s` AS `race`,\n            `ARMORYDBPREFIX_classes`.`name_%s` AS `class`\n            FROM `ARMORYDBPREFIX_races` AS `ARMORYDBPREFIX_races`\n            LEFT JOIN `ARMORYDBPREFIX_classes` AS `ARMORYDBPREFIX_classes` ON `ARMORYDBPREFIX_classes`.`id`=%d\n            WHERE `ARMORYDBPREFIX_races`.`id`=%d", $this->armory->GetLocale(), $this->armory->GetLocale(), $player_data['class'], $player_data['race']);
         if (!$race_class) {
             $this->armory->Log()->writeError('%s : unable to find class/race text strings for player %d (name: %s, race: %d, class: %d)', __METHOD__, $player_data['guid'], $player_data['name'], $player_data['race'], $player_data['class']);
             unset($player_data);
             return false;
         }
//.........这里部分代码省略.........
开发者ID:Wisher,项目名称:wowarmory,代码行数:101,代码来源:class.characters.php

示例11: BuildCharacter

 public function BuildCharacter($name)
 {
     if (!is_string($name)) {
         return false;
     }
     $player_data = $this->cDB->selectRow("\n        SELECT\n        `characters`.`guid`,\n        `characters`.`account`,\n        `characters`.`name`,\n        `characters`.`race`,\n        `characters`.`class`,\n        `characters`.`gender`,\n        `characters`.`level`,\n        `characters`.`playerBytes`,\n        `characters`.`playerBytes2`,\n        `characters`.`playerFlags`,\n        `characters`.`specCount`,\n        `characters`.`activeSpec`,\n        `characters`.`chosenTitle`,\n        `characters`.`health`,\n        `characters`.`power1`,\n        `characters`.`power2`,\n        `characters`.`power3`,\n        `guild_member`.`guildid` AS `guild_id`,\n        `guild`.`name` AS `guild_name`\n        FROM `characters` AS `characters`\n        LEFT JOIN `guild_member` AS `guild_member` ON `guild_member`.`guid`=`characters`.`guid`\n        LEFT JOIN `guild` AS `guild` ON `guild`.`guildid`=`guild_member`.`guildid`\n        WHERE `characters`.`name`=? LIMIT 1", $name);
     if (!$player_data || !is_array($player_data)) {
         return false;
     }
     // Is character allowed to be displayed in Armory?
     $gmLevel = $this->rDB->selectCell("SELECT `gmlevel` FROM `account` WHERE `id`=?d LIMIT 1", $player_data['account']);
     if (!$gmLevel) {
         unset($player_data);
         // Unknown account
         return false;
     }
     $allowed = $gmLevel <= $this->armoryconfig['minGmLevelToShow'] ? true : false;
     if (!$allowed || $player_data['level'] < $this->armoryconfig['minlevel']) {
         unset($player_data);
         return false;
     }
     // Class/race/faction checks
     if ($player_data['class'] >= MAX_CLASSES) {
         // Unknown class
         unset($player_data);
         return false;
     } elseif ($player_data['race'] >= MAX_RACES) {
         // Unknown race
         unset($player_data);
         return false;
     }
     $this->faction = Utils::GetFactionId($player_data['race']);
     if (!$this->faction) {
         // Unknown faction
         unset($player_data);
         return false;
     }
     // Everything correct, build class
     foreach ($player_data as $pData_key => $pData_value) {
         $this->{$pData_key} = $pData_value;
     }
     // Get race and class strings
     $race_class = $this->aDB->selectRow("\n        SELECT\n        `armory_races`.`name_" . $this->_locale . "` AS `race`,\n        `armory_classes`.`name_" . $this->_locale . "` AS `class`\n        FROM `armory_races` AS `armory_races`\n        LEFT JOIN `armory_classes` AS `armory_classes` ON `armory_classes`.`id`=?d\n        WHERE `armory_races`.`id`=?d", $this->class, $this->race);
     $this->classText = $race_class['class'];
     $this->raceText = $race_class['race'];
     // Get title info
     if ($this->chosenTitle > 0) {
         $this->__GetTitleInfo();
     }
     return true;
 }
开发者ID:Toshik,项目名称:wowarmory,代码行数:51,代码来源:class.characters.php

示例12: GetAllCharacters

 public function GetAllCharacters()
 {
     if (!isset($_SESSION['accountId'])) {
         return false;
     }
     $results = array();
     foreach ($this->realmData as $realm_info) {
         $db = DbSimple_Generic::connect('mysql://' . $realm_info['user_characters'] . ':' . $realm_info['pass_characters'] . '@' . $realm_info['host_characters'] . '/' . $realm_info['name_characters']);
         $db->query("SET NAMES UTF8");
         $chars_data = $db->select("\n            SELECT\n            `characters`.`guid`,\n            `characters`.`name`, \n            `characters`.`class` AS `classId`, \n            `characters`.`race` AS `raceId`, \n            `characters`.`gender` AS `genderId`, \n            `characters`.`level`,\n            `guild_member`.`guildid` AS `guildId`,\n            `guild`.`name` AS `guild`\n            FROM `characters` AS `characters`\n            LEFT JOIN `guild_member` AS `guild_member` ON `guild_member`.`guid`=`characters`.`guid`\n            LEFT JOIN `guild` AS `guild` ON `guild`.`guildid`=`guild_member`.`guildId`\n            WHERE `characters`.`account`=?", $_SESSION['accountId']);
         if (!$chars_data) {
             continue;
         }
         foreach ($chars_data as $realm) {
             $realm['account'] = strtoupper($_SESSION['username']);
             $realm['factionId'] = Utils::GetFactionId($realm['raceId']);
             $realm['realm'] = $realm_info['name'];
             $realm['relevance'] = 100;
             if ($realm['level'] < $this->armoryconfig['minlevel']) {
                 $realm['relevance'] = 0;
             } elseif ($realm['level'] >= $this->armoryconfig['minlevel'] && $realm['level'] <= 79) {
                 $realm['relevance'] = $realm['level'];
             } elseif ($realm['level'] == 80) {
                 $realm['relevance'] = 100;
             } else {
                 $realm['relevance'] = 0;
                 // Unknown
             }
             $realm['url'] = sprintf('r=%s&cn=%s', urlencode($realm['realm']), urlencode($realm['name']));
             $realm['selected'] = $this->aDB->selectCell("SELECT `selected` FROM `armory_login_characters` WHERE `account`=?d AND `guid`=?d AND `realm_id`=?d LIMIT 1", $_SESSION['accountId'], $realm['guid'], $realm_info['id']);
             if ($realm['selected'] > 2) {
                 $realm['selected'] = 2;
             } elseif ($realm['selected'] == 0) {
                 unset($realm['selected']);
             }
             unset($realm['guid']);
             // Do not show GUID in XML results
             $results[] = $realm;
         }
     }
     if (is_array($results)) {
         return $results;
     }
     return false;
 }
开发者ID:Toshik,项目名称:wowarmory,代码行数:45,代码来源:class.utils.php


注:本文中的Utils::GetFactionId方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。