Bug fixes

Removed some dowuery calls in deprecated code.
Updated labels
Updated requirements & types for ore miner

Signed-off-by: Gregory PLANCHAT <g.planchat@gmail.com>
This commit is contained in:
Gregory PLANCHAT 2012-04-09 20:01:45 +02:00
commit b09c4e6c62
22 changed files with 936 additions and 604 deletions

View file

@ -39,10 +39,6 @@ $session = Wootook::getSession('fleet');
$user = Wootook_Player_Model_Session::getSingleton()->getPlayer();
$planet = $user->getCurrentPlanet();
$galaxy = isset($_POST['galaxy']) ? intval($_POST['galaxy']) : 0;
$system = isset($_POST['system']) ? intval($_POST['system']) : 0;
$position = isset($_POST['planet']) ? intval($_POST['planet']) : 0;
$type = isset($_POST['planettype']) ? intval($_POST['planettype']) : 0;
$mission = isset($_POST['mission']) ? intval($_POST['mission']) : 0;
$galaxy = isset($session['galaxy']) ? $session['galaxy'] : 0;
$system = isset($session['system']) ? $session['system'] : 0;
@ -51,23 +47,28 @@ $type = isset($session['type']) ? $session['type'] : 0;
$speed = isset($session['speed']) ? $session['speed'] : 10;
$protection = Wootook::getGameConfig('game/noob-protection/active');
$protectiontime = Wootook::getGameConfig('game/noob-protection/points-cap');
$protectionmulti = Wootook::getGameConfig('game/noob-protection/multiplier');
$protectionPointsCap = Wootook::getGameConfig('game/noob-protection/points-cap');
$protectionMultiplier = Wootook::getGameConfig('game/noob-protection/multiplier');
if ($protectiontime < 1) {
$protectiontime = 0x7FFFFFFF;
$readAdapter = Wootook_Core_Database_ConnectionManager::getSingleton()
->getConnection('core_read');
$writeAdapter = Wootook_Core_Database_ConnectionManager::getSingleton()
->getConnection('core_write');
if ($protectionPointsCap < 1) {
$protectionPointsCap = 0x7FFFFFFF;
}
$fleetArray = $session['fleet'];
if (!is_array($fleetArray)) {
message ("<font color=\"red\"><b>". $lang['fl_fleet_err'] ."</b></font>", $lang['fl_error'], "fleet.php", 2);
message($lang['fl_fleet_err'], $lang['fl_error'], "fleet.php", 2);
}
// On verifie s'il y a assez de vaisseaux sur la planete !
foreach ($fleetArray as $shipId => $count) {
if ($Count > $planet->getElement($shipId)) {
message ("<font color=\"red\"><b>". $lang['fl_fleet_err'] ."</b></font>", $lang['fl_error'], "fleet.php", 2);
if ($count > $planet->getElement($shipId)) {
message($lang['fl_fleet_err'], $lang['fl_error'], "fleet.php", 2);
}
}
@ -77,14 +78,14 @@ $allowedPlanetTypes = array(
Wootook_Empire_Model_Planet::TYPE_MOON
);
if (!in_array($type, $allowedPlanetTypes)) {
message ("<font color=\"red\"><b>". $lang['fl_fleet_err_pl'] ."</b></font>", $lang['fl_error'], "fleet.php", 2);
message($lang['fl_fleet_err_pl'], $lang['fl_error'], "fleet.php", 2);
}
if ($planet->getGalaxy() == $galaxy &&
$planet->getSystem() == $system &&
$planet->getPosition() == $position &&
$planet->getType() == $type) {
message ("<font color=\"red\"><b>". $lang['fl_ownpl_err'] ."</b></font>", $lang['fl_error'], "fleet.php", 2);
message($lang['fl_ownpl_err'], $lang['fl_error'], "fleet.php", 2);
}
$YourPlanet = false;
@ -104,26 +105,32 @@ if ($mission == Legacies_Empire::ID_MISSION_RECYCLE) {
if ($mission != Legacies_Empire::ID_MISSION_EXPEDITION) {
if (!$destination->getId()) {
if ($mission != Legacies_Empire::ID_MISSION_SETTLE_COLONY) {
message ("<font color=\"red\"><b>". $lang['fl_unknow_target'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message($lang['fl_unknow_target'], $lang['fl_error'], "fleet." . PHPEXT, 2);
} else if ($mission == Legacies_Empire::ID_MISSION_DESTROY) {
message ("<font color=\"red\"><b>". $lang['fl_used_target'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message($lang['fl_used_target'], $lang['fl_error'], "fleet." . PHPEXT, 2);
}
} else if ($mission == Legacies_Empire::ID_MISSION_DESTROY && !$destination->isMoon()) {
message ("<font color=\"red\"><b>". $lang['fl_used_target'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message($lang['fl_used_target'], $lang['fl_error'], "fleet." . PHPEXT, 2);
}
} else {
$EnvoiMaxExpedition = $user->getElement(Legacies_Empire::ID_RESEARCH_EXPEDITION_TECHNOLOGY);
$Expedition = 0;
if ($EnvoiMaxExpedition > 0) {
$maxexpde = doquery("SELECT 1 FROM {{table}} WHERE `fleet_owner` = '".$user['id']."' AND `fleet_mission` = '15';", 'fleets');
$Expedition = $maxexpde->rowCount();
$maxexpde->closeCursor();
$statement = $readAdapter->select()
->column(new Wootook_Core_Database_Sql_Placeholder_Expression('COUNT(*)'))
->from(array('fleet' => $readAdapter->getTable('fleets')))
->where('fleet_owner', new Wootook_Core_Database_Sql_Placeholder_Param('player', $user->getId()))
->where('fleet_mission', Legacies_Empire::ID_MISSION_EXPEDITION)
->prepare()
;
$Expedition = $statement->fetchColumn();
}
if ($EnvoiMaxExpedition == 0 ) {
message ("<font color=\"red\"><b>". $lang['fl_expe_notech'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message ($lang['fl_expe_notech'], $lang['fl_error'], "fleet." . PHPEXT, 2);
} else if ($Expedition >= $EnvoiMaxExpedition ) {
message ("<font color=\"red\"><b>". $lang['fl_expe_max'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message ($lang['fl_expe_max'], $lang['fl_error'], "fleet." . PHPEXT, 2);
}
}
@ -145,7 +152,10 @@ if ($position == (Wootook::getGameConfig('engine/universe/positions') + 1)) {
}
} else if ($type == Wootook_Empire_Model_Planet::TYPE_PLANET) {
if (isset($fleetArray[Legacies_Empire::ID_SHIP_COLONY_SHIP]) && $fleetArray[Legacies_Empire::ID_SHIP_COLONY_SHIP] > 0 && !$UsedPlanet) {
$missionTypes[Legacies_Empire::ID_MISSION_SETTLE_COLONY] = $lang['type_mission'][7];
$missionTypes[Legacies_Empire::ID_MISSION_SETTLE_COLONY] = $lang['type_mission'][Legacies_Empire::ID_MISSION_SETTLE_COLONY];
}
if (isset($fleetArray[Legacies_Empire::ID_SHIP_ORE_MININER]) && $fleetArray[Legacies_Empire::ID_SHIP_ORE_MININER] > 0 && !$UsedPlanet) {
$missionTypes[Legacies_Empire::ID_MISSION_ORE_MINING] = $lang['type_mission'][Legacies_Empire::ID_MISSION_ORE_MINING];
}
} else if ($type == Wootook_Empire_Model_Planet::TYPE_MOON) {
if (((isset($fleetArray[Legacies_Empire::ID_SHIP_DEATH_STAR]) && $fleetArray[Legacies_Empire::ID_SHIP_DEATH_STAR] > 0) ||
@ -153,6 +163,9 @@ if ($position == (Wootook::getGameConfig('engine/universe/positions') + 1)) {
!$YourPlanet && $UsedPlanet) {
$missionTypes[Legacies_Empire::ID_MISSION_DESTROY] = $lang['type_mission'][Legacies_Empire::ID_MISSION_DESTROY];
}
if (isset($fleetArray[Legacies_Empire::ID_SHIP_ORE_MININER]) && $fleetArray[Legacies_Empire::ID_SHIP_ORE_MININER] > 0 && !$YourPlanet) {
$missionTypes[Legacies_Empire::ID_MISSION_ORE_MINING] = $lang['type_mission'][Legacies_Empire::ID_MISSION_ORE_MINING];
}
}
if (in_array($type, array(Wootook_Empire_Model_Planet::TYPE_MOON, Wootook_Empire_Model_Planet::TYPE_PLANET))) {
@ -194,7 +207,7 @@ if (isset($fleetArray[Legacies_Empire::ID_SHIP_SOLAR_SATELLITE])) {
}
if (!isset($missionTypes[$mission])) {
message ("<font color=\"red\"><b>". $lang['fl_bad_mission'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message($lang['fl_bad_mission'], $lang['fl_error'], "fleet." . PHPEXT, 2);
}
if (!$destination->getId()) {
@ -203,16 +216,30 @@ if (!$destination->getId()) {
$destinationUser = $destination->getUser();
}
$userPoints = doquery("SELECT total_points FROM {{table}} WHERE `stat_type` = '1' AND `stat_code` = '1' AND `id_owner`='{$user->getId()}'", 'statpoints', true);
$myGameLevel = $userPoints['total_points'];
$myGameLevel = $readAdapter->select()
->column('total_points')
->from(array('statpoints' => $readAdapter->getTable('statpoints')))
->where('stat_type', 1)
->where('stat_code', 1)
->where('id_owner', new Wootook_Core_Database_Sql_Placeholder_Param('player', $user->getId()))
->prepare()
->fetchColumn()
;
if ($destinationUser->getId()) {
$destinationPoints = doquery("SELECT total_points FROM {{table}} WHERE `stat_type` = '1' AND `stat_code` = '1' AND `id_owner` = '{$destinationUser->getId()}';", 'statpoints', true);
$hisGameLevel = $destinationPoints['total_points'];
$hisGameLevel = $readAdapter->select()
->column('total_points')
->from(array('statpoints' => $readAdapter->getTable('statpoints')))
->where('stat_type', 1)
->where('stat_code', 1)
->where('id_owner', new Wootook_Core_Database_Sql_Placeholder_Param('player', $destinationUser->getId()))
->prepare()
->fetchColumn()
;
} else {
$hisGameLevel = 0;
}
$vacationMode = $destinationUser['urlaubs_modus'];
$vacationMode = $destinationUser->isVacation();
if ($protection) {
$protectedMissions = array(
@ -222,23 +249,20 @@ if ($protection) {
Legacies_Empire::ID_MISSION_SPY,
Legacies_Empire::ID_MISSION_DESTROY
);
if ($myGameLevel > ($hisGameLevel * $protectionmulti) && $destinationUser->getId() &&
in_array($mission, $protectedMissions) && $hisGameLevel < ($protectiontime * 1000)) {
message("<font color=\"lime\"><b>".$lang['fl_noob_mess_n']."</b></font>", $lang['fl_noob_title'], "fleet." . PHPEXT, 2);
}
if (($myGameLevel * $protectionmulti) < $hisGameLevel && $destinationUser->getId() &&
in_array($mission, $protectedMissions) && $myGameLevel < ($protectiontime * 1000)) {
message("<font color=\"lime\"><b>".$lang['fl_noob_mess_n']."</b></font>", $lang['fl_noob_title'], "fleet." . PHPEXT, 2);
if ($destinationUser->getId() && in_array($mission, $protectedMissions)) {
if ($myGameLevel > ($hisGameLevel * $protectionMultiplier) && $hisGameLevel < ($protectionPointsCap * 1000)) {
message($lang['fl_noob_mess_n'], $lang['fl_noob_title'], "fleet." . PHPEXT, 2);
} else if (($myGameLevel * $protectionMultiplier) < $hisGameLevel && $myGameLevel < ($protectionPointsCap * 1000)) {
message($lang['fl_noob_mess_n'], $lang['fl_noob_title'], "fleet." . PHPEXT, 2);
}
}
}
if ($vacationMode && $mission != Legacies_Empire::ID_MISSION_RECYCLE) {
message("<font color=\"lime\"><b>".$lang['fl_vacation_pla']."</b></font>", $lang['fl_vacation_ttl'], "fleet." . PHPEXT, 2);
message($lang['fl_vacation_pla'], $lang['fl_vacation_ttl'], "fleet." . PHPEXT, 2);
}
$currentFleets = $user->getFleets()->count();
$currentFleets = $user->getFleets()->getSize();
if (($user->getElement(Legacies_Empire::ID_RESEARCH_COMPUTER_TECHNOLOGY) + 1) <= $currentFleets) {
message("Pas de slot disponible", "Erreur", "fleet." . PHPEXT, 1);
@ -261,25 +285,25 @@ if ($mission != Legacies_Empire::ID_MISSION_EXPEDITION) {
Legacies_Empire::ID_MISSION_SPY
);
if (!$destination->getUserId() && in_array($mission, $userMissions)) {
message ("<font color=\"red\"><b>". $lang['fl_bad_planet01'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message ($lang['fl_bad_planet01'], $lang['fl_error'], "fleet." . PHPEXT, 2);
}
if ($destination->getId() && $mission == Legacies_Empire::ID_MISSION_SETTLE_COLONY) {
message ("<font color=\"red\"><b>". $lang['fl_bad_planet02'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message ($lang['fl_bad_planet02'], $lang['fl_error'], "fleet." . PHPEXT, 2);
}
if ($destination->getId() != $planet->getId() && $mission == Legacies_Empire::ID_MISSION_STATION) {
message ("<font color=\"red\"><b>". $lang['fl_dont_stay_here'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message ($lang['fl_dont_stay_here'], $lang['fl_error'], "fleet." . PHPEXT, 2);
}
if ($destination->getElement(Legacies_Empire::ID_BUILDING_ALLIANCE_DEPOT) < 1 && $destinationUser->getId() != $user->getId() && $mission == Legacies_Empire::ID_MISSION_STATION_ALLY) {
message ("<font color=\"red\"><b>". $lang['fl_no_allydeposit'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message ($lang['fl_no_allydeposit'], $lang['fl_error'], "fleet." . PHPEXT, 2);
}
if ($destinationUser->getId() == $user->getId() && ($mission == Legacies_Empire::ID_MISSION_ATTACK)) {
message ("<font color=\"red\"><b>". $lang['fl_no_self_attack'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message ($lang['fl_no_self_attack'], $lang['fl_error'], "fleet." . PHPEXT, 2);
}
if ($destinationUser->getId() == $user->getId() && ($mission == Legacies_Empire::ID_MISSION_SPY)) {
message ("<font color=\"red\"><b>". $lang['fl_no_self_spy'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message ($lang['fl_no_self_spy'], $lang['fl_error'], "fleet." . PHPEXT, 2);
}
if ($destinationUser->getId() != $user->getId() && $mission == Legacies_Empire::ID_MISSION_STATION) {
message ("<font color=\"red\"><b>". $lang['fl_only_stay_at_home'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message ($lang['fl_only_stay_at_home'], $lang['fl_error'], "fleet." . PHPEXT, 2);
}
}
@ -290,7 +314,7 @@ $SpeedFactor = GetGameSpeedFactor();
$MaxFleetSpeed = min($AllFleetSpeed);
if (!in_array($speed, $possibleSpeeds)) {
message ("<font color=\"red\"><b>". $lang['fl_cheat_speed'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message ($lang['fl_cheat_speed'], $lang['fl_error'], "fleet." . PHPEXT, 2);
}
$error = 0;
@ -309,193 +333,173 @@ if ($position > (Wootook::getGameConfig('engine/universe/positions') + 1) || $po
}
if ($error > 0) {
message ("<font color=\"red\"><ul>" . $errorlist . "</ul></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message($errorlist, $lang['fl_error'], "fleet." . PHPEXT, 2);
}
if (!isset($fleetArray)) {
message ("<font color=\"red\"><b>". $lang['fl_no_fleetarray'] ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
message($lang['fl_no_fleetarray'], $lang['fl_error'], "fleet." . PHPEXT, 2);
}
$distance = GetTargetDistance($planet->getGalaxy(), $galaxy, $planet->getSystem(), $system, $planet->getPosition(), $position);
$duration = GetMissionDuration($speed, $MaxFleetSpeed, $distance, $SpeedFactor);
$consumption = GetFleetConsumption($fleetArray, $SpeedFactor, $duration, $distance, $MaxFleetSpeed, $user);
/***************/
$fleet['start_time'] = $duration + time();
if ($mission == Legacies_Empire::ID_MISSION_EXPEDITION) {
$StayDuration = $_POST['expeditiontime'] * 3600;
$StayTime = $fleet['start_time'] + $_POST['expeditiontime'] * 3600;
} elseif ($_POST['mission'] == 5) {
$StayDuration = $_POST['holdingtime'] * 3600;
$StayTime = $fleet['start_time'] + $_POST['holdingtime'] * 3600;
} else {
$StayDuration = 0;
$StayTime = 0;
}
$fleet['end_time'] = $StayDuration + (2 * $duration) + time();
$FleetStorage = 0;
$FleetShipCount = 0;
$fleet_array = "";
$FleetSubQRY = "";
$startTime = time() + $duration;
if ($mission == Legacies_Empire::ID_MISSION_EXPEDITION && isset($_POST['expeditiontime']) && is_int($_POST['expeditiontime'])
&& ($expeditionTime = intval($_POST['expeditiontime'])) >= 1 && $expeditionTime <= 10) {
$StayDuration = $expeditionTime * 3600;
$StayTime = $startTime + $expeditionTime * 3600;
} elseif ($mission == Legacies_Empire::ID_MISSION_STATION_ALLY || $mission == Legacies_Empire::ID_MISSION_EXPLOIT && is_int($_POST['holdingtime'])
&& ($holdingTime = intval($_POST['holdingtime'])) >= 1 && $holdingTime <= 10) {
$StayDuration = $holdingTime * 3600;
$StayTime = $startTime + $holdingTime * 3600;
} else {
$StayDuration = 0;
$StayTime = 0;
}
foreach ($fleetArray as $Ship => $Count) {
$FleetStorage += $pricelist[$Ship]["capacity"] * $Count;
$FleetShipCount += $Count;
$fleet_array .= $Ship .",". $Count .";";
$FleetSubQRY .= "`".$resource[$Ship] . "` = `" . $resource[$Ship] . "` - " . $Count . " , ";
}
/* END Refactoring */
$endTime = $StayDuration + (2 * $duration) + time();
$FleetStorage = 0;
$FleetShipCount = sum($fleetArray);
$serializedFleetArray = '';
$FleetStorage -= $consumption;
$StorageNeeded = 0;
if ($_POST['resource1'] < 1) {
$TransMetal = 0;
} else {
$TransMetal = $_POST['resource1'];
$StorageNeeded += $TransMetal;
}
if ($_POST['resource2'] < 1) {
$TransCrystal = 0;
} else {
$TransCrystal = $_POST['resource2'];
$StorageNeeded += $TransCrystal;
}
if ($_POST['resource3'] < 1) {
$TransDeuterium = 0;
} else {
$TransDeuterium = $_POST['resource3'];
$StorageNeeded += $TransDeuterium;
}
foreach ($fleetArray as $shipId => $count) {
$FleetStorage += $pricelist[$shipId]["capacity"] * $count;
$serializedFleetArray .= $shipId .",". $count .";";
$planet->setElement($shipId, $planet->getElement($shipId) - $count);
}
$StockMetal = $planet['metal'];
$StockCrystal = $planet['cristal'];
$StockDeuterium = $planet['deuterium'];
$StockDeuterium -= $consumption;
$StockMetal = $planet['metal'];
$StockCrystal = $planet['cristal'];
$StockDeuterium = $planet['deuterium'] - $consumption;
$StockOk = false;
if ($StockMetal >= $TransMetal) {
if ($StockCrystal >= $TransCrystal) {
if ($StockDeuterium >= $TransDeuterium) {
$StockOk = true;
}
}
$FleetStorage -= $consumption;
$StorageNeeded = 0;
if (!isset($_POST['resource1']) || intval($_POST['resource1']) < 1) {
$TransMetal = 0;
} else {
$TransMetal = intval($_POST['resource1']);
if ($StockMetal < $TransMetal) {
$TransMetal = $StockMetal;
}
if ( !$StockOk ) {
message ("<font color=\"red\"><b>". $lang['fl_noressources'] . pretty_number($consumption) ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
$StorageNeeded += $TransMetal;
}
if (!isset($_POST['resource2']) || intval($_POST['resource2']) < 1) {
$TransCrystal = 0;
} else {
$TransCrystal = intval($_POST['resource2']);
if ($StockCrystal < $TransCrystal) {
$TransCrystal = $StockCrystal;
}
if ( $StorageNeeded > $FleetStorage) {
message ("<font color=\"red\"><b>". $lang['fl_nostoragespa'] . pretty_number($StorageNeeded - $FleetStorage) ."</b></font>", $lang['fl_error'], "fleet." . PHPEXT, 2);
$StorageNeeded += $TransCrystal;
}
if (!isset($_POST['resource3']) || intval($_POST['resource3']) < 1) {
$TransDeuterium = 0;
} else {
$TransDeuterium = intval($_POST['resource3']);
if ($StockDeuterium < $TransDeuterium) {
$TransDeuterium = $StockDeuterium;
}
$StorageNeeded += $TransDeuterium;
}
if ($destination['id_level'] > $user['authlevel']) {
$Allowed = true;
switch ($_POST['mission']){
case 1:
case 2:
case 6:
case 9:
$Allowed = false;
break;
case 3:
case 4:
case 5:
case 7:
case 8:
case 15:
break;
default:
}
if ($Allowed == false) {
message ("<font color=\"red\"><b>". $lang['fl_adm_attak'] ."</b></font>", $lang['fl_warning'], "fleet." . PHPEXT, 2);
}
if ($StorageNeeded > $FleetStorage) {
message($lang['fl_nostoragespa'] . pretty_number($StorageNeeded - $FleetStorage), $lang['fl_error'], "fleet." . PHPEXT, 2);
}
if ($destinationUser['authlevel'] > $user['authlevel']) {
$specialMissions = array(
Legacies_Empire::ID_MISSION_ATTACK,
Legacies_Empire::ID_MISSION_GROUP_ATTACK,
Legacies_Empire::ID_MISSION_SPY,
Legacies_Empire::ID_MISSION_DESTROY
);
if (in_array($mission, $specialMissions)) {
message($lang['fl_adm_attak'], $lang['fl_warning'], "fleet." . PHPEXT, 2);
}
}
// ecriture de l'enregistrement de flotte (a partir de l<>, y a quelque chose qui vole et c'est toujours sur la planete d'origine)
$QryInsertFleet = "INSERT INTO {{table}} SET ";
$QryInsertFleet .= "`fleet_owner` = '". $user['id'] ."', ";
$QryInsertFleet .= "`fleet_mission` = '". $_POST['mission'] ."', ";
$QryInsertFleet .= "`fleet_amount` = '". $FleetShipCount ."', ";
$QryInsertFleet .= "`fleet_array` = '". $fleet_array ."', ";
$QryInsertFleet .= "`fleet_start_time` = '". $fleet['start_time'] ."', ";
$QryInsertFleet .= "`fleet_start_galaxy` = '". intval($_POST['thisgalaxy']) ."', ";
$QryInsertFleet .= "`fleet_start_system` = '". intval($_POST['thissystem']) ."', ";
$QryInsertFleet .= "`fleet_start_planet` = '". intval($_POST['thisplanet']) ."', ";
$QryInsertFleet .= "`fleet_start_type` = '". intval($_POST['thisplanettype']) ."', ";
$QryInsertFleet .= "`fleet_end_time` = '". $fleet['end_time'] ."', ";
$QryInsertFleet .= "`fleet_end_stay` = '". $StayTime ."', ";
$QryInsertFleet .= "`fleet_end_galaxy` = '". intval($_POST['galaxy']) ."', ";
$QryInsertFleet .= "`fleet_end_system` = '". intval($_POST['system']) ."', ";
$QryInsertFleet .= "`fleet_end_planet` = '". intval($_POST['planet']) ."', ";
$QryInsertFleet .= "`fleet_end_type` = '". intval($_POST['planettype']) ."', ";
$QryInsertFleet .= "`fleet_resource_metal` = '". intval($TransMetal) ."', ";
$QryInsertFleet .= "`fleet_resource_cristal` = '". intval($TransCrystal) ."', ";
$QryInsertFleet .= "`fleet_resource_deuterium` = '". intval($TransDeuterium) ."', ";
$QryInsertFleet .= "`fleet_target_owner` = '". $destination['id_owner'] ."', ";
$QryInsertFleet .= "`start_time` = '". time() ."';";
doquery( $QryInsertFleet, 'fleets');
/* BEGIN Refactoring */
try {
$writeAdapter->beginTransaction();
$writeAdapter->insert()
->into($writeAdapter->getTable('fleets'))
->set('fleet_owner', $user->getId())
->set('fleet_mission', $mission)
->set('fleet_amount', $FleetShipCount)
->set('fleet_array', $fleet_array)
->set('fleet_start_time', $startTime)
->set('fleet_start_galaxy', $planet->getGalaxy())
->set('fleet_start_system', $planet->getSystem())
->set('fleet_start_planet', $planet->getPosition())
->set('fleet_start_type', $planet->getType())
->set('fleet_end_time', $endTime)
->set('fleet_end_stay', $user->getId())
->set('fleet_end_stay', $user->getId())
->set('fleet_end_galaxy', $galaxy)
->set('fleet_end_system', $system)
->set('fleet_end_planet', $planet)
->set('fleet_end_type', $type)
->set('fleet_resource_metal', intval($TransMetal))
->set('fleet_resource_cristal', intval($TransCrystal))
->set('fleet_resource_deuterium', intval($TransDeuterium))
->set('fleet_target_owner', $destination['id_owner'])
->set('start_time', time())
->execute()
;
$planet["metal"] = $planet["metal"] - $TransMetal;
$planet["cristal"] = $planet["cristal"] - $TransCrystal;
$planet["deuterium"] = $planet["deuterium"] - $TransDeuterium;
$planet["deuterium"] = $planet["deuterium"] - $consumption;
$planet["deuterium"] = $planet["deuterium"] - $TransDeuterium - $consumption;
$planet->save();
$QryUpdatePlanet = "UPDATE {{table}} SET ";
$QryUpdatePlanet .= $FleetSubQRY;
$QryUpdatePlanet .= "`metal` = '". $planet["metal"] ."', ";
$QryUpdatePlanet .= "`cristal` = '". $planet["cristal"] ."', ";
$QryUpdatePlanet .= "`deuterium` = '". $planet["deuterium"] ."' ";
$QryUpdatePlanet .= "WHERE ";
$QryUpdatePlanet .= "`id` = '". $planet['id'] ."'";
$writeAdapter->commit();
} catch (Exception $e) {
Wootook_Core_ErrorProfiler::getSingleton()->addException($e);
$writeAdapter->rollback();
message($errorlist, $lang['fl_error'], "fleet." . PHPEXT, 2);
}
/* END Refactoring */
// Mise a jours de l'enregistrement de la planete de depart (a partir de là, y a quelque chose qui vole et ce n'est plus sur la planete de depart)
doquery("LOCK TABLE {{table}} WRITE", 'planets');
doquery ($QryUpdatePlanet, "planets");
doquery("UNLOCK TABLES", '');
// doquery("FLUSH TABLES", '');
$page = "<br><div><center>";
$page .= "<table border=\"0\" cellpadding=\"0\" cellspacing=\"1\" width=\"519\">";
$page .= "<tr height=\"20\">";
$page .= "<td class=\"c\" colspan=\"2\"><span class=\"success\">". $lang['fl_fleet_send'] ."</span></td>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_mission'] ."</th>";
$page .= "<th>". $missionTypes[$mission] ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_dist'] ."</th>";
$page .= "<th>". pretty_number($distance) ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_speed'] ."</th>";
$page .= "<th>". pretty_number($_POST['speedallsmin']) ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_deute_need'] ."</th>";
$page .= "<th>". pretty_number($consumption) ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_from'] ."</th>";
$page .= "<th>". $_POST['thisgalaxy'] .":". $_POST['thissystem']. ":". $_POST['thisplanet'] ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_dest'] ."</th>";
$page .= "<th>". $galaxy .":". $system .":". $planet ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_time_go'] ."</th>";
$page .= "<th>". date("M D d H:i:s", $startTime) ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_time_back'] ."</th>";
$page .= "<th>". date("M D d H:i:s", $endTime) ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<td class=\"c\" colspan=\"2\">". $lang['fl_title'] ."</td>";
// Un peu de blabla pour l'utilisateur, affichage d'un joli tableau de la flotte expedi<64>e
$page = "<br><div><center>";
$page .= "<table border=\"0\" cellpadding=\"0\" cellspacing=\"1\" width=\"519\">";
$page .= "<tr height=\"20\">";
$page .= "<td class=\"c\" colspan=\"2\"><span class=\"success\">". $lang['fl_fleet_send'] ."</span></td>";
foreach ($fleetArray as $Ship => $Count) {
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_mission'] ."</th>";
$page .= "<th>". $missionTypes[$_POST['mission']] ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_dist'] ."</th>";
$page .= "<th>". pretty_number($distance) ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_speed'] ."</th>";
$page .= "<th>". pretty_number($_POST['speedallsmin']) ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_deute_need'] ."</th>";
$page .= "<th>". pretty_number($consumption) ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_from'] ."</th>";
$page .= "<th>". $_POST['thisgalaxy'] .":". $_POST['thissystem']. ":". $_POST['thisplanet'] ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_dest'] ."</th>";
$page .= "<th>". $_POST['galaxy'] .":". $_POST['system'] .":". $_POST['planet'] ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_time_go'] ."</th>";
$page .= "<th>". date("M D d H:i:s", $fleet['start_time']) ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['fl_time_back'] ."</th>";
$page .= "<th>". date("M D d H:i:s", $fleet['end_time']) ."</th>";
$page .= "</tr><tr height=\"20\">";
$page .= "<td class=\"c\" colspan=\"2\">". $lang['fl_title'] ."</td>";
$page .= "<th>". $lang['tech'][$Ship] ."</th>";
$page .= "<th>". pretty_number($Count) ."</th>";
}
$page .= "</tr></table></div></center>";
foreach ($fleetArray as $Ship => $Count) {
$page .= "</tr><tr height=\"20\">";
$page .= "<th>". $lang['tech'][$Ship] ."</th>";
$page .= "<th>". pretty_number($Count) ."</th>";
}
$page .= "</tr></table></div></center>";
// Provisoire
sleep (1);
$planetrow = doquery ("SELECT * FROM {{table}} WHERE `id` = '". $planet['id'] ."';", 'planets', true);
display($page, $lang['fl_title']);
display($page, $lang['fl_title']);