Kommunauty
Connexion
Inscription

Xg Proyect - Graphisme page bâtiment


Totem38 Messages : 13

Bonjour à tous,

Depuis quelques temps je boss (enfin façon de parler) sur mon petit projet de Xg Proyect, je commence à bucher sur le graphisme et commence à toucher au skin. Mon problème est très simple et à la fois devenu complexe, car je tourne en rond, pour la page bâtiment ou j'essaye de la présenter sur 3 colonnes.

Voici un screen qui sera bien plus clair:

Comme vous le voyez, le problème est que tout les bâtiments reste sur une seule et même ligne. Étant donné que maintenant il est difficile de trouver de l'aide concernant ses releases d'ogame-like. J'espère qu'avec les connaissances de certains sur ce forum, vous pourrez m'aiguiller pour trouver ou sa cloche

En attendant, je souhaite à tous une belle et bonne fin d'année

mardi 30 décembre 2014

Homer Messages : 1855

Heu, donne le code html et css de cette partie, le soucis viens de là

Tu utilises bootstrap ou un truc du genre ou pas du tout ?

mardi 30 décembre 2014

Totem38 Messages : 13

Salut et merci Homer

bootstrap je ne connais pas, il faut que j'aille voir ça de plus près

Sinon voici le code html

<td class="l">
            <table align="left" border = "0" width="200px" valign="top">
                     <tr height="80px">
                             <td align="left" width="80" valign="top">
                                 <a href="game.php?page=infos&gid={i}" onmouseover="return overlib('<center><font size=1 color=white><b>{descriptions}</b></font></a></center>', RIGHT, WIDTH, 150);" onmouseout="return nd();">
                                         <img border="0" src="{dpath}gebaeude/{i}.gif" align="top" width="80">
                                 </a>
                         </td>
                         <td>
                                 <a href="game.php?page=infos&gid={i}"><font color="#99cc00">{n}</font></a><br>
                                 {nivel}<br>
                                 {time}<br>
                                 {click}
                         </td>
                 </tr>
                 <tr height="85px">
                         <td colspan="2" align="center" valign="top">
                                 {price}<br>
                                 {rest_price}
                            </td>
                     </tr>
             </table>
     </td>

Et pour le css justement c'est là que je bloque, je n'arrive pas à m'y retrouver dans toutes les feuilles, ce n'est pas dans le defaut.css, ni dans le style.css enfin je ne crois pas. Il reste donc les 2 formates.css et là je n'arrive pas, est-ce-que tu veux que je mette les 2 formates ??

mardi 30 décembre 2014

Homer Messages : 1855

pourquoi y'a un tableau dans un tableau ?

tu fais juste un tableau à 3 colonnes et c'est bon, c'est le pleus simple. (http://www.commentcamarche.net/contents/504-tableau-html-table)

mardi 30 décembre 2014

Totem38 Messages : 13

En fait le code html c'est celui du fichier buildings_builds_row.tpl que j'ai modifié, à la base il est comme ça

<tr>
<td class="l">
<a href="game.php?page=infos&gid={i}">
<img border="0" src="{dpath}gebaeude/{i}.gif" align="top" width="120" height="120">
</a>
</td>
<td class="l">
<a href="game.php?page=infos&gid={i}">{n}</a>{nivel}<br>
{descriptions}<br>
{price}
{time}
{rest_price}
</td>
<td class="k">{click}</td>
</tr>

Et sa affiche tous les bâtiments sur une colonne verticalement.

Donc, moi je lui est redonné une autre forme comme on le voit sur le screen (plus joli à mon goût ), là ou je bloque, c'est qu'au lieu d'avoir tout sur une ligne horizontale, je voudrais que chaque ligne soit composé de 3 blocs de bâtiments, les autres passent en-dessous etc.. Et là, je n'arrive pas à l'interpréter en css.

Par contre, ci je fais le tableau comme tu le dis je devrais dans chaque cellule identifier chaque id de bâtiments pour chacune des cellules. Alors que là, c'est le jeu qui va chercher les infos.

Merci de prendre le temps de me lire et de répondre Homer, c'est sympa

mardi 30 décembre 2014

Homer Messages : 1855

Donne moi le code entier du tableau, ou normalement doit se trouver un {foreach}.

Le css n'a pas d'importance, faut juste faire un tableau à 3 colonnes et tous les 3 affichages, en change de ligne.

mardi 30 décembre 2014

Totem38 Messages : 13

Alors, dans mon 1er post il y a tout le code html complet qui donne la forme du screen

Si je remet le code normal (vue juste au-dessus) cela donne sa

Donc, ce n'est pas le fichier buildings_builds_row.tpl ou se pose le problème.

Tu parle de foreach, là c'est du php, j'ai regardé dans le fichier class.ShowBuildingsPage.php d'ailleurs je le met au cas ou car c'est de lui que le fichier buildings_builds_row.tpl va trouver les infos (enfin il me semble)

<?php

##############################################################################
# * #
# * XG PROYECT #
# *   #
# * @copyright Copyright (C) 2008 - 2009 By lucky from xgproyect.net       #
# * #
# * #
# *  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. #
# * #
##############################################################################

if(!defined('INSIDE')){ die(header("location:../../"));}

class ShowBuildingsPage
{
private function BuildingSavePlanetRecord ($CurrentPlanet)
{
$QryUpdatePlanet  = "UPDATE {{table}} SET ";
$QryUpdatePlanet .= "`b_building_id` = '". $CurrentPlanet['b_building_id'] ."', ";
$QryUpdatePlanet .= "`b_building` = '".    $CurrentPlanet['b_building']    ."' ";
$QryUpdatePlanet .= "WHERE ";
$QryUpdatePlanet .= "`id` = '".            $CurrentPlanet['id']            ."';";
doquery( $QryUpdatePlanet, 'planets');

return;
}

private function CancelBuildingFromQueue (&$CurrentPlanet, &$CurrentUser)
{
$CurrentQueue  = $CurrentPlanet['b_building_id'];
if ($CurrentQueue != 0)
{
$QueueArray          = explode ( ";", $CurrentQueue );
$ActualCount         = count ( $QueueArray );
$CanceledIDArray     = explode ( ",", $QueueArray[0] );
$Element             = $CanceledIDArray[0];
$BuildMode           = $CanceledIDArray[4];

if ($ActualCount > 1)
{
array_shift( $QueueArray );
$NewCount        = count( $QueueArray );
$BuildEndTime    = time();
for ($ID = 0; $ID < $NewCount ; $ID++ )
{
$ListIDArray          = explode ( ",", $QueueArray[$ID] );
$BuildEndTime        += $ListIDArray[2];
$ListIDArray[3]       = $BuildEndTime;
$QueueArray[$ID]      = implode ( ",", $ListIDArray );
}
$NewQueue        = implode(";", $QueueArray );
$ReturnValue     = true;
$BuildEndTime    = '0';
}
else
{
$NewQueue        = '0';
$ReturnValue     = false;
$BuildEndTime    = '0';
}

if ($BuildMode == 'destroy')
{
$ForDestroy = true;
}
else
{
$ForDestroy = false;
}

if ( $Element != false ) {
$Needed                        = GetBuildingPrice ($CurrentUser, $CurrentPlanet, $Element, true, $ForDestroy);
$CurrentPlanet['metal']       += $Needed['metal'];
$CurrentPlanet['crystal']     += $Needed['crystal'];
$CurrentPlanet['deuterium']   += $Needed['deuterium'];
}

}
else
{
$NewQueue          = '0';
$BuildEndTime      = '0';
$ReturnValue       = false;
}

$CurrentPlanet['b_building_id']  = $NewQueue;
$CurrentPlanet['b_building']     = $BuildEndTime;

return $ReturnValue;
}

private function RemoveBuildingFromQueue ( &$CurrentPlanet, $CurrentUser, $QueueID )
{
if ($QueueID > 1)
{
$CurrentQueue  = $CurrentPlanet['b_building_id'];
if ($CurrentQueue != 0)
{
$QueueArray    = explode ( ";", $CurrentQueue );
$ActualCount   = count ( $QueueArray );
$ListIDArray   = explode ( ",", $QueueArray[$QueueID - 2] );
$BuildEndTime  = $ListIDArray[3];
for ($ID = $QueueID; $ID < $ActualCount; $ID++ )
{
$ListIDArray          = explode ( ",", $QueueArray[$ID] );
$BuildEndTime        += $ListIDArray[2];
$ListIDArray[3]       = $BuildEndTime;
$QueueArray[$ID - 1]  = implode ( ",", $ListIDArray );
}
unset ($QueueArray[$ActualCount - 1]);
$NewQueue     = implode ( ";", $QueueArray );
}
$CurrentPlanet['b_building_id'] = $NewQueue;
}
return $QueueID;
}

private function AddBuildingToQueue (&$CurrentPlanet, $CurrentUser, $Element, $AddMode = true)
{
global $resource;

$CurrentQueue  = $CurrentPlanet['b_building_id'];

$Queue = $this->ShowBuildingQueue($CurrentPlanet, $CurrentUser);
$CurrentMaxFields   = CalculateMaxPlanetFields($CurrentPlanet);

if ($CurrentPlanet["field_current"] >= ($CurrentMaxFields - $Queue['lenght']) && $_GET['cmd'] != 'destroy')
die(header("location:game.php?page=buildings"));

if ($CurrentQueue != 0)
{
$QueueArray    = explode ( ";", $CurrentQueue );
$ActualCount   = count ( $QueueArray );
}
else
{
$QueueArray    = "";
$ActualCount   = 0;
}

if ($AddMode == true)
{
$BuildMode = 'build';
}
else
{
$BuildMode = 'destroy';
}

if ( $ActualCount < MAX_BUILDING_QUEUE_SIZE)
{
$QueueID      = $ActualCount + 1;
}
else
{
$QueueID      = false;
}

if ( $QueueID != false && IsElementBuyable ($CurrentUser, $CurrentPlanet, $Element, true, false) && IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element) )
{
if ($QueueID > 1)
{
$InArray = 0;
for ( $QueueElement = 0; $QueueElement < $ActualCount; $QueueElement++ )
{
$QueueSubArray = explode ( ",", $QueueArray[$QueueElement] );
if ($QueueSubArray[0] == $Element)
{
$InArray++;
}
}
}
else
{
$InArray = 0;
}

if ($InArray != 0)
{
$ActualLevel  = $CurrentPlanet[$resource[$Element]];
if ($AddMode == true)
{
$BuildLevel   = $ActualLevel + 1 + $InArray;
$CurrentPlanet[$resource[$Element]] += $InArray;
$BuildTime    = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element);
$CurrentPlanet[$resource[$Element]] -= $InArray;
}
else
{
$BuildLevel   = $ActualLevel - 1 - $InArray;
$CurrentPlanet[$resource[$Element]] -= $InArray;
$BuildTime    = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element) / 2;
$CurrentPlanet[$resource[$Element]] += $InArray;
}
}
else
{
$ActualLevel  = $CurrentPlanet[$resource[$Element]];
if ($AddMode == true)
{
$BuildLevel   = $ActualLevel + 1;
$BuildTime    = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element);
}
else
{
$BuildLevel   = $ActualLevel - 1;
$BuildTime    = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element) / 2;
}
}

