private function getWinner() { $server = Neuron_GameServer::getServer(); $winner = $server->getData('winner'); if ($winner) { return Dolumar_Players_Clan::getFromId($winner); } return null; }
/** * 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; } }
public static function getSides(Dolumar_Underworld_Models_Mission $mission) { $tmp = array(); /* // First, load the sides from the mission $sides = $mission->getMap ()->getSideIds (); foreach ($sides as $v) { $tmp[$v] = new Dolumar_Underworld_Models_Side ($v); } */ // Now load all the clans $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\tunderworld_missions_clans\n\t\t\tWHERE\n\t\t\t\tum_id = {$mission->getId()}\n\t\t"); foreach ($data as $v) { if (!isset($tmp[$v['umc_side']])) { $tmp[$v['umc_side']] = new Dolumar_Underworld_Models_Side($v['umc_side']); } $clan = Dolumar_Players_Clan::getFromId($v['c_id']); $tmp[$v['umc_side']]->addClan($clan); } return array_values($tmp); }
private function makeClan($name) { $profile = Neuron_GameServer::getPlayer(); if ($profile) { $db = Neuron_Core_Database::__getInstance(); // Check for a clan with the same name $chk = $db->select('clans', array('c_id'), "c_name = '" . $db->escape($name) . "'"); if (count($chk) > 0) { $this->addError('name_duplicate'); return false; } else { $id = $db->insert('clans', array('c_name' => $name)); // Add yourself /* $db->insert ( 'clan_members', array ( 'plid' => $profile->getId (), 'c_id' => $id, 'c_status' => 'leader' ) ); */ $clan = Dolumar_Players_Clan::getFromId($id); $clan->doJoinClan($profile, 'leader'); return true; } } }