Beispiel #1
0
function ShowMoonOptAdmin($user)
{
    global $lang, $db, $displays;
    if ($user['authlevel'] < 2) {
        die($displays->message($lang['not_enough_permissions']));
    }
    if ($_POST && $_POST['add_moon']) {
        $PlanetID = $_POST['add_moon'];
        $MoonName = $_POST['name'];
        $QrySelectPlanet = "SELECT * FROM {{table}} ";
        $QrySelectPlanet .= "WHERE ";
        $QrySelectPlanet .= "`id` = '" . $PlanetID . "';";
        $PlanetSelected = $db->query($QrySelectPlanet, 'planets', true);
        $Galaxy = $PlanetSelected['galaxy'];
        $System = $PlanetSelected['system'];
        $Planet = $PlanetSelected['planet'];
        $Owner = $PlanetSelected['id_owner'];
        CreateOneMoonRecord($Galaxy, $System, $Planet, $Owner, $MoonName, 20);
        $displays->message($lang['mo_moon_added'], "admin.php?page=moonopt", 2);
    } elseif ($_POST && $_POST['del_moon']) {
        $MoonID = $_POST['del_moon'];
        $QrySelectMoon = "SELECT * FROM {{table}} ";
        $QrySelectMoon .= "WHERE ";
        $QrySelectMoon .= "`id` = '" . $MoonID . "';";
        $MoonSelected = $db->query($QrySelectMoon, 'planets', true);
        $Galaxy = $MoonSelected['galaxy'];
        $System = $MoonSelected['system'];
        $Planet = $MoonSelected['planet'];
        $Owner = $MoonSelected['id_owner'];
        $DeleteMoonQry1 = "DELETE FROM {{table}} WHERE `id` = '" . $MoonID . "';";
        $db->query($DeleteMoonQry1, 'planets');
        $QryUpdateGalaxy = "UPDATE {{table}} SET ";
        $QryUpdateGalaxy .= "`id_luna` = '0' ";
        $QryUpdateGalaxy .= "WHERE ";
        $QryUpdateGalaxy .= "`galaxy` = '" . $Galaxy . "' AND ";
        $QryUpdateGalaxy .= "`system` = '" . $System . "' AND ";
        $QryUpdateGalaxy .= "`planet` = '" . $Planet . "' ";
        $QryUpdateGalaxy .= "LIMIT 1;";
        $db->query($QryUpdateGalaxy, 'galaxy');
        $displays->message($lang['mo_moon_deleted'], "admin.php?page=moonopt", 2);
    } else {
        $displays->assignContent('adm/moonoptions');
        $displays->display();
    }
}
 function dm()
 {
     global $USER, $PLANET, $LNG, $UNI;
     if ($PLANET['der_metal'] + $PLANET['der_crystal'] <= 50000000) {
         $this->printMessage("you dont have enough debris on the planet", array('game.php?page=createMoon', 3));
         die;
     } elseif ($USER['darkmatter'] < 2000000) {
         $this->printMessage($LNG['create_4'], array('game.php?page=createMoon', 3));
         die;
     } else {
         if ($PLANET['planet_type'] == 1 && $PLANET['id_luna'] == 0) {
             require_once ROOT_PATH . 'includes/functions/CreateOneMoonRecord.php';
             $a = mt_rand(8000, 9000);
             // how big ?
             $u_have_moon = CreateOneMoonRecord($PLANET['galaxy'], $PLANET['system'], $PLANET['planet'], $PLANET['universe'], $USER['id'], '', 'Moon', '', $a);
             $USER['darkmatter'] -= 2000000;
             $this->printMessage($LNG['create_2'], array('game.php?page=overview', 3));
         } else {
             $this->printMessage($LNG['create_3'], true, array('game.php?page=overview', 2));
             die;
         }
         $this->tplObj->assign_vars(array());
     }
 }
 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 = "******";
             $QryCurrentUser .= "WHERE ";
             $QryCurrentUser .= "`id` = '" . $FleetRow['fleet_owner'] . "';";
             $CurrentUser = doquery($QryCurrentUser, 'users', true);
             $CurrentUserID = $CurrentUser['id'];
             $QryTargetUser = "******";
             $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);
             $owners = $FleetRow['fleet_owner'] . "," . $TargetUserID;
             $QryInsertRapport = "INSERT INTO {{table}} SET ";
             $QryInsertRapport .= "`time` = UNIX_TIMESTAMP(), ";
             $QryInsertRapport .= "`owners` = '" . $owners . "', ";
             $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');
             }
         }
     }
 }
