vue Problème de construction de vaisseaux!
Kommunauty
Connexion
Inscription

Problème de construction de vaisseaux!


BobyAD Messages : 36

Bonjour,

Tout est dans le titre, j'ai en effet un problème de liste de construction!

Des que je lance une construction de vaisseaux je la vois dans ma liste et des j'actualise ou je change de page elle disparais....

Dite moi que le vaisseaux ce construit bien et bel et que je ne le perd pas, et que simplement je ne le vois se construire dans la liste...

Aidez moi a régler ce probleme je vous prie.

BobyAD

mardi 26 octobre 2010

Mizur Messages : 6615

Le vaisseau est-il construit au final, quand tu vas dans la liste de ta flotte?

Tu as verifié que le temps de construction affiché est bien de plus de 1 seconde? Histoire que quand tu actualise ça ai une raison d'etre encore là.

mardi 26 octobre 2010

BobyAD Messages : 36

oui le vaisseaux était a 16minutes, et le vaisseaux n'est pas construit...

mardi 26 octobre 2010 (Dernière édition mardi 26 octobre 2010)

BobyAD Messages : 36

Je ne comprend pas du tout malgre avoir lu et relut le tuto pour le patch correctif de ce bug, je n'y arrive pas donc si quelqu'un pourrais me donner un lien legacie 2009.2 avec ce patch correctif déja installer (si possible) ca m'arrangerai...

De plus toute aide pour mon problème est bienvenu.

BobyAD

mercredi 27 octobre 2010

Bliinfo Messages : 174

Voici les codes des 2 fichier a modifier (se situant dans le dossier : includes/functions/)

FleetBuildingPage.php

<?php
/**
 * This file is part of XNova:Legacies
 *
 * @license http://www.gnu.org/licenses/gpl-3.0.txt
 * @see http://www.xnova-ng.org/
 *
 * Copyright (c) 2009-Present, XNova Support Team <http://www.xnova-ng.org>
 * All rights reserved.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 *                                --> NOTICE <--
 *  This file is part of the core development branch, changing its contents will
 * make you unable to use the automatic updates manager. Please refer to the
 * documentation for further information about customizing XNova.
 *
 */

function FleetBuildingPage ( &$CurrentPlanet, $CurrentUser ) {
  global $pricelist, $lang, $resource, $dpath, $_POST;

if (isset($_POST['fmenge'])) {
// On vient de Cliquer ' Construire '

  // 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;
 
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
                $MaxElements   = GetMaxConstructibleElements ( $Element, $CurrentPlanet );

                // Si pas assez de ressources, on ajuste le nombre d'elements
               $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['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');
                       }
                 }
             }
         }
       }
      
    }

  // -------------------------------------------------------------------------------------------------------
  // S'il n'y a pas de Chantier ...
if ($CurrentPlanet[$resource[21]] == 0) {
// Veuillez avoir l'obligeance de construire le Chantier Spacial !!
message($lang['need_hangar'], $lang['tech'][21]);
}

// -------------------------------------------------------------------------------------------------------
// Construction de la page du Chantier (car si j'arrive ici ... c'est que j'ai tout ce qu'il faut pour ...
$TabIndex = 0;
foreach($lang['tech'] as $Element => $ElementName) {
if ($Element > 201 && $Element <= 399) {
if (IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element)) {
// Disponible à la construction

// On regarde si on peut en acheter au moins 1
$CanBuildOne         = IsElementBuyable($CurrentUser, $CurrentPlanet, $Element, false);
// On regarde combien de temps il faut pour construire l'element
$BuildOneElementTime = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element);
// Disponibilité actuelle
$ElementCount        = $CurrentPlanet[$resource[$Element]];
$ElementNbre         = ($ElementCount == 0) ? "" : " (".$lang['dispo'].": " . pretty_number($ElementCount) . ")";

// Construction des 3 cases de la ligne d'un element dans la page d'achat !
// Début de ligne
$PageTable .= "n<tr>";

// Imagette + Link vers la page d'info
$PageTable .= "<th class=l>";
$PageTable .= "<a href=infos.".PHPEXT."?gid=".$Element.">";
$PageTable .= "<img border=0 src="".$dpath."gebaeude/".$Element.".gif" align=top width=120 height=120></a>";
$PageTable .= "</th>";

// Description
$PageTable .= "<td class=l>";
$PageTable .= "<a href=infos.".PHPEXT."?gid=".$Element.">".$ElementName."</a> ".$ElementNbre."<br>";
$PageTable .= "".$lang['res']['descriptions'][$Element]."<br>";
// On affiche le 'prix' avec eventuellement ce qui manque en ressource
$PageTable .= GetElementPrice($CurrentUser, $CurrentPlanet, $Element, false);
// On affiche le temps de construction (c'est toujours tellement plus joli)
$PageTable .= ShowBuildTime($BuildOneElementTime);
$PageTable .= "</td>";

// Case nombre d'elements a construire
$PageTable .= "<th class=k>";
    // Si ... Et Seulement si je peux construire je mets la p'tite zone de saisie
                if ($CanBuildOne) {
                   $TabIndex++;
                   $PageTable .= "<input type=text id=fmenge[".$Element."] name=fmenge[".$Element."] alt='".$lang['tech'][$Element]."' value=0 tabindex=".$TabIndex.">";
                }

$MaxElements   = GetMaxConstructibleElements ( $Element, $CurrentPlanet );

                if($MaxElements>MAX_FLEET_OR_DEFS_PER_ROW)
                 $MaxElements=MAX_FLEET_OR_DEFS_PER_ROW;

                if ($CanBuildOne)
                $PageTable.='<BR><BR><A ONCLICK="document.getElementById('fmenge['.$Element.']').value=''.$MaxElements.'';" STYLE="cursorointer;">Nombre max ('.intval($MaxElements).')</A>';


// Fin de ligne (les 3 cases sont construites !!
$PageTable .= "</tr>";
}
}
}