if ($QueueID == 1)
{
$BuildEndTime = time() + $BuildTime;
}
else
{
$PrevBuild = explode (",", $QueueArray[$ActualCount - 1]);
$BuildEndTime = $PrevBuild[3] + $BuildTime;
}

$QueueArray[$ActualCount]       = $Element .",". $BuildLevel .",". $BuildTime .",". $BuildEndTime .",". $BuildMode;
$NewQueue                       = implode ( ";", $QueueArray );
$CurrentPlanet['b_building_id'] = $NewQueue;
}
return $QueueID;
}

private function ShowBuildingQueue ( $CurrentPlanet, $CurrentUser )
{
global $lang;

$CurrentQueue  = $CurrentPlanet['b_building_id'];
$QueueID       = 0;
if ($CurrentQueue != 0)
{
$QueueArray    = explode ( ";", $CurrentQueue );
$ActualCount   = count ( $QueueArray );
}
else
{
$QueueArray    = "0";
$ActualCount   = 0;
}

$ListIDRow    = "";

if ($ActualCount != 0)
{
$PlanetID     = $CurrentPlanet['id'];
for ($QueueID = 0; $QueueID < $ActualCount; $QueueID++)
{
$BuildArray   = explode (",", $QueueArray[$QueueID]);
$BuildEndTime = floor($BuildArray[3]);
$CurrentTime  = floor(time());
if ($BuildEndTime >= $CurrentTime)
{
$ListID       = $QueueID + 1;
$Element      = $BuildArray[0];
$BuildLevel   = $BuildArray[1];
$BuildMode    = $BuildArray[4];
$BuildTime    = $BuildEndTime - time();
$ElementTitle = $lang['tech'][$Element];

if ($ListID > 0)
{
$ListIDRow .= "<tr>";
if ($BuildMode == 'build')
{
$ListIDRow .= " <td class="l" colspan="2">". $ListID .".: ". $ElementTitle ." ". $BuildLevel ."</td>";
}
else
{
$ListIDRow .= " <td class="l" colspan="2">". $ListID .".: ". $ElementTitle ." ". $BuildLevel . " " . $lang['bd_dismantle']."</td>";
}
$ListIDRow .= " <td class="k">";

if ($ListID == 1)
{
$ListIDRow .= " <div id="blc" class="z">". $BuildTime ."<br>";
$ListIDRow .= " <a href="game.php?page=buildings&listid=". $ListID ."&cmd=cancel&planet=". $PlanetID ."">".$lang['bd_interrupt']."</a></div>";
$ListIDRow .= " <script language="JavaScript">";
$ListIDRow .= " pp = "". $BuildTime ."";n";
$ListIDRow .= " pk = "". $ListID ."";n";
$ListIDRow .= " pm = "cancel";n";
$ListIDRow .= " pl = "". $PlanetID ."";n";
$ListIDRow .= " t();n";
$ListIDRow .= " </script>";
$ListIDRow .= " <strong color="lime"><br><font color="lime">". date("j/m H:i:s" ,$BuildEndTime) ."</font></strong>";
}
else
{
$ListIDRow .= " <font color="red">";
$ListIDRow .= " <a href="game.php?page=buildings&listid=". $ListID ."&cmd=remove&planet=". $PlanetID ."">".$lang['bd_cancel']."</a></font>";
}
$ListIDRow .= " </td>";
$ListIDRow .= "</tr>";
}
}
}
}

$RetValue['lenght']    = $ActualCount;
$RetValue['buildlist'] = $ListIDRow;

return $RetValue;
}

