public function execute($a = null, $b = null, $c = null) { $buildings = $this->getTarget()->buildings->getBuildings(); shuffle($buildings); $level = $this->getLevel(); foreach ($buildings as $v) { if ($v->getLevel() <= $level) { $v->doDestructBuilding(false, NOW, false); Dolumar_Players_Logs::getInstance()->addDestroyBuildingLog($this->getVillage(), $this->getTarget(), $v); return true; } } return false; }
public function openPortal($village) { if ($village->equals($this->village)) { throw new Neuron_Core_Error('Can\'t open portal to own village.'); } $race = $village->getRace(); $building = Dolumar_Buildings_Portal::getBuilding(60, $race); $date = NOW + self::PORTAL_LIFESPAN_HOURES * 60 * 60 / GAME_SPEED_EFFECTS; $loc1 = $this->openPortalNearVillage($this->village, $building, $date); $loc2 = $this->openPortalNearVillage($village, $building, $date); $db = Neuron_DB_Database::getInstance(); $db->query("\n\t\t\tINSERT INTO\n\t\t\t\tmap_portals\n\t\t\tSET\n\t\t\t\tp_caster_v_id = {$this->village->getId()},\n\t\t\t\tp_target_v_id = {$village->getId()},\n\t\t\t\tp_caster_x = {$loc1[0]},\n\t\t\t\tp_caster_y = {$loc1[1]},\n\t\t\t\tp_target_x = {$loc2[0]},\n\t\t\t\tp_target_y = {$loc2[1]},\n\t\t\t\tp_caster_b_id = {$loc1[2]},\n\t\t\t\tp_target_b_id = {$loc2[2]},\n\t\t\t\tp_endDate = FROM_UNIXTIME({$date})\n\t\t"); $logs = Dolumar_Players_Logs::getInstance(); $logs->addOpenPortalLog($this->village, $village, $date); }
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 getBody() { $timeframe = Neuron_Core_Tools::getInput('_GET', 'timeframe', 'int', 60 * 60 * 48); $page = new Neuron_Core_Template(); $page->set('timeframe', $timeframe); $objLogs = Dolumar_Players_Logs::getInstance(); $objLogs->setTimeInterval(NOW - $timeframe, NOW); $pageid = Neuron_Core_Tools::getInput('_GET', 'page', 'int', 1); $limit = Neuron_Core_Tools::splitInPages($page, $objLogs->getSuspiciousLogsCounter(), $pageid, self::SUSPICIOUS_TRANSACTIONS_PERPAGE, 7, array('timeframe' => $timeframe), 'multis'); //print_r ($limit); //$logs = $objLogs->getSuspiciousLogs (); $logs = $objLogs->getSuspiciousLogs($limit['start'], $limit['perpage'], 'DESC'); foreach ($logs as $v) { $player = Dolumar_Players_Village::getFromId($v['village'])->getOwner(); $page->addListValue('logs', array('action' => $objLogs->getLogText($v, false), 'date' => date(DATETIME, $v['timestamp']), 'player' => $player->getDisplayName())); } // Output the shizzle $html = $page->parse('dolumar/pages/admin/multis/dangeroustransactions.phpt'); $html .= parent::getBody(); return $html; }
public function leaveClan($user, $action = 'leave') { $db = Neuron_DB_Database::__getInstance(); $db->query("\n\t\t\tUPDATE\n\t\t\t\tclan_members\n\t\t\tSET\n\t\t\t\tcm_active = 0\n\t\t\tWHERE\n\t\t\t\tc_id = " . $this->getId() . " AND \n\t\t\t\tplid = " . $user->getId() . "\n\t\t"); $logs = Dolumar_Players_Logs::getInstance(); $logs->addLeaveClanLog($user, $this, $action); $this->recalculateFullness(); // Also destroy all clan buildings foreach ($user->getVillages() as $v) { foreach ($v->buildings->getBuildings() as $vv) { $vv->onClanLeave(); } } }
private function getBattleOverview() { //$db = Neuron_Core_Database::__getInstance (); $text = Neuron_Core_Text::__getInstance(); $text->setSection('overview'); $text->setFile('battle'); $input = $this->getInputData(); // Get logs from this village $objLogs = Dolumar_Players_Logs::getInstance(); $objLogs->addShowOnly('attack'); $objLogs->addShowOnly('defend'); $iPage = isset($input['page']) ? $input['page'] : 0; $page = new Neuron_Core_Template(); // Split in pages $limit = Neuron_Core_Tools::splitInPages($page, $objLogs->countLogs($this->village), $iPage, 10); $objLogs->addMyVillage($this->village); $logs = $objLogs->getLogs($this->village, $limit['start'], $limit['perpage'], 'DESC'); $loghtml = $this->getLogHTML($page, $objLogs, $logs); $output = new Neuron_Core_Template(); $output->set('vid', $this->village->getId()); $output->set('title', $text->get('overview')); $output->set('loghtml', $loghtml); return $output->parse('battle/overview.tpl'); }
protected function doCastSpell($objUnit, $objSpell, $objTarget, $visible = true) { // Just feed the random number generator, just to be sure. mt_srand(); $page = new Neuron_Core_Template(); $text = Neuron_Core_Text::getInstance(); $page->setTextSection('result', $this->sTextFile); // Now let's start the checking $cost = $objSpell->getCost($objUnit, $objTarget); if ($this->village->resources->takeResourcesAndRunes($cost)) { $dif = $this->getProbability($objUnit, $objSpell, $objTarget); $rand = mt_rand(0, 100); $objSpell->setVillage($this->village); $objSpell->setTarget($objTarget); $objSpell->prepare(); // Some spells are not castable for some reason. if (!$objSpell->isCastable()) { $page->set('success', false); $page->set('message', $text->get($objSpell->getError(), 'errors', $this->sTextFile)); } else { if ($rand < $dif) { $objSpell->execute($visible); reloadStatusCounters(); $page->set('success', true); $page->set('message', $objSpell->getSuccessMessage()); // Call the trigger! $objUnit->onSuccess(); // Update request data (to return to overview) //$this->updateRequestData (array ('building' => $'village' => $this->village->getId ())); $page->set('extra', $objSpell->getExtraContent()); $success = true; } else { $page->set('success', false); $page->set('message', $objSpell->getFailedMessage()); // Call the trigger! $objUnit->onFail(); if ($objUnit->isAlive()) { $page->set('retry', true); $page->set('inputData', $this->getInputData()); } $success = false; } $toTarget = $success || !$visible; if (!$success) { $visible = true; } $objTarget = $objSpell->getTarget(); $log = Dolumar_Players_Logs::getInstance(); $log->addEffectLog($objTarget, $objSpell, $this->village, $success, $visible, $toTarget, $this->sTextFile); reloadEverything(); } } else { $page->set('success', false); $page->set('error', 'err_resources'); } return $page->parse('magic/result.phpt'); }
private function canMoveVillage(Dolumar_Players_Village $village) { // Fetch logs $objLogs = Dolumar_Players_Logs::getInstance(); $objLogs->clearFilters(); $objLogs->addShowOnly('premium_movevillage'); $objLogs->setTimeInterval(time() - 60 * 60 * self::MIN_MOVEVILLAGE_INTERVAL_DAYS); $logs = $objLogs->getLogs($village, 0, 5, 'DESC'); if (count($logs) > 0) { return false; } return true; }
public function withdraw() { if ($this->canWithdraw()) { // Logs $logs = Dolumar_Players_Logs::getInstance(); $logs->addWithdrawBattle($this); $db = Neuron_Core_Database::__getInstance(); //$battle = $this->getData (); // Calculate the "return home" time $duration = NOW - $this->getStartDate(); // Double return time $duration = $duration * 2; //die ('duration: '. $duration); // Update mysql $db->update('battle', array('isFought' => 1, 'arriveDate' => NOW - 1, 'endDate' => NOW + $duration, 'fightDate' => NOW - 1, 'endFightDate' => NOW - 1, 'bLogId' => 0), "battleId = '{$this->getId()}'"); $this->reloadData(); // Removal //$this->doRemoveBattle (); } }
public function invitationGiftSender($data, Neuron_GameServer_Player $to) { $village = $this->getMainVillage(); if ($village) { $data = array(); $data['to'] = $to; Dolumar_Players_Logs::getInstance()->addLog($village, 'invitegift_received', $data, true); } }