Index: includes/functions/FleetBuildingPage.php
===================================================================
--- includes/functions/FleetBuildingPage.php (révision 315)
+++ includes/functions/FleetBuildingPage.php (copie de travail)
@@ -33,62 +33,71 @@
if (isset($_POST['fmenge'])) {
// On vient de Cliquer ' Construire '
- // Et y a une liste de dol�ances
- $AddedInQueue = false;
+
// Ici, on sait precisement ce qu'on aimerait bien construire ...
+
foreach($_POST['fmenge'] as $Element => $Count) {
// Construction d'Element recuper�s sur la page de Flotte ...
// ATTENTION ! La file d'attente Flotte est Commune a celle des Defenses
// Dans fmenge, on devrait trouver un tableau des elements constructibles et du nombre d'elements souhait�s
+
+ $Element = (int) $Element;
+ $Count = (int) $Count;
+
+ $Count = ($Count > MAX_FLEET_OR_DEFS_PER_ROW) ? MAX_FLEET_OR_DEFS_PER_ROW : $Count;
- $Element = intval($Element);
- $Count = ereg_replace("[^0-9]",'',$Count);
- if ($Count > MAX_FLEET_OR_DEFS_PER_ROW) {
- $Count = MAX_FLEET_OR_DEFS_PER_ROW;
- }
-
- if ($Count != 0) {
+ if ($Count !== 0) {
// On verifie si on a les technologies necessaires a la construction de l'element
if ( IsTechnologieAccessible ($CurrentUser, $CurrentPlanet, $Element) ) {
- // On verifie combien on sait faire de cet element au max
+
+ // On verifie combien on sait faire de cet element au max
$MaxElements = GetMaxConstructibleElements ( $Element, $CurrentPlanet );
+
// Si pas assez de ressources, on ajuste le nombre d'elements
- if ($Count > $MaxElements) {
- $Count = $MaxElements;
- }
- $Ressource = GetElementRessources ( $Element, $Count );
- $BuildTime = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element);
- if ($Count >= 1) {
+ $Count = ($Count > $MaxElements) ? $MaxElements : $Count;
+ if ($Count >= 1) {
+
+ $Ressource = GetElementRessources ( $Element, $Count );
+ $BuildTime = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element);
+
if ($BuildTime > 0) {
- $CurrentPlanet['metal'] -= $Ressource['metal'];
- $CurrentPlanet['crystal'] -= $Ressource['crystal'];
- $CurrentPlanet['deuterium'] -= $Ressource['deuterium'];
- if ($Element == 214 && $CurrentUser['rpg_destructeur'] == 1) {
- $Count = $Count * 2; //On multiplie les EDLM par 2
- }
+
+ $CurrentPlanet['metal'] -= $Ressource['metal'];
+ $CurrentPlanet['crystal'] -= $Ressource['crystal'];
+ $CurrentPlanet['deuterium'] -= $Ressource['deuterium'];
+
+ if ($Element == 214 && $CurrentUser['rpg_destructeur'] == 1) {
+ $Count = $Count * 2; //On multiplie les EDLM par 2
+ }
+
$CurrentPlanet['b_hangar_id'] .= "". $Element .",". $Count .";";
- } else {
- $res=doquery("SELECT ".$resource[$Element]." FROM {{table}} WHERE id = '". $CurrentPlanet['id'] ."' ;",'planets');
- $NombreVaisseauxActuel=mysql_result($res,0,$resource[$Element]);
- $CurrentPlanet['metal'] -= $Ressource['metal'];
- $CurrentPlanet['crystal'] -= $Ressource['crystal'];
- $CurrentPlanet['deuterium'] -= $Ressource['deuterium'];
- $NewFleetNumber = $CurrentPlanet[$resource[$Element]] + $Count;
- if ($Element == 214 && $CurrentUser['rpg_destructeur'] == 1) {
- $Count = $Count * 2; //On multiplie les EDLM par 2
- }
- $QryUpdatefleet = "UPDATE {{table}} SET ";
- $QryUpdatefleet .= "`$resource[$Element]` = '".$NombreVaisseauxActuel."' + '".$Count."' ";
- $QryUpdatefleet .= "WHERE ";
- $QryUpdatefleet .= "`id` = '". $CurrentPlanet['id'] ."'";
- doquery ( $QryUpdatefleet, 'planets');
+ } else {
+ $res=doquery("SELECT ".$resource[$Element]." FROM {{table}} WHERE id = '". $CurrentPlanet['id'] ."' ;",'planets');
+ $NombreVaisseauxActuel=mysql_result($res,0,$resource[$Element]);
+
+ $CurrentPlanet['metal'] -= $Ressource['metal'];
+ $CurrentPlanet['crystal'] -= $Ressource['crystal'];
+ $CurrentPlanet['deuterium'] -= $Ressource['deuterium'];
+ $NewFleetNumber = $CurrentPlanet[$resource[$Element]] + $Count;
+
+ if ($Element == 214 && $CurrentUser['rpg_destructeur'] == 1) {
+ $Count = $Count * 2; //On multiplie les EDLM par 2
+ }
+
+ $QryUpdatefleet = "UPDATE {{table}} SET ";
+ $QryUpdatefleet .= "`$resource[$Element]` = '".$NombreVaisseauxActuel."' + '".$Count."' ";
+ $QryUpdatefleet .= "WHERE ";
+ $QryUpdatefleet .= "`id` = '". $CurrentPlanet['id'] ."'";
+ doquery ( $QryUpdatefleet, 'planets');
}
- }
+ }
}
- }
- }
- }
+ }
+ }
+
+ }
+
// -------------------------------------------------------------------------------------------------------
// S'il n'y a pas de Chantier ...
if ($CurrentPlanet[$resource[21]] == 0) {
@@ -145,11 +154,8 @@
if($MaxElements>MAX_FLEET_OR_DEFS_PER_ROW)
$MaxElements=MAX_FLEET_OR_DEFS_PER_ROW;
- if ($BuildOneElementTime > 0) {
- $MaxElements=1; }
-
if ($CanBuildOne)
- $PageTable.='
Nombre max ('.intval($MaxElements).')';
+ $PageTable.='
Nombre max ('.intval($MaxElements).')';
// Fin de ligne (les 3 cases sont construites !!
Index: includes/functions/HandleElementBuildingQueue.php
===================================================================
--- includes/functions/HandleElementBuildingQueue.php (révision 315)
+++ includes/functions/HandleElementBuildingQueue.php (copie de travail)
@@ -32,25 +32,38 @@
global $resource;
// Pendant qu'on y est, si on verifiait ce qui se passe dans la queue de construction du chantier ?
if ($currentPlanet['b_hangar_id']) {
- $buildArray = array();
+
+ $buildArray = array();
$currentPlanet['b_hangar'] += $productionTime;
-
$buildQueue = explode(';', $currentPlanet['b_hangar_id']);
$currentPlanet['b_hangar_id'] = '';
+
foreach ($buildQueue as $element) {
+
if (empty($element) || !($element = explode(',', $element)) || count($element) != 2) {
continue;
}
+
list($item, $count) = $element;
+
$buildTime = GetBuildingTime($currentUser, $currentPlanet, $item);
if($currentPlanet['b_hangar'] >= $buildTime && $count > 0) {
- $currentPlanet['b_hangar'] -= $buildTime * $count;
- $buildArray[$element] += $count;
- $currentPlanet[$resource[$element]] += $count;
- $currentPlanet['b_hangar_id'] .= "$element,$Count;";
+ $buildedElements = floor($currentPlanet['b_hangar'] / $buildTime);
+ $buildedElements = ($buildedElements > $count) ? $count : $buildedElements;
+
+ if ($buildedElements < $count) {
+ $currentPlanet['b_hangar_id'] .= "$item,".($count - $buildedElements).";";
+ }
+
+ $currentPlanet['b_hangar'] -= $buildTime * $buildedElements;
+ $buildArray[$item] += $buildedElements;
+ $currentPlanet[$resource[$item]] += $buildedElements;
+
+ } else { // Cas : pas assez de temps pour construire quelquechose
+ $currentPlanet['b_hangar_id'] .= "$item,$count;";
}
}
} else {