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'); }
function checkBuildings($buildings, $sQ, $i, $j, $tx, $ty) { global $output; // Objects & buildings if (isset($buildings[$tx]) && isset($buildings[$tx][$ty])) { $loc = array(); foreach ($buildings[$tx][$ty] as $b) { $displayobject = $b->getDisplayObject(); $offset = $displayobject->getOffset(); $title = Neuron_Core_Tools::output_varchar($b->getName()); $location = $b->getLocation(); if (!isset($loc[$location[0] . 'p' . $location[1]])) { if (!isset($output['regions'][$sQ]['objects'][$i])) { $output['regions'][$sQ]['objects'][$i] = array(); } if (!isset($output['regions'][$sQ]['objects'][$i][$j])) { $output['regions'][$sQ]['objects'][$i][$j] = array(); } $id = time(); $output['regions'][$sQ]['objects'][$i][$j][] = array('tx' => $tx, 'ty' => $ty, 'id' => $id, 'i' => $i - $offset[0], 'j' => $j - $offset[1], 'm' => map_image_cache($displayobject), 'n' => $title, 's' => $b->getMapObjectStatus()->getArray(), 'c' => $b->getEvents('click'), 'z' => 0, 'd' => true); $loc[$location[0] . 'p' . $location[1]] = true; } } } }
protected function getForum() { $requestData = $this->getRequestData(); if (isset($requestData['clan'])) { $clan = new Dolumar_Players_Clan($requestData['clan']); if ($clan) { $login = Neuron_Core_Login::__getInstance(); if ($login->isLogin()) { $me = Neuron_GameServer::getPlayer(); $isMember = $clan->isMember($me); $isModerator = $clan->isModerator($me); //__construct ($iForumType, $iForumId, $objUser = false, $bCanSeeAll = false, $bIsModerator = false) $forum = new Neuron_Forum_Forum(1, $clan->getId(), $me, $isMember, $isModerator); } else { $forum = new Neuron_Forum_Forum(1, $clan->getId(), false, false, false); } // Fetch thze title $text = Neuron_Core_Text::__getInstance(); $forum->setTitle(Neuron_Core_Tools::putIntoText($text->get('title', 'forum', 'clan'), array('clan' => Neuron_Core_Tools::output_varchar($clan->getName())))); return $forum; } else { return false; } } else { return false; } }
public function showRegisterForm($error = false) { $text = Neuron_Core_Text::__getInstance(); $text->setFile('account'); $text->setSection('register'); $page = new Neuron_Core_Template(); $page->setTextSection('register', 'account'); // Get invitation code $data = $this->getInputData(); $page->set('invCode', isset($data['invCode']) ? $data['invCode'] : null); // If an error has occured, add that if ($error) { $page->set('error', $text->get($error, 'errors')); } // Check for already found data if (isset($data['username'])) { $page->set('username_value', Neuron_Core_Tools::output_varchar($data['username'])); } if (isset($data['email'])) { $page->set('email_value', Neuron_Core_Tools::output_varchar($data['email'])); } $page->set('register', $text->get('register')); $page->set('submit', $text->get('submit')); $page->set('email', $text->get('email')); $page->set('username', $text->get('username')); $page->set('password', $text->get('password')); $page->set('password2', $text->get('password2')); return $page->parse('register/register.tpl'); }
private function printResults($page, $query) { foreach ($query as $v) { $displayname = Neuron_URLBuilder::getInstance()->getOpenUrl('PlayerProfile', Neuron_Core_Tools::output_varchar($v['nickname']), array('plid' => $v['plid'])); $villagename = Neuron_URLBuilder::getInstance()->getOpenUrl('VillageProfile', Neuron_Core_Tools::output_varchar($v['vname']), array('village' => $v['vid'])); $page->addListValue('results', array('id' => $v['plid'], 'nickname' => $v['nickname'], 'displayname' => $displayname, 'village' => $v['vname'], 'displayvillage' => $villagename, 'distance' => Neuron_Core_Tools::output_distance($v['distance']), 'networth' => $v['networth'])); } }
protected function getTitle() { $me = Neuron_GameServer::getPlayer(); if ($me && $this->building->getOwner()->getId() == $me->getId()) { return $this->building->getName(false, true) . ' (' . Neuron_Core_Tools::output_varchar($this->building->getVillage()->getName()) . ')'; } else { return $this->building->getName(false) . ' (' . Neuron_Core_Tools::output_varchar($this->building->getVillage()->getName()) . ')'; } }
public function getContent() { //return $this->getCurrentResources (); $data = $this->getRequestData(); $page = isset($data['page']) ? intval($data['page']) : 1; $myself = Neuron_GameServer::getPlayer(); // Sort of config ;-) $totalPages = 0; if ($myself) { $villages = $myself->getVillages(); $totalPages = count($villages); } $content = $this->getResourcesPage(); // Next & previous pages $nextPage = $page + 1; $previousPage = $page - 1; if ($previousPage < 1) { // Highest page id $previousPage = $totalPages; } if ($nextPage > $totalPages) { $nextPage = 1; } $text = Neuron_Core_Text::__getInstance(); $page = new Neuron_Core_Template(); $page->set('nextPage', $nextPage); $page->set('previousPage', $previousPage); $page->set('minimap', $text->get('minimap', 'menu', 'main')); // Check for news messages $hasMessages = false; if ($myself) { $mapper = Neuron_GameServer_Mappers_CachedChatMapper::getInstance(); $messages = $mapper->countUnreadMessages($myself); $hasMessages = $messages > 0; //return $messages; // Get current village $village = $myself->getCurrentVillage(); if ($village) { $page->set('current_village', Neuron_Core_Tools::output_varchar($village->getName())); $page->set('current_village_id', Neuron_Core_Tools::output_varchar($village->getId())); } } $page->set('hasMessages', $hasMessages); $page->set('inbox', $text->get('inbox', 'menu', 'main')); $page->set('home', $text->get('home', 'menu', 'main')); $page->set('homecors', $this->getHomeLocation()); $page->set('content', $content); return $page->parse('newsbar.tpl'); }
protected function setPlayer() { $o = $this->getRequestData(); if (!isset($o['village']) && isset($o[0])) { $o['village'] = $o[0]; } elseif (!isset($o['village'])) { $o['village'] = null; } $village = Dolumar_Players_Village::getVillage($o['village']); if ($village) { $this->player = $village->getOwner(); $this->thisVillage = $village; } $this->setTitle(Neuron_Core_Tools::output_varchar($this->player->getNickname())); }
public function setSettings() { $text = Neuron_Core_Text::__getInstance(); $login = Neuron_Core_Login::__getInstance(); // Window settings $this->setAllowOnlyOnce(); $data = $this->getRequestData(); $this->village = Dolumar_Players_Village::getMyVillage($data['vid']); if ($login->isLogin() && $this->village && $this->village->isActive()) { $this->setTitle($text->get('build', 'menu', 'main') . ' (' . Neuron_Core_Tools::output_varchar($this->village->getName()) . ')'); $this->setSize('290px', '300px'); } else { $this->setTitle($text->get('build', 'menu', 'main')); $this->setSize('250px', '150px'); } }
public function setSettings() { $text = Neuron_Core_Text::__getInstance(); $login = Neuron_Core_Login::__getInstance(); // Window settings $this->setSize('250px', '245px'); $this->setAllowOnlyOnce(); $data = $this->getRequestData(); // Construct village $this->village = Dolumar_Players_Village::getVillage($data['vid']); if ($login->isLogin() && $this->village->isFound()) { $this->setTitle($text->get('technologies', 'menu', 'main') . ' (' . Neuron_Core_Tools::output_varchar($this->village->getName()) . ')'); } else { $this->village = false; $this->setTitle($text->get('technologies', 'menu', 'main')); } }
protected function getChooseUnit($building) { $building = $this->village->buildings->getBuilding($building); if (!$building instanceof $this->buildingType) { return '<p>Invalid input: building not found.</p>'; } // Count the thieves in this building $allUnits = $building->getUnits(); $page = new Neuron_Core_Template(); $page->setTextSection('chooseUnit', 'thievery'); $units = array(); foreach ($allUnits as $v) { $location = $v->getLocation(); $units[] = array('id' => $v->getId(), 'name' => $v->getName(false, true), 'location' => Neuron_Core_Tools::output_varchar($location->getName()), 'location_id' => $location->getId(), 'moving' => $v->isMoving() ? Neuron_Core_Tools::getCountdown($v->getArrivalDate()) : null); } $page->set('units', $units); return $page->parse('thieves/chooseThief.phpt'); }
private function getCurrentUnits($village) { $text = Neuron_Core_Text::__getInstance(); $text->setFile('unit'); $text->setSection('units'); //$units = $village->getDefendingUnits (); $units = $village->getAllUnits(); $page = new Neuron_Core_Template(); // Print stat names Dolumar_Units_Unit::printStatNames($page); $page->set('noUnits', $text->get('noUnits')); $page->set('about', $text->get('about')); $page->set('villageId', $this->village->getId()); $page->set('squads', $text->getClickTo($text->get('toSquads'))); foreach ($units as $v) { $page->addListValue('units', array('name' => Neuron_Core_Tools::output_varchar($v->getName()), 'stats' => $v->getStats($village), 'available' => $v->getAvailableAmount(), 'total' => $v->getTotalAmount(), 'consumption' => $v->getCurrentConsumption_text($village), 'type' => $v->getAttackType_text(), 'image' => $v->getImageUrl())); } $page->sortList('units'); return $page->parse('units.tpl'); }
public function setSettings() { $text = Neuron_Core_Text::__getInstance(); $login = Neuron_Core_Login::__getInstance(); // Window settings $this->setSize('250px', '350px'); $data = $this->getRequestData(); if (!isset($data['vid'])) { $data['vid'] = 0; } $this->village = Dolumar_Players_Village::getMyVillage($data['vid']); // Window settings if ($login->isLogin() && $this->village->isFound() && $this->village->getOwner()->getId() == $login->getUserId()) { $this->setTitle($text->get('overview', 'menu', 'main') . ' (' . Neuron_Core_Tools::output_varchar($this->village->getName()) . ')'); } else { $this->setTitle($text->get('overview', 'menu', 'main')); } $this->setAllowOnlyOnce(); $this->setClassName('overview'); }
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'); }
protected function requestClanPassword($race, $objClan) { $data = $this->getInputData(); $page = new Neuron_Core_Template(); $page->set('wrongPass', isset($data['password'])); $page->set('race', $race); $page->set('clan', $objClan->getId()); $page->set('clanname', Neuron_Core_Tools::output_varchar($objClan->getName())); return $page->parse('gameserver/account/clanPassword.phpt'); }
public function getVillageRanking() { $text = Neuron_Core_Text::__getInstance(); $db = Neuron_Core_Database::__getInstance(); $input = $this->getInputData(); $page = new Neuron_Core_Template(); $text->setFile('ranking'); $text->setSection('ranking'); $page->set('title', $text->get('villageRating')); $page->set('village', $text->get('village')); $page->set('value', $text->get('value')); $data = $this->getRequestData(); $perPage = 25; $myDefaultPage = 1; if (isset($data['village'])) { $village = Dolumar_Players_Village::getVillageFromId($data['village']); $myVillageId = $data['village']; $myRank = $village->getRank(); $myDefaultPage = floor($myRank[0] / $perPage) + 1; } else { $myVillageId = 0; // Load "main village" from this user $myself = Neuron_GameServer::getPlayer(); if ($myself) { $village = $myself->getMainVillage(); if ($village) { $myVillageId = $village->getId(); $myRank = $village->getRank(); $myDefaultPage = floor($myRank[0] / $perPage) + 1; } } } $currentPage = isset($input['page']) ? $input['page'] : $myDefaultPage; $limit = Neuron_Core_Tools::splitInPages($page, Dolumar_Players_Ranking::countRanking(), $currentPage, $perPage, 6); $l = Dolumar_Players_Ranking::getRanking($limit['start'], $limit['perpage']); // Get my villages $myself = Neuron_GameServer::getPlayer(); if ($myself && $myself->isPremium()) { $distances = $myself->getVillages(); } else { $distances = array(); } $i = $limit['start']; foreach ($l as $v) { $i++; // Calcualte the distances $w_distances = array(); foreach ($distances as $k => $vv) { $w_distances[$k] = Neuron_Core_Tools::output_distance(Dolumar_Map_Map::getDistanceBetweenVillages($vv, $v), true, true); } $page->addListValue('ranking', array($i, Neuron_Core_Tools::output_varchar($v->getName()), $v->getId(), $v->getNetworth(), $v->getId() == $myVillageId, $w_distances)); //$v->__destruct (); } // Add the footnote $t_distances = array(); foreach ($distances as $k => $v) { $t_distances[$k] = Neuron_Core_Tools::output_varchar($v->getName()); } $page->set('distances', $t_distances); return $page->parse('ranking/ranking.tpl'); }
public function getDisplayName() { return Neuron_Core_Tools::output_varchar($this->getName()); }
public function getLogText($log, $showUrl = true, $html = true) { $text = Neuron_Core_Text::__getInstance(); // Secondly: old data (but they do have nice names...) $data = array(); foreach ($log as $k => $v) { $data[$k] = $v; } // Define an url for certain actions $sUrl = null; switch ($log['action']) { case 'sendMsg': case 'receiveMsg': $sUrl = "openWindow('messages');"; break; } if (!isset($log['village'])) { return 'invalid log'; } if (isset($log['data']) && is_array($log['data'])) { foreach ($log['data'] as $v) { if ($v instanceof Neuron_GameServer_Interfaces_Logable) { if (isset($sUrl) || $html == false) { $data[] = Neuron_Core_Tools::output_varchar($v->getName()); } else { $data[] = $v->getDisplayName(); } } elseif (is_string($v) || is_int($v) || is_float($v)) { $data[] = $v; } else { $data[] = 'invalid data'; } } } $mylog = isset($this->myvillages[$log['village']]) ? 'mylogs' : 'hislogs'; $village = Dolumar_Players_Village::getVillage($log['village']); $data['village'] = $village->getName(); $data['player'] = $village->getOwner()->getDisplayName(); $datafields = array(); foreach ($data as $k => $v) { if (!is_array($v)) { $datafields[$k] = $v; } } $txt = Neuron_Core_Tools::putIntoText($text->get($log['action'], $mylog, 'logs', $text->get($log['action'], 'mylogs', 'logs')), $datafields); if (isset($sUrl) && $showUrl) { return '<a href="javascript:void(0);" onclick="' . $sUrl . '">' . $txt . '</a>'; } else { return $txt; } }
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 getDonateResources($target, $resources, $runes, $equipment) { $text = Neuron_Core_Text::__getInstance(); $msgs = array(); $premium = $this->isPremium($target); // Count transactions $t1 = $this->splitInTransactions($resources, self::RESOURCES_PER_TRANSPORTER); $t2 = $this->splitInTransactions($runes, self::RUNES_PER_TRANSPORTER); //$t3 = $this->splitInTransactions ($equipment, self::EQUIPMENT_PER_TRANSPORTER); $t3 = $equipment; $total_transactions = count($t1) + count($t2) + count($t3); $max_transactions = $this->countTransfersLeft($premium); if ($total_transactions > $max_transactions) { // No error, just show the confirm button again. return $this->getConfirmDonation($target, $resources, $runes, $equipment); } // Calculate the price $costs = $this->calculateCosts($target, $resources, $runes, $premium); $amount = 0; foreach ($resources as $v) { $amount += $v; } $duration = $this->getTransferDuration($target); /* done_res = "You have sent resource to @@target." done_runes = "You have sent runes to @@target." */ // RESOURCES foreach ($t1 as $resources) { if ($this->getVillage()->resources->transferResources($target, $resources, $costs, $duration)) { $msgs[] = array(Neuron_Core_Tools::putIntoText($text->get('done_res', 'market', 'buildings'), array('target' => Neuron_Core_Tools::output_varchar($target->getName()), 'cost' => $this->resourceToText($costs))), true); } elseif ($amount > 0) { $msgs[] = array(Neuron_Core_Tools::putIntoText($text->get($this->getVillage()->resources->getError(), 'market', 'buildings'), array('target' => Neuron_Core_Tools::output_varchar($target->getName()), 'cost' => $this->resourceToText($costs))), false); } $costs = array(); } // RUNES foreach ($t2 as $runes) { if ($this->getVillage()->resources->transferRunes($target, $runes, $duration)) { $msgs[] = array(Neuron_Core_Tools::putIntoText($text->get('done_runes', 'market', 'buildings'), array('target' => Neuron_Core_Tools::output_varchar($target->getName()), 'cost' => $this->resourceToText($costs))), true); } elseif (count($runes) > 0) { $msgs[] = array(Neuron_Core_Tools::putIntoText($text->get($this->getVillage()->resources->getError(), 'market', 'buildings'), array('target' => Neuron_Core_Tools::output_varchar($target->getName()), 'cost' => $this->resourceToText($costs))), false); } } // Time for the equipment stuff $equips = 0; foreach ($equipment as $v) { if ($this->getVillage()->equipment->transferEquipment($target, $v['equipment'], $v['amount'], $duration)) { $equips += $v['amount']; } else { $msgs[] = array(Neuron_Core_Tools::putIntoText($text->get($this->getVillage()->resources->getError(), 'market', 'buildings'), array('target' => Neuron_Core_Tools::output_varchar($target->getName()), 'cost' => $this->resourceToText($costs))), false); } } if ($equips > 0) { $msgs[] = array(Neuron_Core_Tools::putIntoText($text->get('done_equipment' . ($equips > 1 ? '2' : '1'), 'market', 'buildings'), array('target' => Neuron_Core_Tools::output_varchar($target->getName()), 'cost' => $this->resourceToText($costs), 'items' => $equips)), true); } reloadEverything(); $this->aInput = array('action' => 'donate'); return $this->getChooseTarget($msgs); }
protected function getConfirmCast($objUnit, $objSpell, $objTarget, $inputData = null) { $text = Neuron_Core_Text::__getInstance(); $page = new Neuron_Core_Template(); $page->setTextSection('confirm', $this->sTextFile); if (isset($objTarget)) { $page->set('target', Neuron_Core_Tools::output_varchar($objTarget->getName())); } $page->set('spell', Neuron_Core_Tools::output_varchar($objSpell->getName())); $page->set('cost', Neuron_Core_Tools::resourceToText($objSpell->getCost($objUnit, $objTarget))); $page->set('about', Neuron_Core_Tools::output_varchar($objSpell->getDescription())); $page->set('duration', $objSpell->getType_text()); $page->set('difficulty', $objSpell->getDifficulty()); $page->set('probability', $this->getProbability($objUnit, $objSpell, $objTarget)); $page->set('toCast', Neuron_Core_Tools::putIntoText($text->get('toCast', 'confirm', $this->sTextFile), array('spell' => Neuron_Core_Tools::output_varchar($objSpell->getName())))); // Set hidden values $page->set('inputData', $inputData); return $page->parse('magic/confirm.phpt'); }
public function getEmailCertification() { $me = Neuron_GameServer::getPlayer(); $text = Neuron_Core_Text::__getInstance(); $text->setFile('account'); $text->setSection('choosemail'); $page = new Neuron_Core_Template(); $page->set('welcome', Neuron_Core_Tools::putIntoText($text->get('welcome'), array(Neuron_Core_Tools::output_varchar($me->getNickname())))); $page->set('return', $text->getClickTo($text->get('toReturn'))); $input = $this->getInputData(); // Set e-mail (certification required) if (isset($input['email'])) { if (!$me->setEmail($input['email'])) { $page->set('error', $text->get($me->getError())); } } if ($me->isEmailSet()) { if (isset($input['action']) && $input['action'] == 'resend') { $me->sendCertificationMail(); return '<p>Your verification email is sent.</p>'; } $page->set('section', 'notcertified'); $page->set('email_title', $text->get('email_title')); $page->set('email_about', $text->get('certification')); $page->set('cert_again', $text->getClickTo($text->get('toCertAgain'))); return $page->parse('gameserver/account/myAccount_email.tpl'); } else { $page->set('section', 'choosemail'); $page->set('email_title', $text->get('email_title')); $page->set('email', $text->get('email')); $page->set('submit', $text->get('submit')); $page->set('about', $text->get('about')); return $page->parse('gameserver/account/myAccount_email.tpl'); } }
private function getText($sKey, $sSection = null, $sFile = null, $sDefault = null) { if (!isset($this->objText)) { $this->objText = Neuron_Core_Text::__getInstance(); } $txt = Neuron_Core_Tools::output_varchar($this->objText->get($sKey, isset($sSection) ? $sSection : $this->sTextSection, isset($sFile) ? $sFile : $this->sTextFile, false)); if (!$txt) { return $sDefault; } return $txt; }
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'); }
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'); }
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'); }
/** * Determine if it's time to take a step forwards */ public function updateStatus() { $state = $this->getData('gamestate'); if (!$state) { $this->setData('gamestate', self::GAMESTATE_PLAYING); return; } switch ($state) { case self::GAMESTATE_PLAYING: // If the server has been running for xxx months, go to next step $duration = GAME_RUNNING_DURATION; $start = $this->getStartDate(); $timepassed = time() - $start; if ($timepassed > $duration) { // Initiate end game $this->setData('gamestate', self::GAMESTATE_ENDGAME_STARTED); // And notify all players Neuron_GameServer_Player_Guide::addPublicMessage('end_scroll', array(), 'guide', 'scared'); } break; case self::GAMESTATE_ENDGAME_FINISHED: $this->setData('end_date', time()); $this->setData('gamestate', self::GAMESTATE_WAITINGFORRESET); $server = Neuron_GameServer::getServer(); $out = array(); $out['winner'] = ''; $out['members'] = ''; $out['ranking'] = ''; $out['members'] = ''; $out['villages'] = ''; $out['clans'] = ''; $out['players'] = ''; $winner = $server->getData('winner'); if ($winner) { $clan = Dolumar_Players_Clan::getFromId($winner); if ($clan) { $out['winner'] = Neuron_Core_Tools::output_varchar($clan->getName()); foreach ($clan->getMembers() as $v) { $out['members'] .= "- " . Neuron_Core_Tools::output_varchar($v->getName()) . "\n"; } } } // Ranking $players = Dolumar_Players_Ranking::getPlayerRanking(0, 5); $i = 0; foreach ($players as $v) { $i++; $out['players'] .= $i . ". " . $v->getName() . ' (' . $v->getScore() . ')' . "\n"; } $villages = Dolumar_Players_Ranking::getRanking(0, 5); $i = 0; foreach ($villages as $v) { $i++; $out['villages'] .= $i . ". " . $v->getName() . ' (' . $v->getNetworth() . ')' . "\n"; } $ranking = Dolumar_Players_Ranking::getClanRanking(0, 5); $i = 0; foreach ($ranking as $v) { $i++; $out['clans'] .= $i . ". " . $v->getName() . ' (' . $v->getNetworth() . ')' . "\n"; } $out['servername'] = $this->getServerName(); $out['serverurl'] = ABSOLUTE_URL; // Send out the bloody newsletter if (!defined('IS_TESTSERVER') || !IS_TESTSERVER) { $this->sendNewsletter('serverreset', $out); } break; case self::GAMESTATE_WAITINGFORRESET: if ($this->getData('end_date') <= NOW - 60 * 60 * 23) { $this->reset(); } break; } }
break; case 'ranking': // Ranking is handling its own output. include 'ranking.php'; exit; break; case 'rss': $text = Neuron_Core_Text::__getInstance(); $output_type = 'xml'; $xml_name = 'rss'; $xml_version = '2.0'; // Check for login if ($login->isLogin()) { $myself = Neuron_GameServer::getPlayer(); $output['content']['channel'] = array(); $output['content']['title'] = Neuron_Core_Tools::putIntoText($text->get('rss_title', 'main', 'main'), array('username' => Neuron_Core_Tools::output_varchar($myself->getName()))); $output['content']['link'] = ABSOLUTE_URL; $output['content']['description'] = 'Player logs'; $objLogs = Dolumar_Players_Logs::__getInstance(); // Only village //$village = $myself->getMainVillage (); //if ($village) { foreach ($objLogs->getLogs($myself, 0, 50, 'DESC', false) as $v) { // <pubDate>Sun, 19 May 2002 15:21:36 GMT</pubDate> $output['content']['items'][] = array('title' => $objLogs->getLogText($v, false, false), 'link' => ABSOLUTE_URL, 'description' => null, 'pubDate' => gmdate('r', $v['unixtime'])); } //} } else { header('WWW-Authenticate: Basic realm="Profile Logs"'); header('HTTP/1.0 401 Unauthorized'); echo 'Please login to access your profile logs.';
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'); }