Ajout d'une étape de linting dans DroneCi (#3)
All checks were successful
continuous-integration/drone/push Build is passing

Corrige un doublons laissé par le rebase semi-manuel

Ajout d'une étape de linting dans DroneCi

Fix linting

Co-authored-by: Nigel Sheldon <nigelsheldon@live.fr>
Reviewed-on: https://gitea.nemunai.re/halo-battle/game/pulls/3
This commit is contained in:
Nigel 2020-11-21 18:54:32 +00:00
parent 5b17a7dbd7
commit dd61d3b66b
263 changed files with 43280 additions and 40648 deletions

View file

@ -8,6 +8,12 @@ platform:
arch: amd64
steps:
- name: lint
image: php:7.2-alpine
commands:
- curl -L https://cs.symfony.com/download/php-cs-fixer-v2.phar -o php-cs-fixer.phar
- php php-cs-fixer.phar fix htdocs --dry-run --using-cache=no --verbose --stop-on-violation
- php php-cs-fixer.phar fix onyx2 --dry-run --using-cache=no --verbose --stop-on-violation
- name: publish
image: plugins/docker
settings:

View file

@ -7,8 +7,7 @@ require_once(trim(file_get_contents('./.onyx')));
require_once("common.php"); //Chargement de tout le nécessaire pour le jeu
//On vérifie si le client est connecté ou non sur le site
if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connected'] && !empty($SESS->values['id']) && !empty($SESS->level) && $SESS->level >= 3)
{
if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connected'] && !empty($SESS->values['id']) && !empty($SESS->level) && $SESS->level >= 3) {
function infoPlan($galaxie, $ss, $pos, $info)
{
$base = new BDD();
@ -25,8 +24,7 @@ if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connecte
$template->assign('race', $SESS->values['race']);
$template->assign("tpsdejeu", "un certain temps");
if (!empty($SESS->values['souscontrole']))
{
if (!empty($SESS->values['souscontrole'])) {
$pagea = 'erreur';
$SESS->values['id'] = $SESS->values['souscontrole'][0];
@ -35,17 +33,14 @@ if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connecte
$SESS->put();
$template->assign('message', 'Droits rétablis avec succès !<br />');
}
else
{
} else {
$id_user = $SESS->values['id'];
if (!isset($_GET['p']))
if (!isset($_GET['p'])) {
$_GET['p'] = '';
if ($SESS->level >= 5)
{
switch($_GET['p'])
{
}
if ($SESS->level >= 5) {
switch ($_GET['p']) {
case 'djoueurs':
include("admin/supprimer_joueur.php");
break;
@ -75,10 +70,8 @@ if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connecte
break;
}
}
if (empty($pagea))
{
switch($_GET['p'])
{
if (empty($pagea)) {
switch ($_GET['p']) {
case 'courrier':
include("admin/mail.php");
break;
@ -119,7 +112,6 @@ if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connecte
$template->assign('titre', $titre);
$template->assign('pagea', $pagea);
$template->display('admin/'.$pagea.'.tpl');
}
else
} else {
header('Location: '.$VAR['first_page']);
?>
}

View file

@ -13,29 +13,24 @@ require_once("donnees.php");
$SESS = new Session();
//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']) && !empty($SESS->values['race']) && !empty($SESS->level) && isset($SESS->values['idPlan']) && isset($SESS->values['idAsteroide']))
{
if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connected'] && !empty($SESS->values['id']) && !empty($SESS->values['race']) && !empty($SESS->level) && isset($SESS->values['idPlan']) && isset($SESS->values['idAsteroide'])) {
include_once("Class/user.php");
$user = new User($SESS->values['id']);
if (!empty($user->id_alliance))
{
if (isset($_POST['message']))
{
if (!empty($user->id_alliance)) {
if (isset($_POST['message'])) {
$message = htmlentities(trim(gpc("message", "post")));
if (!empty($message) || $message == "0")
{
if (!empty($message) || $message == "0") {
$bdd = new BDD();
$bdd->escape($message);
$bdd->query("INSERT INTO $table_alliances_chat (id_alliance, emetteur, timestamp, message) VALUES (".$user->id_alliance.", ".$user->id_user.", ".time().", '$message');");
$bdd->deconnexion();
}
}
else
{
if (!empty($_GET['time']))
} else {
if (!empty($_GET['time'])) {
$time = intval(gpc("time"))." ORDER BY timestamp DESC";
else
} else {
$time = "0 ORDER BY timestamp DESC LIMIT 15";
}
$bdd = new BDD();
$messages = $bdd->query("SELECT C.*, U.pseudo FROM $table_alliances_chat C INNER JOIN $table_user U ON U.id = C.emetteur WHERE C.id_alliance = ".$user->id_alliance." AND C.timestamp > $time;");
@ -45,4 +40,3 @@ if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connecte
}
}
}
?>

View file

@ -2,7 +2,7 @@
define("INDEX", 1);
$chrono_start = microtime();
$onyx = @file_get_contents('./.onyx') or die("Configuration introuvable.");
define("_FCORE",trim($onyx));
define("_FCORE", trim($onyx));
require(_FCORE."../game/Class/JSON.php");
require_once(_FCORE."common.php");
@ -34,9 +34,13 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
if (!empty($destin)) {
$chapeau->escape($destin);
$queryPlaneteRapid = $chapeau->unique_query("SELECT nom_planete, galaxie, ss, position FROM $table_planete WHERE id = $destin;");
if ($queryPlaneteRapid) $destinRapid = '['.$queryPlaneteRapid['galaxie'].':'.$queryPlaneteRapid['ss'].':'.$queryPlaneteRapid['position'].']<input type="hidden" id="amas" name="amas" maxlength="2" value="'.$queryPlaneteRapid['galaxie'].'" /><input type="hidden" id="ss" name="ss" maxlength="2" value="'.$queryPlaneteRapid['ss'].'" /><input type="hidden" id="plan" name="pos" maxlength="2" value="'.$queryPlaneteRapid['position'].'" />';
if ($queryPlaneteRapid) {
$destinRapid = '['.$queryPlaneteRapid['galaxie'].':'.$queryPlaneteRapid['ss'].':'.$queryPlaneteRapid['position'].']<input type="hidden" id="amas" name="amas" maxlength="2" value="'.$queryPlaneteRapid['galaxie'].'" /><input type="hidden" id="ss" name="ss" maxlength="2" value="'.$queryPlaneteRapid['ss'].'" /><input type="hidden" id="plan" name="pos" maxlength="2" value="'.$queryPlaneteRapid['position'].'" />';
}
}
if (!isset($destinRapid)) {
$destinRapid = '<input class="dest" type="text" id="amas" name="amas" maxlength="2" value="'.gpc('galaxie', 'post').'" />:<input class="dest" type="text" id="ss" name="ss" maxlength="2" value="'.gpc('ss', 'post').'" />:<input class="dest" type="text" id="plan" name="pos" maxlength="2" value="'.gpc('pos', 'post').'" />';
}
if (!isset($destinRapid)) $destinRapid = '<input class="dest" type="text" id="amas" name="amas" maxlength="2" value="'.gpc('galaxie', 'post').'" />:<input class="dest" type="text" id="ss" name="ss" maxlength="2" value="'.gpc('ss', 'post').'" />:<input class="dest" type="text" id="plan" name="pos" maxlength="2" value="'.gpc('pos', 'post').'" />';
$start_galaxie = $queryPlanete['galaxie'];
$start_ss = $queryPlanete['ss'];
$start_position = $queryPlanete['position'];
@ -44,12 +48,15 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$met = gpc('met', 'post');
$cri = gpc('cri', 'post');
$hyd = gpc('hyd', 'post');
if (!empty($sess->values['flcontenu']) && $met+$cri+$hyd >= 0 && $met >= 0 && $cri >= 0 && $hyd >= 0) $places = $sess->values['flcontenu'] - ($met+$cri+$hyd);
else $places = 'inconnu';
if (!empty($sess->values['flcontenu']) && $met+$cri+$hyd >= 0 && $met >= 0 && $cri >= 0 && $hyd >= 0) {
$places = $sess->values['flcontenu'] - ($met+$cri+$hyd);
} else {
$places = 'inconnu';
}
if (empty($sess->values['fltime']) || $sess->values['fltime'] + 600 < time() || empty($sess->values['flnbvais']) || empty($sess->values['flvitesse']) && isset($sess->values['auth_level']))
if (empty($sess->values['fltime']) || $sess->values['fltime'] + 600 < time() || empty($sess->values['flnbvais']) || empty($sess->values['flvitesse']) && isset($sess->values['auth_level'])) {
$datas = array(
'root' => array(
'destination' => $destinRapid,
@ -60,7 +67,7 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
'places' => separerNombres($places)
)
);
elseif (empty($_POST['nom']) || preg_replace('@[^a-zA-Z0-9_ ]@i', '', $_POST['nom']) != $_POST['nom'])
} elseif (empty($_POST['nom']) || preg_replace('@[^a-zA-Z0-9_ ]@i', '', $_POST['nom']) != $_POST['nom']) {
$datas = array(
'root' => array(
'destination' => $destinRapid,
@ -71,7 +78,7 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
'places' => separerNombres($places)
)
);
elseif ($_POST['galaxie'] > MAX_AMAS || $_POST['ss'] > MAX_SYSTEME || $_POST['pos'] > MAX_PLANETE || $_POST['galaxie'] < 0 || $_POST['ss'] < 1 || $_POST['pos'] < 1 || ($_POST['galaxie'] < 1 && $sess->values['auth_level'] < 6))
} elseif ($_POST['galaxie'] > MAX_AMAS || $_POST['ss'] > MAX_SYSTEME || $_POST['pos'] > MAX_PLANETE || $_POST['galaxie'] < 0 || $_POST['ss'] < 1 || $_POST['pos'] < 1 || ($_POST['galaxie'] < 1 && $sess->values['auth_level'] < 6)) {
$datas = array(
'root' => array(
'destination' => $destinRapid,
@ -82,10 +89,12 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
'places' => separerNombres($places)
)
);
else {
} else {
$_POST['vitesse'] /= 100;
$temps = vais_tempsDeplacement($start_galaxie,$start_ss,$start_position,$_POST['galaxie'],$_POST['ss'],$_POST['pos'],$sess->values['flvitesse'],$_POST['vitesse'],$sess->values['flpreparation'],$sess->values['flchauffe']);
if ($temps <= 0) $temps = 454;
$temps = vais_tempsDeplacement($start_galaxie, $start_ss, $start_position, $_POST['galaxie'], $_POST['ss'], $_POST['pos'], $sess->values['flvitesse'], $_POST['vitesse'], $sess->values['flpreparation'], $sess->values['flchauffe']);
if ($temps <= 0) {
$temps = 454;
}
$conso = vais_conso($temps, $sess->values['flnbvais'])*$_POST['vitesse']/45;
$places -= ceil($conso*$nbtrajet);
$tactique = '';
@ -111,16 +120,18 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
);
header("X-JSON: ".$json->encode($datas));
exit;
} else {
for ($i=1 ; $i<=$lvltechno ; $i++) {
if ($tactiquedef == $i) {
$tactique .= '<option value="'.$i.'" selected>'.txtTactique($i).'</option>';
} else {
$tactique .= '<option value="'.$i.'">'.txtTactique($i).'</option>';
}
else {
for($i=1 ; $i<=$lvltechno ; $i++) {
if ($tactiquedef == $i) $tactique .= '<option value="'.$i.'" selected>'.txtTactique($i).'</option>';
else $tactique .= '<option value="'.$i.'">'.txtTactique($i).'</option>';
}
}
$tactique .= '</select><br />';
}
$cds = sha1('flotte'.$conso.'ß10'.time().'|HB;'.rand(10,99).$temps);
$cds = sha1('flotte'.$conso.'ß10'.time().'|HB;'.rand(10, 99).$temps);
$sess->values['flcds'] = $cds;
$sess->put();
$datas = array(
@ -138,4 +149,3 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$chapeau->deconnexion();
header("X-JSON: ".$json->encode($datas));
}
?>

View file

@ -4,7 +4,7 @@ define("INDEX", 1); //Définition de la constante anti-hacking
$chrono_start = microtime();
//Inclusion de l'API Onyx
$onyx = @file_get_contents('./.onyx') or die("Configuration introuvable.");
define("_FCORE",str_replace('/onyx2/load.php', '/onyx/', trim($onyx)));
define("_FCORE", str_replace('/onyx2/load.php', '/onyx/', trim($onyx)));
require_once(_FCORE."common.php");
$race = 'humain';
require_once(_FCORE."../game/noms.php");
@ -12,30 +12,24 @@ require_once(_FCORE."../game/vars.php");
$tree = array();
foreach($technologiesCALC as $keyB => $branche)
{
foreach ($technologiesCALC as $keyB => $branche) {
print "<h3><ins>Branche :</ins> ".$technologiesVAR[$keyB]."</h3>";
foreach($branche as $keyT => $tech)
{
foreach ($branche as $keyT => $tech) {
print $tech[0].' : '.$technolo[$keyB][$keyT]."<br />";
if ($tech[1] > 0)
{
if ($tech[1] > 0) {
print '<em><ins>Requiert :</ins>';
foreach($branche as $keyR => $req)
{
if ($req[0]&$tech[1])
foreach ($branche as $keyR => $req) {
if ($req[0]&$tech[1]) {
print ' '.$technolo[$keyB][$keyR].',';
}
print '</em><br />';
}
else
{
print '</em><br />';
} else {
print '<em>Ne requiert aucune technologie</em><br />';
$tree[] = array($tech);
}
print "<br />";
}
}
}
echo("\n<!--Page générée en : ".round((array_sum(explode(' ', microtime()))) - (array_sum(explode(' ', $chrono_start))), 4)." secondes.-->");
?>

View file

@ -2,19 +2,24 @@
define("INDEX", 1);
$chrono_start = microtime();
$onyx = @file_get_contents('./.onyx') or die("Configuration introuvable.");
define("_FCORE",trim($onyx));
define("_FCORE", trim($onyx));
require_once(_FCORE."kernel.php");
require_once(_FCORE."../game/tables.php");
$action = intval(gpc('a'));
if (isset($sess->values['race'])) $race = $sess->values['race'];
else $race = gpc('r');
if (isset($sess->values['race'])) {
$race = $sess->values['race'];
} else {
$race = gpc('r');
}
$bdd = new BDD();
$bdd->connexion();
$act = $bdd->unique_query("SELECT nom FROM $table_bourse WHERE id = $action;");
$bdd->deconnexion();
if (empty($act)) exit;
if (empty($act)) {
exit;
}
$values = array();
$values_label = array();
@ -23,16 +28,20 @@ $values_abscisse = array();
//Extraction des derniers pourcentages
$filename = '';
$i = 6;
while(!is_file($filename)) {
while (!is_file($filename)) {
$i++;
if ($i > 14) break;
if ($i > 14) {
break;
}
$filename = _FCORE."../game/cache/bourse/".$action.".".strftime('%Y%m%d', time() - 86400 * $i).".bourse";
}
if (!is_file($filename)) {
$i = 7;
while(!is_file($filename)) {
while (!is_file($filename)) {
$i--;
if ($i < 0) break;
if ($i < 0) {
break;
}
$filename = _FCORE."../game/cache/bourse/".$action.".".strftime('%Y%m%d', time() - 86400 * $i).".bourse";
}
}
@ -40,45 +49,54 @@ if (is_file($filename)) {
$handle = fopen($filename, "r");
while (!feof($handle)) {
$r = fgets($handle);
if (preg_match('#;#', $r)) $last = $r;
if (preg_match('#;#', $r)) {
$last = $r;
}
}
fclose($handle);
$calc = $last = explode(';', $last);
} else {
$calc = $last = array(1, 1, 1);
}
else $calc = $last = array(1, 1, 1);
for($i = 6; $i >= 0; $i--){
for ($i = 6; $i >= 0; $i--) {
$filename = _FCORE."../game/cache/bourse/".$action.".".strftime('%Y%m%d', time() - 86400 * $i).".bourse";
if (is_file($filename)) {
$handle = fopen($filename, "r");
while (!feof($handle)) {
$r = fgets($handle);
if (preg_match('#;#', $r)) $last = $r;
if (preg_match('#;#', $r)) {
$last = $r;
}
}
fclose($handle);
$last = explode(';', $last);
}
$evolution = intval(($last[1]/$calc[1] - 1) * 100);
$values[] = $evolution;
if ($evolution >= 0 ) $evolution = '+'.$evolution;
if ($evolution >= 0) {
$evolution = '+'.$evolution;
}
$values_label[] = $evolution.'%';
$values_abscisse[] = ucfirst(strftime('%a', time() - 86400 * $i));
}
//*
require_once ("../jpgraph/jpgraph.php");
require_once ("../jpgraph/jpgraph_line.php");
require_once("../jpgraph/jpgraph.php");
require_once("../jpgraph/jpgraph_line.php");
if ($race != "humain" && $race != "covenant") $race = "humain";
if ($race != "humain" && $race != "covenant") {
$race = "humain";
}
$graph = new Graph(282, 200);
$graph->SetScale("textlin");
$graph->img->SetMargin(40,20,20,40);
$graph->img->SetMargin(40, 20, 20, 40);
$lineplot=new LinePlot($values);
$lineplot->mark->SetType(MARK_UTRIANGLE);
$lineplot->value->show();
$lineplot->value->SetFont(FF_FONT1,FS_BOLD);
$lineplot->value->SetFont(FF_FONT1, FS_BOLD);
$lineplot->value->SetFormat('%0.1f');
//Définition des couleurs
@ -91,8 +109,7 @@ if ($race == "covenant") {
$graph->yaxis->title->SetColor("white");
$graph->title->SetColor("white");
$lineplot->SetColor("#c00000");
}
else {
} else {
$graph->yaxis->SetColor("#00DD00");
$lineplot->SetFillColor("cyan@0.8");
$lineplot->value->SetColor('#FF0000');
@ -107,19 +124,19 @@ $graph->title->Set($act['nom']);
$graph->yaxis->title->Set("Evolution (%)");
$graph->xaxis->SetTickLabels($values_abscisse);
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->title->SetFont(FF_FONT1, FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1, FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1, FS_BOLD);
$lineplot->SetWeight(2);
$graph->Stroke();
exit;
//*/
require_once (_FCORE."../artichow/LinePlot.class.php");
require_once(_FCORE."../artichow/LinePlot.class.php");
$graph = new Graph(282, 200);
$graph->setAntiAliasing(FALSE);
$graph->setAntiAliasing(false);
$graph->border->setColor(new Color(210, 210, 210));
$graph->title->set($act['nom']);
$graph->title->setFont(new TuffyBold(14));
@ -156,11 +173,10 @@ $plot->xAxis->setLabelText($values_abscisse);
$plot->setSpace(
5, /* Gauche */
5, /* Droite */
NULL, /* Haut */
NULL /* Bas */
null, /* Haut */
null /* Bas */
);
$graph->add($plot);
$graph->draw();
?>

View file

@ -9,27 +9,40 @@ require_once("common.php"); //Chargement de tout le nécessaire pour le jeu
require_once("function.php"); //Inclusion des fonctions principales
require_once("tables.php"); //Inclusion des noms des tables de base de données correspondant à l'architecture du serveur
function nomR($string, $race){
function nomR($string, $race)
{
if ($race == "covenant") {
if ($string == 1) return "Cristal";
elseif ($string == 2) return "Ions";
else return "Metal";
if ($string == 1) {
return "Cristal";
} elseif ($string == 2) {
return "Ions";
} else {
return "Metal";
}
} else {
if ($string == 1) {
return "Cristal";
} elseif ($string == 2) {
return "Hydrogene";
} else {
return "Metal";
}
else {
if ($string == 1) return "Cristal";
elseif ($string == 2) return "Hydrogene";
else return "Metal";
}
}
$action = intval(gpc('a'));
if (isset($sess->values['race'])) $race = $sess->values['race'];
else $race = gpc('r');
if (isset($sess->values['race'])) {
$race = $sess->values['race'];
} else {
$race = gpc('r');
}
$bdd = new BDD();
$act = $bdd->unique_query("SELECT id, graph, dispo FROM $table_bourse_ressources WHERE id = $action;");
$bdd->deconnexion();
if (empty($act)) exit;
if (empty($act)) {
exit;
}
$values = array();
$values_label = array();
@ -37,30 +50,35 @@ $values_abscisse = array();
$act['graph'] = unserialize($act['graph']);
for($i = 1; $i < 8; $i++){
if (!isset($act['graph'][(date('w')+$i)%7])) $values[] = 0;
else $values[] = ceil(pow($act['graph'][(date('w')+$i)%7], -0.1) * 20000)/10;
for ($i = 1; $i < 8; $i++) {
if (!isset($act['graph'][(date('w')+$i)%7])) {
$values[] = 0;
} else {
$values[] = ceil(pow($act['graph'][(date('w')+$i)%7], -0.1) * 20000)/10;
}
}
for($i = 6; $i >= 0; $i--){
for ($i = 6; $i >= 0; $i--) {
$values_label[] = $values[$i];
$values_abscisse[] = ucfirst(strftime('%a', time() - 86400 * $i));
}
//*
require_once ("jpgraph/jpgraph.php");
require_once ("jpgraph/jpgraph_line.php");
require_once("jpgraph/jpgraph.php");
require_once("jpgraph/jpgraph_line.php");
if ($race != "humain" && $race != "covenant") $race = "humain";
if ($race != "humain" && $race != "covenant") {
$race = "humain";
}
$graph = new Graph(282, 200);
$graph->SetScale("textlin");
$graph->img->SetMargin(40,20,20,40);
$graph->img->SetMargin(40, 20, 20, 40);
$lineplot=new LinePlot($values);
$lineplot->mark->SetType(MARK_UTRIANGLE);
$lineplot->value->show();
$lineplot->value->SetFont(FF_FONT1,FS_BOLD);
$lineplot->value->SetFont(FF_FONT1, FS_BOLD);
//$lineplot->value->SetFormat('%0f');
//Définition des couleurs
@ -73,8 +91,7 @@ if ($race == "covenant") {
$graph->yaxis->title->SetColor("white");
$graph->title->SetColor("white");
$lineplot->SetColor("#c00000");
}
else {
} else {
$graph->yaxis->SetColor("#00DD00");
$lineplot->SetFillColor("cyan@0.8");
$lineplot->value->SetColor('#FF0000');
@ -90,11 +107,10 @@ $graph->title->Set($act['nom']);
$graph->yaxis->title->Set("Evolution (%)");
$graph->xaxis->SetTickLabels($values_abscisse);
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->title->SetFont(FF_FONT1, FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1, FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1, FS_BOLD);
$lineplot->SetWeight(2);
$graph->Stroke();
?>

View file

@ -6,12 +6,14 @@ require_once(trim(file_get_contents('./.onyx')));
$SESS = new Session();
//On défini la configuration
if(!isset($_GET['nbr_chiffres']) || $_GET['nbr_chiffres'] < 5)
$nbr_chiffres = mt_rand(7, 9); // Nombre de chiffres qui formerons le nombre par défaut
else
$nbr_chiffres = intval(gpc('nbr_chiffres')); // Si l'on met dans l'adresse un ?nbr_chiffres=X
if (!isset($_GET['nbr_chiffres']) || $_GET['nbr_chiffres'] < 5) {
$nbr_chiffres = mt_rand(7, 9);
} // Nombre de chiffres qui formerons le nombre par défaut
else {
$nbr_chiffres = intval(gpc('nbr_chiffres'));
} // Si l'on met dans l'adresse un ?nbr_chiffres=X
header ("Content-type: image/png");
header("Content-type: image/png");
//Création de l'image à partir d'un fond
$_img = imagecreatefromgif('fond_verif_img.gif');
@ -19,21 +21,28 @@ $_img = imagecreatefromgif('fond_verif_img.gif');
//$arriere_plan = imagecolorallocate($_img, 0, 0, 0); // Au cas où on utiliserai pas d'image de fond, on utilise cette couleur là.
//On définit les autres couleurs
$couleur = mt_rand(0, 4);
if ($couleur == 0) $avant_plan = imagecolorallocate($_img, rand(250,225), rand(0,25), rand(0,25));
elseif ($couleur == 1) $avant_plan = imagecolorallocate($_img, rand(0,25), rand(250,225), rand(0,25));
if ($couleur == 0) {
$avant_plan = imagecolorallocate($_img, rand(250, 225), rand(0, 25), rand(0, 25));
} elseif ($couleur == 1) {
$avant_plan = imagecolorallocate($_img, rand(0, 25), rand(250, 225), rand(0, 25));
}
// elseif ($couleur == 2) $avant_plan = imagecolorallocate($_img, rand(0,55), rand(0,55), rand(250,255));
elseif ($couleur == 3) $avant_plan = imagecolorallocate($_img, rand(0,25), rand(250,225), rand(250,225));
elseif ($couleur == 4) $avant_plan = imagecolorallocate($_img, rand(250,225), rand(0,25), rand(250,225));
elseif ($couleur == 5) $avant_plan = imagecolorallocate($_img, rand(250,225), rand(250,225), rand(0,25));
else $avant_plan = imagecolorallocate($_img, rand(200,225), rand(200,225), rand(200,225));
elseif ($couleur == 3) {
$avant_plan = imagecolorallocate($_img, rand(0, 25), rand(250, 225), rand(250, 225));
} elseif ($couleur == 4) {
$avant_plan = imagecolorallocate($_img, rand(250, 225), rand(0, 25), rand(250, 225));
} elseif ($couleur == 5) {
$avant_plan = imagecolorallocate($_img, rand(250, 225), rand(250, 225), rand(0, 25));
} else {
$avant_plan = imagecolorallocate($_img, rand(200, 225), rand(200, 225), rand(200, 225));
}
//Définition de la liste des caractères
$caracteres = "2345678azertypsdfhjkmwxcbn?";
$nb_caracteres = strlen($caracteres)-1;
$captcha = "";
for($i = 0; $i < $nbr_chiffres; $i++)
{
for ($i = 0; $i < $nbr_chiffres; $i++) {
$alea = mt_rand(0, $nb_caracteres);
$captcha .= $caracteres[$alea];
}
@ -49,10 +58,10 @@ unset($chiffre, $i, $caractere, $nbr_chiffres, $nb_caracteres, $caracteres);
$fontfile = './2.TTF';
//imagestring($_img, 5, 18, 8, $nombre, $avant_plan);
if ($fontfile == './0.TTF')
if ($fontfile == './0.TTF') {
ImageTTFText($_img, 20, 2, 0, 23, $avant_plan, $fontfile, strtoupper($captcha));
else
ImageTTFText($_img, 20, mt_rand(1,5), rand(1,7), 30, $avant_plan, $fontfile, $captcha);
} else {
ImageTTFText($_img, 20, mt_rand(1, 5), rand(1, 7), 30, $avant_plan, $fontfile, $captcha);
}
imagepng($_img);
?>

View file

@ -8,22 +8,17 @@ require_once(trim(file_get_contents('./.onyx')));
require_once("common.php"); //Chargement de tout le nécessaire pour le jeu
//On vérifie si le client est connecté sur le site
if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['id']) && empty($SESS->values['race']) && empty($SESS->level)) && isset($SESS->values['idPlan']) && isset($SESS->values['idAsteroide']))
{
if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['id']) && empty($SESS->values['race']) && empty($SESS->level)) && isset($SESS->values['idPlan']) && isset($SESS->values['idAsteroide'])) {
//Si un nouveau joueur cherche à se connecter du même endroit, on déconnecte le joueur en cours avant
$HB_login = gpc('l');
if (!empty($HB_login) && strtolower($HB_login) != strtolower(trouvNom($SESS->values['id'])))
{
if (!empty($HB_login) && strtolower($HB_login) != strtolower(trouvNom($SESS->values['id']))) {
require("server/logout.php");
}
elseif (!empty($HB_login))
{
} elseif (!empty($HB_login)) {
redirection("./".$VAR["first_page"]);
exit;
}
//Déconnexion de secours
elseif (isset($_GET["logout"]))
{
elseif (isset($_GET["logout"])) {
require("server/logout.php");
redirection("./".$VAR["first_page"]);
}
@ -53,42 +48,37 @@ if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['
$template->assign("race", $race);
//Connexion à la base de données ou reconnexion si la classe existe
if (isset($bdd))
if (isset($bdd)) {
$bdd->reconnexion();
else
} else {
$bdd = new BDD();
}
//Recherche de multicompte
$multi = $bdd->query("SELECT U.pseudo, R.id_util FROM $table_registre_identification R INNER JOIN $table_user U ON U.id = R.id_util WHERE R.ip = '$ip' GROUP BY R.ip, R.id_util HAVING R.id_util != $id_user;");
//On gère les demande de changement de planète
if (isset($_POST["planete"]))
{
if (preg_match("#A#", $_POST["planete"]))
{
if (isset($_POST["planete"])) {
if (preg_match("#A#", $_POST["planete"])) {
$idAsteroideTest = intval(substr(gpc("planete", "post"), 1));
if ($bdd->unique_query("SELECT id FROM $table_alliances WHERE id = $idAsteroideTest;") && $bdd->unique_query("SELECT id FROM $table_user WHERE id = $id_user AND id_alliance = $idAsteroideTest;"))
{
if ($bdd->unique_query("SELECT id FROM $table_alliances WHERE id = $idAsteroideTest;") && $bdd->unique_query("SELECT id FROM $table_user WHERE id = $id_user AND id_alliance = $idAsteroideTest;")) {
$SESS->values["idPlan"] = 0;
$SESS->values["idAsteroide"] = $idAsteroideTest;
$SESS->values["isolement"] = 0;
$SESS->put();
$template->assign("page","vp");
$template->assign("page", "vp");
$template->display("game/vp.tpl");
exit;
}
unset($idAsteroideTest);
}
else
{
} else {
$idPlanTest = intval(gpc("planete", "post"));
if ($bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = $id_user AND id = $idPlanTest;"))
{
if ($bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = $id_user AND id = $idPlanTest;")) {
$SESS->values["idPlan"] = $idPlanTest;
$SESS->values["idAsteroide"] = 0;
$SESS->values["isolement"] = 0;
$SESS->put();
$template->assign("page","vp");
$template->assign("page", "vp");
$template->display("game/vp.tpl");
exit;
}
@ -107,22 +97,17 @@ if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['
unset($queryMail1, $queryMail2);
//Chargement de la planète/astéroide actuel
if ($idPlan == 0 && $idAsteroide == 0)
{
trigger_error('Planète et Asteroïde nul, deconnexion du joueur '.$id_user,E_USER_ERROR);
if ($idPlan == 0 && $idAsteroide == 0) {
trigger_error('Planète et Asteroïde nul, deconnexion du joueur '.$id_user, E_USER_ERROR);
include("server/logout.php");
exit;
}
elseif ($idPlan == 0)
{
} elseif ($idPlan == 0) {
define('SURFACE', 'asteroide');
$planete = new Asteroide($idAsteroide);
$planete->actualiser();
//On charge les permissions de l'utilisateur pour l'alliance
$planete->loadPermissions($planete->fondateur);
}
else
{
} else {
define('SURFACE', 'planete');
$planete = new Planete($idPlan);
$planete->actualiser();
@ -130,8 +115,7 @@ if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['
unset($ip, $idAsteroide, $idPlan);
//On vérifie que le joueur ne soit pas en mode vacances forcé
if ($planete->mv > 0)
{
if ($planete->mv > 0) {
$SESS->close();
redirection($config["first_page"]."?mvf");
exit;
@ -149,8 +133,9 @@ if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['
$tpsdejeu = time() - $planete->last_visite;
$heur = floor($tpsdejeu/3600);
$min = floor(($tpsdejeu%3600)/60);
if ($heur > 0)
if ($heur > 0) {
$min = $heur." h ".$min;
}
$template->assign("tpsdejeu", $min." min");
unset($tpsdejeu, $heur, $min, $queryMail);
@ -158,27 +143,21 @@ if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['
$p = gpc('p');
//Vérification de l'isolement de la planète
if ((empty($SESS->values['isolement']) || time() >= $SESS->values['isolement']) && $p != 'operateur' && $p != 'demarrage' && $p != 'avertmulti' && $p != 'chat' && $p != 'rename' && $p != 'accueil' && $p != 'arbre' && $p != 'prochainement' && $p != 'options' && $p != 'messagerie' && $p != 'envoyer' && $p != 'classement' && $p != 'bugs' && $p != 'deconnexion')
{
if ((empty($SESS->values['isolement']) || time() >= $SESS->values['isolement']) && $p != 'operateur' && $p != 'demarrage' && $p != 'avertmulti' && $p != 'chat' && $p != 'rename' && $p != 'accueil' && $p != 'arbre' && $p != 'prochainement' && $p != 'options' && $p != 'messagerie' && $p != 'envoyer' && $p != 'classement' && $p != 'bugs' && $p != 'deconnexion') {
//TODO Si la planète est en isolement total, faire un autre message
if ($planete->isolement())
{
if ($planete->isolement()) {
$template->assign("titre", "Planète isolée");
erreur("Impossible de rentrer en contact avec cette planète.<br />Réessayez vers ".date('H:i', $planete->isolement[1]));
}
else
{
} else {
$SESS->values["isolement"] = $planete->isolement[0];
$SESS->put();
}
}
if (isset($SESS->values["avert"]) && $p != "avertmulti" && $p != "demarrage")
if (isset($SESS->values["avert"]) && $p != "avertmulti" && $p != "demarrage") {
include("server/avert.php");
else
{
switch($p)
{
} else {
switch ($p) {
case "batiments":
include("game/batiments.php");
break;
@ -294,18 +273,18 @@ if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['
include("pub.php");
$template->assign("page", $page);
if (isset($titre))
if (isset($titre)) {
$template->assign("titre", $titre);
}
$template->display("game/".$page.".tpl");
}
//Si le client n'est pas connecté au site
else
{
else {
include("server/connexion.php");
$p = gpc('p');
switch($p){
switch ($p) {
//Serveur principal
/* case "validation":
include('game/validation.php');
@ -348,6 +327,7 @@ else
break;
case "changeopt":
erreur("Vous devez être connecté pour affectuer cette action !");
// no break
case "connexion":
default:
$page = 'mini';
@ -359,4 +339,3 @@ else
}
$template->display('cms/'.$page.'.tpl');
}
?>

View file

@ -5,45 +5,42 @@
<body>
<h2>V&eacute;rification de l'int&eacute;grit&eacute; des fichiers</h2>
<?php
define ('FILE_SAV', "../onyx2/cache/checksum.php");
define ('dir_start', "../");
define('FILE_SAV', "../onyx2/cache/checksum.php");
define('dir_start', "../");
print 'Chargement du fichier de comparaison ...';
if (is_file('checkSum.php'))
{
if (is_file('checkSum.php')) {
print ' Touv&eacute; ...';
$SUM = sha1(file_get_contents('checkSum.php'));
print ' Donn&eacute;es charg&eacute;es avec succ&egrave;s<br /><br />';
}
}
print 'V&eacute;rification du fichier de validation ...';
if (sha1(sha1_file(__FILE__)) != $SUM)
if (sha1(sha1_file(__FILE__)) != $SUM) {
die(' INVALIDE !<br />Arr&ecirc;t du processus de validation !');
else
} else {
print ' Valide<br /><br />';
}
print 'Recherche du fichier de sauvegarde ...';
if (is_file(FILE_SAV) && !isset($_GET['erase']))
{
if (is_file(FILE_SAV) && !isset($_GET['erase'])) {
function parcourDir($dir, $sums)
{
if (isset($_GET['v']))
if (isset($_GET['v'])) {
print "<br />Parcours du dossier &agrave; la recherche de nouveaux fichiers : ".$dir;
}
$new = 0;
$pointeur = opendir($dir);
while ($fichier = readdir($pointeur))
{
if($fichier == '.' || $fichier == '..' || $fichier == '.svn' || preg_match("#~#", $fichier))
while ($fichier = readdir($pointeur)) {
if ($fichier == '.' || $fichier == '..' || $fichier == '.svn' || preg_match("#~#", $fichier)) {
continue;
}
if(is_dir($dir.$fichier) && is_readable($dir.$fichier))
if (is_dir($dir.$fichier) && is_readable($dir.$fichier)) {
$new += parcourDir($dir.$fichier.'/', $sums);
elseif(is_file($dir.$fichier))
{
if (!isset($sums[$dir.$fichier]))
{
} elseif (is_file($dir.$fichier)) {
if (!isset($sums[$dir.$fichier])) {
$new++;
print "<tr style=\"background: #00FFFF;\"><td>".$dir.$fichier."</td><td style=\"text-align: center;\">Nouveau fichier !</td></tr>";
}
@ -56,74 +53,71 @@ if (is_file(FILE_SAV) && !isset($_GET['erase']))
print ' Trouv&eacute;<br /><br />';
if (isset($_GET["check"]))
{
if (isset($_GET["check"])) {
print 'Contr&ocirc;le de la somme de la derni&egrave;re validation ...';
if (sha1(sha1_file(FILE_SAV).'<^>'.sha1_file(__FILE__).sha1_file('checkSum.php')) == $_GET["check"])
if (sha1(sha1_file(FILE_SAV).'<^>'.sha1_file(__FILE__).sha1_file('checkSum.php')) == $_GET["check"]) {
print ' <span style="color: #00FF00;">Authentique</span><br /><br />';
else
die (' Invalide !<br />Arr&ecirc;t du processus de v&eacute;rification !');
} else {
die(' Invalide !<br />Arr&ecirc;t du processus de v&eacute;rification !');
}
else
} else {
print '<span style="color: #FF0000; font-weigth: bold;">Les r&eacute;sultats pr&eacute;sent&eacute;s ci-dessus ne peuvent pas &ecirc;tre authentifi&eacute;s sans la somme d\'un pr&eacute;c&eacute;dent contr&ocirc;le, rien ne dit que les fichiers de validation n\'ont pas &eacute;t&eacute; modifi&eacute;s !</span><br /><br />';
}
$start = unserialize(file_get_contents(FILE_SAV));
print ' V&eacute;rification des fichiers ...';
print '<table border="1" style=""><tr><th>Nom du fichier</th><th>D&eacute;tails</th></tr>';
$alerte = 0;
foreach($start as $key => $sum)
{
if (!is_file($key))
{
foreach ($start as $key => $sum) {
if (!is_file($key)) {
$alerte++;
if (!isset($_GET['a']))
if (!isset($_GET['a'])) {
print "<tr style=\"background: #FFCC00;\"><td>".$key."</td><td style=\"text-align: center;\">Fichier supprim&eacute; !</td></tr>";
}
elseif (sha1_file($key) != $sum)
{
} elseif (sha1_file($key) != $sum) {
$alerte++;
print "<tr style=\"background: #FF0000;\"><td>".$key."</td><td style=\"text-align: center;\">Alerte de diff&eacute;rence de somme !</td></tr>";
}
elseif (isset($_GET['v']))
} elseif (isset($_GET['v'])) {
print "<tr style=\"background: #00FF00;\"><td>".$key."</td><td style=\"text-align: center;\">Ok</td></tr>";
}
}
$newFiles = parcourDir(dir_start, $start);
print '</table>';
print '<br />Fin de la v&eacute;rification : '.$alerte.' alerte(s) sur '.count($start).' fichier(s). '.$newFiles.' nouveau(x) fichier(s).';
print '<br /><br />Cont&ocirc;le de la prochaine validation : '.sha1(sha1_file(FILE_SAV).'<^>'.sha1_file(__FILE__).sha1_file('checkSum.php'));
}
else
{
if (isset($_GET['erase']) && $_GET['erase'] == $SUM)
} else {
if (isset($_GET['erase']) && $_GET['erase'] == $SUM) {
print ' Trouv&eacute;<br />D&eacute;tection d\'une demande d\'effacement<br /><br />';
elseif (!is_file(FILE_SAV))
} elseif (!is_file(FILE_SAV)) {
//print ' Introuvable<br /><br />';
die (' Introuvable<br /><br />Arr&ecirc;t de la v&eacute;rification.');
else
die(' Introuvable<br /><br />Arr&ecirc;t de la v&eacute;rification.');
} else {
die(' ?<br /><br />Impossible de d&eacute;terminer l\'origine de la requ&ecirc;te !<br />Arr&ecirc;t de la v&eacute;rification.');
}
function extractDir($dir)
{
$sums = array();
if (isset($_GET['v']))
if (isset($_GET['v'])) {
print "<br />G&eacute;n&eacute;ration des sommes de fichiers pour le dossier : ".$dir;
}
$pointeur = opendir($dir);
while ($fichier = readdir($pointeur))
{
if($fichier == '.' || $fichier == '..' || $fichier == '.svn' || preg_match("#~#", $fichier))
while ($fichier = readdir($pointeur)) {
if ($fichier == '.' || $fichier == '..' || $fichier == '.svn' || preg_match("#~#", $fichier)) {
continue;
}
if(is_dir($dir.$fichier) && is_readable($dir.$fichier))
if (is_dir($dir.$fichier) && is_readable($dir.$fichier)) {
$sums = array_merge($sums, extractDir($dir.$fichier.'/'));
elseif(is_file($dir.$fichier))
} elseif (is_file($dir.$fichier)) {
$sums[$dir.$fichier] = sha1_file($dir.$fichier);
}
}
closedir($pointeur);
return $sums;
@ -137,7 +131,7 @@ else
print "&Eacute;criture du fichier.<br />";
file_put_contents(FILE_SAV, serialize($sums));
print "Fin de l'op&eacute;ration.<br />";
}
}
?>
</body>
</html>

View file

@ -1,4 +1,4 @@
<html>
<html>
<head>
<title>.: Halo-Battle :: Lecteur de log :.</title>
<style>
@ -13,51 +13,49 @@
<?php
define('dir', '../onyx2/log');
if(!is_dir(dir))
if (!is_dir(dir)) {
die('Dossier introuvable !');
}
if (empty($_GET['file']) || is_dir(dir.$_GET['file']))
{
if (!empty($_GET['file']) && str_replace("..", '' , $_GET['file']) != $_GET['file'])
if (empty($_GET['file']) || is_dir(dir.$_GET['file'])) {
if (!empty($_GET['file']) && str_replace("..", '', $_GET['file']) != $_GET['file']) {
die('Accès au fichier non autorisé !');
elseif (empty($_GET['file']))
} elseif (empty($_GET['file'])) {
$_GET['file'] = '';
}
$pointeur = opendir(dir.$_GET['file']);
print 'Dossier en cours : '.dir.$_GET['file'].'<br /><br />';
while ($fichier = readdir($pointeur))
{
if($fichier == '.' || $fichier == '..')
while ($fichier = readdir($pointeur)) {
if ($fichier == '.' || $fichier == '..') {
continue;
}
print '<a href="?file='.$_GET['file'].'/'.$fichier.'">'.$fichier.'</a><br />';
}
}
else
{
if (!empty($_GET['file']) && str_replace("..", '' , $_GET['file']) != $_GET['file'])
} else {
if (!empty($_GET['file']) && str_replace("..", '', $_GET['file']) != $_GET['file']) {
die('Accès au fichier non autorisé !');
}
$file = dir.$_GET['file'];
print '<h3><ins>Fichier :</ins> '.$file.'</h3><hr />';
if(!is_file($file))
if (!is_file($file)) {
die('Fichier introuvable !');
}
$fichier = @fopen($file,'r+');
$contenu_log = fread($fichier,filesize($file));
$fichier = @fopen($file, 'r+');
$contenu_log = fread($fichier, filesize($file));
fclose($fichier);
$exp = "#\[(\d{2}/\d{2}/\d{2} \d{2}:\d{2}:\d{2})\] (\\w{6,13}) : ([^\[]{0,1000}) \[(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})\] \[(\w{3,4})\] \[/([^\[]{1,200})\] \[([^\[]{0,200})\] \[([^\[]{0,75})\]#ui";
preg_match_all($exp,htmlentities(trim(str_replace("\n", ' ', $contenu_log))),$m);
preg_match_all($exp, htmlentities(trim(str_replace("\n", ' ', $contenu_log))), $m);
if (empty($m[0][0]))
{
if (empty($m[0][0])) {
print '<pre>'.$contenu_log.'</pre>';
}
else
{
} else {
print '<table border="1">
<thead>
<tr>
@ -68,38 +66,39 @@ else
</tr>
</thead>
<tbody>';
foreach($m[0] as $key => $lign)
{
if (preg_match('#array#', $m[3][$key]))
{
foreach ($m[0] as $key => $lign) {
if (preg_match('#array#', $m[3][$key])) {
$exp = "#array \(( '(.{1,10})' =&gt; '([^',]{0,1000})',)( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?( '(.{1,10})' =&gt; '([^',]{0,1000})',)?#ui";
preg_match_all($exp,$m[3][$key],$mArray);
preg_match_all($exp, $m[3][$key], $mArray);
$m[3][$key] = '';
foreach($mArray as $k => $lign)
{
if ($k == 0 || $k%3 == 1)
foreach ($mArray as $k => $lign) {
if ($k == 0 || $k%3 == 1) {
continue;
}
if ($lign[0] == "")
if ($lign[0] == "") {
break;
if ($k%3 == 2)
}
if ($k%3 == 2) {
$m[3][$key] .= '<b>'.$lign[0].' : </b>';
else
$m[3][$key] .= (strlen($lign[0])>80?'<acronym title="'.$lign[0].'">'.substr($lign[0],0,77).'...</acronym>':$lign[0]).'<br />';
} else {
$m[3][$key] .= (strlen($lign[0])>80?'<acronym title="'.$lign[0].'">'.substr($lign[0], 0, 77).'...</acronym>':$lign[0]).'<br />';
}
}
}
if ($m[2][$key] == "ERREUR")
if ($m[2][$key] == "ERREUR") {
print '<tr style="background: #FF0000;">';
elseif ($m[2][$key] == "AVERTISSEMENT")
} elseif ($m[2][$key] == "AVERTISSEMENT") {
print '<tr style="background: #FFCC00;">';
else
} else {
print '<tr>';
}
print '
<td>'.$m[1][$key].'<br />'.$m[5][$key].'</td>
<td>'.$m[2][$key].'<br />'.(strlen($m[6][$key])>30?'<acronym title="'.$m[6][$key].'">'.substr($m[6][$key],0,27).'...</acronym>':$m[6][$key]).'</td>
<td>'.$m[2][$key].'<br />'.(strlen($m[6][$key])>30?'<acronym title="'.$m[6][$key].'">'.substr($m[6][$key], 0, 27).'...</acronym>':$m[6][$key]).'</td>
<td>'.$m[3][$key].'</td>
<td><acronym title="'.$m[7][$key].'">'.$m[4][$key].'</acronym><br />'.$m[8][$key].'</td>
</tr>';

View file

@ -2,7 +2,7 @@
//Définition de la constante anti-hacking
define("INDEX", 1);
define("DEBUG", false);
define("xCSRF",true); //On annule la vérification des attaques CSRF car on sait que toutes les requêtes viennent d'un autre serveur, deplus les risques sont minimes
define("xCSRF", true); //On annule la vérification des attaques CSRF car on sait que toutes les requêtes viennent d'un autre serveur, deplus les risques sont minimes
//Inclusion de l'API Onyx
require_once(trim(file_get_contents('./.onyx')));
@ -15,30 +15,33 @@ function separerNombres($int)
$id = gpc('i');
if (!is_numeric($id)) $id = 0;
if (!is_numeric($id)) {
$id = 0;
}
$f = gpc('f');
$s = gpc('s');
header ("Content-type: image/png");
header("Content-type: image/png");
if (file_exists(ONYX."cache/signatures/".$id.".".$f.$s.".sign") && time() - filemtime(ONYX."cache/signatures/".$id.".".$f.$s.".sign") < 36000) {
readfile(ONYX."cache/signatures/".$id.".".$f.$s.".sign");
}
else {
} else {
$fontfile = ONYX."include/content/signatures/ARIAL.TTF";
$bdd = new BDD();
$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;");
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){
if (!empty($s) && $joueur['auth_level'] >= 1) {
switch ($s) {
case 1:
$img = 'mixte1userbarju7.png';
$_img = imagecreatefrompng(ONYX."include/content/signatures/".$img);
@ -87,11 +90,13 @@ else {
)
);
}
if ($joueur['race'] == 'covenant') $_imgavatar = imagecreatefrompng(ONYX."include/content/signatures/covi.png");
else $_imgavatar = imagecreatefrompng(ONYX."include/content/signatures/hum.png");
if ($joueur['race'] == 'covenant') {
$_imgavatar = imagecreatefrompng(ONYX."include/content/signatures/covi.png");
} else {
$_imgavatar = imagecreatefrompng(ONYX."include/content/signatures/hum.png");
}
elseif ($joueur['race'] == 'covenant') {
switch($f){
} elseif ($joueur['race'] == 'covenant') {
switch ($f) {
case 1:
$img = 'userbarallicopygs1.png';
$_img = imagecreatefrompng(ONYX."include/content/signatures/".$img);
@ -141,9 +146,8 @@ else {
);
}
$_imgavatar = imagecreatefrompng(ONYX."include/content/signatures/covi.png");
}
else {
switch($f){
} else {
switch ($f) {
case 1:
$img = 'userbarallicopygs1.png';
$_img = imagecreatefrompng(ONYX."include/content/signatures/".$img);
@ -205,24 +209,34 @@ else {
if ($joueur == false) {
ImageTTFText($_img, 20, -20, 123, 17, $rouge, $fontfile, 'Joueur introuvable !');
if (file_exists(ONYX."/cache/signatures/".$id.".".$f.$s.".sign")) unlink(ONYX."/cache/signatures/".$id.".".$f.$s.".sign");
if (file_exists(ONYX."/cache/signatures/".$id.".".$f.$s.".sign")) {
unlink(ONYX."/cache/signatures/".$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']));
}
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, $VAR['serveur_name']);
if (isset($joueur['tag'])) {
if (empty($joueur['place_points'])) ImageTTFText($_img, 11, 0, 32, 47, $contenu, $fontfile, "Classement : Non classé");
else 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?'...':''));
if (empty($joueur['place_points'])) {
ImageTTFText($_img, 11, 0, 32, 47, $contenu, $fontfile, "Classement : Non classé");
} else {
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 {
if (empty($joueur['place_points'])) {
ImageTTFText($_img, 11, 0, 32, 55, $contenu, $fontfile, "Classement : Non classé");
} else {
ImageTTFText($_img, 11, 0, 32, 55, $contenu, $fontfile, "Classement : ".separerNombres($joueur['place_points']).($joueur['place_points']==1?'er':'ème'));
}
else {
if (empty($joueur['place_points'])) ImageTTFText($_img, 11, 0, 32, 55, $contenu, $fontfile, "Classement : Non classé");
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']));
}
@ -236,10 +250,10 @@ else {
imagealphablending($_img, false);
imagesavealpha($_img, true);
if ($joueur == false) imagepng($_img);
else {
if ($joueur == false) {
imagepng($_img);
} else {
imagepng($_img, ONYX."cache/signatures/".$id.".".$f.$s.".sign");
readfile(ONYX."cache/signatures/".$id.".".$f.$s.".sign");
}
}
?>

View file

@ -31,4 +31,3 @@ $SESS->put();
$file->DEBUG__print();
var_dump($planete->vaisseaux);
var_dump($planete->modif);
?>

View file

@ -23,4 +23,3 @@ $planete2->position = 2;
$vaisseaux = array(1);
print Flotte::calc_deplacement($planete1, 1, 1, 2, 1, $vaisseaux, 123456789);
?>

View file

@ -9,4 +9,3 @@ require_once("common.php"); //Chargement de tout le nécessaire pour le jeu
require_once("donnees.php");
var_dump(bourse_calcPrixBase("640623608", 4000, 2));
?>

View file

@ -11,4 +11,3 @@ require_once("common.php"); //Chargement de tout le nécessaire pour le jeu
var_dump(check_mdp("AzErTyUiOp"));
?>

View file

@ -10,11 +10,9 @@ require_once("common.php"); //Chargement de tout le nécessaire pour le jeu
function traiterfichier($uri, &$list)
{
$fp = fopen($uri, "r");
while (!feof($fp))
{
while (!feof($fp)) {
$buffer = fgets($fp);
if (preg_match("#^([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})#", $buffer, $match))
{
if (preg_match("#^([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})#", $buffer, $match)) {
var_dump($match);
}
}
@ -33,4 +31,3 @@ $bdd->query("INSERT INTO proxy_list VALUES ('".implode("'),('", $list)."');");
$bdd->deconnexion();
print "Procédure terminée, ".count($list)." proxys listés.";
?>

View file

@ -4,4 +4,3 @@ $referer = "http://beta.halo-battle.fr/";
var_dump($referer, preg_match("#^http://(\w{1,4}\.)?halo-battle\.(fr|net|com|org|us|en)#", $referer, $osef), $osef);
//var_dump($referer, preg_match("#^http://[\.|www\.|beta\.]halo-battle\.[fr|net|com|org|us|en|]#ui", $osef), $osef);
?>

View file

@ -1,14 +1,14 @@
<?php
if(!defined('ONYX')) exit;
if (!defined('ONYX')) {
exit;
}
$___profile['db'] = 'hb_game';
if (getenv("MYSQL_HOST") === False) {
if (getenv("MYSQL_HOST") === false) {
$___profile['host'] = 'localhost';
} else {
$___profile['host'] = getenv("MYSQL_HOST");
}
$___profile['user'] = 'hb';
$___profile['pass'] = 'hb';
?>

View file

@ -5,8 +5,7 @@ class dAlliancesBatiments implements Donnees
{
public static function metal($id, $niveau, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$metal = ceil(pow(1.5, $niveau)*68);
break;
@ -34,8 +33,7 @@ class dAlliancesBatiments implements Donnees
public static function cristal($id, $niveau, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$cristal = ceil(pow(1.5, $niveau)*17);
break;
@ -63,8 +61,7 @@ class dAlliancesBatiments implements Donnees
public static function hydrogene($id, $niveau, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$hydrogene = 0;
break;
@ -92,8 +89,7 @@ class dAlliancesBatiments implements Donnees
public static function credits($id, $niveau, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$credits = ceil(pow(1.68, $niveau)*25);
break;
@ -121,8 +117,7 @@ class dAlliancesBatiments implements Donnees
public static function temps($id, $niveau, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$sec = pow(1.5, $niveau)*6;
break;
@ -154,29 +149,24 @@ class dAlliancesBatiments implements Donnees
public static function image($id, surface $planete)
{
if ($planete->race == "covenant")
{
switch($id)
{
if ($planete->race == "covenant") {
switch ($id) {
case 0:
//return "batimentcovieux4.jpg";
break;
}
return Donnees::image_covenant_default;
}
elseif ($planete->race == "humain")
{
switch($id)
{
} elseif ($planete->race == "humain") {
switch ($id) {
case 0:
//return "batimentcovieux4.jpg";
break;
}
return Donnees::image_humain_default;
}
else
} else {
trigger_error("Impossible de trouver la race pour ".$planete->race, E_USER_ERROR);
}
}
public static function needed($id, surface $planete, $print = false)
@ -201,10 +191,10 @@ class dAlliancesBatiments implements Donnees
)
);
if ($print)
if ($print) {
return dDonnees::print_neededCheck($neededAlliancesBatiments[$id], $planete);
else
} else {
return dDonnees::neededCheck($neededAlliancesBatiments[$id], $planete);
}
}
}
?>

View file

@ -5,8 +5,7 @@ class dBatiments implements Donnees
{
public static function metal($id, $niveau, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$metal = ceil(pow(1.5, $niveau)*68);
break;
@ -49,7 +48,7 @@ class dBatiments implements Donnees
$metal = ceil(pow($niveau, 2.075)*1000+1500);
break;
case 13:
$metal = ceil(pow($niveau,2.8)*1000+299000);
$metal = ceil(pow($niveau, 2.8)*1000+299000);
break;
case 14:
$metal = ceil(pow($niveau, 2)*1200+140000);
@ -69,18 +68,12 @@ class dBatiments implements Donnees
//On tient compte des bonus
//Bonus technologique pour les mines
if ($id <= 3)
{
if ($planete->technologies[0] &262144)
{
if ($id <= 3) {
if ($planete->technologies[0] &262144) {
$metal *= 0.85;
}
elseif ($planete->technologies[0] &131072)
{
} elseif ($planete->technologies[0] &131072) {
$metal *= 0.9;
}
elseif ($planete->technologies[0] &65536)
{
} elseif ($planete->technologies[0] &65536) {
$metal *= 0.95;
}
}
@ -90,8 +83,7 @@ class dBatiments implements Donnees
public static function cristal($id, $niveau, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$cristal = ceil(pow(1.5, $niveau)*17);
break;
@ -134,7 +126,7 @@ class dBatiments implements Donnees
$cristal = ceil(pow($niveau, 1.8)*1000+1000);
break;
case 13:
$cristal = ceil(pow($niveau,2.5)*1000+149000);
$cristal = ceil(pow($niveau, 2.5)*1000+149000);
break;
case 14:
$cristal = ceil(pow($niveau, 2)*900+99000);
@ -154,18 +146,12 @@ class dBatiments implements Donnees
//On tient compte des bonus
//Bonus technologique pour les mines
if ($id <= 3)
{
if ($planete->technologies[0] &262144)
{
if ($id <= 3) {
if ($planete->technologies[0] &262144) {
$cristal *= 0.85;
}
elseif ($planete->technologies[0] &131072)
{
} elseif ($planete->technologies[0] &131072) {
$cristal *= 0.9;
}
elseif ($planete->technologies[0] &65536)
{
} elseif ($planete->technologies[0] &65536) {
$cristal *= 0.95;
}
}
@ -175,8 +161,7 @@ class dBatiments implements Donnees
public static function hydrogene($id, $niveau, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$hydrogene = 0;
break;
@ -239,18 +224,12 @@ class dBatiments implements Donnees
//On tient compte des bonus
//Bonus technologique pour les mines
if ($id <= 3)
{
if ($planete->technologies[0] &262144)
{
if ($id <= 3) {
if ($planete->technologies[0] &262144) {
$hydrogene *= 0.85;
}
elseif ($planete->technologies[0] &131072)
{
} elseif ($planete->technologies[0] &131072) {
$hydrogene *= 0.9;
}
elseif ($planete->technologies[0] &65536)
{
} elseif ($planete->technologies[0] &65536) {
$hydrogene *= 0.95;
}
}
@ -265,8 +244,7 @@ class dBatiments implements Donnees
public static function temps($id, $niveau, surface $planete, $demolition = false)
{
switch($id)
{
switch ($id) {
case 0:
$sec = pow(1.5, $niveau)*6;
break;
@ -327,24 +305,25 @@ class dBatiments implements Donnees
}
//On applique le bonus de temps des ingénieurs et des centrales informatiques
if ($id == 11 && $planete->casernes[7])
if ($id == 11 && $planete->casernes[7]) {
$sec /= (1.0025 * $planete->casernes[7]);
elseif ($id != 11 && ($planete->casernes[7] || $planete->batiments[11]))
} elseif ($id != 11 && ($planete->casernes[7] || $planete->batiments[11])) {
$sec /= (pow(1.23, $planete->batiments[11]) + 1.0025 * $planete->casernes[7]);
}
//Accélération du temps de construction
$sec /= VITESSE;
if ($demolition)
if ($demolition) {
return $sec * Donnees::coeff_demolition;
else
} else {
return $sec;
}
}
public static function type($id)
{
switch($id)
{
switch ($id) {
case 0:
case 1:
case 2:
@ -376,10 +355,8 @@ class dBatiments implements Donnees
public static function image($id, surface $planete)
{
if ($planete->race == "covenant")
{
switch($id)
{
if ($planete->race == "covenant") {
switch ($id) {
case 0:
return "batimentcovieux4.jpg";
break;
@ -418,11 +395,8 @@ class dBatiments implements Donnees
break;
}
return Donnees::image_covenant_default;
}
elseif ($planete->race == "humain")
{
switch($id)
{
} elseif ($planete->race == "humain") {
switch ($id) {
case 0:
return "mine_m.jpg";
break;
@ -461,16 +435,16 @@ class dBatiments implements Donnees
break;
}
return Donnees::image_humain_default;
}
else
} else {
trigger_error("Impossible de trouver la race pour ".$planete->race, E_USER_ERROR);
}
}
public static function needed($id, surface $planete, $print = false)
{
$neededBatiments =
array (
array(
0,
0,
0,
@ -508,10 +482,10 @@ class dBatiments implements Donnees
0
);
if ($print)
if ($print) {
return dDonnees::print_neededCheck($neededBatiments[$id], $planete);
else
} else {
return dDonnees::neededCheck($neededBatiments[$id], $planete);
}
}
}
?>

View file

@ -5,8 +5,7 @@ class dCaserne implements Donnees
{
public static function metal($id, $nombre, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$metal = 80;
break;
@ -39,16 +38,16 @@ class dCaserne implements Donnees
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
if (isset($planete->politique) && $planete->politique == 1) {
$metal *= 0.9;
}
return $metal * $nombre;
}
public static function cristal($id, $nombre, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$cristal = 45;
break;
@ -81,16 +80,16 @@ class dCaserne implements Donnees
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
if (isset($planete->politique) && $planete->politique == 1) {
$cristal *= 0.9;
}
return $cristal * $nombre;
}
public static function hydrogene($id, $nombre, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$hydrogene = 0;
break;
@ -123,8 +122,9 @@ class dCaserne implements Donnees
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
if (isset($planete->politique) && $planete->politique == 1) {
$hydrogene *= 0.9;
}
return $hydrogene * $nombre;
}
@ -136,8 +136,7 @@ class dCaserne implements Donnees
public static function temps($id, $nombre, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$temps = 60;
$moins = 1;
@ -188,11 +187,9 @@ class dCaserne implements Donnees
public static function image($id, surface $planete)
{
if ($planete->race == "covenant")
{
if ($planete->race == "covenant") {
array('','','','','','','','','');
switch($id)
{
switch ($id) {
case 0:
return "grunt1.jpg";
break;
@ -222,11 +219,8 @@ class dCaserne implements Donnees
break;
}
return Donnees::image_covenant_default;
}
elseif ($planete->race == "humain")
{
switch($id)
{
} elseif ($planete->race == "humain") {
switch ($id) {
case 0:
return "marines.jpg";
break;
@ -253,10 +247,10 @@ class dCaserne implements Donnees
break;
}
return Donnees::image_humain_default;
}
else
} else {
trigger_error("Impossible de trouver la race pour ".$planete->race, E_USER_ERROR);
}
}
public static function needed($id, surface $planete, $print = false)
@ -292,10 +286,10 @@ class dCaserne implements Donnees
)
);
if ($print)
if ($print) {
return dDonnees::print_neededCheck($neededCaserne[$id], $planete);
else
} else {
return dDonnees::neededCheck($neededCaserne[$id], $planete);
}
}
}
?>

View file

@ -1,5 +1,7 @@
<?php
if(!defined('ONYX')) exit;
if (!defined('ONYX')) {
exit;
}
interface Donnees
{
@ -19,53 +21,63 @@ interface Donnees
public static function needed($id, surface $planete, $print = false);
}
class dDonnees{
static function tailleFile(surface $planete)
class dDonnees
{
public static function tailleFile(surface $planete)
{
//On calcul la taille maximale de la file d'attente
if (!empty($planete->technologies[1]))
{
if (($planete->technologies[1] &131072) == 131072) return 5;
elseif (($planete->technologies[1] &65536) == 65536) return 4;
elseif (($planete->technologies[1] &32768) == 32768) return 3;
else return 2;
if (!empty($planete->technologies[1])) {
if (($planete->technologies[1] &131072) == 131072) {
return 5;
} elseif (($planete->technologies[1] &65536) == 65536) {
return 4;
} elseif (($planete->technologies[1] &32768) == 32768) {
return 3;
} else {
return 2;
}
else return 3; //Au cas où il n'y ait pas de technologie sur le lieu, on fixe la taille de la file d'attente
} else {
return 3;
} //Au cas où il n'y ait pas de technologie sur le lieu, on fixe la taille de la file d'attente
}
static function neededCheck($tableau, surface $planete)
{
if (!is_array($tableau)) return true;
else
{
foreach ($tableau as $need)
{
switch($need[0])
public static function neededCheck($tableau, surface $planete)
{
if (!is_array($tableau)) {
return true;
} else {
foreach ($tableau as $need) {
switch ($need[0]) {
case 'batiments':
if (get_class($planete) == "Planete" && $planete->batiments[$need[1]] < $need[2])
if (get_class($planete) == "Planete" && $planete->batiments[$need[1]] < $need[2]) {
return false;
}
break;
case 'batiments_max':
if (get_class($planete) == "Planete" && $planete->batiments[$need[1]] > $need[2])
if (get_class($planete) == "Planete" && $planete->batiments[$need[1]] > $need[2]) {
return false;
}
break;
case 'technologies':
if (((int)$planete->technologies[$need[1]]& dTechnologies::idToBit($need[2])) == 0)
if (((int)$planete->technologies[$need[1]]& dTechnologies::idToBit($need[2])) == 0) {
return false;
}
break;
case 'casernes':
if ($planete->casernes[$need[1]] < $need[2])
if ($planete->casernes[$need[1]] < $need[2]) {
return false;
}
break;
case 'terrestres':
if ($planete->terrestres[$need[1]] < $need[2])
if ($planete->terrestres[$need[1]] < $need[2]) {
return false;
}
break;
case 'vaisseaux':
if ($planete->vaisseaux[$need[1]] < $need[2])
if ($planete->vaisseaux[$need[1]] < $need[2]) {
return false;
}
break;
default:
return false;
@ -75,53 +87,57 @@ class dDonnees{
}
}
static function print_neededCheck($tableau, surface $planete)
public static function print_neededCheck($tableau, surface $planete)
{
global $LANG;
$race = $planete->race;
if (!is_array($tableau)) return 'Débloqué';
else
{
if (!is_array($tableau)) {
return 'Débloqué';
} else {
$return = '';
foreach ($tableau as $need)
{
switch($need[0])
{
foreach ($tableau as $need) {
switch ($need[0]) {
case 'batiments':
if ($planete->batiments[$need[1]] < $need[2])
if ($planete->batiments[$need[1]] < $need[2]) {
$return .= '<span class="lack">'.ucfirst($LANG[$race]["batiments"]["noms_sing"][$need[1]]).' niveau '.$need[2].' (batiment)</span><br />';
else
} else {
$return .= ucfirst($LANG[$race]["batiments"]["noms_sing"][$need[1]]).' niveau '.$need[2].' (batiment)<br />';
}
break;
case 'batiments_max':
if ($planete->batiments[$need[1]] > $need[2])
if ($planete->batiments[$need[1]] > $need[2]) {
$return .= '<span class="lack">'.ucfirst($LANG[$race]["batiments"]["noms_sing"][$need[1]]).' < niveau '.($need[2]+1).' (batiment)</span><br />';
else
} else {
$return .= ucfirst($LANG[$race]["batiments"]["noms_sing"][$need[1]]).' < niveau '.($need[2]+1).' (batiment)<br />';
}
break;
case 'technologies':
if (((int)$planete->technologies[$need[1]]& dTechnologies::idToBit($need[2])) == 0)
if (((int)$planete->technologies[$need[1]]& dTechnologies::idToBit($need[2])) == 0) {
$return .= '<span class="lack">'.$LANG[$race]["technologies"]["noms_sing"][$need[1]][$need[2]].' (technologie)</span><br />';
else
} else {
$return .= $LANG[$race]["technologies"]["noms_sing"][$need[1]][$need[2]].' (technologie)<br />';
}
break;
case 'casernes':
if ($planete->casernes[$need[1]] < $need[2])
if ($planete->casernes[$need[1]] < $need[2]) {
$return .= '<span class="lack">'.$need[2].' '.$LANG[$race]["caserne"]["noms_pluriel"][$need[1]].' (unité de la caserne)</span><br />';
else
} else {
$return .= $need[2].' '.$LANG[$race]["caserne"]["noms_pluriel"][$need[1]].' (unité de la caserne)<br />';
}
break;
case 'terrestres':
if ($planete->terrestres[$need[1]] < $need[2])
if ($planete->terrestres[$need[1]] < $need[2]) {
$return .= '<span class="lack">'.$need[2].' '.$LANG[$race]["terrestre"]["noms_pluriel"][$need[1]].' (unité du chantier terrestre)</span><br />';
else
} else {
$return .= $need[2].' '.$LANG[$race]["terrestre"]["noms_pluriel"][$need[1]].' (unité du chantier terrestre)<br />';
}
break;
case 'vaisseaux':
if ($planete->vaisseaux[$need[1]] < $need[2])
if ($planete->vaisseaux[$need[1]] < $need[2]) {
$return .= '<span class="lack">'.$need[2].' '.$LANG[$race]["vaisseaux"]["noms_pluriel"][$need[1]].' (unité du chantier spatial)</span><br />';
else
} else {
$return .= $need[2].' '.$LANG[$race]["vaisseaux"]["noms_pluriel"][$need[1]].' (unité du chantier spatial)<br />';
}
break;
}
}
@ -129,34 +145,34 @@ class dDonnees{
}
}
static function nameVAR($name)
public static function nameVAR($name)
{
if ($name == "alli_batiments")
if ($name == "alli_batiments") {
return "alli_batiments";
elseif ($name == "batiments")
} elseif ($name == "batiments") {
return "batiments";
elseif ($name == "technologies")
} elseif ($name == "technologies") {
return "technologies";
elseif ($name == "casernes")
} elseif ($name == "casernes") {
return "caserne";
elseif ($name == "terrestres")
} elseif ($name == "terrestres") {
return "terrestre";
elseif ($name == "vaisseaux")
} elseif ($name == "vaisseaux") {
return "spatial";
elseif ($name == "coeff_bat")
} elseif ($name == "coeff_bat") {
return "coeff";
}
}
static function capaciteVilles(surface $planete)
public static function capaciteVilles(surface $planete)
{
return $planete->cases * pow($planete->batiments[17], -3) + 10;
}
static function nameVilles($level)
{
switch ($level)
public static function nameVilles($level)
{
switch ($level) {
case 0:
case 1:
case 2:
@ -199,4 +215,3 @@ class dDonnees{
}
}
}
?>

View file

@ -5,8 +5,7 @@ class dSpatial implements Donnees
{
public static function metal($id, $nombre, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$metal = 1000;
break;
@ -54,16 +53,16 @@ class dSpatial implements Donnees
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
if (isset($planete->politique) && $planete->politique == 1) {
$metal *= 0.9;
}
return $metal * $nombre;
}
public static function cristal($id, $nombre, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$cristal = 800;
break;
@ -111,16 +110,16 @@ class dSpatial implements Donnees
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
if (isset($planete->politique) && $planete->politique == 1) {
$cristal *= 0.9;
}
return $cristal * $nombre;
}
public static function hydrogene($id, $nombre, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$hydrogene = 0;
break;
@ -168,8 +167,9 @@ class dSpatial implements Donnees
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
if (isset($planete->politique) && $planete->politique == 1) {
$hydrogene *= 0.9;
}
return $hydrogene * $nombre;
}
@ -181,8 +181,7 @@ class dSpatial implements Donnees
public static function temps($id, $nombre, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$temps = 1080;
$moins = 1;
@ -247,19 +246,18 @@ class dSpatial implements Donnees
$temps /= VITESSE;
//On tient compte des bonus
if (SURFACE == "planete")
if (SURFACE == "planete") {
return ceil($temps/pow(1.25, ($planete->batiments[8] - $moins))) * $nombre;
else
} else {
return ($temps * $nombre);
}
}
public static function image($id, surface $planete)
{
if ($planete->race == "covenant")
{
switch($id)
{
if ($planete->race == "covenant") {
switch ($id) {
case 0:
return "cargo2pb6.jpg";
break;
@ -295,11 +293,8 @@ class dSpatial implements Donnees
break;
}
return Donnees::image_covenant_default;
}
elseif ($planete->race == "humain")
{
switch($id)
{
} elseif ($planete->race == "humain") {
switch ($id) {
case 0:
return "csnucargoparabola2mc9.jpg";
break;
@ -335,10 +330,11 @@ class dSpatial implements Donnees
break;
}
return Donnees::image_humain_default;
}
else
} else {
trigger_error("Impossible de trouver la race pour ".$planete->race, E_USER_ERROR);
}
}
public static function needed($id, surface $planete, $print = false)
@ -404,17 +400,17 @@ class dSpatial implements Donnees
)
);
if ($print)
if ($print) {
return dDonnees::print_neededCheck($neededSpatial[$id], $planete);
else
} else {
return dDonnees::neededCheck($neededSpatial[$id], $planete);
}
}
public static function tailleCales($id)
{
switch($id)
{
switch ($id) {
case 0:
$vitesse = 10000;
break;
@ -468,8 +464,7 @@ class dSpatial implements Donnees
public static function vitesseP($id)
{
switch($id)
{
switch ($id) {
case 0:
$vitesse = 1080;
break;
@ -522,8 +517,7 @@ class dSpatial implements Donnees
public static function vitesseS($id)
{
switch($id)
{
switch ($id) {
case 0:
$vitesse = 1080;
break;
@ -576,8 +570,7 @@ class dSpatial implements Donnees
public static function vitesseG($id)
{
switch($id)
{
switch ($id) {
case 0:
$vitesse = 1080;
break;
@ -628,4 +621,3 @@ class dSpatial implements Donnees
return $vitesse;
}
}
?>

View file

@ -20,10 +20,8 @@ class dTechnologies implements Donnees
public static function credits($branche, $idTechnologie, surface $planete)
{
if ($branche == 0)
{
switch($idTechnologie)
{
if ($branche == 0) {
switch ($idTechnologie) {
case 0:
return 1000;
break;
@ -84,11 +82,8 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 1)
{
switch($idTechnologie)
{
} elseif ($branche == 1) {
switch ($idTechnologie) {
case 0:
return 1000;
break;
@ -182,11 +177,8 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 2)
{
switch($idTechnologie)
{
} elseif ($branche == 2) {
switch ($idTechnologie) {
case 0:
return 1000;
break;
@ -214,11 +206,8 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 3)
{
switch($idTechnologie)
{
} elseif ($branche == 3) {
switch ($idTechnologie) {
case 0:
return 1000;
break;
@ -267,11 +256,8 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 4)
{
switch($idTechnologie)
{
} elseif ($branche == 4) {
switch ($idTechnologie) {
case 0:
return 1000;
break;
@ -329,11 +315,8 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 5)
{
switch($idTechnologie)
{
} elseif ($branche == 5) {
switch ($idTechnologie) {
case 0:
return 1000;
break;
@ -418,11 +401,8 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 6)
{
switch($idTechnologie)
{
} elseif ($branche == 6) {
switch ($idTechnologie) {
case 0:
return 2000;
break;
@ -447,11 +427,8 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 7)
{
switch($idTechnologie)
{
} elseif ($branche == 7) {
switch ($idTechnologie) {
case 0:
return 2000;
break;
@ -500,9 +477,7 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 8)
{
} elseif ($branche == 8) {
return (4 + 2 * $idTechnologie) * 1000;
}
return 0;
@ -510,10 +485,8 @@ class dTechnologies implements Donnees
public static function temps($branche, $idTechnologie, surface $planete, $demolition = false)
{
if ($branche == 0)
{
switch($idTechnologie)
{
if ($branche == 0) {
switch ($idTechnologie) {
case 0:
$temps = 54000;
break;
@ -574,11 +547,8 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 1)
{
switch($idTechnologie)
{
} elseif ($branche == 1) {
switch ($idTechnologie) {
case 0:
$temps = 54000;
break;
@ -672,11 +642,8 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 2)
{
switch($idTechnologie)
{
} elseif ($branche == 2) {
switch ($idTechnologie) {
case 0:
$temps = 36000;
break;
@ -704,11 +671,8 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 3)
{
switch($idTechnologie)
{
} elseif ($branche == 3) {
switch ($idTechnologie) {
case 0:
$temps = 36000;
break;
@ -757,11 +721,8 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 4)
{
switch($idTechnologie)
{
} elseif ($branche == 4) {
switch ($idTechnologie) {
case 0:
$temps = 36000;
break;
@ -819,11 +780,8 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 5)
{
switch($idTechnologie)
{
} elseif ($branche == 5) {
switch ($idTechnologie) {
case 0:
$temps = 36000;
break;
@ -908,11 +866,8 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 6)
{
switch($idTechnologie)
{
} elseif ($branche == 6) {
switch ($idTechnologie) {
case 0:
$temps = 72000;
break;
@ -937,11 +892,8 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 7)
{
switch($idTechnologie)
{
} elseif ($branche == 7) {
switch ($idTechnologie) {
case 0:
$temps = 36000;
break;
@ -990,9 +942,7 @@ class dTechnologies implements Donnees
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
}
elseif ($branche == 8)
{
} elseif ($branche == 8) {
$temps = (54 + 18 * $idTechnologie) * 1000;
}
@ -1001,8 +951,7 @@ class dTechnologies implements Donnees
public static function type($branche, $race)
{
switch($branche)
{
switch ($branche) {
case 0:
return array(
0, array(3, array(13), 4, 7, array(16), 10)
@ -1040,33 +989,32 @@ class dTechnologies implements Donnees
}
}
public static function niveau ($branche, $id)
{
switch($branche)
public static function niveau($branche, $id)
{
switch ($branche) {
case 0:
$tableau = array ( 0 => 1, 1 => 2, 2 => 3, 3 => 0, 4 => 1, 5 => 2, 6 => 3, 7 => 1, 8 => 2, 9 => 3, 10 => 1, 11 => 2, 12 => 3, 13 => 1, 14 => 2, 15 => 3, 16 => 1, 17 => 2, 18 => 3);
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 0, 4 => 1, 5 => 2, 6 => 3, 7 => 1, 8 => 2, 9 => 3, 10 => 1, 11 => 2, 12 => 3, 13 => 1, 14 => 2, 15 => 3, 16 => 1, 17 => 2, 18 => 3);
break;
case 1:
$tableau = array ( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3, 18 => 1, 19 => 2, 20 => 3, 21 => 1, 22 => 2, 23 => 3, 24 => 1, 25 => 2, 26 => 3, 27 => 1, 28 => 2, 29 => 3);
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3, 18 => 1, 19 => 2, 20 => 3, 21 => 1, 22 => 2, 23 => 3, 24 => 1, 25 => 2, 26 => 3, 27 => 1, 28 => 2, 29 => 3);
break;
case 2:
$tableau = array ( 0 => 1, 1 => 2, 2 => 3, 3 => 0, 4 => 0, 5 => 1, 6 => 2, 7 => 3);
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 0, 4 => 0, 5 => 1, 6 => 2, 7 => 3);
break;
case 3:
$tableau = array ( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 0, 7 => 0, 8 => 0, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3);
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 0, 7 => 0, 8 => 0, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3);
break;
case 4:
$tableau = array ( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3);
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3);
break;
case 5:
$tableau = array ( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3, 18 => 1, 19 => 2, 20 => 3, 21 => 1, 22 => 2, 23 => 3, 24 => 1, 25 => 2, 26 => 3);
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3, 18 => 1, 19 => 2, 20 => 3, 21 => 1, 22 => 2, 23 => 3, 24 => 1, 25 => 2, 26 => 3);
break;
case 6:
$tableau = array ( 0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0);
$tableau = array( 0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0);
break;
case 7:
$tableau = array ( 0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 0, 10 => 0, 11 => 0, 12 => 1, 13 => 2, 14 => 3);
$tableau = array( 0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 0, 10 => 0, 11 => 0, 12 => 1, 13 => 2, 14 => 3);
break;
default:
trigger_error("Branche ".$branche." introuvable dans les données", E_USER_ERROR);
@ -1081,56 +1029,53 @@ class dTechnologies implements Donnees
$branche = $object[0];
$idTechnologie = $object[1];
if ($planete->race == "covenant")
{
if ($planete->race == "covenant") {
return Donnees::image_covenant_default;
}
elseif ($planete->race == "humain")
{
} elseif ($planete->race == "humain") {
return Donnees::image_humain_default;
}
else
} else {
trigger_error("Impossible de trouver la race pour ".$planete->race, E_USER_ERROR);
}
}
public static function needed($object, surface $planete, $print = false)
{
switch($object[0])
{
switch ($object[0]) {
case 0:
$tableau = array ( 0 => 1, 1 => 2, 2 => 3, 3 => 0, 4 => 1, 5 => 2, 6 => 3, 7 => 1, 8 => 2, 9 => 3, 10 => 1, 11 => 2, 12 => 3, 13 => 1, 14 => 2, 15 => 3, 16 => 1, 17 => 2, 18 => 3);
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 0, 4 => 1, 5 => 2, 6 => 3, 7 => 1, 8 => 2, 9 => 3, 10 => 1, 11 => 2, 12 => 3, 13 => 1, 14 => 2, 15 => 3, 16 => 1, 17 => 2, 18 => 3);
break;
case 1:
$tableau = array ( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3, 18 => 1, 19 => 2, 20 => 3, 21 => 1, 22 => 2, 23 => 3, 24 => 1, 25 => 2, 26 => 3, 27 => 1, 28 => 2, 29 => 3);
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3, 18 => 1, 19 => 2, 20 => 3, 21 => 1, 22 => 2, 23 => 3, 24 => 1, 25 => 2, 26 => 3, 27 => 1, 28 => 2, 29 => 3);
break;
case 2:
$tableau = array ( 0 => 1, 1 => 2, 2 => 3, 3 => 0, 4 => 0, 5 => 1, 6 => 2, 7 => 3);
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 0, 4 => 0, 5 => 1, 6 => 2, 7 => 3);
break;
case 3:
$tableau = array ( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 0, 7 => 0, 8 => 0, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3);
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 0, 7 => 0, 8 => 0, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3);
break;
case 4:
$tableau = array ( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3);
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3);
break;
case 5:
$tableau = array ( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3, 18 => 1, 19 => 2, 20 => 3, 21 => 1, 22 => 2, 23 => 3, 24 => 1, 25 => 2, 26 => 3);
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3, 18 => 1, 19 => 2, 20 => 3, 21 => 1, 22 => 2, 23 => 3, 24 => 1, 25 => 2, 26 => 3);
break;
case 6:
$tableau = array ( 0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0);
$tableau = array( 0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0);
break;
case 7:
$tableau = array ( 0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 0, 10 => 0, 11 => 0, 12 => 1, 13 => 2, 14 => 3);
$tableau = array( 0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 0, 10 => 0, 11 => 0, 12 => 1, 13 => 2, 14 => 3);
break;
default:
trigger_error("Branche ".$branche." introuvable dans les données", E_USER_ERROR);
}
if ($print)
if ($print) {
return dDonnees::print_neededCheck($tableau[$object[1]], $planete);
else
} else {
return dDonnees::neededCheck($tableau[$object[1]], $planete);
}
}
/* Fonction qui transpforme l'id d'une technologie en son équivalent en bit dans la liste */
@ -1143,4 +1088,3 @@ class dTechnologies implements Donnees
return log($bit, 2);
}
}
?>

View file

@ -5,8 +5,7 @@ class dTerrestre implements Donnees
{
public static function metal($id, $nombre, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$cristal = 300;
break;
@ -60,16 +59,16 @@ class dTerrestre implements Donnees
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
if (isset($planete->politique) && $planete->politique == 1) {
$cristal *= 0.9;
}
return $cristal * $nombre;
}
public static function cristal($id, $nombre, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$cristal = 300;
break;
@ -123,16 +122,16 @@ class dTerrestre implements Donnees
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
if (isset($planete->politique) && $planete->politique == 1) {
$cristal *= 0.9;
}
return $cristal * $nombre;
}
public static function hydrogene($id, $nombre, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$hydrogene = 0;
break;
@ -186,8 +185,9 @@ class dTerrestre implements Donnees
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
if (isset($planete->politique) && $planete->politique == 1) {
$hydrogene *= 0.9;
}
return $hydrogene * $nombre;
}
@ -199,8 +199,7 @@ class dTerrestre implements Donnees
public static function temps($id, $nombre, surface $planete)
{
switch($id)
{
switch ($id) {
case 0:
$temps = 720;
$moins = 1;
@ -278,8 +277,7 @@ class dTerrestre implements Donnees
public static function type($id)
{
switch($id)
{
switch ($id) {
case 0:
case 1:
case 2:
@ -306,10 +304,8 @@ class dTerrestre implements Donnees
public static function image($id, surface $planete)
{
if ($planete->race == "covenant")
{
switch($id)
{
if ($planete->race == "covenant") {
switch ($id) {
//Unités terrestres
case 0:
return "bansheeqp0.jpg";
@ -354,11 +350,8 @@ class dTerrestre implements Donnees
break;
}
return Donnees::image_covenant_default;
}
elseif ($planete->race == "humain")
{
switch($id)
{
} elseif ($planete->race == "humain") {
switch ($id) {
//Unités terrestres
case 0:
return "csnusparrowhawkkp4.jpg";
@ -400,10 +393,10 @@ class dTerrestre implements Donnees
break;
}
return Donnees::image_humain_default;
}
else
} else {
trigger_error("Impossible de trouver la race pour ".$planete->race, E_USER_ERROR);
}
}
public static function needed($id, surface $planete, $print = false)
@ -468,10 +461,10 @@ class dTerrestre implements Donnees
)
);
if ($print)
if ($print) {
return dDonnees::print_neededCheck($neededTerrestre[$id], $planete);
else
} else {
return dDonnees::neededCheck($neededTerrestre[$id], $planete);
}
}
}
?>

View file

@ -5,33 +5,27 @@ class FileAlliancesBatiments extends FileCommun implements File
{
public function objectInFile($object)
{
foreach($this->files as $keyF => $file)
{
foreach($file as $keyE => $element)
{
if ($element[0] == $object)
foreach ($this->files as $keyF => $file) {
foreach ($file as $keyE => $element) {
if ($element[0] == $object) {
return array($keyF, $keyE);
}
}
}
return false;
}
public function nbObjectInFile($object, $type = null)
{
$c = 0;
if (isset($type))
{
if (!isset($type) || $type)
{
foreach($this->files as $file)
{
if (isset($type)) {
if (!isset($type) || $type) {
foreach ($this->files as $file) {
$c += count(array_keys($file, array($object, true)));
}
}
if (!isset($type) || !$type)
{
foreach($this->files as $file)
{
if (!isset($type) || !$type) {
foreach ($this->files as $file) {
$c += count(array_keys($file, array($object, false)));
}
}
@ -42,16 +36,19 @@ class FileAlliancesBatiments extends FileCommun implements File
public function addObjet($object, $nombre, surface $planete)
{
//On vérifie que l'on ne dépasse pas la taille maximale de la file
if (!$this->checkMaxSize($planete))
if (!$this->checkMaxSize($planete)) {
throw new ExceptionHB(1, 1);
}
//Validation des conditions de construction
if (!dAlliancesBatiments::needed($object, $planete))
if (!dAlliancesBatiments::needed($object, $planete)) {
throw new ExceptionHB(1, 2);
}
//On vérifie qu'il n'y ait pas une demande de démolition du même bâtiment
if ($this->nbObjectInFile($object, true) >= 1)
if ($this->nbObjectInFile($object, true) >= 1) {
throw new ExceptionHB(1, 7);
}
//Calcul du prochain niveau du batiment
$nextLvl = $planete->batiments[$object] + $this->nbObjectInFile($object, false) + 1;
@ -63,29 +60,31 @@ class FileAlliancesBatiments extends FileCommun implements File
$this->refreshTime($lieu);
//On vérifie qu'il y ait assez de ressources sur la planète
if ($planete->checkAndRetireRessources(dAlliancesBatiments::metal($object, $nextLvl, $planete), dAlliancesBatiments::cristal($object, $nextLvl, $planete), dAlliancesBatiments::hydrogene($object, $nextLvl, $planete), dAlliancesBatiments::credits($object, $nextLvl, $planete)))
{
if ($planete->checkAndRetireRessources(dAlliancesBatiments::metal($object, $nextLvl, $planete), dAlliancesBatiments::cristal($object, $nextLvl, $planete), dAlliancesBatiments::hydrogene($object, $nextLvl, $planete), dAlliancesBatiments::credits($object, $nextLvl, $planete))) {
$this->files[$lieu][] = array($object, false);
$planete->addModif("file_bat");
return true;
}
else
} else {
throw new ExceptionHB(1, 4);
}
}
public function addDemolition($object, $nombre, surface $planete)
{
//On vérifie que l'on ne dépasse pas la taille maximale de la file
if (!$this->checkMaxSize($planete))
if (!$this->checkMaxSize($planete)) {
throw new ExceptionHB(1, 1);
}
//On vérifie que le niveau actuel du batiment ne soit non nul
if ($planete->batiments[$object] <= $this->nbObjectInFile($object, false))
if ($planete->batiments[$object] <= $this->nbObjectInFile($object, false)) {
throw new ExceptionHB(1, 6);
}
//On vérifie qu'il n'y ait pas une demande de construction du même bâtiment
if ($this->nbObjectInFile($object, false) >= 1)
if ($this->nbObjectInFile($object, false) >= 1) {
throw new ExceptionHB(1, 7);
}
//On recherche le lieu ayant le moins de construction en cours
$lieu = $this->findShorter();
@ -103,33 +102,36 @@ class FileAlliancesBatiments extends FileCommun implements File
public function delObjet($id, $nombre, $lieu, surface $planete)
{
//Vérification de l'existance de l'objet en file d'attente
if (empty($this->files[$lieu][$id]))
if (empty($this->files[$lieu][$id])) {
throw new ExceptionHB(1, 5);
}
//On récupère le type de batiment
$object = $this->files[$lieu][$id][0];
//On gère les démolition
//@todo -cFileBatiments Est-ce vraiment utile de calculer le niveau du batiment en cas de démolition ?
if ($this->files[$lieu][$id][1])
if ($this->files[$lieu][$id][1]) {
$lvlAnnule = $planete->batiments[$object] - $this->nbObjectInFile($object, true) + 1;
else
} else {
$lvlAnnule = $planete->batiments[$object] + $this->nbObjectInFile($object, false);
}
//On met à jour le temps si on vient d'annuler le premier batiment en lice
if ($id == $this->findFirstKey($lieu))
if ($id == $this->findFirstKey($lieu)) {
$this->times[$lieu] = time();
}
$planete->addModif("file_bat");
if (!$this->files[$lieu][$id][1])
{
if (!$this->files[$lieu][$id][1]) {
//On redonne 60% des ressources au joueur si c'est la première construction dans la file d'attente
if ($id == 0)
if ($id == 0) {
$planete->addRessources(dAlliancesBatiments::metal($object, $lvlAnnule, $planete)*0.6, dAlliancesBatiments::cristal($object, $lvlAnnule, $planete)*0.6, dAlliancesBatiments::hydrogene($object, $lvlAnnule, $planete)*0.6, dAlliancesBatiments::credits($object, $lvlAnnule, $planete)*0.6);
else
} else {
$planete->addRessources(dAlliancesBatiments::metal($object, $lvlAnnule, $planete), dAlliancesBatiments::cristal($object, $lvlAnnule, $planete), dAlliancesBatiments::hydrogene($object, $lvlAnnule, $planete), dAlliancesBatiments::credits($object, $lvlAnnule, $planete));
}
}
//Effacement de la file
unset($this->files[$lieu][$id]);
@ -140,28 +142,25 @@ class FileAlliancesBatiments extends FileCommun implements File
public function ready(SURFACE $planete)
{
//On parcourt la liste des lieux de construction
foreach($this->files as $keyF => $file)
{
foreach ($this->files as $keyF => $file) {
//On vérifie qu'il y a bien des éléments dans cette file d'attente
if (count($file) == 0)
if (count($file) == 0) {
continue;
}
//On parcourt la file
foreach ($file as $keyE => $element)
{
foreach ($file as $keyE => $element) {
$tempsEcoule = time() - $this->times[$keyF];
//On gère les démolitions
if ($element[1])
{
if ($element[1]) {
//On récupère le niveau actuel du batiment
$lvl = $planete->batiments[$element[0]];
//On calcul le temps de démolition nécessaire (60% du niveau actuel)
$tempsNecessaire = dAlliancesBatiments::temps($element[0], $lvl, $planete, true);
if ($tempsEcoule >= $tempsNecessaire)
{
if ($tempsEcoule >= $tempsNecessaire) {
$metal = dAlliancesBatiments::metal($element[0], $lvl, $planete);
$cristal = dAlliancesBatiments::cristal($element[0], $lvl, $planete);
$hydrogene = dAlliancesBatiments::hydrogene($element[0], $lvl, $planete);
@ -186,19 +185,17 @@ class FileAlliancesBatiments extends FileCommun implements File
unset($metal, $cristal, $hydrogene);
}
//Si le temps écoulé n'est pas suffisant pour ce batiment, on annule tous les suivants
else
else {
break;
}
else //Cas de la construction
{
} else { //Cas de la construction
//Récupération du niveau du batiment
$lvl = $planete->batiments[$element[0]] + 1;
$tempsNecessaire = dAlliancesBatiments::temps($element[0], $lvl, $planete);
//Si le temps écoulé est suffisant
if ($tempsEcoule >= $tempsNecessaire)
{
if ($tempsEcoule >= $tempsNecessaire) {
//On ajoute un niveau au batiment
$planete->batiments[$element[0]]++;
@ -214,38 +211,36 @@ class FileAlliancesBatiments extends FileCommun implements File
$planete->addPoints(dAlliancesBatiments::metal($element[0], $planete->batiments[$element[0]], $planete), dAlliancesBatiments::cristal($element[0], $planete->batiments[$element[0]], $planete), dAlliancesBatiments::hydrogene($element[0], $planete->batiments[$element[0]], $planete));
}
//Si le temps écoulé n'est pas suffisant pour ce batiment, on annule tous les suivants
else
else {
break;
}
}
}
}
}
public function printFile(SURFACE $planete, $lieu = NULL)
public function printFile(SURFACE $planete, $lieu = null)
{
$out = array();
foreach ($this->files as $keyF => $file)
{
if (isset($lieu) && $lieu != $keyF)
foreach ($this->files as $keyF => $file) {
if (isset($lieu) && $lieu != $keyF) {
continue;
}
$prems = true;
foreach ($file as $keyE => $element)
{
if ($element[1]) //Cas d'une démolition
{
foreach ($file as $keyE => $element) {
if ($element[1]) { //Cas d'une démolition
$temps = dAlliancesBatiments::temps($element[0], $planete->batiments[$element[0]], $planete, true);
if ($prems)
if ($prems) {
$temps -= time() - $this->times[$keyF];
$out[$keyF][$keyE] = array($element[0], $element[1], ceil($temps), $prems);
}
else //Cas d'une construction
{
$out[$keyF][$keyE] = array($element[0], $element[1], ceil($temps), $prems);
} else { //Cas d'une construction
$temps = dAlliancesBatiments::temps($element[0], $planete->batiments[$element[0]]+1, $planete);
if ($prems)
if ($prems) {
$temps -= time() - $this->times[$keyF];
}
$out[$keyF][$keyE] = array($element[0], $element[1], ceil($temps), $prems);
}
$prems = false;
@ -254,4 +249,3 @@ class FileAlliancesBatiments extends FileCommun implements File
return $out;
}
}
?>

View file

@ -5,40 +5,31 @@ class FileBatiments extends FileCommun implements File
{
public function objectInFile($object)
{
foreach($this->files as $keyF => $file)
{
foreach($file as $keyE => $element)
{
if ($element[0] == $object)
foreach ($this->files as $keyF => $file) {
foreach ($file as $keyE => $element) {
if ($element[0] == $object) {
return array($keyF, $keyE);
}
}
}
return false;
}
public function nbObjectInFile($object, $type = null)
{
$c = 0;
if (!isset($object))
{
foreach($this->files as $file)
{
if (!isset($object)) {
foreach ($this->files as $file) {
$c += count($file);
}
}
else
{
if (!isset($type) || $type)
{
foreach($this->files as $file)
{
} else {
if (!isset($type) || $type) {
foreach ($this->files as $file) {
$c += count(array_keys($file, array($object, true)));
}
}
if (!isset($type) || !$type)
{
foreach($this->files as $file)
{
if (!isset($type) || !$type) {
foreach ($this->files as $file) {
$c += count(array_keys($file, array($object, false)));
}
}
@ -49,20 +40,24 @@ class FileBatiments extends FileCommun implements File
public function addObjet($object, $nombre, surface $planete)
{
//On vérifie que l'on ne dépasse pas la taille maximale de la file
if (!$this->checkMaxSize($planete))
if (!$this->checkMaxSize($planete)) {
throw new ExceptionHB(1, 1);
}
//Validation des conditions de construction
if (!dBatiments::needed($object, $planete))
if (!dBatiments::needed($object, $planete)) {
throw new ExceptionHB(1, 2);
}
//On vérifie qu'il n'y ait pas une demande de démolition du même bâtiment
if ($this->nbObjectInFile($object, true) >= 1)
if ($this->nbObjectInFile($object, true) >= 1) {
throw new ExceptionHB(1, 7);
}
//On vérifie qu'il reste suffisamment de place sur la planète
if ($planete->casesRest <= 0 || $planete->casesRest <= $this->nbObjectInFile(null))
if ($planete->casesRest <= 0 || $planete->casesRest <= $this->nbObjectInFile(null)) {
throw new ExceptionHB(1, 0);
}
//Calcul du prochain niveau du batiment
$nextLvl = $planete->batiments[$object] + $this->nbObjectInFile($object, false) + 1;
@ -74,29 +69,31 @@ class FileBatiments extends FileCommun implements File
$this->refreshTime($lieu);
//On vérifie qu'il y ait assez de ressources sur la planète
if ($planete->checkAndRetireRessources(dBatiments::metal($object, $nextLvl, $planete), dBatiments::cristal($object, $nextLvl, $planete), dBatiments::hydrogene($object, $nextLvl, $planete), dBatiments::credits($object, $nextLvl, $planete)))
{
if ($planete->checkAndRetireRessources(dBatiments::metal($object, $nextLvl, $planete), dBatiments::cristal($object, $nextLvl, $planete), dBatiments::hydrogene($object, $nextLvl, $planete), dBatiments::credits($object, $nextLvl, $planete))) {
$this->files[$lieu][] = array($object, false);
$planete->addModif("file_bat");
return true;
}
else
} else {
throw new ExceptionHB(1, 4);
}
}
public function addDemolition($object, $nombre, surface $planete)
{
//On vérifie que l'on ne dépasse pas la taille maximale de la file
if (!$this->checkMaxSize($planete))
if (!$this->checkMaxSize($planete)) {
throw new ExceptionHB(1, 1);
}
//On vérifie que le niveau actuel du batiment ne soit non nul
if ($planete->batiments[$object] <= $this->nbObjectInFile($object, false))
if ($planete->batiments[$object] <= $this->nbObjectInFile($object, false)) {
throw new ExceptionHB(1, 6);
}
//On vérifie qu'il n'y ait pas une demande de construction du même bâtiment
if ($this->nbObjectInFile($object, false) >= 1)
if ($this->nbObjectInFile($object, false) >= 1) {
throw new ExceptionHB(1, 7);
}
//On recherche le lieu ayant le moins de construction en cours
$lieu = $this->findShorter();
@ -114,33 +111,36 @@ class FileBatiments extends FileCommun implements File
public function delObjet($id, $nombre, $lieu, surface $planete)
{
//Vérification de l'existance de l'objet en file d'attente
if (empty($this->files[$lieu][$id]))
if (empty($this->files[$lieu][$id])) {
throw new ExceptionHB(1, 5);
}
//On récupère le type de batiment
$object = $this->files[$lieu][$id][0];
//On gère les démolition
//@todo -cFileBatiments Est-ce vraiment utile de calculer le niveau du batiment en cas de démolition ?
if ($this->files[$lieu][$id][1])
if ($this->files[$lieu][$id][1]) {
$lvlAnnule = $planete->batiments[$object] - $this->nbObjectInFile($object, true) + 1;
else
} else {
$lvlAnnule = $planete->batiments[$object] + $this->nbObjectInFile($object, false);
}
//On met à jour le temps si on vient d'annuler le premier batiment en lice
if ($id == $this->findFirstKey($lieu))
if ($id == $this->findFirstKey($lieu)) {
$this->times[$lieu] = time();
}
$planete->addModif("file_bat");
if (!$this->files[$lieu][$id][1])
{
if (!$this->files[$lieu][$id][1]) {
//On redonne 60% des ressources au joueur si c'est la première construction dans la file d'attente
if ($id == 0)
if ($id == 0) {
$planete->addRessources(dBatiments::metal($object, $lvlAnnule, $planete)*0.6, dBatiments::cristal($object, $lvlAnnule, $planete)*0.6, dBatiments::hydrogene($object, $lvlAnnule, $planete)*0.6, dBatiments::credits($object, $lvlAnnule, $planete)*0.6);
else
} else {
$planete->addRessources(dBatiments::metal($object, $lvlAnnule, $planete), dBatiments::cristal($object, $lvlAnnule, $planete), dBatiments::hydrogene($object, $lvlAnnule, $planete), dBatiments::credits($object, $lvlAnnule, $planete));
}
}
//Effacement de la file
unset($this->files[$lieu][$id]);
@ -151,28 +151,25 @@ class FileBatiments extends FileCommun implements File
public function ready(SURFACE $planete)
{
//On parcourt la liste des lieux de construction
foreach($this->files as $keyF => $file)
{
foreach ($this->files as $keyF => $file) {
//On vérifie qu'il y a bien des éléments dans cette file d'attente
if (count($file) == 0)
if (count($file) == 0) {
continue;
}
//On parcourt la file
foreach ($file as $keyE => $element)
{
foreach ($file as $keyE => $element) {
$tempsEcoule = time() - $this->times[$keyF];
//On gère les démolitions
if ($element[1])
{
if ($element[1]) {
//On récupère le niveau actuel du batiment
$lvl = $planete->batiments[$element[0]];
//On calcul le temps de démolition nécessaire (60% du niveau actuel)
$tempsNecessaire = dBatiments::temps($element[0], $lvl, $planete, true);
if ($tempsEcoule >= $tempsNecessaire)
{
if ($tempsEcoule >= $tempsNecessaire) {
$metal = dBatiments::metal($element[0], $lvl, $planete);
$cristal = dBatiments::cristal($element[0], $lvl, $planete);
$hydrogene = dBatiments::hydrogene($element[0], $lvl, $planete);
@ -197,19 +194,17 @@ class FileBatiments extends FileCommun implements File
unset($metal, $cristal, $hydrogene);
}
//Si le temps écoulé n'est pas suffisant pour ce batiment, on annule tous les suivants
else
else {
break;
}
else //Cas de la construction
{
} else { //Cas de la construction
//Récupération du niveau du batiment
$lvl = $planete->batiments[$element[0]] + 1;
$tempsNecessaire = dBatiments::temps($element[0], $lvl, $planete);
//Si le temps écoulé est suffisant
if ($tempsEcoule >= $tempsNecessaire)
{
if ($tempsEcoule >= $tempsNecessaire) {
//On ajoute un niveau au batiment
$planete->batiments[$element[0]]++;
@ -225,11 +220,11 @@ class FileBatiments extends FileCommun implements File
$planete->addPoints(dBatiments::metal($element[0], $planete->batiments[$element[0]], $planete), dBatiments::cristal($element[0], $planete->batiments[$element[0]], $planete), dBatiments::hydrogene($element[0], $planete->batiments[$element[0]], $planete));
}
//Si le temps écoulé n'est pas suffisant pour ce batiment, on annule tous les suivants
else
else {
break;
}
}
}
}
}
@ -237,26 +232,24 @@ class FileBatiments extends FileCommun implements File
public function printFile(SURFACE $planete, $lieu = null)
{
$out = array();
foreach ($this->files as $keyF => $file)
{
if (isset($lieu) && $lieu != $keyF)
foreach ($this->files as $keyF => $file) {
if (isset($lieu) && $lieu != $keyF) {
continue;
}
$prems = true;
foreach ($file as $keyE => $element)
{
if ($element[1]) //Cas d'une démolition
{
foreach ($file as $keyE => $element) {
if ($element[1]) { //Cas d'une démolition
$temps = dBatiments::temps($element[0], $planete->batiments[$element[0]], $planete, true);
if ($prems)
if ($prems) {
$temps -= time() - $this->times[$keyF];
$out[$keyF][$keyE] = array($element[0], $element[1], ceil($temps), $prems);
}
else //Cas d'une construction
{
$out[$keyF][$keyE] = array($element[0], $element[1], ceil($temps), $prems);
} else { //Cas d'une construction
$temps = dBatiments::temps($element[0], $planete->batiments[$element[0]]+1, $planete);
if ($prems)
if ($prems) {
$temps -= time() - $this->times[$keyF];
}
$out[$keyF][$keyE] = array($element[0], $element[1], ceil($temps), $prems);
}
$prems = false;
@ -265,4 +258,3 @@ class FileBatiments extends FileCommun implements File
return $out;
}
}
?>

View file

@ -5,28 +5,23 @@ class FileCaserne extends FileCommun implements File
{
public function objectInFile($object, $lieu = null)
{
if (isset($lieu))
{
if (!empty($this->files[$lieu]))
{
foreach($this->files[$lieu] as $keyE => $element)
{
if ($element[0] == $object)
if (isset($lieu)) {
if (!empty($this->files[$lieu])) {
foreach ($this->files[$lieu] as $keyE => $element) {
if ($element[0] == $object) {
return array($lieu, $keyE);
}
}
}
else
{
foreach($this->files as $keyF => $file)
{
foreach($file as $keyE => $element)
{
if ($element[0] == $object)
} else {
foreach ($this->files as $keyF => $file) {
foreach ($file as $keyE => $element) {
if ($element[0] == $object) {
return array($keyF, $keyE);
}
}
}
}
return false;
}
@ -34,62 +29,62 @@ class FileCaserne extends FileCommun implements File
public function nbObjectInFile($object)
{
$c = 0;
foreach($this->files as $key => $file)
{
foreach($file as $element)
{
if ($element[0] == $object)
foreach ($this->files as $key => $file) {
foreach ($file as $element) {
if ($element[0] == $object) {
$c += $element[1];
}
}
}
return $c;
}
public function addObjet($object, $nombre, surface $planete, $lieu = null)
{
//Vérification du nombre passé en entrée
if (!is_numeric($nombre) || $nombre < 0 || $nombre > 99999)
if (!is_numeric($nombre) || $nombre < 0 || $nombre > 99999) {
throw new ExceptionHB(3, 8);
}
//Validation des conditions de construction
if (!dCaserne::needed($object, $planete))
if (!dCaserne::needed($object, $planete)) {
throw new ExceptionHB(3, 2);
}
//On vérifie que l'on ne dépasse pas la taille maximale de la file
if (!($sauvLastKey = $this->objectInFile($object, $lieu)) && !$this->checkMaxSize($planete, $lieu))
if (!($sauvLastKey = $this->objectInFile($object, $lieu)) && !$this->checkMaxSize($planete, $lieu)) {
throw new ExceptionHB(3, 1);
}
//On tronque au maximum d'unités constructible sur la planète
if (($metal = dCaserne::metal($object, 1, $planete)) > 0)
if (($metal = dCaserne::metal($object, 1, $planete)) > 0) {
$metal = $planete->metal/$metal;
else
} else {
$metal = $nombre;
if (($cristal = dCaserne::cristal($object, 1, $planete)) > 0)
}
if (($cristal = dCaserne::cristal($object, 1, $planete)) > 0) {
$cristal = $planete->cristal/$cristal;
else
} else {
$cristal = $nombre;
if (($hydrogene = dCaserne::hydrogene($object, 1, $planete)) > 0)
}
if (($hydrogene = dCaserne::hydrogene($object, 1, $planete)) > 0) {
$hydrogene = $planete->hydrogene/$hydrogene;
else
} else {
$hydrogene = $nombre;
}
$nombre = floor(min($nombre, $metal, $cristal, $hydrogene));
//On vérifie qu'il y ait assez de ressources sur la planète
if ($planete->checkAndRetireRessources(dCaserne::metal($object, $nombre, $planete), dCaserne::cristal($object, $nombre, $planete), dCaserne::hydrogene($object, $nombre, $planete), dCaserne::credits($object, $nombre, $planete)))
{
if ($planete->checkAndRetireRessources(dCaserne::metal($object, $nombre, $planete), dCaserne::cristal($object, $nombre, $planete), dCaserne::hydrogene($object, $nombre, $planete), dCaserne::credits($object, $nombre, $planete))) {
//Si il existe déjà l'objet en file d'attente, on l'ajoute
if(isset($sauvLastKey) && isset($this->files[$sauvLastKey[0]][$sauvLastKey[1]]))
{
if (isset($sauvLastKey) && isset($this->files[$sauvLastKey[0]][$sauvLastKey[1]])) {
//On rafraîchit le temps de la file si aucun objet n'est en file d'attente
$this->refreshTime($sauvLastKey[0]);
$this->files[$sauvLastKey[0]][$sauvLastKey[1]][1] += $nombre;
}
else
{
if (!isset($lieu))
{
} else {
if (!isset($lieu)) {
//On recherche le lieu ayant le moins de construction en cours
$lieu = $this->findShorter();
}
@ -102,27 +97,29 @@ class FileCaserne extends FileCommun implements File
$planete->addModif("file_cas");
return true;
}
else
} else {
throw new ExceptionHB(3, 4);
}
}
public function addDemolition($object, $nombre, surface $planete, $lieu = null)
{
//On vérifie que l'on ne dépasse pas la taille maximale de la file
if (!$this->checkMaxSize($planete, $lieu) && !($sauvLastKey = $this->objectInFile($object, $lieu)))
if (!$this->checkMaxSize($planete, $lieu) && !($sauvLastKey = $this->objectInFile($object, $lieu))) {
throw new ExceptionHB(3, 1);
}
//Vérification du nombre passé en entrée
if (!is_numeric($nombre) || $nombre < 0 || $nombre > 99999)
if (!is_numeric($nombre) || $nombre < 0 || $nombre > 99999) {
throw new ExceptionHB(3, 8);
}
//On vérifie que le nombre d'unité actuel soit non nul
if ($planete->casernes[$object] < $nombre)
if ($planete->casernes[$object] < $nombre) {
throw new ExceptionHB(3, 6);
}
if (!isset($lieu))
{
if (!isset($lieu)) {
//On recherche le lieu ayant le moins de construction en cours
$lieu = $this->findShorter();
}
@ -131,10 +128,11 @@ class FileCaserne extends FileCommun implements File
$this->refreshTime($lieu);
//Si il existe déjà l'objet en file d'attente, on l'ajoute
if(isset($sauvLastKey))
if (isset($sauvLastKey)) {
$this->files[$sauvLastKey[0]][$sauvLastKey[1]][1] += $nombre;
else
} else {
$this->files[$lieu][] = array($object, $nombre, false);
}
$planete->addModif("file_cas");
@ -144,31 +142,36 @@ class FileCaserne extends FileCommun implements File
public function delObjet($id, $nombre, $lieu, surface $planete)
{
//Vérification de l'existance de l'objet en file d'attente
if (empty($this->files[$lieu][$id]))
if (empty($this->files[$lieu][$id])) {
throw new ExceptionHB(1, 5);
}
//Si $nombre est supérieur au nombre présent dans la file, on le réduit
if ($this->files[$lieu][$id][1] < $nombre)
if ($this->files[$lieu][$id][1] < $nombre) {
$nombre = $this->files[$lieu][$id][1];
}
//On récupère les informations disponibles
$objet = $this->files[$lieu][$id][0];
$nombreMax = $this->files[$lieu][$id][1];
//On met à jour le temps si on vient d'annuler le premier groupe d'unités en lice
if ($id == $this->findFirstKey($lieu) && $nombreMax == $nombre)
if ($id == $this->findFirstKey($lieu) && $nombreMax == $nombre) {
$this->times[$lieu] = time();
}
$planete->addModif("file_cas");
if (!$this->files[$lieu][$id][2])
if (!$this->files[$lieu][$id][2]) {
$planete->addRessources(dCaserne::metal($objet, $nombre, $planete), dCaserne::cristal($objet, $nombre, $planete), dCaserne::hydrogene($objet, $nombre, $planete), dCaserne::credits($objet, $nombre, $planete));
}
//Effacement de la file
if ($nombre >= $nombreMax)
if ($nombre >= $nombreMax) {
unset($this->files[$lieu][$id]);
else
} else {
$this->files[$lieu][$id][1] -= $nombre;
}
$planete->addModif("file_cas");
return true;
@ -177,29 +180,24 @@ class FileCaserne extends FileCommun implements File
public function ready(SURFACE $planete)
{
//On parcourt la liste des lieux de construction
foreach($this->files as $keyF => $file)
{
foreach ($this->files as $keyF => $file) {
//On vérifie qu'il y a bien des éléments dans cette file d'attente
if (count($file) == 0)
if (count($file) == 0) {
continue;
}
//On parcourt la liste à la recherche des unités terminées dans l'ordre
foreach($file as $keyE => $element)
{
foreach ($file as $keyE => $element) {
//Calcul du temps écoulé depuis le dernier entraînement
$tempsEcoule = time() - $this->times[$keyF];
//On gére les licenciments !
if ($element[2])
{
if ($element[2]) {
//On vérifie qu'il reste des unités du type sur la planète
if ($planete->casernes[$element[0]] <= 0)
{
if ($planete->casernes[$element[0]] <= 0) {
unset($this->files[$keyF][$keyE]);
$planete->addModif("file_cas");
}
else
{
} else {
//Récupération de 60% du temps nécessaire
$tempsNecessaire = dCaserne::temps($element[0], 1, $planete) * 0.6;
@ -207,8 +205,7 @@ class FileCaserne extends FileCommun implements File
$nbUnitee = min(floor($tempsEcoule/$tempsNecessaire), $element[1], $planete->casernes[$element[0]]);
//Si le temps écoulé est suffisant
if ($nbUnitee > 0)
{
if ($nbUnitee > 0) {
//On redonne 70% des ressources de l'unité au joueur
$planete->addRessources(dCaserne::metal($element[0], $nbUnitee, $planete)*0.7, dCaserne::cristal($element[0], $nbUnitee, $planete)*0.7, dCaserne::hydrogene($element[0], $nbUnitee, $planete)*0.7, dCaserne::credits($element[0], $nbUnitee, $planete)*0.7);
@ -216,26 +213,27 @@ class FileCaserne extends FileCommun implements File
$planete->casernes[$element[0]] -= $nbUnitee;
//On efface l'entrée de la file et on met à jour le temps de la file
if ($nbUnitee >= $element[1])
if ($nbUnitee >= $element[1]) {
unset($this->filefiles[$keyF][$keyE]);
else
} else {
$this->file[$key][1] -= $nbUnitee;
}
$this->timefiles[$keyF] += $tempsNecessaire*$nbUnitee;
//On demande la mise à jour des champs modifiés
$planete->addModif(array("casernes", $element[0]));
$planete->addModif("file_cas");
if ($nbUnitee < $element[1])
if ($nbUnitee < $element[1]) {
return false;
}
}
//Si le temps écoulé n'est pas suffisant pour cette unité, on annule toutes les suivantes
else
else {
break;
}
}
else //Cas de la construction
{
} else { //Cas de la construction
//Récupération du temps nécessaire
$tempsNecessaire = dCaserne::temps($element[0], 1, $planete);
@ -243,61 +241,61 @@ class FileCaserne extends FileCommun implements File
$nbUnitee = min(floor($tempsEcoule/$tempsNecessaire), $element[1]);
//Si le temps écoulé est suffisant
if ($nbUnitee > 0)
{
if ($nbUnitee > 0) {
//On ajoute le nombre d'unités
$planete->casernes[$element[0]] += $nbUnitee;
//On efface l'entrée de la file et on met à jour le temps de la file
if ($nbUnitee >= $element[1])
if ($nbUnitee >= $element[1]) {
unset($this->files[$keyF][$keyE]);
else
} else {
$this->files[$keyF][$keyE][1] -= $nbUnitee;
}
$this->times[$keyF] += $tempsNecessaire * $nbUnitee;
//On demande la mise à jour des champs modifiés
$planete->addModif(array("casernes", $element[0]));
$planete->addModif("file_cas");
if ($nbUnitee < $element[1])
if ($nbUnitee < $element[1]) {
break;
}
}
//Si le temps écoulé n'est pas suffisant pour ce batiment, on annule tous les suivants
else
else {
break;
}
}
}
}
}
function printFile(SURFACE $planete, $lieu = NULL)
public function printFile(SURFACE $planete, $lieu = null)
{
$out = array();
foreach ($this->files as $keyF => $file)
{
if (isset($lieu) && $lieu != $keyF)
foreach ($this->files as $keyF => $file) {
if (isset($lieu) && $lieu != $keyF) {
continue;
}
$prems = true;
foreach ($file as $keyE => $element)
{
if ($element[2])
{
foreach ($file as $keyE => $element) {
if ($element[2]) {
$temps = dCaserne::temps($element[0], 1, $planete) * 0.6;
if ($prems)
if ($prems) {
$temps_moins = time() - $this->times[$keyF];
else
} else {
$temps_moins = 0;
$out[$keyF][$keyE] = array($element[0], $element[1], $element[2], ceil($temps * $element[1] - $temps_moins), ceil($temps - $temps_moins), $prems);
}
else
{
$out[$keyF][$keyE] = array($element[0], $element[1], $element[2], ceil($temps * $element[1] - $temps_moins), ceil($temps - $temps_moins), $prems);
} else {
$temps = dCaserne::temps($element[0], 1, $planete);
if ($prems)
if ($prems) {
$temps_moins = time() - $this->times[$keyF];
else
} else {
$temps_moins = 0;
}
$out[$keyF][$keyE] = array($element[0], $element[1], $element[2], ceil($temps * $element[1] - $temps_moins), ceil($temps - $temps_moins), $prems);
}
$prems = false;
@ -306,4 +304,3 @@ class FileCaserne extends FileCommun implements File
return $out;
}
}
?>

View file

@ -1,5 +1,7 @@
<?php
if(!defined('ONYX')) exit;
if (!defined('ONYX')) {
exit;
}
interface File
{
@ -10,7 +12,7 @@ interface File
public function delObjet($id, $nombre, $lieu, surface $planete);
public function ready(surface $planete);
public function printFile(surface $planete, $lieu = NULL);
public function printFile(surface $planete, $lieu = null);
}
class FileCommun
@ -19,49 +21,48 @@ class FileCommun
protected $times = array();
protected $simultane;
function __construct()
public function __construct()
{
$this->times[] = time();
$this->simultane = 1;
}
function refreshTime($lieu)
public function refreshTime($lieu)
{
if (empty($this->files[$lieu]) || count($this->files[$lieu]) < 1)
if (empty($this->files[$lieu]) || count($this->files[$lieu]) < 1) {
$this->times[$lieu] = time();
}
}
function reajusteVacances($timelost)
public function reajusteVacances($timelost)
{
foreach($this->times as $key => $time)
foreach ($this->times as $key => $time) {
$this->times[$key] += $timelost;
}
return serialize($this);
}
function hasObject()
public function hasObject()
{
foreach($this->files as $file)
{
if (count($file) > 0)
foreach ($this->files as $file) {
if (count($file) > 0) {
return true;
}
}
return false;
}
function checkMaxSize(surface $planete, $lieu = null)
public function checkMaxSize(surface $planete, $lieu = null)
{
$nombre = 0;
if (isset($lieu))
{
if (!empty($this->files[$lieu]))
if (isset($lieu)) {
if (!empty($this->files[$lieu])) {
$nombre = count($this->files[$lieu]);
}
else
{
foreach($this->files as $file)
{
} else {
foreach ($this->files as $file) {
$nombre += count($file);
}
}
@ -70,18 +71,17 @@ class FileCommun
return ($nombre < dDonnees::tailleFile($planete));
}
function findShorter()
public function findShorter()
{
$short = 0;
$value = 99;
foreach($this->files as $key => $file)
{
if ($key >= $this->simultane)
foreach ($this->files as $key => $file) {
if ($key >= $this->simultane) {
break;
}
$count = count($file);
if ($value > $count)
{
if ($value > $count) {
$value = $count;
$short = $key;
}
@ -90,24 +90,24 @@ class FileCommun
return $short;
}
function findFirstKey($lieu)
public function findFirstKey($lieu)
{
foreach($this->files[$lieu] as $key => $file)
foreach ($this->files[$lieu] as $key => $file) {
return $key;
}
}
function DEBUG__print()
public function DEBUG__print()
{
var_dump($this);
var_dump($this->files);
}
function DEBUG__setTime($lieu, $moins)
public function DEBUG__setTime($lieu, $moins)
{
$this->times[$lieu] -= $moins;
return $this->times[$lieu];
}
}
?>

View file

@ -5,28 +5,23 @@ class FileSpatial extends FileCommun implements File
{
public function objectInFile($object, $lieu = null)
{
if (isset($lieu))
{
if (!empty($this->files[$lieu]))
{
foreach($this->files[$lieu] as $keyE => $element)
{
if ($element[0] == $object)
if (isset($lieu)) {
if (!empty($this->files[$lieu])) {
foreach ($this->files[$lieu] as $keyE => $element) {
if ($element[0] == $object) {
return array($lieu, $keyE);
}
}
}
else
{
foreach($this->files as $keyF => $file)
{
foreach($file as $keyE => $element)
{
if ($element[0] == $object)
} else {
foreach ($this->files as $keyF => $file) {
foreach ($file as $keyE => $element) {
if ($element[0] == $object) {
return array($keyF, $keyE);
}
}
}
}
return false;
}
@ -34,62 +29,62 @@ class FileSpatial extends FileCommun implements File
public function nbObjectInFile($object)
{
$c = 0;
foreach($this->files as $key => $file)
{
foreach($file as $element)
{
if ($element[0] == $object)
foreach ($this->files as $key => $file) {
foreach ($file as $element) {
if ($element[0] == $object) {
$c += $element[1];
}
}
}
return $c;
}
public function addObjet($object, $nombre, surface $planete, $lieu = null)
{
//Vérification du nombre passé en entrée
if (!is_numeric($nombre) || $nombre < 0 || $nombre > 99999)
if (!is_numeric($nombre) || $nombre < 0 || $nombre > 99999) {
throw new ExceptionHB(3, 8);
}
//Validation des conditions de construction
if (!dSpatial::needed($object, $planete))
if (!dSpatial::needed($object, $planete)) {
throw new ExceptionHB(3, 2);
}
//On vérifie que l'on ne dépasse pas la taille maximale de la file
if (!($sauvLastKey = $this->objectInFile($object, $lieu)) && !$this->checkMaxSize($planete, $lieu))
if (!($sauvLastKey = $this->objectInFile($object, $lieu)) && !$this->checkMaxSize($planete, $lieu)) {
throw new ExceptionHB(3, 1);
}
//On tronque au maximum d'unités constructible sur la planète
if (($metal = dSpatial::metal($object, 1, $planete)) > 0)
if (($metal = dSpatial::metal($object, 1, $planete)) > 0) {
$metal = $planete->metal/$metal;
else
} else {
$metal = $nombre;
if (($cristal = dSpatial::cristal($object, 1, $planete)) > 0)
}
if (($cristal = dSpatial::cristal($object, 1, $planete)) > 0) {
$cristal = $planete->cristal/$cristal;
else
} else {
$cristal = $nombre;
if (($hydrogene = dSpatial::hydrogene($object, 1, $planete)) > 0)
}
if (($hydrogene = dSpatial::hydrogene($object, 1, $planete)) > 0) {
$hydrogene = $planete->hydrogene/$hydrogene;
else
} else {
$hydrogene = $nombre;
}
$nombre = floor(min($nombre, $metal, $cristal, $hydrogene));
//On vérifie qu'il y ait assez de ressources sur la planète
if ($planete->checkAndRetireRessources(dSpatial::metal($object, $nombre, $planete), dSpatial::cristal($object, $nombre, $planete), dSpatial::hydrogene($object, $nombre, $planete), dSpatial::credits($object, $nombre, $planete)))
{
if ($planete->checkAndRetireRessources(dSpatial::metal($object, $nombre, $planete), dSpatial::cristal($object, $nombre, $planete), dSpatial::hydrogene($object, $nombre, $planete), dSpatial::credits($object, $nombre, $planete))) {
//Si il existe déjà l'objet en file d'attente, on l'ajoute
if(isset($sauvLastKey) && isset($this->files[$sauvLastKey[0]][$sauvLastKey[1]]))
{
if (isset($sauvLastKey) && isset($this->files[$sauvLastKey[0]][$sauvLastKey[1]])) {
//On rafraîchit le temps de la file si aucun objet n'est en file d'attente
$this->refreshTime($sauvLastKey[0]);
$this->files[$sauvLastKey[0]][$sauvLastKey[1]][1] += $nombre;
}
else
{
if (!isset($lieu))
{
} else {
if (!isset($lieu)) {
//On recherche le lieu ayant le moins de construction en cours
$lieu = $this->findShorter();
}
@ -102,27 +97,29 @@ class FileSpatial extends FileCommun implements File
$planete->addModif("file_vais");
return true;
}
else
} else {
throw new ExceptionHB(3, 4);
}
}
public function addDemolition($object, $nombre, surface $planete, $lieu = null)
{
//On vérifie que l'on ne dépasse pas la taille maximale de la file
if (!$this->checkMaxSize($planete, $lieu) && !($sauvLastKey = $this->objectInFile($object, $lieu)))
if (!$this->checkMaxSize($planete, $lieu) && !($sauvLastKey = $this->objectInFile($object, $lieu))) {
throw new ExceptionHB(3, 1);
}
//Vérification du nombre passé en entrée
if (!is_numeric($nombre) || $nombre < 0 || $nombre > 99999)
if (!is_numeric($nombre) || $nombre < 0 || $nombre > 99999) {
throw new ExceptionHB(3, 8);
}
//On vérifie que le nombre d'unité actuel soit non nul
if ($planete->vaisseaux[$object] < $nombre)
if ($planete->vaisseaux[$object] < $nombre) {
throw new ExceptionHB(3, 6);
}
if (!isset($lieu))
{
if (!isset($lieu)) {
//On recherche le lieu ayant le moins de construction en cours
$lieu = $this->findShorter();
}
@ -131,10 +128,11 @@ class FileSpatial extends FileCommun implements File
$this->refreshTime($lieu);
//Si il existe déjà l'objet en file d'attente, on l'ajoute
if(isset($sauvLastKey))
if (isset($sauvLastKey)) {
$this->files[$sauvLastKey[0]][$sauvLastKey[1]][1] += $nombre;
else
} else {
$this->files[$lieu][] = array($object, $nombre, false);
}
$planete->addModif("file_vais");
@ -144,31 +142,36 @@ class FileSpatial extends FileCommun implements File
public function delObjet($id, $nombre, $lieu, surface $planete)
{
//Vérification de l'existance de l'objet en file d'attente
if (empty($this->files[$lieu][$id]))
if (empty($this->files[$lieu][$id])) {
throw new ExceptionHB(1, 5);
}
//Si $nombre est supérieur au nombre présent dans la file, on le réduit
if ($this->files[$lieu][$id][1] < $nombre)
if ($this->files[$lieu][$id][1] < $nombre) {
$nombre = $this->files[$lieu][$id][1];
}
//On récupère les informations disponibles
$objet = $this->files[$lieu][$id][0];
$nombreMax = $this->files[$lieu][$id][1];
//On met à jour le temps si on vient d'annuler le premier groupe d'unités en lice
if ($id == $this->findFirstKey($lieu) && $nombreMax == $nombre)
if ($id == $this->findFirstKey($lieu) && $nombreMax == $nombre) {
$this->times[$lieu] = time();
}
$planete->addModif("file_vais");
if (!$this->files[$lieu][$id][2])
if (!$this->files[$lieu][$id][2]) {
$planete->addRessources(dSpatial::metal($objet, $nombre, $planete), dSpatial::cristal($objet, $nombre, $planete), dSpatial::hydrogene($objet, $nombre, $planete), dSpatial::credits($objet, $nombre, $planete));
}
//Effacement de la file
if ($nombre >= $nombreMax)
if ($nombre >= $nombreMax) {
unset($this->files[$lieu][$id]);
else
} else {
$this->files[$lieu][$id][1] -= $nombre;
}
$planete->addModif("file_vais");
return true;
@ -177,29 +180,24 @@ class FileSpatial extends FileCommun implements File
public function ready(SURFACE $planete)
{
//On parcourt la liste des lieux de construction
foreach($this->files as $keyF => $file)
{
foreach ($this->files as $keyF => $file) {
//On vérifie qu'il y a bien des éléments dans cette file d'attente
if (count($file) == 0)
if (count($file) == 0) {
continue;
}
//On parcourt la liste à la recherche des unités terminées dans l'ordre
foreach($file as $keyE => $element)
{
foreach ($file as $keyE => $element) {
//Calcul du temps écoulé depuis le dernier entraînement
$tempsEcoule = time() - $this->times[$keyF];
//On gére les licenciments !
if ($element[2])
{
if ($element[2]) {
//On vérifie qu'il reste des unités du type sur la planète
if ($planete->vaisseaux[$element[0]] <= 0)
{
if ($planete->vaisseaux[$element[0]] <= 0) {
unset($this->files[$keyF][$keyE]);
$planete->addModif("file_vais");
}
else
{
} else {
//Récupération de 60% du temps nécessaire
$tempsNecessaire = dSpatial::temps($element[0], 1, $planete) * 0.6;
@ -207,8 +205,7 @@ class FileSpatial extends FileCommun implements File
$nbUnitee = min(floor($tempsEcoule/$tempsNecessaire), $element[1], $planete->vaisseaux[$element[0]]);
//Si le temps écoulé est suffisant
if ($nbUnitee > 0)
{
if ($nbUnitee > 0) {
//On redonne 70% des ressources de l'unité au joueur
$planete->addRessources(dSpatial::metal($element[0], $nbUnitee, $planete)*0.7, dSpatial::cristal($element[0], $nbUnitee, $planete)*0.7, dSpatial::hydrogene($element[0], $nbUnitee, $planete)*0.7, dSpatial::credits($element[0], $nbUnitee, $planete)*0.7);
@ -216,26 +213,27 @@ class FileSpatial extends FileCommun implements File
$planete->vaisseaux[$element[0]] -= $nbUnitee;
//On efface l'entrée de la file et on met à jour le temps de la file
if ($nbUnitee >= $element[1])
if ($nbUnitee >= $element[1]) {
unset($this->filefiles[$keyF][$keyE]);
else
} else {
$this->file[$key][1] -= $nbUnitee;
}
$this->timefiles[$keyF] += $tempsNecessaire*$nbUnitee;
//On demande la mise à jour des champs modifiés
$planete->addModif(array("vaisseaux", $element[0]));
$planete->addModif("file_vais");
if ($nbUnitee < $element[1])
if ($nbUnitee < $element[1]) {
return false;
}
}
//Si le temps écoulé n'est pas suffisant pour cette unité, on annule toutes les suivantes
else
else {
break;
}
}
else //Cas de la construction
{
} else { //Cas de la construction
//Récupération du temps nécessaire
$tempsNecessaire = dSpatial::temps($element[0], 1, $planete);
@ -243,61 +241,61 @@ class FileSpatial extends FileCommun implements File
$nbUnitee = min(floor($tempsEcoule/$tempsNecessaire), $element[1]);
//Si le temps écoulé est suffisant
if ($nbUnitee > 0)
{
if ($nbUnitee > 0) {
//On ajoute le nombre d'unités
$planete->vaisseaux[$element[0]] += $nbUnitee;
//On efface l'entrée de la file et on met à jour le temps de la file
if ($nbUnitee >= $element[1])
if ($nbUnitee >= $element[1]) {
unset($this->files[$keyF][$keyE]);
else
} else {
$this->files[$keyF][$keyE][1] -= $nbUnitee;
}
$this->times[$keyF] += $tempsNecessaire * $nbUnitee;
//On demande la mise à jour des champs modifiés
$planete->addModif(array("vaisseaux", $element[0]));
$planete->addModif("file_vais");
if ($nbUnitee < $element[1])
if ($nbUnitee < $element[1]) {
break;
}
}
//Si le temps écoulé n'est pas suffisant pour ce batiment, on annule tous les suivants
else
else {
break;
}
}
}
}
}
function printFile(SURFACE $planete, $lieu = NULL)
public function printFile(SURFACE $planete, $lieu = null)
{
$out = array();
foreach ($this->files as $keyF => $file)
{
if (isset($lieu) && $lieu != $keyF)
foreach ($this->files as $keyF => $file) {
if (isset($lieu) && $lieu != $keyF) {
continue;
}
$prems = true;
foreach ($file as $keyE => $element)
{
if ($element[2])
{
foreach ($file as $keyE => $element) {
if ($element[2]) {
$temps = dSpatial::temps($element[0], 1, $planete) * 0.6;
if ($prems)
if ($prems) {
$temps_moins = time() - $this->times[$keyF];
else
} else {
$temps_moins = 0;
$out[$keyF][$keyE] = array($element[0], $element[1], $element[2], ceil($temps * $element[1] - $temps_moins), ceil($temps - $temps_moins), $prems);
}
else
{
$out[$keyF][$keyE] = array($element[0], $element[1], $element[2], ceil($temps * $element[1] - $temps_moins), ceil($temps - $temps_moins), $prems);
} else {
$temps = dSpatial::temps($element[0], 1, $planete);
if ($prems)
if ($prems) {
$temps_moins = time() - $this->times[$keyF];
else
} else {
$temps_moins = 0;
}
$out[$keyF][$keyE] = array($element[0], $element[1], $element[2], ceil($temps * $element[1] - $temps_moins), ceil($temps - $temps_moins), $prems);
}
$prems = false;
@ -306,4 +304,3 @@ class FileSpatial extends FileCommun implements File
return $out;
}
}
?>

View file

@ -7,22 +7,20 @@ class FileTechnologies extends FileCommun implements File
{
public function objectInFile($object)
{
foreach($this->files as $keyF => $file)
{
foreach($file as $keyE => $element)
{
if ($element[0] == $object)
foreach ($this->files as $keyF => $file) {
foreach ($file as $keyE => $element) {
if ($element[0] == $object) {
return array($keyF, $keyE);
}
}
}
return false;
}
public function nbObjectInFile($branche, $tech = null)
{
$c = 0;
foreach($this->files as $file)
{
foreach ($this->files as $file) {
$c += count(array_keys($file, array($branche, $tech)));
}
return $c;
@ -31,20 +29,24 @@ class FileTechnologies extends FileCommun implements File
public function addObjet($branche, $tech, surface $planete)
{
//On vérifie que l'on ne dépasse pas la taille maximale de la file
if (!$this->checkMaxSize($planete))
if (!$this->checkMaxSize($planete)) {
throw new ExceptionHB(4, 1);
}
//On vérifie qu'il n'y ait pas une recherche de la même technologie
if ($this->nbObjectInFile($branche, $tech) >= 1)
if ($this->nbObjectInFile($branche, $tech) >= 1) {
throw new ExceptionHB(4, 7);
}
//On vérifie que la technologie ne soit pas déjà développée
if (dTechnologies::idToBit($tech) & $planete->technologies[$branche])
if (dTechnologies::idToBit($tech) & $planete->technologies[$branche]) {
throw new ExceptionHB(4, 7);
}
//Validation des conditions de construction
if (!dTechnologies::needed(array($branche, $tech), $planete))
if (!dTechnologies::needed(array($branche, $tech), $planete)) {
throw new ExceptionHB(4, 2);
}
//On recherche le lieu ayant le moins de construction en cours
$lieu = $this->findShorter();
@ -53,15 +55,14 @@ class FileTechnologies extends FileCommun implements File
$this->refreshTime($lieu);
//On vérifie qu'il y ait assez de ressources sur la planète
if ($planete->checkAndRetireRessources(dTechnologies::metal($branche, $tech, $planete), dTechnologies::cristal($branche, $tech, $planete), dTechnologies::hydrogene($branche, $tech, $planete), dTechnologies::credits($branche, $tech, $planete)))
{
if ($planete->checkAndRetireRessources(dTechnologies::metal($branche, $tech, $planete), dTechnologies::cristal($branche, $tech, $planete), dTechnologies::hydrogene($branche, $tech, $planete), dTechnologies::credits($branche, $tech, $planete))) {
$this->files[$lieu][] = array($branche, $tech);
$planete->addModif("file_tech");
return true;
}
else
} else {
throw new ExceptionHB(4, 4);
}
}
public function addDemolition($object, $nombre = 1, surface $planete)
{
@ -71,24 +72,27 @@ class FileTechnologies extends FileCommun implements File
public function delObjet($id, $nombre = 1, $lieu, surface $planete)
{
//Vérification de l'existance de l'objet en file d'attente
if (empty($this->files[$lieu][$id]))
if (empty($this->files[$lieu][$id])) {
throw new ExceptionHB(4, 5);
}
//On récupère la branche et l'id de la technologie
$branche = $this->files[$lieu][$id][0];
$tech = $this->files[$lieu][$id][1];
//On met à jour le temps si on vient d'annuler la première recherche en lice
if ($tech == $this->findFirstKey($lieu))
if ($tech == $this->findFirstKey($lieu)) {
$this->times[$lieu] = time();
}
$planete->addModif("file_tech");
//On redonne 70% des ressources au joueur si c'est la première construction dans la file d'attente
if ($id == 0)
if ($id == 0) {
$planete->addRessources(dTechnologies::metal($branche, $tech, $planete)*0.7, dTechnologies::cristal($branche, $tech, $planete)*0.7, dTechnologies::hydrogene($branche, $tech, $planete)*0.7, dTechnologies::credits($branche, $tech, $planete)*0.7);
else
} else {
$planete->addRessources(dTechnologies::metal($branche, $tech, $planete), dTechnologies::cristal($branche, $tech, $planete), dTechnologies::hydrogene($branche, $tech, $planete), dTechnologies::credits($branche, $tech, $planete));
}
//Effacement de la file
unset($this->files[$lieu][$id]);
@ -99,22 +103,20 @@ class FileTechnologies extends FileCommun implements File
public function ready(surface $planete)
{
//On parcourt la liste des lieux de recherche
foreach($this->files as $keyF => $file)
{
foreach ($this->files as $keyF => $file) {
//On vérifie qu'il y a bien des éléments dans cette file d'attente
if (count($file) == 0)
if (count($file) == 0) {
continue;
}
//On parcourt la file
foreach ($file as $keyE => $element)
{
foreach ($file as $keyE => $element) {
$tempsEcoule = time() - $this->times[$keyF];
$tempsNecessaire = dTechnologies::temps($element[0], $element[1], $planete);
//Si le temps écoulé est suffisant
if ($tempsEcoule >= $tempsNecessaire)
{
if ($tempsEcoule >= $tempsNecessaire) {
//On ajoute un niveau au batiment
$planete->technologies[$element[0]] = $planete->technologies[$element[0]] | dTechnologies::idToBit($element[1]);
@ -130,10 +132,10 @@ class FileTechnologies extends FileCommun implements File
$planete->addPoints(dTechnologies::metal($element[0], $element[0], $planete), dTechnologies::cristal($element[0], $element[1], $planete), dTechnologies::hydrogene($element[0], $element[1], $planete), dTechnologies::credits($element[0], $element[1], $planete));
}
//Si le temps écoulé n'est pas suffisant pour ce batiment, on annule tous les suivants
else
else {
break;
}
}
}
}
@ -141,17 +143,17 @@ class FileTechnologies extends FileCommun implements File
public function printFile(surface $planete, $lieu = null)
{
$out = array();
foreach ($this->files as $keyF => $file)
{
if (isset($lieu) && $lieu != $keyF)
foreach ($this->files as $keyF => $file) {
if (isset($lieu) && $lieu != $keyF) {
continue;
}
$prems = true;
foreach ($file as $keyE => $element)
{
foreach ($file as $keyE => $element) {
$temps = dTechnologies::temps($element[0], $element[1], $planete);
if ($prems)
if ($prems) {
$temps -= time() - $this->times[$keyF];
}
$out[$keyF][$keyE] = array($element[0], $element[1], ceil($temps), $prems);
$prems = false;
@ -160,4 +162,3 @@ class FileTechnologies extends FileCommun implements File
return $out;
}
}
?>

View file

@ -5,28 +5,23 @@ class FileTerrestre extends FileCommun implements File
{
public function objectInFile($object, $lieu = null)
{
if (isset($lieu))
{
if (!empty($this->files[$lieu]))
{
foreach($this->files[$lieu] as $keyE => $element)
{
if ($element[0] == $object)
if (isset($lieu)) {
if (!empty($this->files[$lieu])) {
foreach ($this->files[$lieu] as $keyE => $element) {
if ($element[0] == $object) {
return array($lieu, $keyE);
}
}
}
else
{
foreach($this->files as $keyF => $file)
{
foreach($file as $keyE => $element)
{
if ($element[0] == $object)
} else {
foreach ($this->files as $keyF => $file) {
foreach ($file as $keyE => $element) {
if ($element[0] == $object) {
return array($keyF, $keyE);
}
}
}
}
return false;
}
@ -34,62 +29,62 @@ class FileTerrestre extends FileCommun implements File
public function nbObjectInFile($object)
{
$c = 0;
foreach($this->files as $key => $file)
{
foreach($file as $element)
{
if ($element[0] == $object)
foreach ($this->files as $key => $file) {
foreach ($file as $element) {
if ($element[0] == $object) {
$c += $element[1];
}
}
}
return $c;
}
public function addObjet($object, $nombre, surface $planete, $lieu = null)
{
//Vérification du nombre passé en entrée
if (!is_numeric($nombre) || $nombre < 0 || $nombre > 99999)
if (!is_numeric($nombre) || $nombre < 0 || $nombre > 99999) {
throw new ExceptionHB(3, 8);
}
//Validation des conditions de construction
if (!dTerrestre::needed($object, $planete))
if (!dTerrestre::needed($object, $planete)) {
throw new ExceptionHB(3, 2);
}
//On vérifie que l'on ne dépasse pas la taille maximale de la file
if (!($sauvLastKey = $this->objectInFile($object, $lieu)) && !$this->checkMaxSize($planete, $lieu))
if (!($sauvLastKey = $this->objectInFile($object, $lieu)) && !$this->checkMaxSize($planete, $lieu)) {
throw new ExceptionHB(3, 1);
}
//On tronque au maximum d'unités constructible sur la planète
if (($metal = dTerrestre::metal($object, 1, $planete)) > 0)
if (($metal = dTerrestre::metal($object, 1, $planete)) > 0) {
$metal = $planete->metal/$metal;
else
} else {
$metal = $nombre;
if (($cristal = dTerrestre::cristal($object, 1, $planete)) > 0)
}
if (($cristal = dTerrestre::cristal($object, 1, $planete)) > 0) {
$cristal = $planete->cristal/$cristal;
else
} else {
$cristal = $nombre;
if (($hydrogene = dTerrestre::hydrogene($object, 1, $planete)) > 0)
}
if (($hydrogene = dTerrestre::hydrogene($object, 1, $planete)) > 0) {
$hydrogene = $planete->hydrogene/$hydrogene;
else
} else {
$hydrogene = $nombre;
}
$nombre = floor(min($nombre, $metal, $cristal, $hydrogene));
//On vérifie qu'il y ait assez de ressources sur la planète
if ($planete->checkAndRetireRessources(dTerrestre::metal($object, $nombre, $planete), dTerrestre::cristal($object, $nombre, $planete), dTerrestre::hydrogene($object, $nombre, $planete), dTerrestre::credits($object, $nombre, $planete)))
{
if ($planete->checkAndRetireRessources(dTerrestre::metal($object, $nombre, $planete), dTerrestre::cristal($object, $nombre, $planete), dTerrestre::hydrogene($object, $nombre, $planete), dTerrestre::credits($object, $nombre, $planete))) {
//Si il existe déjà l'objet en file d'attente, on l'ajoute
if(isset($sauvLastKey) && isset($this->files[$sauvLastKey[0]][$sauvLastKey[1]]))
{
if (isset($sauvLastKey) && isset($this->files[$sauvLastKey[0]][$sauvLastKey[1]])) {
//On rafraîchit le temps de la file si aucun objet n'est en file d'attente
$this->refreshTime($sauvLastKey[0]);
$this->files[$sauvLastKey[0]][$sauvLastKey[1]][1] += $nombre;
}
else
{
if (!isset($lieu))
{
} else {
if (!isset($lieu)) {
//On recherche le lieu ayant le moins de construction en cours
$lieu = $this->findShorter();
}
@ -102,27 +97,29 @@ class FileTerrestre extends FileCommun implements File
$planete->addModif("file_ter");
return true;
}
else
} else {
throw new ExceptionHB(3, 4);
}
}
public function addDemolition($object, $nombre, surface $planete, $lieu = null)
{
//On vérifie que l'on ne dépasse pas la taille maximale de la file
if (!$this->checkMaxSize($planete, $lieu) && !($sauvLastKey = $this->objectInFile($object, $lieu)))
if (!$this->checkMaxSize($planete, $lieu) && !($sauvLastKey = $this->objectInFile($object, $lieu))) {
throw new ExceptionHB(3, 1);
}
//Vérification du nombre passé en entrée
if (!is_numeric($nombre) || $nombre < 0 || $nombre > 99999)
if (!is_numeric($nombre) || $nombre < 0 || $nombre > 99999) {
throw new ExceptionHB(3, 8);
}
//On vérifie que le nombre d'unité actuel soit non nul
if ($planete->terrestres[$object] < $nombre)
if ($planete->terrestres[$object] < $nombre) {
throw new ExceptionHB(3, 6);
}
if (!isset($lieu))
{
if (!isset($lieu)) {
//On recherche le lieu ayant le moins de construction en cours
$lieu = $this->findShorter();
}
@ -131,10 +128,11 @@ class FileTerrestre extends FileCommun implements File
$this->refreshTime($lieu);
//Si il existe déjà l'objet en file d'attente, on l'ajoute
if(isset($sauvLastKey))
if (isset($sauvLastKey)) {
$this->files[$sauvLastKey[0]][$sauvLastKey[1]][1] += $nombre;
else
} else {
$this->files[$lieu][] = array($object, $nombre, false);
}
$planete->addModif("file_ter");
@ -144,31 +142,36 @@ class FileTerrestre extends FileCommun implements File
public function delObjet($id, $nombre, $lieu, surface $planete)
{
//Vérification de l'existance de l'objet en file d'attente
if (empty($this->files[$lieu][$id]))
if (empty($this->files[$lieu][$id])) {
throw new ExceptionHB(1, 5);
}
//Si $nombre est supérieur au nombre présent dans la file, on le réduit
if ($this->files[$lieu][$id][1] < $nombre)
if ($this->files[$lieu][$id][1] < $nombre) {
$nombre = $this->files[$lieu][$id][1];
}
//On récupère les informations disponibles
$objet = $this->files[$lieu][$id][0];
$nombreMax = $this->files[$lieu][$id][1];
//On met à jour le temps si on vient d'annuler le premier groupe d'unités en lice
if ($id == $this->findFirstKey($lieu) && $nombreMax == $nombre)
if ($id == $this->findFirstKey($lieu) && $nombreMax == $nombre) {
$this->times[$lieu] = time();
}
$planete->addModif("file_ter");
if (!$this->files[$lieu][$id][2])
if (!$this->files[$lieu][$id][2]) {
$planete->addRessources(dTerrestre::metal($objet, $nombre, $planete), dTerrestre::cristal($objet, $nombre, $planete), dTerrestre::hydrogene($objet, $nombre, $planete), dTerrestre::credits($objet, $nombre, $planete));
}
//Effacement de la file
if ($nombre >= $nombreMax)
if ($nombre >= $nombreMax) {
unset($this->files[$lieu][$id]);
else
} else {
$this->files[$lieu][$id][1] -= $nombre;
}
$planete->addModif("file_ter");
return true;
@ -177,29 +180,24 @@ class FileTerrestre extends FileCommun implements File
public function ready(SURFACE $planete)
{
//On parcourt la liste des lieux de construction
foreach($this->files as $keyF => $file)
{
foreach ($this->files as $keyF => $file) {
//On vérifie qu'il y a bien des éléments dans cette file d'attente
if (count($file) == 0)
if (count($file) == 0) {
continue;
}
//On parcourt la liste à la recherche des unités terminées dans l'ordre
foreach($file as $keyE => $element)
{
foreach ($file as $keyE => $element) {
//Calcul du temps écoulé depuis le dernier entraînement
$tempsEcoule = time() - $this->times[$keyF];
//On gére les licenciments !
if ($element[2])
{
if ($element[2]) {
//On vérifie qu'il reste des unités du type sur la planète
if ($planete->terrestres[$element[0]] <= 0)
{
if ($planete->terrestres[$element[0]] <= 0) {
unset($this->files[$keyF][$keyE]);
$planete->addModif("file_ter");
}
else
{
} else {
//Récupération de 60% du temps nécessaire
$tempsNecessaire = dTerrestre::temps($element[0], 1, $planete) * 0.6;
@ -207,8 +205,7 @@ class FileTerrestre extends FileCommun implements File
$nbUnitee = min(floor($tempsEcoule/$tempsNecessaire), $element[1], $planete->terrestres[$element[0]]);
//Si le temps écoulé est suffisant
if ($nbUnitee > 0)
{
if ($nbUnitee > 0) {
//On redonne 70% des ressources de l'unité au joueur
$planete->addRessources(dTerrestre::metal($element[0], $nbUnitee, $planete)*0.7, dTerrestre::cristal($element[0], $nbUnitee, $planete)*0.7, dTerrestre::hydrogene($element[0], $nbUnitee, $planete)*0.7, dTerrestre::credits($element[0], $nbUnitee, $planete)*0.7);
@ -216,26 +213,27 @@ class FileTerrestre extends FileCommun implements File
$planete->terrestres[$element[0]] -= $nbUnitee;
//On efface l'entrée de la file et on met à jour le temps de la file
if ($nbUnitee >= $element[1])
if ($nbUnitee >= $element[1]) {
unset($this->filefiles[$keyF][$keyE]);
else
} else {
$this->file[$key][1] -= $nbUnitee;
}
$this->timefiles[$keyF] += $tempsNecessaire*$nbUnitee;
//On demande la mise à jour des champs modifiés
$planete->addModif(array("terrestres", $element[0]));
$planete->addModif("file_ter");
if ($nbUnitee < $element[1])
if ($nbUnitee < $element[1]) {
return false;
}
}
//Si le temps écoulé n'est pas suffisant pour cette unité, on annule toutes les suivantes
else
else {
break;
}
}
else //Cas de la construction
{
} else { //Cas de la construction
//Récupération du temps nécessaire
$tempsNecessaire = dTerrestre::temps($element[0], 1, $planete);
@ -243,61 +241,61 @@ class FileTerrestre extends FileCommun implements File
$nbUnitee = min(floor($tempsEcoule/$tempsNecessaire), $element[1]);
//Si le temps écoulé est suffisant
if ($nbUnitee > 0)
{
if ($nbUnitee > 0) {
//On ajoute le nombre d'unités
$planete->terrestres[$element[0]] += $nbUnitee;
//On efface l'entrée de la file et on met à jour le temps de la file
if ($nbUnitee >= $element[1])
if ($nbUnitee >= $element[1]) {
unset($this->files[$keyF][$keyE]);
else
} else {
$this->files[$keyF][$keyE][1] -= $nbUnitee;
}
$this->times[$keyF] += $tempsNecessaire * $nbUnitee;
//On demande la mise à jour des champs modifiés
$planete->addModif(array("terrestres", $element[0]));
$planete->addModif("file_ter");
if ($nbUnitee < $element[1])
if ($nbUnitee < $element[1]) {
break;
}
}
//Si le temps écoulé n'est pas suffisant pour ce batiment, on annule tous les suivants
else
else {
break;
}
}
}
}
}
function printFile(SURFACE $planete, $lieux = NULL)
public function printFile(SURFACE $planete, $lieux = null)
{
$out = array();
foreach ($this->files as $keyF => $file)
{
if (isset($lieu) && $lieu != $keyF)
foreach ($this->files as $keyF => $file) {
if (isset($lieu) && $lieu != $keyF) {
continue;
}
$prems = true;
foreach ($file as $keyE => $element)
{
if ($element[2])
{
foreach ($file as $keyE => $element) {
if ($element[2]) {
$temps = dTerrestre::temps($element[0], 1, $planete) * 0.6;
if ($prems)
if ($prems) {
$temps_moins = time() - $this->times[$keyF];
else
} else {
$temps_moins = 0;
$out[$keyF][$keyE] = array($element[0], $element[1], $element[2], ceil($temps * $element[1] - $temps_moins), ceil($temps - $temps_moins), $prems, dTerrestre::type($element[0]));
}
else
{
$out[$keyF][$keyE] = array($element[0], $element[1], $element[2], ceil($temps * $element[1] - $temps_moins), ceil($temps - $temps_moins), $prems, dTerrestre::type($element[0]));
} else {
$temps = dTerrestre::temps($element[0], 1, $planete);
if ($prems)
if ($prems) {
$temps_moins = time() - $this->times[$keyF];
else
} else {
$temps_moins = 0;
}
$out[$keyF][$keyE] = array($element[0], $element[1], $element[2], ceil($temps * $element[1] - $temps_moins), ceil($temps - $temps_moins), $prems, dTerrestre::type($element[0]));
}
$prems = false;
@ -306,4 +304,3 @@ class FileTerrestre extends FileCommun implements File
return $out;
}
}
?>

View file

@ -130,7 +130,7 @@ class Services_JSON
* bubble up with an error, so all return values
* from encode() should be checked with isError()
*/
function Services_JSON($use = 0)
public function Services_JSON($use = 0)
{
$this->use = $use;
}
@ -146,16 +146,16 @@ class Services_JSON
* @return string UTF-8 character
* @access private
*/
function utf162utf8($utf16)
public function utf162utf8($utf16)
{
// oh please oh please oh please oh please oh please
if(function_exists('mb_convert_encoding')) {
if (function_exists('mb_convert_encoding')) {
return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');
}
$bytes = (ord($utf16{0}) << 8) | ord($utf16{1});
switch(true) {
switch (true) {
case ((0x7F & $bytes) == $bytes):
// this case should never be reached, because we are in ASCII range
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
@ -190,14 +190,14 @@ class Services_JSON
* @return string UTF-16 character
* @access private
*/
function utf82utf16($utf8)
public function utf82utf16($utf8)
{
// oh please oh please oh please oh please oh please
if(function_exists('mb_convert_encoding')) {
if (function_exists('mb_convert_encoding')) {
return mb_convert_encoding($utf8, 'UTF-16', 'UTF-8');
}
switch(strlen($utf8)) {
switch (strlen($utf8)) {
case 1:
// this case should never be reached, because we are in ASCII range
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
@ -234,7 +234,7 @@ class Services_JSON
* @return mixed JSON string representation of input var or an error if a problem occurs
* @access public
*/
function encode($var)
public function encode($var)
{
switch (gettype($var)) {
case 'boolean':
@ -260,7 +260,6 @@ class Services_JSON
* escaping with a slash or encoding to UTF-8 where necessary
*/
for ($c = 0; $c < $strlen_var; ++$c) {
$ord_var_c = ord($var{$c});
switch (true) {
@ -304,9 +303,12 @@ class Services_JSON
case (($ord_var_c & 0xF0) == 0xE0):
// characters U-00000800 - U-0000FFFF, mask 1110XXXX
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c,
$char = pack(
'C*',
$ord_var_c,
ord($var{$c + 1}),
ord($var{$c + 2}));
ord($var{$c + 2})
);
$c += 2;
$utf16 = $this->utf82utf16($char);
$ascii .= sprintf('\u%04s', bin2hex($utf16));
@ -315,10 +317,13 @@ class Services_JSON
case (($ord_var_c & 0xF8) == 0xF0):
// characters U-00010000 - U-001FFFFF, mask 11110XXX
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c,
$char = pack(
'C*',
$ord_var_c,
ord($var{$c + 1}),
ord($var{$c + 2}),
ord($var{$c + 3}));
ord($var{$c + 3})
);
$c += 3;
$utf16 = $this->utf82utf16($char);
$ascii .= sprintf('\u%04s', bin2hex($utf16));
@ -327,11 +332,14 @@ class Services_JSON
case (($ord_var_c & 0xFC) == 0xF8):
// characters U-00200000 - U-03FFFFFF, mask 111110XX
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c,
$char = pack(
'C*',
$ord_var_c,
ord($var{$c + 1}),
ord($var{$c + 2}),
ord($var{$c + 3}),
ord($var{$c + 4}));
ord($var{$c + 4})
);
$c += 4;
$utf16 = $this->utf82utf16($char);
$ascii .= sprintf('\u%04s', bin2hex($utf16));
@ -340,12 +348,15 @@ class Services_JSON
case (($ord_var_c & 0xFE) == 0xFC):
// characters U-04000000 - U-7FFFFFFF, mask 1111110X
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
$char = pack('C*', $ord_var_c,
$char = pack(
'C*',
$ord_var_c,
ord($var{$c + 1}),
ord($var{$c + 2}),
ord($var{$c + 3}),
ord($var{$c + 4}),
ord($var{$c + 5}));
ord($var{$c + 5})
);
$c += 5;
$utf16 = $this->utf82utf16($char);
$ascii .= sprintf('\u%04s', bin2hex($utf16));
@ -376,12 +387,14 @@ class Services_JSON
// treat as a JSON object
if (is_array($var) && count($var) && (array_keys($var) !== range(0, sizeof($var) - 1))) {
$properties = array_map(array($this, 'name_value'),
$properties = array_map(
array($this, 'name_value'),
array_keys($var),
array_values($var));
array_values($var)
);
foreach($properties as $property) {
if(Services_JSON::isError($property)) {
foreach ($properties as $property) {
if (Services_JSON::isError($property)) {
return $property;
}
}
@ -392,8 +405,8 @@ class Services_JSON
// treat it like a regular array
$elements = array_map(array($this, 'encode'), $var);
foreach($elements as $element) {
if(Services_JSON::isError($element)) {
foreach ($elements as $element) {
if (Services_JSON::isError($element)) {
return $element;
}
}
@ -403,12 +416,14 @@ class Services_JSON
case 'object':
$vars = get_object_vars($var);
$properties = array_map(array($this, 'name_value'),
$properties = array_map(
array($this, 'name_value'),
array_keys($vars),
array_values($vars));
array_values($vars)
);
foreach($properties as $property) {
if(Services_JSON::isError($property)) {
foreach ($properties as $property) {
if (Services_JSON::isError($property)) {
return $property;
}
}
@ -431,11 +446,11 @@ class Services_JSON
* @return string JSON-formatted name-value pair, like '"name":value'
* @access private
*/
function name_value($name, $value)
public function name_value($name, $value)
{
$encoded_value = $this->encode($value);
if(Services_JSON::isError($encoded_value)) {
if (Services_JSON::isError($encoded_value)) {
return $encoded_value;
}
@ -450,7 +465,7 @@ class Services_JSON
* @return string string value stripped of comments and whitespace
* @access private
*/
function reduce_string($str)
public function reduce_string($str)
{
$str = preg_replace(array(
@ -481,7 +496,7 @@ class Services_JSON
* in ASCII or UTF-8 format!
* @access public
*/
function decode($str)
public function decode($str)
{
$str = $this->reduce_string($str);
@ -509,7 +524,6 @@ class Services_JSON
return ((float)$str == (integer)$str)
? (integer)$str
: (float)$str;
} elseif (preg_match('/^("|\').*(\1)$/s', $str, $m) && $m[1] == $m[2]) {
// STRINGS RETURNED IN UTF-8 FORMAT
$delim = substr($str, 0, 1);
@ -518,7 +532,6 @@ class Services_JSON
$strlen_chrs = strlen($chrs);
for ($c = 0; $c < $strlen_chrs; ++$c) {
$substr_chrs_c_2 = substr($chrs, $c, 2);
$ord_chrs_c = ord($chrs{$c});
@ -602,11 +615,9 @@ class Services_JSON
break;
}
}
return $utf8;
} elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) {
// array, or object notation
@ -633,10 +644,8 @@ class Services_JSON
if ($chrs == '') {
if (reset($stk) == SERVICES_JSON_IN_ARR) {
return $arr;
} else {
return $obj;
}
}
@ -645,7 +654,6 @@ class Services_JSON
$strlen_chrs = strlen($chrs);
for ($c = 0; $c <= $strlen_chrs; ++$c) {
$top = end($stk);
$substr_chrs_c_2 = substr($chrs, $c, 2);
@ -659,7 +667,6 @@ class Services_JSON
if (reset($stk) == SERVICES_JSON_IN_ARR) {
// we are in an array, so just push an element onto the stack
array_push($arr, $this->decode($slice));
} elseif (reset($stk) == SERVICES_JSON_IN_OBJ) {
// we are in an object, so figure
// out the property name and set an
@ -688,14 +695,11 @@ class Services_JSON
$obj->$key = $val;
}
}
}
} elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) {
// found a quote, and we are not inside a string
array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c}));
//print("Found start of string at {$c}\n");
} elseif (($chrs{$c} == $top['delim']) &&
($top['what'] == SERVICES_JSON_IN_STR) &&
((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) {
@ -704,58 +708,48 @@ class Services_JSON
// odd number of backslashes at the end of the string so far
array_pop($stk);
//print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n");
} elseif (($chrs{$c} == '[') &&
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
// found a left-bracket, and we are in an array, object, or slice
array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false));
//print("Found start of array at {$c}\n");
} elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) {
// found a right-bracket, and we're in an array
array_pop($stk);
//print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
} elseif (($chrs{$c} == '{') &&
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
// found a left-brace, and we are in an array, object, or slice
array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false));
//print("Found start of object at {$c}\n");
} elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) {
// found a right-brace, and we're in an object
array_pop($stk);
//print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
} elseif (($substr_chrs_c_2 == '/*') &&
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
// found a comment start, and we are in an array, object, or slice
array_push($stk, array('what' => SERVICES_JSON_IN_CMT, 'where' => $c, 'delim' => false));
$c++;
//print("Found start of comment at {$c}\n");
} elseif (($substr_chrs_c_2 == '*/') && ($top['what'] == SERVICES_JSON_IN_CMT)) {
// found a comment end, and we're in one now
array_pop($stk);
$c++;
for ($i = $top['where']; $i <= $c; ++$i)
for ($i = $top['where']; $i <= $c; ++$i) {
$chrs = substr_replace($chrs, ' ', $i, 1);
//print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
}
//print("Found end of comment at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
}
}
if (reset($stk) == SERVICES_JSON_IN_ARR) {
return $arr;
} elseif (reset($stk) == SERVICES_JSON_IN_OBJ) {
return $obj;
}
}
}
}
@ -763,7 +757,7 @@ class Services_JSON
/**
* @todo Ultimately, this should just call PEAR::isError()
*/
function isError($data, $code = null)
public function isError($data, $code = null)
{
if (class_exists('pear')) {
return PEAR::isError($data, $code);
@ -777,16 +771,18 @@ class Services_JSON
}
if (class_exists('PEAR_Error')) {
class Services_JSON_Error extends PEAR_Error
{
function Services_JSON_Error($message = 'unknown error', $code = null,
$mode = null, $options = null, $userinfo = null)
{
public function Services_JSON_Error(
$message = 'unknown error',
$code = null,
$mode = null,
$options = null,
$userinfo = null
) {
parent::PEAR_Error($message, $code, $mode, $options, $userinfo);
}
}
} else {
/**
@ -794,13 +790,13 @@ if (class_exists('PEAR_Error')) {
*/
class Services_JSON_Error
{
function Services_JSON_Error($message = 'unknown error', $code = null,
$mode = null, $options = null, $userinfo = null)
{
public function Services_JSON_Error(
$message = 'unknown error',
$code = null,
$mode = null,
$options = null,
$userinfo = null
) {
}
}
}
?>

View file

@ -8,23 +8,24 @@
*
*
***************************************************************************/
class Alliance extends SURFACE{
var $id,
$race,
$fondateur,
$sante,
$nom,
$tag,
$galaxie,
$ss,
$nom_asteroide,
$image_asteroide,
$debris_met,
$debris_cri,
$credits,
$metal,
$cristal,
$hydrogene;
class Alliance extends SURFACE
{
public $id;
public $race;
public $fondateur;
public $sante;
public $nom;
public $tag;
public $galaxie;
public $ss;
public $nom_asteroide;
public $image_asteroide;
public $debris_met;
public $debris_cri;
public $credits;
public $metal;
public $cristal;
public $hydrogene;
/**
* Constructeur
@ -33,7 +34,8 @@ class Alliance extends SURFACE{
* @return void
* @access public
*/
function Alliance($id = 0){
public function Alliance($id = 0)
{
if (!empty($id)) {
global $var___db, $config, $table_alliances;
global $alli_batimentVAR, $spatialVAR;
@ -61,12 +63,12 @@ class Alliance extends SURFACE{
$this->cristal = $alli["cristal"];
$this->hydrogene = $alli["hydrogene"];
foreach($alli_batimentVAR as $bat){
foreach ($alli_batimentVAR as $bat) {
$this->batiments[] = $alli[$bat];
}
$this->file_bat = unserialize($alli["file_bat"]);
foreach($spatialVAR as $vais){
foreach ($spatialVAR as $vais) {
$this->vaisseaux[] = $plan[$vais];
}
$this->file_vais = unserialize($alli["file_vais"]);
@ -82,7 +84,8 @@ class Alliance extends SURFACE{
* @return void
* @access public
*/
function actualiser($actuFile = true){
public function actualiser($actuFile = true)
{
//Actualisation des files d'attentes
if ($actuFile) {
$this->file_pret("alli_batiments");
@ -96,45 +99,58 @@ class Alliance extends SURFACE{
* @return void
* @access public
*/
function __destruct(){
public function __destruct()
{
global $var___db, $config, $table_alliances;
$nb = count($this->modif);
$out = array();
$bdd = new bdd();
$bdd->connexion();
for($i = 0; $i < $nb; $i++){
for ($i = 0; $i < $nb; $i++) {
if (!is_array($this->{$this->modif[$i]})) {
$bdd->escape($this->{$this->modif[$i]});
if (is_int($this->{$this->modif[$i]}) || is_float($this->{$this->modif[$i]})) $out[] .= $this->modif[$i]." = ".$this->{$this->modif[$i]};
else $out[] .= $this->modif[$i]." = '".$this->{$this->modif[$i]}."'";
if (is_int($this->{$this->modif[$i]}) || is_float($this->{$this->modif[$i]})) {
$out[] .= $this->modif[$i]." = ".$this->{$this->modif[$i]};
} else {
$out[] .= $this->modif[$i]." = '".$this->{$this->modif[$i]}."'";
}
else {
} else {
if (preg_match('#file#', $this->modif[$i])) {
$prep = serialize($this->{$this->modif[$i]});
$bdd->escape($prep);
$out[] .= $this->modif[$i]." = '$prep'";
} else {
if ($this->modif[$i] == "batiments") {
$calc = "batiment";
} elseif ($this->modif[$i] == "alli_batiments") {
$calc = "alli_batiment";
} elseif ($this->modif[$i] == "technologies") {
$calc = "technolo";
} elseif ($this->modif[$i] == "casernes") {
$calc = "casernen";
} elseif ($this->modif[$i] == "terrestres") {
$calc = "nomterrn";
} elseif ($this->modif[$i] == "vaisseaux") {
$calc = "nomvaisn";
} elseif ($this->modif[$i] == "coeff_bat") {
$calc = "coeff";
}
else {
if ($this->modif[$i] == "batiments") $calc = "batiment";
elseif ($this->modif[$i] == "alli_batiments") $calc = "alli_batiment";
elseif ($this->modif[$i] == "technologies") $calc = "technolo";
elseif ($this->modif[$i] == "casernes")$calc = "casernen";
elseif ($this->modif[$i] == "terrestres") $calc = "nomterrn";
elseif ($this->modif[$i] == "vaisseaux") $calc = "nomvaisn";
elseif ($this->modif[$i] == "coeff_bat") $calc = "coeff";
if (!isset(${$calc.'VAR'})) global ${$calc.'VAR'};
if (!isset(${$calc.'VAR'})) {
global ${$calc.'VAR'};
}
$nombr = count(${$calc.'VAR'});
for($j = 0; $j < $nombr; $j++){
for ($j = 0; $j < $nombr; $j++) {
$bdd->escape($this->{$this->modif[$i]}[$j]);
$out[] .= ${$calc.'VAR'}[$j]." = ".$this->{$this->modif[$i]}[$j]."";
}
}
}
}
if (!empty($out)) $plan = $bdd->unique_query("UPDATE $table_alliances SET ".implode(', ', $out)." WHERE id = ".$this->id.";");
if (!empty($out)) {
$plan = $bdd->unique_query("UPDATE $table_alliances SET ".implode(', ', $out)." WHERE id = ".$this->id.";");
}
$bdd->deconnexion();
}
}
?>

View file

@ -11,20 +11,20 @@ include_once("Class/surface.php");
***************************************************************************/
class Asteroide extends Surface
{
var $fondateur,
$sante,
$nom_alliance,
$tag,
$wing,
$nom_asteroide,
$image_asteroide,
$position = 5,
$cap = 123456789,
$credits_alliance,
$points_alliance,
$url_chat,
$url_forum,
$details = array();
public $fondateur;
public $sante;
public $nom_alliance;
public $tag;
public $wing;
public $nom_asteroide;
public $image_asteroide;
public $position = 5;
public $cap = 123456789;
public $credits_alliance;
public $points_alliance;
public $url_chat;
public $url_forum;
public $details = array();
/**
* Constructeur
@ -33,7 +33,7 @@ class Asteroide extends Surface
* @return void
* @access public
*/
function __construct($id = 0)
public function __construct($id = 0)
{
if (!empty($id)) {
global $table_alliances, $SESS;
@ -41,21 +41,17 @@ class Asteroide extends Surface
$bdd = new BDD();
//On traite le cas où l'on envoie les coordonnées
if (is_numeric($id))
{
if (is_numeric($id)) {
$plan = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;");
$bdd->deconnexion();
}
elseif (preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):?[Aa]?\]?$#', $id, $position))
{
} elseif (preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):?[Aa]?\]?$#', $id, $position)) {
$plan = $bdd->unique_query("SELECT * FROM $table_alliances WHERE galaxie = ".$position[1]." AND ss = ".$position[2].";");
$bdd->deconnexion();
}
else
} else {
die('Erreur #04 : Format de recherche d\'asteroide incorrect !');
}
if (!empty($plan))
{
if (!empty($plan)) {
$this->id = $plan["id"];
parent::User($SESS->values['id']); //On utilise le numéro d'utilisateur enregistré en session
$this->galaxie = $plan["galaxie"];
@ -76,25 +72,28 @@ class Asteroide extends Surface
$this->url_forum = $plan["url_forum"];
$this->url_chat = $plan["url_chat"];
foreach($alli_batimentsVAR as $bat)
foreach ($alli_batimentsVAR as $bat) {
$this->batiments[] = $plan[$bat];
if (!empty($plan["file_bat"]))
}
if (!empty($plan["file_bat"])) {
$this->file_bat = unserialize($plan["file_bat"]);
else
} else {
$this->file_bat = new FileAlliancesBatiments();
}
foreach($spatialVAR as $vais)
foreach ($spatialVAR as $vais) {
$this->vaisseaux[] = $plan[$vais];
if (!empty($plan["file_vais"]))
}
if (!empty($plan["file_vais"])) {
$this->file_vais = unserialize($plan["file_vais"]);
else
} else {
$this->file_vais = new FileSpatial('vaisseaux');
}
}
}
}
function loadDetails()
public function loadDetails()
{
global $table_alliances, $table_user;
$bdd = new bdd();
@ -102,20 +101,18 @@ class Asteroide extends Surface
$bdd->deconnexion();
}
function actualiser($actuFile = true, $first = false)
public function actualiser($actuFile = true, $first = false)
{
//Actualisation des files d'attentes
if ($actuFile)
{
if ($actuFile) {
$this->file_bat->ready($this);
$this->file_vais->ready($this);
}
}
function checkAndRetireRessources($metal, $cristal, $hydrogene, $credits)
{
if ($this->metal >= $metal && $this->cristal >= $cristal && $this->hydrogene >= $hydrogene && $this->credits_alliance >= $credits)
public function checkAndRetireRessources($metal, $cristal, $hydrogene, $credits)
{
if ($this->metal >= $metal && $this->cristal >= $cristal && $this->hydrogene >= $hydrogene && $this->credits_alliance >= $credits) {
$this->metal -= $metal;
$this->cristal -= $cristal;
$this->hydrogene -= $hydrogene;
@ -125,32 +122,29 @@ class Asteroide extends Surface
$this->addModif("credits_alliance");
return true;
}
else
} else {
return false;
}
}
function addRessources($metal, $cristal, $hydrogene, $credits)
public function addRessources($metal, $cristal, $hydrogene, $credits)
{
$perte = 0;
$this->metal += $metal;
if ($this->metal > $this->cap)
{
if ($this->metal > $this->cap) {
$perte += $this->metal - $this->cap;
$this->metal = $this->cap;
}
$this->cristal += $cristal;
if ($this->cristal > $this->cap)
{
if ($this->cristal > $this->cap) {
$perte += $this->cristal - $this->cap;
$this->cristal = $this->cap;
}
$this->hydrogene += $hydrogene;
if ($this->hydrogene > $this->cap)
{
if ($this->hydrogene > $this->cap) {
$perte += $this->hydrogene - $this->cap;
$this->hydrogene = $this->cap;
}
@ -163,7 +157,7 @@ class Asteroide extends Surface
return $perte;
}
function addCreditsAlliance($credits)
public function addCreditsAlliance($credits)
{
$this->credits_alliance += $credits;
$this->addModif("credits_alliance");
@ -171,7 +165,7 @@ class Asteroide extends Surface
return 0;
}
function addPoints($metal, $cristal, $hydrogene, $credits = 0, $demolition = false)
public function addPoints($metal, $cristal, $hydrogene, $credits = 0, $demolition = false)
{
global $table_bourse_ressources;
//On charge les 3 valeurs boursières
@ -179,8 +173,7 @@ class Asteroide extends Surface
$bourse = $bdd->query("SELECT dispo FROM $table_bourse_ressources;");
$bdd->deconnexion();
if (!empty($credits))
{
if (!empty($credits)) {
//TODO Equivalence non prouvée entre $credits/bourse_calcPrixBase($bourse[0]["dispo"], 0.7); et $credits/bourse_calcPrixBase($bourse[0]["dispo"], 1) * 0.7; dans le but de ne donner que 70% des points
$metal += $credits/bourse_calcPrixBase($bourse[0]["dispo"], 0.7);
$cristal += $credits/bourse_calcPrixBase($bourse[1]["dispo"], 0.7);
@ -191,15 +184,16 @@ class Asteroide extends Surface
$points += bourse_calcPrixBase($bourse[1]["dispo"], $cristal);
$points += bourse_calcPrixBase($bourse[2]["dispo"], $hydrogene);
if ($demolition)
if ($demolition) {
$this->points_alliance -= intval($points);
else
} else {
$this->points_alliance += intval($points);
}
$this->addModif("points_alliance");
}
function creer($fondateur, $mere = false)
public function creer($fondateur, $mere = false)
{
global $VAR, $table_alliances_creation;
@ -208,8 +202,9 @@ class Asteroide extends Surface
$bdd->deconnexion();
//On vérifie que l'alliance n'a pas déjà été créée
if (empty($alliance))
if (empty($alliance)) {
return 1;
}
//Définition des paramètres de l'utilisateur pour l'astéroide
$this->fondateur = $alliance["fondateur"];
@ -220,7 +215,7 @@ class Asteroide extends Surface
$this->nom_alliance = $alliance["nom_alliance"];
$this->tag = $alliance["tag"];
$this->nom_asteroide = $alliance["nom_alliance"];
$this->image_asteroide = mt_rand(1,3);
$this->image_asteroide = mt_rand(1, 3);
$this->modif = array("fondateur", "race", "nom_alliance", "galaxie", "ss", "tag", "nom_asteroide", "image_asteroide");
}
@ -231,36 +226,36 @@ class Asteroide extends Surface
* @return void
* @access public
*/
function __destruct()
public function __destruct()
{
if (empty($this->ss) || empty($this->fondateur))
if (empty($this->ss) || empty($this->fondateur)) {
return;
if (DEBUG)
}
if (DEBUG) {
var_dump($this);
}
global $table_alliances;
if (empty($this->id))
{
$outNomChamps = array(); $outValeurs = array();
if (empty($this->id)) {
$outNomChamps = array();
$outValeurs = array();
$bdd = new BDD();
foreach($this->modif as $modif)
{
foreach ($this->modif as $modif) {
//On gère les champs variables tableaux
if (is_array($modif))
{
if ($modif[0] == "batiments")
if (is_array($modif)) {
if ($modif[0] == "batiments") {
$calc = dDonnees::nameVAR("alli_batiments");
else
} else {
$calc = dDonnees::nameVAR($modif[0]);
}
if (!isset(${$calc.'VAR'}))
if (!isset(${$calc.'VAR'})) {
global ${$calc.'VAR'};
}
$outNomChamps[] = ${$calc.'VAR'}[$modif[1]];
$outValeurs[] = $this->{$modif[0]}[$modif[1]];
}
elseif ($modif == "force")
{
} elseif ($modif == "force") {
$outNomChamps[] = "metal";
$outNomChamps[] = "cristal";
$outNomChamps[] = "hydrogene";
@ -268,34 +263,28 @@ class Asteroide extends Surface
$outValeurs[] = $this->metal;
$outValeurs[] = $this->cristal;
$outValeurs[] = $this->hydrogene;
}
elseif (!is_array($this->{$modif}))
{
} elseif (!is_array($this->{$modif})) {
$bdd->escape($this->{$modif});
$outNomChamps[] = $modif;
if (is_int($this->{$modif}) || is_float($this->{$modif}))
if (is_int($this->{$modif}) || is_float($this->{$modif})) {
$outValeurs[] = $this->{$modif};
else
} else {
$outValeurs[] = "'".$this->{$modif}."'";
}
else
{
if (is_array($this->{$modif}) && $modif != "coeff_bat" && $modif != "vaisseaux" && $modif != "terrestres" && $modif != "casernes" && $modif != "technologies" && $modif != "batiments")
{
} else {
if (is_array($this->{$modif}) && $modif != "coeff_bat" && $modif != "vaisseaux" && $modif != "terrestres" && $modif != "casernes" && $modif != "technologies" && $modif != "batiments") {
$prep = serialize($this->{$modif});
$bdd->escape($prep);
$outNomChamps[] = $modif;
$outValeurs[] = "'$prep'";
}
else
{
} else {
$calc = dDonnees::nameVAR($modif);
if (!isset(${$calc.'VAR'}))
if (!isset(${$calc.'VAR'})) {
global ${$calc.'VAR'};
}
foreach($this->{$modif} as $j => $value)
{
foreach ($this->{$modif} as $j => $value) {
$outNomChamps[] = ${$calc.'VAR'}[$j];
$outValeurs[] = $value;
}
@ -304,82 +293,77 @@ class Asteroide extends Surface
}
//On supprime le lien de construction de l'alliance
$bdd->query("DELETE FROM $table_alliances_creation WHERE fondateur = ".$this->fondateur.";");
if ($bdd->affected() != 1)
if ($bdd->affected() != 1) {
elog($bdd->affected()." champ(s) affecté(s) par la requête du fichier ".__FILE__." à la ligne ".__LINE__.", données : fondateur = ".$this->fondateur, 2);
}
//On ajout l'astéroide
$bdd->query("INSERT INTO $table_alliances (".implode(', ', $outNomChamps).") VALUES (".implode(', ', $outValeurs).");");
if ($bdd->affected() != 1)
if ($bdd->affected() != 1) {
elog($bdd->affected()." champ(s) affecté(s) par la requête du fichier ".__FILE__." à la ligne ".__LINE__.", données : outNomChamps = ".serialize($outNomChamps)." ; outValeurs = ".serialize($outValeurs), 2);
$bdd->deconnexion();
}
else
{
$bdd->deconnexion();
} else {
$out = array();
$bdd = new BDD();
foreach($this->modif as $modif)
{
foreach ($this->modif as $modif) {
//On gère les champs variables tableaux
if (is_array($modif))
{
if ($modif[0] == "batiments")
if (is_array($modif)) {
if ($modif[0] == "batiments") {
$calc = dDonnees::nameVAR("alli_batiments");
else
} else {
$calc = dDonnees::nameVAR($modif[0]);
}
if (!isset(${$calc.'VAR'}))
if (!isset(${$calc.'VAR'})) {
global ${$calc.'VAR'};
if (empty(${$calc.'VAR'}))
}
if (empty(${$calc.'VAR'})) {
trigger_error('Impossible de trouver les données pour '.$modif[0], E_USER_ERROR);
}
$out[] = ${$calc.'VAR'}[$modif[1]]." = ".$this->{$modif[0]}[$modif[1]];
}
elseif ($modif == "force")
{
} elseif ($modif == "force") {
$out[] = "metal = ".$this->metal;
$out[] = "cristal = ".$this->cristal;
$out[] = "hydrogene = ".$this->hydrogene;
}
elseif (!is_array($this->{$modif}) && !is_object($this->{$modif}))
{
} elseif (!is_array($this->{$modif}) && !is_object($this->{$modif})) {
$bdd->escape($this->{$modif});
if (is_int($this->{$modif}) || is_float($this->{$modif}))
if (is_int($this->{$modif}) || is_float($this->{$modif})) {
$out[] = $modif." = ".$this->{$modif};
else
} else {
$out[] = $modif." = '".$this->{$modif}."'";
}
else
{
if ($modif != "coeff_bat" && $modif != "vaisseaux" && $modif != "terrestres" && $modif != "casernes" && $modif != "technologies" && $modif != "batiments")
{
} else {
if ($modif != "coeff_bat" && $modif != "vaisseaux" && $modif != "terrestres" && $modif != "casernes" && $modif != "technologies" && $modif != "batiments") {
$prep = serialize($this->{$modif});
$bdd->escape($prep);
$out[] = $modif." = '$prep'";
}
else
{
} else {
$calc = dDonnees::nameVAR($modif);
if (!isset(${$calc.'VAR'}))
if (!isset(${$calc.'VAR'})) {
global ${$calc.'VAR'};
}
foreach($this->{$modif} as $j => $value)
foreach ($this->{$modif} as $j => $value) {
$out[] = ${$calc.'VAR'}[$j]." = ".$value;
}
}
}
if (!empty($out))
{
}
if (!empty($out)) {
$sql = "UPDATE $table_alliances SET ".implode(', ', $out)." WHERE id = ".$this->id.";";
if (DEBUG)
if (DEBUG) {
echo '<br /><br />'.$sql;
}
$bdd->query($sql);
if ($bdd->affected() != 1)
if ($bdd->affected() != 1) {
elog($bdd->affected()." champ(s) affecté(s) par la requête du fichier ".__FILE__." à la ligne ".__LINE__.", données : out = ".serialize($out), 2);
}
}
$bdd->deconnexion();
parent::__destruct();
}
}
}
?>

View file

@ -6,37 +6,36 @@
*/
class Attaques
{
var $groupes = array();
public $groupes = array();
/**
* Constructor
*/
function __construct()
public function __construct()
{
}
function addGroupe($groupe)
public function addGroupe($groupe)
{
$this->groupes[] = $groupe;
}
function checkAllGroupes()
public function checkAllGroupes()
{
foreach ($groupes as $key => $groupe)
foreach ($groupes as $key => $groupe) {
$this->checkGroupe($key);
}
function checkGroupe($id)
{
if (is_a($this->groupes[$id], "Groupe"))
{
if ($this->groupes[$id]->)
{
}
}
$groupes[$id]->
public function checkGroupe($id)
{
// if (is_a($this->groupes[$id], "Groupe"))
// {
// if ($this->groupes[$id]->)
// {
//
// }
// }
// $groupes[$id]->
}
}
?>

View file

@ -4,17 +4,18 @@
* Dernière édition le 21 Juillet 2008
* Copyright Halo-Battle Tous droits réservés
*/
class Bourse{
var $bd;
class Bourse
{
public $bd;
var $id;
var $nom;
var $taxeA = 1.1;
var $taxeV = 1.5;
var $metal;
var $cristal;
var $actionsUser;
var $user;
public $id;
public $nom;
public $taxeA = 1.1;
public $taxeV = 1.5;
public $metal;
public $cristal;
public $actionsUser;
public $user;
/**
* Constructor
@ -24,7 +25,8 @@ class Bourse{
*
* @access protected
*/
function Bourse($nom = "", $user = 0){
public function Bourse($nom = "", $user = 0)
{
global $var___db, $config;
$db = new bdd();
$db->connexion();
@ -32,15 +34,19 @@ class Bourse{
if (!empty($nom)) {
$this->loadAction($nom, "id");
if (!empty($user)) $this->loadUser($user);
if (!empty($user)) {
$this->loadUser($user);
}
}
}
function __destruct(){
public function __destruct()
{
$this->bd->deconnexion();
}
function loadAction($nom, $type = "nom"){
public function loadAction($nom, $type = "nom")
{
global $table_bourse;
$this->bd->escape($nom);
$act = $this->bd->unique_query("SELECT * FROM $table_bourse WHERE $type = '$nom';");
@ -49,11 +55,13 @@ class Bourse{
$this->nom = $act['nom'];
$this->metal = $act['metal'];
$this->cristal = $act['cristal'];
} else {
erreur('Impossible de trouver cette action !', "red", '?p=bourse');
}
else erreur('Impossible de trouver cette action !', "red", '?p=bourse');
}
function loadUser($user, $type = "id"){
public function loadUser($user, $type = "id")
{
global $table_user;
$this->bd->escape($user);
$act = $this->bd->unique_query("SELECT id, bourse FROM $table_user WHERE $type = '$user';");
@ -61,35 +69,44 @@ class Bourse{
$this->traitUser($act['bourse']);
}
function traitUser($start){
public function traitUser($start)
{
$end = array();
$start = explode(';', $start);
$cnt = count($start);
for($i = 0; $i < $cnt; $i++){
for ($i = 0; $i < $cnt; $i++) {
$tmp = explode(':', $start[$i]);
if (!empty($tmp[1])) $end[$tmp[0]] = explode(',', $tmp[1]);
else $end[$tmp[0]] = array();
if (!empty($tmp[1])) {
$end[$tmp[0]] = explode(',', $tmp[1]);
} else {
$end[$tmp[0]] = array();
}
}
$this->actionsUser = $end;
}
function prixAchat($nb){
public function prixAchat($nb)
{
return array(floor($this->metal * $nb * $this->taxeA), floor($this->cristal * $nb * $this->taxeA));
}
function prixVente($nb){
if ($this->action() < $nb) $nb = $this->action();
public function prixVente($nb)
{
if ($this->action() < $nb) {
$nb = $this->action();
}
return array(floor($this->metal * $nb / $this->taxeV), floor($this->cristal * $nb / $this->taxeV));
}
function addAction($nb){
public function addAction($nb)
{
$ret = array(floor($this->metal * $nb * $this->taxeA), floor($this->cristal * $nb * $this->taxeA));
$this->metal *= pow(1.1, $nb);
$this->cristal *= pow(1.1, $nb);
for($i = 0; $i < $nb; $i++){
for ($i = 0; $i < $nb; $i++) {
$this->actionsUser[$this->id][] = time();
}
@ -97,15 +114,18 @@ class Bourse{
return $ret;
}
function delAction($nb){
if ($this->action() < $nb) $nb = $this->action();
public function delAction($nb)
{
if ($this->action() < $nb) {
$nb = $this->action();
}
$ret = array(floor($this->metal * $nb / $this->taxeV), floor($this->cristal * $nb / $this->taxeV));
$this->metal /= pow(1.1, $nb);
$this->cristal /= pow(1.1, $nb);
for($i = 0; $i < $nb; $i++){
for ($i = 0; $i < $nb; $i++) {
unset($this->actionsUser[$this->id][$i]);
}
@ -113,54 +133,69 @@ class Bourse{
return $ret;
}
function actionIn24Hours(){
public function actionIn24Hours()
{
$nb = 0;
if (isset($this->actionsUser[$this->id])) {
$cnt = count($this->actionsUser[$this->id]);
for($i = 0; $i < $cnt; $i++){
if ($this->actionsUser[$this->id][$i] > time() - 86400) $nb++;
for ($i = 0; $i < $cnt; $i++) {
if ($this->actionsUser[$this->id][$i] > time() - 86400) {
$nb++;
}
}
}
return $nb;
}
function action(){
if (isset($this->actionsUser[$this->id])) return count($this->actionsUser[$this->id]);
else return 0;
public function action()
{
if (isset($this->actionsUser[$this->id])) {
return count($this->actionsUser[$this->id]);
} else {
return 0;
}
}
function maj(){
public function maj()
{
$this->majBourse();
$this->majUser();
$this->fileSave();
}
function majBourse(){
public function majBourse()
{
global $table_bourse;
$this->bd->query("UPDATE $table_bourse SET nom = '".$this->nom."', metal = '".$this->metal."', cristal = '".$this->cristal."' WHERE id = ".$this->id.";");
}
function majUser(){
public function majUser()
{
global $table_user;
$champ = '';
foreach($this->actionsUser as $key => $cell) {
foreach ($this->actionsUser as $key => $cell) {
if (count($cell) > 0) {
if (empty($champ)) $champ .= $key.':'.implode(',', $cell);
else $champ .= ';'.$key.':'.implode(',', $cell);
if (empty($champ)) {
$champ .= $key.':'.implode(',', $cell);
} else {
$champ .= ';'.$key.':'.implode(',', $cell);
}
}
}
$this->bd->query("UPDATE $table_user SET bourse = '$champ' WHERE id = ".$this->user.";");
}
function delUser($id = ""){
if (!empty($id)) $this->loadUser($id);
public function delUser($id = "")
{
if (!empty($id)) {
$this->loadUser($id);
}
$champ = '';
foreach($this->actionsUser as $key => $cell) {
foreach ($this->actionsUser as $key => $cell) {
$cnt = count($cell);
if ($cnt > 0) {
$this->loadAction($key, "id");
@ -170,21 +205,23 @@ class Bourse{
}
function fileSave(){
$fichier = fopen(_FCORE."../game/cache/bourse/".$this->id.".".strftime('%Y%m%d').".bourse",'a+');
public function fileSave()
{
$fichier = fopen(_FCORE."../game/cache/bourse/".$this->id.".".strftime('%Y%m%d').".bourse", 'a+');
fwrite($fichier, time().';'.$this->metal.';'.$this->cristal."\n");
fclose($fichier);
}
function newGroupe($nom, $metal, $cristal, $description = ""){
public function newGroupe($nom, $metal, $cristal, $description = "")
{
global $table_bourse;
$this->bd->query("INSERT INTO $table_bourse (nom, metal, cristal, description) VALUES('$nom', '$metal', '$cristal', '$description');");
}
function editGroupe($description){
public function editGroupe($description)
{
//TODO toute cette fonction !!
}
}
?>

View file

@ -9,8 +9,8 @@
*
***************************************************************************/
class Donnee
{
static function donneeTechnologie($branche, $idTechnologie, $retour, Planete $planete)
{
public static function donneeTechnologie($branche, $idTechnologie, $retour, Planete $planete)
{
//TODO : Faire un switch pour ne renvoyer le tableau que de la branche plutôt que ce tableau avec l'intégralité des branches.
$technologies_donnees = array(
@ -201,62 +201,70 @@ class Donnee
)
);
if ($retour == "metal") return 0;
elseif ($retour == "cristal") return 0;
elseif ($retour == "hydrogene") return 0;
elseif ($retour == "credits") return $technologies_donnees[$branche][$idTechnologie][2];
elseif ($retour == "temps") return $technologies_donnees[$branche][$idTechnologie][3]/VITESSE;
elseif ($retour == "needed") return $technologies_donnees[$branche][$idTechnologie][1];
elseif ($retour == "id") return $technologies_donnees[$branche][$idTechnologie][0];
elseif ($retour == "array") return array(0, 0, 0, $technologies_donnees[$branche][$idTechnologie][2], $technologies_donnees[$branche][$idTechnologie][3]/VITESSE);
if ($retour == "metal") {
return 0;
} elseif ($retour == "cristal") {
return 0;
} elseif ($retour == "hydrogene") {
return 0;
} elseif ($retour == "credits") {
return $technologies_donnees[$branche][$idTechnologie][2];
} elseif ($retour == "temps") {
return $technologies_donnees[$branche][$idTechnologie][3]/VITESSE;
} elseif ($retour == "needed") {
return $technologies_donnees[$branche][$idTechnologie][1];
} elseif ($retour == "id") {
return $technologies_donnees[$branche][$idTechnologie][0];
} elseif ($retour == "array") {
return array(0, 0, 0, $technologies_donnees[$branche][$idTechnologie][2], $technologies_donnees[$branche][$idTechnologie][3]/VITESSE);
}
}
static function metalTechnologie($branche, $idTechnologie, Planete $planete)
public static function metalTechnologie($branche, $idTechnologie, Planete $planete)
{
return Donnee::donneeTechnologie($branche, $idTechnologie, "metal", $planete);
}
static function cristalTechnologie($branche, $idTechnologie, Planete $planete)
public static function cristalTechnologie($branche, $idTechnologie, Planete $planete)
{
return Donnee::donneeTechnologie($branche, $idTechnologie, "cristal", $planete);
}
static function hydrogeneTechnologie($branche, $idTechnologie, Planete $planete)
public static function hydrogeneTechnologie($branche, $idTechnologie, Planete $planete)
{
return Donnee::donneeTechnologie($branche, $idTechnologie, "hydrogene", $planete);
}
static function creditsTechnologie($branche, $idTechnologie, Planete $planete)
public static function creditsTechnologie($branche, $idTechnologie, Planete $planete)
{
return Donnee::donneeTechnologie($branche, $idTechnologie, "credits", $planete);
}
static function tempsTechnologie($branche, $idTechnologie, Planete $planete)
public static function tempsTechnologie($branche, $idTechnologie, Planete $planete)
{
return Donnee::donneeTechnologie($branche, $idTechnologie, "temps", $planete);
}
static function idTechnologie($branche, $idTechnologie, Planete $planete)
public static function idTechnologie($branche, $idTechnologie, Planete $planete)
{
return Donnee::donneeTechnologie($branche, $idTechnologie, "id", $planete);
}
static function neededTechnologie($branche, $idTechnologie, Planete $planete)
public static function neededTechnologie($branche, $idTechnologie, Planete $planete)
{
$neededTechnologies = Donnee::donneeTechnologie($branche, $idTechnologie, "needed", $planete);
if (empty($neededTechnologies)) return true;
if (is_array($neededTechnologies))
{
if (empty($neededTechnologies)) {
return true;
}
if (is_array($neededTechnologies)) {
//TODO prévoir le besoin de plus d'une technologie pour la validation, dans une autre branche, batiment (?) ...
die('TODO '.__LINE__.' in '.__FILE__);
}
else
{
if (((int)$planete->technologies[$branche]& $neededTechnologies) == $neededTechnologies)
} else {
if (((int)$planete->technologies[$branche]& $neededTechnologies) == $neededTechnologies) {
return true;
else
} else {
return false;
}
}
}
?>
}

File diff suppressed because it is too large Load diff

View file

@ -9,16 +9,16 @@
*
***************************************************************************/
class FlotteGroupee
{
var $id_flotte = 0,
$nom,
$end_planete,
$time_end,
$end_type,
$ret_planete,
$flottes = array(),
$mission,
$modifFlotte = array();
{
public $id_flotte = 0;
public $nom;
public $end_planete;
public $time_end;
public $end_type;
public $ret_planete;
public $flottes = array();
public $mission;
public $modifFlotte = array();
/**
* Constructeur
@ -28,10 +28,9 @@ class FlotteGroupee
* @return void
* @access public
*/
function __construct($id = 0, $verrou = true)
{
if (!empty($id))
public function __construct($id = 0, $verrou = true)
{
if (!empty($id)) {
global $table_flottes_preparation;
global $spatialVAR, $ressoVAR;
@ -40,8 +39,7 @@ class FlotteGroupee
$flotte = $bdd->unique_query("SELECT * FROM $table_flottes_preparation WHERE id = $id;");
$bdd->deconnexion();
if (!empty($flotte))
{
if (!empty($flotte)) {
$this->id_flotte = $flotte["id"];
$this->nom = $flotte["nom"];
$this->end_planete = $flotte["end_planete"];
@ -49,57 +47,56 @@ class FlotteGroupee
$this->time_end = $flotte["time_end"];
$this->mission = $flotte["mission"];
if (empty($this->flottes)
if (empty($this->flottes)) {
$this->flottes = array();
else
} else {
$this->flottes = unserialize($flotte["flottes"]);
}
}
}
}
function load_planete()
{
if (is_numeric($this->end_planete) && !empty($this->end_planete))
public function load_planete()
{
if (is_numeric($this->end_planete) && !empty($this->end_planete)) {
//On traite l'importation en fonction des types fornis
if ($this->end_type == 0 || $this->end_type == 1)
{
if ($this->end_type == 0 || $this->end_type == 1) {
global $planete;
//Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée
if (SURFACE == "planete" && $planete->id == $this->end_planete)
if (SURFACE == "planete" && $planete->id == $this->end_planete) {
$this->end_planete = $planete;
else
} else {
$this->end_planete = new Planete($this->end_planete);
}
else
{
} else {
global $planete;
//Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée
if (SURFACE == "asteroide" && $planete->id == $this->end_planete)
if (SURFACE == "asteroide" && $planete->id == $this->end_planete) {
$this->end_planete = $planete;
else
} else {
$this->end_planete = new Asteroide($this->end_planete);
}
}
}
}
function addFlotte($start_planete, $vitesse, $vaisseaux, $contenu_metal, $contenu_cristal, $contenu_hydrogene)
public function addFlotte($start_planete, $vitesse, $vaisseaux, $contenu_metal, $contenu_cristal, $contenu_hydrogene)
{
$this->flottes[] = array($start_planete->id_user, $start_planete->id, $vitesse, $vaisseaux, $contenu_metal, $contenu_cristal, $contenu_hydrogene);
addModifFlotte("flottes");
}
function lancer()
public function lancer()
{
}
function addModifFlotte($modif)
public function addModifFlotte($modif)
{
if (!in_array($modif, $this->modifFlotte))
if (!in_array($modif, $this->modifFlotte)) {
$this->modifFlotte[] = $modif;
}
}
/**
* Destructeur
@ -107,74 +104,66 @@ class FlotteGroupee
* @return void
* @access public
*/
function __destruct()
public function __destruct()
{
global $table_flottes;
if ($this->modifFlotte === "DELETE")
{
if ($this->modifFlotte === "DELETE") {
$bdd = new BDD();
$bdd->query("DELETE FROM $table_flottes WHERE id = ".$this->id_flotte.";");
$bdd->deconnexion();
}
else
{
if (empty($this->id_flotte))
{
if ($this->modifFlotte == "INSERT")
{
$out1 = ''; $out2 = '';
} else {
if (empty($this->id_flotte)) {
if ($this->modifFlotte == "INSERT") {
$out1 = '';
$out2 = '';
global $spatialVAR;
foreach ($this->vaisseaux as $key => $vais)
{
foreach ($this->vaisseaux as $key => $vais) {
$out1 .= ', '.$spatialVAR[$key];
$out2 .= ', '.$vais;
}
$sql = "INSERT INTO $table_flottes (id_user, mission, start_time, start_type, start_planete, end_time, end_type, end_planete, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, tactique, nom, nb_vais$out1) VALUES ('".$this->start_planete->id_user."', '".$this->mission."', '".$this->start_time."', '".$this->start_type."', '".$this->start_planete->id."', '".$this->end_time."', '".$this->end_type."', '".$this->end_planete."', '".$this->vitesse."', '".$this->contenu[0]."', '".$this->contenu[1]."', '".$this->contenu[2]."', '".$this->tactique."', '".$this->nom."', ".$this->nb_vais."$out2);";
if (DEBUG) echo $sql;
if (DEBUG) {
echo $sql;
}
$bdd = new BDD();
$bdd->query($sql);
$bdd->deconnexion();
}
}
elseif(isset($this->modifFlotte[0]))
{
} elseif (isset($this->modifFlotte[0])) {
$out = array();
$bdd = new BDD();
foreach($this->modifFlotte as $modif)
{
if (!is_array($this->{$modif}))
{
if (is_int($this->{$modif}) || is_float($this->{$modif}))
foreach ($this->modifFlotte as $modif) {
if (!is_array($this->{$modif})) {
if (is_int($this->{$modif}) || is_float($this->{$modif})) {
$out[] .= $modif." = ".$this->{$modif};
else
{
} else {
$bdd->escape($this->{$modif});
$out[] .= $modif." = '".$this->{$modif}."'";
}
}
else
{
if ($modif == "contenu")
} else {
if ($modif == "contenu") {
$calc = "resso";
elseif ($modif == "vaisseaux")
} elseif ($modif == "vaisseaux") {
$calc = "nomvaisn";
}
if (!isset(${$calc.'VAR'}))
if (!isset(${$calc.'VAR'})) {
global ${$calc.'VAR'};
}
foreach(${$calc.'VAR'} as $key => $var)
{
foreach (${$calc.'VAR'} as $key => $var) {
$bdd->escape($this->{$modif}[$key]);
$out[] = ${$calc.'VAR'}[$key]." = ".$this->{$modif}[$key];
}
}
}
if (!empty($out))
{
if (!empty($out)) {
$sql = "UPDATE $table_flottes SET ".implode(', ', $out).", last = 0 WHERE id = ".$this->id_flotte.";";
if (DEBUG) var_dump($sql);
if (DEBUG) {
var_dump($sql);
}
$bdd->query($sql);
}
@ -182,5 +171,4 @@ class FlotteGroupee
}
}
}
}
?>
}

View file

@ -9,24 +9,25 @@
*
***************************************************************************/
class Combat {
var $refflotte = 0;
var $ATvais = array();
var $ENvais = array();
var $ENres = array('metal' => 0, 'cristal' => 0, 'hydrogene' => 0);
var $ENdef = array();
var $Ntour = 0;
var $ATtactique = 0;
var $ENtactique = 0;
var $timestamp = 0;
var $vaisContenu = 0;
var $vaisContenuM = 0;
var $vaisContenuC = 0;
var $vaisContenuH = 0;
var $pillage = array(0, 0, 0);
class Combat
{
public $refflotte = 0;
public $ATvais = array();
public $ENvais = array();
public $ENres = array('metal' => 0, 'cristal' => 0, 'hydrogene' => 0);
public $ENdef = array();
public $Ntour = 0;
public $ATtactique = 0;
public $ENtactique = 0;
public $timestamp = 0;
public $vaisContenu = 0;
public $vaisContenuM = 0;
public $vaisContenuC = 0;
public $vaisContenuH = 0;
public $pillage = array(0, 0, 0);
var $debriM = 0;
var $debriC = 0;
public $debriM = 0;
public $debriC = 0;
/**
* Constructeur
@ -37,7 +38,8 @@ class Combat {
* @return void
* @access public
*/
function Combat($flotteAT, $flotteEN, $defEN, $tableTechno = array(0, 0)) {
public function Combat($flotteAT, $flotteEN, $defEN, $tableTechno = array(0, 0))
{
include(_FCORE."hb_game/vars.php");
//Génération des vaisseaux attaquants
for ($i=1 ; $i<=12 ; $i++) {
@ -48,11 +50,16 @@ class Combat {
$nbvaispgroupe = floor($nbvais/$nbgroupes);
$nbrest = $nbvais - $nbvaispgroupe * $nbgroupes;
if (isset($groupe)) unset($groupe);
if (isset($groupe)) {
unset($groupe);
}
$groupe = array();
for ($j=0 ; $j < $nbgroupes ; $j++) {
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]);
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, $nomvais_initiative[$i-1]);
}
@ -75,11 +82,16 @@ class Combat {
$nbvaispgroupe = floor($nbvais/$nbgroupes);
$nbrest = $nbvais - $nbvaispgroupe * $nbgroupes;
if (isset($groupe)) unset($groupe);
if (isset($groupe)) {
unset($groupe);
}
$groupe = array();
for ($j=0 ; $j < $nbgroupes ; $j++) {
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]);
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, $nomvais_initiative[$i-1]);
}
@ -94,11 +106,16 @@ class Combat {
$nbvaispgroupe = floor($nbvais/$nbgroupes);
$nbrest = $nbvais - $nbvaispgroupe * $nbgroupes;
if (isset($groupe)) unset($groupe);
if (isset($groupe)) {
unset($groupe);
}
$groupe = array();
for ($j=0 ; $j < $nbgroupes ; $j++) {
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]);
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, $defense_initiative[$i-1]);
}
@ -112,7 +129,8 @@ class Combat {
* @return void
* @access public
*/
function changerTactiqueAT($tactique) {
public function changerTactiqueAT($tactique)
{
$this->ATtactique = ceil($tactique);
}
@ -123,7 +141,8 @@ class Combat {
* @return void
* @access public
*/
function changerTactiqueEN($tactique) {
public function changerTactiqueEN($tactique)
{
$this->ENtactique = ceil($tactique);
}
@ -137,7 +156,8 @@ class Combat {
* @return float pourcentage non utilisé
* @access public
*/
function regenereBC($pourcentage, $attaquant, $retour = false, $blindage = 0) {
public function regenereBC($pourcentage, $attaquant, $retour = false, $blindage = 0)
{
include(_FCORE."hb_game/vars.php");
if ($attaquant) {
$count = count($this->ATvais);
@ -154,8 +174,9 @@ class Combat {
if ($this->ATvais[$i][3][$j][1] < $maxbc) {
$this->ATvais[$i][3][$j][1] += $ajout;
} else {
$enplus += $ajout * $this->ATvais[$i][3][$j][0];
}
else $enplus += $ajout * $this->ATvais[$i][3][$j][0];
if ($this->ATvais[$i][3][$j][1] > $maxbc) {
$enplus += ($this->ATvais[$i][3][$j][1] - $maxbc)*$this->ATvais[$i][3][$j][0];
$this->ATvais[$i][3][$j][1] = $maxbc;
@ -163,12 +184,15 @@ class Combat {
}
}
if ($retour) {
if($norm != 0 && $enplus/$norm == 1) return $pourcentage;
else return false;
if ($norm != 0 && $enplus/$norm == 1) {
return $pourcentage;
} else {
return false;
}
else return $enplus/$norm;
} else {
return $enplus/$norm;
}
else {
} else {
$count = count($this->ENvais);
$enplus = 0;
$norm = 0;
@ -182,16 +206,20 @@ class Combat {
$norm += $maxbc * $this->ENvais[$i][3][$j][0];
if ($this->ENvais[$i][3][$j][1] < $maxbc) {
$this->ENvais[$i][3][$j][1] += $ajout;
} else {
$enplus += $ajout * $this->ENvais[$i][3][$j][0];
}
else $enplus += $ajout * $this->ENvais[$i][3][$j][0];
if ($this->ENvais[$i][3][$j][1] > $maxbc) {
$enplus += ($this->ENvais[$i][3][$j][1] - $maxbc)*$this->ENvais[$i][3][$j][0];
$this->ENvais[$i][3][$j][1] = $maxbc;
}
}
}
if ($norm != 0) $return = $enplus/$norm;
else $return = 0;
if ($norm != 0) {
$return = $enplus/$norm;
} else {
$return = 0;
}
//Défenses
$count = count($this->ENdef);
@ -207,21 +235,29 @@ class Combat {
$norm += $maxbc * $this->ENdef[$i][3][$j][0];
if ($this->ENdef[$i][3][$j][1] < $maxbc) {
$this->ENdef[$i][3][$j][1] += $ajout;
} else {
$enplus += $ajout * $this->ENdef[$i][3][$j][0];
}
else $enplus += $ajout * $this->ENdef[$i][3][$j][0];
if ($this->ENdef[$i][3][$j][1] > $maxbc) {
$enplus += ($this->ENdef[$i][3][$j][1] - $maxbc)*$this->ENdef[$i][3][$j][0];
$this->ENdef[$i][3][$j][1] = $maxbc;
}
}
}
if ($norm != 0) $return = $enplus/$norm;
else $return = 0;
if ($retour) {
if($norm != 0 && $enplus/$norm == 1) return $pourcentage;
else return false;
if ($norm != 0) {
$return = $enplus/$norm;
} else {
$return = 0;
}
if ($retour) {
if ($norm != 0 && $enplus/$norm == 1) {
return $pourcentage;
} else {
return false;
}
} else {
return $return/2;
}
else return $return/2;
}
}
@ -235,7 +271,8 @@ class Combat {
* @return int points disponibles
* @access public
*/
function calcAttaque($pourcentage, $attaquant, $armement = 0, $method = false) {
public function calcAttaque($pourcentage, $attaquant, $armement = 0, $method = false)
{
include(_FCORE."hb_game/vars.php");
if ($method) {
if ($attaquant) {
@ -246,8 +283,7 @@ class Combat {
$puissance += $maxat * $pourcentage/100 * $this->ATvais[$i][1];
}
return $puissance;
}
else {
} else {
$puissance = 0;
$count = count($this->ENvais);
for ($i=0 ; $i<$count ; $i++) {
@ -263,8 +299,7 @@ class Combat {
}
return $puissance;
}
}
else {
} else {
if ($attaquant) {
//Calcul du pourcentage de chaque vaisseau adverse
$vaisEff = array();
@ -281,7 +316,9 @@ class Combat {
$puissance = 0;
$count = count($this->ATvais);
for ($i=0 ; $i<$count ; $i++) {
if ($this->ATvais[$i][4] > $this->Ntour) continue;
if ($this->ATvais[$i][4] > $this->Ntour) {
continue;
}
$bonus = 0;
for ($j=0 ; $j<$countj ; $j++) {
@ -294,8 +331,7 @@ class Combat {
$puissance += $maxat * $pourcentage/100 * $this->ATvais[$i][1] * $bonus;
}
return $puissance;
}
else {
} else {
//Calcul du pourcentage de chaque vaisseau adverse
$vaisEff = array();
$nbvais = 0;
@ -310,7 +346,9 @@ class Combat {
$puissance = 0;
$count = count($this->ENvais);
for ($i=0 ; $i<$count ; $i++) {
if ($this->ENvais[$i][4] > $this->Ntour) continue;
if ($this->ENvais[$i][4] > $this->Ntour) {
continue;
}
$bonus = 0;
for ($j=0 ; $j<$countj ; $j++) {
@ -323,7 +361,9 @@ class Combat {
//Défenses
$count = count($this->ENdef);
for ($i=0 ; $i<$count ; $i++) {
if ($this->ENdef[$i][4] > $this->Ntour) continue;
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];
@ -341,10 +381,11 @@ class Combat {
* @return void
* @access public
*/
function attaquerVais($points, $attaquant) {
public function attaquerVais($points, $attaquant)
{
include(_FCORE."hb_game/vars.php");
if ($attaquant) {
while($points > 0) {
while ($points > 0) {
// Calcul du nombre de vaisseaux et défenses à attaquer
$nbvais = 0;
$nbgroupes = 0;
@ -360,14 +401,16 @@ class Combat {
}
//S'il ne reste plus de vaisseaux et de défenses, on arrête la boucle
if ($nbvais <= 0 || $nbgroupes <= 0 || $points <= 0) break;
if ($nbvais <= 0 || $nbgroupes <= 0 || $points <= 0) {
break;
}
//Calcul du nombre de points qui sera enlevé par vaisseau ou défense
$ppv = $points / $nbvais;
$points = 0;
//On lance l'attaque contre les vaisseaux
for ($j=0 ; $j<$nbgroupes ; $j++){
for ($j=0 ; $j<$nbgroupes ; $j++) {
$k = rand(0, count($this->ENvais)-1);
$l = rand(0, count($this->ENvais[$k][3])-1);
@ -389,7 +432,7 @@ class Combat {
}
//On lance l'attaque contre les défenses
for ($j=0 ; $j<$nbgroupes ; $j++){
for ($j=0 ; $j<$nbgroupes ; $j++) {
$k = rand(0, count($this->ENdef)-1);
$l = rand(0, count($this->ENdef[$k][3])-1);
@ -411,9 +454,8 @@ class Combat {
}
}
return count($this->ENvais) + count($this->ENdef);
}
else {
while($points > 0) {
} else {
while ($points > 0) {
// Calcul du nombre de vaisseaux et défenses à attaquer
$nbvais = 0;
$nbgroupes = 0;
@ -424,14 +466,16 @@ class Combat {
}
//S'il ne reste plus de vaisseaux et de défenses, on arrête la boucle
if ($nbvais <= 0 || $nbgroupes <= 0 || $points <= 0) break;
if ($nbvais <= 0 || $nbgroupes <= 0 || $points <= 0) {
break;
}
//Calcul du nombre de points qui sera enlevé par vaisseau ou défense
$ppv = $points / $nbvais;
$points = 0;
//On lance l'attaque
for ($j=0 ; $j<$nbgroupes ; $j++){
for ($j=0 ; $j<$nbgroupes ; $j++) {
$k = rand(0, count($this->ATvais)-1);
$l = rand(0, count($this->ATvais[$k][3])-1);
@ -456,11 +500,25 @@ class Combat {
}
}
function exportAT($pillage = false){
public function exportAT($pillage = false)
{
include(_FCORE."hb_game/vars.php");
$nb = count($this->ATvais);
$nbvais = 0; $vaisContenu = 0; $vaisseau_1 = 0; $vaisseau_2 = 0; $vaisseau_3 = 0; $vaisseau_4 = 0; $vaisseau_5 = 0; $vaisseau_6 = 0; $vaisseau_7 = 0; $vaisseau_8 = 0; $vaisseau_9 = 0; $vaisseau_10 = 0; $vaisseau_11 = 0; $vaisseau_12 = 0;
for($i=0 ; $i<$nb ; $i++) {
$nbvais = 0;
$vaisContenu = 0;
$vaisseau_1 = 0;
$vaisseau_2 = 0;
$vaisseau_3 = 0;
$vaisseau_4 = 0;
$vaisseau_5 = 0;
$vaisseau_6 = 0;
$vaisseau_7 = 0;
$vaisseau_8 = 0;
$vaisseau_9 = 0;
$vaisseau_10 = 0;
$vaisseau_11 = 0;
$vaisseau_12 = 0;
for ($i=0 ; $i<$nb ; $i++) {
${'vaisseau_'.$this->ATvais[$i][0]} += $this->ATvais[$i][1];
$nbvais += $this->ATvais[$i][1];
$this->vaisContenu += $nomvais_rs[$this->ATvais[$i][0]-1];
@ -483,23 +541,39 @@ class Combat {
return 'nb_vais = \''.$nbvais.'\', contenu_max = \''.$this->vaisContenu.'\', contenu_metal = \''.$this->vaisContenuM.'\', contenu_cristal = \''.$this->vaisContenuC.'\', contenu_hydrogene = \''.$this->vaisContenuH.'\', vaisseau_1 = \''.$vaisseau_1.'\', vaisseau_2 = \''.$vaisseau_2.'\', vaisseau_3 = \''.$vaisseau_3.'\', vaisseau_4 = \''.$vaisseau_4.'\', vaisseau_5 = \''.$vaisseau_5.'\', vaisseau_6 = \''.$vaisseau_6.'\', vaisseau_7 = \''.$vaisseau_7.'\', vaisseau_8 = \''.$vaisseau_8.'\', vaisseau_9 = \''.$vaisseau_9.'\', vaisseau_10 = \''.$vaisseau_10.'\', vaisseau_11 = \''.$vaisseau_11.'\', vaisseau_12 = \''.$vaisseau_12.'\'';
}
function pillageSimul($metal, $cristal, $hydrogene){
public function pillageSimul($metal, $cristal, $hydrogene)
{
$ressplus = pillage($metal, $cristal, $hydrogene, 999999);
$this->pillage = array($ressplus[0], $ressplus[1], $ressplus[2]);
}
function exportEN(){
public function exportEN()
{
$nb = count($this->ENvais);
$vaisseau_1 = 0; $vaisseau_2 = 0; $vaisseau_3 = 0; $vaisseau_4 = 0; $vaisseau_5 = 0; $vaisseau_6 = 0; $vaisseau_7 = 0; $vaisseau_8 = 0; $vaisseau_9 = 0; $vaisseau_10 = 0; $vaisseau_11 = 0; $vaisseau_12 = 0;
for($i=0 ; $i<$nb ; $i++) {
$vaisseau_1 = 0;
$vaisseau_2 = 0;
$vaisseau_3 = 0;
$vaisseau_4 = 0;
$vaisseau_5 = 0;
$vaisseau_6 = 0;
$vaisseau_7 = 0;
$vaisseau_8 = 0;
$vaisseau_9 = 0;
$vaisseau_10 = 0;
$vaisseau_11 = 0;
$vaisseau_12 = 0;
for ($i=0 ; $i<$nb ; $i++) {
${'vaisseau_'.$this->ENvais[$i][0]} += $this->ENvais[$i][1];
}
$nb = count($this->ENdef);
$def_1 = 0; $def_2 = 0; $def_3 = 0; $def_4 = 0; $def_5 = 0;
for($i=0 ; $i<$nb ; $i++) {
$def_1 = 0;
$def_2 = 0;
$def_3 = 0;
$def_4 = 0;
$def_5 = 0;
for ($i=0 ; $i<$nb ; $i++) {
${'def_'.$this->ENdef[$i][0]} += $this->ENdef[$i][1];
}
return 'vaisseau_1 = \''.$vaisseau_1.'\', vaisseau_2 = \''.$vaisseau_2.'\', vaisseau_3 = \''.$vaisseau_3.'\', vaisseau_4 = \''.$vaisseau_4.'\', vaisseau_5 = \''.$vaisseau_5.'\', vaisseau_6 = \''.$vaisseau_6.'\', vaisseau_7 = \''.$vaisseau_7.'\', vaisseau_8 = \''.$vaisseau_8.'\', vaisseau_9 = \''.$vaisseau_9.'\', vaisseau_10 = \''.$vaisseau_10.'\', vaisseau_11 = \''.$vaisseau_11.'\', vaisseau_12 = \''.$vaisseau_12.'\', def_1 = \''.$def_1.'\', def_2 = \''.$def_2.'\', def_3 = \''.$def_3.'\', def_4 = \''.$def_4.'\', def_5 = \''.$def_5.'\'';
}
}
?>

View file

@ -9,20 +9,17 @@
*
***************************************************************************/
class ExceptionHB extends Exception {
public function __construct($branche, $code = 0, $debug = true, $gerer = false) {
if ($gerer)
class ExceptionHB extends Exception
{
public function __construct($branche, $code = 0, $debug = true, $gerer = false)
{
if ($gerer) {
parent::__construct($branche, $code);
else
{
if (is_numeric($branche))
{
switch($branche)
{
} else {
if (is_numeric($branche)) {
switch ($branche) {
case 1:
switch($code)
{
switch ($code) {
case 0:
$message = "La planète est pleine, vous ne pouvez plus construire de batiment dessus !";
break;
@ -52,8 +49,7 @@ class ExceptionHB extends Exception {
}
break;
case 2:
switch($code)
{
switch ($code) {
case 0:
$message = "Cette technologie est déjà en file d'attente, soyez patient !";
break;
@ -76,8 +72,7 @@ class ExceptionHB extends Exception {
}
break;
case 3:
switch($code)
{
switch ($code) {
case 1:
$message = "La file d'attente est pleine, vous ne pouvez pas rajouter plus d'unités.";
break;
@ -108,8 +103,7 @@ class ExceptionHB extends Exception {
}
break;
case 4:
switch($code)
{
switch ($code) {
case 1:
$message = "La file d'attente est pleine, vous ne pouvez pas rajouter plus de recherches.";
break;
@ -133,16 +127,18 @@ class ExceptionHB extends Exception {
}
break;
}
}
else
} else {
$message = $branche;
}
if ($debug || empty($message))
if ($debug || empty($message)) {
$message = "Erreur #".intval($branche)."/".$code." :<br />".$message;
}
global $template, $page;
if (!empty($page))
if (!empty($page)) {
$template->assign('page', $page);
}
$template->assign('message', $message);
$template->assign('couleur', 'red');
$template->display('game/erreur.tpl');
@ -150,4 +146,3 @@ class ExceptionHB extends Exception {
}
}
}
?>

View file

@ -11,27 +11,27 @@ include_once("Class/rapport.php");
***************************************************************************/
class Flotte
{
var $id_flotte = 0,
$nom,
$start_planete,
$start_time,
$start_type,
$end_planete,
$end_time,
$end_type,
$ret_planete,
$ret_type,
$ret_time,
$nb_vais,
$vaisseaux = array(),
$tactique = 0,
$mission,
$vitesse,
$statut = 0,
$last,
$contenu = array(0,0,0),
$contenuMax = 0,
$modifFlotte = array();
public $id_flotte = 0;
public $nom;
public $start_planete;
public $start_time;
public $start_type;
public $end_planete;
public $end_time;
public $end_type;
public $ret_planete;
public $ret_type;
public $ret_time;
public $nb_vais;
public $vaisseaux = array();
public $tactique = 0;
public $mission;
public $vitesse;
public $statut = 0;
public $last;
public $contenu = array(0,0,0);
public $contenuMax = 0;
public $modifFlotte = array();
/**
* Constructeur
@ -41,22 +41,21 @@ class Flotte
* @return void
* @access public
*/
function __construct($id = 0, $verrou = true)
{
if (!empty($id))
public function __construct($id = 0, $verrou = true)
{
if (!empty($id)) {
global $table_flottes;
global $ressoVAR, $spatialVAR;
$id = intval($id);
$bdd = new BDD();
$flotte = $bdd->unique_query("SELECT * FROM $table_flottes WHERE id = $id;");
if ($verrou)
$bdd->query("UPDATE $table_flottes SET last = ".time()." WHERE id = $id;"); //Obtention d'un vérrou de 10 seconde sur la flotte
if ($verrou) {
$bdd->query("UPDATE $table_flottes SET last = ".time()." WHERE id = $id;");
} //Obtention d'un vérrou de 10 seconde sur la flotte
$bdd->deconnexion();
if (!empty($flotte))
{
if (!empty($flotte)) {
$this->id_flotte = $flotte["id"];
$this->nom = $flotte["nom"];
$this->start_planete = $flotte["start_planete"];
@ -75,8 +74,9 @@ class Flotte
$this->last = $flotte["last"];
$this->nb_vais = $flotte["nb_vais"];
foreach($spatialVAR as $vais)
foreach ($spatialVAR as $vais) {
$this->vaisseaux[] = $flotte[$vais];
}
$this->contenu = array($flotte["contenu_metal"], $flotte["contenu_cristal"], $flotte["contenu_hydrogene"]);
@ -86,137 +86,129 @@ class Flotte
}
function calculer()
public function calculer()
{
$this->nb_vais = 0;
//Calcul de la capacité maximale d'embarquement de la flotte
foreach($this->vaisseaux as $key => $vais)
{
foreach ($this->vaisseaux as $key => $vais) {
$this->nb_vais += $vais;
$this->contenuMax += dSpatial::tailleCales($key) * $vais;
}
}
function load_planete()
{
if (!empty($this->start_planete) && is_numeric($this->start_planete))
public function load_planete()
{
if (!empty($this->start_planete) && is_numeric($this->start_planete)) {
//On traite l'importation en fonction des types fournis
if ($this->start_type == 0)
{
if ($this->start_type == 0) {
global $planete;
//Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée
if (SURFACE == "planete" && $planete->id == $this->start_planete)
if (SURFACE == "planete" && $planete->id == $this->start_planete) {
$this->start_planete = $planete;
else
} else {
$this->start_planete = new Planete($this->start_planete);
}
elseif ($this->start_type == 2)
{
} elseif ($this->start_type == 2) {
global $planete;
//Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée
if (SURFACE == "asteroide" && $planete->id == $this->start_planete)
if (SURFACE == "asteroide" && $planete->id == $this->start_planete) {
$this->start_planete = $planete;
else
} else {
$this->start_planete = new Asteroide($this->start_planete);
}
}
if (!empty($this->end_planete) && is_numeric($this->end_planete))
{
}
if (!empty($this->end_planete) && is_numeric($this->end_planete)) {
//On traite l'importation en fonction des types fournis
if ($this->end_type == 0 || $this->ret_type == 1)
{
if ($this->end_type == 0 || $this->ret_type == 1) {
global $planete;
//Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée
if (SURFACE == "planete" && $planete->id == $this->end_planete)
if (SURFACE == "planete" && $planete->id == $this->end_planete) {
$this->end_planete = $planete;
else
} else {
$this->end_planete = new Planete($this->end_planete);
}
elseif ($this->end_type == 2)
{
} elseif ($this->end_type == 2) {
global $planete;
//Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée
if (SURFACE == "asteroide" && $planete->id == $this->end_planete)
if (SURFACE == "asteroide" && $planete->id == $this->end_planete) {
$this->end_planete = $planete;
else
} else {
$this->end_planete = new Asteroide($this->end_planete);
}
}
if (!empty($this->ret_planete) && is_numeric($this->ret_planete))
{
}
if (!empty($this->ret_planete) && is_numeric($this->ret_planete)) {
//On traite l'importation en fonction des types fournis
if ($this->ret_type == 0)
{
if ($this->ret_type == 0) {
global $planete;
//Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée
if (SURFACE == "planete" && $planete->id == $this->ret_planete)
if (SURFACE == "planete" && $planete->id == $this->ret_planete) {
$this->ret_planete = $planete;
else
} else {
$this->ret_planete = new Planete($this->ret_planete);
}
elseif ($this->ret_type == 2)
{
} elseif ($this->ret_type == 2) {
global $planete;
//Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée
if (SURFACE == "asteroide" && $planete->id == $this->ret_planete)
if (SURFACE == "asteroide" && $planete->id == $this->ret_planete) {
$this->ret_planete = $planete;
else
} else {
$this->ret_planete = new Asteroide($this->ret_planete);
}
}
}
}
function creer(surface $start_planete, $tableau, $resultat)
public function creer(surface $start_planete, $tableau, $resultat)
{
$sauv = $start_planete->vaisseaux; //Sauvegarde les vaisseaux de la planète avant le lancement
foreach ($tableau['vaisseaux'] as $key => $vaisseau)
{
foreach ($tableau['vaisseaux'] as $key => $vaisseau) {
$this->vaisseaux[$key] = $vaisseau;
$sauv[$key] -= $vaisseau;
if ($sauv[$key] < 0)
if ($sauv[$key] < 0) {
erreur('Vous n\'avez pas assez de vaisseaux sur cette planète pour envoyer cette flotte !', "red", $VAR["menu"]["flotte"]);
}
}
//Définition des paramètres de la flotte en fonction des données enregistrées en session
$this->nom = $tableau["nom"];
$this->vitesse = $tableau["vitesse"];
$this->mission = $tableau["mission"];
$this->start_planete = $start_planete;
if (SURFACE == "planete")
if (SURFACE == "planete") {
$this->start_type = 0;
elseif (SURFACE == "asteroide")
} elseif (SURFACE == "asteroide") {
$this->start_type = 2;
}
$this->start_time = time();
//On traite le cas des planètes qui n'existent pas (dans le cas de la mission colonisation)
if ($tableau["mission"] == 2)
{
if ($tableau["mission"] == 2) {
//On traite le cas des colonisation d'astéroïdes
if ($tableau["end_position"] == "A")
if ($tableau["end_position"] == "A") {
$this->end_type = 3;
else
} else {
$this->end_type = 1;
}
$this->end_planete = $tableau["end_galaxie"].':'.$tableau["end_systeme"].':'.$tableau["end_position"];
}
//On traite le cas des envoie vers les alliances
elseif ($tableau["end_position"] == "A")
{
elseif ($tableau["end_position"] == "A") {
$this->end_type = 2;
$this->end_planete = $resultat['id'];
}
else
{
} else {
$this->end_type = 0;
$this->end_planete = $resultat['id'];
}
if (empty($this->end_planete))
if (empty($this->end_planete)) {
erreur("Planète d'arriver incorrecte !");
}
//On vérifie qu'il y a assez de place dans les cales des vaisseaux avant l'envoie ainsi que de ressources sur la planète
$this->calculer();
@ -225,13 +217,15 @@ class Flotte
$this->end_time = $calc[0];
//On double la consomation si on fait un aller-retour
if ($tableau["mission"] == 1 || $tableau["mission"] == 2 || $tableau["mission"] == 4 || $tableau["mission"] == 5)
if ($tableau["mission"] == 1 || $tableau["mission"] == 2 || $tableau["mission"] == 4 || $tableau["mission"] == 5) {
$calc[1] *= 2;
}
if ($this->contenuMax < $tableau["embarquer"][0] + $tableau["embarquer"][1] + $tableau["embarquer"][2] + $calc[1])
if ($this->contenuMax < $tableau["embarquer"][0] + $tableau["embarquer"][1] + $tableau["embarquer"][2] + $calc[1]) {
erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent. '.$this->contenuMax, "red", '?p=flotte', 3500);
elseif ($start_planete->metal < $tableau["embarquer"][0] || $start_planete->cristal < $tableau["embarquer"][1] || $start_planete->hydrogene < $tableau["embarquer"][2] + $calc[1])
} elseif ($start_planete->metal < $tableau["embarquer"][0] || $start_planete->cristal < $tableau["embarquer"][1] || $start_planete->hydrogene < $tableau["embarquer"][2] + $calc[1]) {
erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500);
}
$this->contenu = $tableau["embarquer"];
$this->modifFlotte = "INSERT";
@ -245,7 +239,7 @@ class Flotte
$start_planete->addModif("force");
}
static function calc_deplacement($start_planete, $end_galaxie, $end_systeme, $end_position, $vitesse, $vaisseaux, $contenuDispo, $returnArray = false, $returnConso = false)
public static function calc_deplacement($start_planete, $end_galaxie, $end_systeme, $end_position, $vitesse, $vaisseaux, $contenuDispo, $returnArray = false, $returnConso = false)
{
global $VAR;
@ -261,29 +255,27 @@ class Flotte
$diff_centre_systeme_end = abs(ceil($VAR['nb_systeme']/2) - $end_systeme);
//Calcul du temps de déplacement pour chaque vaisseau
$temps = array(); $conso = array(0, 0, 0);
foreach($vaisseaux as $key => $vais)
{
$temps = array();
$conso = array(0, 0, 0);
foreach ($vaisseaux as $key => $vais) {
//S'il n'y a pas de vaisseaux de ce type, on ne calcul pas leur vitesse
if ($vais == 0)
if ($vais == 0) {
continue;
}
//Calcul du temps de déplacement entre planètes
if ($start_planete->ss == $end_systeme && $start_planete->galaxie == $end_galaxie)
{
if ($start_planete->ss == $end_systeme && $start_planete->galaxie == $end_galaxie) {
$temps[0][$key] = (1000/dSpatial::vitesseP($key)) * (1 + 0.1 * $diff_position);
$temps[1][$key] = $temps[2][$key] = 0;
}
//Calcul du temps de déplacement entre système
elseif ($start_planete->galaxie == $end_galaxie)
{
elseif ($start_planete->galaxie == $end_galaxie) {
$temps[0][$key] = (1000/dSpatial::vitesseP($key)) * (1 + 0.1 * ($diff_centre_position_start + $diff_centre_position_end));
$temps[1][$key] = (2000/dSpatial::vitesseS($key)) * (2 + 1 * $diff_systeme);
$temps[2][$key] = 0;
}
//Calcul du temps de déplacement entre galaxies
else
{
else {
$temps[0][$key] = (1000/dSpatial::vitesseP($key)) * (1 + 0.1 * ($diff_centre_position_start + $diff_centre_position_end));
$temps[1][$key] = (2000/dSpatial::vitesseS($key)) * (2 + 1 * ($diff_centre_systeme_start + $diff_centre_systeme_end));
$temps[2][$key] = (5000/dSpatial::vitesseG($key)) * (2 + 1.5 * $diff_galaxie);
@ -291,75 +283,81 @@ class Flotte
//Calcul du bonus pour le réacteur à combustion
$techR = $start_planete->technologies[1];
if ($techR & 56)
if ($techR & 56) {
$bonus = 0.7;
elseif ($techR & 24)
} elseif ($techR & 24) {
$bonus = 0.8;
elseif ($techR & 8)
} elseif ($techR & 8) {
$bonus = 0.9;
else
} else {
$bonus = 1;
}
$temps[0][$key] *= $bonus * 1/$vitesse;
$conso[0] += $vais * $temps[0][$key] * $bonus / exp($vitesse/5);
//Calcul du bonus pour le réacteur à fusion
$techR = $start_planete->technologies[1];
if ($techR &448)
if ($techR &448) {
$bonus = 0.7;
elseif ($techR &192)
} elseif ($techR &192) {
$bonus = 0.8;
elseif ($techR &64)
} elseif ($techR &64) {
$bonus = 0.9;
else
} else {
$bonus = 1;
}
$temps[1][$key] *= $bonus * 1/$vitesse;
$conso[1] += $vais * $temps[1][$key] * $bonus / exp($vitesse/7.5);
//Calcul du bonus pour le réacteur à fusion de type II
$techR = $start_planete->technologies[1];
if ($techR &3584)
if ($techR &3584) {
$bonus = 0.7;
elseif ($techR &1536)
} elseif ($techR &1536) {
$bonus = 0.8;
elseif ($techR &512)
} elseif ($techR &512) {
$bonus = 0.9;
else
} else {
$bonus = 1;
}
$temps[2][$key] *= $bonus * 1/$vitesse;
$conso[2] += $vais * $temps[2][$key] * $bonus / exp($vitesse/10);
}
if (!isset($vaisseaux[4]))
if (!isset($vaisseaux[4])) {
$vaisseaux[4] = 0;
if (!isset($vaisseaux[5]))
}
if (!isset($vaisseaux[5])) {
$vaisseaux[5] = 0;
}
//Si les chasseurs peuvent rentrer dans les cales des vaisseaux, on les enlèves
if ($contenuDispo - ceil($conso[0]+$conso[1]+$conso[2]) - ($vaisseaux[4] * dSpatial::tailleCales(4) + $vaisseaux[5] * dSpatial::tailleCales(5)) >= ($vaisseaux[4] + $vaisseaux[5]) * 200)
if ($contenuDispo - ceil($conso[0]+$conso[1]+$conso[2]) - ($vaisseaux[4] * dSpatial::tailleCales(4) + $vaisseaux[5] * dSpatial::tailleCales(5)) >= ($vaisseaux[4] + $vaisseaux[5]) * 200) {
$temps[2][4] = $temps[2][5] = $temps[1][4] = $temps[1][5] = $temps[0][4] = $temps[0][5] = 0;
}
//On calcul le temps de déplacement maximal
if ($returnArray)
if ($returnArray) {
return $temps;
elseif ($returnConso)
} elseif ($returnConso) {
return array(max($temps[0]) + max($temps[1]) + max($temps[2]), ceil($conso[0]+$conso[1]+$conso[2]));
else
} else {
return (max($temps[0]) + max($temps[1]) + max($temps[2]));
}
}
function check_mission()
public function check_mission()
{
//On vérifie qu'un calcul ne soit pas déjà en cours
if ($this->last >= time() - 10)
if ($this->last >= time() - 10) {
return false;
elseif ($this->start_time + $this->end_time > time())
} elseif ($this->start_time + $this->end_time > time()) {
return false;
}
if ($this->statut == 0)
{
switch($this->mission)
{
if ($this->statut == 0) {
switch ($this->mission) {
case 6:
case 7:
$this->stationner();
@ -382,29 +380,32 @@ class Flotte
}
}
if ($this->statut == 1 && ($this->ret_time > time() || $this->start_time + $this->end_time * 2 <= time()))
if ($this->statut == 1 && ($this->ret_time > time() || $this->start_time + $this->end_time * 2 <= time())) {
$this->retourner();
}
return true;
}
function stationner()
public function stationner()
{
//On décharge les ressources éventuellement contenue
$this->decharger();
//On fait atterir les vaisseaux
foreach ($this->vaisseaux as $key => $vais)
foreach ($this->vaisseaux as $key => $vais) {
$this->end_planete->vaisseaux[$key] += $vais;
}
if (!in_array("vaisseaux", $this->end_planete->modif))
if (!in_array("vaisseaux", $this->end_planete->modif)) {
$this->end_planete->modif[] = "vaisseaux";
}
$this->modifFlotte = "DELETE";
}
function transporter()
public function transporter()
{
$max = $this->decharger();
@ -419,11 +420,10 @@ class Flotte
}
function coloniser()
public function coloniser()
{
//On vérifie que les coordonnées de la planètes sont bien enregistrée
if (empty($this->end_planete) || is_object($this->end_planete) || !preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([A0-9]{1,2})\]?$#', $this->end_planete))
{
if (empty($this->end_planete) || is_object($this->end_planete) || !preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([A0-9]{1,2})\]?$#', $this->end_planete)) {
$this->load_planete();
file_log("Erreur de colonisation de la planète : ".$this->end_planete." pour le joueur : ".$this->start_planete->id_user, 2);
send_mp($this->start_planete->id_user, "Erreur de colonisation [F#01]", "Une erreur s'est produite lors de la tentative de colonisation de votre flotte, elle a fait demi-tour.", $this->start_time + $this->end_time);
@ -433,14 +433,11 @@ class Flotte
//On vérifie que la planète ne soit pas déjà colonisée
global $table_planete, $table_alliances, $table_alliances_creation, $table_user;
preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([A0-9]{1,2})\]?$#', $this->end_planete, $position);
if (is_numeric($position[3]))
{
if (is_numeric($position[3])) {
$bdd = new BDD();
$p = $bdd->query("SELECT * FROM $table_planete WHERE galaxie = ".$position[1]." AND ss = ".$position[2]." AND position = ".$position[3].";");
$bdd->deconnexion();
}
else
{
} else {
$bdd = new BDD();
$p = $bdd->query("SELECT * FROM $table_alliances WHERE galaxie = ".$position[1]." AND ss = ".$position[2].";");
$alliance = $bdd->unique_query("SELECT signatures FROM $table_alliances_creation WHERE fondateur = ".$this->start_planete->id_user.";");
@ -450,8 +447,7 @@ class Flotte
$this->load_planete();
if ($p && (!isset($signaturesExport) || count($signaturesExport) < nb_signatures))
{
if ($p && (!isset($signaturesExport) || count($signaturesExport) < nb_signatures)) {
$rapport = new Rapport(2, $this->start_planete, 0, $this->start_time + $this->end_time);
$rapport->addInfo(array($position[1], $position[2], $position[3]), 0);
$rapport->addInfo(false, 1);
@ -459,11 +455,8 @@ class Flotte
$this->statut = 1;
$this->addModifFlotte("statut");
}
else
{
if (is_numeric($position[3]))
{
} else {
if (is_numeric($position[3])) {
//On crée la planète
$this->end_planete = new Planete(false);
$this->end_planete->galaxie = $position[1];
@ -473,9 +466,7 @@ class Flotte
//On définit la limite de ressources pour permettre le déchargement de celles contenues dans les vaisseaux
$this->end_planete->cap = 100000;
}
else
{
} else {
//On crée l'astéroide
$this->end_planete = new Asteroide(false);
$this->end_planete->galaxie = $position[1];
@ -500,8 +491,7 @@ class Flotte
$rapport->addInfo(true, 1);
$rapport->send();
if (!is_numeric($position[3]))
{
if (!is_numeric($position[3])) {
unset($this->end_planete);
$bdd = new BDD();
$p = $bdd->unique_query("SELECT id FROM $table_alliances WHERE galaxie = ".$position[1]." AND ss = ".$position[2]." AND fondateur = ".$this->start_planete->id_user.";");
@ -513,30 +503,35 @@ class Flotte
}
function recycler()
public function recycler()
{
//Si la planète d'arrivé n'est pas chargée, on charge les planètes
if (is_numeric($this->end_planete))
if (is_numeric($this->end_planete)) {
$this->load_planete();
}
$coeff = ($this->contenuMax - $this->contenu[0] - $this->contenu[1] - $this->contenu[2])/($this->end_planete->debris_met + $this->end_planete->debris_cri);
if ($coeff > 1)
if ($coeff > 1) {
$coeff = 1;
}
$a = floor($this->end_planete->debris_met * $coeff);
$b = floor($this->end_planete->debris_cri * $coeff);
$this->contenu[0] += $a;
$this->contenu[1] += $b;
if (!in_array('contenu', $this->modifFlotte))
if (!in_array('contenu', $this->modifFlotte)) {
$this->modifFlotte[] = 'contenu';
}
$this->end_planete->debris_met -= $a;
$this->end_planete->debris_cri -= $b;
if (!in_array('debris_met', $this->end_planete->modif))
if (!in_array('debris_met', $this->end_planete->modif)) {
$this->end_planete->modif[] = 'debris_met';
if (!in_array('debris_cri', $this->end_planete->modif))
}
if (!in_array('debris_cri', $this->end_planete->modif)) {
$this->end_planete->modif[] = 'debris_cri';
}
//Send link
$rapport = new Rapport(4, $this->start_planete, 0, $this->start_time + $this->end_time);
@ -545,34 +540,38 @@ class Flotte
$rapport->send();
$this->statut = 1;
if (!in_array('statut', $this->modifFlotte))
if (!in_array('statut', $this->modifFlotte)) {
$this->modifFlotte[] = 'statut';
}
}
function espionner()
public function espionner()
{
//Si la planète d'arrivé n'est pas chargée, on charge les planètes
if (is_numeric($this->end_planete))
if (is_numeric($this->end_planete)) {
$this->load_planete();
}
//Extraction des niveaux technologique des deux adversaires
if (($this->start_planete->technologies[1]& 67108864) == 67108864)
if (($this->start_planete->technologies[1]& 67108864) == 67108864) {
$espionnage_A = 3;
elseif (($this->start_planete->technologies[1]& 33554432) == 33554432)
} elseif (($this->start_planete->technologies[1]& 33554432) == 33554432) {
$espionnage_A = 3;
elseif (($this->start_planete->technologies[1]& 16777216) == 16777216)
} elseif (($this->start_planete->technologies[1]& 16777216) == 16777216) {
$espionnage_A = 3;
else
} else {
$espionnage_A = 0;
if (($this->start_planete->technologies[1]& 536870912) == 536870912)
}
if (($this->start_planete->technologies[1]& 536870912) == 536870912) {
$contreespionnage_B = 3;
elseif (($this->start_planete->technologies[1]& 268435456) == 268435456)
} elseif (($this->start_planete->technologies[1]& 268435456) == 268435456) {
$contreespionnage_B = 2;
elseif (($this->start_planete->technologies[1]& 134217728) == 134217728)
} elseif (($this->start_planete->technologies[1]& 134217728) == 134217728) {
$contreespionnage_B = 1;
else
} else {
$contreespionnage_B = 0;
}
//Création du rapport
$rapport = new Rapport(5, $this->start_planete, $this->end_planete, $this->start_time + $this->end_time);
@ -587,41 +586,45 @@ class Flotte
}
function decharger($plan = "end_planete")
public function decharger($plan = "end_planete")
{
//Si la planète d'arrivé n'est pas chargée, on charge les planètes
if (is_numeric($this->$plan))
if (is_numeric($this->$plan)) {
$this->load_planete();
}
$max = array(0, 0, 0);
//Si on dépasse les capacités, on laisse les ressources en trop dans le cargo
if ($this->$plan->metal + $this->contenu[0] > $this->$plan->cap)
{
if ($this->$plan->metal + $this->contenu[0] > $this->$plan->cap) {
$max[0] = $this->$plan->cap - $this->$plan->metal;
if ($max[0] < 0) $max[0] = 0;
if ($max[0] < 0) {
$max[0] = 0;
}
else
} else {
$max[0] = $this->contenu[0];
}
$this->$plan->metal += $max[0];
$this->contenu[0] -= $max[0];
if ($this->$plan->cristal + $this->contenu[1] > $this->$plan->cap)
{
if ($this->$plan->cristal + $this->contenu[1] > $this->$plan->cap) {
$max[1] = $this->$plan->cap - $this->$plan->cristal;
if ($max[1] < 0) $max[1] = 0;
if ($max[1] < 0) {
$max[1] = 0;
}
else
} else {
$max[1] = $this->contenu[1];
}
$this->$plan->cristal += $max[1];
$this->contenu[1] -= $max[1];
if ($this->$plan->hydrogene + $this->contenu[2] > $this->$plan->cap)
{
if ($this->$plan->hydrogene + $this->contenu[2] > $this->$plan->cap) {
$max[2] = $this->$plan->cap - $this->$plan->hydrogene;
if ($max[2] < 0) $max[2] = 0;
if ($max[2] < 0) {
$max[2] = 0;
}
else
} else {
$max[2] = $this->contenu[2];
}
$this->$plan->hydrogene += $max[2];
$this->contenu[2] -= $max[2];
@ -632,19 +635,20 @@ class Flotte
}
function atterir($plan = "end_planete")
public function atterir($plan = "end_planete")
{
//Si la planète d'arrivé n'est pas chargée, on charge les planètes
if (is_numeric($this->$plan))
if (is_numeric($this->$plan)) {
$this->load_planete();
}
if (isset($this->$plan->vaisseaux[0]))
{
foreach ($this->vaisseaux as $key => $vais)
if (isset($this->$plan->vaisseaux[0])) {
foreach ($this->vaisseaux as $key => $vais) {
$this->$plan->vaisseaux[$key] += $vais;
}
else
} else {
$this->$plan->vaisseaux = $this->vaisseaux;
}
$this->$plan->addModif("vaisseaux");
@ -652,38 +656,38 @@ class Flotte
}
function rappeler()
public function rappeler()
{
if ($this->start_time + $this->end_time >= time())
if ($this->start_time + $this->end_time >= time()) {
return false;
else
{
} else {
$this->end_time = time() - $this->start_time + 10;
$this->mission = 5;
if (!in_array('mission', $this->modifFlotte))
if (!in_array('mission', $this->modifFlotte)) {
$this->modifFlotte[] = 'mission';
if (!in_array('end_time', $this->modifFlotte))
}
if (!in_array('end_time', $this->modifFlotte)) {
$this->modifFlotte[] = 'end_time';
}
return true;
}
}
function retourner()
public function retourner()
{
//Si la planète de départ n'est pas chargée, on charge les planètes
if (is_numeric($this->start_planete))
if (is_numeric($this->start_planete)) {
$this->load_planete();
}
//Si on a demandé une planète particulière au retour
if (!empty($this->ret_time) && !empty($this->ret_planete) && !is_numeric($this->ret_planete))
{
if (!empty($this->ret_time) && !empty($this->ret_planete) && !is_numeric($this->ret_planete)) {
$this->decharger("ret_planete");
$this->atterir("ret_planete");
}
//Si le retour se fait sur la planète source
else
{
else {
$this->decharger("start_planete");
$this->atterir("start_planete");
}
@ -692,33 +696,34 @@ class Flotte
}
function addModifFlotte($modif)
public function addModifFlotte($modif)
{
if (!in_array($modif, $this->modifFlotte))
if (!in_array($modif, $this->modifFlotte)) {
$this->modifFlotte[] = $modif;
}
}
function printTime_end()
public function printTime_end()
{
return $this->start_time + $this->end_time;
}
function printTime_ret()
public function printTime_ret()
{
if (!empty($this->ret_time))
if (!empty($this->ret_time)) {
return $this->ret_time;
elseif ($this->mission == 1 || $this->mission == 4 || $this->mission == 5 || (($this->mission == 3 || $this->mission == 2) && $this->statut != 0))
} elseif ($this->mission == 1 || $this->mission == 4 || $this->mission == 5 || (($this->mission == 3 || $this->mission == 2) && $this->statut != 0)) {
return $this->start_time + $this->end_time*2;
else
} else {
return 0;
}
}
static function txtMission($mission)
{
switch($mission)
public static function txtMission($mission)
{
switch ($mission) {
case 1:
return "Transporter";
break;
@ -750,90 +755,84 @@ class Flotte
* @return void
* @access public
*/
function __destruct()
public function __destruct()
{
global $table_flottes;
if ($this->modifFlotte === "DELETE")
{
if ($this->modifFlotte === "DELETE") {
$bdd = new BDD();
$bdd->query("DELETE FROM $table_flottes WHERE id = ".$this->id_flotte.";");
if ($bdd->affected() != 1)
if ($bdd->affected() != 1) {
elog($bdd->affected()." champ(s) affecté(s) par la requête du fichier ".__FILE__." à la ligne ".__LINE__.", données : suppr ID = ".$this->id_flotte, 2);
$bdd->deconnexion();
}
else
{
if (empty($this->id_flotte) && $this->modifFlotte == "INSERT")
{
$out1 = ''; $out2 = '';
$bdd->deconnexion();
} else {
if (empty($this->id_flotte) && $this->modifFlotte == "INSERT") {
$out1 = '';
$out2 = '';
global $spatialVAR;
foreach ($this->vaisseaux as $key => $vais)
{
if ($vais > 0)
{
foreach ($this->vaisseaux as $key => $vais) {
if ($vais > 0) {
$out1 .= ', '.$spatialVAR[$key];
$out2 .= ', '.$vais;
}
}
if (SURFACE == "asteroide")
if (SURFACE == "asteroide") {
$sql = "INSERT INTO $table_flottes (id_user, id_alliance, mission, start_time, start_type, start_planete, end_time, end_type, end_planete, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, tactique, nom, nb_vais$out1) VALUES (0, ".$this->start_planete->id.", '".$this->mission."', '".$this->start_time."', '".$this->start_type."', '".$this->start_planete->id."', '".$this->end_time."', '".$this->end_type."', '".$this->end_planete."', '".$this->vitesse."', '".$this->contenu[0]."', '".$this->contenu[1]."', '".$this->contenu[2]."', '".$this->tactique."', '".$this->nom."', ".$this->nb_vais."$out2);";
else
} else {
$sql = "INSERT INTO $table_flottes (id_user, mission, start_time, start_type, start_planete, end_time, end_type, end_planete, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, tactique, nom, nb_vais$out1) VALUES ('".$this->start_planete->id_user."', '".$this->mission."', '".$this->start_time."', '".$this->start_type."', '".$this->start_planete->id."', '".$this->end_time."', '".$this->end_type."', '".$this->end_planete."', '".$this->vitesse."', '".$this->contenu[0]."', '".$this->contenu[1]."', '".$this->contenu[2]."', '".$this->tactique."', '".$this->nom."', ".$this->nb_vais."$out2);";
if (DEBUG) echo $sql;
}
if (DEBUG) {
echo $sql;
}
$bdd = new BDD();
$bdd->query($sql);
if ($bdd->affected() != 1)
if ($bdd->affected() != 1) {
elog($bdd->affected()." champ(s) affecté(s) par la requête du fichier ".__FILE__." à la ligne ".__LINE__.", données : insertion flotte", 2);
$bdd->deconnexion();
}
elseif(isset($this->modifFlotte[0]))
{
$bdd->deconnexion();
} elseif (isset($this->modifFlotte[0])) {
$out = array();
$bdd = new BDD();
foreach($this->modifFlotte as $modif)
{
if (!is_array($this->{$modif}))
{
if (is_int($this->{$modif}) || is_float($this->{$modif}))
foreach ($this->modifFlotte as $modif) {
if (!is_array($this->{$modif})) {
if (is_int($this->{$modif}) || is_float($this->{$modif})) {
$out[] .= $modif." = ".$this->{$modif};
else
{
} else {
$bdd->escape($this->{$modif});
$out[] .= $modif." = '".$this->{$modif}."'";
}
}
else
{
if ($modif == "contenu")
} else {
if ($modif == "contenu") {
$calc = "resso";
elseif ($modif == "vaisseaux")
} elseif ($modif == "vaisseaux") {
$calc = "nomvaisn";
}
if (!isset(${$calc.'VAR'}))
if (!isset(${$calc.'VAR'})) {
global ${$calc.'VAR'};
}
foreach(${$calc.'VAR'} as $key => $var)
{
foreach (${$calc.'VAR'} as $key => $var) {
$bdd->escape($this->{$modif}[$key]);
$out[] = ${$calc.'VAR'}[$key]." = ".$this->{$modif}[$key];
}
}
}
if (!empty($out))
{
if (!empty($out)) {
$sql = "UPDATE $table_flottes SET ".implode(', ', $out).", last = 0 WHERE id = ".$this->id_flotte.";";
if (DEBUG)
if (DEBUG) {
var_dump($sql);
}
$bdd->query($sql);
if ($bdd->affected() != 1)
if ($bdd->affected() != 1) {
elog($bdd->affected()." champ(s) affecté(s) par la requête du fichier ".__FILE__." à la ligne ".__LINE__.", données : out = ".serialize($out)." avec l'ID : ".$this->id_flotte, 2);
}
}
$bdd->deconnexion();
}
}
}
}
?>

View file

@ -5,32 +5,30 @@
*/
class Groupe
{
var $contenu = array(); //Tableau contenant les vaisseaux de l'utilisateur
var $caracteristiques = array();
var $example = array(
public $contenu = array(); //Tableau contenant les vaisseaux de l'utilisateur
public $caracteristiques = array();
public $example = array(
array("somme boucliers", "somme pv", "nbVaisseauxInitiaux")
);
var $user; //Classe donnant des informations sur l'utilisateur de la flotte ou l'ID de l'utilisateur
var $camp = 0; //Camp du groupe
var $timestamp = 0; //TImestamp de la dernière attaque
var $actions = array(); //Tableau des actions faite ou à faire
var $action_encours = 0;
public $user; //Classe donnant des informations sur l'utilisateur de la flotte ou l'ID de l'utilisateur
public $camp = 0; //Camp du groupe
public $timestamp = 0; //TImestamp de la dernière attaque
public $actions = array(); //Tableau des actions faite ou à faire
public $action_encours = 0;
/**
* Constructor
*/
function __construct()
public function __construct()
{
}
function regenereBoucliers()
public function regenereBoucliers()
{
foreach ($this->caracteristiques as $caracteristique)
{
if ($this->actions[$action_encours][0] == 2)
$
}
// foreach ($this->caracteristiques as $caracteristique)
// {
// if ($this->actions[$action_encours][0] == 2)
// $
// }
}
}
?>

View file

@ -20,4 +20,3 @@ $PHPMAILER_LANG["connect_host"] = 'Erreur SMTP: Impossible de se connecter au se
$PHPMAILER_LANG["file_access"] = 'Accès au fichier impossible: ';
$PHPMAILER_LANG["file_open"] = 'File Error: Ne peut ouvrir le fichier: ';
$PHPMAILER_LANG["encoding"] = 'Type d\'encodage inconnu : ';
?>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -7,22 +7,22 @@
*/
class Rapport
{
var $type = 0;
var $var = array();
var $utilA = 0;
var $utilB = 0;
var $timestamp = 0;
public $type = 0;
public $var = array();
public $utilA = 0;
public $utilB = 0;
public $timestamp = 0;
var $titreA = "";
var $titreB = "";
var $rapportA = "";
var $rapportB = "";
public $titreA = "";
public $titreB = "";
public $rapportA = "";
public $rapportB = "";
/**
* Constructor
* @access protected
*/
function Rapport($type, $utilA, $utilB, $time)
public function Rapport($type, $utilA, $utilB, $time)
{
$this->type = $type;
$this->utilA = $utilA;
@ -30,126 +30,117 @@ class Rapport
$this->timestamp = $time;
}
function addInfo($info, $id)
public function addInfo($info, $id)
{
$this->var[$id] = $info;
}
function sendRapport()
public function sendRapport()
{
if (!empty($this->utilA) && !empty($this->rapportA))
if (!empty($this->utilA) && !empty($this->rapportA)) {
send_mp($this->utilA->id_user, $this->titreA, $this->rapportA, $this->timestamp);
if (!empty($this->utilB) && !empty($this->rapportB))
}
if (!empty($this->utilB) && !empty($this->rapportB)) {
send_mp($this->utilB->id_user, $this->titreB, $this->rapportB, $this->timestamp);
}
function send()
{
if ($this->type == '3')
$this->sendCombat();
elseif ($this->type == '1')
$this->sendTransport();
elseif ($this->type == '2')
$this->sendColonisation();
elseif ($this->type == '4')
$this->sendRecyclage();
elseif ($this->type == '5')
$this->sendEspionnage();
elseif ($this->type == '6')
$this->sendAlliance();
elseif ($this->type == '7')
$this->sendAlliance2();
}
function sendEspionnage()
public function send()
{
if ($this->type == '3') {
$this->sendCombat();
} elseif ($this->type == '1') {
$this->sendTransport();
} elseif ($this->type == '2') {
$this->sendColonisation();
} elseif ($this->type == '4') {
$this->sendRecyclage();
} elseif ($this->type == '5') {
$this->sendEspionnage();
} elseif ($this->type == '6') {
$this->sendAlliance();
} elseif ($this->type == '7') {
$this->sendAlliance2();
}
}
public function sendEspionnage()
{
global $LANG;
//Différentiation entre les planètes et les astéroides
if (!isset($this->var[0]->nom_planete))
{
if (!isset($this->var[0]->nom_planete)) {
$this->titreA = "Rapport d'espionnage de ".$this->var[0]->nom_asteroide." [".$this->var[0]->galaxie.":".$this->var[0]->ss.":A".$this->var[0]->position."]";
$this->rapportA = "<strong>Espionnage de ".$this->var[0]->pseudo." sur ".$this->var[0]->nom_asteroide."[".$this->var[0]->galaxie.":".$this->var[0]->ss.":A".$this->var[0]->position."]</strong><br /><br />";
}
else
{
} else {
$this->titreA = "Rapport d'espionnage de ".$this->var[0]->nom_planete." [".$this->var[0]->galaxie.":".$this->var[0]->ss.":".$this->var[0]->position."]";
$this->rapportA = "<strong>Espionnage de ".$this->var[0]->pseudo." sur ".$this->var[0]->nom_planete."[".$this->var[0]->galaxie.":".$this->var[0]->ss.":".$this->var[0]->position."]</strong><br /><br />";
}
if ($this->var[2] < 1)
if ($this->var[2] < 1) {
$this->rapportA .= "<em>Nos sondes n'ont pas pu récolter d'informations sur cette planète.</em>";
else {
} else {
//Ressources
if ($this->var[2] > 1)
if ($this->var[2] > 1) {
$this->rapportA .= "<table style=\"margin: auto;\"><tr><th colspan=\"2\">Ressources sur la planète :</th></tr><tr><td>".$LANG[$this->var[0]->race]["ressources"]["noms"]["metal"]." :</td><td>".$this->var[0]->metal."</td></tr><tr><td>".$LANG[$this->var[0]->race]["ressources"]["noms"]["cristal"]." :</td><td>".$this->var[0]->cristal."</td></tr><tr><td>".$LANG[$this->var[0]->race]["ressources"]["noms"]["hydrogene"]." :</td><td>".$this->var[0]->hydrogene."</td></tr></table><br />";
}
//Bâtiments
if ($this->var[2] > 2)
{
if ($this->var[2] > 2) {
$this->rapportA .= "<table style=\"margin: auto;\"><tr><th>Niveau</th><th>B&acirc;timent</th></tr>";
foreach ($this->var[0]->batiments as $key => $batiment)
{
foreach ($this->var[0]->batiments as $key => $batiment) {
$this->rapportA .= "<tr><td>".rand($batiment * (1 - $this->var[1]), $batiment * (1 + $this->var[1]))."</td><td>".$LANG[$this->var[0]->race]["batiments"]["noms_sing"][$key]."</td></tr>";
}
$this->rapportA .= "</table><br />";
}
//Flottes en orbite
if ($this->var[2] > 3)
{
if ($this->var[2] > 3) {
}
//Flottes au sol
if ($this->var[2] > 5)
{
if ($this->var[2] > 5) {
$this->rapportA .= "<table style=\"margin: auto;\"><tr><th>Nombre</th><th>Vaisseaux</th></tr>";
foreach ($this->var[0]->vaisseaux as $key => $vaisseau)
{
foreach ($this->var[0]->vaisseaux as $key => $vaisseau) {
$this->rapportA .= "<tr><td>".rand($vaisseau * (1 - $this->var[1]), $vaisseau * (1 + $this->var[1]))."</td><td>".$LANG[$this->var[0]->race]["vaisseaux"]["noms_sing"][$key]."</td></tr>";
}
$this->rapportA .= "</table><br />";
}
//Défenses
if ($this->var[2] > 4)
{
if ($this->var[2] > 4) {
$this->rapportA .= "<table style=\"margin: auto;\"><tr><th>Nombre</th><th>Défenses</th></tr>";
foreach ($this->var[0]->terrestres as $key => $unite)
{
if (!dTerrestre::type($key)) $this->rapportA .= "<tr><td>".rand($unite * (1 - $this->var[1]), $unite * (1 + $this->var[1]))."</td><td>".$LANG[$this->var[0]->race]["terrestre"]["noms_sing"][$key]."</td></tr>";
foreach ($this->var[0]->terrestres as $key => $unite) {
if (!dTerrestre::type($key)) {
$this->rapportA .= "<tr><td>".rand($unite * (1 - $this->var[1]), $unite * (1 + $this->var[1]))."</td><td>".$LANG[$this->var[0]->race]["terrestre"]["noms_sing"][$key]."</td></tr>";
}
}
$this->rapportA .= "</table><br />";
}
}
if ($this->var[3] >= 1)
{
if ($this->var[3] >= 1) {
$this->titreB = "Rapport de contre-espionnage";
if (!isset($this->var[0]->nom_planete))
if (!isset($this->var[0]->nom_planete)) {
$this->rapportB = "Nous venons d'apprendre que notre planète : ".$this->var[0]->nom_asteroide."[".$this->var[0]->galaxie.":".$this->var[0]->ss.":A] a été la cible d'un espionnage de la part de ".$this->utilA->pseudo;
else
} else {
$this->rapportB = "Nous venons d'apprendre que notre planète : ".$this->var[0]->nom_planete."[".$this->var[0]->galaxie.":".$this->var[0]->ss.":".$this->var[0]->position."] a été la cible d'un espionnage de la part de ".$this->utilA->pseudo;
}
}
$this->rapportA = $this->rapportA;
}
function sendTransport()
public function sendTransport()
{
global $LANG;
if (!isset($this->var[0]->nom_planete))
{
if (!isset($this->var[0]->nom_planete)) {
$titre = 'Transport vers '.$this->var[0]->nom_asteroide.' ['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':A]';
$this->rapportA = 'Vos vaisseaux ont déposé '.$this->var[1][0].' de '.$LANG[$this->utilA->race]["ressources"]["noms"]["metal"].', '.$this->var[1][1].' de '.$LANG[$this->utilA->race]["ressources"]["noms"]["cristal"].' et '.$this->var[1][2].' d\''.$LANG[$this->utilA->race]["ressources"]["noms"]["hydrogene"].' sur '.$this->var[0]->nom_asteroide.'['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':A]</b><br /><br />';
$this->rapportB = 'Les vaisseaux de '.$this->utilA->pseudo.' ont déposé '.$this->var[1][0].' de '.$LANG[$this->utilB->race]["ressources"]["noms"]["metal"].', '.$this->var[1][1].' de '.$LANG[$this->utilB->race]["ressources"]["noms"]["cristal"].' et '.$this->var[1][2].' d\''.$LANG[$this->utilB->race]["ressources"]["noms"]["hydrogene"].' sur '.$this->var[0]->nom_asteroide.'['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':A]</b><br /><br />';
}
else
{
} else {
$titre = 'Transport vers '.$this->var[0]->nom_planete.' ['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.']';
$this->rapportA = 'Vos vaisseaux ont déposé '.$this->var[1][0].' de '.$LANG[$this->utilA->race]["ressources"]["noms"]["metal"].', '.$this->var[1][1].' de '.$LANG[$this->utilA->race]["ressources"]["noms"]["cristal"].' et '.$this->var[1][2].' d\''.$LANG[$this->utilA->race]["ressources"]["noms"]["hydrogene"].' sur '.$this->var[0]->nom_planete.'['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.']</b><br /><br />';
$this->rapportB = 'Les vaisseaux de '.$this->utilA->pseudo.' ont déposé '.$this->var[1][0].' de '.$LANG[$this->utilB->race]["ressources"]["noms"]["metal"].', '.$this->var[1][1].' de '.$LANG[$this->utilB->race]["ressources"]["noms"]["cristal"].' et '.$this->var[1][2].' d\''.$LANG[$this->utilB->race]["ressources"]["noms"]["hydrogene"].' sur '.$this->var[0]->nom_planete.'['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.']</b><br /><br />';
}
$temps = $this->timestamp;
@ -159,27 +150,28 @@ class Rapport
$db->escape($this->rapportB);
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA->id_user.", '$titre', '$this->rapportA', '$temps');");
if ($this->utilA->id_user != $this->utilB->id_user) $db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilB->id_user.", '$titre', '$this->rapportB', '$temps');");
if ($this->utilA->id_user != $this->utilB->id_user) {
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilB->id_user.", '$titre', '$this->rapportB', '$temps');");
}
$db->deconnexion();
}
function sendColonisation()
public function sendColonisation()
{
$titre = 'Colonisation de ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].']';
if (is_numeric($this->var[0][2]))
{
if ($this->var[1])
if (is_numeric($this->var[0][2])) {
if ($this->var[1]) {
$rapport = 'Votre vaisseau a atteint la planète ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].'] et commence la colonisation.';
else
} else {
$rapport = 'Nous n\'avons pas pu coloniser la planète ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].'] car lorsque nous sommes arrivé sur place, elle était déjà colonisée.';
}
else
{
if ($this->var[1])
} else {
if ($this->var[1]) {
$rapport = 'Votre vaisseau a atteint l\'astéroide ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].'] et commence la colonisation.';
else
} else {
$rapport = 'Nous n\'avons pas pu coloniser la planète ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].'] car lorsque nous sommes arrivé sur place, elle était déjà colonisée.';
}
}
$temps = $this->timestamp;
$db = new BDD();
@ -189,16 +181,13 @@ class Rapport
$db->deconnexion();
}
function sendRecyclage()
public function sendRecyclage()
{
global $LANG;
if (!isset($this->var[0]->nom_planete))
{
if (!isset($this->var[0]->nom_planete)) {
$titre = 'Recyclage de '.$this->var[0]->nom_asteroide.' ['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':A]';
$rapport = 'Vos vaisseaux récoltent '.$this->var[1][0].' de '.$LANG[$this->utilA->race]["ressources"]["noms"]["metal"].' et '.$this->var[1][1].' de '.$LANG[$this->utilA->race]["ressources"]["noms"]["cristal"].' sur '.$this->var[0]->nom_asteroide.'['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':A]</b><br /><br />';
}
else
{
} else {
$titre = 'Recyclage de '.$this->var[0]->nom_planete.' ['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.']';
$rapport = 'Vos vaisseaux récoltent '.$this->var[1][0].' de '.$LANG[$this->utilA->race]["ressources"]["noms"]["metal"].' et '.$this->var[1][1].' de '.$LANG[$this->utilA->race]["ressources"]["noms"]["cristal"].' sur '.$this->var[0]->nom_planete.'['.$this->var[0]->galaxie.':'.$this->var[0]->ss.':'.$this->var[0]->position.']</b><br /><br />';
}
@ -212,7 +201,8 @@ class Rapport
$db->deconnexion();
}
function sendCombat(){
public function sendCombat()
{
include(_FCORE."../game/vars.php");
include_once(_FCORE."../game/function.php");
require_once(SMARTY_DIR."Smarty.class.php");
@ -316,7 +306,8 @@ class Rapport
$db->deconnexion();
}
function show(){
public function show()
{
include(_FCORE."../game/vars.php");
include_once(_FCORE."../game/function.php");
require_once(SMARTY_DIR."Smarty.class.php");
@ -372,7 +363,7 @@ class Rapport
return $this->rapportA;
}
function sendAlliance()
public function sendAlliance()
{
$this->titreA = 'Déclaration officielle de votre alliance !';
$this->rapportA = 'Félicitations, votre alliance a recueilli suffisament de signature, sa déclaration est maintenant officielle !<br /><br />Vous pouvez dès maintenant administrer votre alliance en vous rendant sur la page Alliance.';
@ -386,7 +377,7 @@ class Rapport
$db->deconnexion();
}
function sendAlliance2()
public function sendAlliance2()
{
$this->titreA = 'Fondation de votre alliance !';
$this->rapportA = 'Pour terminer la création de votre alliance, trouvez 4 joueurs de cette galaxie sans alliance pour leur faire signer votre traité de fondation d\'alliance.<br /><br />Lien de signature : <a href="?p=alliances&amp;q=signer&amp;i='.$this->var[0].'">http://'.$_SERVER['HTTP_HOST'].'/?p=alliances&amp;q=signer&amp;i='.$this->var[0].'</a>';
@ -400,4 +391,3 @@ class Rapport
$db->deconnexion();
}
}
?>

View file

@ -27,26 +27,26 @@ class SMTP
* SMTP server port
* @var int
*/
var $SMTP_PORT = 25;
public $SMTP_PORT = 25;
/**
* SMTP reply line ending
* @var string
*/
var $CRLF = "\r\n";
public $CRLF = "\r\n";
/**
* Sets whether debugging is turned on
* @var bool
*/
var $do_debug; # the level of debug to perform
public $do_debug; # the level of debug to perform
/**#@+
* @access private
*/
var $smtp_conn; # the socket to the server
var $error; # error if any on the last call
var $helo_rply; # the reply the server sent to us for HELO
public $smtp_conn; # the socket to the server
public $error; # error if any on the last call
public $helo_rply; # the reply the server sent to us for HELO
/**#@-*/
/**
@ -54,7 +54,8 @@ class SMTP
* @access public
* @return void
*/
function SMTP() {
public function SMTP()
{
$this->smtp_conn = 0;
$this->error = null;
$this->helo_rply = null;
@ -79,12 +80,13 @@ class SMTP
* @access public
* @return bool
*/
function Connect($host,$port=0,$tval=30) {
public function Connect($host, $port=0, $tval=30)
{
# set the error val to null so there is no confusion
$this->error = null;
# make sure we are __not__ connected
if($this->connected()) {
if ($this->connected()) {
# ok we are connected! what should we do?
# for now we will just give an error saying we
# are already connected
@ -93,7 +95,7 @@ class SMTP
return false;
}
if(empty($port)) {
if (empty($port)) {
$port = $this->SMTP_PORT;
}
@ -104,11 +106,11 @@ class SMTP
$errstr, # error message if any
$tval); # give up after ? secs
# verify we connected properly
if(empty($this->smtp_conn)) {
if (empty($this->smtp_conn)) {
$this->error = array("error" => "Failed to connect to server",
"errno" => $errno,
"errstr" => $errstr);
if($this->do_debug >= 1) {
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": $errstr ($errno)" . $this->CRLF;
}
@ -118,8 +120,9 @@ class SMTP
# sometimes the SMTP server takes a little longer to respond
# so we will give it a longer timeout for the first read
// Windows still does not have support for this timeout function
if(substr(PHP_OS, 0, 3) != "WIN")
if (substr(PHP_OS, 0, 3) != "WIN") {
socket_set_timeout($this->smtp_conn, $tval, 0);
}
# get any announcement stuff
$announce = $this->get_lines();
@ -128,7 +131,7 @@ class SMTP
//if(function_exists("socket_set_timeout"))
// socket_set_timeout($this->smtp_conn, 0, 100000);
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $this->CRLF . $announce;
}
@ -141,19 +144,20 @@ class SMTP
* @access public
* @return bool
*/
function Authenticate($username, $password) {
public function Authenticate($username, $password)
{
// Start authentication
fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF);
fputs($this->smtp_conn, "AUTH LOGIN" . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($code != 334) {
if ($code != 334) {
$this->error =
array("error" => "AUTH not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -164,14 +168,14 @@ class SMTP
fputs($this->smtp_conn, base64_encode($username) . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($code != 334) {
if ($code != 334) {
$this->error =
array("error" => "Username not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -182,14 +186,14 @@ class SMTP
fputs($this->smtp_conn, base64_encode($password) . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($code != 235) {
if ($code != 235) {
$this->error =
array("error" => "Password not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -204,13 +208,14 @@ class SMTP
* @access private
* @return bool
*/
function Connected() {
if(!empty($this->smtp_conn)) {
public function Connected()
{
if (!empty($this->smtp_conn)) {
$sock_status = socket_get_status($this->smtp_conn);
if($sock_status["eof"]) {
if ($sock_status["eof"]) {
# hmm this is an odd situation... the socket is
# valid but we aren't connected anymore
if($this->do_debug >= 1) {
if ($this->do_debug >= 1) {
echo "SMTP -> NOTICE:" . $this->CRLF .
"EOF caught while checking if connected";
}
@ -229,10 +234,11 @@ class SMTP
* @access public
* @return void
*/
function Close() {
public function Close()
{
$this->error = null; # so there is no confusion
$this->helo_rply = null;
if(!empty($this->smtp_conn)) {
if (!empty($this->smtp_conn)) {
# close the connection and cleanup
fclose($this->smtp_conn);
$this->smtp_conn = 0;
@ -263,30 +269,31 @@ class SMTP
* @access public
* @return bool
*/
function Data($msg_data) {
public function Data($msg_data)
{
$this->error = null; # so no confusion is caused
if(!$this->connected()) {
if (!$this->connected()) {
$this->error = array(
"error" => "Called Data() without being connected");
return false;
}
fputs($this->smtp_conn,"DATA" . $this->CRLF);
fputs($this->smtp_conn, "DATA" . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
}
if($code != 354) {
if ($code != 354) {
$this->error =
array("error" => "DATA command not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -304,9 +311,9 @@ class SMTP
# line. NOTE: this does not count towards are limit.
# normalize the line breaks so we know the explode works
$msg_data = str_replace("\r\n","\n",$msg_data);
$msg_data = str_replace("\r","\n",$msg_data);
$lines = explode("\n",$msg_data);
$msg_data = str_replace("\r\n", "\n", $msg_data);
$msg_data = str_replace("\r", "\n", $msg_data);
$lines = explode("\n", $msg_data);
# we need to find a good way to determine is headers are
# in the msg_data or if it is a straight msg body
@ -315,43 +322,42 @@ class SMTP
# does not contain a space then it _should_ be a header
# and we can process all lines before a blank "" line as
# headers.
$field = substr($lines[0],0,strpos($lines[0],":"));
$field = substr($lines[0], 0, strpos($lines[0], ":"));
$in_headers = false;
if(!empty($field) && !strstr($field," ")) {
if (!empty($field) && !strstr($field, " ")) {
$in_headers = true;
}
$max_line_length = 998; # used below; set here for ease in change
while(list(,$line) = @each($lines)) {
while (list(, $line) = @each($lines)) {
$lines_out = null;
if($line == "" && $in_headers) {
if ($line == "" && $in_headers) {
$in_headers = false;
}
# ok we need to break this line up into several
# smaller lines
while(strlen($line) > $max_line_length) {
$pos = strrpos(substr($line,0,$max_line_length)," ");
$lines_out[] = substr($line,0,$pos);
$line = substr($line,$pos + 1);
while (strlen($line) > $max_line_length) {
$pos = strrpos(substr($line, 0, $max_line_length), " ");
$lines_out[] = substr($line, 0, $pos);
$line = substr($line, $pos + 1);
# if we are processing headers we need to
# add a LWSP-char to the front of the new line
# rfc 822 on long msg headers
if($in_headers) {
if ($in_headers) {
$line = "\t" . $line;
}
}
$lines_out[] = $line;
# now send the lines to the server
while(list(,$line_out) = @each($lines_out)) {
if(strlen($line_out) > 0)
{
if(substr($line_out, 0, 1) == ".") {
while (list(, $line_out) = @each($lines_out)) {
if (strlen($line_out) > 0) {
if (substr($line_out, 0, 1) == ".") {
$line_out = "." . $line_out;
}
}
fputs($this->smtp_conn,$line_out . $this->CRLF);
fputs($this->smtp_conn, $line_out . $this->CRLF);
}
}
@ -360,18 +366,18 @@ class SMTP
fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
}
if($code != 250) {
if ($code != 250) {
$this->error =
array("error" => "DATA not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -396,30 +402,31 @@ class SMTP
* @access public
* @return string array
*/
function Expand($name) {
public function Expand($name)
{
$this->error = null; # so no confusion is caused
if(!$this->connected()) {
if (!$this->connected()) {
$this->error = array(
"error" => "Called Expand() without being connected");
return false;
}
fputs($this->smtp_conn,"EXPN " . $name . $this->CRLF);
fputs($this->smtp_conn, "EXPN " . $name . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
}
if($code != 250) {
if ($code != 250) {
$this->error =
array("error" => "EXPN not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -427,9 +434,9 @@ class SMTP
}
# parse the reply and place in our array to return to user
$entries = explode($this->CRLF,$rply);
while(list(,$l) = @each($entries)) {
$list[] = substr($l,4);
$entries = explode($this->CRLF, $rply);
while (list(, $l) = @each($entries)) {
$list[] = substr($l, 4);
}
return $list;
@ -447,10 +454,11 @@ class SMTP
* @access public
* @return bool
*/
function Hello($host="") {
public function Hello($host="")
{
$this->error = null; # so no confusion is caused
if(!$this->connected()) {
if (!$this->connected()) {
$this->error = array(
"error" => "Called Hello() without being connected");
return false;
@ -458,18 +466,18 @@ class SMTP
# if a hostname for the HELO wasn't specified determine
# a suitable one to send
if(empty($host)) {
if (empty($host)) {
# we need to determine some sort of appopiate default
# to send to the server
$host = "localhost";
}
// Send extended hello first (RFC 2821)
if(!$this->SendHello("EHLO", $host))
{
if(!$this->SendHello("HELO", $host))
if (!$this->SendHello("EHLO", $host)) {
if (!$this->SendHello("HELO", $host)) {
return false;
}
}
return true;
}
@ -479,22 +487,23 @@ class SMTP
* @access private
* @return bool
*/
function SendHello($hello, $host) {
public function SendHello($hello, $host)
{
fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER: " . $this->CRLF . $rply;
}
if($code != 250) {
if ($code != 250) {
$this->error =
array("error" => $hello . " not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -521,35 +530,36 @@ class SMTP
* @access public
* @return string
*/
function Help($keyword="") {
public function Help($keyword="")
{
$this->error = null; # to avoid confusion
if(!$this->connected()) {
if (!$this->connected()) {
$this->error = array(
"error" => "Called Help() without being connected");
return false;
}
$extra = "";
if(!empty($keyword)) {
if (!empty($keyword)) {
$extra = " " . $keyword;
}
fputs($this->smtp_conn,"HELP" . $extra . $this->CRLF);
fputs($this->smtp_conn, "HELP" . $extra . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
}
if($code != 211 && $code != 214) {
if ($code != 211 && $code != 214) {
$this->error =
array("error" => "HELP not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -573,30 +583,31 @@ class SMTP
* @access public
* @return bool
*/
function Mail($from) {
public function Mail($from)
{
$this->error = null; # so no confusion is caused
if(!$this->connected()) {
if (!$this->connected()) {
$this->error = array(
"error" => "Called Mail() without being connected");
return false;
}
fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $this->CRLF);
fputs($this->smtp_conn, "MAIL FROM:<" . $from . ">" . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
}
if($code != 250) {
if ($code != 250) {
$this->error =
array("error" => "MAIL not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -615,30 +626,31 @@ class SMTP
* @access public
* @return bool
*/
function Noop() {
public function Noop()
{
$this->error = null; # so no confusion is caused
if(!$this->connected()) {
if (!$this->connected()) {
$this->error = array(
"error" => "Called Noop() without being connected");
return false;
}
fputs($this->smtp_conn,"NOOP" . $this->CRLF);
fputs($this->smtp_conn, "NOOP" . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
}
if($code != 250) {
if ($code != 250) {
$this->error =
array("error" => "NOOP not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -658,42 +670,43 @@ class SMTP
* @access public
* @return bool
*/
function Quit($close_on_error=true) {
public function Quit($close_on_error=true)
{
$this->error = null; # so there is no confusion
if(!$this->connected()) {
if (!$this->connected()) {
$this->error = array(
"error" => "Called Quit() without being connected");
return false;
}
# send the quit command to the server
fputs($this->smtp_conn,"quit" . $this->CRLF);
fputs($this->smtp_conn, "quit" . $this->CRLF);
# get any good-bye messages
$byemsg = $this->get_lines();
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $this->CRLF . $byemsg;
}
$rval = true;
$e = null;
$code = substr($byemsg,0,3);
if($code != 221) {
$code = substr($byemsg, 0, 3);
if ($code != 221) {
# use e as a tmp var cause Close will overwrite $this->error
$e = array("error" => "SMTP server rejected quit command",
"smtp_code" => $code,
"smtp_rply" => substr($byemsg,4));
"smtp_rply" => substr($byemsg, 4));
$rval = false;
if($this->do_debug >= 1) {
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $e["error"] . ": " .
$byemsg . $this->CRLF;
}
}
if(empty($e) || $close_on_error) {
if (empty($e) || $close_on_error) {
$this->Close();
}
@ -712,30 +725,31 @@ class SMTP
* @access public
* @return bool
*/
function Recipient($to) {
public function Recipient($to)
{
$this->error = null; # so no confusion is caused
if(!$this->connected()) {
if (!$this->connected()) {
$this->error = array(
"error" => "Called Recipient() without being connected");
return false;
}
fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF);
fputs($this->smtp_conn, "RCPT TO:<" . $to . ">" . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
}
if($code != 250 && $code != 251) {
if ($code != 250 && $code != 251) {
$this->error =
array("error" => "RCPT not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -756,30 +770,31 @@ class SMTP
* @access public
* @return bool
*/
function Reset() {
public function Reset()
{
$this->error = null; # so no confusion is caused
if(!$this->connected()) {
if (!$this->connected()) {
$this->error = array(
"error" => "Called Reset() without being connected");
return false;
}
fputs($this->smtp_conn,"RSET" . $this->CRLF);
fputs($this->smtp_conn, "RSET" . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
}
if($code != 250) {
if ($code != 250) {
$this->error =
array("error" => "RSET failed",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -805,30 +820,31 @@ class SMTP
* @access public
* @return bool
*/
function Send($from) {
public function Send($from)
{
$this->error = null; # so no confusion is caused
if(!$this->connected()) {
if (!$this->connected()) {
$this->error = array(
"error" => "Called Send() without being connected");
return false;
}
fputs($this->smtp_conn,"SEND FROM:" . $from . $this->CRLF);
fputs($this->smtp_conn, "SEND FROM:" . $from . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
}
if($code != 250) {
if ($code != 250) {
$this->error =
array("error" => "SEND not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -853,30 +869,31 @@ class SMTP
* @access public
* @return bool
*/
function SendAndMail($from) {
public function SendAndMail($from)
{
$this->error = null; # so no confusion is caused
if(!$this->connected()) {
if (!$this->connected()) {
$this->error = array(
"error" => "Called SendAndMail() without being connected");
return false;
}
fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF);
fputs($this->smtp_conn, "SAML FROM:" . $from . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
}
if($code != 250) {
if ($code != 250) {
$this->error =
array("error" => "SAML not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -901,30 +918,31 @@ class SMTP
* @access public
* @return bool
*/
function SendOrMail($from) {
public function SendOrMail($from)
{
$this->error = null; # so no confusion is caused
if(!$this->connected()) {
if (!$this->connected()) {
$this->error = array(
"error" => "Called SendOrMail() without being connected");
return false;
}
fputs($this->smtp_conn,"SOML FROM:" . $from . $this->CRLF);
fputs($this->smtp_conn, "SOML FROM:" . $from . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
}
if($code != 250) {
if ($code != 250) {
$this->error =
array("error" => "SOML not accepted from server",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -946,10 +964,11 @@ class SMTP
* @access public
* @return bool
*/
function Turn() {
public function Turn()
{
$this->error = array("error" => "This method, TURN, of the SMTP ".
"is not implemented");
if($this->do_debug >= 1) {
if ($this->do_debug >= 1) {
echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF;
}
return false;
@ -968,30 +987,31 @@ class SMTP
* @access public
* @return int
*/
function Verify($name) {
public function Verify($name)
{
$this->error = null; # so no confusion is caused
if(!$this->connected()) {
if (!$this->connected()) {
$this->error = array(
"error" => "Called Verify() without being connected");
return false;
}
fputs($this->smtp_conn,"VRFY " . $name . $this->CRLF);
fputs($this->smtp_conn, "VRFY " . $name . $this->CRLF);
$rply = $this->get_lines();
$code = substr($rply,0,3);
$code = substr($rply, 0, 3);
if($this->do_debug >= 2) {
if ($this->do_debug >= 2) {
echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply;
}
if($code != 250 && $code != 251) {
if ($code != 250 && $code != 251) {
$this->error =
array("error" => "VRFY failed on name '$name'",
"smtp_code" => $code,
"smtp_msg" => substr($rply,4));
if($this->do_debug >= 1) {
"smtp_msg" => substr($rply, 4));
if ($this->do_debug >= 1) {
echo "SMTP -> ERROR: " . $this->error["error"] .
": " . $rply . $this->CRLF;
}
@ -1013,27 +1033,26 @@ class SMTP
* @access private
* @return string
*/
function get_lines() {
public function get_lines()
{
$data = "";
while($str = fgets($this->smtp_conn,515)) {
if($this->do_debug >= 4) {
while ($str = fgets($this->smtp_conn, 515)) {
if ($this->do_debug >= 4) {
echo "SMTP -> get_lines(): \$data was \"$data\"" .
$this->CRLF;
echo "SMTP -> get_lines(): \$str is \"$str\"" .
$this->CRLF;
}
$data .= $str;
if($this->do_debug >= 4) {
if ($this->do_debug >= 4) {
echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF;
}
# if the 4th character is a space then we are done reading
# so just break the loop
if(substr($str,3,1) == " ") { break; }
if (substr($str, 3, 1) == " ") {
break;
}
}
return $data;
}
}
?>

View file

@ -11,33 +11,33 @@ include_once("Class/user.php");
***************************************************************************/
class SURFACE extends User
{
var $id = 0,
$galaxie,
$ss,
$image,
$debris_met,
$debris_cri,
$metal,
$cristal,
$hydrogene,
$alert_ressources = array(false, false, false),
$timestamp,
$file_bat,
$file_vais,
$isolement = false,
$batiments = array(),
$vaisseaux = array(),
$modif = array();
public $id = 0;
public $galaxie;
public $ss;
public $image;
public $debris_met;
public $debris_cri;
public $metal;
public $cristal;
public $hydrogene;
public $alert_ressources = array(false, false, false);
public $timestamp;
public $file_bat;
public $file_vais;
public $isolement = false;
public $batiments = array();
public $vaisseaux = array();
public $modif = array();
function isolement()
public function isolement()
{
return false;
}
function addModif($modif)
public function addModif($modif)
{
if (!in_array($modif, $this->modif))
if (!in_array($modif, $this->modif)) {
$this->modif[] = $modif;
}
}
}
?>

View file

@ -1,10 +1,10 @@
<?php
class TinyAsteroide
{
var $id = 0,
$galaxie,
$ss,
$nom_asteroide;
{
public $id = 0;
public $galaxie;
public $ss;
public $nom_asteroide;
/**
* Constructeur
@ -13,28 +13,24 @@ class TinyAsteroide
* @return void
* @access public
*/
function __construct($id)
public function __construct($id)
{
//Récupération du nom des tables utilisées et connexion à la base de données
global $table_alliances;
$bdd = new BDD();
//On traite le cas où l'on recoit l'ID ou les coordonnées de l'asteroide
if (is_numeric($id))
{
if (is_numeric($id)) {
$aste = $bdd->unique_query("SELECT id, galaxie, ss, nom_asteroide FROM $table_alliances WHERE id = $id;");
$bdd->deconnexion();
}
elseif (preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):?[Aa]?\]?$#', $id, $position))
{
} elseif (preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):?[Aa]?\]?$#', $id, $position)) {
$aste = $bdd->unique_query("SELECT id, galaxie, ss, nom_asteroide FROM $table_alliances WHERE galaxie = ".$position[1]." AND ss = ".$position[2].";");
$bdd->deconnexion();
}
else
} else {
trigger_error('Erreur #04 : Format de recherche d\'astéroide incorrect !', E_USER_ERROR);
}
if (!empty($aste))
{
if (!empty($aste)) {
//Chargement des données depuis le résultat de la base de données
$this->id = $aste["id"];
$this->galaxie = $aste["galaxie"];
@ -42,5 +38,4 @@ class TinyAsteroide
$this->nom_asteroide = $aste["nom_asteroide"];
}
}
}
?>
}

View file

@ -1,10 +1,11 @@
<?php
class TinyPlanete{
var $id = 0,
$galaxie,
$ss,
$position,
$nom_planete;
<?php
class TinyPlanete
{
public $id = 0;
public $galaxie;
public $ss;
public $position;
public $nom_planete;
/**
* Constructeur
@ -13,28 +14,24 @@ class TinyPlanete{
* @return void
* @access public
*/
function __construct($id)
public function __construct($id)
{
//Récupération du nom des tables utilisées et connexion à la base de données
global $table_planete;
$bdd = new bdd();
//On traite le cas où l'on recoit l'ID ou les coordonnées de la planète
if (is_numeric($id))
{
if (is_numeric($id)) {
$plan = $bdd->unique_query("SELECT id, galaxie, ss, position, nom_planete FROM $table_planete WHERE id = $id;");
$bdd->deconnexion();
}
elseif (preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\]?$#', $id, $position))
{
} elseif (preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\]?$#', $id, $position)) {
$plan = $bdd->unique_query("SELECT id, galaxie, ss, position, nom_planete FROM $table_planete WHERE galaxie = ".$position[1]." AND ss = ".$position[2]." AND position = ".$position[3].";");
$bdd->deconnexion();
}
else
} else {
trigger_error('Erreur #04 : Format de recherche de planete incorrect !', E_USER_ERROR);
}
if (!empty($plan))
{
if (!empty($plan)) {
//Chargement des données depuis le résultat de la base de données
$this->id = $plan["id"];
$this->galaxie = $plan["galaxie"];
@ -44,4 +41,3 @@ class TinyPlanete{
}
}
}
?>

View file

@ -11,31 +11,32 @@ include_once("Class/tinyasteroide.php");
*
*
***************************************************************************/
class User{
var $id_user,
$pseudo,
$auth_level,
$options,
$race,
$alliance,
$id_alliance,
$id_grade_alliance,
$permissions_alliance,
$mv,
$mail,
$envoyerMail,
$last_visite,
$points,
$place_points,
$technologies = array(),
$credits,
$politique,
$politique_lastchange,
$destinationsFavoris,
$amis = array(),
$combatAT_tactique,
$combatDE_tactique,
$modifUser = array();
class User
{
public $id_user;
public $pseudo;
public $auth_level;
public $options;
public $race;
public $alliance;
public $id_alliance;
public $id_grade_alliance;
public $permissions_alliance;
public $mv;
public $mail;
public $envoyerMail;
public $last_visite;
public $points;
public $place_points;
public $technologies = array();
public $credits;
public $politique;
public $politique_lastchange;
public $destinationsFavoris;
public $amis = array();
public $combatAT_tactique;
public $combatDE_tactique;
public $modifUser = array();
/**
* Constructeur
@ -44,7 +45,8 @@ class User{
* @return void
* @access public
*/
function User($id = 0){
public function User($id = 0)
{
if (!empty($id)) {
global $technologiesVAR, $table_user;
$bdd = new bdd();
@ -68,31 +70,38 @@ class User{
$this->credits = $user["credits"];
$this->politique = $user["politique"];
$this->politique_lastchange = $user["politique_lastchange"];
if (!empty($user["amis"])) $this->amis = unserialize($user["amis"]);
else $this->amis = array();
if (!empty($user["destinationsFavoris"])) $this->destinationsFavoris = unserialize($user["destinationsFavoris"]);
else $this->destinationsFavoris = array();
if (!empty($user["amis"])) {
$this->amis = unserialize($user["amis"]);
} else {
$this->amis = array();
}
if (!empty($user["destinationsFavoris"])) {
$this->destinationsFavoris = unserialize($user["destinationsFavoris"]);
} else {
$this->destinationsFavoris = array();
}
$this->combatAT_tactique = $user["combatAT_tactique"];
$this->combatDE_tactique = $user["combatDE_tactique"];
foreach($technologiesVAR as $tech){
foreach ($technologiesVAR as $tech) {
$this->technologies[] = intval($user[$tech]);
}
//Si l'ID d'alliance est défini, on charge l'alliance
if (!empty($this->id_alliance))
if (!empty($this->id_alliance)) {
$this->alliance = new TinyAsteroide($this->id_alliance);
}
else die('Erreur #01 : Utilisateur recherché introuvable dans la base de données. Contactez le support technique ('.$config['mail_support'].') au plus vite en précisant le code d\'erreur.');
} else {
die('Erreur #01 : Utilisateur recherché introuvable dans la base de données. Contactez le support technique ('.$config['mail_support'].') au plus vite en précisant le code d\'erreur.');
}
}
}
function loadPermissions($fondateur = 0)
public function loadPermissions($fondateur = 0)
{
if ($fondateur == $this->id_user)
if ($fondateur == $this->id_user) {
$this->permissions_alliance = 1023;
else
{
} else {
global $table_alliances_grade;
$bdd = new BDD();
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = ".$this->id_grade_alliance.";");
@ -102,7 +111,7 @@ class User{
}
}
function addPoints($metal, $cristal, $hydrogene, $credits = 0, $demolition = false)
public function addPoints($metal, $cristal, $hydrogene, $credits = 0, $demolition = false)
{
global $table_bourse_ressources;
//On charge les 3 valeurs boursières
@ -110,8 +119,7 @@ class User{
$bourse = $bdd->query("SELECT dispo FROM $table_bourse_ressources;");
$bdd->deconnexion();
if (!empty($credits))
{
if (!empty($credits)) {
//TODO Equivalence non prouvée entre $credits/bourse_calcPrixBase($bourse[0]["dispo"], 0.7); et $credits/bourse_calcPrixBase($bourse[0]["dispo"], 1) * 0.7; dans le but de ne donner que 70% des points
$metal += $credits/bourse_calcPrixBase($bourse[0]["dispo"], 0.7);
$cristal += $credits/bourse_calcPrixBase($bourse[1]["dispo"], 0.7);
@ -122,15 +130,16 @@ class User{
$points += bourse_calcPrixBase($bourse[1]["dispo"], $cristal);
$points += bourse_calcPrixBase($bourse[2]["dispo"], $hydrogene);
if ($demolition)
if ($demolition) {
$this->points -= intval($points);
else
} else {
$this->points += intval($points);
}
$this->addModifUser("points");
}
function addCredits($credits)
public function addCredits($credits)
{
$this->credits += $credits;
$this->addModifUser("credits");
@ -138,11 +147,12 @@ class User{
return 0;
}
function addModifUser($modif)
public function addModifUser($modif)
{
if (!in_array($modif, $this->modifUser))
if (!in_array($modif, $this->modifUser)) {
$this->modifUser[] = $modif;
}
}
/**
* Destructeur
@ -150,62 +160,61 @@ class User{
* @return void
* @access public
*/
function __destruct(){
public function __destruct()
{
global $table_user;
$out = array();
$bdd = new BDD();
foreach($this->modifUser as $key => $modif)
{
foreach ($this->modifUser as $key => $modif) {
//On gère les champs variables tableaux
if (is_array($modif))
{
if (is_array($modif)) {
$calc = dDonnees::nameVAR($modif[0]);
if (!isset(${$calc.'VAR'}))
if (!isset(${$calc.'VAR'})) {
global ${$calc.'VAR'};
if (empty(${$calc.'VAR'}))
}
if (empty(${$calc.'VAR'})) {
trigger_error('Impossible de trouver les données pour '.$modif[0], E_USER_ERROR);
}
$out[] = ${$calc.'VAR'}[$modif[1]]." = ".$this->{$modif[0]}[$modif[1]];
}
elseif ($modif == "force")
} elseif ($modif == "force") {
$out[] = " ";
elseif (!is_array($this->{$modif}))
{
} elseif (!is_array($this->{$modif})) {
$bdd->escape($this->{$modif});
if (is_int($this->{$modif}) || is_float($this->{$modif})) $out[] .= $modif." = ".$this->{$modif};
else $out[] .= $modif." = '".$this->{$modif}."'";
if (is_int($this->{$modif}) || is_float($this->{$modif})) {
$out[] .= $modif." = ".$this->{$modif};
} else {
$out[] .= $modif." = '".$this->{$modif}."'";
}
else
{
if ($modif != "coeff_bat" && $modif != "vaisseaux" && $modif != "terrestres" && $modif != "casernes" && $modif != "technologies" && $modif != "batiments")
{
} else {
if ($modif != "coeff_bat" && $modif != "vaisseaux" && $modif != "terrestres" && $modif != "casernes" && $modif != "technologies" && $modif != "batiments") {
$prep = serialize($this->{$modif});
$bdd->escape($prep);
$out[] = $modif." = '$prep'";
}
else
{
} else {
$calc = dDonnees::nameVAR($modif);
if (!isset(${$calc.'VAR'}))
if (!isset(${$calc.'VAR'})) {
global ${$calc.'VAR'};
}
foreach($this->{$modif} as $j => $value)
foreach ($this->{$modif} as $j => $value) {
$out[] = ${$calc.'VAR'}[$j]." = ".$value;
}
}
}
if (!empty($out))
{
}
if (!empty($out)) {
$sql = "UPDATE $table_user SET ".implode(', ', $out)." WHERE id = ".$this->id_user.";";
if (DEBUG)
if (DEBUG) {
echo '<br /><br />'.$sql;
}
$bdd->query($sql);
if ($bdd->affected() != 1)
if ($bdd->affected() != 1) {
elog($bdd->affected()." champ(s) affecté(s) par la requête du fichier ".__FILE__." à la ligne ".__LINE__.", données : out = ".serialize($out)." avec l'ID ".$this->id_user, 2);
}
}
$bdd->deconnexion();
}
}
?>

View file

@ -1,5 +1,8 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'accueil';
$titre = 'Accueil administration';
@ -13,4 +16,3 @@ $bdd->deconnexion();
$template->assign('nbMail', $mail['nombre']);
$template->assign('nbPilori', $pilori['nombre']);
$template->assign('news', $news);
?>

View file

@ -1,5 +1,8 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'print';
$titre = 'Vérification alliance';
@ -19,8 +22,7 @@ if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id') {
$template->assign('type', explode('(', $req['Type']));
$template->assign('idPlan', $id_plan);
$template->assign('key', $_GET['key']);
}
elseif (!empty($_GET['id'])) {
} elseif (!empty($_GET['id'])) {
$id_plan = $_GET['id'];
if (isset($_POST['key']) && isset($_POST['mod'])) {
$key = $_POST['key'];
@ -36,8 +38,7 @@ elseif (!empty($_GET['id'])) {
$chapeau->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_plan);
}
elseif (!empty($_GET['name'])) {
} elseif (!empty($_GET['name'])) {
$name = $_GET['name'];
$chapeau->connexion();
$chapeau->escape($name);
@ -45,8 +46,6 @@ elseif (!empty($_GET['name'])) {
$chapeau->deconnexion();
header('Location: admin.php?p=valliances&id='.$req['id']);
exit;
}
else {
} else {
$pagea = 'print_choixU';
}
?>

View file

@ -1,11 +1,13 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'bandeau';
$titre = 'Bandeau d\'information';
//Ajout d'une information
if (!empty($_GET['i']) && $_GET['i'] == 'add' && !empty($_POST['texte']) && isset($_POST['color']))
{
if (!empty($_GET['i']) && $_GET['i'] == 'add' && !empty($_POST['texte']) && isset($_POST['color'])) {
$texte = gpc('texte', 'post');
$color = gpc('color', 'post');
$bdd = new BDD();
@ -16,13 +18,11 @@ if (!empty($_GET['i']) && $_GET['i'] == 'add' && !empty($_POST['texte']) && isse
header('Location: admin.php?p=bandeau');
exit;
}
}
//Modification
elseif (!empty($_GET['i']))
{
elseif (!empty($_GET['i'])) {
$id = intval(gpc('i'));
if (!empty($_POST['texte']) && isset($_POST['color']))
{
if (!empty($_POST['texte']) && isset($_POST['color'])) {
$texte = gpc('texte', 'post');
$color = gpc('color', 'post');
$bdd = new BDD();
@ -41,10 +41,9 @@ elseif (!empty($_GET['i']))
$template->assign('mod', $req);
$template->assign('tableau', $reqTT);
$template->assign('id', $id);
}
}
//Demande de suppression
elseif (!empty($_GET['d']))
{
elseif (!empty($_GET['d'])) {
$id = intval(gpc('d'));
$bdd = new BDD();
$bdd->query("DELETE FROM $table_infoshead WHERE id = $id;");
@ -52,17 +51,14 @@ elseif (!empty($_GET['d']))
header('Location: admin.php?p=bandeau');
exit;
}
}
//Demande de mise à jour du cache
elseif (isset($_GET['actuCache']))
{
elseif (isset($_GET['actuCache'])) {
Cache::del('headerNB');
header('Location: admin.php?p=bandeau');
exit;
}
else
{
} else {
//Récupération des lignes du bandeau
$bdd = new BDD();
$req = $bdd->query("SELECT * FROM $table_infoshead ORDER BY id ASC;");
@ -70,5 +66,4 @@ else
$template->assign('tableau', $req);
$template->assign('id', "add");
}
?>
}

View file

@ -1,12 +1,16 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
if (!empty($_POST["req"]))
if (!empty($_POST["req"])) {
$req = stripslashes(gpc("req", "post"));
elseif (!empty($_GET["req"]))
} elseif (!empty($_GET["req"])) {
$req = gpc("req");
else
} else {
$req = "SHOW TABLES;";
}
$bdd = new BDD();
$template->assign("reponses", $bdd->query($req));
@ -14,9 +18,9 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
$template->assign("affected", $bdd->affected());
$bdd->deconnexion();
if (preg_match("#show tables#i", $req))
if (preg_match("#show tables#i", $req)) {
$template->assign("lien", "SELECT * FROM ");
}
$pagea = 'bdd';
$titre = 'Administration de la base de données';
?>

View file

@ -1,10 +1,12 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'demarrage';
$titre = 'Page de démarrage';
if (!empty($_GET['i']) && $_GET['i'] == 'add' && !empty($_POST['contenu']) && isset($_POST['titre']))
{
if (!empty($_GET['i']) && $_GET['i'] == 'add' && !empty($_POST['contenu']) && isset($_POST['titre'])) {
$titre = gpc('titre', 'post');
$contenu = gpc('contenu', 'post');
$time = time();
@ -16,12 +18,9 @@ if (!empty($_GET['i']) && $_GET['i'] == 'add' && !empty($_POST['contenu']) && is
header('Location: admin.php?p=demarrage');
exit;
}
elseif (!empty($_GET['i']))
{
} elseif (!empty($_GET['i'])) {
$id = intval(gpc('i'));
if (!empty($_POST['contenu']) && isset($_POST['titre']))
{
if (!empty($_POST['contenu']) && isset($_POST['titre'])) {
$titre = gpc('titre', 'post');
$texte = gpc('contenu', 'post');
$time = time();
@ -29,10 +28,11 @@ elseif (!empty($_GET['i']))
$bdd = new BDD();
$bdd->escape($titre);
$bdd->escape($texte);
if (!empty($reset))
if (!empty($reset)) {
$bdd->query("UPDATE $table_messages_demarrage SET contenu = '$texte', titre = '$titre', time = $time WHERE id = $id;");
else
} else {
$bdd->query("UPDATE $table_messages_demarrage SET contenu = '$texte', titre = '$titre' WHERE id = $id;");
}
$bdd->deconnexion();
header('Location: admin.php?p=demarrage');
@ -43,10 +43,9 @@ elseif (!empty($_GET['i']))
$template->assign('tableau', $bdd->query("SELECT * FROM $table_messages_demarrage;"));
$bdd->deconnexion();
$template->assign('id', $id);
}
}
//Suppression d'un message
elseif (!empty($_GET['d']))
{
elseif (!empty($_GET['d'])) {
$id = intval(gpc('d'));
$bdd = new BDD();
$bdd->query("DELETE FROM $table_messages_demarrage WHERE id = '$id';");
@ -54,20 +53,16 @@ elseif (!empty($_GET['d']))
header('Location: admin.php?p=demarrage');
exit;
}
}
//Demande de mise à jour du cache
elseif (isset($_GET['actuCache']))
{
elseif (isset($_GET['actuCache'])) {
Cache::del('headerNB');
header('Location: admin.php?p=demarrage');
exit;
}
else
{
} else {
$bdd = new BDD();
$template->assign('tableau', $bdd->query("SELECT * FROM $table_messages_demarrage;"));
$bdd->deconnexion();
$template->assign('id', 'add');
}
?>
}

View file

@ -1,23 +1,32 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'vflotte';
$titre = 'Vérification flottes';
//Vérification des flottes
if (!isset($_GET['ceil'])) $_GET['ceil'] = 5000;
if (!isset($_GET['ceil'])) {
$_GET['ceil'] = 5000;
}
$bdd = new BDD();
$res = $bdd->query("SELECT * FROM `$table_flottes` ORDER BY `start_time` DESC");
$bdd->deconnexion();
$tableau = array();
if (isset($resultat))
foreach($resultat as $res) {
if (isset($resultat)) {
foreach ($resultat as $res) {
$user_source = infoPlan($resultat['end_galaxie'], $resultat['end_ss'], $resultat['end_position'], 'id_user');
if ($resultat['contenu_metal'] + $resultat['contenu_cristal'] + $resultat['contenu_hydrogene'] >= $_GET['ceil']) $color = 'FF0000';
elseif ($user_source != $resultat['id_user']) $color = 'DFBF00';
else $color = false;
if ($resultat['contenu_metal'] + $resultat['contenu_cristal'] + $resultat['contenu_hydrogene'] >= $_GET['ceil']) {
$color = 'FF0000';
} elseif ($user_source != $resultat['id_user']) {
$color = 'DFBF00';
} else {
$color = false;
}
$tableau[] = array(trouvNom($user_source), trouvNom($resultat['id_user']), infoPlan($resultat['start_galaxie'], $resultat['start_ss'], $resultat['start_position'], 'nom_planete'), '['.$resultat['start_galaxie'].':'.$resultat['start_ss'].':'.$resultat['start_position'].']', infoPlan($resultat['end_galaxie'], $resultat['end_ss'], $resultat['end_position'], 'nom_planete'), '['.$resultat['end_galaxie'].':'.$resultat['end_ss'].':'.$resultat['end_position'].']', $resultat['start_time'], '<acronym title="!!!Détail vaisseaux">'.$resultat['nb_vais'].'</acronym>', $resultat['vitesse'], $resultat['contenu_metal'], $resultat['contenu_cristal'], $resultat['contenu_hydrogene'], $color);
}
}
$template->assign('flottes', $tableau);
?>

View file

@ -1,30 +1,27 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$titre = "Création d'inscription";
$pagea = "inscription";
if (!empty($_POST["HB_pseudo"]) && !empty($_POST["race"]))
{
if (empty($_POST["HB_conf"]) && empty($_POST["HB_mdp"]))
if (!empty($_POST["HB_pseudo"]) && !empty($_POST["race"])) {
if (empty($_POST["HB_conf"]) && empty($_POST["HB_mdp"])) {
$_POST["HB_mdp"] = $_POST["HB_conf"] = gen_mdp(9);
}
if ($_POST['HB_conf'] == $_POST['HB_mdp'] && !empty($_POST['HB_mdp']))
{
if ($_POST['HB_conf'] == $_POST['HB_mdp'] && !empty($_POST['HB_mdp'])) {
$_POST['HB_mdp'] = cxor(gpc("HB_mdp", "post"), sha1(gpc("HB_pseudo", "post").'£'.gpc("race", "post")));
$cds = sha1(gpc("HB_pseudo", "post").'$'.gpc("race", "post").'£'.gpc("HB_mdp", "post").'#'.gpc("HB_mail", "post").'ß'.time().'Ó'.$_SERVER['HTTP_USER_AGENT'].'♀☻'.$_SERVER['REMOTE_ADDR'].gpc("HB_placement", "post"));
if (empty($_POST['mailler']))
if (empty($_POST['mailler'])) {
erreur('MDP: <em>'.gpc("HB_conf", "post").'</em><br />URL : <a href="?p=njoueur&amp;nom='.gpc("HB_pseudo", "post").'&amp;race='.gpc("race", "post").'&amp;mdp='.strhex(gpc("HB_mdp", "post")).'&amp;mail='.gpc("HB_mail", "post").'&amp;ti='.time().'&amp;placement='.gpc("HB_placement", "post").'&amp;cds='.$cds.'">Lien</a><br /><br />L\'inscription doit avoir lieu par vous même en raison des procédures de sécurités !', "white");
else
{
if (send_mail(gpc("HB_mail", "post"), "Halo-Battle :: Inscription sur le serveur ".$VAR['serveur_name'], "Bonjour ".gpc("HB_pseudo", "post")." et bienvenue dans l'univers d'Halo-Battle !\n\nNous sommes ravi de vous annoncer qu'un opérateur vient de vous créer un compte sur le serveur ".$VAR['serveur_name'].".\n\nVoici le mot de passe qui vous servira à vous connecter à ce serveur : ".gpc("HB_conf", "post")."\n\nA bientôt,\nLe staff de Halo-Battle"))
{
} else {
if (send_mail(gpc("HB_mail", "post"), "Halo-Battle :: Inscription sur le serveur ".$VAR['serveur_name'], "Bonjour ".gpc("HB_pseudo", "post")." et bienvenue dans l'univers d'Halo-Battle !\n\nNous sommes ravi de vous annoncer qu'un opérateur vient de vous créer un compte sur le serveur ".$VAR['serveur_name'].".\n\nVoici le mot de passe qui vous servira à vous connecter à ce serveur : ".gpc("HB_conf", "post")."\n\nA bientôt,\nLe staff de Halo-Battle")) {
}
header('Location: admin.php?p=njoueur&nom='.gpc("HB_pseudo", "post").'&race='.gpc("race", "post").'&mdp='.strhex(gpc("HB_mdp", "post")).'&mail='.gpc("HB_mail", "post").'&ti='.time().'&placement='.gpc("HB_placement", "post").'&cds='.$cds);
}
}
else
} else {
erreur('Mot de passe incorrect !');
}
}
?>

View file

@ -1,16 +1,19 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'vip';
$titre = 'Vérification IP';
$timelimit = date('Y-m-d', mktime(0, 0, 0, date("m"), date("d"), date("Y"))); //2008-06-17 18:15:00
$page = gpc('v');
if (empty($page) || !is_numeric($page))
if (empty($page) || !is_numeric($page)) {
$page = 0;
}
$act = gpc('act');
if ($act == 'multiok')
{
if ($act == 'multiok') {
$bdd = new BDD();
$user = intval(gpc('util'));
$bdd->query("UPDATE $table_user SET multi = '1' WHERE id = ".$user.";");
@ -21,41 +24,40 @@ if ($act == 'multiok')
$trace = 'absent pour plus de rapidité';
$bdd = new BDD();
if (isset($_GET['ip']))
{
if (isset($_GET['ip'])) {
$req = $bdd->query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE ip = '".gpc('ip')."' ORDER BY ip ASC;");
$trace = gethostbyaddr($req[0]['ip']);
}
elseif (isset($_GET['util']) && isset($_GET['comp']))
} elseif (isset($_GET['util']) && isset($_GET['comp'])) {
$req = $bdd->query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE id_util = ".intval(gpc('util'))." OR id_util = ".intval(gpc('comp'))." ORDER BY ip ASC;");
elseif (isset($_GET['util']))
} elseif (isset($_GET['util'])) {
$req = $bdd->query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE id_util = '".intval(gpc('util'))."' ORDER BY ip ASC;");
elseif (isset($_GET['tri']))
} elseif (isset($_GET['tri'])) {
$req = $bdd->query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id ORDER BY ".gpc('tri')." ASC;");
else
} else {
$req = $bdd->query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE R.time > '$timelimit 00:00:00' ORDER BY R.ip ASC LIMIT ".($page*75).",75;");
}
//SELECT last_ip,COUNT(*) FROM user GROUP BY last_ip HAVING COUNT(*)>1
$nbpage = $bdd->unique_query("SELECT COUNT(id) AS nb FROM $table_registre_identification WHERE time > '$timelimit 00:00:00';");
$bdd->deconnexion();
$anc = array('ip' => 0, 'id_util' => 0);
$tableau = array();
if (isset($resultat))
foreach($req as $resultat)
{
if ($resultat['mv'] == 3)
if (isset($resultat)) {
foreach ($req as $resultat) {
if ($resultat['mv'] == 3) {
$color = 'DFBF00';
elseif ($resultat['multi'] == 1 && $anc['ip'] == $resultat['ip'] && $anc['id_util'] != $resultat['id_util'])
} elseif ($resultat['multi'] == 1 && $anc['ip'] == $resultat['ip'] && $anc['id_util'] != $resultat['id_util']) {
$color = 'EE66EE';
elseif ($anc['ip'] == $resultat['ip'] && $anc['id_util'] != $resultat['id_util'])
} elseif ($anc['ip'] == $resultat['ip'] && $anc['id_util'] != $resultat['id_util']) {
$color = 'FF0000';
else
} else {
$color = false;
}
$tableau[] = array($resultat['ip'], $trace, $resultat['id_util'], $resultat['pseudo'], $resultat['time'], $resultat['mv'], $color);
$anc = $resultat;
}
}
$template->assign('ips', $tableau);
$template->assign('numpage', $page);
$template->assign('nbpage', floor($nbpage['nb']/75));
?>

View file

@ -1,20 +1,23 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'print';
$titre = 'V&eacute;rification joueur';
$template->assign('linkpage', 'vjoueurs');
//Changement du nom d'utilisateur
if (!empty($_GET['id']) && !empty($_POST['key']) && !empty($_POST['mod']) && $_POST['key'] == 'pseudo')
{
if (!empty($_GET['id']) && !empty($_POST['key']) && !empty($_POST['mod']) && $_POST['key'] == 'pseudo') {
$id_plan = intval(gpc('id'));
$mod = gpc('mod', 'post');
$liste = "abcdefghijklmnopqrstuvwxyz./!*123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$code = '';
while(strlen($code) <= 8)
$code .= $liste[rand(0,64)];
while (strlen($code) <= 8) {
$code .= $liste[rand(0, 64)];
}
$mdp = mdp($mod, $code);
@ -22,19 +25,20 @@ if (!empty($_GET['id']) && !empty($_POST['key']) && !empty($_POST['mod']) && $_P
$reqMail = $bdd->unique_query("SELECT mail FROM $table_user WHERE id = $id_plan;");
$bdd->escape($mod);
$reqPseudo = $bdd->query("SELECT mail FROM $table_user WHERE pseudo = '$mod';");
if ($reqPseudo !== NULL)
if ($reqPseudo !== null) {
erreur('Nom d\'utilisateur d&eacute;jà utilis&eacute;. Impossible de faire le changement !');
}
$bdd->query("UPDATE $table_user SET pseudo = '$mod', mdp = '".$mdp[0]."', mdp_var = '".$mdp[1]."' WHERE id = $id_plan;");
$bdd->deconnexion();
if(send_mail($reqMail['mail'], "Nouveau nom d'utilisateur", "Bonjour ".$mod.",\n\nVous recevez ce mail suite au changement de votre nom d'utilisateur sur le serveur ".$VAR["serveur_name"].".\nCe changement a été effectué par un opérateur de la galaxie, sur votre demande ou dans le cadre des règles du jeu.\nDe plus, pour votre sécurité, un nouveau mot de passe vous a été automatiquement attribué.\n\nVos nouvelles informations personnelles sont les suivantes :\n\tNom d'utilisateur : ".$mod."\n\tMot de passe : '.$code.'\n\nVotre ancien nom d'utilisateur et mot de passe ne sont plus valide à partir de maintenant et vous devez utiliser les données ci-dessus pour vous connecter.\n\nSi vous rencontrez des problèmes suites à ce changement, n'hésitez pas à contacter l'opérateur qui suivit votre demande.\n\nPour votre sécurité, nous vous rappelons qu'il est dangeureux de conserver un mail contenant des données personnelles. Pensez donc à supprimer ce mail une fois que vous vous serez connecté au jeu.\n\nL'équipe d'Halo-Battle"))
if (send_mail($reqMail['mail'], "Nouveau nom d'utilisateur", "Bonjour ".$mod.",\n\nVous recevez ce mail suite au changement de votre nom d'utilisateur sur le serveur ".$VAR["serveur_name"].".\nCe changement a été effectué par un opérateur de la galaxie, sur votre demande ou dans le cadre des règles du jeu.\nDe plus, pour votre sécurité, un nouveau mot de passe vous a été automatiquement attribué.\n\nVos nouvelles informations personnelles sont les suivantes :\n\tNom d'utilisateur : ".$mod."\n\tMot de passe : '.$code.'\n\nVotre ancien nom d'utilisateur et mot de passe ne sont plus valide à partir de maintenant et vous devez utiliser les données ci-dessus pour vous connecter.\n\nSi vous rencontrez des problèmes suites à ce changement, n'hésitez pas à contacter l'opérateur qui suivit votre demande.\n\nPour votre sécurité, nous vous rappelons qu'il est dangeureux de conserver un mail contenant des données personnelles. Pensez donc à supprimer ce mail une fois que vous vous serez connecté au jeu.\n\nL'équipe d'Halo-Battle")) {
erreur("Nom d'utilisateur mis à jour avec succès. Un mail a &eacute;t&eacute; envoy&eacute; à l'utilisateur contenant un nouveau mot de passe.", "green");
else
} else {
erreur("Une erreur est survenue lors de l'envoie du mail.");
}
}
//Changement du mot de passe
elseif (!empty($_GET['id']) && !empty($_POST['key']) && !empty($_POST['mod']) && $_POST['key'] == 'mdp')
{
elseif (!empty($_GET['id']) && !empty($_POST['key']) && !empty($_POST['mod']) && $_POST['key'] == 'mdp') {
$id_plan = intval(gpc('id'));
$mod = gpc('mod', 'post');
@ -46,9 +50,7 @@ elseif (!empty($_GET['id']) && !empty($_POST['key']) && !empty($_POST['mod']) &&
$bdd->deconnexion();
erreur("Mot de passe changé avec succès.<br />Pensez à avertir l'utilisateur de ce changement !", "green");
}
elseif (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id' && $_GET['key'] != 'mdpNOUV' && $_GET['key'] != 'auth_level' && $_GET['key'] != 'mdp_var')
{
} elseif (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id' && $_GET['key'] != 'mdpNOUV' && $_GET['key'] != 'auth_level' && $_GET['key'] != 'mdp_var') {
$pagea = 'print_key';
$id_plan = intval(gpc('id'));
$key = gpc('key');
@ -62,12 +64,9 @@ elseif (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id' && $
$template->assign('type', explode('(', $req['Type']));
$template->assign('idPlan', $id_plan);
$template->assign('key', $key);
}
elseif (!empty($_GET['id']))
{
} elseif (!empty($_GET['id'])) {
$id_plan = intval(gpc('id'));
if (isset($_POST['key']) && isset($_POST['mod']))
{
if (isset($_POST['key']) && isset($_POST['mod'])) {
$key = gpc('key', 'post');
$mod = gpc('mod', 'post');
$bdd = new BDD();
@ -82,9 +81,7 @@ elseif (!empty($_GET['id']))
$template->assign('tableau', $req);
$template->assign('idPlan', $id_plan);
}
elseif (!empty($_GET['name']))
{
} elseif (!empty($_GET['name'])) {
$name = gpc('name');
$bdd = new BDD();
$bdd->escape($name);
@ -92,7 +89,6 @@ elseif (!empty($_GET['name']))
$bdd->deconnexion();
header('Location: admin.php?p=vjoueurs&id='.$req['id']);
exit;
}
else
} else {
$pagea = 'print_choixU';
?>
}

View file

@ -1,25 +1,36 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'mail_liste';
$titre = 'Demandes et problèmes de la galaxie';
$template->assign('linkpage', 'courrier');
if (!empty($_GET['w']) || !empty($_GET['x'])) {
if (!empty($_GET['w'])) $id = $_GET['w'];
else $id = $_GET['x'];
if (!empty($_GET['w'])) {
$id = $_GET['w'];
} else {
$id = $_GET['x'];
}
$bdd = new BDD();
$bdd->escape($id);
$req = $bdd->unique_query("SELECT $table_user.pseudo, $table_ope_mail.statut, $table_ope_mail.time, $table_ope_mail.titre, $table_ope_mail.contenu, $table_ope_mail.id FROM $table_ope_mail INNER JOIN $table_user ON $table_user.id = $table_ope_mail.id_user WHERE $table_ope_mail.id = '$id';");
if ($req['statut'] >= 6) $bdd->query("UPDATE $table_ope_mail SET statut = '0' WHERE id = '$id';");
else $bdd->query("UPDATE $table_ope_mail SET statut = statut + 1 WHERE id = '$id';");
if ($req['statut'] >= 6) {
$bdd->query("UPDATE $table_ope_mail SET statut = '0' WHERE id = '$id';");
} else {
$bdd->query("UPDATE $table_ope_mail SET statut = statut + 1 WHERE id = '$id';");
}
$bdd->deconnexion();
if (isset($_GET['x'])) header('Location: admin.php?p=courrier&v='.$id);
else header('Location: admin.php?p=courrier');
if (isset($_GET['x'])) {
header('Location: admin.php?p=courrier&v='.$id);
} else {
header('Location: admin.php?p=courrier');
}
exit;
}
elseif (!empty($_GET['v'])) {
} elseif (!empty($_GET['v'])) {
$id = $_GET['v'];
$bdd = new BDD();
$bdd->escape($id);
@ -29,8 +40,7 @@ elseif (!empty($_GET['v'])) {
$template->assign('req', $req);
$template->assign('id', $id);
$pagea = 'mail_view';
}
elseif (!empty($_GET['d']) && $sess->level >= 5) {
} elseif (!empty($_GET['d']) && $sess->level >= 5) {
$id = $_GET['d'];
$bdd = new BDD();
$bdd->escape($id);
@ -39,11 +49,9 @@ elseif (!empty($_GET['d']) && $sess->level >= 5) {
header('Location: admin.php?p=courrier');
exit;
}
else {
} else {
$bdd = new BDD();
$req = $bdd->query("SELECT $table_user.pseudo, $table_ope_mail.statut, $table_ope_mail.time, $table_ope_mail.titre, $table_ope_mail.contenu, $table_ope_mail.id FROM $table_ope_mail INNER JOIN $table_user ON $table_user.id = $table_ope_mail.id_user ORDER BY $table_ope_mail.time DESC;");
$bdd->deconnexion();
$template->assign('mails', $req);
}
?>

View file

@ -1,5 +1,8 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'mail_mass';
$titre = 'Envoie de mail en masse aux joueurs de la galaxie';
@ -12,8 +15,7 @@ if (!empty($_POST['sujet']) || !empty($_POST['message'])) {
$users = $bdd->query("SELECT pseudo, mail FROM $table_user;");
$bdd->deconnexion();
foreach($users as $user)
{
foreach ($users as $user) {
$messageJ = str_replace('$pseudo', $user["pseudo"], $message);
send_mail($user["mail"], $sujet, $messageJ);
//print 'Mail : '.$user["mail"].' ; sujet : '.$sujet.' ; message : '.$messageJ.'<br />';
@ -21,4 +23,3 @@ if (!empty($_POST['sujet']) || !empty($_POST['message'])) {
erreur("Tous les mails ont été envoyés avec succès.", "green");
}
?>

View file

@ -1,12 +1,14 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'print';
$titre = 'Vérification planète';
$template->assign('linkpage', 'vplanetes');
if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] == 'hash_planete')
{
if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] == 'hash_planete') {
$id_plan = intval(gpc('id'));
$bdd = new BDD();
$bdd->query("UPDATE $table_planete SET hash_planete = SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)) WHERE id = $id_plan;");
@ -15,9 +17,7 @@ if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] == 'hash_planete
$bdd->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_plan);
}
elseif (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id')
{
} elseif (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id') {
$pagea = 'print_key';
$id_plan = intval(gpc('id'));
$key = intval(gpc('key'));
@ -30,12 +30,9 @@ elseif (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id')
$template->assign('type', explode('(', $req['Type']));
$template->assign('idPlan', $id_plan);
$template->assign('key', $_GET['key']);
}
elseif (!empty($_GET['id']))
{
} elseif (!empty($_GET['id'])) {
$id_plan = intval(gpc('id'));
if (isset($_POST['key']) && isset($_POST['mod']) && $_POST['key'] != 'id')
{
if (isset($_POST['key']) && isset($_POST['mod']) && $_POST['key'] != 'id') {
$key = gpc('key', 'post');
$mod = gpc('mod', 'post');
$bdd = new BDD();
@ -49,9 +46,7 @@ elseif (!empty($_GET['id']))
$bdd->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_plan);
}
elseif (isset($_GET['amas']) && isset($_GET['ss']) && !empty($_GET['pos']))
{
} elseif (isset($_GET['amas']) && isset($_GET['ss']) && !empty($_GET['pos'])) {
$amas = intval(gpc('amas'));
$ss = intval(gpc('ss'));
$pos = intval(gpc('pos'));
@ -61,9 +56,7 @@ elseif (isset($_GET['amas']) && isset($_GET['ss']) && !empty($_GET['pos']))
$bdd->deconnexion();
header('Location: '.$VAR["menu"]["vplanetes"].'&id='.$req['id']);
exit;
}
elseif (isset($_GET['format']))
{
} elseif (isset($_GET['format'])) {
preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\]?$#', gpc('format'), $position);
$bdd = new BDD();
@ -71,7 +64,6 @@ elseif (isset($_GET['format']))
$bdd->deconnexion();
header('Location: '.$VAR["menu"]["vplanetes"].'&id='.$req['id']);
exit;
}
else
} else {
$pagea = 'print_choixP';
?>
}

View file

@ -1,34 +1,35 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$titre = 'Prise de contrôle d\'un joueur';
$pagea = 'erreur';
$template->assign('linkpage', 'cjoueurs');
if ($SESS->level >= 5 && !empty($_GET['id']))
{
if ($SESS->level >= 5 && !empty($_GET['id'])) {
$name = intval(gpc('id'));
$bdd = new BDD();
$req = $bdd->unique_query("SELECT id, pseudo, auth_level FROM $table_user WHERE id = $name;");
$bdd->deconnexion();
if ($req['auth_level'] >= $SESS->level)
if ($req['auth_level'] >= $SESS->level) {
$template->assign('message', 'Vous ne pouvez pas prendre le contrôle de cet utilisateur !');
else
{
} else {
$bdd->reconnexion();
$reqPl = $bdd->unique_query("SELECT id, nom_planete FROM $table_planete WHERE id_user = '".$req['id']."' LIMIT 1;");
$bdd->deconnexion();
if (empty($SESS->values['souscontrole'])) $SESS->values['souscontrole'] = array($SESS->values['id'], $SESS->values['idPlan']);
if (empty($SESS->values['souscontrole'])) {
$SESS->values['souscontrole'] = array($SESS->values['id'], $SESS->values['idPlan']);
}
$SESS->values['id'] = $req['id'];
$SESS->values['idPlan'] = $reqPl['id'];
$SESS->put();
$template->assign('message', 'Vous contrôlez maintenant le joueur '.$req['pseudo'].'.<br />Planète '.$reqPl['nom_planete'].' sélectionnée !');
}
}
elseif (!empty($_GET['name']))
{
} elseif (!empty($_GET['name'])) {
$name = gpc('name');
$bdd = new BDD();
$bdd->escape($name);
@ -36,7 +37,6 @@ elseif (!empty($_GET['name']))
$bdd->deconnexion();
header('Location: admin.php?p=cjoueurs&id='.$req['id']);
exit;
}
else
} else {
$pagea = 'print_choixU';
?>
}

View file

@ -1,16 +1,19 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'vide';
$titre = 'Mise à jour de la liste des proxys';
function traiterfichier($uri, &$list)
{
$fp = fopen($uri, "r");
while (!feof($fp))
{
while (!feof($fp)) {
$buffer = fgets($fp);
if (preg_match("#^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}#", $buffer, $match))
if (preg_match("#^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}#", $buffer, $match)) {
$list[] = $match[0];
}
//$list[] = substr($buffer, 0, strpos($buffer, ":"));
}
fclose($fp);
@ -39,4 +42,3 @@ $bdd->query("INSERT INTO proxy_list VALUES ('".implode("'),('", $list)."');");
$bdd->deconnexion();
erreur("Procédure terminée, ".count($list)." proxys listés.", "green");
?>

View file

@ -1,12 +1,14 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'rapports';
$titre = 'Afficher les rapports d\'un joueur';
$template->assign('linkpage', 'vrapports');
if (!empty($_GET['id']))
{
if (!empty($_GET['id'])) {
$id_user = intval(gpc('id'));
$bdd = new BDD();
$req = $bdd->query("SELECT * FROM $table_mail WHERE destinataire = $id_user AND expediteur = '' ORDER BY temps DESC;");
@ -15,8 +17,7 @@ if (!empty($_GET['id']))
$template->assign('tableau', $req);
$template->assign('idPlan', $id_user);
$template->assign('script', '<script>for (j=0; document.getElementsByName(j)[0]; j++) hide(document.getElementsByName(j)[0]);</script>');
}
elseif (!empty($_GET['name'])) {
} elseif (!empty($_GET['name'])) {
$name = gpc('name');
$bdd = new BDD();
$bdd->escape($name);
@ -25,7 +26,6 @@ elseif (!empty($_GET['name'])) {
header('Location: admin.php?p=vrapports&id='.$req['id']);
exit;
}
else
} else {
$pagea = 'print_choixU';
?>
}

View file

@ -1,36 +1,33 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$titre = 'Sanction joueur';
$pagea = 'erreur';
$template->assign('linkpage', 'sjoueurs');
if (!empty($_GET['id']) && !empty($_GET['sanc']) && (!empty($_GET['raisonmv']) || $_GET['sanc'] < 0))
{
if (!empty($_GET['id']) && !empty($_GET['sanc']) && (!empty($_GET['raisonmv']) || $_GET['sanc'] < 0)) {
$raisonmv = gpc('raisonmv');
$id_plan = intval(gpc('id'));
$sanc = gpc('sanc');
$bdd = new BDD();
$bdd->escape($raisonmv);
if ($sanc == 'definitif' || $sanc== 'définitif' || $sanc == 'd')
{
if ($sanc == 'definitif' || $sanc== 'définitif' || $sanc == 'd') {
$bdd->query("UPDATE $table_user SET mv = '3', raisonmv = '$raisonmv', operateurmv = $id_user WHERE id = $id_plan;");
$bdd->deconnexion();
$template->assign('message', 'Le joueur a été banni définitivement !');
}
else
{
} else {
$time = time() + $sanc * 86400 - 259200;
$bdd->query("UPDATE $table_user SET mv = '2', last_visite = $time, raisonmv = '$raisonmv', operateurmv = $id_user WHERE id = $id_plan;");
$bdd->deconnexion();
$template->assign('message', 'Le joueur a été placé en mode vacances !');
}
}
elseif (!empty($_GET['name']) && !empty($_GET['sanc']) && isset($_GET['raisonmv']))
{
} elseif (!empty($_GET['name']) && !empty($_GET['sanc']) && isset($_GET['raisonmv'])) {
$name = gpc('name');
$bdd = new BDD();
$bdd->escape($name);
@ -39,7 +36,6 @@ elseif (!empty($_GET['name']) && !empty($_GET['sanc']) && isset($_GET['raisonmv'
header('Location: '.$VAR["menu"]["sjoueur"].'&sanc='.gpc('sanc').'&raisonmv='.gpc('raisonmv').'&id='.$req['id']);
exit;
}
else
} else {
$pagea = 'sanctionU_choix';
?>
}

View file

@ -1,5 +1,8 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'print';
$titre = 'Vue des futurs alliances';
@ -21,8 +24,7 @@ if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id') {
$template->assign('type', explode('(', $req['Type']));
$template->assign('idPlan', $id_plan);
$template->assign('key', $_GET['key']);
}
elseif (!empty($_GET['id'])) {
} elseif (!empty($_GET['id'])) {
$id_plan = $_GET['id'];
if (isset($_POST['key']) && isset($_POST['mod'])) {
$key = $_POST['key'];
@ -38,8 +40,7 @@ elseif (!empty($_GET['id'])) {
$chapeau->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_plan);
}
elseif (!empty($_GET['name'])) {
} elseif (!empty($_GET['name'])) {
$name = $_GET['name'];
$chapeau->connexion();
$chapeau->escape($name);
@ -47,8 +48,6 @@ elseif (!empty($_GET['name'])) {
$chapeau->deconnexion();
header('Location: admin.php?p=valliances&id='.$req['id']);
exit;
}
else {
} else {
$pagea = 'print_choixU';
}
?>

View file

@ -1,32 +1,29 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$titre = '!!! Supprimer joueur !!!';
$pagea = 'erreur';
$template->assign('linkpage', 'djoueurs');
if ($SESS->level >= 5 && !empty($_GET['id']))
{
if ($SESS->level >= 5 && !empty($_GET['id'])) {
$id = intval(gpc('id'));
$bdd = new BDD();
$req = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id;");
if ($req && $req["auth_level"] < 4)
{
if ($req && $req["auth_level"] < 4) {
$bdd->query("DELETE FROM $table_mail WHERE destinataire = $id;");
$bdd->query("DELETE FROM $table_user WHERE id = $id;");
$bdd->query("DELETE FROM $table_flottes WHERE id_user = $id;");
$bdd->query("DELETE FROM $table_planete WHERE id_user = $id;");
$bdd->deconnexion();
$template->assign('message', 'Le joueur '.$id.' ('.$req['pseudo'].') a été supprimé du jeu ainsi que toutes les données le concernant !<br />Vérifiez qu\'il ne soit pas fondateur d\'une alliance ou d\'une mission groupée.');
}
else
{
} else {
$bdd->deconnexion();
$template->assign('message', 'Le joueur n\'a pas été trouvé ou vous n\'avez pas les permissions de le supprimer !');
}
}
elseif (!empty($_GET['name']))
{
} elseif (!empty($_GET['name'])) {
$name = gpc('name');
$bdd = new BDD();
$bdd->escape($name);
@ -35,7 +32,6 @@ elseif (!empty($_GET['name']))
header('Location: '.$VAR["menu"]["djoueurs"].'&id='.$req['id']);
exit;
}
else
} else {
$pagea = 'print_choixU';
?>
}

View file

@ -1,11 +1,13 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'version';
$titre = 'Versions';
//Ajout d'une version
if (!empty($_GET['i']) && $_GET['i'] == 'add' && $SESS->level >= 7 && !empty($_POST['version']) && !empty($_POST['contenu']))
{
if (!empty($_GET['i']) && $_GET['i'] == 'add' && $SESS->level >= 7 && !empty($_POST['version']) && !empty($_POST['contenu'])) {
$version = gpc('version', 'post');
$contenu = gpc('contenu', 'post');
$temps = time();
@ -19,10 +21,9 @@ if (!empty($_GET['i']) && $_GET['i'] == 'add' && $SESS->level >= 7 && !empty($_P
header('Location: admin.php?p=version');
exit;
}
}
//Modification d'une version
elseif (!empty($_GET['i']))
{
elseif (!empty($_GET['i'])) {
$id = intval(gpc('i'));
if (!empty($_POST['version']) && !empty($_POST['contenu'])) {
$version = gpc('version', 'post');
@ -43,8 +44,7 @@ elseif (!empty($_GET['i']))
$template->assign('id', $id);
}
//Suppression d'une version
elseif (!empty($_GET['d']) && $SESS->level >= 7)
{
elseif (!empty($_GET['d']) && $SESS->level >= 7) {
$id = intval(gpc('d'));
$bdd = new BDD();
$bdd->query("DELETE FROM $table_version WHERE id = $id;");
@ -52,20 +52,16 @@ elseif (!empty($_GET['d']) && $SESS->level >= 7)
header('Location: admin.php?p=version');
exit;
}
}
//Demande de mise à jour du cache
elseif (isset($_GET['actuCache']))
{
elseif (isset($_GET['actuCache'])) {
Cache::del('versionsDATA');
header('Location: admin.php?p=version');
exit;
}
else
{
} else {
$bdd = new BDD();
$template->assign('tableau', $bdd->query("SELECT * FROM $table_version ORDER BY temps DESC;"));
$bdd->deconnexion();
$template->assign('id', 'add');
}
?>
}

View file

@ -1,8 +1,11 @@
<?php
if(!defined('ONYX')) exit;
if (!defined('ONYX')) {
exit;
}
if (empty($sess->values["connected"]) && !defined("xCSRF"))
if (empty($sess->values["connected"]) && !defined("xCSRF")) {
define("xCSRF", true);
}
//A passer a True pour dev tranquillou (pas d'envois de mail, pas de https,...)
define("DEV", getenv("DEV"));
@ -21,8 +24,7 @@ $SESS = new Session();
//Extraction des données en cache pour le header, sinon création du cache
$header = Cache::read("headerNB");
if (empty($header))
{
if (empty($header)) {
$bdd = new BDD();
$nbcovie = $bdd->unique_query("SELECT COUNT(id) AS covenants FROM $table_user WHERE race = 'covenant';");
@ -49,15 +51,18 @@ define("debut_d_univers", true); //Constante pour savoir si l'on offre ou pas un
define("nb_signatures", 4);
//Si l'on est pas connecté, on garde le header pour comparer lors de la connexion
if (!empty($sess->values["connected"]))
if (!empty($sess->values["connected"])) {
unset($header);
}
//Evite les attaques CSRF
if (DEV) { $protocole = "http"; } else { $protocole = "https"; }
if (!empty($_SERVER["HTTP_REFERER"]) && !(preg_match('#^'.$protocole.'://'.$_SERVER['HTTP_HOST'].'#', $_SERVER["HTTP_REFERER"]) && defined("xCSRF")))
{
elog("Possibilité d'attaque CSRF\n".var_export($_REQUEST, TRUE), 2);
if (DEV) {
$protocole = "http";
} else {
$protocole = "https";
}
if (!empty($_SERVER["HTTP_REFERER"]) && !(preg_match('#^'.$protocole.'://'.$_SERVER['HTTP_HOST'].'#', $_SERVER["HTTP_REFERER"]) && defined("xCSRF"))) {
elog("Possibilité d'attaque CSRF\n".var_export($_REQUEST, true), 2);
unset($_POST, $_GET);
$_GET = $_POST = array();
}
?>

View file

@ -1,8 +1,9 @@
<?php
if(!defined('ONYX')) exit;
if (!defined('ONYX')) {
exit;
}
if (!defined('INDEX') || INDEX != 2)
{
if (!defined('INDEX') || INDEX != 2) {
//On inclut les classes de données
require_once("Class/Donnees/interface.php");
require_once("Class/Donnees/alliances_batiments.php");
@ -30,4 +31,3 @@ $caserneVAR = array("soldat1", "soldat2", "soldat3", "soldat4", "sniper", "spart
$spatialVAR = array("vaisseau_1", "vaisseau_2", "vaisseau_3", "vaisseau_4", "vaisseau_5", "vaisseau_6", "vaisseau_7", "vaisseau_8", "vaisseau_9", "vaisseau_10", "vaisseau_11", "vaisseau_12", "vaisseau_13", "vaisseau_14");
$terrestreVAR = 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", "def_6", "def_7", "def_8");
$coeffVAR = array("coeff_mine_m", "coeff_mine_c", "coeff_mine_h", "coeff_centrale_s", "coeff_centrale_f");
?>

View file

@ -1,18 +1,18 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$bdd->reconnexion();
$flottes = $bdd->query("SELECT id FROM $table_flottes WHERE (id_user = ".$planete->id_user." OR end_planete = ".$planete->id." OR id_alliance = ".$planete->id_alliance." OR end_planete = ".$planete->id_alliance.") AND (start_time + end_time) <= ".time()." AND last < ".(time()-10).";");
$bdd->deconnexion();
if (!empty($flottes))
{
foreach($flottes as $flotte)
{
if (!empty($flottes)) {
foreach ($flottes as $flotte) {
$flotte = new Flotte($flotte['id']);
$flotte->check_mission();
}
}
unset($flottes, $flotte);
?>

View file

@ -10,8 +10,11 @@ function trouvNom($id_user)
function linkNom($id_user)
{
if (is_numeric($id_user)) $nom = trouvNom($id_user);
else $id_user = trouvId($id_user);
if (is_numeric($id_user)) {
$nom = trouvNom($id_user);
} else {
$id_user = trouvId($id_user);
}
return '<a href="?p=util&amp;i='.$id_user.'">'.$nom.'</a>';
}
@ -29,9 +32,13 @@ function affTemp($secondes)
{
$heures = intval($secondes/3600);
$minutes = intval($secondes/60-($heures*60));
if ($minutes < 10) $minutes = '0'.$minutes;
if ($minutes < 10) {
$minutes = '0'.$minutes;
}
$seconde = $secondes-($heures*3600)-($minutes*60);
if ($seconde < 10) $seconde = '0'.$seconde;
if ($seconde < 10) {
$seconde = '0'.$seconde;
}
return $heures.':'.$minutes.':'.$seconde;
}
@ -39,7 +46,7 @@ function affTemp($secondes)
function sec($time)
{
$output = '';
$tab = array ('jour' => '86400', 'heure' => '3600', 'minute' => '60', 'seconde' => '1');
$tab = array('jour' => '86400', 'heure' => '3600', 'minute' => '60', 'seconde' => '1');
foreach ($tab as $key => $value) {
$compteur = 0;
while ($time > ($value-1)) {
@ -48,32 +55,40 @@ function sec($time)
}
if ($compteur != 0) {
$output .= $compteur.' '.$key;
if ($compteur > 1) $output .= 's';
if ($value != 1) $output .= ' ';
if ($compteur > 1) {
$output .= 's';
}
if ($value != 1) {
$output .= ' ';
}
}
if (empty($output)) return 'Instantané';
else return $output;
}
if (empty($output)) {
return 'Instantané';
} else {
return $output;
}
}
function txtmission($mission)
{
if ($mission == 0)
if ($mission == 0) {
return 'Stationner';
elseif ($mission == 1)
} elseif ($mission == 1) {
return 'Transporter';
elseif ($mission == 2)
} elseif ($mission == 2) {
return 'Coloniser';
elseif ($mission == 3)
} elseif ($mission == 3) {
return 'Attaquer';
elseif ($mission == 4)
} elseif ($mission == 4) {
return 'Recycler';
elseif ($mission == 5)
} elseif ($mission == 5) {
return 'Espionner';
elseif ($mission == 6)
} elseif ($mission == 6) {
return 'Retour';
else
} else {
return 'Erreur';
}
}
function pillage($metal, $cristal, $hydrogene, $vfm)
@ -84,14 +99,11 @@ function pillage($metal, $cristal, $hydrogene, $vfm)
$somme = $Qm + $Qc + $Qh;
if ($somme < 2)
{
if ($somme < 2) {
$Fm = $metal / 2;
$Fc = $cristal / 2;
$Fh = $hydrogene / 2;
}
else
{
} else {
$Fm = $Qm / $somme * $vfm;
$Fc = $Qc / $somme * $vfm;
$Fh = $Qh / $somme * $vfm;
@ -156,56 +168,57 @@ function erreur($message, $color = "red", $lien = "", $temps = 2500)
{
global $template, $page, $SESS;
if (!empty($page))
if (!empty($page)) {
$template->assign('page', $page);
}
$template->assign('message', $message);
$template->assign('couleur',$color);
$template->assign('couleur', $color);
if (!empty($lien))
$template->assign('scripth','<meta http-equiv="refresh" content="'.($temps/1000).'; url='.$lien.'" />');
if (!empty($lien)) {
$template->assign('scripth', '<meta http-equiv="refresh" content="'.($temps/1000).'; url='.$lien.'" />');
}
//Si le joueur est connecté, on affiche la page d'erreur du jeu, sinon on afficher la page du cms
if (isset($SESS->values['connected']) && $SESS->values['connected'])
if (isset($SESS->values['connected']) && $SESS->values['connected']) {
$template->display('game/erreur.tpl');
else
} else {
$template->display('cms/erreur.tpl');
}
exit;
}
function send_mp($joueur, $titre, $message, $temps = 0, $emetteur = 0, $type = 0)
{
global $table_mail, $VAR;
if (empty($temps))
if (empty($temps)) {
$temps = time();
}
$mail = false;
if (!is_numeric($joueur))
{
if (!is_numeric($joueur)) {
$joueur = trouvInfoUser($joueur, "pseudo", array("id", "mail", "envoyerMail"));
if (($emetteur == 0 && $joueur["envoyerMail"]& 1) || ($emetteur != 0 && $joueur["envoyerMail"]& 2))
if (($emetteur == 0 && $joueur["envoyerMail"]& 1) || ($emetteur != 0 && $joueur["envoyerMail"]& 2)) {
$mail = $joueur["mail"];
else
} else {
$mail = false;
}
$joueur = $joueur["id"];
}
else
{
} else {
$joueur = trouvInfoUser($joueur, "id", array("id", "mail", "envoyerMail"));
if (($emetteur == 0 && $joueur["envoyerMail"]& 1) || ($emetteur != 0 && $joueur["envoyerMail"]& 2))
if (($emetteur == 0 && $joueur["envoyerMail"]& 1) || ($emetteur != 0 && $joueur["envoyerMail"]& 2)) {
$mail = $joueur["mail"];
else
} else {
$mail = false;
}
$joueur = $joueur["id"];
}
if (!is_numeric($emetteur))
{
if (!is_numeric($emetteur)) {
$emetteur = trouvInfoUser($emetteur, "pseudo", array("id"));
$emetteur = $emetteur['id'];
}
if (!empty($joueur))
{
if (!empty($joueur)) {
$bdd = new BDD();
$bdd->escape($joueur);
$bdd->escape($titre);
@ -213,23 +226,22 @@ function send_mp($joueur, $titre, $message, $temps = 0, $emetteur = 0, $type = 0
$bdd->query("INSERT INTO $table_mail (destinataire, expediteur, type, sujet, contenu, temps) VALUES($joueur, $emetteur, $type, '$titre', '$message', $temps);");
$bdd->deconnexion();
if ($mail)
{
if ($emetteur == 0)
if ($mail) {
if ($emetteur == 0) {
send_mail($mail, "Halo-Battle :: Nouveau rapport", "Bonjour,\n\nVous recevez ce courriel suite à l'arrivée d'un nouveau rapport reçu sur votre compte de jeu du serveur ".$VAR['serveur_name'].". Le rapport concerne : \"".$titre."\". Vous pouvez utiliser le lien suivant pour voir le message ou vous connecter.\n\nhttp://".$_SERVER['HTTP_HOST']."/".$VAR["first_page"].$VAR["menu"]["messages"]."&n=recus\n\nVous pouvez désactiver ses notifications via les options de votre compte dans l'onglet \"notifications\"\n\nA bientôt dans Halo-Battle,\nLe Staff");
else
} else {
send_mail($mail, "Halo-Battle :: Nouveau message privé", "Bonjour,\n\nVous recevez ce courriel suite à l'arrivée d'un nouveau message privé reçu sur votre compte de jeu du serveur ".$VAR['serveur_name'].". Le sujet de ce message est : \"".$titre."\". Vous pouvez utiliser le lien suivant pour voir le message ou vous connecter.\n\nhttp://".$_SERVER['HTTP_HOST']."/".$VAR["first_page"].$VAR["menu"]["messages"]."&n=recus\n\nVous pouvez désactiver ses notifications via les options de votre compte dans l'onglet \"notifications\"\n\nA bientôt dans Halo-Battle,\nLe Staff");
}
}
}
}
function gen_mdp($nbchar)
{
$liste = "abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$code = "";
for($i = 0; $i < $nbchar; $i++)
{
$code .= $liste[rand(0,60)];
for ($i = 0; $i < $nbchar; $i++) {
$code .= $liste[rand(0, 60)];
}
return $code;
@ -237,33 +249,33 @@ function gen_mdp($nbchar)
function check_mdp($mdp, $pseudo = null, $conf=null)
{
if (isset($conf) && $conf !== $mdp)
if (isset($conf) && $conf !== $mdp) {
return "Le mot de passe et sa confirmation sont différent";
elseif (strlen($mdp) < 7)
} elseif (strlen($mdp) < 7) {
return "Mot de passe trop court, il doit faire au moins 7 caractères.";
elseif (ctype_digit($mdp))
} elseif (ctype_digit($mdp)) {
return "Le mot de passe ne doit pas contenir que des chiffres";
elseif (!empty($pseudo) && strpos($mdp, $pseudo))
} elseif (!empty($pseudo) && strpos($mdp, $pseudo)) {
return "Votre mot de passe ne doit pas être une partie de votre nom d'utilisateur";
elseif (!empty($pseudo) && strpos($pseudo, $mdp))
} elseif (!empty($pseudo) && strpos($pseudo, $mdp)) {
return "Votre nom d'utilisateur ne doit pas être une partie de votre mot de passe";
elseif (strpos($mdp, "halo"))
} elseif (strpos($mdp, "halo")) {
return "Le mot de passe ne peut pas contenir le mot halo !";
elseif (preg_match("#azer|qwer|zert|wert|erty|rtyu|tyui|yuio|uiop|poiu|oiuy|iuyt|uytr|ytre|trez|trew|reza|rewq|qsdf|asdf|sdfg|dfgh|fghj|ghjk|hjkl|jklm|mlkj|lkjh|kjhg|jhgf|hgfd|gfds|fdsq|fdsa|wxcv|vcxw|xcvb|bvcx|cvbn|nbvc|vbnm|mnbv|123|234|345|456|567|678|789|987|876|765|654|543|432|321|210|012#iU", $mdp, $osef))
} elseif (preg_match("#azer|qwer|zert|wert|erty|rtyu|tyui|yuio|uiop|poiu|oiuy|iuyt|uytr|ytre|trez|trew|reza|rewq|qsdf|asdf|sdfg|dfgh|fghj|ghjk|hjkl|jklm|mlkj|lkjh|kjhg|jhgf|hgfd|gfds|fdsq|fdsa|wxcv|vcxw|xcvb|bvcx|cvbn|nbvc|vbnm|mnbv|123|234|345|456|567|678|789|987|876|765|654|543|432|321|210|012#iU", $mdp, $osef)) {
return "Ayez plus de créativité pour définir votre mot de passe, les lettres ou chiffres du clavier qui se suivent ne sont pas une bonne sécurité !";
else
} else {
return $mdp;
}
}
function mdp($nom, $mdp, $alea = null)
{
if (empty($alea))
{
if (empty($alea)) {
$alea = substr(random(1024), 0, 255);
return array(hash('whirlpool', cxor(strtoupper($nom).':'.$mdp.'♂♪',$alea)), $alea);
return array(hash('whirlpool', cxor(strtoupper($nom).':'.$mdp.'♂♪', $alea)), $alea);
} else {
return hash('whirlpool', cxor(strtoupper($nom).':'.$mdp.'♂♪', $alea));
}
else
return hash('whirlpool', cxor(strtoupper($nom).':'.$mdp.'♂♪',$alea));
}
function redirection($url)
@ -287,26 +299,24 @@ function slots($id_user)
function limite($txt, $limit)
{
if (strlen($txt) > $limit)
if (strlen($txt) > $limit) {
return true;
else
} else {
return false;
}
}
function bourse_calcPrixBase($dispo, $nb = 1000, $rate = 2)
{
if ($nb > 1000)
{
if ($nb > 1000) {
$prix = 0;
for($i = 0; $i < $nb; $i+=1000)
{
for ($i = 0; $i < $nb; $i+=1000) {
$prix += bourse_calcPrixBase($dispo-$i, 1000, $rate);
}
$prix += bourse_calcPrixBase($dispo-$i, $dispo%1000, $rate);
return $prix;
}
else
} else {
return ceil(pow($dispo, -0.1) * $nb * $rate);
}
//return pow($dispo, -0.1) * 200; //Prix de base ...
}
?>

View file

@ -1,5 +1,8 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$page = 'accueil';
$titre = 'Accueil';
@ -10,13 +13,12 @@ $bdd->reconnexion();
//On regarde si le joueur a une flotte en vue
$radar = array();
$detect = 86400;
foreach($queryPlanetes as $planeteJoueur)
{
foreach ($queryPlanetes as $planeteJoueur) {
$end_id = $planeteJoueur['id'];
$radar[] = array($bdd->query("SELECT F.mission, F.start_planete, F.start_time, F.end_time, F.start_time + F.end_time - ".time()." AS arrive_time, P.nom_planete, P.galaxie as start_galaxie, P.ss as start_ss, P.position as start_position, U.pseudo FROM $table_flottes F INNER JOIN $table_planete P ON P.id = F.start_planete INNER JOIN $table_user U ON U.id = P.id_user WHERE F.statut != '1' AND F.end_planete = '$end_id' AND F.id_user != $id_user AND F.start_time + F.end_time - ".time()." <= $detect;"), array($planeteJoueur['nom_planete'], $planeteJoueur['galaxie'], $planeteJoueur['ss'], $planeteJoueur['position']));
}
}
$bdd->deconnexion();
$template->assign('radar',$radar);
$template->assign('radar', $radar);
//$template->assign('alliance', $alli);
unset($nbPlan, $end_id, $radar, $alli);
@ -29,11 +31,8 @@ if (SURFACE == "planete") {
$template->assign('fileVais', $planete->file_vais->printFile($planete));
$template->assign('fileTer', $planete->file_ter->printFile($planete));
$template->assign('fileTech', $planete->file_tech->printFile($planete));
}
else
{
} else {
//On charge l'utilisateur pour récupérer son pseudo et l'afficher sur la page d'accueil
$planete->fondateur = new User($planete->fondateur);
$planete->loadDetails();
}
?>

View file

@ -1,20 +1,20 @@
<?php
if(!defined('ONYX')) exit;
if (!defined('ONYX')) {
exit;
}
if (!empty($_GET['v']))
if (!empty($_GET['v'])) {
include('game/alliances/voir.php');
elseif (!empty($_GET['signer']))
} elseif (!empty($_GET['signer'])) {
include('game/alliances/signer.php');
elseif (!empty($planete->id_alliance))
{
} elseif (!empty($planete->id_alliance)) {
$SESS->values['idPlan'] = 0;
$SESS->values['idAsteroide'] = $planete->id_alliance;
$SESS->values['isolement'] = 0;
$SESS->put();
redirection("?p=accueil");
}
elseif (!empty($_GET['postuler']))
} elseif (!empty($_GET['postuler'])) {
include('game/alliances/postuler.php');
else
} else {
include('game/alliances/sans.php');
?>
}

View file

@ -1,17 +1,17 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$planete->loadDetails();
if (!empty($planete->url_chat))
{
if (!empty($planete->url_chat)) {
//On vérifie que le joueur ait les permissions requises
if ($planete->permissions_alliance &256)
if ($planete->permissions_alliance &256) {
$page = "alliance/chat_irc";
else
} else {
erreur("Vous n'avez pas le grade requis pour accéder au chat de l'alliance.");
}
else
{
}
} else {
$page = "alliance/chat_ajax";
}
?>

View file

@ -1,20 +1,22 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$gestion = strtolower(gpc("g"));
if ($gestion == "grades")
{
if ($gestion == "grades") {
$page = 'alliance/gestion_grades';
//On vérifie que le joueur ait les permissions pour modifier les grades
if (!($planete->permissions_alliance &128))
if (!($planete->permissions_alliance &128)) {
erreur("Vous n'avez pas le grade nécessaire pour modifier les grades !");
}
$id = intval(gpc("i"));
$del = intval(gpc("d"));
if (!empty($id) && gpc("nom", "post"))
{
if (!empty($id) && gpc("nom", "post")) {
$nom = gpc("nom", "post");
$auth = intval(gpc("gbats", "post")) + intval(gpc("gvais", "post"))*2 + intval(gpc("gflot", "post"))*4 + intval(gpc("gdipl", "post"))*8 + intval(gpc("gcred", "post"))*16 + intval(gpc("gmemb", "post"))*32 + intval(gpc("gwing", "post"))*64 + intval(gpc("galli", "post"))*128 + intval(gpc("gchat", "post"))*256 + intval(gpc("gmess", "post"))*512;
@ -25,9 +27,7 @@ if ($gestion == "grades")
header('Location: ?p=gestion&g=grades');
exit;
}
elseif (gpc("nom", "post"))
{
} elseif (gpc("nom", "post")) {
$nom = gpc("nom", "post");
$auth = intval(gpc("gbats", "post")) + intval(gpc("gvais", "post"))*2 + intval(gpc("gflot", "post"))*4 + intval(gpc("gdipl", "post"))*8 + intval(gpc("gcred", "post"))*16 + intval(gpc("gmemb", "post"))*32 + intval(gpc("gwing", "post"))*64 + intval(gpc("galli", "post"))*128;
@ -38,16 +38,12 @@ if ($gestion == "grades")
header('Location: ?p=gestion&g=grades');
exit;
}
elseif (!empty($id))
{
} elseif (!empty($id)) {
$bdd->reconnexion();
$grade = $bdd->unique_query("SELECT id, nom, auth FROM $table_alliances_grade WHERE id_alliance = ".$planete->id." AND id = $id;");
$bdd->deconnexion();
$template->assign("grade_mod", $grade);
}
elseif (!empty($del))
{
} elseif (!empty($del)) {
$bdd->reconnexion();
$grade = $bdd->query("DELETE FROM $table_alliances_grade WHERE id_alliance = ".$planete->id." AND id = $del;");
$bdd->deconnexion();
@ -62,24 +58,19 @@ if ($gestion == "grades")
$template->assign("grades", $grades);
unset($grades, $id, $del);
}
elseif ($gestion == "alliance" || ($gestion == "wings" && !empty($planete->wing)))
{
} elseif ($gestion == "alliance" || ($gestion == "wings" && !empty($planete->wing))) {
$page = 'alliance/gestion_alliance';
//On vérifie que le joueur ait les permissions pour modifier les grades
if (!($planete->permissions_alliance &128))
if (!($planete->permissions_alliance &128)) {
erreur("Vous n'avez pas le grade nécessaire pour modifier les paramètres de l'alliance !");
}
if (isset($_POST["asteroide_name"]))
{
if (isset($_POST["asteroide_name"])) {
$asteroide_name = gpc("asteroide_name", "post");
$planete->nom_asteroide = $asteroide_name;
$planete->modif[] = "nom_asteroide";
}
elseif (isset($_POST["texte_interne"]))
{
} elseif (isset($_POST["texte_interne"])) {
$texte_interne = gpc("texte_interne", "post");
$defcon = intval(gpc("defcon", "post"));
$defcon_txt = gpc("defcon_txt", "post");
@ -89,9 +80,7 @@ elseif ($gestion == "alliance" || ($gestion == "wings" && !empty($planete->wing)
$bdd->escape($defcon_txt);
$bdd->query("UPDATE $table_alliances SET texte_interne = '$texte_interne', defcon = $defcon, defcon_txt = '$defcon_txt' WHERE id = ".$planete->id.";");
$bdd->deconnexion();
}
elseif (isset($_POST["url_forum"]))
{
} elseif (isset($_POST["url_forum"])) {
$url_forum = gpc("url_forum", "post");
$url_chat = gpc("url_chat", "post");
$port_chat = intval(gpc("port_chat", "post"));
@ -105,9 +94,7 @@ elseif ($gestion == "alliance" || ($gestion == "wings" && !empty($planete->wing)
$bdd->escape($pass_chat);
$bdd->query("UPDATE $table_alliances SET url_forum = '$url_forum', url_chat = '$url_chat', port_chat = $port_chat, chan_chat = '$chan_chat', pass_chat = '$pass_chat' WHERE id = ".$planete->id.";");
$bdd->deconnexion();
}
elseif (isset($_POST["message_inscription"]))
{
} elseif (isset($_POST["message_inscription"])) {
$etatinscriptions = intval(gpc("etatinscriptions", "post"));
$message_inscription = gpc("message_inscription", "post");
$presentation = gpc("presentation", "post");
@ -118,23 +105,20 @@ elseif ($gestion == "alliance" || ($gestion == "wings" && !empty($planete->wing)
$bdd->escape($chan_chat);
$bdd->query("UPDATE $table_alliances SET etatinscriptions = '$etatinscriptions', message_inscription = '$message_inscription', presentation = '$presentation' WHERE id = ".$planete->id.";");
$bdd->deconnexion();
}
elseif (isset($_POST["newfondateur"]) && $planete->fondateur == $planete->id_user)
{
} elseif (isset($_POST["newfondateur"]) && $planete->fondateur == $planete->id_user) {
//On vérifie que le joueur demandé existe bien et fasse bien parti de l'alliance
$bdd->reconnexion();
$membre = $bdd->unique_query("SELECT id_alliance FROM $table_user WHERE id != ".intval(gpc('newfondateur', 'post')).";");
$bdd->deconnexion();
if (!empty($membre))
{
if (!empty($membre)) {
$planete->fondateur = intval(gpc('newfondateur', 'post'));
$planete->modif[] = "fondateur";
erreur("Fondateur changé avec succès.", "green");
}
else
} else {
erreur("Impossible de donner les droits de fondateur à ce joueur !");
}
}
$planete->loadDetails();
@ -144,17 +128,15 @@ elseif ($gestion == "alliance" || ($gestion == "wings" && !empty($planete->wing)
$bdd->deconnexion();
$template->assign("membres", $membres);
unset($membres);
}
elseif ($gestion == "wings")
{
} elseif ($gestion == "wings") {
$page = 'alliance/gestion_wing';
//On vérifie que le joueur ait les permissions pour modifier les grades
if (!($planete->permissions_alliance &64))
if (!($planete->permissions_alliance &64)) {
erreur("Vous n'avez pas le grade nécessaire pour gérer les wings !");
}
if (!empty($_POST["nom"]))
{
if (!empty($_POST["nom"])) {
$fondateur = gpc("fondateur", "post");
$nom = gpc("nom", "post");
$tag = strtoupper(gpc("tag", "post"));
@ -167,17 +149,17 @@ elseif ($gestion == "wings")
$wings = $bdd->unique_query("SELECT COUNT(id) AS nb FROM $table_alliances WHERE galaxie = ".$planete->galaxie." AND ss = ".$planete->ss.";");
$bdd->deconnexion();
if (!empty($alliances))
if (!empty($alliances)) {
erreur("Une alliance porte déjà ce nom ou ce tag. Veuillez en choisir un autre.");
elseif (!empty($user))
{
} elseif (!empty($user)) {
$race = gpc("race", "post");
if (!preg_match("#^[A-Za-z0-9èéàùûüôöç'_ -]{5,24}$#ui", $nom))
if (!preg_match("#^[A-Za-z0-9èéàùûüôöç'_ -]{5,24}$#ui", $nom)) {
erreur("Le nom d'alliance que vous avez choisi n'est pas valide :<br />il doit avoir entre 5 et 24 caractères (certains accents sont autorisés, mais aucun caractères spéciaux) !", "red");
elseif (!preg_match("#^[A-Za-z0-9]{3,5}$#ui", $tag))
} elseif (!preg_match("#^[A-Za-z0-9]{3,5}$#ui", $tag)) {
erreur("Le tag de wing que vous avez choisi n'est pas valide :<br />il doit avoir entre 3 et 5 lettres (sans accents) ou chiffres !", "red");
elseif ($race != "humain" && $race != "covenant")
} elseif ($race != "humain" && $race != "covenant") {
erreur("La race de la wing est incorrecte !");
}
$bdd->reconnexion();
$bdd->escape($race);
@ -185,17 +167,16 @@ elseif ($gestion == "wings")
$affected = $bdd->affected();
$bdd->deconnexion();
if ($affected)
{
if ($affected) {
send_mp($user['id'], "Création d'une wing pour l'alliance [".$planete->tag."] ".$planete->nom_alliance, "L'alliance [".$planete->tag."] ".$planete->nom_alliance." vous propose de devenir capitaine de la wing [".$tag."] ".$nom.".<br /><br />Si vous acceptez le poste, cliquez sur le lien suivant : <a href=\"\">ce lien</a>");
erreur("Un message vient d'être envoyé à ".$user["pseudo"].". Lorsqu'il aura accepté son poste, la création de la wing sera terminée et les premiers membres pourront s'y inscrire.", "green");
}
else
} else {
erreur("Une erreur s'est produite lors de la création de la wing. Si le problème percisite, contacter un opérateur.");
}
else
} else {
erreur("Impossible de trouver le nom de ce joueur. Vérifiez que celui-ci n'appartient actuellement à aucune alliance.<br />Impossible de créer une wing sans fondateur valide.");
}
}
//On charge la liste des wings
@ -204,52 +185,40 @@ elseif ($gestion == "wings")
$bdd->deconnexion();
$template->assign("wings", $wings);
unset($wings);
}
else
{
} else {
$page = 'alliance/gestion_membres';
$gestion = "membres";
//On vérifie que le joueur ait les permissions pour modifier les grades
if (!($planete->permissions_alliance &32))
if (!($planete->permissions_alliance &32)) {
erreur("Vous n'avez pas le grade nécessaire pour modifier les membres !");
}
//Acceptation ou refus des postulants
if (!empty($_GET["pa"]))
{
if (!empty($_GET["pa"])) {
$id = intval(gpc("pa"));
$bdd->reconnexion();
$user = $bdd->unique_query("SELECT U.id_alliance, U.pseudo, U.id AS id_user FROM $table_alliances_attente A INNER JOIN $table_user U ON A.id_user = U.id WHERE A.id_alliance = ".$planete->id." AND A.id = $id;");
if (empty($user))
{
if (empty($user)) {
$bdd->deconnexion();
erreur("Impossible de trouver la candidature. Si le problème perciste, contactez un opérateur.");
}
elseif (!empty($user['id_alliance']))
{
} elseif (!empty($user['id_alliance'])) {
$bdd->deconnexion();
erreur("Le joueur pour lequel vous souhaitez valider la condidature est actuellement dans une autre alliance. Vous ne pouvez donc pas l'accepter immédiatement.");
}
else
{
} else {
$bdd->query("UPDATE $table_user SET id_alliance = ".$planete->id.", id_grade_alliance = 0 WHERE id = ".$user["id_user"].";");
if ($bdd->affected())
{
if ($bdd->affected()) {
$bdd->query("DELETE FROM $table_alliances_attente WHERE id_alliance = ".$planete->id." AND id = $id;");
$bdd->deconnexion();
send_mp($user["id_user"], "Candidature pour l'alliance [".$planete->tag."] ".$planete->nom_alliance, "Félicitations vous faites maintenant parti de l'alliance [".$planete->tag."] ".$planete->nom_alliance.".<br /><br />Après examen de votre candidature, le responsable du recrutement a jugé bon de vous accepter au sein de l'alliance.<br />Vous en faites donc désormais parti. Il ne vous reste plus qu'à vous démarquer pour monter dans les grades.<br /><br />Bon jeu !");
erreur("Membre ajouté à l'alliance avec succès.<br />Un message privé vient de lui être envoyé afin de l'informer de la nouvelle.", "green");
}
else
{
} else {
$bdd->deconnexion();
erreur("Une erreur s'est produite lors de l'ajout du joueur dans les membres de l'alliance.<br />Si le problème perciste, contactez un opérateur.");
}
}
}
elseif (!empty($_GET["pr"]))
{
} elseif (!empty($_GET["pr"])) {
$id = intval(gpc("pr"));
$bdd->reconnexion();
$user = $bdd->unique_query("SELECT U.id AS id_user FROM $table_alliances_attente A INNER JOIN $table_user U ON A.id_user = U.id WHERE A.id_alliance = ".$planete->id." AND A.id = $id;");
@ -260,33 +229,32 @@ else
erreur("Candidature refusée.<br />Un message privé vient d'être envoyé au joueur afin de l'informer de la nouvelle.", "orange");
}
//Gestion des exclusions de l'alliance
elseif (!empty($_GET["u"]))
{
elseif (!empty($_GET["u"])) {
$id = intval(gpc("u"));
if ($planete->fondateur == $id)
if ($planete->fondateur == $id) {
erreur("Vous ne pouvez pas exclure le fondateur de sa propre alliance.<br />En cas de problème avec le fondateur, veuillez contacter un opérateur.");
}
$bdd->reconnexion();
$bdd->query("UPDATE $table_user SET id_alliance = 0, id_grade_alliance = 0 WHERE id_alliance = ".$planete->id." AND id = $id;");
$bdd->deconnexion();
if ($bdd->affected())
{
if ($bdd->affected()) {
send_mp($id, "Exclusion de votre alliance [".$planete->tag."] ".$planete->nom_alliance, "Vous vennez d'être exclus de votre alliance [".$planete->tag."] ".$planete->nom_alliance."<br />Pour plus d'informations, veuillez contacter directement le responsable du recrutement.");
erreur("Membre renvoyé.<br />Un message privé vient de lui être envoyé afin de l'informer de la nouvelle.", "orange");
}
else
} else {
erreur("Membre introuvable !");
}
}
$id = intval(gpc("i"));
if (!empty($id))
{
if (!empty($id)) {
$grade = intval(gpc('grade', 'post'));
$bdd->reconnexion();
$gradet = $bdd->unique_query("SELECT id FROM $table_alliances_grade WHERE id_alliance = ".$planete->id." AND id = $grade;");
if (!empty($gradet) || $grade == 0)
if (!empty($gradet) || $grade == 0) {
$bdd->query("UPDATE $table_user SET id_grade_alliance = $grade WHERE id_alliance = ".$planete->id." AND id = $id;");
}
$bdd->deconnexion();
header('Location: ?p=gestion&g=membres');
@ -307,4 +275,3 @@ else
$template->assign("onglet", $gestion);
unset($gestion);
?>

View file

@ -1,22 +1,26 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$page = 'messagerie';
$titre = 'Messagerie d\'alliance';
$template->assign("link_P", "alli_messagerie");
$template->assign("titreR", $titre);
//On interdit l'accès à la messagerie en cas de prise de contrôle d'un joueur
if (!empty($sess->values['souscontrole'][0]))
if (!empty($sess->values['souscontrole'][0])) {
erreur('Vous êtes en mode prise de contrôle, vous ne pouvez pas accèder aux messages privés des joueurs.');
}
if ($id = intval(gpc('avertir')))
{
if ($id = intval(gpc('avertir'))) {
$bdd->reconnexion();
$bdd->query("UPDATE $table_alliances_mail SET statut = 1 WHERE destinataire = ".$planete->id." AND id = $id;");
if ($bdd->affected())
if ($bdd->affected()) {
erreur('La demande de vérification de contenu par les opérateurs a été transmise avec succès.', 'green', '?p=messagerie');
else
} else {
erreur('Une demande est déjà en cours ou vous n\'êtes pas autorisé à avertir ce message.', 'red', '?p=messagerie');
}
$bdd->deconnexion();
}
@ -24,14 +28,13 @@ if ($id = intval(gpc('avertir')))
$onglet = gpc('n');
$template->assign('onglet', $onglet);
if ($onglet == "rapports")
{
if ($onglet == "rapports") {
//Demande de supression des messages
if (!empty($_POST))
{
if (!empty($_POST)) {
$bdd->reconnexion();
foreach($_POST as $value)
foreach ($_POST as $value) {
$bdd->query("UPDATE $table_alliances_mail SET vu = 's' WHERE destinataire = ".$planete->id." AND id = ".intval($value).";");
}
$bdd->deconnexion();
header('Location: ?p=messagerie&n='.$onglet);
@ -44,22 +47,17 @@ if ($onglet == "rapports")
$bdd->deconnexion();
$template->assign('messages', $data);
}
elseif ($onglet == "send")
{
} elseif ($onglet == "send") {
$bdd->reconnexion();
$data = $bdd->query("SELECT M.*, U.pseudo AS destinataire FROM $table_alliances_mail M INNER JOIN $table_user U ON U.id = M.destinataire WHERE M.expediteur = ".$planete->id." ORDER BY M.id DESC;");
$bdd->deconnexion();
$template->assign('messages', $data);
}
elseif ($onglet == "envoyer")
{
} elseif ($onglet == "envoyer") {
$page = 'envoyer';
$titre = 'Envoyer un message';
if (!empty($_POST['objet']) && !empty($_POST['destinataire']) && !empty($_POST['message']))
{
if (!empty($_POST['objet']) && !empty($_POST['destinataire']) && !empty($_POST['message'])) {
$utils = explode(';', gpc('destinataire', 'post'));
$nbutil = count($utils);
@ -67,27 +65,28 @@ elseif ($onglet == "envoyer")
$message = htmlspecialchars(gpc('message', 'post'));
$objet = htmlspecialchars(gpc('objet', 'post'));
if (strlen($message) > 99999)
if (strlen($message) > 99999) {
erreur('Le contenu de votre message est trop long. Limite : 99 999 caractères.');
if (empty($utils))
}
if (empty($utils)) {
erreur('Aucun utilisateur sélectionné.');
}
$bdd->reconnexion();
$bdd->escape($message);
$bdd->escape($objet);
$introuv = array();
foreach($utils as $util)
{
if (empty($util))
foreach ($utils as $util) {
if (empty($util)) {
continue;
}
$util = trim($util);
$bdd->escape($util);
if ($util != $planete->pseudo && $env = $bdd->unique_query("SELECT id, pseudo, mail, envoyerMail FROM $table_user WHERE pseudo = '$util';"))
{
if ($util != $planete->pseudo && $env = $bdd->unique_query("SELECT id, pseudo, mail, envoyerMail FROM $table_user WHERE pseudo = '$util';")) {
$bdd->query("INSERT INTO $table_alliances_mail (destinataire, expediteur, sujet, contenu, temps) VALUES(".$env['id'].", ".$planete->id_user.", '$objet', '$message', $time);");
if ($env["envoyerMail"]& 2 && !empty($env["mail"]))
if ($env["envoyerMail"]& 2 && !empty($env["mail"])) {
send_mail($env["mail"], "Halo-Battle :: Nouveau message privé", 'Bonjour '.$env["pseudo"].',
Vous recevez ce courriel suite à l\'arrivée d\'un nouveau message privé reçu sur votre compte de jeu du serveur '.$VAR['serveur_name'].'. Le sujet de ce message est : "'.$objet.'" et a été envoyé par '.$planete->pseudo.'. Vous pouvez utiliser le lien suivant pour voir le message ou vous connecter.
@ -99,21 +98,23 @@ elseif ($onglet == "envoyer")
A bientôt dans Halo-Battle,
Le Staff');
}
else
} else {
$introuv[] = htmlentities($util);
}
}
$bdd->deconnexion();
if (!empty($introuv[0]))
if (!empty($introuv[0])) {
erreur('Impossible de trouver le/les destinataire(s) suivant(s) : '.implode(', ', $introuv).'.<br />Les autres ont bien reçu votre message.', "red", '?p=messagerie&n=envoyer');
else
} else {
erreur('Votre message a été envoyé avec succès.', "green", '?p=messagerie');
}
}
$amis = array();
$amisn = array();
$bdd->reconnexion();
foreach($planete->amis as $ami) {
foreach ($planete->amis as $ami) {
$res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$ami.";");
if ($res != false) {
$amis[] = $res['pseudo'];
@ -124,32 +125,31 @@ elseif ($onglet == "envoyer")
$template->assign('amis', $amis);
$template->assign('amisn', $amisn);
if (isset($_GET['d'])) $template->assign('destinataire', gpc('d'));
if (isset($_GET['o'])) $template->assign('objet', gpc('o'));
}
else
{
if (isset($_GET['d'])) {
$template->assign('destinataire', gpc('d'));
}
if (isset($_GET['o'])) {
$template->assign('objet', gpc('o'));
}
} else {
//Demande de supression des messages
if (!empty($_POST))
{
if (!empty($_POST)) {
$bdd->reconnexion();
foreach($_POST as $value)
foreach ($_POST as $value) {
$bdd->query("DELETE FROM $table_alliances_mail WHERE destinataire = ".$planete->id_user." AND id = ".intval($value).";");
}
$bdd->deconnexion();
header('Location: ?p=messagerie&n='.$onglet);
exit;
}
if ($SESS->level >= 3)
{
if ($SESS->level >= 3) {
$bdd->reconnexion();
$data = $bdd->query("SELECT M.*, U.pseudo AS expediteur FROM $table_alliances_mail M INNER JOIN $table_user U ON U.id = M.expediteur WHERE M.destinataire = ".$planete->id_user." AND M.expediteur != false ORDER BY M.id DESC;");
$bdd->query("UPDATE $table_alliances_mail M SET vu = 0 WHERE M.destinataire = ".$planete->id_user." AND M.expediteur != false ORDER BY M.id DESC;");
$bdd->deconnexion();
}
else
{
} else {
$bdd->reconnexion();
//Calcul du nombre total de message enregistré
$nbmax = $bdd->query("SELECT COUNT(id) as nb FROM $table_alliances_mail M WHERE M.destinataire = ".$planete->id_user." AND M.expediteur != false ORDER BY M.id DESC;");
@ -158,14 +158,15 @@ else
$bdd->deconnexion();
}
if ($SESS->level < 3 && $nbmax > $bdd->num_rows)
if ($SESS->level < 3 && $nbmax > $bdd->num_rows) {
$template->assign('avertissement', '<p style="color: red;"><b>Vous avez des messages en attente de réception. Libérez de la place dans votre messagerie pour les afficher.</b></p>');
}
$template->assign('messages', $data);
}
unset($onglet, $data, $nbmax);
if ($bdd->num_rows)
if ($bdd->num_rows) {
$template->assign('IM', $bdd->num_rows);
?>
}

View file

@ -1,37 +1,39 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$id = intval(gpc('postuler'));
$message = gpc('motivation', 'post');
$page = 'alliance/nm_postuler';
if (!empty($message))
{
if (!empty($message)) {
$bdd->reconnexion();
$bdd->escape($message);
$postul = $bdd->unique_query("SELECT id FROM $table_alliances_attente WHERE id_alliance = $id AND id_membre = ".$planete->id_user." LIMIT 1;");
if (empty($postul))
if (empty($postul)) {
$bdd->query("INSERT INTO $table_alliances_attente (id_alliance, id_user, timestamp, message) VALUES ($id, ".$planete->id_user.", ".time().", '$message');");
}
$bdd->deconnexion();
if (empty($postul))
if (empty($postul)) {
erreur("Votre demande d'adhésion a été envoyée avec succès, vous aurez une réponse dès qu'un dirigeant de l'alliance se connectera.", "green", $VAR["menu"]["alliance"]."&v=".$id, 5000);
else
} else {
redirection($VAR["menu"]["alliance"]."&postuler=".$id);
}
else
{
} else {
$bdd->reconnexion();
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;");
$postul = $bdd->unique_query("SELECT id FROM $table_alliances_attente WHERE id_alliance = $id AND id_membre = ".$planete->id_user." LIMIT 1;");
$bdd->deconnexion();
if (!empty($postul))
if (!empty($postul)) {
erreur("Vous avez déjà une candidature en cours pour cette alliance !", "red", $VAR["menu"]["alliance"]."&v=".$id, 3000);
elseif (!empty($alliance))
} elseif (!empty($alliance)) {
$template->assign("alliance", $alliance);
else
} else {
redirection($VAR["menu"]["alliance"]);
}
?>
}

View file

@ -1,26 +1,26 @@
<?php
if(!defined('ONYX')) exit;
if (!defined('ONYX')) {
exit;
}
$act = gpc('q');
if ($act == "fonder")
{
if ($act == "fonder") {
$bdd->reconnexion();
//On regarde si le joueur n'est pas déjà en train de fonder une alliance
if (!$alli = $bdd->query("SELECT id FROM $table_alliances_creation WHERE fondateur = ".$planete->id_user." OR signatures LIKE '%;".$planete->id_user.";%';"))
{
if (!$alli = $bdd->query("SELECT id FROM $table_alliances_creation WHERE fondateur = ".$planete->id_user." OR signatures LIKE '%;".$planete->id_user.";%';")) {
$bdd->deconnexion();
$page = 'alliance/nm_fonder';
$nom = gpc('nom', 'post');
$tag = gpc('tag', 'post');
if (!empty($nom) || !empty($tag))
{
if (!empty($nom) || !empty($tag)) {
//Vérifications
if (!preg_match("#^[A-Za-z0-9èéàùûüôöç'_ -]{5,42}$#ui", $nom))
if (!preg_match("#^[A-Za-z0-9èéàùûüôöç'_ -]{5,42}$#ui", $nom)) {
erreur("Le nom d'alliance que vous avez choisi n'est pas valide :<br />il doit avoir entre 5 et 42 caractères (certains accents sont autorisés, mais aucun caractères spéciaux) !", "red");
elseif (!preg_match("#^[A-Za-z0-9]{3,5}$#ui", $tag))
} elseif (!preg_match("#^[A-Za-z0-9]{3,5}$#ui", $tag)) {
erreur("Le tag d'alliance que vous avez choisi n'est pas valide :<br />il doit avoir entre 3 et 5 lettres (sans accents) ou chiffres !", "red");
}
$lien = sha1($tag.'Hb$'.$nom.'☺Ø'.$planete->id_user.'‘«'.$planete->race);
@ -28,22 +28,20 @@ if ($act == "fonder")
$bdd->escape($nom);
$bdd->escape($tag);
$utilise = $bdd->query("SELECT id FROM $table_alliances WHERE nom_alliance = '$nom' OR tag = '$tag' OR fondateur = ".$planete->id_user." UNION SELECT id FROM $table_alliances_creation WHERE nom_alliance = '$nom' OR tag = '$tag' OR fondateur = ".$planete->id_user.";");
if (empty($utilise))
if (empty($utilise)) {
$bdd->query("INSERT INTO $table_alliances_creation (tag, nom_alliance, fondateur, lien) VALUES ('$tag', '$nom', ".$planete->id_user.", '$lien');");
}
$bdd->deconnexion();
if (!empty($utilise))
if (!empty($utilise)) {
erreur("Le nom ou le tag que vous avez choisi est déjà utilisé par une alliance.", "red");
else
{
} else {
send_mp($planete->id_user, "Fondation de votre alliance !", 'Pour terminer la création de votre alliance, trouvez au moins '.nb_signatures.' joueurs de cette galaxie sans alliance pour leur faire signer votre traité de fondation d\'alliance.<br /><br />Lien de signature :<br /><a href="'.$VAR["menu"]["alliance"].'&amp;signer='.$lien.'">http://'.$_SERVER['HTTP_HOST'].'/'.$VAR["first_page"].''.$VAR["menu"]["alliance"].'&amp;signer='.$lien.'</a>');
erreur('Votre alliance a bien &eacute;t&eacute; cr&eacute;&eacute;e.<br />Il ne vous reste plus qu\'à trouver au moins '.nb_signatures.' signatures pour finir la création de votre alliance.<br /><br />Le lien permettant à vos quatres personnes de signer est <a href="'.$VAR["menu"]["alliance"].'&amp;signer='.$lien.'">http://'.$_SERVER['HTTP_HOST'].'/'.$VAR["first_page"].''.$VAR["menu"]["alliance"].'&amp;signer='.$lien.'</a>', "green");
}
}
unset($nom, $tag);
}
else
{
} else {
$page = 'alliance/nm_statut';
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE id = ".$alli[0]["id"].";");
@ -52,27 +50,23 @@ if ($act == "fonder")
$pseudos = $bdd->query("SELECT pseudo FROM $table_user WHERE id = ".$signaturesExport.";");
$bdd->deconnexion();
if (gpc('r') == "quit")
{
if ($alliance["fondateur"] == $planete->id_user)
{
if (gpc('r') == "quit") {
if ($alliance["fondateur"] == $planete->id_user) {
$bdd->reconnexion();
$bdd->query("DELETE FROM $table_alliances_creation WHERE id = ".$alli[0]["id"].";");
$bdd->deconnexion();
foreach ($signatures as $id_user)
{
foreach ($signatures as $id_user) {
send_mp($id_user, "Annulation de la fondation de votre alliance !", "Le fondateur de l'alliance pour laquelle vous avez signée vient d'annuler sa création.");
}
send_mp($planete->id_user, "Annulation de la fondation de votre alliance !", "Vous vennez d'annuler la création de votre alliance.");
erreur("Votre alliance vient d'être supprimée", "green");
}
else
{
} else {
$keys = array_keys($signatures, $planete->id_user);
foreach ($keys as $key)
foreach ($keys as $key) {
unset($signatures[$key]);
}
$signatures = ";".implode(';', $signatures).";";
$bdd->reconnexion();
@ -90,9 +84,7 @@ if ($act == "fonder")
$template->assign("pseudos", $pseudos);
$template->assign("nbSignatures", count($signatures));
}
}
elseif (!empty($_POST['search_tag']) || !empty($_POST['search_nom']))
{
} elseif (!empty($_POST['search_tag']) || !empty($_POST['search_nom'])) {
$page = 'alliance/nm_search';
$tag = gpc('search_tag', 'post');
@ -105,25 +97,24 @@ elseif (!empty($_POST['search_tag']) || !empty($_POST['search_nom']))
$rech2 = $bdd->query("SELECT lien AS id, tag, nom_alliance, 0 AS race, 2 AS etat_inscription FROM $table_alliances_creation WHERE tag LIKE '$tag%' AND nom_alliance LIKE '%$nom%';");
$bdd->deconnexion();
if (!empty($rech1) && !empty($rech2))
if (!empty($rech1) && !empty($rech2)) {
$recherche = array_merge($rech1, $rech2);
elseif (!empty($rech2))
} elseif (!empty($rech2)) {
$recherche = $rech2;
else
} else {
$recherche = $rech1;
}
if ($bdd->num_rows == 1)
if ($bdd->num_rows == 1) {
redirection($VAR["menu"]["alliance"]."&v=".$recherche[0]['id']);
elseif ($bdd->num_rows == 0)
} elseif ($bdd->num_rows == 0) {
erreur("Aucune alliance ne correspond à ces critères de recherche", "", $VAR["menu"]["alliance"]);
}
$template->assign("recherches", $recherche);
unset($nom, $tag, $recherche);
}
else
{
} else {
$bdd->reconnexion();
$template->assign("fondation", $bdd->query("SELECT id FROM $table_alliances_creation WHERE fondateur = ".$planete->id_user." OR signatures LIKE '%;".$planete->id_user.";%';"));
$page = 'alliance/nm_accueil';
}
?>

View file

@ -1,74 +1,71 @@
<?php
if(!defined('ONYX')) exit;
if (!defined('ONYX')) {
exit;
}
$hash = gpc('signer');
$page = 'alliance/nm_signer';
if (!empty($planete->id_alliance))
if (!empty($planete->id_alliance)) {
erreur("Vous êtes déjà dans une alliance, vous ne pouvez pas ratifier d'alliance !", "red");
elseif (!empty($_POST["sign"]))
{
if (trim(strtolower(gpc("sign", "post"))) == "oui")
{
} elseif (!empty($_POST["sign"])) {
if (trim(strtolower(gpc("sign", "post"))) == "oui") {
$hash = intval($hash);
$bdd->reconnexion();
$ratifier = $bdd->unique_query("SELECT id, fondateur, signatures FROM $table_alliances_creation WHERE signatures LIKE '%;".$planete->id_user.";%' LIMIT 1;");
if (!empty($ratifier))
{
if (!empty($ratifier)) {
$ratifier["signatures"] = explode(';', substr($ratifier["signatures"], 1), -1);
unset($ratifier["signatures"][array_search($planete->id_user, $ratifier["signatures"])]);
if (count($ratifier["signatures"]) == 0)
if (count($ratifier["signatures"]) == 0) {
$ratifier["signatures"] = "";
else
} else {
$ratifier["signatures"] = ';'.implode(';', $ratifier["signatures"]).';';
}
$bdd->escape($ratifier["signatures"]);
$bdd->query("UPDATE $table_alliances_creation SET signatures = '".$ratifier["signatures"]."' WHERE id = ".$ratifier["id"].";");
}
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE id = $hash;");
if (!empty($alliance["signatures"]))
if (!empty($alliance["signatures"])) {
$alliance["signatures"] = explode(';', substr($alliance["signatures"], 1), -1);
else
} else {
$alliance["signatures"] = array();
}
$alliance["signatures"][] = $planete->id_user;
$newnb = count($alliance["signatures"]);
$alliance["signatures"] = ';'.implode(';', $alliance["signatures"]).';';
$bdd->escape($alliance["signatures"]);
$bdd->query("UPDATE $table_alliances_creation SET signatures = '".$alliance["signatures"]."' WHERE id = $hash;");
if (debut_d_univers) //Si on est en début d'univers, on recherche une planète du joueur fondateur
if (debut_d_univers) { //Si on est en début d'univers, on recherche une planète du joueur fondateur
$planete_fondateur = $bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = ".$alliance["fondateur"]." ORDER BY id ASC LIMIT 1;");
}
$bdd->deconnexion();
if ($newnb >= nb_signatures)
{
if (debut_d_univers && $newnb == nb_signatures && empty($planete_fondateur->vaisseaux[2]))
{
if ($newnb >= nb_signatures) {
if (debut_d_univers && $newnb == nb_signatures && empty($planete_fondateur->vaisseaux[2])) {
//On donne un vaisseau de colonisation au fondateur
$planete_fondateur = new Planete($planete_fondateur["id"]);
$planete_fondateur->vaisseaux[2]++;
unset($planete_fondateur);
send_mp($alliance["fondateur"], "Nouvelle signature pour votre alliance !", $planete->pseudo." vient de ratifier votre alliance, portant ainsi à ".$newnb." le nombre de signatures.<br /><br />Vous avez suffisamment de signatures pour coloniser un astéroïde. Pour vous féliciter, le conseil intergalactique a décidé de vous offrir un vaisseau de colonisation pour aller coloniser un astéroide afin d'implanter votre alliance.");
}
else
} else {
//TODO refaire un message plus RP
send_mp($alliance["fondateur"], "Nouvelle signature pour votre alliance !", $planete->pseudo." vient de ratifier votre alliance, portant ainsi à ".$newnb." le nombre de signatures.<br /><br />Vous avez suffisamment de signatures pour coloniser un astéroïde. Envoyez-en un dès maintenant !");
}
else
} else {
send_mp($alliance["fondateur"], "Nouvelle signature pour votre alliance !", $planete->pseudo." vient de ratifier votre alliance, portant ainsi à ".$newnb." le nombre de signatures.");
}
erreur("Votre signature a bien été prise en compte !", "green");
}
else
} else {
redirection($VAR["menu"]["alliance"]);
}
else
{
}
} else {
$bdd->reconnexion();
$bdd->escape($hash);
$fonder = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE fondateur = ".$planete->id_user." LIMIT 1;");
if (!empty($fonder))
{
if (!empty($fonder)) {
$bdd->deconnexion();
erreur("Vous ne pouvez pas ratifier d'alliance car vous en fonder actuellement une !", "red");
}
@ -76,23 +73,21 @@ else
$ratifier = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE signatures LIKE '%;".$planete->id_user.";%' LIMIT 1;");
$bdd->deconnexion();
if (!empty($alliance) && sha1($alliance['tag'].'Hb$'.$alliance['nom_alliance'].'☺Ø'.$alliance['fondateur'].'‘«'.$planete->race) == $hash)
{
if (!empty($alliance["signatures"]))
{
if (!empty($alliance) && sha1($alliance['tag'].'Hb$'.$alliance['nom_alliance'].'☺Ø'.$alliance['fondateur'].'‘«'.$planete->race) == $hash) {
if (!empty($alliance["signatures"])) {
$alliance["signatures"] = explode(';', substr($alliance["signatures"], 1), -1);
if (in_array($planete->id_user, $alliance["signatures"]))
if (in_array($planete->id_user, $alliance["signatures"])) {
erreur("Vous avez déjà ratifier cette alliance !");
$alliance["nbsignatures"] = count($alliance["signatures"]);
}
else
$alliance["nbsignatures"] = count($alliance["signatures"]);
} else {
$alliance["nbsignatures"] = 0;
}
$template->assign("alliance", $alliance);
$template->assign("ratifier", $ratifier);
}
elseif (!empty($alliance))
} elseif (!empty($alliance)) {
erreur("Impossible de ratifier cette alliance.<br />Vous n'êtes peut-être pas de la même race que le fondateur.", 'red', $VAR["menu"]["alliance"], 4000);
else
} else {
erreur("Vous ne pouvez plus signer pour cette alliance !", 'red', $_SERVER["HTTP_REFERER"], 4000);
}
}
?>

View file

@ -1,5 +1,8 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$id = intval(gpc('v'));
$page = 'alliance/view';
@ -7,19 +10,19 @@ $page = 'alliance/view';
$bdd->reconnexion();
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;");
$nbmembres = $bdd->unique_query("SELECT COUNT(id) AS nbmembres FROM $table_user WHERE id_alliance = $id;");
if ($planete->id_alliance == $id)
if ($planete->id_alliance == $id) {
$grade = $bdd->unique_query("SELECT nom FROM $table_alliances_grade WHERE id = ".$planete->id_grade_alliance.";");
}
$bdd->deconnexion();
if (!empty($alliance))
{
if (!empty($alliance)) {
$template->assign("alliance", $alliance);
$template->assign("nbmembres", $nbmembres['nbmembres']);
if (empty($grade))
if (empty($grade)) {
$template->assign("grade", "Invité");
else
} else {
$template->assign("grade", $grade["nom"]);
}
else
} else {
redirection($VAR["menu"]["alliance"]);
?>
}

View file

@ -1,43 +1,45 @@
<?php
if(!defined('INDEX')) { header('Location: ./'.$VAR['first_page']); exit; }
if (!defined('INDEX')) {
header('Location: ./'.$VAR['first_page']);
exit;
}
$page = 'arbre';
$titre = 'Arbre des technologies';
if (empty($_GET['q']))
if (empty($_GET['q'])) {
$_GET['q'] = '';
}
$template->assign('defaut', gpc('q'));
//Récupération et vérification de la race voulue ou définition d'une race par défaut
if (empty($_GET['r']) || (gpc('r') != 'humain' && gpc('r') != 'covenant'))
if (empty($_GET['r']) || (gpc('r') != 'humain' && gpc('r') != 'covenant')) {
$_GET['r'] = $planete->race;
}
$race = gpc('r');
$template->assign('raceAff', $race);
if (SURFACE == "asteroide")
{
if (SURFACE == "asteroide") {
$TEMP_liste = array();
foreach($planete->batiments as $id => $batiment)
{
if (!empty($LANG[$race]["alli_batiments"]["noms_sing"][$id]))
foreach ($planete->batiments as $id => $batiment) {
if (!empty($LANG[$race]["alli_batiments"]["noms_sing"][$id])) {
$TEMP_liste[$id] = array(
'niveau' => $batiment,
'etat' => dAlliancesBatiments::needed($id, $planete, true)
);
}
}
$template->assign('batiments', $TEMP_liste);
}
else
{
} else {
$TEMP_liste = array();
foreach($planete->batiments as $id => $batiment)
{
if (!empty($LANG[$race]["batiments"]["noms_sing"][$id]))
foreach ($planete->batiments as $id => $batiment) {
if (!empty($LANG[$race]["batiments"]["noms_sing"][$id])) {
$TEMP_liste[$id] = array(
'niveau' => $batiment,
'etat' => dBatiments::needed($id, $planete, true)
);
}
}
$template->assign('batiments', $TEMP_liste);
}
@ -55,37 +57,36 @@ else
$template->assign('technologies',$TEMP_technologies);
*/
$TEMP_liste = array();
foreach($planete->casernes as $id => $unite)
{
if (!empty($LANG[$race]["caserne"]["noms_sing"][$id]))
foreach ($planete->casernes as $id => $unite) {
if (!empty($LANG[$race]["caserne"]["noms_sing"][$id])) {
$TEMP_liste[$id] = array(
'niveau' => $unite,
'etat' => dCaserne::needed($id, $planete, true)
);
}
}
$template->assign('caserne', $TEMP_liste);
$TEMP_liste = array();
foreach($planete->terrestres as $id => $unite)
{
if (!empty($LANG[$race]["terrestre"]["noms_sing"][$id]))
foreach ($planete->terrestres as $id => $unite) {
if (!empty($LANG[$race]["terrestre"]["noms_sing"][$id])) {
$TEMP_liste[$id] = array(
'niveau' => $unite,
'etat' => dTerrestre::needed($id, $planete, true)
);
}
}
$template->assign('unites', $TEMP_liste);
$TEMP_liste = array();
foreach($planete->vaisseaux as $id => $unite)
{
if (!empty($LANG[$race]["vaisseaux"]["noms_sing"][$id]))
foreach ($planete->vaisseaux as $id => $unite) {
if (!empty($LANG[$race]["vaisseaux"]["noms_sing"][$id])) {
$TEMP_liste[$id] = array(
'niveau' => $unite,
'etat' => dSpatial::needed($id, $planete, true)
);
}
}
$template->assign('vaisseaux', $TEMP_liste);
unset($TEMP_liste, $id, $unite);
?>

View file

@ -1,60 +1,60 @@
<?php
if(!defined('ONYX'))
if (!defined('ONYX')) {
exit;
}
$titre = 'Bâtiments';
//Si l'on est sur un astéroide, on vérifie que le joueur ait les permissions nécessaire
if (SURFACE == "asteroide" && !($planete->permissions_alliance &1))
if (SURFACE == "asteroide" && !($planete->permissions_alliance &1)) {
erreur("Vous n'avez pas le grade requis pour vous occuper des bâtiments de l'astéroide.");
}
//Lancement d'une nouvelle construction
if (isset($_GET['c']))
{
if (isset($_GET['c'])) {
//On vérifie qu'il n'y ait pas de technologie en cours de recherche si l'on veut améliorer le centre de recherche
if(gpc('c') == 6 && $planete->file_tech->hasObject())
if (gpc('c') == 6 && $planete->file_tech->hasObject()) {
erreur('Une technologie est en cours de recherche dans votre laboratoire, vous ne pouvez pas faire de travaux !');
}
$planete->file_bat->addObjet(intval(gpc('c')), 1, $planete);
redirection($VAR['menu']['batiments']);
}
//Lancement d'une déconstruction
if (isset($_GET['d']))
{
if (isset($_GET['d'])) {
//On vérifie qu'il n'y ait pas de technologie en cours de recherche si l'on veut améliorer le centre de recherche
if($_GET['d'] == 6 && $planete->file_tech->hasObject())
if ($_GET['d'] == 6 && $planete->file_tech->hasObject()) {
erreur('Une technologie est en cours de recherche dans votre laboratoire, vous ne pouvez pas faire de travaux !');
}
$planete->file_bat->addDemolition(intval(gpc('d')), 1, $planete);
redirection($VAR['menu']['batiments']);
}
//Annulation d'une nouvelle construction
if (isset($_GET['a']) && isset($_GET['b']))
{
if (isset($_GET['a']) && isset($_GET['b'])) {
$planete->file_bat->delObjet(intval(gpc('b')), 1, intval(gpc('a')), $planete);
redirection($VAR['menu']['batiments']);
}
if (SURFACE == "planete")
{
if (SURFACE == "planete") {
$page = 'batiments';
$TEMP_liste = array();
foreach($planete->batiments as $i => $niveau)
{
foreach ($planete->batiments as $i => $niveau) {
//On vérifie le type par rapport à l'onglet
if (isset($_GET["n"]) && !(intval($_GET["n"])& dBatiments::type($i)))
if (isset($_GET["n"]) && !(intval($_GET["n"])& dBatiments::type($i))) {
continue;
}
//Si l'on est pas sur la planète mère, on désactive le laboratoire
if ($i == 6 && $queryPlanetes[0]['id'] != $planete->id)
if ($i == 6 && $queryPlanetes[0]['id'] != $planete->id) {
continue;
}
if (!empty($LANG[$planete->race]['batiments']['noms_sing'][$i]) && dBatiments::needed($i, $planete))
{
$TEMP_liste[] = array (
if (!empty($LANG[$planete->race]['batiments']['noms_sing'][$i]) && dBatiments::needed($i, $planete)) {
$TEMP_liste[] = array(
'id' => $i,
'image' => dBatiments::image($i, $planete),
'niveau' => $niveau,
@ -66,16 +66,12 @@ if (SURFACE == "planete")
);
}
}
}
else
{
} else {
$page = 'batiments_alli';
$TEMP_liste = array();
foreach($planete->batiments as $i => $niveau)
{
if (!empty($LANG[$planete->race]['alli_batiments']['noms_sing'][$i]) && dAlliancesBatiments::needed($i, $planete) && $niveau < 6)
{
$TEMP_liste[] = array (
foreach ($planete->batiments as $i => $niveau) {
if (!empty($LANG[$planete->race]['alli_batiments']['noms_sing'][$i]) && dAlliancesBatiments::needed($i, $planete) && $niveau < 6) {
$TEMP_liste[] = array(
'id' => $i,
'image' => dAlliancesBatiments::image($i, $planete),
'niveau' => $niveau,
@ -94,4 +90,3 @@ $template->assign('onglet', gpc("n"));
$template->assign('files', $planete->file_bat->printFile($planete));
unset($TEMP_liste, $niveau, $i);
?>

View file

@ -1,61 +1,62 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$page = 'carte';
$titre = 'Carte spatiale';
//Récupération d'un numéro d'amas à regarder
if (isset($_GET['amas']))
if (isset($_GET['amas'])) {
$g = intval(gpc('amas'));
elseif (isset($_GET['galaxie']))
} elseif (isset($_GET['galaxie'])) {
$g = intval(gpc('galaxie'));
else
} else {
$g = $planete->galaxie;
}
//Validation du numéro de l'amas
if ($planete->auth_level >= 5 && $g <= 0)
if ($planete->auth_level >= 5 && $g <= 0) {
$g = 0;
elseif ($g < 1)
} elseif ($g < 1) {
$g = 1;
if ($g > $VAR['nb_amas'])
}
if ($g > $VAR['nb_amas']) {
$g = 1;
}
//Récupération d'un numéro de système à regarder
if (isset($_GET['systeme']))
if (isset($_GET['systeme'])) {
$s = intval(gpc('systeme'));
elseif (isset($_GET['ss']))
} elseif (isset($_GET['ss'])) {
$s = intval(gpc('ss'));
else
} else {
$s = $planete->ss;
}
//Validation du numéro de système
if ($s < 1)
if ($s < 1) {
$s = 1;
if ($s > $VAR['nb_systeme'])
}
if ($s > $VAR['nb_systeme']) {
$s = $VAR['nb_systeme'];
}
//Calcul des prochains amas et systèmes
if ($s == 1 && $g > 1)
{
if ($s == 1 && $g > 1) {
$Gmu = $g - 1;
$Smu = $VAR['nb_systeme'];
}
elseif ($s == 1)
{
} elseif ($s == 1) {
$Gmu = 15;
$Smu = $VAR['nb_systeme'];
}
else
{
} else {
$Gmu = $g;
$Smu = $s - 1;
}
if ($s == $VAR['nb_systeme'])
{
if ($s == $VAR['nb_systeme']) {
$Gpu = $g + 1;
$Spu = 1;
}
else
{
} else {
$Gpu = $g;
$Spu = $s + 1;
}
@ -66,31 +67,27 @@ else
//Génération de la carte à afficher
$TEMP_carte = array();
for ($i = 1; $i <= $VAR['nb_planete']; $i++)
{
for ($i = 1; $i <= $VAR['nb_planete']; $i++) {
//Cas d'un système à astéroïde
if ($s%5 == 2 && $i == ceil($VAR['nb_planete']/2))
{
if ($s%5 == 2 && $i == ceil($VAR['nb_planete']/2)) {
$bdd->reconnexion();
$d = $bdd->unique_query("SELECT race, nom_asteroide, debris_met, debris_cri, nom_alliance, image, tag, fondateur FROM $table_alliances WHERE galaxie = $g AND ss = $s;");
$bdd->deconnexion();
if($d)
if ($d) {
$TEMP_carte[] = array('A', $d['nom_asteroide'], $d['debris_met'], $d['debris_cri'], $d['race'], $d['nom_alliance'], $d['tag'], $d['image'], 0);
else
} else {
$TEMP_carte[] = array('A');
}
}
$bdd->reconnexion();
$resultat = $bdd->query("SELECT id FROM $table_planete WHERE galaxie = $g AND ss = $s AND position = $i;");
if($resultat)
{
if ($resultat) {
$d = $bdd->unique_query("SELECT P.nom_planete, P.image, P.debris_met, P.debris_cri, U.pseudo, U.race, U.politique, 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 P.galaxie = $g AND P.ss = $s AND P.position = $i;");
$bdd->deconnexion();
$TEMP_carte[] = array($i, $d['nom_planete'], $d['debris_met'], $d['debris_cri'], $d['race'], $d['pseudo'], $d['tag'], $d['image'], $d['politique']);
}
else
{
} else {
$bdd->deconnexion();
$TEMP_carte[] = array($i);
}
@ -99,4 +96,3 @@ $template->assign('carte', $TEMP_carte);
$template->assign('position', array($g, $s, $Gpu, $Spu, $Gmu, $Smu));
unset($TEMP_carte, $g, $s, $Gpu, $Spu, $Gmu, $Smu, $resultat, $d, $i);
?>

View file

@ -1,41 +1,42 @@
<?php
if(!defined('ONYX'))
if (!defined('ONYX')) {
exit;
}
$page = 'caserne';
$titre = $LANG[$planete->race]['batiments']['noms_sing'][9];
//Vérification que le joueur ait bien une caserne avant d'afficher la page
if ($planete->batiments[9] <= 0)
if ($planete->batiments[9] <= 0) {
erreur('Vous devez d\'abord construire une '.$LANG[$planete->race]['batiments']['noms_sing'][9], "red", '?p=batiments', 3500);
}
$lieu = intval(gpc("k"));
if ($lieu >= $planete->batiments[9] || $lieu < 0)
if ($lieu >= $planete->batiments[9] || $lieu < 0) {
$lieu = 0;
}
//Lancement d'un nouvel entrainement
if (isset($_GET['c']) && ($id = intval(gpc('c'))) >= 0 && $nbc = floor(gpc('cas'.$id, 'post')))
{
if (isset($_GET['c']) && ($id = intval(gpc('c'))) >= 0 && $nbc = floor(gpc('cas'.$id, 'post'))) {
$planete->file_cas->addObjet($id, $nbc, $planete, $lieu);
redirection($VAR['menu']['caserne']."&k=".$lieu);
}
//Annulation d'un entrainement
if (isset($_GET['a']) && isset($_GET['b']))
{
if (isset($_GET['a']) && isset($_GET['b'])) {
$n = intval(gpc('s'));
if (empty($n)) $n = 1;
if (empty($n)) {
$n = 1;
}
$planete->file_cas->delObjet(intval(gpc('b')), $n, intval(gpc('a')), $planete);
redirection($VAR['menu']['caserne']."&k=".$lieu);
}
$TEMP_liste = array();
foreach($planete->casernes as $i => $nombre)
{
if (!empty($LANG[$planete->race]['caserne']['noms_sing'][$i]) && dCaserne::needed($i, $planete))
{
$TEMP_liste[] = array (
foreach ($planete->casernes as $i => $nombre) {
if (!empty($LANG[$planete->race]['caserne']['noms_sing'][$i]) && dCaserne::needed($i, $planete)) {
$TEMP_liste[] = array(
'id' => $i,
'image' => dCaserne::image($i, $planete),
'nombre' => $nombre,
@ -53,4 +54,3 @@ $template->assign('lieu', $lieu);
$template->assign('files', $planete->file_cas->printFile($planete));
unset($TEMP_liste, $i, $n, $niveau);
?>

View file

@ -1,59 +1,60 @@
<?php
if(!defined('ONYX'))
if (!defined('ONYX')) {
exit;
}
$page = 'chantierspatial';
if (SURFACE == "planete")
if (SURFACE == "planete") {
$titre = ucfirst($LANG[$planete->race]['batiments']['noms_sing'][8]);
else
} else {
$titre = ucfirst($LANG[$planete->race]['alli_batiments']['noms_sing'][3]);
}
//Si l'on est sur un astéroide, on vérifie que le joueur ait les permissions nécessaire
if (SURFACE == "asteroide" && !($planete->permissions_alliance &2))
if (SURFACE == "asteroide" && !($planete->permissions_alliance &2)) {
erreur("Vous n'avez pas le grade requis pour vous occuper des vaisseaux de l'astéroide.");
}
//Vérification que le joueur ait bien un labo avant d'afficher la page
if (SURFACE == "planete" && $planete->batiments[8] <= 0)
if (SURFACE == "planete" && $planete->batiments[8] <= 0) {
erreur('Vous devez d\'abord construire un '.$LANG[$planete->race]['batiments']['noms_sing'][8], "red", '?p=batiments', 3500);
elseif(SURFACE == "asteroide" && $planete->batiments[3] <= 0)
} elseif (SURFACE == "asteroide" && $planete->batiments[3] <= 0) {
erreur('Vous devez d\'abord construire une '.$LANG[$planete->race]['alli_batiments']['noms_sing'][3], "red", '?p=batiments', 3500);
if (SURFACE == "planete")
{
$lieu = intval(gpc("k"));
if ($lieu >= $planete->batiments[8] || $lieu < 0)
$lieu = 0;
}
elseif (SURFACE == "asteroide")
{
if (SURFACE == "planete") {
$lieu = intval(gpc("k"));
if ($lieu >= $planete->batiments[3] || $lieu < 0)
if ($lieu >= $planete->batiments[8] || $lieu < 0) {
$lieu = 0;
}
} elseif (SURFACE == "asteroide") {
$lieu = intval(gpc("k"));
if ($lieu >= $planete->batiments[3] || $lieu < 0) {
$lieu = 0;
}
}
//Lancement d'une nouvelle construction
if (isset($_GET['v']) && ($id = intval(gpc('v'))) >= 0 && $nbv = floor(gpc('vais'.$id, 'post')))
{
if (isset($_GET['v']) && ($id = intval(gpc('v'))) >= 0 && $nbv = floor(gpc('vais'.$id, 'post'))) {
$planete->file_vais->addObjet($id, $nbv, $planete, $lieu);
redirection($VAR['menu']['chantierspatial']."&k=".$lieu);
}
//Annulation d'une nouvelle construction
if (isset($_GET['a']) && isset($_GET['b']))
{
if (isset($_GET['a']) && isset($_GET['b'])) {
$n = intval(gpc('s'));
if (empty($n)) $n = 1;
if (empty($n)) {
$n = 1;
}
$planete->file_vais->delObjet(intval(gpc('b')), $n, intval(gpc('a')), $planete);
redirection($VAR['menu']['chantierspatial']."&k=".$lieu);
}
$TEMP_liste = array();
foreach($planete->vaisseaux as $i => $nombre)
{
if (!empty($LANG[$planete->race]['vaisseaux']['noms_sing'][$i]) && dSpatial::needed($i, $planete))
{
$TEMP_liste[] = array (
foreach ($planete->vaisseaux as $i => $nombre) {
if (!empty($LANG[$planete->race]['vaisseaux']['noms_sing'][$i]) && dSpatial::needed($i, $planete)) {
$TEMP_liste[] = array(
'id' => $i,
'image' => dSpatial::image($i, $planete),
'nombre' => $nombre,
@ -71,4 +72,3 @@ $template->assign('lieu', $lieu);
$template->assign('files', $planete->file_vais->printFile($planete));
unset($TEMP_liste, $i, $n, $niveau);
?>

View file

@ -1,48 +1,50 @@
<?php
if(!defined('ONYX'))
if (!defined('ONYX')) {
exit;
}
$page = $p;
$onglet = gpc('n');
if (!empty($onglet))
if (!empty($onglet)) {
$template->assign('onglet', $onglet);
else
} else {
$template->assign('onglet', "unites");
}
$titre = ucfirst($LANG[$planete->race]['batiments']['noms_sing'][7]);
//Vérification que le joueur ait bien un labo avant d'afficher la page
if ($planete->batiments[7] <= 0)
if ($planete->batiments[7] <= 0) {
erreur('Vous devez d\'abord construire un '.$LANG[$planete->race]['batiments']['noms_sing'][7], "red", '?p=batiments', 3500);
}
$lieu = intval(gpc("k"));
if ($lieu >= $planete->batiments[7] || $lieu < 0)
if ($lieu >= $planete->batiments[7] || $lieu < 0) {
$lieu = 0;
}
//Lancement d'une nouvelle construction
if (isset($_GET['v']) && ($id = intval(gpc('v'))) >= 0 && $nbv = floor(gpc('terr'.$id, 'post')))
{
if (isset($_GET['v']) && ($id = intval(gpc('v'))) >= 0 && $nbv = floor(gpc('terr'.$id, 'post'))) {
$planete->file_ter->addObjet($id, $nbv, $planete, $lieu);
redirection($VAR['menu'][$p].'&k='.$lieu.'&n='.$onglet);
}
//Annulation d'une nouvelle construction
if (isset($_GET['a']) && isset($_GET['b']))
{
if (isset($_GET['a']) && isset($_GET['b'])) {
$n = intval(gpc('s'));
if (empty($n)) $n = 1;
if (empty($n)) {
$n = 1;
}
$planete->file_ter->delObjet(intval(gpc('b')), $n, intval(gpc('a')), $planete);
redirection($VAR['menu'][$p].'&k='.$lieu.'&n='.$onglet);
}
$TEMP_liste = array();
foreach($planete->terrestres as $i => $nombre)
{
foreach ($planete->terrestres as $i => $nombre) {
$type = dTerrestre::type($i);
if (!empty($LANG[$planete->race]['terrestre']['noms_sing'][$i]) && (($onglet == "defenses" && !$type) || ($onglet != "defenses" && $type)) && dTerrestre::needed($i, $planete))
{
$TEMP_liste[] = array (
if (!empty($LANG[$planete->race]['terrestre']['noms_sing'][$i]) && (($onglet == "defenses" && !$type) || ($onglet != "defenses" && $type)) && dTerrestre::needed($i, $planete)) {
$TEMP_liste[] = array(
'id' => $i,
'image' => dTerrestre::image($i, $planete),
'nombre' => $nombre,
@ -60,4 +62,3 @@ $template->assign('lieu', $lieu);
$template->assign('files', $planete->file_ter->printFile($planete));
unset($TEMP_liste, $i, $n, $niveau, $onglet, $type);
?>

View file

@ -1,18 +1,19 @@
<?php
if(!defined('INDEX') || SURFACE != "planete") { header('Location: ./'.$VAR['first_page']); exit; }
if (!defined('INDEX') || SURFACE != "planete") {
header('Location: ./'.$VAR['first_page']);
exit;
}
$page = 'description';
$titre = 'D&eacute;tails';
function tableauProd($ibat,$nivo)
function tableauProd($ibat, $nivo)
{
$return = array();
$c = $nivo-2 < 1 ? 1 : $nivo-2;
$a = $c + 6;
if ($ibat == 0)
{
for ($c; $c < $a; $c++)
{
if ($ibat == 0) {
for ($c; $c < $a; $c++) {
$production = ceil(pow(1.1, $c) * 52 * $c);
$production_diff = ceil(pow(1.1, $c) * 52 * $c) - ceil(pow(1.1, $nivo) * 52 * $nivo);
@ -21,11 +22,8 @@ function tableauProd($ibat,$nivo)
$return[] = array($c, $production, $energie, $production_diff, $energie_diff);
}
}
elseif ($ibat == 1)
{
for ($c; $c < $a; $c++)
{
} elseif ($ibat == 1) {
for ($c; $c < $a; $c++) {
$production = ceil(pow(1.1, $c) * 34 * $c);
$production_diff = ceil(pow(1.1, $c) * 34 * $c) - ceil(pow(1.1, $nivo) * 52 * $nivo);
@ -34,11 +32,8 @@ function tableauProd($ibat,$nivo)
$return[] = array($c, $production, $energie, $production_diff, $energie_diff);
}
}
elseif ($ibat == 2)
{
for ($c; $c < $a; $c++)
{
} elseif ($ibat == 2) {
for ($c; $c < $a; $c++) {
$production = ceil(pow(1.1, $c) * 21 * ($c + 0.7));
$production_diff = ceil(pow(1.1, $c) * 21 * ($c + 0.7)) - ceil(pow(1.1, $nivo) * 21 * ($nivo + 0.7));
@ -47,42 +42,37 @@ function tableauProd($ibat,$nivo)
$return[] = array($c, $production, $energie, $production_diff, $energie_diff);
}
}
elseif ($ibat == 3)
{
for ($c; $c < $a; $c++)
{
} elseif ($ibat == 3) {
for ($c; $c < $a; $c++) {
$production = ceil(exp(0.28*$c)*22);
$production_diff = ceil(exp(0.28*$c)*22) - ceil(exp(0.28*$nivo)*22);
$return[] = array($c, $production, 0, $production_diff, 0);
}
}
elseif ($ibat == 4) {
for ($c; $c < $a; $c++)
{
} elseif ($ibat == 4) {
for ($c; $c < $a; $c++) {
$production = ceil(exp(0.297*$c)*25);
$production_diff = ceil(exp(0.297*$c)*25) - ceil(exp(0.297*$nivo)*25);
$energie = ceil(pow(1.34,($c-1)) * 9);
$energie_diff = ceil(pow(1.34,($c-1)) * 9) - ceil(pow(1.34,($nivo-1)) * 9);
$energie = ceil(pow(1.34, ($c-1)) * 9);
$energie_diff = ceil(pow(1.34, ($c-1)) * 9) - ceil(pow(1.34, ($nivo-1)) * 9);
$return[] = array($c, $production, $energie, $production_diff, $energie_diff);
}
}
else
} else {
return false;
}
return $return;
}
if (empty($_GET['r']) || ($_GET['r'] != 'humain' && $_GET['r'] != 'covenant'))
if (empty($_GET['r']) || ($_GET['r'] != 'humain' && $_GET['r'] != 'covenant')) {
$_GET['r'] = $planete->race;
}
$race = gpc('r');
$template->assign('raceAff', $race);
if (isset($_GET['t']) && is_numeric($_GET['t']) && !empty($LANG[$race]["technologies"]["noms_sing"][$_GET['b']][$_GET['t']]))
{
if (isset($_GET['t']) && is_numeric($_GET['t']) && !empty($LANG[$race]["technologies"]["noms_sing"][$_GET['b']][$_GET['t']])) {
$template->assign('type', 'technologies');
$b = intval(gpc('b'));
$t = intval(gpc('t'));
@ -92,9 +82,7 @@ if (isset($_GET['t']) && is_numeric($_GET['t']) && !empty($LANG[$race]["technolo
$template->assign('ressourcesNext', array(Donnee::creditsTechnologie($b, $t, $planete), Donnee::tempsTechnologie($b, $t, $planete)));
$template->assign('etat', Donnee::print_neededTechnologie($b, $t, $planete, $race));
}
elseif (isset($_GET['b']) && is_numeric($_GET['b']) && !empty($LANG[$race]["batiments"]["noms_sing"][$_GET['b']]))
{
} elseif (isset($_GET['b']) && is_numeric($_GET['b']) && !empty($LANG[$race]["batiments"]["noms_sing"][$_GET['b']])) {
$template->assign('type', 'batiments');
$t = intval(gpc('b'));
$template->assign('id', $t);
@ -105,9 +93,7 @@ elseif (isset($_GET['b']) && is_numeric($_GET['b']) && !empty($LANG[$race]["bati
$template->assign('ressourcesNext', array(dBatiments::metal($t, $n, $planete), dBatiments::cristal($t, $n, $planete), dBatiments::hydrogene($t, $n, $planete), dBatiments::temps($t, $n, $planete)));
$template->assign('etat', dBatiments::needed($t, $planete, true));
}
elseif (isset($_GET['v']) && is_numeric($_GET['v']) && !empty($LANG[$race]["vaisseaux"]["noms_sing"][$_GET['v']]))
{
} elseif (isset($_GET['v']) && is_numeric($_GET['v']) && !empty($LANG[$race]["vaisseaux"]["noms_sing"][$_GET['v']])) {
$template->assign('type', 'vaisseaux');
$t = intval(gpc('v'));
$template->assign('id', $t);
@ -117,9 +103,7 @@ elseif (isset($_GET['v']) && is_numeric($_GET['v']) && !empty($LANG[$race]["vais
$template->assign('etat', dSpatial::needed($t, $planete, $race));
$template->assign('caract', array($nomvais_at[$t], $nomvais_bc[$t], $nomvais_pv[$t], $nomvais_rs[$t]));
}
elseif (isset($_GET['d']) && is_numeric($_GET['d']) && !empty($LANG[$race]["terrestre"]["noms_sing"][$_GET['d']]))
{
} elseif (isset($_GET['d']) && is_numeric($_GET['d']) && !empty($LANG[$race]["terrestre"]["noms_sing"][$_GET['d']])) {
$template->assign('type', 'terrestre');
$t = gpc('d');
$template->assign('id', $t);
@ -128,14 +112,11 @@ elseif (isset($_GET['d']) && is_numeric($_GET['d']) && !empty($LANG[$race]["terr
$template->assign('ressourcesNext', array(dTerrestre::metal($t, 1, $planete), dTerrestre::cristal($t, 1, $planete), dTerrestre::hydrogene($t, 1, $planete), dTerrestre::temps($t, 1, $planete)));
$template->assign('etat', dTerrestre::needed($t, $planete, true));
if ($t-8 >= 0)
{
if ($t-8 >= 0) {
$t -= 8;
$template->assign('caract', array($defense_at[$t], $defense_bc[$t], $defense_pv[$t]));
}
}
elseif (isset($_GET['c']) && is_numeric($_GET['c']) && !empty($LANG[$race]["caserne"]["noms_sing"][$_GET['c']]))
{
} elseif (isset($_GET['c']) && is_numeric($_GET['c']) && !empty($LANG[$race]["caserne"]["noms_sing"][$_GET['c']])) {
$template->assign('type', 'caserne');
$t = gpc('c');
$template->assign('id', $t);
@ -145,9 +126,8 @@ elseif (isset($_GET['c']) && is_numeric($_GET['c']) && !empty($LANG[$race]["case
$template->assign('etat', dCaserne::needed($t, $planete, true));
$template->assign('caract', array('!!', '!!', '!!'));
}
else
} else {
redirection('?p=accueil');
}
unset($t, $race);
?>

View file

@ -1,79 +1,75 @@
<?php
if(!defined('INDEX') || SURFACE != "asteroide") { header('Location: ../'); exit; }
if (!defined('INDEX') || SURFACE != "asteroide") {
header('Location: ../');
exit;
}
$onglet = strtolower(gpc('o'));
if ($onglet == "new")
{
if ($onglet == "new") {
$page = "diplomatie/nouveau";
//On vérifie que le joueur ait les permissions pour modifier les grades
if (!($planete->permissions_alliance &8))
if (!($planete->permissions_alliance &8)) {
erreur("Vous n'avez pas le grade nécessaire pour créer des pactes !");
}
$type = intval(gpc("type", 'post'));
$nom_alli = gpc("nom_alli", 'post');
if (isset($_POST["type"]) && !empty($nom_alli) && $type >= 0 && $type < 5)
{
if (isset($_POST["type"]) && !empty($nom_alli) && $type >= 0 && $type < 5) {
$bdd->reconnexion();
$bdd->escape($nom_alli);
$alli = $bdd->unique_query("SELECT id FROM $table_alliances WHERE nom_alliance LIKE '$nom_alli';");
if (empty($alli))
if (empty($alli)) {
erreur("Impossible de trouver cette alliance. Vérifiez le nom !");
}
//On détecte tous les types de pactes en cas de guerre (pour éviter d'attaquer avec un pacte de non agression !
if ($type)
if ($type) {
$pacte = $bdd->query("SELECT id FROM $table_alliances_pactes WHERE type = $type AND time_fin = 0 AND (accepte = 0 OR accepte = 1) AND ((id_alliance1 = ".$planete->id." AND id_alliance2 = ".$alli['id'].") OR (id_alliance2 = ".$planete->id." AND id_alliance1 = ".$alli['id']."));");
else
} else {
$pacte = $bdd->query("SELECT id FROM $table_alliances_pactes WHERE time_fin = 0 AND (accepte = 0 OR accepte = 1) AND ((id_alliance1 = ".$planete->id." AND id_alliance2 = ".$alli['id'].") OR (id_alliance2 = ".$planete->id." AND id_alliance1 = ".$alli['id']."));");
}
if (!empty($pacte) && !$type)
if (!empty($pacte) && !$type) {
erreur("Avant de déclarer une guerre, veuillez abroger tous vos pactes de paix !");
elseif (!empty($pacte))
} elseif (!empty($pacte)) {
erreur("Vous avez déjà un pacte similaire avec cette alliance !");
}
if ($type)
if ($type) {
$bdd->query("INSERT INTO $table_alliances_pactes (id_alliance1, id_alliance2, type, time_creation) VALUES (".$planete->id.", ".$alli['id'].", $type, ".time().");");
else
} else {
$bdd->query("INSERT INTO $table_alliances_pactes (id_alliance1, id_alliance2, type, time_creation, accepte) VALUES (".$planete->id.", ".$alli['id'].", $type, ".time().", 1);");
}
$bdd->deconnexion();
if ($type)
if ($type) {
erreur("La demande de pacte a bien été enregistrée.", "green");
else
} else {
erreur("La déclaration a bien été enregistrée.", "green");
}
elseif(!empty($_GET['c']))
{
} elseif (!empty($_GET['c'])) {
$id = intval(gpc('c'));
$bdd->reconnexion();
$demand = $bdd->unique_query("SELECT id_alliance1, id_alliance2, accepte FROM $table_alliances_pactes WHERE id = $id AND (id_alliance2 = ".$planete->id." OR id_alliance1 = ".$planete->id.") AND type = 0;");
if (!isset($demand['accepte']) || ($demand['accepte'] == 1 && $planete->id == $demand['id_alliance2']) || ($demand['accepte'] == 2 && $planete->id == $demand['id_alliance1']))
{
if (!isset($demand['accepte']) || ($demand['accepte'] == 1 && $planete->id == $demand['id_alliance2']) || ($demand['accepte'] == 2 && $planete->id == $demand['id_alliance1'])) {
$bdd->deconnexion();
erreur("Impossible de demander le cesser le feu, n'êtes-vous pas dans la position du demandeur !");
}
elseif ($demand['accepte'] == 0)
{
} elseif ($demand['accepte'] == 0) {
$bdd->deconnexion();
erreur("Une demande de cesser le feu est déjà en cours !");
}
elseif ($demand['accepte'] == 1)
{
} elseif ($demand['accepte'] == 1) {
$bdd->query("UPDATE $table_alliances_pactes SET accepte = 0 WHERE id = $id AND id_alliance1 = ".$planete->id." AND accepte = 1;");
$bdd->deconnexion();
erreur("La demande de cesser le feu a bien été transmise.", "green");
}
elseif ($demand['accepte'] == 2)
{
} elseif ($demand['accepte'] == 2) {
$bdd->query("UPDATE $table_alliances_pactes SET accepte = 0, id_alliance2 = id_alliance1, id_alliance1 = ".$planete->id." WHERE id = $id AND id_alliance2 = ".$planete->id." AND accepte = 2;");
$bdd->deconnexion();
erreur("La demande de cesser le feu a bien été transmise.", "green");
}
}
}
elseif ($onglet == "archives")
{
} elseif ($onglet == "archives") {
$page = "diplomatie/archives";
$bdd->reconnexion();
@ -91,9 +87,7 @@ elseif ($onglet == "archives")
$template->assign("guerres", $guerres);
$template->assign("pcs", $pc);
$template->assign("pms", $pm);
}
elseif ($onglet == "encours")
{
} elseif ($onglet == "encours") {
$page = "diplomatie/encours";
$bdd->reconnexion();
@ -115,62 +109,44 @@ elseif ($onglet == "encours")
$template->assign("guerres", $guerres);
$template->assign("pcs", $pc);
$template->assign("pms", $pm);
}
else
{
} else {
$onglet = "actus";
$page = "diplomatie/general";
if ($planete->permissions_alliance &8)
{
if (!empty($_GET['a']))
{
if ($planete->permissions_alliance &8) {
if (!empty($_GET['a'])) {
$id = intval(gpc('a'));
$bdd->reconnexion();
$demand = $bdd->unique_query("SELECT type FROM $table_alliances_pactes WHERE id = $id AND id_alliance2 = ".$planete->id." AND accepte = 0;");
if (!isset($demand['type']))
{
if (!isset($demand['type'])) {
$bdd->deconnexion();
erreur("Impossible de trouver le pacte !");
}
elseif ($demand['type'] == 0)
{
} elseif ($demand['type'] == 0) {
$bdd->query("UPDATE $table_alliances_pactes SET accepte = 1, time_fin = ".time()." WHERE id = $id AND id_alliance2 = ".$planete->id." AND accepte = 0;");
$bdd->deconnexion();
erreur("C'est la fin de la guerre, vous vennez d'accepter le cesser le feu !", "orange", $VAR['menu']['diplomatie']);
}
else
{
} else {
$bdd->query("UPDATE $table_alliances_pactes SET accepte = 1, time_creation = ".time()." WHERE id = $id AND id_alliance2 = ".$planete->id." AND accepte = 0;");
$bdd->deconnexion();
erreur("Le pacte a bien été accepté.", "green", $VAR['menu']['diplomatie']);
}
}
elseif (!empty($_GET['r']))
{
} elseif (!empty($_GET['r'])) {
$id = intval(gpc('r'));
$bdd->reconnexion();
$demand = $bdd->unique_query("SELECT type FROM $table_alliances_pactes WHERE id = $id AND id_alliance2 = ".$planete->id." AND accepte = 0;");
if (!isset($demand['type']))
{
if (!isset($demand['type'])) {
$bdd->deconnexion();
erreur("Impossible de trouver le pacte !");
}
elseif ($demand['type'] == 0)
{
} elseif ($demand['type'] == 0) {
$bdd->query("UPDATE $table_alliances_pactes SET accepte = 2 WHERE id = $id AND id_alliance2 = ".$planete->id." AND accepte = 0;");
$bdd->deconnexion();
erreur("La guerre continue, vous vennez de refuser le cesser le feu !<br />Se sera désormais à vous de proposer un cesser le feu à la fin de la guerre.", "orange", $VAR['menu']['diplomatie']);
}
else
{
} else {
$bdd->query("UPDATE $table_alliances_pactes SET accepte = 2 WHERE id = $id AND id_alliance2 = ".$planete->id." AND accepte = 0;");
$bdd->deconnexion();
erreur("Le pacte a bien été refusé.", "orange", $VAR['menu']['diplomatie']);
}
}
elseif (!empty($_GET['s']))
{
} elseif (!empty($_GET['s'])) {
$id = intval(gpc('s'));
$bdd->reconnexion();
$bdd->query("UPDATE $table_alliances_pactes SET time_fin = ".time()." WHERE id = $id AND (id_alliance2 = ".$planete->id." OR id_alliance1 = ".$planete->id.") AND accepte = 1;");
@ -196,4 +172,3 @@ else
$template->assign("onglet", $onglet);
unset($onglet);
?>

View file

@ -1,22 +1,29 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$titre = 'Flottes';
$page = 'flotte'; //Définition d'un nom de page inexistant, mais permet de passer le nom de l'onglet dans une erreur
include_once("Class/flotte.php");
//Création de flotte : envoi final
if (!empty($_POST['cds']) && !empty($SESS->values["prepFlottes"][$_POST['cds']]))
if (!empty($_POST['cds']) && !empty($SESS->values["prepFlottes"][$_POST['cds']])) {
require('game/flottes/envoyer.php');
}
//Restauration d'une flotte sauvegardée
elseif (isset($_GET['c']) && !empty($SESS->values["prepFlottes"][$_GET['c']]))
elseif (isset($_GET['c']) && !empty($SESS->values["prepFlottes"][$_GET['c']])) {
require('game/flottes/restaure.php');
}
//Création de flotte : page 2
elseif (!empty($_POST['envoie']) || !empty($_POST['groupe']))
elseif (!empty($_POST['envoie']) || !empty($_POST['groupe'])) {
require('game/flottes/preparer.php');
}
//Affichage du détail d'une flotte
elseif (!empty($_GET['n']))
elseif (!empty($_GET['n'])) {
require('game/flottes/details.php');
}
//Affichage de la page générale
else
else {
require('game/flottes/principal.php');
?>
}

View file

@ -1,18 +1,19 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$idN = intval(gpc('n'));
$flotteN = new Flotte($idN, false);
$flotteN->load_planete();
if ($flotteN->id_flotte == 0 || $flotteN->start_planete->id_user != $planete->id_user)
if ($flotteN->id_flotte == 0 || $flotteN->start_planete->id_user != $planete->id_user) {
erreur('Impossible de trouver cette flotte !', "red", '?p=flotte', 1500);
else
{
} else {
//Changement du nom de la flotte
if (!empty($_POST['nomflotte']))
{
if (!empty($_POST['nomflotte'])) {
$nouvNom = gpc('nomflotte', 'post');
$flotteN->nom = $nouvNom;
$flotteN->addModifFlotte("nom");
@ -21,20 +22,18 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
}
//Annulation de la mission
if (isset($_GET['a']) && isset($SESS->values['ret_fleet']) && $_GET['a'] == $SESS->values['ret_fleet'])
{
if (isset($_GET['a']) && isset($SESS->values['ret_fleet']) && $_GET['a'] == $SESS->values['ret_fleet']) {
//Calcul du temps passé depuis le lancement de la flotte
$tpsDD = time() - $flotteN->start_time;
if ($flotteN->mission == '6')
if ($flotteN->mission == '6') {
erreur('Votre flotte est déjà en train de revenir !', 'red', '?p=flotte&n='.$idN, 1500);
elseif ($flotteN->end_time > $tpsDD)
{
} elseif ($flotteN->end_time > $tpsDD) {
$bdd->query("UPDATE $table_flottes SET mission = '6', effectue = '1', end_time = $tpsDD, end_galaxie = start_galaxie, end_ss = start_ss, end_position = start_position WHERE id_user = ".$planete->id_user." AND id = $idN;");
redirection("?p=flotte&n=".$idN);
}
else
} else {
erreur('Impossible d\'annuler la mission, elle a déjà commencée.', "red", '?p=flotte&n='.$idN, 1500);
}
}
$SESS->values['ret_fleet'] = md5('HB.fleet_'.rand().'☺ß☻');
$SESS->put();
@ -45,4 +44,3 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
}
unset($idN, $flotteN, $nouvNom, $tpsDD);
?>

View file

@ -1,5 +1,8 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
//Récupération des informations envoyées
$idPrep = gpc("cds", "post");
@ -8,10 +11,11 @@ $SESS->values["prepFlottes"][$idPrep]['nom'] = gpc('nomflotte', 'post');
$SESS->values["prepFlottes"][$idPrep]['end_galaxie'] = $end_galaxie = intval(gpc('amas', 'post'));
$SESS->values["prepFlottes"][$idPrep]['end_systeme'] = $end_ss = intval(gpc('ss', 'post'));
$end_pos = gpc('pos', 'post');
if ($end_pos != "A")
if ($end_pos != "A") {
$SESS->values["prepFlottes"][$idPrep]['end_position'] = floor($end_pos);
else
} else {
$SESS->values["prepFlottes"][$idPrep]['end_position'] = $end_pos;
}
$SESS->values["prepFlottes"][$idPrep]['embarquer'] = array($EBmetal = floor(str_replace(' ', '', gpc('metal', 'post'))), $EBcristal = floor(str_replace(' ', '', gpc('cristal', 'post'))), $EBhydrogene = floor(str_replace(' ', '', gpc('hydrogene', 'post'))));
$SESS->values["prepFlottes"][$idPrep]['mission'] = $mission = intval(gpc('mission', 'post'));
$SESS->values["prepFlottes"][$idPrep]['vitesse'] = $vitesse = intval(gpc('vitesse', 'post'));
@ -20,136 +24,139 @@ $SESS->values["prepFlottes"][$idPrep]['vitesse'] = $vitesse = intval(gpc('vitess
$SESS->put();
//Vérification du nombre de vaisseaux sur la planète
foreach ($SESS->values["prepFlottes"][$idPrep]['vaisseaux'] as $key => $vaisseau)
{
foreach ($SESS->values["prepFlottes"][$idPrep]['vaisseaux'] as $key => $vaisseau) {
//On vérifie qu'il y a suffisamment de vaisseaux sur la planète
if ($planete->vaisseaux[$key] < $vaisseau)
if ($planete->vaisseaux[$key] < $vaisseau) {
erreur('Vous n\'avez pas assez de vaisseaux sur cette planète pour envoyer cette flotte !', "red", $VAR["menu"]["flotte"]);
}
}
//Vérification des conditions de mission
if ($mission <= 0 || $mission > 7 || ($SESS->values["prepFlottes"][$idPrep]['type'] == 3 && $mission != 3 && $mission != 2))
if ($mission <= 0 || $mission > 7 || ($SESS->values["prepFlottes"][$idPrep]['type'] == 3 && $mission != 3 && $mission != 2)) {
erreur("La mission sélectionnée est incorrecte !", "red", $VAR["menu"]["flotte"]);
}
//Vérification que le nombre de slots ne soit pas dépassé
if (slots($planete->id_user) <= 0)
if (slots($planete->id_user) <= 0) {
erreur('Vous ne pouvez pas envoyer plus de flottes simultanément.', "red", $VAR["menu"]["flotte"]);
}
//Vérifications en cas de mission colonisation
if ($mission == 2)
{
if ($mission == 2) {
//On vérifie la mission, si elle est de coloniser, il faut qu'il y ait des vaisseaux de colonisation
if ($SESS->values["prepFlottes"][$idPrep]['vaisseaux'][2] <= 0)
if ($SESS->values["prepFlottes"][$idPrep]['vaisseaux'][2] <= 0) {
erreur('Vous ne pouvez pas coloniser sans vaisseau de colonisation !', "red", $VAR["menu"]["flotte"]);
}
//On vérifie qu'une colonisation d'asteroide soit bien faite par un fondateur d'alliance en cours de création
if ($end_pos == "A")
{
if ($end_pos == "A") {
$bdd->reconnexion();
$resultat = $bdd->unique_query("SELECT id FROM $table_alliances_creation WHERE fondateur = ".$planete->id_user.";");
$bdd->deconnexion();
if (!$resultat)
if (!$resultat) {
erreur('Fonder d\'abord une alliance avant de coloniser un astéroide !', "red", $VAR["menu"]["flotte"]);
}
}
}
//On vérifie que les attaques soient bien activées
if ($mission == 3 && !$VAR["attaques"])
if ($mission == 3 && !$VAR["attaques"]) {
erreur('Les attaques sont désactivées pour le moment. Pour plus d\'informations, <a href="'.$VAR["menu"]["forums"].'">consultez le forum</a>.', "red", $VAR["menu"]["flotte"], 5000);
}
//On vérifie la mission, si elle est de recycler, il faut qu'il y ait des reclycleurs
if ($mission == 4 && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][3] <= 0)
if ($mission == 4 && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][3] <= 0) {
erreur('Vous ne pouvez pas recycler sans recycleur !', "red", $VAR["menu"]["flotte"]);
}
//On vérifie la mission, si elle est d'espionner, il faut qu'il y ait des sondes
if ($mission == 5 && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][6] <= 0 && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][13] <= 0)
if ($mission == 5 && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][6] <= 0 && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][13] <= 0) {
erreur('Vous ne pouvez pas espionner sans sonde d\'espionnage !', "red", '?p=flotte');
}
//Vérification que la destination ne soit pas en dehors de la galaxie
if ($end_galaxie > $VAR['nb_amas'] || $end_ss > $VAR['nb_systeme'] || $end_galaxie < 0 || $end_ss < 1 || (($end_pos > $VAR['nb_planete'] || $end_pos < 1) && $end_pos != "A") || ($end_galaxie < 1 && $SESS->level < 6))
if ($end_galaxie > $VAR['nb_amas'] || $end_ss > $VAR['nb_systeme'] || $end_galaxie < 0 || $end_ss < 1 || (($end_pos > $VAR['nb_planete'] || $end_pos < 1) && $end_pos != "A") || ($end_galaxie < 1 && $SESS->level < 6)) {
erreur('La destination de la flotte n\'est pas correcte.', "red", '?p=flotte');
}
//On vérifie que l'on possède assez de ressources
if ((!empty($EBmetal) && !$EBmetal > $planete->metal) || (!empty($EBcristal) && !$EBcristal > $planete->cristal) || (!empty($EBhydrogene) && !$EBhydrogene > $planete->hydrogene))
if ((!empty($EBmetal) && !$EBmetal > $planete->metal) || (!empty($EBcristal) && !$EBcristal > $planete->cristal) || (!empty($EBhydrogene) && !$EBhydrogene > $planete->hydrogene)) {
erreur('Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.', "red", '?p=flotte');
}
//On vérifie que l'on n'envoie pas des ressources négatives
if ((!empty($EBmetal) && $EBmetal < 0) || (!empty($EBcristal) && $EBcristal < 0) || (!empty($EBhydrogene) && $EBhydrogene < 0))
if ((!empty($EBmetal) && $EBmetal < 0) || (!empty($EBcristal) && $EBcristal < 0) || (!empty($EBhydrogene) && $EBhydrogene < 0)) {
erreur('Vous avez spécifié des valeurs de ressources à embarquer incorrectes !', "red", '?p=flotte', 4000);
}
//On vérifie la vitesse de la flotte
if (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 100)
if (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 100) {
erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte');
}
//Recherche de la planète ou de l'astéroïde
if ($end_pos == "A")
{
if ($end_pos == "A") {
$bdd->reconnexion();
$resultat = $bdd->unique_query("SELECT id, id AS id_user, debris_met, debris_cri FROM $table_alliances WHERE galaxie = $end_galaxie AND ss = $end_ss;");
$bdd->deconnexion();
}
else
{
} else {
$bdd->reconnexion();
$resultat = $bdd->unique_query("SELECT id, id_user, debris_met, debris_cri FROM $table_planete WHERE galaxie = $end_galaxie AND ss = $end_ss AND position = $end_pos;");
$bdd->deconnexion();
}
//On vérifie qu'il n'y ait pas une interaction entre deux multi-comptes
if (count($multi) > 1 && ($mission == 1 || $mission == 6 || $mission == 7))
{
foreach($multi as $test)
{
if ($test['id_util'] == $resultat['id_user'])
if (count($multi) > 1 && ($mission == 1 || $mission == 6 || $mission == 7)) {
foreach ($multi as $test) {
if ($test['id_util'] == $resultat['id_user']) {
erreur('Vous ne pouvez pas avoir d\'interaction avec ce joueur pour raison de multi-compte (voir page d\'accueil).');
}
}
}
if ($mission == 1 && !$resultat)
if ($mission == 1 && !$resultat) {
erreur('Impossible de transporter des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000);
elseif ($mission == 2 && $resultat)
{
if ($end_pos != "A")
} elseif ($mission == 2 && $resultat) {
if ($end_pos != "A") {
erreur('La planète que vous voulez coloniser est déjà habitée.', "red", '?p=flotte', 3000);
else
} else {
erreur('L\'astéroide que vous voulez coloniser est déjà habitée.', "red", '?p=flotte', 3000);
}
}
//Si la mission est d'attaquer, on vérifie que le joueur cible ne soit pas ne mode vacances ou qu'il soit tout jeune
elseif ($mission == 3 && $end_pos != "A")
{
elseif ($mission == 3 && $end_pos != "A") {
$bdd->reconnexion();
$resultatu = $bdd->unique_query("SELECT mv, time_inscription FROM $table_user WHERE id = ".$resultat['id_user'].";");
$bdd->deconnexion();
if ($resultatu['mv'] > 0)
erreur('Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.', "red", '?p=flotte', 3000); //TODO Mettre le numéro du mode vacances et non > 0 !!!
elseif ($resultatu['time_inscription'] + 604800 > time())
if ($resultatu['mv'] > 0) {
erreur('Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.', "red", '?p=flotte', 3000);
} //TODO Mettre le numéro du mode vacances et non > 0 !!!
elseif ($resultatu['time_inscription'] + 604800 > time()) {
erreur('Le joueur que vous tentez d\'attaquer s\'est inscrit récemment, laissez-lui le temps de se préparer au combat !', "red", '?p=flotte', 3000);
elseif (!$resultat)
} elseif (!$resultat) {
erreur('La planète que vous tentez d\'attaquer est inhabitée.', "red", '?p=flotte');
elseif ($resultat['id_user'] == $planete->id_user)
} elseif ($resultat['id_user'] == $planete->id_user) {
erreur('La planète que vous tentez d\'attaquer vous appartient.', "red", '?p=flotte');
}
elseif ($mission == 4 && ($resultat['debris_met'] <= 0 || $resultat['debris_cri'] <= 0) && empty($SESS->values['forceFlotte']))
{
}
} elseif ($mission == 4 && ($resultat['debris_met'] <= 0 || $resultat['debris_cri'] <= 0) && empty($SESS->values['forceFlotte'])) {
$SESS->values['forceFlotte'] = true;
$SESS->put();
erreur('Il n\'y a rien à recycler sur la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'].<br />Vous pouvez forcer le lancement de la flotte en rechargeant cette page.', "orange");
}
//TODO Autoriser l'espionnage sur les planètes inhabités
elseif ($mission == 5)
{
if (!$resultat)
elseif ($mission == 5) {
if (!$resultat) {
erreur('Impossible d\'espionner la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000);
elseif ($end_pos != "A" && $resultat['id_user'] == $planete->id_user)
} elseif ($end_pos != "A" && $resultat['id_user'] == $planete->id_user) {
erreur('La planète que vous désirez espionner vous appartient !', "red", '?p=flotte', 3000);
}
elseif ($mission == 6 && $resultat['id_user'] != $planete->id_user && $resultat['id_user'] != $planete->id_alliance)
}
} elseif ($mission == 6 && $resultat['id_user'] != $planete->id_user && $resultat['id_user'] != $planete->id_alliance) {
erreur('La planète sur laquelle vous désirez stationner ne vous appartient pas.', "red", '?p=flotte', 3000);
elseif ($mission == 7 && !$resultat)
} elseif ($mission == 7 && !$resultat) {
erreur('La planète sur laquelle vous désirez donner vos vaisseaux n\'existe pas.', "red", '?p=flotte', 3000);
}
//Création de la flotte
@ -159,4 +166,3 @@ $SESS->values["prepFlottes"][$idPrep]["statut"] = 2;
$SESS->put();
erreur('Votre flotte a été envoyée avec succès.', "green", '?p=flotte', 4000);
?>

View file

@ -1,5 +1,8 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
//Génération d'un ID unique pour identifier la flotte durant sa création
$idPrep = random();
@ -9,29 +12,29 @@ $SESS->values["prepFlottes"][$idPrep] = array();
//On récupère les vaisseaux à envoyer
$nombreVaisseau = 0;
foreach ($planete->vaisseaux as $key => $vaisseau)
{
foreach ($planete->vaisseaux as $key => $vaisseau) {
$v = gpc('v'.$key, 'post');
if (!is_numeric($v) || $v < 0)
if (!is_numeric($v) || $v < 0) {
$v = 0;
}
$SESS->values["prepFlottes"][$idPrep]['vaisseaux'][$key] = $v;
$nombreVaisseau += $v;
}
//On vérifie que l'utilisateur a bien envoyé plus d'un vaisseau
if ($nombreVaisseau <= 0)
{
if ($nombreVaisseau <= 0) {
unset($SESS->values["prepFlottes"][$idPrep]);
erreur('Vous devez envoyer au moins un vaisseau.', "red", '?p=flotte');
}
//On définit le type de la flotte (utilisateur ou alliance)
if (!empty($_POST['envoie']))
if (!empty($_POST['envoie'])) {
$SESS->values["prepFlottes"][$idPrep]['type'] = 1;
elseif (!empty($_POST['groupe']))
} elseif (!empty($_POST['groupe'])) {
$SESS->values["prepFlottes"][$idPrep]['type'] = 2;
else
die ('Erreur !');
} else {
die('Erreur !');
}
//On enregistre les paramètres en session
$SESS->values["prepFlottes"][$idPrep]['nbVaisseaux'] = $nombreVaisseau;
@ -44,4 +47,3 @@ unset($nombreVaisseau, $key, $vaisseau, $v);
header('Location: ?p=flotte&c='.$idPrep);
exit;
?>

View file

@ -1,44 +1,44 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$page = 'flotte1';
//Demande de mise à jour des tactiques par défaut
$attaque = gpc('attaque', 'post');
$defense = gpc('defense', 'post');
if (is_numeric($attaque) && is_numeric($defense))
{
if (is_numeric($attaque) && is_numeric($defense)) {
$chang = false;
if (($attaque != $planete->combatAT_tactique) && (($attaque == 1 && $planete->technologies[3] & 4096) || ($attaque == 2 && $planete->technologies[3] & 8192) || ($attaque == 3 && $planete->technologies[3] & 16384) || $attaque == 0))
{
if (($attaque != $planete->combatAT_tactique) && (($attaque == 1 && $planete->technologies[3] & 4096) || ($attaque == 2 && $planete->technologies[3] & 8192) || ($attaque == 3 && $planete->technologies[3] & 16384) || $attaque == 0)) {
$planete->combatAT_tactique = $attaque;
$planete->addModifUser('combatAT_tactique');
$chang = true;
}
if (($defense != $planete->combatDE_tactique) && (($defense == 1 && $planete->technologies[3] & 4096) || ($defense == 2 && $planete->technologies[3] & 8192) || ($defense == 3 && $planete->technologies[3] & 16384) || $defense == 0))
{
if (($defense != $planete->combatDE_tactique) && (($defense == 1 && $planete->technologies[3] & 4096) || ($defense == 2 && $planete->technologies[3] & 8192) || ($defense == 3 && $planete->technologies[3] & 16384) || $defense == 0)) {
$planete->combatDE_tactique = $defense;
$planete->addModifUser('combatDE_tactique');
$chang = true;
}
if ($chang)
if ($chang) {
erreur('Tactiques mises à jour avec succès.', 'green', '?p=flotte', 1100);
}
}
unset($attaque, $defense, $chang);
//Affichage des flottes en cours dans la galaxie
$bdd->reconnexion();
if (SURFACE == "asteroide")
if (SURFACE == "asteroide") {
$flottes = $bdd->query("SELECT id FROM $table_flottes WHERE id_alliance = ".$planete->id.";");
else
} else {
$flottes = $bdd->query("SELECT id FROM $table_flottes WHERE id_user = ".$planete->id_user.";");
}
$bdd->deconnexion();
//Extraction des flottes en cours
if ($flottes)
{
foreach ($flottes as $key => $flotte)
{
if ($flottes) {
foreach ($flottes as $key => $flotte) {
$flottes[$key] = new Flotte($flotte['id']);
$flottes[$key]->load_planete();
}
@ -46,42 +46,44 @@ $page = 'flotte1';
}
//Calcul du nombre de slot disponible et vérouillage de l'envoie si besoin
if ($flottes)
if ($flottes) {
$nbFlottes = count($flottes);
else
} else {
$nbFlottes = 0;
if (SURFACE == "asteroide")
{
if ($planete->batiments[2] == 1)
}
if (SURFACE == "asteroide") {
if ($planete->batiments[2] == 1) {
$slots = 1;
elseif ($planete->batiments[2] == 2)
} elseif ($planete->batiments[2] == 2) {
$slots = 2;
elseif ($planete->batiments[2] == 3)
} elseif ($planete->batiments[2] == 3) {
$slots = 4;
elseif ($planete->batiments[2] == 4)
} elseif ($planete->batiments[2] == 4) {
$slots = 7;
elseif ($planete->batiments[2] == 5)
} elseif ($planete->batiments[2] == 5) {
$slots = 14;
else
} else {
$slots = 0;
}
$slots -= $nbFlottes;
}
else
} else {
$slots = count($queryPlanetes)-$nbFlottes;
}
if ($slots > 0)
if ($slots > 0) {
//$template->assign('action', '<input class="submit" name="envoie" type="submit" value="Envoyer flotte" /> <input class="submit" name="groupe" type="submit" value="Envoye groupé" />');
$template->assign('action', '<input class="submit" name="envoie" type="submit" value="Ok" />');
else
} else {
$template->assign('action', '<span class="lack">Nombre de flottes maximum simultanées atteint</span>');
}
$template->assign('nbflotte', $nbFlottes);
$template->assign('nbflottemax', $slots + $nbFlottes);
//Affichage des flottes en préparation
if (isset($SESS->values["prepFlottes"]))
if (isset($SESS->values["prepFlottes"])) {
$template->assign('flottesEP', $SESS->values["prepFlottes"]);
}
unset($nbFlottes, $slots, $flottes, $flotte, $key);
?>

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