public function __construct (&$CurrentPlanet, $CurrentUser)
{
global $ProdGrid, $lang, $resource, $reslist, $phpEx, $dpath, $game_config, $_GET, $xgp_root;

include_once($xgp_root . 'includes/functions/IsTechnologieAccessible.' . $phpEx);
include_once($xgp_root . 'includes/functions/GetElementPrice.' . $phpEx);

CheckPlanetUsedFields ( $CurrentPlanet );

$parse = $lang;
$Allowed['1'] = array(  1,  2,  3,  4, 12, 14, 15, 21, 22, 23, 24, 31, 33, 34, 35, 44, 45);
$Allowed['3'] = array( 12, 14, 21, 22, 23, 24, 34, 41, 42, 43);

if (isset($_GET['cmd']))
{
$bDoItNow = false;
$TheCommand = $_GET['cmd'];
$Element = $_GET['building'];
$ListID = $_GET['listid'];

if (!in_array( trim($Element), $Allowed[$CurrentPlanet['planet_type']]))
{
unset($Element);
}

if( isset ( $Element ))
{
if ( !strchr ( $Element, ",") && !strchr ( $Element, " ") &&
 !strchr ( $Element, "+") && !strchr ( $Element, "*") &&
 !strchr ( $Element, "~") && !strchr ( $Element, "=") &&
 !strchr ( $Element, ";") && !strchr ( $Element, "'") &&
 !strchr ( $Element, "#") && !strchr ( $Element, "-") &&
 !strchr ( $Element, "_") && !strchr ( $Element, "[") &&
 !strchr ( $Element, "]") && !strchr ( $Element, ".") &&
 !strchr ( $Element, ":"))
{
if (in_array( trim($Element), $Allowed[$CurrentPlanet['planet_type']]))
{
$bDoItNow = true;
}
}
else
{
header("location:game.php?page=buildings");
}
}
elseif ( isset ( $ListID ))
{
$bDoItNow = true;
}

if ($Element == 31 && $CurrentUser["b_tech_planet"] != 0)
{
$bDoItNow = false;
}

if ( ( $Element == 21 or $Element == 14 or $Element == 15 ) && $CurrentPlanet["b_hangar"] != 0)
{
$bDoItNow = false;
}

if ($bDoItNow == true)
{
switch($TheCommand)
{
case 'cancel':
$this->CancelBuildingFromQueue ($CurrentPlanet, $CurrentUser);
break;
case 'remove':
$this->RemoveBuildingFromQueue ($CurrentPlanet, $CurrentUser, $ListID);
break;
case 'insert':
$this->AddBuildingToQueue ($CurrentPlanet, $CurrentUser, $Element, true);
break;
case 'destroy':
$this->AddBuildingToQueue ($CurrentPlanet, $CurrentUser, $Element, false);
break;
}
}

if ( $_GET['r'] == 'overview' )
{
header('location:game.php?page=overview');
}
else
{
header ("Location: game.php?page=buildings&mode=buildings");
}
}

SetNextQueueElementOnTop($CurrentPlanet, $CurrentUser);
$Queue = $this->ShowBuildingQueue($CurrentPlanet, $CurrentUser);
$this->BuildingSavePlanetRecord($CurrentPlanet);

if ($Queue['lenght'] < (MAX_BUILDING_QUEUE_SIZE))
{
$CanBuildElement = true;
}
else
{
$CanBuildElement = false;
}

$BuildingPage        = "";
$zaehler          = 1;

foreach($lang['tech'] as $Element => $ElementName)
{
if (in_array($Element, $Allowed[$CurrentPlanet['planet_type']]))
{
$CurrentMaxFields      = CalculateMaxPlanetFields($CurrentPlanet);
if ($CurrentPlanet["field_current"] < ($CurrentMaxFields - $Queue['lenght']))
{
$RoomIsOk = true;
}
else
{
$RoomIsOk = false;
}

if (IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element))
{
$HaveRessources         = IsElementBuyable ($CurrentUser, $CurrentPlanet, $Element, true, false);
$parse                  = array();
$parse = $lang;
$parse['dpath']         = $dpath;
$parse['i']             = $Element;
$BuildingLevel          = $CurrentPlanet[$resource[$Element]];
$parse['nivel']         = ($BuildingLevel == 0) ? "" : " (". $lang['bd_lvl'] . " " . $BuildingLevel .")";
$parse['n']             = $ElementName;
$parse['descriptions'] = $lang['res']['descriptions'][$Element];
$ElementBuildTime       = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element);
$parse['time']          = ShowBuildTime($ElementBuildTime);
$parse['price']         = GetElementPrice($CurrentUser, $CurrentPlanet, $Element);
$parse['click']         = '';
$NextBuildLevel         = $CurrentPlanet[$resource[$Element]] + 1;

if ($RoomIsOk && $CanBuildElement)
{
if ($Queue['lenght'] == 0)
{
if ($NextBuildLevel == 1)
{
if ( $HaveRessources == true )
$parse['click'] = "<a href="game.php?page=buildings&cmd=insert&building=". $Element .""><font color=#00FF00>".$lang['bd_build']."</font></a>";
else
$parse['click'] = "<font color=#FF0000>".$lang['bd_build']."</font>";
}
else
{
if ( $HaveRessources == true )
$parse['click'] = "<a href="game.php?page=buildings&cmd=insert&building=". $Element .""><font color=#00FF00>". $lang['bd_build_next_level'] . $NextBuildLevel ."</font></a>";
else
$parse['click'] = "<font color=#FF0000>". $lang['bd_build_next_level'] . $NextBuildLevel ."</font>";
}
}
else
{
$parse['click'] = "<a href="game.php?page=buildings&cmd=insert&building=". $Element .""><font color=#00FF00>".$lang['bd_add_to_list']."</font></a>";
}
}
elseif ($RoomIsOk && !$CanBuildElement)
{
if ($NextBuildLevel == 1)
$parse['click'] = "<font color=#FF0000>".$lang['bd_build']."</font>";
else
$parse['click'] = "<font color=#FF0000>". $lang['bd_build_next_level'] . $NextBuildLevel ."</font>";
}
else
$parse['click'] = "<font color=#FF0000>".$lang['bd_no_more_fields']."</font>";

if ($Element == 31 && $CurrentUser["b_tech_planet"] != 0)
{
$parse['click'] = "<font color=#FF0000>".$lang['bd_working']."</font>";
}

if ( ( $Element == 21 or $Element == 14 or $Element == 15 ) && $CurrentPlanet["b_hangar"] != 0)
{
$parse['click'] = "<font color=#FF0000>".$lang['bd_working']."</font>";
}

$BuildingPage .= parsetemplate(gettemplate('buildings/buildings_builds_row'), $parse);
}
}
}

