Advertisement
Guest User

class.FleetFunctions.php

a guest
Jan 5th, 2019
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 19.10 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4.  *  2Moons
  5.  *   by Jan-Otto Kröpke 2009-2016
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  *
  9.  * @package 2Moons
  10.  * @author Jan-Otto Kröpke <slaver7@gmail.com>
  11.  * @copyright 2009 Lucky
  12.  * @copyright 2016 Jan-Otto Kröpke <slaver7@gmail.com>
  13.  * @licence MIT
  14.  * @version 1.8.0
  15.  * @link https://github.com/jkroepke/2Moons
  16.  */
  17.  
  18. class FleetFunctions
  19. {
  20.     static $allowedSpeed    = array(10 => 100, 9 => 90, 8 => 80, 7 => 70, 6 => 60, 5 => 50, 4 => 40, 3 => 30, 2 => 20, 1 => 10);
  21.     private static function GetShipConsumption($Ship, $Player)
  22.     {
  23.         global $pricelist;
  24.  
  25.         return (($Player['impulse_motor_tech'] >= 5 && $Ship == 202) || ($Player['hyperspace_motor_tech'] >= 8 && $Ship == 211)) ? $pricelist[$Ship]['consumption2'] : $pricelist[$Ship]['consumption'];
  26.     }
  27.  
  28.     private static function OnlyShipByID($Ships, $ShipID)
  29.     {
  30.         return isset($Ships[$ShipID]) && count($Ships) === 1;
  31.     }
  32.  
  33.     private static function GetShipSpeed($Ship, $Player)
  34.     {
  35.         global $pricelist;
  36.         $techSpeed  = $pricelist[$Ship]['tech'];
  37.         if($techSpeed == 4) {
  38.             $techSpeed = $Player['impulse_motor_tech'] >= 5 ? 2 : 1;
  39.         }
  40.         if($techSpeed == 5) {
  41.             $techSpeed = $Player['hyperspace_motor_tech'] >= 8 ? 3 : 2;
  42.         }
  43.         $el = "speed";
  44.                 if( $Ship == 202 and $Player['impulse_motor_tech'] >= 5) {$techSpeed = 2;  $el = "speed2";}
  45.         switch($techSpeed)
  46.         {
  47.             case 1:
  48.                 $speed  = $pricelist[$Ship][$el] * (1 + (0.1 * $Player['combustion_tech']));
  49.             break;
  50.             case 2:
  51.                 $speed  = $pricelist[$Ship][$el] * (1 + (0.2 * $Player['impulse_motor_tech']));
  52.             break;
  53.             case 3:
  54.                 $speed  = $pricelist[$Ship][$el] * (1 + (0.3 * $Player['hyperspace_motor_tech']));
  55.             break; 
  56.             default:
  57.                 $speed  = 0;
  58.             break;
  59.         }
  60.  
  61.         return $speed;
  62.     }
  63.     public static function getExpeditionLimit($USER)
  64.     {
  65.         return floor(sqrt($USER[$GLOBALS['resource'][124]]));
  66.     }
  67.     public static function getDMMissionLimit($USER)
  68.     {
  69.         return Config::get($USER['universe'])->max_dm_missions;
  70.     }
  71.     public static function getMissileRange($Level)
  72.     {
  73.         return max(($Level * 5) - 1, 0);
  74.     }
  75.     public static function CheckUserSpeed($speed)
  76.     {
  77.         return isset(self::$allowedSpeed[$speed]);
  78.     }
  79.  
  80.     public static function GetTargetDistance($start, $target)
  81.     {
  82.         if ($start[0] != $target[0])
  83.             return abs($start[0] - $target[0]) * 20000;
  84.         if ($start[1] != $target[1])
  85.             return abs($start[1] - $target[1]) * 95 + 2700;
  86.         if ($start[2] != $target[2])
  87.             return abs($start[2] - $target[2]) * 5 + 1000;
  88.  
  89.         return 5;
  90.     }
  91.  
  92.     public static function GetMissionDuration($SpeedFactor, $MaxFleetSpeed, $Distance, $GameSpeed, $USER)
  93.     {
  94.         $SpeedFactor    = (3500 / ($SpeedFactor * 0.1));
  95.         $SpeedFactor    *= pow($Distance * 10 / $MaxFleetSpeed, 0.5);
  96.         $SpeedFactor    += 10;
  97.         $SpeedFactor    /= $GameSpeed;
  98.         if(isset($USER['factor']['FlyTime']))
  99.         {
  100.             $SpeedFactor    *= max(0, 1 + $USER['factor']['FlyTime']);
  101.         }
  102.         return max($SpeedFactor, MIN_FLEET_TIME);
  103.     }
  104.     public static function GetMIPDuration($startSystem, $targetSystem)
  105.     {
  106.         $Distance = abs($startSystem - $targetSystem);
  107.         $Duration = max(round((30 + 60 * $Distance) / self::GetGameSpeedFactor()), MIN_FLEET_TIME);
  108.         return $Duration;
  109.     }
  110.  
  111.     public static function GetGameSpeedFactor()
  112.     {
  113.         return Config::get()->fleet_speed / 2500;
  114.     }
  115.     public static function GetMaxFleetSlots($USER)
  116.     {
  117.         global $resource;
  118.         return 1 + $USER[$resource[108]] + $USER['factor']['FleetSlots'];
  119.     }
  120.  
  121.     public static function GetFleetRoom($Fleet)
  122.     {
  123.         global $pricelist;
  124.         $FleetRoom              = 0;
  125.         foreach ($Fleet as $ShipID => $amount)
  126.         {
  127.             $FleetRoom         += $pricelist[$ShipID]['capacity'] * $amount;
  128.         }
  129.         return $FleetRoom;
  130.     }
  131.     public static function GetFleetMaxSpeed ($Fleets, $Player)
  132.     {
  133.         if(empty($Fleets)) {
  134.             return 0;
  135.         }
  136.  
  137.         $FleetArray = (!is_array($Fleets)) ? array($Fleets => 1) : $Fleets;
  138.         $speedalls  = array();
  139.         foreach ($FleetArray as $Ship => $Count) {
  140.             $speedalls[$Ship] = self::GetShipSpeed($Ship, $Player);
  141.         }
  142.         return min($speedalls);
  143.     }
  144.  
  145.     public static function GetFleetConsumption($FleetArray, $MissionDuration, $MissionDistance, $Player, $GameSpeed)
  146.     {
  147.         $consumption = 0;
  148.  
  149.         foreach ($FleetArray as $Ship => $Count)
  150.         {
  151.             $ShipSpeed          = self::GetShipSpeed($Ship, $Player);
  152.             $ShipConsumption    = self::GetShipConsumption($Ship, $Player);
  153.             $spd                = 35000 / max($MissionDuration * $GameSpeed - 10, 1) * sqrt($MissionDistance * 10 / $ShipSpeed);
  154.             $basicConsumption   = $ShipConsumption * $Count;
  155.             $consumption        += $basicConsumption * $MissionDistance / 35000 * (($spd / 10) + 1) * (($spd / 10) + 1);
  156.         }
  157.         return (round($consumption) + 1);
  158.     }
  159.  
  160.     public static function GetFleetMissions($USER, $MisInfo, $Planet)
  161.     {
  162.         global $resource;
  163.         $Missions   = self::GetAvailableMissions($USER, $MisInfo, $Planet);
  164.         $stayBlock  = array();
  165.  
  166.         $haltSpeed  = Config::get($USER['universe'])->halt_speed;
  167.  
  168.         if (in_array(15, $Missions)) {
  169.             for($i = 1;$i <= $USER[$resource[124]];$i++)
  170.             {
  171.                 $stayBlock[$i]  = round($i / $haltSpeed, 2);
  172.             }
  173.         }
  174.         elseif(in_array(11, $Missions))
  175.         {
  176.             $stayBlock = array(1 => 1);
  177.         }
  178.         elseif(in_array(5, $Missions))
  179.         {
  180.             $stayBlock = array(1 => 1, 2 => 2, 4 => 4, 8 => 8, 12 => 12, 16 => 16, 32 => 32);
  181.         }
  182.         return array('MissionSelector' => $Missions, 'StayBlock' => $stayBlock);
  183.     }
  184.  
  185.     /*
  186.      *
  187.      * Unserialize an Fleetstring to an array
  188.      *
  189.      * @param string
  190.      *
  191.      * @return array
  192.      *
  193.      */
  194.  
  195.     public static function unserialize($fleetAmount)
  196.     {
  197.         $fleetTyps      = explode(';', $fleetAmount);
  198.  
  199.         $fleetAmount    = array();
  200.  
  201.         foreach ($fleetTyps as $fleetTyp)
  202.         {
  203.             $temp = explode(',', $fleetTyp);
  204.  
  205.             if (empty($temp[0])) continue;
  206.  
  207.             if (!isset($fleetAmount[$temp[0]]))
  208.             {
  209.                 $fleetAmount[$temp[0]] = 0;
  210.             }
  211.  
  212.             $fleetAmount[$temp[0]] += $temp[1];
  213.         }
  214.  
  215.         return $fleetAmount;
  216.     }
  217.  
  218.     public static function GetACSDuration($acsId)
  219.     {
  220.         if(empty($acsId))
  221.         {
  222.             return 0;
  223.         }
  224.  
  225.         $sql            = 'SELECT ankunft FROM %%AKS%% WHERE id = :acsId;';
  226.         $acsEndTime     = Database::get()->selectSingle($sql, array(
  227.             ':acsId'    => $acsId
  228.         ), 'ankunft');
  229.         return empty($acsEndTime) ? $acsEndTime - TIMESTAMP : 0;
  230.     }
  231.     public static function setACSTime($timeDifference, $acsId)
  232.     {
  233.         if(empty($acsId))
  234.         {
  235.             throw new InvalidArgumentException('Missing acsId on '.__CLASS__.'::'.__METHOD__);
  236.         }
  237.  
  238.         $db     = Database::get();
  239.  
  240.         $sql    = 'UPDATE %%AKS%% SET ankunft = ankunft + :time WHERE id = :acsId;';
  241.         $db->update($sql, array(
  242.             ':time'     => $timeDifference,
  243.             ':acsId'    => $acsId,
  244.         ));
  245.  
  246.         $sql    = 'UPDATE %%FLEETS%%, %%FLEETS_EVENT%% SET
  247.         fleet_start_time = fleet_start_time + :time,
  248.         fleet_end_stay   = fleet_end_stay + :time,
  249.         fleet_end_time   = fleet_end_time + :time,
  250.         time             = time + :time
  251.         WHERE fleet_group = :acsId AND fleet_id = fleetID;';
  252.  
  253.         $db->update($sql, array(
  254.             ':time'     => $timeDifference,
  255.             ':acsId'    => $acsId,
  256.         ));
  257.  
  258.         return true;
  259.     }
  260.  
  261.     public static function GetCurrentFleets($userId, $fleetMission = 10, $thisMission = false)
  262.     {
  263.         if($thisMission)
  264.         {
  265.             $sql = 'SELECT COUNT(*) as state
  266.             FROM %%FLEETS%%
  267.             WHERE fleet_owner = :userId
  268.             AND fleet_mission = :fleetMission;';
  269.         }
  270.         else
  271.         {
  272.             $sql = 'SELECT COUNT(*) as state
  273.             FROM %%FLEETS%%
  274.             WHERE fleet_owner = :userId
  275.             AND fleet_mission != :fleetMission;';
  276.         }
  277.  
  278.         $ActualFleets = Database::get()->selectSingle($sql, array(
  279.             ':userId'       => $userId,
  280.             ':fleetMission' => $fleetMission,
  281.         ));
  282.         return $ActualFleets['state'];
  283.     }  
  284.     public static function SendFleetBack($USER, $FleetID)
  285.     {
  286.         $db             = Database::get();
  287.  
  288.         $sql            = 'SELECT start_time, fleet_start_time, fleet_mission, fleet_group, fleet_owner, fleet_mess FROM %%FLEETS%% WHERE fleet_id = :fleetId;';
  289.         $fleetResult    = $db->selectSingle($sql, array(
  290.             ':fleetId'  => $FleetID,
  291.         ));
  292.  
  293.         if ($fleetResult['fleet_owner'] != $USER['id'] || $fleetResult['fleet_mess'] == 1)
  294.         {
  295.             return false;
  296.         }
  297.  
  298.         $sqlWhere   = 'fleet_id';
  299.  
  300.         if($fleetResult['fleet_mission'] == 1 && $fleetResult['fleet_group'] != 0)
  301.         {
  302.             $sql        = 'SELECT COUNT(*) as state FROM %%USERS_ACS%% WHERE acsID = :acsId;';
  303.             $isInGroup  = $db->selectSingle($sql, array(
  304.                 ':acsId'    => $fleetResult['fleet_group'],
  305.             ), 'state');
  306.  
  307.             if($isInGroup)
  308.             {
  309.                 $sql = 'DELETE %%AKS%%, %%USERS_ACS%%
  310.                 FROM %%AKS%%
  311.                 LEFT JOIN %%USERS_ACS%% ON acsID = %%AKS%%.id
  312.                 WHERE %%AKS%%.id = :acsId;';
  313.  
  314.                 $db->delete($sql, array(
  315.                     ':acsId'    => $fleetResult['fleet_group']
  316.                 ));
  317.                 $FleetID    = $fleetResult['fleet_group'];
  318.                 $sqlWhere   = 'fleet_group';
  319.             }
  320.         }
  321.         if($fleetResult['fleet_mission'] == 5 && $fleetResult['fleet_mess'] == FLEET_HOLD) {
  322.             $fleetEndTime   = ($fleetResult['fleet_start_time'] - $fleetResult['start_time']) + TIMESTAMP;
  323.         } else {
  324.             $fleetEndTime   = (TIMESTAMP - $fleetResult['start_time']) + TIMESTAMP;
  325.         }
  326.         $sql    = 'UPDATE %%FLEETS%%, %%FLEETS_EVENT%% SET
  327.         fleet_group         = :fleetGroup,
  328.         fleet_end_stay      = :endStayTime,
  329.         fleet_end_time      = :endTime,
  330.         fleet_mess          = :fleetState,
  331.         hasCanceled         = :hasCanceled,
  332.         time                = :endTime
  333.         WHERE '.$sqlWhere.' = :id AND fleet_id = fleetID;';
  334.  
  335.         $db->update($sql, array(
  336.             ':id'           => $FleetID,
  337.             ':endStayTime'  => TIMESTAMP,
  338.             ':endTime'      => $fleetEndTime,
  339.             ':fleetGroup'   => 0,
  340.             ':hasCanceled'  => 1,
  341.             ':fleetState'   => FLEET_RETURN
  342.         ));
  343.  
  344.         $sql    = 'UPDATE %%LOG_FLEETS%% SET
  345.         fleet_end_stay  = :endStayTime,
  346.         fleet_end_time  = :endTime,
  347.         fleet_mess      = :fleetState,
  348.         fleet_state     = 2
  349.         WHERE '.$sqlWhere.' = :id;';
  350.  
  351.         $db->update($sql, array(
  352.             ':id'           => $FleetID,
  353.             ':endStayTime'  => TIMESTAMP,
  354.             ':endTime'      => $fleetEndTime,
  355.             ':fleetState'   => FLEET_RETURN
  356.         ));
  357.  
  358.         return true;
  359.     }
  360.     public static function GetFleetShipInfo($FleetArray, $Player)
  361.     {
  362.         $FleetInfo  = array();
  363.         foreach ($FleetArray as $ShipID => $Amount) {
  364.             $FleetInfo[$ShipID] = array('consumption' => self::GetShipConsumption($ShipID, $Player), 'speed' => self::GetFleetMaxSpeed($ShipID, $Player), 'amount' => floatToString($Amount));
  365.         }
  366.         return $FleetInfo;
  367.     }
  368.     public static function GotoFleetPage($Code = 0)
  369.     {  
  370.         global $LNG;
  371.         if(Config::get()->debug == 1)
  372.         {
  373.             $temp = debug_backtrace();
  374.             echo str_replace($_SERVER["DOCUMENT_ROOT"],'.',$temp[0]['file'])." on ".$temp[0]['line']. " | Code: ".$Code." | Error: ".(isset($LNG['fl_send_error'][$Code]) ? $LNG['fl_send_error'][$Code] : '');
  375.             exit;
  376.         }
  377.         HTTP::redirectTo('game.php?page=fleetTable&code='.$Code);
  378.     }
  379.     public static function GetAvailableMissions($USER, $MissionInfo, $GetInfoPlanet)
  380.     {  
  381.         $YourPlanet             = (!empty($GetInfoPlanet['id_owner']) && $GetInfoPlanet['id_owner'] == $USER['id']) ? true : false;
  382.         $UsedPlanet             = (!empty($GetInfoPlanet['id_owner'])) ? true : false;
  383.         $availableMissions      = array();
  384.         if ($MissionInfo['planet'] == (Config::get($USER['universe'])->max_planets + 1) && isModuleAvailable(MODULE_MISSION_EXPEDITION))
  385.             $availableMissions[]    = 15;  
  386.         elseif ($MissionInfo['planettype'] == 2) {
  387.             if ((isset($MissionInfo['Ship'][209]) || isset($MissionInfo['Ship'][219])) && isModuleAvailable(MODULE_MISSION_RECYCLE))
  388.                 $availableMissions[]    = 8;
  389.         } else {
  390.             if (!$UsedPlanet) {
  391.                 if (isset($MissionInfo['Ship'][208]) && $MissionInfo['planettype'] == 1 && isModuleAvailable(MODULE_MISSION_COLONY))
  392.                     $availableMissions[]    = 7;
  393.             } else {
  394.                 if(isModuleAvailable(MODULE_MISSION_TRANSPORT))
  395.                     $availableMissions[]    = 3;
  396.                 if (!$YourPlanet && self::OnlyShipByID($MissionInfo['Ship'], 210) && isModuleAvailable(MODULE_MISSION_SPY))
  397.                     $availableMissions[]    = 6;
  398.  
  399.                 if (!$YourPlanet) {
  400.                     if(isModuleAvailable(MODULE_MISSION_ATTACK))
  401.                         $availableMissions[]    = 1;
  402.                     if(isModuleAvailable(MODULE_MISSION_HOLD))
  403.                         $availableMissions[]    = 5;}
  404.                 elseif(isModuleAvailable(MODULE_MISSION_STATION)) {
  405.                     $availableMissions[]    = 4;}
  406.                 if (!empty($MissionInfo['IsAKS']) && !$YourPlanet && isModuleAvailable(MODULE_MISSION_ATTACK) && isModuleAvailable(MODULE_MISSION_ACS))
  407.                     $availableMissions[]    = 2;
  408.  
  409.                 if (!$YourPlanet && $MissionInfo['planettype'] == 3 && isset($MissionInfo['Ship'][214]) && isModuleAvailable(MODULE_MISSION_DESTROY))
  410.                     $availableMissions[]    = 9;
  411.  
  412.                 if ($YourPlanet && $MissionInfo['planettype'] == 3 && self::OnlyShipByID($MissionInfo['Ship'], 220) && isModuleAvailable(MODULE_MISSION_DARKMATTER))
  413.                     $availableMissions[]    = 11;
  414.             }
  415.         }
  416.         return $availableMissions;
  417.     }
  418.     public static function CheckBash($Target)
  419.     {
  420.         global $USER;
  421.  
  422.         if(!BASH_ON)
  423.         {
  424.             return false;
  425.         }
  426.  
  427.         $sql    = 'SELECT COUNT(*) as state
  428.         FROM %%LOG_FLEETS%%
  429.         WHERE fleet_owner = :fleetOwner
  430.         AND fleet_end_id = :fleetEndId
  431.         AND fleet_state != :fleetState
  432.         AND fleet_start_time > :fleetStartTime
  433.         AND fleet_mission IN (1,2,9);';
  434.  
  435.         $Count  = Database::get()->selectSingle($sql, array(
  436.             ':fleetOwner'       => $USER['id'],
  437.             ':fleetEndId'       => $Target,
  438.             ':fleetState'       => 2,
  439.             ':fleetStartTime'   => (TIMESTAMP - BASH_TIME),
  440.         ));
  441.  
  442.         return $Count['state'] >= BASH_COUNT;
  443.     }
  444.     public static function sendFleet($fleetArray, $fleetMission, $fleetStartOwner, $fleetStartPlanetID,
  445.         $fleetStartPlanetGalaxy, $fleetStartPlanetSystem, $fleetStartPlanetPlanet, $fleetStartPlanetType,
  446.         $fleetTargetOwner, $fleetTargetPlanetID, $fleetTargetPlanetGalaxy, $fleetTargetPlanetSystem,
  447.         $fleetTargetPlanetPlanet, $fleetTargetPlanetType, $fleetResource, $fleetStartTime, $fleetStayTime,
  448.         $fleetEndTime, $fleetGroup = 0, $missileTarget = 0, $consumption = 0)
  449.     {
  450.         global $resource;
  451.         $fleetShipCount = array_sum($fleetArray);
  452.         $fleetData      = array();
  453.  
  454.         $db             = Database::get();
  455.  
  456.         $params         = array(':planetId' => $fleetStartPlanetID);
  457.  
  458.         $planetQuery    = array();
  459.         foreach($fleetArray as $ShipID => $ShipCount) {
  460.             $fleetData[]    = $ShipID.','.floatToString($ShipCount);
  461.             $planetQuery[]  = $resource[$ShipID]." = ".$resource[$ShipID]." - :".$resource[$ShipID];
  462.  
  463.             $params[':'.$resource[$ShipID]] = floatToString($ShipCount);
  464.         }
  465.         if($consumption > 0){
  466.             $planetQuery[] = $resource[903]." = ".$resource[903]." - :".$resource[903];
  467.             $params[':'.$resource[903]] = $consumption;
  468.         }
  469.  
  470.         $sql    = 'UPDATE %%PLANETS%% SET '.implode(', ', $planetQuery).' WHERE id = :planetId;';
  471.  
  472.         $db->update($sql, $params);
  473.  
  474.         $sql    = 'INSERT INTO %%FLEETS%% SET
  475.         fleet_owner                 = :fleetStartOwner,
  476.         fleet_target_owner          = :fleetTargetOwner,
  477.         fleet_mission               = :fleetMission,
  478.         fleet_amount                = :fleetShipCount,
  479.         fleet_array                 = :fleetData,
  480.         fleet_universe              = :universe,
  481.         fleet_start_time            = :fleetStartTime,
  482.         fleet_end_stay              = :fleetStayTime,
  483.         fleet_end_time              = :fleetEndTime,
  484.         fleet_start_id              = :fleetStartPlanetID,
  485.         fleet_start_galaxy          = :fleetStartPlanetGalaxy,
  486.         fleet_start_system          = :fleetStartPlanetSystem,
  487.         fleet_start_planet          = :fleetStartPlanetPlanet,
  488.         fleet_start_type            = :fleetStartPlanetType,
  489.         fleet_end_id                = :fleetTargetPlanetID,
  490.         fleet_end_galaxy            = :fleetTargetPlanetGalaxy,
  491.         fleet_end_system            = :fleetTargetPlanetSystem,
  492.         fleet_end_planet            = :fleetTargetPlanetPlanet,
  493.         fleet_end_type              = :fleetTargetPlanetType,
  494.         fleet_resource_metal        = :fleetResource901,
  495.         fleet_resource_crystal      = :fleetResource902,
  496.         fleet_resource_deuterium    = :fleetResource903,
  497.         fleet_group                 = :fleetGroup,
  498.         fleet_target_obj            = :missileTarget,
  499.         start_time                  = :timestamp;';
  500.  
  501.         $db->insert($sql, array(
  502.             ':fleetStartOwner'          => $fleetStartOwner,
  503.             ':fleetTargetOwner'         => $fleetTargetOwner,
  504.             ':fleetMission'             => $fleetMission,
  505.             ':fleetShipCount'           => $fleetShipCount,
  506.             ':fleetData'                => implode(';', $fleetData),
  507.             ':fleetStartTime'           => $fleetStartTime,
  508.             ':fleetStayTime'            => $fleetStayTime,
  509.             ':fleetEndTime'             => $fleetEndTime,
  510.             ':fleetStartPlanetID'       => $fleetStartPlanetID,
  511.             ':fleetStartPlanetGalaxy'   => $fleetStartPlanetGalaxy,
  512.             ':fleetStartPlanetSystem'   => $fleetStartPlanetSystem,
  513.             ':fleetStartPlanetPlanet'   => $fleetStartPlanetPlanet,
  514.             ':fleetStartPlanetType'     => $fleetStartPlanetType,
  515.             ':fleetTargetPlanetID'      => $fleetTargetPlanetID,
  516.             ':fleetTargetPlanetGalaxy'  => $fleetTargetPlanetGalaxy,
  517.             ':fleetTargetPlanetSystem'  => $fleetTargetPlanetSystem,
  518.             ':fleetTargetPlanetPlanet'  => $fleetTargetPlanetPlanet,
  519.             ':fleetTargetPlanetType'    => $fleetTargetPlanetType,
  520.             ':fleetResource901'         => $fleetResource[901],
  521.             ':fleetResource902'         => $fleetResource[902],
  522.             ':fleetResource903'         => $fleetResource[903],
  523.             ':fleetGroup'               => $fleetGroup,
  524.             ':missileTarget'            => $missileTarget,
  525.             ':timestamp'                => TIMESTAMP,
  526.             ':universe'                 => Universe::current(),
  527.         ));
  528.  
  529.         $fleetId    = $db->lastInsertId();
  530.  
  531.         $sql    = 'INSERT INTO %%FLEETS_EVENT%% SET fleetID = :fleetId, `time` = :endTime;';
  532.         $db->insert($sql, array(
  533.             ':fleetId'  => $fleetId,
  534.             ':endTime'  => $fleetStartTime
  535.         ));
  536.  
  537.         $sql    = 'INSERT INTO %%LOG_FLEETS%% SET
  538.         fleet_id                    = :fleetId,
  539.         fleet_owner                 = :fleetStartOwner,
  540.         fleet_target_owner          = :fleetTargetOwner,
  541.         fleet_mission               = :fleetMission,
  542.         fleet_amount                = :fleetShipCount,
  543.         fleet_array                 = :fleetData,
  544.         fleet_universe              = :universe,
  545.         fleet_start_time            = :fleetStartTime,
  546.         fleet_end_stay              = :fleetStayTime,
  547.         fleet_end_time              = :fleetEndTime,
  548.         fleet_start_id              = :fleetStartPlanetID,
  549.         fleet_start_galaxy          = :fleetStartPlanetGalaxy,
  550.         fleet_start_system          = :fleetStartPlanetSystem,
  551.         fleet_start_planet          = :fleetStartPlanetPlanet,
  552.         fleet_start_type            = :fleetStartPlanetType,
  553.         fleet_end_id                = :fleetTargetPlanetID,
  554.         fleet_end_galaxy            = :fleetTargetPlanetGalaxy,
  555.         fleet_end_system            = :fleetTargetPlanetSystem,
  556.         fleet_end_planet            = :fleetTargetPlanetPlanet,
  557.         fleet_end_type              = :fleetTargetPlanetType,
  558.         fleet_resource_metal        = :fleetResource901,
  559.         fleet_resource_crystal      = :fleetResource902,
  560.         fleet_resource_deuterium    = :fleetResource903,
  561.         fleet_group                 = :fleetGroup,
  562.         fleet_target_obj            = :missileTarget,
  563.         start_time                  = :timestamp;';
  564.  
  565.         $db->insert($sql, array(
  566.             ':fleetId'                  => $fleetId,
  567.             ':fleetStartOwner'          => $fleetStartOwner,
  568.             ':fleetTargetOwner'         => $fleetTargetOwner,
  569.             ':fleetMission'             => $fleetMission,
  570.             ':fleetShipCount'           => $fleetShipCount,
  571.             ':fleetData'                => implode(';', $fleetData),
  572.             ':fleetStartTime'           => $fleetStartTime,
  573.             ':fleetStayTime'            => $fleetStayTime,
  574.             ':fleetEndTime'             => $fleetEndTime,
  575.             ':fleetStartPlanetID'       => $fleetStartPlanetID,
  576.             ':fleetStartPlanetGalaxy'   => $fleetStartPlanetGalaxy,
  577.             ':fleetStartPlanetSystem'   => $fleetStartPlanetSystem,
  578.             ':fleetStartPlanetPlanet'   => $fleetStartPlanetPlanet,
  579.             ':fleetStartPlanetType'     => $fleetStartPlanetType,
  580.             ':fleetTargetPlanetID'      => $fleetTargetPlanetID,
  581.             ':fleetTargetPlanetGalaxy'  => $fleetTargetPlanetGalaxy,
  582.             ':fleetTargetPlanetSystem'  => $fleetTargetPlanetSystem,
  583.             ':fleetTargetPlanetPlanet'  => $fleetTargetPlanetPlanet,
  584.             ':fleetTargetPlanetType'    => $fleetTargetPlanetType,
  585.             ':fleetResource901'         => $fleetResource[901],
  586.             ':fleetResource902'         => $fleetResource[902],
  587.             ':fleetResource903'         => $fleetResource[903],
  588.             ':fleetGroup'               => $fleetGroup,
  589.             ':missileTarget'            => $missileTarget,
  590.             ':timestamp'                => TIMESTAMP,
  591.             ':universe'                 => Universe::current(),
  592.         ));
  593.     }
  594. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement