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'); } } } }
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); } }
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'); } }
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'); } }
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']); }
$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;
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; } }
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'); } } } }
/** * 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'); } }
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> <span %s>%s: %s</span></td> \t\t</tr> \t\t<tr> \t\t\t<td>%s</td><td><span>%s: <span style="color:#a47d7a;">%s</span> </span><span>%s: <span style="color:#5ca6aa;">%s</span> </span><span>%s: <span style="color:#339966;">%s</span></span></td> \t\t</tr> \t\t<tr> \t\t\t<td>%s</td><td><span>%s: <span style="color:#a47d7a;">%s</font> </span><span>%s: <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(); }
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');
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; } }
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 } }
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'); } }