Example #1
0
/**
 * MissionCaseStayAlly @todo description
 *
 * @global array $lang @see common.php
 * @param array $fleetRow @see common.php
 * @return bool true.
 */
function missionCaseStayAlly($fleetRow)
{
    global $lang;
    $readConnection = Nova::getSingleton('core/database_connection_pool')->getConnection('core_read');
    $startPlanet = $readConnection->select(array('name', 'id_owner'))->from($readConnection->getDeprecatedTable('planets'))->where('galaxy =?', $fleetRow['fleet_start_galaxy'])->where('system =?', $fleetRow['fleet_start_system'])->where('planet =?', $fleetRow['fleet_start_planet'])->query()->fetch();
    $endPlanet = $readConnection->select(array('name', 'id_owner'))->from($readConnection->getDeprecatedTable('planets'))->where('galaxy =?', $fleetRow['fleet_end_galaxy'])->where('system =?', $fleetRow['fleet_end_system'])->where('planet =?', $fleetRow['fleet_end_planet'])->query()->fetch();
    $fleetStartLink = GetStartAdressLink($fleetRow, '');
    $fleetEndLink = GetTargetAdressLink($fleetRow, '');
    if ($fleetRow['fleet_mess'] == 0) {
        if ($fleetRow['fleet_end_stay'] <= time()) {
            $readConnection->update($readConnection->getDeprecatedTable('fleets'), array('fleet_mess' => 1), array('fleet_id =?' => $fleetRow['fleet_id']));
        } else {
            if ($fleetRow['fleet_start_time'] <= time()) {
                $message = sprintf($lang['sys_tran_mess_owner'], $endPlanet['name'], $fleetEndLink, $fleetRow['fleet_resource_metal'], $lang['Metal'], $fleetRow['fleet_resource_crystal'], $lang['Crystal'], $fleetRow['fleet_resource_deuterium'], $lang['Deuterium']);
                SendSimpleMessage($startPlanet['id_owner'], '', $fleetRow['fleet_start_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_transport'], $message);
                $message = sprintf($lang['sys_tran_mess_user'], $startPlanet['name'], $fleetStartLink, $endPlanet['name'], $fleetEndLink, $fleetRow['fleet_resource_metal'], $lang['Metal'], $fleetRow['fleet_resource_crystal'], $lang['Crystal'], $fleetRow['fleet_resource_deuterium'], $lang['Deuterium']);
                SendSimpleMessage($endPlanet['id_owner'], '', $fleetRow['fleet_start_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_transport'], $message);
            }
        }
    } else {
        if ($fleetRow['fleet_end_time'] <= time()) {
            $message = sprintf($lang['sys_tran_mess_back'], $startPlanet['name'], $fleetStartLink);
            SendSimpleMessage($startPlanet['id_owner'], '', $fleetRow['fleet_end_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_fleetback'], $message);
            RestoreFleetToPlanet($fleetRow, true);
            $readConnection->delete($readConnection->getDeprecatedTable('fleets'), array('fleet_id =?' => $fleetRow['fleet_id']));
        }
    }
    return true;
}
Example #2
0
 function ReturnEvent()
 {
     $LNG = $this->GetUserLang($this->_fleet['fleet_owner']);
     $Message = sprintf($LNG['sys_fleet_won'], $TargetName, GetTargetAdressLink($this->_fleet, ''), pretty_number($this->_fleet['fleet_resource_metal']), $LNG['Metal'], pretty_number($this->_fleet['fleet_resource_crystal']), $LNG['Crystal'], pretty_number($this->_fleet['fleet_resource_deuterium']), $LNG['Deuterium']);
     SendSimpleMessage($this->_fleet['fleet_owner'], '', $this->_fleet['fleet_end_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_fleetback'], $Message);
     $this->RestoreFleet();
 }
Example #3
0
 function ReturnEvent()
 {
     $LNG = $this->getLanguage(NULL, $this->_fleet['fleet_owner']);
     $TargetName = $GLOBALS['DATABASE']->getFirstCell("SELECT name FROM " . PLANETS . " WHERE id = " . $this->_fleet['fleet_start_id'] . ";");
     $Message = sprintf($LNG['sys_fleet_won'], $TargetName, GetTargetAdressLink($this->_fleet, ''), pretty_number($this->_fleet['fleet_resource_metal']), $LNG['tech'][901], pretty_number($this->_fleet['fleet_resource_crystal']), $LNG['tech'][902], pretty_number($this->_fleet['fleet_resource_deuterium']), $LNG['tech'][903], pretty_number($this->_fleet['fleet_resource_elyrium']), $LNG['tech'][904]);
     SendSimpleMessage($this->_fleet['fleet_owner'], 0, $this->_fleet['fleet_end_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_fleetback'], $Message);
     $this->RestoreFleet();
 }
