/** * method stay_mission * param $fleet_row * return the stay result */ public function stayMission($fleet_row) { if ($fleet_row['fleet_mess'] == 0) { if ($fleet_row['fleet_start_time'] <= time()) { $transport_check = parent::$db->queryFetch("SELECT pc1.`planet_user_id` AS start_id,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpc1.`planet_name` AS start_name,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpc2.`planet_user_id` AS target_id,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpc2.`planet_name` AS target_name\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . PLANETS . " AS pc1, " . PLANETS . " AS pc2\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE pc1.planet_ = '" . $fleet_row['fleet_start_galaxy'] . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpc1.`planet_system` = '" . $fleet_row['fleet_start_system'] . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpc1.`planet_planet` = '" . $fleet_row['fleet_start_planet'] . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpc1.`planet_type` = '" . $fleet_row['fleet_start_type'] . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpc2.`planet_galaxy` = '" . $fleet_row['fleet_end_galaxy'] . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpc2.`planet_system` = '" . $fleet_row['fleet_end_system'] . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpc2.`planet_planet` = '" . $fleet_row['fleet_end_planet'] . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpc2.`planet_type` = '" . $fleet_row['fleet_end_type'] . "'"); // SOME REQUIRED VALUES $start_name = $transport_check['start_id']; $start_owner_id = $transport_check['start_name']; $target_name = $transport_check['target_id']; $target_owner_id = $transport_check['target_name']; // DIFFERENT TYPES OF MESSAGES $message[1] = sprintf($this->_lang['sys_tran_mess_owner'], $target_name, FleetsLib::target_link($fleet_row, ''), $fleet_row['fleet_resource_metal'], $this->_lang['Metal'], $fleet_row['fleet_resource_crystal'], $this->_lang['Crystal'], $fleet_row['fleet_resource_deuterium'], $this->_lang['Deuterium']); $message[2] = sprintf($this->_lang['sys_tran_mess_user'], $start_name, FleetsLib::start_link($fleet_row, ''), $target_name, FleetsLib::target_link($fleet_row, ''), $fleet_row['fleet_resource_metal'], $this->_lang['Metal'], $fleet_row['fleet_resource_crystal'], $this->_lang['Crystal'], $fleet_row['fleet_resource_deuterium'], $this->_lang['Deuterium']); $message[3] = sprintf($this->_lang['sys_tran_mess_back'], $start_name, FleetsLib::start_link($fleet_row, '')); $this->stay_message($start_owner_id, $message[1], $fleet_row['fleet_start_time'], $this->_lang['sys_mess_transport']); $this->stay_message($target_owner_id, $message[2], $fleet_row['fleet_start_time'], $this->_lang['sys_mess_transport']); $this->start_stay($fleet_row['fleet_id']); } if ($fleet_row['fleet_end_stay'] <= time()) { parent::return_fleet($fleet_row['fleet_id']); } } if ($fleet_row['fleet_end_time'] < time()) { $this->stay_message($start_owner_id, $message, $fleet_row['fleet_end_time'], $this->_lang['sys_mess_fleetback']); parent::restore_fleet($fleet_row, TRUE); parent::remove_fleet($fleet_row['fleet_id']); } }
/** * method colonize_mission * param $fleet_row * return the colonization result */ public function colonizeMission($fleet_row) { if ($fleet_row['fleet_mess'] == 0) { $colonization_check = parent::$db->queryFetch("SELECT\n (SELECT COUNT(*)\n FROM " . PLANETS . " AS pc1\n WHERE pc1.`planet_user_id` = '" . $fleet_row['fleet_owner'] . "' AND\n pc1.`planet_type` = '1' AND\n pc1.`planet_destroyed` = '0') AS planet_count,\n (SELECT COUNT(*)\n FROM " . PLANETS . " AS pc2\n WHERE pc2.`planet_galaxy` = '" . $fleet_row['fleet_end_galaxy'] . "' AND\n pc2.`planet_system` = '" . $fleet_row['fleet_end_system'] . "' AND\n pc2.`planet_planet` = '" . $fleet_row['fleet_end_planet'] . " AND\n pc2.`planet_type` = 1') AS galaxy_count,\n (SELECT `research_astrophysics`\n FROM " . RESEARCH . "\n WHERE `research_user_id` = '" . $fleet_row['fleet_owner'] . "') AS astro_level"); // SOME REQUIRED VALUES $target_coords = sprintf($this->_lang['sys_adress_planet'], $fleet_row['fleet_end_galaxy'], $fleet_row['fleet_end_system'], $fleet_row['fleet_end_planet']); $max_colonies = FleetsLib::get_max_colonies($colonization_check['astro_level']); $planet_count = $colonization_check['planet_count'] - 1; // THE TOTAL AMOUNT OF PLANETS MINUS 1 (BECAUSE THE MAIN PLANET IT'S NOT CONSIDERED) // DIFFERENT TYPES OF MESSAGES $message[1] = $this->_lang['sys_colo_arrival'] . $target_coords . $this->_lang['sys_colo_maxcolo'] . ($max_colonies + 1) . $this->_lang['sys_colo_planet']; $message[2] = $this->_lang['sys_colo_arrival'] . $target_coords . $this->_lang['sys_colo_allisok']; $message[3] = $this->_lang['sys_colo_arrival'] . $target_coords . $this->_lang['sys_colo_notfree']; $message[4] = $this->_lang['sys_colo_arrival'] . $target_coords . $this->_lang['sys_colo_astro_level']; if ($colonization_check['galaxy_count'] == 0) { if ($planet_count >= $max_colonies) { $this->colonize_message($fleet_row['fleet_owner'], $message[1], $fleet_row['fleet_start_time']); parent::return_fleet($fleet_row['fleet_id']); } elseif (!$this->position_allowed($fleet_row['fleet_end_planet'], $colonization_check['astro_level'])) { $this->colonize_message($fleet_row['fleet_owner'], $message[4], $fleet_row['fleet_start_time']); parent::return_fleet($fleet_row['fleet_id']); } else { if ($this->start_creation($fleet_row)) { $this->colonize_message($fleet_row['fleet_owner'], $message[2], $fleet_row['fleet_start_time']); if ($fleet_row['fleet_amount'] == 1) { parent::$db->query("UPDATE " . USERS_STATISTICS . " AS us SET\n us.`user_statistic_ships_points` = us.`user_statistic_ships_points` - " . StatisticsLib::calculate_points(208, 1) . "\n WHERE us.`user_statistic_user_id` = (SELECT p.planet_user_id FROM " . PLANETS . " AS p\n WHERE p.planet_galaxy = '" . $fleet_row['fleet_start_galaxy'] . "' AND\n p.planet_system = '" . $fleet_row['fleet_start_system'] . "' AND\n p.planet_planet = '" . $fleet_row['fleet_start_planet'] . "' AND\n p.planet_type = '" . $fleet_row['fleet_start_type'] . "');"); parent::store_resources($fleet_row); parent::remove_fleet($fleet_row['fleet_id']); } else { parent::store_resources($fleet_row); parent::$db->query("UPDATE " . FLEETS . ", " . USERS_STATISTICS . " SET\n `fleet_array` = '" . $this->build_new_fleet($fleet_row['fleet_array']) . "',\n `fleet_amount` = `fleet_amount` - 1,\n `fleet_resource_metal` = '0',\n `fleet_resource_crystal` = '0',\n `fleet_resource_deuterium` = '0',\n `fleet_mess` = '1',\n `user_statistic_ships_points` = `user_statistic_ships_points` - " . StatisticsLib::calculate_points(208, 1) . "\n WHERE `fleet_id` = '" . $fleet_row['fleet_id'] . "' AND\n `user_statistic_user_id` = (SELECT planet_user_id FROM " . PLANETS . "\n WHERE planet_galaxy = '" . $fleet_row['fleet_start_galaxy'] . "' AND\n planet_system = '" . $fleet_row['fleet_start_system'] . "' AND\n planet_planet = '" . $fleet_row['fleet_start_planet'] . "' AND\n planet_type = '" . $fleet_row['fleet_start_type'] . "');"); } } else { $this->colonize_message($fleet_row['fleet_owner'], $message[3], $fleet_row['fleet_end_time']); parent::return_fleet($fleet_row['fleet_id']); } } } else { $this->colonize_message($fleet_row['fleet_owner'], $message[3], $fleet_row['fleet_end_time']); parent::return_fleet($fleet_row['fleet_id']); } } if ($fleet_row['fleet_end_time'] < time()) { parent::restore_fleet($fleet_row, TRUE); parent::remove_fleet($fleet_row['fleet_id']); } }
/** * method hazard_nothing * param $fleet_row * return the nothing hazard result */ private function hazard_nothing($fleet_row) { $this->expedition_message($fleet_row['fleet_owner'], $message, $fleet_row['fleet_end_stay'], $this->_lang['sys_expe_nothing_' . mt_rand(1, 2)]); parent::return_fleet($fleet_row['fleet_id']); }
/** * attackMission * * @param array $fleet_row Fleet row * * @return void */ public function attackMission($fleet_row) { // null == use default handlers $errorHandler = null; $exceptionHandler = null; $target_planet = parent::$db->queryFetch("SELECT *\n FROM " . PLANETS . " AS p\n INNER JOIN " . BUILDINGS . " AS b ON b.building_planet_id = p.`planet_id`\n INNER JOIN " . SHIPS . " AS s ON s.ship_planet_id = p.`planet_id`\n INNER JOIN " . DEFENSES . " AS d ON d.defense_planet_id = p.`planet_id`\n WHERE `planet_galaxy` = " . (int) $fleet_row['fleet_end_galaxy'] . " AND\n `planet_system` = " . (int) $fleet_row['fleet_end_system'] . " AND\n `planet_type` = " . (int) $fleet_row['fleet_end_type'] . " AND\n `planet_planet` = " . (int) $fleet_row['fleet_end_planet'] . ";"); if ($fleet_row['fleet_mess'] == 0 && $fleet_row['fleet_start_time'] <= time()) { // require several stuff require XGP_ROOT . VENDOR_PATH . 'battle_engine' . DIRECTORY_SEPARATOR . 'utils' . DIRECTORY_SEPARATOR . 'includer.php'; // require language implementation require XGP_ROOT . LIB_PATH . 'missions' . DIRECTORY_SEPARATOR . 'attackLang.php'; // set language for the reports LangManager::getInstance()->setImplementation(new AttackLang($this->_lang)); if ($fleet_row['fleet_group'] > 0) { parent::$db->query("DELETE FROM `" . ACS_FLEETS . "`\n WHERE `acs_fleet_id` = '" . (int) $fleet_row['fleet_group'] . "'"); parent::$db->query("UPDATE `" . FLEETS . "` SET\n `fleet_mess` = '1'\n WHERE `fleet_group` = '" . $fleet_row['fleet_group'] . "'"); } else { parent::return_fleet($fleet_row['fleet_id']); } $targetUser = parent::$db->queryFetch("SELECT u.*,\n r.*,\n pr.*\n FROM " . USERS . " AS u\n INNER JOIN " . RESEARCH . " AS r ON r.research_user_id = u.user_id\n INNER JOIN " . PREMIUM . " AS pr ON pr.premium_user_id = u.user_id\n WHERE u.user_id = '" . intval($target_planet['planet_user_id']) . "';"); $target_userID = $targetUser['user_id']; UpdateResourcesLib::updateResources($targetUser, $target_planet, time()); //----------------------- prepare players for battle ---------------------- // attackers fleet sum $attackers = new PlayerGroup(); // If we have a ACS attack if ($fleet_row['fleet_group'] != 0) { $fleets = parent::$db->queryFetch("SELECT * FROM `" . FLEETS . "` WHERE `fleet_group` = '" . $fleet_row['fleet_group'] . "';"); $attackers = $this->getPlayerGroupFromQuery($fleets); } else { $attackers = $this->getPlayerGroup($fleet_row); } // defenders fleet sum $def = parent::$db->query("SELECT * FROM `" . FLEETS . "` \n WHERE `fleet_end_galaxy` = '" . $fleet_row['fleet_end_galaxy'] . "' AND \n `fleet_end_system` = '" . $fleet_row['fleet_end_system'] . "' AND \n `fleet_end_type` = '" . $fleet_row['fleet_end_type'] . "' AND \n `fleet_end_planet` = '" . $fleet_row['fleet_end_planet'] . "' AND\n `fleet_start_time` < '" . time() . "' AND \n `fleet_end_stay` >= '" . time() . "';"); $defenders = $this->getPlayerGroupFromQuery($def, $targetUser); //defenses sum $homeFleet = new HomeFleet(0); for ($i = self::DEFENSE_MIN_ID; $i < self::DEFENSE_MAX_ID; $i++) { if (isset($this->_resource[$i]) && isset($target_planet[$this->_resource[$i]])) { if ($target_planet[$this->_resource[$i]] != 0) { $homeFleet->addShipType($this->getShipType($i, $target_planet[$this->_resource[$i]])); } } } for ($i = self::SHIP_MIN_ID; $i < self::SHIP_MAX_ID; $i++) { if (isset($this->_resource[$i]) && isset($target_planet[$this->_resource[$i]])) { if ($target_planet[$this->_resource[$i]] != 0) { $homeFleet->addShipType($this->getShipType($i, $target_planet[$this->_resource[$i]])); } } } if (!$defenders->existPlayer($target_userID)) { $player = new Player($target_userID, array($homeFleet)); $player->setTech($targetUser['research_weapons_technology'], $targetUser['research_shielding_technology'], $targetUser['research_armour_technology']); $player->setName($targetUser['user_name']); $defenders->addPlayer($player); } else { $defenders->getPlayer($target_userID)->addDefense($homeFleet); } //------------------------------------------------------------------------- //------------------------------ battle ----------------------------------- $battle = new Battle($attackers, $defenders); $startBattle = DebugManager::runDebugged(array($battle, 'startBattle'), $errorHandler, $exceptionHandler); $startBattle(); //------------------------------------------------------------------------- //-------------------------- after battle stuff --------------------------- $report = $battle->getReport(); $steal = $this->updateAttackers($report->getPresentationAttackersFleetOnRound('START'), $report->getAfterBattleAttackers(), $target_planet); $report->setSteal($steal); $this->updateDefenders($report->getPresentationDefendersFleetOnRound('START'), $report->getAfterBattleDefenders(), $target_planet, $steal); $this->updateDebris($fleet_row, $report); $this->updateMoon($fleet_row, $report, '', $target_userID, $target_planet); $this->sendMessage($fleet_row, $report); } elseif ($fleet_row['fleet_end_time'] <= time()) { $message = sprintf($this->_lang['sys_fleet_won'], $target_planet['planet_name'], FleetsLib::target_link($fleet_row, ''), FormatLib::pretty_number($fleet_row['fleet_resource_metal']), $this->_lang['Metal'], FormatLib::pretty_number($fleet_row['fleet_resource_crystal']), $this->_lang['Crystal'], FormatLib::pretty_number($fleet_row['fleet_resource_deuterium']), $this->_lang['Deuterium']); FunctionsLib::send_message($fleet_row['fleet_owner'], '', $fleet_row['fleet_end_time'], 1, $this->_lang['sys_mess_tower'], $this->_lang['sys_mess_fleetback'], $message); parent::restore_fleet($fleet_row); parent::remove_fleet($fleet_row['fleet_id']); } }
/** * method spy_mission * param $fleet_row * return the spy result */ public function spyMission($fleet_row) { if ($fleet_row['fleet_mess'] == 0 && $fleet_row['fleet_start_time'] <= time()) { $current_data = parent::$db->queryFetch("SELECT p.planet_name, p.planet_galaxy, p.planet_system, p.planet_planet, u.user_name, r.research_espionage_technology, pr.premium_officier_technocrat\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . PLANETS . " AS p\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . USERS . " AS u ON u.user_id = p.planet_user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . PREMIUM . " AS pr ON pr.premium_user_id = p.planet_user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . RESEARCH . " AS r ON r.research_user_id = p.planet_user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE p.`planet_galaxy` = " . $fleet_row['fleet_start_galaxy'] . " AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tp.`planet_system` = " . $fleet_row['fleet_start_system'] . " AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tp.`planet_planet` = " . $fleet_row['fleet_start_planet'] . " AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tp.`planet_type` = " . $fleet_row['fleet_start_type'] . ";"); $target_data = parent::$db->queryFetch("SELECT p.`planet_id`, p.planet_user_id, p.planet_name, p.planet_galaxy, p.planet_system, p.planet_planet, p.planet_metal, p.planet_crystal, p.planet_deuterium, p.planet_energy_max, s.*, d.*, b.*, r.*, pr.premium_officier_technocrat\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM " . PLANETS . " AS p\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . SHIPS . " AS s ON s.ship_planet_id = p.`planet_id`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . DEFENSES . " AS d ON d.defense_planet_id = p.`planet_id`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . BUILDINGS . " AS b ON b.building_planet_id = p.`planet_id`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . USERS . " AS u ON u.user_id = p.planet_user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . PREMIUM . " AS pr ON pr.premium_user_id = p.planet_user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN " . RESEARCH . " AS r ON r.research_user_id = p.planet_user_id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE p.`planet_galaxy` = '" . $fleet_row['fleet_end_galaxy'] . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tp.`planet_system` = '" . $fleet_row['fleet_end_system'] . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tp.`planet_planet` = '" . $fleet_row['fleet_end_planet'] . "' AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tp.`planet_type` = '" . $fleet_row['fleet_end_type'] . "';"); $CurrentSpyLvl = OfficiersLib::getMaxEspionage($current_data['research_espionage_technology'], $current_data['premium_officier_technocrat']); $TargetSpyLvl = OfficiersLib::getMaxEspionage($target_data['research_espionage_technology'], $target_data['premium_officier_technocrat']); $fleet = explode(';', $fleet_row['fleet_array']); $fquery = ''; parent::make_update($fleet_row, $fleet_row['fleet_end_galaxy'], $fleet_row['fleet_end_system'], $fleet_row['fleet_end_planet'], $fleet_row['fleet_end_type']); foreach ($fleet as $a => $b) { if ($b != '') { $a = explode(",", $b); if ($a[0] == "210") { $LS = $a[1]; $SpyToolDebris = $LS * 300; $MaterialsInfo = $this->spy_target($target_data, 0, $this->_lang['sys_spy_maretials']); $Materials = $MaterialsInfo['String']; $PlanetFleetInfo = $this->spy_target($target_data, 1, $this->_lang['sys_spy_fleet']); $PlanetFleet = $Materials; $PlanetFleet .= $PlanetFleetInfo['String']; $PlanetDefenInfo = $this->spy_target($target_data, 2, $this->_lang['sys_spy_defenses']); $PlanetDefense = $PlanetFleet; $PlanetDefense .= $PlanetDefenInfo['String']; $PlanetBuildInfo = $this->spy_target($target_data, 3, $this->_lang['tech'][0]); $PlanetBuildings = $PlanetDefense; $PlanetBuildings .= $PlanetBuildInfo['String']; $TargetTechnInfo = $this->spy_target($target_data, 4, $this->_lang['tech'][100]); $TargetTechnos = $PlanetBuildings; $TargetTechnos .= $TargetTechnInfo['String']; $TargetForce = $PlanetFleetInfo['Count'] * $LS / 4; if ($TargetForce > 100) { $TargetForce = 100; } $TargetChances = mt_rand(0, $TargetForce); $SpyerChances = mt_rand(0, 100); if ($TargetChances >= $SpyerChances) { $DestProba = "<font color=\"red\">" . $this->_lang['sys_mess_spy_destroyed'] . "</font>"; } elseif ($TargetChances < $SpyerChances) { $DestProba = sprintf($this->_lang['sys_mess_spy_lostproba'], $TargetChances); } $AttackLink = "<center>"; $AttackLink .= "<a href=\"game.php?page=fleet1&galaxy=" . $fleet_row['fleet_end_galaxy'] . "&system=" . $fleet_row['fleet_end_system'] . ""; $AttackLink .= "&planet=" . $fleet_row['fleet_end_planet'] . "&planettype=" . $fleet_row['fleet_end_type'] . ""; $AttackLink .= "&target_mission=1"; $AttackLink .= " \">" . $this->_lang['type_mission'][1] . ""; $AttackLink .= "</a></center>"; $MessageEnd = "<center>" . $DestProba . "</center>"; $spionage_difference = abs($CurrentSpyLvl - $TargetSpyLvl); if ($TargetSpyLvl >= $CurrentSpyLvl) { $ST = pow($spionage_difference, 2); $resources = 1; $fleet = $ST + 2; $defense = $ST + 3; $buildings = $ST + 5; $tech = $ST + 7; } if ($CurrentSpyLvl > $TargetSpyLvl) { $ST = pow($spionage_difference, 2) * -1; $resources = 1; $fleet = $ST + 2; $defense = $ST + 3; $buildings = $ST + 5; $tech = $ST + 7; } if ($resources <= $LS) { $SpyMessage = $Materials . "<br />" . $AttackLink . $MessageEnd; } if ($fleet <= $LS) { $SpyMessage = $PlanetFleet . "<br />" . $AttackLink . $MessageEnd; } if ($defense <= $LS) { $SpyMessage = $PlanetDefense . "<br />" . $AttackLink . $MessageEnd; } if ($buildings <= $LS) { $SpyMessage = $PlanetBuildings . "<br />" . $AttackLink . $MessageEnd; } if ($tech <= $LS) { $SpyMessage = $TargetTechnos . "<br />" . $AttackLink . $MessageEnd; } FunctionsLib::send_message($fleet_row['fleet_owner'], '', $fleet_row['fleet_start_time'], 0, $this->_lang['sys_mess_qg'], $this->_lang['sys_mess_spy_report'], $SpyMessage); $TargetMessage = $this->_lang['sys_mess_spy_ennemyfleet'] . " " . $current_data['planet_name']; $TargetMessage .= " <a href=\"game.php?page=galaxy&mode=3&galaxy=" . $current_data['planet_galaxy'] . "&system=" . $current_data['planet_system'] . "\">"; $TargetMessage .= "[" . $current_data['planet_galaxy'] . ":" . $current_data['planet_system'] . ":" . $current_data['planet_planet'] . "]</a> (" . $current_data['user_name'] . ") "; $TargetMessage .= $this->_lang['sys_mess_spy_seen_at'] . " " . $target_data['planet_name']; $TargetMessage .= " <a href=\"game.php?page=galaxy&mode=3&galaxy=" . $target_data['planet_galaxy'] . "&system=" . $target_data['planet_system'] . "\">"; $TargetMessage .= "[" . $target_data['planet_galaxy'] . ":" . $target_data['planet_system'] . ":" . $target_data['planet_planet'] . "]</a>."; FunctionsLib::send_message($target_data['planet_user_id'], '', $fleet_row['fleet_start_time'], 0, $this->_lang['sys_mess_spy_control'], $this->_lang['sys_mess_spy_activity'], $TargetMessage . ' ' . sprintf($this->_lang['sys_mess_spy_lostproba'], $TargetChances)); if ($TargetChances >= $SpyerChances) { parent::$db->query("UPDATE " . PLANETS . " SET\n\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_invisible_start_time` = '" . time() . "',\n\t\t\t\t\t\t\t\t\t\t\t\t\t`planet_debris_crystal` = `planet_debris_crystal` + '" . (0 + $SpyToolDebris) . "'\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE `planet_id` = '" . $target_data['id'] . "';"); parent::remove_fleet($fleet_row['fleet_id']); } else { parent::return_fleet($fleet_row['fleet_id']); } } } } } elseif ($fleet_row['fleet_mess'] == 1 && $fleet_row['fleet_end_time'] <= time()) { parent::restore_fleet($fleet_row, TRUE); parent::remove_fleet($fleet_row['fleet_id']); } }