vue Problème de construction de vaisseaux! - Page 1
Kommunauty
Connexion
Inscription

Problème de construction de vaisseaux!


Bliinfo Messages : 174

Bah j'ai eu un probleme semblable,

lorsque je voulais coloniser une 10ieme planete.

Ma capacité de chargement tombait dans le négatif ce qui m'empechait de coloniser une nouvelle planete.

Mais sinon, je ne peux pas t'aider sur ce probleme.

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

BobyAD Messages : 36

Sinon pour les rapport de combat et autre ca ne bug pas? tel que le recyclage tout ce fait correctement?

mercredi 27 octobre 2010

BobyAD Messages : 36

D'accord mais par contre dit moi est ce normal que je vois 1(le rang) sur 0 alors qu'il ai 5 joueurs au total inscrit?

mercredi 27 octobre 2010

Mizur Messages : 6615

BodyAD, tu peux faire gaffe quand tu envoie un message, donc a pas faire "actualiser" toujours sur la meme page? Ca envoie ton post en je sais pas combien d'exemplaires ><

mercredi 27 octobre 2010

BobyAD Messages : 36

arf Ok mizur vraiment désolé... sinon quelqu'un pourrai m'éclairer sur le problèmes des statistiques?

mercredi 27 octobre 2010

Bliinfo Messages : 174

J'ai eu aussi ce probleme, il y est encore.

Mais bon je n'ai pas trouver quoi changer pour corriger ca, alors je vais tout simplement enlever l'affichage des rangs a coté des points de l'overviews et aussi enlever le nombre d'inscrit sur la page de login.

mercredi 27 octobre 2010

BobyAD Messages : 36

et comment le faire?

mercredi 27 octobre 2010

Bliinfo Messages : 174

pour le moment je ne saurais te répondre.

Mais si tu me laisse quelques jours, le temp que je finalise le plus important pour ouvrir mon autre serveur, je pourrais vérifier et te poster ma réponse.

mercredi 27 octobre 2010

BobyAD Messages : 36

Aucun probleme

mercredi 27 octobre 2010

BlueWing Messages : 1

Bonjour,

un ami m'a demandé de tester son jeu qu'il a fait avec XNova. Cependant je viens de constater qu'il a bien corriger le bug de construction des vaisseaux mais pas celui des défenses. N'y connaissant pas grand chose en PHP et en base de donnée je voudrais savoir si quelqu'un pouvait me dire les modifications à faire. D'après ce que j'ai lu, je suppose que le fichier à modifier est DefenseBuildingPage.php qui est encore la version qui est dans la version qu'il a téléchargé sur ce site.

Cordialement,

BlueWing

EDIT: Voici le contenu du fichier DefenseBuildingPage.php

<?php
/**
 * Tis 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 DefensesBuildingPage ( &$CurrentPlanet, $CurrentUser ) {
  global $lang, $resource, $dpath, $_POST;

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

// Et y a une liste de doléances
// Ici, on sait precisement ce qu'on aimerait bien construire ...

// Gestion de la place disponible dans les silos !
$Missiles[502] = $CurrentPlanet[ $resource[502] ];
$Missiles[503] = $CurrentPlanet[ $resource[503] ];
$SiloSize      = $CurrentPlanet[ $resource[44] ];
$MaxMissiles   = $SiloSize * 10;
// On prend les missiles deja dans la queue de fabrication aussi (ca aide)
$BuildQueue    = $CurrentPlanet['b_hangar_id'];
$BuildArray    = explode (";", $BuildQueue);
for ($QElement = 0; $QElement < count($BuildArray); $QElement++) {
$ElmentArray = explode (",", $BuildArray[$QElement] );
if       ($ElmentArray[502] != 0) {
$Missiles[502] += $ElmentArray[502];
} elseif ($ElmentArray[503] != 0) {
$Missiles[503] += $ElmentArray[503];
}
}
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 etdu nombre d'elements souhaités

$Element = intval($Element);
$Count   = intval($Count);
if ($Count > MAX_FLEET_OR_DEFS_PER_ROW) {
$Count = MAX_FLEET_OR_DEFS_PER_ROW;
}


if ($Count != 0) {
// Cas particulier (Petit Bouclier et Grand Bouclier
// ne peuvent exister qu'une seule et unique fois
$InQueue = strpos ( $CurrentPlanet['b_hangar_id'], $Element.",");
$IsBuild = ($CurrentPlanet[$resource[407]] >= 1) ? true : false;
if ($Element == 407 || $Element == 408) {
if ($InQueue === false && !$IsBuild) {
                        $Count = 1;
}
}

// 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 );

// Testons si on a de la place pour ces nouveaux missiles !
if ($Element == 502 || $Element == 503) {
// Cas particulier des missiles
$ActuMissiles  = $Missiles[502] + ( 2 * $Missiles[503] );
$MissilesSpace = $MaxMissiles - $ActuMissiles;
if ($Element == 502) {
if ( $Count > $MissilesSpace ) {
$Count = $MissilesSpace;
}
} else {
if ( $Count > floor( $MissilesSpace / 2 ) ) {
$Count = floor( $MissilesSpace / 2 );
}
}
if ($Count > $MaxElements) {
$Count = $MaxElements;
}
$Missiles[$Element] += $Count;
} else {
// 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) {
$CurrentPlanet['metal']           -= $Ressource['metal'];
$CurrentPlanet['crystal']         -= $Ressource['crystal'];
$CurrentPlanet['deuterium']       -= $Ressource['deuterium'];
$CurrentPlanet['b_hangar_id']     .= "". $Element .",". $Count .";";
}
}
}
}
}

// -------------------------------------------------------------------------------------------------------
// 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;
$PageTable = "";
foreach($lang['tech'] as $Element => $ElementName) {
if ($Element > 400 && $Element <= 599) {
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) {
$InQueue = strpos ( $CurrentPlanet['b_hangar_id'], $Element.",");
$IsBuild = ($CurrentPlanet[$resource[407]] >= 1) ? true : false;
$BuildIt = true;
if ($Element == 407 || $Element == 408) {
                        $BuildIt = false;
if ( $InQueue === false && !$IsBuild) {
$BuildIt = true;
}
}

if ( !$BuildIt ) {
$PageTable .= "<font color="red">".$lang['only_one']."</font>";
} else {
$TabIndex++;
$PageTable .= "<input type=text name=fmenge[".$Element."] alt='".$lang['tech'][$Element]."' size=5 maxlength=5 value=0 tabindex=".$TabIndex.">";
$PageTable .= "</th>";
}
} else {
$PageTable .= "</th>";
}

// 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;
// fragmento de template
$page .= parsetemplate(gettemplate('buildings_defense'), $parse);

display($page, $lang['Defense']);

}
// Version History
// - 1.0 Modularisation
// - 1.1 Correction mise en place d'une limite max d'elements constructibles par ligne
// - 1.2 Correction limitation bouclier meme si en queue de fabrication
//
?>

Et celui de 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;
}
lundi 20 décembre 2010 (Dernière édition lundi 20 décembre 2010)

Répondre Pour répondre, tu dois d'abord t'inscrire rapidement sur Kommunauty. Rejoins-nous vite !