Example #4
0
 function TargetEvent()
 {
     $LNG = $this->GetUserLang($this->_fleet['fleet_owner']);
     $TargetUserID = $this->_fleet['fleet_target_owner'];
     $TargetMessage = sprintf($LNG['sys_stat_mess'], GetTargetAdressLink($this->_fleet, ''), pretty_number($this->_fleet['fleet_resource_metal']), $LNG['Metal'], pretty_number($this->_fleet['fleet_resource_crystal']), $LNG['Crystal'], pretty_number($this->_fleet['fleet_resource_deuterium']), $LNG['Deuterium']);
     SendSimpleMessage($TargetUserID, '', $this->_fleet['fleet_start_time'], 5, $LNG['sys_mess_tower'], $LNG['sys_stat_mess_stay'], $TargetMessage);
     $this->RestoreFleet(false);
 }
 function ReturnEvent()
 {
     $LNG = $this->getLanguage(NULL, $this->_fleet['fleet_owner']);
     $sql = 'SELECT name FROM %%PLANETS%% WHERE id = :planetId;';
     $planetName = Database::get()->selectSingle($sql, array(':planetId' => $this->_fleet['fleet_start_id']), 'name');
     $Message = sprintf($LNG['sys_fleet_won'], $planetName, GetTargetAdressLink($this->_fleet, ''), pretty_number($this->_fleet['fleet_resource_metal']), $LNG['tech'][901], pretty_number($this->_fleet['fleet_resource_crystal']), $LNG['tech'][902], pretty_number($this->_fleet['fleet_resource_deuterium']), $LNG['tech'][903]);
     PlayerUtil::sendMessage($this->_fleet['fleet_owner'], 0, $LNG['sys_mess_tower'], 4, $LNG['sys_mess_fleetback'], $Message, $this->_fleet['fleet_end_time'], NULL, 1, $this->_fleet['fleet_universe']);
     $this->RestoreFleet();
 }
 function TargetEvent()
 {
     global $resource;
     $iPlanetCount = $GLOBALS['DATABASE']->getFirstCell("SELECT COUNT(*) FROM " . PLANETS . " WHERE `id_owner` = '" . $this->_fleet['fleet_owner'] . "' AND `planet_type` = '1' AND `destruyed` = '0';");
     $iGalaxyPlace = $GLOBALS['DATABASE']->getFirstCell("SELECT COUNT(*) FROM " . PLANETS . " WHERE `id` = '" . $this->_fleet['fleet_end_id'] . "';");
     $senderUser = $GLOBALS['DATABASE']->getFirstRow("SELECT * FROM " . USERS . " WHERE `id` = '" . $this->_fleet['fleet_owner'] . "';");
     $senderPlanet = $GLOBALS['DATABASE']->getFirstRow("SELECT * FROM " . PLANETS . " WHERE `id` = '" . $this->_fleet['fleet_start_id'] . "';");
     $senderUser['factor'] = getFactors($senderUser, 'basic', $this->_fleet['fleet_start_time']);
     $LNG = $this->getLanguage($senderUser['lang']);
     $MaxPlanets = PlayerUtil::maxPlanetCount($senderUser);
     if ($iGalaxyPlace != 0) {
         $TheMessage = sprintf($LNG['sys_colo_notfree'], GetTargetAdressLink($this->_fleet, ''));
         $this->setState(FLEET_RETURN);
     } elseif ($iPlanetCount >= $MaxPlanets) {
         $TheMessage = sprintf($LNG['sys_colo_maxcolo'], GetTargetAdressLink($this->_fleet, ''), $MaxPlanets);
         $this->setState(FLEET_RETURN);
     } elseif (PlayerUtil::allowPlanetPosition($this->_fleet['fleet_end_planet'], $senderUser) == false) {
         $TheMessage = sprintf($LNG['sys_colo_notech'], GetTargetAdressLink($this->_fleet, ''), $MaxPlanets);
         $this->setState(FLEET_RETURN);
     } else {
         require_once 'includes/functions/CreateOnePlanetRecord.php';
         $NewOwnerPlanet = CreateOnePlanetRecord($this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet'], $this->_fleet['fleet_universe'], $this->_fleet['fleet_owner'], $LNG['fcp_colony'], false, $senderUser['authlevel']);
         if ($NewOwnerPlanet === false) {
             $TheMessage = sprintf($LNG['sys_colo_badpos'], GetTargetAdressLink($this->_fleet, ''));
             $this->setState(FLEET_RETURN);
         } else {
             $this->_fleet['fleet_end_id'] = $NewOwnerPlanet;
             $TheMessage = sprintf($LNG['sys_colo_allisok'], GetTargetAdressLink($this->_fleet, ''));
             $this->StoreGoodsToPlanet();
             if ($this->_fleet['fleet_amount'] == 1) {
                 $this->KillFleet();
             } else {
                 $CurrentFleet = explode(";", $this->_fleet['fleet_array']);
                 $NewFleet = '';
                 foreach ($CurrentFleet as $Item => $Group) {
                     if (empty($Group)) {
                         continue;
                     }
                     $Class = explode(",", $Group);
                     if ($Class[0] == 208 && $Class[1] > 1) {
                         $NewFleet .= $Class[0] . "," . ($Class[1] - 1) . ";";
                     } elseif ($Class[0] != 208 && $Class[1] > 0) {
                         $NewFleet .= $Class[0] . "," . $Class[1] . ";";
                     }
                 }
                 $this->UpdateFleet('fleet_array', $NewFleet);
                 $this->UpdateFleet('fleet_amount', $this->_fleet['fleet_amount'] - 1);
                 $this->UpdateFleet('fleet_resource_metal', 0);
                 $this->UpdateFleet('fleet_resource_crystal', 0);
                 $this->UpdateFleet('fleet_resource_deuterium', 0);
                 $this->setState(FLEET_RETURN);
             }
         }
     }
     SendSimpleMessage($this->_fleet['fleet_owner'], 0, $this->_fleet['fleet_start_time'], 4, $LNG['sys_colo_mess_from'], $LNG['sys_colo_mess_report'], $TheMessage);
     $this->SaveFleet();
 }
Example #7
0
/**
 * MissionCaseTransport.php
 *
 * @version 1
 * @copyright 2008 By Chlorel for XNova
 */
function MissionCaseTransport($FleetRow)
{
    global $lang;
    $QryStartPlanet = "SELECT * FROM {{table}} ";
    $QryStartPlanet .= "WHERE ";
    $QryStartPlanet .= "`galaxy` = '" . $FleetRow['fleet_start_galaxy'] . "' AND ";
    $QryStartPlanet .= "`system` = '" . $FleetRow['fleet_start_system'] . "' AND ";
    $QryStartPlanet .= "`planet` = '" . $FleetRow['fleet_start_planet'] . "' AND ";
    $QryStartPlanet .= "`planet_type` = '" . $FleetRow['fleet_start_type'] . "';";
    $StartPlanet = doquery($QryStartPlanet, 'planets', true);
    $StartName = $StartPlanet['name'];
    $StartOwner = $StartPlanet['id_owner'];
    $QryTargetPlanet = "SELECT * FROM {{table}} ";
    $QryTargetPlanet .= "WHERE ";
    $QryTargetPlanet .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
    $QryTargetPlanet .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
    $QryTargetPlanet .= "`planet` = '" . $FleetRow['fleet_end_planet'] . "' AND ";
    $QryTargetPlanet .= "`planet_type` = '" . $FleetRow['fleet_end_type'] . "';";
    $TargetPlanet = doquery($QryTargetPlanet, 'planets', true);
    $TargetName = $TargetPlanet['name'];
    $TargetOwner = $TargetPlanet['id_owner'];
    if ($FleetRow['fleet_mess'] == 0) {
        if ($FleetRow['fleet_start_time'] < time()) {
            StoreGoodsToPlanet($FleetRow, false);
            $Message = sprintf($lang['sys_tran_mess_owner'], $TargetName, GetTargetAdressLink($FleetRow, ''), $FleetRow['fleet_resource_metal'], $lang['Metal'], $FleetRow['fleet_resource_crystal'], $lang['Crystal'], $FleetRow['fleet_resource_deuterium'], $lang['Deuterium'], $FleetRow['fleet_resource_appolonium'], $lang['Appolonium']);
            SendSimpleMessage($StartOwner, '', $FleetRow['fleet_start_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_transport'], $Message);
            if ($TargetOwner != $StartOwner) {
                $Message = sprintf($lang['sys_tran_mess_user'], $StartName, GetStartAdressLink($FleetRow, ''), $TargetName, GetTargetAdressLink($FleetRow, ''), $FleetRow['fleet_resource_metal'], $lang['Metal'], $FleetRow['fleet_resource_crystal'], $lang['Crystal'], $FleetRow['fleet_resource_deuterium'], $lang['Deuterium'], $FleetRow['fleet_resource_appolonium'], $lang['Appolonium']);
                SendSimpleMessage($TargetOwner, '', $FleetRow['fleet_start_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_transport'], $Message);
            }
            $QryUpdateFleet = "UPDATE {{table}} SET ";
            $QryUpdateFleet .= "`fleet_resource_metal` = '0' , ";
            $QryUpdateFleet .= "`fleet_resource_crystal` = '0' , ";
            $QryUpdateFleet .= "`fleet_resource_deuterium` = '0' , ";
            $QryUpdateFleet .= "`fleet_resource_appolonium` = '0' , ";
            $QryUpdateFleet .= "`fleet_mess` = '1' ";
            $QryUpdateFleet .= "WHERE `fleet_id` = '" . $FleetRow['fleet_id'] . "' ";
            $QryUpdateFleet .= "LIMIT 1 ;";
            doquery($QryUpdateFleet, 'fleets');
        }
    } else {
        if ($FleetRow['fleet_end_time'] < time()) {
            $Message = sprintf($lang['sys_tran_mess_back'], $StartName, GetStartAdressLink($FleetRow, ''));
            SendSimpleMessage($StartOwner, '', $FleetRow['fleet_end_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_fleetback'], $Message);
            RestoreFleetToPlanet($FleetRow, true);
            //Piratenangriff nach Zufallsprinzip
            $zufall = 0;
            $zufall = rand(1, 10);
            if ($zufall == 7) {
                Piratenangriff($FleetRow);
                $zufall = 0;
            }
            // Ende Piratenangriff
            doquery("DELETE FROM {{table}} WHERE fleet_id=" . $FleetRow["fleet_id"], 'fleets');
        }
    }
}
 function TargetEvent()
 {
     global $db, $resource, $LANG;
     $iPlanetCount = $db->countquery("SELECT count(*) FROM " . PLANETS . " WHERE `id_owner` = '" . $this->_fleet['fleet_owner'] . "' AND `planet_type` = '1' AND `destruyed` = '0';");
     $iGalaxyPlace = $db->countquery("SELECT count(*) AS plani FROM " . PLANETS . " WHERE `id` = '" . $this->_fleet['fleet_end_id'] . "';");
     $Player = $db->uniquequery("SELECT `lang`, `authlevel`, `" . $resource[124] . "` FROM " . USERS . " WHERE `id` = '" . $this->_fleet['fleet_owner'] . "';");
     $LNG = $LANG->GetUserLang($Player['lang']);
     $MaxPlanets = MaxPlanets($Player[$resource[124]]);
     if ($iGalaxyPlace != 0) {
         $TheMessage = sprintf($LNG['sys_colo_notfree'], GetTargetAdressLink($this->_fleet, ''));
         $this->UpdateFleet('fleet_mess', 1);
     } elseif ($iPlanetCount >= $MaxPlanets) {
         $TheMessage = sprintf($LNG['sys_colo_maxcolo'], GetTargetAdressLink($this->_fleet, ''), $MaxPlanets);
         $this->UpdateFleet('fleet_mess', 1);
     } else {
         require_once ROOT_PATH . 'includes/functions/CreateOnePlanetRecord.php';
         $NewOwnerPlanet = CreateOnePlanetRecord($this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet'], $this->_fleet['fleet_universe'], $this->_fleet['fleet_owner'], $LNG['fcp_colony'], false, $Player['authlevel']);
         if ($NewOwnerPlanet === false) {
             $TheMessage = sprintf($LNG['sys_colo_badpos'], GetTargetAdressLink($this->_fleet, ''));
             $this->UpdateFleet('fleet_mess', 1);
         } else {
             $this->_fleet['fleet_end_id'] = $NewOwnerPlanet;
             $TheMessage = sprintf($LNG['sys_colo_allisok'], GetTargetAdressLink($this->_fleet, ''));
             $this->StoreGoodsToPlanet();
             if ($this->_fleet['fleet_amount'] == 1) {
                 $this->KillFleet();
             } else {
                 $CurrentFleet = explode(";", $this->_fleet['fleet_array']);
                 $NewFleet = '';
                 foreach ($CurrentFleet as $Item => $Group) {
                     if (empty($Group)) {
                         continue;
                     }
                     $Class = explode(",", $Group);
                     if ($Class[0] == 208 && $Class[1] > 1) {
                         $NewFleet .= $Class[0] . "," . ($Class[1] - 1) . ";";
                     } elseif ($Class[0] != 208 && $Class[1] > 0) {
                         $NewFleet .= $Class[0] . "," . $Class[1] . ";";
                     }
                 }
                 $this->UpdateFleet('fleet_array', $NewFleet);
                 $this->UpdateFleet('fleet_amount', $this->_fleet['fleet_amount'] - 1);
                 $this->UpdateFleet('fleet_resource_metal', 0);
                 $this->UpdateFleet('fleet_resource_crystal', 0);
                 $this->UpdateFleet('fleet_resource_deuterium', 0);
                 $this->UpdateFleet('fleet_resource_norio', 0);
                 $this->UpdateFleet('fleet_mess', 1);
             }
         }
     }
     SendSimpleMessage($this->_fleet['fleet_owner'], 0, $this->_fleet['fleet_start_time'], 4, $LNG['sys_colo_mess_from'], $LNG['sys_colo_mess_report'], $TheMessage);
     $this->SaveFleet();
 }
Example #9
0
function MissionCaseStayAlly($FleetRow)
{
    global $lang;
    $QryStartPlanet = "SELECT name, id_owner FROM {{table}} ";
    $QryStartPlanet .= "WHERE ";
    $QryStartPlanet .= "`galaxy` = '" . $FleetRow['fleet_start_galaxy'] . "' AND ";
    $QryStartPlanet .= "`system` = '" . $FleetRow['fleet_start_system'] . "' AND ";
    $QryStartPlanet .= "`planet` = '" . $FleetRow['fleet_start_planet'] . "';";
    $StartPlanet = doquery($QryStartPlanet, 'planets', true);
    $StartName = $StartPlanet['name'];
    $StartOwner = $StartPlanet['id_owner'];
    $QryTargetPlanet = "SELECT name, id_owner FROM {{table}} ";
    $QryTargetPlanet .= "WHERE ";
    $QryTargetPlanet .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
    $QryTargetPlanet .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
    $QryTargetPlanet .= "`planet` = '" . $FleetRow['fleet_end_planet'] . "';";
    $TargetPlanet = doquery($QryTargetPlanet, 'planets', true);
    $TargetName = $TargetPlanet['name'];
    $TargetOwner = $TargetPlanet['id_owner'];
    switch ($FleetRow['fleet_mess']) {
        case '0':
            if ($FleetRow['fleet_start_time'] <= time()) {
                $Message = sprintf($lang['sys_tran_mess_owner'], $TargetName, GetTargetAdressLink($FleetRow, ''), $FleetRow['fleet_resource_metal'], $lang['Metal'], $FleetRow['fleet_resource_crystal'], $lang['Crystal'], $FleetRow['fleet_resource_deuterium'], $lang['Deuterium']);
                SendSimpleMessage($StartOwner, '', $FleetRow['fleet_start_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_transport'], $Message);
                $Message = sprintf($lang['sys_tran_mess_user'], $StartName, GetStartAdressLink($FleetRow, ''), $TargetName, GetTargetAdressLink($FleetRow, ''), $FleetRow['fleet_resource_metal'], $lang['Metal'], $FleetRow['fleet_resource_crystal'], $lang['Crystal'], $FleetRow['fleet_resource_deuterium'], $lang['Deuterium']);
                SendSimpleMessage($TargetOwner, '', $FleetRow['fleet_start_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_transport'], $Message);
                $QryUpdateFleet = "UPDATE {{table}} SET ";
                $QryUpdateFleet .= "`fleet_mess` = 1 ";
                $QryUpdateFleet .= "WHERE `fleet_id` = '" . $FleetRow['fleet_id'] . "' ";
                $QryUpdateFleet .= "LIMIT 1 ;";
                doquery($QryUpdateFleet, 'fleets');
            }
            break;
        case '1':
            if ($FleetRow['fleet_end_stay'] <= time()) {
                $QryUpdateFleet = "UPDATE {{table}} SET ";
                $QryUpdateFleet .= "`fleet_mess` = 2 ";
                $QryUpdateFleet .= "WHERE `fleet_id` = '" . $FleetRow['fleet_id'] . "' ";
                $QryUpdateFleet .= "LIMIT 1 ;";
                doquery($QryUpdateFleet, 'fleets');
            }
            break;
        default:
            if ($FleetRow['fleet_end_time'] < time()) {
                $Message = sprintf($lang['sys_tran_mess_back'], $StartName, GetStartAdressLink($FleetRow, ''));
                SendSimpleMessage($StartOwner, '', $FleetRow['fleet_end_time'], 5, $lang['sys_mess_tower'], $lang['sys_mess_fleetback'], $Message);
                RestoreFleetToPlanet($FleetRow, true);
                doquery("DELETE FROM {{table}} WHERE fleet_id=" . $FleetRow["fleet_id"], 'fleets');
            }
            break;
    }
}
 function TargetEvent()
 {
     global $db, $resource;
     $iPlanetCount = $db->uniquequery("SELECT count(*) as kolo FROM " . PLANETS . " WHERE `id_owner` = '" . $this->_fleet['fleet_owner'] . "' AND `planet_type` = '1' AND `destruyed` = '0';");
     $iGalaxyPlace = $db->uniquequery("SELECT count(*) AS plani FROM " . PLANETS . " WHERE `galaxy` = '" . $this->_fleet['fleet_end_galaxy'] . "' AND `system` = '" . $this->_fleet['fleet_end_system'] . "' AND `planet` = '" . $this->_fleet['fleet_end_planet'] . "';");
     $PlayerTech = $db->uniquequery("SELECT `authlevel`, `" . $resource[124] . "` FROM " . USERS . " WHERE `id` = '" . $this->_fleet['fleet_owner'] . "';");
     $LNG = $this->GetUserLang($this->_fleet['fleet_owner']);
     if ($iGalaxyPlace['plani'] != 0) {
         $TheMessage = sprintf($LNG['sys_colo_notfree'], GetTargetAdressLink($this->_fleet, ''));
         $this->UpdateFleet('fleet_mess', 1);
     } elseif ($iPlanetCount['kolo'] >= STANDART_PLAYER_PLANETS + ceil($PlayerTech[$resource[124]] / 2) * PLANETS_PER_TECH) {
         $TheMessage = sprintf($LNG['sys_colo_maxcolo'], GetTargetAdressLink($this->_fleet, ''), STANDART_PLAYER_PLANETS + ceil($PlayerTech[$resource[124]] / 2));
         $this->UpdateFleet('fleet_mess', 1);
     } else {
         require_once ROOT_PATH . 'includes/functions/CreateOnePlanetRecord.' . PHP_EXT;
         $NewOwnerPlanet = CreateOnePlanetRecord($this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet'], $this->_fleet['fleet_owner'], $LNG['fcp_colony'], false, $PlayerTech['authlevel']);
         if ($NewOwnerPlanet !== true) {
             $TheMessage = sprintf($LNG['sys_colo_badpos'], GetTargetAdressLink($this->_fleet, ''));
             $this->UpdateFleet('fleet_mess', 1);
         } else {
             $TheMessage = sprintf($LNG['sys_colo_allisok'], GetTargetAdressLink($this->_fleet, ''));
             $this->StoreGoodsToPlanet();
             if ($this->_fleet['fleet_amount'] == 1) {
                 $db->query("DELETE FROM " . FLEETS . " WHERE fleet_id=" . $this->_fleet["fleet_id"] . ";");
             } else {
                 $CurrentFleet = explode(";", $this->_fleet['fleet_array']);
                 $NewFleet = '';
                 foreach ($CurrentFleet as $Item => $Group) {
                     if (empty($Group)) {
                         continue;
                     }
                     $Class = explode(",", $Group);
                     if ($Class[0] == 208 && $Class[1] > 1) {
                         $NewFleet .= $Class[0] . "," . ($Class[1] - 1) . ";";
                     } elseif ($Class[0] != 208 && $Class[1] > 0) {
                         $NewFleet .= $Class[0] . "," . $Class[1] . ";";
                     }
                 }
                 $this->UpdateFleet('fleet_array', $NewFleet);
                 $this->UpdateFleet('fleet_amount', $this->_fleet['fleet_amount'] - 1);
                 $this->UpdateFleet('fleet_resource_metal', 0);
                 $this->UpdateFleet('fleet_resource_crystal', 0);
                 $this->UpdateFleet('fleet_resource_deuterium', 0);
                 $this->UpdateFleet('fleet_mess', 1);
             }
         }
     }
     SendSimpleMessage($this->_fleet['fleet_owner'], 0, $this->_fleet['fleet_start_time'], 4, $LNG['sys_colo_mess_from'], $LNG['sys_colo_mess_report'], $TheMessage);
     $this->SaveFleet();
 }
 function TargetEvent()
 {
     $sql = 'SELECT * FROM %%USERS%% WHERE id = :userId;';
     $senderUser = Database::get()->selectSingle($sql, array(':userId' => $this->_fleet['fleet_owner']));
     $senderUser['factor'] = getFactors($senderUser, 'basic', $this->_fleet['fleet_start_time']);
     $fleetArray = FleetFunctions::unserialize($this->_fleet['fleet_array']);
     $duration = $this->_fleet['fleet_start_time'] - $this->_fleet['start_time'];
     $SpeedFactor = FleetFunctions::GetGameSpeedFactor();
     $distance = FleetFunctions::GetTargetDistance(array($this->_fleet['fleet_start_galaxy'], $this->_fleet['fleet_start_system'], $this->_fleet['fleet_start_planet']), array($this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet']));
     $consumption = FleetFunctions::GetFleetConsumption($fleetArray, $duration, $distance, $senderUser, $SpeedFactor);
     $this->UpdateFleet('fleet_resource_deuterium', $this->_fleet['fleet_resource_deuterium'] + $consumption / 2);
     $LNG = $this->getLanguage($senderUser['lang']);
     $TargetUserID = $this->_fleet['fleet_target_owner'];
     $TargetMessage = sprintf($LNG['sys_stat_mess'], GetTargetAdressLink($this->_fleet, ''), pretty_number($this->_fleet['fleet_resource_metal']), $LNG['tech'][901], pretty_number($this->_fleet['fleet_resource_crystal']), $LNG['tech'][902], pretty_number($this->_fleet['fleet_resource_deuterium']), $LNG['tech'][903]);
     PlayerUtil::sendMessage($TargetUserID, 0, $LNG['sys_mess_tower'], 5, $LNG['sys_stat_mess_stay'], $TargetMessage, $this->_fleet['fleet_start_time'], NULL, 1, $this->_fleet['fleet_universe']);
     $this->RestoreFleet(false);
 }
 function TargetEvent()
 {
     $sql = 'SELECT name FROM %%PLANETS%% WHERE `id` = :planetId;';
     $startPlanetName = Database::get()->selectSingle($sql, array(':planetId' => $this->_fleet['fleet_start_id']), 'name');
     $targetPlanetName = Database::get()->selectSingle($sql, array(':planetId' => $this->_fleet['fleet_end_id']), 'name');
     $LNG = $this->getLanguage(NULL, $this->_fleet['fleet_owner']);
     $Message = sprintf($LNG['sys_tran_mess_owner'], $targetPlanetName, GetTargetAdressLink($this->_fleet, ''), pretty_number($this->_fleet['fleet_resource_metal']), $LNG['tech'][901], pretty_number($this->_fleet['fleet_resource_crystal']), $LNG['tech'][902], pretty_number($this->_fleet['fleet_resource_deuterium']), $LNG['tech'][903]);
     PlayerUtil::sendMessage($this->_fleet['fleet_owner'], 0, $LNG['sys_mess_tower'], 5, $LNG['sys_mess_transport'], $Message, $this->_fleet['fleet_start_time'], NULL, 1, $this->_fleet['fleet_universe']);
     if ($this->_fleet['fleet_target_owner'] != $this->_fleet['fleet_owner']) {
         $LNG = $this->getLanguage(NULL, $this->_fleet['fleet_target_owner']);
         $Message = sprintf($LNG['sys_tran_mess_user'], $startPlanetName, GetStartAdressLink($this->_fleet, ''), $targetPlanetName, GetTargetAdressLink($this->_fleet, ''), pretty_number($this->_fleet['fleet_resource_metal']), $LNG['tech'][901], pretty_number($this->_fleet['fleet_resource_crystal']), $LNG['tech'][902], pretty_number($this->_fleet['fleet_resource_deuterium']), $LNG['tech'][903]);
         PlayerUtil::sendMessage($this->_fleet['fleet_target_owner'], 0, $LNG['sys_mess_tower'], 5, $LNG['sys_mess_transport'], $Message, $this->_fleet['fleet_start_time'], NULL, 1, $this->_fleet['fleet_universe']);
     }
     $this->StoreGoodsToPlanet();
     $this->setState(FLEET_RETURN);
     $this->SaveFleet();
 }
Example #13
0
 function TargetEvent()
 {
     global $db, $LANG;
     $StartPlanet = $db->uniquequery("SELECT name FROM " . PLANETS . " WHERE `id` = '" . $this->_fleet['fleet_start_id'] . "';");
     $StartName = $StartPlanet['name'];
     $StartOwner = $this->_fleet['fleet_owner'];
     $TargetPlanet = $db->uniquequery("SELECT name FROM " . PLANETS . " WHERE `id` = '" . $this->_fleet['fleet_end_id'] . "';");
     $TargetName = $TargetPlanet['name'];
     $TargetOwner = $this->_fleet['fleet_target_owner'];
     $LNG = $LANG->GetUserLang($this->_fleet['fleet_owner']);
     $Message = sprintf($LNG['sys_tran_mess_owner'], $TargetName, GetTargetAdressLink($this->_fleet, ''), $this->_fleet['fleet_resource_metal'], $LNG['Metal'], $this->_fleet['fleet_resource_crystal'], $LNG['Crystal'], $this->_fleet['fleet_resource_deuterium'], $LNG['Deuterium']);
     SendSimpleMessage($StartOwner, '', $this->_fleet['fleet_start_time'], 5, $LNG['sys_mess_tower'], $LNG['sys_mess_transport'], $Message);
     $Message = sprintf($LNG['sys_tran_mess_user'], $StartName, GetStartAdressLink($this->_fleet, ''), $TargetName, GetTargetAdressLink($this->_fleet, ''), $this->_fleet['fleet_resource_metal'], $LNG['Metal'], $this->_fleet['fleet_resource_crystal'], $LNG['Crystal'], $this->_fleet['fleet_resource_deuterium'], $LNG['Deuterium']);
     SendSimpleMessage($TargetOwner, '', $this->_fleet['fleet_start_time'], 5, $LNG['sys_mess_tower'], $LNG['sys_mess_transport'], $Message);
     $this->UpdateFleet('fleet_mess', 2);
     $this->SaveFleet();
 }
Example #14
0
 function TargetEvent()
 {
     $senderUser = $GLOBALS['DATABASE']->getFirstRow("SELECT * FROM " . USERS . " WHERE id = " . $this->_fleet['fleet_owner'] . ";");
     $senderUser['factor'] = getFactors($senderUser, 'basic', $this->_fleet['fleet_start_time']);
     $fleetArray = fleetAmountToArray($this->_fleet['fleet_array']);
     $duration = $this->_fleet['fleet_start_time'] - $this->_fleet['start_time'];
     require_once 'includes/classes/class.FleetFunctions.php';
     $fleetMaxSpeed = FleetFunctions::GetFleetMaxSpeed($fleetArray, $senderUser);
     $SpeedFactor = FleetFunctions::GetGameSpeedFactor();
     $distance = FleetFunctions::GetTargetDistance(array($this->_fleet['fleet_start_galaxy'], $this->_fleet['fleet_start_system'], $this->_fleet['fleet_start_planet']), array($this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet']));
     $consumption = FleetFunctions::GetFleetConsumption($fleetArray, $duration, $distance, $fleetMaxSpeed, $senderUser, $SpeedFactor);
     $this->UpdateFleet('fleet_resource_deuterium', $this->_fleet['fleet_resource_deuterium'] + $consumption / 2);
     $LNG = $this->getLanguage($senderUser['lang']);
     $TargetUserID = $this->_fleet['fleet_target_owner'];
     $TargetMessage = sprintf($LNG['sys_stat_mess'], GetTargetAdressLink($this->_fleet, ''), pretty_number($this->_fleet['fleet_resource_metal']), $LNG['tech'][901], pretty_number($this->_fleet['fleet_resource_crystal']), $LNG['tech'][902], pretty_number($this->_fleet['fleet_resource_deuterium']), $LNG['tech'][903]);
     SendSimpleMessage($TargetUserID, 0, $this->_fleet['fleet_start_time'], 5, $LNG['sys_mess_tower'], $LNG['sys_stat_mess_stay'], $TargetMessage);
     $this->RestoreFleet(false);
 }
Example #15
0
 function TargetEvent()
 {
     global $db;
     $Qry = "SELECT name FROM " . PLANETS . " \r\n\t\t\t\t   WHERE \r\n\t\t\t\t   `galaxy` = '" . $this->_fleet['fleet_start_galaxy'] . "' AND\r\n\t\t\t\t   `system` = '" . $this->_fleet['fleet_start_system'] . "' AND\r\n\t\t\t\t   `planet` = '" . $this->_fleet['fleet_start_planet'] . "';";
     $StartPlanet = $db->uniquequery($Qry);
     $StartName = $StartPlanet['name'];
     $StartOwner = $this->_fleet['fleet_owner'];
     $Qry = "SELECT name FROM " . PLANETS . "\r\n\t\t\t\t   WHERE\r\n\t\t\t  \t   `galaxy` = '" . $this->_fleet['fleet_end_galaxy'] . "' AND\r\n\t\t\t\t   `system` = '" . $this->_fleet['fleet_end_system'] . "' AND\r\n\t\t\t\t   `planet` = '" . $this->_fleet['fleet_end_planet'] . "';";
     $TargetPlanet = $db->uniquequery($Qry);
     $TargetName = $TargetPlanet['name'];
     $TargetOwner = $this->_fleet['fleet_target_owner'];
     $LNG = $this->GetUserLang($this->_fleet['fleet_owner']);
     $Message = sprintf($LNG['sys_tran_mess_owner'], $TargetName, GetTargetAdressLink($this->_fleet, ''), $this->_fleet['fleet_resource_metal'], $LNG['Metal'], $this->_fleet['fleet_resource_crystal'], $LNG['Crystal'], $this->_fleet['fleet_resource_deuterium'], $LNG['Deuterium']);
     SendSimpleMessage($StartOwner, '', $this->_fleet['fleet_start_time'], 5, $LNG['sys_mess_tower'], $LNG['sys_mess_transport'], $Message);
     $Message = sprintf($LNG['sys_tran_mess_user'], $StartName, GetStartAdressLink($this->_fleet, ''), $TargetName, GetTargetAdressLink($this->_fleet, ''), $this->_fleet['fleet_resource_metal'], $LNG['Metal'], $this->_fleet['fleet_resource_crystal'], $LNG['Crystal'], $this->_fleet['fleet_resource_deuterium'], $LNG['Deuterium']);
     SendSimpleMessage($TargetOwner, '', $this->_fleet['fleet_start_time'], 5, $LNG['sys_mess_tower'], $LNG['sys_mess_transport'], $Message);
     $this->UpdateFleet('fleet_mess', 2);
     $this->SaveFleet();
 }
 function TargetEvent()
 {
     $StartPlanet = $GLOBALS['DATABASE']->getFirstRow("SELECT name FROM " . PLANETS . " WHERE `id` = '" . $this->_fleet['fleet_start_id'] . "';");
     $StartName = $StartPlanet['name'];
     $StartOwner = $this->_fleet['fleet_owner'];
     $TargetPlanet = $GLOBALS['DATABASE']->getFirstRow("SELECT name FROM " . PLANETS . " WHERE `id` = '" . $this->_fleet['fleet_end_id'] . "';");
     $TargetName = $TargetPlanet['name'];
     $TargetOwner = $this->_fleet['fleet_target_owner'];
     $LNG = $this->getLanguage(NULL, $StartOwner);
     $Message = sprintf($LNG['sys_tran_mess_owner'], $TargetName, GetTargetAdressLink($this->_fleet, ''), pretty_number($this->_fleet['fleet_resource_metal']), $LNG['tech'][901], pretty_number($this->_fleet['fleet_resource_crystal']), $LNG['tech'][902], pretty_number($this->_fleet['fleet_resource_deuterium']), $LNG['tech'][903]);
     SendSimpleMessage($StartOwner, 0, $this->_fleet['fleet_start_time'], 5, $LNG['sys_mess_tower'], $LNG['sys_mess_transport'], $Message);
     if ($TargetOwner != $StartOwner) {
         $LNG = $this->getLanguage(NULL, $TargetOwner);
         $Message = sprintf($LNG['sys_tran_mess_user'], $StartName, GetStartAdressLink($this->_fleet, ''), $TargetName, GetTargetAdressLink($this->_fleet, ''), pretty_number($this->_fleet['fleet_resource_metal']), $LNG['tech'][901], pretty_number($this->_fleet['fleet_resource_crystal']), $LNG['tech'][902], pretty_number($this->_fleet['fleet_resource_deuterium']), $LNG['tech'][903]);
         SendSimpleMessage($TargetOwner, 0, $this->_fleet['fleet_start_time'], 5, $LNG['sys_mess_tower'], $LNG['sys_mess_transport'], $Message);
     }
     $this->StoreGoodsToPlanet();
     $this->setState(FLEET_RETURN);
     $this->SaveFleet();
 }
Example #17
0
function MissionCaseAttack($FleetRow)
{
    global $user, $phpEx, $rocketnova_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 $rocketnova_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']);
            // 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 / 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']);
            // 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
            // 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);
        }
        // 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()) {
            $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);
            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 $resource, $reslist;
        $db = Database::get();
        $sqlFields = array();
        $elementIDs = array_merge($reslist['defense'], $reslist['missile']);
        foreach ($elementIDs as $elementID) {
            $sqlFields[] = '%%PLANETS%%.`' . $resource[$elementID] . '`';
        }
        $sql = 'SELECT lang, shield_tech,
		%%PLANETS%%.id, name, id_owner, ' . implode(', ', $sqlFields) . '
		FROM %%PLANETS%%
		INNER JOIN %%USERS%% ON id_owner = %%PLANETS%%.id
		WHERE %%PLANETS%%.id = :planetId;';
        $targetData = $db->selectSingle($sql, array(':planetId' => $this->_fleet['fleet_end_id']));
        if ($this->_fleet['fleet_end_type'] == 3) {
            $sql = 'SELECT ' . $resource[502] . ' FROM %%PLANETS%% WHERE id_luna = :moonId;';
            $targetData[$resource[502]] = $db->selectSingle($sql, array(':moonId' => $this->_fleet['fleet_end_id']), $resource[502]);
        }
        $sql = 'SELECT lang, military_tech FROM %%USERS%% WHERE id = :userId;';
        $senderData = $db->selectSingle($sql, array(':userId' => $this->_fleet['fleet_owner']));
        if (!in_array($this->_fleet['fleet_target_obj'], $reslist['defense']) || !in_array($this->_fleet['fleet_target_obj'], $reslist['missile']) || $this->_fleet['fleet_target_obj'] == 502 || $this->_fleet['fleet_target_obj'] == 0) {
            $primaryTarget = 401;
        } else {
            $primaryTarget = $this->_fleet['fleet_target_obj'];
        }
        $targetDefensive = array();
        foreach ($elementIDs as $elementID) {
            $targetDefensive[$elementID] = $targetData[$resource[$elementID]];
        }
        unset($targetDefensive[502]);
        $LNG = $this->getLanguage(Config::get($this->_fleet['fleet_universe'])->lang, array('L18N', 'FLEET', 'TECH'));
        if ($targetData[$resource[502]] >= $this->_fleet['fleet_amount']) {
            $message = $LNG['sys_irak_no_att'];
            $where = $this->_fleet['fleet_end_type'] == 3 ? 'id_luna' : 'id';
            $sql = 'UPDATE %%PLANETS%% SET ' . $resource[502] . ' = ' . $resource[502] . ' - :amount WHERE ' . $where . ' = :planetId;';
            $db->update($sql, array(':amount' => $this->_fleet['fleet_amount'], ':planetId' => $targetData['id']));
        } else {
            if ($targetData[$resource[502]] > 0) {
                $where = $this->_fleet['fleet_end_type'] == 3 ? 'id_luna' : 'id';
                $sql = 'UPDATE %%PLANETS%% SET ' . $resource[502] . ' = :amount WHERE ' . $where . ' = :planetId;';
                $db->update($sql, array(':amount' => 0, ':planetId' => $targetData['id']));
            }
            $targetDefensive = array_filter($targetDefensive);
            if (!empty($targetDefensive)) {
                require_once 'includes/classes/missions/functions/calculateMIPAttack.php';
                $result = calculateMIPAttack($targetData["shield_tech"], $senderData["military_tech"], $this->_fleet['fleet_amount'], $targetDefensive, $primaryTarget, $targetData[$resource[502]]);
                $result = array_filter($result);
                $message = sprintf($LNG['sys_irak_def'], $targetData[$resource[502]]) . '<br><br>';
                ksort($result, SORT_NUMERIC);
                foreach ($result as $Element => $destroy) {
                    $message .= sprintf('%s (- %d)<br>', $LNG['tech'][$Element], $destroy);
                    $sql = 'UPDATE %%PLANETS%% SET ' . $resource[$Element] . ' = ' . $resource[$Element] . ' - :amount WHERE id = :planetId;';
                    $db->update($sql, array(':planetId' => $targetData['id'], ':amount' => $destroy));
                }
            } else {
                $message = $LNG['sys_irak_no_def'];
            }
        }
        $sql = 'SELECT name FROM %%PLANETS%% WHERE id = :planetId;';
        $planetName = Database::get()->selectSingle($sql, array(':planetId' => $this->_fleet['fleet_start_id']), 'name');
        $ownerLink = $planetName . " " . GetStartAdressLink($this->_fleet);
        $targetLink = $targetData['name'] . " " . GetTargetAdressLink($this->_fleet);
        $message = sprintf($LNG['sys_irak_mess'], $this->_fleet['fleet_amount'], $ownerLink, $targetLink) . $message;
        PlayerUtil::sendMessage($this->_fleet['fleet_owner'], 0, $LNG['sys_mess_tower'], 3, $LNG['sys_irak_subject'], $message, $this->_fleet['fleet_start_time'], NULL, 1, $this->_fleet['fleet_universe']);
        PlayerUtil::sendMessage($this->_fleet['fleet_target_owner'], 0, $LNG['sys_mess_tower'], 3, $LNG['sys_irak_subject'], $message, $this->_fleet['fleet_start_time'], NULL, 1, $this->_fleet['fleet_universe']);
        $this->KillFleet();
    }
 public function getEventData($fleetRow, $Status)
 {
     global $LNG;
     $Owner = $fleetRow['fleet_owner'] == $this->UserID;
     $FleetStyle = array(1 => 'attack', 2 => 'federation', 3 => 'transport', 4 => 'deploy', 5 => 'hold', 6 => 'espionage', 7 => 'colony', 8 => 'harvest', 9 => 'destroy', 10 => 'missile', 11 => 'transport', 15 => 'transport', 20 => 'capture', 12 => 'harvest');
     $GoodMissions = array(3, 5);
     $MissionType = $fleetRow['fleet_mission'];
     $FleetPrefix = $Owner == true ? 'own' : '';
     $FleetType = $FleetPrefix . $FleetStyle[$MissionType];
     $FleetName = !$Owner && ($MissionType == 1 || $MissionType == 2) && $Status == FLEET_OUTWARD && $fleetRow['fleet_target_owner'] != $this->UserID ? $LNG['cff_acs_fleet'] : $LNG['ov_fleet'];
     $FleetContent = $this->CreateFleetPopupedFleetLink($fleetRow, $FleetName, $FleetPrefix . $FleetStyle[$MissionType]);
     $FleetCapacity = $this->CreateFleetPopupedMissionLink($fleetRow, $LNG['type_mission'][$MissionType], $FleetPrefix . $FleetStyle[$MissionType]);
     $FleetStatus = array(0 => 'flight', 1 => 'return', 2 => 'holding');
     $StartType = $LNG['type_planet'][$fleetRow['fleet_start_type']];
     $TargetType = $LNG['type_planet'][$fleetRow['fleet_end_type']];
     if ($MissionType == 8) {
         if ($Status == FLEET_OUTWARD) {
             $EventString = sprintf($LNG['cff_mission_own_recy_0'], $FleetContent, $StartType, $fleetRow['own_planetname'], GetStartAdressLink($fleetRow, $FleetType), GetTargetAdressLink($fleetRow, $FleetType), $FleetCapacity);
         } else {
             $EventString = sprintf($LNG['cff_mission_own_recy_1'], $FleetContent, GetTargetAdressLink($fleetRow, $FleetType), $StartType, $fleetRow['own_planetname'], GetStartAdressLink($fleetRow, $FleetType), $FleetCapacity);
         }
     } elseif ($MissionType == 10) {
         if ($Owner) {
             $EventString = sprintf($LNG['cff_mission_own_mip'], $fleetRow['fleet_amount'], $StartType, $fleetRow['own_planetname'], GetStartAdressLink($fleetRow, $FleetType), $TargetType, $fleetRow['target_planetname'], GetTargetAdressLink($fleetRow, $FleetType));
         } else {
             $EventString = sprintf($LNG['cff_mission_target_mip'], $fleetRow['fleet_amount'], $this->BuildHostileFleetPlayerLink($fleetRow, $fleetRow), $StartType, $fleetRow['own_planetname'], GetStartAdressLink($fleetRow, $FleetType), $TargetType, $fleetRow['target_planetname'], GetTargetAdressLink($fleetRow, $FleetType));
         }
     } elseif ($MissionType == 11 || $MissionType == 15) {
         if ($Status == FLEET_OUTWARD) {
             $EventString = sprintf($LNG['cff_mission_own_expo_0'], $FleetContent, $StartType, $fleetRow['own_planetname'], GetStartAdressLink($fleetRow, $FleetType), GetTargetAdressLink($fleetRow, $FleetType), $FleetCapacity);
         } elseif ($Status == FLEET_HOLD) {
             $EventString = sprintf($LNG['cff_mission_own_expo_2'], $FleetContent, $StartType, $fleetRow['own_planetname'], GetStartAdressLink($fleetRow, $FleetType), GetTargetAdressLink($fleetRow, $FleetType), $FleetCapacity);
         } else {
             $EventString = sprintf($LNG['cff_mission_own_expo_1'], $FleetContent, GetTargetAdressLink($fleetRow, $FleetType), $StartType, $fleetRow['own_planetname'], GetStartAdressLink($fleetRow, $FleetType), $FleetCapacity);
         }
     } else {
         if ($Owner == true) {
             if ($Status == FLEET_OUTWARD) {
                 if (!$Owner && ($MissionType == 1 || $MissionType == 2)) {
                     $Message = $LNG['cff_mission_acs'];
                 } else {
                     $Message = $LNG['cff_mission_own_0'];
                 }
                 $EventString = sprintf($Message, $FleetContent, $StartType, $fleetRow['own_planetname'], GetStartAdressLink($fleetRow, $FleetType), $TargetType, $fleetRow['target_planetname'], GetTargetAdressLink($fleetRow, $FleetType), $FleetCapacity);
             } elseif ($Status == FLEET_RETURN) {
                 $EventString = sprintf($LNG['cff_mission_own_1'], $FleetContent, $TargetType, $fleetRow['target_planetname'], GetTargetAdressLink($fleetRow, $FleetType), $StartType, $fleetRow['own_planetname'], GetStartAdressLink($fleetRow, $FleetType), $FleetCapacity);
             } else {
                 $EventString = sprintf($LNG['cff_mission_own_2'], $FleetContent, $StartType, $fleetRow['own_planetname'], GetStartAdressLink($fleetRow, $FleetType), $TargetType, $fleetRow['target_planetname'], GetTargetAdressLink($fleetRow, $FleetType), $FleetCapacity);
             }
         } else {
             if ($Status == FLEET_HOLD) {
                 $Message = $LNG['cff_mission_target_stay'];
             } elseif (in_array($MissionType, $GoodMissions)) {
                 $Message = $LNG['cff_mission_target_good'];
             } else {
                 $Message = $LNG['cff_mission_target_bad'];
             }
             $EventString = sprintf($Message, $FleetContent, $this->BuildHostileFleetPlayerLink($fleetRow, $fleetRow), $StartType, $fleetRow['own_planetname'], GetStartAdressLink($fleetRow, $FleetType), $TargetType, $fleetRow['target_planetname'], GetTargetAdressLink($fleetRow, $FleetType), $FleetCapacity);
         }
     }
     $EventString = '<span class="' . $FleetStatus[$Status] . ' ' . $FleetType . '">' . $EventString . '</span>';
     if ($Status == FLEET_OUTWARD) {
         $Time = $fleetRow['fleet_start_time'];
     } elseif ($Status == FLEET_RETURN) {
         $Time = $fleetRow['fleet_end_time'];
     } elseif ($Status == FLEET_HOLD) {
         $Time = $fleetRow['fleet_end_stay'];
     }
     $Rest = $Time - TIMESTAMP;
     $Rest1 = date('H:i:s', TIMESTAMP + $Rest);
     return array($Rest, $EventString, $Time, $Rest1);
 }
    function TargetEvent()
    {
        $db = Database::get();
        $sql = 'SELECT * FROM %%USERS%% WHERE `id` = :userId;';
        $senderUser = $db->selectSingle($sql, array(':userId' => $this->_fleet['fleet_owner']));
        $senderUser['factor'] = getFactors($senderUser, 'basic', $this->_fleet['fleet_start_time']);
        $LNG = $this->getLanguage($senderUser['lang']);
        $isPositionFree = PlayerUtil::checkPosition($this->_fleet['fleet_universe'], $this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet']);
        if (!$isPositionFree) {
            $message = sprintf($LNG['sys_colo_notfree'], GetTargetAdressLink($this->_fleet, ''));
        } else {
            $allowPlanetPosition = PlayerUtil::allowPlanetPosition($this->_fleet['fleet_end_planet'], $senderUser);
            if (!$allowPlanetPosition) {
                $message = sprintf($LNG['sys_colo_notech'], GetTargetAdressLink($this->_fleet, ''));
            } else {
                $sql = 'SELECT COUNT(*) as state
				FROM %%PLANETS%%
				WHERE `id_owner`	= :userId
				AND `planet_type`	= :type
				AND `destruyed`		= :destroyed;';
                $currentPlanetCount = $db->selectSingle($sql, array(':userId' => $this->_fleet['fleet_owner'], ':type' => 1, ':destroyed' => 0), 'state');
                $maxPlanetCount = PlayerUtil::maxPlanetCount($senderUser);
                if ($currentPlanetCount >= $maxPlanetCount) {
                    $message = sprintf($LNG['sys_colo_maxcolo'], GetTargetAdressLink($this->_fleet, ''), $maxPlanetCount);
                } else {
                    $NewOwnerPlanet = PlayerUtil::createPlanet($this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet'], $this->_fleet['fleet_universe'], $this->_fleet['fleet_owner'], $LNG['fcp_colony'], false, $senderUser['authlevel']);
                    if ($NewOwnerPlanet === false) {
                        $message = sprintf($LNG['sys_colo_badpos'], GetTargetAdressLink($this->_fleet, ''));
                        $this->setState(FLEET_RETURN);
                    } else {
                        $this->_fleet['fleet_end_id'] = $NewOwnerPlanet;
                        $message = sprintf($LNG['sys_colo_allisok'], GetTargetAdressLink($this->_fleet, ''));
                        $this->StoreGoodsToPlanet();
                        if ($this->_fleet['fleet_amount'] == 1) {
                            $this->KillFleet();
                        } else {
                            $CurrentFleet = explode(";", $this->_fleet['fleet_array']);
                            $NewFleet = '';
                            foreach ($CurrentFleet as $Group) {
                                if (empty($Group)) {
                                    continue;
                                }
                                $Class = explode(",", $Group);
                                if ($Class[0] == 208 && $Class[1] > 1) {
                                    $NewFleet .= $Class[0] . "," . ($Class[1] - 1) . ";";
                                } elseif ($Class[0] != 208 && $Class[1] > 0) {
                                    $NewFleet .= $Class[0] . "," . $Class[1] . ";";
                                }
                            }
                            $this->UpdateFleet('fleet_array', $NewFleet);
                            $this->UpdateFleet('fleet_amount', $this->_fleet['fleet_amount'] - 1);
                            $this->UpdateFleet('fleet_resource_metal', 0);
                            $this->UpdateFleet('fleet_resource_crystal', 0);
                            $this->UpdateFleet('fleet_resource_deuterium', 0);
                        }
                    }
                }
            }
        }
        PlayerUtil::sendMessage($this->_fleet['fleet_owner'], 0, $LNG['sys_colo_mess_from'], 4, $LNG['sys_colo_mess_report'], $message, $this->_fleet['fleet_start_time'], NULL, 1, $this->_fleet['fleet_universe']);
        $this->setState(FLEET_RETURN);
        $this->SaveFleet();
    }
Example #21
0
    //------------------------------ battle -----------------------------------
    $battle = new Battle($attackers, $defenders);
    $startBattle = DebugManager::runDebugged(array($battle, 'startBattle'), $errorHandler, $exceptionHandler);
    $startBattle();
    //-------------------------------------------------------------------------
    //-------------------------- after battle stuff ---------------------------
    $report = $battle->getReport();
    $steal = updateAttackers($report->getPresentationAttackersFleetOnRound('START'), $report->getAfterBattleAttackers(), $targetPlanet, $resource, $pricelist);
    $report->setSteal($steal);
    updateDefenders($report->getPresentationDefendersFleetOnRound('START'), $report->getAfterBattleDefenders(), $targetPlanet, $resource, $steal);
    updateDebris($FleetRow, $report);
    updateMoon($FleetRow, $report, '', $TargetUserID, $targetPlanet);
    sendMessage($FleetRow, $report, $lang, $resource);
    //-------------------------------------------------------------------------
} elseif ($FleetRow['fleet_end_time'] <= time()) {
    $Message = sprintf($lang['sys_fleet_won'], $TargetName, GetTargetAdressLink($FleetRow, ''), Format::pretty_number($FleetRow['fleet_resource_metal']), $lang['Metal'], Format::pretty_number($FleetRow['fleet_resource_crystal']), $lang['Crystal'], Format::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');
}
function getShipType($id, $count)
{
    global $CombatCaps, $pricelist;
    $rf = $CombatCaps[$id]['sd'];
    $shield = $CombatCaps[$id]['shield'];
    $cost = array($pricelist[$id]['metal'], $pricelist[$id]['crystal']);
    $power = $CombatCaps[$id]['attack'];
    if ($id >= SHIP_MIN_ID && $id <= SHIP_MAX_ID) {
        return new Ship($id, $count, $rf, $shield, $cost, $power);
    }
    return new Defense($id, $count, $rf, $shield, $cost, $power);
 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');
     }
 }
 public function GetEventString($FleetRow, $Status, $Owner, $Label, $Record)
 {
     global $LNG;
     $FleetStyle = array(1 => 'attack', 2 => 'federation', 3 => 'transport', 4 => 'deploy', 5 => 'hold', 6 => 'espionage', 7 => 'colony', 8 => 'harvest', 9 => 'destroy', 10 => 'missile', 15 => 'transport');
     $GoodMissions = array(3, 5);
     $MissionType = $FleetRow['fleet_mission'];
     $Names = $this->GetNames($FleetRow);
     $FleetPrefix = $Owner == true ? 'own' : '';
     $FleetType = $FleetPrefix . $FleetStyle[$MissionType];
     $FleetContent = $this->CreateFleetPopupedFleetLink($FleetRow, ($MissionType == 1 || $MissionType == 2) && $FleetRow['fleet_owner'] != $_SESSION['id'] && $Status == 0 && $Owner == true ? $LNG['cff_acs_fleet'] : $LNG['ov_fleet'], $FleetPrefix . $FleetStyle[$MissionType]);
     $FleetCapacity = $this->CreateFleetPopupedMissionLink($FleetRow, $LNG['type_mission'][$MissionType], $FleetPrefix . $FleetStyle[$MissionType]);
     $FleetStatus = array(0 => 'flight', 1 => 'return', 2 => 'holding');
     $StartType = $FleetRow['fleet_start_type'] == 1 ? $LNG['fcm_planet'] : $LNG['fcm_moon'];
     $TargetType = $FleetRow['fleet_end_type'] == 1 ? $LNG['fcm_planet'] : $LNG['fcm_moon'];
     if ($MissionType == 8) {
         if ($Status == 0) {
             $EventString = sprintf($LNG['cff_mission_own_recy_0'], $FleetContent, $StartType, $Names['own_planetname'], GetStartAdressLink($FleetRow, $FleetType), GetTargetAdressLink($FleetRow, $FleetType), $FleetCapacity);
         } else {
             $EventString = sprintf($LNG['cff_mission_own_recy_1'], $FleetContent, GetTargetAdressLink($FleetRow, $FleetType), $StartType, $Names['own_planetname'], GetStartAdressLink($FleetRow, $FleetType), $FleetCapacity);
         }
     } elseif ($MissionType == 10) {
         if ($Owner) {
             $EventString = sprintf($LNG['cff_mission_own_mip'], $FleetRow['fleet_amount'], $StartType, $Names['own_planetname'], GetStartAdressLink($FleetRow, $FleetType), $TargetType, $Names['target_planetname'], GetTargetAdressLink($FleetRow, $FleetType));
         } else {
             $EventString = sprintf($LNG['cff_mission_target_mip'], $FleetRow['fleet_amount'], $this->BuildHostileFleetPlayerLink($FleetRow, $Names), $StartType, $Names['own_planetname'], GetStartAdressLink($FleetRow, $FleetType), $TargetType, $Names['target_planetname'], GetTargetAdressLink($FleetRow, $FleetType));
         }
     } elseif ($MissionType == 11 || $MissionType == 15) {
         if ($Status == 0) {
             $EventString = sprintf($LNG['cff_mission_own_expo_0'], $FleetContent, $StartType, $Names['own_planetname'], GetStartAdressLink($FleetRow, $FleetType), GetTargetAdressLink($FleetRow, $FleetType), $FleetCapacity);
         } elseif ($Status == 2) {
             $EventString = sprintf($LNG['cff_mission_own_expo_2'], $FleetContent, $StartType, $Names['own_planetname'], GetStartAdressLink($FleetRow, $FleetType), GetTargetAdressLink($FleetRow, $FleetType), $FleetCapacity);
         } else {
             $EventString = sprintf($LNG['cff_mission_own_expo_1'], $FleetContent, GetTargetAdressLink($FleetRow, $FleetType), $StartType, $Names['own_planetname'], GetStartAdressLink($FleetRow, $FleetType), $FleetCapacity);
         }
     } else {
         if ($Owner == true) {
             if ($Status == 0) {
                 if (($MissionType == 1 || $MissionType == 2) && $Status == 0 && $FleetRow['fleet_owner'] != $_SESSION['id']) {
                     $Message = $LNG['cff_mission_acs'];
                 } else {
                     $Message = $LNG['cff_mission_own_0'];
                 }
                 $EventString = sprintf($Message, $FleetContent, $StartType, $Names['own_planetname'], GetStartAdressLink($FleetRow, $FleetType), $TargetType, $Names['target_planetname'], GetTargetAdressLink($FleetRow, $FleetType), $FleetCapacity);
             } elseif ($Status == 1) {
                 $EventString = sprintf($LNG['cff_mission_own_1'], $FleetContent, $TargetType, $Names['target_planetname'], GetTargetAdressLink($FleetRow, $FleetType), $StartType, $Names['own_planetname'], GetStartAdressLink($FleetRow, $FleetType), $FleetCapacity);
             } else {
                 $EventString = sprintf($LNG['cff_mission_own_2'], $FleetContent, $StartType, $Names['own_planetname'], GetStartAdressLink($FleetRow, $FleetType), $TargetType, $Names['target_planetname'], GetTargetAdressLink($FleetRow, $FleetType), $FleetCapacity);
             }
         } else {
             if ($Status == 2) {
                 $Message = $LNG['cff_mission_target_stay'];
             } elseif (in_array($MissionType, $GoodMissions)) {
                 $Message = $LNG['cff_mission_target_good'];
             } else {
                 $Message = $LNG['cff_mission_target_bad'];
             }
             $EventString = sprintf($Message, $FleetContent, $this->BuildHostileFleetPlayerLink($FleetRow, $Names), $StartType, $Names['own_planetname'], GetStartAdressLink($FleetRow, $FleetType), $TargetType, $Names['target_planetname'], GetTargetAdressLink($FleetRow, $FleetType), $FleetCapacity);
         }
     }
     $EventString = '<span class="' . $FleetStatus[$Status] . ' ' . $FleetType . '">' . $EventString . '</span>';
     if ($Status == 0) {
         $Time = $FleetRow['fleet_start_time'];
     } elseif ($Status == 1) {
         $Time = $FleetRow['fleet_end_time'];
     } elseif ($Status == 2) {
         $Time = $FleetRow['fleet_end_stay'];
     }
     $Rest = $Time - TIMESTAMP;
     return array($Rest, $EventString, $Time);
 }
 public function GetEventString($FleetRow, $Status, $Owner, $Label, $Record)
 {
     global $LNG;
     $FleetStyle = array(1 => 'attack', 2 => 'federation', 3 => 'transport', 4 => 'deploy', 5 => 'hold', 6 => 'espionage', 7 => 'colony', 8 => 'harvest', 9 => 'destroy', 10 => 'missile', 15 => 'transport');
     $Names = $this->GetNames($FleetRow);
     $FleetPrefix = $Owner == true ? 'own' : '';
     $MissionType = $FleetRow['fleet_mission'];
     $FleetContent = $this->CreateFleetPopupedFleetLink($FleetRow, ($MissionType == 1 || $MissionType == 2) && $FleetRow['fleet_owner'] != $_SESSION['id'] && $Status == 0 && $Owner == true ? $LNG['cff_acs_fleet'] : $LNG['ov_fleet'], $FleetPrefix . $FleetStyle[$MissionType], $Names);
     $FleetCapacity = $this->CreateFleetPopupedMissionLink($FleetRow, $LNG['type_mission'][$MissionType], $FleetPrefix . $FleetStyle[$MissionType]);
     $StartType = $FleetRow['fleet_start_type'];
     $TargetType = $FleetRow['fleet_end_type'];
     $FleetGroup = $FleetRow['fleet_group'];
     $FleetStatus = array(0 => 'flight', 1 => 'return', 2 => 'holding');
     if (($MissionType == 1 || $MissionType == 2) && $FleetRow['fleet_owner'] != $_SESSION['id'] && $Status == 0 && $Owner == true) {
         $StartID = $LNG['cff_of'] . ' ' . $Names['own_username'] . ' ';
         $StartID .= $LNG['cff_goes'];
         $StartID .= $Names['own_planetname'] . " " . GetStartAdressLink($FleetRow, $FleetPrefix . $FleetStyle[$MissionType]);
         if ($TargetType == 1) {
             $TargetID = $LNG['cff_the_planet'];
         } elseif ($TargetType == 2) {
             $TargetID = $LNG['cff_debris_field'];
         } elseif ($TargetType == 3) {
             $TargetID = $LNG['cff_to_the_moon'];
         }
         $TargetID .= $Names['target_planetname'] . " ";
         $TargetID .= GetTargetAdressLink($FleetRow, $FleetPrefix . $FleetStyle[$MissionType]);
     } elseif ($Status != 2) {
         if ($StartType == 1) {
             $StartID = $LNG['cff_from_the_planet'];
         } elseif ($StartType == 3) {
             $StartID = $LNG['cff_from_the_moon'];
         }
         $StartID .= $Names['own_planetname'] . " " . GetStartAdressLink($FleetRow, $FleetPrefix . $FleetStyle[$MissionType]);
         if ($MissionType != 15) {
             if ($TargetType == 1) {
                 $TargetID = $LNG['cff_the_planet'];
             } elseif ($TargetType == 2) {
                 $TargetID = $LNG['cff_debris_field'];
             } elseif ($TargetType == 3) {
                 $TargetID = $LNG['cff_to_the_moon'];
             }
         } else {
             $TargetID = $LNG['cff_the_position'];
         }
         $TargetID .= $Names['target_planetname'] . " ";
         $TargetID .= GetTargetAdressLink($FleetRow, $FleetPrefix . $FleetStyle[$MissionType]);
     } else {
         if ($StartType == 1) {
             $StartID = $LNG['cff_to_the_planet'];
         } elseif ($StartType == 3) {
             $StartID = $LNG['cff_the_moon'];
         }
         $StartID .= $Names['own_planetname'] . ' ' . GetStartAdressLink($FleetRow, $FleetPrefix . $FleetStyle[$MissionType]);
         if ($MissionType != 15) {
             if ($TargetType == 1) {
                 $TargetID = $LNG['cff_from_planet'];
             } elseif ($TargetType == 2) {
                 $TargetID = $LNG['cff_from_debris_field'];
             } elseif ($TargetType == 3) {
                 $TargetID = $LNG['cff_from_the_moon'];
             }
         } else {
             $TargetID = $LNG['cff_from_position'];
         }
         $TargetID .= $Names['target_planetname'] . ' ' . GetTargetAdressLink($FleetRow, $FleetPrefix . $FleetStyle[$MissionType]);
     }
     if ($MissionType == 10) {
         $EventString = $LNG['cff_missile_attack'] . " (" . str_replace("503,", "", $FleetRow["fleet_array"]) . ")";
         $Time = $FleetRow['fleet_start_time'];
         $Rest = $Time - TIMESTAMP;
         $EventString .= $LNG['cff_from'];
         $EventString .= $StartID;
         $EventString .= $LNG['cff_to'];
         $EventString .= $TargetID;
         $EventString .= ".";
     } else {
         if ($Owner == true) {
             if (($MissionType == 1 || $MissionType == 2) && $Status == 0 && $FleetRow['fleet_owner'] != $_SESSION['id']) {
                 $EventString = $LNG['cff_a'];
             } else {
                 $EventString = $LNG['cff_one_of_your'];
             }
             $EventString .= $FleetContent;
         } else {
             $EventString = $LNG['cff_a'];
             $EventString .= $FleetContent;
             $EventString .= $LNG['cff_of'];
             $EventString .= $this->BuildHostileFleetPlayerLink($FleetRow, $Names);
         }
         if ($Status == 0) {
             $Time = $FleetRow['fleet_start_time'];
             $Rest = $Time - TIMESTAMP;
             $EventString .= $LNG['cff_goes'];
             $EventString .= $StartID;
             $EventString .= $LNG['cff_toward'];
             $EventString .= $TargetID;
             $EventString .= $LNG['cff_with_the_mission_of'];
         } elseif ($Status == 1) {
             $Time = $FleetRow['fleet_end_time'];
             $Rest = $Time - TIMESTAMP;
             $EventString .= $LNG['cff_comming_back'];
             $EventString .= $TargetID;
             $EventString .= $LNG['cff_back_to_the_planet'];
             $EventString .= $StartID;
             $EventString .= $LNG['cff_with_the_mission_of'];
         } elseif ($Status == 2) {
             $Time = $FleetRow['fleet_end_stay'];
             $Rest = $Time - TIMESTAMP;
             $EventString .= $LNG['cff_goes'];
             $EventString .= $StartID;
             $EventString .= $LNG['cff_to_explore'];
             $EventString .= $TargetID;
             $EventString .= $LNG['cff_with_the_mission_of'];
         }
         $EventString .= $FleetCapacity;
         $EventString = '<span class="' . $FleetStatus[$Status] . ' ' . $FleetPrefix . $FleetStyle[$FleetRow['fleet_mission']] . '">' . $EventString . '</span>';
     }
     return array($Rest, $EventString, $Time);
 }
Example #25
0
/**
 * Tis file is part of XNova:Legacies
 *
 * @license http://www.gnu.org/licenses/gpl-3.0.txt
 * @see http://www.xnova-ng.org/
 *
 * Copyright (c) 2009-Present, XNova Support Team <http://www.xnova-ng.org>
 * All rights reserved.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 *                                --> NOTICE <--
 *  This file is part of the core development branch, changing its contents will
 * make you unable to use the automatic updates manager. Please refer to the
 * documentation for further information about customizing XNova.
 *
 */
function MissionCaseRecycling($FleetRow)
{
    global $pricelist, $lang;
    if ($FleetRow["fleet_mess"] == "0") {
        if ($FleetRow['fleet_start_time'] <= time()) {
            $QrySelectGalaxy = "SELECT * FROM {{table}} ";
            $QrySelectGalaxy .= "WHERE ";
            $QrySelectGalaxy .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
            $QrySelectGalaxy .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
            $QrySelectGalaxy .= "`planet` = '" . $FleetRow['fleet_end_planet'] . "' ";
            $QrySelectGalaxy .= "LIMIT 1;";
            $TargetGalaxy = doquery($QrySelectGalaxy, 'galaxy', true);
            $FleetRecord = explode(";", $FleetRow['fleet_array']);
            $RecyclerCapacity = 0;
            $OtherFleetCapacity = 0;
            foreach ($FleetRecord as $Item => $Group) {
                if ($Group != '') {
                    $Class = explode(",", $Group);
                    if ($Class[0] == 209) {
                        $RecyclerCapacity += $pricelist[$Class[0]]["capacity"] * $Class[1];
                    } else {
                        $OtherFleetCapacity += $pricelist[$Class[0]]["capacity"] * $Class[1];
                    }
                }
            }
            $IncomingFleetGoods = $FleetRow["fleet_resource_metal"] + $FleetRow["fleet_resource_crystal"] + $FleetRow["fleet_resource_deuterium"];
            if ($IncomingFleetGoods > $OtherFleetCapacity) {
                $RecyclerCapacity -= $IncomingFleetGoods - $OtherFleetCapacity;
            }
            if ($TargetGalaxy["metal"] + $TargetGalaxy["crystal"] <= $RecyclerCapacity) {
                $RecycledGoods["metal"] = $TargetGalaxy["metal"];
                $RecycledGoods["crystal"] = $TargetGalaxy["crystal"];
            } else {
                if ($TargetGalaxy["metal"] > $RecyclerCapacity / 2 and $TargetGalaxy["crystal"] > $RecyclerCapacity / 2) {
                    $RecycledGoods["metal"] = $RecyclerCapacity / 2;
                    $RecycledGoods["crystal"] = $RecyclerCapacity / 2;
                } else {
                    if ($TargetGalaxy["metal"] > $TargetGalaxy["crystal"]) {
                        $RecycledGoods["crystal"] = $TargetGalaxy["crystal"];
                        if ($TargetGalaxy["metal"] > $RecyclerCapacity - $RecycledGoods["crystal"]) {
                            $RecycledGoods["metal"] = $RecyclerCapacity - $RecycledGoods["crystal"];
                        } else {
                            $RecycledGoods["metal"] = $TargetGalaxy["metal"];
                        }
                    } else {
                        $RecycledGoods["metal"] = $TargetGalaxy["metal"];
                        if ($TargetGalaxy["crystal"] > $RecyclerCapacity - $RecycledGoods["metal"]) {
                            $RecycledGoods["crystal"] = $RecyclerCapacity - $RecycledGoods["metal"];
                        } else {
                            $RecycledGoods["crystal"] = $TargetGalaxy["crystal"];
                        }
                    }
                }
            }
            $NewCargo['Metal'] = $FleetRow["fleet_resource_metal"] + $RecycledGoods["metal"];
            $NewCargo['Crystal'] = $FleetRow["fleet_resource_crystal"] + $RecycledGoods["crystal"];
            $NewCargo['Deuterium'] = $FleetRow["fleet_resource_deuterium"];
            $QryUpdateGalaxy = "UPDATE {{table}} SET ";
            $QryUpdateGalaxy .= "`metal` = `metal` - '" . $RecycledGoods["metal"] . "', ";
            $QryUpdateGalaxy .= "`crystal` = `crystal` - '" . $RecycledGoods["crystal"] . "' ";
            $QryUpdateGalaxy .= "WHERE ";
            $QryUpdateGalaxy .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
            $QryUpdateGalaxy .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
            $QryUpdateGalaxy .= "`planet` = '" . $FleetRow['fleet_end_planet'] . "' ";
            $QryUpdateGalaxy .= "LIMIT 1;";
            doquery($QryUpdateGalaxy, 'galaxy');
            $Message = sprintf($lang['sys_recy_gotten'], pretty_number($RecycledGoods["metal"]), $lang['Metal'], pretty_number($RecycledGoods["crystal"]), $lang['Crystal']);
            SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 4, $lang['sys_mess_spy_control'], $lang['sys_recy_report'], $Message);
            doquery("UPDATE {{table}} SET `mnl_exploit` = `mnl_exploit` + '1' WHERE `id` = '" . $FleetRow['fleet_owner'] . "'", 'users');
            $QryUpdateFleet = "UPDATE {{table}} SET ";
            $QryUpdateFleet .= "`fleet_resource_metal` = '" . $NewCargo['Metal'] . "', ";
            $QryUpdateFleet .= "`fleet_resource_crystal` = '" . $NewCargo['Crystal'] . "', ";
            $QryUpdateFleet .= "`fleet_resource_deuterium` = '" . $NewCargo['Deuterium'] . "', ";
            $QryUpdateFleet .= "`fleet_mess` = '1' ";
            $QryUpdateFleet .= "WHERE ";
            $QryUpdateFleet .= "`fleet_id` = '" . $FleetRow['fleet_id'] . "' ";
            $QryUpdateFleet .= "LIMIT 1;";
            doquery($QryUpdateFleet, 'fleets');
        }
    } else {
        if ($FleetRow['fleet_end_time'] <= time()) {
            // Mettre le message de retour de flotte
            $Message = sprintf($lang['sys_tran_mess_owner'], $TargetName, GetTargetAdressLink($FleetRow, ''), pretty_number($FleetRow['fleet_resource_metal']), $lang['Metal'], pretty_number($FleetRow['fleet_resource_crystal']), $lang['Crystal'], pretty_number($FleetRow['fleet_resource_deuterium']), $lang['Deuterium']);
            SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_end_time'], 4, $lang['sys_mess_spy_control'], $lang['sys_mess_fleetback'], $Message);
            RestoreFleetToPlanet($FleetRow, true);
            doquery("DELETE FROM {{table}} WHERE `fleet_id` = '" . $FleetRow["fleet_id"] . "';", 'fleets');
        }
    }
}
/**
* 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');
    }
}
Example #27
0
function BuildFleetEventTable($FleetRow, $Status, $Owner, $Label, $Record)
{
    global $lang;
    $FleetStyle = array(1 => 'attack', 2 => 'federation', 3 => 'transport', 4 => 'deploy', 5 => 'hold', 6 => 'espionage', 7 => 'colony', 8 => 'harvest', 9 => 'destroy', 10 => 'missile', 15 => 'transport');
    $FleetStatus = array(0 => 'flight', 1 => 'holding', 2 => 'return');
    if ($Owner == true) {
        $FleetPrefix = 'own';
    } else {
        $FleetPrefix = '';
    }
    $RowsTPL = gettemplate('overview_fleet_event');
    $MissionType = $FleetRow['fleet_mission'];
    $FleetContent = CreateFleetPopupedFleetLink($FleetRow, $lang['ov_fleet'], $FleetPrefix . $FleetStyle[$MissionType]);
    $FleetCapacity = CreateFleetPopupedMissionLink($FleetRow, $lang['type_mission'][$MissionType], $FleetPrefix . $FleetStyle[$MissionType]);
    $StartPlanet = doquery("SELECT `name` FROM {{table}} WHERE `galaxy` = '" . $FleetRow['fleet_start_galaxy'] . "' AND `system` = '" . $FleetRow['fleet_start_system'] . "' AND `planet` = '" . $FleetRow['fleet_start_planet'] . "' AND `planet_type` = '" . $FleetRow['fleet_start_type'] . "';", 'planets', true);
    $StartType = $FleetRow['fleet_start_type'];
    $TargetPlanet = doquery("SELECT `name` FROM {{table}} WHERE `galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND `system` = '" . $FleetRow['fleet_end_system'] . "' AND `planet` = '" . $FleetRow['fleet_end_planet'] . "' AND `planet_type` = '" . $FleetRow['fleet_end_type'] . "';", 'planets', true);
    $TargetType = $FleetRow['fleet_end_type'];
    if ($Status != 2) {
        if ($StartType == 1) {
            $StartID = $lang['ov_planet_to'];
        } elseif ($StartType == 3) {
            $StartID = $lang['ov_moon_to'];
        }
        $StartID .= $StartPlanet['name'] . " ";
        $StartID .= GetStartAdressLink($FleetRow, $FleetPrefix . $FleetStyle[$MissionType]);
        if ($MissionType != 15) {
            if ($TargetType == 1) {
                $TargetID = $lang['ov_planet_to_target'];
            } elseif ($TargetType == 2) {
                $TargetID = $lang['ov_debris_to_target'];
            } elseif ($TargetType == 3) {
                $TargetID = $lang['ov_moon_to_target'];
            }
        } else {
            $TargetID = $lang['ov_explo_to_target'];
        }
        $TargetID .= $TargetPlanet['name'] . " ";
        $TargetID .= GetTargetAdressLink($FleetRow, $FleetPrefix . $FleetStyle[$MissionType]);
    } else {
        if ($StartType == 1) {
            $StartID = $lang['ov_back_planet'];
        } elseif ($StartType == 3) {
            $StartID = $lang['ov_back_moon'];
        }
        $StartID .= $StartPlanet['name'] . " ";
        $StartID .= GetStartAdressLink($FleetRow, $FleetPrefix . $FleetStyle[$MissionType]);
        if ($MissionType != 15) {
            if ($TargetType == 1) {
                $TargetID = $lang['ov_planet_from'];
            } elseif ($TargetType == 2) {
                $TargetID = $lang['ov_debris_from'];
            } elseif ($TargetType == 3) {
                $TargetID = $lang['ov_moon_from'];
            }
        } else {
            $TargetID = $lang['ov_explo_from'];
        }
        $TargetID .= $TargetPlanet['name'] . " ";
        $TargetID .= GetTargetAdressLink($FleetRow, $FleetPrefix . $FleetStyle[$MissionType]);
    }
    if ($Owner == true) {
        $EventString = $lang['ov_une'];
        $EventString .= $FleetContent;
    } else {
        $EventString = $lang['ov_une_hostile'];
        $EventString .= $FleetContent;
        $EventString .= $lang['ov_hostile'];
        $EventString .= BuildHostileFleetPlayerLink($FleetRow);
    }
    if ($Status == 0) {
        $Time = $FleetRow['fleet_start_time'];
        $Rest = $Time - time();
        $EventString .= $lang['ov_vennant'];
        $EventString .= $StartID;
        $EventString .= $lang['ov_atteint'];
        $EventString .= $TargetID;
        $EventString .= $lang['ov_mission'];
    } elseif ($Status == 1) {
        $Time = $FleetRow['fleet_end_stay'];
        $Rest = $Time - time();
        $EventString .= $lang['ov_vennant'];
        $EventString .= $StartID;
        $EventString .= $lang['ov_explo_stay'];
        $EventString .= $TargetID;
        $EventString .= $lang['ov_explo_mission'];
    } elseif ($Status == 2) {
        $Time = $FleetRow['fleet_end_time'];
        $Rest = $Time - time();
        $EventString .= $lang['ov_rentrant'];
        $EventString .= $TargetID;
        $EventString .= $StartID;
        $EventString .= $lang['ov_mission'];
    }
    $EventString .= $FleetCapacity;
    $bloc['fleet_status'] = $FleetStatus[$Status];
    $bloc['fleet_prefix'] = $FleetPrefix;
    $bloc['fleet_style'] = $FleetStyle[$MissionType];
    $bloc['fleet_javai'] = InsertJavaScriptChronoApplet($Label, $Record, $Rest, true);
    $bloc['fleet_order'] = $Label . $Record;
    $bloc['fleet_time'] = gmdate("H:i:s", $Time + 1 * 60 * 60);
    $bloc['fleet_descr'] = $EventString;
    $bloc['fleet_javas'] = InsertJavaScriptChronoApplet($Label, $Record, $Rest, false);
    return parsetemplate($RowsTPL, $bloc);
}
 public function BuildFleetEventTable($FleetRow, $Status, $Owner, $Label, $Record)
 {
     global $lang;
     $FleetStyle = array(1 => 'attack', 2 => 'federation', 3 => 'transport', 4 => 'deploy', 5 => 'hold', 6 => 'espionage', 7 => 'colony', 8 => 'harvest', 9 => 'destroy', 10 => 'missile', 15 => 'transport');
     $FleetStatus = array(0 => 'flight', 1 => 'holding', 2 => 'return');
     if ($Owner == true) {
         $FleetPrefix = 'own';
     } else {
         $FleetPrefix = '';
     }
     $RowsTPL = gettemplate('overview/overview_fleet_event');
     $MissionType = $FleetRow['fleet_mission'];
     $FleetContent = $this->CreateFleetPopupedFleetLink($FleetRow, "flotas", $FleetPrefix . $FleetStyle[$MissionType]);
     $FleetCapacity = $this->CreateFleetPopupedMissionLink($FleetRow, $lang['type_mission'][$MissionType], $FleetPrefix . $FleetStyle[$MissionType]);
     $StartPlanet = doquery("SELECT `name` FROM {{table}} WHERE `galaxy` = '" . intval($FleetRow['fleet_start_galaxy']) . "' AND `system` = '" . intval($FleetRow['fleet_start_system']) . "' AND `planet` = '" . intval($FleetRow['fleet_start_planet']) . "' AND `planet_type` = '" . intval($FleetRow['fleet_start_type']) . "';", 'planets', true);
     $StartType = $FleetRow['fleet_start_type'];
     $TargetPlanet = doquery("SELECT `name` FROM {{table}} WHERE `galaxy` = '" . intval($FleetRow['fleet_end_galaxy']) . "' AND `system` = '" . intval($FleetRow['fleet_end_system']) . "' AND `planet` = '" . intval($FleetRow['fleet_end_planet']) . "' AND `planet_type` = '" . intval($FleetRow['fleet_end_type']) . "';", 'planets', true);
     $TargetType = $FleetRow['fleet_end_type'];
     if ($Status != 2) {
         if ($StartType == 1) {
             $StartID = $lang['cff_from_the_planet'];
         } elseif ($StartType == 3) {
             $StartID = $lang['cff_from_the_moon'];
         }
         $StartID .= $StartPlanet['name'] . " ";
         $StartID .= GetStartAdressLink($FleetRow, $FleetPrefix . $FleetStyle[$MissionType]);
         if ($MissionType != 15) {
             if ($TargetType == 1) {
                 $TargetID = $lang['cff_the_planet'];
             } elseif ($TargetType == 2) {
                 $TargetID = $lang['cff_debris_field'];
             } elseif ($TargetType == 3) {
                 $TargetID = $lang['cff_to_the_moon'];
             }
         } else {
             $TargetID = $lang['cff_the_position'];
         }
         $TargetID .= $TargetPlanet['name'] . " ";
         $TargetID .= GetTargetAdressLink($FleetRow, $FleetPrefix . $FleetStyle[$MissionType]);
     } else {
         if ($StartType == 1) {
             $StartID = $lang['cff_to_the_planet'];
         } elseif ($StartType == 3) {
             $StartID = $lang['cff_the_moon'];
         }
         $StartID .= $StartPlanet['name'] . " ";
         $StartID .= GetStartAdressLink($FleetRow, $FleetPrefix . $FleetStyle[$MissionType]);
         if ($MissionType != 15) {
             if ($TargetType == 1) {
                 $TargetID = $lang['cff_from_planet'];
             } elseif ($TargetType == 2) {
                 $TargetID = $lang['cff_from_debris_field'];
             } elseif ($TargetType == 3) {
                 $TargetID = $lang['cff_from_the_moon'];
             }
         } else {
             $TargetID = $lang['cff_from_position'];
         }
         $TargetID .= $TargetPlanet['name'] . " ";
         $TargetID .= GetTargetAdressLink($FleetRow, $FleetPrefix . $FleetStyle[$MissionType]);
     }
     if ($MissionType == 10) {
         $EventString = $lang['cff_missile_attack'] . " ( " . eregi_replace("(503,)", "", $FleetRow["fleet_array"]) . " ) ";
         $Time = $FleetRow['fleet_start_time'];
         $Rest = $Time - time();
         $EventString .= $lang['cff_from'];
         $EventString .= $StartID;
         $EventString .= $lang['cff_to'];
         $EventString .= $TargetID;
         $EventString .= ".";
     } else {
         if ($Owner == true) {
             $EventString = $lang['cff_one_of_your'];
             $EventString .= $FleetContent;
         } else {
             $EventString = $lang['cff_a'];
             $EventString .= $FleetContent;
             $EventString .= $lang['cff_of'];
             $EventString .= $this->BuildHostileFleetPlayerLink($FleetRow);
         }
         if ($Status == 0) {
             $Time = $FleetRow['fleet_start_time'];
             $Rest = $Time - time();
             $EventString .= $lang['cff_goes'];
             $EventString .= $StartID;
             $EventString .= $lang['cff_toward'];
             $EventString .= $TargetID;
             $EventString .= $lang['cff_with_the_mission_of'];
         } elseif ($Status == 1) {
             $Time = $FleetRow['fleet_end_stay'];
             $Rest = $Time - time();
             $EventString .= $lang['cff_goes'];
             $EventString .= $StartID;
             $EventString .= $lang['cff_to_explore'];
             $EventString .= $TargetID;
             $EventString .= $lang['cff_with_the_mission_of'];
         } elseif ($Status == 2) {
             $Time = $FleetRow['fleet_end_time'];
             $Rest = $Time - time();
             $EventString .= $lang['cff_comming_back'];
             $EventString .= $TargetID;
             $EventString .= $StartID;
             $EventString .= $lang['cff_with_the_mission_of'];
         }
         $EventString .= $FleetCapacity;
     }
     $bloc['fleet_status'] = $FleetStatus[$Status];
     $bloc['fleet_prefix'] = $FleetPrefix;
     $bloc['fleet_style'] = $FleetStyle[$MissionType];
     $bloc['fleet_javai'] = InsertJavaScriptChronoApplet($Label, $Record, $Rest, true);
     $bloc['fleet_order'] = $Label . $Record;
     $bloc['fleet_descr'] = $EventString;
     $bloc['fleet_javas'] = InsertJavaScriptChronoApplet($Label, $Record, $Rest, false);
     return parsetemplate($RowsTPL, $bloc);
 }
Example #29
0
function MissionCaseAttack($FleetRow)
{
    global $phpEx, $xnova_root_path, $pricelist, $lang, $resource, $CombatCaps, $game_config;
    includelang('tech');
    includelang('system');
    if ($FleetRow['fleet_mess'] == 0 && $FleetRow['fleet_start_time'] <= time()) {
        if (!isset($CombatCaps[202]['sd'])) {
            message('<font color=red>' . $lang['sys_no_vars'] . '</font><br />(Error: <font color=red>(!isset($pricelist[202][\'sd\']))</font>. Please report this to an admin.)', $lang['sys_error'], 'fleet.php', 15);
        }
        include $xnova_root_path . "includes/functions/MissionCaseEvoAttack.php";
        $strunitsgesamt = $result['lost']['att'] + $result['lost']['def'];
        $user1lostunits = $result['lost']['att'];
        $user1shotunits = $result['lost']['def'];
        $user2lostunits = $result['lost']['def'];
        $user2shotunits = $result['lost']['att'];
        $strtruemmerfeld = $result['debree']['att'][0] + $result['debree']['def'][0] + $result['debree']['att'][1] + $result['debree']['def'][1] + $result['debree']['att'][2] + $result['debree']['def'][2];
        $strtruemmermetal = $result['debree']['att'][0] + $result['debree']['def'][0];
        $strtruemmercrystal = $result['debree']['att'][1] + $result['debree']['def'][1];
        $strtruemmerappolonium = $result['debree']['att'][2] + $result['debree']['def'][2];
        $FleetDebris = $result['debree']['att'][0] + $result['debree']['def'][0] + $result['debree']['att'][1] + $result['debree']['def'][1] + $result['debree']['att'][2] + $result['debree']['def'][2];
        $StrAttackerUnits = sprintf($lang['sys_attacker_lostunits'], $result['lost']['att']);
        $StrDefenderUnits = sprintf($lang['sys_defender_lostunits'], $result['lost']['def']);
        $StrRuins = sprintf($lang['sys_gcdrunits'], $result['debree']['def'][0] + $result['debree']['att'][0], $lang['Metal'], $result['debree']['def'][1] + $result['debree']['att'][1], $lang['Crystal'], $result['debree']['def'][2] + $result['debree']['att'][2], $lang['Appolonium']);
        $DebrisField = $StrAttackerUnits . "<br />" . $StrDefenderUnits . "<br />" . $StrRuins;
        $MoonChance = $FleetDebris / 100000;
        if ($FleetDebris > 2000000) {
            $MoonChance = 20;
        }
        if ($FleetDebris < 100000) {
            $UserChance = 0;
            $ChanceMoon = "";
        } elseif ($FleetDebris >= 100000) {
            $UserChance = mt_rand(1, 100);
            $ChanceMoon = sprintf($lang['sys_moonproba'], $MoonChance);
        }
        if ($UserChance > 0 && $UserChance <= $MoonChance && $targetGalaxy['id_luna'] == 0) {
            $TargetPlanetName = CreateOneMoonRecord($FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet'], $TargetUserID, $FleetRow['fleet_start_time'], '', $MoonChance);
            $GottenMoon = sprintf($lang['sys_moonbuilt'], $TargetPlanetName, $FleetRow['fleet_end_galaxy'], $FleetRow['fleet_end_system'], $FleetRow['fleet_end_planet']);
            $GottenMoon .= "<br />";
            //Abfrage der Größe des Trümmerfeldes?
            $QrySelectGalaxy = "SELECT * FROM {{table}} ";
            $QrySelectGalaxy .= "WHERE ";
            $QrySelectGalaxy .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
            $QrySelectGalaxy .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
            $QrySelectGalaxy .= "`planet` = '" . $FleetRow['fleet_end_planet'] . "' ";
            $QrySelectGalaxy .= "LIMIT 1;";
            $TargetGalaxy = doquery($QrySelectGalaxy, 'galaxy', true);
            // Trümmerfeld wird gelöscht da der Mond aus den Trümmern entstanden ist!.
            $QryUpdateGalaxy = "UPDATE {{table}} SET ";
            $QryUpdateGalaxy .= "`metal` = `metal` - '" . $TargetGalaxy["metal"] . "', ";
            $QryUpdateGalaxy .= "`crystal` = `crystal` - '" . $TargetGalaxy["crystal"] . "',";
            $QryUpdateGalaxy .= "`appolonium` = `appolonium` - '" . $TargetGalaxy["appolonium"] . "' ";
            $QryUpdateGalaxy .= "WHERE ";
            $QryUpdateGalaxy .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
            $QryUpdateGalaxy .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
            $QryUpdateGalaxy .= "`planet` = '" . $FleetRow['fleet_end_planet'] . "' ";
            $QryUpdateGalaxy .= "LIMIT 1;";
            doquery($QryUpdateGalaxy, 'galaxy');
        } elseif ($UserChance = 0 or $UserChance > $MoonChance) {
            $GottenMoon = "";
        }
        $OwnedUser = doquery('SELECT * FROM {{table}} WHERE id=' . $FleetRow['fleet_owner'], 'users', true);
        $formatted_cr = formatCR($result, $steal, $MoonChance, $GottenMoon, $totaltime);
        $raport = $formatted_cr['html'];
        $rid = md5($raport);
        $QryInsertRapport = 'INSERT INTO {{table}} SET ';
        $QryInsertRapport .= '`time` = UNIX_TIMESTAMP(), ';
        foreach ($attackFleets as $fleetID => $attacker) {
            $users2[$attacker['user']['id']] = $attacker['user']['id'];
        }
        foreach ($defense as $fleetID => $defender) {
            $users2[$defender['user']['id']] = $defender['user']['id'];
        }
        $QryInsertRapport .= '`owners` = "' . implode(',', $users2) . '", ';
        $QryInsertRapport .= '`rid` = "' . $rid . '", ';
        $QryInsertRapport .= '`raport` = "' . mysql_real_escape_string($raport) . '"';
        doquery($QryInsertRapport, 'rw') or die("Error inserting CR to database" . mysql_error() . "<br /><br />Trying to execute:" . mysql_query());
        $angreifer = $formatted_cr['angreifer'];
        $dpath = !$user["dpath"] ? DEFAULT_SKINPATH : $user["dpath"];
        $rid = md5($raport);
        $QryInserttopkb = "INSERT INTO {{table}} SET ";
        $QryInserttopkb .= "`time` = UNIX_TIMESTAMP(), ";
        $QryInserttopkb .= "`id_owner1` = '" . $FleetRow['fleet_owner'] . "', ";
        $QryInserttopkb .= "`angreifer` = '" . $angreifer . "', ";
        $QryInserttopkb .= "`id_owner2` = '" . $targetUser['id'] . "', ";
        $QryInserttopkb .= "`defender` = '" . $targetUser['username'] . "', ";
        $QryInserttopkb .= "`gesamtunits` = '" . $strunitsgesamt . "', ";
        $QryInserttopkb .= "`gesamttruemmer` = '" . $strtruemmerfeld . "', ";
        $QryInserttopkb .= "`rid` = '" . $rid . "', ";
        $QryInserttopkb .= "`a_zestrzelona` = '" . $a_zestrzelona . "', ";
        $QryInserttopkb .= "`raport` = '" . mysql_real_escape_string($raport) . "',";
        $QryInserttopkb .= "`fleetresult` = '" . $result['won'] . "';";
        doquery("LOCK TABLE {{table}} WRITE", 'topkb');
        doquery($QryInserttopkb, 'topkb');
        doquery("UNLOCK TABLES", '');
        $user1stat = $FleetRow['fleet_owner'];
        $user2stat = $TargetUserID;
        $raport = '<a href # OnClick=\'f( "rw.php?raport=' . $rid . '", "");\' >';
        $raport .= '<center>';
        if ($result['won'] == "a") {
            $raport .= '<font color=\'green\'>';
        } elseif ($result['won'] == "w") {
            $raport .= '<font color=\'orange\'>';
        } elseif ($result['won'] == "r") {
            $raport .= '<font color=\'red\'>';
        }
        $raport .= $lang['sys_mess_attack_report'] . ' [' . $FleetRow['fleet_end_galaxy'] . ':' . $FleetRow['fleet_end_system'] . ':' . $FleetRow['fleet_end_planet'] . '] </font></a><br /><br />';
        $raport .= '<font color=\'red\'>' . $lang['sys_perte_attaquant'] . ': ' . $result['lost']['att'] . '</font>';
        $raport .= '<font color=\'green\'>   ' . $lang['sys_perte_defenseur'] . ': ' . $result['lost']['def'] . '</font><br />';
        $raport .= $lang['sys_gain'] . ' ' . $lang['Metal'] . ':<font color=\'#adaead\'>' . $steal['metal'] . '</font>   ' . $lang['Crystal'] . ':<font color=\'#ef51ef\'>' . $steal['crystal'] . '</font>   ' . $lang['Deuterium'] . ':<font color=\'#f77542\'>' . $steal['deuterium'] . '</font>   ' . $lang['Appolonium'] . ':<font color=\'#ffa07a\'>' . $steal['appolonium'] . '</font><br />';
        $raport .= $lang['sys_debris'] . ' ' . $lang['Metal'] . ': <font color=\'#adaead\'>' . ($result['debree']['att'][0] + $result['debree']['def'][0]) . '</font>   ' . $lang['Crystal'] . ': <font color=\'#ef51ef\'>' . ($result['debree']['att'][1] + $result['debree']['def'][1]) . '</font>   ' . $lang['Appolonium'] . ': <font color=\'#ef51ef\'>' . ($result['debree']['att'][2] + $result['debree']['def'][2]) . '</font><br /></center>';
        SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport);
        $raport2 = '<a href # OnClick=\'f( "rw.php?raport=' . $rid . '", "");\' >';
        $raport2 .= '<center>';
        if ($result['won'] == "a") {
            $raport2 .= '<font color=\'red\'>';
        } elseif ($result['won'] == "w") {
            $raport2 .= '<font color=\'orange\'>';
        } elseif ($result['won'] == "r") {
            $raport2 .= '<font color=\'green\'>';
        }
        $raport2 .= $lang['sys_mess_attack_report'] . ' [' . $FleetRow['fleet_end_galaxy'] . ':' . $FleetRow['fleet_end_system'] . ':' . $FleetRow['fleet_end_planet'] . '] </font></a><br /><br />';
        foreach ($users2 as $id) {
            if ($id != $FleetRow['fleet_owner'] && $id != 0) {
                SendSimpleMessage($id, '', $FleetRow['fleet_start_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_attack_report'], $raport2);
            }
        }
        $user1 = doquery("SELECT * FROM {{table}} WHERE `id` = '" . $user1stat . "';", 'users');
        while ($user1data = mysql_fetch_assoc($user1)) {
            $strtruemmermetaluser1 = $strtruemmermetal + $user1data['kbmetal'];
            $strtruemmercrystaluser1 = $strtruemmercrystal + $user1data['kbcrystal'];
            $strtruemmerappoloniumuser1 = $strtruemmerappolonium + $user1data['kbappolonium'];
            $user1lostunits = $user1lostunits + $user1data['lostunits'];
            $user1shotunits = $user1shotunits + $user1data['desunits'];
            $user1wons = $user1data['wons'];
            $user1loos = $user1data['loos'];
            $user1draws = $user1data['draws'];
        }
        $user2 = doquery("SELECT * FROM {{table}} WHERE `id` = '" . $user2stat . "';", 'users');
        while ($user2data = mysql_fetch_assoc($user2)) {
            $strtruemmermetaluser2 = $strtruemmermetal + $user2data['kbmetal'];
            $strtruemmercrystaluser2 = $strtruemmercrystal + $user2data['kbcrystal'];
            $strtruemmerappoloniumuser2 = $strtruemmerappolonium + $user2data['kbappolonium'];
            $user2lostunits = $user2lostunits + $user2data['lostunits'];
            $user2shotunits = $user2shotunits + $user2data['desunits'];
            $user2wons = $user2data['wons'];
            $user2loos = $user2data['loos'];
            $user2draws = $user2data['draws'];
        }
        if ($result['won'] == "a") {
            $user1wons = $user1wons + 1;
            $user2loos = $user2loos + 1;
        } elseif ($result['won'] == "w") {
            $user1draws = $user1draws + 1;
            $user2draws = $user2draws + 1;
        } elseif ($result['won'] == "r") {
            $user1loos = $user1loos + 1;
            $user2wons = $user2wons + 1;
        }
        $QryUpdateuserstat = "UPDATE {{table}} SET ";
        $QryUpdateuserstat .= "`wons` = '" . $user1wons . "', ";
        $QryUpdateuserstat .= "`loos` = '" . $user1loos . "', ";
        $QryUpdateuserstat .= "`draws` = '" . $user1draws . "', ";
        $QryUpdateuserstat .= "`kbmetal` = '" . $strtruemmermetaluser1 . "', ";
        $QryUpdateuserstat .= "`kbcrystal` = '" . $strtruemmercrystaluser1 . "', ";
        $QryUpdateuserstat .= "`kbappolonium` = '" . $strtruemmerappoloniumuser1 . "', ";
        $QryUpdateuserstat .= "`lostunits` = '" . $user1lostunits . "', ";
        $QryUpdateuserstat .= "`desunits` = '" . $user1shotunits . "' ";
        $QryUpdateuserstat .= "WHERE ";
        $QryUpdateuserstat .= "`id` = '" . $FleetRow['fleet_owner'] . "';";
        doquery($QryUpdateuserstat, 'users');
        $QryUpdateuser2stat = "UPDATE {{table}} SET ";
        $QryUpdateuser2stat .= "`wons` = '" . $user2wons . "', ";
        $QryUpdateuser2stat .= "`loos` = '" . $user2loos . "', ";
        $QryUpdateuser2stat .= "`draws` = '" . $user2draws . "', ";
        $QryUpdateuser2stat .= "`kbmetal` = '" . $strtruemmermetaluser2 . "', ";
        $QryUpdateuser2stat .= "`kbcrystal` = '" . $strtruemmercrystaluser2 . "', ";
        $QryUpdateuser2stat .= "`kbappolonium` = '" . $strtruemmerappoloniumuser2 . "', ";
        $QryUpdateuser2stat .= "`lostunits` = '" . $user2lostunits . "', ";
        $QryUpdateuser2stat .= "`desunits` = '" . $user2shotunits . "' ";
        $QryUpdateuser2stat .= "WHERE ";
        $QryUpdateuser2stat .= "`id` = '" . $targetUser['id'] . "';";
        doquery($QryUpdateuser2stat, 'users');
        $CurrentUser = doquery("SELECT * FROM {{table}} WHERE id = " . $FleetRow['fleet_owner'], 'users', true);
        $CurrentUserID = $CurrentUser['id'];
        $AddPoint = $CurrentUser['xpraid'] + 1;
        $QryUpdateOfficier = "UPDATE {{table}} SET ";
        $QryUpdateOfficier .= "`xpraid` = '" . $AddPoint . "' ";
        $QryUpdateOfficier .= "WHERE id = '" . $CurrentUserID . "' ";
        $QryUpdateOfficier .= "LIMIT 1 ;";
        doquery($QryUpdateOfficier, 'users');
        $RaidsTotal = $CurrentUser['raids'] + 1;
        if ($result['won'] == "a") {
            $RaidsWin = $CurrentUser['raidswin'] + 1;
            $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
            $QryUpdateRaidsCompteur .= "`raidswin` ='" . $RaidsWin . "', ";
            $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
            $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
            $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
            doquery($QryUpdateRaidsCompteur, 'users');
        } elseif ($result['won'] == "r" || $result['won'] == "w") {
            $RaidsLoose = $CurrentUser['raidsloose'] + 1;
            $QryUpdateRaidsCompteur = "UPDATE {{table}} SET ";
            $QryUpdateRaidsCompteur .= "`raidsloose` ='" . $RaidsLoose . "', ";
            $QryUpdateRaidsCompteur .= "`raids` ='" . $RaidsTotal . "' ";
            $QryUpdateRaidsCompteur .= "WHERE id = '" . $CurrentUserID . "' ";
            $QryUpdateRaidsCompteur .= "LIMIT 1 ;";
            doquery($QryUpdateRaidsCompteur, 'users');
        }
    } elseif ($FleetRow['fleet_end_time'] <= time()) {
        $Message = sprintf($lang['sys_tran_mess_angriffback'], $TargetName, GetTargetAdressLink($FleetRow, ''), pretty_number($FleetRow['fleet_resource_metal']), $lang['Metal'], pretty_number($FleetRow['fleet_resource_crystal']), $lang['Crystal'], pretty_number($FleetRow['fleet_resource_deuterium']), $lang['Deuterium'], pretty_number($FleetRow['fleet_resource_appolonium']), $lang['Appolonium']);
        SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_end_time'], 3, $lang['sys_mess_tower'], $lang['sys_mess_fleetback'], $Message);
        RestoreFleetToPlanet($FleetRow);
        doquery('DELETE FROM {{table}} WHERE `fleet_id`=' . $FleetRow['fleet_id'], 'fleets');
        //Piratenangriff nach Zufallsprinzip
        $zufall = 0;
        $zufall = rand(1, 10);
        if ($zufall == 7) {
            Piratenangriff($FleetRow);
            $zufall = 0;
        }
        // Ende Piratenangriff
    }
}
Example #30
0
/**
 * MissionCaseRecycling.php
 *
 * @version 1.0
 * @copyright 2008 By Chlorel for XNova
 */
function MissionCaseRecycling($FleetRow)
{
    global $pricelist, $lang;
    if ($FleetRow["fleet_mess"] == 0) {
        if ($FleetRow['fleet_start_time'] <= time()) {
            $QrySelectGalaxy = "SELECT * FROM {{table}} ";
            $QrySelectGalaxy .= "WHERE ";
            $QrySelectGalaxy .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
            $QrySelectGalaxy .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
            $QrySelectGalaxy .= "`planet` = '" . $FleetRow['fleet_end_planet'] . "' ";
            $QrySelectGalaxy .= "LIMIT 1;";
            $TargetGalaxy = doquery($QrySelectGalaxy, 'galaxy', true);
            $FleetRecord = explode(";", $FleetRow['fleet_array']);
            $RecyclerCapacity = 0;
            $OtherFleetCapacity = 0;
            foreach ($FleetRecord as $Item => $Group) {
                if ($Group != '') {
                    $Class = explode(",", $Group);
                    if ($Class[0] == 209) {
                        $RecyclerCapacity += $pricelist[$Class[0]]["capacity"] * $Class[1];
                    } else {
                        $OtherFleetCapacity += $pricelist[$Class[0]]["capacity"] * $Class[1];
                    }
                }
                if ($Group != '') {
                    $Class = explode(",", $Group);
                    if ($Class[0] == 219) {
                        $RecyclerCapacity += $pricelist[$Class[0]]["capacity"] * $Class[1];
                    } else {
                        $OtherFleetCapacity += $pricelist[$Class[0]]["capacity"] * $Class[1];
                    }
                }
            }
            $IncomingFleetGoods = $FleetRow["fleet_resource_metal"] + $FleetRow["fleet_resource_crystal"] + $FleetRow["fleet_resource_deuterium"];
            if ($IncomingFleetGoods > $OtherFleetCapacity) {
                $RecyclerCapacity -= $IncomingFleetGoods - $OtherFleetCapacity;
            }
            if ($TargetGalaxy["metal"] + $TargetGalaxy["crystal"] <= $RecyclerCapacity) {
                $RecycledGoods["metal"] = $TargetGalaxy["metal"];
                $RecycledGoods["crystal"] = $TargetGalaxy["crystal"];
            } else {
                if ($TargetGalaxy["metal"] > $RecyclerCapacity / 2 and $TargetGalaxy["crystal"] > $RecyclerCapacity / 2) {
                    $RecycledGoods["metal"] = $RecyclerCapacity / 2;
                    $RecycledGoods["crystal"] = $RecyclerCapacity / 2;
                } else {
                    if ($TargetGalaxy["metal"] > $TargetGalaxy["crystal"]) {
                        $RecycledGoods["crystal"] = $TargetGalaxy["crystal"];
                        if ($TargetGalaxy["metal"] > $RecyclerCapacity - $RecycledGoods["crystal"]) {
                            $RecycledGoods["metal"] = $RecyclerCapacity - $RecycledGoods["crystal"];
                        } else {
                            $RecycledGoods["metal"] = $TargetGalaxy["metal"];
                        }
                    } else {
                        $RecycledGoods["metal"] = $TargetGalaxy["metal"];
                        if ($TargetGalaxy["crystal"] > $RecyclerCapacity - $RecycledGoods["metal"]) {
                            $RecycledGoods["crystal"] = $RecyclerCapacity - $RecycledGoods["metal"];
                        } else {
                            $RecycledGoods["crystal"] = $TargetGalaxy["crystal"];
                        }
                    }
                }
            }
            /*
            //Script Auto Reload
                              $page .= '<script type="text/javascript">
            
            	              var zeit = new Date();
            	              var ende = zeit.getTime();
            	              ende = ende + 100;
            
            	              function countdown() {
            
            		          var zeit2 = new Date();
            		          var jetzt = zeit2.getTime();
            
            		          if(jetzt >= ende) {
            
                  window.location.href="fleet.php";
            
            		            }
            
            	              }
            
            	             setInterval(countdown, 3000);
            
                           </script>';
                        //Script Auto Reload Ende
            */
            $NewCargo['Metal'] = $FleetRow["fleet_resource_metal"] + $RecycledGoods["metal"];
            $NewCargo['Crystal'] = $FleetRow["fleet_resource_crystal"] + $RecycledGoods["crystal"];
            $QryUpdateGalaxy = "UPDATE {{table}} SET ";
            $QryUpdateGalaxy .= "`metal` = `metal` - '" . $RecycledGoods["metal"] . "', ";
            $QryUpdateGalaxy .= "`crystal` = `crystal` - '" . $RecycledGoods["crystal"] . "' ";
            $QryUpdateGalaxy .= "WHERE ";
            $QryUpdateGalaxy .= "`galaxy` = '" . $FleetRow['fleet_end_galaxy'] . "' AND ";
            $QryUpdateGalaxy .= "`system` = '" . $FleetRow['fleet_end_system'] . "' AND ";
            $QryUpdateGalaxy .= "`planet` = '" . $FleetRow['fleet_end_planet'] . "' ";
            $QryUpdateGalaxy .= "LIMIT 1;";
            doquery($QryUpdateGalaxy, 'galaxy');
            $Message = sprintf($lang['sys_recy_gotten'], pretty_number($RecycledGoods["metal"]), $lang['Metal'], pretty_number($RecycledGoods["crystal"]), $lang['Crystal']);
            SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_start_time'], 4, $lang['sys_mess_tower'], $lang['sys_recy_report'], $Message);
            $QryUpdateFleet = "UPDATE {{table}} SET ";
            $QryUpdateFleet .= "`fleet_resource_metal` = '" . $NewCargo['Metal'] . "', ";
            $QryUpdateFleet .= "`fleet_resource_crystal` = '" . $NewCargo['Crystal'] . "', ";
            $QryUpdateFleet .= "`fleet_mess` = '1' ";
            $QryUpdateFleet .= "WHERE ";
            $QryUpdateFleet .= "`fleet_id` = '" . $FleetRow['fleet_id'] . "' ";
            $QryUpdateFleet .= "LIMIT 1;";
            doquery($QryUpdateFleet, 'fleets');
        }
    } else {
        if ($FleetRow['fleet_end_time'] <= time()) {
            // Mettre le message de retour de flotte
            $Message = sprintf($lang['sys_tran_mess_recback'], $TargetName, GetTargetAdressLink($FleetRow, ''), pretty_number($FleetRow['fleet_resource_metal']), $lang['Metal'], pretty_number($FleetRow['fleet_resource_crystal']), $lang['Crystal']);
            SendSimpleMessage($FleetRow['fleet_owner'], '', $FleetRow['fleet_end_time'], 4, $lang['sys_mess_tower'], $lang['sys_mess_fleetback'], $Message);
            RestoreFleetToPlanet($FleetRow, true);
            doquery("DELETE FROM {{table}} WHERE `fleet_id` = '" . $FleetRow["fleet_id"] . "';", 'fleets');
        }
    }
}