Version 1.8

This commit is contained in:
nemunaire 2008-11-03 12:00:00 +01:00
commit 5f81f76b17
184 changed files with 78335 additions and 736 deletions

1
.onyx Normal file
View file

@ -0,0 +1 @@
./onyx/

143
connexion.php Normal file
View file

@ -0,0 +1,143 @@
<?php
define("INDEX", 1);
$chrono_start = microtime();
$onyx = @file_get_contents('./.onyx') or die("Configuration introuvable.");
define("_FCORE",trim($onyx));
$_SERVER['REMOTE_ADDR'] = "127.0.0.1";
require_once(_FCORE."kernel.php");
require_once(_FCORE."hb_game/tables.php");
set_time_limit(0);
error_reporting(E_ALL);
echo "Demarrage du serveur ...";
$socket = socket_create(AF_INET, SOCK_STREAM, 0);
@socket_bind($socket, '127.0.0.1', 13650) or die("\nERREUR : Port déja utilise");
socket_listen($socket);
$bdd = new bdd();
echo " Serveur pret, en attente.\n\n";
while(true) {
$client = socket_accept($socket);
//On attend une requête
$reception = socket_read($client, 255);
echo "Reception d'une connexion en provenance de ".$reception."\n";
if (!empty($reception)) {
$ip = $reception;
$_SERVER['REMOTE_ADDR'] = $ip;
//On renvoie le type de connexion au serveur
socket_write($client, "secure", 6);
//On attend une requête contenant le nom de l'utilisateur
$HB_login = socket_read($client, 255);
$bdd->connexion();
$bdd->escape($HB_login);
$res = $bdd->unique_query("SELECT mdp_var FROM $table_user WHERE pseudo = '$HB_login';");
$bdd->deconnexion();
if (empty($res['mdp_var'])) socket_write($client, 'not found', 9);
else socket_write($client, $res['mdp_var'], 255);
//On attend une requête contenant le mot de passe
$HB_password = socket_read($client, 255);
$bdd->connexion();
$bdd->escape($HB_password);
$resultat = $bdd->unique_query("SELECT id, mv, last_visite, auth_level, raisonmv FROM $table_user WHERE pseudo = '$HB_login' AND mdp = '$HB_password';");
if ($resultat) {
$id = $resultat['id'];
$reqPlan = $bdd->query("SELECT id, file_bat, file_tech, file_cas, file_vais, file_ter FROM $table_planete WHERE id_user = '$id' ORDER BY id ASC;");
$resultatP = $reqPlan[0];
if (!$reqPlan) {
$bdd->deconnexion();
socket_write($client, 'ERR:Impossible de trouver votre planète !', 41);
}
else {
if ($resultat['mv'] != 0) {
if ($resultat['last_visite']+259200 > time() && $resultat['auth_level'] < 2) {
if ($resultat['mv'] == 3) socket_write($client, 'MV3:'.$resultat['raisonmv'], 260);
elseif ($resultat['mv'] == 2) socket_write($client, 'MV2:'.($resultat['last_visite']+259200).':'.$resultat['raisonmv'], 300);
else socket_write($client, 'MV1:'.$resultat['last_visite']+259200, 255);
}
else {
$bdd->query("UPDATE $table_user SET mv = '0' WHERE id = '$id';");
$bdd->query("UPDATE $table_planete SET timestamp = '".time()."' WHERE id_user = '$id';");
//On fait repartir à 0 les files d'attente
include_once(_FCORE."hb_game/Class/class.gerefile.php");
$cntplan = count($reqPlan);
for ($i = 0; $i < $cntplan; $i++) {
if (!empty($reqPlan[$i]['file_bat'])) {
$file = unserialize($reqPlan[$i]['file_bat']);
$file->timestamp = time();
$fileBat = serialize($file);
$bdd->escape($fileBat);
}
else $fileBat = '';
if (!empty($reqPlan[$i]['file_tech'])) {
$file = unserialize($reqPlan[$i]['file_tech']);
$file->timestamp = time();
$fileTech = serialize($file);
$bdd->escape($fileTech);
}
else $fileTech = '';
if (!empty($reqPlan[$i]['file_cas'])) {
$file = unserialize($reqPlan[$i]['file_cas']);
$file->timestamp = time();
$fileCas = serialize($file);
$bdd->escape($fileCas);
}
else $fileCas = '';
if (!empty($reqPlan[$i]['file_vais'])) {
$file = unserialize($reqPlan[$i]['file_vais']);
$file->timestamp = time();
$fileVais = serialize($file);
$bdd->escape($fileCas);
}
else $fileVais = '';
if (!empty($reqPlan[$i]['file_ter'])) {
$file = unserialize($reqPlan[$i]['file_ter']);
$file->timestamp = time();
$fileTer = serialize($file);
$bdd->escape($fileTer);
}
else $fileTer = '';
$idPlan = $reqPlan[$i]['id'];
$bdd->query("UPDATE $table_planete SET file_bat = '$fileBat', file_tech = '$fileTech', file_cas = '$fileCas', file_vais = '$fileVais', file_ter = '$fileTer' WHERE id = '$idPlan';");
}
}
}
$time = time();
$bdd->query("UPDATE $table_user SET last_visite = '$time', last_ip = '$ip' WHERE id = '$id';");
$bdd->query("INSERT INTO $table_registre_identification (id_util, ip) VALUES ('".$id."','".$ip."');");
$bdd->deconnexion();
$sess = new session();
$sess->load();
$sess->values['connected'] = TRUE;
$sess->values['id'] = $resultat['id'];
$sess->values['idPlan'] = $resultatP['id'];
$sess->values['auth_level'] = $resultat['auth_level'];
$sess->put();
socket_write($client, "ok", 2);
socket_write($client, $config['session_name'], strlen($config['session_name']));
socket_write($client, $sess->cookie, strlen($sess->cookie));
$fin = time() + $config['session_time']."po";
socket_write($client, $fin, strlen($fin));
$sess = false;
unset($sess);
echo "Identification validee pour $HB_login => $fin\n";
}
}
else socket_write($client, 'not found', 9);
}
else socket_write($client, "ERR:La phase d'identification n'a pas encore commence", 49);
socket_close($client);
echo "Fin d'une connexion\n\n";
flush();
}
?>

View file

@ -1,6 +0,0 @@
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_flag magic_quotes_sybase Off
php_flag register_globals Off
Options -Indexes

77
htdocs/403.html Normal file
View file

@ -0,0 +1,77 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="fr" />
<title> ::Halo-Battle:: - Erreur</title>
<style type="text/css">
html
{
font-size: 100%;
}
body
{
background-color: #000000;
}
div
{
background-color: #080819;
text-align: center;
margin: 10% auto 0 auto;
padding: 25px 0;
width: 80%;
border-top: #FFFFFF dotted 1px;
border-left: #FFFFFF dotted 1px;
border-right: #FFFFFF solid 3px;
border-bottom: #FFFFFF solid 3px;
}
h1
{
font-size: 3em;
color: #FFFFFF;
}
h2
{
font-size: 2em;
color: #FFFFFF;
}
h3
{
font-size: 1.5em;
color: #FFFFFF;
font-weight: normal;
}
a
{
position: absolute;
bottom: 20px;
right: 30px;
font-size: 0.8em;
display: block;
padding: 5px 10px;
background-color: #FFFFFF;
color: #000000;
text-decoration: underline;
font-weight: bold;
}
</style>
</head>
<body>
<div>
<h2>Erreur</h2>
<h1>403</h1>
<h3>Refus de traitement de la requête.<br /><em>Forbidden.</em></h3>
</div>
<a href="/">HALO-BATTLE</a>
<!-- \\******* By Phantom *******// Halo-Battle, Tous droits réservés -->
</body>
</html>

77
htdocs/404.html Normal file
View file

@ -0,0 +1,77 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="fr" />
<title> ::Halo-Battle:: - Erreur</title>
<style type="text/css">
html
{
font-size: 100%;
}
body
{
background-color: #000000;
}
div
{
background-color: #080819;
text-align: center;
margin: 10% auto 0 auto;
padding: 25px 0;
width: 80%;
border-top: #FFFFFF dotted 1px;
border-left: #FFFFFF dotted 1px;
border-right: #FFFFFF solid 3px;
border-bottom: #FFFFFF solid 3px;
}
h1
{
font-size: 3em;
color: #FFFFFF;
}
h2
{
font-size: 2em;
color: #FFFFFF;
}
h3
{
font-size: 1.5em;
color: #FFFFFF;
font-weight: normal;
}
a
{
position: absolute;
bottom: 20px;
right: 30px;
font-size: 0.8em;
display: block;
padding: 5px 10px;
background-color: #FFFFFF;
color: #000000;
text-decoration: underline;
font-weight: bold;
}
</style>
</head>
<body>
<div>
<h2>Erreur</h2>
<h1>404</h1>
<h3>Document non trouvé.<br /><em>File not Found.</em></h3>
</div>
<a href="/">HALO-BATTLE</a>
<!-- \\******* By Phantom *******// Halo-Battle, Tous droits réservés -->
</body>
</html>

View file

