Файл: includes/classes/class.FlyingFleetHandler.php
Строк: 2232
<?php
##############################################################################
# *                                                                             #
# * XG PROYECT                                                                 #
# *                                                                           #
# * @copyright Copyright (C) 2008 - 2009 By lucky from xgproyect.net           #
# *                                                                             #
# *                                                                             #
# *  This program is free software: you can redistribute it and/or modify    #
# *  it under the terms of the GNU General Public License as published by    #
# *  the Free Software Foundation, either version 3 of the License, or       #
# *  (at your option) any later version.                                     #
# *                                                                             #
# *  This program is distributed in the hope that it will be useful,         #
# *  but WITHOUT ANY WARRANTY; without even the implied warranty of             #
# *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
# *  GNU General Public License for more details.                             #
# *                                                                             #
##############################################################################
if (!defined('INSIDE'))die(header("location:../../"));
class FlyingFleetHandler
{
    public static function calculateAKSSteal($attackFleets, $defenderPlanet, $ForSim = false)
    {
        //Steal-Math by Slaver for 2Moons(http://code.google.com/p/2moons/) based on http://www.owiki.de/Beute
        global $pricelist;
        $SortFleets = array();
        foreach ($attackFleets as $FleetID => $Attacker)
        {
            foreach($Attacker['detail'] as $Element => $amount)
            {
                $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);
        // Step 1
        $booty['metal']         = min(($Sumcapacity / 3),  ($defenderPlanet['metal'] / 2));
        $Sumcapacity             -= $booty['metal'];
        // Step 2
        $booty['crystal']         = min(($Sumcapacity / 2),  ($defenderPlanet['crystal'] / 2));
        $Sumcapacity             -= $booty['crystal'];
        // Step 3
        $booty['deuterium']     = min($Sumcapacity,  ($defenderPlanet['deuterium'] / 2));
        $Sumcapacity             -= $booty['deuterium'];
        // Step 4
        $oldMetalBooty             = $booty['metal'];
        $booty['metal']         += min(($Sumcapacity / 2),  max((($defenderPlanet['metal']) / 2) - $booty['metal'], 0));
        $Sumcapacity             += $oldMetalBooty - $booty['metal'];
        // Step 5
        $booty['crystal']         += min(($Sumcapacity),  max((($defenderPlanet['crystal']) / 2) - $booty['crystal'], 0));
        $booty['metal']            = max($booty['metal'] ,0);
        $booty['crystal']        = max($booty['crystal'] ,0);
        $booty['deuterium']        = max($booty['deuterium'] ,0);
        $steal                    = array_map('floor', $booty);
        if($ForSim)
            return $steal;
        $AllCapacity        = array_sum($SortFleets);
        $QryUpdateFleet        = "";
        foreach($SortFleets as $FleetID => $Capacity)
        {
            $QryUpdateFleet     = "UPDATE {{table}} SET ";
            $QryUpdateFleet .= "`fleet_resource_metal` =  `fleet_resource_metal` + '".floattostring($steal['metal'] * ($Capacity /  $AllCapacity))."', ";
            $QryUpdateFleet .= "`fleet_resource_crystal` =  `fleet_resource_crystal` +'".floattostring($steal['crystal'] * ($Capacity  / $AllCapacity))."', ";
            $QryUpdateFleet .= "`fleet_resource_deuterium` =  `fleet_resource_deuterium` +'".floattostring($steal['deuterium'] * ($Capacity / $AllCapacity))."' ";
            $QryUpdateFleet .= "WHERE fleet_id = '".$FleetID."' ";
            $QryUpdateFleet .= "LIMIT 1;";
            doquery($QryUpdateFleet, 'fleets');
        }
        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'] . gmdate("d-m-Y H:i:s", time() + 2 * 60 * 60) ."</td>";
            $String .= "</tr><tr>";
            $String .= "<td width=220>". $lang['Metal']     ."</td><td width=220 align=right>". pretty_number($TargetPlanet['metal'])      ."</td><td> </td>";
            $String .= "<td width=220>". $lang['Crystal']   ."</td></td><td width=220 align=right>". pretty_number($TargetPlanet['crystal'])    ."</td>";
            $String .= "</tr><tr>";
            $String .= "<td width=220>". $lang['Deuterium'] ."</td><td width=220 align=right>". pretty_number($TargetPlanet['deuterium'])  ."</td><td> </td>";
            $String .= "<td width=220>". $lang['Energy']    ."</td><td width=220 align=right>". 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, $game_config, $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"]) + (AMIRAL * $user['rpg_amiral'])));
                    $rand                         = rand(80, 120) / 100;
                    $CurrentSet[$a]["tarcza"]     = $CurrentSet[$a]['count'] * $CombatCaps[$a]['shield'] * (1 + (0.1 * $CurrentTechno["shield_tech"]) + (AMIRAL * $user['rpg_amiral'])) * $rand;
                    $atak_statku                 = $CombatCaps[$a]['attack'];
                    $technologie                 = (1 + (0.1 * $CurrentTechno["military_tech"]+(AMIRAL * $user['rpg_amiral'])));
                    $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"]) + (AMIRAL* $user['rpg_amiral'])));
                    $rand                         = rand(80, 120) / 100;
                    $TargetSet[$a]["tarcza"]     = $TargetSet[$a]['count'] * $CombatCaps[$a]['shield'] * (1 + (0.1 * $TargetTechno["shield_tech"])+ (AMIRAL * $user['rpg_amiral'])) * $rand;
                    $atak_statku                 = $CombatCaps[$a]['attack'];
                    $technologie                 = (1 + (0.1 * $TargetTechno["military_tech"]) + (AMIRAL * $user['rpg_amiral']));
                    $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";
        $zlom['metal']    = ((($atakujacy_zlom_poczatek['metal']   - $atakujacy_zlom_koniec['metal'])   + ($wrog_zlom_poczatek['metal']   - $wrog_zlom_koniec['metal']))   * ($game_config['Fleet_Cdr'] / 100));
        $zlom['crystal']  = ((($atakujacy_zlom_poczatek['crystal'] - $atakujacy_zlom_koniec['crystal']) + ($wrog_zlom_poczatek['crystal'] - $wrog_zlom_koniec['crystal'])) * ($game_config['Fleet_Cdr'] / 100));
        $zlom['metal']   += ((($atakujacy_zlom_poczatek['metal']   - $atakujacy_zlom_koniec['metal'])   + ($wrog_zlom_poczatek['metal']   - $wrog_zlom_koniec['metal']))   * ($game_config['Defs_Cdr'] / 100));
        $zlom['crystal'] += ((($atakujacy_zlom_poczatek['crystal'] - $atakujacy_zlom_koniec['crystal']) + ($wrog_zlom_poczatek['crystal'] - $wrog_zlom_koniec['crystal'])) * ($game_config['Defs_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;
        $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)
    {
        $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 raketenangriff($verteidiger_panzerung, $angreifer_waffen, $iraks, $def, $primaerziel = '0')
    {
        $temp = '';
        $temp2 = '';
        $def[10] = $iraks;
        $metall     = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        $kristall   = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        $deut       = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        $verblieben = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        for($temp = 0; $temp < 11; $temp++)
            $verblieben[$temp] = $def[$temp];
        $kaputt  = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
        $hull      = Array();
        $hull[0] = 200 * (1 + $verteidiger_panzerung / 10);
        $hull[1] = $hull[0];
        $hull[2] = 800 * (1 + ($verteidiger_panzerung / 10));
        $hull[3] = 3500 * (1 + ($verteidiger_panzerung / 10));
        $hull[4] = $hull[2];
        $hull[5] = 10000 * (1 + ($verteidiger_panzerung / 10));
        $hull[6] = 2000 * (1 + ($verteidiger_panzerung / 10));
        $hull[7] = $hull[5];
        $hull[8] = 1500 * (1 + ($verteidiger_panzerung / 10));
        $metall_cost_tab   = Array( 2, 1.5, 6, 20, 2, 50, 10, 50, 12.5, 8);
        $kristall_cost_tab = Array( 0, 0.5, 2, 15, 6, 50, 10, 50,  2.5, 0);
        $deut_cost_tab     = Array( 0,   0, 0,  2, 0, 30,  0,  0, 10.0, 2);
        $schaden = floor(($def[10] - $def[9]) * (12000 * (1 + ($angreifer_waffen / 10))));
        if ($schaden < 0)
            $schaden = 0;
        switch ($primaerziel)
        {
            case 0:
                $beschussreihenfolge = Array(0, 1, 2, 3, 4, 5, 6, 7, 8);
                break;
            case 1:
                $beschussreihenfolge = Array(1, 0, 2, 3, 4, 5, 6, 7, 8);
                break;
            case 2:
                $beschussreihenfolge = Array(2, 0, 1, 3, 4, 5, 6, 7, 8);
                break;
            case 3:
                $beschussreihenfolge = Array(3, 0, 1, 2, 4, 5, 6, 7, 8);
                break;
            case 4:
                $beschussreihenfolge = Array(4, 0, 1, 2, 3, 5, 6, 7, 8);
                break;
            case 5:
                $beschussreihenfolge = Array(5, 0, 1, 2, 3, 4, 6, 7, 8);
                break;
            case 6:
                $beschussreihenfolge = Array(6, 0, 1, 2, 3, 4, 5, 7, 8);
                break;
            case 7:
                $beschussreihenfolge = Array(7, 0, 1, 2, 3, 4, 5, 6, 8);
                break;
            case 8:
                $beschussreihenfolge = Array(0, 1, 2, 3, 4, 5, 6, 7, 8);
                break;
        }
        $verblieben[10]     = 0;
        $kaputt[10]        += $def[10];
        $metall[10]        += $kaputt[10] * $metall_cost_tab[8];
        $kristall[10]      += $kaputt[10] * $kristall_cost_tab[8];
        $deut[10]          += $kaputt[10] * $deut_cost_tab[8];
        $verblieben[9]      = ($def[9] - $def[10]);
        if ($verblieben[9] < 0)
            $verblieben[9] = 0;
        $kaputt[11]    = $def[9] - $verblieben[9];
        $kaputt[9]    += ($def[9] - $verblieben[9]);
        $metall[9]    += $kaputt[9] * $metall_cost_tab[9];
        $kristall[9]  += $kaputt[9] * $kristall_cost_tab[9];
        $deut[9]       += $kaputt[9] * $deut_cost_tab[9];
        $metall[11]   += $metall[9];
        $kristall[11] += $kristall[9];
        $deut[11]     += $deut[9];
        for($temp = 0; $temp < 9; $temp++)
        {
            if ($schaden >= ($hull[$beschussreihenfolge[$temp]] * $def[$beschussreihenfolge[$temp]]))
            {
                $kaputt[$beschussreihenfolge[$temp]] += $def[$beschussreihenfolge[$temp]];
                $verblieben[$beschussreihenfolge[$temp]] = 0;
                $schaden -= ($hull[$beschussreihenfolge[$temp]] * $kaputt[$beschussreihenfolge[$temp]]);
            }
            else
            {
                $kaputt[$beschussreihenfolge[$temp]] += floor($schaden / $hull[$beschussreihenfolge[$temp]]);
                $schaden -= $kaputt[$beschussreihenfolge[$temp]] * $hull[$beschussreihenfolge[$temp]];
                $verblieben[$beschussreihenfolge[$temp]] = ($def[$beschussreihenfolge[$temp]] - $kaputt[$beschussreihenfolge[$temp]]);
            }
            $metall[$beschussreihenfolge[$temp]] += $kaputt[$beschussreihenfolge[$temp]] * $metall_cost_tab[$beschussreihenfolge[$temp]];
            $kristall[$beschussreihenfolge[$temp]] += $kaputt[$beschussreihenfolge[$temp]] * $kristall_cost_tab[$beschussreihenfolge[$temp]];
            $deut[$beschussreihenfolge[$temp]] += $kaputt[$beschussreihenfolge[$temp]] * $deut_cost_tab[$beschussreihenfolge[$temp]];
            $verblieben[11] += $verblieben[$beschussreihenfolge[$temp]];
            $kaputt[11] += $kaputt[$beschussreihenfolge[$temp]];
            $metall[11] += $metall[$beschussreihenfolge[$temp]];
            $kristall[11] += $kristall[$beschussreihenfolge[$temp]];
            $deut[11] += $deut[$beschussreihenfolge[$temp]];
        }
        $return = array();
        $return['verbleibt'] = $verblieben;
        $return['zerstoert'] = $kaputt;
        $return['verluste_metall'] = $metall;
        $return['verluste_kristall'] = $kristall;
        $return['verluste_deuterium'] = $deut;
        return $return;
    }
    private function MissionCaseAttack ($FleetRow)
    {
        global $pricelist, $lang, $resource, $CombatCaps, $game_config, $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 .= "`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.', fleet_mess=1 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, ''),
                        pretty_number($FleetRow['fleet_resource_metal']), $lang['Metal'],
                        pretty_number($FleetRow['fleet_resource_crystal']), $lang['Crystal'],
                        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, $game_config;
        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'], pretty_number($FleetRow['fleet_resource_metal']),
                $lang['Crystal'], pretty_number($FleetRow['fleet_resource_crystal']),
                $lang['Deuterium'], 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'], pretty_number($FleetRow['fleet_resource_metal']),
                $lang['Crystal'], pretty_number($FleetRow['fleet_resource_crystal']),
                $lang['Deuterium'], 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_espion'] * ESPION);
            $TargetUser          = doquery("SELECT * FROM {{table}} WHERE `id` = '".$TargetUserID."';", 'users', true);
            $TargetSpyLvl        = $TargetUser['spy_tech'] + ($TargetUser['rpg_espion'] * ESPION);
            $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")
                    {
                        if ($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 .= "`crystal` = `crystal` + '". (0 + $SpyToolDebris) ."' ";
                            $QryUpdateGalaxy .= "WHERE `id_planet` = '". $TargetPlanet['id'] ."';";
                            doquery( $QryUpdateGalaxy, 'galaxy');
                            doquery("DELETE FROM {{table}} WHERE `fleet_id` = '". $FleetRow["fleet_id"] ."';", 'fleets');
                        }
                        else
                            doquery("UPDATE {{table}} SET `fleet_mess` = '1' WHERE `fleet_id` = '". $FleetRow["fleet_id"] ."';", 'fleets');
                    }
                }
                else
                {
                    if ($FleetRow['fleet_end_time'] <= time())
                    {
                        $this->RestoreFleetToPlanet ( $FleetRow, true );
                        doquery("DELETE FROM {{table}} WHERE `fleet_id` = ". $FleetRow["fleet_id"], 'fleets');
                    }
                }
            }
        }
    }
    private function MissionCaseRecycling ($FleetRow)
    {
        global $pricelist, $lang;
        if ($FleetRow["fleet_mess"] == "0")
        {
            if ($FleetRow['fleet_start_time'] <= time())
            {
                $QrySelectGalaxy  = "SELECT * FROM {{table}} ";
                $QrySelectGalaxy .= "WHERE ";
                $QrySelectGalaxy .= "`galaxy` = '".$FleetRow['fleet_end_galaxy']."' AND ";
                $QrySelectGalaxy .= "`system` = '".$FleetRow['fleet_end_system']."' AND ";
                $QrySelectGalaxy .= "`planet` = '".$FleetRow['fleet_end_planet']."' ";
                $QrySelectGalaxy .= "LIMIT 1;";
                $TargetGalaxy     = doquery( $QrySelectGalaxy, 'galaxy', true);
                $FleetRecord         = explode(";", $FleetRow['fleet_array']);
                $RecyclerCapacity    = 0;
                $OtherFleetCapacity  = 0;
                foreach ($FleetRecord as $Item => $Group)
                {
                    if ($Group != '')
                    {
                        $Class        = explode (",", $Group);
                        if ($Class[0] == 209)
                            $RecyclerCapacity   += $pricelist[$Class[0]]["capacity"] * $Class[1];
                        else
                            $OtherFleetCapacity += $pricelist[$Class[0]]["capacity"] * $Class[1];
                    }
                }
                $IncomingFleetGoods = $FleetRow["fleet_resource_metal"] + $FleetRow["fleet_resource_crystal"] + $FleetRow["fleet_resource_deuterium"];
                if ($IncomingFleetGoods > $OtherFleetCapacity)
                    $RecyclerCapacity -= ($IncomingFleetGoods - $OtherFleetCapacity);
                if (($TargetGalaxy["metal"] + $TargetGalaxy["crystal"]) <= $RecyclerCapacity)
                {
                    $RecycledGoods["metal"]   = $TargetGalaxy["metal"];
                    $RecycledGoods["crystal"] = $TargetGalaxy["crystal"];
                }
                else
                {
                    if (($TargetGalaxy["metal"]   > $RecyclerCapacity / 2) && ($TargetGalaxy["crystal"] > $RecyclerCapacity / 2))
                    {
                        $RecycledGoods["metal"]   = $RecyclerCapacity / 2;
                        $RecycledGoods["crystal"] = $RecyclerCapacity / 2;
                    }
                    else
                    {
                        if ($TargetGalaxy["metal"] > $TargetGalaxy["crystal"])
                        {
                            $RecycledGoods["crystal"] = $TargetGalaxy["crystal"];
                            if ($TargetGalaxy["metal"] > ($RecyclerCapacity - $RecycledGoods["crystal"]))
                                $RecycledGoods["metal"] = $RecyclerCapacity - $RecycledGoods["crystal"];
                            else
                                $RecycledGoods["metal"] = $TargetGalaxy["metal"];
                        }
                        else
                        {
                            $RecycledGoods["metal"] = $TargetGalaxy["metal"];
                            if ($TargetGalaxy["crystal"] > ($RecyclerCapacity - $RecycledGoods["metal"]))
                                $RecycledGoods["crystal"] = $RecyclerCapacity - $RecycledGoods["metal"];
                            else
                                $RecycledGoods["crystal"] = $TargetGalaxy["crystal"];
                        }
                    }
                }
                $QryUpdateGalaxy  = "UPDATE {{table}} SET ";
                $QryUpdateGalaxy .= "`metal` = `metal` - '".$RecycledGoods["metal"]."', ";
                $QryUpdateGalaxy .= "`crystal` = `crystal` - '".$RecycledGoods["crystal"]."' ";
                $QryUpdateGalaxy .= "WHERE ";
                $QryUpdateGalaxy .= "`galaxy` = '".$FleetRow['fleet_end_galaxy']."' AND ";
                $QryUpdateGalaxy .= "`system` = '".$FleetRow['fleet_end_system']."' AND ";
                $QryUpdateGalaxy .= "`planet` = '".$FleetRow['fleet_end_planet']."' ";
                $QryUpdateGalaxy .= "LIMIT 1;";
                doquery( $QryUpdateGalaxy, 'galaxy');
                $Message = sprintf($lang['sys_recy_gotten'], pretty_number($RecycledGoods["metal"]), $lang['Metal'], pretty_number($RecycledGoods["crystal"]), $lang['Crystal']);
                SendSimpleMessage ( $FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 4, $lang['sys_mess_spy_control'], $lang['sys_recy_report'], $Message);
                $QryUpdateFleet  = "UPDATE {{table}} SET ";
                $QryUpdateFleet .= "`fleet_resource_metal` = `fleet_resource_metal` + '".$RecycledGoods["metal"]."', ";
                $QryUpdateFleet .= "`fleet_resource_crystal` = `fleet_resource_crystal` + '".$RecycledGoods["crystal"]."', ";
                $QryUpdateFleet .= "`fleet_mess` = '1' ";
                $QryUpdateFleet .= "WHERE ";
                $QryUpdateFleet .= "`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_owner'],
                $TargetName, GetTargetAdressLink($FleetRow, ''),
                pretty_number($FleetRow['fleet_resource_metal']), $lang['Metal'],
                pretty_number($FleetRow['fleet_resource_crystal']), $lang['Crystal'],
                pretty_number($FleetRow['fleet_resource_deuterium']), $lang['Deuterium'] );
                SendSimpleMessage ( $FleetRow['fleet_owner'], '', $FleetRow['fleet_end_time'], 4, $lang['sys_mess_spy_control'], $lang['sys_mess_fleetback'], $Message);
                $this->RestoreFleetToPlanet ( $FleetRow, true );
                doquery("DELETE FROM {{table}} WHERE `fleet_id` = '". $FleetRow["fleet_id"] ."';", 'fleets');
            }
        }
    }
private function MissionCaseColonisation($FleetRow)
{
global $lang, $resource;
$iMaxColo = mysql_result(doquery("SELECT `colonisation_tech` + 1 FROM `{{table}}` WHERE `id`='". $FleetRow['fleet_owner']."'",'users'), 0); 
$iPlanetCount = mysql_result(doquery ("SELECT count(*) FROM {{table}} WHERE `id_owner` = '". $FleetRow['fleet_owner'] ."' AND `planet_type` = '1' AND `destruyed` = '0'", 'planets'), 0);
if ($FleetRow['fleet_mess'] == 0)
{
$iGalaxyPlace = mysql_result(doquery ("SELECT count(*) FROM {{table}} WHERE `galaxy` = '". $FleetRow['fleet_end_galaxy']."' AND `system` = '". $FleetRow['fleet_end_system']."' AND `planet` = '". $FleetRow['fleet_end_planet']."' AND `planet_type` = '". $FleetRow['fleet_end_type']."';", 'planets'), 0);
$TargetAdress = sprintf ($lang['sys_adress_planet'], $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet']);
if ($iGalaxyPlace == 0)
{
if ($iPlanetCount >= $iMaxColo || $iPlanetCount >= MAX_PLAYER_PLANETS) {
$TheMessage = $lang['sys_colo_arrival'] . $TargetAdress . $lang['sys_colo_maxcolo'];
SendSimpleMessage ( $FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 6, $lang['sys_colo_mess_from'], $lang['sys_colo_mess_report'], $TheMessage);
doquery("UPDATE `{{table}}` SET `fleet_mess` = '1' WHERE `fleet_id` = ". $FleetRow["fleet_id"], 'fleets');
}
else
{
$NewOwnerPlanet = CreateOnePlanetRecord($FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet'], $FleetRow['fleet_owner'], $lang['sys_colo_defaultname'], false);
if ( $NewOwnerPlanet == true )
{
$TheMessage = $lang['sys_colo_arrival'] . $TargetAdress . $lang['sys_colo_allisok'];
$TheMessage = sprintf( $lang['sys_colo_arrival'] . $TargetAdress .$lang['sys_colo_tran']. $lang['sys_colo_allisok'],
$lang['Metal'], $FleetRow['fleet_resource_metal'], 
$lang['Crystal'], $FleetRow['fleet_resource_crystal'], 
$lang['Deuterium'], $FleetRow['fleet_resource_deuterium'] );
SendSimpleMessage ( $FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 6, $lang['sys_colo_mess_from'], $lang['sys_colo_mess_report'], $TheMessage);
if ($FleetRow['fleet_amount'] == 1) {
$this->StoreGoodsToPlanet ($FleetRow, false);
doquery("DELETE FROM {{table}} WHERE fleet_id=" . $FleetRow["fleet_id"], 'fleets');
} else {
$this->StoreGoodsToPlanet ($FleetRow, false);
$CurrentFleet = explode(";", $FleetRow['fleet_array']);
$NewFleet = "";
foreach ($CurrentFleet as $Item => $Group)
{
if ($Group != '')
{
$Class = explode (",", $Group);
if ($Class[0] == 208)
{
if ($Class[1] > 1)
{
$NewFleet .= $Class[0].",".($Class[1] - 1).";";
}
}
else
{
if ($Class[1] <> 0)
{
$NewFleet .= $Class[0].",".$Class[1].";";
}
}
}
}
$QryUpdateFleet = "UPDATE {{table}} SET ";
$QryUpdateFleet .= "`fleet_array` = '". $NewFleet ."', ";
$QryUpdateFleet .= "`fleet_amount` = `fleet_amount` - 1, ";
$QryUpdateFleet .= "`fleet_resource_metal` = 0, ";
$QryUpdateFleet .= "`fleet_resource_crystal` = 0, ";
$QryUpdateFleet .= "`fleet_resource_deuterium` = 0, ";
$QryUpdateFleet .= "`fleet_mess` = '1' ";
$QryUpdateFleet .= "WHERE `fleet_id` = '". $FleetRow["fleet_id"] ."';";
doquery( $QryUpdateFleet, 'fleets');
}
}
else
{
$TheMessage = $lang['sys_colo_arrival'] . $TargetAdress . $lang['sys_colo_badpos'];
SendSimpleMessage ( $FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 6, $lang['sys_colo_mess_from'], $lang['sys_colo_mess_report'], $TheMessage);
doquery("UPDATE {{table}} SET `fleet_mess` = '1' WHERE `fleet_id` = ". $FleetRow["fleet_id"], 'fleets');
}
}
}
else
{
$TheMessage = $lang['sys_colo_arrival'] . $TargetAdress . $lang['sys_colo_notfree'];
SendSimpleMessage ( $FleetRow['fleet_owner'], '', $FleetRow['fleet_end_time'], 6, $lang['sys_colo_mess_from'], $lang['sys_colo_mess_report'], $TheMessage);
doquery("UPDATE {{table}} SET `fleet_mess` = '1' WHERE `fleet_id` = ". $FleetRow["fleet_id"], 'fleets');
}
}
elseif ($FleetRow['fleet_end_time'] < time())
{
$this->RestoreFleetToPlanet ( $FleetRow, true );
doquery("DELETE FROM {{table}} WHERE fleet_id=" . $FleetRow["fleet_id"], 'fleets');
}
}
    private function MissionCaseDestruction($FleetRow)
    {
        global $user, $phpEx, $pricelist, $lang, $resource, $CombatCaps;
        if ($FleetRow['fleet_start_time'] <= time())
        {
            if ($FleetRow['fleet_mess'] == 0)
            {
                if (!isset($CombatCaps[202]['sd']))
                    header("location:game." . $phpEx . "?page=fleet");
                $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);
                $TargetUserID     = $TargetPlanet['id_owner'];
                $QryDepPlanet  = "SELECT * FROM {{table}} ";
                $QryDepPlanet .= "WHERE ";
                $QryDepPlanet .= "`galaxy` = '". $FleetRow['fleet_start_galaxy'] ."' AND ";
                $QryDepPlanet .= "`system` = '". $FleetRow['fleet_start_system'] ."' AND ";
                $QryDepPlanet .= "`planet` = '". $FleetRow['fleet_start_planet'] ."' AND ";
                $QryDepPlanet .= "`planet_type` = '". $FleetRow['fleet_start_type'] ."';";
                $DepPlanet     = doquery( $QryDepPlanet, 'planets', true);
                $DepName       = $DepPlanet['name'];
                $QryCurrentUser   = "SELECT * FROM {{table}} ";
                $QryCurrentUser  .= "WHERE ";
                $QryCurrentUser  .= "`id` = '". $FleetRow['fleet_owner'] ."';";
                $CurrentUser      = doquery($QryCurrentUser , 'users', true);
                $CurrentUserID    = $CurrentUser['id'];
                $QryTargetUser    = "SELECT * FROM {{table}} ";
                $QryTargetUser   .= "WHERE ";
                $QryTargetUser   .= "`id` = '". $TargetUserID ."';";
                $TargetUser       = doquery($QryTargetUser, 'users', true);
                for ($SetItem = 200; $SetItem < 500; $SetItem++)
                {
                    if ($TargetPlanet[$resource[$SetItem]] > 0)
                        $TargetSet[$SetItem]['count'] = $TargetPlanet[$resource[$SetItem]];
                }
                $TheFleet = explode(";", $FleetRow['fleet_array']);
                foreach($TheFleet as $a => $b)
                {
                    if ($b != '')
                    {
                        $a = explode(",", $b);
                        $CurrentSet[$a[0]]['count'] = $a[1];
                    }
                }
                $walka        = $this->walka($CurrentSet, $TargetSet, $CurrentUser, $TargetUser);
                $CurrentSet   = $walka["atakujacy"];
                $TargetSet    = $walka["wrog"];
                $FleetResult  = $walka["wygrana"];
                $dane_do_rw   = $walka["dane_do_rw"];
                $zlom         = $walka["zlom"];
                $FleetArray   = "";
                $FleetAmount  = 0;
                $FleetStorage = 0;
                foreach ($CurrentSet as $Ship => $Count)
                {
                    $FleetStorage += $pricelist[$Ship]["capacity"] * $Count['count'];
                    $FleetArray   .= $Ship.",".$Count['count'].";";
                    $FleetAmount  += $Count['count'];
                }
                $TargetPlanetUpd = "";
                if (!is_null($TargetSet))
                {
                    foreach($TargetSet as $Ship => $Count)
                    {
                        $TargetPlanetUpd .= "`". $resource[$Ship] ."` = '". $Count['count'] ."', ";
                    }
                }
                if ($FleetResult == "a")
                {
                    $destructionl1     = 100-sqrt($TargetPlanet['diameter']);
                    $destructionl21 = $destructionl1*sqrt($CurrentSet['214']['count']);
                    $destructionl2     = $destructionl21/1;
                    if ($destructionl2 > 100)
                        $chance = '100';
                    else
                        $chance = round($destructionl2);
                    $tirage     = mt_rand(0, 100);
                    $probalune    = sprintf ($lang['sys_destruc_lune'], $chance);
                    if($tirage <= $chance)
                    {
                        $resultat     = '1';
                        $finmess     = $lang['sys_destruc_reussi'];
                        doquery("DELETE FROM {{table}} WHERE `id` = '". $TargetPlanet['id'] ."';", 'planets');
                        $Qrydestructionlune  = "UPDATE {{table}} SET ";
                        $Qrydestructionlune .= "`id_luna` = '0' ";
                        $Qrydestructionlune .= "WHERE ";
                        $Qrydestructionlune .= "`galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
                        $Qrydestructionlune .= "`system` = '". $FleetRow['fleet_end_system'] ."' AND ";
                        $Qrydestructionlune .= "`planet` = '". $FleetRow['fleet_end_planet'] ."' ";
                        $Qrydestructionlune .= "LIMIT 1 ;";
                        doquery( $Qrydestructionlune , 'galaxy');
                        $QryDetFleets1  = "UPDATE {{table}} SET ";
                        $QryDetFleets1 .= "`fleet_start_type` = '1' ";
                        $QryDetFleets1 .= "WHERE ";
                        $QryDetFleets1 .= "`fleet_start_galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
                        $QryDetFleets1 .= "`fleet_start_system` = '". $FleetRow['fleet_end_system'] ."' AND ";
                        $QryDetFleets1 .= "`fleet_start_planet` = '". $FleetRow['fleet_end_planet'] ."' ";
                        $QryDetFleets1 .= ";";
                        doquery( $QryDetFleets1 , 'fleets');
                        $QryDetFleets2  = "UPDATE {{table}} SET ";
                        $QryDetFleets2 .= "`fleet_end_type` = '1' ";
                        $QryDetFleets2 .= "WHERE ";
                        $QryDetFleets2 .= "`fleet_end_galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
                        $QryDetFleets2 .= "`fleet_end_system` = '". $FleetRow['fleet_end_system'] ."' AND ";
                        $QryDetFleets2 .= "`fleet_end_planet` = '". $FleetRow['fleet_end_planet'] ."' ";
                        $QryDetFleets2 .= ";";
                        doquery( $QryDetFleets2 , 'fleets');
                        if ($TargetUser['current_planet'] == $TargetPlanet['id'])
                        {
                            $QryPlanet  = "SELECT * FROM {{table}} ";
                            $QryPlanet .= "WHERE ";
                            $QryPlanet .= "`galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
                            $QryPlanet .= "`system` = '". $FleetRow['fleet_end_system'] ."' AND ";
                            $QryPlanet .= "`planet` = '". $FleetRow['fleet_end_planet'] ."' AND ";
                            $QryPlanet .= "`planet_type` = '1';";
                            $Planet     = doquery( $QryPlanet, 'planets', true);
                            $IDPlanet     = $Planet['id'];
                            $Qryvue  = "UPDATE {{table}} SET ";
                            $Qryvue .= "`current_planet` = '". $IDPlanet ."' ";
                            $Qryvue .= "WHERE ";
                            $Qryvue .= "`id` = '". $TargetUserID ."' ";
                            $Qryvue .= ";";
                            doquery( $Qryvue , 'users');
                        }
                    }
                    else
                        $resultat = '0';
                    $destructionrip = sqrt($TargetPlanet['diameter'])/2;
                    $chance2        = round($destructionrip);
                    if ($resultat == 0)
                    {
                        $tirage2     = mt_rand(0, 100);
                        $probarip    = sprintf ($lang['sys_destruc_rip'], $chance2);
                        if($tirage2 <= $chance2)
                        {
                            $resultat2 = ' detruite 1';
                            $finmess = $lang['sys_destruc_echec'];
                            doquery("DELETE FROM {{table}} WHERE `fleet_id` = '". $FleetRow["fleet_id"] ."';", 'fleets');
                        }
                        else
                        {
                            $resultat2 = 'sauvees 0';
                            $finmess = $lang['sys_destruc_null'];
                        }
                    }
                }
                $introdestruc       = sprintf ($lang['sys_destruc_mess'], $DepName , $FleetRow['fleet_start_galaxy'], $FleetRow['fleet_start_system'], $FleetRow['fleet_start_planet'], $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet']);
                $QryUpdateTarget  = "UPDATE {{table}} SET ";
                $QryUpdateTarget .= $TargetPlanetUpd;
                $QryUpdateTarget .= "`metal` = `metal` - '". $Mining['metal'] ."', ";
                $QryUpdateTarget .= "`crystal` = `crystal` - '". $Mining['crystal'] ."', ";
                $QryUpdateTarget .= "`deuterium` = `deuterium` - '". $Mining['deuter'] ."' ";
                $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');
                $QryUpdateGalaxy  = "UPDATE {{table}} SET ";
                $QryUpdateGalaxy .= "`metal` = `metal` + '". $zlom['metal'] ."', ";
                $QryUpdateGalaxy .= "`crystal` = `crystal` + '". $zlom['crystal'] ."' ";
                $QryUpdateGalaxy .= "WHERE ";
                $QryUpdateGalaxy .= "`galaxy` = '". $FleetRow['fleet_end_galaxy'] ."' AND ";
                $QryUpdateGalaxy .= "`system` = '". $FleetRow['fleet_end_system'] ."' AND ";
                $QryUpdateGalaxy .= "`planet` = '". $FleetRow['fleet_end_planet'] ."' ";
                $QryUpdateGalaxy .= "LIMIT 1;";
                doquery( $QryUpdateGalaxy , 'galaxy');
                $FleetDebris      = $zlom['metal'] + $zlom['crystal'];
                $StrAttackerUnits = sprintf ($lang['sys_attacker_lostunits'], $zlom["atakujacy"]);
                $StrDefenderUnits = sprintf ($lang['sys_defender_lostunits'], $zlom["wrog"]);
                $StrRuins         = sprintf ($lang['sys_gcdrunits'], $zlom["metal"], $lang['Metal'], $zlom['crystal'], $lang['Crystal']);
                $DebrisField      = $StrAttackerUnits ."<br />". $StrDefenderUnits ."<br />". $StrRuins;
                $MoonChance       = $FleetDebris / 100000;
                if ($FleetDebris > 2000000)
                {
                    $MoonChance = 20;
                    $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) and ($UserChance <= $MoonChance) and $galenemyrow['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']);
                }
                elseif ($UserChance = 0 or $UserChance > $MoonChance)
                    $GottenMoon = "";
                $AttackDate        = date("r", $FleetRow["fleet_start_time"]);
                $title             = sprintf ($lang['sys_destruc_title'], $AttackDate);
                $raport            = "<center><table><tr><td>". $title ."<br />";
                $zniszczony        = false;
                $a_zestrzelona     = 0;
                $AttackTechon['A'] = $CurrentUser["military_tech"] * 10;
                $AttackTechon['B'] = $CurrentUser["defence_tech"] * 10;
                $AttackTechon['C'] = $CurrentUser["shield_tech"] * 10;
                $AttackerData      = sprintf ($lang['sys_attack_attacker_pos'], $CurrentUser["username"], $FleetRow['fleet_start_galaxy'], $FleetRow['fleet_start_system'], $FleetRow['fleet_start_planet'] );
                $AttackerTech      = sprintf ($lang['sys_attack_techologies'], $AttackTechon['A'], $AttackTechon['B'], $AttackTechon['C']);
                $DefendTechon['A'] = $TargetUser["military_tech"] * 10;
                $DefendTechon['B'] = $TargetUser["defence_tech"] * 10;
                $DefendTechon['C'] = $TargetUser["shield_tech"] * 10;
                $DefenderData      = sprintf ($lang['sys_attack_defender_pos'], $TargetUser["username"], $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet'] );
                $DefenderTech      = sprintf ($lang['sys_attack_techologies'], $DefendTechon['A'], $DefendTechon['B'], $DefendTechon['C']);
                foreach ($dane_do_rw as $a => $b)
                {
                    $raport .= "<table border=1 width=100%><tr><th><br /><center>".$AttackerData."<br />".$AttackerTech."<table border=1>";
                    if ($b["atakujacy"]['count'] > 0)
                    {
                        $raport1 = "<tr><th>".$lang['sys_ship_type']."</th>";
                        $raport2 = "<tr><th>".$lang['sys_ship_count']."</th>";
                        $raport3 = "<tr><th>".$lang['sys_ship_weapon']."</th>";
                        $raport4 = "<tr><th>".$lang['sys_ship_shield']."</th>";
                        $raport5 = "<tr><th>".$lang['sys_ship_armour']."</th>";
                        foreach ($b["atakujacy"] as $Ship => $Data)
                        {
                            if (is_numeric($Ship))
                            {
                                if ($Data['count'] > 0)
                                {
                                    $raport1 .= "<th>". $lang["tech_rc"][$Ship] ."</th>";
                                    $raport2 .= "<th>". $Data['count'] ."</th>";
                                    $raport3 .= "<th>". round($Data["atak"]   / $Data['count']) ."</th>";
                                    $raport4 .= "<th>". round($Data["tarcza"] / $Data['count']) ."</th>";
                                    $raport5 .= "<th>". round($Data["obrona"] / $Data['count']) ."</th>";
                                }
                            }
                        }
                        $raport1 .= "</tr>";
                        $raport2 .= "</tr>";
                        $raport3 .= "</tr>";
                        $raport4 .= "</tr>";
                        $raport5 .= "</tr>";
                        $raport  .= $raport1 . $raport2 . $raport3 . $raport4 . $raport5;
                    }
                    else
                    {
                        if ($a == 2)
                            $a_zestrzelona = 1;
                        $zniszczony = true;
                        $raport .= "<br />". $lang['sys_destroyed'];
                    }
                    $raport .= "</table></center></th></tr></table>";
                    $raport .= "<table border=1 width=100%><tr><th><br /><center>".$DefenderData."<br />".$DefenderTech."<table border=1>";
                    if ($b["wrog"]['count'] > 0)
                    {
                        $raport1 = "<tr><th>".$lang['sys_ship_type']."</th>";
                        $raport2 = "<tr><th>".$lang['sys_ship_count']."</th>";
                        $raport3 = "<tr><th>".$lang['sys_ship_weapon']."</th>";
                        $raport4 = "<tr><th>".$lang['sys_ship_shield']."</th>";
                        $raport5 = "<tr><th>".$lang['sys_ship_armour']."</th>";
                        foreach ($b["wrog"] as $Ship => $Data)
                        {
                            if (is_numeric($Ship))
                            {
                                if ($Data['count'] > 0)
                                {
                                    $raport1 .= "<th>". $lang["tech_rc"][$Ship] ."</th>";
                                    $raport2 .= "<th>". $Data['count'] ."</th>";
                                    $raport3 .= "<th>". round($Data["atak"]   / $Data['count']) ."</th>";
                                    $raport4 .= "<th>". round($Data["tarcza"] / $Data['count']) ."</th>";
                                    $raport5 .= "<th>". round($Data["obrona"] / $Data['count']) ."</th>";
                                }
                            }
                        }
                        $raport1 .= "</tr>";
                        $raport2 .= "</tr>";
                        $raport3 .= "</tr>";
                        $raport4 .= "</tr>";
                        $raport5 .= "</tr>";
                        $raport  .= $raport1 . $raport2 . $raport3 . $raport4 . $raport5;
                    }
                    else
                    {
                        $zniszczony = true;
                        $raport .= "<br />". $lang['sys_destroyed'];
                    }
                    $raport .= "</table></center></th></tr></table>";
                    if (($zniszczony == false) and !($a == 8))
                    {
                        $AttackWaveStat    = sprintf ($lang['sys_attack_attack_wave'], floor($b["atakujacy"]["atak"]), floor($b["wrog"]["tarcza"]));
                        $DefendWavaStat    = sprintf ($lang['sys_attack_defend_wave'], floor($b["wrog"]["atak"]), floor($b["atakujacy"]["tarcza"]));
                        $raport           .= "<br /><center>".$AttackWaveStat."<br />".$DefendWavaStat."</center>";
                    }
                }
                switch ($FleetResult)
                {
                    case "a":
                        $raport           .= $lang['sys_attacker_won'] ."<br />";
                        $raport           .= $DebrisField ."<br />";
                        $raport           .= $introdestruc ."<br />";
                        $raport           .= $lang['sys_destruc_mess1'];
                        $raport           .= $finmess ."<br />";
                        $raport           .= $probalune ."<br />";
                        $raport           .= $probarip ."<br />";
                        break;
                    case "r":
                        $raport           .= $lang['sys_both_won'] ."<br />";
                        $raport           .= $DebrisField ."<br />";
                        $raport           .= $introdestruc ."<br />";
                        $raport           .= $lang['sys_destruc_stop'] ."<br />";
                        break;
                    case "w":
                        $raport           .= $lang['sys_defender_won'] ."<br />";
                        $raport           .= $DebrisField ."<br />";
                        $raport           .= $introdestruc ."<br />";
                        $raport           .= $lang['sys_destruc_stop'] ."<br />";
                        doquery("DELETE FROM {{table}} WHERE `fleet_id` = '". $FleetRow["fleet_id"] ."';", 'fleets');
                        break;
                }
                $raport           .= "</table>";
                $rid                  = md5($raport);
                $QryInsertRapport  = "INSERT INTO {{table}} SET ";
                $QryInsertRapport .= "`time` = UNIX_TIMESTAMP(), ";
                $QryInsertRapport .= "`id_owner1` = '". $FleetRow['fleet_owner'] ."', ";
                $QryInsertRapport .= "`id_owner2` = '". $TargetUserID ."', ";
                $QryInsertRapport .= "`rid` = '". $rid ."', ";
                $QryInsertRapport .= "`a_zestrzelona` = '". $a_zestrzelona ."', ";
                $QryInsertRapport .= "`raport` = '". addslashes ( $raport ) ."';";
                doquery( $QryInsertRapport , 'rw');
                $raport  = "<a href # OnClick="f( 'CombatReport.php?raport=". $rid ."', '');" >";
                $raport .= "<center>";
                if($FleetResult == "a")
                    $raport .= "<font color="green">";
                elseif ($FleetResult == "r")
                    $raport .= "<font color="orange">";
                elseif ($FleetResult == "w")
                    $raport .= "<font color="red">";
                $raport .= $lang['sys_mess_destruc_report'] ." [". $FleetRow['fleet_end_galaxy'] .":". $FleetRow['fleet_end_system'] .":". $FleetRow['fleet_end_planet'] ."] </font></a><br /><br />";
                $raport .= "<font color="red">". $lang['sys_perte_attaquant'] .": ". $zlom["atakujacy"] ."</font>";
                $raport .= "<font color="green">   ". $lang['sys_perte_defenseur'] .":". $zlom["wrog"] ."</font><br />" ;
                $raport .= $lang['sys_debris'] ." ". $lang['Metal'] .":<font color="#adaead">". $zlom['metal'] ."</font>   ". $lang['Crystal'] .":<font color="#ef51ef">". $zlom['crystal'] ."</font><br /></center>";
                $QryUpdateFleet  = "UPDATE {{table}} SET ";
                $QryUpdateFleet .= "`fleet_amount` = '". $FleetAmount ."', ";
                $QryUpdateFleet .= "`fleet_array` = '". $FleetArray ."', ";
                $QryUpdateFleet .= "`fleet_mess` = '1' ";
                $QryUpdateFleet .= "WHERE fleet_id = '". intval($FleetRow['fleet_id']) ."' ";
                $QryUpdateFleet .= "LIMIT 1 ;";
                doquery( $QryUpdateFleet , 'fleets');
                SendSimpleMessage ( $CurrentUserID, '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_destruc_report'], $raport );
                $raport2  = "<a href # OnClick="f( 'CombatReport.php?raport=". $rid ."', '');" >";
                $raport2 .= "<center>";
                if($FleetResult == "a")
                    $raport2 .= "<font color="red">";
                elseif ($FleetResult == "r")
                    $raport2 .= "<font color="orange">";
                elseif ($FleetResult == "w")
                    $raport2 .= "<font color="green">";
                $raport2 .= $lang['sys_mess_destruc_report'] ." [". $FleetRow['fleet_end_galaxy'] .":". $FleetRow['fleet_end_system'] .":". $FleetRow['fleet_end_planet'] ."] </font></a><br /><br />";
                SendSimpleMessage ( $TargetUserID, '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_destruc_report'], $raport2 );
            }
            $fquery = "";
            if ($FleetRow['fleet_end_time'] <= time())
            {
                if (!is_null($CurrentSet))
                {
                    foreach($CurrentSet as $Ship => $Count)
                    {
                        $fquery .= "`". $resource[$Ship] ."` = `". $resource[$Ship] ."` + '". $Count['count'] ."', ";
                    }
                }
                else
                {
                    $fleet = explode(";", $FleetRow['fleet_array']);
                    foreach($fleet as $a => $b)
                    {
                        if ($b != '')
                        {
                            $a = explode(",", $b);
                            $fquery .= "{$resource[$a[0]]}={$resource[$a[0]]} + {$a[1]}, n";
                        }
                    }
                }
                doquery ("DELETE FROM {{table}} WHERE `fleet_id` = " . $FleetRow["fleet_id"], 'fleets');
                if (!($FleetResult == "w"))
                {
                    $QryUpdatePlanet  = "UPDATE {{table}} SET ";
                    $QryUpdatePlanet .= $fquery;
                    $QryUpdatePlanet .= "`metal` = `metal` + ". $FleetRow['fleet_resource_metal'] .", ";
                    $QryUpdatePlanet .= "`crystal` = `crystal` + ". $FleetRow['fleet_resource_crystal'] .", ";
                    $QryUpdatePlanet .= "`deuterium` = `deuterium` + ". $FleetRow['fleet_resource_deuterium'] ." ";
                    $QryUpdatePlanet .= "WHERE ";
                    $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']." LIMIT 1 ;";
                    doquery( $QryUpdatePlanet, 'planets' );
                }
            }
        }
    }
    private function MissionCaseMIP ($FleetRow)
    {
        global $user, $phpEx, $pricelist, $lang, $resource, $CombatCaps;
        if ($FleetRow['fleet_start_time'] <= time())
        {
            if ($FleetRow['fleet_mess'] == 0)
            {
                if (!isset($CombatCaps[202]['sd']))
                    header("location:game." . $phpEx . "?page=fleet");
                $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'] . "';";
                $planet = doquery($QryTargetPlanet, 'planets', true);
                $QrySelect  = "SELECT defence_tech,military_tech FROM {{table}} ";
                $QrySelect .= "WHERE ";
                $QrySelect .= "`id` = '".$FleetRow['fleet_owner']."';";
                $UserFleet = doquery( $QrySelect, 'users',true);
                $verteidiger = $UserFleet["defence_tech"];
                $angreifer      = $UserFleet["military_tech"];
                $ids = array(
                0 => 401,
                1 => 402,
                2 => 403,
                3 => 404,
                4 => 405,
                5 => 406,
                6 => 407,
                7 => 408,
                8 => 502,
                9 => 503,
                10 => 409);
                $def =   array(
                0 => $planet['misil_launcher'],
                1 => $planet['small_laser'],
                2 => $planet['big_laser'],
                3 => $planet['gauss_canyon'],
                4 => $planet['ionic_canyon'],
                5 => $planet['buster_canyon'],
                6 => $planet['small_protection_shield'],
                7 => $planet['big_protection_shield'],
                8 => $planet['interceptor_misil'],
                9 => $planet['interplanetary_misil'],
                10 => $planet['planet_protector']);
                $DefenseLabel =   array(0 => $lang['tech'][401],
                1 => $lang['tech'][402],
                2 => $lang['tech'][403],
                3 => $lang['tech'][404],
                4 => $lang['tech'][405],
                5 => $lang['tech'][406],
                6 => $lang['tech'][407],
                7 => $lang['tech'][408],
                8 => $lang['tech'][502],
                9 => $lang['tech'][503],
                10 => $lang['tech'][409]);
                $message = '';
                if ($planet['interceptor_misil'] >= $FleetRow['fleet_amount'])
                {
                    $message = 'Tus misiles de intersepción destruyeron los misiles interplanetarios<br>';
                    $x = $resource[$ids[8]];
                    doquery("UPDATE {{table}} SET " . $x . " = " . $x . "-" . $FleetRow['fleet_amount'] . " WHERE id = " . $planet['id'], 'planets');
                }
                else
                {
                    if ($planet['interceptor_misil'] > 0)
                    {
                        $x = $resource[$ids[8]];
                        doquery("UPDATE {{table}} SET " . $x . " = '0'  WHERE id = " . $planet['id'], 'planets');
                        $message = $planet['interceptor_misil'] . "interplanetario misiles fueron destruidos por misiles interceptores.<br>";
                        $irak = $this->raketenangriff($verteidiger, $angreifer, $FleetRow['fleet_amount']-$planet['interceptor_misil'], $def, $FleetRow['fleet_target_obj']);
                    }
                    $irak = $this->raketenangriff($verteidiger, $angreifer, $FleetRow['fleet_amount'], $def, $FleetRow['fleet_target_obj']);
                    foreach ($irak['zerstoert'] as $id => $anzahl)
                    {
                        if ($id < 10)
                        {
                            if ($id != 8)
                                $message .= $DefenseLabel[$id] . " (- " . $anzahl . ")<br>";
                            $x = $resource[$ids[$id]];
                            $x1 = $x ."-". $anzahl;
                            doquery("UPDATE {{table}} SET " . $x . " = " . $x1 . " WHERE id = " . $planet['id'], 'planets');
                        }
                    }
                }
                $UserPlanet         = doquery("SELECT name FROM {{table}} WHERE id = '" . $FleetRow['fleet_owner'] . "'", 'planets',true);
                $name                 = $UserPlanet['name'];
                $name_deffer         = $QryTargetPlanet['name'];
                $message_vorlage      = 'Un ataque con misiles (' .$FleetRow['fleet_amount']. ') de ' .$name. ' ';
                $message_vorlage   .= 'al planeta ' .$name_deffer.'<br><br>';
                if (empty($message))
                    $message = "Tu planeta no tenia defensa!";
                doquery("INSERT INTO {{table}} SET
                `message_owner`='" . $FleetRow['fleet_target_owner'] . "',
                `message_sender`='".$UserPlanet['id']."',
                `message_time`=UNIX_TIMESTAMP(),
                `message_type`='3',
                `message_from`='Torre de Control',
                `message_subject`='Ataque con misiles',
                `message_text`='" . $message_vorlage . $message . "'" , 'messages');
                doquery("INSERT INTO {{table}} SET
                `message_owner`='" . $UserPlanet['id'] . "',
                `message_sender`='".$FleetRow['fleet_target_owner']."',
                `message_time`=UNIX_TIMESTAMP(),
                `message_type`='3',
                `message_from`='Torre de Control',
                `message_subject`='Ataque con misiles',
                `message_text`='" . $message_vorlage . $message . "'" , 'messages');
                doquery("DELETE FROM {{table}} WHERE fleet_id = '" . intval($FleetRow['fleet_id']) . "'", 'fleets');
            }
        }
        $FleetRow['fleet_start_time'] <= time();
    }
    private function MissionCaseExpedition($FleetRow)
    {
        global $lang, $resource, $pricelist;
        $FleetOwner = $FleetRow['fleet_owner'];
        $MessSender = $lang['sys_mess_qg'];
        $MessTitle  = $lang['sys_expe_report'];
        if ($FleetRow['fleet_mess'] == 0)
        {
            if ($FleetRow['fleet_end_stay'] < time())
            {
                $PointsFlotte = array(
                202 => 1.0,
                203 => 1.5,
                204 => 0.5,
                205 => 1.5,
                206 => 2.0,
                207 => 2.5,
                208 => 0.5,
                209 => 1.0,
                210 => 0.01,
                211 => 3.0,
                212 => 0.0,
                213 => 3.5,
                214 => 5.0,
                215 => 3.2,
                216 => 3.5,
                );
                $RatioGain = array (
                202 => 0.1,
                203 => 0.1,
                204 => 0.1,
                205 => 0.5,
                206 => 0.25,
                207 => 0.125,
                208 => 0.5,
                209 => 0.1,
                210 => 0.1,
                211 => 0.0625,
                212 => 0.0,
                213 => 0.0625,
                214 => 0.03125,
                215 => 0.0625,
                216 => 0.03125,
                );
                $FleetStayDuration     = ($FleetRow['fleet_end_stay'] - $FleetRow['fleet_start_time']) / 3600;
                $farray             = explode(";", $FleetRow['fleet_array']);
                foreach ($farray as $Item => $Group)
                {
                    if ($Group != '')
                    {
                        $Class                         = explode (",", $Group);
                        $TypeVaisseau                 = $Class[0];
                        $NbreVaisseau                 = $Class[1];
                        $LaFlotte[$TypeVaisseau]    = $NbreVaisseau;
                        $FleetCapacity                += $pricelist[$TypeVaisseau]['capacity'];
                        $FleetPoints                  += ($NbreVaisseau * $PointsFlotte[$TypeVaisseau]);
                    }
                }
                $FleetUsedCapacity  = $FleetRow['fleet_resource_metal'] + $FleetRow['fleet_resource_crystal'] + $FleetRow['fleet_resource_deuterium'] + $FleetRow['fleet_resource_darkmatter'];
                $FleetCapacity     -= $FleetUsedCapacity;
                $FleetCount         = $FleetRow['fleet_amount'];
                $Hasard             = rand(0, 10);
                $MessSender         = $lang['sys_mess_qg']. "(".$Hasard.")";
                if ($Hasard < 3)
                {
                    $Hasard     += 1;
                    $LostAmount  = (($Hasard * 33) + 1) / 100;
                    if ($LostAmount == 100)
                    {
                        SendSimpleMessage ( $FleetOwner, '', $FleetRow['fleet_end_stay'], 15, $MessSender, $MessTitle, $lang['sys_expe_blackholl_2'] );
                        doquery ("DELETE FROM {{table}} WHERE `fleet_id` = ". $FleetRow["fleet_id"], 'fleets');
                    }
                    else
                    {
                        foreach ($LaFlotte as $Ship => $Count)
                        {
                            $LostShips[$Ship] = intval($Count * $LostAmount);
                            $NewFleetArray   .= $Ship.",". ($Count - $LostShips[$Ship]) .";";
                        }
                        $QryUpdateFleet  = "UPDATE {{table}} SET ";
                        $QryUpdateFleet .= "`fleet_array` = '". $NewFleetArray ."', ";
                        $QryUpdateFleet .= "`fleet_mess` = '1'  ";
                        $QryUpdateFleet .= "WHERE ";
                        $QryUpdateFleet .= "`fleet_id` = '". $FleetRow["fleet_id"] ."';";
                        doquery( $QryUpdateFleet, 'fleets');
                        SendSimpleMessage ( $FleetOwner, '', $FleetRow['fleet_end_stay'], 15, $MessSender, $MessTitle, $lang['sys_expe_blackholl_1'] );
                    }
                }
                elseif ($Hasard == 3)
                {
                    doquery("UPDATE {{table}} SET `fleet_mess` = '1' WHERE `fleet_id` = ". $FleetRow["fleet_id"], 'fleets');
                    SendSimpleMessage ( $FleetOwner, '', $FleetRow['fleet_end_stay'], 15, $MessSender, $MessTitle, $lang['sys_expe_nothing_1'] );
                }
                elseif ($Hasard >= 4 && $Hasard < 7)
                {
                    if ($FleetCapacity > 5000)
                    {
                        $MinCapacity = $FleetCapacity - 5000;
                        $MaxCapacity = $FleetCapacity;
                        $FoundGoods  = rand($MinCapacity, $MaxCapacity);
                        $FoundMetal  = intval($FoundGoods / 2);
                        $FoundCrist  = intval($FoundGoods / 4);
                        $FoundDeute  = intval($FoundGoods / 6);
                        $FoundDark   = intval($FoundGoods / 20);
                        $QryUpdateFleet  = "UPDATE {{table}} SET ";
                        $QryUpdateFleet .= "`fleet_resource_metal` = `fleet_resource_metal` + '". $FoundMetal ."', ";
                        $QryUpdateFleet .= "`fleet_resource_crystal` = `fleet_resource_crystal` + '". $FoundCrist."', ";
                        $QryUpdateFleet .= "`fleet_resource_deuterium` = `fleet_resource_deuterium` + '". $FoundDeute ."', ";
                        $QryUpdateFleet .= "`fleet_resource_darkmatter` = `fleet_resource_darkmatter` + '". $FoundDark ."', ";
                        $QryUpdateFleet .= "`fleet_mess` = '1'  ";
                        $QryUpdateFleet .= "WHERE ";
                        $QryUpdateFleet .= "`fleet_id` = '". $FleetRow["fleet_id"] ."';";
                        doquery( $QryUpdateFleet, 'fleets');
                        $Message = sprintf($lang['sys_expe_found_goods'],
                        pretty_number($FoundMetal), $lang['Metal'],
                        pretty_number($FoundCrist), $lang['Crystal'],
                        pretty_number($FoundDeute), $lang['Deuterium'],
                        pretty_number($FoundDark), $lang['Darkmatter']);
                        SendSimpleMessage ( $FleetOwner, '', $FleetRow['fleet_end_stay'], 15, $MessSender, $MessTitle, $Message );
                    }
                }
                elseif ($Hasard == 7)
                {
                    doquery("UPDATE {{table}} SET `fleet_mess` = '1' WHERE `fleet_id` = ". $FleetRow["fleet_id"], 'fleets');
                    SendSimpleMessage ( $FleetOwner, '', $FleetRow['fleet_end_stay'], 15, $MessSender, $MessTitle, $lang['sys_expe_nothing_2'] );
                }
                elseif ($Hasard >= 8 && $Hasard < 11)
                {
                    $FoundChance = $FleetPoints / $FleetCount;
                    for ($Ship = 202; $Ship < 216; $Ship++)
                    {
                        if ($LaFlotte[$Ship] != 0)
                        {
                            $FoundShip[$Ship] = round($LaFlotte[$Ship] * $RatioGain[$Ship]) + 1;
                            if ($FoundShip[$Ship] > 0)
                                $LaFlotte[$Ship] += $FoundShip[$Ship];
                        }
                    }
                    $NewFleetArray = "";
                    $FoundShipMess = "";
                    foreach ($LaFlotte as $Ship => $Count)
                    {
                        if ($Count > 0)
                            $NewFleetArray   .= $Ship.",". $Count .";";
                    }
                    if ( $FoundShip != null )
                    {
                        foreach ($FoundShip as $Ship => $Count)
                        {
                            if ($Count != 0)
                                $FoundShipMess   .= $Count." ".$lang['tech'][$Ship].",";
                        }
                    }
                    $QryUpdateFleet  = "UPDATE {{table}} SET ";
                    $QryUpdateFleet .= "`fleet_array` = '". $NewFleetArray ."', ";
                    $QryUpdateFleet .= "`fleet_mess` = '1'  ";
                    $QryUpdateFleet .= "WHERE ";
                    $QryUpdateFleet .= "`fleet_id` = '". $FleetRow["fleet_id"] ."';";
                    doquery( $QryUpdateFleet, 'fleets');
                    $Message = $lang['sys_expe_found_ships']. $FoundShipMess . "";
                    SendSimpleMessage ( $FleetOwner, '', $FleetRow['fleet_end_stay'], 15, $MessSender, $MessTitle, $Message);
                }
            }
        }
        else
        {
            if ($FleetRow['fleet_end_time'] < time())
            {
                $farray = explode(";", $FleetRow['fleet_array']);
                foreach ($farray as $Item => $Group)
                {
                    if ($Group != '')
                    {
                        $Class = explode (",", $Group);
                        $FleetAutoQuery .= "`". $resource[$Class[0]]. "` = `". $resource[$Class[0]] ."` + ". $Class[1] .", ";
                    }
                }
                $QryUpdatePlanet  = "UPDATE {{table}} SET ";
                $QryUpdatePlanet .= $FleetAutoQuery;
                $QryUpdatePlanet .= "`metal` = `metal` + ". $FleetRow['fleet_resource_metal'] .", ";
                $QryUpdatePlanet .= "`crystal` = `crystal` + ". $FleetRow['fleet_resource_crystal'] .", ";
                $QryUpdatePlanet .= "`deuterium` = `deuterium` + ". $FleetRow['fleet_resource_deuterium'] ." ";
                $QryUpdatePlanet .= "WHERE ";
                $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'] ."' ";
                $QryUpdatePlanet .= "LIMIT 1 ;";
                doquery( $QryUpdatePlanet, 'planets');
                doquery("UPDATE `{{table}}` SET `darkmatter` = `darkmatter` + '".$FleetRow['fleet_resource_darkmatter']."' WHERE `id` =".$FleetRow['fleet_owner']." LIMIT 1 ;", 'users');
                doquery ("DELETE FROM {{table}} WHERE `fleet_id` = ". intval($FleetRow["fleet_id"]), 'fleets');
                SendSimpleMessage ( $FleetOwner, '', $FleetRow['fleet_end_time'], 15, $MessSender, $MessTitle, $lang['sys_expe_back_home'] );
            }
        }
    }
    public function __construct (&$planet)
    {
        global $resource;
        doquery("LOCK TABLE {{table}}aks WRITE, {{table}}rw WRITE, {{table}}errors WRITE, {{table}}messages WRITE, {{table}}fleets WRITE,  {{table}}planets WRITE, {{table}}galaxy WRITE ,{{table}}users WRITE", "");
        $QryFleet   = "SELECT * FROM {{table}} ";
        $QryFleet  .= "WHERE (";
        $QryFleet  .= "( ";
        $QryFleet  .= "`fleet_start_galaxy` = ". $planet['galaxy']      ." AND ";
        $QryFleet  .= "`fleet_start_system` = ". $planet['system']      ." AND ";
        $QryFleet  .= "`fleet_start_planet` = ". $planet['planet']      ." AND ";
        $QryFleet  .= "`fleet_start_type` = ".   $planet['planet_type'] ." ";
        $QryFleet  .= ") OR ( ";
        $QryFleet  .= "`fleet_end_galaxy` = ".   $planet['galaxy']      ." AND ";
        $QryFleet  .= "`fleet_end_system` = ".   $planet['system']      ." AND ";
        $QryFleet  .= "`fleet_end_planet` = ".   $planet['planet']      ." ) AND ";
        $QryFleet  .= "`fleet_end_type`= ".      $planet['planet_type'] ." ) AND ";
        $QryFleet  .= "( `fleet_start_time` < '". time() ."' OR `fleet_end_time` < '". time() ."' );";
        $fleetquery = doquery( $QryFleet, 'fleets' );
        while ($CurrentFleet = mysql_fetch_array($fleetquery))
        {
            switch ($CurrentFleet["fleet_mission"])
            {
                case 1:
                    $this->MissionCaseAttack($CurrentFleet);
                    break;
                case 2:
                    $this->MissionCaseACS($CurrentFleet);
                    break;
                case 3:
                    $this->MissionCaseTransport($CurrentFleet);
                    break;
                case 4:
                    $this->MissionCaseStay($CurrentFleet);
                    break;
                case 5:
                    $this->MissionCaseStayAlly($CurrentFleet);
                    break;
                case 6:
                    $this->MissionCaseSpy($CurrentFleet);
                    break;
                case 7:
                    $this->MissionCaseColonisation($CurrentFleet);
                    break;
                case 8:
                    $this->MissionCaseRecycling($CurrentFleet);
                    break;
                case 9:
                    $this->MissionCaseDestruction($CurrentFleet);
                    break;
                case 10:
                    $this->MissionCaseMIP($CurrentFleet);
                    break;
                case 15:
                    $this->MissionCaseExpedition($CurrentFleet);
                    break;
                default:
                    doquery("DELETE FROM {{table}} WHERE `fleet_id` = '". $CurrentFleet['fleet_id'] ."';", 'fleets');
            }
        }
        doquery("UNLOCK TABLES", "");
    }
}
?>