Пример #1
0
 /**
  * Creates a new fleet.
  *
  * @param	int		start planet id
  * @param	int		end planet id
  * @param	array	ships
  * @param	int		galaxy
  * @param	int		system
  * @param	int		planet
  * @param	float	metal
  * @param	float	crystal
  * @param	float	deuterium
  * @param	float	duration
  * @param	int		mission id
  * @param	float	time
  * @param	int		package id
  * @return	FleetEditor
  */
 public static function create($startPlanetID, $endPlanetID, $ships, $galaxy, $system, $planet, $metal, $crystal, $deuterium, $duration, $missionID, $time = null, $packageID = PACKAGE_ID)
 {
     if ($time === null) {
         $time = round(microtime(true), 2);
     }
     $startPlanet = Planet::getInstance($startPlanetID);
     $targetPlanet = Planet::getInstance($endPlanetID);
     // init vars
     FleetQueue::readCache();
     $classPath = FleetQueue::$cache[$missionID]['classPath'];
     $ownerID = Planet::getInstance($startPlanetID)->id_owner;
     $ofiaraID = Planet::getInstance($endPlanetID)->id_owner;
     $impactTime = $time + $duration;
     $returnTime = $time + $duration * 2;
     // insert fleet
     $fleetID = self::insert($startPlanetID, $endPlanetID, $ownerID, $ofiaraID, $galaxy, $system, $planet, $metal, $crystal, $deuterium, $time, $impactTime, $returnTime, $missionID, $packageID);
     // create events
     $impactEvent = WOTEventEditor::create(1, $fleetID, array('state' => 0), $impactTime);
     $returnEvent = WOTEventEditor::create(1, $fleetID, array('state' => 1), $returnTime);
     // register events
     $fleetEditor = new FleetEditor($fleetID);
     $fleetEditor->update(array('impactEventID' => $impactEvent->eventID, 'returnEventID' => $returnEvent->eventID));
     // inserts ships
     $fleetEditor->updateShips($ships);
     // add to log
     $fleet = Fleet::getInstance($fleetID);
     FleetLog::create($fleet);
     return $fleetEditor;
 }
