Вход Регистрация
Файл: 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>&nbsp;</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>&nbsp;</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>&nbsp;</td>";

                        
$Count   += $TargetPlanet[$resource[$Item]];
                        
$row++;
                        if (
$row == SPY_REPORT_ROW)
                        {
                            
$String  .= "</tr>";
                            
$row      = 0;
                        }
                    }
                }

                while (
$row != 0)
                {
                    
$String  .= "<td>&nbsp;</td><td>&nbsp;</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&oacute;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", "");

    }
}
?>
Онлайн: 0
Реклама