public function getContent($error = null) { $sUploadUrl = ABSOLUTE_URL . 'page/customsign/?sessionId=' . session_id(); if (!file_exists(PUBLIC_PATH) || !is_writable(PUBLIC_PATH)) { return '<p>Error: ' . PUBLIC_PATH . ' does not exist or is not writeable.</p>'; } if (!isset($this->village)) { return '<p class="false">No village defined.</p>'; } $text = Neuron_Core_Text::getInstance(); $text->setFile('premium'); $text->setSection('bonusbuilding'); $page = new Neuron_Core_Template(); $page->set('upload_url', $sUploadUrl); $buildings = $this->getPublicBuildings(); foreach ($this->getPublicBuildings() as $v) { $page->addListValue('buildings', $v); } $db = Neuron_DB_Database::getInstance(); $login = Neuron_Core_Login::getInstance(); $r = $db->query("\n\t\t\tSELECT\n\t\t\t\t*\n\t\t\tFROM\n\t\t\t\tplayers_tiles\n\t\t\tWHERE\n\t\t\t\tt_userid = {$login->getUserId()}\n\t\t\tORDER BY\n\t\t\t\tt_id DESC\n\t\t\tLIMIT\n\t\t\t\t8\n\t\t"); $data = array(); foreach ($r as $v) { if (file_exists(PUBLIC_PATH . $v['t_imagename'])) { $imagename = PUBLIC_URL . $v['t_imagename']; $action = new Dolumar_View_SelectBuildLocation(100, 'build bonus building', null, new Neuron_GameServer_Map_Display_Sprite($imagename), $v['t_id']); // selectBuildLocation (this, 100, null, 'placeholder', null, <?=$v['id'] $page->addListValue('signs', array('id' => $v['t_id'], 'image_url' => PUBLIC_URL . $v['t_imagename'], 'credits' => self::CREDIT_COST, 'action' => $action->getAction())); } } if (isset($error)) { $page->set($error); } return $page->parse('dolumar/bonusbuilding/bonusbuilding.phpt'); }
public function getBody() { $myself = Neuron_GameServer::getPlayer(); if (!$myself->isAdmin()) { return '<p>You are not allowed to execute the commands. Only admins are.</p>'; } // Check for input $record = Neuron_Core_Tools::getInput('_GET', 'id', 'int'); $action = Neuron_Core_Tools::getInput('_GET', 'action', 'varchar'); if ($record && $action) { $this->processAction($record, $action == 'accept'); } $page = new Neuron_Core_Template(); $db = Neuron_DB_Database::getInstance(); $list = $db->query("\n\t\t\tSELECT\n\t\t\t\t*\n\t\t\tFROM\n\t\t\t\tn_mod_actions\n\t\t\tWHERE\n\t\t\t\tma_processed = 0\n\t\t\tORDER BY\n\t\t\t\tma_date ASC\n\t\t"); foreach ($list as $v) { $params = json_decode($v['ma_data'], true); $target = false; if (isset($params['plid'])) { $target = Neuron_GameServer::getPlayer($params['plid']); } $actor = Neuron_GameServer::getPlayer($v['ma_plid']); $page->addListValue('actions', array('date' => $v['ma_date'], 'action' => $v['ma_action'], 'target' => $target ? $target->getDisplayName() : null, 'actor' => $actor ? $actor->getDisplayName() : null, 'reason' => !empty($v['ma_reason']) ? Neuron_Core_Tools::output_text($v['ma_reason']) : null, 'accept_url' => self::getUrl('execute', array('id' => $v['ma_id'], 'action' => 'accept')), 'deny_url' => self::getUrl('execute', array('id' => $v['ma_id'], 'action' => 'deny')))); } return $page->parse('pages/admin/execute/list.phpt'); }
public function getBody() { $timeframe = Neuron_Core_Tools::getInput('_GET', 'timeframe', 'int', 60 * 60 * 48); $db = Neuron_DB_Database::__getInstance(); $page = new Neuron_Core_Template(); $page->set('timeframe', $timeframe); // Fetch all doubles $data = $db->query("\n\t\t\tSELECT\n\t\t\t\tn_login_log.l_ip,\n\t\t\t\t\n\t\t\t\tGROUP_CONCAT(DISTINCT n_login_log.l_plid) AS plids,\n\t\t\t\tGROUP_CONCAT(DISTINCT n_players.nickname) AS nicknames,\n\t\t\t\t\n\t\t\t\tGROUP_CONCAT(c.pac_plid1) AS cleared_1,\n\t\t\t\tGROUP_CONCAT(c.pac_plid2) AS cleared_2,\n\t\t\t\tGROUP_CONCAT(c.pac_reason) AS cleared_reason,\n\t\t\t\t\n\t\t\t\tCOUNT(DISTINCT l_plid) AS aantal\n\t\t\tFROM\n\t\t\t\tn_login_log\n\t\t\tLEFT JOIN\n\t\t\t\tn_players ON n_login_log.l_plid = n_players.plid\n\t\t\tLEFT JOIN\n\t\t\t\tn_players_admin_cleared c ON (c.pac_plid1 = n_login_log.l_plid OR c.pac_plid2 = n_login_log.l_plid)\n\t\t\tWHERE\n\t\t\t\tn_login_log.l_datetime > FROM_UNIXTIME(" . (NOW - $timeframe) . ") AND\n\t\t\t\tn_players.isPlaying = 1\n\t\t\tGROUP BY\n\t\t\t\tl_ip\n\t\t\tHAVING\n\t\t\t\taantal > 1\n\t\t"); foreach ($data as $row) { $plids = explode(',', $row['plids']); $nicknames = explode(',', $row['nicknames']); // Check clearances. $clearances = $this->getClearancesFromRow($row); $players = array(); $combinedlogs = ""; foreach ($plids as $k => $v) { $players[] = array('id' => $plids[$k], 'name' => isset($nicknames[$k]) ? $nicknames[$k] : 'no-nickname-set', 'url' => $this->getUrl('user', array('id' => $plids[$k])), 'logs_url' => $this->getUrl('gamelogs', array('players' => $plids[$k]))); $combinedlogs .= $plids[$k] . "|"; } // Check for cleared accounts $allcleared = true; foreach ($players as $k => $v) { $players[$k]['cleared'] = $this->isCleared($clearances, $v, $players); if ($allcleared && !$players[$k]['cleared']) { $allcleared = false; } } $combinedlogs = substr($combinedlogs, 0, -1); $page->addListValue('players', array('ip' => $row['l_ip'], 'players' => $players, 'combined_logs_url' => $this->getUrl('gamelogs', array('players' => $combinedlogs)), 'clearmultis' => $this->getUrl('clearmultis', array('players' => $combinedlogs)), 'cleared' => $allcleared, 'amount' => $row['aantal'])); } $page->usortList('players', array($this, 'sortcompare')); return $page->parse('pages/admin/multis.phpt'); }
public function getContent($msg = null, $failed = false) { $myself = Neuron_GameServer::getPlayer(); if (!$this->village->isActive() || $this->village->getOwner()->getId() != $myself->getId()) { return false; } $page = new Neuron_Core_Template(); $page->setTextSection('formation', 'battle'); // Load battle slots $slots = $this->village->getDefenseSlots(); // Load your units $squads = $this->village->getSquads(false, false, false); // See how much rows that is $rows = $this->countRows($squads, $slots); $page->set('rows', $rows); $page->set('slots', $slots); if (!empty($msg)) { $page->set('message', $msg); $page->set('error', $failed); } foreach ($squads as $v) { if ($v->getUnitsAmount() > 0) { $page->addListValue('squads', array('sName' => Neuron_Core_Tools::output_varchar($v->getName()), 'oUnits' => $v->getUnits(), 'id' => $v->getId())); } } return $page->parse('battle/formation.phpt'); }
public function getContent() { $login = Neuron_Core_Login::__getInstance(); $text = Neuron_Core_Text::__getInstance(); $text->setFile('village'); $text->setSection('economics'); if ($login->isLogin() && $this->village && $this->village->isFound()) { $me = Neuron_GameServer::getPlayer(); if ($this->village->isActive() && ($me->getId() == $this->village->getOwner()->getId() || $me->isModerator())) { $page = new Neuron_Core_Template(); $page->set('resources', $text->get('resources')); $page->set('stock', $text->get('stock')); $page->set('max', $text->get('max')); $page->set('income', $text->get('income')); $page->set('norunes', $text->get('norunes')); $page->set('bruto', $text->get('bruto')); $page->set('consuming', $text->get('consuming')); $page->set('honour', $this->village->honour->getHonour()); $page->set('hourly', $text->get('hourly')); $res = $this->village->resources->getResources(); $income = $this->village->resources->getIncome(); $capacity = $this->village->resources->getCapacity(); $consumption = $this->village->resources->getUnitConsumption(); $bruto = $this->village->resources->getBrutoIncome(); foreach ($res as $k => $v) { $page->addListValue('resources', array(ucfirst($text->get($k, 'resources', 'main')), $v, $capacity[$k], $income[$k], 'resource' => $k, 'bruto' => isset($bruto[$k]) ? $bruto[$k] : 0, 'consuming' => isset($consumption[$k]) ? $consumption[$k] : 0)); } // Runes $page->set('runes', $text->get('runes')); $runes = $this->village->resources->getRuneSummary(); foreach ($runes as $k => $v) { if ($v > 0) { if ($k == 'random') { $k = 'randomrune'; } $page->addListValue('runes', array('name' => ucfirst($text->get($k, 'runeDouble', 'main')), 'available' => $v['available'], 'key' => $k, 'used' => $v['used'], 'used_percentage' => $v['used_percentage'] * 100)); } } $page->sortList('runes'); return $page->parse('economics.tpl'); } else { return '<p>You are not authorized to view this information: ' . $this->village->getId() . ' != ' . $me->getId() . '</p>'; } } else { return '<p class="false">' . $text->get('login', 'login', 'account') . '</p>'; } }
public function getContent() { $player = Neuron_GameServer::getPlayer(); if ($player && $player->isPlaying()) { $page = new Neuron_Core_Template(); // Check for welcome message if (isset($_SESSION['welcome_html'])) { $page->set('welcome', $_SESSION['welcome_html']); } $server = Neuron_GameServer_Server::getInstance(); $txt = $server->getText('headline'); $page->set('headline', isset($txt) ? Neuron_Core_Tools::output_text($txt) : null); $page->set('nickname', $player->getDisplayName()); $page->set('isPremium', $player->isPremium()); $page->set('date', date(DATE, $player->getPremiumEndDate())); $page->set('isFreePremium', !$player->isProperPremium()); $msg = Neuron_GameServer_Mappers_CachedChatMapper::getInstance(); $messages = $msg->countUnreadMessages($player); $page->set('inbox', $messages); $clans = $player->getClans(); $page->set('hasclan', count($clans) > 0); if (count($clans) > 0) { $objlogs = Dolumar_Players_ClanLogs::getInstance(); $objlogs->clearMyVillages(); foreach ($player->getVillages() as $village) { $objlogs->addMyVillage($village); } $logs = $objlogs->getClanLogs($clans, 0, 3); foreach ($logs as $v) { $page->addListValue('logs', array('date' => date(DATETIME, $v['timestamp']), 'text' => $objlogs->getLogText($v))); } } // Fetch thze news if (defined('GAMENEWS_RSS_URL')) { $text = Neuron_Core_Text::getInstance(); $localized_link = str_replace('{lang}', $text->getCurrentLanguage(), GAMENEWS_RSS_URL); $rss = new Neuron_Core_RSSParser($localized_link); $rss->setCache(Neuron_Core_Cache::getInstance('newsfeed/')); foreach ($rss->getItems(3) as $v) { $page->addListValue('gamenews', array('date' => $v['date'] ? date(DATETIME, $v['date']) : null, 'title' => $v['title'], 'url' => $v['url'])); } } return $page->parse('dolumar/welcome/welcome.phpt'); } return false; }
private function getAllImages() { $page = new Neuron_Core_Template(); $db = Neuron_DB_Database::getInstance(); $data = $db->query("\n\t\t\tSELECT\n\t\t\t\t*\n\t\t\tFROM\n\t\t\t\tplayers_tiles\n\t\t\tORDER BY\n\t\t\t\tt_id DESC\n\t\t"); foreach ($data as $v) { $page->addListValue('tiles', array('src' => PUBLIC_URL . $v['t_imagename'])); } return $page->parse('pages/customsign/list.phpt'); }
public function getBody() { $player = Neuron_GameServer::getPlayer(); if (!$player->isModerator()) { return '<p>You don\'t have the rights to access the player logs.</p>'; } $page = new Neuron_Core_Template(); // Let's find the players $input = Neuron_Core_Tools::getInput('_GET', 'players', 'varchar'); $playerids = explode('|', $input); $players = array(); $villages = array(); $ids = array(); $i = 0; foreach ($playerids as $v) { $player = Neuron_GameServer::getPlayer($v); if ($player) { $players[] = $player; $villages = array_merge($villages, $player->getVillages()); $ids[$player->getId()] = $i; $page->addListValue('players', array('key' => $i, 'id' => $player->getId(), 'name' => $player->getName(), 'url' => $this->getUrl('user', array('id' => $player->getId())))); $i++; } } $pageid = max(0, intval(Neuron_Core_Tools::getInput('_GET', 'page', 'int', 1)) - 1); $objLogs = Dolumar_Players_Logs::getInstance(); $logs = $objLogs->getLogs($villages, $pageid * 250, 250, 'DESC'); foreach ($logs as $v) { $player = Dolumar_Players_Village::getFromId($v['village'])->getOwner(); // Check if this is an important log. $bImportant = $this->isImportantLog($players, $v); $page->addListValue('logs', array('action' => $objLogs->getLogText($v, false), 'date' => date(DATETIME, $v['timestamp']), 'player' => $player->getName(), 'url' => $this->getUrl('user', array('id' => $player->getId())), 'key' => $ids[$player->getId()], 'important' => $bImportant ? 'important' : null)); } $page->set('page', $pageid + 1); if (count($logs) == 250) { $page->set('nextpage', $this->getUrl('gamelogs', array('players' => $input, 'page' => $pageid + 2))); } if ($pageid > 0) { $page->set('previouspage', $this->getUrl('gamelogs', array('players' => $input, 'page' => $pageid))); } return $page->parse('pages/admin/gamelogs.phpt'); }
public function getHTML() { header("Content-Type: text/html; charset=UTF-8"); $page = new Neuron_Core_Template(); $page->set('body', $this->getOuterBody()); $page->set('stylesheet', 'page'); $page->set('static_client_url', ''); foreach ($this->getJavascript() as $v) { $page->addListValue('javascripts', $v); } return $page->parse('pages/index.phpt'); }
public function getContent() { $login = Neuron_Core_Login::__getInstance(); if ($this->village->isActive() && $this->village->getOwner()->getId() == $login->getUserId()) { $page = new Neuron_Core_Template(); foreach ($this->village->getTechnologies() as $v) { $page->addListValue('technologies', array($v->getName())); } return $page->parse('technologies.tpl'); } else { return false; } }
private function getOverview() { $text = Neuron_Core_Text::__getInstance(); $text->setFile('buildings'); $text->setSection('crafting'); $page = new Neuron_Core_Template(); $page->set('title', $text->get('title')); $page->set('section', 'overview'); $page->set('about', $text->get('about')); $equipment = $this->getCraftableItems(); foreach ($equipment as $v) { $page->addListValue('equipment', array($v->getName(), $v->getId())); } foreach ($equipment as $v) { if ($this->getVillage()->equipment->canIncreaseLevel($v)) { $page->addListValue('upgrade_equipment', array($v->getName(), $v->getId())); } } // Equipment upgrades $unused = $this->getVillage()->equipment->getUnusedLevels(); $page->set('unused', $unused); return $page->parse('buildings/crafting.tpl'); }
public function getBody() { $page = new Neuron_Core_Template(); // Let's find the players $input = Neuron_Core_Tools::getInput('_GET', 'players', 'varchar'); $playerids = explode('|', $input); $page->set('action_url', $this->getUrl('clearmultis', array('players' => $input))); $players = array(); $ids = array(); $i = 0; foreach ($playerids as $v) { $player = $this->getPlayer($v); if ($player) { $players[] = $player; $page->addListValue('players', array('id' => $player->getId(), 'name' => $player->getDisplayName())); } } $this->process($players); $clearances = $this->getClearances($players); foreach ($clearances as $v) { $page->addListValue('clearances', array('player1' => $this->getPlayerName($v['player1']), 'player2' => $this->getPlayerName($v['player2']), 'remove_url' => $this->getUrl('clearmultis', array('players' => $input, 'remove' => $v['id'])), 'reason' => $v['reason'])); } return $page->parse('pages/admin/clearmultis/clearmultis.phpt'); }
public function getContent() { if ($result = $this->getResults()) { return $result; } $page = new Neuron_Core_Template(); // Fetch me villages $premium = false; $player = Neuron_GameServer::getPlayer(); if ($player) { foreach ($player->getVillages() as $v) { $loc = $v->buildings->getTownCenterLocation(); $page->addListValue('villages', array('location' => $loc[0] . ',' . $loc[1], 'name' => Neuron_Core_Tools::output_varchar($v->getName()))); $page->set('premium', $player->isPremium()); } } $page->set('premium', $premium); return $page->parse('search/search.phpt'); }
public function getContent($language = false) { $login = Neuron_Core_Login::__getInstance(); $text = Neuron_Core_Text::__getInstance(); $page = new Neuron_Core_Template(); $text->setFile('account'); $text->setSection('language'); $page->set('language', $text->get('language')); $page->set('submit', $text->get('submit')); $page->set('current_language', $language ? $language : $text->getCurrentLanguage()); // Get languages $lang = $text->getLanguages(); foreach ($lang as $v) { $text = new Neuron_Core_Text($v); $page->addListValue('languages', array($v, $text->get($v, 'languages', 'languages', $v))); $page->sortList('languages'); } return $page->parse('language.tpl'); }
private function getOverview() { $player = Neuron_GameServer::getPlayer(); $map = $this->getServer()->getMap(); if (!$map instanceof Dolumar_Underworld_Map_Map) { $this->reloadWindow(); return '<p>Mission is finished.</p>'; } $mission = $map->getMission(); $side = $mission->getPlayerSide($player); $total = Dolumar_Underworld_Mappers_BattleMapper::countFromSide($mission, $side); $battles = Dolumar_Underworld_Mappers_BattleMapper::getFromSide($mission, $side); $page = new Neuron_Core_Template(); $page->set('side', $side); foreach ($battles as $v) { $page->addListValue('battles', $v); } return $page->parse('dolumar/underworld/windows/battle.phpt'); }
public function getBody() { $db = Neuron_DB_Database::getInstance(); $data = $db->query("\n\t\t\tSELECT\n\t\t\t\t*\n\t\t\tFROM\n\t\t\t\tn_players\n\t\t\tWHERE\n\t\t\t\tpremiumEndDate > FROM_UNIXTIME('" . NOW . "')\n\t\t"); $refund = Neuron_Core_Tools::getInput('_GET', 'refund', 'int'); $refund = $refund == 1; $page = new Neuron_Core_Template(); foreach ($data as $v) { $player = Neuron_GameServer::getPlayer($v['plid'], $v); $date = $player->getPremiumEndDate(); $diff = $date - NOW; $amounts = ceil($diff / (60 * 60 * 24 * 15)); $credits = $amounts * PREMIUM_COST_CREDITS; if ($refund) { $amref = $player->refundCredits($credits, 'premium account refund'); } else { $amref = false; } $page->addListValue('players', array('name' => $player->getDisplayName(), 'enddate' => date('d m Y H:i:s', $date), 'credits' => $credits, 'refunded' => $amref)); } return $page->parse('pages/admin/premium/premium.phpt'); }
public function getContent($language = false) { $login = Neuron_Core_Login::__getInstance(); $text = Neuron_Core_Text::__getInstance(); $text->setFile('account'); $text->setSection('preferences'); if ($login->isLogin()) { $player = Neuron_GameServer::getPlayer(); $page = new Neuron_Core_Template(); // Click option $page->set('preferences', $text->get('preferences')); $page->set('openBuilding', $text->get('openBuilding')); $page->set('singleClick', $text->get('singleClick')); $page->set('doubleClick', $text->get('doubleClick')); $page->set('advertisement', $text->get('advertisement')); $page->set('showAdvertisement', $text->get('showAdvertisement')); $page->set('hideAdvertisement', $text->get('hideAdvertisement')); $pref = $player->getPreferences(); if ($pref['buildingClick'] == 1) { $page->set('openBuilding_value', 'doubleClick'); } else { $page->set('openBuilding_value', 'singleClick'); } // Mini map position $page->set('minimap', $text->get('minimap')); $page->set('change', $text->get('change')); $c = array(1 => 'bottomLeft', 3 => 'upperRight', 4 => 'bottomRight', 2 => 'upperLeft', 5 => 'dragable'); $page->set('minimap_value', $pref['minimapPosition']); foreach ($c as $k => $v) { $page->addListValue('minimap', array($k, $text->get($v))); } $page->set('doShowAdvertisement', $player->showAdvertisement()); return $page->parse('preferences.tpl'); } else { return '<p class="false">' . $text->get('login', 'login', 'account') . '</p>'; } }
public function getContent() { $text = Neuron_Core_Text::getInstance(); $player = Neuron_GameServer::getPlayer(); if (!$player) { return $this->throwError($text->get('login', 'login', 'account')); } $page = new Neuron_Core_Template(); $page->set('nickname', ''); // Ignore a player. $input = $this->getInputData(); $nickname = isset($input['nickname']) ? $input['nickname'] : null; if (!empty($nickname)) { $target = Neuron_GameServer_Player::getFromName($nickname); if ($target && $target->getId() == $player->getId()) { $page->set('error', 'ignore_yourself'); } else { if ($target) { $player->setIgnoring($target); } else { $page->set('nickname', $nickname); $page->set('error', 'player_not_found'); } } } // Unignore a player if (isset($input['unignore'])) { $target = Neuron_GameServer::getPlayer($input['unignore']); if ($target) { $player->setIgnoring($target, false); } } foreach ($player->getIgnoredPlayers() as $v) { $page->addListValue('players', array('id' => $v->getId(), 'name' => Neuron_Core_Tools::output_varchar($v->getName()))); } return $page->parse('gameserver/account/ignorelist.phpt'); }
public function getBody() { $myself = Neuron_GameServer::getPlayer(); if (!$myself->isAdmin()) { return '<p>You are not allowed to execute the commands. Only admins are.</p>'; } $page = new Neuron_Core_Template(); $login = Neuron_Core_Login::getInstance(); if (!$login->isLogin()) { $userid = 0; } else { $userid = $login->getUserId(); } $text = Neuron_Core_Text::getInstance(); $content = array(); foreach ($text->getLanguages() as $v) { $page->addListValue('languages', $v); $content[$v] = array('title' => Neuron_Core_Tools::getInput('_POST', 'title_' . $v, 'varchar'), 'description' => Neuron_Core_Tools::getInput('_POST', 'description_' . $v, 'varchar')); } if (isset($_FILES['imagefile'])) { $im = $this->getImageFromInput($_FILES['imagefile']); if ($im) { $new = $this->getGeneratedImage($im); if (!is_dir(PUBLIC_PATH . 'signs/')) { mkdir(PUBLIC_PATH . 'signs/'); chmod(PUBLIC_PATH . 'signs/', 0755); } $filename = $userid . '_' . date('dmYHis') . '.png'; imagepng($new, PUBLIC_PATH . 'signs/' . $filename); chmod(PUBLIC_PATH . 'signs/' . $filename, 0755); $db = Neuron_DB_Database::getInstance(); $db->query("\n\t\t\t\t\tINSERT INTO\n\t\t\t\t\t\tplayers_tiles\n\t\t\t\t\tSET\n\t\t\t\t\t\tt_userid = " . intval($userid) . ",\n\t\t\t\t\t\tt_imagename = 'signs/" . $db->escape($filename) . "',\n\t\t\t\t\t\tt_isPublic = 1,\n\t\t\t\t\t\tt_description = '{$db->escape(json_encode($content))}'\n\t\t\t\t"); } } return $page->parse('dolumar/pages/admin/bonusbuilding/bonusbuilding.phpt'); }
public function getContent() { $login = Neuron_Core_Login::__getInstance(); $text = Neuron_Core_Text::__getInstance(); $text->setFile('main'); $text->setSection('menu'); $page = new Neuron_Core_Template(); // Add text elements $page->set('myAccount', Neuron_Core_Tools::output_varchar($text->get('myAccount'))); $page->set('build', Neuron_Core_Tools::output_varchar($text->get('build'))); $page->set('bonusbuild', Neuron_Core_Tools::output_varchar($text->get('bonusbuild'))); $page->set('economy', Neuron_Core_Tools::output_varchar($text->get('economy'))); $page->set('preferences', Neuron_Core_Tools::output_varchar($text->get('preferences'))); $page->set('help', Neuron_Core_Tools::output_varchar($text->get('help'))); $page->set('language', Neuron_Core_Tools::output_varchar($text->get('language'))); $page->set('ranking', Neuron_Core_Tools::output_varchar($text->get('ranking'))); $page->set('units', Neuron_Core_Tools::output_varchar($text->get('units'))); $page->set('chat', Neuron_Core_Tools::output_varchar($text->get('chat'))); $page->set('battle', Neuron_Core_Tools::output_varchar($text->get('battle'))); $page->set('battleCalc', Neuron_Core_Tools::output_varchar($text->get('battleCalc'))); $page->set('forum', Neuron_Core_Tools::output_varchar($text->get('forum'))); $page->set('ingameForum', Neuron_Core_Tools::output_varchar($text->get('ingameForum'))); $page->set('contact', Neuron_Core_Tools::output_varchar($text->get('contact'))); $page->set('equipment', Neuron_Core_Tools::output_varchar($text->get('equipment'))); $page->set('magic', Neuron_Core_Tools::output_varchar($text->get('magic'))); $page->set('invite', Neuron_Core_Tools::output_varchar($text->get('friendinvite'))); if (!defined('HIDE_IMPRINT') || !HIDE_IMPRINT) { $page->set('imprint', Neuron_Core_Tools::output_varchar($text->get('imprint'))); } $page->set('simulator', Neuron_Core_Tools::output_varchar($text->get('simulator'))); $localized_forum = str_replace('{lang}', $text->getCurrentLanguage(), FORUM_URL); $page->set('forum_url', $localized_forum); $page->set('ignorelist', $text->get('ignorelist')); $page->set('flag', $text->getCurrentLanguage()); $noVillage = true; if ($login->isLogin()) { $me = Neuron_GameServer::getPlayer(); $page->set('messages', $text->get('messages')); $villages = $me->getVillages(); if (count($villages) > 0) { $noVillage = false; if (count($villages) > 1 || $this->SHOW_ONLY_VILLAGE && count($villages) > 0) { foreach ($villages as $v) { // Add the links $page->addListValue('villages', array(Neuron_Core_Tools::output_varchar($v->getName()), $v->getId())); } $page->sortList('villages'); } // Set the current village ID. $page->set('vid', $me->getCurrentVillage()->getId()); } // Administration links if ($me->isModerator()) { $page->set('adminForum', 'Admin Forum'); } // Clans foreach ($me->getClans() as $v) { $page->addListValue('clans', array('id' => $v->getId(), 'name' => Neuron_Core_Tools::output_varchar($v->getName()))); } $page->set('donation', $text->get('donation')); } if ($noVillage) { $page->set('vid', 0); } // Premium /* $player = Neuron_GameServer::getPlayer (); if ($player) { $credits = $player->getCredits (); $page->set ('premium', $credits); } */ return $page->parse('menu.tpl'); }
protected function getPlayerInitialization($registrationTracker = false) { // Check if we can actually register $server = Neuron_GameServer::getServer(); if (!$server->canRegister()) { return '<p>This server has gone into "endgame" mode. You can not register here anymore. But stay tuned, a new game will start soon.</p>'; } $data = $this->getInputData(); $me = Neuron_GameServer::getPlayer(); if (isset($data['race'])) { // Check for clans $clan = isset($data['clan']) ? intval($data['clan']) : 0; $location = isset($data['location']) ? $data['location'] : null; $objClan = false; if ($clan > 0) { $objClan = new Dolumar_Players_Clan($clan); if ($objClan->isFound()) { // Check for password if ($objClan->isPasswordProtected()) { // Break out of the function if the password is not correct. if (!isset($data['password']) || !$objClan->checkPassword($data['password'])) { return $this->requestClanPassword($data['race'], $objClan); } } $members = $objClan->getMembers(); if (count($members) > 0) { $member = $members[rand(0, count($members) - 1)]; // Fetch towncenter $village = $member->getMainVillage(); if ($village) { // Overwrite location with the location of this towncenter. $location = $village->buildings->getTownCenterLocation(); } else { $location = array(0, 0); } } else { $location = array(0, 0); } } } if ($me->initializeAccount($data['race'], $location, $objClan)) { // Scroll to the right location $me = Neuron_GameServer::getPlayer(); $home = $me->getHomeLocation(); $this->mapJump($home[0], $home[1]); // Reload area $this->reloadLocation($home[0], $home[1]); reloadEverything(); return $this->getContent(false); } else { //return $this->getPlayerInitialization (); } } $text = Neuron_Core_Text::__getInstance(); $text->setFile('account'); $text->setSection('selectRace'); $data = $this->getInputData(); // Show form $page = new Neuron_Core_Template(); $error = Neuron_GameServer::getPlayer()->getError(); if (!empty($error)) { $page->set('error', $text->get($error, 'errors', 'account', $error)); } // Loop trough races foreach (Dolumar_Races_Race::getRaces() as $k => $v) { $race = Dolumar_Races_Race::getFromId($k); if ($race->canPlayerSelect(Neuron_GameServer::getPlayer())) { $page->addListValue('races', array($text->get($v, 'races', 'races', $v), $text->get($v, 'desc', 'races', 'null'), $k)); } } $page->sortList('races'); // Some text values $page->set('submit', $text->get('submit')); $page->set('select', $text->get('select')); $page->set('location', $text->get('location')); if ($registrationTracker === true) { $tracker = Neuron_GameServer::getPlayer()->getTrackerUrl('registration'); $page->set('tracker_url', htmlentities($tracker)); } // Locations $page->addListValue('directions', array($text->get('r', 'directions', 'main'), 'r')); $page->addListValue('directions', array($text->get('n', 'directions', 'main'), 'n')); $page->addListValue('directions', array($text->get('ne', 'directions', 'main'), 'ne')); $page->addListValue('directions', array($text->get('e', 'directions', 'main'), 'e')); $page->addListValue('directions', array($text->get('es', 'directions', 'main'), 'es')); $page->addListValue('directions', array($text->get('s', 'directions', 'main'), 's')); $page->addListValue('directions', array($text->get('sw', 'directions', 'main'), 'sw')); $page->addListValue('directions', array($text->get('w', 'directions', 'main'), 'w')); $page->addListValue('directions', array($text->get('wn', 'directions', 'main'), 'wn')); // Fetch a list of all clans $db = Neuron_Core_Database::__getInstance(); $clans = $db->select('clans', array('*')); // Add a list of all clans ;-) foreach ($clans as $v) { $clan = new Dolumar_Players_Clan($v['c_id'], $v); $page->addListValue('clans', array('id' => $clan->getId(), 'name' => Neuron_Core_Tools::output_varchar($clan->getName()), 'isLocked' => $clan->isPasswordProtected(), 'isFull' => $clan->isFull())); } return $page->parse('account/selectRace.phpt'); }
public function getVillageProfile($objVillage) { if (!$objVillage || !$objVillage->isFound()) { return '<p>Village not found.</p>'; return null; } $text = Neuron_Core_Text::__getInstance(); $text->setFile('village'); $text->setSection('profile'); $townCenter = $objVillage->buildings->getTownCenter(); if ($townCenter) { $l = $townCenter->getLocation(); } else { $l = array('?', '?'); } $page = new Neuron_Core_Template(); $page->set('village', Neuron_Core_Tools::output_varchar($objVillage->getName())); $page->set('location', $text->get('location')); $page->set('villageProfile', $text->get('villageProfile')); $page->set('location_value', '[' . $l[0] . ',' . $l[1] . ']'); $page->set('locX', $l[0]); $page->set('locY', $l[1]); // Owner $owner = $objVillage->getOwner(); $page->set('owner', $text->get('owner')); $page->set('owner_value', Neuron_Core_Tools::output_varchar($owner->getNickname())); $page->set('pid', $owner->getId()); // Ranking $rank = $objVillage->getRank(); $page->set('rank', $text->get('rank')); $page->set('rank_value', Neuron_Core_Tools::putIntoText($text->get('ranking'), array($rank[0], $rank[1]))); // Race $race = $objVillage->getRace(); $page->set('race', $text->get('race')); $page->set('race_value', Neuron_Core_Tools::output_varchar($race->getRaceName())); $page->set('score', $objVillage->getNetworth()); $me = Neuron_GameServer::getPlayer(); if ($me && $objVillage->isActive()) { foreach ($me->getVillages() as $v) { if (!$v->equals($objVillage)) { // Register the visit $v->visits->registerVisit($objVillage); $page->addListValue('challenges', array(Neuron_Core_Tools::putIntoText($text->get('challenge'), array(Neuron_Core_Tools::output_varchar($v->getName()))), htmlentities(json_encode(array('vid' => $v->getId(), 'target' => $objVillage->getId()))))); $distance = Dolumar_Map_Map::getDistanceBetweenVillages($v, $objVillage); $page->addListValue('distances', array('id' => $v->getId(), 'name' => Neuron_Core_Tools::output_varchar($v->getName()), 'distance' => Neuron_Core_Tools::output_distance($distance, false, false))); } } } elseif (!$objVillage->isActive()) { $page->set('notActive', $text->get('notActive')); } // Set honour $page->set('honour_value', $objVillage->honour->getHonour()); return $page->parse('villageProfile.tpl'); }
private function getOverview($clan) { $_SESSION['clan_overview_lastrefresh'] = time(); // Change the title $text = Neuron_Core_Text::__getInstance(); $this->setTitle($text->get('clan', 'menu', 'main') . ': ' . Neuron_Core_Tools::output_varchar($clan->getName())); $page = new Neuron_Core_Template(); // Check for errors $error = $clan->getError(); if (isset($error)) { $page->set('error', $text->get($error, 'errors', 'clan')); } $myself = Neuron_GameServer::getPlayer(); $canJoin = $myself && !$clan->isMember($myself); $canLeave = $myself && $clan->isMember($myself); $page->setTextSection('overview', 'clan'); $page->set('clanname', Neuron_Core_Tools::output_varchar($clan->getName())); $page->set('clanid', $clan->getId()); foreach ($clan->getMembers() as $v) { $status = $clan->getMemberStatus($v); $page->addListValue('members', array('id' => $v->getId(), 'name' => Neuron_Core_Tools::output_varchar($v->getNickname()), 'status' => $status, 'status_t' => $text->get($status, 'roles', 'clan'), 'online' => $v->isOnline() ? 'online' : 'offline')); } // Check if it's possible to join $page->set('canJoin', $canJoin); $page->set('canLeave', $canLeave); $page->set('canGovern', $clan->isLeader($myself)); $desc = $clan->getDescription(); if (!empty($desc)) { $page->set('description', Neuron_Core_Tools::output_text($desc)); } return $page->parse('clan/overview.phpt'); }
private function getChooseSpecialUnits($target, $squads, $error = null) { $page = new Neuron_Core_Template(); $page->setTextSection('specialUnits', 'battle'); $page->set('error', $error); $page->set('target', Neuron_Core_Tools::output_varchar($target->getName())); $page->set('targetId', $target->getId()); $distance = Dolumar_Map_Map::getDistanceBetweenVillages($this->village, $target, false); $page->set('distance', Neuron_Core_Tools::output_distance($distance)); foreach ($this->village->getAttackSlots($target) as $k => $v) { if (isset($squads[$k])) { $unitId = $squads[$k]->getSquad()->getId() . '_' . $squads[$k]->getUnitId(); $page->addListValue('slots', array('id' => $k, 'unit' => $unitId)); } } $duration = $this->village->battle->getMoveDuration($squads, $distance); if ($duration > 60 * 60 * 24) { $page->set('duration', $duration); } $honour = Dolumar_Battle_Battle::getHonourPenalty($this->village, $target); if ($honour > 0) { //$bigger = round ( ($this->village->getScore () / $target->getScore ()) * 100) - 100; $bigger = round(Dolumar_Battle_Battle::getSizeDifference($this->village, $target) * 100 - 100); $page->set('honour', $honour); $page->set('size', $bigger); } // Fetch thze special units $units = $this->village->getSpecialUnits(); foreach ($units as $v) { $actions = $v->getEffects(); // Prepare the actions $aActions = array(); foreach ($actions as $action) { if ($action instanceof Dolumar_Effects_Battle) { $aActions[] = array('name' => $action->getName(), 'id' => $action->getId(), 'cost' => Neuron_Core_Tools::resourceToText($action->getCost($v, $target), false, false, false, 'rune', false)); } } if (count($aActions) > 0) { asort($aActions); // Add the special unit to the list $page->addListValue('specialunits', array('id' => $v->getId(), 'name' => Neuron_Core_Tools::output_varchar($v->getName(false, true)), 'actions' => $aActions)); } } return $page->parse('battle/specialUnits.phpt'); }
private function getConfirmDonation($target, $resources, $runes, $equipment) { $page = new Neuron_Core_Template(); $input = $this->aInput; $input['confirmed'] = 1; $page->set('input', json_encode($input)); $premium = $this->isPremium($target); $costs = $this->calculateCosts($target, $resources, $runes, $premium); // Count transactions $t1 = $this->splitInTransactions($resources, self::RESOURCES_PER_TRANSPORTER); $t2 = $this->splitInTransactions($runes, self::RUNES_PER_TRANSPORTER); $t3 = $equipment; $max_transactions = $this->countMaximumTransfers($premium); $total_transactions = count($t1) + count($t2) + count($t3); // Get duration $duration = $this->getTransferDuration($target); if (!$premium) { $premiumcost = $this->calculateCosts($target, $resources, $runes, true); if ($premiumcost) { $page->set('premiumcost', $this->resourceToText($premiumcost)); // Check who's fault it is. if ($this->getVillage()->getOwner()->isPremium()) { $page->set('premiumerror', 'nothim'); } elseif ($target->getOwner()->isPremium()) { $page->set('premiumerror', 'notyou'); } else { $page->set('premiumerror', 'notboth'); } } } if ($costs) { $page->set('costs', $this->resourceToText($costs)); } $page->set('target', Neuron_Core_Tools::output_varchar($target->getName())); $page->set('targetid', $target->getId()); $page->set('resources', $this->resourceToText($resources)); $crunes = 0; foreach ($runes as $k => $v) { $crunes += $v; } $page->set('hasResources', $this->isFilled($resources)); $page->set('hasRunes', $this->isFilled($runes)); $page->set('hasEquipment', count($equipment) > 0); $page->set('transactions', $total_transactions); $page->set('maxtransactions', $max_transactions); $page->set('duration', Neuron_Core_Tools::getDuration($duration)); $page->set('canConfirm', $total_transactions <= $this->countTransfersLeft($premium)); $page->set('runes', $crunes); $page->set('tab', isset($input['tab']) ? $input['tab'] : 'resources'); foreach ($equipment as $v) { $page->addListValue('equipment', array('id' => $v['equipment']->getId(), 'name' => $v['equipment']->getName($v['amount'] > 1), 'amount' => $v['amount'])); } return $page->parse('buildings/market_confirm.phpt'); }
protected function getCastSpell($objUnit, $addInputData = array(), $aReturnData = null) { $data = $this->getRequestData(); $page = new Neuron_Core_Template(); $page->setTextSection('cast', $this->sTextFile); $page->set('input', $addInputData); $spells = $objUnit->getEffects(); foreach ($spells as $spell) { if ($spell instanceof Dolumar_Effects_Boost || $spell instanceof Dolumar_Effects_Instant) { $page->addListValue('spells', $spell->getOutputData($objUnit, $this->village)); } } $page->sortList('spells'); $page->set('returnData', $aReturnData); return $page->parse('magic/cast.phpt'); }
private function prcSplit() { $page = new Neuron_Core_Template(); // Show them a list of all squads $squads = $this->army->getSquads(); $selectedSquads = array(); $selectedSquadsData = array(); foreach ($squads as $v) { $data = array('id' => $v->getId(), 'name' => $v->getDisplayName(), 'units' => array(), 'owner' => $v->getVillage()->getOwner()->getDisplayName()); foreach ($v->getUnits() as $vv) { $data['units'][] = array('name' => $vv->getDisplayName(), 'amount' => $vv->getAmount(), 'image' => $vv->getImageUrl(), 'numberedname' => $vv->getAmount() . ' ' . $vv->getDisplayName($vv->getAmount() > 1), 'morale' => $vv->getMorale()); } // Check input for selected squads if ($this->getInput('squad_' . $v->getId())) { $selectedSquads[] = $v; $selectedSquadsData[] = $data; } else { $page->addListValue('squads', $data); } } if (count($selectedSquads) > 0) { if (!$this->army->split($this->me, $selectedSquads)) { $this->alert($this->army->getError()); foreach ($selectedSquadsData as $v) { $page->addListValue('squads', $v); } } } return $page->parse('dolumar/underworld/windows/split.phpt'); }
public function getHTML($error = null) { $page = new Neuron_Core_Template(); $page->setTextSection('chooseTarget', 'main'); $page->set('canTargetSelf', $this->bTargetSelf); $page->set('vid', $this->objVillage->getId()); // Return action if (isset($this->sReturnAction)) { $page->set('returnUrl', $this->sReturnAction); $page->set('returnText', $this->sReturnText); } $sQuery = null; if (isset($this->aInput['sVillageName'])) { $sQuery = $this->aInput['sVillageName']; unset($this->aInput['sVillageName']); } $page->set('input', $this->aInput); $page->set('query', Neuron_Core_Tools::output_varchar($sQuery)); // Fetch all troops if (!empty($sQuery)) { $db = Neuron_Core_Database::__getInstance(); $page->set('hasSearched', true); $l = $db->getDataFromQuery($db->customQuery("\n\t\t\t\t\tSELECT\n\t\t\t\t\t\t*\n\t\t\t\t\tFROM\n\t\t\t\t\t\tvillages\n\t\t\t\t\tWHERE\n\t\t\t\t\t\tvname LIKE '%" . $db->escape($sQuery) . "%'\n\t\t\t\t\t\tAND isActive = 1\n\t\t\t\t\tORDER BY\n\t\t\t\t\t\tFIELD(vname, '" . $db->escape($sQuery) . "', vname),\n\t\t\t\t\t\tvname ASC\n\t\t\t\t\tLIMIT 10\n\t\t\t\t")); if (count($l) > 0) { foreach ($l as $v) { $village = Dolumar_Players_Village::getVillage($v['vid'], false); $village->setData($v); $tc = $village->buildings->getTownCenter(); if ($tc) { $loc = $tc->getLocation(); $page->addListValue('results', array('id' => $village->getId(), 'name' => Neuron_Core_Tools::output_varchar($village->getName()), 'location' => $loc[0] . ',' . $loc[1])); } } } } elseif ($this->bShowTargets) { $db = Neuron_DB_Database::__getInstance(); // Popular targets /* $l = $db->getDataFromQuery ( $db->customQuery (" SELECT l_vid, villages.* FROM game_log LEFT JOIN villages ON game_log.l_vid = villages.vid WHERE (l_action = 'attack' OR l_action = 'defend') AND l_vid != ".$this->objVillage->getId ()." AND l_subId = ".$this->objVillage->getId ()." AND isActive = 1 GROUP BY l_vid ORDER BY l_date ASC LIMIT 10 ") ); */ $l = $this->objVillage->visits->getLastVisits(); if (count($l) > 0) { foreach ($l as $village) { // Only add active villages if ($village->isActive()) { $tc = $village->buildings->getTownCenter(); if ($tc) { $loc = $tc->getLocation(); $page->addListValue('results', array('id' => $village->getId(), 'name' => Neuron_Core_Tools::output_varchar($village->getName()), 'location' => $loc[0] . ',' . $loc[1])); } } } } } if (isset($error)) { $page->set('external_error', $error); } return $page->parse('neuron/structure/chooseTarget.phpt'); }
private function getOpenIdForm($sError = false) { $page = new Neuron_Core_Template(); $page->setTextSection('openid', 'account'); $page->set('error', $sError); $page->set('url', API_OPENID_URL . 'login/'); $page->addListValue('popular', array('Yahoo', 'http://www.yahoo.com/')); return $page->parse('gameserver/account/openid.phpt'); }
private function getMoveVillage() { $page = new Neuron_Core_Template(); $player = Neuron_GameServer::getPlayer(); $input = $this->getInputData(); $x = isset($input['x']) ? intval($input['x']) : null; $y = isset($input['y']) ? intval($input['y']) : null; if (isset($input['village'])) { $village = $player->getMyVillage($input['village']); } if (isset($input['village']) && isset($input['x']) && isset($input['y']) && !isset($input['do'])) { $offset = isset($input['offset']) ? $input['offset'] : 0; if ($village) { if ($this->canMoveVillage($village)) { $location = $village->movevillage->getValidLocation($x, $y, $offset); if ($location) { list($nx, $ny, $new_offset) = $location; // Jump to this location $this->mapJump($nx, $ny); $page->set('proposal', true); $page->set('x', $nx); $page->set('y', $ny); $page->set('offset', $new_offset); $data = array('action' => 'movevillage', 'village' => $village->getId(), 'x' => $nx, 'y' => $ny); // Generate approve URL $page->set('confirm_url', htmlentities($player->getCreditUseUrl(self::COST_MOVEVILLAGE, $data, 'Move village ' . $village->getName() . ' to ' . $nx . ',' . $ny))); //return $page->parse ('dolumar/premium/movevillage_proposal.phpt'); } else { $page->set('error', 'no_location_found'); } } else { $page->set('error', 'village_timeout'); } } } $page->set('desired_x', isset($x) ? $x : ''); $page->set('desired_y', isset($y) ? $y : ''); $page->set('village', isset($village) ? $village->getId() : $player->getCurrentVillage()->getId()); $page->set('days', self::MIN_MOVEVILLAGE_INTERVAL_DAYS); $villages = $player->getVillages(); foreach ($villages as $v) { $page->addListValue('villages', array('id' => $v->getId(), 'name' => Neuron_Core_Tools::output_varchar($v->getName()))); } return $page->parse('dolumar/premium/movevillage.phpt'); }