/src/2.10.2/upload/includes/classes/class.FlyingFleetHandler.php
PHP | 2284 lines | 1976 code | 296 blank | 12 comment | 274 complexity | 6c07d6ba1b7b91b1ae72f1eb1191cebe MD5 | raw file
Large files files are truncated, but you can click here to view the full file
- <?php
-
- /**
- * @project XG Proyect
- * @version 2.10.x build 0000
- * @copyright Copyright (C) 2008 - 2012
- */
-
- if (!defined('INSIDE'))die(header("location:../../"));
-
- class FlyingFleetHandler
- {
- public static function calculateAKSSteal($attackFleets, $defenderPlanet, $ForSim = FALSE)
- {
- //Steal-Math by Slaver for 2Moons(http://www.titanspace.org) based on http://www.owiki.de/Beute
- global $pricelist, $db;
-
- $SortFleets = array();
-
- foreach ($attackFleets as $FleetID => $Attacker)
- {
- foreach($Attacker['detail'] as $Element => $amount)
- {
- if ($Element != 210) //fix probos capacity in attack by jstar
- $SortFleets[$FleetID] += $pricelist[$Element]['capacity'] * $amount;
- }
-
- $SortFleets[$FleetID] -= $Attacker['fleet']['fleet_resource_metal'] - $Attacker['fleet']['fleet_resource_crystal'] - $Attacker['fleet']['fleet_resource_deuterium'];
- }
-
- $Sumcapacity = array_sum($SortFleets);
- //FIX JTSAMPER
- $booty['deuterium'] = min($Sumcapacity / 3, ($defenderPlanet['deuterium'] / 2));
- $Sumcapacity -= $booty['deuterium'];
-
- $booty['crystal'] = min(($Sumcapacity / 2), ($defenderPlanet['crystal'] / 2));
- $Sumcapacity -= $booty['crystal'];
-
- $booty['metal'] = min(($Sumcapacity ), ($defenderPlanet['metal'] / 2));
- $Sumcapacity -= $booty['metal'];
-
-
- $oldMetalBooty = $booty['crystal'] ;
- $booty['crystal'] += min(($Sumcapacity /2 ), max((($defenderPlanet['crystal']) / 2) - $booty['crystal'], 0));
-
- $Sumcapacity += $oldMetalBooty - $booty['crystal'] ;
-
- $booty['metal'] += min(($Sumcapacity ), max(($defenderPlanet['metal'] / 2) - $booty['metal'], 0));
-
-
- $booty['metal'] = max($booty['metal'] ,0);
- $booty['crystal'] = max($booty['crystal'] ,0);
- $booty['deuterium'] = max($booty['deuterium'] ,0);
- //END FIX
-
- $steal = array_map('floor', $booty);
- if($ForSim)
- return $steal;
-
- $AllCapacity = array_sum($SortFleets);
- $QryUpdateFleet = "";
-
- if ( $AllCapacity != 0 )
- {
- foreach($SortFleets as $FleetID => $Capacity)
- {
- $QryUpdateFleet = 'UPDATE {{table}} SET ';
- $QryUpdateFleet .= '`fleet_resource_metal` = `fleet_resource_metal` + '.Format::float_to_string($steal['metal'] * ($Capacity / $AllCapacity)).', ';
- $QryUpdateFleet .= '`fleet_resource_crystal` = `fleet_resource_crystal` +'.Format::float_to_string($steal['crystal'] * ($Capacity / $AllCapacity)).', ';
- $QryUpdateFleet .= '`fleet_resource_deuterium` = `fleet_resource_deuterium` +'.Format::float_to_string($steal['deuterium'] * ($Capacity / $AllCapacity)).' ';
- $QryUpdateFleet .= 'WHERE fleet_id = '.$FleetID.' ';
- $QryUpdateFleet .= 'LIMIT 1;';
- doquery($QryUpdateFleet, 'fleets');
-
- }
- }
- else
- {
- $steal = 0;
- }
-
- return $steal;
- }
-
- private function SpyTarget ($TargetPlanet, $Mode, $TitleString)
- {
- global $lang, $resource;
-
- $LookAtLoop = TRUE;
- if ($Mode == 0)
- {
- $String = "<table width=\"440\"><tr><td class=\"c\" colspan=\"5\">";
- $String .= $TitleString ." ". $TargetPlanet['name'];
- $String .= " <a href=\"game.php?page=galaxy&mode=3&galaxy=". $TargetPlanet["galaxy"] ."&system=". $TargetPlanet["system"]. "\">";
- $String .= "[". $TargetPlanet["galaxy"] .":". $TargetPlanet["system"] .":". $TargetPlanet["planet"] ."]</a>";
- $String .= $lang['sys_the'] . date("d-m-Y H:i:s", time()) ."</td>";
- $String .= "</tr><tr>";
- $String .= "<td width=220>". $lang['Metal'] ."</td><td width=220 align=right>". Format::pretty_number($TargetPlanet['metal']) ."</td><td> </td>";
- $String .= "<td width=220>". $lang['Crystal'] ."</td></td><td width=220 align=right>". Format::pretty_number($TargetPlanet['crystal']) ."</td>";
- $String .= "</tr><tr>";
- $String .= "<td width=220>". $lang['Deuterium'] ."</td><td width=220 align=right>". Format::pretty_number($TargetPlanet['deuterium']) ."</td><td> </td>";
- $String .= "<td width=220>". $lang['Energy'] ."</td><td width=220 align=right>". Format::pretty_number($TargetPlanet['energy_max']) ."</td>";
- $String .= "</tr>";
- $LookAtLoop = FALSE;
- }
- elseif ($Mode == 1)
- {
- $ResFrom[0] = 200;
- $ResTo[0] = 299;
- $Loops = 1;
- }
- elseif ($Mode == 2)
- {
- $ResFrom[0] = 400;
- $ResTo[0] = 499;
- $ResFrom[1] = 500;
- $ResTo[1] = 599;
- $Loops = 2;
- }
- elseif ($Mode == 3)
- {
- $ResFrom[0] = 1;
- $ResTo[0] = 99;
- $Loops = 1;
- }
- elseif ($Mode == 4)
- {
- $ResFrom[0] = 100;
- $ResTo[0] = 199;
- $Loops = 1;
- }
-
- if ($LookAtLoop == TRUE)
- {
- $String = "<table width=\"440\" cellspacing=\"1\"><tr><td class=\"c\" colspan=\"". ((2 * SPY_REPORT_ROW) + (SPY_REPORT_ROW - 1))."\">". $TitleString ."</td></tr>";
- $Count = 0;
- $CurrentLook = 0;
- while ($CurrentLook < $Loops)
- {
- $row = 0;
- for ($Item = $ResFrom[$CurrentLook]; $Item <= $ResTo[$CurrentLook]; $Item++)
- {
- if ( $TargetPlanet[$resource[$Item]] > 0)
- {
- if ($row == 0)
- $String .= "<tr>";
-
- $String .= "<td align=left>".$lang['tech'][$Item]."</td><td align=right>".$TargetPlanet[$resource[$Item]]."</td>";
- if ($row < SPY_REPORT_ROW - 1)
- $String .= "<td> </td>";
-
- $Count += $TargetPlanet[$resource[$Item]];
- $row++;
- if ($row == SPY_REPORT_ROW)
- {
- $String .= "</tr>";
- $row = 0;
- }
- }
- }
-
- while ($row != 0)
- {
- $String .= "<td> </td><td> </td>";
- $row++;
- if ($row == SPY_REPORT_ROW)
- {
- $String .= "</tr>";
- $row = 0;
- }
- }
- $CurrentLook++;
- }
- }
- $String .= "</table>";
-
- $return['String'] = $String;
- $return['Count'] = $Count;
-
- return $return;
- }
-
- private function walka ($CurrentSet, $TargetSet, $CurrentTechno, $TargetTechno)
- {
- global $pricelist, $CombatCaps, $user;
-
- $runda = array();
- $atakujacy_n = array();
- $wrog_n = array();
-
- if (!is_null($CurrentSet))
- {
- $atakujacy_zlom_poczatek['metal'] = 0;
- $atakujacy_zlom_poczatek['crystal'] = 0;
- foreach($CurrentSet as $a => $b)
- {
- $atakujacy_zlom_poczatek['metal'] = $atakujacy_zlom_poczatek['metal'] + $CurrentSet[$a]['count'] * $pricelist[$a]['metal'];
- $atakujacy_zlom_poczatek['crystal'] = $atakujacy_zlom_poczatek['crystal'] + $CurrentSet[$a]['count'] * $pricelist[$a]['crystal'];
- }
- }
-
- $wrog_zlom_poczatek['metal'] = 0;
- $wrog_zlom_poczatek['crystal'] = 0;
- $wrog_poczatek = $TargetSet;
-
- if (!is_null($TargetSet))
- {
- foreach($TargetSet as $a => $b)
- {
- if ($a < 300)
- {
- $wrog_zlom_poczatek['metal'] = $wrog_zlom_poczatek['metal'] + $TargetSet[$a]['count'] * $pricelist[$a]['metal'];
- $wrog_zlom_poczatek['crystal'] = $wrog_zlom_poczatek['crystal'] + $TargetSet[$a]['count'] * $pricelist[$a]['crystal'];
- }
- else
- {
- $wrog_zlom_poczatek_obrona['metal'] = $wrog_zlom_poczatek_obrona['metal'] + $TargetSet[$a]['count'] * $pricelist[$a]['metal'];
- $wrog_zlom_poczatek_obrona['crystal'] = $wrog_zlom_poczatek_obrona['crystal'] + $TargetSet[$a]['count'] * $pricelist[$a]['crystal'];
- }
- }
- }
-
- for ($i = 1; $i <= 7; $i++)
- {
- $atakujacy_atak = 0;
- $wrog_atak = 0;
- $atakujacy_obrona = 0;
- $wrog_obrona = 0;
- $atakujacy_ilosc = 0;
- $wrog_ilosc = 0;
- $wrog_tarcza = 0;
- $atakujacy_tarcza = 0;
-
- if (!is_null($CurrentSet))
- {
- foreach($CurrentSet as $a => $b)
- {
- $CurrentSet[$a]["obrona"] = $CurrentSet[$a]['count'] * ($pricelist[$a]['metal'] + $pricelist[$a]['crystal']) / 10 * (1 + (0.1 * ($CurrentTechno["defence_tech"])));
- $rand = rand(80, 120) / 100;
- $CurrentSet[$a]["tarcza"] = $CurrentSet[$a]['count'] * $CombatCaps[$a]['shield'] * (1 + (0.1 * $CurrentTechno["shield_tech"])) * $rand;
- $atak_statku = $CombatCaps[$a]['attack'];
- $technologie = (1 + (0.1 * $CurrentTechno["military_tech"]));
- $rand = rand(80, 120) / 100;
- $ilosc = $CurrentSet[$a]['count'];
- $CurrentSet[$a]["atak"] = $ilosc * $atak_statku * $technologie * $rand;
- $atakujacy_atak = $atakujacy_atak + $CurrentSet[$a]["atak"];
- $atakujacy_obrona = $atakujacy_obrona + $CurrentSet[$a]["obrona"];
- $atakujacy_ilosc = $atakujacy_ilosc + $CurrentSet[$a]['count'];
- }
- }
- else
- {
- $atakujacy_ilosc = 0;
- break;
- }
-
- if (!is_null($TargetSet))
- {
- foreach($TargetSet as $a => $b)
- {
- $TargetSet[$a]["obrona"] = $TargetSet[$a]['count'] * ($pricelist[$a]['metal'] + $pricelist[$a]['crystal']) / 10 * (1 + (0.1 * ($TargetTechno["defence_tech"])));
- $rand = rand(80, 120) / 100;
- $TargetSet[$a]["tarcza"] = $TargetSet[$a]['count'] * $CombatCaps[$a]['shield'] * (1 + (0.1 * $TargetTechno["shield_tech"])) * $rand;
- $atak_statku = $CombatCaps[$a]['attack'];
- $technologie = (1 + (0.1 * $TargetTechno["military_tech"]));
- $rand = rand(80, 120) / 100;
- $ilosc = $TargetSet[$a]['count'];
- $TargetSet[$a]["atak"] = $ilosc * $atak_statku * $technologie * $rand;
- $wrog_atak = $wrog_atak + $TargetSet[$a]["atak"];
- $wrog_obrona = $wrog_obrona + $TargetSet[$a]["obrona"];
- $wrog_ilosc = $wrog_ilosc + $TargetSet[$a]['count'];
- }
- }
- else
- {
- $wrog_ilosc = 0;
- $runda[$i]["atakujacy"] = $CurrentSet;
- $runda[$i]["wrog"] = $TargetSet;
- $runda[$i]["atakujacy"]["atak"] = $atakujacy_atak;
- $runda[$i]["wrog"]["atak"] = $wrog_atak;
- $runda[$i]["atakujacy"]['count'] = $atakujacy_ilosc;
- $runda[$i]["wrog"]['count'] = $wrog_ilosc;
- break;
- }
-
- $runda[$i]["atakujacy"] = $CurrentSet;
- $runda[$i]["wrog"] = $TargetSet;
- $runda[$i]["atakujacy"]["atak"] = $atakujacy_atak;
- $runda[$i]["wrog"]["atak"] = $wrog_atak;
- $runda[$i]["atakujacy"]['count'] = $atakujacy_ilosc;
- $runda[$i]["wrog"]['count'] = $wrog_ilosc;
-
- if (($atakujacy_ilosc == 0) or ($wrog_ilosc == 0))
- break;
-
- foreach($CurrentSet as $a => $b)
- {
- if ($atakujacy_ilosc > 0)
- {
- $wrog_moc = $CurrentSet[$a]['count'] * $wrog_atak / $atakujacy_ilosc;
- if ($CurrentSet[$a]["tarcza"] < $wrog_moc)
- {
- $max_zdjac = floor($CurrentSet[$a]['count'] * $wrog_ilosc / $atakujacy_ilosc);
- $wrog_moc = $wrog_moc - $CurrentSet[$a]["tarcza"];
- $atakujacy_tarcza = $atakujacy_tarcza + $CurrentSet[$a]["tarcza"];
- $ile_zdjac = floor(($wrog_moc / (($pricelist[$a]['metal'] + $pricelist[$a]['crystal']) / 10)));
-
- if ($ile_zdjac > $max_zdjac)
- $ile_zdjac = $max_zdjac;
- $atakujacy_n[$a]['count'] = ceil($CurrentSet[$a]['count'] - $ile_zdjac);
-
- if ($atakujacy_n[$a]['count'] <= 0)
- $atakujacy_n[$a]['count'] = 0;
- }
- else
- {
- $atakujacy_n[$a]['count'] = $CurrentSet[$a]['count'];
- $atakujacy_tarcza = $atakujacy_tarcza + $wrog_moc;
- }
- }
- else
- {
- $atakujacy_n[$a]['count'] = $CurrentSet[$a]['count'];
- $atakujacy_tarcza = $atakujacy_tarcza + $wrog_moc;
- }
- }
-
- foreach($TargetSet as $a => $b)
- {
- if ($wrog_ilosc > 0)
- {
- $atakujacy_moc = $TargetSet[$a]['count'] * $atakujacy_atak / $wrog_ilosc;
- if ($TargetSet[$a]["tarcza"] < $atakujacy_moc)
- {
- $max_zdjac = floor($TargetSet[$a]['count'] * $atakujacy_ilosc / $wrog_ilosc);
- $atakujacy_moc = $atakujacy_moc - $TargetSet[$a]["tarcza"];
- $wrog_tarcza = $wrog_tarcza + $TargetSet[$a]["tarcza"];
-
- $ile_zdjac = floor(($atakujacy_moc / (($pricelist[$a]['metal'] + $pricelist[$a]['crystal']) / 10)));
-
- if ($ile_zdjac > $max_zdjac)
- $ile_zdjac = $max_zdjac;
-
- $wrog_n[$a]['count'] = ceil($TargetSet[$a]['count'] - $ile_zdjac);
-
- if ($wrog_n[$a]['count'] <= 0)
- $wrog_n[$a]['count'] = 0;
- }
- else
- {
- $wrog_n[$a]['count'] = $TargetSet[$a]['count'];
- $wrog_tarcza = $wrog_tarcza + $atakujacy_moc;
- }
- }
- else
- {
- $wrog_n[$a]['count'] = $TargetSet[$a]['count'];
- $wrog_tarcza = $wrog_tarcza + $atakujacy_moc;
- }
- }
-
- foreach($CurrentSet as $a => $b)
- {
- foreach ($CombatCaps[$a]['sd'] as $c => $d)
- {
- if (isset($TargetSet[$c]))
- {
- $wrog_n[$c]['count'] = $wrog_n[$c]['count'] - floor($d * rand(50, 100) / 100);
- if ($wrog_n[$c]['count'] <= 0)
- $wrog_n[$c]['count'] = 0;
- }
- }
- }
-
- foreach($TargetSet as $a => $b)
- {
- foreach ($CombatCaps[$a]['sd'] as $c => $d)
- {
- if (isset($CurrentSet[$c]))
- {
- $atakujacy_n[$c]['count'] = $atakujacy_n[$c]['count'] - floor($d * rand(50, 100) / 100);
- if ($atakujacy_n[$c]['count'] <= 0)
- $atakujacy_n[$c]['count'] = 0;
- }
- }
- }
-
- $runda[$i]["atakujacy"]["tarcza"] = $atakujacy_tarcza;
- $runda[$i]["wrog"]["tarcza"] = $wrog_tarcza;
- $TargetSet = $wrog_n;
- $CurrentSet = $atakujacy_n;
- }
-
- if (($atakujacy_ilosc == 0) or ($wrog_ilosc == 0))
- {
- if (($atakujacy_ilosc == 0) and ($wrog_ilosc == 0))
- $wygrana = "r";
- else
- if ($atakujacy_ilosc == 0)
- $wygrana = "w";
- else
- $wygrana = "a";
- }
- else
- {
- $i = sizeof($runda);
- $runda[$i]["atakujacy"] = $CurrentSet;
- $runda[$i]["wrog"] = $TargetSet;
- $runda[$i]["atakujacy"]["atak"] = $atakujacy_atak;
- $runda[$i]["wrog"]["atak"] = $wrog_atak;
- $runda[$i]["atakujacy"]['count'] = $atakujacy_ilosc;
- $runda[$i]["wrog"]['count'] = $wrog_ilosc;
- $wygrana = "r";
- }
-
- $atakujacy_zlom_koniec['metal'] = 0;
- $atakujacy_zlom_koniec['crystal'] = 0;
- if (!is_null($CurrentSet))
- {
- foreach($CurrentSet as $a => $b)
- {
- $atakujacy_zlom_koniec['metal'] = $atakujacy_zlom_koniec['metal'] + $CurrentSet[$a]['count'] * $pricelist[$a]['metal'];
- $atakujacy_zlom_koniec['crystal'] = $atakujacy_zlom_koniec['crystal'] + $CurrentSet[$a]['count'] * $pricelist[$a]['crystal'];
- }
- }
-
- $wrog_zlom_koniec['metal'] = 0;
- $wrog_zlom_koniec['crystal'] = 0;
- if (!is_null($TargetSet))
- {
- foreach($TargetSet as $a => $b)
- {
- if ($a < 300)
- {
- $wrog_zlom_koniec['metal'] = $wrog_zlom_koniec['metal'] + $TargetSet[$a]['count'] * $pricelist[$a]['metal'];
- $wrog_zlom_koniec['crystal'] = $wrog_zlom_koniec['crystal'] + $TargetSet[$a]['count'] * $pricelist[$a]['crystal'];
- }
- else
- {
- $wrog_zlom_koniec_obrona['metal'] = $wrog_zlom_koniec_obrona['metal'] + $TargetSet[$a]['count'] * $pricelist[$a]['metal'];
- $wrog_zlom_koniec_obrona['crystal'] = $wrog_zlom_koniec_obrona['crystal'] + $TargetSet[$a]['count'] * $pricelist[$a]['crystal'];
- }
- }
- }
- $ilosc_wrog = 0;
- $straty_obrona_wrog = 0;
-
- if (!is_null($TargetSet))
- {
- foreach($TargetSet as $a => $b)
- {
- if ($a > 300)
- {
- $straty_obrona_wrog = $straty_obrona_wrog + (($wrog_poczatek[$a]['count'] - $TargetSet[$a]['count']) * ($pricelist[$a]['metal'] + $pricelist[$a]['crystal']));
- $TargetSet[$a]['count'] = $TargetSet[$a]['count'] + (($wrog_poczatek[$a]['count'] - $TargetSet[$a]['count']) * rand(60, 80) / 100);
- $ilosc_wrog = $ilosc_wrog + $TargetSet[$a]['count'];
- }
- }
- }
-
- if (($ilosc_wrog > 0) && ($atakujacy_ilosc == 0))
- $wygrana = "w";
-
- $game_fleet_cdr = read_config ( 'fleet_cdr' );
- $game_def_cdr = read_config ( 'defs_cdr' );
-
- $zlom['metal'] = ((($atakujacy_zlom_poczatek['metal'] - $atakujacy_zlom_koniec['metal']) + ($wrog_zlom_poczatek['metal'] - $wrog_zlom_koniec['metal'])) * ($game_fleet_cdr / 100));
- $zlom['crystal'] = ((($atakujacy_zlom_poczatek['crystal'] - $atakujacy_zlom_koniec['crystal']) + ($wrog_zlom_poczatek['crystal'] - $wrog_zlom_koniec['crystal'])) * ($game_fleet_cdr / 100));
-
- $zlom['metal'] += ((($atakujacy_zlom_poczatek['metal'] - $atakujacy_zlom_koniec['metal']) + ($wrog_zlom_poczatek['metal'] - $wrog_zlom_koniec['metal'])) * ($game_def_cdr / 100));
- $zlom['crystal'] += ((($atakujacy_zlom_poczatek['crystal'] - $atakujacy_zlom_koniec['crystal']) + ($wrog_zlom_poczatek['crystal'] - $wrog_zlom_koniec['crystal'])) * ($game_def_cdr / 100));
-
- $zlom["atakujacy"] = (($atakujacy_zlom_poczatek['metal'] - $atakujacy_zlom_koniec['metal']) + ($atakujacy_zlom_poczatek['crystal'] - $atakujacy_zlom_koniec['crystal']));
- $zlom["wrog"] = (($wrog_zlom_poczatek['metal'] - $wrog_zlom_koniec['metal']) + ($wrog_zlom_poczatek['crystal'] - $wrog_zlom_koniec['crystal']) + $straty_obrona_wrog);
-
- return array("atakujacy" => $CurrentSet, "wrog" => $TargetSet, "wygrana" => $wygrana, "dane_do_rw" => $runda, "zlom" => $zlom);
- }
-
- private function RestoreFleetToPlanet ($FleetRow, $Start = TRUE)
- {
- global $resource;
-
- //fix resource by jstar
- $targetPlanet = doquery("SELECT * FROM {{table}} WHERE `galaxy` = ". intval($FleetRow['fleet_start_galaxy']) ." AND `system` = ". intval($FleetRow['fleet_start_system']) ." AND `planet_type` = ". intval($FleetRow['fleet_start_type']) ." AND `planet` = ". intval($FleetRow['fleet_start_planet']) .";",'planets', TRUE);
- $targetUser = doquery('SELECT * FROM {{table}} WHERE id='.intval($targetPlanet['id_owner']),'users', TRUE);
- PlanetResourceUpdate ( $targetUser, $targetPlanet, time() );
- //
-
- $FleetRecord = explode(";", $FleetRow['fleet_array']);
- $QryUpdFleet = "";
- foreach ($FleetRecord as $Item => $Group)
- {
- if ($Group != '')
- {
- $Class = explode (",", $Group);
- $QryUpdFleet .= "`". $resource[$Class[0]] ."` = `".$resource[$Class[0]]."` + '".$Class[1]."', \n";
- }
- }
-
- $QryUpdatePlanet = "UPDATE {{table}} SET ";
- if ($QryUpdFleet != "")
- $QryUpdatePlanet .= $QryUpdFleet;
-
- $QryUpdatePlanet .= "`metal` = `metal` + '". $FleetRow['fleet_resource_metal'] ."', ";
- $QryUpdatePlanet .= "`crystal` = `crystal` + '". $FleetRow['fleet_resource_crystal'] ."', ";
- $QryUpdatePlanet .= "`deuterium` = `deuterium` + '". $FleetRow['fleet_resource_deuterium'] ."' ";
- $QryUpdatePlanet .= "WHERE ";
-
- if ($Start == TRUE)
- {
- $QryUpdatePlanet .= "`galaxy` = '". $FleetRow['fleet_start_galaxy'] ."' AND ";
- $QryUpdatePlanet .= "`system` = '". $FleetRow['fleet_start_system'] ."' AND ";
- $QryUpdatePlanet .= "`planet` = '". $FleetRow['fleet_start_planet'] ."' AND ";
- $QryUpdatePlanet .= "`planet_type` = '". $FleetRow['fleet_start_type'] ."' ";
- }
- else
- {
- $QryUpdatePlanet .= "`galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
- $QryUpdatePlanet .= "`system` = '". $FleetRow['fleet_end_system'] ."' AND ";
- $QryUpdatePlanet .= "`planet` = '". $FleetRow['fleet_end_planet'] ."' AND ";
- $QryUpdatePlanet .= "`planet_type` = '". $FleetRow['fleet_end_type'] ."' ";
- }
- $QryUpdatePlanet .= "LIMIT 1;";
- doquery( $QryUpdatePlanet, 'planets');
- }
-
- private function StoreGoodsToPlanet ($FleetRow, $Start = FALSE)
- {
-
- //fix resource by jstar
- $targetPlanet = doquery("SELECT * FROM {{table}} WHERE `galaxy` = ". intval($FleetRow['fleet_start_galaxy']) ." AND `system` = ". intval($FleetRow['fleet_start_system']) ." AND `planet_type` = ". intval($FleetRow['fleet_start_type']) ." AND `planet` = ". intval($FleetRow['fleet_start_planet']) .";",'planets', TRUE);
- $targetUser = doquery('SELECT * FROM {{table}} WHERE id='.intval($targetPlanet['id_owner']),'users', TRUE);
- PlanetResourceUpdate ( $targetUser, $targetPlanet, time() );
- //
-
- $QryUpdatePlanet = "UPDATE {{table}} SET ";
- $QryUpdatePlanet .= "`metal` = `metal` + '". $FleetRow['fleet_resource_metal'] ."', ";
- $QryUpdatePlanet .= "`crystal` = `crystal` + '". $FleetRow['fleet_resource_crystal'] ."', ";
- $QryUpdatePlanet .= "`deuterium` = `deuterium` + '". $FleetRow['fleet_resource_deuterium'] ."' ";
- $QryUpdatePlanet .= "WHERE ";
-
- if ($Start == TRUE)
- {
- $QryUpdatePlanet .= "`galaxy` = '". $FleetRow['fleet_start_galaxy'] ."' AND ";
- $QryUpdatePlanet .= "`system` = '". $FleetRow['fleet_start_system'] ."' AND ";
- $QryUpdatePlanet .= "`planet` = '". $FleetRow['fleet_start_planet'] ."' AND ";
- $QryUpdatePlanet .= "`planet_type` = '". $FleetRow['fleet_start_type'] ."' ";
- }
- else
- {
- $QryUpdatePlanet .= "`galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
- $QryUpdatePlanet .= "`system` = '". $FleetRow['fleet_end_system'] ."' AND ";
- $QryUpdatePlanet .= "`planet` = '". $FleetRow['fleet_end_planet'] ."' AND ";
- $QryUpdatePlanet .= "`planet_type` = '". $FleetRow['fleet_end_type'] ."' ";
- }
-
- $QryUpdatePlanet .= "LIMIT 1;";
- doquery( $QryUpdatePlanet, 'planets');
- }
-
- private function MissionCaseAttack ($FleetRow)
- {
- global $pricelist, $lang, $resource, $CombatCaps, $user;
-
- if ($FleetRow['fleet_mess'] == 0 && $FleetRow['fleet_start_time'] <= time())
- {
- $targetPlanet = doquery("SELECT * FROM {{table}} WHERE `galaxy` = ". intval($FleetRow['fleet_end_galaxy']) ." AND `system` = ". intval($FleetRow['fleet_end_system']) ." AND `planet_type` = ". intval($FleetRow['fleet_end_type']) ." AND `planet` = ". intval($FleetRow['fleet_end_planet']) .";",'planets', TRUE);
-
- if ($FleetRow['fleet_group'] > 0)
- {
- doquery("DELETE FROM {{table}} WHERE id =".intval($FleetRow['fleet_group']),'aks');
- doquery("UPDATE {{table}} SET fleet_mess=1 WHERE fleet_group=".$FleetRow['fleet_group'],'fleets');
- }
- else
- {
- doquery("UPDATE {{table}} SET fleet_mess=1 WHERE fleet_id=".intval($FleetRow['fleet_id']),'fleets');
- }
-
- $targetGalaxy = doquery('SELECT * FROM {{table}} WHERE `galaxy` = '. intval($FleetRow['fleet_end_galaxy']) .' AND `system` = '. intval($FleetRow['fleet_end_system']) .' AND `planet` = '. intval($FleetRow['fleet_end_planet']) .';','galaxy', TRUE);
- $targetUser = doquery('SELECT * FROM {{table}} WHERE id='.intval($targetPlanet['id_owner']),'users', TRUE);
-
- PlanetResourceUpdate ( $targetUser, $targetPlanet, time() );
-
- $targetGalaxy = doquery('SELECT * FROM {{table}} WHERE `galaxy` = '. intval($FleetRow['fleet_end_galaxy']) .' AND `system` = '. intval($FleetRow['fleet_end_system']) .' AND `planet` = '. intval($FleetRow['fleet_end_planet']) .';','galaxy', TRUE);
- $targetUser = doquery('SELECT * FROM {{table}} WHERE id='.intval($targetPlanet['id_owner']),'users', TRUE);
-
- $TargetUserID = $targetUser['id'];
- $attackFleets = array();
-
- if ($FleetRow['fleet_group'] != 0)
- {
- $fleets = doquery('SELECT * FROM {{table}} WHERE fleet_group='.$FleetRow['fleet_group'],'fleets');
- while ($fleet = mysql_fetch_assoc($fleets))
- {
- $attackFleets[$fleet['fleet_id']]['fleet'] = $fleet;
- $attackFleets[$fleet['fleet_id']]['user'] = doquery('SELECT * FROM {{table}} WHERE id ='.intval($fleet['fleet_owner']),'users', TRUE);
- $attackFleets[$fleet['fleet_id']]['detail'] = array();
- $temp = explode(';', $fleet['fleet_array']);
- foreach ($temp as $temp2)
- {
- $temp2 = explode(',', $temp2);
-
- if ($temp2[0] < 100) continue;
-
- if (!isset($attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]]))
- $attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]] = 0;
-
- $attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]] += $temp2[1];
- }
- }
-
- }
- else
- {
- $attackFleets[$FleetRow['fleet_id']]['fleet'] = $FleetRow;
- $attackFleets[$FleetRow['fleet_id']]['user'] = doquery('SELECT * FROM {{table}} WHERE id='.intval($FleetRow['fleet_owner']),'users', TRUE);
- $attackFleets[$FleetRow['fleet_id']]['detail'] = array();
- $temp = explode(';', $FleetRow['fleet_array']);
- foreach ($temp as $temp2)
- {
- $temp2 = explode(',', $temp2);
-
- if ($temp2[0] < 100) continue;
-
- if (!isset($attackFleets[$FleetRow['fleet_id']]['detail'][$temp2[0]]))
- $attackFleets[$FleetRow['fleet_id']]['detail'][$temp2[0]] = 0;
-
- $attackFleets[$FleetRow['fleet_id']]['detail'][$temp2[0]] += $temp2[1];
- }
- }
- $defense = array();
-
- $def = doquery('SELECT * FROM {{table}} WHERE `fleet_end_galaxy` = '. intval($FleetRow['fleet_end_galaxy']) .' AND `fleet_end_system` = '. intval($FleetRow['fleet_end_system']) .' AND `fleet_end_type` = '. intval($FleetRow['fleet_end_type']) .' AND `fleet_end_planet` = '. intval($FleetRow['fleet_end_planet']) .' AND fleet_start_time<'.time().' AND fleet_end_stay>='.time(),'fleets');
- while ($defRow = mysql_fetch_assoc($def))
- {
- $defRowDef = explode(';', $defRow['fleet_array']);
- foreach ($defRowDef as $Element)
- {
- $Element = explode(',', $Element);
-
- if ($Element[0] < 100) continue;
-
- if (!isset($defense[$defRow['fleet_id']]['def'][$Element[0]]))
- $defense[$defRow['fleet_id']][$Element[0]] = 0;
-
- $defense[$defRow['fleet_id']]['def'][$Element[0]] += $Element[1];
- $defense[$defRow['fleet_id']]['user'] = doquery('SELECT * FROM {{table}} WHERE id='.intval($defRow['fleet_owner']),'users', TRUE);
- }
- }
-
- $defense[0]['def'] = array();
- $defense[0]['user'] = $targetUser;
- for ($i = 200; $i < 500; $i++)
- {
- if (isset($resource[$i]) && isset($targetPlanet[$resource[$i]]))
- {
- $defense[0]['def'][$i] = $targetPlanet[$resource[$i]];
- }
- }
- $start = microtime(TRUE);
- $result = calculateAttack($attackFleets, $defense);
- $totaltime = microtime(TRUE) - $start;
-
- $QryUpdateGalaxy = "UPDATE {{table}} SET ";
- $QryUpdateGalaxy .= "`invisible_start_time` = '".time()."', ";
- $QryUpdateGalaxy .= "`metal` = `metal` +'".($result['debree']['att'][0]+$result['debree']['def'][0]) . "', ";
- $QryUpdateGalaxy .= "`crystal` = `crystal` + '" .($result['debree']['att'][1]+$result['debree']['def'][1]). "' ";
- $QryUpdateGalaxy .= "WHERE ";
- $QryUpdateGalaxy .= "`galaxy` = '" . intval($FleetRow['fleet_end_galaxy']) . "' AND ";
- $QryUpdateGalaxy .= "`system` = '" . intval($FleetRow['fleet_end_system']) . "' AND ";
- $QryUpdateGalaxy .= "`planet` = '" . intval($FleetRow['fleet_end_planet']) . "' ";
- $QryUpdateGalaxy .= "LIMIT 1;";
- doquery($QryUpdateGalaxy , 'galaxy');
-
- $totalDebree = $result['debree']['def'][0] + $result['debree']['def'][1] + $result['debree']['att'][0] + $result['debree']['att'][1];
-
- $steal = array('metal' => 0, 'crystal' => 0, 'deuterium' => 0);
-
- if ($result['won'] == "a")
- {
- $steal = self::calculateAKSSteal($attackFleets, $targetPlanet);
- }
-
- foreach ($attackFleets as $fleetID => $attacker)
- {
- $fleetArray = '';
- $totalCount = 0;
- foreach ($attacker['detail'] as $element => $amount)
- {
- if ($amount)
- $fleetArray .= $element.','.$amount.';';
-
- $totalCount += $amount;
- }
-
- if ($totalCount <= 0)
- {
- doquery ('DELETE FROM {{table}} WHERE `fleet_id`='.intval($fleetID),'fleets');
- }
- else
- {
- doquery ('UPDATE {{table}} SET fleet_array="'.substr($fleetArray, 0, -1).'", fleet_amount='.$totalCount.', fleet_mess=1 WHERE fleet_id='.intval($fleetID),'fleets');
- }
- }
-
- foreach ($defense as $fleetID => $defender)
- {
- if ($fleetID != 0)
- {
- $fleetArray = '';
- $totalCount = 0;
-
- foreach ($defender['def'] as $element => $amount)
- {
- if ($amount) $fleetArray .= $element.','.$amount.';';
- $totalCount += $amount;
- }
-
- if ($totalCount <= 0)
- {
- doquery ('DELETE FROM {{table}} WHERE `fleet_id`='.intval($fleetID),'fleets');
-
- }
- else
- {
- doquery("UPDATE {{table}} SET fleet_array='$fleetArray', fleet_amount='$totalCount' WHERE fleet_id='$fleetID'",'fleets');
- }
-
- }
- else
- {
- $fleetArray = '';
- $totalCount = 0;
-
- foreach ($defender['def'] as $element => $amount)
- {
- $fleetArray .= '`'.$resource[$element].'`='.$amount.', ';
- }
-
- $QryUpdateTarget = "UPDATE {{table}} SET ";
- $QryUpdateTarget .= $fleetArray;
- $QryUpdateTarget .= "`metal` = `metal` - '". $steal['metal'] ."', ";
- $QryUpdateTarget .= "`crystal` = `crystal` - '". $steal['crystal'] ."', ";
- $QryUpdateTarget .= "`deuterium` = `deuterium` - '". $steal['deuterium'] ."' ";
- $QryUpdateTarget .= "WHERE ";
- $QryUpdateTarget .= "`galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
- $QryUpdateTarget .= "`system` = '". $FleetRow['fleet_end_system'] ."' AND ";
- $QryUpdateTarget .= "`planet` = '". $FleetRow['fleet_end_planet'] ."' AND ";
- $QryUpdateTarget .= "`planet_type` = '". $FleetRow['fleet_end_type'] ."' ";
- $QryUpdateTarget .= "LIMIT 1;";
- doquery( $QryUpdateTarget , 'planets');
- }
- }
-
- $FleetDebris = $result['debree']['att'][0] + $result['debree']['def'][0] + $result['debree']['att'][1] + $result['debree']['def'][1];
- $StrAttackerUnits = sprintf ($lang['sys_attacker_lostunits'], $result['lost']['att']);
- $StrDefenderUnits = sprintf ($lang['sys_defender_lostunits'], $result['lost']['def']);
- $StrRuins = sprintf ($lang['sys_gcdrunits'], $result['debree']['def'][0] + $result['debree']['att'][0], $lang['Metal'], $result['debree']['def'][1] + $result['debree']['att'][1], $lang['Crystal']);
- $DebrisField = $StrAttackerUnits ."<br />". $StrDefenderUnits ."<br />". $StrRuins;
- $MoonChance = $FleetDebris / 100000;
-
- if($FleetDebris > 2000000)
- {
- $MoonChance = 20;
- $UserChance = mt_rand(1, 100);
- $ChanceMoon = sprintf ($lang['sys_moonproba'], $MoonChance);
- }
- elseif($FleetDebris < 100000)
- {
- $UserChance = 0;
- $ChanceMoon = sprintf ($lang['sys_moonproba'], $MoonChance);
- }
- elseif($FleetDebris >= 100000)
- {
- $UserChance = mt_rand(1, 100);
- $ChanceMoon = sprintf ($lang['sys_moonproba'], $MoonChance);
- }
-
- if (($UserChance > 0) && ($UserChance <= $MoonChance) && ($targetGalaxy['id_luna'] == 0))
- {
- $TargetPlanetName = CreateOneMoonRecord ( $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet'], $TargetUserID, $FleetRow['fleet_start_time'], '', $MoonChance );
- $GottenMoon = sprintf ($lang['sys_moonbuilt'], $TargetPlanetName, $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet']);
- $GottenMoon .= "<br />";
- }
- elseif ($UserChance = 0 or $UserChance > $MoonChance)
- {
- $GottenMoon = "";
- }
-
- $formatted_cr = formatCR($result,$steal,$MoonChance,$GottenMoon,$totaltime);
- $raport = $formatted_cr['html'];
-
-
- $rid = md5($raport);
- $QryInsertRapport = 'INSERT INTO {{table}} SET ';
- $QryInsertRapport .= '`time` = UNIX_TIMESTAMP(), ';
-
- foreach ($attackFleets as $fleetID => $attacker)
- {
- $users2[$attacker['user']['id']] = $attacker['user']['id'];
- }
-
- foreach ($defense as $fleetID => $defender)
- {
- $users2[$defender['user']['id']] = $defender['user']['id'];
- }
-
- $QryInsertRapport .= '`owners` = "'.implode(',', $users2).'", ';
- $QryInsertRapport .= '`rid` = "'. $rid .'", ';
- $QryInsertRapport .= '`a_zestrzelona` = "'.$formatted_cr['destroyed'].'", ';
- $QryInsertRapport .= '`raport` = "'. mysql_escape_string( $raport ) .'"';
- doquery($QryInsertRapport,'rw') or die("Error inserting CR to database".mysql_error()."<br /><br />Trying to execute:".mysql_query());
-
- if($result['won'] == "a")
- {
- $style = "green";
- }
- elseif ($result['won'] == "w")
- {
- $style = "orange";
- }
- elseif ($result['won'] == "r")
- {
- $style = "red";
- }
-
- $raport = "<a href=\"#\" style=\"color:".$style.";\" OnClick=\'f(\"CombatReport.php?raport=". $rid ."\", \"\");\' >" . $lang['sys_mess_attack_report'] ." [". $FleetRow['fleet_end_galaxy'] .":". $FleetRow['fleet_end_system'] .":". $FleetRow['fleet_end_planet'] ."]</a>";
-
- SendSimpleMessage ( $FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $raport, '' );
-
- if($result['won'] == "a")
- {
- $style = "red";
- }
- elseif ($result['won'] == "w")
- {
- $style = "orange";
- }
- elseif ($result['won'] == "r")
- {
- $style = "green";
- }
-
- $raport2 = "<a href=\"#\" style=\"color:".$style.";\" OnClick=\'f(\"CombatReport.php?raport=". $rid ."\", \"\");\' >" . $lang['sys_mess_attack_report'] ." [". $FleetRow['fleet_end_galaxy'] .":". $FleetRow['fleet_end_system'] .":". $FleetRow['fleet_end_planet'] ."]</a>";
-
- foreach ($users2 as $id)
- {
- if ($id != $FleetRow['fleet_owner'] && $id != 0)
- {
- SendSimpleMessage ( $id, '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $raport2, '' );
- }
- }
- }
- elseif ($FleetRow['fleet_end_time'] <= time())
- {
- $Message = sprintf( $lang['sys_fleet_won'],
- $TargetName, GetTargetAdressLink($FleetRow, ''),
- Format::pretty_number($FleetRow['fleet_resource_metal']), $lang['Metal'],
- Format::pretty_number($FleetRow['fleet_resource_crystal']), $lang['Crystal'],
- Format::pretty_number($FleetRow['fleet_resource_deuterium']), $lang['Deuterium'] );
- SendSimpleMessage ( $FleetRow['fleet_owner'], '', $FleetRow['fleet_end_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_fleetback'], $Message);
- $this->RestoreFleetToPlanet($FleetRow);
- doquery ('DELETE FROM {{table}} WHERE `fleet_id`='.intval($FleetRow['fleet_id']),'fleets');
- }
- }
-
- private function MissionCaseACS($FleetRow)
- {
- global $pricelist, $lang, $resource, $CombatCaps;
-
- if ($FleetRow['fleet_mess'] == 0 && $FleetRow['fleet_start_time'] > time())
- {
- $QryUpdateFleet = "UPDATE {{table}} SET `fleet_mess` = '1' WHERE `fleet_id` = '". intval($FleetRow['fleet_id']) ."' LIMIT 1 ;";
- doquery( $QryUpdateFleet, 'fleets');
- }
- elseif ($FleetRow['fleet_end_time'] <= time())
- {
- $this->RestoreFleetToPlanet($FleetRow);
- doquery ('DELETE FROM {{table}} WHERE `fleet_id`='.intval($FleetRow['fleet_id']),'fleets');
- }
- }
-
- private function MissionCaseTransport ( $FleetRow )
- {
- global $lang;
-
- $QryStartPlanet = "SELECT * FROM {{table}} ";
- $QryStartPlanet .= "WHERE ";
- $QryStartPlanet .= "`galaxy` = '". $FleetRow['fleet_start_galaxy'] ."' AND ";
- $QryStartPlanet .= "`system` = '". $FleetRow['fleet_start_system'] ."' AND ";
- $QryStartPlanet .= "`planet` = '". $FleetRow['fleet_start_planet'] ."' AND ";
- $QryStartPlanet .= "`planet_type` = '". $FleetRow['fleet_start_type'] ."';";
- $StartPlanet = doquery( $QryStartPlanet, 'planets', TRUE);
- $StartName = $StartPlanet['name'];
- $StartOwner = $StartPlanet['id_owner'];
-
- $QryTargetPlanet = "SELECT * FROM {{table}} ";
- $QryTargetPlanet .= "WHERE ";
- $QryTargetPlanet .= "`galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
- $QryTargetPlanet .= "`system` = '". $FleetRow['fleet_end_system'] ."' AND ";
- $QryTargetPlanet .= "`planet` = '". $FleetRow['fleet_end_planet'] ."' AND ";
- $QryTargetPlanet .= "`planet_type` = '". $FleetRow['fleet_end_type'] ."';";
- $TargetPlanet = doquery( $QryTargetPlanet, 'planets', TRUE);
- $TargetName = $TargetPlanet['name'];
- $TargetOwner = $TargetPlanet['id_owner'];
-
- if ($FleetRow['fleet_mess'] == 0)
- {
- if ($FleetRow['fleet_start_time'] < time())
- {
- $this->StoreGoodsToPlanet ($FleetRow, FALSE);
- $Message = sprintf( $lang['sys_tran_mess_owner'],
- $TargetName, GetTargetAdressLink($FleetRow, ''),
- $FleetRow['fleet_resource_metal'], $lang['Metal'],
- $FleetRow['fleet_resource_crystal'], $lang['Crystal'],
- $FleetRow['fleet_resource_deuterium'], $lang['Deuterium'] );
-
- SendSimpleMessage ( $StartOwner, '', $FleetRow['fleet_start_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_transport'], $Message);
- if ($TargetOwner <> $StartOwner)
- {
- $Message = sprintf( $lang['sys_tran_mess_user'],
- $StartName, GetStartAdressLink($FleetRow, ''),
- $TargetName, GetTargetAdressLink($FleetRow, ''),
- $FleetRow['fleet_resource_metal'], $lang['Metal'],
- $FleetRow['fleet_resource_crystal'], $lang['Crystal'],
- $FleetRow['fleet_resource_deuterium'], $lang['Deuterium'] );
- SendSimpleMessage ( $TargetOwner, '', $FleetRow['fleet_start_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_transport'], $Message);
- }
-
- $QryUpdateFleet = "UPDATE {{table}} SET ";
- $QryUpdateFleet .= "`fleet_resource_metal` = '0' , ";
- $QryUpdateFleet .= "`fleet_resource_crystal` = '0' , ";
- $QryUpdateFleet .= "`fleet_resource_deuterium` = '0' , ";
- $QryUpdateFleet .= "`fleet_mess` = '1' ";
- $QryUpdateFleet .= "WHERE `fleet_id` = '". intval($FleetRow['fleet_id']) ."' ";
- $QryUpdateFleet .= "LIMIT 1 ;";
- doquery( $QryUpdateFleet, 'fleets');
- }
- }
- else
- {
- if ($FleetRow['fleet_end_time'] < time())
- {
- $Message = sprintf ($lang['sys_tran_mess_back'], $StartName, GetStartAdressLink($FleetRow, ''));
- SendSimpleMessage ( $StartOwner, '', $FleetRow['fleet_end_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_fleetback'], $Message);
- $this->RestoreFleetToPlanet ( $FleetRow, TRUE );
- doquery("DELETE FROM {{table}} WHERE fleet_id=" . $FleetRow["fleet_id"], 'fleets');
- }
- }
- }
-
- private function MissionCaseStay($FleetRow)
- {
- global $lang, $resource;
-
- if ($FleetRow['fleet_mess'] == 0)
- {
- if ($FleetRow['fleet_start_time'] <= time())
- {
- $QryGetTargetPlanet = "SELECT * FROM {{table}} ";
- $QryGetTargetPlanet .= "WHERE ";
- $QryGetTargetPlanet .= "`galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
- $QryGetTargetPlanet .= "`system` = '". $FleetRow['fleet_end_system'] ."' AND ";
- $QryGetTargetPlanet .= "`planet` = '". $FleetRow['fleet_end_planet'] ."' AND ";
- $QryGetTargetPlanet .= "`planet_type` = '". $FleetRow['fleet_end_type'] ."';";
- $TargetPlanet = doquery( $QryGetTargetPlanet, 'planets', TRUE);
- $TargetUserID = $TargetPlanet['id_owner'];
-
- $TargetAdress = sprintf ($lang['sys_adress_planet'], $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet']);
- $TargetAddedGoods = sprintf ($lang['sys_stay_mess_goods'],
- $lang['Metal'], Format::pretty_number($FleetRow['fleet_resource_metal']),
- $lang['Crystal'], Format::pretty_number($FleetRow['fleet_resource_crystal']),
- $lang['Deuterium'], Format::pretty_number($FleetRow['fleet_resource_deuterium']));
-
- $TargetMessage = $lang['sys_stay_mess_start'] ."<a href=\"game.php?page=galaxy&mode=3&galaxy=". $FleetRow['fleet_end_galaxy'] ."&system=". $FleetRow['fleet_end_system'] ."\">";
- $TargetMessage .= $TargetAdress. "</a>". $lang['sys_stay_mess_end'] ."<br />". $TargetAddedGoods;
-
- SendSimpleMessage ( $TargetUserID, '', $FleetRow['fleet_start_time'], 5, $lang['sys_mess_qg'], $lang['sys_stay_mess_stay'], $TargetMessage);
- $this->RestoreFleetToPlanet ( $FleetRow, FALSE );
- doquery("DELETE FROM {{table}} WHERE `fleet_id` = '". $FleetRow["fleet_id"] ."';", 'fleets');
- }
- }
- else
- {
- if ($FleetRow['fleet_end_time'] <= time())
- {
- $TargetAdress = sprintf ($lang['sys_adress_planet'], $FleetRow['fleet_start_galaxy'], $FleetRow['fleet_start_system'], $FleetRow['fleet_start_planet']);
- $TargetAddedGoods = sprintf ($lang['sys_stay_mess_goods'],
- $lang['Metal'], Format::pretty_number($FleetRow['fleet_resource_metal']),
- $lang['Crystal'], Format::pretty_number($FleetRow['fleet_resource_crystal']),
- $lang['Deuterium'], Format::pretty_number($FleetRow['fleet_resource_deuterium']));
-
- $TargetMessage = $lang['sys_stay_mess_back'] ."<a href=\"game.php?page=galaxy&mode=3&galaxy=". $FleetRow['fleet_start_galaxy'] ."&system=". $FleetRow['fleet_start_system'] ."\">";
- $TargetMessage .= $TargetAdress. "</a>". $lang['sys_stay_mess_bend'] ."<br />". $TargetAddedGoods;
-
- SendSimpleMessage ( $FleetRow['fleet_owner'], '', $FleetRow['fleet_end_time'], 5, $lang['sys_mess_qg'], $lang['sys_mess_fleetback'], $TargetMessage);
- $this->RestoreFleetToPlanet ( $FleetRow, TRUE );
- doquery("DELETE FROM {{table}} WHERE `fleet_id` = '". $FleetRow["fleet_id"] ."';", 'fleets');
- }
- }
- }
-
- private function MissionCaseStayAlly($FleetRow)
- {
- global $lang;
-
- $QryStartPlanet = "SELECT * FROM {{table}} ";
- $QryStartPlanet .= "WHERE ";
- $QryStartPlanet .= "`galaxy` = '". $FleetRow['fleet_start_galaxy'] ."' AND ";
- $QryStartPlanet .= "`system` = '". $FleetRow['fleet_start_system'] ."' AND ";
- $QryStartPlanet .= "`planet` = '". $FleetRow['fleet_start_planet'] ."';";
- $StartPlanet = doquery( $QryStartPlanet, 'planets', TRUE);
- $StartName = $StartPlanet['name'];
- $StartOwner = $StartPlanet['id_owner'];
-
- $QryTargetPlanet = "SELECT * FROM {{table}} ";
- $QryTargetPlanet .= "WHERE ";
- $QryTargetPlanet .= "`galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
- $QryTargetPlanet .= "`system` = '". $FleetRow['fleet_end_system'] ."' AND ";
- $QryTargetPlanet .= "`planet` = '". $FleetRow['fleet_end_planet'] ."';";
- $TargetPlanet = doquery( $QryTargetPlanet, 'planets', TRUE);
- $TargetName = $TargetPlanet['name'];
- $TargetOwner = $TargetPlanet['id_owner'];
-
- if ($FleetRow['fleet_mess'] == 0)
- {
- if ($FleetRow['fleet_start_time'] <= time())
- {
- $Message = sprintf($lang['sys_tran_mess_owner'], $TargetName, GetTargetAdressLink($FleetRow, ''),
- $FleetRow['fleet_resource_metal'], $lang['Metal'],
- $FleetRow['fleet_resource_crystal'], $lang['Crystal'],
- $FleetRow['fleet_resource_deuterium'], $lang['Deuterium'] );
-
- SendSimpleMessage ($StartOwner, '',$FleetRow['fleet_start_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_transport'], $Message);
-
- $Message = sprintf( $lang['sys_tran_mess_user'], $StartName, GetStartAdressLink($FleetRow, ''),
- $TargetName, GetTargetAdressLink($FleetRow, ''),
- $FleetRow['fleet_resource_metal'], $lang['Metal'],
- $FleetRow['fleet_resource_crystal'], $lang['Crystal'],
- $FleetRow['fleet_resource_deuterium'], $lang['Deuterium'] );
-
- SendSimpleMessage ($TargetOwner, '',$FleetRow['fleet_start_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_transport'], $Message);
-
- $QryUpdateFleet = "UPDATE {{table}} SET ";
- $QryUpdateFleet .= "`fleet_mess` = 2 ";
- $QryUpdateFleet .= "WHERE `fleet_id` = '". intval($FleetRow['fleet_id']) ."' ";
- $QryUpdateFleet .= "LIMIT 1 ;";
- doquery( $QryUpdateFleet, 'fleets');
-
- }
- elseif($FleetRow['fleet_end_stay'] <= time())
- {
- $QryUpdateFleet = "UPDATE {{table}} SET ";
- $QryUpdateFleet .= "`fleet_mess` = 1 ";
- $QryUpdateFleet .= "WHERE `fleet_id` = '". intval($FleetRow['fleet_id']) ."' ";
- $QryUpdateFleet .= "LIMIT 1 ;";
- doquery( $QryUpdateFleet, 'fleets');
- }
- }
- else
- {
- if ($FleetRow['fleet_end_time'] < time())
- {
- $Message = sprintf ($lang['sys_tran_mess_back'], $StartName, GetStartAdressLink($FleetRow, ''));
- SendSimpleMessage ( $StartOwner, '', $FleetRow['fleet_end_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_fleetback'], $Message);
- $this->RestoreFleetToPlanet ( $FleetRow, TRUE );
- doquery("DELETE FROM {{table}} WHERE fleet_id=" . $FleetRow["fleet_id"], 'fleets');
- }
- }
- }
-
- private function MissionCaseSpy($FleetRow)
- {
- global $lang, $resource;
-
- if ($FleetRow['fleet_start_time'] <= time())
- {
- $CurrentUser = doquery("SELECT * FROM {{table}} WHERE `id` = '".$FleetRow['fleet_owner']."';", 'users', TRUE);
- $CurrentUserID = $FleetRow['fleet_owner'];
- $QryGetTargetPlanet = "SELECT * FROM {{table}} ";
- $QryGetTargetPlanet .= "WHERE ";
- $QryGetTargetPlanet .= "`galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
- $QryGetTargetPlanet .= "`system` = '". $FleetRow['fleet_end_system'] ."' AND ";
- $QryGetTargetPlanet .= "`planet` = '". $FleetRow['fleet_end_planet'] ."' AND ";
- $QryGetTargetPlanet .= "`planet_type` = '". $FleetRow['fleet_end_type'] ."';";
- $TargetPlanet = doquery( $QryGetTargetPlanet, 'planets', TRUE);
- $TargetUserID = $TargetPlanet['id_owner'];
- $CurrentPlanet = doquery("SELECT * FROM {{table}} WHERE `galaxy` = '".$FleetRow['fleet_start_galaxy']."' AND `system` = '".$FleetRow['fleet_start_system']."' AND `planet` = '".$FleetRow['fleet_start_planet']."';", 'planets', TRUE);
- $CurrentSpyLvl = $CurrentUser['spy_tech'] + ($CurrentUser['rpg_technocrate'] * TECHNOCRATE_SPY);
- $TargetUser = doquery("SELECT * FROM {{table}} WHERE `id` = '".$TargetUserID."';", 'users', TRUE);
- $TargetSpyLvl = $TargetUser['spy_tech'] + ($TargetUser['rpg_technocrate'] * TECHNOCRATE_SPY);
- $fleet = explode(";", $FleetRow['fleet_array']);
- $fquery = "";
-
- PlanetResourceUpdate ( $TargetUser, $TargetPlanet, time() );
-
- foreach ($fleet as $a => $b)
- {
- if ($b != '')
- {
- $a = explode(",", $b);
- $fquery .= "{$resource[$a[0]]}={$resource[$a[0]]} + {$a[1]}, \n";
- if ($FleetRow["fleet_mess"] != "1" && $a[0] == "210")
- {
- $LS = $a[1];
- $QryTargetGalaxy = "SELECT * FROM {{table}} WHERE ";
- $QryTargetGalaxy .= "`galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
- $QryTargetGalaxy .= "`system` = '". $FleetRow['fleet_end_system'] ."' AND ";
- $QryTargetGalaxy .= "`planet` = '". $FleetRow['fleet_end_planet'] ."';";
- $TargetGalaxy = doquery( $QryTargetGalaxy, 'galaxy', TRUE);
- $CristalDebris = $TargetGalaxy['crystal'];
- $SpyToolDebris = $LS * 300;
-
- $MaterialsInfo = $this->SpyTarget ( $TargetPlanet, 0, $lang['sys_spy_maretials'] );
- $Materials = $MaterialsInfo['String'];
-
- $PlanetFleetInfo = $this->SpyTarget ( $TargetPlanet, 1, $lang['sys_spy_fleet'] );
- $PlanetFleet = $Materials;
- $PlanetFleet .= $PlanetFleetInfo['String'];
-
- $PlanetDefenInfo = $this->SpyTarget ( $TargetPlanet, 2, $lang['sys_spy_defenses'] );
- $PlanetDefense = $PlanetFleet;
- $PlanetDefense .= $PlanetDefenInfo['String'];
-
- $PlanetBuildInfo = $this->SpyTarget ( $TargetPlanet, 3, $lang['tech'][0] );
- $PlanetBuildings = $PlanetDefense;
- $PlanetBuildings .= $PlanetBuildInfo['String'];
-
- $TargetTechnInfo = $this->SpyTarget ( $TargetUser, 4, $lang['tech'][100] );
- $TargetTechnos = $PlanetBuildings;
- $TargetTechnos .= $TargetTechnInfo['String'];
-
- $TargetForce = ($PlanetFleetInfo['Count'] * $LS) / 4;
-
- if ($TargetForce > 100)
- $TargetForce = 100;
-
- $TargetChances = rand(0, $TargetForce);
- $SpyerChances = rand(0, 100);
-
- if ($TargetChances >= $SpyerChances)
- $DestProba = "<font color=\"red\">".$lang['sys_mess_spy_destroyed']."</font>";
- elseif ($TargetChances < $SpyerChances)
- $DestProba = sprintf( $lang['sys_mess_spy_lostproba'], $TargetChances);
-
- $AttackLink = "<center>";
- $AttackLink .= "<a href=\"game.php?page=fleet&galaxy=". $FleetRow['fleet_end_galaxy'] ."&system=". $FleetRow['fleet_end_system'] ."";
- $AttackLink .= "&planet=".$FleetRow['fleet_end_planet']."&planettype=".$FleetRow['fleet_end_type']."";
- $AttackLink .= "&target_mission=1";
- $AttackLink .= " \">". $lang['type_mission'][1] ."";
- $AttackLink .= "</a></center>";
- $MessageEnd = "<center>".$DestProba."</center>";
-
- $pT = ($TargetSpyLvl - $CurrentSpyLvl);
- $pW = ($CurrentSpyLvl - $TargetSpyLvl);
- if ($TargetSpyLvl > $CurrentSpyLvl)
- $ST = ($LS - pow($pT, 2));
- if ($CurrentSpyLvl > $TargetSpyLvl)
- $ST = ($LS + pow($pW, 2));
- if ($TargetSpyLvl == $CurrentSpyLvl)
- $ST = $CurrentSpyLvl;
- if ($ST <= "1")
- $SpyMessage = $Materials."<br />".$AttackLink.$MessageEnd;
- if ($ST == "2")
- $SpyMessage = $PlanetFleet."<br />".$AttackLink.$MessageEnd;
- if ($ST == "4" or $ST == "3")
- $SpyMessage = $PlanetDefense."<br />".$AttackLink.$MessageEnd;
- if ($ST == "5" or $ST == "6")
- $SpyMessage = $PlanetBuildings."<br />".$AttackLink.$MessageEnd;
- if ($ST >= "7")
- $SpyMessage = $TargetTechnos."<br />".$AttackLink.$MessageEnd;
-
- SendSimpleMessage ( $CurrentUserID, '', $FleetRow['fleet_start_time'], 0, $lang['sys_mess_qg'], $lang['sys_mess_spy_report'], $SpyMessage);
-
- $TargetMessage = $lang['sys_mess_spy_ennemyfleet'] ." ". $CurrentPlanet['name'];
-
- if($FleetRow['fleet_start_type'] == 3)
- $TargetMessage .= $lang['sys_mess_spy_report_moon'] . " ";
-
- $TargetMessage .= "<a href=\"game.php?page=galaxy&mode=3&galaxy=". $CurrentPlanet["galaxy"] ."&system=". $CurrentPlanet["system"] ."\">";
- $TargetMessage .= "[". $CurrentPlanet["galaxy"] .":". $CurrentPlanet["system"] .":". $CurrentPlanet["planet"] ."]</a> ";
- $TargetMessage .= $lang['sys_mess_spy_seen_at'] ." ". $TargetPlanet['name'];
- $TargetMessage .= " [". $TargetPlanet["galaxy"] .":". $TargetPlanet["system"] .":". $TargetPlanet["planet"] ."].";
-
- SendSimpleMessage ( $TargetUserID, '', $FleetRow['fleet_start_time'], 0, $lang['sys_mess_spy_control'], $lang['sys_mess_spy_activity'], $TargetMessage);
-
- if ($TargetChances >= $SpyerChances)
- {
- $QryUpdateGalaxy = "UPDATE {{table}} SET ";
- $QryUpdateGalaxy .= "`invisible_start_time` = '".time()…
Large files files are truncated, but you can click here to view the full file