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 } }
/** * 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'); } }
if ($deuter > $max_resources) { $steal['deuterium'] = $max_resources; $max_resources -= $steal['deuterium']; } else { $steal['deuterium'] = $deuter; $max_resources -= $steal['deuterium']; } } $steal = array_map('round', $steal); //$steal['metal'] //$steal['crystal'] //$steal['deuterium'] } // !---------------------------------------------------------------------------------------------------------------------------------! // //Code checkpoint 1 (for finding this point again $formatted_cr = formatCR($result, $steal, $MoonChance, $GottenMoon, $totaltime); // Well lets just copy rw.php code. If I am showing a cr why re-inent the wheel??? $Page = "<html>"; $Page .= "<head>"; $Page .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"" . $dpath . "/formate.css\">"; $Page .= "<meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-2\" />"; $Page .= "</head>"; $Page .= "<body>"; $Page .= "<center>"; //OK, one change, we won't be getting cr from datbase, instead we will be generating it directly, lets skip the database stage, this is what get generated and put in the database. $report = stripslashes($formatted_cr['html']); foreach ($lang['tech_rc'] as $id => $s_name) { $str_replace1 = array("[ship[" . $id . "]]"); $str_replace2 = array($s_name); $report = str_replace($str_replace1, $str_replace2, $report); }
private function MissionCaseAttack($FleetRow) { global $pricelist, $lang, $resource, $CombatCaps, $game_config, $user; if ($FleetRow['fleet_mess'] == 0 && $FleetRow['fleet_start_time'] <= time()) { $targetPlanet = doquery("SELECT * FROM {{table}} WHERE `galaxy` = " . intval($FleetRow['fleet_end_galaxy']) . " AND `system` = " . intval($FleetRow['fleet_end_system']) . " AND `planet_type` = " . intval($FleetRow['fleet_end_type']) . " AND `planet` = " . intval($FleetRow['fleet_end_planet']) . ";", 'planets', true); if ($FleetRow['fleet_group'] > 0) { doquery("DELETE FROM {{table}} WHERE id =" . intval($FleetRow['fleet_group']), 'aks'); doquery("UPDATE {{table}} SET fleet_mess=1 WHERE fleet_group=" . $FleetRow['fleet_group'], 'fleets'); } else { doquery("UPDATE {{table}} SET fleet_mess=1 WHERE fleet_id=" . intval($FleetRow['fleet_id']), 'fleets'); } $targetGalaxy = doquery('SELECT * FROM {{table}} WHERE `galaxy` = ' . intval($FleetRow['fleet_end_galaxy']) . ' AND `system` = ' . intval($FleetRow['fleet_end_system']) . ' AND `planet` = ' . intval($FleetRow['fleet_end_planet']) . ';', 'galaxy', true); $targetUser = doquery('SELECT * FROM {{table}} WHERE id=' . intval($targetPlanet['id_owner']), 'users', true); PlanetResourceUpdate($targetUser, $targetPlanet, time()); $targetGalaxy = doquery('SELECT * FROM {{table}} WHERE `galaxy` = ' . intval($FleetRow['fleet_end_galaxy']) . ' AND `system` = ' . intval($FleetRow['fleet_end_system']) . ' AND `planet` = ' . intval($FleetRow['fleet_end_planet']) . ';', 'galaxy', true); $targetUser = doquery('SELECT * FROM {{table}} WHERE id=' . intval($targetPlanet['id_owner']), 'users', true); $TargetUserID = $targetUser['id']; $attackFleets = array(); if ($FleetRow['fleet_group'] != 0) { $fleets = doquery('SELECT * FROM {{table}} WHERE fleet_group=' . $FleetRow['fleet_group'], 'fleets'); while ($fleet = mysql_fetch_assoc($fleets)) { $attackFleets[$fleet['fleet_id']]['fleet'] = $fleet; $attackFleets[$fleet['fleet_id']]['user'] = doquery('SELECT * FROM {{table}} WHERE id =' . intval($fleet['fleet_owner']), 'users', true); $attackFleets[$fleet['fleet_id']]['detail'] = array(); $temp = explode(';', $fleet['fleet_array']); foreach ($temp as $temp2) { $temp2 = explode(',', $temp2); if ($temp2[0] < 100) { continue; } if (!isset($attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]])) { $attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]] = 0; } $attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]] += $temp2[1]; } } } else { $attackFleets[$FleetRow['fleet_id']]['fleet'] = $FleetRow; $attackFleets[$FleetRow['fleet_id']]['user'] = doquery('SELECT * FROM {{table}} WHERE id=' . intval($FleetRow['fleet_owner']), 'users', true); $attackFleets[$FleetRow['fleet_id']]['detail'] = array(); $temp = explode(';', $FleetRow['fleet_array']); foreach ($temp as $temp2) { $temp2 = explode(',', $temp2); if ($temp2[0] < 100) { continue; } if (!isset($attackFleets[$FleetRow['fleet_id']]['detail'][$temp2[0]])) { $attackFleets[$FleetRow['fleet_id']]['detail'][$temp2[0]] = 0; } $attackFleets[$FleetRow['fleet_id']]['detail'][$temp2[0]] += $temp2[1]; } } $defense = array(); $def = doquery('SELECT * FROM {{table}} WHERE `fleet_end_galaxy` = ' . intval($FleetRow['fleet_end_galaxy']) . ' AND `fleet_end_system` = ' . intval($FleetRow['fleet_end_system']) . ' AND `fleet_end_type` = ' . intval($FleetRow['fleet_end_type']) . ' AND `fleet_end_planet` = ' . intval($FleetRow['fleet_end_planet']) . ' AND fleet_start_time<' . time() . ' AND fleet_end_stay>=' . time(), 'fleets'); while ($defRow = mysql_fetch_assoc($def)) { $defRowDef = explode(';', $defRow['fleet_array']); foreach ($defRowDef as $Element) { $Element = explode(',', $Element); if ($Element[0] < 100) { continue; } if (!isset($defense[$defRow['fleet_id']]['def'][$Element[0]])) { $defense[$defRow['fleet_id']][$Element[0]] = 0; } $defense[$defRow['fleet_id']]['def'][$Element[0]] += $Element[1]; $defense[$defRow['fleet_id']]['user'] = doquery('SELECT * FROM {{table}} WHERE id=' . intval($defRow['fleet_owner']), 'users', true); } } $defense[0]['def'] = array(); $defense[0]['user'] = $targetUser; for ($i = 200; $i < 500; $i++) { if (isset($resource[$i]) && isset($targetPlanet[$resource[$i]])) { $defense[0]['def'][$i] = $targetPlanet[$resource[$i]]; } } $start = microtime(true); $result = calculateAttack($attackFleets, $defense); $totaltime = microtime(true) - $start; $QryUpdateGalaxy = "UPDATE {{table}} SET "; $QryUpdateGalaxy .= "`metal` = `metal` +'" . ($result['debree']['att'][0] + $result['debree']['def'][0]) . "', "; $QryUpdateGalaxy .= "`crystal` = `crystal` + '" . ($result['debree']['att'][1] + $result['debree']['def'][1]) . "' "; $QryUpdateGalaxy .= "WHERE "; $QryUpdateGalaxy .= "`galaxy` = '" . intval($FleetRow['fleet_end_galaxy']) . "' AND "; $QryUpdateGalaxy .= "`system` = '" . intval($FleetRow['fleet_end_system']) . "' AND "; $QryUpdateGalaxy .= "`planet` = '" . intval($FleetRow['fleet_end_planet']) . "' "; $QryUpdateGalaxy .= "LIMIT 1;"; doquery($QryUpdateGalaxy, 'galaxy'); $totalDebree = $result['debree']['def'][0] + $result['debree']['def'][1] + $result['debree']['att'][0] + $result['debree']['att'][1]; $steal = array('metal' => 0, 'crystal' => 0, 'deuterium' => 0); if ($result['won'] == "a") { $steal = self::calculateAKSSteal($attackFleets, $targetPlanet); } foreach ($attackFleets as $fleetID => $attacker) { $fleetArray = ''; $totalCount = 0; foreach ($attacker['detail'] as $element => $amount) { if ($amount) { $fleetArray .= $element . ',' . $amount . ';'; } $totalCount += $amount; } if ($totalCount <= 0) { doquery('DELETE FROM {{table}} WHERE `fleet_id`=' . intval($fleetID), 'fleets'); } else { doquery('UPDATE {{table}} SET fleet_array="' . substr($fleetArray, 0, -1) . '", fleet_amount=' . $totalCount . ', fleet_mess=1 WHERE fleet_id=' . intval($fleetID), 'fleets'); } } foreach ($defense as $fleetID => $defender) { if ($fleetID != 0) { $fleetArray = ''; $totalCount = 0; foreach ($defender['def'] as $element => $amount) { if ($amount) { $fleetArray .= $element . ',' . $amount . ';'; } $totalCount += $amount; } if ($totalCount <= 0) { doquery('DELETE FROM {{table}} WHERE `fleet_id`=' . intval($fleetID), 'fleets'); } else { doquery('UPDATE {{table}} SET fleet_array="' . $fleetArray . '", fleet_amount=' . $totalCount . ', fleet_mess=1 WHERE fleet_id=' . $fleetID, 'fleets'); } } else { $fleetArray = ''; $totalCount = 0; foreach ($defender['def'] as $element => $amount) { $fleetArray .= '`' . $resource[$element] . '`=' . $amount . ', '; } $QryUpdateTarget = "UPDATE {{table}} SET "; $QryUpdateTarget .= $fleetArray; $QryUpdateTarget .= "`metal` = `metal` - '" . $steal['metal'] . "', "; $QryUpdateTarget .= "`crystal` = `crystal` - '" . $steal['crystal'] . "', "; $QryUpdateTarget .= "`deuterium` = `deuterium` - '" . $steal['deuterium'] . "' "; $QryUpdateTarget .= "WHERE "; $QryUpdateTarget .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND "; $QryUpdateTarget .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND "; $QryUpdateTarget .= "`planet` = '" . $FleetRow['fleet_end_planet'] . "' AND "; $QryUpdateTarget .= "`planet_type` = '" . $FleetRow['fleet_end_type'] . "' "; $QryUpdateTarget .= "LIMIT 1;"; doquery($QryUpdateTarget, 'planets'); } } $FleetDebris = $result['debree']['att'][0] + $result['debree']['def'][0] + $result['debree']['att'][1] + $result['debree']['def'][1]; $StrAttackerUnits = sprintf($lang['sys_attacker_lostunits'], $result['lost']['att']); $StrDefenderUnits = sprintf($lang['sys_defender_lostunits'], $result['lost']['def']); $StrRuins = sprintf($lang['sys_gcdrunits'], $result['debree']['def'][0] + $result['debree']['att'][0], $lang['Metal'], $result['debree']['def'][1] + $result['debree']['att'][1], $lang['Crystal']); $DebrisField = $StrAttackerUnits . "<br />" . $StrDefenderUnits . "<br />" . $StrRuins; $MoonChance = $FleetDebris / 100000; // 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']; $strtruemmermetal = $result['debree']['def'][0] + $result['debree']['att'][0]; $strtruemmercrystal = $result['debree']['def'][1] + $result['debree']['att'][1]; $strtruemmerfeld = $strtruemmermetal + $strtruemmercrystal; // mod TOP KB if ($FleetDebris > 2000000) { $MoonChance = 20; $UserChance = mt_rand(1, 100); $ChanceMoon = sprintf($lang['sys_moonproba'], $MoonChance); } elseif ($FleetDebris < 100000) { $UserChance = 0; $ChanceMoon = sprintf($lang['sys_moonproba'], $MoonChance); } elseif ($FleetDebris >= 100000) { $UserChance = mt_rand(1, 100); $ChanceMoon = sprintf($lang['sys_moonproba'], $MoonChance); } if ($UserChance > 0 && $UserChance <= $MoonChance && $targetGalaxy['id_luna'] == 0) { $TargetPlanetName = CreateOneMoonRecord($FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet'], $TargetUserID, $FleetRow['fleet_start_time'], '', $MoonChance); $GottenMoon = sprintf($lang['sys_moonbuilt'], $TargetPlanetName, $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet']); $GottenMoon .= "<br />"; } elseif ($UserChance = 0 or $UserChance > $MoonChance) { $GottenMoon = ""; } $formatted_cr = formatCR($result, $steal, $MoonChance, $GottenMoon, $totaltime); $raport = $formatted_cr['html']; $rid = md5($raport); $QryInsertRapport = 'INSERT INTO {{table}} SET '; $QryInsertRapport .= '`time` = UNIX_TIMESTAMP(), '; foreach ($attackFleets as $fleetID => $attacker) { $users2[$attacker['user']['id']] = $attacker['user']['id']; } foreach ($defense as $fleetID => $defender) { $users2[$defender['user']['id']] = $defender['user']['id']; } $QryInsertRapport .= '`owners` = "' . implode(',', $users2) . '", '; $QryInsertRapport .= '`rid` = "' . $rid . '", '; $QryInsertRapport .= '`a_zestrzelona` = "' . $formatted_cr['destroyed'] . '", '; $QryInsertRapport .= '`raport` = "' . mysql_escape_string($raport) . '"'; doquery($QryInsertRapport, 'rw') or die("Error inserting CR to database" . mysql_error() . "<br /><br />Trying to execute:" . mysql_query()); // mod TOP KB if ($result['won'] == "a") { $blubb = a; } if ($result['won'] == "w") { $blubb = w; } if ($result['won'] == "r") { $blubb = r; } $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` = '" . $TargetUserID . "', "; $QryInserttopkb .= "`defender` = '" . $defender['user']['username'] . "', "; $QryInserttopkb .= "`gesamtunits` = '" . $strunitsgesamt . "', "; $QryInserttopkb .= "`gesamttruemmer` = '" . $strtruemmerfeld . "', "; $QryInserttopkb .= "`rid` = '" . $rid . "', "; $QryInserttopkb .= "`a_zestrzelona` = '" . $formatted_cr['destroyed'] . "', "; $QryInserttopkb .= "`raport` = '" . addslashes($raport) . "',"; $QryInserttopkb .= "`fleetresult` = '" . $blubb . "';"; doquery("LOCK TABLE {{table}} WRITE", 'topkb'); doquery($QryInserttopkb, 'topkb'); doquery("UNLOCK TABLES", ''); $user1stat = $FleetRow['fleet_owner']; $user2stat = $TargetUserID; // mod TOP KB if ($result['won'] == "a") { $style = "green"; } elseif ($result['won'] == "w") { $style = "orange"; } elseif ($result['won'] == "r") { $style = "red"; } $raport = "<a href=\"#\" style=\"color:" . $style . ";\" OnClick=\\'f(\"CombatReport.php?raport=" . $rid . "\", \"\");\\' >" . $lang['sys_mess_attack_report'] . " [" . $FleetRow['fleet_end_galaxy'] . ":" . $FleetRow['fleet_end_system'] . ":" . $FleetRow['fleet_end_planet'] . "]</a>"; SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $raport, ''); if ($result['won'] == "a") { $style = "red"; } elseif ($result['won'] == "w") { $style = "orange"; } elseif ($result['won'] == "r") { $style = "green"; } $raport2 = "<a href=\"#\" style=\"color:" . $style . ";\" OnClick=\\'f(\"CombatReport.php?raport=" . $rid . "\", \"\");\\' >" . $lang['sys_mess_attack_report'] . " [" . $FleetRow['fleet_end_galaxy'] . ":" . $FleetRow['fleet_end_system'] . ":" . $FleetRow['fleet_end_planet'] . "]</a>"; foreach ($users2 as $id) { if ($id != $FleetRow['fleet_owner'] && $id != 0) { SendSimpleMessage($id, '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $raport2, ''); } } } elseif ($FleetRow['fleet_end_time'] <= time()) { $Message = sprintf($lang['sys_fleet_won'], $TargetName, GetTargetAdressLink($FleetRow, ''), pretty_number($FleetRow['fleet_resource_metal']), $lang['Metal'], pretty_number($FleetRow['fleet_resource_crystal']), $lang['Crystal'], pretty_number($FleetRow['fleet_resource_deuterium']), $lang['Deuterium']); SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_end_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_fleetback'], $Message); $this->RestoreFleetToPlanet($FleetRow); doquery('DELETE FROM {{table}} WHERE `fleet_id`=' . intval($FleetRow['fleet_id']), 'fleets'); } }
/** * 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 flt_mission_attack($mission_data) { global $lang, $sn_data, $time_now; $fleet_row = $mission_data['fleet']; $destination_user = $mission_data['dst_user']; $destination_planet = $mission_data['dst_planet']; if (!$fleet_row) { return; } if (!$destination_user || !$destination_planet || !is_array($destination_user) || !is_array($destination_planet)) { doquery("UPDATE {{fleets}} SET `fleet_mess` = 1 WHERE `fleet_id` = {$fleet_row['fleet_id']} LIMIT 1;"); return; } $TargetUserID = $destination_planet['id_owner']; $attackFleets = array(); // ACS function: put all fleet into an array if ($fleet_row['fleet_group'] != 0) { $fleets = doquery('SELECT * FROM {{fleets}} WHERE fleet_group=' . $fleet_row['fleet_group']); while ($fleet = mysql_fetch_assoc($fleets)) { BE_attackFleetFill(&$attackFleets, $fleet); } } else { BE_attackFleetFill(&$attackFleets, $fleet_row); } $db_admiral_name = $sn_data[MRC_ADMIRAL]['name']; $defenseFleets = array(0 => array('def' => array(), 'user' => array('id' => $destination_user['id'], 'username' => $destination_user['username'], $db_admiral_name => $destination_user[$db_admiral_name], 'defence_tech' => $destination_user['defence_tech'], 'shield_tech' => $destination_user['shield_tech'], 'military_tech' => $destination_user['military_tech']))); foreach ($sn_data['groups']['combat'] as $combatUnitID) { if ($destination_planet[$sn_data[$combatUnitID]['name']] > 0) { $defenseFleets[0]['def'][$combatUnitID] = $destination_planet[$sn_data[$combatUnitID]['name']]; } } $fleets = doquery('SELECT * FROM {{fleets}} WHERE `fleet_end_galaxy` = ' . $fleet_row['fleet_end_galaxy'] . ' AND `fleet_end_system` = ' . $fleet_row['fleet_end_system'] . ' AND `fleet_end_planet` = ' . $fleet_row['fleet_end_planet'] . ' AND `fleet_end_type` = ' . $fleet_row['fleet_end_type'] . ' AND fleet_start_time<' . $time_now . ' AND fleet_end_stay>=' . $time_now); while ($fleet = mysql_fetch_assoc($fleets)) { BE_attackFleetFill(&$defenseFleets, $fleet, 'def'); } $start = microtime(true); $result = coe_attack_calculate($attackFleets, $defenseFleets); $totaltime = microtime(true) - $start; // Update galaxy (debree) if ($destination_user['authlevel'] == 0) { doquery('UPDATE {{planets}} SET `debris_metal` = `debris_metal` + ' . ($result['debree']['att'][0] + $result['debree']['def'][0]) . ' , debris_crystal = debris_crystal+' . ($result['debree']['att'][1] + $result['debree']['def'][1]) . ' WHERE `galaxy` = ' . $fleet_row['fleet_end_galaxy'] . ' AND `system` = ' . $fleet_row['fleet_end_system'] . ' AND `planet` = ' . $fleet_row['fleet_end_planet'] . ' AND `planet_type` = 1 LIMIT 1;'); } // !G+ post-calculation for Attackers: fleet left and possible loot $loot = BE_calculatePostAttacker($destination_planet, $attackFleets, $result, false); if ($result['won'] == 2 && count($result['rw']) == 2) { $one_round_loss = true; } else { $one_round_loss = false; } // Update fleets & planets foreach ($attackFleets as $fleetID => $attacker) { if ($attacker['totalCount'] > 0) { $sqlQuery = 'UPDATE {{fleets}} SET '; if ($result['won'] == 1) { $sqlQuery .= '`fleet_resource_metal` = `fleet_resource_metal` + ' . ($attacker['loot']['metal'] + 0) . ', '; $sqlQuery .= '`fleet_resource_crystal` = `fleet_resource_crystal` + ' . ($attacker['loot']['crystal'] + 0) . ', '; $sqlQuery .= '`fleet_resource_deuterium` = `fleet_resource_deuterium` + ' . ($attacker['loot']['deuterium'] + 0) . ', '; } $sqlQuery .= '`fleet_array` = "' . substr($attacker['fleetArray'], 0, -1) . '", '; $sqlQuery .= '`fleet_amount` = ' . $attacker['totalCount'] . ', `fleet_mess` = 1 WHERE `fleet_id` = ' . $fleetID; doquery($sqlQuery); } } if ($fleet_row['fleet_mission'] == MT_AKS && $fleet_row['fleet_group']) { doquery("DELETE FROM {{aks}} WHERE id={$fleet_row['fleet_group']} LIMIT 1;"); doquery("UPDATE {{fleets}} SET fleet_group = 0 WHERE fleet_group = {$fleet_row['fleet_group']} AND fleet_mission = " . MT_AKS . ";"); } foreach ($defenseFleets as $fleetID => $defender) { $fleetArray = ''; $totalCount = 0; if ($fleetID == 0) { foreach ($defender['def'] as $element => $amount) { $fleetArray .= "`{$sn_data[$element]['name']}` = '{$amount}', "; } doquery('UPDATE {{planets}} SET ' . $fleetArray . ' metal = metal - ' . $loot['looted']['metal'] . ', crystal = crystal - ' . $loot['looted']['crystal'] . ', deuterium=deuterium-' . $loot['looted']['deuterium'] . ' WHERE id=' . $destination_planet['id']); } else { foreach ($defender['def'] as $element => $amount) { if ($amount) { $fleetArray .= $element . ',' . $amount . ';'; } $totalCount += $amount; } if ($totalCount <= 0) { doquery("DELETE FROM `{{fleets}}` WHERE `fleet_id` = '{$fleetID}'"); } else { doquery("UPDATE {{fleets}} SET fleet_array = '{$fleetArray}', fleet_amount = {$totalCount}" . ($one_round_loss ? '' : ', fleet_mess = 1') . " WHERE fleet_id = {$fleetID} LIMIT 1;"); } } } // TvdW (c) 2008 $planet_coordinates = uni_render_coordinates($fleet_row, 'fleet_end_'); // FROM HERE THE SCRIPT WAS IMPORTED (not TvdW code anymore) $MoonChance = BE_calculateMoonChance($result); if (mt_rand(1, 100) <= $MoonChance && ($TargetPlanetName = uni_create_moon($fleet_row['fleet_end_galaxy'], $fleet_row['fleet_end_system'], $fleet_row['fleet_end_planet'], $TargetUserID, $MoonChance))) { $GottenMoon = sprintf($lang['sys_moonbuilt'], $TargetPlanetName, $planet_coordinates); } // Adjust number of raids made/win/loose and xpraid $str_loose_or_win = $result['won'] == 1 ? 'raidswin' : 'raidsloose'; doquery("UPDATE {{users}} SET `xpraid` = `xpraid` + 1, `raids` = `raids` + 1, `{$str_loose_or_win}` = `{$str_loose_or_win}` + 1 WHERE id = '{$fleet_row['fleet_owner']}' LIMIT 1;"); $bashing_list = array(); foreach ($defenseFleets as $fleetID => $defender) { $users2[$defender['user']['id']] = $users_defender[$defender['user']['id']] = $defender['user']['id']; } foreach ($attackFleets as $fleetID => $attacker) { $users2[$attacker['user']['id']] = $users_attacker[$attacker['user']['id']] = $attacker['user']['id']; // Generating attackers list for bashing table $bashing_list[$attacker['user']['id']] = "({$attacker['user']['id']}, {$destination_planet['id']}, {$fleet_row['fleet_end_time']})"; } $bashing_list = implode(',', $bashing_list); doquery("INSERT INTO {{bashing}} (bashing_user_id, bashing_planet_id, bashing_time) VALUES {$bashing_list};"); //MadnessRed CR Creation. $raport = formatCR($result, $loot['looted'], $MoonChance, $GottenMoon, $totaltime); $raport = $raport['html']; $rid = md5($raport); $QryInsertRapport = 'INSERT INTO `{{rw}}` SET '; $QryInsertRapport .= '`time` = UNIX_TIMESTAMP(), '; $QryInsertRapport .= '`owners` = "' . implode(',', $users2) . '", '; $QryInsertRapport .= '`id_owner1` = "' . $attacker['user']['id'] . '", '; $QryInsertRapport .= '`id_owner2` = "' . $defender['user']['id'] . '", '; $QryInsertRapport .= '`rid` = "' . $rid . '", '; $QryInsertRapport .= '`raport` = "' . mysql_real_escape_string($raport) . '"'; doquery($QryInsertRapport) or die("Error inserting CR to database" . mysql_error() . "<br /><br />Trying to execute:" . mysql_query()); switch ($result['won']) { case 0: $color_attackers = $color_defenders = 'orange'; break; case 1: $color_attackers = 'green'; $color_defenders = 'red'; break; case 2: $color_attackers = 'red'; $color_defenders = 'green'; break; } $raport_part1 = '<span OnClick=\'f("rw.php?raport=' . $rid . '", "");\' ><center><font color='; $raport_part2 = ">{$lang['sys_mess_attack_report']} {$planet_coordinates}</font></span><br /><br />" . "<font color=\"red\">{$lang['sys_perte_attaquant']}: " . pretty_number($result['lost']['att'], true) . "</font> <font color=\"green\">{$lang['sys_perte_defenseur']}: " . pretty_number($result['lost']['def'], true) . "</font><br />" . "{$lang['sys_debris']} {$lang['Metal']} <font color=\"#adaead\">" . pretty_number($result['debree']['att'][0] + $result['debree']['def'][0], true) . "</font> {$lang['Crystal']} <font color=\"#ef51ef\">" . pretty_number($result['debree']['att'][1] + $result['debree']['def'][1], true) . '</font><br />' . ($result['won'] == 1 ? "{$lang['sys_gain']} " . "{$lang['Metal']} <font color=\"#adaead\">" . pretty_number($loot['looted']['metal'], true) . '</font> ' . "{$lang['Crystal']} <font color=\"#ef51ef\">" . pretty_number($loot['looted']['crystal'], true) . '</font> ' . "{$lang['Deuterium']} <font color=\"#f77542\">" . pretty_number($loot['looted']['deuterium'], true) . '</font><br />' : '') . "{$st_1}{$st_2}</center>"; $raport_acs = $one_round_loss ? "<center><span class=\"negative\">{$lang['sys_mess_attack_report']} {$planet_coordinates}\r\n{$lang['sys_coe_lost_contact']}</span></center>" : "{$raport_part1}{$color_attackers}{$raport_part2}"; foreach ($users_attacker as $id) { // if ($id != $fleet_row['fleet_owner'] && $id != 0) if ($id) { msg_send_simple_message($id, '', $fleet_row['fleet_start_time'], MSG_TYPE_COMBAT, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport_acs); } } $raport_hold = "{$raport_part1}{$color_defenders}{$raport_part2}"; foreach ($users_defender as $id) { if ($id && $id != $fleet_row['fleet_owner']) { msg_send_simple_message($id, '', $fleet_row['fleet_start_time'], MSG_TYPE_COMBAT, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport_hold); } } return $result; }
private function MissionCaseDestruction($FleetRow) { global $user, $phpEx, $pricelist, $lang, $resource, $CombatCaps; includeLang('INGAME'); 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); $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'); 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; $steal = array('metal' => 0, 'crystal' => 0, 'deuterium' => 0); switch ($result['won']) { case "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'); $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'); $destructionl2 = (100 - sqrt($targetPlanet['diameter'])) * sqrt($attackFleets[$FleetRow['fleet_id']]['detail'][214]); // Formel für min. Anzahl an Todessternen. Hat jmd. ne gute Formel? :D // $mints = (pow((1 / (1-sqrt($targetPlanet['diameter']) / 100)),2))*10; // $destructionl2 = max($destructionl1,$mints); if ($destructionl2 > 100) { $chance = '100'; } elseif ($destructionl2 < 0) { $chance = '0'; } $tirage = mt_rand(0, 100); if ($tirage <= $chance) { 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 ;"; 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 ;"; doquery($Qrydestructionlune2, 'galaxy'); $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_destruc_mess1']; $destext .= $lang['sys_destruc_reussi']; $destructionrip = sqrt($TargetPlanet['diameter']) / 2; $chance2 = round($destructionrip); $tirage2 = mt_rand(0, 100); $probarip = sprintf($lang['sys_destruc_rip'], $chance2); if ($tirage2 <= $chance2) { $destext .= $lang['sys_destruc_echec']; doquery("DELETE FROM {{table}} WHERE `fleet_id` = '" . $FleetRow["fleet_id"] . "';", 'fleets'); } } else { $destructionrip = sqrt($TargetPlanet['diameter']) / 2; $chance2 = round($destructionrip); $tirage2 = mt_rand(0, 100); $probarip = sprintf($lang['sys_destruc_rip'], $chance2); $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']; $destext .= sprintf($lang['sys_destruc_lune'], $chance) . "<br>"; if ($tirage2 <= $chance2) { $destext .= $lang['sys_destruc_echec']; doquery("DELETE FROM {{table}} WHERE `fleet_id` = '" . $FleetRow["fleet_id"] . "';", 'fleets'); } else { $destext .= $lang['sys_destruc_stop']; } } 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; } $QryUpdateTarget = "UPDATE {{table}} SET "; $QryUpdateTarget .= $TargetPlanetUpd; $QryUpdateTarget .= "`metal` = `metal` - '" . $steal['metal'] . "', "; $QryUpdateTarget .= "`crystal` = `crystal` - '" . $steal['crystal'] . "', "; $QryUpdateTarget .= "`deuterium` = `deuterium` - '" . $steal['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'); $MoonChance = 0; $GottenMoon = ""; $formatted_cr = formatCR($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()); $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_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]) . "</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); $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_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); } elseif ($FleetRow['fleet_end_time'] <= time()) { $fquery = ""; $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'); } }
$replay .= eco_sym_encode_replay($sym_attacker, 'A'); $arr_combat_defender = eco_sym_to_combat($sym_defender, 'def'); $arr_combat_attacker = eco_sym_to_combat($sym_attacker, 'detail'); // Lets calcualte attack... //pdump($sym_defender); //pdump($arr_combat_attacker, '$arr_combat_attacker'); //pdump($arr_combat_defender, '$arr_combat_defender'); $start = microtime(true); $result = coe_attack_calculate($arr_combat_attacker, $arr_combat_defender, true); $totaltime = microtime(true) - $start; //pdump($result); // calculating loot per attacking fleet $loot = BE_calculatePostAttacker($arr_combat_defender[0]['resources'], $arr_combat_attacker, $result, true); // Calculating Moon Chance $MoonChance = BE_calculateMoonChance($result); $formatted_cr = formatCR($result, $loot['looted'], $MoonChance, '', $totaltime); // Well lets just copy rw.php code. If I am showing a cr why re-inent the wheel??? $Page = '<html>'; $Page .= '<head>'; $Page .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"{$dpath}/formate.css\">"; $Page .= '<meta http-equiv="content-type" content="text/html; charset=windows-1251" />'; $Page .= '</head>'; $Page .= '<body>'; $Page .= '<center>'; //OK, one change, we won't be getting cr from datbase, instead we will be generating it directly, lets skip the database stage, this is what get generated and put in the database. $report = stripslashes($formatted_cr['html']); foreach ($lang['tech'] as $id => $s_name) { $str_replace1 = array("[ship[{$id}]]"); $str_replace2 = array($s_name); $report = str_replace($str_replace1, $str_replace2, $report); }
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'); } }