if ($Queue['lenght'] > 0)
{
include($xgp_root . 'includes/functions/InsertBuildListScript.' . $phpEx);

$parse['BuildListScript']  = InsertBuildListScript ("buildings");
$parse['BuildList']        = $Queue['buildlist'];
}
else
{
$parse['BuildListScript']  = "";
$parse['BuildList']        = "";
}

$parse['BuildingsList']        = $BuildingPage;

display(parsetemplate(gettemplate('buildings/buildings_builds'), $parse));
}
}
?>

Bon c'est clair je ne suis pas une lumière, mais j'ai beau me creuser la tête je bloque carrément

En tout cas Homer je te remercie de prendre un peu de ton temps avec mon petit problème encore merci

mardi 30 décembre 2014

Homer Messages : 1855

Nan, je te parle bien du fichier buildings_builds_row.tpl, si tu regarde bien, tu dois avoir un truc du genre

<table>
{foreach}
.....
</table>

J'ai besoin du code complet entre le <table> et le </table>

mardi 30 décembre 2014

Totem38 Messages : 13

Non je t'assure Homer, le fichier il n'y a rien d'autre que se soit le code original ou celui que j'ai changé je t'es mis le fichier entier

mardi 30 décembre 2014

Homer Messages : 1855

Ah oui, je confond avec xnova révolution....