if ($CurrentPlanet['b_hangar_id'] != '') {
$BuildQueue .= ElementBuildListBox( $CurrentUser, $CurrentPlanet );
}

$parse = $lang;
// La page se trouve dans $PageTable;
$parse['buildlist']    = $PageTable;
// Et la liste de constructions en cours dans $BuildQueue;
$parse['buildinglist'] = $BuildQueue;
$page .= parsetemplate(gettemplate('buildings_fleet'), $parse);

display($page, $lang['Fleet']);
}

Et :

HandleElementBuildingQueue.php

<?php
/**
 * This file is part of XNova:Legacies
 *
 * @license http://www.gnu.org/licenses/gpl-3.0.txt
 * @see http://www.xnova-ng.org/
 *
 * Copyright (c) 2009-Present, XNova Support Team <http://www.xnova-ng.org>
 * All rights reserved.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 *                                --> NOTICE <--
 *  This file is part of the core development branch, changing its contents will
 * make you unable to use the automatic updates manager. Please refer to the
 * documentation for further information about customizing XNova.
 *
 */

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']) {

     $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;
}

j'espere t'avoir aider.

Ces 2 fichiers proviennent si je me trompe pas du forum de xnova

mercredi 27 octobre 2010 (Dernière édition mercredi 27 octobre 2010)

BobyAD Messages : 36

Ah ok donc j'ai juste a les remplacer d'accord je le fait de suite

mercredi 27 octobre 2010

Bliinfo Messages : 174

moi ca a fonctionner tout de suite.

Car si tu as le meme probleme que d'autre, ta défense aussi ne se construit pas.

Donc ca va faire 2 pierre un coup.

Edit : Oui, tu n'a qua tout sélectionner dnas tes fichier originaux, supprimer et copier entierement le code que je t'ai donner, et coller dnas les fichier respectif.

Juste au cas ou, fait une copie de tes fichier dans un autre dossier.

mercredi 27 octobre 2010 (Dernière édition mercredi 27 octobre 2010)

BobyAD Messages : 36

D'accord, j'ai également vu dans les sujets des bugs sur la le déplacements des flottes ( durée de trajet ect) cela est il egalement présent dans la legacie 2009.2?

mercredi 27 octobre 2010

Bliinfo Messages : 174

Si tu parle d'un bug comme celui-ci :

Quand je lance un vaisseaux pour coloniser une planète sa me met sa :

temps de départ : 12:28:51

temps d'arrivée: 12:39:...

voila alors qu'il est 18h24

Je n'ai pas encore travailler sur ce bug.

Mais c'est mineur et il n'empeche pas la jouabilité, seulement le visuel.

mercredi 27 octobre 2010

BobyAD Messages : 36

non je parle des que tu cible une planete avec ta flotte la capacité de fret est rouge négative ainsi que le deuterium rouge négative, et qu'importe que tu change le pourcentage de vitesse ca reste le même quelque soit le systeme ou la galaxie ciblé...

mercredi 27 octobre 2010 (Dernière édition mercredi 27 octobre 2010)

Page suivante »