31,34c31,79 < function HandleElementBuildingQueue($currentUser, &$currentPlanet, $productionTime) { < 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']) { --- > function HandleElementBuildingQueue ( $CurrentUser, &$CurrentPlanet, $ProductionTime ) { > global $resource, $espace_root_path, $lang; > // Pendant qu'on y est, si on verifiait ce qui se passe dans la queue de construction du chantier ? > if ($CurrentPlanet['b_hangar_id'] != 0) { > $Builded = array (); > $CurrentPlanet['b_hangar'] += $ProductionTime; > > $BuildQueue = explode(';', $CurrentPlanet['b_hangar_id']); > > foreach ($BuildQueue as $Node => $Array) { > if ($Array != '') { > $Item = explode(',', $Array); > // On stocke sous forme Element, Nombre, Duree de fab > $BuildArray[$Node] = array(intval($Item[0]), intval($Item[1]), GetBuildingTime ($CurrentUser, $CurrentPlanet, intval($Item[0]))); > } > } > > $CurrentPlanet['b_hangar_id'] = ''; > > $UnFinished = false; > foreach ( $BuildArray as $Node => $Item ) { > if (!$UnFinished) { > $Element = intval($Item[0]); > $Count = intval($Item[1]); > $BuildTime = $Item[2]; > while ( $CurrentPlanet['b_hangar'] >= $BuildTime && !$UnFinished ) { > if ( $Count > 0 ) { > $CurrentPlanet['b_hangar'] -= $BuildTime; > $Builded[$Element]++; > $CurrentPlanet[$resource[$Element]]++; > $Count--; > if ($Count == 0) { > break; > } > } else { > $UnFinished = true; > break; > } > } > } > if ( $Count != 0 ) { > $CurrentPlanet['b_hangar_id'] .= $Element.",".$Count.";"; > > } > } > } else { > $Builded = ''; > $CurrentPlanet['b_hangar'] = 0; > } 36,74c81 < $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) { < < $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 { < $buildArray = array(); < $currentPlanet['b_hangar'] = 0; < } < < return $buildArray; --- > return $Builded;