/**
* MissionCaseDestruction.php
* Commencé Par Tom
* Terminé par juju67 et Moa666
* @version 1
* @copyright 2008
*/
function MissionCaseDestruction($FleetRow)
{
    global $user, $phpEx, $ugamela_root_path, $pricelist, $lang, $resource, $CombatCaps;
    includeLang('system');
    if ($FleetRow['fleet_start_time'] <= time()) {
        if ($FleetRow['fleet_mess'] == 0) {
            if (!isset($CombatCaps[202]['sd'])) {
                message("<font color=\"red\">" . $lang['sys_no_vars'] . "</font>", $lang['sys_error'], "fleet." . $phpEx, 2);
            }
            $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 = "******";
            $QryCurrentUser .= "WHERE ";
            $QryCurrentUser .= "`id` = '" . $FleetRow['fleet_owner'] . "';";
            $CurrentUser = doquery($QryCurrentUser, 'users', true);
            $CurrentUserID = $CurrentUser['id'];
            $QryTargetUser = "******";
            $QryTargetUser .= "WHERE ";
            $QryTargetUser .= "`id` = '" . $TargetUserID . "';";
            $TargetUser = doquery($QryTargetUser, 'users', true);
            $QryTargetTech = "SELECT ";
            $QryTargetTech .= "`military_tech`, `defence_tech`, `shield_tech` ";
            $QryTargetTech .= "FROM {{table}} ";
            $QryTargetTech .= "WHERE ";
            $QryTargetTech .= "`id` = '" . $TargetUserID . "';";
            $TargetTechno = doquery($QryTargetTech, 'users', true);
            $QryCurrentTech = "SELECT ";
            $QryCurrentTech .= "`military_tech`, `defence_tech`, `shield_tech` ";
            $QryCurrentTech .= "FROM {{table}} ";
            $QryCurrentTech .= "WHERE ";
            $QryCurrentTech .= "`id` = '" . $CurrentUserID . "';";
            $CurrentTechno = doquery($QryCurrentTech, '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];
                }
            }
            include_once $ugamela_root_path . 'includes/ataki.' . $phpEx;
            // Calcul de la duree de traitement (initialisation)
            $mtime = microtime();
            $mtime = explode(" ", $mtime);
            $mtime = $mtime[1] + $mtime[0];
            $starttime = $mtime;
            $walka = walka($CurrentSet, $TargetSet, $CurrentTechno, $TargetTechno);
            // Calcul de la duree de traitement (calcul)
            $mtime = microtime();
            $mtime = explode(" ", $mtime);
            $mtime = $mtime[1] + $mtime[0];
            $endtime = $mtime;
            $totaltime = $endtime - $starttime;
            // Ce qu'il reste de l'attaquant
            $CurrentSet = $walka["atakujacy"];
            // Ce qu'il reste de l'attaqué
            $TargetSet = $walka["wrog"];
            // Le resultat de la bataille
            $FleetResult = $walka["wygrana"];
            // Rapport long (rapport de bataille detaillé)
            $dane_do_rw = $walka["dane_do_rw"];
            // Rapport court (cdr + unitées perdues)
            $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") {
                //debut des probabilite de destruction
                //Nous y voila! l attaquant a gagne, nous allons voir ses chances de detruire la lune
                $destructionl1 = 100 - sqrt($TargetPlanet['diameter']);
                $destructionl21 = $destructionl1 * sqrt($CurrentSet['214']['count']);
                $destructionl2 = $destructionl21 / 1;
                //ici c est la sensibilite de la destruction 1 c est l equivalent d ogame a 12 on a environ 2% pour 1000 rip
                //maintenant qu on sait quelle chance tantons la destruction, faites vos jeux croupier
                //$chance = round($destructionl2); // En pourcentage
                if ($destructionl2 > 100) {
                    $chance = '100';
                } else {
                    $chance = round($destructionl2);
                    // En pourcentage
                }
                $tirage = mt_rand(0, 100);
                $probalune = sprintf($lang['sys_destruc_lune'], $chance);
                if ($tirage <= $chance) {
                    $resultat = '1';
                    // lune detruite
                    $finmess = $lang['sys_destruc_reussi'];
                    //destruction de la lune dabord dans la liste des planetes puis dans la liste des lunes et enfin dans la galaxie
                    doquery("DELETE FROM {{table}} WHERE `id` = '" . $TargetPlanet['id'] . "';", 'planets');
                    $Qrydestructionlune = "UPDATE {{table}} SET ";
                    $Qrydestructionlune .= "`destruyed` = '1' ";
                    $Qrydestructionlune .= "WHERE ";
                    $Qrydestructionlune .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
                    $Qrydestructionlune .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
                    $Qrydestructionlune .= "`lunapos` = '" . $FleetRow['fleet_end_planet'] . "' ";
                    $Qrydestructionlune .= "LIMIT 1 ;";
                    //$Qrydestructionlune .= ";";
                    doquery($Qrydestructionlune, 'lunas');
                    $Qrydestructionlune2 = "UPDATE {{table}} SET ";
                    $Qrydestructionlune2 .= "`id_luna` = '0' ";
                    $Qrydestructionlune2 .= "WHERE ";
                    $Qrydestructionlune2 .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
                    $Qrydestructionlune2 .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
                    $Qrydestructionlune2 .= "`planet` = '" . $FleetRow['fleet_end_planet'] . "' ";
                    $Qrydestructionlune2 .= "LIMIT 1 ;";
                    //$Qrydestructionlune2 .= ";";
                    doquery($Qrydestructionlune2, 'galaxy');
                    //la lune est detruite, alors on redirige les flottes sur la planete
                    $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');
                    //maintenant on va verifier si la vue du joueur n est pas calee sur la lune qui est detruite
                    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';
                }
                // la lune a resistee
                //la lune a resistee, alors voyons les chances que les rip soient detruites
                $destructionrip = sqrt($TargetPlanet['diameter']) / 2;
                //maintenant qu on sait quelle chance tantons la destruction, allez roule croupier
                $chance2 = round($destructionrip);
                // En pourcentage
                if ($resultat == 0) {
                    $tirage2 = mt_rand(0, 100);
                    $probarip = sprintf($lang['sys_destruc_rip'], $chance2);
                    if ($tirage2 <= $chance2) {
                        $resultat2 = ' detruite 1';
                        // RIP detruite
                        $finmess = $lang['sys_destruc_echec'];
                        doquery("DELETE FROM {{table}} WHERE `fleet_id` = '" . $FleetRow["fleet_id"] . "';", 'fleets');
                    } else {
                        $resultat2 = 'sauvees 0';
                        // les RIP sont saines et sauves
                        $finmess = $lang['sys_destruc_null'];
                    }
                }
                //fin
            }
            $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']);
            // Mise a jour de l'enregistrement de la planete attaquée
            $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');
            // Mise a jour du champ de ruine devant la planete attaquée
            $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');
            // Là on va discuter le bout de gras pour voir s'il y a moyen d'avoir une Lune !
            $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;
            }
            if ($FleetDebris < 100000) {
                $UserChance = 0;
                $ChanceMoon = "";
            } 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'] = $CurrentTechno["military_tech"] * 10;
            $AttackTechon['B'] = $CurrentTechno["defence_tech"] * 10;
            $AttackTechon['C'] = $CurrentTechno["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'] = $TargetTechno["military_tech"] * 10;
            $DefendTechon['B'] = $TargetTechno["defence_tech"] * 10;
            $DefendTechon['C'] = $TargetTechno["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;
                default:
                    break;
            }
            $SimMessage = sprintf($lang['sys_rapport_build_time'], $totaltime);
            $raport .= $SimMessage . "</table>";
            $dpath = !$user["dpath"] ? DEFAULT_SKINPATH : $user["dpath"];
            $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');
            // Colorisation du résumé de rapport pour l'attaquant
            $raport = "<a href # OnClick=\"f( 'rw.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 = '" . $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);
            // Colorisation du résumé de rapport pour le defenseur
            $raport2 = "<a href # OnClick=\"f( 'rw.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);
        }
        // Retour de flotte (s'il en reste)
        $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');
            }
        }
    }
}
Beispiel #5
0
 function TargetEvent()
 {
     global $pricelist, $resource, $reslist, $db, $LANG;
     $targetPlanet = $db->uniquequery("SELECT * FROM " . PLANETS . " WHERE `id` = '" . $this->_fleet['fleet_end_id'] . "';");
     $targetUser = $db->uniquequery("SELECT * FROM " . USERS . " WHERE id = '" . $targetPlanet['id_owner'] . "';");
     require_once ROOT_PATH . 'includes/classes/class.PlanetRessUpdate.php';
     $PlanetRess = new ResourceUpdate();
     list($targetUser, $targetPlanet) = $PlanetRess->CalcResource($targetUser, $targetPlanet, true, $this->_fleet['fleet_start_time']);
     $TargetUserID = $targetUser['id'];
     $attackFleets = array();
     $AttackerRow['id'] = array();
     $AttackerRow['name'] = array();
     $DefenderRow['id'] = array();
     $DefenderRow['name'] = array();
     if ($this->_fleet['fleet_group'] != 0) {
         $db->query("DELETE FROM " . AKS . " WHERE `id` = '" . $this->_fleet['fleet_group'] . "';");
         $fleets = $db->query("SELECT * FROM " . FLEETS . " WHERE fleet_group = '" . $this->_fleet['fleet_group'] . "';");
         while ($fleet = $db->fetch_array($fleets)) {
             $attackFleets[$fleet['fleet_id']]['fleet'] = $fleet;
             $attackFleets[$fleet['fleet_id']]['user'] = $db->uniquequery("SELECT id,username,military_tech,defence_tech,shield_tech,rpg_amiral,dm_defensive,dm_attack FROM " . USERS . " WHERE `id` = '" . $fleet['fleet_owner'] . "';");
             $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];
             }
             $AttackerRow['id'][] = $attackFleets[$fleet['fleet_id']]['user']['id'];
             $AttackerRow['name'][] = $attackFleets[$fleet['fleet_id']]['user']['username'];
         }
     } else {
         $attackFleets[$this->_fleet['fleet_id']]['fleet'] = $this->_fleet;
         $attackFleets[$this->_fleet['fleet_id']]['user'] = $db->uniquequery("SELECT id,username,military_tech,defence_tech,shield_tech,rpg_amiral,dm_defensive,dm_attack FROM " . USERS . " WHERE id = '" . $this->_fleet['fleet_owner'] . "';");
         $attackFleets[$this->_fleet['fleet_id']]['detail'] = array();
         $temp = explode(';', $this->_fleet['fleet_array']);
         foreach ($temp as $temp2) {
             $temp2 = explode(',', $temp2);
             if ($temp2[0] < 100) {
                 continue;
             }
             if (!isset($attackFleets[$this->_fleet['fleet_id']]['detail'][$temp2[0]])) {
                 $attackFleets[$this->_fleet['fleet_id']]['detail'][$temp2[0]] = 0;
             }
             $attackFleets[$this->_fleet['fleet_id']]['detail'][$temp2[0]] += $temp2[1];
         }
         $AttackerRow['id'][] = $attackFleets[$this->_fleet['fleet_id']]['user']['id'];
         $AttackerRow['name'][] = $attackFleets[$this->_fleet['fleet_id']]['user']['username'];
     }
     $defense = array();
     $def = $db->query("SELECT * FROM " . FLEETS . " WHERE `fleet_mission` = '5' AND `fleet_end_id` = '" . $this->_fleet['fleet_end_id'] . "' AND fleet_start_time <= '" . TIMESTAMP . "' AND fleet_end_stay >= '" . TIMESTAMP . "';");
     while ($defRow = $db->fetch_array($def)) {
         $defense[$defRow['fleet_id']]['user'] = $db->uniquequery("SELECT id,username,military_tech,defence_tech,shield_tech,rpg_amiral,dm_defensive,dm_attack FROM " . USERS . " WHERE id = '" . $defRow['fleet_owner'] . "';");
         $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];
         }
         $DefenderRow['id'][] = $defense[$defRow['fleet_id']]['user']['id'];
         $DefenderRow['name'][] = $defense[$defRow['fleet_id']]['user']['username'];
     }
     $defense[0]['def'] = array();
     $defense[0]['user'] = $targetUser;
     $DefenderRow['id'][] = $defense[0]['user']['id'];
     $DefenderRow['name'][] = $defense[0]['user']['username'];
     foreach (array_merge($reslist['fleet'], $reslist['defense']) as $ID) {
         if ($ID >= 500) {
             continue;
         }
         $defense[0]['def'][$ID] = $targetPlanet[$resource[$ID]];
     }
     $Attacker['id'] = array_unique($AttackerRow['id']);
     $Attacker['name'] = array_unique($AttackerRow['name']);
     $Defender['id'] = array_unique($DefenderRow['id']);
     $Defender['name'] = array_unique($DefenderRow['name']);
     $CONF = $db->uniquequery("SELECT `Fleet_Cdr`, `Defs_Cdr` FROM `" . CONFIG . "` WHERE `uni` = '" . $this->_fleet['fleet_universe'] . "';");
     require_once 'calculateAttack.php';
     $result = calculateAttack($attackFleets, $defense, $CONF['Fleet_Cdr'], $CONF['Defs_Cdr']);
     $SQL = "";
     foreach ($attackFleets as $fleetID => $attacker) {
         $fleetArray = '';
         $totalCount = 0;
         foreach ($attacker['detail'] as $element => $amount) {
             if ($amount) {
                 $fleetArray .= $element . ',' . floattostring($amount) . ';';
             }
             $totalCount += $amount;
         }
         $SQL .= $totalCount <= 0 ? "DELETE FROM " . FLEETS . " WHERE `fleet_id`= '" . $fleetID . "';" : "UPDATE " . FLEETS . " SET `fleet_mess` = '1', `fleet_array` = '" . substr($fleetArray, 0, -1) . "', `fleet_amount` = '" . $totalCount . "' WHERE `fleet_id` = '" . $fleetID . "';";
     }
     if ($result['won'] == "a") {
         require_once 'calculateSteal.php';
         $steal = calculateSteal($attackFleets, $targetPlanet);
     }
     foreach ($defense as $fleetID => $defender) {
         if ($fleetID != 0) {
             $fleetArray = '';
             $totalCount = 0;
             foreach ($defender['def'] as $element => $amount) {
                 if ($amount) {
                     $fleetArray .= $element . ',' . floattostring($amount) . ';';
                 }
                 $totalCount += $amount;
             }
             $SQL .= $totalCount <= 0 ? "DELETE FROM " . FLEETS . " WHERE `fleet_id`= '" . $fleetID . "';" : "UPDATE " . FLEETS . " SET `fleet_array` = '" . substr($fleetArray, 0, -1) . "', `fleet_amount` = '" . $totalCount . "' WHERE `fleet_id` = '" . $fleetID . "';";
         } else {
             $fleetArray = '';
             foreach ($defender['def'] as $element => $amount) {
                 $fleetArray .= "`" . $resource[$element] . "` = '" . floattostring($amount) . "', ";
             }
             $SQL .= "UPDATE " . PLANETS . " SET ";
             $SQL .= $fleetArray;
             $SQL .= "`metal` = `metal` - '" . $steal['metal'] . "', ";
             $SQL .= "`crystal` = `crystal` - '" . $steal['crystal'] . "', ";
             $SQL .= "`deuterium` = `deuterium` - '" . $steal['deuterium'] . "' ";
             $SQL .= "WHERE ";
             $SQL .= "`id` = '" . $this->_fleet['fleet_end_id'] . "';";
         }
     }
     $db->multi_query($SQL);
     if ($this->_fleet['fleet_end_type'] == 3) {
         $targetPlanet = array_merge($targetPlanet, $db->uniquequery("SELECT `der_metal`, `der_crystal` FROM " . PLANETS . " WHERE `id_luna` = '" . $this->_fleet['fleet_end_id'] . "';"));
     }
     $ShootMetal = $result['debree']['att'][0] + $result['debree']['def'][0];
     $ShootCrystal = $result['debree']['att'][1] + $result['debree']['def'][1];
     $FleetDebris = $ShootMetal + $ShootCrystal;
     $DerbisMetal = $targetPlanet['der_metal'] + $ShootMetal;
     $DerbisCrystal = $targetPlanet['der_crystal'] + $ShootCrystal;
     $MoonChance = min(round($FleetDebris / 100000 * MOON_CHANCE_FACTOR, 0), MAX_MOON_CHANCE);
     $UserChance = mt_rand(1, 100);
     if ($targetPlanet['planet_type'] == 1 && $targetPlanet['id_luna'] == 0 && $MoonChance > 0 && $UserChance <= $MoonChance) {
         require_once ROOT_PATH . 'includes/functions/CreateOneMoonRecord.php';
         $INFO['moon']['name'] = CreateOneMoonRecord($this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet'], $this->_fleet['fleet_universe'], $TargetUserID, $this->_fleet['fleet_start_time'], '', $MoonChance);
         $INFO['end_galaxy'] = $this->_fleet['fleet_end_galaxy'];
         $INFO['end_system'] = $this->_fleet['fleet_end_system'];
         $INFO['end_planet'] = $this->_fleet['fleet_end_planet'];
         if (DESTROY_DERBIS_MOON_CREATE) {
             $DerbisMetal = 0;
             $DerbisCrystal = 0;
         }
     }
     $INFO['steal'] = $steal;
     $INFO['fleet_start_time'] = $this->_fleet['fleet_start_time'];
     $INFO['moon']['des'] = 0;
     $INFO['moon']['chance'] = $MoonChance;
     $INFO['attvsdef'] = implode(' & ', $Attacker['name']) . ' vs ' . implode(' & ', $Defender['name']);
     require_once 'GenerateReport.php';
     $raport = GenerateReport($result, $INFO);
     $rid = md5(microtime(true) . mt_rand(1, 100));
     file_put_contents(ROOT_PATH . 'raports/raport_' . $rid . '.php', '<?php' . "\n" . '$raport = ' . $raport . ';' . "\n" . '?>');
     file_put_contents(ROOT_PATH . 'raports/topkb_' . $rid . '.php', '<?php' . "\n" . '$raport = ' . preg_replace("/\\[\\d+\\:\\d+\\:\\d+\\]/i", "[X:X:X]", $raport) . ';' . "\n" . '?>');
     if (DEBUG_EXTRA) {
         file_put_contents(ROOT_PATH . 'includes/attack.log', date('[d-M-Y H:i:s]', $this->_fleet['fleet_start_time']) . '(FleetID: ' . $this->_fleet['fleet_id'] . ') Attacker: ' . $this->_fleet['fleet_owner'] . '/ Defender: ' . $this->_fleet['fleet_target_owner'] . ' | TF: ' . floattostring($DerbisMetal) . '/' . floattostring($DerbisCrystal));
     }
     $WhereAtt = "";
     $WhereDef = "";
     foreach ($Attacker['id'] as $id) {
         $WhereAtt .= "`id` = '" . $id . "' OR ";
     }
     foreach ($Defender['id'] as $id) {
         $WhereDef .= "`id` = '" . $id . "' OR ";
     }
     $Won = 0;
     $Lose = 0;
     $Draw = 0;
     switch ($result['won']) {
         case "a":
             $Won = 1;
             break;
         case "w":
             $Draw = 1;
             break;
         case "r":
             $Lose = 1;
             break;
     }
     $SQL = "UPDATE " . PLANETS . " SET ";
     $SQL .= "`der_metal` = " . floattostring($DerbisMetal) . ", ";
     $SQL .= "`der_crystal` = " . floattostring($DerbisCrystal) . " ";
     $SQL .= "WHERE ";
     $SQL .= "`universe` = '" . $this->_fleet['fleet_universe'] . "' AND ";
     $SQL .= "`galaxy` = '" . $this->_fleet['fleet_end_galaxy'] . "' AND ";
     $SQL .= "`system` = '" . $this->_fleet['fleet_end_system'] . "' AND ";
     $SQL .= "`planet` = '" . $this->_fleet['fleet_end_planet'] . "' AND ";
     $SQL .= "`planet_type` = '1';";
     $SQL .= "INSERT INTO " . RW . " SET ";
     $SQL .= "`time` = '" . $this->_fleet['fleet_start_time'] . "', ";
     $SQL .= "`owners` = '" . implode(',', array_merge($Attacker['id'], $Defender['id'])) . "', ";
     $SQL .= "`rid` = '" . $rid . "';";
     $SQL .= "INSERT INTO " . TOPKB . " SET ";
     $SQL .= "`time` = '" . $this->_fleet['fleet_start_time'] . "', ";
     $SQL .= "`id_owner1` = '" . implode(',', $Attacker['id']) . "', ";
     $SQL .= "`angreifer` = '" . implode(' & ', $Attacker['name']) . "', ";
     $SQL .= "`id_owner2` = '" . implode(',', $Defender['id']) . "', ";
     $SQL .= "`defender` = '" . implode(' & ', $Defender['name']) . "', ";
     $SQL .= "`gesamtunits` = '" . floattostring($result['lost']['att'] + $result['lost']['def']) . "', ";
     $SQL .= "`rid` = '" . $rid . "', ";
     $SQL .= "`universe` = '" . $this->_fleet['fleet_universe'] . "', ";
     $SQL .= "`fleetresult` = '" . $result['won'] . "';";
     $SQL .= "UPDATE " . USERS . " SET ";
     $SQL .= "`wons` = wons + " . $Won . ", ";
     $SQL .= "`loos` = loos + " . $Lose . ", ";
     $SQL .= "`draws` = draws + " . $Draw . ", ";
     $SQL .= "`kbmetal` = kbmetal + " . floattostring($ShootMetal) . ", ";
     $SQL .= "`kbcrystal` = kbcrystal + " . floattostring($ShootCrystal) . ", ";
     $SQL .= "`lostunits` = lostunits + " . floattostring($result['lost']['att']) . ", ";
     $SQL .= "`desunits` = desunits + " . floattostring($result['lost']['def']) . " ";
     $SQL .= "WHERE ";
     $SQL .= substr($WhereAtt, 0, -4) . ";";
     $SQL .= "UPDATE " . USERS . " SET ";
     $SQL .= "`wons` = wons + " . $Lose . ", ";
     $SQL .= "`loos` = loos + " . $Won . ", ";
     $SQL .= "`draws` = draws + " . $Draw . ", ";
     $SQL .= "`kbmetal` = kbmetal + " . floattostring($ShootMetal) . ", ";
     $SQL .= "`kbcrystal` = kbcrystal + " . floattostring($ShootCrystal) . ", ";
     $SQL .= "`lostunits` = lostunits + " . floattostring($result['lost']['def']) . ", ";
     $SQL .= "`desunits` = desunits + " . floattostring($result['lost']['att']) . " ";
     $SQL .= "WHERE ";
     $SQL .= substr($WhereDef, 0, -4) . ";";
     $db->multi_query($SQL);
     switch ($result['won']) {
         case "r":
             $ColorAtt = "red";
             $ColorDef = "green";
             break;
         case "w":
             $ColorAtt = "orange";
             $ColorDef = "orange";
         case "a":
             $ColorAtt = "green";
             $ColorDef = "red";
             break;
     }
     foreach ($Attacker['id'] as $AttackersID) {
         if (empty($AttackersID)) {
             continue;
         }
         $LNG = $LANG->GetUserLang($AttackersID);
         $MessageAtt = sprintf('<a href="CombatReport.php?raport=%s" onclick="OpenPopup(\'CombatReport.php?raport=%s\', \'combat\', screen.width, screen.height);return false" target="combat"><center><font color="%s">%s %s</font></a><br><br><font color="%s">%s: %s</font> <font color="%s">%s: %s</font><br>%s %s:<font color="#adaead">%s</font> %s:<font color="#ef51ef">%s</font> %s:<font color="#f77542">%s</font><br>%s %s:<font color="#adaead">%s</font> %s:<font color="#ef51ef">%s</font><br></center>', $rid, $rid, $ColorAtt, $LNG['sys_mess_attack_report'], sprintf($LNG['sys_adress_planet'], $this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet']), $ColorAtt, $LNG['sys_perte_attaquant'], pretty_number($result['lost']['att']), $ColorDef, $LNG['sys_perte_defenseur'], pretty_number($result['lost']['def']), $LNG['sys_gain'], $LNG['Metal'], pretty_number($steal['metal']), $LNG['Crystal'], pretty_number($steal['crystal']), $LNG['Deuterium'], pretty_number($steal['deuterium']), $LNG['sys_debris'], $LNG['Metal'], pretty_number($result['debree']['att'][0] + $result['debree']['def'][0]), $LNG['Crystal'], pretty_number($result['debree']['att'][1] + $result['debree']['def'][1]));
         SendSimpleMessage($AttackersID, '', $this->_fleet['fleet_start_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_attack_report'], $MessageAtt);
     }
     foreach ($Defender['id'] as $DefenderID) {
         if (empty($DefenderID)) {
             continue;
         }
         $LNG = $LANG->GetUserLang($DefenderID);
         $MessageDef = sprintf('<a href="CombatReport.php?raport=%s" onclick="OpenPopup(\'CombatReport.php?raport=%s\', \'combat\', screen.width, screen.height);return false" target="combat"><center><font color="%s">%s %s</font></a><br><br><font color="%s">%s: %s</font> <font color="%s">%s: %s</font><br>%s %s:<font color="#adaead">%s</font> %s:<font color="#ef51ef">%s</font> %s:<font color="#f77542">%s</font><br>%s %s:<font color="#adaead">%s</font> %s:<font color="#ef51ef">%s</font><br></center>', $rid, $rid, $ColorDef, $LNG['sys_mess_attack_report'], sprintf($LNG['sys_adress_planet'], $this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet']), $ColorDef, $LNG['sys_perte_attaquant'], pretty_number($result['lost']['att']), $ColorAtt, $LNG['sys_perte_defenseur'], pretty_number($result['lost']['def']), $LNG['sys_gain'], $LNG['Metal'], pretty_number($steal['metal']), $LNG['Crystal'], pretty_number($steal['crystal']), $LNG['Deuterium'], pretty_number($steal['deuterium']), $LNG['sys_debris'], $LNG['Metal'], pretty_number($result['debree']['att'][0] + $result['debree']['def'][0]), $LNG['Crystal'], pretty_number($result['debree']['att'][1] + $result['debree']['def'][1]));
         SendSimpleMessage($DefenderID, '', $this->_fleet['fleet_start_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_attack_report'], $MessageDef);
     }
 }
Beispiel #6
0
 function formaterw()
 {
     //global $att,$def,$rondaArrayinfo;
     global $lang;
     $html = "<center>";
     foreach ($this->rondaArray as $num_ronda => $array) {
         $html .= "<table border=1 width=100%>\n                    <tr>\n                        <th colspan=10>Ronda {$num_ronda}</th>\n                    </tr>";
         foreach ($array as $Type_person => $arrays) {
             $num_div = count($this->rondaArray[$num_ronda][$Type_person]);
             $name = "";
             $flee = "";
             for ($i = 1; $i <= $num_div; $i++) {
                 $div = 10 / $num_div;
                 $name .= "<th colspan={$div}>";
                 if ($Type_person == "att") {
                     $name .= "Atacante ";
                 } else {
                     $name .= "Defensor ";
                 }
                 $person = $this->{$Type_person};
                 $name .= "{$person[$i]["user"]["username"]}<br />Armas: " . $person[$i]["user"]["military_tech"] * 10 . "% Escudo: " . $person[$i]["user"]["shield_tech"] * 10 . "% Blindaje: " . $person[$i]["user"]["defence_tech"] * 10 . "%";
                 $name .= "</th>";
                 $flee .= "<th colspan={$div}>\n<center><table border=1 >";
                 if (!empty($this->rondaArray[$num_ronda][$Type_person][$i])) {
                     $echo_tipo = "<tr><th>Tipo</th>";
                     $echo_count = "<tr><th>Cantidad</th>";
                     $echo_attack = "<tr><th>Armas</th>";
                     $echo_shield = "<tr><th>Escudos</th>";
                     $echo_defense = "<tr><th>Casco</th>";
                     foreach ($this->rondaArray[$num_ronda][$Type_person][$i] as $type => $array_fleet) {
                         $echo_tipo .= "<th>[ship[" . $type . "]]</th>\n";
                         $echo_count .= "<th>" . number_format($array_fleet["count"], 0, "", ".") . "</th>\n";
                         $echo_attack .= "<th>" . number_format($array_fleet["ataque"], 0, "", ".") . "</th>\n";
                         $echo_shield .= "<th>" . number_format($array_fleet["escudos"], 0, "", ".") . "</th>\n";
                         $echo_defense .= "<th>" . number_format($array_fleet["casco"], 0, "", ".") . "</th>\n";
                     }
                     $flee .= $echo_tipo . "</tr>";
                     $flee .= $echo_count . "</tr>";
                     $flee .= $echo_attack . "</tr>";
                     $flee .= $echo_shield . "</tr>";
                     $flee .= $echo_defense . "</tr>";
                 } else {
                     $flee .= "<tr><th colspan={$div}>DESTRUIDO</th></tr>";
                 }
                 $flee .= "</table></center></th>";
             }
             $html .= "<tr>";
             $html .= $name;
             $html .= "</tr><tr>";
             $html .= $flee;
             $html .= "</tr>";
         }
         $html .= "</table>";
         //if()
         if (is_array($this->rondaArrayinfo[$num_ronda + 1])) {
             $html .= "La flota atacante dispara con una fuerza total de ";
             $html .= number_format($this->rondaArrayinfo[$num_ronda + 1]["att"]["ataquetotal"], 0, "", ".");
             $html .= " sobre el defensor. Los escudos del defensor absorven ";
             if ($this->rondaArrayinfo[$num_ronda + 1]["att"]["ataquetotal"] > $this->rondaArrayinfo[$num_ronda + 1]["att"]["escudototal"]) {
                 $html .= number_format($this->rondaArrayinfo[$num_ronda + 1]["att"]["escudototal"], 0, "", ".");
             } else {
                 $html .= number_format($this->rondaArrayinfo[$num_ronda + 1]["att"]["ataquetotal"], 0, "", ".");
             }
             $html .= " puntos de daño.<br> La flota defensora dispara con una fuerza total de ";
             $html .= number_format($this->rondaArrayinfo[$num_ronda + 1]["def"]["ataquetotal"], 0, "", ".");
             $html .= " sobre el atacante. Los escudos del atacante absorven ";
             if ($this->rondaArrayinfo[$num_ronda + 1]["def"]["ataquetotal"] > $this->rondaArrayinfo[$num_ronda + 1]["def"]["escudototal"]) {
                 $html .= number_format($this->rondaArrayinfo[$num_ronda + 1]["def"]["escudototal"], 0, "", ".");
             } else {
                 $html .= number_format($this->rondaArrayinfo[$num_ronda + 1]["def"]["ataquetotal"], 0, "", ".");
             }
             $html .= " puntos de daño.";
         }
     }
     $FleetDebris = $this->escombro["metal"] + $this->escombro["crystal"];
     $StrAttackerUnits = sprintf($lang['sys_attacker_lostunits'], pretty_number($this->escombro[att]["metal"] + $this->escombro[att]["crystal"]));
     $StrDefenderUnits = sprintf($lang['sys_defender_lostunits'], pretty_number($this->escombro[def]["metal"] + $this->escombro[def]["crystal"]));
     $StrRuins = sprintf($lang['sys_gcdrunits'], pretty_number($this->escombro["metal"]), $lang['metal'], pretty_number($this->escombro["crystal"]), $lang['crystal']);
     $DebrisField = $StrAttackerUnits . "<br />" . $StrDefenderUnits . "<br />" . $StrRuins;
     $MoonChance = $FleetDebris / 100000;
     //LUNAA CREACION DE LUNA
     if ($MoonChance > 20) {
         $MoonChance = 20;
     } elseif ($MoonChance < 1) {
         $MoonChance = 0;
     }
     $UserChance = mt_rand(1, 100);
     //mt_rand(1, 100);
     $ChanceMoon = sprintf($lang['sys_moonproba'], $MoonChance);
     //if (($UserChance > 0) && ($UserChance >= $MoonChance)){
     if ($MoonChance > 0 && $UserChance < $MoonChance && $this->dateFleet['id_luna'] == 0) {
         $TargetPlanetName = CreateOneMoonRecord($this->dateFleet['galaxy'], $this->dateFleet['system'], $this->dateFleet['planet'], $this->def["user"]["id"], '', $MoonChance);
         $GottenMoon = sprintf($lang['sys_moonbuilt'], $TargetPlanetName, $this->dateFleet['galaxy'], $this->dateFleet['system'], $this->dateFleet['planet']);
     } else {
         //if ($UserChance = 0 or $UserChance > $MoonChance){
         $GottenMoon = "";
     }
     //FIN LUNAA CREACION DE LUNA
     switch ($this->win) {
         case "1":
             $Pillage = sprintf($lang['sys_stealed_ressources'], pretty_number($this->robado["metal"]), "metal", pretty_number($this->robado["crystal"]), "cristal", pretty_number($this->robado["deuterio"]), "deuterio");
             $html .= $lang['sys_attacker_won'] . $Pillage . "<br />";
             $html .= $DebrisField . "<br />";
             $html .= $ChanceMoon . "<br />";
             $html .= $GottenMoon . "<br />";
             break;
         case "0":
             $html .= $lang['sys_both_won'] . "<br />";
             $html .= $DebrisField . "<br />";
             $html .= $ChanceMoon . "<br />";
             $html .= $GottenMoon . "<br />";
             break;
         case "2":
             $html .= $lang['sys_defender_won'] . "<br />";
             $html .= $DebrisField . "<br />";
             $html .= $ChanceMoon . "<br />";
             $html .= $GottenMoon . "<br />";
             //$db->query("DELETE FROM {{table}} WHERE `fleet_id` = '" . $FleetRow["fleet_id"] . "';", 'fleets');
             break;
     }
     $html .= "</center>";
     return $html;
 }
 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` = " . $FleetRow['fleet_end_galaxy'] . " AND `system` = " . $FleetRow['fleet_end_system'] . " AND `planet_type` = " . $FleetRow['fleet_end_type'] . " AND `planet` = " . $FleetRow['fleet_end_planet'] . ";", 'planets', true);
         if ($FleetRow['fleet_group'] > 0) {
             doquery("DELETE FROM {{table}} WHERE id =" . $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=" . $FleetRow['fleet_id'], 'fleets');
         }
         $targetGalaxy = doquery('SELECT * FROM {{table}} WHERE `galaxy` = ' . $FleetRow['fleet_end_galaxy'] . ' AND `system` = ' . $FleetRow['fleet_end_system'] . ' AND `planet` = ' . $FleetRow['fleet_end_planet'] . ';', 'galaxy', true);
         $targetUser = doquery('SELECT * FROM {{table}} WHERE id=' . $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 =' . $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=' . $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` = ' . $FleetRow['fleet_end_galaxy'] . ' AND `fleet_end_system` = ' . $FleetRow['fleet_end_system'] . ' AND `fleet_end_type` = ' . $FleetRow['fleet_end_type'] . ' AND `fleet_end_planet` = ' . $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=' . $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` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
         $QryUpdateGalaxy .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
         $QryUpdateGalaxy .= "`planet` = '" . $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];
         // mod TOP KB
         $strunitsgesamt = $result['lost']['att'] + $result['lost']['def'];
         $user1lostunits = $result['lost']['att'];
         $user1shotunits = $result['lost']['def'];
         $user2lostunits = $result['lost']['def'];
         $user2shotunits = $result['lost']['att'];
         $strtruemmerfeld = $result['debree']['att'][0] + $result['debree']['def'][0] + $result['debree']['att'][1] + $result['debree']['def'][1];
         $strtruemmermetal = $result['debree']['att'][0] + $result['debree']['def'][0];
         $strtruemmercrystal = $result['debree']['att'][1] + $result['debree']['def'][1];
         // mod TOP KB
         $steal = array('metal' => 0, 'crystal' => 0, 'deuterium' => 0);
         if ($result['won'] == "a") {
             $max_resources = 0;
             foreach ($attackFleets[$FleetRow['fleet_id']]['detail'] as $Element => $amount) {
                 $max_resources += $pricelist[$Element]['capacity'] * $amount;
             }
             if ($max_resources > 0) {
                 $metal = $targetPlanet['metal'] / 2;
                 $crystal = $targetPlanet['crystal'] / 2;
                 $deuter = $targetPlanet['deuterium'] / 2;
                 if ($deuter > $max_resources / 3) {
                     $steal['deuterium'] = $max_resources / 3;
                     $max_resources -= $steal['deuterium'];
                 } else {
                     $steal['deuterium'] = $deuter;
                     $max_resources -= $steal['deuterium'];
                 }
                 if ($crystal > $max_resources / 2) {
                     $steal['crystal'] = $max_resources / 2;
                     $max_resources -= $steal['crystal'];
                 } else {
                     $steal['crystal'] = $crystal;
                     $max_resources -= $steal['crystal'];
                 }
                 if ($metal > $max_resources) {
                     $steal['metal'] = $max_resources;
                     $max_resources = $max_resources - $steal['metal'];
                 } else {
                     $steal['metal'] = $metal;
                     $max_resources -= $steal['metal'];
                 }
             }
             $steal = array_map('round', $steal);
             $QryUpdateFleet = 'UPDATE {{table}} SET ';
             $QryUpdateFleet .= '`fleet_resource_metal` = `fleet_resource_metal` + ' . $steal['metal'] . ', ';
             $QryUpdateFleet .= '`fleet_resource_crystal` = `fleet_resource_crystal` +' . $steal['crystal'] . ', ';
             $QryUpdateFleet .= '`fleet_resource_deuterium` = `fleet_resource_deuterium` +' . $steal['deuterium'] . ' ';
             $QryUpdateFleet .= 'WHERE fleet_id = ' . $FleetRow['fleet_id'] . ' ';
             $QryUpdateFleet .= 'LIMIT 1 ;';
             doquery($QryUpdateFleet, 'fleets');
         }
         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`=' . $fleetID, 'fleets');
             } else {
                 doquery('UPDATE {{table}} SET fleet_array="' . substr($fleetArray, 0, -1) . '", fleet_amount=' . $totalCount . ', fleet_mess=1 WHERE fleet_id=' . $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`=' . $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'];
         }
         // mod TOP KB
         $angreifer = $attackFleets;
         $defender = $defense;
         $QryInsertRapport .= '`owners` = "' . implode(',', $users2) . '", ';
         $QryInsertRapport .= '`rid` = "' . $rid . '", ';
         $QryInsertRapport .= '`raport` = "' . mysql_real_escape_string($raport) . '"';
         doquery($QryInsertRapport, 'rw') or die("Error inserting CR to database" . mysql_error() . "<br><br>Trying to execute:" . mysql_query());
         $dpath = !$user["dpath"] ? DEFAULT_SKINPATH : $user["dpath"];
         $rid = md5($raport);
         $QryInserttopkb = "INSERT INTO {{table}} SET ";
         $QryInserttopkb .= "`time` = UNIX_TIMESTAMP(), ";
         $QryInserttopkb .= "`id_owner1` = '" . $FleetRow['fleet_owner'] . "', ";
         $QryInserttopkb .= "`angreifer` = '" . $attacker['user']['username'] . "', ";
         $QryInserttopkb .= "`id_owner2` = '" . $targetUser['id'] . "', ";
         $QryInserttopkb .= "`defender` = '" . $targetUser['username'] . "', ";
         $QryInserttopkb .= "`gesamtunits` = '" . $strunitsgesamt . "', ";
         $QryInserttopkb .= "`gesamttruemmer` = '" . $strtruemmerfeld . "', ";
         $QryInserttopkb .= "`rid` = '" . $rid . "', ";
         $QryInserttopkb .= "`a_zestrzelona` = '" . $a_zestrzelona . "', ";
         $QryInserttopkb .= "`raport` = '" . mysql_real_escape_string($raport) . "',";
         $QryInserttopkb .= "`fleetresult` = '" . $result['won'] . "';";
         doquery("LOCK TABLE {{table}} WRITE", 'topkb');
         doquery($QryInserttopkb, 'topkb');
         doquery("UNLOCK TABLES", '');
         $user1stat = $FleetRow['fleet_owner'];
         $user2stat = $TargetUserID;
         $raport = '<a href="#" OnClick=\'f( "CombatReport.php?raport=' . $rid . '", "");\'>';
         $raport .= '<center>';
         if ($result['won'] == "a") {
             $raport .= '<font color=\'green\'>';
         } elseif ($result['won'] == "w") {
             $raport .= '<font color=\'orange\'>';
         } elseif ($result['won'] == "r") {
             $raport .= '<font color=\'red\'>';
         }
         $raport .= $lang['sys_mess_attack_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'] . ': ' . number_format($result['lost']['att'], 0, ',', '.') . '</font>';
         $raport .= '<font color=\'green\'>   ' . $lang['sys_perte_defenseur'] . ': ' . number_format($result['lost']['def'], 0, ',', '.') . '</font><br>';
         $raport .= $lang['sys_gain'] . ' ' . $lang['Metal'] . ':<font color=\'#adaead\'>' . number_format($steal['metal'], 0, ',', '.') . '</font>   ' . $lang['Crystal'] . ':<font color=\'#ef51ef\'>' . number_format($steal['crystal'], 0, ',', '.') . '</font>   ' . $lang['Deuterium'] . ':<font color=\'#f77542\'>' . number_format($steal['deuterium'], 0, ',', '.') . '</font><br>';
         $raport .= $lang['sys_debris'] . ' ' . $lang['Metal'] . ': <font color=\'#adaead\'>' . number_format($result['debree']['att'][0] + $result['debree']['def'][0], 0, ',', '.') . '</font>   ' . $lang['Crystal'] . ': <font color=\'#ef51ef\'>' . number_format($result['debree']['att'][1] + $result['debree']['def'][1], 0, ',', '.') . '</font><br></center>';
         SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport);
         // Updaten Spieler Datenbank
         $user1 = doquery("SELECT * FROM {{table}} WHERE `id` = '" . $user1stat . "';", 'users');
         while ($user1data = mysql_fetch_assoc($user1)) {
             $strtruemmermetaluser1 = $strtruemmermetal + $user1data['kbmetal'];
             $strtruemmercrystaluser1 = $strtruemmercrystal + $user1data['kbcrystal'];
             $user1lostunits = $user1lostunits + $user1data['lostunits'];
             $user1shotunits = $user1shotunits + $user1data['desunits'];
             $user1wons = $user1data['wons'];
             $user1loos = $user1data['loos'];
             $user1draws = $user1data['draws'];
         }
         $user2 = doquery("SELECT * FROM {{table}} WHERE `id` = '" . $user2stat . "';", 'users');
         while ($user2data = mysql_fetch_assoc($user2)) {
             $strtruemmermetaluser2 = $strtruemmermetal + $user2data['kbmetal'];
             $strtruemmercrystaluser2 = $strtruemmercrystal + $user2data['kbcrystal'];
             $user2lostunits = $user2lostunits + $user2data['lostunits'];
             $user2shotunits = $user2shotunits + $user2data['desunits'];
             $user2wons = $user2data['wons'];
             $user2loos = $user2data['loos'];
             $user2draws = $user2data['draws'];
         }
         if ($result['won'] == "a") {
             $user1wons = $user1wons + 1;
             $user2loos = $user2loos + 1;
         } elseif ($result['won'] == "w") {
             $user1draws = $user1draws + 1;
             $user2draws = $user2draws + 1;
         } elseif ($result['won'] == "r") {
             $user1loos = $user1loos + 1;
             $user2wons = $user2wons + 1;
         }
         //Update Angreifer Truemerfeld, Kampfergebniss und Units
         $userstat = doquery("SELECT * FROM {{table}} WHERE `id` = '" . $user1stat . "';", 'users');
         while ($userwrite = mysql_fetch_assoc($userstat)) {
             $QryUpdateuserstat = "UPDATE {{table}} SET ";
             $QryUpdateuserstat .= "`wons` = '" . $user1wons . "', ";
             $QryUpdateuserstat .= "`loos` = '" . $user1loos . "', ";
             $QryUpdateuserstat .= "`draws` = '" . $user1draws . "', ";
             $QryUpdateuserstat .= "`kbmetal` = '" . $strtruemmermetaluser1 . "', ";
             $QryUpdateuserstat .= "`kbcrystal` = '" . $strtruemmercrystaluser1 . "', ";
             $QryUpdateuserstat .= "`lostunits` = '" . $user1lostunits . "', ";
             $QryUpdateuserstat .= "`desunits` = '" . $user1shotunits . "' ";
             $QryUpdateuserstat .= "WHERE ";
             $QryUpdateuserstat .= "`id` = '" . $user1stat . "';";
             doquery($QryUpdateuserstat, 'users');
             //Update Verteidiger Truemerfeld, Kampfergebniss und Units
             $QryUpdateuserstat = "UPDATE {{table}} SET ";
             $QryUpdateuserstat .= "`wons` = '" . $user2wons . "', ";
             $QryUpdateuserstat .= "`loos` = '" . $user2loos . "', ";
             $QryUpdateuserstat .= "`draws` = '" . $user2draws . "', ";
             $QryUpdateuserstat .= "`kbmetal` = '" . $strtruemmermetaluser2 . "', ";
             $QryUpdateuserstat .= "`kbcrystal` = '" . $strtruemmercrystaluser2 . "', ";
             $QryUpdateuserstat .= "`lostunits` = '" . $user2lostunits . "', ";
             $QryUpdateuserstat .= "`desunits` = '" . $user2shotunits . "' ";
             $QryUpdateuserstat .= "WHERE ";
             $QryUpdateuserstat .= "`id` = '" . $user2stat . "';";
             doquery($QryUpdateuserstat, 'users');
         }
         // Ende schreiben in datenbank
         $raport2 = '<a href # OnClick=\'f( "CombatReport.php?raport=' . $rid . '", "");\'>';
         $raport2 .= '<center>';
         if ($result['won'] == "a") {
             $raport2 .= '<font color=\'red\'>';
         } elseif ($result['won'] == "w") {
             $raport2 .= '<font color=\'orange\'>';
         } elseif ($result['won'] == "r") {
             $raport2 .= '<font color=\'green\'>';
         }
         $raport2 .= $lang['sys_mess_attack_report'] . ' [' . $FleetRow['fleet_end_galaxy'] . ':' . $FleetRow['fleet_end_system'] . ':' . $FleetRow['fleet_end_planet'] . '] </font></a><br><br>';
         foreach ($users2 as $id) {
             if ($id != $FleetRow['fleet_owner'] && $id != 0) {
                 SendSimpleMessage($id, '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $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`=' . $FleetRow['fleet_id'], 'fleets');
     }
 }
Beispiel #8
0
function MissionCaseAttack($FleetRow)
{
    global $user, $phpEx, $ugamela_root_path, $pricelist, $lang, $resource, $CombatCaps;
    if ($FleetRow['fleet_start_time'] <= time()) {
        if ($FleetRow['fleet_mess'] == 0) {
            if (!isset($CombatCaps[202]['sd'])) {
                message("<font color=\"red\">" . $lang['sys_no_vars'] . "</font>", $lang['sys_error'], "fleet." . $phpEx, 2);
            }
            $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'];
            $QryTargetUser = "******";
            $QryTargetUser .= "WHERE ";
            $QryTargetUser .= "`id` = '" . $TargetUserID . "';";
            $TargetUser = doquery($QryTargetUser, 'users', true);
            // Planeten aktualisieren und erneut auslesen
            // =============================================================================
            $update = PlanetResourceUpdate($TargetUser, $TargetPlanet, time());
            $TargetPlanet = doquery($QryTargetPlanet, 'planets', true);
            $TargetUser = doquery($QryTargetUser, 'users', true);
            // =============================================================================
            $QryCurrentUser = "******";
            $QryCurrentUser .= "WHERE ";
            $QryCurrentUser .= "`id` = '" . $FleetRow['fleet_owner'] . "';";
            $CurrentUser = doquery($QryCurrentUser, 'users', true);
            $CurrentUserID = $CurrentUser['id'];
            $QryTargetTech = "SELECT ";
            $QryTargetTech .= "`military_tech`, `defence_tech`, `shield_tech` ";
            $QryTargetTech .= "FROM {{table}} ";
            $QryTargetTech .= "WHERE ";
            $QryTargetTech .= "`id` = '" . $TargetUserID . "';";
            $TargetTechno = doquery($QryTargetTech, 'users', true);
            $QryCurrentTech = "SELECT ";
            $QryCurrentTech .= "`military_tech`, `defence_tech`, `shield_tech` ";
            $QryCurrentTech .= "FROM {{table}} ";
            $QryCurrentTech .= "WHERE ";
            $QryCurrentTech .= "`id` = '" . $CurrentUserID . "';";
            $CurrentTechno = doquery($QryCurrentTech, '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];
                }
            }
            include_once $ugamela_root_path . 'includes/ataki.' . $phpEx;
            // Calcul de la duree de traitement (initialisation)
            $mtime = microtime();
            $mtime = explode(" ", $mtime);
            $mtime = $mtime[1] + $mtime[0];
            $starttime = $mtime;
            $walka = walka($CurrentSet, $TargetSet, $CurrentTechno, $TargetTechno);
            // Calcul de la duree de traitement (calcul)
            $mtime = microtime();
            $mtime = explode(" ", $mtime);
            $mtime = $mtime[1] + $mtime[0];
            $endtime = $mtime;
            $totaltime = $endtime - $starttime;
            // Ce qu'il reste de l'attaquant
            $CurrentSet = $walka["atakujacy"];
            // Ce qu'il reste de l'attaqué
            $TargetSet = $walka["wrog"];
            // Le resultat de la bataille
            $FleetResult = $walka["wygrana"];
            // Rapport long (rapport de bataille detaillé)
            $dane_do_rw = $walka["dane_do_rw"];
            // Rapport court (cdr + unitées perdues)
            $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'];
            }
            // Au cas ou le p'tit rigolo qu'a envoyé la flotte y avait mis des ressources ...
            $FleetStorage -= $FleetRow["fleet_resource_metal"];
            $FleetStorage -= $FleetRow["fleet_resource_crystal"];
            $FleetStorage -= $FleetRow["fleet_resource_deuterium"];
            $TargetPlanetUpd = "";
            if (!is_null($TargetSet)) {
                foreach ($TargetSet as $Ship => $Count) {
                    $TargetPlanetUpd .= "`" . $resource[$Ship] . "` = '" . $Count['count'] . "', ";
                }
            }
            // Determination des ressources pillées
            $Mining['metal'] = 0;
            $Mining['crystal'] = 0;
            $Mining['deuter'] = 0;
            if ($FleetResult == "a") {
                if ($FleetStorage > 0) {
                    $metal = $TargetPlanet['metal'] / 2;
                    $crystal = $TargetPlanet['crystal'] / 2;
                    $deuter = $TargetPlanet["deuterium"] / 2;
                    if ($metal > $FleetStorage / 3) {
                        $Mining['metal'] = $FleetStorage / 3;
                        $FleetStorage = $FleetStorage - $Mining['metal'];
                    } else {
                        $Mining['metal'] = $metal;
                        $FleetStorage = $FleetStorage - $Mining['metal'];
                    }
                    if ($crystal > $FleetStorage / 2) {
                        $Mining['crystal'] = $FleetStorage / 2;
                        $FleetStorage = $FleetStorage - $Mining['crystal'];
                    } else {
                        $Mining['crystal'] = $crystal;
                        $FleetStorage = $FleetStorage - $Mining['crystal'];
                    }
                    if ($deuter > $FleetStorage) {
                        $Mining['deuter'] = $FleetStorage;
                        $FleetStorage = $FleetStorage - $Mining['deuter'];
                    } else {
                        $Mining['deuter'] = $deuter;
                        $FleetStorage = $FleetStorage - $Mining['deuter'];
                    }
                }
            }
            $Mining['metal'] = round($Mining['metal']);
            $Mining['crystal'] = round($Mining['crystal']);
            $Mining['deuter'] = round($Mining['deuter']);
            // Mise a jour de l'enregistrement de la planete attaquée
            $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');
            // Mise a jour du champ de ruine devant la planete attaquée
            $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');
            // Là on va discuter le bout de gras pour voir s'il y a moyen d'avoir une Lune !
            $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 / 100000000;
            if ($FleetDebris > 2000000000) {
                $MoonChance = 20;
            }
            if ($FleetDebris < 100000000) {
                $UserChance = 0;
                $ChanceMoon = "";
            } elseif ($FleetDebris >= 100000000) {
                $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_attack_title'], $AttackDate);
            $raport = "<center><table><tr><td>" . $title . "<br />";
            $zniszczony = false;
            $a_zestrzelona = 0;
            $AttackTechon['A'] = $CurrentTechno["military_tech"] * 10;
            $AttackTechon['B'] = $CurrentTechno["defence_tech"] * 10;
            $AttackTechon['C'] = $CurrentTechno["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'] = $TargetTechno["military_tech"] * 10;
            $DefendTechon['B'] = $TargetTechno["defence_tech"] * 10;
            $DefendTechon['C'] = $TargetTechno["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":
                    $Pillage = sprintf($lang['sys_stealed_ressources'], $Mining['metal'], $lang['metal'], $Mining['crystal'], $lang['crystal'], $Mining['deuter'], $lang['Deuterium']);
                    $raport .= $lang['sys_attacker_won'] . "<br />" . $Pillage . "<br />";
                    $raport .= $DebrisField . "<br />";
                    $raport .= $ChanceMoon . "<br />";
                    $raport .= $GottenMoon . "<br />";
                    break;
                case "r":
                    $raport .= $lang['sys_both_won'] . "<br />";
                    $raport .= $DebrisField . "<br />";
                    $raport .= $ChanceMoon . "<br />";
                    $raport .= $GottenMoon . "<br />";
                    break;
                case "w":
                    $raport .= $lang['sys_defender_won'] . "<br />";
                    $raport .= $DebrisField . "<br />";
                    $raport .= $ChanceMoon . "<br />";
                    $raport .= $GottenMoon . "<br />";
                    doquery("DELETE FROM {{table}} WHERE `fleet_id` = '" . $FleetRow["fleet_id"] . "';", 'fleets');
                    break;
                default:
                    break;
            }
            $SimMessage = sprintf($lang['sys_rapport_build_time'], $totaltime);
            $raport .= $SimMessage . "</table>";
            $dpath = !$user["dpath"] ? DEFAULT_SKINPATH : $user["dpath"];
            $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');
            // Colorisation du résumé de rapport pour l'attaquant
            $raport = "<a href # OnClick=\"f( 'rw.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_attack_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_gain'] . " " . $lang['Metal'] . ":<font color=\"#adaead\">" . $Mining['metal'] . "</font>   " . $lang['Crystal'] . ":<font color=\"#ef51ef\">" . $Mining['crystal'] . "</font>   " . $lang['Deuterium'] . ":<font color=\"#f77542\">" . $Mining['deuter'] . "</font><br />";
            $raport .= $lang['sys_debris'] . " " . $lang['Metal'] . ":<font color=\"#adaead\">" . $zlom['metal'] . "</font>   " . $lang['Crystal'] . ":<font color=\"#ef51ef\">" . $zlom['crystal'] . "</font><br /></center>";
            $Mining['metal'] = $Mining['metal'] + $FleetRow["fleet_resource_metal"];
            $Mining['crystal'] = $Mining['crystal'] + $FleetRow["fleet_resource_crystal"];
            $Mining['deuter'] = $Mining['deuter'] + $FleetRow["fleet_resource_deuterium"];
            $QryUpdateFleet = "UPDATE {{table}} SET ";
            $QryUpdateFleet .= "`fleet_amount` = '" . $FleetAmount . "', ";
            $QryUpdateFleet .= "`fleet_array` = '" . $FleetArray . "', ";
            $QryUpdateFleet .= "`fleet_mess` = '1', ";
            $QryUpdateFleet .= "`fleet_resource_metal` = '" . $Mining['metal'] . "', ";
            $QryUpdateFleet .= "`fleet_resource_crystal` = '" . $Mining['crystal'] . "', ";
            $QryUpdateFleet .= "`fleet_resource_deuterium` = '" . $Mining['deuter'] . "' ";
            $QryUpdateFleet .= "WHERE fleet_id = '" . $FleetRow['fleet_id'] . "' ";
            $QryUpdateFleet .= "LIMIT 1 ;";
            doquery($QryUpdateFleet, 'fleets');
            SendSimpleMessage($CurrentUserID, '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport);
            // Ajout d'un point au compteur de raids
            $RaidsTotal = $CurrentUser['raids'] + 1;
            if ($FleetResult == "a") {
                $RaidsWin = $CurrentUser['raidswin'] + 1;
                $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
                $QryUpdateRaidsCompteur .= "`raidswin` ='" . $RaidsWin . "', ";
                $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
                $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
                $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
                doquery($QryUpdateRaidsCompteur, 'users');
            } elseif ($FleetResult == "r" || $FleetResult == "w") {
                $RaidsLoose = $CurrentUser['raidsloose'] + 1;
                $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
                $QryUpdateRaidsCompteur .= "`raidsloose` ='" . $RaidsLoose . "', ";
                $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
                $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
                $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
                doquery($QryUpdateRaidsCompteur, 'users');
            }
            // Colorisation du résumé de rapport pour l'attaquant
            $raport2 = "<a href # OnClick=\"f( 'rw.php?raport=" . $rid . "', '');\" >";
            $raport2 .= "<center>";
            if ($FleetResult == "a") {
                $raport2 .= "<font color=\"green\">";
            } elseif ($FleetResult == "r") {
                $raport2 .= "<font color=\"orange\">";
            } elseif ($FleetResult == "w") {
                $raport2 .= "<font color=\"red\">";
            }
            $raport2 .= $lang['sys_mess_attack_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_attack_report'], $raport2);
        }
        // Retour de flotte (s'il en reste)
        $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');
            }
        }
    }
}
/**
* MissionCaseDestruction.php
* @Licence GNU (GPL)
* @version 2.2
* @copyright 2009 
* @Team Space Beginner
*/
function MissionCaseDestruction($FleetRow)
{
    global $phpEx, $xnova_root_path, $pricelist, $lang, $resource, $CombatCaps, $game_config, $user;
    includeLang('system');
    if ($FleetRow['fleet_mess'] == 0 && $FleetRow['fleet_start_time'] <= time()) {
        if (!isset($CombatCaps[202]['sd'])) {
            message('<font color=red>' . $lang['sys_no_vars'] . '</font><br />(Error: <font color=red>(!isset($pricelist[202][\'sd\']))</font>. Please report this to an admin.)', $lang['sys_error'], 'fleet.php', 15);
        }
        $targetPlanet = doquery("SELECT * FROM {{table}} WHERE `galaxy` = " . $FleetRow['fleet_end_galaxy'] . " AND `system` = " . $FleetRow['fleet_end_system'] . " AND `planet_type` = " . $FleetRow['fleet_end_type'] . " AND `planet` = " . $FleetRow['fleet_end_planet'] . ";", 'planets', true);
        // if (!isset($targetPlanet['id'])) {
        if ($FleetRow['fleet_group'] > 0) {
            //MadnessRed Code
            doquery("DELETE FROM {{table}} WHERE id =" . $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=" . $FleetRow['fleet_id'], 'fleets');
        }
        // return;
        //}
        // Mise à jour de la cible ...
        // On recharge les infos qui viennent d'être mises à jour
        $targetGalaxy = doquery('SELECT * FROM {{table}} WHERE `galaxy` = ' . $FleetRow['fleet_end_galaxy'] . ' AND `system` = ' . $FleetRow['fleet_end_system'] . ' AND `planet` = ' . $FleetRow['fleet_end_planet'] . ';', 'galaxy', true);
        $targetUser = doquery('SELECT * FROM {{table}} WHERE id=' . $targetPlanet['id_owner'], 'users', true);
        $TargetUserID = $targetUser['id'];
        PlanetResourceUpdate($targetUser, $targetPlanet, time());
        // AG : Mettre toutes les flottes dans un tableau
        $attackFleets = array();
        // De forme : attackFleets[id] = array('fleet' => $FleetRow, 'user' => $user);
        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 =' . $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=' . $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` = ' . $FleetRow['fleet_end_galaxy'] . ' AND `fleet_end_system` = ' . $FleetRow['fleet_end_system'] . ' AND `fleet_end_type` = ' . $FleetRow['fleet_end_type'] . ' AND `fleet_end_planet` = ' . $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=' . $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;
        // Mise a jour du champ de ruine devant la planete attaquée
        $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 .= "`appolonium` = `appolonium` + '" . ($result['debree']['att'][2] + $result['debree']['def'][2]) . "' ";
        $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');
        //         Mise à jour du CDR en table galaxy
        //        doquery('UPDATE {{table}} SET metal=metal+'.($result['debree']['att'][0]+$result['debree']['def'][0]).' , crystal=crystal+'.($result['debree']['att'][1]+$result['debree']['def'][1]).' WHERE `galaxy` = '. $FleetRow['fleet_end_galaxy'] .' AND `system` = '. $FleetRow['fleet_end_system'] .' AND `planet` = '. $FleetRow['fleet_end_planet'],'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, 'appolonium' => 0);
        switch ($result['won']) {
            case "a":
                // Calculons la capacité de transpor du restant de flotte après combat
                $max_resources = 0;
                foreach ($attackFleets[$FleetRow['fleet_id']]['detail'] as $Element => $amount) {
                    $max_resources += $pricelist[$Element]['capacity'] * $amount;
                }
                if ($max_resources > 0) {
                    $metal = $targetPlanet['metal'] / 2;
                    $crystal = $targetPlanet['crystal'] / 2;
                    $deuter = $targetPlanet['deuterium'] / 2;
                    $appolonium = $targetPlanet['appolonium'] / 2;
                    if ($appolonium > $max_resources / 4) {
                        $steal['appolonium'] = $max_resources / 4;
                        $max_resources -= $steal['appolonium'];
                    } else {
                        $steal['appolonium'] = $appolonium;
                        $max_resources -= $steal['appolonium'];
                    }
                    if ($deuter > $max_resources / 3) {
                        $steal['deuterium'] = $max_resources / 3;
                        $max_resources -= $steal['deuterium'];
                    } else {
                        $steal['deuterium'] = $deuter;
                        $max_resources -= $steal['deuterium'];
                    }
                    if ($crystal > $max_resources / 2) {
                        $steal['crystal'] = $max_resources / 2;
                        $max_resources -= $steal['crystal'];
                    } else {
                        $steal['crystal'] = $crystal;
                        $max_resources -= $steal['crystal'];
                    }
                    if ($metal > $max_resources) {
                        $steal['metal'] = $max_resources;
                        $max_resources = $max_resources - $steal['metal'];
                    } else {
                        $steal['metal'] = $metal;
                        $max_resources -= $steal['metal'];
                    }
                }
                $steal = array_map('round', $steal);
                // Mise à jour de la flotte après pillage
                $QryUpdateFleet = 'UPDATE {{table}} SET ';
                $QryUpdateFleet .= '`fleet_resource_metal` = `fleet_resource_metal` + ' . $steal['metal'] . ', ';
                $QryUpdateFleet .= '`fleet_resource_crystal` = `fleet_resource_crystal` +' . $steal['crystal'] . ', ';
                $QryUpdateFleet .= '`fleet_resource_deuterium` = `fleet_resource_deuterium` +' . $steal['deuterium'] . ', ';
                $QryUpdateFleet .= '`fleet_resource_appolonium` = `fleet_resource_appolonium` +' . $steal['appolonium'] . ' ';
                $QryUpdateFleet .= 'WHERE fleet_id = ' . $FleetRow['fleet_id'] . ' ';
                $QryUpdateFleet .= 'LIMIT 1 ;';
                doquery($QryUpdateFleet, 'fleets');
                // Mise à jour flotte et planètes
                foreach ($attackFleets as $fleetID => $attacker) {
                    // Flottes attaquantes
                    $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`=' . $fleetID, 'fleets');
                    } else {
                        doquery('UPDATE {{table}} SET fleet_array="' . substr($fleetArray, 0, -1) . '", fleet_amount=' . $totalCount . ', fleet_mess=1 WHERE fleet_id=' . $fleetID, 'fleets');
                    }
                }
                foreach ($defense as $fleetID => $defender) {
                    // Flottes et Défenses de la cible
                    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`=' . $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 . ', ';
                        }
                        // Mise a jour de l'enregistrement de la planete attaquée
                        $QryUpdateTarget = "UPDATE {{table}} SET ";
                        $QryUpdateTarget .= $fleetArray;
                        $QryUpdateTarget .= "`metal` = `metal` - '" . $steal['metal'] . "', ";
                        $QryUpdateTarget .= "`crystal` = `crystal` - '" . $steal['crystal'] . "', ";
                        $QryUpdateTarget .= "`deuterium` = `deuterium` - '" . $steal['deuterium'] . "', ";
                        $QryUpdateTarget .= "`appolonium` = `appolonium` - '" . $steal['appolonium'] . "' ";
                        $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');
                    }
                }
                //Mondzerstörungswarscheinlichkeitsberechnung gemäß Owiki
                $destructionl1 = 100 - sqrt($targetPlanet['diameter']);
                if ($attackFleets[$FleetRow['fleet_id']]['detail'][218] > 0) {
                    $destructionl21 = $destructionl1 * round(sqrt($attackFleets[$FleetRow['fleet_id']]['detail'][218] / MAX_ST));
                    $destructionl2 = $destructionl21 / 1;
                } else {
                    $destructionl21 = $destructionl1 * round(sqrt($attackFleets[$FleetRow['fleet_id']]['detail'][214] / MAX_RIP));
                    $destructionl2 = $destructionl21 / 1;
                }
                if ($destructionl2 > 100) {
                    $chance = '100';
                } elseif ($destructionl2 < 0) {
                    $chance = '0';
                } else {
                    $chance = round($destructionl2);
                    // En pourcentage
                }
                $tirage = mt_rand(0, 100);
                $probalune = sprintf($lang['sys_destruc_lune'], $chance);
                if ($tirage <= $chance) {
                    //destruction de la lune dabord dans la liste des planetes puis dans la liste des lunes et enfin dans la galaxie
                    doquery("DELETE FROM {{table}} WHERE `id` = '" . $targetPlanet['id'] . "';", 'planets');
                    //$Qrydestructionlune .= ";";
                    $Qrydestructionlune = "DELETE FROM {{table}} ";
                    $Qrydestructionlune .= "WHERE ";
                    $Qrydestructionlune .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
                    $Qrydestructionlune .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
                    $Qrydestructionlune .= "`lunapos` = '" . $FleetRow['fleet_end_planet'] . "' ";
                    $Qrydestructionlune .= "LIMIT 1 ;";
                    doquery($Qrydestructionlune, 'lunas');
                    //$Qrydestructionlune2 .= ";";
                    $Qrydestructionlune2 = "UPDATE {{table}} SET ";
                    $Qrydestructionlune2 .= "`id_luna` = '0' ";
                    $Qrydestructionlune2 .= "WHERE ";
                    $Qrydestructionlune2 .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
                    $Qrydestructionlune2 .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
                    $Qrydestructionlune2 .= "`planet` = '" . $FleetRow['fleet_end_planet'] . "' ";
                    $Qrydestructionlune2 .= "LIMIT 1 ;";
                    doquery($Qrydestructionlune2, 'galaxy');
                    //la lune est detruite, alors on redirige les flottes sur la planete
                    $QryFleetsFrom = doquery("SELECT * FROM {{table}} WHERE   \n\t\t\t\t`fleet_start_galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND\n\t\t\t\t`fleet_start_system` = '" . $FleetRow['fleet_end_system'] . "' AND\n\t\t\t\t`fleet_start_planet` = '" . $FleetRow['fleet_end_planet'] . "' AND\n\t\t\t\t`fleet_start_type` = '3';", 'fleets');
                    while ($FromMoonFleets = mysql_fetch_array($QryFleetsFrom)) {
                        doquery("UPDATE {{table}} SET `fleet_start_type` = '1' WHERE `fleet_id` = '" . $FromMoonFleets['fleet_id'] . "';", 'fleets');
                    }
                    $QryFleetsTo = doquery("SELECT * FROM {{table}} WHERE   \n\t\t\t\t`fleet_end_galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND\n\t\t\t\t`fleet_end_system` = '" . $FleetRow['fleet_end_system'] . "' AND\n\t\t\t\t`fleet_end_planet` = '" . $FleetRow['fleet_end_planet'] . "' AND\n\t\t\t\t`fleet_end_type` = '3';", 'fleets');
                    while ($ToMoonFleets = mysql_fetch_array($QryFleetsTo)) {
                        doquery("UPDATE {{table}} SET `fleet_end_type` = '1' WHERE `fleet_id` = '" . $ToMoonFleets['fleet_id'] . "';", 'fleets');
                    }
                    // Mond Explodiert!?Wo bleiben die Trümmer vom Mond
                    $metallmond = 0;
                    $kristallmond = 0;
                    $appolonium = 0;
                    // Berechnung des Trümmerfeldes
                    $metallmond = round($targetPlanet['diameter'] * 625);
                    $kristallmond = round($targetPlanet['diameter'] * 625);
                    // Berechnung Appollonium
                    $zuwert = mt_rand(100, 300);
                    $appolonium = round($targetPlanet['diameter'] * $zuwert);
                    // Trümmerfeld go's Galaxy
                    $QryUpdateGalaxy = "UPDATE {{table}} SET ";
                    $QryUpdateGalaxy .= "`metal` = `metal` + '" . $metallmond . "', ";
                    $QryUpdateGalaxy .= "`crystal` = `crystal` + '" . $kristallmond . "', ";
                    $QryUpdateGalaxy .= "`appolonium` = `appolonium` + '" . $appolonium . "' ";
                    $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');
                    //maintenant on va verifier si la vue du joueur n est pas calee sur la lune qui est detruite
                    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');
                    }
                    $destext .= 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']) . "<br />";
                    $destext .= sprintf($lang['sys_destruc_lune'], $chance) . "<br />";
                    $destext .= $lang['sys_debris'] . " " . $lang['Metal'] . ":<font color=\"#adaead\">" . ($result['debree']['att'][0] + $result['debree']['def'][0] + $metallmond) . "</font>   " . $lang['Crystal'] . ":<font color=\"#ef51ef\">" . ($result['debree']['att'][1] + $result['debree']['def'][1] + $kristallmond) . "</font>" . $lang['Appolonium'] . ":<font color=\"#40e0d0\">" . ($result['debree']['att'][2] + $result['debree']['def'][2] + $appolonium) . "</font><br />";
                    $destext .= $lang['sys_destruc_mess1'] . "<br />";
                    $destext .= $lang['sys_destruc_reussi'] . "<br />";
                    $destructionrip = sqrt($targetPlanet['diameter']) / 2;
                    $chance2 = round($destructionrip);
                    $tirage2 = mt_rand(0, 100);
                    $destext .= sprintf($lang['sys_destruc_rip'], $chance2) . "<br />";
                    if ($tirage2 <= $chance2) {
                        //Rips gehen in das Tf
                        $tftsmet = 0;
                        $tftscrist = 0;
                        if ($attackFleets[$FleetRow['fleet_id']]['detail'][218] > 0 and $attackFleets[$FleetRow['fleet_id']]['detail'][214] = 0) {
                            $tftsmet = round($attackFleets[$FleetRow['fleet_id']]['detail'][218] * $pricelist['218']['metal']) * ($game_config['Fleet_Cdr'] / 100);
                            $tftscrist = round($attackFleets[$FleetRow['fleet_id']]['detail'][218] * $pricelist['218']['crystal']) * ($game_config['Fleet_Cdr'] / 100);
                            $tftsappo = round($attackFleets[$FleetRow['fleet_id']]['detail'][218] * $pricelist['218']['appolonium']) * ($game_config['Fleet_Cdr'] / 100);
                        } else {
                            $tftsmet = round($attackFleets[$FleetRow['fleet_id']]['detail'][214] * $pricelist['214']['metal']) * ($game_config['Fleet_Cdr'] / 100);
                            $tftscrist = round($attackFleets[$FleetRow['fleet_id']]['detail'][214] * $pricelist['214']['crystal']) * ($game_config['Fleet_Cdr'] / 100);
                        }
                        // Trümmerfeld go's Galaxy
                        $QryUpdateGalaxy = "UPDATE {{table}} SET ";
                        $QryUpdateGalaxy .= "`metal` = `metal` +'" . $tftsmet . "', ";
                        $QryUpdateGalaxy .= "`crystal` = `crystal` + '" . $tftscrist . "', ";
                        $QryUpdateGalaxy .= "`appolonium` = `appolonium` + '" . $tftsappo . "' ";
                        $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');
                        //Rips in das Tf Ende
                        $destext .= $lang['sys_destruc_echec'] . " <br />";
                        $destext .= $lang['sys_debris'] . " " . $lang['Metal'] . ":<font color=\"#adaead\">" . ($result['debree']['att'][0] + $result['debree']['def'][0] + $tftsmet) . "</font>   " . $lang['Crystal'] . ":<font color=\"#ef51ef\">" . ($result['debree']['att'][1] + $result['debree']['def'][1] + $tftscrist) . "</font>" . $lang['Appolonium'] . ":<font color=\"#40e0d0\">" . ($result['debree']['att'][2] + $result['debree']['def'][2] + $tftsappo) . "</font><br />";
                        doquery("DELETE FROM {{table}} WHERE `fleet_id` = '" . $FleetRow["fleet_id"] . "';", 'fleets');
                    }
                    // Falls Mondzerstörung Abgeblockt wird
                } else {
                    $destructionrip = sqrt($targetPlanet['diameter']) / 2;
                    $chance2 = round($destructionrip);
                    $tirage2 = mt_rand(0, 100);
                    $destext .= 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']) . "<br />";
                    $destext .= $lang['sys_destruc_mess1'] . "<br />";
                    $destext .= sprintf($lang['sys_destruc_lune'], $chance) . "<br />";
                    $destext .= sprintf($lang['sys_destruc_rip'], $chance2) . "<br />";
                    if ($tirage2 <= $chance2) {
                        //Rips gehen in das Tf
                        $tftsmet = 0;
                        $tftscrist = 0;
                        if ($attackFleets[$FleetRow['fleet_id']]['detail'][218] > 0 and $attackFleets[$FleetRow['fleet_id']]['detail'][214] = 0) {
                            $tftsmet = round($attackFleets[$FleetRow['fleet_id']]['detail'][218] * $pricelist['218']['metal']) * ($game_config['Fleet_Cdr'] / 100);
                            $tftscrist = round($attackFleets[$FleetRow['fleet_id']]['detail'][218] * $pricelist['218']['crystal']) * ($game_config['Fleet_Cdr'] / 100);
                            $tftsappo = round($attackFleets[$FleetRow['fleet_id']]['detail'][218] * $pricelist['218']['appolonium']) * ($game_config['Fleet_Cdr'] / 100);
                        } else {
                            $tftsmet = round($attackFleets[$FleetRow['fleet_id']]['detail'][214] * $pricelist['214']['metal']) * ($game_config['Fleet_Cdr'] / 100);
                            $tftscrist = round($attackFleets[$FleetRow['fleet_id']]['detail'][214] * $pricelist['214']['crystal']) * ($game_config['Fleet_Cdr'] / 100);
                        }
                        // Trümmerfeld go's Galaxy
                        $QryUpdateGalaxy = "UPDATE {{table}} SET ";
                        $QryUpdateGalaxy .= "`metal` = `metal` +'" . $tftsmet . "', ";
                        $QryUpdateGalaxy .= "`crystal` = `crystal` + '" . $tftscrist . "', ";
                        $QryUpdateGalaxy .= "`appolonium` = `appolonium` + '" . $tftsappo . "' ";
                        $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');
                        //Rips in das Tf Ende
                        $destext .= $lang['sys_destruc_echec'] . " <br />";
                        $destext .= $lang['sys_debris'] . " " . $lang['Metal'] . ":<font color=\"#adaead\">" . ($result['debree']['att'][0] + $result['debree']['def'][0] + $tftsmet) . "</font>   " . $lang['Crystal'] . ":<font color=\"#ef51ef\">" . ($result['debree']['att'][1] + $result['debree']['def'][1] + $tftscrist) . "</font>" . $lang['Appolonium'] . ":<font color=\"#ef51ef\">" . ($result['debree']['att'][2] + $result['debree']['def'][2] + $tftsappo) . "</font><br />";
                        doquery("DELETE FROM {{table}} WHERE `fleet_id` = '" . $FleetRow["fleet_id"] . "';", 'fleets');
                    } else {
                        $destext .= $lang['sys_destruc_stop'] . "<br />";
                    }
                }
                break;
            case "r":
                $destext .= 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']) . "<br />";
                $destext .= $lang['sys_destruc_stop'] . "<br />";
                doquery("DELETE FROM {{table}} WHERE `fleet_id` = '" . $FleetRow["fleet_id"] . "';", 'fleets');
                break;
            case "w":
                $destext .= 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']) . "<br />";
                $destext .= $lang['sys_destruc_stop'] . "<br />";
                break;
            default:
                break;
        }
        //Ende Mondzerstörung
        $strunitsgesamt = $result['lost']['att'] + $result['lost']['def'];
        $user1lostunits = $result['lost']['att'];
        $user1shotunits = $result['lost']['def'];
        $user2lostunits = $result['lost']['def'];
        $user2shotunits = $result['lost']['att'];
        $strtruemmerfeld = $result['debree']['att'][0] + $result['debree']['def'][0] + $result['debree']['att'][1] + $result['debree']['def'][1] + $result['debree']['att'][2] + $result['debree']['def'][2];
        $strtruemmermetal = $result['debree']['att'][0] + $result['debree']['def'][0];
        $strtruemmercrystal = $result['debree']['att'][1] + $result['debree']['def'][1];
        $strtruemmerappolonium = $result['debree']['att'][2] + $result['debree']['def'][2];
        $FleetDebris = $result['debree']['att'][0] + $result['debree']['def'][0] + $result['debree']['att'][1] + $result['debree']['def'][1] + $result['debree']['att'][2] + $result['debree']['def'][2];
        $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'], $result['debree']['def'][2] + $result['debree']['att'][2], $lang['Appolonium']);
        $DebrisField = $StrAttackerUnits . "<br />" . $StrDefenderUnits . "<br />" . $StrRuins;
        // Monderstellung
        $MoonChance = $FleetDebris / 100000;
        if ($FleetDebris > 2000000) {
            $MoonChance = 20;
        }
        if ($FleetDebris < 100000) {
            $UserChance = 0;
            $ChanceMoon = "";
        } elseif ($FleetDebris >= 100000) {
            $UserChance = mt_rand(1, 100);
            $ChanceMoon = sprintf($lang['sys_moonproba'], $MoonChance);
        }
        // Mond ja
        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 />";
            //Warum gibt es ein Trümmerfeld wenn der Mond doch daraus ensteht???
            //Abfrage der Größe des Trümmerfeldes?
            $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);
            // Trümmerfeld wird gelöscht da der Mond aus den Trümmern entstanden ist!.
            $QryUpdateGalaxy = "UPDATE {{table}} SET ";
            $QryUpdateGalaxy .= "`metal` = `metal` - '" . $TargetGalaxy["metal"] . "', ";
            $QryUpdateGalaxy .= "`crystal` = `crystal` - '" . $TargetGalaxy["crystal"] . "', ";
            $QryUpdateGalaxy .= "`appolonium` = `appolonium` - '" . $TargetGalaxy["appolonium"] . "' ";
            $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');
            // Mond nein
        } elseif ($UserChance = 0 or $UserChance > $MoonChance) {
            $GottenMoon = "";
        }
        $OwnedUser = doquery('SELECT * FROM {{table}} WHERE id=' . $FleetRow['fleet_owner'], 'users', true);
        $formatted_cr = formatCRM($result, $steal, $MoonChance, $GottenMoon, $totaltime, $destext);
        $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 .= '`raport` = "' . mysql_real_escape_string($raport) . '"';
        doquery($QryInsertRapport, 'rw') or die("Error inserting CR to database" . mysql_error() . "<br /><br />Trying to execute:" . mysql_query());
        $angreifer = $formatted_cr['angreifer'];
        $dpath = !$user["dpath"] ? DEFAULT_SKINPATH : $user["dpath"];
        $rid = md5($raport);
        $QryInserttopkb = "INSERT INTO {{table}} SET ";
        $QryInserttopkb .= "`time` = UNIX_TIMESTAMP(), ";
        $QryInserttopkb .= "`id_owner1` = '" . $FleetRow['fleet_owner'] . "', ";
        $QryInserttopkb .= "`angreifer` = '" . $angreifer . "', ";
        $QryInserttopkb .= "`id_owner2` = '" . $targetUser['id'] . "', ";
        $QryInserttopkb .= "`defender` = '" . $targetUser['username'] . "', ";
        $QryInserttopkb .= "`gesamtunits` = '" . $strunitsgesamt . "', ";
        $QryInserttopkb .= "`gesamttruemmer` = '" . $strtruemmerfeld . "', ";
        $QryInserttopkb .= "`rid` = '" . $rid . "', ";
        $QryInserttopkb .= "`a_zestrzelona` = '" . $a_zestrzelona . "', ";
        $QryInserttopkb .= "`raport` = '" . mysql_real_escape_string($raport) . "',";
        $QryInserttopkb .= "`fleetresult` = '" . $result['won'] . "';";
        doquery("LOCK TABLE {{table}} WRITE", 'topkb');
        doquery($QryInserttopkb, 'topkb');
        doquery("UNLOCK TABLES", '');
        $user1stat = $FleetRow['fleet_owner'];
        $user2stat = $TargetUserID;
        $raport = '<a href # OnClick=\'f( "rw.php?raport=' . $rid . '", "");\' >';
        $raport .= '<center>';
        if ($result['won'] == "a") {
            $raport .= '<font color=\'green\'>';
        } elseif ($result['won'] == "w") {
            $raport .= '<font color=\'orange\'>';
        } elseif ($result['won'] == "r") {
            $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'] . ": " . $result['lost']['att'] . "</font>";
        $raport .= "<font color=\"green\">   " . $lang['sys_perte_defenseur'] . ": " . $result['lost']['def'] . "</font><br />";
        $raport .= $lang['sys_debris'] . " " . $lang['Metal'] . ":<font color=\"#adaead\">" . ($result['debree']['att'][0] + $result['debree']['def'][0] + $metallmond) . "</font>   " . $lang['Crystal'] . ":<font color=\"#ef51ef\">" . ($result['debree']['att'][1] + $result['debree']['def'][1] + $kristallmond) . "</font>" . $lang['Appolonium'] . ":<font color=\"#40e0d0\">" . ($result['debree']['att'][2] + $result['debree']['def'][2] + $appolonium) . "</font><br />";
        SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_destruc_report'], $raport);
        $raport2 = "<a href # OnClick=\"f( 'rw.php?raport=" . $rid . "', '');\" >";
        $raport2 .= "<center>";
        if ($result['won'] == "a") {
            $raport2 .= '<font color=\'red\'>';
        } elseif ($result['won'] == "w") {
            $raport2 .= '<font color=\'orange\'>';
        } elseif ($result['won'] == "r") {
            $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 />";
        foreach ($users2 as $id) {
            if ($id != $FleetRow['fleet_owner'] && $id != 0) {
                SendSimpleMessage($id, '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport2);
            }
        }
        $user1 = doquery("SELECT * FROM {{table}} WHERE `id` = '" . $user1stat . "';", 'users');
        while ($user1data = mysql_fetch_assoc($user1)) {
            $strtruemmermetaluser1 = $strtruemmermetal + $user1data['kbmetal'];
            $strtruemmercrystaluser1 = $strtruemmercrystal + $user1data['kbcrystal'];
            $strtruemmerappoloniumuser1 = $strtruemmerappolonium + $user1data['kbappolonium'];
            $user1lostunits = $user1lostunits + $user1data['lostunits'];
            $user1shotunits = $user1shotunits + $user1data['desunits'];
            $user1wons = $user1data['wons'];
            $user1loos = $user1data['loos'];
            $user1draws = $user1data['draws'];
        }
        $user2 = doquery("SELECT * FROM {{table}} WHERE `id` = '" . $user2stat . "';", 'users');
        while ($user2data = mysql_fetch_assoc($user2)) {
            $strtruemmermetaluser2 = $strtruemmermetal + $user2data['kbmetal'];
            $strtruemmercrystaluser2 = $strtruemmercrystal + $user2data['kbcrystal'];
            $strtruemmerappoloniumuser2 = $strtruemmerappolonium + $user2data['kbappolonium'];
            $user2lostunits = $user2lostunits + $user2data['lostunits'];
            $user2shotunits = $user2shotunits + $user2data['desunits'];
            $user2wons = $user2data['wons'];
            $user2loos = $user2data['loos'];
            $user2draws = $user2data['draws'];
        }
        if ($result['won'] == "a") {
            $user1wons = $user1wons + 1;
            $user2loos = $user2loos + 1;
        } elseif ($result['won'] == "w") {
            $user1draws = $user1draws + 1;
            $user2draws = $user2draws + 1;
        } elseif ($result['won'] == "r") {
            $user1loos = $user1loos + 1;
            $user2wons = $user2wons + 1;
        }
        $QryUpdateuserstat = "UPDATE {{table}} SET ";
        $QryUpdateuserstat .= "`wons` = '" . $user1wons . "', ";
        $QryUpdateuserstat .= "`loos` = '" . $user1loos . "', ";
        $QryUpdateuserstat .= "`draws` = '" . $user1draws . "', ";
        $QryUpdateuserstat .= "`kbmetal` = '" . $strtruemmermetaluser1 . "', ";
        $QryUpdateuserstat .= "`kbcrystal` = '" . $strtruemmercrystaluser1 . "', ";
        $QryUpdateuserstat .= "`kbappolonium` = '" . $strtruemmerappoloniumuser1 . "', ";
        $QryUpdateuserstat .= "`lostunits` = '" . $user1lostunits . "', ";
        $QryUpdateuserstat .= "`desunits` = '" . $user1shotunits . "' ";
        $QryUpdateuserstat .= "WHERE ";
        $QryUpdateuserstat .= "`id` = '" . $FleetRow['fleet_owner'] . "';";
        doquery($QryUpdateuserstat, 'users');
        $QryUpdateuser2stat = "UPDATE {{table}} SET ";
        $QryUpdateuser2stat .= "`wons` = '" . $user2wons . "', ";
        $QryUpdateuser2stat .= "`loos` = '" . $user2loos . "', ";
        $QryUpdateuser2stat .= "`draws` = '" . $user2draws . "', ";
        $QryUpdateuser2stat .= "`kbmetal` = '" . $strtruemmermetaluser2 . "', ";
        $QryUpdateuser2stat .= "`kbcrystal` = '" . $strtruemmercrystaluser2 . "', ";
        $QryUpdateuser2stat .= "`kbappolonium` = '" . $strtruemmerappoloniumuser2 . "', ";
        $QryUpdateuser2stat .= "`lostunits` = '" . $user2lostunits . "', ";
        $QryUpdateuser2stat .= "`desunits` = '" . $user2shotunits . "' ";
        $QryUpdateuser2stat .= "WHERE ";
        $QryUpdateuser2stat .= "`id` = '" . $targetUser['id'] . "';";
        doquery($QryUpdateuser2stat, 'users');
        $CurrentUser = doquery("SELECT * FROM {{table}} WHERE id = " . $FleetRow['fleet_owner'], 'users', true);
        $CurrentUserID = $CurrentUser['id'];
        $AddPoint = $CurrentUser['xpraid'] + 1;
        $QryUpdateOfficier = "UPDATE {{table}} SET ";
        $QryUpdateOfficier .= "`xpraid` = '" . $AddPoint . "' ";
        $QryUpdateOfficier .= "WHERE id = '" . $CurrentUserID . "' ";
        $QryUpdateOfficier .= "LIMIT 1 ;";
        doquery($QryUpdateOfficier, 'users');
        $RaidsTotal = $CurrentUser['raids'] + 1;
        if ($result['won'] == "a") {
            $RaidsWin = $CurrentUser['raidswin'] + 1;
            $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
            $QryUpdateRaidsCompteur .= "`raidswin` ='" . $RaidsWin . "', ";
            $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
            $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
            $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
            doquery($QryUpdateRaidsCompteur, 'users');
        } elseif ($result['won'] == "r" || $result['won'] == "w") {
            $RaidsLoose = $CurrentUser['raidsloose'] + 1;
            $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
            $QryUpdateRaidsCompteur .= "`raidsloose` ='" . $RaidsLoose . "', ";
            $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
            $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
            $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
            doquery($QryUpdateRaidsCompteur, 'users');
        }
    } elseif ($FleetRow['fleet_end_time'] <= time()) {
        $Message = sprintf($lang['sys_tran_mess_angriffback'], $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'], pretty_number($FleetRow['fleet_resource_appolonium']), $lang['Appolonium']);
        SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_end_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_fleetback'], $Message);
        RestoreFleetToPlanet($FleetRow);
        doquery('DELETE FROM {{table}} WHERE `fleet_id`=' . $FleetRow['fleet_id'], 'fleets');
    }
}
Beispiel #10
0
    includeLang('admin/addmoon');
    $PageTpl = gettemplate("admin/add_moon");
    if ($_POST) {
        $moonName = isset($_POST['moonName']) ? mysql_real_escape_string($_POST['moonName']) : $lang['AddMoon_DefaultName'];
        if (isset($_POST['planetId']) && $_POST['planetId'] != '') {
            $planetId = (int) $_POST['planetId'];
            $queryCondition = " `id` = '{$planetId}'";
        } else {
            $planetGalaxy = isset($_POST['galaxy']) ? (int) $_POST['galaxy'] : false;
            $planetSystem = isset($_POST['system']) ? (int) $_POST['system'] : false;
            $planetPosition = isset($_POST['planet']) ? (int) $_POST['planet'] : false;
            $queryCondition = " galaxy = '{$planetGalaxy}' AND system = '{$planetSystem}' AND planet = '{$planetPosition}'";
        }
        $qrySelectPlanet = "SELECT id_owner, galaxy, system, planet FROM {{table}} WHERE {$queryCondition} LIMIT 1;";
        $PlanetSelected = doquery($qrySelectPlanet, 'planets', true);
        if ($PlanetSelected) {
            $Galaxy = $PlanetSelected['galaxy'];
            $System = $PlanetSelected['system'];
            $Planet = $PlanetSelected['planet'];
            $Owner = $PlanetSelected['id_owner'];
            CreateOneMoonRecord($Galaxy, $System, $Planet, $Owner, time(), $moonName, 20);
            AdminMessage($lang['AddMoon_Done'], $lang['AddMoon_Title']);
        } else {
            AdminMessage($lang['AddMoon_Fail'], $lang['AddMoon_Title']);
        }
    }
    $Page = parsetemplate($PageTpl, $lang);
    display($Page, $lang['AddMoon_Title'], false, '', true);
} else {
    AdminMessage($lang['sys_noalloaw'], $lang['sys_noaccess']);
}
Beispiel #11
0
$Galaxy = $CurrentPlanet['galaxy'];
$System = $CurrentPlanet['system'];
$Planet = $CurrentPlanet['planet'];
$QryGetMoonGalaxyData = "SELECT * FROM {{table}} ";
$QryGetMoonGalaxyData .= "WHERE ";
$QryGetMoonGalaxyData .= "`galaxy` = '" . $Galaxy . "' AND ";
$QryGetMoonGalaxyData .= "`system` = '" . $System . "' AND ";
$QryGetMoonGalaxyData .= "`planet` = '" . $Planet . "';";
$MoonGalaxy = doquery($QryGetMoonGalaxyData, 'galaxy', true);
if ($MoonGalaxy['id_luna'] != 0) {
    message($lang['moon_exist']);
    break;
}
// Abfrage ende
if ($CurrentPlanet['mondtransformer'] == 1) {
    $Chance = 20;
    $MoonName = $_POST['name'];
    if (!ctype_alnum($MoonName)) {
        message($lang['do_word_and_digit']);
        break;
    }
    $Galaxy = $CurrentPlanet['galaxy'];
    $System = $CurrentPlanet['system'];
    $Planet = $CurrentPlanet['planet'];
    $Owner = $CurrentPlanet['id_owner'];
    $MoonID = time();
    $NewOwnerMoon = CreateOneMoonRecord($Galaxy, $System, $Planet, $Owner, $MoonID, $MoonName, $Chance);
    message($title = '', $lang['done']);
}
$Page = parsetemplate($TransTPL, $parse);
return $Page;
Beispiel #12
0
function ShowCreatorPage()
{
    global $LNG, $db, $USER;
    $template = new template();
    $template->page_header();
    switch ($_GET['mode']) {
        case 'user':
            includeLang('PUBLIC');
            if ($_POST) {
                $UserName = request_var('name', '', UTF8_SUPPORT);
                $UserPass = request_var('password', '');
                $UserPass2 = request_var('password2', '');
                $UserMail = request_var('email', '');
                $UserMail2 = request_var('email2', '');
                $UserLang = request_var('lang', '');
                $UserAuth = request_var('authlevel', 0);
                $Galaxy = request_var('galaxy', 0);
                $System = request_var('system', 0);
                $Planet = request_var('planet', 0);
                if ($CONF['capaktiv'] === '1') {
                    require_once 'includes/libs/reCAPTCHA/recaptchalib.php';
                    $resp = recaptcha_check_answer($CONF['capprivate'], $_SERVER['REMOTE_ADDR'], request_var('recaptcha_challenge_field', ''), request_var('recaptcha_response_field', ''));
                    if (!$resp->is_valid) {
                        $errorlist .= $LNG['wrong_captcha'];
                    }
                }
                $Exist['userv'] = $db->uniquequery("SELECT username, email FROM " . USERS . " WHERE username = '******' OR email = '" . $db->sql_escape($UserEmail) . "';");
                $Exist['vaild'] = $db->uniquequery("SELECT username, email FROM " . USERS_VALID . " WHERE username = '******' OR email = '" . $db->sql_escape($UserEmail) . "';");
                if (!ValidateAddress($UserMail)) {
                    $errors .= $LNG['invalid_mail_adress'];
                }
                if (empty($UserName)) {
                    $errors .= $LNG['empty_user_field'];
                }
                if (strlen($UserPass) < 6) {
                    $errors .= $LNG['password_lenght_error'];
                }
                if ($UserPass != $UserPass2) {
                    $errors .= $LNG['different_passwords'];
                }
                if ($UserMail != $UserMail2) {
                    $errors .= $LNG['different_mails'];
                }
                if (!CheckName($UserName)) {
                    $errors .= UTF8_SUPPORT ? $LNG['user_field_no_space'] : $LNG['user_field_no_alphanumeric'];
                }
                if (isset($Exist['userv']['username']) || isset($Exist['vaild']['username']) && ($UserName == $Exist['userv']['username'] || $UserName == $Exist['vaild']['username'])) {
                    $errors .= $LNG['user_already_exists'];
                }
                if ((isset($Exist['userv']['email']) || isset($Exist['vaild']['email'])) && ($UserEmail == $Exist['userv']['email'] || $UserEmail == $Exist['vaild']['email'])) {
                    $errors .= $LNG['mail_already_exists'];
                }
                if (CheckPlanetIfExist($Galaxy, $System, $Position)) {
                    $errors .= $LNG['planet_already_exists'];
                }
                if (!empty($errors)) {
                    $template->message($errors, '?page=create&mode=user', 3, true);
                    exit;
                }
                $SQL = "INSERT INTO " . USERS . " SET ";
                $SQL .= "`username` = '" . $db->sql_escape($UserName) . "', ";
                $SQL .= "`email` = '" . $db->sql_escape($UserMail) . "', ";
                $SQL .= "`email_2` = '" . $db->sql_escape($UserMail) . "', ";
                $SQL .= "`lang` = '" . $db->sql_escape($UserLang) . "', ";
                $SQL .= "`authlevel` = '" . $UserAuth . "', ";
                $SQL .= "`ip_at_reg` = '" . $_SERVER['REMOTE_ADDR'] . "', ";
                $SQL .= "`id_planet` = '0', ";
                $SQL .= "`onlinetime` = '" . TIMESTAMP . "', ";
                $SQL .= "`register_time` = '" . TIMESTAMP . "', ";
                $SQL .= "`password` = '" . md5($UserPass) . "', ";
                $SQL .= "`dpath` = '" . DEFAULT_SKINPATH . "', ";
                $SQL .= "`uctime`= '0';";
                $db->query($SQL);
                $db->query("UPDATE " . CONFIG . " SET `config_value` = config_value + '1' WHERE `config_name` = 'users_amount';");
                $ID_USER = $db->uniquequery("SELECT `id` FROM " . USERS . " WHERE `username` = '" . $db->sql_escape($UserName) . "';");
                require_once ROOT_PATH . 'includes/functions/CreateOnePlanetRecord.' . PHP_EXT;
                CreateOnePlanetRecord($Galaxy, $System, $Planet, $ID_USER['id'], $UserPlanet, true, $UserAuth);
                $ID_PLANET = $db->uniquequery("SELECT `id` FROM " . PLANETS . " WHERE `id_owner` = '" . $ID_USER['id'] . "';");
                $SQL = "UPDATE " . USERS . " SET ";
                $SQL .= "`id_planet` = '" . $ID_PLANET['id'] . "', ";
                $SQL .= "`galaxy` = '" . $Galaxy . "', ";
                $SQL .= "`system` = '" . $System . "', ";
                $SQL .= "`planet` = '" . $Planet . "' ";
                $SQL .= "WHERE ";
                $SQL .= "`id` = '" . $ID_USER['id'] . "' ";
                $SQL .= "LIMIT 1;";
                $db->query($SQL);
                $template->message($LNG['new_user_success'], '?page=create&mode=user', 3, true);
                exit;
            }
            $AUTH[0] = $LNG['user_level'][0];
            if ($USER['authlevel'] >= AUTH_OPS) {
                $AUTH[AUTH_OPS] = $LNG['user_level'][AUTH_OPS];
            }
            if ($USER['authlevel'] >= AUTH_MOD) {
                $AUTH[AUTH_MOD] = $LNG['user_level'][AUTH_MOD];
            }
            if ($USER['authlevel'] >= AUTH_ADM) {
                $AUTH[AUTH_ADM] = $LNG['user_level'][AUTH_ADM];
            }
            $template->assign_vars(array('new_add_user' => $LNG['new_add_user'], 'new_creator_refresh' => $LNG['new_creator_refresh'], 'new_creator_go_back' => $LNG['new_creator_go_back'], 'user_reg' => $LNG['user_reg'], 'pass_reg' => $LNG['pass_reg'], 'pass2_reg' => $LNG['pass2_reg'], 'email_reg' => $LNG['email_reg'], 'email2_reg' => $LNG['email2_reg'], 'new_coord' => $LNG['new_coord'], 'new_range' => $LNG['new_range'], 'new_title' => $LNG['new_title'], 'Selector' => $AUTH));
            $template->show('adm/CreatePageUser.tpl');
            break;
        case 'moon':
            if ($_POST) {
                $PlanetID = request_var('add_moon', 0);
                $MoonName = request_var('name', '', UTF8_SUPPORT);
                $Diameter = request_var('diameter', 0);
                $FieldMax = request_var('field_max', 0);
                $MoonPlanet = $db->uniquequery("SELECT `temp_max`, `temp_min`, `id_luna`, `galaxy`, `system`, `planet`, `planet_type`, `destruyed`, `id_level`, `id_owner` FROM " . PLANETS . " WHERE `id` = '" . $PlanetID . "' AND `planet_type` = '1' AND `destruyed` = '0';");
                if (!isset($MoonPlanet)) {
                    $template->message($LNG['mo_planet_doesnt_exist'], '?page=create&mode=moon', 3, true);
                    exit;
                }
                require_once ROOT_PATH . 'includes/functions/CreateOneMoonRecord.' . PHP_EXT;
                if (CreateOneMoonRecord($MoonPlanet['galaxy'], $MoonPlanet['system'], $MoonPlanet['planet'], $MoonPlanet['id_owner'], 0, $MoonName, 20, $_POST['diameter_check'] == 'on' ? 0 : $Diameter) !== false) {
                    $template->message($LNG['mo_moon_added'], '?page=create&mode=moon', 3, true);
                } else {
                    $template->message($LNG['mo_moon_unavaible'], '?page=create&mode=moon', 3, true);
                }
                exit;
            }
            $template->assign_vars(array('po_add_moon' => $LNG['po_add_moon'], 'input_id_planet' => $LNG['input_id_planet'], 'mo_moon_name' => $LNG['mo_moon_name'], 'mo_diameter' => $LNG['mo_diameter'], 'mo_temperature' => $LNG['mo_temperature'], 'mo_fields_avaibles' => $LNG['mo_fields_avaibles'], 'button_add' => $LNG['button_add'], 'new_creator_refresh' => $LNG['new_creator_refresh'], 'mo_moon' => $LNG['fcm_moon'], 'new_creator_go_back' => $LNG['new_creator_go_back']));
            $template->show('adm/CreatePageMoon.tpl');
            break;
        case 'planet':
            if ($_POST) {
                $id = request_var('id', 0);
                $Galaxy = request_var('galaxy', 0);
                $System = request_var('system', 0);
                $Planet = request_var('planet', 0);
                $name = request_var('name', '', UTF8_SUPPORT);
                $field_max = request_var('field_max', 0);
                $ISUser = $db->uniquequery("SELECT id, authlevel FROM " . USERS . " WHERE `id` = '" . $id . "';");
                if (CheckPlanetIfExist($Galaxy, $System, $Planet) || !isset($ISUser)) {
                    $template->message($LNG['po_complete_all'], '?page=create&mode=planet', 3, true);
                    exit;
                }
                require_once ROOT_PATH . 'includes/functions/CreateOnePlanetRecord.' . PHP_EXT;
                CreateOnePlanetRecord($Galaxy, $System, $Planet, $id, '', '', false);
                $SQL = "UPDATE " . PLANETS . " SET ";
                if ($_POST['diameter_check'] != 'on' || $field_max > 0) {
                    $SQL .= "`field_max` = '" . $field_max . "', ";
                }
                if (!empty($name)) {
                    $SQL .= "`name` = '" . $db->sql_escape($name) . "', ";
                }
                $SQL .= "`id_level` = '" . $ISUser['authlevel'] . "' ";
                $SQL .= "WHERE ";
                $SQL .= "`galaxy` = '" . $Galaxy . "' AND ";
                $SQL .= "`system` = '" . $System . "' AND ";
                $SQL .= "`planet` = '" . $Planet . "' AND ";
                $SQL .= "`planet_type` = '1'";
                $db->query($SQL);
                $template->message($LNG['po_complete_succes'], '?page=create&mode=planet', 3, true);
                exit;
            }
            $template->assign_vars(array('po_add_planet' => $LNG['po_add_planet'], 'po_galaxy' => $LNG['po_galaxy'], 'po_system' => $LNG['po_system'], 'po_planet' => $LNG['po_planet'], 'input_id_user' => $LNG['input_id_user'], 'new_creator_coor' => $LNG['new_creator_coor'], 'po_name_planet' => $LNG['po_name_planet'], 'po_fields_max' => $LNG['po_fields_max'], 'button_add' => $LNG['button_add'], 'po_colony' => $LNG['fcp_colony'], 'new_creator_refresh' => $LNG['new_creator_refresh'], 'new_creator_go_back' => $LNG['new_creator_go_back']));
            $template->show('adm/CreatePagePlanet.tpl');
            break;
        default:
            $template->assign_vars(array('new_creator_title_u' => $LNG['new_creator_title_u'], 'new_creator_title_p' => $LNG['new_creator_title_p'], 'new_creator_title_l' => $LNG['new_creator_title_l'], 'new_creator_title' => $LNG['new_creator_title']));
            $template->show('adm/CreatePage.tpl');
            break;
    }
}
Beispiel #13
0
function MissionCaseAttack($FleetRow)
{
    global $user, $phpEx, $ugamela_root_path, $pricelist, $lang, $resource, $CombatCaps;
    if ($FleetRow['fleet_start_time'] <= time()) {
        if ($FleetRow['fleet_mess'] == 0) {
            if (!isset($CombatCaps[202]['sd'])) {
                message("<font color=\"red\">" . $lang['sys_no_vars'] . "</font>", $lang['sys_error'], "fleet." . $phpEx, 2);
            }
            $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'];
            $QryCurrentUser = "******";
            $QryCurrentUser .= "WHERE ";
            $QryCurrentUser .= "`id` = '" . $FleetRow['fleet_owner'] . "';";
            $CurrentUser = doquery($QryCurrentUser, 'users', true);
            $CurrentUserID = $CurrentUser['id'];
            $QryTargetUser = "******";
            $QryTargetUser .= "WHERE ";
            $QryTargetUser .= "`id` = '" . $TargetUserID . "';";
            $TargetUser = doquery($QryTargetUser, 'users', true);
            $QryTargetTech = "SELECT ";
            $QryTargetTech .= "`military_tech`, `defence_tech`, `shield_tech` ";
            $QryTargetTech .= "FROM {{table}} ";
            $QryTargetTech .= "WHERE ";
            $QryTargetTech .= "`id` = '" . $TargetUserID . "';";
            $TargetTechno = doquery($QryTargetTech, 'users', true);
            $QryCurrentTech = "SELECT ";
            $QryCurrentTech .= "`military_tech`, `defence_tech`, `shield_tech` ";
            $QryCurrentTech .= "FROM {{table}} ";
            $QryCurrentTech .= "WHERE ";
            $QryCurrentTech .= "`id` = '" . $CurrentUserID . "';";
            $CurrentTechno = doquery($QryCurrentTech, '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];
                }
            }
            include_once $ugamela_root_path . 'includes/ataki.' . $phpEx;
            $mtime = microtime();
            $mtime = explode(" ", $mtime);
            $mtime = $mtime[1] + $mtime[0];
            $starttime = $mtime;
            $walka = walka($CurrentSet, $TargetSet, $CurrentTechno, $TargetTechno);
            $mtime = microtime();
            $mtime = explode(" ", $mtime);
            $mtime = $mtime[1] + $mtime[0];
            $endtime = $mtime;
            $totaltime = $endtime - $starttime;
            $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'];
            }
            $FleetStorage -= $FleetRow["fleet_resource_metal"];
            $FleetStorage -= $FleetRow["fleet_resource_crystal"];
            $FleetStorage -= $FleetRow["fleet_resource_deuterium"];
            $TargetPlanetUpd = "";
            if (!is_null($TargetSet)) {
                foreach ($TargetSet as $Ship => $Count) {
                    $TargetPlanetUpd .= "`" . $resource[$Ship] . "` = '" . $Count['count'] . "', ";
                }
            }
            $Mining['metal'] = 0;
            $Mining['crystal'] = 0;
            $Mining['deuter'] = 0;
            if ($FleetResult == "a") {
                if ($FleetStorage > 0) {
                    $metal = $TargetPlanet['metal'] / 2;
                    $crystal = $TargetPlanet['crystal'] / 2;
                    $deuter = $TargetPlanet["deuterium"] / 2;
                    if ($metal > $FleetStorage / 3) {
                        $Mining['metal'] = $FleetStorage / 3;
                        $FleetStorage = $FleetStorage - $Mining['metal'];
                    } else {
                        $Mining['metal'] = $metal;
                        $FleetStorage = $FleetStorage - $Mining['metal'];
                    }
                    if ($crystal > $FleetStorage / 2) {
                        $Mining['crystal'] = $FleetStorage / 2;
                        $FleetStorage = $FleetStorage - $Mining['crystal'];
                    } else {
                        $Mining['crystal'] = $crystal;
                        $FleetStorage = $FleetStorage - $Mining['crystal'];
                    }
                    if ($deuter > $FleetStorage) {
                        $Mining['deuter'] = $FleetStorage;
                        $FleetStorage = $FleetStorage - $Mining['deuter'];
                    } else {
                        $Mining['deuter'] = $deuter;
                        $FleetStorage = $FleetStorage - $Mining['deuter'];
                    }
                }
            }
            $Mining['metal'] = round($Mining['metal']);
            $Mining['crystal'] = round($Mining['crystal']);
            $Mining['deuter'] = round($Mining['deuter']);
            $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']);
            // mod TOP KB
            $strunitsgesamt = $zlom["atakujacy"] + $zlom["wrog"];
            $user1lostunits = $zlom["atakujacy"];
            $user1shotunits = $zlom["wrog"];
            $user2lostunits = $zlom["wrog"];
            $user2shotunits = $zlom["atakujacy"];
            $strtruemmerfeld = $zlom["metal"] + $zlom["crystal"];
            $strtruemmermetal = $zlom["metal"];
            $strtruemmercrystal = $zlom["crystal"];
            // mod TOP KB
            $DebrisField = $StrAttackerUnits . "<br />" . $StrDefenderUnits . "<br />" . $StrRuins;
            $MoonChance = $FleetDebris / 100000;
            if ($FleetDebris > 2000000) {
                $MoonChance = 20;
            }
            if ($FleetDebris < 100000) {
                $UserChance = 0;
                $ChanceMoon = "";
            } 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, '', $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_attack_title'], $AttackDate);
            $raport = "<center><table><tr><td>" . $title . "<br />";
            $zniszczony = false;
            $a_zestrzelona = 0;
            $AttackTechon['A'] = $CurrentTechno["military_tech"] * 10;
            $AttackTechon['B'] = $CurrentTechno["defence_tech"] * 10;
            $AttackTechon['C'] = $CurrentTechno["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'] = $TargetTechno["military_tech"] * 10;
            $DefendTechon['B'] = $TargetTechno["defence_tech"] * 10;
            $DefendTechon['C'] = $TargetTechno["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']);
            // mod TOP KB
            $angreifer = $CurrentUser["username"];
            $defender = $TargetUser["username"];
            // mod TOP KB
            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":
                    $Pillage = sprintf($lang['sys_stealed_ressources'], $Mining['metal'], $lang['metal'], $Mining['crystal'], $lang['crystal'], $Mining['deuter'], $lang['Deuterium']);
                    $raport .= $lang['sys_attacker_won'] . "<br />" . $Pillage . "<br />";
                    $raport .= $DebrisField . "<br />";
                    $raport .= $ChanceMoon . "<br />";
                    $raport .= $GottenMoon . "<br />";
                    break;
                case "r":
                    $raport .= $lang['sys_both_won'] . "<br />";
                    $raport .= $DebrisField . "<br />";
                    $raport .= $ChanceMoon . "<br />";
                    $raport .= $GottenMoon . "<br />";
                    break;
                case "w":
                    $raport .= $lang['sys_defender_won'] . "<br />";
                    $raport .= $DebrisField . "<br />";
                    $raport .= $ChanceMoon . "<br />";
                    $raport .= $GottenMoon . "<br />";
                    doquery("DELETE FROM {{table}} WHERE `fleet_id` = '" . $FleetRow["fleet_id"] . "';", 'fleets');
                    break;
                default:
                    break;
            }
            $SimMessage = sprintf($lang['sys_rapport_build_time'], $totaltime);
            $raport .= $SimMessage . "</table>";
            $dpath = !$user["dpath"] ? DEFAULT_SKINPATH : $user["dpath"];
            $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');
            // mod TOP KB
            $dpath = !$user["dpath"] ? DEFAULT_SKINPATH : $user["dpath"];
            $rid = md5($raport);
            $QryInserttopkb = "INSERT INTO {{table}} SET ";
            $QryInserttopkb .= "`time` = UNIX_TIMESTAMP(), ";
            $QryInserttopkb .= "`id_owner1` = '" . $FleetRow['fleet_owner'] . "', ";
            $QryInserttopkb .= "`angreifer` = '" . $angreifer . "', ";
            $QryInserttopkb .= "`id_owner2` = '" . $TargetUserID . "', ";
            $QryInserttopkb .= "`defender` = '" . $defender . "', ";
            $QryInserttopkb .= "`gesamtunits` = '" . $strunitsgesamt . "', ";
            $QryInserttopkb .= "`gesamttruemmer` = '" . $strtruemmerfeld . "', ";
            $QryInserttopkb .= "`rid` = '" . $rid . "', ";
            $QryInserttopkb .= "`a_zestrzelona` = '" . $a_zestrzelona . "', ";
            $QryInserttopkb .= "`raport` = '" . addslashes($raport) . "',";
            $QryInserttopkb .= "`fleetresult` = '" . $FleetResult . "';";
            doquery("LOCK TABLE {{table}} WRITE", 'topkb');
            doquery($QryInserttopkb, 'topkb');
            doquery("UNLOCK TABLES", '');
            $user1stat = $FleetRow['fleet_owner'];
            $user2stat = $TargetUserID;
            // mod TOP KB
            $raport = "<a href # OnClick=\"f( 'rw.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_attack_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_gain'] . " " . $lang['Metal'] . ":<font color=\"#adaead\">" . $Mining['metal'] . "</font>   " . $lang['Crystal'] . ":<font color=\"#ef51ef\">" . $Mining['crystal'] . "</font>   " . $lang['Deuterium'] . ":<font color=\"#f77542\">" . $Mining['deuter'] . "</font><br />";
            $raport .= $lang['sys_debris'] . " " . $lang['Metal'] . ":<font color=\"#adaead\">" . $zlom['metal'] . "</font>   " . $lang['Crystal'] . ":<font color=\"#ef51ef\">" . $zlom['crystal'] . "</font><br /></center>";
            $Mining['metal'] = $Mining['metal'] + $FleetRow["fleet_resource_metal"];
            $Mining['crystal'] = $Mining['crystal'] + $FleetRow["fleet_resource_crystal"];
            $Mining['deuter'] = $Mining['deuter'] + $FleetRow["fleet_resource_deuterium"];
            $QryUpdateFleet = "UPDATE {{table}} SET ";
            $QryUpdateFleet .= "`fleet_amount` = '" . $FleetAmount . "', ";
            $QryUpdateFleet .= "`fleet_array` = '" . $FleetArray . "', ";
            $QryUpdateFleet .= "`fleet_mess` = '1', ";
            $QryUpdateFleet .= "`fleet_resource_metal` = '" . $Mining['metal'] . "', ";
            $QryUpdateFleet .= "`fleet_resource_crystal` = '" . $Mining['crystal'] . "', ";
            $QryUpdateFleet .= "`fleet_resource_deuterium` = '" . $Mining['deuter'] . "' ";
            $QryUpdateFleet .= "WHERE fleet_id = '" . $FleetRow['fleet_id'] . "' ";
            $QryUpdateFleet .= "LIMIT 1 ;";
            doquery($QryUpdateFleet, 'fleets');
            SendSimpleMessage($CurrentUserID, '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport);
            $raport2 = "<a href # OnClick=\"f( 'rw.php?raport=" . $rid . "', '');\" >";
            $raport2 .= "<center>";
            if ($FleetResult == "a") {
                $raport2 .= "<font color=\"green\">";
            } elseif ($FleetResult == "r") {
                $raport2 .= "<font color=\"orange\">";
            } elseif ($FleetResult == "w") {
                $raport2 .= "<font color=\"red\">";
            }
            $raport2 .= $lang['sys_mess_attack_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_attack_report'], $raport2);
            $AddPoint = $CurrentUser['xpraid'] + 1;
            $AddPoint2 = $TargetUser['xpraid'] + 1;
            $QryUpdateOfficier = "UPDATE {{table}} SET ";
            $QryUpdateOfficier .= "`xpraid` = '" . $AddPoint . "' ";
            $QryUpdateOfficier .= "WHERE id = '" . $CurrentUserID . "' ";
            $QryUpdateOfficier .= "LIMIT 1 ;";
            doquery($QryUpdateOfficier, 'users');
            $QryUpdateOfficier2 = "UPDATE {{table}} SET ";
            $QryUpdateOfficier2 .= "`xpraid` = '" . $AddPoint2 . "' ";
            $QryUpdateOfficier2 .= "WHERE id = '" . $TargetUserID . "' ";
            $QryUpdateOfficier2 .= "LIMIT 1 ;";
            doquery($QryUpdateOfficier2, 'users');
            // Ajout d'un point au compteur de raids
            $RaidsTotal = $CurrentUser['raids'] + 1;
            $RaidsTotal2 = $TargetUser['raids'] + 1;
            if ($FleetResult == "a") {
                $RaidsWin = $CurrentUser['raidswin'] + 1;
                $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
                $QryUpdateRaidsCompteur .= "`raidswin` ='" . $RaidsWin . "', ";
                $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
                $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
                $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
                doquery($QryUpdateRaidsCompteur, 'users');
                $RaidsLoose2 = $TargetUser['raidsloose'] + 1;
                $QryUpdateRaidsCompteur2 = "UPDATE {{table}} SET ";
                $QryUpdateRaidsCompteur2 .= "`raidsloose` ='" . $RaidsLoose2 . "', ";
                $QryUpdateRaidsCompteur2 .= "`raids` ='" . $RaidsTotal2 . "' ";
                $QryUpdateRaidsCompteur2 .= "WHERE id = '" . $TargetUserID . "' ";
                $QryUpdateRaidsCompteur2 .= "LIMIT 1 ;";
                doquery($QryUpdateRaidsCompteur2, 'users');
            } elseif ($FleetResult == "w") {
                $RaidsLoose = $CurrentUser['raidsloose'] + 1;
                $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
                $QryUpdateRaidsCompteur .= "`raidsloose` ='" . $RaidsLoose . "', ";
                $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
                $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
                $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
                doquery($QryUpdateRaidsCompteur, 'users');
                $RaidsWin2 = $TargetUser['raidswin'] + 1;
                $QryUpdateRaidsCompteur2 = "UPDATE {{table}} SET ";
                $QryUpdateRaidsCompteur2 .= "`raidswin` ='" . $RaidsWin2 . "', ";
                $QryUpdateRaidsCompteur2 .= "`raids` ='" . $RaidsTotal2 . "' ";
                $QryUpdateRaidsCompteur2 .= "WHERE id = '" . $TargetUserID . "' ";
                $QryUpdateRaidsCompteur2 .= "LIMIT 1 ;";
                doquery($QryUpdateRaidsCompteur2, 'users');
            } elseif ($FleetResult == "r") {
                $RaidsDraw = $CurrentUser['raidsdraw'] + 1;
                $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
                $QryUpdateRaidsCompteur .= "`raidsdraw` ='" . $RaidsDraw . "', ";
                $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
                $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
                $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
                doquery($QryUpdateRaidsCompteur, 'users');
                $RaidsDraw2 = $TargetUser['raidsdraw'] + 1;
                $QryUpdateRaidsCompteur2 = "UPDATE {{table}} SET ";
                $QryUpdateRaidsCompteur2 .= "`raidsdraw` ='" . $RaidsDraw2 . "', ";
                $QryUpdateRaidsCompteur2 .= "`raids` ='" . $RaidsTotal2 . "' ";
                $QryUpdateRaidsCompteur2 .= "WHERE id = '" . $TargetUserID . "' ";
                $QryUpdateRaidsCompteur2 .= "LIMIT 1 ;";
                doquery($QryUpdateRaidsCompteur2, 'users');
            }
        }
        // Updaten Spieler Datenbank
        $user1 = doquery("SELECT * FROM {{table}} WHERE `id` = '" . $user1stat . "';", 'users');
        while ($user1data = mysql_fetch_assoc($user1)) {
            $strtruemmermetaluser1 = $strtruemmermetal + $user1data['kbmetal'];
            $strtruemmercrystaluser1 = $strtruemmercrystal + $user1data['kbcrystal'];
            $user1lostunits = $user1lostunits + $user1data['lostunits'];
            $user1shotunits = $user1shotunits + $user1data['desunits'];
            $user1wons = $user1data['wons'];
            $user1loos = $user1data['loos'];
            $user1draws = $user1data['draws'];
        }
        $user2 = doquery("SELECT * FROM {{table}} WHERE `id` = '" . $user2stat . "';", 'users');
        while ($user2data = mysql_fetch_assoc($user2)) {
            $strtruemmermetaluser2 = $strtruemmermetal + $user2data['kbmetal'];
            $strtruemmercrystaluser2 = $strtruemmercrystal + $user2data['kbcrystal'];
            $user2lostunits = $user2lostunits + $user2data['lostunits'];
            $user2shotunits = $user2shotunits + $user2data['desunits'];
            $user2wons = $user2data['wons'];
            $user2loos = $user2data['loos'];
            $user2draws = $user2data['draws'];
        }
        if ($FleetResult == "a") {
            $user1wons++;
            $user2loos++;
        } elseif ($FleetResult == "r") {
            $user1draws++;
            $user2draws++;
        } elseif ($FleetResult == "w") {
            $user1loos++;
            $user2wons++;
        }
        //Update Angreifer Truemerfeld, Kampfergebniss und Units
        $userstat = doquery("SELECT * FROM {{table}} WHERE `id` = '" . $user1stat . "';", 'users');
        while ($userwrite = mysql_fetch_assoc($userstat)) {
            $QryUpdateuserstat = "UPDATE {{table}} SET ";
            $QryUpdateuserstat .= "`wons` = '" . $user1wons . "', ";
            $QryUpdateuserstat .= "`loos` = '" . $user1loos . "', ";
            $QryUpdateuserstat .= "`draws` = '" . $user1draws . "', ";
            $QryUpdateuserstat .= "`kbmetal` = '" . $strtruemmermetaluser1 . "', ";
            $QryUpdateuserstat .= "`kbcrystal` = '" . $strtruemmercrystaluser1 . "', ";
            $QryUpdateuserstat .= "`lostunits` = '" . $user1lostunits . "', ";
            $QryUpdateuserstat .= "`desunits` = '" . $user1shotunits . "' ";
            $QryUpdateuserstat .= "WHERE ";
            $QryUpdateuserstat .= "`id` = '" . $user1stat . "';";
            doquery($QryUpdateuserstat, 'users');
            //Update Verteidiger Truemerfeld, Kampfergebniss und Units
            $QryUpdateuserstat = "UPDATE {{table}} SET ";
            $QryUpdateuserstat .= "`wons` = '" . $user2wons . "', ";
            $QryUpdateuserstat .= "`loos` = '" . $user2loos . "', ";
            $QryUpdateuserstat .= "`draws` = '" . $user2draws . "', ";
            $QryUpdateuserstat .= "`kbmetal` = '" . $strtruemmermetaluser2 . "', ";
            $QryUpdateuserstat .= "`kbcrystal` = '" . $strtruemmercrystaluser2 . "', ";
            $QryUpdateuserstat .= "`lostunits` = '" . $user2lostunits . "', ";
            $QryUpdateuserstat .= "`desunits` = '" . $user2shotunits . "' ";
            $QryUpdateuserstat .= "WHERE ";
            $QryUpdateuserstat .= "`id` = '" . $user2stat . "';";
            doquery($QryUpdateuserstat, 'users');
        }
        // Ende schreiben in datenbank
        // Retour de flotte (s'il en reste)
        $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 MissionCaseAttack($FleetRow)
 {
     global $db, $users, $users, $phpEx, $svn_root, $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");
             }
             $CurrentUserID = $FleetRow['fleet_owner'];
             $TargetUserID = $FleetRow['fleet_target_owner'];
             $CurrentTechnoquery = "ua.military_tech as militaryCurrent, ua.defence_tech as defenceCurrent, ua.shield_tech as shieldCurrent, ua.username as usernameCurrent";
             $TargetTechnoquery = "ud.military_tech as militaryTarget, ud.defence_tech as defenceTarget, ud.shield_tech as shieldTarget, ud.username as usernameTarget";
             $TargetPlanetquery = "p1.*, p1.id_owner as id_ownerTarget";
             $from = "{{table}}planets as p1,{{table}}users as ua, {{table}}users as ud ";
             $superquery = "SELECT " . $CurrentTechnoquery . "," . $TargetTechnoquery . "," . $TargetPlanetquery . " FROM " . $from;
             $superquery .= "WHERE ";
             $superquery .= "p1.galaxy = '" . $FleetRow['fleet_end_galaxy'] . "' AND p1.system = '" . $FleetRow['fleet_end_system'] . "' AND p1.planet = '" . $FleetRow['fleet_end_planet'] . "' AND p1.planet_type = '" . $FleetRow['fleet_end_type'] . "' AND ";
             $superquery .= "ua.id = '" . $CurrentUserID . "' AND ";
             $superquery .= "ud.id = '" . $TargetUserID . "'";
             $queryss = $db->query($superquery, '', true);
             $CurrentTechno = array();
             $CurrentTechno['military_tech'] = $queryss['militaryCurrent'];
             $CurrentTechno['defence_tech'] = $queryss['defenceCurrent'];
             $CurrentTechno['shield_tech'] = $queryss['shieldCurrent'];
             $TargetTechno = array();
             $TargetTechno['military_tech'] = $queryss['militaryTarget'];
             $TargetTechno['defence_tech'] = $queryss['defenceTarget'];
             $TargetTechno['shield_tech'] = $queryss['shieldTarget'];
             for ($SetItem = 200; $SetItem < 500; $SetItem++) {
                 if ($queryss[$resource[$SetItem]] > 0) {
                     $TargetSet[$SetItem]['count'] = $queryss[$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, $CurrentTechno, $TargetTechno);
             $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'];
             }
             $FleetStorage -= $FleetRow["fleet_resource_metal"];
             $FleetStorage -= $FleetRow["fleet_resource_crystal"];
             $FleetStorage -= $FleetRow["fleet_resource_deuterium"];
             $TargetPlanetUpd = "";
             if (!is_null($TargetSet)) {
                 foreach ($TargetSet as $Ship => $Count) {
                     $TargetPlanetUpd .= "`" . $resource[$Ship] . "` = '" . $Count['count'] . "', ";
                 }
             }
             $Mining['metal'] = 0;
             $Mining['crystal'] = 0;
             $Mining['deuter'] = 0;
             if ($FleetResult == "a") {
                 if ($FleetStorage > 0) {
                     $metal = abs($queryss['metal']) / 2;
                     $crystal = abs($queryss['crystal']) / 2;
                     $deuter = abs($queryss["deuterium"]) / 2;
                     $FleetStorage = abs($FleetStorage) / 3;
                     if ($metal > $FleetStorage) {
                         $Mining['metal'] = abs($FleetStorage);
                     } else {
                         $Mining['metal'] = abs($metal);
                     }
                     if ($crystal > $FleetStorage) {
                         $Mining['crystal'] = abs($FleetStorage);
                     } else {
                         $Mining['crystal'] = abs($crystal);
                     }
                     if ($deuter > $FleetStorage) {
                         $Mining['deuter'] = abs($FleetStorage);
                     } else {
                         $Mining['deuter'] = abs($deuter);
                     }
                 }
             }
             $Mining['metal'] = round($Mining['metal']);
             $Mining['crystal'] = round($Mining['crystal']);
             $Mining['deuter'] = round($Mining['deuter']);
             $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;";
             $db->query($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;";
             $db->query($QryUpdateGalaxy, 'galaxy');
             $FleetDebris = $zlom['metal'] + $zlom['crystal'];
             $StrAttackerUnits = sprintf($lang['sys_attacker_lostunits'], pretty_number($zlom["atakujacy"]));
             $StrDefenderUnits = sprintf($lang['sys_defender_lostunits'], pretty_number($zlom["wrog"]));
             $StrRuins = sprintf($lang['sys_gcdrunits'], pretty_number($zlom["metal"]), $lang['Metal'], pretty_number($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 && $UserChance <= $MoonChance && $galenemyrow['id_luna'] == 0) {
                 $TargetPlanetName = CreateOneMoonRecord($FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet'], $TargetUserID, '', $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_attack_title'], $AttackDate);
             $raport = "<center><table><tr><td>" . $title . "<br />";
             $zniszczony = false;
             $a_zestrzelona = 0;
             $AttackTechon['A'] = $CurrentTechno["military_tech"] * 10;
             $AttackTechon['B'] = $CurrentTechno["defence_tech"] * 10;
             $AttackTechon['C'] = $CurrentTechno["shield_tech"] * 10;
             $AttackerData = sprintf($lang['sys_attack_attacker_pos'], $queryss["usernameCurrent"], $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'] = $TargetTechno["military_tech"] * 10;
             $DefendTechon['B'] = $TargetTechno["defence_tech"] * 10;
             $DefendTechon['C'] = $TargetTechno["shield_tech"] * 10;
             $DefenderData = sprintf($lang['sys_attack_defender_pos'], $queryss["usernameTarget"], $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet']);
             $DefenderTech = sprintf($lang['sys_attack_techologies'], $DefendTechon['A'], $DefendTechon['B'], $DefendTechon['C']);
             $ronda = 0;
             foreach ($dane_do_rw as $a => $b) {
                 $ronda++;
                 $raport .= "<table border=1 width=100%><tr><th><br />Ronda" . $ronda . "<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>" . pretty_number($Data['count']) . "</th>";
                                 $raport3 .= "<th>" . pretty_number(round($Data["atak"] / $Data['count'])) . "</th>";
                                 $raport4 .= "<th>" . pretty_number(round($Data["tarcza"] / $Data['count'])) . "</th>";
                                 $raport5 .= "<th>" . pretty_number(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>" . pretty_number($Data['count']) . "</th>";
                                 $raport3 .= "<th>" . pretty_number(round($Data["atak"] / $Data['count'])) . "</th>";
                                 $raport4 .= "<th>" . pretty_number(round($Data["tarcza"] / $Data['count'])) . "</th>";
                                 $raport5 .= "<th>" . pretty_number(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'], pretty_number(floor($b["atakujacy"]["atak"])), pretty_number(floor($b["wrog"]["tarcza"])));
                     $DefendWavaStat = sprintf($lang['sys_attack_defend_wave'], pretty_number(floor($b["wrog"]["atak"])), pretty_number(floor($b["atakujacy"]["tarcza"])));
                     $raport .= "<br /><center>" . $AttackWaveStat . "<br />" . $DefendWavaStat . "</center>";
                 }
             }
             switch ($FleetResult) {
                 case "a":
                     $Pillage = sprintf($lang['sys_stealed_ressources'], pretty_number($Mining['metal']), "metal", pretty_number($Mining['crystal']), "cristal", pretty_number($Mining['deuter']), "deuterio");
                     $raport .= $lang['sys_attacker_won'] . $Pillage . "<br />";
                     $raport .= $DebrisField . "<br />";
                     $raport .= $ChanceMoon . "<br />";
                     $raport .= $GottenMoon . "<br />";
                     break;
                 case "r":
                     $raport .= $lang['sys_both_won'] . "<br />";
                     $raport .= $DebrisField . "<br />";
                     $raport .= $ChanceMoon . "<br />";
                     $raport .= $GottenMoon . "<br />";
                     break;
                 case "w":
                     $raport .= $lang['sys_defender_won'] . "<br />";
                     $raport .= $DebrisField . "<br />";
                     $raport .= $ChanceMoon . "<br />";
                     $raport .= $GottenMoon . "<br />";
                     $db->query("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) . "';";
             $db->query($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_attack_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'] . ": " . pretty_number($zlom["atakujacy"]) . "</font>";
             $raport .= "<font color=\"green\">   " . $lang['sys_perte_defenseur'] . ":" . pretty_number($zlom["wrog"]) . "</font><br />";
             $raport .= $lang['sys_gain'] . " " . $lang['Metal'] . ":<font color=\"#adaead\">" . pretty_number($Mining['metal']) . "</font>   " . $lang['Crystal'] . ":<font color=\"#ef51ef\">" . pretty_number($Mining['crystal']) . "</font>   " . $lang['Deuterium'] . ":<font color=\"#f77542\">" . pretty_number($Mining['deuter']) . "</font><br />";
             $raport .= $lang['sys_debris'] . " " . $lang['Metal'] . ":<font color=\"#adaead\">" . pretty_number($zlom['metal']) . "</font>   " . $lang['Crystal'] . ":<font color=\"#ef51ef\">" . pretty_number($zlom['crystal']) . "</font><br /></center>";
             $Mining['metal'] = $Mining['metal'] + $FleetRow["fleet_resource_metal"];
             $Mining['crystal'] = $Mining['crystal'] + $FleetRow["fleet_resource_crystal"];
             $Mining['deuter'] = $Mining['deuter'] + $FleetRow["fleet_resource_deuterium"];
             $QryUpdateFleet = "UPDATE {{table}} SET ";
             $QryUpdateFleet .= "`fleet_amount` = '" . $FleetAmount . "', ";
             $QryUpdateFleet .= "`fleet_array` = '" . $FleetArray . "', ";
             $QryUpdateFleet .= "`fleet_mess` = '1', ";
             $QryUpdateFleet .= "`fleet_resource_metal` = '" . $Mining['metal'] . "', ";
             $QryUpdateFleet .= "`fleet_resource_crystal` = '" . $Mining['crystal'] . "', ";
             $QryUpdateFleet .= "`fleet_resource_deuterium` = '" . $Mining['deuter'] . "' ";
             $QryUpdateFleet .= "WHERE fleet_id = '" . $FleetRow['fleet_id'] . "' ";
             $QryUpdateFleet .= "LIMIT 1 ;";
             $db->query($QryUpdateFleet, 'fleets');
             $users->SendSimpleMessage($CurrentUserID, $TargetUserID, $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport);
             $raport2 = "<a href # OnClick=\"f( 'CombatReport.php?raport=" . $rid . "', '');\" >";
             $raport2 .= "<center>";
             if ($FleetResult == "a") {
                 $raport2 .= "<font color=\"green\">";
             } elseif ($FleetResult == "r") {
                 $raport2 .= "<font color=\"orange\">";
             } elseif ($FleetResult == "w") {
                 $raport2 .= "<font color=\"red\">";
             }
             $raport2 .= $lang['sys_mess_attack_report'] . " [" . $FleetRow['fleet_end_galaxy'] . ":" . $FleetRow['fleet_end_system'] . ":" . $FleetRow['fleet_end_planet'] . "] </font></a><br /><br />";
             $users->SendSimpleMessage($TargetUserID, $CurrentUserID, $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_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";
                     }
                 }
             }
             $db->query("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 ;";
                 $db->query($QryUpdatePlanet, 'planets');
             }
         }
     }
 }
Beispiel #15
0
/**
 * This file is under the GPL liscence, which must be included with the file under distrobution (license.txt)
 * this file was made by Xnova, edited to support Toms combat engine by Anthony (MadnessReD) [http://madnessred.co.cc/]
 * Do not edit this comment block
 */
function MissionCaseAttack($FleetRow)
{
    global $phpEx, $xnova_root_path, $pricelist, $lang, $resource, $CombatCaps, $game_config;
    //IPMORTANT!!! XNOVA 0.8? or SP1?
    /*
    		If you are using X-Nova 0.8 you must change "$xnova_root_path" to "$ugamela_root_path".
    		
    		/* Below is the origional global, may need to pull some stuff across */
    //global $user, $phpEx, $ugamela_root_path, $pricelist, $lang, $resource, $CombatCaps;
    includelang('tech');
    includelang('system');
    doquery("UPDATE {{table}} SET `small_protection_shield` =1 WHERE `small_protection_shield` >1;", 'planets') or die("Sorting Dome Cheaters:<br />" . mysql_error());
    doquery("UPDATE {{table}} SET `big_protection_shield` =1 WHERE `big_protection_shield` >1;", 'planets') or die("Sorting Dome Cheaters:<br />" . mysql_error());
    /*
    doquery ("UPDATE {{table}} SET `sm_grav_dome` =1 WHERE `sm_grav_dome` >1;", 'planets')
    	or die("Sorting Dome Cheaters:<br />".mysql_error());
    doquery ("UPDATE {{table}} SET `xl_grav_dome` =1 WHERE `xl_grav_dome` >1;", 'planets')
    	or die("Sorting Dome Cheaters:<br />".mysql_error());
    */
    if ($FleetRow['fleet_mess'] == 0 && $FleetRow['fleet_start_time'] <= time()) {
        if (!isset($CombatCaps[202]['sd'])) {
            message('<font color=red>' . $lang['sys_no_vars'] . '</font><br />(Error: <font color=red>(!isset($pricelist[202][\'sd\']))</font>. Please report this to an admin.)', $lang['sys_error'], 'fleet.php', 15);
        }
        //include toms stuff
        include $xnova_root_path . "includes/functions/MissionCaseEvoAttack.php";
        // FROM HERE THE SCRIPT WAS IMPORTED (not TvdW code anymore)
        $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 / 10000000;
        if ($FleetDebris > 35000000) {
            $MoonChance = 35;
        }
        if ($FleetDebris < 10000000) {
            $UserChance = 0;
            $ChanceMoon = "";
        } elseif ($FleetDebris >= 10000000) {
            $UserChance = mt_rand(1, 100);
            $ChanceMoon = sprintf($lang['sys_moonproba'], $MoonChance);
        }
        if ($UserChance > 0 && $UserChance <= $MoonChance && $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']);
            $GottenMoon .= "<br />";
        } elseif ($UserChance = 0 or $UserChance > $MoonChance) {
            $GottenMoon = "";
        }
        //Start of Raid Points ((Anthony))
        /*
        $att_id = $CurrentUserID;
        $def_id = $TargetUserID;
        $att_dam = $zlom["atakujacy"];
        $def_dam = $zlom["wrog"];
        
        if($def_dam > $att_dam){
        	$att_pts = round(sqrt($def_dam / (pow($att_dam, 2) + 1)));
        	if ($att_pts > 10){
        		$att_pts == 10;
        	}
        	$def_pts = 0;
        	$raid_pts_mess = "The Attacker won ".$att_pts." points";
        }elseif($def_dam < $att_dam){
        	$att_pts = 0;
        	$def_pts = round(sqrt($att_dam / (pow($def_dam, 2) + 1)));
        	if ($def_pts > 10){
        		$def_pts == 10;
        	}
        	$raid_pts_mess = "The Defender won ".$def_pts." points";
        }else{
        	$att_pts = 0;
        	$def_pts = 0;
        }
        
        doquery("UPDATE {{table}} SET `lvl_raid` = `lvl_raid` + '".$att_pts."' WHERE `id` = '".$att_id."' ;", 'users');	
        doquery("UPDATE {{table}} SET `lvl_raid` = `lvl_raid` + '".$def_pts."' WHERE `id` = '".$def_id."' ;", 'users');
        
        doquery("UPDATE {{table}} SET `xpraid` = `xpraid` + '".$def_dam."' WHERE `id` = '".$att_id."' ;", 'users');	
        doquery("UPDATE {{table}} SET `xpraid` = `xpraid` + '".$att_dam."' WHERE `id` = '".$def_id."' ;", 'users');
        doquery("UPDATE {{table}} SET `xploss` = `xploss` + '".$att_dam."' WHERE `id` = '".$att_id."' ;", 'users');	
        doquery("UPDATE {{table}} SET `xploss` = `xploss` + '".$def_dam."' WHERE `id` = '".$def_id."' ;", 'users');
        */
        //End of Raid Points
        //MadnessRed CR Creation.
        $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 .= '`raport` = "' . mysql_real_escape_string($raport) . '"';
        doquery($QryInsertRapport, 'rw') or die("Error inserting CR to database" . mysql_error() . "<br /><br />Trying to execute:" . mysql_query());
        // Colorize report.
        $raport = '<a href # OnClick=\'f( "rw.php?raport=' . $rid . '", "");\' >';
        $raport .= '<center>';
        if ($result['won'] == 1) {
            $raport .= '<font color=\'green\'>';
        } elseif ($result['won'] == 0) {
            $raport .= '<font color=\'orange\'>';
        } elseif ($result['won'] == 2) {
            $raport .= '<font color=\'red\'>';
        }
        $raport .= $lang['sys_mess_attack_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'] . ': ' . $result['lost']['att'] . '</font>';
        $raport .= '<font color=\'green\'>   ' . $lang['sys_perte_defenseur'] . ': ' . $result['lost']['def'] . '</font><br />';
        $raport .= $lang['sys_gain'] . ' ' . $lang['Metal'] . ':<font color=\'#adaead\'>' . $steal['metal'] . '</font>   ' . $lang['Crystal'] . ':<font color=\'#ef51ef\'>' . $steal['crystal'] . '</font>   ' . $lang['Deuterium'] . ':<font color=\'#f77542\'>' . $steal['deuterium'] . '</font><br />';
        $raport .= $lang['sys_debris'] . ' ' . $lang['Metal'] . ': <font color=\'#adaead\'>' . ($result['debree']['att'][0] + $result['debree']['def'][0]) . '</font>   ' . $lang['Crystal'] . ': <font color=\'#ef51ef\'>' . ($result['debree']['att'][1] + $result['debree']['def'][1]) . '</font><br /></center>';
        SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport);
        // Coloriize report.
        $raport2 = '<a href # OnClick=\'f( "rw.php?raport=' . $rid . '", "");\' >';
        $raport2 .= '<center>';
        if ($result['won'] == 1) {
            $raport2 .= '<font color=\'green\'>';
        } elseif ($result['won'] == 0) {
            $raport2 .= '<font color=\'orange\'>';
        } elseif ($result['won'] == 2) {
            $raport2 .= '<font color=\'red\'>';
        }
        $raport2 .= $lang['sys_mess_attack_report'] . ' [' . $FleetRow['fleet_end_galaxy'] . ':' . $FleetRow['fleet_end_system'] . ':' . $FleetRow['fleet_end_planet'] . '] </font></a><br /><br />';
        foreach ($users2 as $id) {
            if ($id != $FleetRow['fleet_owner'] && $id != 0) {
                SendSimpleMessage($id, '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport2);
            }
        }
        // Ajout du petit point raideur
        $AddPoint = $CurrentUser['xpraid'] + 1;
        $QryUpdateOfficier = "UPDATE {{table}} SET ";
        $QryUpdateOfficier .= "`xpraid` = '" . $AddPoint . "' ";
        $QryUpdateOfficier .= "WHERE id = '" . $CurrentUserID . "' ";
        $QryUpdateOfficier .= "LIMIT 1 ;";
        doquery($QryUpdateOfficier, 'users');
        // Ajout d'un point au compteur de raids
        $RaidsTotal = $CurrentUser['raids'] + 1;
        if ($FleetResult == "a") {
            $RaidsWin = $CurrentUser['raidswin'] + 1;
            $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
            $QryUpdateRaidsCompteur .= "`raidswin` ='" . $RaidsWin . "', ";
            $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
            $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
            $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
            doquery($QryUpdateRaidsCompteur, 'users');
        } elseif ($FleetResult == "r" || $FleetResult == "w") {
            $RaidsLoose = $CurrentUser['raidsloose'] + 1;
            $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
            $QryUpdateRaidsCompteur .= "`raidsloose` ='" . $RaidsLoose . "', ";
            $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
            $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
            $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
            doquery($QryUpdateRaidsCompteur, 'users');
        }
    } elseif ($FleetRow['fleet_end_time'] <= time()) {
        RestoreFleetToPlanet($FleetRow);
        doquery('DELETE FROM {{table}} WHERE `fleet_id`=' . $FleetRow['fleet_id'], 'fleets');
    }
}
Beispiel #16
0
    function TargetEvent()
    {
        global $resource, $reslist;
        $fleetAttack = array();
        $fleetDefend = array();
        $userAttack = array();
        $userDefend = array();
        $stealResource = array(901 => 0, 902 => 0, 903 => 0);
        $debris = array();
        $planetDebris = array();
        $raportInfo = array();
        $debrisRessource = array(901, 902);
        $messageHTML = <<<HTML
\t\t<div class="raportMessage">
\t<table>
\t\t<tr>
\t\t\t<td colspan="2"><a href="CombatReport.php?raport=%s" onclick="starttraining20()" target="_blank"><span %s>%s %s (%s)</span></a></td>
\t\t</tr>
\t\t<tr>
\t\t\t<td>%s</td><td><span %s>%s: %s</span>&nbsp;<span %s>%s: %s</span></td>
\t\t</tr>
\t\t<tr>
\t\t\t<td>%s</td><td><span>%s:&nbsp;<span style="color:#a47d7a;">%s</span>&nbsp;</span><span>%s:&nbsp;<span style="color:#5ca6aa;">%s</span>&nbsp;</span><span>%s:&nbsp;<span style="color:#339966;">%s</span></span></td>
\t\t</tr>
\t\t<tr>
\t\t\t<td>%s</td><td><span>%s:&nbsp;<span style="color:#a47d7a;">%s</font>&nbsp;</span><span>%s:&nbsp;<span style="color:#5ca6aa;">%s</span></span></td>
\t\t</tr>
\t</table>
</div>
HTML;
        //Minize HTML
        $messageHTML = str_replace(array("\n", "\t", "\r"), "", $messageHTML);
        $targetPlanet = $GLOBALS['DATABASE']->getFirstRow("SELECT * FROM " . PLANETS . " WHERE id = '" . $this->_fleet['fleet_end_id'] . "';");
        $targetUser = $GLOBALS['DATABASE']->getFirstRow("SELECT * FROM " . USERS . " WHERE id = '" . $targetPlanet['id_owner'] . "';");
        $targetUser['factor'] = getFactors($targetUser, 'basic', $this->_fleet['fleet_start_time']);
        $planetUpdater = new ResourceUpdate();
        list($targetUser, $targetPlanet) = $planetUpdater->CalcResource($targetUser, $targetPlanet, true, $this->_fleet['fleet_start_time']);
        if ($this->_fleet['fleet_group'] != 0) {
            $GLOBALS['DATABASE']->query("DELETE FROM " . AKS . " WHERE id = '" . $this->_fleet['fleet_group'] . "';");
            $incomingFleetsResult = $GLOBALS['DATABASE']->query("SELECT * FROM " . FLEETS . " WHERE fleet_group = '" . $this->_fleet['fleet_group'] . "';");
            while ($incomingFleetsRow = $GLOBALS['DATABASE']->fetch_array($incomingFleetsResult)) {
                $incomingFleets[$incomingFleetsRow['fleet_id']] = $incomingFleetsRow;
            }
            $GLOBALS['DATABASE']->free_result($incomingFleetsResult);
        } else {
            $incomingFleets = array($this->_fleet['fleet_id'] => $this->_fleet);
        }
        foreach ($incomingFleets as $fleetID => $fleetDetail) {
            $fleetAttack[$fleetID]['fleetDetail'] = $fleetDetail;
            $fleetAttack[$fleetID]['player'] = $GLOBALS['DATABASE']->getFirstRow("SELECT * FROM " . USERS . " WHERE id = '" . $fleetDetail['fleet_owner'] . "';");
            $fleetAttack[$fleetID]['player']['factor'] = getFactors($fleetAttack[$fleetID]['player'], 'attack', $this->_fleet['fleet_start_time']);
            $fleetAttack[$fleetID]['unit'] = fleetAmountToArray($fleetDetail['fleet_array']);
            $userAttack[$fleetAttack[$fleetID]['player']['id']] = $fleetAttack[$fleetID]['player']['username'];
        }
        $targetFleetsResult = $GLOBALS['DATABASE']->query("SELECT * FROM " . FLEETS . " WHERE fleet_mission = '5' AND fleet_end_id = '" . $this->_fleet['fleet_end_id'] . "' AND fleet_start_time <= '" . TIMESTAMP . "' AND fleet_end_stay >= '" . TIMESTAMP . "';");
        while ($fleetDetail = $GLOBALS['DATABASE']->fetch_array($targetFleetsResult)) {
            $fleetID = $fleetDetail['fleet_id'];
            $fleetDefend[$fleetID]['fleetDetail'] = $fleetDetail;
            $fleetDefend[$fleetID]['player'] = $GLOBALS['DATABASE']->getFirstRow("SELECT * FROM " . USERS . " WHERE id = '" . $fleetDetail['fleet_owner'] . "';");
            $fleetDefend[$fleetID]['player']['factor'] = getFactors($fleetDefend[$fleetID]['player'], 'attack', $this->_fleet['fleet_start_time']);
            $fleetDefend[$fleetID]['unit'] = fleetAmountToArray($fleetDetail['fleet_array']);
            $userDefend[$fleetDefend[$fleetID]['player']['id']] = $fleetDefend[$fleetID]['player']['username'];
        }
        $GLOBALS['DATABASE']->free_result($targetFleetsResult);
        $fleetDefend[0]['player'] = $targetUser;
        $fleetDefend[0]['player']['factor'] = getFactors($fleetDefend[0]['player'], 'attack', $this->_fleet['fleet_start_time']);
        $fleetDefend[0]['fleetDetail'] = array('fleet_start_galaxy' => $targetPlanet['galaxy'], 'fleet_start_system' => $targetPlanet['system'], 'fleet_start_planet' => $targetPlanet['planet'], 'fleet_start_type' => $targetPlanet['planet_type']);
        $fleetDefend[0]['unit'] = array();
        foreach (array_merge($reslist['fleet'], $reslist['defense']) as $elementID) {
            if (empty($targetPlanet[$resource[$elementID]])) {
                continue;
            }
            $fleetDefend[0]['unit'][$elementID] = $targetPlanet[$resource[$elementID]];
        }
        $userDefend[$fleetDefend[0]['player']['id']] = $fleetDefend[0]['player']['username'];
        require_once 'calculateAttack.php';
        $fleetIntoDebris = $GLOBALS['CONFIG'][$this->_fleet['fleet_universe']]['Fleet_Cdr'];
        $defIntoDebris = $GLOBALS['CONFIG'][$this->_fleet['fleet_universe']]['Defs_Cdr'];
        $combatResult = calculateAttack($fleetAttack, $fleetDefend, $fleetIntoDebris, $defIntoDebris);
        /*ob_start();
        		print_r($fleetAttack);
        		print_r($fleetDefend);
        		print_r($fleetIntoDebris);
        		print_r($defIntoDebris);
        
        		$content = ob_get_contents();
        		ob_end_clean();
        
        		$f = fopen("file.txt", "w");
        		fwrite($f, $content);
        		fclose($f);*/
        $sqlQuery = "";
        foreach ($fleetAttack as $fleetID => $fleetDetail) {
            $fleetArray = '';
            $totalCount = 0;
            $fleetDetail['unit'] = array_filter($fleetDetail['unit']);
            foreach ($fleetDetail['unit'] as $elementID => $amount) {
                $fleetArray .= $elementID . ',' . floattostring($amount) . ';';
                $totalCount += $amount;
            }
            if ($totalCount == 0) {
                if ($this->_fleet['fleet_id'] == $fleetID) {
                    $this->KillFleet();
                } else {
                    $sqlQuery .= "DELETE FROM " . FLEETS . " WHERE fleet_id = " . $fleetID . ";";
                    $sqlQuery .= "DELETE FROM " . FLEETS_EVENT . " WHERE fleetID = " . $fleetID . ";";
                }
                $sqlQuery .= "UPDATE " . LOG_FLEETS . " SET fleet_state = 2 WHERE fleet_id = '" . $fleetID . "';";
            } elseif ($totalCount > 0) {
                $sqlQuery .= "UPDATE " . FLEETS . " SET fleet_array = '" . substr($fleetArray, 0, -1) . "', fleet_amount = '" . $totalCount . "' WHERE fleet_id = '" . $fleetID . "';";
                $sqlQuery .= "UPDATE " . LOG_FLEETS . " SET fleet_array = '" . substr($fleetArray, 0, -1) . "', fleet_amount = '" . $totalCount . "', fleet_state = 1 WHERE fleet_id = '" . $fleetID . "';";
            } else {
                throw new Exception("Negative Fleet amount ....");
            }
        }
        foreach ($fleetDefend as $fleetID => $fleetDetail) {
            if ($fleetID != 0) {
                $fleetArray = '';
                $totalCount = 0;
                $fleetDetail['unit'] = array_filter($fleetDetail['unit']);
                foreach ($fleetDetail['unit'] as $elementID => $amount) {
                    $fleetArray .= $elementID . ',' . floattostring($amount) . ';';
                    $totalCount += $amount;
                }
                if ($totalCount == 0) {
                    $sqlQuery .= "DELETE FROM " . FLEETS . " WHERE fleet_id = " . $fleetID . ";";
                    $sqlQuery .= "DELETE FROM " . FLEETS_EVENT . " WHERE fleetID = " . $fleetID . ";";
                    $sqlQuery .= "UPDATE " . LOG_FLEETS . " SET fleet_state = 2 WHERE fleet_id = '" . $fleetID . "';";
                } elseif ($totalCount > 0) {
                    $sqlQuery .= "UPDATE " . FLEETS . " SET fleet_array = '" . substr($fleetArray, 0, -1) . "', fleet_amount = '" . $totalCount . "' WHERE fleet_id = '" . $fleetID . "';";
                    $sqlQuery .= "UPDATE " . LOG_FLEETS . " SET fleet_array = '" . substr($fleetArray, 0, -1) . "', fleet_amount = '" . $totalCount . "', fleet_state = 1 WHERE fleet_id = '" . $fleetID . "';";
                } else {
                    throw new Exception("Negative Fleet amount ....");
                }
            } else {
                $fleetArray = array();
                foreach ($fleetDetail['unit'] as $elementID => $amount) {
                    $fleetArray[] = $resource[$elementID] . " = " . $amount;
                }
                if (!empty($fleetArray)) {
                    $sqlQuery .= "UPDATE " . PLANETS . " SET " . implode(', ', $fleetArray) . " WHERE id = '" . $this->_fleet['fleet_end_id'] . "';";
                }
            }
        }
        $GLOBALS['DATABASE']->multi_query($sqlQuery);
        if ($combatResult['won'] == "a") {
            require_once 'calculateSteal.php';
            $stealResource = calculateSteal($fleetAttack, $targetPlanet);
        }
        if ($this->_fleet['fleet_end_type'] == 3) {
            // Use planet debris, if attack on moons
            $targetPlanet = array_merge($targetPlanet, $GLOBALS['DATABASE']->getFirstRow("SELECT der_metal, der_crystal FROM " . PLANETS . " WHERE id_luna = " . $this->_fleet['fleet_end_id'] . ";"));
        }
        foreach ($debrisRessource as $elementID) {
            $debris[$elementID] = $combatResult['debris']['attacker'][$elementID] + $combatResult['debris']['defender'][$elementID];
            $planetDebris[$elementID] = $targetPlanet['der_' . $resource[$elementID]] + $debris[$elementID];
        }
        $debrisTotal = array_sum($debris);
        $moonFactor = $GLOBALS['CONFIG'][$this->_fleet['fleet_universe']]['moon_factor'];
        $maxMoonChance = $GLOBALS['CONFIG'][$this->_fleet['fleet_universe']]['moon_chance'];
        if ($targetPlanet['id_luna'] == 0 && $targetPlanet['planet_type'] == 1) {
            $chanceCreateMoon = round($debrisTotal / 1000000 * $moonFactor);
            $chanceCreateMoon = min($chanceCreateMoon, $maxMoonChance);
        } else {
            $chanceCreateMoon = 0;
        }
        $raportInfo = array('thisFleet' => $this->_fleet, 'debris' => $debris, 'stealResource' => $stealResource, 'moonChance' => $chanceCreateMoon, 'moonDestroy' => false, 'moonName' => null, 'moonDestroyChance' => null, 'moonDestroySuccess' => null, 'fleetDestroyChance' => null, 'fleetDestroySuccess' => null);
        $randChance = mt_rand(1, 100);
        if ($randChance <= $chanceCreateMoon + $chanceCreateMoon / 100 * 35) {
            require_once 'includes/functions/CreateOneMoonRecord.php';
            $LNG = $this->getLanguage($targetUser['lang']);
            $raportInfo['moonName'] = $LNG['type_planet'][3];
            CreateOneMoonRecord($this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet'], $this->_fleet['fleet_universe'], $targetUser['id'], $raportInfo['moonName'], $chanceCreateMoon, $this->_fleet['fleet_start_time']);
            if ($GLOBALS['CONFIG'][$this->_fleet['fleet_universe']]['debris_moon'] == 1) {
                foreach ($debrisRessource as $elementID) {
                    $planetDebris[$elementID] = 0;
                }
            }
            $GLOBALS['DATABASE']->query("UPDATE " . USERS . " SET moon_creation = moon_creation + '1' WHERE id = " . $this->_fleet['fleet_owner'] . ";");
            $INFOR = $GLOBALS['DATABASE']->query("SELECT * FROM `uni1_users` WHERE id = " . $this->_fleet['fleet_owner'] . ";");
            if ($GLOBALS['DATABASE']->numRows($INFOR) > 0) {
                while ($xkf = mysqli_fetch_assoc($INFOR)) {
                    $ACTUA = $xkf['moon_creation'];
                    $ACTUAL = 3 * $xkf['achievements_misc_moons'] + 3;
                    $moons_lvl = $xkf['achievements_misc_moons'] + 1;
                    $moons_reward_points = 50;
                    $moons_reward_am = 50;
                    $moons_reward_points = $moons_reward_points + $xkf['achievements_misc_moons'] * $moons_reward_points;
                    $moons_reward_am = $moons_reward_am + $xkf['achievements_misc_moons'] * $moons_reward_am;
                }
                if ($ACTUA == $ACTUAL) {
                    $GLOBALS['DATABASE']->query("UPDATE " . USERS . " SET achievements_misc_moons = achievements_misc_moons + '1', antimatter = antimatter + " . $moons_reward_am . " WHERE id = " . $this->_fleet['fleet_owner'] . ";");
                    $msg = '<img alt="" style="float:left; width:60px; margin-right:6px;" src="styles/images/achiev/ach_creation_moons.png">reached: <span class="achiev_mes_head">moons lvl. ' . $moons_lvl . '</span><br> received:<br> ' . $moons_reward_am . ' antimatter <br> ' . $moons_reward_points . ' achievement points';
                    SendSimpleMessage($this->_fleet['fleet_owner'], '', TIMESTAMP, 4, 'System', 'Achievements', $msg);
                }
            }
        }
        require_once 'GenerateReport.php';
        $raportData = GenerateReport($combatResult, $raportInfo);
        $who_won = 0;
        if ($combatResult['won'] == 'a') {
            $who_won = $this->_fleet['fleet_owner'];
        } elseif ($combatResult['won'] == 'r') {
            $who_won = $this->_fleet['fleet_target_owner'];
        } elseif ($combatResult['won'] == 'w') {
            $who_won = 1;
        }
        $search_hit = $GLOBALS['DATABASE']->query("SELECT * FROM `uni1_topkb` ORDER by units DESC LIMIT 1 ;");
        if ($GLOBALS['DATABASE']->numRows($search_hit) > 0) {
            $hit = $GLOBALS['DATABASE']->fetch_array($search_hit);
            $units = $hit['units'];
            $total_hit = $combatResult['unitLost']['attacker'] + $combatResult['unitLost']['defender'];
            if ($units < $total_hit) {
                $GLOBALS['DATABASE']->query("UPDATE " . USERS . " set `antimatter` = `antimatter` + '1000' where `id` = '" . $who_won . "';");
                $msg = 'Congratulations, you are rewarded with 1.000 antimatter for the new top 1 hit.';
                SendSimpleMessage($who_won, '', TIMESTAMP, 4, 'System', 'Top hof', $msg);
            }
        }
        // $allyInfo = $GLOBALS['DATABASE']->query("SELECT CombatExp FROM `uni1_alliance` WHERE id = ".$fleetAttack[$fleetID]['player']['ally_id'].";");
        // $allyInfo  = $GLOBALS['DATABASE']->fetch_array($allyInfo);
        // $xx = $allyInfo['CombatExp'];
        // if($GLOBALS['DATABASE']->numRows($allyInfo==0){
        // $xx = 0;
        // }
        $search_b = $GLOBALS['DATABASE']->query("SELECT * FROM `uni1_users` where `id` = " . $this->_fleet['fleet_owner'] . " ;");
        $f = $GLOBALS['DATABASE']->fetch_array($search_b);
        $premium_combate = 0;
        if ($f['prem_batle_leveling'] > 0 && $f['prem_batle_leveling_days'] > TIMESTAMP) {
            $premium_combate = $f['prem_batle_leveling'];
        }
        if ($GLOBALS['DATABASE']->numRows($search_b) > 0) {
            $combat_points = round(($debris[901] + $debris[902]) / (100000000 * $f['experience_combat_level'] + 100000000));
            $maximum_points = 0;
            if ($combat_points + $combat_points / 100 * $premium_combate >= 50000) {
                $maximum_points = 50000;
            } else {
                $maximum_points = $combat_points + $combat_points / 100 * $premium_combate;
                //$maximum_points = $maximum_points + ($maximum_points / 100 * $xx);
            }
            if ($maximum_points >= 1) {
                $GLOBALS['DATABASE']->query("UPDATE " . USERS . " set `experience_combat` = `experience_combat` + " . $maximum_points . " where `id` = '" . $this->_fleet['fleet_owner'] . "';\n\t\t");
            }
        }
        $INFOR = $GLOBALS['DATABASE']->query("SELECT * FROM `uni1_users` WHERE id = " . $this->_fleet['fleet_owner'] . ";");
        if ($GLOBALS['DATABASE']->numRows($INFOR) > 0) {
            while ($xkf = mysqli_fetch_assoc($INFOR)) {
                $ACTUA = $xkf['experience_combat'];
                $ally = $xkf['ally_id'];
                $ACTUAL = $xkf['experience_combat_max'];
                $NEWEP = $xkf['experience_combat'] - $xkf['experience_combat_max'];
                $NEWEPMAX = $xkf['experience_combat_max'] + $xkf['experience_combat_max'] / 5 * $xkf['experience_combat_level'];
            }
            if ($ACTUA >= $ACTUAL) {
                $GLOBALS['DATABASE']->query("UPDATE " . USERS . " SET experience_combat = " . $NEWEP . ", experience_combat_max = " . $NEWEPMAX . ", experience_combat_level = experience_combat_level + 1 WHERE id = " . $this->_fleet['fleet_owner'] . ";");
            }
            if ($ally != 0 && $targetUser['ally_id'] != 0 && $ally != $targetUser['ally_id']) {
                $alliance_points = round(($debris[901] + $debris[902]) / 100000000);
                //$allyInfo = $GLOBALS['DATABASE']->query("SELECT GetAlliancePoints FROM `uni1_alliance` WHERE id = ".$fleetAttack[$fleetID]['player']['ally_id'].";");
                //$allyInfo  = $GLOBALS['DATABASE']->fetch_array($allyInfo);
                $maximum_points = 0;
                if ($alliance_points >= 40) {
                    $maximum_points = 40;
                } else {
                    $maximum_points = $alliance_points;
                }
                $GLOBALS['DATABASE']->query("UPDATE " . ALLIANCE . " SET alliance_points = alliance_points + '" . $maximum_points . "' WHERE id = " . $ally . ";");
            }
        }
        switch ($combatResult['won']) {
            case "a":
                $attackStatus = 'wons';
                $defendStatus = 'loos';
                $attackClass = 'style="color:green;"';
                $defendClass = 'style="color:red;"';
                break;
            case "w":
                $attackStatus = 'draws';
                $defendStatus = 'draws';
                $attackClass = 'style="color:orange;"';
                $defendClass = 'style="color:orange;"';
                break;
            case "r":
                $attackStatus = 'loos';
                $defendStatus = 'wons';
                $attackClass = 'style="color:red;"';
                $defendClass = 'style="color:green;"';
                break;
        }
        $raportID = md5(uniqid('', true) . TIMESTAMP);
        $sqlQuery = "INSERT INTO " . RW . " SET \n\t\trid = '" . $raportID . "',\n\t\traport = '" . serialize($raportData) . "',\n\t\ttime = '" . $this->_fleet['fleet_start_time'] . "',\n\t\tattacker = '" . implode(',', array_keys($userAttack)) . "',\n\t\tdefender = '" . implode(',', array_keys($userDefend)) . "';";
        $GLOBALS['DATABASE']->query($sqlQuery);
        $sqlQuery = "";
        foreach ($userAttack as $userID => $userName) {
            $LNG = $this->getLanguage(NULL, $userID);
            $message = sprintf($messageHTML, $raportID, $attackClass, $LNG['sys_mess_attack_report'], sprintf($LNG['sys_adress_planet'], $this->_fleet['fleet_start_galaxy'], $this->_fleet['fleet_start_system'], $this->_fleet['fleet_start_planet'], $this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet']), $LNG['type_planet_short'][$this->_fleet['fleet_end_type']], $LNG['sys_lost'], $attackClass, $LNG['sys_attack_attacker_pos'], pretty_number($combatResult['unitLost']['attacker']), $defendClass, $LNG['sys_attack_defender_pos'], pretty_number($combatResult['unitLost']['defender']), $LNG['sys_gain'], $LNG['tech'][901], pretty_number($stealResource[901]), $LNG['tech'][902], pretty_number($stealResource[902]), $LNG['tech'][903], pretty_number($stealResource[903]), $LNG['sys_debris'], $LNG['tech'][901], pretty_number($debris[901]), $LNG['tech'][902], pretty_number($debris[902]));
            SendSimpleMessage($userID, 0, $this->_fleet['fleet_start_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_attack_report'], $message);
            $sqlQuery .= "INSERT INTO " . TOPKB_USERS . " SET ";
            $sqlQuery .= "rid = '" . $raportID . "', ";
            $sqlQuery .= "role = 1, ";
            $sqlQuery .= "username = '******'DATABASE']->escape($userName) . "', ";
            $sqlQuery .= "uid = " . $userID . ";";
        }
        foreach ($userDefend as $userID => $userName) {
            $LNG = $this->getLanguage(NULL, $userID);
            $message = sprintf($messageHTML, $raportID, $defendClass, $LNG['sys_mess_attack_report'], sprintf($LNG['sys_adress_planet'], $this->_fleet['fleet_start_galaxy'], $this->_fleet['fleet_start_system'], $this->_fleet['fleet_start_planet'], $this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet']), $LNG['type_planet_short'][$this->_fleet['fleet_end_type']], $LNG['sys_lost'], $defendClass, $LNG['sys_attack_attacker_pos'], pretty_number($combatResult['unitLost']['attacker']), $attackClass, $LNG['sys_attack_defender_pos'], pretty_number($combatResult['unitLost']['defender']), $LNG['sys_gain'], $LNG['tech'][901], pretty_number($stealResource[901]), $LNG['tech'][902], pretty_number($stealResource[902]), $LNG['tech'][903], pretty_number($stealResource[903]), $LNG['sys_debris'], $LNG['tech'][901], pretty_number($debris[901]), $LNG['tech'][902], pretty_number($debris[902]));
            SendSimpleMessage($userID, 0, $this->_fleet['fleet_start_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_attack_report'], $message);
            $sqlQuery .= "INSERT INTO " . TOPKB_USERS . " SET ";
            $sqlQuery .= "rid = '" . $raportID . "', ";
            $sqlQuery .= "role = 2, ";
            $sqlQuery .= "username = '******'DATABASE']->escape($userName) . "', ";
            $sqlQuery .= "uid = " . $userID . ";";
        }
        if ($this->_fleet['fleet_end_type'] == 3) {
            $debrisType = 'id_luna';
        } else {
            $debrisType = 'id';
        }
        $sqlQuery .= "UPDATE " . PLANETS . " SET\n\t\t\t\t\t\tder_metal = " . $planetDebris[901] . ",\n\t\t\t\t\t\tder_crystal = " . $planetDebris[902] . "\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t" . $debrisType . " = " . $this->_fleet['fleet_end_id'] . ";\n\t\t\t\t\t\tUPDATE " . PLANETS . " SET\n\t\t\t\t\t\tmetal = metal - " . $stealResource[901] . ",\n\t\t\t\t\t\tcrystal = crystal - " . $stealResource[902] . ",\n\t\t\t\t\t\tdeuterium = deuterium - " . $stealResource[903] . "\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\tid = " . $this->_fleet['fleet_end_id'] . ";\n\t\t\t\t\t\tINSERT INTO " . TOPKB . " SET\n\t\t\t\t\t\tunits = " . ($combatResult['unitLost']['attacker'] + $combatResult['unitLost']['defender']) . ",\n\t\t\t\t\t\trid = '" . $raportID . "',\n\t\t\t\t\t\ttime = " . $this->_fleet['fleet_start_time'] . ",\n\t\t\t\t\t\tuniverse = " . $this->_fleet['fleet_universe'] . ",\n\t\t\t\t\t\tresult = '" . $combatResult['won'] . "';\n\t\t\t\t\t\tUPDATE " . USERS . " SET\n\t\t\t\t\t\t" . $attackStatus . " = " . $attackStatus . " + 1,\n\t\t\t\t\t\tkbmetal = kbmetal + " . $debris[901] . ",\n\t\t\t\t\t\tkbcrystal = kbcrystal + " . $debris[902] . ",\n\t\t\t\t\t\tlostunits = lostunits + " . $combatResult['unitLost']['attacker'] . ",\n\t\t\t\t\t\tdesunits = desunits + " . $combatResult['unitLost']['defender'] . "\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\tid IN (" . implode(',', array_keys($userAttack)) . ");\n\t\t\t\t\t\tUPDATE " . USERS . " SET\n\t\t\t\t\t\t" . $defendStatus . " = " . $defendStatus . " + 1,\n\t\t\t\t\t\tkbmetal = kbmetal + " . $debris[901] . ",\n\t\t\t\t\t\tkbcrystal = kbcrystal + " . $debris[902] . ",\n\t\t\t\t\t\tlostunits = lostunits + " . $combatResult['unitLost']['defender'] . ",\n\t\t\t\t\t\tdesunits = desunits + " . $combatResult['unitLost']['attacker'] . "\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\tid IN (" . implode(',', array_keys($userDefend)) . ");";
        $GLOBALS['DATABASE']->multi_query($sqlQuery);
        if ($attackStatus == 'wons') {
            $GLOBALS['DATABASE']->query("UPDATE " . USERS . " set `achievements_attack` = `achievements_attack` + '1' where `id` = '" . $this->_fleet['fleet_owner'] . "';");
        }
        $INFOR = $GLOBALS['DATABASE']->query("SELECT * FROM `uni1_users` WHERE id = " . $this->_fleet['fleet_owner'] . ";");
        if ($GLOBALS['DATABASE']->numRows($INFOR) > 0) {
            while ($xkf = mysqli_fetch_assoc($INFOR)) {
                $ACTUA = $xkf['wons'];
                $ACTUAL = 50 * $xkf['achievements_misc_fighter'] + 50;
                $fighter_lvl = $xkf['achievements_misc_fighter'] + 1;
                $fighter_reward_points = 15;
                $fighter_reward_am = 15;
                $fighter_reward_points = $fighter_reward_points + $xkf['achievements_misc_fighter'] * $fighter_reward_points;
                $fighter_reward_am = $fighter_reward_am + $xkf['achievements_misc_fighter'] * $fighter_reward_am;
            }
            if ($ACTUA == $ACTUAL) {
                $GLOBALS['DATABASE']->query("UPDATE " . USERS . " SET achievements_misc_fighter = achievements_misc_fighter + '1', antimatter = antimatter + " . $fighter_reward_am . " WHERE id = " . $this->_fleet['fleet_owner'] . ";");
                $msg = '<img alt="" style="float:left; width:60px; margin-right:6px;" src="styles/images/achiev/ach_wons.png">reached: <span class="achiev_mes_head">fighter lvl. ' . $fighter_lvl . '</span><br> received:<br> ' . $fighter_reward_am . ' antimatter <br> ' . $fighter_reward_points . ' achievement points';
                SendSimpleMessage($this->_fleet['fleet_owner'], '', TIMESTAMP, 4, 'System', 'Achievements', $msg);
            }
        }
        $this->setState(FLEET_RETURN);
        $this->SaveFleet();
    }
Beispiel #17
0
    die(message($lang['not_enough_permissions']));
}
$parse = $lang;
if ($_POST && $_POST['add_moon']) {
    $PlanetID = $_POST['add_moon'];
    $MoonName = $_POST['name'];
    $QrySelectPlanet = "SELECT * FROM {{table}} ";
    $QrySelectPlanet .= "WHERE ";
    $QrySelectPlanet .= "`id` = '" . $PlanetID . "';";
    $PlanetSelected = doquery($QrySelectPlanet, 'planets', true);
    $Galaxy = $PlanetSelected['galaxy'];
    $System = $PlanetSelected['system'];
    $Planet = $PlanetSelected['planet'];
    $Owner = $PlanetSelected['id_owner'];
    $MoonID = time();
    CreateOneMoonRecord($Galaxy, $System, $Planet, $Owner, $MoonID, $MoonName, 20);
    message($lang['mo_moon_added'], "moonoptions.php", 2);
} elseif ($_POST && $_POST['del_moon']) {
    $MoonID = $_POST['del_moon'];
    $QrySelectMoon = "SELECT * FROM {{table}} ";
    $QrySelectMoon .= "WHERE ";
    $QrySelectMoon .= "`id` = '" . $MoonID . "';";
    $MoonSelected = doquery($QrySelectMoon, 'lunas', true);
    $Galaxy = $MoonSelected['galaxy'];
    $System = $MoonSelected['system'];
    $Planet = $MoonSelected['lunapos'];
    $Owner = $MoonSelected['id_owner'];
    $DeleteMoonQry1 = "DELETE FROM {{table}} WHERE `id` = '" . $MoonID . "';";
    doquery($DeleteMoonQry1, 'lunas');
    $DeleteMoonQry2 = "DELETE FROM {{table}} WHERE `galaxy` ='" . $Galaxy . "' AND `system` ='" . $System . "' AND `planet` ='" . $Planet . "' AND `planet_type` = 3;";
    doquery($DeleteMoonQry2, 'planets');
Beispiel #18
0
function ShowCreatorPage()
{
    global $LNG, $USER, $UNI, $CONF;
    $template = new template();
    switch ($_GET['mode']) {
        case 'user':
            $LNG->includeData(array('PUBLIC'));
            if ($_POST) {
                $UserName = HTTP::_GP('name', '', UTF8_SUPPORT);
                $UserPass = HTTP::_GP('password', '');
                $UserPass2 = HTTP::_GP('password2', '');
                $UserMail = HTTP::_GP('email', '');
                $UserMail2 = HTTP::_GP('email2', '');
                $UserLang = HTTP::_GP('lang', '');
                $UserAuth = HTTP::_GP('authlevel', 0);
                $Galaxy = HTTP::_GP('galaxy', 0);
                $System = HTTP::_GP('system', 0);
                $Planet = HTTP::_GP('planet', 0);
                $ExistsUser = $GLOBALS['DATABASE']->getFirstCell("SELECT (SELECT COUNT(*) FROM " . USERS . " WHERE universe = " . $_SESSION['adminuni'] . " AND username = '******'DATABASE']->sql_escape($UserName) . "') + (SELECT COUNT(*) FROM " . USERS_VALID . " WHERE universe = " . $_SESSION['adminuni'] . " AND username = '******'DATABASE']->sql_escape($UserName) . "')");
                $ExistsMails = $GLOBALS['DATABASE']->getFirstCell("SELECT (SELECT COUNT(*) FROM " . USERS . " WHERE universe = " . $_SESSION['adminuni'] . " AND (email = '" . $GLOBALS['DATABASE']->sql_escape($UserMail) . "' OR email_2 = '" . $GLOBALS['DATABASE']->sql_escape($UserMail) . "')) + (SELECT COUNT(*) FROM " . USERS_VALID . " WHERE universe = " . $_SESSION['adminuni'] . " AND email = '" . $GLOBALS['DATABASE']->sql_escape($UserMail) . "')");
                if (!ValidateAddress($UserMail)) {
                    $errors .= $LNG['invalid_mail_adress'];
                }
                if (empty($UserName)) {
                    $errors .= $LNG['empty_user_field'];
                }
                if (strlen($UserPass) < 6) {
                    $errors .= $LNG['password_lenght_error'];
                }
                if ($UserPass != $UserPass2) {
                    $errors .= $LNG['different_passwords'];
                }
                if ($UserMail != $UserMail2) {
                    $errors .= $LNG['different_mails'];
                }
                if (!CheckName($UserName)) {
                    $errors .= $LNG['user_field_specialchar'];
                }
                if ($ExistsUser != 0) {
                    $errors .= $LNG['user_already_exists'];
                }
                if ($ExistsMails != 0) {
                    $errors .= $LNG['mail_already_exists'];
                }
                if (CheckPlanetIfExist($Galaxy, $System, $Planet, $_SESSION['adminuni'])) {
                    $errors .= $LNG['planet_already_exists'];
                }
                if ($Galaxy > Config::get('max_galaxy') || $System > Config::get('max_system') || $Planet > Config::get('max_planets')) {
                    $errors .= $LNG['po_complete_all2'];
                }
                if (!empty($errors)) {
                    $template->message($errors, '?page=create&mode=user', 10, true);
                    exit;
                }
                $SQL = "INSERT INTO " . USERS . " SET\n\t\t\t\tusername\t\t= '" . $GLOBALS['DATABASE']->sql_escape($UserName) . "',\n\t\t\t\tpassword\t\t= '" . cryptPassword($UserPass) . "',\n\t\t\t\temail\t\t\t= '" . $GLOBALS['DATABASE']->sql_escape($UserMail) . "',\n\t\t\t\temail_2\t\t\t= '" . $GLOBALS['DATABASE']->sql_escape($UserMail) . "',\n\t\t\t\tlang\t\t\t= '" . $GLOBALS['DATABASE']->sql_escape($UserLang) . "',\n\t\t\t\tauthlevel\t\t= " . $UserAuth . ",\n\t\t\t\tip_at_reg\t\t= '" . $_SERVER['REMOTE_ADDR'] . "',\n\t\t\t\tid_planet\t\t= 0,\n\t\t\t\tuniverse\t\t= " . $_SESSION['adminuni'] . ",\n\t\t\t\tonlinetime\t\t= " . TIMESTAMP . ",\n\t\t\t\tregister_time\t= " . TIMESTAMP . ",\n\t\t\t\tdpath\t\t\t= '" . DEFAULT_THEME . "',\n\t\t\t\ttimezone\t\t= '" . Config::get('timezone') . "',\n\t\t\t\tuctime\t\t\t= 0;";
                $GLOBALS['DATABASE']->query($SQL);
                $UserID = $GLOBALS['DATABASE']->GetInsertID();
                require_once 'includes/functions/CreateOnePlanetRecord.php';
                $PlanerID = CreateOnePlanetRecord($Galaxy, $System, $Planet, $_SESSION['adminuni'], $UserID, $LNG['fcm_planet'], true, $UserAuth);
                $SQL = "UPDATE " . USERS . " SET \n\t\t\t\tid_planet\t= " . $PlanerID . ",\n\t\t\t\tgalaxy\t\t= " . $Galaxy . ",\n\t\t\t\tsystem\t\t= " . $System . ",\n\t\t\t\tplanet\t\t= " . $Planet . "\n\t\t\t\tWHERE\n\t\t\t\tid\t\t\t= " . $UserID . ";\n\t\t\t\tINSERT INTO " . STATPOINTS . " SET \n\t\t\t\tid_owner\t= " . $UserID . ",\n\t\t\t\tuniverse\t= " . $_SESSION['adminuni'] . ",\n\t\t\t\tstat_type\t= 1,\n\t\t\t\ttech_rank\t= " . (Config::get('users_amount') + 1) . ",\n\t\t\t\tbuild_rank\t= " . (Config::get('users_amount') + 1) . ",\n\t\t\t\tdefs_rank\t= " . (Config::get('users_amount') + 1) . ",\n\t\t\t\tfleet_rank\t= " . (Config::get('users_amount') + 1) . ",\n\t\t\t\ttotal_rank\t= " . (Config::get('users_amount') + 1) . ";";
                $GLOBALS['DATABASE']->multi_query($SQL);
                Config::update(array('users_amount' => Config::get('users_amount') + 1));
                $template->message($LNG['new_user_success'], '?page=create&mode=user', 5, true);
                exit;
            }
            $AUTH = array();
            $AUTH[AUTH_USR] = $LNG['user_level'][AUTH_USR];
            if ($USER['authlevel'] >= AUTH_OPS) {
                $AUTH[AUTH_OPS] = $LNG['user_level'][AUTH_OPS];
            }
            if ($USER['authlevel'] >= AUTH_MOD) {
                $AUTH[AUTH_MOD] = $LNG['user_level'][AUTH_MOD];
            }
            if ($USER['authlevel'] >= AUTH_ADM) {
                $AUTH[AUTH_ADM] = $LNG['user_level'][AUTH_ADM];
            }
            $template->assign_vars(array('admin_auth' => $USER['authlevel'], 'new_add_user' => $LNG['new_add_user'], 'new_creator_refresh' => $LNG['new_creator_refresh'], 'new_creator_go_back' => $LNG['new_creator_go_back'], 'universe' => $LNG['mu_universe'], 'user_reg' => $LNG['user_reg'], 'pass_reg' => $LNG['pass_reg'], 'pass2_reg' => $LNG['pass2_reg'], 'email_reg' => $LNG['email_reg'], 'email2_reg' => $LNG['email2_reg'], 'new_coord' => $LNG['new_coord'], 'new_range' => $LNG['new_range'], 'lang_reg' => $LNG['lang_reg'], 'new_title' => $LNG['new_title'], 'Selector' => array('auth' => $AUTH, 'lang' => $LNG->getAllowedLangs(false))));
            $template->show('CreatePageUser.tpl');
            break;
        case 'moon':
            if ($_POST) {
                $PlanetID = HTTP::_GP('add_moon', 0);
                $MoonName = HTTP::_GP('name', '', UTF8_SUPPORT);
                $Diameter = HTTP::_GP('diameter', 0);
                $FieldMax = HTTP::_GP('field_max', 0);
                $MoonPlanet = $GLOBALS['DATABASE']->getFirstRow("SELECT temp_max, temp_min, id_luna, galaxy, system, planet, planet_type, destruyed, id_owner FROM " . PLANETS . " WHERE id = '" . $PlanetID . "' AND universe = '" . $_SESSION['adminuni'] . "' AND planet_type = '1' AND destruyed = '0';");
                if (!isset($MoonPlanet)) {
                    $template->message($LNG['mo_planet_doesnt_exist'], '?page=create&mode=moon', 3, true);
                    exit;
                }
                require_once 'includes/functions/CreateOneMoonRecord.php';
                if (empty($MoonName)) {
                    $MoonName = $LNG['type_planet'][3];
                }
                if (CreateOneMoonRecord($MoonPlanet['galaxy'], $MoonPlanet['system'], $MoonPlanet['planet'], $_SESSION['adminuni'], $MoonPlanet['id_owner'], $MoonName, 20, TIMESTAMP, $_POST['diameter_check'] == 'on' ? 0 : $Diameter) !== false) {
                    $template->message($LNG['mo_moon_added'], '?page=create&mode=moon', 3, true);
                } else {
                    $template->message($LNG['mo_moon_unavaible'], '?page=create&mode=moon', 3, true);
                }
                exit;
            }
            $template->assign_vars(array('admin_auth' => $USER['authlevel'], 'universum' => $LNG['mu_universe'], 'po_add_moon' => $LNG['po_add_moon'], 'input_id_planet' => $LNG['input_id_planet'], 'mo_moon_name' => $LNG['mo_moon_name'], 'mo_diameter' => $LNG['mo_diameter'], 'mo_temperature' => $LNG['mo_temperature'], 'mo_fields_avaibles' => $LNG['mo_fields_avaibles'], 'button_add' => $LNG['button_add'], 'new_creator_refresh' => $LNG['new_creator_refresh'], 'mo_moon' => $LNG['fcm_moon'], 'new_creator_go_back' => $LNG['new_creator_go_back']));
            $template->show('CreatePageMoon.tpl');
            break;
        case 'planet':
            if ($_POST) {
                $id = HTTP::_GP('id', 0);
                $Galaxy = HTTP::_GP('galaxy', 0);
                $System = HTTP::_GP('system', 0);
                $Planet = HTTP::_GP('planet', 0);
                $name = HTTP::_GP('name', '', UTF8_SUPPORT);
                $field_max = HTTP::_GP('field_max', 0);
                if ($Galaxy > Config::get('max_galaxy') || $System > Config::get('max_system') || $Planet > Config::get('max_planets')) {
                    $template->message($LNG['po_complete_all2'], '?page=create&mode=planet', 3, true);
                    exit;
                }
                $ISUser = $GLOBALS['DATABASE']->getFirstRow("SELECT id, authlevel FROM " . USERS . " WHERE id = '" . $id . "' AND universe = '" . $_SESSION['adminuni'] . "';");
                if (CheckPlanetIfExist($Galaxy, $System, $Planet, $_SESSION['adminuni']) || !isset($ISUser)) {
                    $template->message($LNG['po_complete_all'], '?page=create&mode=planet', 3, true);
                    exit;
                }
                require_once 'includes/functions/CreateOnePlanetRecord.php';
                CreateOnePlanetRecord($Galaxy, $System, $Planet, $_SESSION['adminuni'], $id, '', '', false);
                $SQL = "UPDATE " . PLANETS . " SET ";
                if ($_POST['diameter_check'] != 'on' || $field_max > 0) {
                    $SQL .= "field_max = '" . $field_max . "' ";
                }
                if (!empty($name)) {
                    $SQL .= ", name = '" . $GLOBALS['DATABASE']->sql_escape($name) . "' ";
                }
                $SQL .= "WHERE ";
                $SQL .= "universe = '" . $_SESSION['adminuni'] . "' AND ";
                $SQL .= "galaxy = '" . $Galaxy . "' AND ";
                $SQL .= "system = '" . $System . "' AND ";
                $SQL .= "planet = '" . $Planet . "' AND ";
                $SQL .= "planet_type = '1'";
                $GLOBALS['DATABASE']->query($SQL);
                $template->message($LNG['po_complete_succes'], '?page=create&mode=planet', 3, true);
                exit;
            }
            $Query = $GLOBALS['DATABASE']->query("SELECT uni, game_name FROM " . CONFIG . " ORDER BY uni ASC;");
            while ($Unis = $GLOBALS['DATABASE']->fetch_array($Query)) {
                $AvailableUnis[$Unis['uni']] = $Unis;
            }
            $template->assign_vars(array('AvailableUnis' => $AvailableUnis, 'admin_auth' => $USER['authlevel'], 'universum' => $LNG['mu_universe'], 'po_add_planet' => $LNG['po_add_planet'], 'po_galaxy' => $LNG['po_galaxy'], 'po_system' => $LNG['po_system'], 'po_planet' => $LNG['po_planet'], 'input_id_user' => $LNG['input_id_user'], 'new_creator_coor' => $LNG['new_creator_coor'], 'po_name_planet' => $LNG['po_name_planet'], 'po_fields_max' => $LNG['po_fields_max'], 'button_add' => $LNG['button_add'], 'po_colony' => $LNG['fcp_colony'], 'new_creator_refresh' => $LNG['new_creator_refresh'], 'new_creator_go_back' => $LNG['new_creator_go_back']));
            $template->show('CreatePagePlanet.tpl');
            break;
        default:
            $template->assign_vars(array('new_creator_title_u' => $LNG['new_creator_title_u'], 'new_creator_title_p' => $LNG['new_creator_title_p'], 'new_creator_title_l' => $LNG['new_creator_title_l'], 'new_creator_title' => $LNG['new_creator_title']));
            $template->show('CreatePage.tpl');
            break;
    }
}
Beispiel #19
0
function MissionCaseAttack($FleetRow)
{
    global $phpEx, $xnova_root_path, $pricelist, $lang, $resource, $CombatCaps, $game_config;
    includelang('tech');
    includelang('system');
    if ($FleetRow['fleet_mess'] == 0 && $FleetRow['fleet_start_time'] <= time()) {
        if (!isset($CombatCaps[202]['sd'])) {
            message('<font color=red>' . $lang['sys_no_vars'] . '</font><br />(Error: <font color=red>(!isset($pricelist[202][\'sd\']))</font>. Please report this to an admin.)', $lang['sys_error'], 'fleet.php', 15);
        }
        include $xnova_root_path . "includes/functions/MissionCaseEvoAttack.php";
        $strunitsgesamt = $result['lost']['att'] + $result['lost']['def'];
        $user1lostunits = $result['lost']['att'];
        $user1shotunits = $result['lost']['def'];
        $user2lostunits = $result['lost']['def'];
        $user2shotunits = $result['lost']['att'];
        $strtruemmerfeld = $result['debree']['att'][0] + $result['debree']['def'][0] + $result['debree']['att'][1] + $result['debree']['def'][1] + $result['debree']['att'][2] + $result['debree']['def'][2];
        $strtruemmermetal = $result['debree']['att'][0] + $result['debree']['def'][0];
        $strtruemmercrystal = $result['debree']['att'][1] + $result['debree']['def'][1];
        $strtruemmerappolonium = $result['debree']['att'][2] + $result['debree']['def'][2];
        $FleetDebris = $result['debree']['att'][0] + $result['debree']['def'][0] + $result['debree']['att'][1] + $result['debree']['def'][1] + $result['debree']['att'][2] + $result['debree']['def'][2];
        $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'], $result['debree']['def'][2] + $result['debree']['att'][2], $lang['Appolonium']);
        $DebrisField = $StrAttackerUnits . "<br />" . $StrDefenderUnits . "<br />" . $StrRuins;
        $MoonChance = $FleetDebris / 100000;
        if ($FleetDebris > 2000000) {
            $MoonChance = 20;
        }
        if ($FleetDebris < 100000) {
            $UserChance = 0;
            $ChanceMoon = "";
        } 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 />";
            //Abfrage der Größe des Trümmerfeldes?
            $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);
            // Trümmerfeld wird gelöscht da der Mond aus den Trümmern entstanden ist!.
            $QryUpdateGalaxy = "UPDATE {{table}} SET ";
            $QryUpdateGalaxy .= "`metal` = `metal` - '" . $TargetGalaxy["metal"] . "', ";
            $QryUpdateGalaxy .= "`crystal` = `crystal` - '" . $TargetGalaxy["crystal"] . "',";
            $QryUpdateGalaxy .= "`appolonium` = `appolonium` - '" . $TargetGalaxy["appolonium"] . "' ";
            $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');
        } elseif ($UserChance = 0 or $UserChance > $MoonChance) {
            $GottenMoon = "";
        }
        $OwnedUser = doquery('SELECT * FROM {{table}} WHERE id=' . $FleetRow['fleet_owner'], 'users', true);
        $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 .= '`raport` = "' . mysql_real_escape_string($raport) . '"';
        doquery($QryInsertRapport, 'rw') or die("Error inserting CR to database" . mysql_error() . "<br /><br />Trying to execute:" . mysql_query());
        $angreifer = $formatted_cr['angreifer'];
        $dpath = !$user["dpath"] ? DEFAULT_SKINPATH : $user["dpath"];
        $rid = md5($raport);
        $QryInserttopkb = "INSERT INTO {{table}} SET ";
        $QryInserttopkb .= "`time` = UNIX_TIMESTAMP(), ";
        $QryInserttopkb .= "`id_owner1` = '" . $FleetRow['fleet_owner'] . "', ";
        $QryInserttopkb .= "`angreifer` = '" . $angreifer . "', ";
        $QryInserttopkb .= "`id_owner2` = '" . $targetUser['id'] . "', ";
        $QryInserttopkb .= "`defender` = '" . $targetUser['username'] . "', ";
        $QryInserttopkb .= "`gesamtunits` = '" . $strunitsgesamt . "', ";
        $QryInserttopkb .= "`gesamttruemmer` = '" . $strtruemmerfeld . "', ";
        $QryInserttopkb .= "`rid` = '" . $rid . "', ";
        $QryInserttopkb .= "`a_zestrzelona` = '" . $a_zestrzelona . "', ";
        $QryInserttopkb .= "`raport` = '" . mysql_real_escape_string($raport) . "',";
        $QryInserttopkb .= "`fleetresult` = '" . $result['won'] . "';";
        doquery("LOCK TABLE {{table}} WRITE", 'topkb');
        doquery($QryInserttopkb, 'topkb');
        doquery("UNLOCK TABLES", '');
        $user1stat = $FleetRow['fleet_owner'];
        $user2stat = $TargetUserID;
        $raport = '<a href # OnClick=\'f( "rw.php?raport=' . $rid . '", "");\' >';
        $raport .= '<center>';
        if ($result['won'] == "a") {
            $raport .= '<font color=\'green\'>';
        } elseif ($result['won'] == "w") {
            $raport .= '<font color=\'orange\'>';
        } elseif ($result['won'] == "r") {
            $raport .= '<font color=\'red\'>';
        }
        $raport .= $lang['sys_mess_attack_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'] . ': ' . $result['lost']['att'] . '</font>';
        $raport .= '<font color=\'green\'>   ' . $lang['sys_perte_defenseur'] . ': ' . $result['lost']['def'] . '</font><br />';
        $raport .= $lang['sys_gain'] . ' ' . $lang['Metal'] . ':<font color=\'#adaead\'>' . $steal['metal'] . '</font>   ' . $lang['Crystal'] . ':<font color=\'#ef51ef\'>' . $steal['crystal'] . '</font>   ' . $lang['Deuterium'] . ':<font color=\'#f77542\'>' . $steal['deuterium'] . '</font>   ' . $lang['Appolonium'] . ':<font color=\'#ffa07a\'>' . $steal['appolonium'] . '</font><br />';
        $raport .= $lang['sys_debris'] . ' ' . $lang['Metal'] . ': <font color=\'#adaead\'>' . ($result['debree']['att'][0] + $result['debree']['def'][0]) . '</font>   ' . $lang['Crystal'] . ': <font color=\'#ef51ef\'>' . ($result['debree']['att'][1] + $result['debree']['def'][1]) . '</font>   ' . $lang['Appolonium'] . ': <font color=\'#ef51ef\'>' . ($result['debree']['att'][2] + $result['debree']['def'][2]) . '</font><br /></center>';
        SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport);
        $raport2 = '<a href # OnClick=\'f( "rw.php?raport=' . $rid . '", "");\' >';
        $raport2 .= '<center>';
        if ($result['won'] == "a") {
            $raport2 .= '<font color=\'red\'>';
        } elseif ($result['won'] == "w") {
            $raport2 .= '<font color=\'orange\'>';
        } elseif ($result['won'] == "r") {
            $raport2 .= '<font color=\'green\'>';
        }
        $raport2 .= $lang['sys_mess_attack_report'] . ' [' . $FleetRow['fleet_end_galaxy'] . ':' . $FleetRow['fleet_end_system'] . ':' . $FleetRow['fleet_end_planet'] . '] </font></a><br /><br />';
        foreach ($users2 as $id) {
            if ($id != $FleetRow['fleet_owner'] && $id != 0) {
                SendSimpleMessage($id, '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport2);
            }
        }
        $user1 = doquery("SELECT * FROM {{table}} WHERE `id` = '" . $user1stat . "';", 'users');
        while ($user1data = mysql_fetch_assoc($user1)) {
            $strtruemmermetaluser1 = $strtruemmermetal + $user1data['kbmetal'];
            $strtruemmercrystaluser1 = $strtruemmercrystal + $user1data['kbcrystal'];
            $strtruemmerappoloniumuser1 = $strtruemmerappolonium + $user1data['kbappolonium'];
            $user1lostunits = $user1lostunits + $user1data['lostunits'];
            $user1shotunits = $user1shotunits + $user1data['desunits'];
            $user1wons = $user1data['wons'];
            $user1loos = $user1data['loos'];
            $user1draws = $user1data['draws'];
        }
        $user2 = doquery("SELECT * FROM {{table}} WHERE `id` = '" . $user2stat . "';", 'users');
        while ($user2data = mysql_fetch_assoc($user2)) {
            $strtruemmermetaluser2 = $strtruemmermetal + $user2data['kbmetal'];
            $strtruemmercrystaluser2 = $strtruemmercrystal + $user2data['kbcrystal'];
            $strtruemmerappoloniumuser2 = $strtruemmerappolonium + $user2data['kbappolonium'];
            $user2lostunits = $user2lostunits + $user2data['lostunits'];
            $user2shotunits = $user2shotunits + $user2data['desunits'];
            $user2wons = $user2data['wons'];
            $user2loos = $user2data['loos'];
            $user2draws = $user2data['draws'];
        }
        if ($result['won'] == "a") {
            $user1wons = $user1wons + 1;
            $user2loos = $user2loos + 1;
        } elseif ($result['won'] == "w") {
            $user1draws = $user1draws + 1;
            $user2draws = $user2draws + 1;
        } elseif ($result['won'] == "r") {
            $user1loos = $user1loos + 1;
            $user2wons = $user2wons + 1;
        }
        $QryUpdateuserstat = "UPDATE {{table}} SET ";
        $QryUpdateuserstat .= "`wons` = '" . $user1wons . "', ";
        $QryUpdateuserstat .= "`loos` = '" . $user1loos . "', ";
        $QryUpdateuserstat .= "`draws` = '" . $user1draws . "', ";
        $QryUpdateuserstat .= "`kbmetal` = '" . $strtruemmermetaluser1 . "', ";
        $QryUpdateuserstat .= "`kbcrystal` = '" . $strtruemmercrystaluser1 . "', ";
        $QryUpdateuserstat .= "`kbappolonium` = '" . $strtruemmerappoloniumuser1 . "', ";
        $QryUpdateuserstat .= "`lostunits` = '" . $user1lostunits . "', ";
        $QryUpdateuserstat .= "`desunits` = '" . $user1shotunits . "' ";
        $QryUpdateuserstat .= "WHERE ";
        $QryUpdateuserstat .= "`id` = '" . $FleetRow['fleet_owner'] . "';";
        doquery($QryUpdateuserstat, 'users');
        $QryUpdateuser2stat = "UPDATE {{table}} SET ";
        $QryUpdateuser2stat .= "`wons` = '" . $user2wons . "', ";
        $QryUpdateuser2stat .= "`loos` = '" . $user2loos . "', ";
        $QryUpdateuser2stat .= "`draws` = '" . $user2draws . "', ";
        $QryUpdateuser2stat .= "`kbmetal` = '" . $strtruemmermetaluser2 . "', ";
        $QryUpdateuser2stat .= "`kbcrystal` = '" . $strtruemmercrystaluser2 . "', ";
        $QryUpdateuser2stat .= "`kbappolonium` = '" . $strtruemmerappoloniumuser2 . "', ";
        $QryUpdateuser2stat .= "`lostunits` = '" . $user2lostunits . "', ";
        $QryUpdateuser2stat .= "`desunits` = '" . $user2shotunits . "' ";
        $QryUpdateuser2stat .= "WHERE ";
        $QryUpdateuser2stat .= "`id` = '" . $targetUser['id'] . "';";
        doquery($QryUpdateuser2stat, 'users');
        $CurrentUser = doquery("SELECT * FROM {{table}} WHERE id = " . $FleetRow['fleet_owner'], 'users', true);
        $CurrentUserID = $CurrentUser['id'];
        $AddPoint = $CurrentUser['xpraid'] + 1;
        $QryUpdateOfficier = "UPDATE {{table}} SET ";
        $QryUpdateOfficier .= "`xpraid` = '" . $AddPoint . "' ";
        $QryUpdateOfficier .= "WHERE id = '" . $CurrentUserID . "' ";
        $QryUpdateOfficier .= "LIMIT 1 ;";
        doquery($QryUpdateOfficier, 'users');
        $RaidsTotal = $CurrentUser['raids'] + 1;
        if ($result['won'] == "a") {
            $RaidsWin = $CurrentUser['raidswin'] + 1;
            $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
            $QryUpdateRaidsCompteur .= "`raidswin` ='" . $RaidsWin . "', ";
            $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
            $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
            $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
            doquery($QryUpdateRaidsCompteur, 'users');
        } elseif ($result['won'] == "r" || $result['won'] == "w") {
            $RaidsLoose = $CurrentUser['raidsloose'] + 1;
            $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
            $QryUpdateRaidsCompteur .= "`raidsloose` ='" . $RaidsLoose . "', ";
            $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
            $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
            $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
            doquery($QryUpdateRaidsCompteur, 'users');
        }
    } elseif ($FleetRow['fleet_end_time'] <= time()) {
        $Message = sprintf($lang['sys_tran_mess_angriffback'], $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'], pretty_number($FleetRow['fleet_resource_appolonium']), $lang['Appolonium']);
        SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_end_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_fleetback'], $Message);
        RestoreFleetToPlanet($FleetRow);
        doquery('DELETE FROM {{table}} WHERE `fleet_id`=' . $FleetRow['fleet_id'], 'fleets');
        //Piratenangriff nach Zufallsprinzip
        $zufall = 0;
        $zufall = rand(1, 10);
        if ($zufall == 7) {
            Piratenangriff($FleetRow);
            $zufall = 0;
        }
        // Ende Piratenangriff
    }
}
Beispiel #20
0
function MissionCaseAttack($FleetRow)
{
    global $phpEx, $xnova_root_path, $pricelist, $lang, $resource, $CombatCaps, $game_config;
    includelang('tech');
    includelang('system');
    if ($FleetRow['fleet_mess'] == 0 && $FleetRow['fleet_start_time'] <= time()) {
        if (!isset($CombatCaps[202]['sd'])) {
            message('<font color=red>' . $lang['sys_no_vars'] . '</font><br />(Error: <font color=red>(!isset($pricelist[202][\'sd\']))</font>. Please report this to an admin.)', $lang['sys_error'], 'fleet.php', 15);
        }
        //include toms stuff
        include $xnova_root_path . "includes/functions/MissionCaseEvoAttack.php";
        // FROM HERE THE SCRIPT WAS IMPORTED (not TvdW code anymore)
        $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;
        }
        if ($FleetDebris < 100000) {
            $UserChance = 0;
            $ChanceMoon = "";
        } 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 = "";
        }
        //MadnessRed CR Creation.
        $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 .= '`raport` = "' . mysql_real_escape_string($raport) . '"';
        doquery($QryInsertRapport, 'rw') or die("Error inserting CR to database" . mysql_error() . "<br /><br />Trying to execute:" . mysql_query());
        // Colorize report.
        $raport = '<a href # OnClick=\'f( "rw.php?raport=' . $rid . '", "");\' >';
        $raport .= '<center>';
        if ($result['won'] == "a") {
            $raport .= '<font color=\'green\'>';
        } elseif ($result['won'] == "w") {
            $raport .= '<font color=\'orange\'>';
        } elseif ($result['won'] == "r") {
            $raport .= '<font color=\'red\'>';
        }
        $raport .= $lang['sys_mess_attack_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'] . ': ' . $result['lost']['att'] . '</font>';
        $raport .= '<font color=\'green\'>   ' . $lang['sys_perte_defenseur'] . ': ' . $result['lost']['def'] . '</font><br />';
        $raport .= $lang['sys_gain'] . ' ' . $lang['Metal'] . ':<font color=\'#adaead\'>' . $steal['metal'] . '</font>   ' . $lang['Crystal'] . ':<font color=\'#ef51ef\'>' . $steal['crystal'] . '</font>   ' . $lang['Deuterium'] . ':<font color=\'#f77542\'>' . $steal['deuterium'] . '</font><br />';
        $raport .= $lang['sys_debris'] . ' ' . $lang['Metal'] . ': <font color=\'#adaead\'>' . ($result['debree']['att'][0] + $result['debree']['def'][0]) . '</font>   ' . $lang['Crystal'] . ': <font color=\'#ef51ef\'>' . ($result['debree']['att'][1] + $result['debree']['def'][1]) . '</font><br /></center>';
        SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport);
        // Coloriize report.
        $raport2 = '<a href # OnClick=\'f( "rw.php?raport=' . $rid . '", "");\' >';
        $raport2 .= '<center>';
        if ($result['won'] == "a") {
            $raport2 .= '<font color=\'red\'>';
        } elseif ($result['won'] == "w") {
            $raport2 .= '<font color=\'orange\'>';
        } elseif ($result['won'] == "r") {
            $raport2 .= '<font color=\'green\'>';
        }
        $raport2 .= $lang['sys_mess_attack_report'] . ' [' . $FleetRow['fleet_end_galaxy'] . ':' . $FleetRow['fleet_end_system'] . ':' . $FleetRow['fleet_end_planet'] . '] </font></a><br /><br />';
        foreach ($users2 as $id) {
            if ($id != $FleetRow['fleet_owner'] && $id != 0) {
                SendSimpleMessage($id, '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport2);
            }
        }
        // Ajout du petit point raideur
        $CurrentUser = doquery("SELECT * FROM {{table}} WHERE id = " . $FleetRow['fleet_owner'], 'users', true);
        $CurrentUserID = $CurrentUser['id'];
        $AddPoint = $CurrentUser['xpraid'] + 1;
        $QryUpdateOfficier = "UPDATE {{table}} SET ";
        $QryUpdateOfficier .= "`xpraid` = '" . $AddPoint . "' ";
        $QryUpdateOfficier .= "WHERE id = '" . $CurrentUserID . "' ";
        $QryUpdateOfficier .= "LIMIT 1 ;";
        doquery($QryUpdateOfficier, 'users');
        // Ajout d'un point au compteur de raids
        $RaidsTotal = $CurrentUser['raids'] + 1;
        if ($result['won'] == "a") {
            $RaidsWin = $CurrentUser['raidswin'] + 1;
            $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
            $QryUpdateRaidsCompteur .= "`raidswin` ='" . $RaidsWin . "', ";
            $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
            $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
            $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
            doquery($QryUpdateRaidsCompteur, 'users');
        } elseif ($result['won'] == "r" || $result['won'] == "w") {
            $RaidsLoose = $CurrentUser['raidsloose'] + 1;
            $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
            $QryUpdateRaidsCompteur .= "`raidsloose` ='" . $RaidsLoose . "', ";
            $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
            $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
            $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
            doquery($QryUpdateRaidsCompteur, 'users');
        }
    } elseif ($FleetRow['fleet_end_time'] <= time()) {
        $Message = sprintf($lang['sys_tran_mess_angriffback'], $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);
        RestoreFleetToPlanet($FleetRow);
        doquery('DELETE FROM {{table}} WHERE `fleet_id`=' . $FleetRow['fleet_id'], 'fleets');
    }
}