Postado Fevereiro 1, 2017 9 anos Bom gente, baixei o gesior 2012 direto do github do Gesior.pl e tava de boa, funcionou. Peguei hoje pra editar, a unica coisa q editei foi o install.php, criei umas linhas a mais pra criar novas colunas e tables na database, mas agora, quando eu crio um char e pesquiso ele, da erro. Obs.: Nenhum sample tem skill na table players_skill, pq isso? n era pra ter? Erro: Tabela players_skill Na tabela, o player id 1 é o Account Manager que criou sozinho, o 14 é o player "Sekk" que eu criei, ele tava dando o erro, mas eu criei manualmente as skill do Sekk na table pra funcionar... Podem observar que nenhum Sample participa dessa table O que posso fazer? classes/player.php Spoiler <?php if(!defined('INITIALIZED')) exit; class Player extends ObjectData { const LOADTYPE_ID = 'id'; const LOADTYPE_NAME = 'name'; const LOADTYPE_ACCOUNT_ID = 'account_id'; public static $table = 'players'; public $data = array('name' => null, 'world_id' => null, 'group_id' => null, 'account_id' => null, 'level' => null, 'vocation' => null, 'health' => null, 'healthmax' => null, 'experience' => null, 'lookbody' => null, 'lookfeet' => null, 'lookhead' => null, 'looklegs' => null, 'looktype' => null, 'lookaddons' => null, 'maglevel' => null, 'mana' => null, 'manamax' => null, 'manaspent' => null, 'soul' => null, 'town_id' => null, 'posx' => null, 'posy' => null, 'posz' => null, 'conditions' => null, 'cap' => null, 'sex' => null, 'lastlogin' => null, 'lastip' => null, 'save' => null, 'skull' => null, 'skulltime' => null, 'rank_id' => null, 'guildnick' => null, 'lastlogout' => null, 'blessings' => null, 'balance' => null, 'stamina' => null, 'direction' => null, 'loss_experience' => null, 'loss_mana' => null, 'loss_skills' => null, 'loss_containers' => null, 'loss_items' => null, 'premend' => null, 'online' => null, 'marriage' => null, 'promotion' => null, 'deleted' => null, 'description' => null, 'create_ip' => null, 'create_date' => null, 'comment' => null, 'hide_char' => null); public static $fields = array('id', 'name', 'world_id', 'group_id', 'account_id', 'level', 'vocation', 'health', 'healthmax', 'experience', 'lookbody', 'lookfeet', 'lookhead', 'looklegs', 'looktype', 'lookaddons', 'maglevel', 'mana', 'manamax', 'manaspent', 'soul', 'town_id', 'posx', 'posy', 'posz', 'conditions', 'cap', 'sex', 'lastlogin', 'lastip', 'save', 'skull', 'skulltime', 'rank_id', 'guildnick', 'lastlogout', 'blessings', 'balance', 'stamina', 'direction', 'loss_experience', 'loss_mana', 'loss_skills', 'loss_containers', 'loss_items', 'premend', 'online', 'marriage', 'promotion', 'deleted', 'description', 'create_ip', 'create_date', 'comment', 'hide_char'); public static $skillFields = array('player_id', 'skillid', 'value', 'count'); public $items; public $storages; public $skills; public $account; public $rank; public function __construct($search_text = null, $search_by = self::LOADTYPE_ID) { if($search_text != null) $this->load($search_text, $search_by); } public function load($search_text, $search_by = self::LOADTYPE_ID) { if(in_array($search_by, self::$fields)) $search_string = $this->getDatabaseHandler()->fieldName($search_by) . ' = ' . $this->getDatabaseHandler()->quote($search_text); else new Error_Critic('', 'Wrong Player search_by type.'); $fieldsArray = array(); foreach(self::$fields as $fieldName) $fieldsArray[] = $this->getDatabaseHandler()->fieldName($fieldName); $this->data = $this->getDatabaseHandler()->query('SELECT ' . implode(', ', $fieldsArray) . ' FROM ' . $this->getDatabaseHandler()->tableName(self::$table) . ' WHERE ' . $search_string)->fetch(); } public function loadById($id) { $this->load($id, self::LOADTYPE_ID); } public function loadByName($name) { $this->load($name, self::LOADTYPE_NAME); } public function save($forceInsert = false) { if(!isset($this->data['id']) || $forceInsert) { $keys = array(); $values = array(); foreach(self::$fields as $key) if($key != 'id') { $keys[] = $this->getDatabaseHandler()->fieldName($key); $values[] = $this->getDatabaseHandler()->quote($this->data[$key]); } $this->getDatabaseHandler()->query('INSERT INTO ' . $this->getDatabaseHandler()->tableName(self::$table) . ' (' . implode(', ', $keys) . ') VALUES (' . implode(', ', $values) . ')'); $this->setID($this->getDatabaseHandler()->lastInsertId()); } else { $updates = array(); foreach(self::$fields as $key) $updates[] = $this->getDatabaseHandler()->fieldName($key) . ' = ' . $this->getDatabaseHandler()->quote($this->data[$key]); $this->getDatabaseHandler()->query('UPDATE ' . $this->getDatabaseHandler()->tableName(self::$table) . ' SET ' . implode(', ', $updates) . ' WHERE ' . $this->getDatabaseHandler()->fieldName('id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id'])); } } public function getItems($forceReload = false) { if(!isset($this->items) || $forceReload) $this->items = new ItemsList($this->getID()); return $this->items; } public function saveItems() { if(isset($this->items)) { // if any script changed ID of player, function should save items with new player id $this->items->setPlayerId($this->getID()); $this->items->save(); } else new Error_Critic('', 'Player::saveItems() - items not loaded, cannot save'); } public function loadStorages() { $this->storages = array(); // load all $storages = $this->getDatabaseHandler()->query('SELECT ' . $this->getDatabaseHandler()->fieldName('player_id') . ', ' . $this->getDatabaseHandler()->fieldName('key') . ', ' . $this->getDatabaseHandler()->fieldName('value') . ' FROM ' .$this->getDatabaseHandler()->tableName('player_storage') . ' WHERE ' . $this->getDatabaseHandler()->fieldName('player_id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id']))->fetchAll(); foreach($storages as $storage) { $this->storages[$storage['key']] = $storage['value']; } } public function saveStorages() { if(isset($this->storages)) { $this->getDatabaseHandler()->query('DELETE FROM ' .$this->getDatabaseHandler()->tableName('player_storage') . ' WHERE ' . $this->getDatabaseHandler()->fieldName('player_id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id'])); foreach($this->storages as $key => $value) { //save each $this->getDatabaseHandler()->query('INSERT INTO ' . $this->getDatabaseHandler()->tableName('player_storage') . ' (' . $this->getDatabaseHandler()->fieldName('player_id') . ', ' . $this->getDatabaseHandler()->fieldName('key') . ', ' . $this->getDatabaseHandler()->fieldName('value') . ', ) VALUES (' . $this->getDatabaseHandler()->quote($this->data['id']) . ', ' . $this->getDatabaseHandler()->quote($key) . ', ' . $this->getDatabaseHandler()->quote($value) . ')'); } } else new Error_Critic('', 'Player::saveStorages() - storages not loaded, cannot save'); } public function getStorage($key) { if(!isset($this->storages)) { $this->loadStorages(); } if(isset($this->storages[$key])) return $this->storages[$key]; else return null; } public function getStorages() { if(!isset($this->storages)) { $this->loadStorages(); } return $this->storages; } public function setStorage($key, $value) { if(!isset($this->storages)) { $this->loadStorages(); } $this->storages[$key] = $value; } public function removeStorage($key) { if(!isset($this->storages)) { $this->loadStorages(); } if(isset($this->storages[$key])) unset($this->storages[$key]); } public function loadSkills() { $fieldsArray = array(); foreach(self::$skillFields as $fieldName) $fieldsArray[] = $this->getDatabaseHandler()->fieldName($fieldName); $skills = $this->getDatabaseHandler()->query('SELECT ' . implode(', ', $fieldsArray) . ' FROM ' . $this->getDatabaseHandler()->fieldName('player_skills') . ' WHERE ' . $this->getDatabaseHandler()->fieldName('player_id') . ' = ' . $this->getDatabaseHandler()->quote($this->getID()))->fetchAll(); $this->skills = array(); foreach($skills as $skill) $this->skills[$skill['skillid']] = $skill; } public function getSkills($forceReload = false) { if(!isset($this->skills) || $forceReload) $this->loadSkills(); return $this->skills; } public function getSkill($id, $forceReload = false) { if(!isset($this->skills) || $forceReload) $this->loadSkills(); if(isset($this->skills[$id])) return $this->skills[$id]['value']; else new Error_Critic('', 'Player::getSkill() - Skill ' . htmlspecialchars($id) . ' does not exist'); } public function setSkill($id, $value) { $this->skills[$id]['value'] = $value; } public function getSkillCount($id, $forceReload = false) { if(!isset($this->skills) || $forceReload) $this->loadSkills(); if(isset($this->skills[$id])) return $this->skills[$id]['count']; else new Error_Critic('', 'Player::getSkillCount() - Skill ' . htmlspecialchars($id) . ' does not exist'); } public function setSkillCount($id, $count) { $this->skills[$id]['count'] = $count; } public function saveSkills() { if(isset($this->skills)) { $this->getDatabaseHandler()->query('DELETE FROM ' . $this->getDatabaseHandler()->tableName('player_skills') . ' WHERE ' . $this->getDatabaseHandler()->fieldName('player_id') . ' = ' . $this->getDatabaseHandler()->quote($this->getID())); if(count($this->skills) > 0) { $keys = array(); foreach(self::$skillFields as $key) $keys[] = $this->getDatabaseHandler()->fieldName($key); $query = 'INSERT INTO ' . $this->getDatabaseHandler()->tableName('player_skills') . ' (' . implode(', ', $keys) . ') VALUES '; foreach($this->skills as $skill) { $fieldValues = array(); foreach(self::$skillFields as $key) if($key != 'player_id') $fieldValues[] = $this->getDatabaseHandler()->quote($skill[$key]); else $fieldValues[] = $this->getDatabaseHandler()->quote($this->getID()); $this->getDatabaseHandler()->query($query . '(' . implode(', ', $fieldValues) . ')'); } } } else new Error_Critic('', 'Player::saveSkills() - skills not loaded, cannot save'); } public function loadAccount() { $this->account = new Account($this->getAccountID()); } public function getAccount($forceReload = false) { if(!isset($this->account) || $forceReload) $this->loadAccount(); return $this->account; } public function setAccount($account) { $this->account = $account; $this->setAccountID($account->getID()); } public function loadRank() { $this->rank = new GuildRank($this->getRankID()); } public function getRank($forceReload = false) { if(!isset($this->rank) || $forceReload) $this->loadRank(); if($this->data['rank_id'] == 0) { return null; } return $this->rank; } public function setRank($rank = null) { if(isset($rank)) { $this->rank = $rank; $this->setRankID($rank->getID()); } else { $this->rank = new GuildRank(); $this->setRankID(0); } } public function hasGuild() { return $this->getRank()->isLoaded(); } public function removeGuildInvitations() { $this->getDatabaseHandler()->query('DELETE FROM ' . $this->getDatabaseHandler()->tableName('guild_invites') . ' WHERE ' . $this->getDatabaseHandler()->fieldName('player_id') . ' = ' . $this->getDatabaseHandler()->quote($this->getID())); } public function unban() { $bans = new DatabaseList('Ban'); $filterType = new SQL_Filter(new SQL_Field('type'), SQL_Filter::EQUAL, Ban::TYPE_PLAYER); $filterValue = new SQL_Filter(new SQL_Field('value'), SQL_Filter::EQUAL, $this->data['id']); $filterActive = new SQL_Filter(new SQL_Field('active'), SQL_Filter::EQUAL, 1); $filter = new SQL_Filter($filterType, SQL_Filter::CRITERIUM_AND, $filterValue); $filter = new SQL_Filter($filter, SQL_Filter::CRITERIUM_AND, $filterActive); $bans->setFilter($filter); foreach($bans as $ban) { $ban->setActive(0); $ban->save(); } } public function isBanned() { $bans = new DatabaseList('Ban'); $filterType = new SQL_Filter(new SQL_Field('type'), SQL_Filter::EQUAL, Ban::TYPE_PLAYER); $filterParam = new SQL_Filter(new SQL_Field('param'), SQL_Filter::EQUAL, Ban::PLAYERBAN_BANISHMENT); $filterValue = new SQL_Filter(new SQL_Field('value'), SQL_Filter::EQUAL, $this->data['id']); $filterActive = new SQL_Filter(new SQL_Field('active'), SQL_Filter::EQUAL, 1); $filter = new SQL_Filter($filterType, SQL_Filter::CRITERIUM_AND, $filterValue); $filter = new SQL_Filter($filter, SQL_Filter::CRITERIUM_AND, $filterActive); $filter = new SQL_Filter($filter, SQL_Filter::CRITERIUM_AND, $filterParam); $bans->setFilter($filter); $isBanned = false; foreach($bans as $ban) { if($ban->getExpires() <= 0 || $ban->isExpires() > time()) $isBanned = true; } return $isBanned; } public function isNamelocked() { $bans = new DatabaseList('Ban'); $filterType = new SQL_Filter(new SQL_Field('type'), SQL_Filter::EQUAL, Ban::TYPE_PLAYER); $filterParam = new SQL_Filter(new SQL_Field('param'), SQL_Filter::EQUAL, Ban::PLAYERBAN_LOCK); $filterValue = new SQL_Filter(new SQL_Field('value'), SQL_Filter::EQUAL, $this->data['id']); $filterActive = new SQL_Filter(new SQL_Field('active'), SQL_Filter::EQUAL, 1); $filter = new SQL_Filter($filterType, SQL_Filter::CRITERIUM_AND, $filterValue); $filter = new SQL_Filter($filter, SQL_Filter::CRITERIUM_AND, $filterActive); $filter = new SQL_Filter($filter, SQL_Filter::CRITERIUM_AND, $filterParam); $bans->setFilter($filter); return (count($bans) > 0); } public function delete() { $this->db->query('UPDATE ' . $this->getDatabaseHandler()->tableName(self::$table) . ' SET ' . $this->getDatabaseHandler()->fieldName('deleted') . ' = 1 WHERE ' . $this->getDatabaseHandler()->fieldName('id') . ' = ' . $this->getDatabaseHandler()->quote($this->data['id'])); unset($this->data['id']); } /* * default tfs 0.3.6 fields */ public function setID($value){$this->data['id'] = $value;} public function getID(){return $this->data['id'];} public function setAccountID($value){$this->data['account_id'] = $value;} public function getAccountID(){return $this->data['account_id'];} public function setWorldID($value){$this->data['world_id'] = $value;} public function getWorldID(){return $this->data['world_id'];} public function setName($value){$this->data['name'] = $value;} public function getName(){return $this->data['name'];} public function setGroupID($value){$this->data['group_id'] = $value;} public function getGroupID(){return $this->data['group_id'];} public function setVocation($value){$this->data['vocation'] = $value;} public function getVocation(){return $this->data['vocation'];} public function setPromotion($value){$this->data['promotion'] = $value;} public function getPromotion(){return $this->data['promotion'];} public function setLevel($value){$this->data['level'] = $value;} public function getLevel(){return $this->data['level'];} public function setExperience($value){$this->data['experience'] = $value;} public function getExperience(){return $this->data['experience'];} public function setHealth($value){$this->data['health'] = $value;} public function getHealth(){return $this->data['health'];} public function setHealthMax($value){$this->data['healthmax'] = $value;} public function getHealthMax(){return $this->data['healthmax'];} public function setMana($value){$this->data['mana'] = $value;} public function getMana(){return $this->data['mana'];} public function setManaMax($value){$this->data['manamax'] = $value;} public function getManaMax(){return $this->data['manamax'];} public function setMagLevel($value){$this->data['maglevel'] = $value;} public function getMagLevel(){return $this->data['maglevel'];} public function setManaSpent($value){$this->data['manaspent'] = $value;} public function getManaSpent(){return $this->data['manaspent'];} public function setSex($value){$this->data['sex'] = $value;} public function getSex(){return $this->data['sex'];} public function setTown($value){$this->data['town_id'] = $value;} public function getTown(){return $this->data['town_id'];} public function setPosX($value){$this->data['posx'] = $value;} public function getPosX(){return $this->data['posx'];} public function setPosY($value){$this->data['posy'] = $value;} public function getPosY(){return $this->data['posy'];} public function setPosZ($value){$this->data['posz'] = $value;} public function getPosZ(){return $this->data['posz'];} public function setCapacity($value){$this->data['cap'] = $value;} public function getCapacity(){return $this->data['cap'];} public function setSoul($value){$this->data['soul'] = $value;} public function getSoul(){return $this->data['soul'];} public function setConditions($value){$this->data['conditions'] = $value;} public function getConditions(){return $this->data['conditions'];} public function setLastIP($value){$this->data['lastip'] = $value;} public function getLastIP(){return $this->data['lastip'];} public function setLastLogin($value){$this->data['lastlogin'] = $value;} public function getLastLogin(){return $this->data['lastlogin'];} public function setLastLogout($value){$this->data['lastlogout'] = $value;} public function getLastLogout(){return $this->data['lastlogout'];} public function setSkull($value){$this->data['skull'] = $value;} public function getSkull(){return $this->data['skull'];} public function setSkullTime($value){$this->data['skulltime'] = $value;} public function getSkullTime(){return $this->data['skulltime'];} public function setRankID($value){$this->data['rank_id'] = $value;} public function getRankID(){return $this->data['rank_id'];} public function setGuildNick($value){$this->data['guildnick'] = $value;} public function getGuildNick(){return $this->data['guildnick'];} public function setSave($value = 1){$this->data['save'] = (int) $value;} public function getSave(){return $this->data['save'];} public function setBlessings($value){$this->data['blessings'] = $value;} public function getBlessings(){return $this->data['blessings'];} public function setBalance($value){$this->data['balance'] = $value;} public function getBalance(){return $this->data['balance'];} public function setStamina($value){$this->data['stamina'] = $value;} public function getStamina(){return $this->data['stamina'];} public function setDirection($value){$this->data['direction'] = $value;} public function getDirection(){return $this->data['direction'];} public function setLossExperience($value){$this->data['loss_experience'] = $value;} public function getLossExperience(){return $this->data['loss_experience'];} public function setLossMana($value){$this->data['loss_mana'] = $value;} public function getLossMana(){return $this->data['loss_mana'];} public function setLossSkills($value){$this->data['loss_skills'] = $value;} public function getLossSkills(){return $this->data['loss_skills'];} public function setLossContainers($value){$this->data['loss_containers'] = $value;} public function getLossContainers(){return $this->data['loss_containers'];} public function setLossItems($value){$this->data['loss_items'] = $value;} public function getLossItems(){return $this->data['loss_items'];} public function setOnline($value){$this->data['online'] = (int) $value;} public function getOnline(){return (bool) $this->data['online'];} public function setMarriage($value){$this->data['marriage'] = $value;} public function getMarriage(){return $this->data['marriage'];} public function setDeleted($value){$this->data['deleted'] = (int) $value;} public function isDeleted(){return (bool) $this->data['deleted'];} public function setDescription($value){$this->data['description'] = $value;} public function getDescription(){return $this->data['description'];} public function setLookBody($value){$this->data['lookbody'] = $value;} public function getLookBody(){return $this->data['lookbody'];} public function setLookFeet($value){$this->data['lookfeet'] = $value;} public function getLookFeet(){return $this->data['lookfeet'];} public function setLookHead($value){$this->data['lookhead'] = $value;} public function getLookHead(){return $this->data['lookhead'];} public function setLookLegs($value){$this->data['looklegs'] = $value;} public function getLookLegs(){return $this->data['looklegs'];} public function setLookType($value){$this->data['looktype'] = $value;} public function getLookType(){return $this->data['looktype'];} public function setLookAddons($value){$this->data['lookaddons'] = $value;} public function getLookAddons(){return $this->data['lookaddons'];} /* * Custom AAC fields * create_ip , INT, default 0 * create_date , INT, default 0 * hide_char , INT, default 0 * comment , TEXT, default '' */ public function setCreateIP($value){$this->data['create_ip'] = $value;} public function getCreateIP(){return $this->data['create_ip'];} public function setCreateDate($value){$this->data['create_date'] = $value;} public function getCreateDate(){return $this->data['create_date'];} public function setHidden($value){$this->data['hide_char'] = (int) $value;} public function isHidden(){return (bool) $this->data['hide_char'];} public function setComment($value){$this->data['comment'] = $value;} public function getComment(){return $this->data['comment'];} /* * for compability with old scripts */ public function setGroup($value){$this->setGroupID($value);} public function getGroup(){return $this->getGroupID();} public function setWorld($value){$this->setWorldID($value);} public function getWorld(){return $this->getWorldID();} public function isOnline(){return $this->getOnline() == 1;} public function getCreated(){return $this->getCreateDate();} public function setCreated($value){$this->setCreateDate($value);} public function setCap($value){$this->setCapacity($value);} public function getCap(){return $this->getCapacity();} public function isSaveSet(){return $this->getSave();} public function unsetSave(){$this->setSave(0);} public function getTownId(){return $this->getTown();} public function getHideChar(){return $this->isHidden();} public function find($name){$this->loadByName($name);} } pages/characters.php Spoiler <?php if(!defined('INITIALIZED')) exit; $name = ''; if(isset($_REQUEST['name'])) $name = (string) $_REQUEST['name']; if(!empty($name)) { $player = new Player(); $player->find($name); if($player->isLoaded()) { $number_of_rows = 0; $account = $player->getAccount(); $skull = ''; if ($player->getSkull() == 4) $skull = "<img style='border: 0;' src='./images/skulls/redskull.gif'/>"; else if ($player->getSkull() == 5) $skull = "<img style='border: 0;' src='./images/skulls/blackskull.gif'/>"; $main_content .= '<table border="0" cellspacing="1" cellpadding="4" width="100%"><tr bgcolor="'.$config['site']['vdarkborder'].'"><td colspan="2" style="font-weight:bold;color:white">Character Information</td></tr>'; $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td width="20%">Name:</td><td style="font-weight:bold;color:' . (($player->isOnline()) ? 'green' : 'red') . '">' . $player->getName() . ' ' . $skull . ' '; if($player->isBanned() || $account->isBanned()) $main_content .= '<span style="color:red">[BANNED]</span>'; if($player->isNamelocked()) $main_content .= '<span style="color:red">[NAMELOCKED]</span>'; $main_content .= '<br /><img src="' . $config['site']['outfit_images_url'] . '?id=' . $player->getLookType() . '&addons=' . $player->getLookAddons() . '&head=' . $player->getLookHead() . '&body=' . $player->getLookBody() . '&legs=' . $player->getLookLegs() . '&feet=' . $player->getLookFeet() . '" alt="" /></td></tr>'; $playerNamelocks = new DatabaseList('PlayerNamelocks'); $filter = new SQL_Filter(new SQL_Field('player_id'), SQL_Filter::EQUAL, $player->getID()); $playerNamelocks->setFilter($filter); if(count($playerNamelocks) > 0) { $old_names_text = array(); foreach($playerNamelocks as $oldName) { $old_names_text[] = 'until ' . date("j F Y, g:i a", $oldName->getDate()) . ' known as <b>' . htmlspecialchars($oldName->getName()) . '</b>'; } $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Old Names:</td><td>' . implode('<br />', $old_names_text) . '</td></tr>'; } if(in_array($player->getGroup(), $config['site']['groups_support'])) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Group:</td><td>' . htmlspecialchars(Website::getGroupName($player->getGroup())) . '</td></tr>'; } $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Sex:</td><td>' . htmlspecialchars((($player->getSex() == 0) ? 'female' : 'male')) . '</td></tr>'; $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Vocation:</td><td>' . htmlspecialchars(Website::getVocationName($player->getVocation(), $player->getPromotion())) . '</td></tr>'; $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Level:</td><td>' . htmlspecialchars($player->getLevel()) . '</td></tr>'; $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['lightborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Residence:</td><td>' . htmlspecialchars($towns_list[$player->getWorldID()][$player->getTownID()]) . '</td></tr>'; $rank_of_player = $player->getRank(); if(!empty($rank_of_player)) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Guild Membership:</td><td>' . htmlspecialchars($rank_of_player->getName()) . ' of the <a href="?subtopic=guilds&action=show&guild='. $rank_of_player->getGuild()->getID() .'">' . htmlspecialchars($rank_of_player->getGuild()->getName()) . '</a></td></tr>'; } $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['darkborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Balance:</td><td>' . htmlspecialchars($player->getBalance()) . ' gold coins</td></tr>'; $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['lightborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Last login:</td><td>' . (($player->getLastLogin() > 0) ? date("j F Y, g:i a", $player->getLastLogin()) : 'Never logged in.') . '</td></tr>'; if($player->getCreateDate() > 0) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['darkborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Created:</td><td>' . date("j F Y, g:i a", $player->getCreateDate()) . '</td></tr>'; } $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $account_status .= ($account->isPremium()) ? '<font color="darkgreen"><b>Premium Account</b></font>' : 'Free Account'; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Account Status:</TD><TD>'.$account_status.'</TD></TR>'; // ** OUTFIT SHOWER -- fixed by Sekk if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['darkborder']; } $number_of_rows++; $main_content .= '<TD BGCOLOR="'.$bgcolor.'">Outfit:<TD style="background-color: '.$bgcolor.'"><image src="outfitter/outfitter.php?id='.$player->getLookType().'&addons='.$player->getLookAddons().'&head='.$player->getLookHead().'&body='.$player->getLookBody().'&legs='.$player->getLookLegs().'&feet='.$player->getLookFeet().'"/></TD></TD>'; //END OUTFIT SHOWER if($config['site']['show_vip_storage'] > 0) { $storageValue = $player->getStorage($config['site']['show_vip_storage']); $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>VIP:</td><td>' . (($storageValue === null || $storageValue < 0) ? '<span style="font-weight:bold;color:red">NOT VIP</span>' : '<span style="font-weight:bold;color:green">VIP</span>') . '</td></tr>'; } $comment = $player->getComment(); $newlines = array("\r\n", "\n", "\r"); $comment_with_lines = str_replace($newlines, '<br />', $comment, $count); if($count < 50) $comment = $comment_with_lines; if(!empty($comment)) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<tr bgcolor="' . $bgcolor . '"><td>Comment:</td><td>' . $comment . '</td></tr>'; } $main_content .= '</TABLE>'; $main_content .= '<table width=100%><tr>'; $itemsList = $player->getItems(); $main_content .= '<td align=center><table with=100% style="border: solid 1px #888888;" CELLSPACING="1"><TR>'; $list = array('2','1','3','6','4','5','9','7','10','8'); foreach ($list as $number_of_items_showed => $slot) { if($slot == '8') // add Soul before show 'feet' { $main_content .= '<td style="background-color: '.$config['site']['darkborder'].'; text-align: center;">Soul:<br/>'. $player->getSoul() .'</td>'; } if($itemsList->getSlot($slot) === false) // item does not exist in database { $main_content .= '<TD style="background-color: '.$config['site']['darkborder'].';"><img src="' . $config['site']['item_images_url'] . $slot . $config['site']['item_images_extension'] . '" width="45"/></TD>'; } else { $main_content .= '<TD style="background-color: '.$config['site']['darkborder'].';"><img src="' . $config['site']['item_images_url'] . $itemsList->getSlot($slot)->getID() . $config['site']['item_images_extension'] . '" width="45"/></TD>'; } if($number_of_items_showed % 3 == 2) { $main_content .= '</tr><tr>'; } if($slot == '8') // add Capacity after show 'feet' { $main_content .= '<td style="background-color: '.$config['site']['darkborder'].'; text-align: center;">Cap:<br/>'. $player->getCap() .'</td>'; } } $main_content .= '</tr></TABLE></td>'; $hpPercent = max(0, min(100, $player->getHealth() / max(1, $player->getHealthMax()) * 100)); $manaPercent = max(0, min(100, $player->getMana() / max(1, $player->getManaMax()) * 100)); $main_content .= '<td align=center ><table width=100%><tr><td align=center><table CELLSPACING="1" CELLPADDING="4" width="100%"><tr><td BGCOLOR="'.$config['site']['lightborder'].'" align="left" width="20%"><b>Player Health:</b></td> <td BGCOLOR="'.$config['site']['lightborder'].'" align="left">'.$player->getHealth().'/'.$player->getHealthMax().'<div style="width: 100%; height: 3px; border: 1px solid #000;"><div style="background: red; width: ' . $hpPercent . '%; height: 3px;"></td></tr> <tr><td BGCOLOR="'.$config['site']['darkborder'].'" align="left"><b>Player Mana:</b></td><td BGCOLOR="'.$config['site']['darkborder'].'" align="left">' . $player->getMana() . '/' . $player->getManaMax() . '<div style="width: 100%; height: 3px; border: 1px solid #000;"><div style="background: blue; width: '.$manaPercent.'%; height: 3px;"></td></tr></table><tr>'; $expCurrent = Functions::getExpForLevel($player->getLevel()); $expNext = Functions::getExpForLevel($player->getLevel() + 1); $expLeft = bcsub($expNext, $player->getExperience(), 0); $newExp = $expNext - $expCurrent; $expLeftPercent = max(0, min(100, ($player->getExperience() - $expCurrent) / ($expNext - $expCurrent) * 100)); $main_content .= '<tr><table CELLSPACING="1" CELLPADDING="4"><tr><td BGCOLOR="'.$config['site']['lightborder'].'" align="left" width="20%"><b>Player Level:</b></td><td BGCOLOR="'.$config['site']['lightborder'].'" align="left">'.$player->getLevel().'</td></tr> <tr><td BGCOLOR="'.$config['site']['darkborder'].'" align="left"><b>Player Experience:</b></td><td BGCOLOR="'.$config['site']['darkborder'].'" align="left">' . $player->getExperience() . ' EXP.</td></tr> <tr><td BGCOLOR="' . $config['site']['lightborder'].'" align="left"><b>To Next Level:</b></td><td BGCOLOR="'.$config['site']['lightborder'].'" align="left">You need <b>' . $newExp . ' EXP</b> to Level <b>' . ($player->getLevel() + 1) . '</b>.<div title="' . (100 - $expLeftPercent) . '% left" style="width: 100%; height: 3px; border: 1px solid #000;"><div style="background: red; width: '.$expLeftPercent.'%; height: 3px;"></td></tr></table></td></tr></table></tr></TABLE></td>'; if($config['site']['show_skills_info']) { $main_content .= '<center><strong>Skills</strong><table cellspacing="0" cellpadding="0" border="1" width="200"> <tbody> <tr> <td style="text-align: center;"><a href="?subtopic=highscores&list=experience&world=' . $player->getWorldID() . '"><img src="images/skills/level.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=magic&world=' . $player->getWorldID() . '"><img src="images/skills/ml.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=fist&world=' . $player->getWorldID() . '"><img src="images/skills/fist.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=club&world=' . $player->getWorldID() . '"><img src="images/skills/club.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=sword&world=' . $player->getWorldID() . '"><img src="images/skills/sword.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=axe&world=' . $player->getWorldID() . '"><img src="images/skills/axe.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=distance&world=' . $player->getWorldID() . '"><img src="images/skills/dist.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=shield&world=' . $player->getWorldID() . '"><img src="images/skills/def.gif" alt="" style="border-style: none"/></td> <td style="text-align: center;"><a href="?subtopic=highscores&list=fishing&world=' . $player->getWorldID() . '"><img src="images/skills/fish.gif" alt="" style="border-style: none"/></td> </tr> <tr> <tr bgcolor="' . $config['site']['darkborder'] . '"><td style="text-align: center;"><strong>Level</strong></td> <td style="text-align: center;"><strong>ML</strong></td> <td style="text-align: center;"><strong>Fist</strong></td> <td style="text-align: center;"><strong>Mace</strong></td> <td style="text-align: center;"><strong>Sword</strong></td> <td style="text-align: center;"><strong>Axe</strong></td> <td style="text-align: center;"><strong>Dist</strong></td> <td style="text-align: center;"><strong>Def</strong></td> <td style="text-align: center;"><strong>Fish</strong></td> </tr> <tr> <tr bgcolor="' . $config['site']['lightborder'] . '"><td style="text-align: center;">' . $player->getLevel() . '</td> <td style="text-align: center;">' . $player->getMagLevel().'</td> <td style="text-align: center;">' . $player->getSkill(0) . '</td> <td style="text-align: center;">' . $player->getSkill(1) . '</td> <td style="text-align: center;">' . $player->getSkill(2) . '</td> <td style="text-align: center;">' . $player->getSkill(3) . '</td> <td style="text-align: center;">' . $player->getSkill(4) . '</td> <td style="text-align: center;">' . $player->getSkill(5) . '</td> <td style="text-align: center;">' . $player->getSkill(6) . '</td> </tr> </tbody> </table> <div style="text-align: center;"> <br /> </div></center>'; } $main_content .= ''; if(isset($config['site']['quests']) && is_array($config['site']['quests']) && count($config['site']['quests']) > 0) { $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD align="left" COLSPAN=2 CLASS=white><B>Quests</B></TD></TD align="right"></TD></TR>'; $number_of_quests = 0; foreach($config['site']['quests'] as $questName => $storageID) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $number_of_quests++; $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=95%>' . $questName . '</TD>'; if($player->getStorage($storageID) === null) { $main_content .= '<TD><img src="images/false.png"/></TD></TR>'; } else { $main_content .= '<TD><img src="images/true.png"/></TD></TR>'; } } $main_content .= '</TABLE></td></tr></table><br />'; } $deads = 0; //deaths list $player_deaths = $SQL->query('SELECT ' . $SQL->fieldName('id') . ', ' . $SQL->fieldName('date') . ', ' . $SQL->fieldName('level') . ' FROM ' . $SQL->tableName('player_deaths') . ' WHERE ' . $SQL->fieldName('player_id') . ' = '.$player->getId().' ORDER BY ' . $SQL->fieldName('date') . ' DESC LIMIT 10'); foreach($player_deaths as $death) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $deads++; $dead_add_content .= "<tr bgcolor=\"".$bgcolor."\"><td width=\"20%\" align=\"center\">".date("j M Y, H:i", $death['date'])."</td><td>"; $killers = $SQL->query('SELECT ' . $SQL->tableName('environment_killers') . '.' . $SQL->fieldName('name') . ' AS monster_name, ' . $SQL->tableName('players') . '.' . $SQL->fieldName('name') . ' AS player_name, ' . $SQL->tableName('players') . '.' . $SQL->fieldName('deleted') . ' AS player_exists FROM ' . $SQL->tableName('killers') . ' LEFT JOIN ' . $SQL->tableName('environment_killers') . ' ON ' . $SQL->tableName('killers') . '.' . $SQL->fieldName('id') . ' = ' . $SQL->tableName('environment_killers') . '.' . $SQL->fieldName('kill_id') . ' LEFT JOIN ' . $SQL->tableName('player_killers') . ' ON ' . $SQL->tableName('killers') . '.' . $SQL->fieldName('id') . ' = ' . $SQL->tableName('player_killers') . '.' . $SQL->fieldName('kill_id') . ' LEFT JOIN ' . $SQL->tableName('players') . ' ON ' . $SQL->tableName('players') . '.' . $SQL->fieldName('id') . ' = ' . $SQL->tableName('player_killers') . '.' . $SQL->fieldName('player_id') . ' WHERE ' . $SQL->tableName('killers') . '.' . $SQL->fieldName('death_id') . ' = ' . $SQL->quote($death['id']) . ' ORDER BY ' . $SQL->tableName('killers') . '.' . $SQL->fieldName('final_hit') . ' DESC, ' . $SQL->tableName('killers') . '.' . $SQL->fieldName('id') . ' ASC')->fetchAll(); $i = 0; $count = count($killers); foreach($killers as $killer) { $i++; if($i == 1) { if($count <= 4) $dead_add_content .= "killed at level <b>".$death['level']."</b> by "; elseif($count > 4 and $count < 10) $dead_add_content .= "slain at level <b>".$death['level']."</b> by "; elseif($count > 9 and $count < 15) $dead_add_content .= "crushed at level <b>".$death['level']."</b> by "; elseif($count > 14 and $count < 20) $dead_add_content .= "eliminated at level <b>".$death['level']."</b> by "; elseif($count > 19) $dead_add_content .= "annihilated at level <b>".$death['level']."</b> by "; } elseif($i == $count) $dead_add_content .= " and "; else $dead_add_content .= ", "; if($killer['player_name'] != "") { if($killer['monster_name'] != "") $dead_add_content .= htmlspecialchars($killer['monster_name'])." summoned by "; if($killer['player_exists'] == 0) $dead_add_content .= "<a href=\"index.php?subtopic=characters&name=".urlencode($killer['player_name'])."\">"; $dead_add_content .= htmlspecialchars($killer['player_name']); if($killer['player_exists'] == 0) $dead_add_content .= "</a>"; } else $dead_add_content .= htmlspecialchars($killer['monster_name']); } $dead_add_content .= "</td></tr>"; } if($deads > 0) $main_content .= '<TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD COLSPAN=2 CLASS=white><B>Deaths</B></TD></TR>' . $dead_add_content . '</TABLE><br />'; if(!$player->getHideChar()) { $main_content .= '<TABLE BORDER=0><TR><TD></TD></TR></TABLE><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD COLSPAN=2 CLASS=white><B>Account Information</B></TD></TR>'; if($account->getRLName()) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=20%>Real name:</TD><TD>' . $account->getRLName() . '</TD></TR>'; } if($account->getLocation()) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=20%>Location:</TD><TD>' . $account->getLocation() . '</TD></TR>'; } $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); if($account->getLastLogin()) $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=20%>Last login:</TD><TD>' . date("j F Y, g:i a", $account->getLastLogin()) . '</TD></TR>'; else $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=20%>Last login:</TD><TD>Never logged in.</TD></TR>'; if($account->getCreateDate()) { $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=20%>Created:</TD><TD>' . date("j F Y, g:i a", $account->getCreateDate()) . '</TD></TR>'; } $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); if($account->isBanned()) { if($account->getBanTime() > 0) $main_content .= '<font color="red"> [Banished until '.date("j F Y, G:i", $account->getBanTime()).']</font>'; else $main_content .= '<font color="red"> [Banished FOREVER]</font>'; } $main_content .= '</TD></TR></TABLE>'; $main_content .= '<br><TABLE BORDER=0><TR><TD></TD></TR></TABLE><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD COLSPAN=5 CLASS=white><B>Characters</B></TD></TR> <TR BGCOLOR="' . $bgcolor . '"><TD><B>Name</B></TD><TD><B>World</B></TD><TD><B>Level</B></TD><TD><b>Status</b></TD><TD><B> </B></TD></TR>'; $account_players = $account->getPlayersList(); $player_number = 0; foreach($account_players as $player_list) { if(!$player_list->getHideChar()) { $player_number++; $bgcolor = (($number_of_rows++ % 2 == 1) ? $config['site']['darkborder'] : $config['site']['lightborder']); if(!$player_list->isOnline()) $player_list_status = '<font color="red">Offline</font>'; else $player_list_status = '<font color="green">Online</font>'; $main_content .= '<TR BGCOLOR="' . $bgcolor . '"><TD WIDTH=52%><NOBR>'.$player_number.'. '.htmlspecialchars($player_list->getName()); $main_content .= ($player_list->isDeleted()) ? '<font color="red"> [DELETED]</font>' : ''; $main_content .= '</NOBR></TD><TD WIDTH=15%>'.$config['site']['worlds'][$player_list->getWorld()].'</TD><TD WIDTH=25%>'.$player_list->getLevel().' '.htmlspecialchars($vocation_name[$player_list->getPromotion()][$player_list->getVocation()]).'</TD><TD WIDTH="8%"><b>'.$player_list_status.'</b></TD><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><FORM ACTION="?subtopic=characters" METHOD=post><TR><TD><INPUT TYPE="hidden" NAME="name" VALUE="'.htmlspecialchars($player_list->getName()).'"><INPUT TYPE=image NAME="View '.htmlspecialchars($player_list->getName()).'" ALT="View '.htmlspecialchars($player_list->getName()).'" SRC="'.$layout_name.'/images/buttons/sbutton_view.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></FORM></TABLE></TD></TR>'; } } $main_content .= '</TABLE></TD><TD><IMG SRC="'.$layout_name.'/images/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD></TR></TABLE>'; } } else $search_errors[] = 'Character <b>'.htmlspecialchars($name).'</b> does not exist.'; } if(!empty($search_errors)) { $main_content .= '<div class="SmallBox" > <div class="MessageContainer" > <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>The Following Errors Have Occurred:</b><br/>'; foreach($search_errors as $search_error) $main_content .= '<li>'.$search_error; $main_content .= '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>'; } $main_content .= '<BR><BR><FORM ACTION="?subtopic=characters" METHOD=post><TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4><TR><TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>Search Character</B></TD></TR><TR><TD BGCOLOR="'.$config['site']['darkborder'].'"><TABLE BORDER=0 CELLPADDING=1><TR><TD>Name:</TD><TD><INPUT NAME="name" VALUE=""SIZE=29 MAXLENGTH=29></TD><TD><INPUT TYPE=image NAME="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif" BORDER=0 WIDTH=120 HEIGHT=18></TD></TR></TABLE></TD></TR></TABLE></FORM>'; $main_content .= '</TABLE>'; system/load.page.php Spoiler <?php if(!defined('INITIALIZED')) exit; ob_start(); $main_content = ''; include("pages/" . $subtopic . ".php"); $main_content .= ob_get_clean(); index.php Spoiler <?php // comment to show E_NOTICE [undefinied variable etc.], comment if you want make script and see all errors error_reporting(E_ALL ^ E_STRICT ^ E_NOTICE); // true = show sent queries and SQL queries status/status code/error message define('DEBUG_DATABASE', false); define('INITIALIZED', true); // if not defined before, set 'false' to load all normal if(!defined('ONLY_PAGE')) define('ONLY_PAGE', false); // check if site is disabled/requires installation include_once('./system/load.loadCheck.php'); // fix user data, load config, enable class auto loader include_once('./system/load.init.php'); // DATABASE include_once('./system/load.database.php'); if(DEBUG_DATABASE) Website::getDBHandle()->setPrintQueries(true); // DATABASE END // LOGIN if(!ONLY_PAGE) include_once('./system/load.login.php'); // LOGIN END // COMPAT // some parts in that file can be blocked because of ONLY_PAGE constant include_once('./system/load.compat.php'); // COMPAT END // LOAD PAGE include_once('./system/load.page.php'); // LOAD PAGE END // LAYOUT // with ONLY_PAGE we return only page text, not layout if(!ONLY_PAGE) include_once('./system/load.layout.php'); else echo $main_content; // LAYOUT END GitHub: https://github.com/s3kk Conteúdo: [SERVER] Heromassa[GESIOR] Gesior 2012 modificado por Sekk[GESIOR] Shop Addons & Mounts - TFS 1.x[GESIOR] Outfitter para Characters e Rank[SISTEMA] Castle 24h[TALKACTION] Multi Element Wand[ACTION] Multi Elemental Arrow & Shield[PROGRAMAÇÃO] Compilar TFS 0.4 no Linux[PROGRAMAÇÃO] Compilando TFS 0.4 no MSVC(x64 e x32) [INFRAESTRUTURA] Configuração COMPLETA Google VM + Tibia 11.x
Postado Fevereiro 2, 2017 9 anos Autor up GitHub: https://github.com/s3kk Conteúdo: [SERVER] Heromassa[GESIOR] Gesior 2012 modificado por Sekk[GESIOR] Shop Addons & Mounts - TFS 1.x[GESIOR] Outfitter para Characters e Rank[SISTEMA] Castle 24h[TALKACTION] Multi Element Wand[ACTION] Multi Elemental Arrow & Shield[PROGRAMAÇÃO] Compilar TFS 0.4 no Linux[PROGRAMAÇÃO] Compilando TFS 0.4 no MSVC(x64 e x32) [INFRAESTRUTURA] Configuração COMPLETA Google VM + Tibia 11.x
Postado Fevereiro 6, 2017 9 anos Autor po, alguem me ajuda pfv GitHub: https://github.com/s3kk Conteúdo: [SERVER] Heromassa[GESIOR] Gesior 2012 modificado por Sekk[GESIOR] Shop Addons & Mounts - TFS 1.x[GESIOR] Outfitter para Characters e Rank[SISTEMA] Castle 24h[TALKACTION] Multi Element Wand[ACTION] Multi Elemental Arrow & Shield[PROGRAMAÇÃO] Compilar TFS 0.4 no Linux[PROGRAMAÇÃO] Compilando TFS 0.4 no MSVC(x64 e x32) [INFRAESTRUTURA] Configuração COMPLETA Google VM + Tibia 11.x
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.