Пример #2
0
    header("Location: login.php");
    die;
}
$start = intval($_GET['start']);
$sql = "SELECT * \r\n\t\tFROM `ugml_fleet` \r\n\t\tLEFT JOIN ugml_event ON ugml_fleet.returnEventID = ugml_event.eventID\r\n\t\tWHERE eventID IS NULL";
$result = WCF::getDB()->sendQuery($sql);
require_once LW_DIR . 'lib/data/fleet/FleetEditor.class.php';
require_once LW_DIR . 'lib/data/fleet/queue/FleetQueue.class.php';
require_once LW_DIR . 'lib/system/event/WOTEventEditor.class.php';
FleetQueue::readCache();
$i = 0;
while ($row = WCF::getDB()->fetchArray($result)) {
    $i++;
    $editor = new FleetEditor($row['fleetID']);
    $impactEvent = WOTEventEditor::create(1, $row['fleetID'], array('state' => 0), time() + 1);
    $returnEvent = WOTEventEditor::create(1, $row['fleetID'], array('state' => 1), time() + 121);
    $editor->update(array('impactEventID' => $returnEvent->eventID->eventID, 'returnEventID' => $returnEvent->eventID));
    echo 'done' . $row['fleetID'] . ';';
    /*
    	
    	$startPlanetID = $row['startPlanetID'];
    	
    	$targetPlanetID = $row['endPlanetID'];
    	
    	$ships = array();
    	$parts = explode(';', $row['fleet_array']);
    	foreach($parts as $part) {
    		if(strlen($part) < 2) {
    			continue;
    		}
    		list($specID, $count) = explode(',', $part);		
Пример #3
0
 /**
  * Tries to restore the return event.
  */
 public function tryRestore()
 {
     try {
         $returnEvent = WOTEventEditor::create(1, $this->fleetID, array('state' => 1), $returnTime);
         $this->update(array('returnEventID' => $returnEvent->eventID));
     } catch (Exception $e) {
         $this->delete();
     }
 }
Пример #4
0
    $system = $row['fleet_start_system'];
    $planet = $row['fleet_start_planet'];
    $ownerID = $row['fleet_owner'];
    $ofiaraID = $row['fleet_ofiara'];
    $formationID = $row['formationID'];
    $fleetID = FleetEditor::insert($startPlanetID, $targetPlanetID, $ownerID, $ofiaraID, $galaxy, $system, $planet, $metal, $crystal, $deuterium, $startTime, $impactTime, $returnTime, $missionID);
    if ($row['fleet_mess'] == 0) {
        $impactEvent = WOTEventEditor::create(1, $fleetID, array('state' => 0), $impactTime);
        $impactEventID = $impactEvent->eventID;
    } else {
        $impactEventID = 0;
    }
    $returnEvent = WOTEventEditor::create(1, $fleetID, array('state' => 1), $returnTime);
    $returnEventID = $returnEvent->eventID;
    if ($wakeUpTime) {
        $wakeUpEvent = WOTEventEditor::create(1, $fleetID, array('state' => 2), $wakeUpTime);
        $wakeUpEventID = $wakeUpEvent->eventID;
    } else {
        $wakeUpEventID = 0;
    }
    $fleetEditor = new FleetEditor($fleetID);
    $fleetEditor->update(array('formationID' => $formationID, 'impactEventID' => $impactEventID, 'returnEventID' => $returnEventID, 'wakeUpEventID' => $wakeUpEventID, 'wakeUpTime' => $wakeUpTime));
    $fleetEditor->updateShips($ships);
}
sleep(5);
?>
done;
<script>
	window.location.href = 'update.php?start=<?php 
/*
  This file is part of WOT Game.
Пример #5
0
 /**
  * Inserts the fleet
  */
 public function fire()
 {
     LockUtil::checkLock(WCF::getUser()->userID);
     LockUtil::setLock(WCF::getUser()->userID, 10);
     EventHandler::fireAction($this, 'shouldFire');
     $this->fleetEditor = FleetEditor::create($this->startPlanetID, $this->endPlanetID, $this->ships, $this->galaxy, $this->system, $this->planet, $this->metal, $this->crystal, $this->deuterium, $this->getDuration(), $this->missionID);
     $planet = Planet::getInstance($this->startPlanetID);
     $planet->getEditor()->changeResources(-$this->metal, -$this->crystal, -($this->deuterium + $this->getConsumption()));
     $ships = array();
     foreach ($this->ships as $specID => $shipCount) {
         $ships[$specID] = -$shipCount;
     }
     $planet->getEditor()->changeLevel($ships);
     // TODO: integrate in wcf eventlistener didFire@FleetQueue
     if ($this->missionID == 11) {
         $formation = new NavalFormation($this->formationID);
         $formation->getEditor()->addFleet($this->fleetEditor->fleetID);
     }
     if ($this->missionID == 12) {
         $standByTime = intval(@$_REQUEST['standByTime']);
         $wakeUpTime = $this->fleetEditor->impactTime + $standByTime;
         $newReturnTime = $this->fleetEditor->returnTime + $standByTime;
         $this->fleetEditor->changeTime(array('return' => $newReturnTime));
         $wakeUpEvent = WOTEventEditor::create(1, $this->fleetEditor->fleetID, array('state' => 2), $wakeUpTime);
         $this->fleetEditor->update(array('wakeUpEventID' => $wakeUpEvent->eventID, 'wakeUpTime' => $wakeUpTime));
     }
     if (WCF::getUser()->userID == 1) {
         FleetOvent::create($this->fleetEditor, false, true);
     }
     EventHandler::fireAction($this, 'didFire');
     $this->deleteFleetQueue();
     LockUtil::removeLock(WCF::getUser()->userID);
 }