@ -47,20 +47,26 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$template->assign('tpsdejeu',$min.' min');
if (!isset($_GET['p'])) $_GET['p'] = '';
switch($_GET['p']){
case 'courrier': include(_FCORE."hb_game/jeu/admin/mail.php"); break;
case 'vip': include(_FCORE."hb_game/jeu/admin/ip.php"); break;
case 'vflotte': include(_FCORE."hb_game/jeu/admin/flottes.php"); break;
case 'vplanetes': include(_FCORE."hb_game/jeu/admin/planete.php"); break;
case 'vjoueurs': include(_FCORE."hb_game/jeu/admin/joueur.php"); break;
case 'valliances': include(_FCORE."hb_game/jeu/admin/alliance.php"); break;
case 'vrapports': include(_FCORE."hb_game/jeu/admin/rapport.php"); break;
case 'sjoueurs': include(_FCORE."hb_game/jeu/admin/sanction_joueur.php"); break;
case 'cjoueurs': include(_FCORE."hb_game/jeu/admin/prendre_controle.php"); break;
case 'djoueurs': include(_FCORE."hb_game/jeu/admin/supprimer_joueur.php"); break;
case 'bandeau': include(_FCORE."hb_game/jeu/admin/bandeau.php"); break;
case 'version': include(_FCORE."hb_game/jeu/admin/version.php"); break;
default: $pagea = 'vp';;
if ($sess->values['auth_level'] >= 5) {
switch($_GET['p']){
case 'djoueurs': include(_FCORE."hb_game/jeu/admin/supprimer_joueur.php"); break;
case 'bandeau': include(_FCORE."hb_game/jeu/admin/bandeau.php"); break;
case 'version': include(_FCORE."hb_game/jeu/admin/version.php"); break;
}
}
if (empty($pagea)) {
switch($_GET['p']){
case 'courrier': include(_FCORE."hb_game/jeu/admin/mail.php"); break;
case 'vip': include(_FCORE."hb_game/jeu/admin/ip.php"); break;
case 'vflotte': include(_FCORE."hb_game/jeu/admin/flottes.php"); break;
case 'vplanetes': include(_FCORE."hb_game/jeu/admin/planete.php"); break;
case 'vjoueurs': include(_FCORE."hb_game/jeu/admin/joueur.php"); break;
case 'valliances': include(_FCORE."hb_game/jeu/admin/alliance.php"); break;
case 'vrapports': include(_FCORE."hb_game/jeu/admin/rapport.php"); break;
case 'sjoueurs': include(_FCORE."hb_game/jeu/admin/sanction_joueur.php"); break;
case 'cjoueurs': include(_FCORE."hb_game/jeu/admin/prendre_controle.php"); break;
default: $pagea = 'vp';;
}
}
$template->assign('titre',$titre);

View file

@ -1,7 +1,124 @@
<?php
if(!defined('INDEX')) define('INDEX', 1);
//Script by Keiran
print 'Début de la génération du classement ; il est : '.date('d/m/Y H:i:s');
set_time_limit(0);
ignore_user_abort(true);
$onyx = @file_get_contents('./../.onyx') or die("Configuration introuvable.");
define("_FCORE",'../'.trim($onyx));
require_once(_FCORE."kernel.php");
require_once(_FCORE."hb_game/tables.php");
require_once(_FCORE."hb_game/vars.php");
$bdd = new bdd();
/*
//Classement Joueurs
$bdd->connexion();
$bdd->query("TRUNCATE TABLE $table_classement;");
$users = $bdd->query("SELECT * FROM $table_user;");
$bdd->deconnexion();
$cnt = $bdd->num_rows;
for($i = 0; $i < $cnt; $i++){
$id_user = $users[$i]['id'];
$queryUser = $users[$i];
$pointsbat = 0;
$pointsterr = 0;
$pointsvais = 0;
$bdd->connexion();
$planetes = $bdd->query("SELECT * FROM $table_planete WHERE id_user = $id_user;");
$bdd->deconnexion();
$cntp = $bdd->num_rows;
for($j = 0; $j < $cntp; $j++){
$queryPlanete = $planetes[$j];
$nbbat = count($batimentVAR);
for($k = 0; $k < $nbbat; $k++){
if ($queryPlanete[$batimentVAR[$k]] == 0) continue;
else {
$n = $queryPlanete[$batimentVAR[$k]];
eval($batimentCALC[$k][0]);
eval($batimentCALC[$k][1]);
eval($batimentCALC[$k][2]);
$pointsbat += $a + $b + $c;
}
}
$nbterr = count($nomterrnVAR);
for($k = 0; $k < $nbterr; $k++){
if ($queryPlanete[$nomterrnVAR[$k]] == 0) continue;
else {
$n = $queryPlanete[$nomterrnVAR[$k]];
$pointsterr += $nomterrnCALC[$k][0] + $nomterrnCALC[$k][1] + $nomterrnCALC[$k][2];
}
}
$nbvais = count($nomvaisnVAR);
for($k = 0; $k < $nbvais; $k++){
if ($queryPlanete[$nomvaisnVAR[$k]] == 0) continue;
else {
$n = $queryPlanete[$nomvaisnVAR[$k]];
$pointsvais += $nomvaisnCALC[$k][0] + $nomvaisnCALC[$k][1] + $nomvaisnCALC[$k][2];
}
}
}
$nbtech = count($technoloVAR);
$pointstech = 0;
for($k = 0; $k < $nbtech; $k++){
if ($queryUser[$technoloVAR[$k]] == 0) continue;
else {
$n = $queryUser[$technoloVAR[$k]];
eval($technoloCALC[$k][0]);
eval($technoloCALC[$k][1]);
eval($technoloCALC[$k][2]);
$pointstech += $a + $b + $c;
}
}
$pointstech /= 1000;
$pointsvais /= 1000;
$pointsterr /= 1000;
$pointsbat /= 1000;
$points = $pointsbat + $pointsterr + $pointsvais + $pointstech;
$bdd->connexion();
$bdd->query("UPDATE $table_user SET points = $points, batiments = $pointsbat, recherches = $pointstech, flotte = $pointsvais, terrestre = $pointsterr WHERE id = $id_user;");
if ($queryUser['auth_level'] < 2 && $queryUser['mv'] < 2) $bdd->query("INSERT INTO $table_classement (id_user, points, flottes, terrestres, recherches, batiments) VALUES ($id_user, $points, $pointsvais, $pointsterr, $pointstech, $pointsbat);");
$bdd->deconnexion();
}
$bdd->connexion();
$classement = $bdd->query("SELECT U.id, U.auth_level FROM $table_classement C INNER JOIN $table_user U ON C.id_user = U.id ORDER BY C.points DESC;");
$cnt = $bdd->num_rows;
$p = 0;
for($i = 0; $i < $cnt; $i++){
if ($classement[$i]['auth_level'] < 2) {
$p++;
$bdd->query("UPDATE $table_user SET place_points = $p WHERE id = ".$classement[$i]['id']);
}
else $bdd->query("UPDATE $table_user SET place_points = 0 WHERE id = ".$classement[$i]['id']);
}
$bdd->deconnexion();
*/
print '<br />Fin de la génération du classement joueur ; il est : '.date('d/m/Y H:i:s');
//Classement Alliances
$bdd->connexion();
$bdd->query("TRUNCATE TABLE $table_classement_alliances;");
$alliances = $bdd->query("SELECT U.id_alliance, SUM(U.id) AS nombre, SUM(U.points)/SUM(U.id) AS points, SUM(U.batiments)/SUM(U.id) AS batiments, SUM(U.recherches)/SUM(U.id) AS recherches, SUM(U.flotte)/SUM(U.id) AS flotte, SUM(U.terrestre)/SUM(U.id) AS terrestre FROM $table_user U GROUP BY U.id_alliance;");
$cnt = $bdd->num_rows;
for($i = 0; $i < $cnt; $i++){
if ($alliances[$i]['id_alliance'] != 0) $bdd->query("INSERT INTO $table_classement_alliances (id_alliance, nbr_membres, points, batiments, recherches, flottes, terrestres) VALUES (".$alliances[$i]['id_alliance'].", ".$alliances[$i]['nombre'].", ".$alliances[$i]['points'].", ".$alliances[$i]['batiments'].", ".$alliances[$i]['recherches'].", ".$alliances[$i]['flotte'].", ".$alliances[$i]['terrestre'].");");
}
$bdd->deconnexion();
print '<br />Fin de la génération du classement ; il est : '.date('d/m/Y H:i:s');
exit;
//Script by Keiran
print 'Il est : '.date('d/m/Y H:i:s');
set_time_limit(0);
@ -127,7 +244,7 @@ while($recup_id = mysql_fetch_array($sql_1)) {
$POINTS_BATIMENTS = $POINTS_BATIMENTS / 1000;
// points flottes terrestres recherches batiments
if ($recup_id['auth_level'] < 3 && $recup_id['mv'] < 2) mysql_query("INSERT INTO `classement` VALUES (NULL, '$PSEUDO_USER', '$race', '$PT_RESSOURCES', '$POINTS_VAISSEAUX', '0', '$POINTS_TECHNO', '$POINTS_BATIMENTS')") or die (mysql_error());
if ($recup_id['auth_level'] < 2 && $recup_id['mv'] < 2) mysql_query("INSERT INTO `classement` VALUES (NULL, '$PSEUDO_USER', '$race', '$PT_RESSOURCES', '$POINTS_VAISSEAUX', '0', '$POINTS_TECHNO', '$POINTS_BATIMENTS')") or die (mysql_error());
mysql_query("UPDATE `user` SET `flotte` = '" . $POINTS_VAISSEAUX . "', `recherches` = '" . $POINTS_TECHNO . "', `batiments` = '" . $POINTS_BATIMENTS . "', `points` = '" . $PT_RESSOURCES . "' WHERE `pseudo` = '" . $PSEUDO_USER . "'") or die (mysql_error());
$metal = 0;
@ -150,7 +267,7 @@ while($resultat = mysql_fetch_array($sql_2)) {
$nomuser = $resultat['pseudo'];
$reqd = mysql_query("SELECT `auth_level` FROM `user` WHERE `pseudo` = '$nomuser'");
$resultatd = mysql_fetch_array($reqd);
if ($resultatd['auth_level'] < 3) {
if ($resultatd['auth_level'] < 2) {
$i++;
mysql_query("UPDATE `user` SET `place_points` = '$i' WHERE `pseudo` = '$nomuser'");
}

689
htdocs/cron/webcronsave.php Normal file
View file

@ -0,0 +1,689 @@
<?
function showHeaderPage()
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>WebcronSave V1.41</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15"/>
<meta http-equiv="expires" content="0">
<style type="text/css">
<!--
body { background: #FFFFFF; }
#topnav {
background-color: #003399;
padding: 1px;
}
#topnav li {
display : inline;
width: 100%;
background-color: #FFFFFF;
margin: 1 0px 1 0px;
}
#topnav a {
color: #003399;
}
#topnav a {
color: #003399;
}
.message {
color: black;
font_weight:bold;
}
.error {
color: red;
font_weight:bold;
}
//-->
</style>
</head>
<body>
<?
}
// recup chaine de get, post ou cookie avec ou sans stripslashes selon magic_quotes_gpc
function RecupChaine($chaine) {
if (get_magic_quotes_gpc()==1) return stripslashes($chaine); // il y avait magic
return $chaine; // il n'y avait pas magic
}
function showMessage($message,$class)
{
?>
<div class="<?=$class?>">
<?=$message?>
</div>
<?
}
function moimeme($paramget='') {
global $_CONFIG;
$ret=rtrim($_SERVER['PHP_SELF'],'/');
$ret .=$paramget;
if ($_CONFIG['IDENTIF'] != 'basic') {
$ret .= empty($paramget)?'?':'&';
$ret .= 'login='.urlencode($_CONFIG['LOGIN_HTTP']);
$ret .= '&pass='.urlencode($_CONFIG['PASS_HTTP']);
}
return '"'.$ret.'"';
}
function showFormConfig()
{
global $_CONFIG;
?>
<H1>CONFIGURATION</H1>
<B>ATTENTION !</B><BR />
Les mots de passe de base de données et d'administration doivent être saisis lors de la première configuration.
Lors des autres accès à l'administration, laissez-les en blanc, sauf si vous désirez les changer.<BR>
Nous conseillons le mode d'identification 'basic', mais il se peut qu'il ne fonctionne pas sur certains systèmes.
Utilisez alors le mode 'par URL'.<br>
<B>Si vous êtes obligé d'utiliser le mode 'par URL' et que d'autres personnes utilisent votre machine, videz l'historique de
votre browser sinon d'autres personnes pourront retrouver vos login et mot de passe.</B>
<BR><BR>
<B>Utilisation de Webcronsave avec webcron.org :</B><br>
<UL>
<LI>identification basic : créez une tâche quotidienne avec l'url :<BR>
<i>http://monsite.com/webcronsave.php?action=savewebcron</i><BR>
et mettez le login et le mot de passe d'administration dans les login et mot de passe de la création/édition d'une tâche.
<LI>identification par URL : créez une tâche quotidienne avec l'url :<BR>
<i>http://monsite.com/webcronsave.php?action=savewebcron&login=monlogin&pass=monpass</i><BR>
mais laissez vides les login et mot de passe de la création/édition d'une tâche.
</UL>
<form action=<?=moimeme()?> method="POST">
<input type="hidden" name="action" value="saveconfig">
<TABLE border=1 cellpadding="3" align="center">
<tr bgcolor="#FFFFCC"><td colspan="2" align = "center" ><b>BASE DE DONNEES</b></td></tr>
<TR bgcolor="#FFFFCC">
<td align="right">Nom du serveur :</td>
<td><input type="text" name="SERVER" value="<?=$_CONFIG['SERVER']?>"></td>
</tr>
<tr bgcolor="#FFFFCC">
<td align="right">Login utilisateur :</td>
<td><input type="text" name="USER" value="<?=$_CONFIG['USER']?>"></td>
</tr>
<tr bgcolor="#FFFFCC">
<td align="right">Nouveau mot de passe utilisateur :</td>
<td><input type="text" name="PASS"></td>
</tr>
<tr bgcolor="#FFFFCC">
<td align="right">Nom de la base de données :</td>
<td><input type="text" name="BASE" value="<?=$_CONFIG['BASE']?>"></td>
</tr>
<tr bgcolor="#CCCCFF"><td colspan="2" align = "center"><b>ADMINISTRATION</b></td></tr>
<tr bgcolor="#CCCCFF">
<td align="right">Email en cas de problème :</td>
<td><input type="text" name="EMAIL" value="<?=$_CONFIG['EMAIL']?>"></td>
</tr>
<tr bgcolor="#CCCCFF">
<td align="right">Login d'accès à l'admin :</td>
<td><input type="text" name="LOGIN_HTTP" value="<?=$_CONFIG['LOGIN_HTTP']?>"></td>
</tr>
<tr bgcolor="#CCCCFF">
<td align="right">Nouveau mot de passe d'accès à l'admin :</td>
<td><input type="text" name="PASS_HTTP"></td>
</tr>
<tr bgcolor="#CCCCFF">
<td align="right">Mode d'identification :</td>
<td>
basic : <input type="radio" name="IDENTIF" value="basic"<? echo $_CONFIG['IDENTIF']!='basic'?'':'CHECKED'?>>
par URL : <input type="radio" name="IDENTIF" value="url"<? echo $_CONFIG['IDENTIF']=='basic'?'':'CHECKED'?>>
</td>
</tr>
<tr bgcolor="#CCFFFF">
<td colspan="2" align="center"><b>LISTE DES SAUVEGARDES A FAIRE</b</td>
</tr>
<tr bgcolor="#CCFFFF">
<td align="right"> sauvegarde du 1er du mois : </td>
<td><input type="radio" name="MONTH" value="1" <?=($_CONFIG['MONTH']==1)?"CHECKED":""?>> Oui <input type="radio" name="MONTH" value="0" <?=($_CONFIG['MONTH']==0)?"CHECKED":""?>> Non </td>
</tr>
<tr bgcolor="#CCFFFF">
<td align="right">sauvegarde du dimanche : </td>
<td><input type="radio" name="WEEK" value="1" <?=($_CONFIG['WEEK']==1)?"CHECKED":""?>> Oui <input type="radio" name="WEEK" value="0" <?=($_CONFIG['WEEK']==0)?"CHECKED":""?>> Non </td>
</tr>
<tr bgcolor="#CCFFFF">
<td align="right">sauvegarde de la veille : </td>
<td><input type="radio" name="YESTERDAY" value="1" <?=($_CONFIG['YESTERDAY']==1)?"CHECKED":""?>> Oui <input type="radio" name="YESTERDAY" value="0" <?=($_CONFIG['YESTERDAY']==0)?"CHECKED":""?>> Non </td>
</tr>
<tr bgcolor="#CCFFFF">
<td align="right">sauvegarde du jour : </td>
<td><input type="radio" name="TODAY" value="1" <?=($_CONFIG['TODAY']==1)?"CHECKED":""?>> Oui <input type="radio" name="TODAY" value="0" <?=($_CONFIG['TODAY']==0)?"CHECKED":""?>> Non </td>
</tr>
<? if (isset($_CONFIG["BASE"]) && isset($_CONFIG["SERVER"]) && isset($_CONFIG["USER"]) && isset($_CONFIG["PASS"])) {
if (checkMysql())
{
$list=listTable();
?>
<tr bgcolor="#CCCCFF">
<td colspan="2" align="center"><b>LISTE DES TABLES A SAUVEGARDER</b</td>
</tr>
<?
foreach($list as $table)
{
if (!isset($_CONFIG['TABLE_'.$table['nom']])) $_CONFIG['TABLE_'.$table['nom']]=1;
?>
<tr bgcolor="#CCFFFF">
<td align="right">table <b><?=$table['nom']?></b></td>
<td><input type="radio" name="TABLE_<?=$table['nom']?>" value="1" <?=($_CONFIG['TABLE_'.$table['nom']]==1)?"CHECKED":""?>> Oui <input type="radio" name="TABLE_<?=$table['nom']?>" value="0" <?=($_CONFIG['TABLE_'.$table['nom']]==0)?"CHECKED":""?>> Non </td>
</tr>
<?
}
?>
<? } else {?>
<tr bgcolor="#CCCCFF">
<td colspan="2" align="center"><b>TOUTES LES TABLES SONT SAUVEGARDEES</b</td>
</tr>
<? } } else { ?>
<tr bgcolor="#CCCCFF">
<td colspan="2" align="center"><b>TOUTES LES TABLES SONT SAUVEGARDEES</b</td>
</tr>
<? } ?>
<TR>
<td colspan="2" align="center"><input type="submit" name="submit" value="Valider"></td>
</tr>
</table>
</form>
<?
}
function showFooterPage()
{
?>
</body>
</html>
<?
}
function showMenu()
{
?>
<ul id="topnav">
<li>&nbsp;<a href=<?=moimeme('?action=config')?>>Configuration</a>&nbsp;</li>
<li>&nbsp;<a href=<?=moimeme('?action=save')?>>Sauvegarde Manuelle</a>&nbsp;</li>
<li>&nbsp;<a href=<?=moimeme('?action=restore')?>>Restauration</a>&nbsp;</li>
<li>&nbsp;<a href="http://www.webcron.org">Webcron</a>&nbsp;</li>
</ul>
<?
}
function showIdentifPage()
{
global $_CONFIG;
?>
<H1>IDENTIFICATION</H1>
<FORM align="center" method="GET" action="<?=$_SERVER['PHP_SELF']?>">
<TABLE border=1 cellpadding="3" align="center">
<tr bgcolor="#CCCCFF">
<td align="right">Login d'accès à l'admin :</td>
<td><input type="text" name="login" value="<?=$_CONFIG['LOGIN_HTTP']?>"></td>
</tr>
<tr bgcolor="#CCCCFF">
<td align="right">Mot de passe d'accès à l'admin :</td>
<td><input type="text" name="pass"></td>
</tr>
<TR>
<td colspan="2" align="center"><input type="submit" name="submit" value="Valider"></td>
</tr>
</TABLE>
</FORM>
<?
}
function checkMysql()
{
global $_CONFIG;
include('./webcronsave/config.php');
if (!$my=mysql_connect($_CONFIG['SERVER'],$_CONFIG['USER'],$_CONFIG['PASS']))
return false;
else
{
if (!mysql_select_db($_CONFIG['BASE']))
return false;
}
return true;
}
function saveData()
{
global $_CONFIG;
checkMysql();
$fname=date('Y-m-d')."_".$_CONFIG['BASE'];
$list=listTable();
if (!function_exists('gzopen'))
$fp=fopen('./webcronsave/'.$fname.'.sql','w');
else
$fp=gzopen('./webcronsave/'.$fname.'.gz','w');
if ($fp)
{
foreach($list as $table)
{
if (isset($_CONFIG['TABLE_'.$table['nom']]))
{
if ($_CONFIG['TABLE_'.$table['nom']]=='1')
{
dumpTable($fp,$table);
}
}
else dumpTable($fp,$table);
}
return true;
}
else
return false;
}
function restoreFile($file)
{
showMessage('Restauration en cours','message');
checkMysql();
list($name,$ext)=explode('.',$file);
if ($ext=='gz')
$pref='gz';
else
$pref='f';
$open=$pref.'open';
$gets=$pref.'gets';
$eof=$pref.'eof';
$close=$pref.'close';
$fp=$open($dir='./webcronsave/'.$file,'r');
if ($fp)
{
$buffer='';
$inChamp=false;
while (!$eof($fp)) {
$s=$gets($fp, 4096);
$old='';
for($i=0;$i<strlen($s);$i++)
{
$current=$s[$i];
if ($current=="'" && $old!='\\')
$inChamp=!$inChamp;
if ($current==';' && $inChamp==false)
{
$query=$buffer;
if (!mysql_query($query))
{
showMessage('Problème de requete <b>'.htmlentities($query).'</b> Mysql '.mysql_error(),'error');
return false;
}
$buffer='';
}
else
{
$buffer.=$current;
}
$old=$current;
}
}
$close($fp);
return true;
}
else return false;
}
function dumpTable($fp,$table)
{
global $_CONFIG;
$nomtable=$table['nom'];
if (!function_exists('gzopen'))
$fwrite='fwrite';
else
$fwrite='gzwrite';
$fwrite($fp,'#sauvegarde base mysql '.$_CONFIG['BASE']."\n\n");
$fwrite($fp,"DROP TABLE IF EXISTS `$nomtable`;\n\n");
$sql='SET SQL_QUOTE_SHOW_CREATE=1';
$res=mysql_query($sql); // pas fatal
$sql="SHOW CREATE TABLE `$nomtable`";
$res=mysql_query($sql) or die ('Erreur Mysql '.mysql_error().'<br>');
while($res && $row=mysql_fetch_row($res))
{
if (is_numeric($table['autoinc'])) $row[1] .= ' AUTO_INCREMENT='.$table['autoinc'];
$fwrite($fp,$row[1].";\n");
}
$fwrite($fp,"\n\n");
$res = mysql_query("SELECT * FROM `$nomtable`") or die ('Erreur Mysql '.mysql_error().'<br>');
while ($row = mysql_fetch_assoc($res)){
$strFieldsNames = '';
$strFieldsValues = '';
foreach ($row as $field_name => $field_value){
if ($strFieldsNames) $strFieldsNames .= ', ';
$strFieldsNames .= "`$field_name`";
if($strFieldsValues) $strFieldsValues .= ', ';
$strFieldsValues .= "'" . addslashes($field_value) . "'";
}
$fwrite($fp,"INSERT INTO `$nomtable` ($strFieldsNames) values($strFieldsValues);\n");
}
$fwrite($fp,"\n\n");
}
function listTable()
{
global $_CONFIG;
$list_table=array();
$list_autoinc =array();
$res=mysql_query('SHOW TABLE STATUS') or die ('Erreur Mysql '.mysql_error().'<br>');
// $tmpfile=tempnam(ini_get("session.save_path"),"webcronsave_");
if (!$res)
{
echo 'Erreur Mysql '.mysql_error().'<br>';
die;
}
else
{
while($row=mysql_fetch_array($res))
{
$list_table[]=array('nom'=>$row['Name'],'autoinc'=>$row['Auto_increment']);
}
}
return $list_table;
}
function saveConfig($data)
{
global $_CONFIG;
// on vérifie si config correcte
if (empty($data['PASS'])) {
if (empty($_CONFIG['PASS'])) {
showMessage ('Le mot de passe de la base de données est vide.','error');
showMessage ('Ceci n\'est acceptable que si vous faites un essai en local','error');
$_CONFIG['PASS']='';
}
$data['PASS']=$_CONFIG['PASS']; // prise en compte nouveau mot de passe bdd
}
if (empty($data['PASS_HTTP'])) {
if (empty($_CONFIG['PASS_HTTP'])) {
return 'le mot de passe admin ne doit pas être vide'; // mot de passe admin vide interdit
}
$data['PASS_HTTP']=$_CONFIG['PASS_HTTP']; // prise en compte nouveau mot de passe admin
}
if (empty($data['USER'])) {
showMessage ('Le nom d\'utilisateur de la base de données est vide.','error');
showMessage ('Ceci n\'est acceptable que si vous faites un essai en local','error');
}
if (empty($data['LOGIN_HTTP'])) {
return 'le nom d\'utilisateur admin ne doit pas être vide';
}
if($fd = fopen('./webcronsave/config.php','w'))
{
fputs($fd,"<?php\n");
foreach($data as $key => $val)
{
fputs($fd,"\$_CONFIG[\"$key\"]=".var_export(recupchaine($val),true).";\n");
$_CONFIG[$key]=$val;
}
fputs($fd,'?','>');
fclose($fd);
//je crée un htaccess pour ne pas que les gens viennent chercher les fichiers en direct
if($fd = @fopen('./webcronsave/.htaccess','w'))
{
$str="order deny,allow\ndeny from all\n";
fputs($fd,$str);
fclose($fd);
}
return '';
}
else
return 'Problème de droits : impossible de sauvegarder le fichier de config';
}
function getFileSize($size) {
$units = array(' B', ' KB', ' MB', ' GB', ' TB');
for ($i = 0; $size > 1024; $i++) { $size /= 1024; }
return round($size, 2).$units[$i];
}
function fileData($file)
{
global $_CONFIG;
$dir='./webcronsave/';
list($name,$ext)=explode('.',$file);
list($date,$db)=explode('_',$name);
list($year,$month,$day)=explode('-',$date);
if ($ext=='gz') $ext_f='Fichier compressé (algorithme GZIP)';
else $ext_f='Fichier non compressé';
return 'sauvegarde du '.$day.'/'.$month.'/'.$year.' '.getFileSize(filesize($dir.$file)).' '.$ext_f;
}
function checkFile()
{
global $_CONFIG;
if (!function_exists('gzopen'))
$ext='.sql';
else
$ext='.gz';
//sauvegarde du jour
if ($_CONFIG['TODAY']=='1') $names[date('Y-m-d').'_'.$_CONFIG['BASE'].$ext]=date('Y-m-d').'_'.$_CONFIG['BASE'].$ext;
//sauvegarde de la veille
if ($_CONFIG['YESTERDAY']=='1') $names[date('Y-m-d',time()-86400).'_'.$_CONFIG['BASE'].$ext]=date('Y-m-d',time()-86400).'_'.$_CONFIG['BASE'].$ext;
//sauvegarde du debut du mois
if ($_CONFIG['MONTH']=='1') $names[date('Y-m-01').'_'.$_CONFIG['BASE'].$ext]=date('Y-m-01').'_'.$_CONFIG['BASE'].$ext;
//sauvegarde du dimanche
if ($_CONFIG['WEEK']=='1') $names[date('Y-m-d',time()-date('w')*86400).'_'.$_CONFIG['BASE'].$ext]=date('Y-m-d',time()-date("w")*86400)."_".$_CONFIG['BASE'].$ext;
//var_dump($names);
$list_f=listFileSave();
foreach($list_f as $file)
{
if (!in_array($file,$names)) unlink('./webcronsave/'.$file);
}
}
function listFileSave()
{
$dir='./webcronsave/';
$list_f=array();
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (!in_array($file,array('.','..','config.php','.htaccess')))
{
$list_f[]=$file;
}
}
closedir($dh);
}
}
return $list_f;
}
function listeSave()
{
global $_CONFIG;
$list_f=listFileSave();
echo '<ul id="list_archive">';
foreach($list_f as $val)
{
echo '<li>&nbsp;<a href='.moimeme('?action=dorestore&file='.urlencode($val)).'>Restaurer</a>&nbsp;'.fileData($val).'</li>';
}
echo '</ul>';
}
function readConfig()
{
global $_CONFIG;
$rsrc=@opendir( './webcronsave');
if ($rsrc===false) return false;
closedir ($rsrc);
if (file_exists('./webcronsave/config.php'))
include_once('./webcronsave/config.php');
if (!isset($_CONFIG['TODAY'])) $_CONFIG['TODAY']=0;
if (!isset($_CONFIG['YESTERDAY'])) $_CONFIG['YESTERDAY']=0;
if (!isset($_CONFIG['MONTH'])) $_CONFIG['MONTH']=1;
if (!isset($_CONFIG['WEEK'])) $_CONFIG['WEEK']=0;
if (!isset($_CONFIG['SERVER'])) $_CONFIG['SERVER']='localhost';
if (!isset($_CONFIG['USER'])) $_CONFIG['USER']='';
if (!isset($_CONFIG['PASS'])) $_CONFIG['PASS']='';
if (!isset($_CONFIG['BASE'])) $_CONFIG['BASE']='';
if (!isset($_CONFIG['EMAIL'])) $_CONFIG['EMAIL']='';
if (!isset($_CONFIG['LOGIN_HTTP'])) $_CONFIG['LOGIN_HTTP']='';
if (!isset($_CONFIG['PASS_HTTP'])) $_CONFIG['PASS_HTTP']='';
if (!isset($_CONFIG['IDENTIF'])) $_CONFIG['IDENTIF']='basic';
return true;
} // function readConfig()
function AfficherListe() {
echo 'sauvegarde(s) disponible(s) :<BR>';
$lst= ListFileSave();
for ($k= 0; $k < count($lst); $k++) {
echo htmlentities($lst[$k]),'<BR>';
}
} //function AfficherListe()
//GESTION DE LA PAGE
if (isset($_POST['action']) && strlen($_POST['action'])>0) $action=recupchaine($_POST['action']);
else if (isset($_GET['action']) && strlen($_GET['action'])>0) $action=recupchaine($_GET['action']);
//par défaut l'action est la configuration
else $action='config';
if (!readConfig())
{
$action='error';
$errorMessage='Veuillez créer le repertoire \'webcronsave\' pour sauvegarder votre config et vos sauvegardes.';
}
else
{
if (!empty($_CONFIG['LOGIN_HTTP']) && !empty($_CONFIG['PASS_HTTP']))
{
if ($_CONFIG['IDENTIF']!='basic') {
if (empty($_GET['login']) || empty($_GET['pass'])) // identification non fournie
$action='demandermdp';
else if ((recupchaine($_GET['login']) != $_CONFIG['LOGIN_HTTP']) ||
(recupchaine($_GET['pass']) != $_CONFIG['PASS_HTTP']) ) // identif incorrecte
$action='demandermdp';
} // fin identif par url
else { // identif par basic
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="WebCronSave"');
header('HTTP/1.0 401 Unauthorized');
exit;
} else {
if ($_SERVER['PHP_AUTH_USER']!=$_CONFIG['LOGIN_HTTP'] || $_SERVER['PHP_AUTH_PW']!=$_CONFIG['PASS_HTTP'])
{
header('WWW-Authenticate: Basic realm="WebCronSave"');
header('HTTP/1.0 401 Unauthorized');
exit;
}
}
} // fin identif par basic
}
}
checkFile();
//traitement spécifique
switch($action)
{
//webcron sauvegarde automatique
case 'savewebcron':
if (!saveData()) {
mail($_CONFIG['EMAIL'],'Problème avec votre sauvegarde','Veuillez vérifier votre configuration : http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."\n");
echo 'pb sauvegarde';
} else {
checkFile();
AfficherListe();
}
break;
//Affichage de la config
case 'config':
showHeaderPage();
showMenu();
showFormConfig();
break;
//sauvegarde de la config
case 'saveconfig':
showHeaderPage();
$diag=saveConfig($_POST);
showMenu();
if ($diag!='')
{
showMessage($diag,'error');
}
else
{
showMessage('La configuration a été sauvegardée',"message");
showMessage('Vérification de la connexion de la base de données','message');
if (!checkMysql()) showMessage('Problème de connexion Mysql '.mysql_error(),'error');
else showMessage('La connexion est bien configurée !','message');
}
break;
//Affichage d'une erreur
case 'error':
showHeaderPage();
showMenu();
showMessage($errorMessage,'error');
showFooterPage();
break;
//Gestion de la sauvegarde manuel
case 'save':
showHeaderPage();
showMenu();
if (saveData())
{
showMessage('La sauvegarde a été effectuée avec succès','message');
}
else
showMessage('Problème de création de fichier','error');
showFooterPage();
break;
//gestion de la restauration
case 'restore':
showHeaderPage();
showMenu();
listeSave();
showFooterPage();
break;
//gestion de la restauration
case 'dorestore':
showHeaderPage();
showMenu();
$file=recupchaine($_GET['file']);
if (!restoreFile($file)) showMessage('Problème de requête Mysql '.mysql_error(),'error');
else showMessage('Restauration effectuée avec succès','message');
showFooterPage();
break;
//saisie de l'identification par URL
case 'demandermdp':
showHeaderPage();
showIdentifPage();
showFooterPage();
break;
//gestion par défaut
default:
break;
}
?>

View file

@ -0,0 +1,2 @@
order deny,allow
deny from all

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,35 @@
<?php
$_CONFIG["action"]='saveconfig';
$_CONFIG["SERVER"]='localhost';
$_CONFIG["USER"]='hb_37';
$_CONFIG["PASS"]='JQ2Pe%!bpUDr1';
$_CONFIG["BASE"]='hb_37';
$_CONFIG["EMAIL"]='admin@halo-battle.s-fr.com';
$_CONFIG["LOGIN_HTTP"]='nemunaire';
$_CONFIG["PASS_HTTP"]='KT58pUm%s!9';
$_CONFIG["IDENTIF"]='basic';
$_CONFIG["MONTH"]='0';
$_CONFIG["WEEK"]='0';
$_CONFIG["YESTERDAY"]='0';
$_CONFIG["TODAY"]='1';
$_CONFIG["TABLE_alliances"]='1';
$_CONFIG["TABLE_alliances_attente"]='1';
$_CONFIG["TABLE_alliances_chat"]='1';
$_CONFIG["TABLE_alliances_creation"]='1';
$_CONFIG["TABLE_alliances_grade"]='1';
$_CONFIG["TABLE_bug"]='0';
$_CONFIG["TABLE_classement"]='0';
$_CONFIG["TABLE_classement_alliances"]='0';
$_CONFIG["TABLE_flottes"]='1';
$_CONFIG["TABLE_flottes_combats"]='1';
$_CONFIG["TABLE_infoshead"]='0';
$_CONFIG["TABLE_mail"]='1';
$_CONFIG["TABLE_ope_faq"]='1';
$_CONFIG["TABLE_ope_mail"]='1';
$_CONFIG["TABLE_ope_modele"]='1';
$_CONFIG["TABLE_planete"]='1';
$_CONFIG["TABLE_registre_identification"]='0';
$_CONFIG["TABLE_sessions"]='0';
$_CONFIG["TABLE_user"]='1';
$_CONFIG["TABLE_version"]='0';
$_CONFIG["submit"]='Valider';

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
htdocs/images/hfr.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View file

@ -12,19 +12,24 @@ if ($_SERVER["REMOTE_ADDR"] == "82.245.190.225" || $_SERVER["REMOTE_ADDR"] == "8
//On vérifie si le client est connecté sur le site
if (isset($sess) && isset($sess->values['connected']) && $sess->values['connected'] && !empty($sess->values['id']) && isset($sess->values['auth_level']) && !empty($sess->values['idPlan'])) {
//On affiche la version du jeu
$template->assign('version', VERSION);
$HB_login = gpc('l');
if (!empty($HB_login) && strtolower($HB_login) != strtolower(trouvNom($sess->values['id']))) {
include(_FCORE."hb_game/jeu/logout.php");
}
elseif (!empty($HB_login)) {
header('Location: ./');
exit;
}
//Récupération d'informations au sujet de l'utilisateur
$id_user = $sess->values['id'];
$template->assign('auth_level', $sess->values['auth_level']);
$bdd->connexion();
$queryUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = '$id_user'");
$queryUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id_user");
//On vérifie que le joueur ne soit pas en mode vacances forcé
if ($queryUser['mv'] || !$queryUser) {
file_log('!! MV jeu : '.var_export($_REQUEST,TRUE));
$sess->close();
header('Location: ?mvf');
exit;
@ -57,7 +62,6 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$queryPlanete = $bdd->unique_query("SELECT * FROM $table_planete WHERE id = '$idPlan'");
$bdd->deconnexion();
$enligne = $bdd->num_rows;
$case = $queryPlanete["cases"];
$metal = $queryPlanete["metal"];
@ -72,7 +76,8 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$bdd->connexion();
$queryPlanete = $bdd->unique_query("SELECT * FROM $table_planete WHERE id = '$idPlan'");
$queryMail = $bdd->query("SELECT * FROM $table_mail WHERE destinataire = '".$queryUser['pseudo']."' AND vu = '1';");
$queryMail = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE destinataire = '".$queryUser['pseudo']."' AND vu = '1';");
$bdd->deconnexion();
//Isolement de la planète
$queryPlanete['isolement'] = explode(' ', $queryPlanete['isolement']);
@ -97,12 +102,14 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$debut = mktime(rand(0, 24-$tps), 0, 0, date('n'), date('j'), date('Y'));
$fin = $debut + $tps * 3600;
$bdd->connexion();
$bdd->query("UPDATE $table_planete SET isolement = '$debut $fin' WHERE id = '$idPlan';");
$bdd->deconnexion();
$queryPlanete['isolement'][0] = $debut;
if (time() > $queryPlanete['isolement'][0]) $queryPlanete['isolement'][1] = $fin;
}
}
if (isset($queryPlanete['isolement'][1]) && time() < $queryPlanete['isolement'][1] && $_GET['p'] != 'rename' && $_GET['p'] != 'accueil' && $_GET['p'] != 'arbre' && $_GET['p'] != 'prochainement' && $_GET['p'] != 'options' && $_GET['p'] != 'messagerie' && $_GET['p'] != 'envoyer' && $_GET['p'] != 'classement' && $_GET['p'] != 'bugs' && $_GET['p'] != 'deconnexion') {
if (isset($queryPlanete['isolement'][1]) && time() < $queryPlanete['isolement'][1] && $p != 'rename' && $p != 'accueil' && $p != 'arbre' && $p != 'prochainement' && $p != 'options' && $p != 'messagerie' && $p != 'envoyer' && $p != 'classement' && $p != 'bugs' && $p != 'deconnexion') {
$template->assign('message','Impossible de rentrer en contact avec cette planète. Réessayez plus tard.');
$template->assign('titre','Planète isolée');
$template->assign('couleur','red');
@ -111,9 +118,8 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
}
}
$bdd->deconnexion();
$template->assign('alertMail', $bdd->num_rows);
$template->assign('alertMail', $queryMail['nombre']);
$metal = $queryPlanete["metal"];
$cristal = $queryPlanete["cristal"];
$hydrogene = $queryPlanete["hydrogene"];
@ -123,9 +129,9 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$queryPlanete["energieS"] = separerNombres($queryPlanete["energie"]);
$queryPlanete["nom_planete"] = htmlspecialchars($queryPlanete["nom_planete"]);
$template->assign('planete',$queryPlanete);
$template->assign('planetes',$queryPlanetes);
$template->assign('nomsressources',$ressourc);
$template->assign('planete', $queryPlanete);
$template->assign('planetes', $queryPlanetes);
$template->assign('nomsressources', $ressourc);
//Calcul du nombre de cases restantes
$coun = count($batiment);
@ -135,8 +141,8 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
}
$template->assign('caseRest',$case-$caseRest);
if (!isset($_GET['p'])) $_GET['p'] = '';
switch($_GET['p']){
$p = gpc('p');
switch($p){
case 'prochainement':
$page = 'prochainement';
$titre = 'Prochainement';
@ -165,6 +171,9 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
case 'arbre':
include(_FCORE."hb_game/jeu/arbre.php");
break;
case 'gestion':
include(_FCORE."hb_game/jeu/gestion.php");
break;
case 'ressources':
include(_FCORE."hb_game/jeu/ressources.php");
break;
@ -234,21 +243,37 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
//Si le joueur n'est pas connecté au site
else {
//On traite la demande de loggin de l'utilisateur
if (isset($_POST['HB_login']) && isset($_POST['HB_password'])) {
if (isset($_GET['l']) && isset($_GET['p']) && isset($_GET['a'])) {
//Récupération des données POST
$HB_login = $_POST['HB_login'];
$HB_password = $_POST['HB_password'];
$HB_login = gpc('l');
$HB_password = gpc('p');
$HB_auth = gpc('a');
if (empty($HB_login) || empty($HB_password)) {
$template->assign('message','Nom d\'utilisateur ou mot de passe incorrect.');
$template->assign('message','Nom d\'utilisateur ou mot de passe incorrect.<br /><br />');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
}
elseif (hash("sha512", $HB_login.'Ņ♂↨'.$HB_password.'☻♫☼'.date('W!Y¨D@j')) != $HB_auth && hash("sha512", $HB_login.'Ņ♂↨'.$HB_password.'☻♫☼'.date('W!Y¨D@j', time()-300)) != $HB_auth) {
$template->assign('message','Impossible d\'authentifier la connexion !<br /><br />Si le problème perciste, contactez un administrateur.');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
}
else {
$ipe = $_SERVER['REMOTE_ADDR'];
$bdd->connexion();
$bruteforce = $bdd->unique_query("SELECT nombre FROM securite_identification WHERE ip = '$ipe';");
if ($bruteforce['nombre'] >= 15) {
$fichier = fopen(_FCORE."ban.xlist",'a+');
fwrite($fichier, $_SERVER['REMOTE_ADDR']."\n\r");
fclose($fichier);
}
$bdd->escape($HB_login);
if (!$var = $bdd->unique_query("SELECT mdp_var FROM $table_user WHERE pseudo = '$HB_login';")) {
if (isset($bruteforce['nombre'])) $bdd->query("UPDATE securite_identification SET nombre = nombre + 1 WHERE ip = '$ipe';");
else $bdd->query("INSERT INTO securite_identification VALUES ('$ipe', '1', '".time()."');");
$bdd->deconnexion();
$template->assign('message','Nom d\'utilisateur ou mot de passe incorrect.');
$template->assign('couleur','red');
@ -286,7 +311,7 @@ else {
$bdd->escape($HB_password);
//Limiter le nombre de personnes en ligne simutanément
$connecte = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_sessions WHERE active = '1' AND var_session != '';");
$connecte = $bdd->unique_query("SELECT COUNT(xid) AS nombre FROM $table_sessions WHERE active = true AND var_session != '';");
if ($connecte['nombre'] > 1500) {
$template->assign('message','Il y a actuellement trop de monde connecté sur Halo-Battle. Pour permettre aux joueurs une navigation convenable, nous vous remercions de revenir plus tard.');
$template->assign('couleur','red');
@ -310,7 +335,6 @@ else {
}
if ($resultat['mv'] != 0) {
file_log('!! MV connection : '.var_export($_REQUEST,TRUE));
if ($resultat['last_visite']+259200 > time() && $resultat['auth_level'] < 2) {
if ($resultat['mv'] == 3) $template->assign('message','Vous êtes définitivement banni de cette galaxie pour '.$resultat['raisonmv'].'. Vous ne pouvez plus vous reconnecter sur votre compte');
elseif ($resultat['mv'] == 2) $template->assign('message','Un opérateur a placé votre compte en mode vacances pour '.$resultat['raisonmv'].'. Vous ne pouvez pas vous reconnecter sur votre compte avant le<br />'.strftime("%A %d %B à %H:%M", $resultat['last_visite']+259200));
@ -369,14 +393,13 @@ else {
}
$bdd->query("UPDATE $table_user SET last_visite = '$time', last_ip = '$ip' WHERE id = '$id';");
$bdd->query("INSERT INTO $table_registre_identification (id_util, ip) VALUES ('".$id."','".$ip."');");
$bdd->query("INSERT INTO $table_registre_identification (id_util, ip) VALUES (".$id.",'".$ip."');");
$bdd->deconnexion();
$sess->values['connected'] = TRUE;
$sess->values['id'] = $resultat['id'];
$sess->values['idPlan'] = $resultatP['id'];
$sess->values['auth_level'] = $resultat['auth_level'];
if ($resultat['auth_level'] > 0) file_log('!! connection : '.var_export($_REQUEST,TRUE));
$sess->put();
header('Location: ./?p=accueil');
@ -394,8 +417,8 @@ else {
}
}
if (!isset($_GET['p'])) $_GET['p'] = '';
switch($_GET['p']){
$p = gpc('p');
switch($p){
//Serveur principal
/* case "validation":
include('game/validation.php');
@ -425,8 +448,8 @@ else {
include(_FCORE."hb_game/jeu/regles.php");
break;
default:
$page = 'mini';
//header('Location: http://halo-battle.s-fr.com/?p=connexion');
//$page = 'mini';
header('Location: http://halo-battle.s-fr.com/?p=connexion');
//exit;
}
$template->display('cms/'.$page.'.tpl');

View file

@ -56,9 +56,9 @@ function max(i)
function vaisseaux(b)
{
for(i=1; document.getElementById('v_'+i) && document.getElementsByName('v'+i)[0]; i++)
for(i=1; i<=12; i++)
{
document.getElementsByName('v'+i)[0].value = b ? document.getElementById('v_'+i).innerHTML : '0';
if (document.getElementById('v_'+i) && document.getElementsByName('v'+i)[0]) document.getElementsByName('v'+i)[0].value = b ? document.getElementById('v_'+i).innerHTML : '0';
}
}

View file

@ -5,165 +5,230 @@ $onyx = @file_get_contents('./.onyx') or die("Configuration introuvable.");
define("_FCORE",trim($onyx));
require_once(_FCORE."common.php");
header ("Content-type: image/png");
$fontfile = _FCORE."hb_game/signatures/ARIAL.TTF";
$id = gpc('i');
if (!is_numeric($id)) $id = 0;
$bdd->connexion();
$bdd->escape($id);
$joueur = $bdd->unique_query("SELECT $table_user.pseudo, $table_user.auth_level, $table_user.race, $table_user.place_points, $table_user.points, $table_user.batiments, $table_user.flotte, $table_alliances.tag, $table_alliances.nom FROM $table_user INNER JOIN $table_alliances ON $table_user.id_alliance = $table_alliances.id WHERE $table_user.id = $id;");
if ($joueur == false) $joueur = $bdd->unique_query("SELECT pseudo, auth_level, race, place_points, points, batiments, flotte FROM $table_user WHERE id = $id;");
$nomjoueur = $joueur['pseudo'];
$raid = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE destinataire = '$nomjoueur' AND contenu LIKE '<b>Le combat contre % est termi%';");
$transport = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE contenu LIKE 'Les vaisseaux de $nomjoueur %';");
$bdd->deconnexion();
$f = gpc('f');
$s = gpc('s');
if ($joueur['race'] == 'covenant') {
switch($f){
case 1:
$img = 'userbarallicopygs1.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
)
);
break;
default:
$img = 'covenantuserbarus1.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 0, 0, 0);
$infos = array(
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($transport['nombre'])
),
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($joueur['batiments'])
)
);
}
$_imgavatar = imagecreatefrompng(_FCORE."hb_game/signatures/covi.png");
header ("Content-type: image/png");
if (file_exists(_FCORE."hb_game/signatures/cache/".$id.".".$f.$s.".sign") && time() - filemtime(_FCORE."hb_game/signatures/cache/".$id.".".$f.$s.".sign") < $config['cache']['signatures']) {
readfile(_FCORE."hb_game/signatures/cache/".$id.".".$f.$s.".sign");
}
else {
switch($f){
case 1:
$img = 'userbarallicopygs1.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
)
);
break;
default:
$img = 'humainuserbarhz2.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
//$contenu = imagecolorallocate($_img, 160, 160, 0);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
)
);
$fontfile = _FCORE."hb_game/signatures/ARIAL.TTF";
$bdd->connexion();
$bdd->escape($id);
$joueur = $bdd->unique_query("SELECT $table_user.pseudo, $table_user.auth_level, $table_user.race, $table_user.place_points, $table_user.points, $table_user.batiments, $table_user.flotte, $table_alliances.tag, $table_alliances.nom FROM $table_user INNER JOIN $table_alliances ON $table_user.id_alliance = $table_alliances.id WHERE $table_user.id = $id;");
if ($joueur == false) $joueur = $bdd->unique_query("SELECT pseudo, auth_level, race, place_points, points, batiments, flotte FROM $table_user WHERE id = $id;");
$nomjoueur = $joueur['pseudo'];
$raid = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE destinataire = '$nomjoueur' AND contenu LIKE '<b>Le combat contre % est termi%';");
$transport = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE contenu LIKE 'Les vaisseaux de $nomjoueur %';");
$bdd->deconnexion();
if (!empty($s) && $joueur['auth_level'] >= 1) {
switch($s){
case 1:
$img = 'mixte1userbarju7.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
)
);
break;
default:
$img = 'mixte1userbarju7.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
)
);
}
if ($joueur['race'] == 'covenant') $_imgavatar = imagecreatefrompng(_FCORE."hb_game/signatures/covi.png");
else $_imgavatar = imagecreatefrompng(_FCORE."hb_game/signatures/hum.png");
}
$_imgavatar = imagecreatefrompng(_FCORE."hb_game/signatures/hum.png");
}
$blanc = imagecolorallocate($_img, 255, 255, 255);
$noir = imagecolorallocate($_img, 0, 0, 0);
$rouge = imagecolorallocate($_img, 255, 0, 0);
$vert = imagecolorallocate($_img, 0, 255, 0);
$bleu = imagecolorallocate($_img, 0, 0, 255);
$jaune = imagecolorallocate($_img, 255, 255, 0);
if ($joueur == false) ImageTTFText($_img, 20, -20, 123, 17, $rouge, $fontfile, 'Joueur introuvable !');
else {
if ($joueur['auth_level'] > 4) ImageTTFText($_img, 12, 0, 45, 23, $vert, $fontfile, ucfirst($joueur['pseudo']));
elseif ($joueur['auth_level'] >= 1) ImageTTFText($_img, 12, 0, 45, 23, $jaune, $fontfile, ucfirst($joueur['pseudo']));
else ImageTTFText($_img, 12, 0, 45, 23, $entete, $fontfile, ucfirst($joueur['pseudo']));
ImageTTFText($_img, 12, 0, 255, 23, $entete, $fontfile, $config['serveur_name']);
if (isset($joueur['tag'])) {
ImageTTFText($_img, 11, 0, 32, 47, $contenu, $fontfile, "Classement : ".separerNombres($joueur['place_points']).($joueur['place_points']==1?'er':'ème'));
ImageTTFText($_img, 11, 0, 32, 64, $contenu, $fontfile, "Points : ".separerNombres($joueur['points']));
ImageTTFText($_img, 11, 0, 32, 82, $contenu, $fontfile, "Alliance : [".$joueur['tag']."] ".substr($joueur['nom'],0,9).(strlen($joueur['nom'])>9?'...':''));
elseif ($joueur['race'] == 'covenant') {
switch($f){
case 1:
$img = 'userbarallicopygs1.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
)
);
break;
default:
$img = 'covenantuserbarus1.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 0, 0, 0);
$infos = array(
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($transport['nombre'])
),
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($joueur['batiments'])
)
);
}
$_imgavatar = imagecreatefrompng(_FCORE."hb_game/signatures/covi.png");
}
else {
ImageTTFText($_img, 11, 0, 32, 55, $contenu, $fontfile, "Classement : ".separerNombres($joueur['place_points']).($joueur['place_points']==1?'er':'ème'));
ImageTTFText($_img, 11, 0, 32, 75, $contenu, $fontfile, "Points : ".separerNombres($joueur['points']));
switch($f){
case 1:
$img = 'userbarallicopygs1.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
)
);
break;
default:
$img = 'humainuserbarhz2.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
//$contenu = imagecolorallocate($_img, 160, 160, 0);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
)
);
}
$_imgavatar = imagecreatefrompng(_FCORE."hb_game/signatures/hum.png");
}
ImageTTFText($_img, 12, 0, 272, 51, $infos[0][0], $fontfile, $infos[0][1]);
ImageTTFText($_img, 12, 0, 272, 78, $infos[1][0], $fontfile, $infos[1][1]);
ImageTTFText($_img, 12, 0, 355, 50, $infos[2][0], $fontfile, $infos[2][1]);
ImageTTFText($_img, 12, 0, 355, 78, $infos[3][0], $fontfile, $infos[3][1]);
$blanc = imagecolorallocate($_img, 255, 255, 255);
$noir = imagecolorallocate($_img, 0, 0, 0);
$rouge = imagecolorallocate($_img, 255, 0, 0);
$vert = imagecolorallocate($_img, 0, 255, 0);
$bleu = imagecolorallocate($_img, 0, 0, 255);
$jaune = imagecolorallocate($_img, 255, 255, 0);
if ($joueur == false) {
ImageTTFText($_img, 20, -20, 123, 17, $rouge, $fontfile, 'Joueur introuvable !');
if (file_exists(_FCORE."hb_game/signatures/cache/".$id.".".$f.$s.".sign")) unlink(_FCORE."hb_game/signatures/cache/".$id.".".$f.$s.".sign");
}
else {
if ($joueur['auth_level'] > 4) ImageTTFText($_img, 12, 0, 45, 23, $vert, $fontfile, ucfirst($joueur['pseudo']));
elseif ($joueur['auth_level'] >= 1) ImageTTFText($_img, 12, 0, 45, 23, $jaune, $fontfile, ucfirst($joueur['pseudo']));
else ImageTTFText($_img, 12, 0, 45, 23, $entete, $fontfile, ucfirst($joueur['pseudo']));
ImageTTFText($_img, 12, 0, 255, 23, $entete, $fontfile, $config['serveur_name']);
if (isset($joueur['tag'])) {
ImageTTFText($_img, 11, 0, 32, 47, $contenu, $fontfile, "Classement : ".separerNombres($joueur['place_points']).($joueur['place_points']==1?'er':'ème'));
ImageTTFText($_img, 11, 0, 32, 64, $contenu, $fontfile, "Points : ".separerNombres($joueur['points']));
ImageTTFText($_img, 11, 0, 32, 82, $contenu, $fontfile, "Alliance : [".$joueur['tag']."] ".substr($joueur['nom'],0,9).(strlen($joueur['nom'])>9?'...':''));
}
else {
ImageTTFText($_img, 11, 0, 32, 55, $contenu, $fontfile, "Classement : ".separerNombres($joueur['place_points']).($joueur['place_points']==1?'er':'ème'));
ImageTTFText($_img, 11, 0, 32, 75, $contenu, $fontfile, "Points : ".separerNombres($joueur['points']));
}
ImageTTFText($_img, 12, 0, 272, 51, $infos[0][0], $fontfile, $infos[0][1]);
ImageTTFText($_img, 12, 0, 272, 78, $infos[1][0], $fontfile, $infos[1][1]);
ImageTTFText($_img, 12, 0, 355, 50, $infos[2][0], $fontfile, $infos[2][1]);
ImageTTFText($_img, 12, 0, 355, 78, $infos[3][0], $fontfile, $infos[3][1]);
}
imagecopy($_img, $_imgavatar, 435, 0, 0, 0, 98, 100);
imagealphablending($_img, false);
imagesavealpha($_img, true);
if ($joueur == false) imagepng($_img);
else {
imagepng($_img, _FCORE."hb_game/signatures/cache/".$id.".".$f.$s.".sign");
readfile(_FCORE."hb_game/signatures/cache/".$id.".".$f.$s.".sign");
}
}
imagecopy($_img, $_imgavatar, 435, 0, 0, 0, 98, 100);
imagealphablending($_img, false);
imagesavealpha($_img, true);
imagepng($_img);
?>

View file

@ -63,6 +63,15 @@ border: #1F6183 solid 1px;
margin: 10px 4px;
}
select
{
color: #3D4B59;
background-color: #CEDAEC;
border: #1F6183 solid 1px;
margin: 2px 4px;
width: 140px;
}
input.text, input.password
{
color: #3D4B59;

View file

@ -1,22 +1,13 @@
<?php
if (!defined("_FCORE")) die('non autorise');
$var___db['mysql']['host'] = "localhost";
$var___db['mysql']['login'] = "root";
$var___db['mysql']['password'] = "rmss169";
$var___db['mysql']['db'] = "halo_battle";
$var___db['pgsql']['host'] = "localhost";
$var___db['pgsql']['login'] = "postgres";
$var___db['pgsql']['password'] = "Ods8kfPsk5f876";
$var___db['pgsql']['db'] = "halo_battle";
?>

View file

@ -3,8 +3,6 @@ if(!defined('INDEX')) { header('Location: ./'); exit; }
require_once(_FCORE."kernel.php");
define('VERSION', $config['version']);
//Constante permettant de savoir si les attaques sont désactivées ou non
define("ATTAQUES", $config['attaques']);
//Définition des limites de la galaxie
@ -74,7 +72,7 @@ $nbcovie = $bdd->unique_query("SELECT COUNT(id) AS covenants FROM $table_user WH
$nbhumain = $bdd->unique_query("SELECT COUNT(id) AS humains FROM $table_user WHERE race = 'humain';");
//Nombre de joueur(s) en ligne ^^
$enligne = $bdd->unique_query("SELECT COUNT(xid) AS enligne FROM sessions WHERE active=1 AND var_session !='';");
$enligne = $bdd->unique_query("SELECT COUNT(xid) AS enligne FROM sessions WHERE active = true AND var_session !='';");
//Bandeau d'informations
$infos = $bdd->query("SELECT * FROM $table_infoshead");
@ -86,4 +84,5 @@ $template->assign('infos',$infos);
$template->assign('nbinfos',$bdd->num_rows-1);
$template->assign('enligne',$enligne['enligne']);
$template->assign('count',array('humains' => $nbhumain['humains'], 'covenants' => $nbcovie['covenants'], 'serveurs' => 'cette'));
$template->assign('version', $config['version']);
?>

View file

@ -14,14 +14,14 @@ lang: "FRA"
log_error: "1"
hide_error: "0"
htdocs: "htdocs"
db_type: "mysql"
db_type: "postgresql"
db_log: "1"
db_prefix: ""
no_db: "no_db"
db_injection: "0"
no_db_message: "Connexion &agrave; la base de donn&eacute;e impossible"
version: "1.7b"
version: "1.8"
flottes: "0"
attaques: "1"
galaxie: "1"
@ -29,6 +29,9 @@ nb_amas: "10"
nb_systeme: "99"
nb_planete: "12"
cache[dir]: "cache/"
cache[signatures]: "43200"
link[self]: "./"
link[accueil]: "http://halo-battle.s-fr.com/"
link[blog]: "http://halo-battle.s-fr.com/ark/"
@ -62,6 +65,7 @@ menu[chat]: "?p=chat"
menu[forums]: "http://halo-battle.s-fr.com/forum/"
menu[bugs]: "?p=bugs"
menu[faq]: "?p=faq"
menu[bourse]: "?p=bourse"
menu[deconnexion]: "?p=deconnexion"
menuadmin[accueil]: "?p=accueil"

View file

@ -54,7 +54,7 @@ class Combat {
if ($j == 0) $groupe[] = array($nbvaispgroupe + $nbrest, $nomvais_bc[$i-1] * (1 + $tableTechno[0]/10), $nomvais_pv[$i-1]);
else $groupe[] = array($nbvaispgroupe, $nomvais_bc[$i-1] * (1 + $tableTechno[0]/10), $nomvais_pv[$i-1]);
}
$this->ATvais[] = array($i, $flotteAT['vaisseau_'.$i], $nbgroupes, $groupe);
$this->ATvais[] = array($i, $flotteAT['vaisseau_'.$i], $nbgroupes, $groupe, $nomvais_initiative[$i-1]);
}
}
@ -81,7 +81,7 @@ class Combat {
if ($j == 0) $groupe[] = array($nbvaispgroupe + $nbrest, $nomvais_bc[$i-1] * (1 + $tableTechno[1]/10), $nomvais_pv[$i-1]);
else $groupe[] = array($nbvaispgroupe, $nomvais_bc[$i-1] * (1 + $tableTechno[1]/10), $nomvais_pv[$i-1]);
}
$this->ENvais[] = array($i, $flotteEN['vaisseau_'.$i], $nbgroupes, $groupe);
$this->ENvais[] = array($i, $flotteEN['vaisseau_'.$i], $nbgroupes, $groupe, $nomvais_initiative[$i-1]);
}
}
@ -100,7 +100,7 @@ class Combat {
if ($j == 0) $groupe[] = array($nbvaispgroupe + $nbrest, $defense_bc[$i-1] * (1 + $tableTechno[1]/10), $defense_pv[$i-1]);
else $groupe[] = array($nbvaispgroupe, $defense_bc[$i-1] * (1 + $tableTechno[1]/10), $defense_pv[$i-1]);
}
$this->ENdef[] = array($i, $defEN['def_'.$i], $nbgroupes, $groupe);
$this->ENdef[] = array($i, $defEN['def_'.$i], $nbgroupes, $groupe, $defense_initiative[$i-1]);
}
}
}
@ -270,6 +270,7 @@ class Combat {
$vaisEff = array();
$nbvais = 0;
$countj = count($this->ENvais);
$countd = count($this->ENdef);
for ($i=0 ; $i<$countj ; $i++) {
$nbvais += $this->ENvais[$i][1];
}
@ -280,10 +281,15 @@ class Combat {
$puissance = 0;
$count = count($this->ATvais);
for ($i=0 ; $i<$count ; $i++) {
if ($this->ATvais[$i][4] > $this->Ntour) continue;
$bonus = 0;
for ($j=0 ; $j<$countj ; $j++) {
$bonus += $nomvais_rf[$this->ATvais[$i][0]-1][$this->ENvais[$i][0]-1] * $vaisEff[$this->ENvais[$i][0]];
}
for ($j=0 ; $j<$countd ; $j++) {
$bonus += 1/$countd;
}
$maxat = $nomvais_at[$this->ATvais[$i][0]-1] * (1 + $armement/10);
$puissance += $maxat * $pourcentage/100 * $this->ATvais[$i][1] * $bonus;
}
@ -304,6 +310,8 @@ class Combat {
$puissance = 0;
$count = count($this->ENvais);
for ($i=0 ; $i<$count ; $i++) {
if ($this->ENvais[$i][4] > $this->Ntour) continue;
$bonus = 0;
for ($j=0 ; $j<$countj ; $j++) {
$bonus += $nomvais_rf[$this->ENvais[$i][0]-1][$this->ATvais[$i][0]-1] * $vaisEff[$this->ATvais[$i][0]];
@ -315,6 +323,8 @@ class Combat {
//Défenses
$count = count($this->ENdef);
for ($i=0 ; $i<$count ; $i++) {
if ($this->ENdef[$i][4] > $this->Ntour) continue;
$maxat = $defense_at[$this->ENdef[$i][0]-1] * (1 + $armement/10);
$puissance += $maxat * $pourcentage/100 * $this->ENdef[$i][1];
}

View file

@ -109,8 +109,8 @@ class Rapport{
$db->escape($rapportB);
$db->escape($utilA);
$db->escape($utilB);
$db->query("INSERT INTO ".$this->table." VALUES('', '1', '$utilA', '', '$titreA', '$rapportA', '$temps')");
$db->query("INSERT INTO ".$this->table." VALUES('', '1', '$utilB', '', '$titreB', '$rapportB', '$temps')");
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilA, '', '$titreA', '$rapportA', '$temps')");
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilB, '', '$titreB', '$rapportB', '$temps')");
$db->deconnexion();
}
@ -139,8 +139,8 @@ class Rapport{
$db->escape($utilA);
$db->escape($utilB);
$db->query("INSERT INTO ".$this->table." VALUES('', '1', '$utilA', '', '$titre', '$rapportA', '$temps')");
if ($utilA != $utilB) $db->query("INSERT INTO ".$this->table." VALUES('', '1', '$utilB', '', '$titre', '$rapportB', '$temps')");
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilA, '', '$titre', '$rapportA', '$temps')");
if ($utilA != $utilB) $db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilB, '', '$titre', '$rapportB', '$temps')");
$db->deconnexion();
}
@ -158,7 +158,7 @@ class Rapport{
$db->escape($titre);
$db->escape($rapport);
$db->escape($utilA);
$db->query("INSERT INTO ".$this->table." VALUES('', '1', '$utilA', '', '$titre', '$rapport', '$temps')");
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilA, '', '$titre', '$rapport', '$temps')");
$db->deconnexion();
}
@ -175,7 +175,7 @@ class Rapport{
$db->escape($titre);
$db->escape($rapport);
$db->escape($utilA);
$db->query("INSERT INTO ".$this->table." VALUES('', '1', '$utilA', '', '$titre', '$rapport', '$temps')");
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilA, '', '$titre', '$rapport', '$temps')");
$db->deconnexion();
}
@ -283,8 +283,8 @@ class Rapport{
$db->escape($rapportB);
$db->escape($utilA);
$db->escape($utilB);
$db->query("INSERT INTO ".$this->table." VALUES('', '1', '$utilA', '', '$titreA', '$rapportA', '$temps')");
$db->query("INSERT INTO ".$this->table." VALUES('', '1', '$utilB', '', '$titreB', '$rapportB', '$temps')");
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilA, '', '$titreA', '$rapportA', '$temps')");
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilB, '', '$titreB', '$rapportB', '$temps')");
$db->deconnexion();
}
@ -357,7 +357,7 @@ class Rapport{
$db->escape($rapportA);
$utilA = trouvNom($this->utilA);
$db->escape($utilA);
$db->query("INSERT INTO ".$this->table." VALUES('', '1', '$utilA', '', '$titreA', '$rapportA', '$temps')");
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilA, '', '$titreA', '$rapportA', '$temps')");
$db->deconnexion();
}
@ -374,7 +374,7 @@ class Rapport{
$db->escape($rapportA);
$utilA = trouvNom($this->utilA);
$db->escape($utilA);
$db->query("INSERT INTO ".$this->table." VALUES('', '1', '$utilA', '', '$titreA', '$rapportA', '$temps')");
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilA, '', '$titreA', '$rapportA', '$temps')");
$db->deconnexion();
}
}

View file

@ -42,7 +42,7 @@ for ($i = 0; $i < $nbFlottes; $i++) {
$bdd->escape($titreA);
$rapportA = 'La flotte '.$queryFlottes[$i]['nom_flotte'].' n\'a pas pu effectuer sa mission correctement car lorsqu\'elle est arrivée sur place, la planète était déserte.';
$bdd->escape($rapportA);
$db->query("INSERT INTO $table_mail VALUES('', '1', '".$queryFlottes[$i]['id_user']."', '', '$titreA', '$rapportA', '".$end_time."')");
$db->query("INSERT INTO $table_mail (destinataire, expediteur, sujet, contenu, temps) VALUES(".$queryFlottes[$i]['id_user'].", '', '$titreA', '$rapportA', '".$end_time."')");
$bdd->deconnexion();
continue;
}
@ -196,7 +196,7 @@ for ($i = 0; $i < $nbFlottes; $i++) {
$timesuite = $combat->timestamp;
$idFleet = $queryFlottes[$i]['id'];
if ($queryFlottes[$i]['effectue']) $bdd->query("UPDATE $table_flottes_combats SET serialize = '$serialise', tactiqueAT = '0', tactiqueEN = '0', timestamp = '$timesuite' WHERE refflotte = '$id_flotte';");
else $bdd->query("INSERT INTO $table_flottes_combats VALUES(NULL, '$idFleet', '$timesuite', '$serialise', '0', '0');");
else $bdd->query("INSERT INTO $table_flottes_combats (refflotte, timestamp, serialize, tactiqueAT, tactiqueEN) VALUES('$idFleet', '$timesuite', '$serialise', '0', '0');");
}
$bdd->deconnexion();
}
@ -321,7 +321,7 @@ for ($i = 0; $i < $nbFlottes; $i++) {
$rapport = new Rapport($mission, $id_att, $id_userT, $end_time);
if ($diffNiveau < 0) {
$rapport->addInfo($resultatT, 0);
$rapport->addInfo($queryEN, 0);
$rapport->addInfo(false, 1);
}
if ($diffNiveau >= 0) $rapport->addInfo($queryEN, 0);

View file

@ -1,16 +1,18 @@
<?php
function trouvNom($id_user){
global $table_user;
$base = new bdd();
$base->connexion();
$resultat = $base->unique_query("SELECT pseudo FROM user WHERE `id` = '$id_user'");
$resultat = $base->unique_query("SELECT pseudo FROM $table_user WHERE id = '$id_user'");
$base->deconnexion();
return $resultat['pseudo'];
}
function trouvInfo($id_user, $info){
global $table_user;
$base = new bdd();
$base->connexion();
$resultat = $base->unique_query("SELECT `$info` FROM user WHERE `id` = '$id_user'");
$resultat = $base->unique_query("SELECT $info FROM $table_user WHERE id = '$id_user'");
$base->deconnexion();
return $resultat[$info];
}
@ -190,4 +192,34 @@ function vaisTempsdeplacement($start_amas, $start_ss, $start_pos, $end_amas,$end
function vais_conso($tempsDeplacement,$nbvais = 1){
return intval($tempsDeplacement*$nbvais/20);
}
function send_mail($mail, $sujet, $corps){
require_once(_FCORE."hb_game/Class/class.phpmailer.php");
$mail = new PHPmailer();
$mail->SetLanguage('fr', _FCORE."hb_game/Class/");
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->Host='s-fr.com';
$mail->From='no-reply@halo-battle.s-fr.com';
$mail->FromName='Halo-Battle';
$mail->SMTPAuth=true;
$mail->Username='no-reply@halo-battle.s-fr.com';
$mail->Password='hD3e2nXu';
$mail->AddAddress($mail);
$mail->AddReplyTo('no-reply@halo-battle.s-fr.com');
$mail->Subject = $sujet;
$mail->Body = $corps;
$return = $mail->Send();
$mail->SmtpClose();
return $return;
}
function mdp($nom, $mdp, $alea){
hash_var(strtoupper($HB_login).':'.$HB_password.'♂♪'.$var['mdp_var']);
// xor
}
?>

View file

@ -6,33 +6,20 @@ $titre = 'Accueil';
//On recherche si le joueur a des messages non lus
$pseudo = trouvNom($id_user);
$bdd->connexion();
$queryMail = $bdd->unique_query("SELECT COUNT(*) AS nbre FROM $table_mail WHERE destinataire = '$pseudo' AND vu = '1';");
//On regarde si le joueur a une attaque en vue
$attaquesRadar = array();
$nbPlan = count($queryPlanetes);
for($i = 0; $i < $nbPlan; $i++){
$end_galaxie = $queryPlanetes[$i]['galaxie'];
$end_ss = $queryPlanetes[$i]['ss'];
$end_position = $queryPlanetes[$i]['position'];
$resultatf = $bdd->query("SELECT * FROM $table_flottes WHERE mission = '1' AND end_galaxie = '$end_galaxie' AND end_ss = '$end_ss' AND end_position = '$end_position';");
$nbF = $bdd->num_rows;
for ($j = 0; $j < $nbF; $j++) {
$start_galaxie = $resultatf[$j]['start_galaxie'];
$start_ss = $resultatf[$j]['start_ss'];
$start_position = $resultatf[$j]['start_position'];
if ($resultatf[$j]['start_time'] + $resultatf[$j]['end_time'] < time() + $queryUser['detection']*1800) {
$resultatp = $bdd->unique_query("SELECT nom_planete FROM $table_planete WHERE galaxie = '$start_galaxie' AND ss = '$start_ss' AND position = '$start_position'");
$resultatpm = $bdd->unique_query("SELECT nom_planete FROM $table_planete WHERE galaxie = '$end_galaxie' AND ss = '$end_ss' AND position = '$end_position'");
$attaquesRadar[] = array(htmlspecialchars($resultatp['nom_planete']), $resultatf[$j]['start_time']+$resultatf[$j]['end_time']-time()<0?'COMBAT EN COURS':affTemp($resultatf[$j]['start_time']+$resultatf[$j]['end_time']-time()), $resultatf[$j]['start_galaxie'], $resultatf[$j]['start_ss'], $resultatf[$j]['start_position'], htmlspecialchars($resultatpm['nom_planete']), $resultatf[$j]['end_galaxie'], $resultatf[$j]['end_ss'], $resultatf[$j]['end_position'], ($resultatf[$j]['start_time']+$resultatf[$j]['end_time']-time())<0?'':$resultatf[$j]['start_time']+$resultatf[$j]['end_time']-time());
}
}
}
$queryMail = $bdd->unique_query("SELECT COUNT(id) AS nbre FROM $table_mail WHERE destinataire = '$pseudo' AND vu = '1';");
//Affichage de l'alliance du joueur
$alli = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = '".$queryUser['id_alliance']."';");
//On regarde si le joueur a une attaque en vue
$radar = $bdd->query("SELECT F.start_galaxie, F.start_ss, F.start_position, F.start_time, F.end_time FROM $table_flottes F WHERE id_user = $id_user;");
$bdd->deconnexion();
var_dump($radar, true);
exit;
//Affichage des informations sur la planète
$diametre = separerNombres($queryPlanete['cases'] * 92);
$Classpoints = separerNombres($queryUser['points']);

View file

@ -12,7 +12,7 @@ if (!empty($_GET['i']) && $_GET['i'] == 'add') {
$chapeau->connexion();
$chapeau->escape($texte);
$chapeau->escape($color);
$chapeau->query("INSERT INTO $table_infoshead VALUES (NULL, '$texte', '$color');");
$chapeau->query("INSERT INTO $table_infoshead (texte, color) VALUES ('$texte', '$color');");
$chapeau->deconnexion();
header('Location: admin.php?p=bandeau');

View file

@ -5,7 +5,7 @@ include_once(_FCORE."hb_game/Class/class.rapport.php");
//Si le joueur est membre de l'alliance
$bdd->connexion();
if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 && $alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = '".$queryUser['id_alliance']."';")) {
if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 && $alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$queryUser['id_alliance'].";")) {
//On détermine les accès du joueur
if ($alliance['fondateur'] == $queryUser['id'])
$access = array(
@ -19,7 +19,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
elseif ($queryUser['id_grade_alliance'] != 0) {
$id_grade_alliance = $queryUser['id_grade_alliance'];
$bdd->connexion();
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = '$id_grade_alliance';");
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = $id_grade_alliance;");
$bdd->deconnexion();
$access = array(
'fondateur' => 0,
@ -50,7 +50,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$alliId = $alliance['id'];
$bdd->connexion();
$bdd->escape($i);
$bdd->query("DELETE FROM $table_alliances_chat WHERE id = '$i' AND id_alliance = '$alliId';");
$bdd->query("DELETE FROM $table_alliances_chat WHERE id = $i AND id_alliance = $alliId;");
$bdd->deconnexion();
header('Location: ?p=alliances&q=adm_chat#chat');
exit;
@ -58,7 +58,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$page = 'alliance_adm_chat';
$alliId = $alliance['id'];
$bdd->connexion();
$chat = $bdd->query("SELECT * FROM $table_alliances_chat WHERE id_alliance = '$alliId' ORDER BY id DESC LIMIT 50;");
$chat = $bdd->query("SELECT * FROM $table_alliances_chat WHERE id_alliance = $alliId ORDER BY id DESC LIMIT 50;");
$bdd->deconnexion();
for($i = 0; $i < $bdd->num_rows ; $i++){
$chat[$i]['emetteur'] = trouvNom($chat[$i]['emetteur']);
@ -78,14 +78,14 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$bdd->escape($id);
$bdd->escape($nom);
$bdd->escape($description);
@$bdd->query("UPDATE $table_alliances_grade SET nom = '$nom', description = '$description', gest_chat = '".ceil($_POST['gest_chat'])."', gest_rang = '".ceil($_POST['gest_rang'])."', gest_membre = '".ceil($_POST['gest_membre'])."', gest_ecriture = '".ceil($_POST['gest_ecriture'])."', gest_admin = '".ceil($_POST['gest_alliance'])."' WHERE id = '$id' AND id_alliance = '".$alliance['id']."';");
@$bdd->query("UPDATE $table_alliances_grade SET nom = '$nom', description = '$description', gest_chat = ".ceil($_POST['gest_chat']).", gest_rang = ".ceil($_POST['gest_rang']).", gest_membre = ".ceil($_POST['gest_membre']).", gest_ecriture = ".ceil($_POST['gest_ecriture']).", gest_admin = ".ceil($_POST['gest_alliance'])." WHERE id = $id AND id_alliance = ".$alliance['id'].";");
$bdd->deconnexion();
}
else {
$bdd->connexion();
$bdd->escape($nom);
$bdd->escape($description);
@$bdd->query("INSERT INTO $table_alliances_grade VALUES (NULL, '".$alliance['id']."', '$nom', '$description', '".ceil($_POST['gest_chat'])."', '".ceil($_POST['gest_rang'])."', '".ceil($_POST['gest_membre'])."', '".ceil($_POST['gest_ecriture'])."', '".ceil($_POST['gest_alliance'])."');");
@$bdd->query("INSERT INTO $table_alliances_grade (id_alliance, nom, description, gest_chat, gest_rang, gest_membre, gest_ecriture, gest_admin) VALUES (".$alliance['id'].", '$nom', '$description', ".ceil($_POST['gest_chat']).", ".ceil($_POST['gest_rang']).", ".ceil($_POST['gest_membre']).", ".ceil($_POST['gest_ecriture']).", ".ceil($_POST['gest_alliance']).");");
$bdd->deconnexion();
}
header('Location: ?p=alliances&q=adm_grades');
@ -98,7 +98,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$i = $_GET['i'];
$bdd->connexion();
$bdd->escape($i);
$mod = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = '$i' AND id_alliance = '".$alliance['id']."';");
$mod = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = $i AND id_alliance = ".$alliance['id'].";");
$bdd->deconnexion();
$template->assign('mod', $mod);
}
@ -106,7 +106,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$page = 'alliance_adm_grades';
$alliId = $alliance['id'];
$bdd->connexion();
$grades = $bdd->query("SELECT * FROM $table_alliances_grade WHERE id_alliance = '$alliId' ORDER BY nom ASC;");
$grades = $bdd->query("SELECT * FROM $table_alliances_grade WHERE id_alliance = $alliId ORDER BY nom ASC;");
$bdd->deconnexion();
$template->assign('grades', $grades);
}
@ -121,7 +121,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$bdd->connexion();
$bdd->escape($text);
$bdd->escape($mod);
$bdd->query("UPDATE $table_alliances SET $mod = '$text' WHERE id = '$alliId';");
$bdd->query("UPDATE $table_alliances SET $mod = '$text' WHERE id = $alliId;");
$bdd->deconnexion();
header('Location: ?p=alliances&q=adm_ecrits&t='.$mod);
exit;
@ -140,7 +140,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$bdd->escape($titre);
$bdd->escape($texte);
$bdd->escape($expediteur);
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '$alliId';");
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = $alliId;");
$bdd->deconnexion();
$nbmembre = $bdd->num_rows;
$temps = time();
@ -148,7 +148,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
for($i = 0; $i < $nbmembre; $i++){
$pseudos = $membres[$i]['pseudo'];
$bdd->escape($pseudos);
$bdd->query("INSERT INTO $table_mail VALUES(NULL, 1, '$pseudos', '$expediteur', '$titre', '$texte', '$temps');");
$bdd->query("INSERT INTO $table_mail (destinataire, expediteur, sujet, contenu, temps) VALUES ('$pseudos', '$expediteur', '$titre', '$texte', '$temps');");
}
$bdd->deconnexion();
$template->assign('message','Le message privé a été communiqué à tous les joueurs de l\'alliance.');
@ -263,7 +263,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$user = floor($_GET['accept']);
$bdd->connexion();
$bdd->escape($user);
$verif = $bdd->unique_query("SELECT * FROM $table_alliances_attente WHERE id_alliance = '".$alliance['id']."' AND id_membre = '$user';");
$verif = $bdd->unique_query("SELECT * FROM $table_alliances_attente WHERE id_alliance = ".$alliance['id']." AND id_membre = $user;");
if ($verif) {
$bdd->query("UPDATE $table_user SET id_grade_alliance = '0', id_alliance = '".$alliance['id']."' WHERE id = '".$user."' AND id_alliance = '0';");
$bdd->query("DELETE FROM $table_alliances_attente WHERE id_membre = '$user';");
@ -275,13 +275,13 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$user = floor($_GET['refus']);
$bdd->connexion();
$bdd->escape($user);
$bdd->query("DELETE FROM $table_alliances_attente WHERE id_membre = '$user' AND id_alliance = '".$alliance['id']."';");
$bdd->query("DELETE FROM $table_alliances_attente WHERE id_membre = $user AND id_alliance = ".$alliance['id'].";");
$bdd->deconnexion();
//TODO Envoyer un message au joueur renvoyé
}
$page = 'alliance_adm_membres';
$bdd->connexion();
$grades = $bdd->query("SELECT * FROM $table_alliances_grade WHERE id_alliance = '".$alliance['id']."' ORDER BY nom ASC;");
$grades = $bdd->query("SELECT * FROM $table_alliances_grade WHERE id_alliance = ".$alliance['id']." ORDER BY nom ASC;");
$bdd->deconnexion();
$grade = array(); $gradei = array();
for($i = 0; $i < $bdd->num_rows ; $i++){
@ -291,8 +291,8 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$template->assign('grades', $grade);
$template->assign('gradei', $gradei);
$bdd->connexion();
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '".$alliance['id']."';");
$candidats = $bdd->query("SELECT * FROM $table_alliances_attente WHERE id_alliance = '".$alliance['id']."' ORDER BY timestamp ASC;");
$membres = $bdd->query("SELECT pseudo, race, last_visite, id, id_grade_alliance FROM $table_user WHERE id_alliance = ".$alliance['id'].";");
$candidats = $bdd->query("SELECT A.message, A.timestamp, A.id_membre, U.pseudo AS pseudo_membre FROM $table_alliances_attente A WHERE id_alliance = ".$alliance['id']." INNER JOIN $table_user U ON U.id = A.id_membre ORDER BY timestamp ASC;");
$bdd->deconnexion();
$template->assign('membres', $membres);
$template->assign('candidats', $candidats);
@ -316,7 +316,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$message = $_POST['msg'];
$bdd->connexion();
$bdd->escape($message);
if (!empty($message)) $bdd->query("INSERT INTO $table_alliances_chat VALUES (NULL, '".$alliance['id']."', '$id_user', '".time()."', '$message')");
if (!empty($message)) $bdd->query("INSERT INTO $table_alliances_chat (id_alliance, emetteur, timestamp, message) VALUES (".$alliance['id'].", $id_user, ".time().", '$message')");
$bdd->deconnexion();
header('Location: ?p=alliances&q=chat#chat');
exit;
@ -324,7 +324,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$page = 'alliance_chat';
//Chat
$bdd->connexion();
$chat = $bdd->query("SELECT * FROM $table_alliances_chat WHERE id_alliance = '".$alliance['id']."' ORDER BY id DESC LIMIT 30");
$chat = $bdd->query("SELECT * FROM $table_alliances_chat WHERE id_alliance = ".$alliance['id']." ORDER BY id DESC LIMIT 30");
$bdd->deconnexion();
for($i = 0; $i < $bdd->num_rows ; $i++){
$chat[$i]['emetteur'] = trouvNom($chat[$i]['emetteur']);
@ -338,7 +338,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$alliance['texte_interne'] = bbcode(htmlspecialchars($alliance['texte_interne']),1);
$template->assign('alliance', $alliance);
$bdd->connexion();
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '".$alliance['id']."';");
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = ".$alliance['id'].";");
$bdd->deconnexion();
$template->assign('nbmembre', $bdd->num_rows);
if (!isset($grade)) $template->assign('grade', 0);
@ -346,7 +346,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
//Chat
$bdd->connexion();
$chat = $bdd->query("SELECT * FROM $table_alliances_chat WHERE id_alliance = '".$alliance['id']."' ORDER BY id DESC LIMIT 30;");
$chat = $bdd->query("SELECT * FROM $table_alliances_chat WHERE id_alliance = ".$alliance['id']." ORDER BY id DESC LIMIT 30;");
$bdd->deconnexion();
for($i = 0; $i < $bdd->num_rows ; $i++){
$chat[$i]['emetteur'] = trouvNom($chat[$i]['emetteur']);
@ -355,8 +355,8 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$template->assign('chat', $chat);
}
}
elseif (!empty($queryUser['id_alliance']) && $bdd->connexion() && !$bdd->unique_query("SELECT * FROM $table_alliances WHERE id = '".$queryUser['id_alliance']."';")) {
$bdd->query("UPDATE $table_user SET id_alliance = '0', id_grade_alliance = '0' WHERE id = '$id_user';");
elseif (!empty($queryUser['id_alliance']) && $bdd->connexion() && !$bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$queryUser['id_alliance'].";")) {
$bdd->query("UPDATE $table_user SET id_alliance = 0, id_grade_alliance = 0 WHERE id = $id_user;");
header('Location: ?p=alliances');
exit;
}
@ -381,11 +381,11 @@ else {
$id = $_GET['i'];
$bdd->connexion();
$bdd->escape($id);
if (isset($_GET['t']) && $_GET['t'] == 'classement') $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '$id' ORDER BY place_points DESC;");
else $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '$id';");
if (isset($_GET['t']) && $_GET['t'] == 'classement') $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = $id ORDER BY place_points DESC;");
else $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = $id;");
$nb = $bdd->num_rows;
for ($i = 0; $i < $nb; $i++) {
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = '".$membres[$i]['id_grade_alliance']."';");
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = ".$membres[$i]['id_grade_alliance'].";");
$membres[$i]['grade_alliance'] = $grade['nom'];
}
$bdd->deconnexion();
@ -396,12 +396,12 @@ else {
$id = $_GET['i'];
$bdd->connexion();
$bdd->escape($id);
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = '$id';");
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;");
if ($alliance) {
$page = 'alliance_nm_view';
$alliance['presentation'] = bbcode(htmlspecialchars($alliance['presentation']),1);
$template->assign('alliance', $alliance);
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '".$alliance['id']."';");
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = ".$alliance['id'].";");
$bdd->deconnexion();
$template->assign('nbmembre', $bdd->num_rows);
}
@ -417,11 +417,11 @@ else {
$id = $_GET['i'];
$bdd->connexion();
$bdd->escape($id);
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = '$id';");
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;");
if (!empty($_POST['message'])) {
$message = $_POST['message'];
$bdd->escape($message);
$bdd->query("INSERT INTO $table_alliances_attente VALUES (NULL, '".$alliance['id']."', '".$id_user."', '".$queryUser['pseudo']."', '".time()."', '$message');");
$bdd->query("INSERT INTO $table_alliances_attente (id_alliance, id_membre, timestamp, message, ) VALUES (NULL, ".$alliance['id'].", ".$id_user.", '".time()."', '$message');");
$bdd->deconnexion();
$template->assign('message','Votre candidature a été envoyée avec succès à l\'alliance : '.$alliance['nom']);
$template->assign('couleur','green');
@ -457,7 +457,7 @@ else {
$bdd->connexion();
$bdd->escape($tag);
$bdd->escape($nom);
$bdd->query("INSERT INTO $table_alliances VALUES (NULL, '$tag', '$nom', '".$alliance['fondateur']."', 'A faire', 'A faire', '', '', 1, 1, '');");
$bdd->query("INSERT INTO $table_alliances (tag, nom, fondateur, presentation, texte_interne, url, image, etat_inscription, defcon, defcon_txt) VALUES ('$tag', '$nom', '".$alliance['fondateur']."', 'A faire', 'A faire', '', '', 1, 1, '');");
$bdd->query("DELETE FROM $table_alliances_creation WHERE lien = '$lien';");
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE nom = '".$alliance['nom']."' AND fondateur = '".$alliance['fondateur']."';");
@ -511,6 +511,9 @@ else {
elseif ($_GET['q'] == 'fonder') {
if (!empty($_POST['nom']) && !empty($_POST['tag'])) {
$nom = htmlentities($_POST['nom']);
$tag = htmlentities($_POST['tag']);
if (strlen($nom) < 5) {
$template->assign('message','Le nom d\'alliance que vous avez choisit est trop court.');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=fonder";\', 3500);</script>');
@ -548,14 +551,11 @@ else {
}
$bdd->connexion();
$nom = htmlentities($_POST['nom']);
$tag = htmlentities($_POST['tag']);
$bdd->escape($nom);
$bdd->escape($tag);
$test = $bdd->query("SELECT * FROM alliances WHERE nom = '$nom' AND tag = '$tag';");
$test2 = $bdd->query("SELECT * FROM alliances_creation WHERE nom = '$nom' AND tag = '$tag';");
$test = $bdd->query("SELECT * FROM $table_alliances WHERE nom = '$nom' AND tag = '$tag';");
$test2 = $bdd->query("SELECT * FROM $table_alliances_creation WHERE nom = '$nom' AND tag = '$tag';");
$bdd->deconnexion();
if ($test || $test2) {
$template->assign('message','Le nom ou le tag que vous avez choisit est déjà utilisé par une alliance.');
@ -567,7 +567,7 @@ else {
else {
$lien = sha1($tag.'Hb$'.$nom.'☺Ø'.$id_user.rand());
$bdd->connexion();
$bdd->query("INSERT INTO alliances_creation VALUES(NULL, '$lien' ,'$tag', '$nom', '$id_user', '');");
$bdd->query("INSERT INTO $table_alliances_creation (lien, tag, nom, fondateur, signatures) VALUES ('$lien' ,'$tag', '$nom', '$id_user', '');");
$bdd->deconnexion();
$rapport = new Rapport(7, $id_user, 0, time());

File diff suppressed because one or more lines are too long

View file

@ -3,28 +3,43 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'bourse';
$titre = 'Bourse';
$ressourceArgent = 'metal';
$bdd->connexion();
$queryBourseMetal = $bdd->unique_query("SELECT SUM(nombre) AS nombre, SUM(prix)/COUNT(prix) AS prix FROM $table_bourse WHERE type = 0;");
$queryBourseCristal = $bdd->unique_query("SELECT SUM(nombre) AS nombre, SUM(prix)/COUNT(prix) AS prix FROM $table_bourse WHERE type = 1;");
$queryBourseHydrogene = $bdd->unique_query("SELECT SUM(nombre) AS nombre, SUM(prix)/COUNT(prix) AS prix FROM $table_bourse WHERE type = 2;");
$bdd->deconnexion();
if (isset($_POST['metal']) is_numeric($_POST['metal'])) {
$demand = floor($_POST['metal'])
if ($queryPlanete[$ressourceArgent] >= $queryBourseMetal['prix']*$demand && ) {
$queryBMetal = $bdd->query("SELECT id, nombre FROM $table_bourse WHERE type = 0 ORDER BY prix ASC;");
$dispo =
for($i = 0; ($i < $bdd->num_rows || ); $i++){
$queryBMetal[$i]
}
$argent = $queryPlanete[$ressourceArgent] - $queryBourseMetal['prix']*$demand;
$bdd->query("UPDATE $table_planete SET $ressourceArgent = $argent WHERE id = '$idPlan';");
}
if ($queryPlanetes[0]['id'] != $queryPlanete['id']) {
$template->assign('message','Vous devez être sur votre planète mère pour utilisez la bourse.');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');
exit;
}
else {
$a = gpc('a');
$nb = gpc('a'.$a, 'post');
if (!empty($a) && is_numeric($nb) && $nb < 1000) {
$bdd->connexion();
$bdd->escape($a);
$bdd->escape($nb);
$action = $bdd->unique_query("SELECT FLOOR(B.metal/SUM(A.nombre)) AS metal, FLOOR(B.cristal/SUM(A.nombre)) AS cristal FROM $table_bourse B JOIN $table_bourse_actions A ON B.id = A.id_action WHERE B.id = $a GROUP BY A.id_action;");
$bdd->deconnexion();
$metal -= $action['metal']*$nb;
$cristal -= $action['cristal']*$nb;
if ($metal < 0 || $cristal < 0) {
$template->assign('message','Vous n\'avez pas assez de ressource pour acheter ces actions.');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');
exit;
}
$bdd->connexion();
$bdd->query("UPDATE $table_planete SET metal = $metal, cristal = $cristal WHERE id = $idPlan;");
$bdd->query("INSERT INTO $table_bourse_actions (id_user, id_action, nombre) VALUES ($id_user, $a, $nb);");
$bdd->deconnexion();
header('Location: ?p=bourse');
exit;
}
else {
$bdd->connexion();
$bourse = $bdd->query("SELECT B.id, B.nom, SUM(U.nombre) AS nbactions, FLOOR(SUM(A.nombre)/B.metal) AS metal, FLOOR(SUM(A.nombre)/B.cristal) AS cristal, B.last_nombre, FLOOR(((SUM(A.nombre)/B.last_nombre)-1)*100) AS evolution FROM $table_bourse B INNER JOIN $table_bourse_actions A ON B.id = A.id_action INNER JOIN $table_bourse_actions U ON B.id = U.id_action AND U.id_user = $id_user GROUP BY A.id_action;");
$bdd->deconnexion();
}
$template->assign('bourse', array($queryBourseMetal, $queryBourseCristal, $queryBourseHydrogene));
$template->assign('bourse', $bourse);
}
?>

View file

@ -12,7 +12,7 @@ if (!empty($_POST['page']) && !empty($_POST['description'])) {
$bdd->connexion();
$bdd->escape($pages);
$bdd->escape($description);
$bdd->query("INSERT INTO $table_bug VALUES(NULL, '$pseudo', '$time', '$pages', '$description');");
$bdd->query("INSERT INTO $table_bug (pseudo, temps, page, description) VALUES('$pseudo', '$time', '$pages', '$description');");
$bdd->deconnexion();
header('Location: ?p=bugs');
exit;
@ -21,7 +21,7 @@ elseif (isset($_GET['a']) && $_GET['a'] == 'del' && isset($_GET['i']) && $sess->
$i = $_GET['i'];
$bdd->connexion();
$bdd->escape($i);
$bdd->query("DELETE FROM $table_bug WHERE id = '$i' LIMIT 1;");
$bdd->query("DELETE FROM $table_bug WHERE id = $i;");
$bdd->deconnexion();
header('Location: ?p=bugs');
exit;

View file

@ -42,22 +42,15 @@ for ($i = 1; $i <= MAX_PLANETE; $i++) {
$bdd->connexion();
$bdd->escape($g);
$bdd->escape($s);
$resultat = $bdd->query("SELECT id FROM $table_planete WHERE galaxie = '$g' AND ss = '$s' AND position = '$i';");
$resultat = $bdd->query("SELECT id FROM $table_planete WHERE galaxie = $g AND ss = $s AND position = $i;");
if($resultat) {
$d = $bdd->unique_query("SELECT id_user, nom_planete, debris_met, debris_cri FROM $table_planete WHERE galaxie = '$g' AND ss = '$s' AND position = '$i';");
$id_user = $d['id_user'];
$e = $bdd->unique_query("SELECT pseudo, race, id_alliance FROM $table_user WHERE id = '$id_user'");
if ($e['id_alliance']) {
$alliId = $e['id_alliance'];
$eA = $bdd->unique_query("SELECT tag FROM $table_alliances WHERE id = '$alliId';");
}
else $eA = false;
$d = $bdd->unique_query("SELECT P.nom_planete, P.debris_met, P.debris_cri, U.pseudo, U.race, U.id_alliance, A.tag FROM $table_planete P INNER JOIN $table_user U ON U.id = P.id_user LEFT OUTER JOIN $table_alliances A ON A.id = U.id_alliance WHERE galaxie = $g AND ss = $s AND position = $i;");
$bdd->deconnexion();
if ($e['race'] == 'covenant') $ra = '(c)';
elseif ($auth_level >= 6 && md5($e['race']) == '34c19b21bd4a3dda389e767d32fe9779') $ra = '(f)';
if ($d['race'] == 'covenant') $ra = '(c)';
elseif ($auth_level >= 6 && md5($d['race']) == '34c19b21bd4a3dda389e767d32fe9779') $ra = '(f)';
else $ra = '(h)';
$TEMP_carte[] = array($i, htmlspecialchars($d['nom_planete']), $d['debris_met'], $d['debris_cri'], $ra, $e['pseudo'], '<a href="?p=envoyer&amp;d='.$e['pseudo'].'" class="msg"><span>Message</span></a>', $eA['tag']);
$TEMP_carte[] = array($i, htmlspecialchars($d['nom_planete']), $d['debris_met'], $d['debris_cri'], $ra, $d['pseudo'], '<a href="?p=envoyer&amp;d='.$d['pseudo'].'" class="msg"><span>Message</span></a>', $d['tag']);//, $eA['tag']);
}
else {
$bdd->deconnexion();

View file

@ -3,29 +3,49 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'classement';
$titre = 'Classement';
if (isset($_GET['q']) && is_numeric($_GET['q']) && $_GET['q'] > 0) $pageClassement = $_GET['q'];
//Page affichée
$q = gpc('q');
if (is_numeric($q) && $q > 0) $pageClassement = $q;
else $pageClassement = 1;
if (isset($_GET['e'])) {
if ($_GET['e'] == 'batiment') $export = 'batiments';
elseif ($_GET['e'] == 'flotte') $export = 'flottes';
elseif ($_GET['e'] == 'recherches') $export = 'recherches';
else $export = 'points';
}
else $export = 'points';
//Type de classement
$t = gpc('t');
switch($t){
case '0':
$TypeSearch = false;
break;
default:
$TypeSearch = true;
}
$template->assign('t', $TypeSearch);
if (isset($_GET['t'])) {
if ($_GET['t'] == '0') $TypeSearch = '0';
else $TypeSearch = '1';
}
else $TypeSearch = '0';
//Catégorie du classement
$e = gpc('e');
switch($e){
case 'batiment':
$export = 'batiments';
break;
case 'flotte':
$export = 'flottes';
break;
case 'recherches':
$export = 'recherches';
break;
default:
$export = 'points';
}
$template->assign('export', $export);
$nbppage = 100;
if (isset($_GET['c']) && is_numeric($_GET['c']) && $_GET['c'] > 0) $pageClassement = floor($_GET['c']/($nbppage+1))+1;
$pageClassementN = ($pageClassement-1) * $nbppage;
//Nombre de joueurs par page
$n = gpc('n');
if (is_numeric($n) && $n > 0) $nbppage = $n;
else $nbppage = 100;
$pageClassementN = ($pageClassement-1);
$nbpages = ceil(($nbhumain['humains']+$nbcovie['covenants'])/$nbppage);
if ($pageClassement > $nbpages) $pageClassement = $nbpages;
$TEMP_pages = '<select name="q">';
for($i=1 ; $i<=$nbpages ; $i++) {
if ($i == $pageClassement) $TEMP_pages .= '<option value="'.$i.'" selected="selected">'.(($i-1)*$nbppage+1).'-'.($i*$nbppage).'</option>';
@ -34,15 +54,45 @@ for($i=1 ; $i<=$nbpages ; $i++) {
$TEMP_pages .= '</select>';
$template->assign('q', $TEMP_pages);
$template->assign('t', $TypeSearch);
$plage_debut = $nbppage * $pageClassementN;
$plage_fin = $nbppage * ($pageClassementN + 1);
if ($TypeSearch) {
$bdd->connexion();
$data = $bdd->query("SELECT C.".$export.", C.nbr_membres FROM $table_classement_alliances C JOIN $table_alliances A ON 1 = A.id ORDER BY C.$export DESC LIMIT $plage_fin OFFSET $plage_debut;");
$bdd->deconnexion();
$nbres = $bdd->num_rows;
var_dump($data);
$plage_debut = $nbppage * $pageClassementN + 1;
$plage_fin = $nbppage * ($pageClassementN + 1) + 1;
$j = ($pageClassement-1)*$nbppage;
$TEMP_classement = array();
for ($i=0; $i<$nbres; $i++) {
$j++;
$TEMP_classement[] = array($j, $data[$i]['tag'], $data[$i]['nbr_membres'], separerNombres($data[$i][$export]),0);
}
}
else {
$bdd->connexion();
$data = $bdd->query("SELECT C.$export, U.pseudo, U.race, A.tag, A.nom FROM $table_classement C INNER JOIN $table_user U ON C.id_user = U.id LEFT OUTER JOIN $table_alliances A ON A.id = U.id_alliance ORDER BY C.$export DESC LIMIT $plage_fin OFFSET $plage_debut;");
$bdd->deconnexion();
$nbres = $bdd->num_rows;
$j = ($pageClassement-1)*$nbppage;
$TEMP_classement = array();
for ($i=0; $i<$nbres; $i++) {
$j++;
$TEMP_classement[] = array($j, $data[$i]['pseudo'], $data[$i]['race'], $data[$i]['tag'], $data[$i]['nom'], separerNombres($data[$i][$export]));
}
$template->assign('places', $TEMP_classement);
}
/*
if (isset($_GET['t']) && $_GET['t'] == '1')
{
$bdd->connexion();
$result = $bdd->query("SELECT tag, nbr_membres, ".$export.", points_".$export."_by_members FROM classement_alliances ORDER BY $export DESC LIMIT $pageClassementN, $nbppage;");
$result = $bdd->query("SELECT tag, nbr_membres, ".$export.", points_".$export."_by_members FROM classement_alliances ORDER BY $export DESC LIMIT $pageClassementN OFFSET $nbppage;");
$bdd->deconnexion();
$nbres = $bdd->num_rows;
@ -58,28 +108,5 @@ if (isset($_GET['t']) && $_GET['t'] == '1')
$template->assign('places', $TEMP_classement);
}
else
{
$bdd->connexion();
$data = $bdd->query("SELECT t1.pseudo, t1.$export FROM classement AS t1 ORDER BY t1.$export DESC LIMIT $pageClassementN, $nbppage;");
$nbres = $bdd->num_rows;
$TEMP_classement = array();
$j = ($pageClassement-1)*$nbppage;
$template->assign('export', $export);
for ($i=0; $i<$nbres; $i++) {
$race = $bdd->unique_query("SELECT race FROM classement WHERE pseudo = '".$data[$i]['pseudo']."';");
$result2 = $bdd->unique_query("SELECT user.id_alliance FROM user WHERE user.pseudo = '".$data[$i]['pseudo']."';");
$result3 = $bdd->unique_query("SELECT alliances.tag, alliances.nom FROM alliances WHERE alliances.id = '".$result2['id_alliance']."';");
$j++;
$TEMP_classement[] = array($j, $data[$i]['pseudo'], $race['race'], $result3['tag'], $result3['nom'],separerNombres($data[$i][$export]));
}
$bdd->deconnexion();
$template->assign('places', $TEMP_classement);
}
*/
?>

View file

@ -21,7 +21,7 @@ if (!empty($_POST['objet']) && !empty($_POST['nom']) && !empty($_POST['message']
$bdd->escape($util);
if ($bdd->unique_query("SELECT pseudo FROM $table_user WHERE pseudo = '$util';")) {
$pseudo = $queryUser["pseudo"];
$bdd->query("INSERT INTO $table_mail VALUES(NULL, '1', '$util', '$pseudo', '$objet', '$message', '$time');");
$bdd->query("INSERT INTO $table_mail (destinataire, expediteur, sujet, contenu, temps) VALUES('$util', '$pseudo', '$objet', '$message', '$time');");
}
else {
$bdd->deconnexion();

View file

@ -248,7 +248,6 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
$contenu_cristal = $_POST['cristal']; $bdd->escape($contenu_cristal); $plan_cristal = $queryPlanete['cristal'] - $contenu_cristal;
$contenu_hydrogene = $_POST['hydrogene']; $bdd->escape($contenu_hydrogene); $plan_hydrogene = $queryPlanete['hydrogene'] - $contenu_hydrogene - $conso;
$contenu_max = $sess->values['flcontenu'];
//if ( && ( || $mission != 5)) {
if ($contenu_metal + $contenu_cristal + $contenu_hydrogene + $conso > $contenu_max && $contenu_metal + $contenu_cristal + $contenu_hydrogene != 0) {
$template->assign('message','Vous ne pouvez pas embarquer autant de ressources, les cales débordent.');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 3500);</script>');
@ -275,7 +274,7 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
$tactiqueEN = 0;
}
$bdd->query("INSERT INTO $table_flottes (id_user, mission, start_time, start_galaxie, start_ss, start_position, end_time, end_galaxie, end_ss, end_position, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, contenu_max, nb_vais, $reqb tactiqueAT, tactiqueEN, nom) VALUES ('$id_user', '$mission', '$start_time', '$start_galaxie', '$start_ss', '$start_pos', '$end_time', '$end_galaxie', '$end_ss', '$end_pos', '$vitesse', '$contenu_metal', '$contenu_cristal', '$contenu_hydrogene', '$contenu_max', '$nbVais', $req'$tactiqueAT', '$tactiqueEN', '$nom');");
$bdd->query("INSERT INTO $table_flottes (id_user, mission, start_time, start_galaxie, start_ss, start_position, end_time, end_galaxie, end_ss, end_position, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, contenu_max, nb_vais, $reqb tactiqueAT, tactiqueEN, nom) VALUES ($id_user, '$mission', '$start_time', '$start_galaxie', '$start_ss', '$start_pos', '$end_time', '$end_galaxie', '$end_ss', '$end_pos', '$vitesse', '$contenu_metal', '$contenu_cristal', '$contenu_hydrogene', '$contenu_max', '$nbVais', $req'$tactiqueAT', '$tactiqueEN', '$nom');");
$bdd->query("UPDATE $table_planete SET $reqPlan, metal = '$plan_metal', cristal = '$plan_cristal', hydrogene = '$plan_hydrogene' WHERE id = '$idPlan' LIMIT 1 ;");
$bdd->deconnexion();
@ -360,7 +359,7 @@ elseif (!empty($_POST['v1']) || !empty($_POST['v2']) || !empty($_POST['v3']) ||
$page = 'flotte2';
$template->assign('scripth', '<script src="js/prototype.js" type="text/javascript"></script>');
$template->assign('script', '<script type="text/javascript">document.getElementById(\'nom\').focus();</script><script src="js/flotte.js" type="text/javascript"></script>');
$template->assign('favoris', '<script type="text/javascript">document.getElementById(\'nom\').focus();</script><script src="js/flotte.js" type="text/javascript"></script>');
}
elseif (!empty($_GET['n'])) {
$idN = ceil($_GET['n']);
@ -462,7 +461,7 @@ else {
$trez = $queryUser["informatique"] + 1;
if ($nbr < $trez) $template->assign('action', '<input class="submit" type="submit" value="OK" />');
else $template->assign('action', '<span class="lack">Nombre de flottes maximum simultaniées atteint</span>');
else $template->assign('action', '<span class="lack">Nombre de flottes maximum simultanées atteint</span>');
$template->assign('nbflotte', $nbr);
$template->assign('nbflottemax', $trez);

View file

@ -0,0 +1,5 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'gestion';
$titre = 'Gestion';
?>

View file

@ -4,6 +4,12 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
$sess->values['connected'] = FALSE;
$sess->close();
header('Location: ./');
exit;
if (!empty($HB_login)) {
header('Location: '.$_SERVER["REQUEST_URI"]);
exit;
}
else {
header('Location: ./');
exit;
}
?>

View file

@ -1,6 +1,5 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
require_once(_FCORE."hb_game/Class/class.phpmailer.php");
$page = 'options';
$titre = 'Options';
$template->assign('page',$page);
@ -74,24 +73,7 @@ if (isset($_GET['chg']) && $_GET['chg'] == 'mdp') {
$bdd->query("UPDATE user SET mdpNOUV = '$password' WHERE id = '$id_user'");
$bdd->deconnexion();
//On envoie le mail de confirmation
$mail = new PHPmailer();
$mail->SetLanguage('fr', _FCORE."hb_game/Class/");
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->Host='s-fr.com';
$mail->From='no-reply@halo-battle.s-fr.com';
$mail->FromName='Halo-Battle';
$mail->SMTPAuth=true;
$mail->Username='no-reply@halo-battle.s-fr.com';
$mail->Password='hD3e2nXu';
$mail->AddAddress($mailUtil);
$mail->AddReplyTo('no-reply@halo-battle.s-fr.com');
$mail->Subject='Halo-Battle :: Activation de votre nouveau mot de passe';
$mail->Body='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Halo-Battle :: Activation de votre nouveau mot de passe</title></head><body><p>Bonjour '.trouvNom($id_user).',<br />Vous recevez ce mail suite &agrave; votre demande de changement de mot de passe. Ce dernier entrera en vigueur une fois que vous aurez valider ce changement en cliquant via ce lien :<br /><a href="http://'.$_SERVER['HTTP_HOST'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'">http://'.$_SERVER['HTTP_HOST'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'</a><br />Notez que pour que le mot de passe soit chang&eacute;, il faut que vous soyer connect&eacute; sur votre compte.<br /><br />A bient&ocirc;t dans Halo-Battle,<br />Le staff</p></body></html>';
if(!$mail->Send()){ //Teste si le return code est ok.
if(!send_mail($mailUtil, 'Halo-Battle :: Activation de votre nouveau mot de passe', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Halo-Battle :: Activation de votre nouveau mot de passe</title></head><body><p>Bonjour '.trouvNom($id_user).',<br />Vous recevez ce mail suite &agrave; votre demande de changement de mot de passe. Ce dernier entrera en vigueur une fois que vous aurez valider ce changement en cliquant via ce lien :<br /><a href="http://'.$_SERVER['HTTP_HOST'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'">http://'.$_SERVER['HTTP_HOST'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'</a><br />Notez que pour que le mot de passe soit chang&eacute;, il faut que vous soyer connect&eacute; sur votre compte.<br /><br />A bient&ocirc;t dans Halo-Battle,<br />Le staff</p></body></html>')){ //Teste si le return code est ok.
$template->assign('message','Erreur lors de l\'envoie du courriel de confirmation !<br /><br /><small><i>'.$mail->ErrorInfo.'</i></small><br /><br />Si le probl&egrave;me perciste, <a href="mailto:technique@halo-battle.s-fr.com">contactez un administrateur</a>.');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');
@ -149,23 +131,7 @@ elseif (isset($_GET['chg']) && $_GET['chg'] == 'mail') {
$bdd->deconnexion();
//On envoie le mail de confirmation
$mail = new PHPmailer();
$mail->SetLanguage('fr', _FCORE."hb_game/Class/");
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->Host='s-fr.com';
$mail->From='no-reply@halo-battle.s-fr.com';
$mail->FromName='Halo-Battle';
$mail->SMTPAuth=true;
$mail->Username='no-reply@halo-battle.s-fr.com';
$mail->Password='hD3e2nXu';
$mail->AddAddress($Nmail);
$mail->AddReplyTo('no-reply@halo-battle.s-fr.com');
$mail->Subject='Halo-Battle :: Activation de votre nouvelle adresse &eacute;lectronique';
$mail->Body='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Halo-Battle :: Activation de votre nouvelle adresse &eacute;lectronique</title></head><body><p>Bonjour,<br />Vous recevez ce mail suite &agrave; votre demande de changement d\'adresse &eacute;lectronique. Cette derni&egrave;re entrera en vigueur une fois que vous aurez valider ce changement en cliquant via ce lien :<br /><a href="http://'.$_SERVER['HTTP_HOST'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'">http://'.$_SERVER['HTTP_HOST'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'</a><br />Notez que pour que l\'adresse soit chang&eacute;e, il faut que vous soyer connect&eacute; sur votre compte.<br /><br />A bient&ocirc;t dans Halo-Battle,<br />Le staff</p></body></html>';
if(!$mail->Send()){ //Teste si le return code est ok.
if(!send_mail($Nmail, 'Halo-Battle :: Activation de votre nouvelle adresse &eacute;lectronique', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Halo-Battle :: Activation de votre nouvelle adresse &eacute;lectronique</title></head><body><p>Bonjour,<br />Vous recevez ce mail suite &agrave; votre demande de changement d\'adresse &eacute;lectronique. Cette derni&egrave;re entrera en vigueur une fois que vous aurez valider ce changement en cliquant via ce lien :<br /><a href="http://'.$_SERVER['HTTP_HOST'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'">http://'.$_SERVER['HTTP_HOST'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'</a><br />Notez que pour que l\'adresse soit chang&eacute;e, il faut que vous soyer connect&eacute; sur votre compte.<br /><br />A bient&ocirc;t dans Halo-Battle,<br />Le staff</p></body></html>')){ //Teste si le return code est ok.
$template->assign('message','Erreur lors de l\'envoie du courriel de confirmation !<br /><br /><small><i>'.$mail->ErrorInfo.'</i></small><br /><br />Si le probl&egrave;me perciste, <a href="mailto:technique@halo-battle.s-fr.com">contactez un administrateur</a>.');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');

View file

@ -56,23 +56,7 @@ if (isset($_POST['HB_pseudo']) && isset($_POST['HB_mail']) && isset($_POST['HB_c
$bdd->unique_query("UPDATE $table_user SET mdpNOUV = '$passNOUV' WHERE pseudo = '$HB_pseudo';");
$bdd->deconnexion();
$mail = new PHPmailer();
$mail->SetLanguage('fr', _FCORE."hb_game/Class/");
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->Host='s-fr.com';
$mail->From='no-reply@halo-battle.s-fr.com';
$mail->FromName='Halo-Battle';
$mail->SMTPAuth=true;
$mail->Username='no-reply@halo-battle.s-fr.com';
$mail->Password='hD3e2nXu';
$mail->AddAddress($HB_mail);
$mail->AddReplyTo('no-reply@halo-battle.s-fr.com');
$mail->Subject='Halo-Battle :: Reinitialisation du mot de passe';
$mail->Body='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Halo-Battle :: R&eacute;initialisation du mot de passe</title></head><body><p>Bonjour '.$HB_pseudo.',<br />Vous recevez ce mail suite &agrave; votre demande de r&eacute;initialisation de mot de passe. Pour confirmer votre r&eacute;initialisation de mot de passe et ainsi pouvoir de nouveau acc&eacute;der au jeu, cliquez sur le lien ci-apr&egrave;s :<br /><a href="http://'.$_SERVER['HTTP_HOST'].'?p=oubliemdp&amp;i='.$passNOUV.'&amp;n='.$HB_pseudo.'">http://'.$_SERVER['HTTP_HOST'].'?p=oubliemdp&amp;i='.$passNOUV.'&amp;n='.$HB_pseudo.'</a><br /><br />Votre nouveau mot de passe est : '.$code.'<br /><br />A bient&ocirc;t dans Halo-Battle,<br />Le staff</p></body></html>';
if(!$mail->Send()){ //Teste si le return code est ok.
if(!send_mail($HB_mail, 'Halo-Battle :: Reinitialisation du mot de passe', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Halo-Battle :: R&eacute;initialisation du mot de passe</title></head><body><p>Bonjour '.$HB_pseudo.',<br />Vous recevez ce mail suite &agrave; votre demande de r&eacute;initialisation de mot de passe. Pour confirmer votre r&eacute;initialisation de mot de passe et ainsi pouvoir de nouveau acc&eacute;der au jeu, cliquez sur le lien ci-apr&egrave;s :<br /><a href="http://'.$_SERVER['HTTP_HOST'].'?p=oubliemdp&amp;i='.$passNOUV.'&amp;n='.$HB_pseudo.'">http://'.$_SERVER['HTTP_HOST'].'?p=oubliemdp&amp;i='.$passNOUV.'&amp;n='.$HB_pseudo.'</a><br /><br />Votre nouveau mot de passe est : '.$code.'<br /><br />A bient&ocirc;t dans Halo-Battle,<br />Le staff</p></body></html>')){ //Teste si le return code est ok.
$template->assign('message','Erreur lors de l\'envoie du courriel de confirmation !<br /><br /><small><i>'.$mail->ErrorInfo.'</i></small><br /><br />Si le problème perciste, <a href="mailto:technique@halo-battle.s-fr.com">contactez un administrateur</a>.');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');

View file

@ -14,10 +14,17 @@ if (isset($_POST['planete'])) {
$template->display('game/erreur.tpl');
exit;
}
elseif (ereg('staf', strtolower($nouvNom)) && $sess->values['auth_level'] < 4) {
$template->assign('message','Vous devez faire parti du staff pour afficher le nom "staff" dans le nom de votre planète !');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=rename";\', 2500);</script>');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');
exit;
}
else {
$bdd->connexion();
$bdd->escape($nouvNom);
$bdd->unique_query("UPDATE $table_planete SET nom_planete = '$nouvNom' WHERE id_user = '$id_user' AND id = '$id_plan'");
$bdd->unique_query("UPDATE $table_planete SET nom_planete = '$nouvNom' WHERE id_user = '$id_user' AND id = '$id_plan';");
$bdd->deconnexion();
$template->assign('message','Le nom de votre planète a été modifié avec succès.');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=accueil";\', 2500);</script>');
@ -26,7 +33,7 @@ if (isset($_POST['planete'])) {
exit;
}
}
elseif(isset($_GET['a']) && $_GET['a'] == $sess->values['abandon'] && !empty($id_plan)) {
elseif(isset($_GET['a']) && isset($_GET['i']) && $_GET['a'] == $sess->values['abandon'] && !empty($id_plan) && $id_plan == $_GET['i']) {
$galaxie = $queryPlanete["galaxie"]; $ss = $queryPlanete["ss"]; $position = $queryPlanete["position"];
$bdd->connexion();
$bdd->query("DELETE FROM $table_planete WHERE id_user = '$id_user' AND id = '$id_plan' AND galaxie = '$galaxie' AND ss = '$ss' AND position = '$position' LIMIT 1;");

View file

@ -11,47 +11,49 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
'Les Elites constituent l\'ossature des arm&eacute;es covenantes. Excellents soldats, tacticiens &eacute;m&eacute;rites et disciplin&eacute;s, combattants agressifs, ils repr&eacute;sentent la principale force des covenants. Plus rapides, plus forts et plus r&eacute;sistants que les humains, ils combattent en groupes restreints et dirigent souvent des escouades de Grunts. La couleur de leur armure indique leur rang.',
'Le sniper est une classe des jackals. Excellents tireurs de nature, les Jackals qui se sont sp&eacute;cialis&eacute;s dans ce domaine b&eacute;n&eacute;ficient d\'un rang plus &eacute;lev&eacute; que leurs cong&eacute;n&egrave;res. Ils sont tr&egrave;s destructeurs de loin mais assez peu de pr&egrave;s. Ils ne poss&egrave;dent cependant pas de bouclier de protection comme leurs fr&egrave;res.',
'Les Hunters sont des ennemis incroyablement dangereux qui sont d&eacute;ploy&eacute;s plus comme du mat&eacute;riel que comme des soldats. Ils sont utilis&eacute;s pour des t&acirc;ches de d&eacute;molitions ou de d&eacute;fense lourde et se battent toujours par deux. Ces cr&eacute;atures massives portent une armure quasiment imp&eacute;n&eacute;trable et une arme &agrave; combustible redoutable au combat.',
'Les m&eacute;decins sont sur le champ de bataille pour aider les soldats bless&eacute;s par des tirs lors des affrontements. Ils peuvent r&eacute;duire le nombre de morts lorsqu\'ils sont bien utilis&eacute;s, et donc peuvent peut être changer lissue de la bataille.',
'Les m&eacute;decins sont sur le champ de bataille pour aider les soldats bless&eacute;s par des tirs lors des affrontements. Ils peuvent r&eacute;duire le nombre de morts lorsqu\'ils sont bien utilis&eacute;s, et donc peuvent peut être changer l\'issue de la bataille.',
'Les ing&eacute;nieurs, appel&eacute;s Huragok en langage covenant, forment la seule unit&eacute; non-combattante connue des forces covenantes. Celle-ci r&eacute;pare vos unit&eacute;s et v&eacute;hicules sur le champ de bataille ; plus vous en recrutez, plus vos unit&eacute;s et v&eacute;hicules au sol auront une chance de survivre.',
'Moins bien connus que les Elites, les Brutes combattent en groupes et sont physiquement plus forts que leurs cong&eacute;n&egrave;res. Les Brutes d&eacute;montrent les mêmes aptitudes au combat que les Elites et leur nombre s\'est consid&eacute;rablement accru depuis le d&eacute;but du conflit. Ils portent une arme balistique explosive &agrave; laquelle est fix&eacute;e une baïonnette.');
$casernea = array('grunt(s)','jackal(s)','drone(s)','&eacute;lite(s)','sniper(s)','hunter(s)','m&eacute;decin(s)','ing&eacute;nieur(s)','brute(s)');
$casernei = array('grunt1.jpg','jackal.jpg','94990342wb4.jpg','98004530fx3.jpg','88091275ja8.jpg','hunter1.jpg','81770345oo4.jpg','88218731ts1.jpg','72188202fg9.jpg');
$batimend = array('purificateur_m','purificateur_c','ionisateur','centrale_s','centrale_fusion','oeil','recherches','chantier_terrestre','???','caserne','silo','centre_info');
$batimeni = array('purificateurdemtalhb3.jpg','cristaloo3.png','powersupplycoviejq1.jpg','solaire.jpg','sanstitrevi7.jpg','oeilduprophetewj6.jpg','covielabocn5.jpg','chantierterrestrehg1.jpg','sanstitretruecolor09zn6.jpg','caserncov0ry.jpg','stockagebasement1cs10bl.jpg','ordianteur_hologramme.jpg');
$batimeni = array('batimentcovieux4.jpg','cristaloo3.png','powersupplycoviejq1.jpg','solaire.jpg','sanstitrevi7.jpg','oeilduprophetewj6.jpg','covielabocn5.jpg','chantierterrestrehg1.jpg','sanstitretruecolor09zn6.jpg','caserncov0ry.jpg','stockagebasement1cs10bl.jpg','ordianteur_hologramme.jpg');
$batiment = array('Purificateur de m&eacute;tal','Purificateur de cristal','Ionisateur','Centrale solaire','Centrale de fusion','Oeil des proph&egrave;tes','Centre de recherches','Chantier terrestre','Chantier spatial',0/*'Caserne'*/,'Entrep&ocirc;t','Centrale informatique');
$batimede = array( 'Le purificateur de m&eacute;tal vous fournit les mati&egrave;res premi&egrave;res pour la construction de vos infrastructures et de vos unit&eacute;s. Plus vous d&eacute;velopperez vos purificateurs, plus ils produiront de ressources. Les purificateurs les plus d&eacute;velopp&eacute;s ont aussi besoin de plus d\'&eacute;nergie.',
'Le purificateur de cristal vous fournit les ressources pour vos installations &eacute;lectroniques et pour les alliages. Le purificateur de cristal consomme deux fois plus d\'&eacute;nergie que celui de m&eacute;tal. Tous les vaisseaux et b&acirc;timents ont besoin de cristal pour leur bouclier ou encore leurs composants &eacute;lectroniques. La production augmente avec le d&eacute;veloppement de lusine.',
'Le purificateur de cristal vous fournit les ressources pour vos installations &eacute;lectroniques et pour les alliages. Le purificateur de cristal consomme deux fois plus d\'&eacute;nergie que celui de m&eacute;tal. Tous les vaisseaux et b&acirc;timents ont besoin de cristal pour leur bouclier ou encore leurs composants &eacute;lectroniques. La production augmente avec le d&eacute;veloppement de l\'usine.',
'L\'ionisateur utilise des ions n&eacute;gatifs et positifs d\'hydrog&egrave;ne pour cr&eacute;er une source conventionnelle de courant stable, servant &agrave; alimenter les b&acirc;timents covenants qui n&eacute;cessitent une arriv&eacute;e massive de cette "ressource" pour actionner les divers &eacute;l&eacute;ments mat&eacute;riels des contr&ocirc;les. La centrale de fusion &agrave; besoin de beaucoup d\'ions pour fonctionner.',
'Pour assurer l\'approvisionnement des purificateurs, des centrales solaires sont n&eacute;cessaires. Plus ces installations sont d&eacute;velopp&eacute;es, plus vous obtiendrez d&eacute;nergie pour vos purificateurs. Les centrales solaires sont la base de l\'approvisionnement pour votre plan&egrave;te en &eacute;nergie. Elles sont compos&eacute;es dun recueilleur sur le haut de sa structure qui capte en grandes quantit&eacute;s l&eacute;nergie solaire.',
'La centrale &agrave; fusion vous permet de cr&eacute;er l&eacute;nergie n&eacute;cessaire &agrave; vos purificateurs. Elles est constitu&eacute; dun r&eacute;acteur &agrave; fusion qui en tournant produit de l&eacute;nergie. Sa production reste nettement inf&eacute;rieure &agrave; celle dune centrale solaire.',
'Les grands proph&egrave;tes ont partag&eacute; leur savoir pour construire ces structures qui permettent de rep&eacute;rer les &eacute;l&eacute;ments sapprochants de votre plan&egrave;te. Le syst&egrave;me est constitu&eacute; de deux grands arcs qui envoient des signaux &eacute;lectriques dans lespace et captent ceux qui reviennent pr&eacute;sageant ainsi larriv&eacute;e dun vaisseau.',
'Le centre de recherches, l\'un des b&acirc;timents les plus importants de votre colonie, vous permet de vous accaparer des technologies aliens aujourdhui disparues ou des technologies en cours de d&eacute;veloppement dans dautres factions. Le niveau du centre d&eacute;termine la vitesse de la recherche. Chaque plan&egrave;te que vous coloniserez devra être &eacute;quip&eacute;e dun centre d\'&eacute;tude des artefacts et des technologies.',
'Le chantier terrestre vous permet de construire tous les v&eacute;hicules atmosph&eacute;riques du type ghosts, spectres ou autres. Il permet ainsi &agrave; vos arm&eacute;es dacc&eacute;der plus rapidement &agrave; un endroit et davoir un avantage avec larmement de ces v&eacute;hicules.',
'Ce b&acirc;timent permet la cr&eacute;ation de toutes vos unit&eacute;s spatiales ou volantes. La force des covenants a souvent &eacute;t&eacute; due &agrave; ses grandes avanc&eacute;es technologiques en mati&egrave;re da&eacute;ronautique. Un grand chantier spatial permet de cr&eacute;er des unit&eacute;s de plus en plus fortes et de surcroît de les cr&eacute;er de plus en plus rapidement.',
'Le Temple de la Guerre vous permet de cr&eacute;er l&eacute;lite des forces dinfanterie. Des soldats y sont fanatis&eacute;s puis entraîn&eacute;s au maniement des armes et &agrave; la strat&eacute;gie militaire. Plus vous d&eacute;veloppez le temple, plus la vitesse de production sera rapide.',
'Les ressources qui ne sont pas encore trait&eacute;es sont mises en stock dans ces entrep&ocirc;ts g&eacute;ants. Un entrep&ocirc;t plus grand permet le stockage d\'une plus grande quantit&eacute; de ressources. Lorsque lentrep&ocirc;t est plein, l\'extraction est stopp&eacute;e. Il est grandement conseill&eacute; de d&eacute;velopper ce genre dinfrastructure.',
'Pour assurer l\'approvisionnement des purificateurs, des centrales solaires sont n&eacute;cessaires. Plus ces installations sont d&eacute;velopp&eacute;es, plus vous obtiendrez d\'&eacute;nergie pour vos purificateurs. Les centrales solaires sont la base de l\'approvisionnement pour votre plan&egrave;te en &eacute;nergie. Elles sont compos&eacute;es d\'un recueilleur sur le haut de sa structure qui capte en grandes quantit&eacute;s l\'&eacute;nergie solaire.',
'La centrale &agrave; fusion vous permet de cr&eacute;er l\'&eacute;nergie n&eacute;cessaire &agrave; vos purificateurs. Elles est constitu&eacute; d\'un r&eacute;acteur &agrave; fusion qui en tournant produit de l\'&eacute;nergie. Sa production reste nettement inf&eacute;rieure &agrave; celle d\'une centrale solaire.',
'Les grands proph&egrave;tes ont partag&eacute; leur savoir pour construire ces structures qui permettent de rep&eacute;rer les &eacute;l&eacute;ments s\'approchants de votre plan&egrave;te. Le syst&egrave;me est constitu&eacute; de deux grands arcs qui envoient des signaux &eacute;lectriques dans l\'espace et captent ceux qui reviennent pr&eacute;sageant ainsi l\'arriv&eacute;e d\'un vaisseau.',
'Le centre de recherches, l\'un des b&acirc;timents les plus importants de votre colonie, vous permet de vous accaparer des technologies aliens aujourd\'hui disparues ou des technologies en cours de d&eacute;veloppement dans d\'autres factions. Le niveau du centre d&eacute;termine la vitesse de la recherche. Chaque plan&egrave;te que vous coloniserez devra être &eacute;quip&eacute;e d\'un centre d\'&eacute;tude des artefacts et des technologies.',
'Le chantier terrestre vous permet de construire tous les v&eacute;hicules atmosph&eacute;riques du type ghosts, spectres ou autres. Il permet ainsi &agrave; vos arm&eacute;es d\'acc&eacute;der plus rapidement &agrave; un endroit et d\'avoir un avantage avec l\'armement de ces v&eacute;hicules.',
'Ce b&acirc;timent permet la cr&eacute;ation de toutes vos unit&eacute;s spatiales ou volantes. La force des covenants a souvent &eacute;t&eacute; due &agrave; ses grandes avanc&eacute;es technologiques en mati&egrave;re d\'a&eacute;ronautique. Un grand chantier spatial permet de cr&eacute;er des unit&eacute;s de plus en plus fortes et de surcroît de les cr&eacute;er de plus en plus rapidement.',
'Le Temple de la Guerre vous permet de cr&eacute;er l\'&eacute;lite des forces d\'infanterie. Des soldats y sont fanatis&eacute;s puis entraîn&eacute;s au maniement des armes et &agrave; la strat&eacute;gie militaire. Plus vous d&eacute;veloppez le temple, plus la vitesse de production sera rapide.',
'Les ressources qui ne sont pas encore trait&eacute;es sont mises en stock dans ces entrep&ocirc;ts g&eacute;ants. Un entrep&ocirc;t plus grand permet le stockage d\'une plus grande quantit&eacute; de ressources. Lorsque l\'entrep&ocirc;t est plein, l\'extraction est stopp&eacute;e. Il est grandement conseill&eacute; de d&eacute;velopper ce genre d\'infrastructure.',
'La centrale informatique est le coeur de votre plan&egrave;te, le cerveau de votre territoire, analysant chaque particule d&eacute;tect&eacute;e avec grand soin. Plus votre centrale est am&eacute;lior&eacute;e, plus rapidement et ais&eacute;ment les donn&eacute;es seront trait&eacute;es.');
$technolo = array('Informatique','Detection','Armement','Bouclier','Maitrise de l\'&eacute;nergie','R&eacute;acteur &agrave; antigravit&eacute;','R&eacute;acteur &agrave; fusion','R&eacute;acteur &agrave; fusion Forerunner','M&eacute;decine','Commandement militaire',0);
$technode = array( 'Linformatique vous permet de traiter les informations de façon tr&egrave;s rapide r&eacute;duisant ainsi les temps de r&eacute;actions qui dans les combats peuvent sav&eacute;rer fatales.',
'La d&eacute;tection est cruciale pour pr&eacute;server sa flotte et ses plan&egrave;tes. D&eacute;velopper cette technologie vous permet de construire une base « œil des proph&egrave;tes » qui rep&egrave;rera les vaisseaux sapprochant de votre plan&egrave;te.',
$technolo = array('Informatique','Detection','Armement','Bouclier','Maitrise de l\'&eacute;nergie','R&eacute;acteur &agrave; antigravit&eacute;','R&eacute;acteur &agrave; fusion','R&eacute;acteur &agrave; fusion Forerunner','M&eacute;decine','Commandement militaire',0,'Cristal Mémoriel');
$technode = array( 'L\'informatique vous permet de traiter les informations de façon tr&egrave;s rapide r&eacute;duisant ainsi les temps de r&eacute;action qui, dans les combats, peut s\'av&eacute;rer fatal.',
'La d&eacute;tection est cruciale pour pr&eacute;server sa flotte et ses plan&egrave;tes. D&eacute;velopper cette technologie vous permet de construire une base « œil des proph&egrave;tes » qui rep&egrave;rera les vaisseaux s\'approchant de votre plan&egrave;te.',
'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat d&eacute;muni face aux assauts f&eacute;roces adverses ? Cette technologie vous permettra de rechercher de nouveaux syst&egrave;mes d\'armements afin de rendre vos outils de guerre plus pr&eacute;cis et mortels.',
'Le bouclier est un champ de force qui entoure vos vaisseaux et les prot&egrave;ge. Ainsi il permet &agrave; vos vaisseaux de tenir plus longtemps face aux missiles adverses, ceci s\'av&eacute;rant peut être d&eacute;cisif dans lissue de la bataille.',
'Le bouclier est un champ de force qui entoure vos vaisseaux et les prot&egrave;ge. Ainsi il permet &agrave; vos vaisseaux de tenir plus longtemps face aux missiles adverses, ceci s\'av&eacute;rant peut être d&eacute;cisif dans l\'issue de la bataille.',
'L\'&eacute;nergie est la base de tout. Sans &eacute;nergie, pas de voyages stellaires ni même de quoi faire marcher vos installations. C\'est pourquoi l\'&eacute;tude de nouvelles façons de produire de l\'&eacute;nergie est vitale pour vos plan&egrave;tes et vaisseaux ; vos chercheurs vous permettront &eacute;galement d\'acc&eacute;der &agrave; de nouveaux types d\'&eacute;nergies, beaucoup plus int&eacute;ressants.',
'Les r&eacute;acteurs &agrave; antigravit&eacute; sont les moteurs basiques covenant. Ils utilisent une technologie complexe projetant des particules quantiques cr&eacute;ant un champ gravitationnel inverse annulant ainsi la gravit&eacute; pr&eacute;sente. Le principe fonctionne &eacute;galement dans l\'espace puisque l\'absence de gravit&eacute; dans l\'espace, sans compter les &eacute;toiles et les autres anomalies spatiales, permet une projection plus puissante du champ.',
'Apr&egrave;s la combustion, voici la fusion. Ce type de r&eacute;acteur est beaucoup plus puissant que la combustion utilis&eacute;e depuis d&eacute;j&agrave; des centaines d\'ann&eacute;es. Il g&eacute;n&egrave;re une &eacute;nergie cin&eacute;tique de grande envergure. Aucun dirigeant politique d&eacute;sirant voyager dans le cosmos ne pourrait sen passer.',
'Les covenants ont d&eacute;couvert danciens r&eacute;acteurs &agrave; fusion utilisant la technologie dhyperpropulsion Forerunner. Cette technologie, beaucoup plus puissante que le r&eacute;acteur conventionnel au Plasma, autorise des sauts dans le sous-espace ultra pr&eacute;cis. Ce type de r&eacute;acteur est le plus cher mais aussi le plus rapide et puissant de toute la flotte covenante.',
'La m&eacute;decine vous permet davoir moins de pertes au combat et ainsi davoir une force de frappe qui r&eacute;siste plus longtemps. Au lieu de laisser mourir les soldats bless&eacute;s, le m&eacute;decin les soigne pour les remettre sur pied et les rendre de nouveau aptes au combat.',
'En tant que g&eacute;n&eacute;ral, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en mati&egrave;re de strat&eacute;gie, vous montrer toujours plus rus&eacute; que votre impitoyable adversaire, aussi feriez-vous bien d\'&eacute;tudier de nouvelles tactiques de combat pour vous assurer une franche victoire.');
$technoli = array('informatique1.jpg','detection.jpg','sanstitretruecolor04no6.jpg','boucliervaiseaucovenantey4.jpg','energie.jpg','reacteurantigravyd1.jpg','reacteur_f.jpg','reacteurfusionforerunnewu0.jpg','medecine.JPG','commandement.jpg');
'Apr&egrave;s la combustion, voici la fusion. Ce type de r&eacute;acteur est beaucoup plus puissant que la combustion utilis&eacute;e depuis d&eacute;j&agrave; des centaines d\'ann&eacute;es. Il g&eacute;n&egrave;re une &eacute;nergie cin&eacute;tique de grande envergure. Aucun dirigeant politique d&eacute;sirant voyager dans le cosmos ne pourrait s\'en passer.',
'Les covenants ont d&eacute;couvert d\'anciens r&eacute;acteurs &agrave; fusion utilisant la technologie d\'hyperpropulsion Forerunner. Cette technologie, beaucoup plus puissante que le r&eacute;acteur conventionnel au Plasma, autorise des sauts dans le sous-espace ultra pr&eacute;cis. Ce type de r&eacute;acteur est le plus cher mais aussi le plus rapide et puissant de toute la flotte covenante.',
'La m&eacute;decine vous permet d\'avoir moins de pertes au combat et ainsi d\'avoir une force de frappe qui r&eacute;siste plus longtemps. Au lieu de laisser mourir les soldats bless&eacute;s, le m&eacute;decin les soigne pour les remettre sur pied et les rendre de nouveau aptes au combat.',
'En tant que g&eacute;n&eacute;ral, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en mati&egrave;re de strat&eacute;gie, vous montrer toujours plus rus&eacute; que votre impitoyable adversaire, aussi feriez-vous bien d\'&eacute;tudier de nouvelles tactiques de combat pour vous assurer une franche victoire.',
'',
'Le cristal mémoriel a longtemps été une technologie très poussée et courrement utilisée par les anciens. Toutefois ce savoir s\'est peu à peu dissipé et ceci vous limite dans la gestion de vos informations. Heureusement, il vous est possible de le retrouver en développant cette technologie. Chaque évolution de cette technologie vous permet de rajouter une unité supplémentaire dans votre file d\'attente.');
$technoli = array('informatique1.jpg','detection.jpg','sanstitretruecolor04no6.jpg','boucliervaiseaucovenantey4.jpg','ernergieforruner.jpg','reacteurantigravyd1.jpg','reacteur_f.jpg','39969905fullew4.jpg','medecine.JPG','commandement.jpg','','../covenant_na.jpg');
$nomvaisa = array('cargos de classe Inquisitor','grand(s) transporteur(s)','vaisseau(x) de colonisation','sonde(s)','recycleur(s)','s&eacute;raphin(s)','fr&eacute;gate(s)','croiseur(s) de classe CCS','croiseur(s) de classe Reverence','porte-vaisseaux','station(s) orbitale','super(s) porte-vaisseaux');
$nomvaisi = array('cargosparabola.jpg','cargosladen.jpg','coviecolobv3.jpg','sonde_despionnage1.jpg','charognard.jpg','chasseurlourd7id.jpg','croiseur8er.jpg','vaisseauuu0.jpg','vaisseaudebataille9na.jpg','pv.jpg','stationorbitalezt7.jpg','citecovenant.jpg');
$nomvaisi = array('cargo2pb6.jpg','sanstitre2copiegw9.jpg','colocopiers4.jpg','sonde_despionnage1.jpg','charognard.jpg','chasseurlourd7id.jpg','contactharvestbynameleszk3.jpg','vaisseauuu0.jpg','vaisseaudebataille9na.jpg','pv.jpg','stationorbitalezt7.jpg','citecovenant.jpg');
$nomvaisn = array('Cargos de classe Inquisitor','Cargos de classe Interdictor','Vaisseau de colonisation de classe Returning','Sonde de reconnaissance de classe Perception','Charognard','S&eacute;raphin','Fr&eacute;gate','Croiseur de classe CCS','Croiseur de classe Reverence','Porte vaisseaux','Station orbitale covenant','Super porte vaisseaux');
$nomvaisd = array( 'Les cargos Inquisitor sont la base du transport de troupes et de ressources covenantes, capables de transporter un grand nombre de ressources sur une grande distance. Pratiquement sans armement, le cargo est sans d&eacute;fense et n&eacute;cessite une d&eacute;fense rapproch&eacute;e pour les trajets de grande distance.',
'Les cargos Interdictor sont une &eacute;volution du transport de classe Inquisitor. Ayant une capacit&eacute; de transport nettement sup&eacute;rieure &agrave; sa version pr&eacute;c&eacute;dente. Ce transport, quoique plus r&eacute;cent et disposant d\'un plus grand fret, dispose du même genre de d&eacute;fense que le mod&egrave;le ant&eacute;rieur, une escorte est donc fortement recommand&eacute;e lors de l\'utilisation de celui-ci.',
'Tout comme les humains, les covenants ont besoins d\'espace pour &eacute;tendre leur empire et c\'est pourquoi ces vaisseaux ont &eacute;t&eacute; pens&eacute;s et conçus. Capable de transformer la nature même d\'une plan&egrave;te en tr&egrave;s peu de temps, ce vaisseau est essentiel au d&eacute;veloppement de la soci&eacute;t&eacute; covenante.',
'Cette sonde de reconnaissance covenante est largement utilis&eacute;e lorsqu\'il est trop dangereux d\'envoyer un vaisseau. Sa fonction consiste &agrave; rassembler des donn&eacute;es sur les vaisseaux ou encore sur une plan&egrave;te dans un syst&egrave;me plan&eacute;taire.',
'Chaque bataille am&egrave;ne des pertes des 2 c&ocirc;t&eacute;s, et ce vaisseau est conçu pour en tirer tous les b&eacute;n&eacute;fices. Le Charognard, en retrait de la flotte principale, ramasse ce qu\'il reste des vaisseaux d&eacute;truits et les ram&egrave;ne &agrave; sa plan&egrave;te d\'origine où ces "d&eacute;chets" pourront être utilis&eacute;s pour produire des mati&egrave;res premi&egrave;res.',
'Le plus puissant et probablement le plus craint de tous les vaisseaux Covenants. Le S&eacute;raphin est le principal vaisseau offensif dans lespace et peut être employ&eacute; comme bombardier a&eacute;rien. Le S&eacute;raphin est d\'environ trois fois la taille d\'un Banshee, il poss&egrave;de plusieurs canons de plasma qu\'il utilise lors des engagements a&eacute;riens pour &eacute;liminer des opposants de type LongsWord et P&eacute;lican.',
'Le plus puissant et probablement le plus craint de tous les vaisseaux Covenants. Le S&eacute;raphin est le principal vaisseau offensif dans l\'espace et peut être employ&eacute; comme bombardier a&eacute;rien. Le S&eacute;raphin est d\'environ trois fois la taille d\'un Banshee, il poss&egrave;de plusieurs canons de plasma qu\'il utilise lors des engagements a&eacute;riens pour &eacute;liminer des opposants de type LongsWord et P&eacute;lican.',
'La fr&eacute;gate covenante est un vaisseau de tonnage moyen composant majoritairement les flottes habituelles. Équip&eacute;e de lasers &agrave; impulsion et de lanceurs de torpilles au plasma lat&eacute;raux, elle poss&egrave;de ainsi une puissance de feu raisonnable. Sa coque est aussi prot&eacute;g&eacute;e par un bouclier &eacute;nerg&eacute;tique la rendant beaucoup plus difficile &agrave; d&eacute;truire.',
'Ce vaisseau redoutable et titanesque s&egrave;me sans le moindre doute la terreur chez l\'ennemi. Arm&eacute; d\'un bout &agrave; l\'autre de lasers &agrave; impulsion, de torpilles au plasma et de bien d\'autres armes, ce croiseur est une arme extraordinaire &agrave; ne jamais sous estimer.',
'Un des plus grands vaisseaux de combat covenant, mesurant 3000 m&egrave;tres. Équip&eacute; de deux canons &agrave; projection &eacute;nerg&eacute;tique et de sept lanceurs de torpilles, il est d\'une puissance extraordinaire. Le seul probl&egrave;me r&eacute;side dans le fait que son &eacute;quipement demande une capacit&eacute; d\'&eacute;nergie ph&eacute;nom&eacute;nale.',
@ -60,19 +62,19 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
'Le vaisseau ultime de la flotte covenante, long de plus de 5400 m&egrave;tres. Ce vaisseau est capable de transporter des quantit&eacute;s de chasseurs hors du commun. Arm&eacute; de projecteurs &eacute;nerg&eacute;tique et de laser &agrave; impulsion, ce vaisseau est le plus puissant apr&egrave;s la station spatiale.');
$nomterra = array('banshee(s)','spirit(s)','phantom','boarding craft','ghost(s)','shadow','spectre(s)','apparition(s)','shade','strong shade','tourelle(s) &agrave; barreau de combustible','canon(s) &agrave; plasma','lanceur(s) de torpilles plasma');
$nomterrn = array('Banshees', 'Spirit', 'Phantom', 'Boarding craft', 'Ghost', 'Shadow', 'Spectre', 'Apparition', 'Shade', 'Strong shade', 'Tourelle &agrave; barreau de combustible', 'Canon &agrave; plasma', 'Lanceur de torpilles plasma');
$nomterri = array('bansheeqp0.jpg', 'spirit1.jpg', 'phantomfu2.jpg', 'boardingcraft.jpg', 'ghostic1.jpg', 'shadow.jpg', 'spectre.jpg', 'wraith.jpg', 'shade.jpg', 'strongshade.jpg', 'tourellebarreau.jpg', 'tourelle.jpg', 'lanceur_torpilles.jpg');
$nomterri = array('bansheeqp0.jpg', 'spirit1.jpg', 'phantomfu2.jpg', 'boardingcraft.jpg', 'ghostic1.jpg', 'shadow.jpg', 'spectre.jpg', 'wraith.jpg', 'shade.jpg', 'defcovie.jpg', 'tourellebarreau.jpg', 'tourelle.jpg', 'lanceur_torpilles.jpg');
$nomterde = array( 'Rapide et maniable, le Banshee est un formidable v&eacute;hicule d\'assaut a&eacute;rien, efficacement blind&eacute; contre les armes &agrave; feu l&eacute;g&egrave;res mais ne r&eacute;sistant cependant pas aux armes plus lourdes. Le canon &agrave; combustible dont il est &eacute;quip&eacute; en fait un bombardier dangereux tout autant qu\'un chasseur rapide. Le Banshee a la possibilit&eacute; de faire des tonneaux et des vrilles, ce qui serait impossible pour des v&eacute;hicules &agrave; l\'a&eacute;rodynamique conventionnelle.',
'Le spirit est une navette de transport de troupes terrestre. De capacit&eacute; moyenne, il peut transporter un petit contingent arm&eacute; dans les zones les plus repouss&eacute;es des plan&egrave;tes. Le spirit est &eacute;quip&eacute; d\'une tourelle de type shade de puissance moyenne, qui permet de maintenir les troupes ennemis &agrave; distance jusqu\'&agrave; ce que le largage des troupes soit effectu&eacute;.<br />Malheureusement, un manque d\'espace empêche l\'installation de g&eacute;n&eacute;rateur &eacute;nerg&eacute;tique plus puissant qui pourrait supporter des boucliers standards ou même de faible intensit&eacute;.',
'Le Phantom est un vaisseau beaucoup plus fiable que le vaisseau de d&eacute;barquement « Spirit ». Il poss&egrave;de trois tourelles plasma particuli&egrave;rement puissantes et peut laisser tomber ses occupants &agrave; terre via un ascenseur gravitationnel sans devoir se poser. Le Phantom a un blindage beaucoup plus r&eacute;sistant que son pr&eacute;d&eacute;cesseur, une puissance de feu accrue et peut transporter tout type d&eacute;quipage comme des hunters.<br />Le Phantom est assez nouveau dans l\'arsenal Covenant mais est rapidement devenu une crainte car son bombardement de plasma peut &eacute;liminer un bon nombre de marines.',
'Le Phantom est un vaisseau beaucoup plus fiable que le vaisseau de d&eacute;barquement « Spirit ». Il poss&egrave;de trois tourelles plasma particuli&egrave;rement puissantes et peut laisser tomber ses occupants &agrave; terre via un ascenseur gravitationnel sans devoir se poser. Le Phantom a un blindage beaucoup plus r&eacute;sistant que son pr&eacute;d&eacute;cesseur, une puissance de feu accrue et peut transporter tout type d\'&eacute;quipage comme des hunters.<br />Le Phantom est assez nouveau dans l\'arsenal Covenant mais est rapidement devenu une crainte car son bombardement de plasma peut &eacute;liminer un bon nombre de marines.',
'~#DESCRIPTION MANQUANTE#~ Boarding craft',
'Le ghost est un v&eacute;hicule de reconnaissance et d\'attaque rapide d&eacute;ploy&eacute;e par les Covenants dans tout combat terrestre. Cet engin, tr&egrave;s souvent pilot&eacute; par les Elites, est tr&egrave;s maniable. Il est capable de tirer des doubles d&eacute;charges de plasma surchauff&eacute;es d\'une puissance de 100-250 kW. Le ghost peut &eacute;galement effectuer des pointes de vitesse soutenues.',
'Le Shadow est le principal moyen de transport terrestre des troupes covenantes. Ce v&eacute;hicule peut accueillir un pilote, un artilleur et jusqu\'&agrave; huit passagers en fonction du type de Covenants qui monte &agrave; bord. Il est en outre &eacute;quip&eacute; pour transporter des Elites, des Brutes, des Grunts ou des Jackals. Si le Shadow est &eacute;quip&eacute; d\'un canon &agrave; plasma, sa vocation reste le d&eacute;ploiement de troupes.',
'Le Spectre est un transport multi troupes blind&eacute; de petite taille. Quoique relativement lent, il est tout &agrave; fait maniable et se meut avec aisance dans les espaces confin&eacute;s. Ses principales faiblesses &eacute;tant son manque de vitesse et d\'acc&eacute;l&eacute;ration, ses occupants demeurent tout de même relativement expos&eacute;s. Le canon &agrave; plasma mont&eacute; &agrave; l\'arri&egrave;re repr&eacute;sente un grand danger pour l\'ennemi et le v&eacute;hicule offre par ailleurs diverses positions de tir.',
'Lent, massif et constituant une cible de taille, ce v&eacute;hicule n\'en demeure pas moins le blind&eacute; covenant le plus destructeur. Ce g&eacute;ant de m&eacute;tal est bien prot&eacute;g&eacute;. Le tir de couverture qu\'il peut effectuer gr&acirc;ce &agrave; ses mortiers &agrave; plasma redoutables en fait un ennemi incroyablement dangereux. Le fait qu\'il soit pilot&eacute; par une seule personne qui contr&ocirc;le le v&eacute;hicule et le syst&egrave;me d\'armement limite quelque peu son champ de manoeuvre.',
'Les tourelles shades sont des canons stationnaires &eacute;nerg&eacute;tiques covenant compos&eacute;s de deux parties, la premi&egrave;re &eacute;tant une base stable &agrave; trois pieds pour la stabilit&eacute; de lappareil, la deuxi&egrave;me, un si&egrave;ge où le canon est fix&eacute; retenu par un champ gravitationnel artificiel. Ce canon lorsquil tire, envoie 3 « &eacute;clairs » relativement lents et defficacit&eacute; moyenne.',
'Cette tourelle est une version am&eacute;lior&eacute;e de la shade standard. Dans les modifications de la tourelle, le syst&egrave;me dacc&eacute;l&eacute;ration magn&eacute;tique a &eacute;t&eacute; r&eacute;vis&eacute; pour le rendre plus performant, aboutissant &agrave; des rayons plus rapides. Également, un bouclier a &eacute;t&eacute; ajout&eacute; &agrave; lavant, prot&eacute;geant ainsi lutilisateur des attaques aux armes &agrave; projectiles de petit et moyen calibre pendant une p&eacute;riode de quelques secondes lors de feux nourris.',
'Les tourelles shades sont des canons stationnaires &eacute;nerg&eacute;tiques covenant compos&eacute;s de deux parties, la premi&egrave;re &eacute;tant une base stable &agrave; trois pieds pour la stabilit&eacute; de l\'appareil, la deuxi&egrave;me, un si&egrave;ge où le canon est fix&eacute; retenu par un champ gravitationnel artificiel. Ce canon lorsqu\'il tire, envoie 3 « &eacute;clairs » relativement lents et d\'efficacit&eacute; moyenne.',
'Cette tourelle est une version am&eacute;lior&eacute;e de la shade standard. Dans les modifications de la tourelle, le syst&egrave;me d\'acc&eacute;l&eacute;ration magn&eacute;tique a &eacute;t&eacute; r&eacute;vis&eacute; pour le rendre plus performant, aboutissant &agrave; des rayons plus rapides. Également, un bouclier a &eacute;t&eacute; ajout&eacute; &agrave; l\'avant, prot&eacute;geant ainsi l\'utilisateur des attaques aux armes &agrave; projectiles de petit et moyen calibre pendant une p&eacute;riode de quelques secondes lors de feux nourris.',
'La tourelle &agrave; barreau de combustible est une version fixe de ceux des hunters avec un syst&egrave;me de vis&eacute;e am&eacute;lior&eacute; et de condensateur ionique permettent de tirer trois rafales &agrave; la suite sans surcharger les relais du g&eacute;n&eacute;rateur. De puissance moyenne, elle est capable de d&eacute;truire facilement des warthogs et autres v&eacute;hicules l&eacute;gers avec une facilit&eacute; hors norme.',
'Le canon &agrave; plasma na pas besoin de canonnier pour tirer puisque &eacute;quip&eacute; dun syst&egrave;me de vis&eacute;e automatis&eacute;, il utilise une technologie dintelligence artificielle rudimentaire pour ensuite envoyer un projectile de plasma surchauff&eacute; &agrave; haute vitesse carbonisant tout sur son passage.',
'Le canon &agrave; plasma n\'a pas besoin de canonnier pour tirer puisque &eacute;quip&eacute; d\'un syst&egrave;me de vis&eacute;e automatis&eacute;, il utilise une technologie d\'intelligence artificielle rudimentaire pour ensuite envoyer un projectile de plasma surchauff&eacute; &agrave; haute vitesse carbonisant tout sur son passage.',
'Utilisant un principe similaire de la tourelle &agrave; plasma, le lanceur de torpilles plasma utilise un condensateur de mati&egrave;re pour condenser le flux de plasma surchauff&eacute; en une masse de destruction pure. Ce syst&egrave;me est le syst&egrave;me de d&eacute;fense terrestre le plus &eacute;volu&eacute; jamais construit. Son d&eacute;faut majeur reste sa cadence de tire lente, limitant sa d&eacute;fense face &agrave; de multiples adversaires.');
}
elseif ($auth_level >= 6 && md5($race) == '34c19b21bd4a3dda389e767d32fe9779') {
@ -95,25 +97,25 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
$batimede = array( 'Le g&eacute;n&eacute;rateur de m&eacute;tal vous fournit les mati&egrave;res premi&egrave;res pour la construction de vos infrastructures et de vos unit&eacute;s. Plus vous d&eacute;velopperez vos g&eacute;n&eacute;rateurs, plus uls vous rapportera. Les g&eacute;n&eacute;rateurs plus d&eacute;velopp&eacute;s ont aussi besoin de plus d\'&eacute;nergie.',
'Le g&eacute;n&eacute;rateur de cristal vous fourni les ressources pour vos installations &eacute;lectroniques et pour les alliages. Le g&eacute;n&eacute;rateur consomme deux fois plus d\'&eacute;nergie que celui du m&eacute;tal. Tous les vaisseaux et b&acirc;timents ont besoin de cristal pour leur bouclier ou encore leur composant &eacute;lectronique. La production augmente avec le d&eacute;veloppement du g&eacute;n&eacute;rateur ainsi que sa consommation.',
'L\'hydrog&egrave;ne n\'est pas directement disponible dans la nature. On doit le produire : par electrolyse de l\'eau ce qui consiste &agrave; faire passer un courant &eacute;lectrique dans de l\'eau pour que les mol&eacute;cules se s&eacute;parent et forme du dihydrog&egrave;ne. Mais cette technique utilise de trop grande quantit&eacute;e d\'&eacute;nergie.',
'Pour assurer l\'approvisionnement des g&eacute;n&eacute;rateurs, des g&eacute;n&eacute;rateurs &eacute;nergie g&eacute;antes sont n&eacute;cessaires. Plus ces installations sont d&eacute;velopp&eacute;es, plus vous obtiendrez d&eacute;nergie pour vos g&eacute;n&eacute;rateurs. Les g&eacute;n&eacute;rateurs d\'&eacute;nergies sont la base de l\'approvisionnement pour votre plan&egrave;te en &eacute;nergie.',
'Pour assurer l\'approvisionnement des g&eacute;n&eacute;rateurs, des g&eacute;n&eacute;rateurs &eacute;nergie g&eacute;antes sont n&eacute;cessaires. Plus ces installations sont d&eacute;velopp&eacute;es, plus vous obtiendrez d\'&eacute;nergie pour vos g&eacute;n&eacute;rateurs. Les g&eacute;n&eacute;rateurs d\'&eacute;nergies sont la base de l\'approvisionnement pour votre plan&egrave;te en &eacute;nergie.',
0,
0,
'Le centre de recherche est n&eacute;cessaire pour d&eacute;velopper de nouvelles technologies. Le niveau du centre d&eacute;termine la vitesse de la recherche. Chaque plan&egrave;te que vous coloniserez devra être &eacute;quip&eacute;e dun centre de recherche.',
'Le centre de recherche est n&eacute;cessaire pour d&eacute;velopper de nouvelles technologies. Le niveau du centre d&eacute;termine la vitesse de la recherche. Chaque plan&egrave;te que vous coloniserez devra être &eacute;quip&eacute;e d\'un centre de recherche.',
'~#DESCRIPTION MANQUANTE#~ Chantier terrestre',
'Le chantier spatial vous permet de construire des vaisseaux, de linfanterie et vos installations de d&eacute;fense. Plus le chantier est grand, plus la construction de vaisseaux, le recrutement de linfanterie et la cr&eacute;ation dinstallations de d&eacute;fense est rapide.',
'Le chantier spatial vous permet de construire des vaisseaux, de l\'infanterie et vos installations de d&eacute;fense. Plus le chantier est grand, plus la construction de vaisseaux, le recrutement de l\'infanterie et la cr&eacute;ation d\'installations de d&eacute;fense est rapide.',
0,
'Les ressources qui ne sont pas encore trait&eacute;es sont mises en stock dans ces entrep&ocirc;ts g&eacute;ants. Un entrep&ocirc;t plus grand permet le stockage d\'une plus grande quantit&eacute; de ressources. Lorsque lentrep&ocirc;t est plein, l\'extraction est stopp&eacute;e. Il est grandement conseill&eacute; de d&eacute;velopper ce genre dinfrastructure.',
'Les ressources qui ne sont pas encore trait&eacute;es sont mises en stock dans ces entrep&ocirc;ts g&eacute;ants. Un entrep&ocirc;t plus grand permet le stockage d\'une plus grande quantit&eacute; de ressources. Lorsque l\'entrep&ocirc;t est plein, l\'extraction est stopp&eacute;e. Il est grandement conseill&eacute; de d&eacute;velopper ce genre d\'infrastructure.',
0);
$technolo = array('Informatique','Detection','Armement','Bouclier','Maitrise de l\'&eacute;nergie','R&eacute;acteur &agrave; antigravit&eacute;','R&eacute;acteur &agrave; fusion','R&eacute;acteur &agrave; fusion Forruner','M&eacute;decine','Commandement militaire',0);
$technode = array( 'Linformatique vous permet de traiter les informations de façon tr&egrave;s rapide r&eacute;duisant ainsi les temps de r&eacute;actions qui dans les combats peuvent sav&eacute;rer fatales.',
'La d&eacute;tection est cruciale pour pr&eacute;server sa flotte et ses plan&egrave;tes. D&eacute;velopper cette technologie vous permet de construire une base « œil des proph&egrave;tes » qui rep&egrave;rera les vaisseaux sapprochant de votre plan&egrave;te.',
$technode = array( 'L\'informatique vous permet de traiter les informations de façon tr&egrave;s rapide r&eacute;duisant ainsi les temps de r&eacute;actions qui dans les combats peuvent s\'av&eacute;rer fatales.',
'La d&eacute;tection est cruciale pour pr&eacute;server sa flotte et ses plan&egrave;tes. D&eacute;velopper cette technologie vous permet de construire une base « œil des proph&egrave;tes » qui rep&egrave;rera les vaisseaux s\'approchant de votre plan&egrave;te.',
'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat d&eacute;muni face aux assauts f&eacute;roces adverses ? Cette technologie vous permettra de rechercher de nouveaux syst&egrave;mes d\'armements afin de rendre vos outils de guerre plus pr&eacute;cis et mortels.',
'Le bouclier est un champ de force qui entoure vos vaisseaux et les prot&egrave;ge. Ainsi il permet &agrave; vos vaisseaux de tenir plus longtemps face aux missiles adverses, ceci s\'av&eacute;rant peut être d&eacute;cisif dans lissue de la bataille.',
'Le bouclier est un champ de force qui entoure vos vaisseaux et les prot&egrave;ge. Ainsi il permet &agrave; vos vaisseaux de tenir plus longtemps face aux missiles adverses, ceci s\'av&eacute;rant peut être d&eacute;cisif dans l\'issue de la bataille.',
'L\'&eacute;nergie est la base de tout. Sans &eacute;nergie, pas de voyages stellaires ni même de quoi faire marcher vos installations. C\'est pourquoi l\'&eacute;tude de nouvelles façons de produire de l\'&eacute;nergie est vitale pour vos plan&egrave;tes et vaisseaux ; vos chercheurs vous permettront &eacute;galement d\'acc&eacute;der &agrave; de nouveaux types d\'&eacute;nergies, beaucoup plus int&eacute;ressants.',
'Les r&eacute;acteurs &agrave; antigravit&eacute; sont les moteurs basiques covenant. Ils utilisent une technologie complexe projetant des particules quantiques cr&eacute;ant un champ gravitationnel inverse annulant ainsi la gravit&eacute; pr&eacute;sente. Le principe fonctionne &eacute;galement dans l\'espace puisque l\'absence de gravit&eacute; dans l\'espace, sans compter les &eacute;toiles et les autres anomalies spatiales, permet une projection plus puissante du champ.',
'Apr&egrave;s la combustion, voici la fusion. Ce type de r&eacute;acteur est beaucoup plus puissant que la combustion utilis&eacute;e depuis d&eacute;j&agrave; des centaines d\'ann&eacute;es. Il g&eacute;n&egrave;re une &eacute;nergie cin&eacute;tique de grande envergure. Aucun dirigeant politique d&eacute;sirant voyager dans le cosmos ne pourrait sen passer.',
'Les covenants ont d&eacute;couvert danciens r&eacute;acteurs &agrave; fusion utilisant la technologie dhyperpropulsion Forruner. Cette technologie, beaucoup plus puissante que le r&eacute;acteur conventionnel au Plasma, autorise des sauts dans le sous-espace ultra pr&eacute;cis. Ce type de r&eacute;acteur est le plus cher mais aussi le plus rapide et puissant de toute la flotte covenante.',
'La m&eacute;decine vous permet davoir moins de pertes au combat et ainsi davoir une force de frappe qui r&eacute;siste plus longtemps. Au lieu de laisser mourir les soldats bless&eacute;s, le m&eacute;decin les soigne pour les remettre sur pied et les rendre de nouveau aptes au combat.',
'Apr&egrave;s la combustion, voici la fusion. Ce type de r&eacute;acteur est beaucoup plus puissant que la combustion utilis&eacute;e depuis d&eacute;j&agrave; des centaines d\'ann&eacute;es. Il g&eacute;n&egrave;re une &eacute;nergie cin&eacute;tique de grande envergure. Aucun dirigeant politique d&eacute;sirant voyager dans le cosmos ne pourrait s\'en passer.',
'Les covenants ont d&eacute;couvert d\'anciens r&eacute;acteurs &agrave; fusion utilisant la technologie d\'hyperpropulsion Forruner. Cette technologie, beaucoup plus puissante que le r&eacute;acteur conventionnel au Plasma, autorise des sauts dans le sous-espace ultra pr&eacute;cis. Ce type de r&eacute;acteur est le plus cher mais aussi le plus rapide et puissant de toute la flotte covenante.',
'La m&eacute;decine vous permet d\'avoir moins de pertes au combat et ainsi d\'avoir une force de frappe qui r&eacute;siste plus longtemps. Au lieu de laisser mourir les soldats bless&eacute;s, le m&eacute;decin les soigne pour les remettre sur pied et les rendre de nouveau aptes au combat.',
'En tant que g&eacute;n&eacute;ral, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en mati&egrave;re de strat&eacute;gie, vous montrer toujours plus rus&eacute; que votre impitoyable adversaire, aussi feriez-vous bien d\'&eacute;tudier de nouvelles tactiques de combat pour vous assurer une franche victoire.');
$technoli = array('informatique1.jpg','detection.jpg','sanstitretruecolor04no6.jpg','boucliervaiseaucovenantey4.jpg','energie.jpg','reacteurantigravyd1.jpg','reacteur_f.jpg','reacteurfusionforerunnewu0.jpg','medecine.JPG','commandement.jpg');
$nomvaisa = array('cargos de classe Inquisitor','grand(s) transporteur(s)','vaisseau(x) de colonisation','sonde(s)','recycleur(s)','s&eacute;raphin(s)','fr&eacute;gate(s)','croiseur(s) de classe CCS','croiseur(s) de classe Reverence','porte-vaisseaux','station(s) orbitale','super(s) porte-vaisseaux');
@ -157,7 +159,7 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
'Les TCAO sont des soldats d\'assauts largu&eacute;s depuis l\'espace directement sur les champs de batailles gr&acirc;ce &agrave; des modules sp&eacute;ciaux. Ces soldats sont surentraîn&eacute;s et tr&egrave;s chevronn&eacute;s, risquant leur vie &agrave; chaque instant en raison des sauts orbitaux qui font atteindre une chaleur extrême dans le module.',
'Les snipers sont dot&eacute;s de fusils de pr&eacute;cision SA 2M capable de descendre un covenant &agrave; plusieurs centaines de m&egrave;tres gr&acirc;ce &agrave; son zoom maximum de 10x. Grande port&eacute;e de tir mais &agrave; courte port&eacute;e, ils sont inutiles.',
'Les spartans sont les unit&eacute;s d\'infanterie militaires les plus &eacute;volu&eacute;es militairement du CSNU mais &eacute;galement des Covenants. Ils sont &eacute;quip&eacute;s d\'une armure de type Mjolnir am&eacute;liorant leurs capacit&eacute;s de combat, d&eacute;j&agrave; exceptionnelles gr&acirc;ce &agrave; leur entraînement militaire depuis leur plus jeune &acirc;ge, ainsi qu\'&agrave; leurs implants cybern&eacute;tiques, les rendants d\'une grande efficacit&eacute; in&eacute;gal&eacute;e au sein de l\'infanterie.',
'Les m&eacute;decins sont sur le champ de bataille pour aider les soldats bless&eacute;s par des tirs lors des affrontements. Ils peuvent r&eacute;duire le nombre de morts lorsqu\'ils sont bien utilis&eacute;s et ainsi peut être changer lissue de la bataille.',
'Les m&eacute;decins sont sur le champ de bataille pour aider les soldats bless&eacute;s par des tirs lors des affrontements. Ils peuvent r&eacute;duire le nombre de morts lorsqu\'ils sont bien utilis&eacute;s et ainsi peut être changer l\'issue de la bataille.',
'Les ing&eacute;nieurs sont l&agrave; pour r&eacute;parer vos v&eacute;hicules endommag&eacute;s lors des affrontements. Ils peuvent r&eacute;duire le nombre de vos pertes de v&eacute;hicules lorsqu\'ils sont bien utilis&eacute;s.',
'Les soldats exo squelettiques poss&egrave;dent des armures de combat tr&egrave;s r&eacute;sistantes et d\'une puissance &eacute;norme mais contre balanc&eacute;e par une faible autonomie d\'&eacute;nergie, une mobilit&eacute; faible et d\'une discr&eacute;tion auditive aussi silencieuse qu\'un char d\'assaut dans un champs de mines lotus.');
$casernea = array('marine(s)','fusiller(s)','grenadier(s)','T.C.A.O.','sniper(s)','spartan(s)','m&eacute;decin(s)','ing&eacute;nieur(s)','soldat(s) exo squellette');
@ -166,18 +168,18 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
$batimede = array( 'Cette usine traite tous les m&eacute;taux recueillis afin de produire du titanium-A ou diff&eacute;rents types d\'alliages de qualit&eacute; pour vos diff&eacute;rentes constructions plan&eacute;taires ou spatiales. Chaque niveau augmente la production de m&eacute;tal.',
'L\'usine de cristal filtre les d&eacute;chets r&eacute;colt&eacute;s avec les cristaux. Une fois s&eacute;par&eacute;s du reste ils sont class&eacute;s par qualit&eacute; par une quantit&eacute; d\'appareils de haute technologie. Plus les cristaux sont purs plus ceux-ci peuvent être transform&eacute;s en unit&eacute;s de stockage de donn&eacute;es ou en conducteurs &eacute;nerg&eacute;tiques de haute qualit&eacute;. Plus ce b&acirc;timent sera d&eacute;velopp&eacute;, plus vous pourrez traiter de cristaux rapidement.',
'Ce b&acirc;timent use de l\'eau pour la d&eacute;composer et en extraire l\'hydrog&egrave;ne, la base de toutes vos productions &eacute;nerg&eacute;tiques, pour ensuite l\'acheminer dans des condensateurs ioniques afin de le rendre plus dense et par le fait même plus efficace. Chaque niveau augmente la production du synchronisateur.',
'La centrale solaire produit l&eacute;nergie n&eacute;cessaire au fonctionnement de vos usines. Elle fonctionne &agrave; partir dune technologie Forruner qui consiste &agrave; envoyer un rayon &agrave; la verticale pour capter tous les rayons du soleil qui le croise.',
'La centrale &eacute;nerg&eacute;tique fonctionne avec un principe assez d&eacute;pass&eacute;. En effet, l&eacute;nergie est produite par un r&eacute;acteur &agrave; fusion qui en tournant produit de l&eacute;nergie comme le ferait une dynamo. Bien que ce principe f&ucirc;t r&eacute;volutionnaire &agrave; l&eacute;poque, il f&ucirc;t rapidement d&eacute;pass&eacute; par la centrale solaire qui permet de produire davantage d&eacute;nergie.',
'La centrale solaire produit l\'&eacute;nergie n&eacute;cessaire au fonctionnement de vos usines. Elle fonctionne &agrave; partir d\'une technologie Forruner qui consiste &agrave; envoyer un rayon &agrave; la verticale pour capter tous les rayons du soleil qui le croise.',
'La centrale &eacute;nerg&eacute;tique fonctionne avec un principe assez d&eacute;pass&eacute;. En effet, l\'&eacute;nergie est produite par un r&eacute;acteur &agrave; fusion qui en tournant produit de l\'&eacute;nergie comme le ferait une dynamo. Bien que ce principe f&ucirc;t r&eacute;volutionnaire &agrave; l\'&eacute;poque, il f&ucirc;t rapidement d&eacute;pass&eacute; par la centrale solaire qui permet de produire d\'avantage d\'&eacute;nergie.',
'Le centre de communication est un gigantesque relai de transmission envoyant des ondes entre les différents mondes connus et répertoriés de l\'univers. Grâce à lui, vous pourrez communiquer avec d\'autres administrateurs coloniaux afin de planifier ensemble des programmes d\'actions communs. Equipé d\'un radar, il vous permet de rep&eacute;rer les mouvements des flottes ennemies.',
'Le centre de recherches est certainement l\'une des b&acirc;tisses les plus importantes que vous puissiez construire dans votre colonie. Vos chercheurs travailleront sans rel&acirc;che aucun afin de mettre au point de nouvelles technologies vous assurant supr&eacute;matie et victoire sur les champs de bataille. Chaque niveau d&eacute;vellop&eacute; augmente la vitesse de recherche de vos technologies.',
'Le chantier terrestre vous permet de construire tous les v&eacute;hicules atmosph&eacute;rique du type warthog ou scorpion. Il permet ainsi &agrave; vos troupes dacc&eacute;der plus rapidement &agrave; un endroit et davoir un avantage avec larmement de ces v&eacute;hicules.',
'Le chantier spatial permet de construire v&ocirc;tre flotte de vaisseaux spatiaux. G&eacute;n&eacute;ralement &agrave; la limite de latmosph&egrave;re dune plan&egrave;te il ne peut cependant se d&eacute;placer et doit imp&eacute;rativement rester en orbite. Le chantier spatial, bien que ressemblant &agrave; une station spatial, ne peut être d&eacute;truit gr&acirc;ce &agrave; sa position qui lui conf&egrave;re un camouflage total.',
'Le chantier terrestre vous permet de construire tous les v&eacute;hicules atmosph&eacute;rique du type warthog ou scorpion. Il permet ainsi &agrave; vos troupes d\'acc&eacute;der plus rapidement &agrave; un endroit et d\'avoir un avantage avec l\'armement de ces v&eacute;hicules.',
'Le chantier spatial permet de construire v&ocirc;tre flotte de vaisseaux spatiaux. G&eacute;n&eacute;ralement &agrave; la limite de l\'atmosph&egrave;re d\'une plan&egrave;te il ne peut cependant se d&eacute;placer et doit imp&eacute;rativement rester en orbite. Le chantier spatial, bien que ressemblant &agrave; une station spatial, ne peut être d&eacute;truit gr&acirc;ce &agrave; sa position qui lui conf&egrave;re un camouflage total.',
'L\'acad&eacute;mie militaire forme les meilleurs officiers et sous-officiers de la galaxie. Ces hommes exp&eacute;riment&eacute;s vous aideront &agrave; choisir de meilleures strat&eacute;gies d&eacute;fensives ou offensives ou encore même &eacute;conomiques face aux diff&eacute;rentes situations qui vous seront impos&eacute;es. Plus vous augmenterez le niveau de cette structure plus vos officiers seront rapides et efficaces dans leurs t&acirc;ches.',
'Comme toutes choses, vos ressources ont besoin d\'espace pour être stock&eacute;es ; c\'est pourquoi ces &eacute;normes silos vous seront d\'une aide pr&eacute;cieuse afin d\'y renfermer une grande quantit&eacute; de mati&egrave;res premi&egrave;res pour toutes vos productions. Plus le niveau du silo est haut, plus il pourra contenir de ressources suppl&eacute;mentaires.',
'La centrale informatique est le coeur de votre plan&egrave;te, le cerveau de votre territoire, analysant chaque particule d&eacute;tect&eacute;e avec grand soin. Plus votre centrale est am&eacute;lior&eacute;e, plus rapidement et ais&eacute;ment les donn&eacute;es seront trait&eacute;es.');
$batimend = array('mine_m','mine_c','!!','centrale_s','centrale_f','radar','recherches','chantier_terrestre','???','ecole_militaire','silo','centre_info');
$batimeni = array('mine_m.jpg','mine_c.png','synchroniseur.jpg','centrale solaire.jpg','centrale electrique.jpg','baseradardl3.jpg','recherches.jpg','chantierterrestrecopybj8.jpg','chantier spatial.jpg','ecole militaire.jpg','stockage.jpg','search0yp.jpg');
$technolo = array('IA','Radar','Armement','Blindage','Maitrise de l\'&eacute;nergie','R&eacute;acteur &agrave; combustion','R&eacute;acteur &agrave; fusion','R&eacute;acteur &agrave; fusion de type II','M&eacute;decine','Tactiques de combats','Spartan');
$technolo = array('IA','Radar','Armement','Blindage','Maitrise de l\'&eacute;nergie','R&eacute;acteur &agrave; combustion','R&eacute;acteur &agrave; fusion','R&eacute;acteur &agrave; fusion de type II','M&eacute;decine','Tactiques de combats','Spartan','Base de données');
$technode = array( 'Le r&eacute;sultat absolu de l\'informatique. L\'IA ou Intelligence Artificielle est le r&eacute;sultat d\'ann&eacute;es de travail acharn&eacute; pour pouvoir en arriver &agrave; cette grande performance technique. Les IA sont des entit&eacute;s non biologiques dot&eacute;es du pouvoir de la pens&eacute;e. D&eacute;velopper cette technologie vous permettra non seulement de disposer d\'Intelligences Artificielles, mais de les rendre de plus en plus complexes, cr&eacute;atives et r&eacute;actives.',
'Ce syst&egrave;me tr&egrave;s ancien et us&eacute; par bien des militaires est utilis&eacute; pour la d&eacute;tection et l\'imagerie d\'objets faisant appel &agrave; des impulsions d\'ondes &eacute;lectromagn&eacute;tiques &agrave; haute fr&eacute;quence et sert &agrave; d&eacute;terminer la position et la distance des vaisseaux. Pour chaque niveau, vous augmenterez la puissance de cette technologie et sa pr&eacute;cision.',
'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat d&eacute;muni face aux assauts f&eacute;roces adverses ? Cette technologie vous permettra de rechercher de nouveaux syst&egrave;mes d\'armements afin de rendre vos outils de guerre plus pr&eacute;cis et mortels.',
@ -188,33 +190,34 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
'Cette technologie bas&eacute;e sur les r&eacute;acteurs Covenants utilise la force &eacute;lectromagn&eacute;tique r&eacute;sultant de l\'interaction entre un courant &eacute;lectrique et un champ magn&eacute;tique pour acc&eacute;l&eacute;rer un gaz ionis&eacute; appel&eacute; plasma. Bien plus efficace que tous les moyens de propulsions possibles, cette technologie r&eacute;volutionnaire, tr&egrave;s co&ucirc;teuse, est un moyen efficace de parcourir de grandes distances en peu de temps.',
'Depuis l\'aube des temps, chaque être vivant et pensant n\'a jamais cess&eacute; de chercher de nouvelles solutions en d&eacute;vellopant les sciences m&eacute;dicales pour tenter d\'&eacute;chapper &agrave; la mort et aux &eacute;pid&eacute;mies qui s\'abbatent sur lui. Seulement, aujourd\'hui, ce ne sont plus les maladies qui importent, mais plutot les blessures de guerre. Plus votre m&eacute;decine sera &eacute;clatante, plus vos hommes de soins connaîtront de choses pour soigner vos bless&eacute;s.',
'En tant que g&eacute;n&eacute;ral, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en mati&egrave;re de strat&eacute;gie, vous montrer toujours plus rus&eacute; que votre impitoyable adversaire, aussi feriez-vous bien d\'&eacute;tudier de nouvelles tactiques de combat pour vous assurer une franche victoire.',
'Ces formidables combattants constituent l\'&eacute;lite de vos forces terrestres. Entraîn&eacute;s au maniement des armes, aux tactiques militaires et au combat de groupe depuis la naissance, ils sont pratiquement invincibles sur les champs de bataille face aux troupes covenantes. Les Spartans ont &eacute;galement subis plusieurs s&eacute;ries de modifications biologiques afin d\'am&eacute;liorer leurs capacit&eacute;s physiques.');
$technoli = array('IA4.jpg','radar7zr.jpg','arme.png','blindage.jpg','plasma4yl.jpg','reacteuracombustion.jpg','reacteurfusiontype1al5.jpg','reacteurfusiontype2nn6.jpg','medecin1.jpg','tactique.jpg','armuremc8ij.jpg');
$nomvaisn = array('Cargos de classe Parabola','Cargos de classe Laden','Vaisseaux de colonisation de classe Odyssey','Drones despionnage de classe Clarion','Recycleurs de classe Minotaur','C709 Longsword Interceptor','Fr&eacute;gate','Croiseurs de classe Halcyon','Croiseurs de classe Marathon','Porte vaisseaux','Station orbitale','Super porte-vaisseaux');
'Ces formidables combattants constituent l\'&eacute;lite de vos forces terrestres. Entraîn&eacute;s au maniement des armes, aux tactiques militaires et au combat de groupe depuis la naissance, ils sont pratiquement invincibles sur les champs de bataille face aux troupes covenantes. Les Spartans ont &eacute;galement subis plusieurs s&eacute;ries de modifications biologiques afin d\'am&eacute;liorer leurs capacit&eacute;s physiques.',
'Les bases de données du CSNU enregistrent des informations de jours en jours. Toutefois il arrive que celles-ci parviennent à saturation et ne peuvent ainsi traiter qu\'un nombre limité d\'informations. Afin de résoudre ce problème, il est possible d\'améliorer la capacité de vos unités de stockage afin de gérer plus d\'informations. Chaque évolution de cette technologie vous permet de rajouter une unité supplémentaire dans votre file d\'attente.');
$technoli = array('IA4.jpg','radar7zr.jpg','arme.png','blindage.jpg','plasma4yl.jpg','reacteuracombustion.jpg','reacteurfusiontype1al5.jpg','reacteurfusiontype2nn6.jpg','medecin1.jpg','tactique.jpg','armuremc8ij.jpg','../humain_na.jpg');
$nomvaisn = array('Cargos de classe Parabola','Cargos de classe Laden','Vaisseaux de colonisation de classe Odyssey','Drones d\'espionnage de classe Clarion','Recycleurs de classe Minotaur','C709 Longsword Interceptor','Fr&eacute;gate','Croiseurs de classe Halcyon','Croiseurs de classe Marathon','Cuirassé de classe Magellan','Station orbitale','Cuirassé de classe Trafalgar');
$nomvaisi = array('csnucargoparabola2mc9.jpg','csnucargoladen2al8.jpg','colonisation.jpg','drone_clarion.jpg','recycl10.jpg','longsworduf9.jpg','frgatecopiegw1.jpg','halcyo15.jpg','qsu169.jpg','62685810.jpg','station.jpg','cuiras18.jpg');
$nomvaisd = array( 'Ces cargos de taille cons&eacute;quente peuvent transporter assez de ressources et de nourriture pour nourrir une petite ville. Ils sont rapides, tr&egrave;s manœuvrables mais peu r&eacute;sistants, ce qui est en fait des proies faciles pour les chasseurs ennemis.',
'Ces cargos de taille massive permettent le transport dune &eacute;norme quantit&eacute; de ressources. Ils sont plus r&eacute;sistants que leurs homologues de classe Parabola, mais sont n&eacute;anmoins les cibles prioritaires des chasseurs ennemis visant &agrave; faire le plus de pertes dans le camp adverse.',
'Les vaisseaux de colonisation sont de vraies minis villes volantes ; ils contiennent la majeure partie des corps détats de votre planète mère afin dêtre le plus autonome lorsque que vous colonisez de nouvelles planètes.',
'Drones extrêmement rapides et manœuvrables permettant la surveillance et lespionnage des plan&egrave;tes alentours avec un risque moins &eacute;lev&eacute; de rep&eacute;rage quavec un vaisseau furtif standard. Ils sont utilis&eacute;s lors de lespionnage de plan&egrave;tes ennemies et sont tr&egrave;s fragiles, si bien que lorsquils traversent un champ de d&eacute;bris, ils sont r&eacute;duits en de vulgaires morceaux de m&eacute;tal.',
'Ces cargos de taille massive permettent le transport d\'une &eacute;norme quantit&eacute; de ressources. Ils sont plus r&eacute;sistants que leurs homologues de classe Parabola, mais sont n&eacute;anmoins les cibles prioritaires des chasseurs ennemis visant &agrave; faire le plus de pertes dans le camp adverse.',
'Les vaisseaux de colonisation sont de vraies minis villes volantes ; ils contiennent la majeure partie des corps d\'états de votre planète mère afin d\'être le plus autonome lorsque que vous colonisez de nouvelles planètes.',
'Drones extrêmement rapides et manœuvrables permettant la surveillance et l\'espionnage des plan&egrave;tes alentours avec un risque moins &eacute;lev&eacute; de rep&eacute;rage qu\'avec un vaisseau furtif standard. Ils sont utilis&eacute;s lors de l\'espionnage de plan&egrave;tes ennemies et sont tr&egrave;s fragiles, si bien que lorsqu\'ils traversent un champ de d&eacute;bris, ils sont r&eacute;duits en de vulgaires morceaux de m&eacute;tal.',
'Les guerres sont de plus en plus nombreuses et les pertes de plus en plus grandes laissant &agrave; chaque fois des champs de d&eacute;bris immenses limitant les routes des voies commerciales. Des recycleurs ont donc &eacute;t&eacute; cr&eacute;&eacute;s afin de d&eacute;blayer ces zones et de vous faire profiter de ces ressources gratuites. Lors du voyage de retour, le recycleur transforme les d&eacute;bris pour vous les redonner sous forme de ressources primaires.',
'Vaisseau orbital et atmosph&eacute;rique lourd, apte au combat spatial, atmosph&eacute;rique, et au bombardement lourd sur des positions strat&eacute;giques. Ces vaisseaux sont capable de bombarder une vaste position adverse, gr&acirc;ce &agrave; leurs bombes au Napalm, mais sont aussi capables de cibler pr&eacute;cis&eacute;ment leurs cibles et de les d&eacute;truire gr&acirc;ce &agrave; leurs nombreux missiles air-air air-sol.',
'Cette classe de vaisseau est la plus r&eacute;pandue dans le CSNU. Ces vaisseaux sont tr&egrave;s manœuvrables du fait de leur petite taille, mais sont aussi tr&egrave;s faibles, &agrave; cause de leur blindage et de leur armement moindre. Ces vaisseaux sont peu co&ucirc;teux mais &eacute;galement peu efficaces et sont surtout utilis&eacute;s pour des patrouilles. Ils forment les &eacute;l&eacute;ments principaux des diff&eacute;rentes flottes du CSNU. ',
'Ces croiseurs sont des vaisseaux dattaque, d&eacute;pass&eacute;s technologiquement, tr&egrave;s peu r&eacute;pandus, tr&egrave;s co&ucirc;teux mais r&eacute;sistants : leur architecture interne leur permet de r&eacute;sister &agrave; de nombreux tirs de plasma. Cette architecture complexe &agrave; produire et &agrave; maintenir en &eacute;tat, en font des vaisseaux extrêmement rares et chers. Ils ont &eacute;t&eacute; tr&egrave;s r&eacute;cemment remis &agrave; neuf et am&eacute;lior&eacute;s, avec un tout nouvel armement.',
'Ces grands vaisseaux (2 fois et demie la longueur dune fr&eacute;gate), sont des descendants de la lign&eacute;e des croiseurs Halcyon. Ces vaisseaux ont une tr&egrave;s grande puissance de feu (1 CAM lourd), un fort blindage (5 m&egrave;tres 50 de Titane-A), et sont tr&egrave;s rapides. Ils sont assez peu communs, mais restent des vaisseaux dattaque tr&egrave;s redoutables : ils peuvent encaisser de nombreux tirs de plasma avant de succomber.',
'Ces immenses vaisseaux sont capables de transporter bon nombre de Longswords, dAlbatross, et tout autres types dunit&eacute;s. Ces vaisseaux leurs permettent de se d&eacute;fendre contre une &eacute;ventuelle attaque de chasseurs ennemis, mais sont &eacute;galement tr&egrave;s lourdement arm&eacute;s. Ils sont usit&eacute;s lors dattaques massives de plan&egrave;tes n&eacute;cessitant un fort appui a&eacute;rien et une tr&egrave;s grosse puissance de feu. ',
'Ces croiseurs sont des vaisseaux d\'attaque, d&eacute;pass&eacute;s technologiquement, tr&egrave;s peu r&eacute;pandus, tr&egrave;s co&ucirc;teux mais r&eacute;sistants : leur architecture interne leur permet de r&eacute;sister &agrave; de nombreux tirs de plasma. Cette architecture complexe &agrave; produire et &agrave; maintenir en &eacute;tat, en font des vaisseaux extrêmement rares et chers. Ils ont &eacute;t&eacute; tr&egrave;s r&eacute;cemment remis &agrave; neuf et am&eacute;lior&eacute;s, avec un tout nouvel armement.',
'Ces grands vaisseaux (2 fois et demie la longueur d\'une fr&eacute;gate), sont des descendants de la lign&eacute;e des croiseurs Halcyon. Ces vaisseaux ont une tr&egrave;s grande puissance de feu (1 CAM lourd), un fort blindage (5 m&egrave;tres 50 de Titane-A), et sont tr&egrave;s rapides. Ils sont assez peu communs, mais restent des vaisseaux d\'attaque tr&egrave;s redoutables : ils peuvent encaisser de nombreux tirs de plasma avant de succomber.',
'Ces immenses vaisseaux sont capables de transporter bon nombre de Longswords, d\'Albatross, et tout autres types d\'unit&eacute;s. Ces vaisseaux leurs permettent de se d&eacute;fendre contre une &eacute;ventuelle attaque de chasseurs ennemis, mais sont &eacute;galement tr&egrave;s lourdement arm&eacute;s. Ils sont usit&eacute;s lors d\'attaques massives de plan&egrave;tes n&eacute;cessitant un fort appui a&eacute;rien et une tr&egrave;s grosse puissance de feu. ',
'Les station orbitales humaines sont basées sur un même modèle : de multiples DCA légères et lourdes pour les chasseurs, des missiles ARCHERS et un CAM standard capable de pénétrer la plupart des boucliers stellaires. Cette base orbitale est très bien équipée et est considérée comme la défense principale des planètes du CSNU.',
'Ces vaisseaux sont beaucoup plus chers du fait de leur meilleur armement, blindage et importante capacit&eacute; de transport. Ces vaisseaux sont tr&egrave;s peu vus sur le terrain, leur r&ocirc;le principal est de d&eacute;ployer des Longswords afin de fournir aux vaisseaux alli&eacute;s un appui orbital. Ils font partis des plus puissants vaisseaux du CSNU. Ils sont capables de transporter bon nombre dunit&eacute;s terrestres et a&eacute;riennes.');
'Ces vaisseaux sont beaucoup plus chers du fait de leur meilleur armement, blindage et importante capacit&eacute; de transport. Ces vaisseaux sont tr&egrave;s peu vus sur le terrain, leur r&ocirc;le principal est de d&eacute;ployer des Longswords afin de fournir aux vaisseaux alli&eacute;s un appui orbital. Ils font partis des plus puissants vaisseaux du CSNU. Ils sont capables de transporter bon nombre d\'unit&eacute;s terrestres et a&eacute;riennes.');
$nomvaisa = array('cargos de classe Parabola','cargos de classe Laden','vaisseau(x) de colonisation de classe Odyssey','drone(s) d\'espionnage de classe Clarion','recycleur(s) de classe Minotaur','C709 Longsword Interceptor','Fr&eacute;gates','croiseur(s) de classe Halcyon','croiseur(s) de classe Marathon','porte vaisseaux','station(s) orbitale','super(s) porte-vaisseaux');
$nomvaisi = array('csnucargoparabola2mc9.jpg','csnucargoladen2al8.jpg','colonisation.jpg','drone_clarion.jpg','../humain_na.jpg','longsworduf9.jpg','fregatewz5.jpg','croiseurclassealcyon130om6.jpg','croiseurmarathonke3.jpg','csnuportevaisseauxgy3.jpg','station.jpg','csnusuperportevaisseauxrw4.jpg');
$nomterra = array('sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT','mitrailleuse(s) automatique M247 GP','DCA l&eacute;g&egrave;re(s)','DCA lourde(s)','canon(s) Gauss','lanceur(s) de missiles');
$nomterrn = array('Sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT','Mitrailleuse automatique M247 GP','DCA l&eacute;g&egrave;re','DCA lourde','Canon Gauss','Lanceur de missiles');
$nomterde = array( 'V&eacute;hicule &agrave; propulsion verticale permettant des attaques extrêmement rapides et destructrices gr&acirc;ce &agrave; ses six tubes lance-missiles, ses deux mitrailleuses l&eacute;g&egrave;res, et sa mitrailleuse lourde frontale. Ces vaisseaux dassaut rapide sont de v&eacute;ritables broyeurs de t&ocirc;le gr&acirc;ce &agrave; leurs 6 tubes lance-missiles et sont capables de d&eacute;truire des v&eacute;hicules et des positions fortement blind&eacute;es.',
'V&eacute;hicule a&eacute;rien de transport l&eacute;ger permettant le transport rapide de troupes &agrave; des endroits strat&eacute;giques tel un warthog ou un scorpion. Ils sont la base des renforts terrestres et permettent lacheminement de troupes et de munitions rapidement.',
'Vaisseau suborbital tr&egrave;s rapide apte tant au combat a&eacute;rien rapproch&eacute; quau bombardement cibl&eacute;. Ces bombardiers ont un pointeur laser qui leur permet de viser au mieux les cibles ennemies, qu\'elles soient au sol ou a&eacute;riennes. Ils sont n&eacute;anmoins capables de combattre en combat a&eacute;rien rapproch&eacute; gr&acirc;ce &agrave; leurs missiles thermo guid&eacute;s et sont utilis&eacute;s lors de bombardements de cibles mineures.',
'V&eacute;hicule a&eacute;rien de transport lourd permettant le transport en masse de troupes ou de v&eacute;hicules tels que des warthogs ou bien une paire de scorpions vers des zones de largage. Ces v&eacute;hicules de soutien a&eacute;rien lourd sont surtout utilis&eacute;s lors doffensives n&eacute;cessitant un d&eacute;ploiement en masse dunit&eacute;s blind&eacute;es et de munitions au plus pr&egrave;s des lignes adverses.',
'V&eacute;hicule dattaque l&eacute;ger permettant des assauts rapides et efficaces, ainsi que le transport l&eacute;ger de troupes. Ces v&eacute;hicules sont la base des v&eacute;hicules terrestres du CSNU.',
'V&eacute;hicule l&eacute;ger &eacute;quip&eacute; dun canon &agrave; acc&eacute;l&eacute;ration magn&eacute;tique (CAM), tr&egrave;s efficace contre du personnel, des v&eacute;hicules moyennement blind&eacute;s, ou bien contre des v&eacute;hicules a&eacute;riens l&eacute;gers. Les Warthog M12G1 sont tr&egrave;s r&eacute;pandus et surtout utilis&eacute;s lors d\'offensives sur des cibles disposant dun appui a&eacute;rien ou terrestre l&eacute;ger.',
'V&eacute;hicule l&eacute;ger, arm&eacute; dun lance-missiles anti-v&eacute;hicule permettant des assauts rapides contre des v&eacute;hicules blind&eacute;s ou contre des positions fortifi&eacute;es. Ils sont surtout utilis&eacute;s en cas dattaques de postes avanc&eacute;s.',
'Tank blind&eacute; anti-v&eacute;hicules. Permet lattaque de cibles fortifi&eacute;es gr&acirc;ce &agrave; ses balles perforantes de gros calibre. Ces tanks sont utilis&eacute;s lors dassauts massifs sur des bases fortifi&eacute;es et vitales &agrave; lennemi.',
$nomterde = array( 'V&eacute;hicule &agrave; propulsion verticale permettant des attaques extrêmement rapides et destructrices gr&acirc;ce &agrave; ses six tubes lance-missiles, ses deux mitrailleuses l&eacute;g&egrave;res, et sa mitrailleuse lourde frontale. Ces vaisseaux d\'assaut rapide sont de v&eacute;ritables broyeurs de t&ocirc;le gr&acirc;ce &agrave; leurs 6 tubes lance-missiles et sont capables de d&eacute;truire des v&eacute;hicules et des positions fortement blind&eacute;es.',
'V&eacute;hicule a&eacute;rien de transport l&eacute;ger permettant le transport rapide de troupes &agrave; des endroits strat&eacute;giques tel un warthog ou un scorpion. Ils sont la base des renforts terrestres et permettent l\'acheminement de troupes et de munitions rapidement.',
'Vaisseau suborbital tr&egrave;s rapide apte tant au combat a&eacute;rien rapproch&eacute; qu\'au bombardement cibl&eacute;. Ces bombardiers ont un pointeur laser qui leur permet de viser au mieux les cibles ennemies, qu\'elles soient au sol ou a&eacute;riennes. Ils sont n&eacute;anmoins capables de combattre en combat a&eacute;rien rapproch&eacute; gr&acirc;ce &agrave; leurs missiles thermo guid&eacute;s et sont utilis&eacute;s lors de bombardements de cibles mineures.',
'V&eacute;hicule a&eacute;rien de transport lourd permettant le transport en masse de troupes ou de v&eacute;hicules tels que des warthogs ou bien une paire de scorpions vers des zones de largage. Ces v&eacute;hicules de soutien a&eacute;rien lourd sont surtout utilis&eacute;s lors d\'offensives n&eacute;cessitant un d&eacute;ploiement en masse d\'unit&eacute;s blind&eacute;es et de munitions au plus pr&egrave;s des lignes adverses.',
'V&eacute;hicule d\'attaque l&eacute;ger permettant des assauts rapides et efficaces, ainsi que le transport l&eacute;ger de troupes. Ces v&eacute;hicules sont la base des v&eacute;hicules terrestres du CSNU.',
'V&eacute;hicule l&eacute;ger &eacute;quip&eacute; d\'un canon &agrave; acc&eacute;l&eacute;ration magn&eacute;tique (CAM), tr&egrave;s efficace contre du personnel, des v&eacute;hicules moyennement blind&eacute;s, ou bien contre des v&eacute;hicules a&eacute;riens l&eacute;gers. Les Warthog M12G1 sont tr&egrave;s r&eacute;pandus et surtout utilis&eacute;s lors d\'offensives sur des cibles disposant d\'un appui a&eacute;rien ou terrestre l&eacute;ger.',
'V&eacute;hicule l&eacute;ger, arm&eacute; d\'un lance-missiles anti-v&eacute;hicule permettant des assauts rapides contre des v&eacute;hicules blind&eacute;s ou contre des positions fortifi&eacute;es. Ils sont surtout utilis&eacute;s en cas d\'attaques de postes avanc&eacute;s.',
'Tank blind&eacute; anti-v&eacute;hicules. Permet l\'attaque de cibles fortifi&eacute;es gr&acirc;ce &agrave; ses balles perforantes de gros calibre. Ces tanks sont utilis&eacute;s lors d\'assauts massifs sur des bases fortifi&eacute;es et vitales &agrave; l\'ennemi.',
'La mitrailleuse M247 est une arme de calibre moyen envoyant des balles de calibre 30 &agrave; une cadence de tir de 6 balles par seconde. G&eacute;n&eacute;ralement positionn&eacute;e dans des endroits fixes, cette tourelle, efficace contre l\'infanterie et les v&eacute;hicules l&eacute;gers de petite taille est de pr&eacute;cision moyenne suffisante pour &eacute;liminer une menace de quelques soldats covenants.',
'Les DCA l&eacute;g&egrave;res sont des canons anti-a&eacute;rien de puissance moyenne mais de cadence de tir et de calibre de munitions &agrave; tête explosive &eacute;lev&eacute;e permettant de d&eacute;truire la plupart des chasseurs l&eacute;gers avec aisance. Ce mod&egrave;le est &eacute;quip&eacute; d\'un emplacement sp&eacute;cial lui permettant de tirer &eacute;galement sur des cibles au sol.',
'Les DCA lourdes sont quasi-similaires aux l&eacute;g&egrave;res mais poss&egrave;dent tout de même une diff&eacute;rence au niveau du calibre des balles qui, plus &eacute;lev&eacute; avec une tête explosif sup&eacute;rieure est comparable &agrave; une explosion de mine lotus. Il a en contre partie une capacit&eacute; de tir plus limit&eacute;e question cadence et une quantit&eacute; de munitions moindre dans chaque chargeur.',

Binary file not shown.

BIN
onyx/hb_game/signatures/cache/4.sign vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

BIN
onyx/hb_game/signatures/cache/8..sign vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View file

@ -1,12 +1,13 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
/* //Tables MySQL
$table_alliances = $config['db_prefix'].'alliances';
$table_alliances_attente = $config['db_prefix'].'alliances_attente';
$table_alliances_chat = $config['db_prefix'].'alliances_chat';
$table_alliances_creation = $config['db_prefix'].'alliances_creation';
$table_alliances_grade = $config['db_prefix'].'alliances_grade';
$table_bourse = $config['db_prefix'].'bourse';
$table_bourse_actions = $config['db_prefix'].'bourse_actions';
$table_bug = $config['db_prefix'].'bug';
$table_classement = $config['db_prefix'].'classement';
$table_flottes = $config['db_prefix'].'flottes';
@ -22,4 +23,28 @@ $table_sessions = $config['db_prefix'].'sessions';
$table_user = $config['db_prefix'].'user';
$table_user_inscriptions = $config['db_prefix'].'user_inscriptions';
$table_version = $config['db_prefix'].'version';
*/
$table_alliances = '"public"."'.$config['db_prefix'].'alliances"';
$table_alliances_attente = '"public"."'.$config['db_prefix'].'alliances_attente"';
$table_alliances_chat = '"public"."'.$config['db_prefix'].'alliances_chat"';
$table_alliances_creation = '"public"."'.$config['db_prefix'].'alliances_creation"';
$table_alliances_grade = '"public"."'.$config['db_prefix'].'alliances_grade"';
$table_bourse = '"public"."'.$config['db_prefix'].'bourse"';
$table_bourse_actions = '"public"."'.$config['db_prefix'].'bourse_actions"';
$table_bug = '"public"."'.$config['db_prefix'].'bug"';
$table_classement = '"public"."'.$config['db_prefix'].'classement"';
$table_classement_alliances = '"public"."'.$config['db_prefix'].'classement_alliances"';
$table_flottes = '"public"."'.$config['db_prefix'].'flottes"';
$table_flottes_combats = '"public"."'.$config['db_prefix'].'flottes_combats"';
$table_infoshead = '"public"."'.$config['db_prefix'].'infoshead"';
$table_mail = '"public"."'.$config['db_prefix'].'mail"';
$table_ope_faq = '"public"."'.$config['db_prefix'].'ope_faq"';
$table_ope_mail = '"public"."'.$config['db_prefix'].'ope_mail"';
$table_ope_modele = '"public"."'.$config['db_prefix'].'ope_modele"';
$table_planete = '"public"."'.$config['db_prefix'].'planete"';
$table_registre_identification = '"public"."'.$config['db_prefix'].'registre_identification"';
$table_sessions = '"public"."'.$config['db_prefix'].'sessions"';
$table_user = '"public"."'.$config['db_prefix'].'user"';
$table_user_inscriptions = '"public"."'.$config['db_prefix'].'user_inscriptions"';
$table_version = '"public"."'.$config['db_prefix'].'version"';
?>

View file

@ -165,7 +165,7 @@ $batimentTECH = array(
array($technolo[0], 'informatique', 2)
)
);
$technoloVAR = array('informatique','detection','armement','blindage','energie_t','reacteur','reacteur_f','reacteur_ff','medecine','tactique','spartan');
$technoloVAR = array('informatique','detection','armement','blindage','energie_t','reacteur','reacteur_f','reacteur_ff','medecine','tactique','spartan','prodfile');
$technoloCALC = array(
array(
'$a = 0;',
@ -232,6 +232,12 @@ $technoloCALC = array(
'$b=ceil(pow(3,$n)*4250);',
'$c=ceil(pow(3,$n)*850);',
'$sec = ceil((5000*2*($queryUser["spartan"]+1))/pow(1.25,($queryPlanete["labo"]-8)));'
),
array(
'$a=ceil(pow(4,$n)*6200);',
'$b=ceil(pow(5,$n)*5250);',
'$c=ceil(pow(3,$n)*4550);',
'$sec = ceil(pow(3,$n)*5560/pow(1.25,($queryPlanete["labo"]-1)));'
)
);
$technoloTECH = array(
@ -274,6 +280,10 @@ $technoloTECH = array(
array($batiment[6], 'labo', 8),
array($technolo[8], 'medecine', 5),
array($technolo[0], 'informatique', 8)
),
array(
array($batiment[6], 'labo', 10),
array($technolo[0], 'informatique', 8)
)
);
$nomterrnVAR = array('vais_0','vais_1','vais_2','vais_3','vcl_1','vcl_2','vcl_3','vcl_4','def_1','def_2','def_3','def_4','def_5');

View file

@ -313,6 +313,5 @@ function no_db()
//die($config['no_db_message']);
}
header("Content-Type: text/html;charset=utf-8");
@header("Content-Type: text/html;charset=utf-8");
?>

27
onyx/logs/02-07-2008.xlog Normal file
View file

@ -0,0 +1,27 @@
[17:19:46] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [GET] [/?a=43d2467cd6cd9e9565ecf7ce019b411ec0f3306a7553b56776d2cae2e2975fa5a50862c143468de005cde6d39f400e3982b7fa3dd9003368ea61d18dfad85c6b&l=nemunaire&p=mopmop] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://accueil.halobattle.local/]
[17:19:46] MESSAGE : !! connection : array (
'a' => '43d2467cd6cd9e9565ecf7ce019b411ec0f3306a7553b56776d2cae2e2975fa5a50862c143468de005cde6d39f400e3982b7fa3dd9003368ea61d18dfad85c6b',
'l' => 'nemunaire',
'p' => 'mopmop',
'__utma' => '155506210.4054156253863705600.1211214258.1214324379.1214860298.60',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
) [127.0.0.1] [GET] [/?a=43d2467cd6cd9e9565ecf7ce019b411ec0f3306a7553b56776d2cae2e2975fa5a50862c143468de005cde6d39f400e3982b7fa3dd9003368ea61d18dfad85c6b&l=nemunaire&p=mopmop] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://accueil.halobattle.local/]
[18:05:08] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [GET] [/?a=43d2467cd6cd9e9565ecf7ce019b411ec0f3306a7553b56776d2cae2e2975fa5a50862c143468de005cde6d39f400e3982b7fa3dd9003368ea61d18dfad85c6b&l=nemunaire&p=mopmop] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://accueil.halobattle.local/]
[18:05:08] MESSAGE : !! connection : array (
'a' => '43d2467cd6cd9e9565ecf7ce019b411ec0f3306a7553b56776d2cae2e2975fa5a50862c143468de005cde6d39f400e3982b7fa3dd9003368ea61d18dfad85c6b',
'l' => 'nemunaire',
'p' => 'mopmop',
'__utma' => '155506210.4054156253863705600.1211214258.1214860298.1215011990.61',
'__utmz' => '155506210.1215011990.61.2.utmcsr=accueil.halobattle.local|utmccn=(referral)|utmcmd=referral|utmcct=/',
'__utmc' => '155506210',
'hbsession' => '0cac81d5f9c625fdb1b34a587d637285397178b8fc3fef8ce3fd05e3cd52c812',
) [127.0.0.1] [GET] [/?a=43d2467cd6cd9e9565ecf7ce019b411ec0f3306a7553b56776d2cae2e2975fa5a50862c143468de005cde6d39f400e3982b7fa3dd9003368ea61d18dfad85c6b&l=nemunaire&p=mopmop] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://accueil.halobattle.local/]
[23:38:31] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [GET] [/?a=43d2467cd6cd9e9565ecf7ce019b411ec0f3306a7553b56776d2cae2e2975fa5a50862c143468de005cde6d39f400e3982b7fa3dd9003368ea61d18dfad85c6b&l=nemunaire&p=mopmop] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://accueil.halobattle.local/]
[23:38:31] MESSAGE : !! connection : array (
'a' => '43d2467cd6cd9e9565ecf7ce019b411ec0f3306a7553b56776d2cae2e2975fa5a50862c143468de005cde6d39f400e3982b7fa3dd9003368ea61d18dfad85c6b',
'l' => 'nemunaire',
'p' => 'mopmop',
'__utma' => '155506210.4054156253863705600.1211214258.1215011990.1215014710.62',
'__utmz' => '155506210.1215014710.62.3.utmcsr=accueil.halobattle.local|utmccn=(referral)|utmcmd=referral|utmcct=/',
'__utmc' => '155506210',
) [127.0.0.1] [GET] [/?a=43d2467cd6cd9e9565ecf7ce019b411ec0f3306a7553b56776d2cae2e2975fa5a50862c143468de005cde6d39f400e3982b7fa3dd9003368ea61d18dfad85c6b&l=nemunaire&p=mopmop] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://accueil.halobattle.local/]

View file

17
onyx/logs/04-07-2008.xlog Normal file
View file

@ -0,0 +1,17 @@
[02:44:36] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { SELECT B.id, B.nom, SUM(U.nombre) AS nbactions, FLOOR(SUM(A.nombre)/B.metal) AS metal, FLOOR(SUM(A.nombre)/B.cristal) AS cristal, B.last_nombre, FLOOR(((SUM(A.nombre)/B.last_nombre)-1)*100) AS evolution FROM "public"."bourse" B INNER JOIN "public"."bourse_actions" A ON B.id = A.id_action INNER JOIN "public"."bourse_actions" U ON B.id = U.id_action AND U.id_user = 8 GROUP BY A.id_action; }. [127.0.0.1] [GET] [/?p=bourse] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[02:45:08] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { SELECT SUM(U.id) AS nombre, SUM(U.points) AS points FROM "public"."alliances" A OUTER JOIN "public"."user" U ON A.id = U.id_alliance GROUP BY U.id_alliance; }. [127.0.0.1] [GET] [/cron/classement.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[02:49:08] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { INSERT INTO (tag, nbr_membres, points) VALUES ('pom', 858, 1163372); }. [127.0.0.1] [GET] [/cron/classement.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[02:49:08] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { INSERT INTO (tag, nbr_membres, points) VALUES ('pom', 4, 697155); }. [127.0.0.1] [GET] [/cron/classement.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[02:50:38] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { SELECT U.id_alliance, SUM(U.id) AS nombre, SUM(U.points) AS points FROM "public"."user" U GROUP BY U.id_alliance JOIN "public"."alliances" A ON U.id_alliance = A.id; }. [127.0.0.1] [GET] [/cron/classement.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[02:51:39] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { SELECT U.id_alliance, SUM(U.id) AS nombre, SUM(U.points) AS points FROM "public"."user" U NATURAL JOIN "public"."alliances" A ON A.id = U.id_alliance GROUP BY U.id_alliance; }. [127.0.0.1] [GET] [/cron/classement.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[02:52:12] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { INSERT INTO "public"."classement_alliances" (tag, nbr_membres, points) VALUES ('pom', , ); }. [127.0.0.1] [GET] [/cron/classement.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[02:52:26] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { INSERT INTO "public"."classement_alliances" (tag, nbr_membres, points) VALUES ('pom', , ); }. [127.0.0.1] [GET] [/cron/classement.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[02:53:17] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { SELECT U.id_alliance, SUM(U.id) AS nombre, SUM(U.points) AS points FROM "public"."user" U UNION JOIN "public"."alliances" A ON A.id = U.id_alliance GROUP BY U.id_alliance; }. [127.0.0.1] [GET] [/cron/classement.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[02:53:36] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { SELECT U.id_alliance, SUM(U.id) AS nombre, SUM(U.points) AS points FROM "public"."user" U CROSS JOIN "public"."alliances" A ON A.id = U.id_alliance GROUP BY U.id_alliance; }. [127.0.0.1] [GET] [/cron/classement.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[02:54:27] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { SELECT A.id, SUM(U.id) AS nombre, SUM(U.points) AS points FROM "public"."user" U LEFT OUTER JOIN "public"."alliances" A ON A.id = U.id_alliance GROUP BY U.id_alliance; }. [127.0.0.1] [GET] [/cron/classement.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[02:58:54] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { INSERT INTO "public"."classement_alliances" (id_alliance, nbr_membres, points, batiments, recherches, flotte, terrestre) VALUES (0, 858, 1355.9114219114219114, 422.6340326340326340, 922.8496503496503497, 10.1958041958041958, 0.23659673659673659674); }. [127.0.0.1] [GET] [/cron/classement.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[02:58:54] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { INSERT INTO "public"."classement_alliances" (id_alliance, nbr_membres, points, batiments, recherches, flotte, terrestre) VALUES (1, 4, 174288.750000000000, 162799.500000000000, 11471.2500000000000000, 11.0000000000000000, 7.0000000000000000); }. [127.0.0.1] [GET] [/cron/classement.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[02:59:18] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { INSERT INTO "public"."classement_alliances" (id_alliance, nbr_membres, points, batiments, recherches, flottes, terrestre) VALUES (0, 858, 1355.9114219114219114, 422.6340326340326340, 922.8496503496503497, 10.1958041958041958, 0.23659673659673659674); }. [127.0.0.1] [GET] [/cron/classement.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[02:59:18] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { INSERT INTO "public"."classement_alliances" (id_alliance, nbr_membres, points, batiments, recherches, flottes, terrestre) VALUES (1, 4, 174288.750000000000, 162799.500000000000, 11471.2500000000000000, 11.0000000000000000, 7.0000000000000000); }. [127.0.0.1] [GET] [/cron/classement.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[03:00:26] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { SELECT tag, nbr_membres, points, points_points_by_members FROM classement_alliances ORDER BY points DESC LIMIT 0 OFFSET 100; }. [127.0.0.1] [GET] [/?p=classement&t=1&e=points&q=1] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/?p=classement]
[03:07:35] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { SELECT C.points, C.nbr_membres, A.tag, A.nom FROM "public"."classement_alliances" C ORDER BY C.points DESC LIMIT 100 OFFSET 0; }. [127.0.0.1] [GET] [/?p=classement&t=1&e=points&q=1] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/?p=classement]

View file

@ -0,0 +1 @@
[23:47:54] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { UPDATE "public"."planete" SET timestamp = '1215553673', metal = '157030.295887', cristal = '133412.459283', hydrogene = '3378.25651747', coeff = '0.99999998265', energie = '634', coeff_centrale_f = '0', coeff_mine_m = '0.922852983988', coeff_mine_c = '0.922852983988', coeff_mine_h = '0.922852983988' WHERE id_user = '1' AND galaxie = '9' AND ss = '35'AND position = '4' }. [127.0.0.1] [GET] [/?p=accueil] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://accueil.halobattle.local/]

View file

@ -0,0 +1 @@
[00:04:11] AVERTISSEMENT : Erreur PostGreSQL: " ", avec la requète: { SELECT F.start_galaxie, F.start_ss, F.start_position, F.start_time, F.end_time, S.nom_planete AS nom_start, E.nom_planete AS nom_end FROM "public"."flottes" F JOIN "public"."planete" S ON SHA1(CONCAT('g',F.start_galaxie,'s',F.start_ss,'p',F.start_position)) = P.hash_planete JOIN "public"."planete" E ON SHA1(CONCAT('g',F.end_galaxie,'s',F.end_ss,'p',F.end_position)) = P.hash_planete WHERE mission = 1 AND end_galaxie = 9 AND end_ss = 35 AND end_position = 4; }. [127.0.0.1] [GET] [/?p=accueil] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/?p=bugs]

10
onyx/logs/20-06-2008.xlog Normal file
View file

@ -0,0 +1,10 @@
[23:22:29] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[23:22:29] MESSAGE : !! connection : array (
'log' => '',
'HB_login' => 'nemunaire',
'HB_password' => 'mopmop',
'galaxie' => 'Alpha',
'__utma' => '155506210.4054156253863705600.1211214258.1213711792.1213735572.55',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'hbsession' => 'e5a807d7c87f1d031c1ae340ab662e6dc601f9b10532ff633851715a817467c6',
) [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]

31
onyx/logs/22-06-2008.xlog Normal file
View file

@ -0,0 +1,31 @@
[02:12:12] AVERTISSEMENT : Erreur Mysql: " You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE pseudo = 'nemunaire'' at line 1 ", avec la requète: { SELECT mdp_var FROM WHERE pseudo = 'nemunaire'; }. [127.0.0.1] [] [] [] []
[23:35:16] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[23:35:17] MESSAGE : !! connection : array (
'log' => '',
'HB_login' => 'nemunaire',
'HB_password' => 'mopmop',
'galaxie' => 'Alpha',
'__utma' => '155506210.4054156253863705600.1211214258.1213735572.1214058438.56',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'__utmc' => '155506210',
'hbsession' => '0920aba39ed489fe07dfde1b766b10a4261edfa1f52f08b53cec1207b124f3c8',
) [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[23:50:03] MESSAGE : array (
'__utma' => '155506210.4054156253863705600.1211214258.1214058438.1214170521.57',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'__utmc' => '155506210',
'hbsession' => '0920aba39ed489fe07dfde1b766b10a4261edfa1f52f08b53cec1207b124f3c8',
'__utmb' => '155506210.12.10.1214170521',
) [127.0.0.1] [GET] [/admin.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[23:53:57] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/?p=bourse]
[23:53:57] MESSAGE : !! connection : array (
'log' => '',
'HB_login' => 'nemunaire',
'HB_password' => 'mopmop',
'galaxie' => 'Alpha',
'__utma' => '155506210.4054156253863705600.1211214258.1214058438.1214170521.57',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'__utmc' => '155506210',
'hbsession' => '4ecba17e3de7c3005103480803bdd674104f75514258a09deeee2541be00317a',
'__utmb' => '155506210.19.10.1214170521',
) [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/?p=bourse]

43
onyx/logs/23-06-2008.xlog Normal file
View file

@ -0,0 +1,43 @@
[00:31:52] AVERTISSEMENT : Erreur Mysql: " Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause ", avec la requète: { SELECT B.id, SUM(A.nombre) AS nombre, B.nom, FLOOR(B.metal/100) AS metal, FLOOR(B.cristal/100) AS cristal, B.last_nombre, FLOOR((B.last_nombre/100-1)*100) AS evolution FROM bourse B INNER JOIN bourse_actions A ON B.id = A.id_action; }. [127.0.0.1] [GET] [/?p=bourse] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[00:33:43] AVERTISSEMENT : Erreur Mysql: " You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FULL OUTER JOIN bourse_actions A ON B.id = A.id_action' at line 1 ", avec la requète: { SELECT B.id, SUM(A.nombre) AS nombre, B.nom, FLOOR(B.metal/100) AS metal, FLOOR(B.cristal/100) AS cristal, B.last_nombre, FLOOR((B.last_nombre/100-1)*100) AS evolution FROM bourse B FULL OUTER JOIN bourse_actions A ON B.id = A.id_action; }. [127.0.0.1] [GET] [/?p=bourse] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[00:34:00] AVERTISSEMENT : Erreur Mysql: " You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OUTER JOIN bourse_actions A ON B.id = A.id_action' at line 1 ", avec la requète: { SELECT B.id, SUM(A.nombre) AS nombre, B.nom, FLOOR(B.metal/100) AS metal, FLOOR(B.cristal/100) AS cristal, B.last_nombre, FLOOR((B.last_nombre/100-1)*100) AS evolution FROM bourse B OUTER JOIN bourse_actions A ON B.id = A.id_action; }. [127.0.0.1] [GET] [/?p=bourse] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[00:34:25] AVERTISSEMENT : Erreur Mysql: " Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause ", avec la requète: { SELECT B.id, SUM(A.nombre) AS nombre, B.nom, FLOOR(B.metal/100) AS metal, FLOOR(B.cristal/100) AS cristal, B.last_nombre, FLOOR((B.last_nombre/100-1)*100) AS evolution FROM bourse B LEFT JOIN bourse_actions A ON B.id = A.id_action; }. [127.0.0.1] [GET] [/?p=bourse] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[00:34:37] AVERTISSEMENT : Erreur Mysql: " Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause ", avec la requète: { SELECT B.id, SUM(A.nombre) AS nombre, B.nom, FLOOR(B.metal/100) AS metal, FLOOR(B.cristal/100) AS cristal, B.last_nombre, FLOOR((B.last_nombre/100-1)*100) AS evolution FROM bourse B RIGHT JOIN bourse_actions A ON B.id = A.id_action; }. [127.0.0.1] [GET] [/?p=bourse] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[00:37:27] AVERTISSEMENT : Erreur Mysql: " Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause ", avec la requète: { SELECT B.id, SUM(A.nombre) AS nombre, B.nom, FLOOR(B.metal/100) AS metal, FLOOR(B.cristal/100) AS cristal, B.last_nombre, FLOOR((B.last_nombre/100-1)*100) AS evolution FROM bourse B JOIN bourse_actions A ON B.id = A.id_action; }. [127.0.0.1] [GET] [/?p=bourse] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[00:38:04] AVERTISSEMENT : Erreur Mysql: " Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause ", avec la requète: { SELECT B.id, SUM(A.nombre) AS nombre, B.nom, FLOOR(B.metal/100) AS metal, FLOOR(B.cristal/100) AS cristal, B.last_nombre, FLOOR((B.last_nombre/100-1)*100) AS evolution FROM bourse_actions A JOIN bourse B ON B.id = A.id_action; }. [127.0.0.1] [GET] [/?p=bourse] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[00:42:00] AVERTISSEMENT : Erreur Mysql: " Unknown column 'nombret' in 'field list' ", avec la requète: { SELECT B.id, SUM(A.nombre) AS nombret, B.nom, FLOOR(B.metal/nombret) AS metal, FLOOR(B.cristal/nombret) AS cristal, B.last_nombre, FLOOR((B.last_nombre/nombret-1)*100) AS evolution FROM bourse B JOIN bourse_actions A ON B.id = A.id_action GROUP BY A.id_action; }. [127.0.0.1] [GET] [/?p=bourse] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[00:49:01] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/?p=bourse]
[00:49:01] MESSAGE : !! connection : array (
'log' => '',
'HB_login' => 'nemunaire',
'HB_password' => 'mopmop',
'galaxie' => 'Alpha',
'__utma' => '155506210.4054156253863705600.1211214258.1214058438.1214170521.57',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'__utmc' => '155506210',
'hbsession' => 'addb545faa863634ac362818d1e7b8a590aebb9ed97d4e52785a92f0500e389e',
) [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/?p=bourse]
[01:06:21] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/?p=bourse]
[01:06:21] MESSAGE : !! connection : array (
'log' => '',
'HB_login' => 'nemunaire',
'HB_password' => 'mopmop',
'galaxie' => 'Alpha',
'__utma' => '155506210.4054156253863705600.1211214258.1214058438.1214170521.57',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'__utmc' => '155506210',
'hbsession' => '633bacd3bc2a807e4a2f4f1876855a6abf2702140e8a04ba12cc99dfe6af4c6b',
) [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/?p=bourse]
[01:16:55] AVERTISSEMENT : Erreur Mysql: " You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN bourse_actions U ON B.id = U.id_action AND U.id_user = 8' at line 1 ", avec la requète: { SELECT B.id, B.nom, FLOOR(B.metal/SUM(A.nombre)) AS metal, FLOOR(B.cristal/SUM(A.nombre)) AS cristal, B.last_nombre, FLOOR((B.last_nombre/SUM(A.nombre)-1)*100) AS evolution FROM bourse B INNER JOIN bourse_actions A ON B.id = A.id_action GROUP BY A.id_action INNER JOIN bourse_actions U ON B.id = U.id_action AND U.id_user = 8; }. [127.0.0.1] [GET] [/?p=bourse] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[01:17:13] AVERTISSEMENT : Erreur Mysql: " Column 'id_action' in group statement is ambiguous ", avec la requète: { SELECT B.id, B.nom, FLOOR(B.metal/SUM(A.nombre)) AS metal, FLOOR(B.cristal/SUM(A.nombre)) AS cristal, B.last_nombre, FLOOR((B.last_nombre/SUM(A.nombre)-1)*100) AS evolution FROM bourse B INNER JOIN bourse_actions A ON B.id = A.id_action INNER JOIN bourse_actions U ON B.id = U.id_action AND U.id_user = 8 GROUP BY id_action; }. [127.0.0.1] [GET] [/?p=bourse] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] []
[01:24:09] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/?p=bourse]
[01:24:09] MESSAGE : !! connection : array (
'log' => '',
'HB_login' => 'nemunaire',
'HB_password' => 'mopmop',
'galaxie' => 'Alpha',
'__utma' => '155506210.4054156253863705600.1211214258.1214058438.1214170521.57',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'__utmc' => '155506210',
'hbsession' => '8996eef618a815f11198822cb1b689e92e6974df8bb5c0aa86177ee2710b974f',
) [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/?p=bourse]

63
onyx/logs/24-06-2008.xlog Normal file
View file

@ -0,0 +1,63 @@
[18:19:37] AVERTISSEMENT : Erreur Mysql: " Table 'halo_battle.secure_identification' doesn't exist ", avec la requète: { SELECT nombre FROM secure_identification WHERE ip = '7f000001'; }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[18:19:37] AVERTISSEMENT : Erreur Mysql: " You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''7f000001', '1', '1214324377')' at line 1 ", avec la requète: { INSERT INTO secure_identification ('7f000001', '1', '1214324377'); }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[18:19:37] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[18:19:37] MESSAGE : !! connection : array (
'log' => '',
'HB_login' => 'nemunaire',
'HB_password' => 'mopmop',
'galaxie' => 'Alpha',
'__utma' => '155506210.4054156253863705600.1211214258.1214170521.1214202554.58',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'hbsession' => '6c76154df05ccc35a91dfaf5940fa1667f1c9512a45480d3fc476fc3ec3cd347',
) [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[18:20:57] AVERTISSEMENT : Erreur Mysql: " You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''7f000001', '1', '1214324457')' at line 1 ", avec la requète: { INSERT INTO securite_identification ('7f000001', '1', '1214324457'); }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[18:20:57] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[18:20:57] MESSAGE : !! connection : array (
'log' => '',
'HB_login' => 'nemunaire',
'HB_password' => 'mopmop',
'galaxie' => 'Alpha',
'__utma' => '155506210.4054156253863705600.1211214258.1214202554.1214324379.59',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'__utmb' => '155506210.2.10.1214324379',
'__utmc' => '155506210',
'hbsession' => '3428a8cac81fffc5c1826278990a1770e7cbee0cc1650a2e843bc5ec89d62670',
) [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[18:22:00] AVERTISSEMENT : Erreur Mysql: " You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''7f000001', '1', '1214324520')' at line 1 ", avec la requète: { INSERT INTO securite_identification ('7f000001', '1', '1214324520'); }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[18:22:00] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[18:22:00] MESSAGE : !! connection : array (
'log' => '',
'HB_login' => 'nemunaire',
'HB_password' => 'mopmop',
'galaxie' => 'Alpha',
'__utma' => '155506210.4054156253863705600.1211214258.1214202554.1214324379.59',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'__utmb' => '155506210.3.10.1214324379',
'__utmc' => '155506210',
'hbsession' => '82fd6f2d3f95b7ff1eafceaf6c58835f3d914ca8f0a07b1fc2851e6f358e70d7',
) [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[18:23:37] AVERTISSEMENT : Erreur Mysql: " You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''7f000001', '1', '1214324617')' at line 1 ", avec la requète: { INSERT INTO securite_identification ('7f000001', '1', '1214324617'); }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[18:23:37] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[18:23:37] MESSAGE : !! connection : array (
'log' => '',
'HB_login' => 'nemunaire',
'HB_password' => 'mopmop',
'galaxie' => 'Alpha',
'__utma' => '155506210.4054156253863705600.1211214258.1214202554.1214324379.59',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'__utmb' => '155506210.5.10.1214324379',
'__utmc' => '155506210',
'hbsession' => '4d0844800532a7120349546c48337a9edf1a9aa97189f349b33e97af8852b581',
) [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[18:24:11] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]
[18:24:11] MESSAGE : !! connection : array (
'log' => '',
'HB_login' => 'nemunaire',
'HB_password' => 'mopmop',
'galaxie' => 'Alpha',
'__utma' => '155506210.4054156253863705600.1211214258.1214202554.1214324379.59',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'__utmb' => '155506210.6.10.1214324379',
'__utmc' => '155506210',
'hbsession' => '4eaf2cad9831da942ce38966047ba7d12dcadfd47bf97c78c9b04247527ef9e2',
) [127.0.0.1] [POST] [/?log] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]

26
onyx/logs/30-06-2008.xlog Normal file
View file

@ -0,0 +1,26 @@
[23:11:19] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [GET] [/?a=32604c0e8cc5aa47e21f45f5069ca838de17d172a70dd64b9232566bf11ed235fdc90eae9aaecbe96c510d6985648ce169b22111fde52c8aafa9632980060af3&l=nemunaire&p=mopmop] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://accueil.halobattle.local/]
[23:11:20] MESSAGE : !! connection : array (
'a' => '32604c0e8cc5aa47e21f45f5069ca838de17d172a70dd64b9232566bf11ed235fdc90eae9aaecbe96c510d6985648ce169b22111fde52c8aafa9632980060af3',
'l' => 'nemunaire',
'p' => 'mopmop',
'__utma' => '155506210.4054156253863705600.1211214258.1214202554.1214324379.59',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'hbsession' => 'b5321bc9b24d0db250572b353c73f45334835996cff4486cf7b666a908909232',
) [127.0.0.1] [GET] [/?a=32604c0e8cc5aa47e21f45f5069ca838de17d172a70dd64b9232566bf11ed235fdc90eae9aaecbe96c510d6985648ce169b22111fde52c8aafa9632980060af3&l=nemunaire&p=mopmop] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://accueil.halobattle.local/]
[23:31:52] AVERTISSEMENT : Erreur Mysql: " Unknown column 'id' in 'field list' ", avec la requète: { SELECT COUNT(id) AS nombre FROM sessions WHERE active = '1' AND var_session != ''; }. [127.0.0.1] [GET] [/?a=32604c0e8cc5aa47e21f45f5069ca838de17d172a70dd64b9232566bf11ed235fdc90eae9aaecbe96c510d6985648ce169b22111fde52c8aafa9632980060af3&l=nemunaire&p=mopmop] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://accueil.halobattle.local/]
[23:31:52] MESSAGE : !! connection : array (
'a' => '32604c0e8cc5aa47e21f45f5069ca838de17d172a70dd64b9232566bf11ed235fdc90eae9aaecbe96c510d6985648ce169b22111fde52c8aafa9632980060af3',
'l' => 'nemunaire',
'p' => 'mopmop',
'__utma' => '155506210.4054156253863705600.1211214258.1214324379.1214860298.60',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'__utmb' => '155506210.5.10.1214860298',
'__utmc' => '155506210',
) [127.0.0.1] [GET] [/?a=32604c0e8cc5aa47e21f45f5069ca838de17d172a70dd64b9232566bf11ed235fdc90eae9aaecbe96c510d6985648ce169b22111fde52c8aafa9632980060af3&l=nemunaire&p=mopmop] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://accueil.halobattle.local/]
[23:39:19] MESSAGE : array (
'__utma' => '155506210.4054156253863705600.1211214258.1214324379.1214860298.60',
'__utmz' => '155506210.1211214259.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'__utmb' => '155506210.21.10.1214860298',
'__utmc' => '155506210',
'hbsession' => '75164d5772f05b9114bfb400717ac53a368e6c70b5aac9839ae7feaaa7253bf5',
) [127.0.0.1] [GET] [/admin.php] [Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9) Gecko/2008052906 Firefox/3.0] [http://halobattle.local/]

View file

@ -25,7 +25,7 @@ class session {
$time = time()-$config['session_time'];
$table = $config['db_prefix']."sessions";
$db->query("DELETE FROM $table WHERE time < $time AND active = '1'");
$db->query("DELETE FROM $table WHERE time < $time AND active = True;");
$db->deconnexion();
}
@ -45,7 +45,7 @@ class session {
$sess_cookie = random(256);
$ip = encode_ip();
$table = $config['db_prefix']."sessions";
$db->query("INSERT INTO $table(xid,session,time,ip,var_session,level,hash,active) VALUES('$xid','$sess_cookie','$time','$ip','','1','','0') ");
$db->query("INSERT INTO $table(xid,session,time,ip,var_session,level,hash,active) VALUES('$xid','$sess_cookie','$time','$ip','','1','',True) ");
$db->hash($table,"xid = '$xid'");
$this->xid = $xid;
@ -75,7 +75,7 @@ class session {
$table = $config['db_prefix']."sessions";
$db->check($table,"session = '$cookie'");
$query = $db->unique_query("SELECT * FROM $table WHERE session='$cookie' AND active='1'");
$query = $db->unique_query("SELECT * FROM $table WHERE session='$cookie' AND active = True;");
if($db->num_rows == 1 && $query['ip'] == encode_ip())
{
@ -131,7 +131,7 @@ class session {
$xid = $this->xid;
$table = $config['db_prefix']."sessions";
$db->query("DELETE FROM $table WHERE xid = '$xid' AND active = '1'");
$db->query("DELETE FROM $table WHERE xid = '$xid' AND active = True;");
$db->deconnexion();

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<a href="?p={$linkpage}&amp;i=add">Ajouter un titre</a>
<table>
<thead>
@ -15,5 +14,4 @@
{/foreach}
</tbody>
</table>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,9 +1,7 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<form action="?p={$linkpage}&amp;i={$id}" method="post">
Texte : <input type="text" name="texte" value="{$mod.texte}" /><br />
Couleur : <input type="text" name="color" value="{$mod.color}" /><br />
<input type="submit" class="submit" value="GO" />
</form>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,3 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<div class="error"{if $couleur} style="color: {$couleur};"{/if}>{$message}</div>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<table style="width: 80%;">
<thead>
<tr>
@ -22,5 +21,4 @@
{/foreach}
</tbody>
</table>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<table style="width: 90%;">
<thead{if $req.statut >= 1} style="background: #{if $req.statut == 1}770000{elseif $req.statut == 2}007700{elseif $req.statut == 3}000077{elseif $req.statut == 4}770077{elseif $req.statut == 5}007777{elseif $req.statut == 6}777700{/if};"{/if}>
<tr>
@ -34,5 +33,4 @@
</tr>
</tfoot>
</table>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<table>
{foreach from=$tableau item=ligne key=key}
<tr>
@ -8,5 +7,4 @@
</tr>
{/foreach}
</table>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<h2>{$titre}</h2>
<table>
<tr>
@ -23,5 +22,4 @@
</td>
</tr>
</table>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<h2>{$titre}</h2>
<table>
<tr>
@ -21,5 +20,4 @@
</td>
</tr>
</table>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<table>
<tr>
<td><a href="?p={$linkpage}&amp;id={$idPlan}">{$key}</a></td>
@ -15,5 +14,4 @@
</td>
</tr>
</table>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,9 +1,7 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
{foreach from=$tableau item=ligne key=key}
<dl>
<dt><input class="button2" type="button" onclick="hide(this); return false;" />{$ligne.sujet} de {$ligne.destinataire} à {$ligne.temps|date_format:"%d/%m/%y %H:%M:%S"}</dt><dd>{$ligne.contenu}</dd>
</dl>
{/foreach}
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<h2>{$titre}</h2>
<form action="admin.php" method="get">
<table>
@ -24,5 +23,4 @@
</tr>
</table>
</form>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<a href="?p={$linkpage}&amp;i=add">Ajouter une version</a>
<table>
<thead>
@ -21,5 +20,4 @@
{/foreach}
</tbody>
</table>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,9 +1,7 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<form action="?p={$linkpage}&amp;i={$id}" method="post">
Version : <input type="text" name="version" value="{$mod.version}" /><br />
Contenu :<br /><textarea cols="10" rows="10" name="contenu">{$mod.contenu}</textarea><br />
<input type="submit" class="submit" value="GO" />
</form>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<h2>Vérification des flottes</h2>
<table style="text-align: center; margin: auto;">
<thead>
@ -23,5 +22,4 @@
{/foreach}
</tbody>
</table
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<h2>Vérification des IP</h2>
<a href="?p=vip&amp;v={$numpage-1}">&lt;&lt;&lt;</a> page {$numpage}/{$nbpage} <a href="?p=vip&amp;v={$numpage+1}">&gt;&gt;&gt;</a>
<table style="text-align: center; margin: auto;">
@ -25,5 +24,4 @@
</tbody>
</table>
<a href="?p=vip&amp;v={$numpage-1}">&lt;&lt;&lt;</a> page {$numpage}/{$nbpage} <a href="?p=vip&amp;v={$numpage+1}">&gt;&gt;&gt;</a>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,6 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<div class="error">... veuillez patienter ...</div>
<div class="border_bt"></div>
{$contenu}
{include file='game/footer.tpl'}

View file

@ -1,8 +1,30 @@
{include file='cms/header.tpl'}
<div id="connexion" class="block">
<div class="header">Connexion</div>
<div class="corps"><form action="?log" method="post"><fieldset><span><input type="text" class="text" name="HB_login" maxlength="32" tabindex="1" /><input type="password" class="password" name="HB_password" maxlength="32" tabindex="2" /><input type="submit" class="submit" value="GO" tabindex="3" /></span><span><label for="galaxie">Galaxie :</label> <select name="galaxie" id="galaxie"><optgroup label="Galaxies standards"><option> Alpha</option></optgroup></select> <a href="{$link.oubliemdp}" tabindex="4">Mot de passe oublié</a></span></fieldset></form></div>
<div class="corps">
<form action="?log" method="post">
<fieldset>
<span>
<input type="text" class="text" name="HB_login" maxlength="32" tabindex="1" />
<input type="password" class="password" name="HB_password" maxlength="32" tabindex="2" />
<input type="submit" class="submit" value="GO" tabindex="3" />
</span>
<span>
<label for="galaxie">Galaxie :</label>
<select name="galaxie" id="galaxie">
<optgroup label="Galaxies standards">
<option> Alpha</option>
</optgroup>
</select>
<a href="{$link.oubliemdp}" tabindex="4">Mot de passe oublié</a>
</span>
</fieldset>
</form>
</div>
</div>
<div id="inscription" class="block"><span><a href="{$link.inscription}">INSCRIVEZ VOUS</a> Rejoignez l'alliance ou engagez-vous</span> <p><strong>DEFENDREZ VOUS L'HUMANITE OU LA DETRUIREZ VOUS?</strong><br /><br />Repoussez l'ennemi et partez a la conquète des mondes-anneaux dans des univers vastes et riches basés sur l'univers du jeu vidéo Halo<br /><br /><em>Une simple inscription gratuite et un navigateur internet sont demandés pour pouvoir participer a des batailles épiques!</em></p> <a href="{$link.inscription}" class="link"><span>Cliquez ici pour vous inscrire</span></a> <a href="{$link.inscription}" class="more">En savoir plus</a></div>
<div id="dernierminute" class="block">
<a href="http://www.halo.fr/" onclick="window.open(this.href); return false;"><img src="images/hfr.jpg" alt="Halo.fr" /></a>
</div>
{include file='cms/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<b>Le combat est terminé !</b><br /><br />
Nombre de tour : {$tour}<br /><br />
Puissance d'attaque attaquant : {$infoPLUS}<br /><br />
@ -193,5 +192,4 @@ Puissance d'attaque attaquant : {$infoPLUS}<br /><br />
{if !$termine}Le combat n'est pas terminé !</b>
{elseif $attaquantG}<strong>Nous avons gagné le combat !<br />Nous repartons avec {$pillage.0} {$ressources.0}, {$pillage.1} {$ressources.1} et {$pillage.2} {$ressources.2}.</strong>
{else}<strong>Nous avons perdu le combat !</strong>{/if}
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<h2>Evénements</h2>
<em>Heure du serveur: {$datehb}</em>
{foreach from=$attaques item=attaque key=key}
@ -16,5 +15,4 @@
<h4>position: <a href="?p=carte&amp;galaxie={$planete.galaxie}&amp;ss={$planete.ss}">{$planete.galaxie}.{$planete.ss}.{$planete.position}</a></h4>
<h4>Classement: <a href="?p=classement&amp;j={$user.id}&amp;c={$user.place_points}#moi">{$points} points ({if $user.place_points == '0'}non classé{else}{$user.place_points}{if $user.place_points == '1'}er{else}ème{/if}{/if})</a></h4>
{if $alliance}<h4>Alliance: <a href="?p=alliances">[{$alliance.tag|upper}] {$alliance.nom}</a></h4>{/if}
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<h2>Aide de Halo-Battle :: Avertissements</h2>
<h3>Avertissement aux utilisateurs de téléviseurs à rétroprojection</h3><br />
Les images fixes peuvent endommager de manière irréversible le tube cathodique ou marquer à jamais les luminophores qui constituent l'écran de ces téléviseurs.<br />C'est pourquoi il est conseillé d'éviter d'utiliser des jeux vidéo trop souvent ou de façon prolongée avec les téléviseurs à rétroprojection.<br /><br />
@ -29,5 +28,4 @@
<li>Evitez la prise de produits stimulants : coca-cola, thé, café, vitamine C…</li>
<li>La régularité du sommeil reste le meilleur gage de qualité.</li>
</ul>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<h2>Aide de Halo-Battle :: Comment jouer</h2>
<h3>Astuces à l'intention des nouveaux administrateurs coloniaux</h3>
Vous voilà inscrit et connecté sur votre compte ; si vous pensez que le plus difficile est maintenant derrière-vous, vous vous trompez lourdement. De lourdes tâches vous attendent désormais, et il va vous falloir tout votre sang-froid et votre maîtrise pour triompher des épreuves qui jalonneront votre route.<br /><br />
@ -16,5 +15,4 @@
<br /><h3>Exemple : la colonie Reach</h3>
Voici un petit tutorial pour commencer à jouer dans le jeu. Ici, nous aborderons les différents aspects élémentaires pour développer notre planète principale : Reach. Ce tutorial utilise la race Humaine ; toutefois, les données demeurent les mêmes pour la race Covenante. Notez enfin que parfois, les ressources indiquées dans les illustrations diffèrent avec les coûts réels.<br /><br />
[...]
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<h2>Aide de Halo-Battle :: Configuration requise</h2>
<br /><h3>Configuration nécessaire</h3><br />
Pour jouer à Halo-Battle, un simple navigateur internet est suffisant. Assurez-vous donc de disposer du matériel informatique adéquat ainsi que d'une connexion internet.<br />
@ -13,5 +12,4 @@
<br /><h2>Démarrage du jeu</h2>
Pour pouvoir jouer à Halo-Battle, rendez-vous sur la page d'accueil du site puis cliquez sur l'onglet « Jeu » pour accéder au menu principal. Renseignez dans les champs appropriés votre login de joueur puis votre mot de passe pour accéder à votre compte.<br />
Il faut être impérativement inscrit pour pouvoir jouer. Si vous ne l'êtes pas, cliquez sur l'onglet « S'inscrire » via la page d'accueil du site, puis laissez-vous guider. Si vous ne comprenez pas ce que l'on vous demande, il vous suffit de cliquer dans la case appropriée et un texte d'aide apparaîtra sur votre gauche.
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<h2>Aide de Halo-Battle :: Introduction</h2>
<i>Même la plus puissante des nations finit par succomber un jour...</i><br /><br />
Neuvième Age de la Réclamation. La majestueuse Grande Bonté n'est plus. La voici désormais en proie au Parasite, gangrénée et empoisonnée de l'intérieur. Le glas de la fin du collectif Covenant se fait entendre par-delà les étoiles, alors que les trompettes de la victoire résonnent sur Terre...<br /><br />
@ -10,5 +9,4 @@
<i>Préparez-vous à vous battre pour votre cause.</i><br /><br />
Quel que soit votre camp, que vous soyez Humain ou Covenant, vous aussi devez vous préparer à l'inévitable conflit qui se prépare. Si vous espérez un tant soit peu survivre, il vous faudra développer votre économie, rechercher de nouvelles technologies innovatrices et surtout préparer votre armée. Sachez que vos frères d'armes comptent sur vous.<br /><br />
<i>Qu'importe les moyens, seule la victoire compte.</i><br />
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,9 +1,7 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<h2>Aide de Halo-Battle :: Sommaire</h2>
<h3><a href="{$menu.faq}&amp;q=1">Avertissements</a></h3>
<h3><a href="{$menu.faq}&amp;q=2">Configuration nécessaire & démarrage du jeu</a></h3>
<h3><a href="{$menu.faq}&amp;q=3">Introduction</a></h3>
<h3><a href="{$menu.faq}&amp;q=4">Comment jouer ?</a></h3>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

View file

@ -1,5 +1,4 @@
{include file='game/header.tpl'}
<div class="border_top"></div>
<h2>[{$alliance.tag|upper}] {$alliance.nom|capitalize}</h2>
<table cellpadding="2" cellspacing="0" style="text-align: center; width: 100%;">
<tbody>
@ -64,5 +63,4 @@
<form method="post" action="{$menu.alliance}&amp;q=chat">
Réponse :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="msg" type="text" size="50" maxlength="250">&nbsp;&nbsp;&nbsp;&nbsp;<input value="GO" class="submit" type="submit">
</form>
<div class="border_bt"></div>
{include file='game/footer.tpl'}

Some files were not shown because too many files have changed in this diff Show more