tu peux me donne le code du fichier : buildings_builds.tpl

EDIT:

essai ça

fichier tpl :

			{if count == 0}
<tr>
{/if}
<td class="l">
<a href="game.php?page=infos&gid={i}">
<img border="0" src="{dpath}gebaeude/{i}.gif" align="top" width="120" height="120">
</a>
</td>
<td class="l">
<a href="game.php?page=infos&gid={i}">{n}</a>{nivel}<br>
{descriptions}<br>
{price}
{time}
{rest_price}
</td>
<td class="k">{click}</td>
{if count == 0}
</tr>
{/if}

fichier php, remplace la fonction construct par celle-ci :

	public function __construct (&$CurrentPlanet, $CurrentUser)
{
global $ProdGrid, $lang, $resource, $reslist, $phpEx, $dpath, $game_config, $_GET, $xgp_root;

include_once($xgp_root . 'includes/functions/IsTechnologieAccessible.' . $phpEx);
include_once($xgp_root . 'includes/functions/GetElementPrice.' . $phpEx);

CheckPlanetUsedFields ( $CurrentPlanet );

$parse = $lang;
$Allowed['1'] = array(  1,  2,  3,  4, 12, 14, 15, 21, 22, 23, 24, 31, 33, 34, 35, 44, 45);
$Allowed['3'] = array( 12, 14, 21, 22, 23, 24, 34, 41, 42, 43);

if (isset($_GET['cmd']))
{
$bDoItNow = false;
$TheCommand = $_GET['cmd'];
$Element = $_GET['building'];
$ListID = $_GET['listid'];

if (!in_array( trim($Element), $Allowed[$CurrentPlanet['planet_type']]))
{
unset($Element);
}

if( isset ( $Element ))
{
if ( !strchr ( $Element, ",") && !strchr ( $Element, " ") &&
 !strchr ( $Element, "+") && !strchr ( $Element, "*") &&
 !strchr ( $Element, "~") && !strchr ( $Element, "=") &&
 !strchr ( $Element, ";") && !strchr ( $Element, "'") &&
 !strchr ( $Element, "#") && !strchr ( $Element, "-") &&
 !strchr ( $Element, "_") && !strchr ( $Element, "[") &&
 !strchr ( $Element, "]") && !strchr ( $Element, ".") &&
 !strchr ( $Element, ":"))
{
if (in_array( trim($Element), $Allowed[$CurrentPlanet['planet_type']]))
{
$bDoItNow = true;
}
}
else
{
header("location:game.php?page=buildings");
}
}
elseif ( isset ( $ListID ))
{
$bDoItNow = true;
}

if ($Element == 31 && $CurrentUser["b_tech_planet"] != 0)
{
$bDoItNow = false;
}

if ( ( $Element == 21 or $Element == 14 or $Element == 15 ) && $CurrentPlanet["b_hangar"] != 0)
{
$bDoItNow = false;
}

if ($bDoItNow == true)
{
switch($TheCommand)
{
case 'cancel':
$this->CancelBuildingFromQueue ($CurrentPlanet, $CurrentUser);
break;
case 'remove':
$this->RemoveBuildingFromQueue ($CurrentPlanet, $CurrentUser, $ListID);
break;
case 'insert':
$this->AddBuildingToQueue ($CurrentPlanet, $CurrentUser, $Element, true);
break;
case 'destroy':
$this->AddBuildingToQueue ($CurrentPlanet, $CurrentUser, $Element, false);
break;
}
}

if ( $_GET['r'] == 'overview' )
{
header('location:game.php?page=overview');
}
else
{
header ("Location: game.php?page=buildings&mode=buildings");
}
}

SetNextQueueElementOnTop($CurrentPlanet, $CurrentUser);
$Queue = $this->ShowBuildingQueue($CurrentPlanet, $CurrentUser);
$this->BuildingSavePlanetRecord($CurrentPlanet);

if ($Queue['lenght'] < (MAX_BUILDING_QUEUE_SIZE))
{
$CanBuildElement = true;
}
else
{
$CanBuildElement = false;
}

$BuildingPage        = "";
$zaehler          = 1;

$parse['count'] = 0;
foreach($lang['tech'] as $Element => $ElementName)
{
if (in_array($Element, $Allowed[$CurrentPlanet['planet_type']]))
{
$CurrentMaxFields      = CalculateMaxPlanetFields($CurrentPlanet);
if ($CurrentPlanet["field_current"] < ($CurrentMaxFields - $Queue['lenght']))
{
$RoomIsOk = true;
}
else
{
$RoomIsOk = false;
}

if (IsTechnologieAccessible($CurrentUser, $CurrentPlanet, $Element))
{
$HaveRessources         = IsElementBuyable ($CurrentUser, $CurrentPlanet, $Element, true, false);
$parse                  = array();
$parse = $lang;
$parse['dpath']         = $dpath;
$parse['i']             = $Element;
$BuildingLevel          = $CurrentPlanet[$resource[$Element]];
$parse['nivel']         = ($BuildingLevel == 0) ? "" : " (". $lang['bd_lvl'] . " " . $BuildingLevel .")";
$parse['n']             = $ElementName;
$parse['descriptions'] = $lang['res']['descriptions'][$Element];
$ElementBuildTime       = GetBuildingTime($CurrentUser, $CurrentPlanet, $Element);
$parse['time']          = ShowBuildTime($ElementBuildTime);
$parse['price']         = GetElementPrice($CurrentUser, $CurrentPlanet, $Element);
$parse['click']         = '';
$NextBuildLevel         = $CurrentPlanet[$resource[$Element]] + 1;

if ($RoomIsOk && $CanBuildElement)
{
if ($Queue['lenght'] == 0)
{
if ($NextBuildLevel == 1)
{
if ( $HaveRessources == true )
$parse['click'] = "<a href="game.php?page=buildings&cmd=insert&building=". $Element .""><font color=#00FF00>".$lang['bd_build']."</font></a>";
else
$parse['click'] = "<font color=#FF0000>".$lang['bd_build']."</font>";
}
else
{
if ( $HaveRessources == true )
$parse['click'] = "<a href="game.php?page=buildings&cmd=insert&building=". $Element .""><font color=#00FF00>". $lang['bd_build_next_level'] . $NextBuildLevel ."</font></a>";
else
$parse['click'] = "<font color=#FF0000>". $lang['bd_build_next_level'] . $NextBuildLevel ."</font>";
}
}
else
{
$parse['click'] = "<a href="game.php?page=buildings&cmd=insert&building=". $Element .""><font color=#00FF00>".$lang['bd_add_to_list']."</font></a>";
}
}
elseif ($RoomIsOk && !$CanBuildElement)
{
if ($NextBuildLevel == 1)
$parse['click'] = "<font color=#FF0000>".$lang['bd_build']."</font>";
else
$parse['click'] = "<font color=#FF0000>". $lang['bd_build_next_level'] . $NextBuildLevel ."</font>";
}
else
$parse['click'] = "<font color=#FF0000>".$lang['bd_no_more_fields']."</font>";

if ($Element == 31 && $CurrentUser["b_tech_planet"] != 0)
{
$parse['click'] = "<font color=#FF0000>".$lang['bd_working']."</font>";
}

if ( ( $Element == 21 or $Element == 14 or $Element == 15 ) && $CurrentPlanet["b_hangar"] != 0)
{
$parse['click'] = "<font color=#FF0000>".$lang['bd_working']."</font>";
}

$BuildingPage .= parsetemplate(gettemplate('buildings/buildings_builds_row'), $parse);
if($parse['count']==2)
$parse['count'] = 0;
else
$parse['count']++;
}
}
}

if ($Queue['lenght'] > 0)
{
include($xgp_root . 'includes/functions/InsertBuildListScript.' . $phpEx);

$parse['BuildListScript']  = InsertBuildListScript ("buildings");
$parse['BuildList']        = $Queue['buildlist'];
}
else
{
$parse['BuildListScript']  = "";
$parse['BuildList']        = "";
}

$parse['BuildingsList']        = $BuildingPage;

display(parsetemplate(gettemplate('buildings/buildings_builds'), $parse));
}
mardi 30 décembre 2014 (Dernière édition mardi 30 décembre 2014)

Page suivante »