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 arch: amd64
steps: 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 - name: publish
image: plugins/docker image: plugins/docker
settings: 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 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 //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) function infoPlan($galaxie, $ss, $pos, $info)
{ {
$base = new BDD(); $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('race', $SESS->values['race']);
$template->assign("tpsdejeu", "un certain temps"); $template->assign("tpsdejeu", "un certain temps");
if (!empty($SESS->values['souscontrole'])) if (!empty($SESS->values['souscontrole'])) {
{
$pagea = 'erreur'; $pagea = 'erreur';
$SESS->values['id'] = $SESS->values['souscontrole'][0]; $SESS->values['id'] = $SESS->values['souscontrole'][0];
@ -35,17 +33,14 @@ if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connecte
$SESS->put(); $SESS->put();
$template->assign('message', 'Droits rétablis avec succès !<br />'); $template->assign('message', 'Droits rétablis avec succès !<br />');
} } else {
else
{
$id_user = $SESS->values['id']; $id_user = $SESS->values['id'];
if (!isset($_GET['p'])) if (!isset($_GET['p'])) {
$_GET['p'] = ''; $_GET['p'] = '';
if ($SESS->level >= 5) }
{ if ($SESS->level >= 5) {
switch($_GET['p']) switch ($_GET['p']) {
{
case 'djoueurs': case 'djoueurs':
include("admin/supprimer_joueur.php"); include("admin/supprimer_joueur.php");
break; break;
@ -75,10 +70,8 @@ if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connecte
break; break;
} }
} }
if (empty($pagea)) if (empty($pagea)) {
{ switch ($_GET['p']) {
switch($_GET['p'])
{
case 'courrier': case 'courrier':
include("admin/mail.php"); include("admin/mail.php");
break; break;
@ -119,7 +112,6 @@ if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connecte
$template->assign('titre', $titre); $template->assign('titre', $titre);
$template->assign('pagea', $pagea); $template->assign('pagea', $pagea);
$template->display('admin/'.$pagea.'.tpl'); $template->display('admin/'.$pagea.'.tpl');
} } else {
else
header('Location: '.$VAR['first_page']); header('Location: '.$VAR['first_page']);
?> }

View file

@ -13,29 +13,24 @@ require_once("donnees.php");
$SESS = new Session(); $SESS = new Session();
//On vérifie si le client est connecté sur le site //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"); include_once("Class/user.php");
$user = new User($SESS->values['id']); $user = new User($SESS->values['id']);
if (!empty($user->id_alliance)) if (!empty($user->id_alliance)) {
{ if (isset($_POST['message'])) {
if (isset($_POST['message']))
{
$message = htmlentities(trim(gpc("message", "post"))); $message = htmlentities(trim(gpc("message", "post")));
if (!empty($message) || $message == "0") if (!empty($message) || $message == "0") {
{
$bdd = new BDD(); $bdd = new BDD();
$bdd->escape($message); $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->query("INSERT INTO $table_alliances_chat (id_alliance, emetteur, timestamp, message) VALUES (".$user->id_alliance.", ".$user->id_user.", ".time().", '$message');");
$bdd->deconnexion(); $bdd->deconnexion();
} }
} } else {
else if (!empty($_GET['time'])) {
{
if (!empty($_GET['time']))
$time = intval(gpc("time"))." ORDER BY timestamp DESC"; $time = intval(gpc("time"))." ORDER BY timestamp DESC";
else } else {
$time = "0 ORDER BY timestamp DESC LIMIT 15"; $time = "0 ORDER BY timestamp DESC LIMIT 15";
}
$bdd = new BDD(); $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;"); $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); define("INDEX", 1);
$chrono_start = microtime(); $chrono_start = microtime();
$onyx = @file_get_contents('./.onyx') or die("Configuration introuvable."); $onyx = @file_get_contents('./.onyx') or die("Configuration introuvable.");
define("_FCORE",trim($onyx)); define("_FCORE", trim($onyx));
require(_FCORE."../game/Class/JSON.php"); require(_FCORE."../game/Class/JSON.php");
require_once(_FCORE."common.php"); require_once(_FCORE."common.php");
@ -34,9 +34,13 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
if (!empty($destin)) { if (!empty($destin)) {
$chapeau->escape($destin); $chapeau->escape($destin);
$queryPlaneteRapid = $chapeau->unique_query("SELECT nom_planete, galaxie, ss, position FROM $table_planete WHERE id = $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_galaxie = $queryPlanete['galaxie'];
$start_ss = $queryPlanete['ss']; $start_ss = $queryPlanete['ss'];
$start_position = $queryPlanete['position']; $start_position = $queryPlanete['position'];
@ -44,12 +48,15 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$met = gpc('met', 'post'); $met = gpc('met', 'post');
$cri = gpc('cri', 'post'); $cri = gpc('cri', 'post');
$hyd = gpc('hyd', '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); if (!empty($sess->values['flcontenu']) && $met+$cri+$hyd >= 0 && $met >= 0 && $cri >= 0 && $hyd >= 0) {
else $places = 'inconnu'; $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( $datas = array(
'root' => array( 'root' => array(
'destination' => $destinRapid, 'destination' => $destinRapid,
@ -60,7 +67,7 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
'places' => separerNombres($places) '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( $datas = array(
'root' => array( 'root' => array(
'destination' => $destinRapid, 'destination' => $destinRapid,
@ -71,7 +78,7 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
'places' => separerNombres($places) '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( $datas = array(
'root' => array( 'root' => array(
'destination' => $destinRapid, 'destination' => $destinRapid,
@ -82,10 +89,12 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
'places' => separerNombres($places) 'places' => separerNombres($places)
) )
); );
else { } else {
$_POST['vitesse'] /= 100; $_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']); $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; if ($temps <= 0) {
$temps = 454;
}
$conso = vais_conso($temps, $sess->values['flnbvais'])*$_POST['vitesse']/45; $conso = vais_conso($temps, $sess->values['flnbvais'])*$_POST['vitesse']/45;
$places -= ceil($conso*$nbtrajet); $places -= ceil($conso*$nbtrajet);
$tactique = ''; $tactique = '';
@ -111,16 +120,18 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
); );
header("X-JSON: ".$json->encode($datas)); header("X-JSON: ".$json->encode($datas));
exit; 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 />'; $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->values['flcds'] = $cds;
$sess->put(); $sess->put();
$datas = array( $datas = array(
@ -138,4 +149,3 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$chapeau->deconnexion(); $chapeau->deconnexion();
header("X-JSON: ".$json->encode($datas)); 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(); $chrono_start = microtime();
//Inclusion de l'API Onyx //Inclusion de l'API Onyx
$onyx = @file_get_contents('./.onyx') or die("Configuration introuvable."); $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"); require_once(_FCORE."common.php");
$race = 'humain'; $race = 'humain';
require_once(_FCORE."../game/noms.php"); require_once(_FCORE."../game/noms.php");
@ -12,30 +12,24 @@ require_once(_FCORE."../game/vars.php");
$tree = array(); $tree = array();
foreach($technologiesCALC as $keyB => $branche) foreach ($technologiesCALC as $keyB => $branche) {
{
print "<h3><ins>Branche :</ins> ".$technologiesVAR[$keyB]."</h3>"; 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 />"; print $tech[0].' : '.$technolo[$keyB][$keyT]."<br />";
if ($tech[1] > 0) if ($tech[1] > 0) {
{
print '<em><ins>Requiert :</ins>'; print '<em><ins>Requiert :</ins>';
foreach($branche as $keyR => $req) foreach ($branche as $keyR => $req) {
{ if ($req[0]&$tech[1]) {
if ($req[0]&$tech[1])
print ' '.$technolo[$keyB][$keyR].','; print ' '.$technolo[$keyB][$keyR].',';
} }
print '</em><br />';
} }
else print '</em><br />';
{ } else {
print '<em>Ne requiert aucune technologie</em><br />'; print '<em>Ne requiert aucune technologie</em><br />';
$tree[] = array($tech); $tree[] = array($tech);
} }
print "<br />"; print "<br />";
} }
} }
echo("\n<!--Page générée en : ".round((array_sum(explode(' ', microtime()))) - (array_sum(explode(' ', $chrono_start))), 4)." secondes.-->"); 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); define("INDEX", 1);
$chrono_start = microtime(); $chrono_start = microtime();
$onyx = @file_get_contents('./.onyx') or die("Configuration introuvable."); $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."kernel.php");
require_once(_FCORE."../game/tables.php"); require_once(_FCORE."../game/tables.php");
$action = intval(gpc('a')); $action = intval(gpc('a'));
if (isset($sess->values['race'])) $race = $sess->values['race']; if (isset($sess->values['race'])) {
else $race = gpc('r'); $race = $sess->values['race'];
} else {
$race = gpc('r');
}
$bdd = new BDD(); $bdd = new BDD();
$bdd->connexion(); $bdd->connexion();
$act = $bdd->unique_query("SELECT nom FROM $table_bourse WHERE id = $action;"); $act = $bdd->unique_query("SELECT nom FROM $table_bourse WHERE id = $action;");
$bdd->deconnexion(); $bdd->deconnexion();
if (empty($act)) exit; if (empty($act)) {
exit;
}
$values = array(); $values = array();
$values_label = array(); $values_label = array();
@ -23,16 +28,20 @@ $values_abscisse = array();
//Extraction des derniers pourcentages //Extraction des derniers pourcentages
$filename = ''; $filename = '';
$i = 6; $i = 6;
while(!is_file($filename)) { while (!is_file($filename)) {
$i++; $i++;
if ($i > 14) break; if ($i > 14) {
break;
}
$filename = _FCORE."../game/cache/bourse/".$action.".".strftime('%Y%m%d', time() - 86400 * $i).".bourse"; $filename = _FCORE."../game/cache/bourse/".$action.".".strftime('%Y%m%d', time() - 86400 * $i).".bourse";
} }
if (!is_file($filename)) { if (!is_file($filename)) {
$i = 7; $i = 7;
while(!is_file($filename)) { while (!is_file($filename)) {
$i--; $i--;
if ($i < 0) break; if ($i < 0) {
break;
}
$filename = _FCORE."../game/cache/bourse/".$action.".".strftime('%Y%m%d', time() - 86400 * $i).".bourse"; $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"); $handle = fopen($filename, "r");
while (!feof($handle)) { while (!feof($handle)) {
$r = fgets($handle); $r = fgets($handle);
if (preg_match('#;#', $r)) $last = $r; if (preg_match('#;#', $r)) {
$last = $r;
}
} }
fclose($handle); fclose($handle);
$calc = $last = explode(';', $last); $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"; $filename = _FCORE."../game/cache/bourse/".$action.".".strftime('%Y%m%d', time() - 86400 * $i).".bourse";
if (is_file($filename)) { if (is_file($filename)) {
$handle = fopen($filename, "r"); $handle = fopen($filename, "r");
while (!feof($handle)) { while (!feof($handle)) {
$r = fgets($handle); $r = fgets($handle);
if (preg_match('#;#', $r)) $last = $r; if (preg_match('#;#', $r)) {
$last = $r;
}
} }
fclose($handle); fclose($handle);
$last = explode(';', $last); $last = explode(';', $last);
} }
$evolution = intval(($last[1]/$calc[1] - 1) * 100); $evolution = intval(($last[1]/$calc[1] - 1) * 100);
$values[] = $evolution; $values[] = $evolution;
if ($evolution >= 0 ) $evolution = '+'.$evolution; if ($evolution >= 0) {
$evolution = '+'.$evolution;
}
$values_label[] = $evolution.'%'; $values_label[] = $evolution.'%';
$values_abscisse[] = ucfirst(strftime('%a', time() - 86400 * $i)); $values_abscisse[] = ucfirst(strftime('%a', time() - 86400 * $i));
} }
//* //*
require_once ("../jpgraph/jpgraph.php"); require_once("../jpgraph/jpgraph.php");
require_once ("../jpgraph/jpgraph_line.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 = new Graph(282, 200);
$graph->SetScale("textlin"); $graph->SetScale("textlin");
$graph->img->SetMargin(40,20,20,40); $graph->img->SetMargin(40, 20, 20, 40);
$lineplot=new LinePlot($values); $lineplot=new LinePlot($values);
$lineplot->mark->SetType(MARK_UTRIANGLE); $lineplot->mark->SetType(MARK_UTRIANGLE);
$lineplot->value->show(); $lineplot->value->show();
$lineplot->value->SetFont(FF_FONT1,FS_BOLD); $lineplot->value->SetFont(FF_FONT1, FS_BOLD);
$lineplot->value->SetFormat('%0.1f'); $lineplot->value->SetFormat('%0.1f');
//Définition des couleurs //Définition des couleurs
@ -91,8 +109,7 @@ if ($race == "covenant") {
$graph->yaxis->title->SetColor("white"); $graph->yaxis->title->SetColor("white");
$graph->title->SetColor("white"); $graph->title->SetColor("white");
$lineplot->SetColor("#c00000"); $lineplot->SetColor("#c00000");
} } else {
else {
$graph->yaxis->SetColor("#00DD00"); $graph->yaxis->SetColor("#00DD00");
$lineplot->SetFillColor("cyan@0.8"); $lineplot->SetFillColor("cyan@0.8");
$lineplot->value->SetColor('#FF0000'); $lineplot->value->SetColor('#FF0000');
@ -107,19 +124,19 @@ $graph->title->Set($act['nom']);
$graph->yaxis->title->Set("Evolution (%)"); $graph->yaxis->title->Set("Evolution (%)");
$graph->xaxis->SetTickLabels($values_abscisse); $graph->xaxis->SetTickLabels($values_abscisse);
$graph->title->SetFont(FF_FONT1,FS_BOLD); $graph->title->SetFont(FF_FONT1, FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD); $graph->yaxis->title->SetFont(FF_FONT1, FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD); $graph->xaxis->title->SetFont(FF_FONT1, FS_BOLD);
$lineplot->SetWeight(2); $lineplot->SetWeight(2);
$graph->Stroke(); $graph->Stroke();
exit; exit;
//*/ //*/
require_once (_FCORE."../artichow/LinePlot.class.php"); require_once(_FCORE."../artichow/LinePlot.class.php");
$graph = new Graph(282, 200); $graph = new Graph(282, 200);
$graph->setAntiAliasing(FALSE); $graph->setAntiAliasing(false);
$graph->border->setColor(new Color(210, 210, 210)); $graph->border->setColor(new Color(210, 210, 210));
$graph->title->set($act['nom']); $graph->title->set($act['nom']);
$graph->title->setFont(new TuffyBold(14)); $graph->title->setFont(new TuffyBold(14));
@ -156,11 +173,10 @@ $plot->xAxis->setLabelText($values_abscisse);
$plot->setSpace( $plot->setSpace(
5, /* Gauche */ 5, /* Gauche */
5, /* Droite */ 5, /* Droite */
NULL, /* Haut */ null, /* Haut */
NULL /* Bas */ null /* Bas */
); );
$graph->add($plot); $graph->add($plot);
$graph->draw(); $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("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 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 ($race == "covenant") {
if ($string == 1) return "Cristal"; if ($string == 1) {
elseif ($string == 2) return "Ions"; return "Cristal";
else return "Metal"; } 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')); $action = intval(gpc('a'));
if (isset($sess->values['race'])) $race = $sess->values['race']; if (isset($sess->values['race'])) {
else $race = gpc('r'); $race = $sess->values['race'];
} else {
$race = gpc('r');
}
$bdd = new BDD(); $bdd = new BDD();
$act = $bdd->unique_query("SELECT id, graph, dispo FROM $table_bourse_ressources WHERE id = $action;"); $act = $bdd->unique_query("SELECT id, graph, dispo FROM $table_bourse_ressources WHERE id = $action;");
$bdd->deconnexion(); $bdd->deconnexion();
if (empty($act)) exit; if (empty($act)) {
exit;
}
$values = array(); $values = array();
$values_label = array(); $values_label = array();
@ -37,30 +50,35 @@ $values_abscisse = array();
$act['graph'] = unserialize($act['graph']); $act['graph'] = unserialize($act['graph']);
for($i = 1; $i < 8; $i++){ for ($i = 1; $i < 8; $i++) {
if (!isset($act['graph'][(date('w')+$i)%7])) $values[] = 0; if (!isset($act['graph'][(date('w')+$i)%7])) {
else $values[] = ceil(pow($act['graph'][(date('w')+$i)%7], -0.1) * 20000)/10; $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_label[] = $values[$i];
$values_abscisse[] = ucfirst(strftime('%a', time() - 86400 * $i)); $values_abscisse[] = ucfirst(strftime('%a', time() - 86400 * $i));
} }
//* //*
require_once ("jpgraph/jpgraph.php"); require_once("jpgraph/jpgraph.php");
require_once ("jpgraph/jpgraph_line.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 = new Graph(282, 200);
$graph->SetScale("textlin"); $graph->SetScale("textlin");
$graph->img->SetMargin(40,20,20,40); $graph->img->SetMargin(40, 20, 20, 40);
$lineplot=new LinePlot($values); $lineplot=new LinePlot($values);
$lineplot->mark->SetType(MARK_UTRIANGLE); $lineplot->mark->SetType(MARK_UTRIANGLE);
$lineplot->value->show(); $lineplot->value->show();
$lineplot->value->SetFont(FF_FONT1,FS_BOLD); $lineplot->value->SetFont(FF_FONT1, FS_BOLD);
//$lineplot->value->SetFormat('%0f'); //$lineplot->value->SetFormat('%0f');
//Définition des couleurs //Définition des couleurs
@ -73,8 +91,7 @@ if ($race == "covenant") {
$graph->yaxis->title->SetColor("white"); $graph->yaxis->title->SetColor("white");
$graph->title->SetColor("white"); $graph->title->SetColor("white");
$lineplot->SetColor("#c00000"); $lineplot->SetColor("#c00000");
} } else {
else {
$graph->yaxis->SetColor("#00DD00"); $graph->yaxis->SetColor("#00DD00");
$lineplot->SetFillColor("cyan@0.8"); $lineplot->SetFillColor("cyan@0.8");
$lineplot->value->SetColor('#FF0000'); $lineplot->value->SetColor('#FF0000');
@ -90,11 +107,10 @@ $graph->title->Set($act['nom']);
$graph->yaxis->title->Set("Evolution (%)"); $graph->yaxis->title->Set("Evolution (%)");
$graph->xaxis->SetTickLabels($values_abscisse); $graph->xaxis->SetTickLabels($values_abscisse);
$graph->title->SetFont(FF_FONT1,FS_BOLD); $graph->title->SetFont(FF_FONT1, FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD); $graph->yaxis->title->SetFont(FF_FONT1, FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD); $graph->xaxis->title->SetFont(FF_FONT1, FS_BOLD);
$lineplot->SetWeight(2); $lineplot->SetWeight(2);
$graph->Stroke(); $graph->Stroke();
?>

View file

@ -6,12 +6,14 @@ require_once(trim(file_get_contents('./.onyx')));
$SESS = new Session(); $SESS = new Session();
//On défini la configuration //On défini la configuration
if(!isset($_GET['nbr_chiffres']) || $_GET['nbr_chiffres'] < 5) 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 $nbr_chiffres = mt_rand(7, 9);
else } // Nombre de chiffres qui formerons le nombre par défaut
$nbr_chiffres = intval(gpc('nbr_chiffres')); // Si l'on met dans l'adresse un ?nbr_chiffres=X 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 //Création de l'image à partir d'un fond
$_img = imagecreatefromgif('fond_verif_img.gif'); $_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à. //$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 //On définit les autres couleurs
$couleur = mt_rand(0, 4); $couleur = mt_rand(0, 4);
if ($couleur == 0) $avant_plan = imagecolorallocate($_img, rand(250,225), rand(0,25), rand(0,25)); if ($couleur == 0) {
elseif ($couleur == 1) $avant_plan = imagecolorallocate($_img, rand(0,25), rand(250,225), rand(0,25)); $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 == 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 == 3) {
elseif ($couleur == 4) $avant_plan = imagecolorallocate($_img, rand(250,225), rand(0,25), rand(250,225)); $avant_plan = imagecolorallocate($_img, rand(0, 25), rand(250, 225), rand(250, 225));
elseif ($couleur == 5) $avant_plan = imagecolorallocate($_img, rand(250,225), rand(250,225), rand(0,25)); } elseif ($couleur == 4) {
else $avant_plan = imagecolorallocate($_img, rand(200,225), rand(200,225), rand(200,225)); $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 //Définition de la liste des caractères
$caracteres = "2345678azertypsdfhjkmwxcbn?"; $caracteres = "2345678azertypsdfhjkmwxcbn?";
$nb_caracteres = strlen($caracteres)-1; $nb_caracteres = strlen($caracteres)-1;
$captcha = ""; $captcha = "";
for($i = 0; $i < $nbr_chiffres; $i++) for ($i = 0; $i < $nbr_chiffres; $i++) {
{
$alea = mt_rand(0, $nb_caracteres); $alea = mt_rand(0, $nb_caracteres);
$captcha .= $caracteres[$alea]; $captcha .= $caracteres[$alea];
} }
@ -49,10 +58,10 @@ unset($chiffre, $i, $caractere, $nbr_chiffres, $nb_caracteres, $caracteres);
$fontfile = './2.TTF'; $fontfile = './2.TTF';
//imagestring($_img, 5, 18, 8, $nombre, $avant_plan); //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)); ImageTTFText($_img, 20, 2, 0, 23, $avant_plan, $fontfile, strtoupper($captcha));
else } else {
ImageTTFText($_img, 20, mt_rand(1,5), rand(1,7), 30, $avant_plan, $fontfile, $captcha); ImageTTFText($_img, 20, mt_rand(1, 5), rand(1, 7), 30, $avant_plan, $fontfile, $captcha);
}
imagepng($_img); 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 require_once("common.php"); //Chargement de tout le nécessaire pour le jeu
//On vérifie si le client est connecté sur le site //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 //Si un nouveau joueur cherche à se connecter du même endroit, on déconnecte le joueur en cours avant
$HB_login = gpc('l'); $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"); require("server/logout.php");
} } elseif (!empty($HB_login)) {
elseif (!empty($HB_login))
{
redirection("./".$VAR["first_page"]); redirection("./".$VAR["first_page"]);
exit; exit;
} }
//Déconnexion de secours //Déconnexion de secours
elseif (isset($_GET["logout"])) elseif (isset($_GET["logout"])) {
{
require("server/logout.php"); require("server/logout.php");
redirection("./".$VAR["first_page"]); redirection("./".$VAR["first_page"]);
} }
@ -53,42 +48,37 @@ if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['
$template->assign("race", $race); $template->assign("race", $race);
//Connexion à la base de données ou reconnexion si la classe existe //Connexion à la base de données ou reconnexion si la classe existe
if (isset($bdd)) if (isset($bdd)) {
$bdd->reconnexion(); $bdd->reconnexion();
else } else {
$bdd = new BDD(); $bdd = new BDD();
}
//Recherche de multicompte //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;"); $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 //On gère les demande de changement de planète
if (isset($_POST["planete"])) if (isset($_POST["planete"])) {
{ if (preg_match("#A#", $_POST["planete"])) {
if (preg_match("#A#", $_POST["planete"]))
{
$idAsteroideTest = intval(substr(gpc("planete", "post"), 1)); $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["idPlan"] = 0;
$SESS->values["idAsteroide"] = $idAsteroideTest; $SESS->values["idAsteroide"] = $idAsteroideTest;
$SESS->values["isolement"] = 0; $SESS->values["isolement"] = 0;
$SESS->put(); $SESS->put();
$template->assign("page","vp"); $template->assign("page", "vp");
$template->display("game/vp.tpl"); $template->display("game/vp.tpl");
exit; exit;
} }
unset($idAsteroideTest); unset($idAsteroideTest);
} } else {
else
{
$idPlanTest = intval(gpc("planete", "post")); $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["idPlan"] = $idPlanTest;
$SESS->values["idAsteroide"] = 0; $SESS->values["idAsteroide"] = 0;
$SESS->values["isolement"] = 0; $SESS->values["isolement"] = 0;
$SESS->put(); $SESS->put();
$template->assign("page","vp"); $template->assign("page", "vp");
$template->display("game/vp.tpl"); $template->display("game/vp.tpl");
exit; exit;
} }
@ -107,22 +97,17 @@ if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['
unset($queryMail1, $queryMail2); unset($queryMail1, $queryMail2);
//Chargement de la planète/astéroide actuel //Chargement de la planète/astéroide actuel
if ($idPlan == 0 && $idAsteroide == 0) if ($idPlan == 0 && $idAsteroide == 0) {
{ trigger_error('Planète et Asteroïde nul, deconnexion du joueur '.$id_user, E_USER_ERROR);
trigger_error('Planète et Asteroïde nul, deconnexion du joueur '.$id_user,E_USER_ERROR);
include("server/logout.php"); include("server/logout.php");
exit; exit;
} } elseif ($idPlan == 0) {
elseif ($idPlan == 0)
{
define('SURFACE', 'asteroide'); define('SURFACE', 'asteroide');
$planete = new Asteroide($idAsteroide); $planete = new Asteroide($idAsteroide);
$planete->actualiser(); $planete->actualiser();
//On charge les permissions de l'utilisateur pour l'alliance //On charge les permissions de l'utilisateur pour l'alliance
$planete->loadPermissions($planete->fondateur); $planete->loadPermissions($planete->fondateur);
} } else {
else
{
define('SURFACE', 'planete'); define('SURFACE', 'planete');
$planete = new Planete($idPlan); $planete = new Planete($idPlan);
$planete->actualiser(); $planete->actualiser();
@ -130,8 +115,7 @@ if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['
unset($ip, $idAsteroide, $idPlan); unset($ip, $idAsteroide, $idPlan);
//On vérifie que le joueur ne soit pas en mode vacances forcé //On vérifie que le joueur ne soit pas en mode vacances forcé
if ($planete->mv > 0) if ($planete->mv > 0) {
{
$SESS->close(); $SESS->close();
redirection($config["first_page"]."?mvf"); redirection($config["first_page"]."?mvf");
exit; exit;
@ -149,8 +133,9 @@ if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['
$tpsdejeu = time() - $planete->last_visite; $tpsdejeu = time() - $planete->last_visite;
$heur = floor($tpsdejeu/3600); $heur = floor($tpsdejeu/3600);
$min = floor(($tpsdejeu%3600)/60); $min = floor(($tpsdejeu%3600)/60);
if ($heur > 0) if ($heur > 0) {
$min = $heur." h ".$min; $min = $heur." h ".$min;
}
$template->assign("tpsdejeu", $min." min"); $template->assign("tpsdejeu", $min." min");
unset($tpsdejeu, $heur, $min, $queryMail); unset($tpsdejeu, $heur, $min, $queryMail);
@ -158,27 +143,21 @@ if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['
$p = gpc('p'); $p = gpc('p');
//Vérification de l'isolement de la planète //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 //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"); $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])); 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->values["isolement"] = $planete->isolement[0];
$SESS->put(); $SESS->put();
} }
} }
if (isset($SESS->values["avert"]) && $p != "avertmulti" && $p != "demarrage") if (isset($SESS->values["avert"]) && $p != "avertmulti" && $p != "demarrage") {
include("server/avert.php"); include("server/avert.php");
else } else {
{ switch ($p) {
switch($p)
{
case "batiments": case "batiments":
include("game/batiments.php"); include("game/batiments.php");
break; break;
@ -294,18 +273,18 @@ if (isset($SESS) && !(empty($SESS->values["connected"]) && empty($SESS->values['
include("pub.php"); include("pub.php");
$template->assign("page", $page); $template->assign("page", $page);
if (isset($titre)) if (isset($titre)) {
$template->assign("titre", $titre); $template->assign("titre", $titre);
}
$template->display("game/".$page.".tpl"); $template->display("game/".$page.".tpl");
} }
//Si le client n'est pas connecté au site //Si le client n'est pas connecté au site
else else {
{
include("server/connexion.php"); include("server/connexion.php");
$p = gpc('p'); $p = gpc('p');
switch($p){ switch ($p) {
//Serveur principal //Serveur principal
/* case "validation": /* case "validation":
include('game/validation.php'); include('game/validation.php');
@ -348,6 +327,7 @@ else
break; break;
case "changeopt": case "changeopt":
erreur("Vous devez être connecté pour affectuer cette action !"); erreur("Vous devez être connecté pour affectuer cette action !");
// no break
case "connexion": case "connexion":
default: default:
$page = 'mini'; $page = 'mini';
@ -359,4 +339,3 @@ else
} }
$template->display('cms/'.$page.'.tpl'); $template->display('cms/'.$page.'.tpl');
} }
?>

View file

@ -5,45 +5,42 @@
<body> <body>
<h2>V&eacute;rification de l'int&eacute;grit&eacute; des fichiers</h2> <h2>V&eacute;rification de l'int&eacute;grit&eacute; des fichiers</h2>
<?php <?php
define ('FILE_SAV', "../onyx2/cache/checksum.php"); define('FILE_SAV', "../onyx2/cache/checksum.php");
define ('dir_start', "../"); define('dir_start', "../");
print 'Chargement du fichier de comparaison ...'; print 'Chargement du fichier de comparaison ...';
if (is_file('checkSum.php')) if (is_file('checkSum.php')) {
{
print ' Touv&eacute; ...'; print ' Touv&eacute; ...';
$SUM = sha1(file_get_contents('checkSum.php')); $SUM = sha1(file_get_contents('checkSum.php'));
print ' Donn&eacute;es charg&eacute;es avec succ&egrave;s<br /><br />'; print ' Donn&eacute;es charg&eacute;es avec succ&egrave;s<br /><br />';
} }
print 'V&eacute;rification du fichier de validation ...'; 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 !'); die(' INVALIDE !<br />Arr&ecirc;t du processus de validation !');
else } else {
print ' Valide<br /><br />'; print ' Valide<br /><br />';
}
print 'Recherche du fichier de sauvegarde ...'; 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) function parcourDir($dir, $sums)
{ {
if (isset($_GET['v'])) if (isset($_GET['v'])) {
print "<br />Parcours du dossier &agrave; la recherche de nouveaux fichiers : ".$dir; print "<br />Parcours du dossier &agrave; la recherche de nouveaux fichiers : ".$dir;
}
$new = 0; $new = 0;
$pointeur = opendir($dir); $pointeur = opendir($dir);
while ($fichier = readdir($pointeur)) while ($fichier = readdir($pointeur)) {
{ if ($fichier == '.' || $fichier == '..' || $fichier == '.svn' || preg_match("#~#", $fichier)) {
if($fichier == '.' || $fichier == '..' || $fichier == '.svn' || preg_match("#~#", $fichier))
continue; continue;
}
if(is_dir($dir.$fichier) && is_readable($dir.$fichier)) if (is_dir($dir.$fichier) && is_readable($dir.$fichier)) {
$new += parcourDir($dir.$fichier.'/', $sums); $new += parcourDir($dir.$fichier.'/', $sums);
} elseif (is_file($dir.$fichier)) {
elseif(is_file($dir.$fichier)) if (!isset($sums[$dir.$fichier])) {
{
if (!isset($sums[$dir.$fichier]))
{
$new++; $new++;
print "<tr style=\"background: #00FFFF;\"><td>".$dir.$fichier."</td><td style=\"text-align: center;\">Nouveau fichier !</td></tr>"; 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 />'; 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 ...'; 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 />'; print ' <span style="color: #00FF00;">Authentique</span><br /><br />';
else } else {
die (' Invalide !<br />Arr&ecirc;t du processus de v&eacute;rification !'); 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 />'; 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)); $start = unserialize(file_get_contents(FILE_SAV));
print ' V&eacute;rification des fichiers ...'; print ' V&eacute;rification des fichiers ...';
print '<table border="1" style=""><tr><th>Nom du fichier</th><th>D&eacute;tails</th></tr>'; print '<table border="1" style=""><tr><th>Nom du fichier</th><th>D&eacute;tails</th></tr>';
$alerte = 0; $alerte = 0;
foreach($start as $key => $sum) foreach ($start as $key => $sum) {
{ if (!is_file($key)) {
if (!is_file($key))
{
$alerte++; $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>"; 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++; $alerte++;
print "<tr style=\"background: #FF0000;\"><td>".$key."</td><td style=\"text-align: center;\">Alerte de diff&eacute;rence de somme !</td></tr>"; 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>"; print "<tr style=\"background: #00FF00;\"><td>".$key."</td><td style=\"text-align: center;\">Ok</td></tr>";
} }
}
$newFiles = parcourDir(dir_start, $start); $newFiles = parcourDir(dir_start, $start);
print '</table>'; 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 />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')); print '<br /><br />Cont&ocirc;le de la prochaine validation : '.sha1(sha1_file(FILE_SAV).'<^>'.sha1_file(__FILE__).sha1_file('checkSum.php'));
} } else {
else if (isset($_GET['erase']) && $_GET['erase'] == $SUM) {
{
if (isset($_GET['erase']) && $_GET['erase'] == $SUM)
print ' Trouv&eacute;<br />D&eacute;tection d\'une demande d\'effacement<br /><br />'; 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 />'; //print ' Introuvable<br /><br />';
die (' Introuvable<br /><br />Arr&ecirc;t de la v&eacute;rification.'); die(' Introuvable<br /><br />Arr&ecirc;t de la v&eacute;rification.');
else } 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.'); 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) function extractDir($dir)
{ {
$sums = array(); $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; print "<br />G&eacute;n&eacute;ration des sommes de fichiers pour le dossier : ".$dir;
}
$pointeur = opendir($dir); $pointeur = opendir($dir);
while ($fichier = readdir($pointeur)) while ($fichier = readdir($pointeur)) {
{ if ($fichier == '.' || $fichier == '..' || $fichier == '.svn' || preg_match("#~#", $fichier)) {
if($fichier == '.' || $fichier == '..' || $fichier == '.svn' || preg_match("#~#", $fichier))
continue; 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.'/')); $sums = array_merge($sums, extractDir($dir.$fichier.'/'));
} elseif (is_file($dir.$fichier)) {
elseif(is_file($dir.$fichier))
$sums[$dir.$fichier] = sha1_file($dir.$fichier); $sums[$dir.$fichier] = sha1_file($dir.$fichier);
} }
}
closedir($pointeur); closedir($pointeur);
return $sums; return $sums;
@ -137,7 +131,7 @@ else
print "&Eacute;criture du fichier.<br />"; print "&Eacute;criture du fichier.<br />";
file_put_contents(FILE_SAV, serialize($sums)); file_put_contents(FILE_SAV, serialize($sums));
print "Fin de l'op&eacute;ration.<br />"; print "Fin de l'op&eacute;ration.<br />";
} }
?> ?>
</body> </body>
</html> </html>

View file

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

View file

@ -2,7 +2,7 @@
//Définition de la constante anti-hacking //Définition de la constante anti-hacking
define("INDEX", 1); define("INDEX", 1);
define("DEBUG", false); 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 //Inclusion de l'API Onyx
require_once(trim(file_get_contents('./.onyx'))); require_once(trim(file_get_contents('./.onyx')));
@ -15,30 +15,33 @@ function separerNombres($int)
$id = gpc('i'); $id = gpc('i');
if (!is_numeric($id)) $id = 0; if (!is_numeric($id)) {
$id = 0;
}
$f = gpc('f'); $f = gpc('f');
$s = gpc('s'); $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) { 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"); readfile(ONYX."cache/signatures/".$id.".".$f.$s.".sign");
} } else {
else {
$fontfile = ONYX."include/content/signatures/ARIAL.TTF"; $fontfile = ONYX."include/content/signatures/ARIAL.TTF";
$bdd = new BDD(); $bdd = new BDD();
$bdd->escape($id); $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;"); $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']; $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%';"); $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 %';"); $transport = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE contenu LIKE 'Les vaisseaux de $nomjoueur %';");
$bdd->deconnexion(); $bdd->deconnexion();
if (!empty($s) && $joueur['auth_level'] >= 1){ if (!empty($s) && $joueur['auth_level'] >= 1) {
switch($s){ switch ($s) {
case 1: case 1:
$img = 'mixte1userbarju7.png'; $img = 'mixte1userbarju7.png';
$_img = imagecreatefrompng(ONYX."include/content/signatures/".$img); $_img = imagecreatefrompng(ONYX."include/content/signatures/".$img);
@ -87,11 +90,13 @@ else {
) )
); );
} }
if ($joueur['race'] == 'covenant') $_imgavatar = imagecreatefrompng(ONYX."include/content/signatures/covi.png"); if ($joueur['race'] == 'covenant') {
else $_imgavatar = imagecreatefrompng(ONYX."include/content/signatures/hum.png"); $_imgavatar = imagecreatefrompng(ONYX."include/content/signatures/covi.png");
} else {
$_imgavatar = imagecreatefrompng(ONYX."include/content/signatures/hum.png");
} }
elseif ($joueur['race'] == 'covenant') { } elseif ($joueur['race'] == 'covenant') {
switch($f){ switch ($f) {
case 1: case 1:
$img = 'userbarallicopygs1.png'; $img = 'userbarallicopygs1.png';
$_img = imagecreatefrompng(ONYX."include/content/signatures/".$img); $_img = imagecreatefrompng(ONYX."include/content/signatures/".$img);
@ -141,9 +146,8 @@ else {
); );
} }
$_imgavatar = imagecreatefrompng(ONYX."include/content/signatures/covi.png"); $_imgavatar = imagecreatefrompng(ONYX."include/content/signatures/covi.png");
} } else {
else { switch ($f) {
switch($f){
case 1: case 1:
$img = 'userbarallicopygs1.png'; $img = 'userbarallicopygs1.png';
$_img = imagecreatefrompng(ONYX."include/content/signatures/".$img); $_img = imagecreatefrompng(ONYX."include/content/signatures/".$img);
@ -205,24 +209,34 @@ else {
if ($joueur == false) { if ($joueur == false) {
ImageTTFText($_img, 20, -20, 123, 17, $rouge, $fontfile, 'Joueur introuvable !'); 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']); ImageTTFText($_img, 12, 0, 255, 23, $entete, $fontfile, $VAR['serveur_name']);
if (isset($joueur['tag'])) { if (isset($joueur['tag'])) {
if (empty($joueur['place_points'])) ImageTTFText($_img, 11, 0, 32, 47, $contenu, $fontfile, "Classement : Non classé"); if (empty($joueur['place_points'])) {
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, 47, $contenu, $fontfile, "Classement : Non classé");
ImageTTFText($_img, 11, 0, 32, 64, $contenu, $fontfile, "Points : ".separerNombres($joueur['points'])); } else {
ImageTTFText($_img, 11, 0, 32, 82, $contenu, $fontfile, "Alliance : [".$joueur['tag']."] ".substr($joueur['nom'],0,9).(strlen($joueur['nom'])>9?'...':'')); 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'])); ImageTTFText($_img, 11, 0, 32, 75, $contenu, $fontfile, "Points : ".separerNombres($joueur['points']));
} }
@ -236,10 +250,10 @@ else {
imagealphablending($_img, false); imagealphablending($_img, false);
imagesavealpha($_img, true); imagesavealpha($_img, true);
if ($joueur == false) imagepng($_img); if ($joueur == false) {
else { imagepng($_img);
} else {
imagepng($_img, ONYX."cache/signatures/".$id.".".$f.$s.".sign"); imagepng($_img, ONYX."cache/signatures/".$id.".".$f.$s.".sign");
readfile(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(); $file->DEBUG__print();
var_dump($planete->vaisseaux); var_dump($planete->vaisseaux);
var_dump($planete->modif); var_dump($planete->modif);
?>

View file

@ -23,4 +23,3 @@ $planete2->position = 2;
$vaisseaux = array(1); $vaisseaux = array(1);
print Flotte::calc_deplacement($planete1, 1, 1, 2, 1, $vaisseaux, 123456789); 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"); require_once("donnees.php");
var_dump(bourse_calcPrixBase("640623608", 4000, 2)); 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")); 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) function traiterfichier($uri, &$list)
{ {
$fp = fopen($uri, "r"); $fp = fopen($uri, "r");
while (!feof($fp)) while (!feof($fp)) {
{
$buffer = fgets($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); var_dump($match);
} }
} }
@ -33,4 +31,3 @@ $bdd->query("INSERT INTO proxy_list VALUES ('".implode("'),('", $list)."');");
$bdd->deconnexion(); $bdd->deconnexion();
print "Procédure terminée, ".count($list)." proxys listés."; 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://(\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); //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 <?php
if(!defined('ONYX')) exit; if (!defined('ONYX')) {
exit;
}
$___profile['db'] = 'hb_game'; $___profile['db'] = 'hb_game';
if (getenv("MYSQL_HOST") === False) { if (getenv("MYSQL_HOST") === false) {
$___profile['host'] = 'localhost'; $___profile['host'] = 'localhost';
} else { } else {
$___profile['host'] = getenv("MYSQL_HOST"); $___profile['host'] = getenv("MYSQL_HOST");
} }
$___profile['user'] = 'hb'; $___profile['user'] = 'hb';
$___profile['pass'] = 'hb'; $___profile['pass'] = 'hb';
?>

View file

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

View file

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

View file

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

View file

@ -1,5 +1,7 @@
<?php <?php
if(!defined('ONYX')) exit; if (!defined('ONYX')) {
exit;
}
interface Donnees interface Donnees
{ {
@ -19,53 +21,63 @@ interface Donnees
public static function needed($id, surface $planete, $print = false); public static function needed($id, surface $planete, $print = false);
} }
class dDonnees{ class dDonnees
static function tailleFile(surface $planete) {
public static function tailleFile(surface $planete)
{ {
//On calcul la taille maximale de la file d'attente //On calcul la taille maximale de la file d'attente
if (!empty($planete->technologies[1])) if (!empty($planete->technologies[1])) {
{ if (($planete->technologies[1] &131072) == 131072) {
if (($planete->technologies[1] &131072) == 131072) return 5; return 5;
elseif (($planete->technologies[1] &65536) == 65536) return 4; } elseif (($planete->technologies[1] &65536) == 65536) {
elseif (($planete->technologies[1] &32768) == 32768) return 3; return 4;
else return 2; } 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) public static function neededCheck($tableau, surface $planete)
{
if (!is_array($tableau)) return true;
else
{
foreach ($tableau as $need)
{
switch($need[0])
{ {
if (!is_array($tableau)) {
return true;
} else {
foreach ($tableau as $need) {
switch ($need[0]) {
case 'batiments': 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; return false;
}
break; break;
case 'batiments_max': 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; return false;
}
break; break;
case 'technologies': 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; return false;
}
break; break;
case 'casernes': case 'casernes':
if ($planete->casernes[$need[1]] < $need[2]) if ($planete->casernes[$need[1]] < $need[2]) {
return false; return false;
}
break; break;
case 'terrestres': case 'terrestres':
if ($planete->terrestres[$need[1]] < $need[2]) if ($planete->terrestres[$need[1]] < $need[2]) {
return false; return false;
}
break; break;
case 'vaisseaux': case 'vaisseaux':
if ($planete->vaisseaux[$need[1]] < $need[2]) if ($planete->vaisseaux[$need[1]] < $need[2]) {
return false; return false;
}
break; break;
default: default:
return false; 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; global $LANG;
$race = $planete->race; $race = $planete->race;
if (!is_array($tableau)) return 'Débloqué'; if (!is_array($tableau)) {
else return 'Débloqué';
{ } else {
$return = ''; $return = '';
foreach ($tableau as $need) foreach ($tableau as $need) {
{ switch ($need[0]) {
switch($need[0])
{
case 'batiments': 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 />'; $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 />'; $return .= ucfirst($LANG[$race]["batiments"]["noms_sing"][$need[1]]).' niveau '.$need[2].' (batiment)<br />';
}
break; break;
case 'batiments_max': 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 />'; $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 />'; $return .= ucfirst($LANG[$race]["batiments"]["noms_sing"][$need[1]]).' < niveau '.($need[2]+1).' (batiment)<br />';
}
break; break;
case 'technologies': 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 />'; $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 />'; $return .= $LANG[$race]["technologies"]["noms_sing"][$need[1]][$need[2]].' (technologie)<br />';
}
break; break;
case 'casernes': 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 />'; $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 />'; $return .= $need[2].' '.$LANG[$race]["caserne"]["noms_pluriel"][$need[1]].' (unité de la caserne)<br />';
}
break; break;
case 'terrestres': 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 />'; $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 />'; $return .= $need[2].' '.$LANG[$race]["terrestre"]["noms_pluriel"][$need[1]].' (unité du chantier terrestre)<br />';
}
break; break;
case 'vaisseaux': 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 />'; $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 />'; $return .= $need[2].' '.$LANG[$race]["vaisseaux"]["noms_pluriel"][$need[1]].' (unité du chantier spatial)<br />';
}
break; 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"; return "alli_batiments";
elseif ($name == "batiments") } elseif ($name == "batiments") {
return "batiments"; return "batiments";
elseif ($name == "technologies") } elseif ($name == "technologies") {
return "technologies"; return "technologies";
elseif ($name == "casernes") } elseif ($name == "casernes") {
return "caserne"; return "caserne";
elseif ($name == "terrestres") } elseif ($name == "terrestres") {
return "terrestre"; return "terrestre";
elseif ($name == "vaisseaux") } elseif ($name == "vaisseaux") {
return "spatial"; return "spatial";
elseif ($name == "coeff_bat") } elseif ($name == "coeff_bat") {
return "coeff"; return "coeff";
} }
}
static function capaciteVilles(surface $planete) public static function capaciteVilles(surface $planete)
{ {
return $planete->cases * pow($planete->batiments[17], -3) + 10; return $planete->cases * pow($planete->batiments[17], -3) + 10;
} }
static function nameVilles($level) public static function nameVilles($level)
{
switch ($level)
{ {
switch ($level) {
case 0: case 0:
case 1: case 1:
case 2: 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) public static function metal($id, $nombre, surface $planete)
{ {
switch($id) switch ($id) {
{
case 0: case 0:
$metal = 1000; $metal = 1000;
break; break;
@ -54,16 +53,16 @@ class dSpatial implements Donnees
} }
//On tient compte des bonus //On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1) if (isset($planete->politique) && $planete->politique == 1) {
$metal *= 0.9; $metal *= 0.9;
}
return $metal * $nombre; return $metal * $nombre;
} }
public static function cristal($id, $nombre, surface $planete) public static function cristal($id, $nombre, surface $planete)
{ {
switch($id) switch ($id) {
{
case 0: case 0:
$cristal = 800; $cristal = 800;
break; break;
@ -111,16 +110,16 @@ class dSpatial implements Donnees
} }
//On tient compte des bonus //On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1) if (isset($planete->politique) && $planete->politique == 1) {
$cristal *= 0.9; $cristal *= 0.9;
}
return $cristal * $nombre; return $cristal * $nombre;
} }
public static function hydrogene($id, $nombre, surface $planete) public static function hydrogene($id, $nombre, surface $planete)
{ {
switch($id) switch ($id) {
{
case 0: case 0:
$hydrogene = 0; $hydrogene = 0;
break; break;
@ -168,8 +167,9 @@ class dSpatial implements Donnees
} }
//On tient compte des bonus //On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1) if (isset($planete->politique) && $planete->politique == 1) {
$hydrogene *= 0.9; $hydrogene *= 0.9;
}
return $hydrogene * $nombre; return $hydrogene * $nombre;
} }
@ -181,8 +181,7 @@ class dSpatial implements Donnees
public static function temps($id, $nombre, surface $planete) public static function temps($id, $nombre, surface $planete)
{ {
switch($id) switch ($id) {
{
case 0: case 0:
$temps = 1080; $temps = 1080;
$moins = 1; $moins = 1;
@ -247,19 +246,18 @@ class dSpatial implements Donnees
$temps /= VITESSE; $temps /= VITESSE;
//On tient compte des bonus //On tient compte des bonus
if (SURFACE == "planete") if (SURFACE == "planete") {
return ceil($temps/pow(1.25, ($planete->batiments[8] - $moins))) * $nombre; return ceil($temps/pow(1.25, ($planete->batiments[8] - $moins))) * $nombre;
else } else {
return ($temps * $nombre); return ($temps * $nombre);
} }
}
public static function image($id, surface $planete) public static function image($id, surface $planete)
{ {
if ($planete->race == "covenant") if ($planete->race == "covenant") {
{ switch ($id) {
switch($id)
{
case 0: case 0:
return "cargo2pb6.jpg"; return "cargo2pb6.jpg";
break; break;
@ -295,11 +293,8 @@ class dSpatial implements Donnees
break; break;
} }
return Donnees::image_covenant_default; return Donnees::image_covenant_default;
} } elseif ($planete->race == "humain") {
elseif ($planete->race == "humain") switch ($id) {
{
switch($id)
{
case 0: case 0:
return "csnucargoparabola2mc9.jpg"; return "csnucargoparabola2mc9.jpg";
break; break;
@ -335,10 +330,11 @@ class dSpatial implements Donnees
break; break;
} }
return Donnees::image_humain_default; return Donnees::image_humain_default;
} } else {
else
trigger_error("Impossible de trouver la race pour ".$planete->race, E_USER_ERROR); trigger_error("Impossible de trouver la race pour ".$planete->race, E_USER_ERROR);
} }
}
public static function needed($id, surface $planete, $print = false) 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); return dDonnees::print_neededCheck($neededSpatial[$id], $planete);
else } else {
return dDonnees::neededCheck($neededSpatial[$id], $planete); return dDonnees::neededCheck($neededSpatial[$id], $planete);
} }
}
public static function tailleCales($id) public static function tailleCales($id)
{ {
switch($id) switch ($id) {
{
case 0: case 0:
$vitesse = 10000; $vitesse = 10000;
break; break;
@ -468,8 +464,7 @@ class dSpatial implements Donnees
public static function vitesseP($id) public static function vitesseP($id)
{ {
switch($id) switch ($id) {
{
case 0: case 0:
$vitesse = 1080; $vitesse = 1080;
break; break;
@ -522,8 +517,7 @@ class dSpatial implements Donnees
public static function vitesseS($id) public static function vitesseS($id)
{ {
switch($id) switch ($id) {
{
case 0: case 0:
$vitesse = 1080; $vitesse = 1080;
break; break;
@ -576,8 +570,7 @@ class dSpatial implements Donnees
public static function vitesseG($id) public static function vitesseG($id)
{ {
switch($id) switch ($id) {
{
case 0: case 0:
$vitesse = 1080; $vitesse = 1080;
break; break;
@ -628,4 +621,3 @@ class dSpatial implements Donnees
return $vitesse; return $vitesse;
} }
} }
?>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -9,8 +9,8 @@
* *
***************************************************************************/ ***************************************************************************/
class Donnee 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. //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( $technologies_donnees = array(
@ -201,62 +201,70 @@ class Donnee
) )
); );
if ($retour == "metal") return 0; if ($retour == "metal") {
elseif ($retour == "cristal") return 0; return 0;
elseif ($retour == "hydrogene") return 0; } elseif ($retour == "cristal") {
elseif ($retour == "credits") return $technologies_donnees[$branche][$idTechnologie][2]; return 0;
elseif ($retour == "temps") return $technologies_donnees[$branche][$idTechnologie][3]/VITESSE; } elseif ($retour == "hydrogene") {
elseif ($retour == "needed") return $technologies_donnees[$branche][$idTechnologie][1]; return 0;
elseif ($retour == "id") return $technologies_donnees[$branche][$idTechnologie][0]; } elseif ($retour == "credits") {
elseif ($retour == "array") return array(0, 0, 0, $technologies_donnees[$branche][$idTechnologie][2], $technologies_donnees[$branche][$idTechnologie][3]/VITESSE); 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); 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); 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); 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); 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); 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); 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); $neededTechnologies = Donnee::donneeTechnologie($branche, $idTechnologie, "needed", $planete);
if (empty($neededTechnologies)) return true; if (empty($neededTechnologies)) {
if (is_array($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 (?) ... //TODO prévoir le besoin de plus d'une technologie pour la validation, dans une autre branche, batiment (?) ...
die('TODO '.__LINE__.' in '.__FILE__); die('TODO '.__LINE__.' in '.__FILE__);
} } else {
else if (((int)$planete->technologies[$branche]& $neededTechnologies) == $neededTechnologies) {
{
if (((int)$planete->technologies[$branche]& $neededTechnologies) == $neededTechnologies)
return true; return true;
else } else {
return false; return false;
} }
} }
} }
?> }

File diff suppressed because it is too large Load diff

View file

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

View file

@ -9,24 +9,25 @@
* *
***************************************************************************/ ***************************************************************************/
class Combat { class Combat
var $refflotte = 0; {
var $ATvais = array(); public $refflotte = 0;
var $ENvais = array(); public $ATvais = array();
var $ENres = array('metal' => 0, 'cristal' => 0, 'hydrogene' => 0); public $ENvais = array();
var $ENdef = array(); public $ENres = array('metal' => 0, 'cristal' => 0, 'hydrogene' => 0);
var $Ntour = 0; public $ENdef = array();
var $ATtactique = 0; public $Ntour = 0;
var $ENtactique = 0; public $ATtactique = 0;
var $timestamp = 0; public $ENtactique = 0;
var $vaisContenu = 0; public $timestamp = 0;
var $vaisContenuM = 0; public $vaisContenu = 0;
var $vaisContenuC = 0; public $vaisContenuM = 0;
var $vaisContenuH = 0; public $vaisContenuC = 0;
var $pillage = array(0, 0, 0); public $vaisContenuH = 0;
public $pillage = array(0, 0, 0);
var $debriM = 0; public $debriM = 0;
var $debriC = 0; public $debriC = 0;
/** /**
* Constructeur * Constructeur
@ -37,7 +38,8 @@ class Combat {
* @return void * @return void
* @access public * @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"); include(_FCORE."hb_game/vars.php");
//Génération des vaisseaux attaquants //Génération des vaisseaux attaquants
for ($i=1 ; $i<=12 ; $i++) { for ($i=1 ; $i<=12 ; $i++) {
@ -48,11 +50,16 @@ class Combat {
$nbvaispgroupe = floor($nbvais/$nbgroupes); $nbvaispgroupe = floor($nbvais/$nbgroupes);
$nbrest = $nbvais - $nbvaispgroupe * $nbgroupes; $nbrest = $nbvais - $nbvaispgroupe * $nbgroupes;
if (isset($groupe)) unset($groupe); if (isset($groupe)) {
unset($groupe);
}
$groupe = array(); $groupe = array();
for ($j=0 ; $j < $nbgroupes ; $j++) { 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]); if ($j == 0) {
else $groupe[] = array($nbvaispgroupe, $nomvais_bc[$i-1] * (1 + $tableTechno[0]/10), $nomvais_pv[$i-1]); $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]); $this->ATvais[] = array($i, $flotteAT['vaisseau_'.$i], $nbgroupes, $groupe, $nomvais_initiative[$i-1]);
} }
@ -75,11 +82,16 @@ class Combat {
$nbvaispgroupe = floor($nbvais/$nbgroupes); $nbvaispgroupe = floor($nbvais/$nbgroupes);
$nbrest = $nbvais - $nbvaispgroupe * $nbgroupes; $nbrest = $nbvais - $nbvaispgroupe * $nbgroupes;
if (isset($groupe)) unset($groupe); if (isset($groupe)) {
unset($groupe);
}
$groupe = array(); $groupe = array();
for ($j=0 ; $j < $nbgroupes ; $j++) { 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]); if ($j == 0) {
else $groupe[] = array($nbvaispgroupe, $nomvais_bc[$i-1] * (1 + $tableTechno[1]/10), $nomvais_pv[$i-1]); $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]); $this->ENvais[] = array($i, $flotteEN['vaisseau_'.$i], $nbgroupes, $groupe, $nomvais_initiative[$i-1]);
} }
@ -94,11 +106,16 @@ class Combat {
$nbvaispgroupe = floor($nbvais/$nbgroupes); $nbvaispgroupe = floor($nbvais/$nbgroupes);
$nbrest = $nbvais - $nbvaispgroupe * $nbgroupes; $nbrest = $nbvais - $nbvaispgroupe * $nbgroupes;
if (isset($groupe)) unset($groupe); if (isset($groupe)) {
unset($groupe);
}
$groupe = array(); $groupe = array();
for ($j=0 ; $j < $nbgroupes ; $j++) { 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]); if ($j == 0) {
else $groupe[] = array($nbvaispgroupe, $defense_bc[$i-1] * (1 + $tableTechno[1]/10), $defense_pv[$i-1]); $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]); $this->ENdef[] = array($i, $defEN['def_'.$i], $nbgroupes, $groupe, $defense_initiative[$i-1]);
} }
@ -112,7 +129,8 @@ class Combat {
* @return void * @return void
* @access public * @access public
*/ */
function changerTactiqueAT($tactique) { public function changerTactiqueAT($tactique)
{
$this->ATtactique = ceil($tactique); $this->ATtactique = ceil($tactique);
} }
@ -123,7 +141,8 @@ class Combat {
* @return void * @return void
* @access public * @access public
*/ */
function changerTactiqueEN($tactique) { public function changerTactiqueEN($tactique)
{
$this->ENtactique = ceil($tactique); $this->ENtactique = ceil($tactique);
} }
@ -137,7 +156,8 @@ class Combat {
* @return float pourcentage non utilisé * @return float pourcentage non utilisé
* @access public * @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"); include(_FCORE."hb_game/vars.php");
if ($attaquant) { if ($attaquant) {
$count = count($this->ATvais); $count = count($this->ATvais);
@ -154,8 +174,9 @@ class Combat {
if ($this->ATvais[$i][3][$j][1] < $maxbc) { if ($this->ATvais[$i][3][$j][1] < $maxbc) {
$this->ATvais[$i][3][$j][1] += $ajout; $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) { if ($this->ATvais[$i][3][$j][1] > $maxbc) {
$enplus += ($this->ATvais[$i][3][$j][1] - $maxbc)*$this->ATvais[$i][3][$j][0]; $enplus += ($this->ATvais[$i][3][$j][1] - $maxbc)*$this->ATvais[$i][3][$j][0];
$this->ATvais[$i][3][$j][1] = $maxbc; $this->ATvais[$i][3][$j][1] = $maxbc;
@ -163,12 +184,15 @@ class Combat {
} }
} }
if ($retour) { if ($retour) {
if($norm != 0 && $enplus/$norm == 1) return $pourcentage; if ($norm != 0 && $enplus/$norm == 1) {
else return false; return $pourcentage;
} else {
return false;
} }
else return $enplus/$norm; } else {
return $enplus/$norm;
} }
else { } else {
$count = count($this->ENvais); $count = count($this->ENvais);
$enplus = 0; $enplus = 0;
$norm = 0; $norm = 0;
@ -182,16 +206,20 @@ class Combat {
$norm += $maxbc * $this->ENvais[$i][3][$j][0]; $norm += $maxbc * $this->ENvais[$i][3][$j][0];
if ($this->ENvais[$i][3][$j][1] < $maxbc) { if ($this->ENvais[$i][3][$j][1] < $maxbc) {
$this->ENvais[$i][3][$j][1] += $ajout; $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) { if ($this->ENvais[$i][3][$j][1] > $maxbc) {
$enplus += ($this->ENvais[$i][3][$j][1] - $maxbc)*$this->ENvais[$i][3][$j][0]; $enplus += ($this->ENvais[$i][3][$j][1] - $maxbc)*$this->ENvais[$i][3][$j][0];
$this->ENvais[$i][3][$j][1] = $maxbc; $this->ENvais[$i][3][$j][1] = $maxbc;
} }
} }
} }
if ($norm != 0) $return = $enplus/$norm; if ($norm != 0) {
else $return = 0; $return = $enplus/$norm;
} else {
$return = 0;
}
//Défenses //Défenses
$count = count($this->ENdef); $count = count($this->ENdef);
@ -207,21 +235,29 @@ class Combat {
$norm += $maxbc * $this->ENdef[$i][3][$j][0]; $norm += $maxbc * $this->ENdef[$i][3][$j][0];
if ($this->ENdef[$i][3][$j][1] < $maxbc) { if ($this->ENdef[$i][3][$j][1] < $maxbc) {
$this->ENdef[$i][3][$j][1] += $ajout; $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) { if ($this->ENdef[$i][3][$j][1] > $maxbc) {
$enplus += ($this->ENdef[$i][3][$j][1] - $maxbc)*$this->ENdef[$i][3][$j][0]; $enplus += ($this->ENdef[$i][3][$j][1] - $maxbc)*$this->ENdef[$i][3][$j][0];
$this->ENdef[$i][3][$j][1] = $maxbc; $this->ENdef[$i][3][$j][1] = $maxbc;
} }
} }
} }
if ($norm != 0) $return = $enplus/$norm; if ($norm != 0) {
else $return = 0; $return = $enplus/$norm;
if ($retour) { } else {
if($norm != 0 && $enplus/$norm == 1) return $pourcentage; $return = 0;
else return false; }
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 * @return int points disponibles
* @access public * @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"); include(_FCORE."hb_game/vars.php");
if ($method) { if ($method) {
if ($attaquant) { if ($attaquant) {
@ -246,8 +283,7 @@ class Combat {
$puissance += $maxat * $pourcentage/100 * $this->ATvais[$i][1]; $puissance += $maxat * $pourcentage/100 * $this->ATvais[$i][1];
} }
return $puissance; return $puissance;
} } else {
else {
$puissance = 0; $puissance = 0;
$count = count($this->ENvais); $count = count($this->ENvais);
for ($i=0 ; $i<$count ; $i++) { for ($i=0 ; $i<$count ; $i++) {
@ -263,8 +299,7 @@ class Combat {
} }
return $puissance; return $puissance;
} }
} } else {
else {
if ($attaquant) { if ($attaquant) {
//Calcul du pourcentage de chaque vaisseau adverse //Calcul du pourcentage de chaque vaisseau adverse
$vaisEff = array(); $vaisEff = array();
@ -281,7 +316,9 @@ class Combat {
$puissance = 0; $puissance = 0;
$count = count($this->ATvais); $count = count($this->ATvais);
for ($i=0 ; $i<$count ; $i++) { for ($i=0 ; $i<$count ; $i++) {
if ($this->ATvais[$i][4] > $this->Ntour) continue; if ($this->ATvais[$i][4] > $this->Ntour) {
continue;
}
$bonus = 0; $bonus = 0;
for ($j=0 ; $j<$countj ; $j++) { for ($j=0 ; $j<$countj ; $j++) {
@ -294,8 +331,7 @@ class Combat {
$puissance += $maxat * $pourcentage/100 * $this->ATvais[$i][1] * $bonus; $puissance += $maxat * $pourcentage/100 * $this->ATvais[$i][1] * $bonus;
} }
return $puissance; return $puissance;
} } else {
else {
//Calcul du pourcentage de chaque vaisseau adverse //Calcul du pourcentage de chaque vaisseau adverse
$vaisEff = array(); $vaisEff = array();
$nbvais = 0; $nbvais = 0;
@ -310,7 +346,9 @@ class Combat {
$puissance = 0; $puissance = 0;
$count = count($this->ENvais); $count = count($this->ENvais);
for ($i=0 ; $i<$count ; $i++) { for ($i=0 ; $i<$count ; $i++) {
if ($this->ENvais[$i][4] > $this->Ntour) continue; if ($this->ENvais[$i][4] > $this->Ntour) {
continue;
}
$bonus = 0; $bonus = 0;
for ($j=0 ; $j<$countj ; $j++) { for ($j=0 ; $j<$countj ; $j++) {
@ -323,7 +361,9 @@ class Combat {
//Défenses //Défenses
$count = count($this->ENdef); $count = count($this->ENdef);
for ($i=0 ; $i<$count ; $i++) { 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); $maxat = $defense_at[$this->ENdef[$i][0]-1] * (1 + $armement/10);
$puissance += $maxat * $pourcentage/100 * $this->ENdef[$i][1]; $puissance += $maxat * $pourcentage/100 * $this->ENdef[$i][1];
@ -341,10 +381,11 @@ class Combat {
* @return void * @return void
* @access public * @access public
*/ */
function attaquerVais($points, $attaquant) { public function attaquerVais($points, $attaquant)
{
include(_FCORE."hb_game/vars.php"); include(_FCORE."hb_game/vars.php");
if ($attaquant) { if ($attaquant) {
while($points > 0) { while ($points > 0) {
// Calcul du nombre de vaisseaux et défenses à attaquer // Calcul du nombre de vaisseaux et défenses à attaquer
$nbvais = 0; $nbvais = 0;
$nbgroupes = 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 //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 //Calcul du nombre de points qui sera enlevé par vaisseau ou défense
$ppv = $points / $nbvais; $ppv = $points / $nbvais;
$points = 0; $points = 0;
//On lance l'attaque contre les vaisseaux //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); $k = rand(0, count($this->ENvais)-1);
$l = rand(0, count($this->ENvais[$k][3])-1); $l = rand(0, count($this->ENvais[$k][3])-1);
@ -389,7 +432,7 @@ class Combat {
} }
//On lance l'attaque contre les défenses //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); $k = rand(0, count($this->ENdef)-1);
$l = rand(0, count($this->ENdef[$k][3])-1); $l = rand(0, count($this->ENdef[$k][3])-1);
@ -411,9 +454,8 @@ class Combat {
} }
} }
return count($this->ENvais) + count($this->ENdef); return count($this->ENvais) + count($this->ENdef);
} } else {
else { while ($points > 0) {
while($points > 0) {
// Calcul du nombre de vaisseaux et défenses à attaquer // Calcul du nombre de vaisseaux et défenses à attaquer
$nbvais = 0; $nbvais = 0;
$nbgroupes = 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 //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 //Calcul du nombre de points qui sera enlevé par vaisseau ou défense
$ppv = $points / $nbvais; $ppv = $points / $nbvais;
$points = 0; $points = 0;
//On lance l'attaque //On lance l'attaque
for ($j=0 ; $j<$nbgroupes ; $j++){ for ($j=0 ; $j<$nbgroupes ; $j++) {
$k = rand(0, count($this->ATvais)-1); $k = rand(0, count($this->ATvais)-1);
$l = rand(0, count($this->ATvais[$k][3])-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"); include(_FCORE."hb_game/vars.php");
$nb = count($this->ATvais); $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; $nbvais = 0;
for($i=0 ; $i<$nb ; $i++) { $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]; ${'vaisseau_'.$this->ATvais[$i][0]} += $this->ATvais[$i][1];
$nbvais += $this->ATvais[$i][1]; $nbvais += $this->ATvais[$i][1];
$this->vaisContenu += $nomvais_rs[$this->ATvais[$i][0]-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.'\''; 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); $ressplus = pillage($metal, $cristal, $hydrogene, 999999);
$this->pillage = array($ressplus[0], $ressplus[1], $ressplus[2]); $this->pillage = array($ressplus[0], $ressplus[1], $ressplus[2]);
} }
function exportEN(){ public function exportEN()
{
$nb = count($this->ENvais); $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; $vaisseau_1 = 0;
for($i=0 ; $i<$nb ; $i++) { $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]; ${'vaisseau_'.$this->ENvais[$i][0]} += $this->ENvais[$i][1];
} }
$nb = count($this->ENdef); $nb = count($this->ENdef);
$def_1 = 0; $def_2 = 0; $def_3 = 0; $def_4 = 0; $def_5 = 0; $def_1 = 0;
for($i=0 ; $i<$nb ; $i++) { $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]; ${'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.'\''; 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 { class ExceptionHB extends Exception
{
public function __construct($branche, $code = 0, $debug = true, $gerer = false) { public function __construct($branche, $code = 0, $debug = true, $gerer = false)
if ($gerer) {
if ($gerer) {
parent::__construct($branche, $code); parent::__construct($branche, $code);
else } else {
{ if (is_numeric($branche)) {
if (is_numeric($branche)) switch ($branche) {
{
switch($branche)
{
case 1: case 1:
switch($code) switch ($code) {
{
case 0: case 0:
$message = "La planète est pleine, vous ne pouvez plus construire de batiment dessus !"; $message = "La planète est pleine, vous ne pouvez plus construire de batiment dessus !";
break; break;
@ -52,8 +49,7 @@ class ExceptionHB extends Exception {
} }
break; break;
case 2: case 2:
switch($code) switch ($code) {
{
case 0: case 0:
$message = "Cette technologie est déjà en file d'attente, soyez patient !"; $message = "Cette technologie est déjà en file d'attente, soyez patient !";
break; break;
@ -76,8 +72,7 @@ class ExceptionHB extends Exception {
} }
break; break;
case 3: case 3:
switch($code) switch ($code) {
{
case 1: case 1:
$message = "La file d'attente est pleine, vous ne pouvez pas rajouter plus d'unités."; $message = "La file d'attente est pleine, vous ne pouvez pas rajouter plus d'unités.";
break; break;
@ -108,8 +103,7 @@ class ExceptionHB extends Exception {
} }
break; break;
case 4: case 4:
switch($code) switch ($code) {
{
case 1: case 1:
$message = "La file d'attente est pleine, vous ne pouvez pas rajouter plus de recherches."; $message = "La file d'attente est pleine, vous ne pouvez pas rajouter plus de recherches.";
break; break;
@ -133,16 +127,18 @@ class ExceptionHB extends Exception {
} }
break; break;
} }
} } else {
else
$message = $branche; $message = $branche;
}
if ($debug || empty($message)) if ($debug || empty($message)) {
$message = "Erreur #".intval($branche)."/".$code." :<br />".$message; $message = "Erreur #".intval($branche)."/".$code." :<br />".$message;
}
global $template, $page; global $template, $page;
if (!empty($page)) if (!empty($page)) {
$template->assign('page', $page); $template->assign('page', $page);
}
$template->assign('message', $message); $template->assign('message', $message);
$template->assign('couleur', 'red'); $template->assign('couleur', 'red');
$template->display('game/erreur.tpl'); $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 class Flotte
{ {
var $id_flotte = 0, public $id_flotte = 0;
$nom, public $nom;
$start_planete, public $start_planete;
$start_time, public $start_time;
$start_type, public $start_type;
$end_planete, public $end_planete;
$end_time, public $end_time;
$end_type, public $end_type;
$ret_planete, public $ret_planete;
$ret_type, public $ret_type;
$ret_time, public $ret_time;
$nb_vais, public $nb_vais;
$vaisseaux = array(), public $vaisseaux = array();
$tactique = 0, public $tactique = 0;
$mission, public $mission;
$vitesse, public $vitesse;
$statut = 0, public $statut = 0;
$last, public $last;
$contenu = array(0,0,0), public $contenu = array(0,0,0);
$contenuMax = 0, public $contenuMax = 0;
$modifFlotte = array(); public $modifFlotte = array();
/** /**
* Constructeur * Constructeur
@ -41,22 +41,21 @@ class Flotte
* @return void * @return void
* @access public * @access public
*/ */
function __construct($id = 0, $verrou = true) public function __construct($id = 0, $verrou = true)
{
if (!empty($id))
{ {
if (!empty($id)) {
global $table_flottes; global $table_flottes;
global $ressoVAR, $spatialVAR; global $ressoVAR, $spatialVAR;
$id = intval($id); $id = intval($id);
$bdd = new BDD(); $bdd = new BDD();
$flotte = $bdd->unique_query("SELECT * FROM $table_flottes WHERE id = $id;"); $flotte = $bdd->unique_query("SELECT * FROM $table_flottes WHERE id = $id;");
if ($verrou) 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->query("UPDATE $table_flottes SET last = ".time()." WHERE id = $id;");
} //Obtention d'un vérrou de 10 seconde sur la flotte
$bdd->deconnexion(); $bdd->deconnexion();
if (!empty($flotte)) if (!empty($flotte)) {
{
$this->id_flotte = $flotte["id"]; $this->id_flotte = $flotte["id"];
$this->nom = $flotte["nom"]; $this->nom = $flotte["nom"];
$this->start_planete = $flotte["start_planete"]; $this->start_planete = $flotte["start_planete"];
@ -75,8 +74,9 @@ class Flotte
$this->last = $flotte["last"]; $this->last = $flotte["last"];
$this->nb_vais = $flotte["nb_vais"]; $this->nb_vais = $flotte["nb_vais"];
foreach($spatialVAR as $vais) foreach ($spatialVAR as $vais) {
$this->vaisseaux[] = $flotte[$vais]; $this->vaisseaux[] = $flotte[$vais];
}
$this->contenu = array($flotte["contenu_metal"], $flotte["contenu_cristal"], $flotte["contenu_hydrogene"]); $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; $this->nb_vais = 0;
//Calcul de la capacité maximale d'embarquement de la flotte //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->nb_vais += $vais;
$this->contenuMax += dSpatial::tailleCales($key) * $vais; $this->contenuMax += dSpatial::tailleCales($key) * $vais;
} }
} }
function load_planete() public function load_planete()
{
if (!empty($this->start_planete) && is_numeric($this->start_planete))
{ {
if (!empty($this->start_planete) && is_numeric($this->start_planete)) {
//On traite l'importation en fonction des types fournis //On traite l'importation en fonction des types fournis
if ($this->start_type == 0) if ($this->start_type == 0) {
{
global $planete; global $planete;
//Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée //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; $this->start_planete = $planete;
else } else {
$this->start_planete = new Planete($this->start_planete); $this->start_planete = new Planete($this->start_planete);
} }
elseif ($this->start_type == 2) } elseif ($this->start_type == 2) {
{
global $planete; global $planete;
//Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée //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; $this->start_planete = $planete;
else } else {
$this->start_planete = new Asteroide($this->start_planete); $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 //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; global $planete;
//Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée //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; $this->end_planete = $planete;
else } else {
$this->end_planete = new Planete($this->end_planete); $this->end_planete = new Planete($this->end_planete);
} }
elseif ($this->end_type == 2) } elseif ($this->end_type == 2) {
{
global $planete; global $planete;
//Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée //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; $this->end_planete = $planete;
else } else {
$this->end_planete = new Asteroide($this->end_planete); $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 //On traite l'importation en fonction des types fournis
if ($this->ret_type == 0) if ($this->ret_type == 0) {
{
global $planete; global $planete;
//Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée //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; $this->ret_planete = $planete;
else } else {
$this->ret_planete = new Planete($this->ret_planete); $this->ret_planete = new Planete($this->ret_planete);
} }
elseif ($this->ret_type == 2) } elseif ($this->ret_type == 2) {
{
global $planete; global $planete;
//Si la planète est la même que celle du joueur actuel, on l'utilise, sinon, on la crée //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; $this->ret_planete = $planete;
else } else {
$this->ret_planete = new Asteroide($this->ret_planete); $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 $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; $this->vaisseaux[$key] = $vaisseau;
$sauv[$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"]); 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 //Définition des paramètres de la flotte en fonction des données enregistrées en session
$this->nom = $tableau["nom"]; $this->nom = $tableau["nom"];
$this->vitesse = $tableau["vitesse"]; $this->vitesse = $tableau["vitesse"];
$this->mission = $tableau["mission"]; $this->mission = $tableau["mission"];
$this->start_planete = $start_planete; $this->start_planete = $start_planete;
if (SURFACE == "planete") if (SURFACE == "planete") {
$this->start_type = 0; $this->start_type = 0;
elseif (SURFACE == "asteroide") } elseif (SURFACE == "asteroide") {
$this->start_type = 2; $this->start_type = 2;
}
$this->start_time = time(); $this->start_time = time();
//On traite le cas des planètes qui n'existent pas (dans le cas de la mission colonisation) //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 //On traite le cas des colonisation d'astéroïdes
if ($tableau["end_position"] == "A") if ($tableau["end_position"] == "A") {
$this->end_type = 3; $this->end_type = 3;
else } else {
$this->end_type = 1; $this->end_type = 1;
}
$this->end_planete = $tableau["end_galaxie"].':'.$tableau["end_systeme"].':'.$tableau["end_position"]; $this->end_planete = $tableau["end_galaxie"].':'.$tableau["end_systeme"].':'.$tableau["end_position"];
} }
//On traite le cas des envoie vers les alliances //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_type = 2;
$this->end_planete = $resultat['id']; $this->end_planete = $resultat['id'];
} } else {
else
{
$this->end_type = 0; $this->end_type = 0;
$this->end_planete = $resultat['id']; $this->end_planete = $resultat['id'];
} }
if (empty($this->end_planete)) if (empty($this->end_planete)) {
erreur("Planète d'arriver incorrecte !"); 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 //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(); $this->calculer();
@ -225,13 +217,15 @@ class Flotte
$this->end_time = $calc[0]; $this->end_time = $calc[0];
//On double la consomation si on fait un aller-retour //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; $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); 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); 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->contenu = $tableau["embarquer"];
$this->modifFlotte = "INSERT"; $this->modifFlotte = "INSERT";
@ -245,7 +239,7 @@ class Flotte
$start_planete->addModif("force"); $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; global $VAR;
@ -261,29 +255,27 @@ class Flotte
$diff_centre_systeme_end = abs(ceil($VAR['nb_systeme']/2) - $end_systeme); $diff_centre_systeme_end = abs(ceil($VAR['nb_systeme']/2) - $end_systeme);
//Calcul du temps de déplacement pour chaque vaisseau //Calcul du temps de déplacement pour chaque vaisseau
$temps = array(); $conso = array(0, 0, 0); $temps = array();
foreach($vaisseaux as $key => $vais) $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 //S'il n'y a pas de vaisseaux de ce type, on ne calcul pas leur vitesse
if ($vais == 0) if ($vais == 0) {
continue; continue;
}
//Calcul du temps de déplacement entre planètes //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[0][$key] = (1000/dSpatial::vitesseP($key)) * (1 + 0.1 * $diff_position);
$temps[1][$key] = $temps[2][$key] = 0; $temps[1][$key] = $temps[2][$key] = 0;
} }
//Calcul du temps de déplacement entre système //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[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[1][$key] = (2000/dSpatial::vitesseS($key)) * (2 + 1 * $diff_systeme);
$temps[2][$key] = 0; $temps[2][$key] = 0;
} }
//Calcul du temps de déplacement entre galaxies //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[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[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); $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 //Calcul du bonus pour le réacteur à combustion
$techR = $start_planete->technologies[1]; $techR = $start_planete->technologies[1];
if ($techR & 56) if ($techR & 56) {
$bonus = 0.7; $bonus = 0.7;
elseif ($techR & 24) } elseif ($techR & 24) {
$bonus = 0.8; $bonus = 0.8;
elseif ($techR & 8) } elseif ($techR & 8) {
$bonus = 0.9; $bonus = 0.9;
else } else {
$bonus = 1; $bonus = 1;
}
$temps[0][$key] *= $bonus * 1/$vitesse; $temps[0][$key] *= $bonus * 1/$vitesse;
$conso[0] += $vais * $temps[0][$key] * $bonus / exp($vitesse/5); $conso[0] += $vais * $temps[0][$key] * $bonus / exp($vitesse/5);
//Calcul du bonus pour le réacteur à fusion //Calcul du bonus pour le réacteur à fusion
$techR = $start_planete->technologies[1]; $techR = $start_planete->technologies[1];
if ($techR &448) if ($techR &448) {
$bonus = 0.7; $bonus = 0.7;
elseif ($techR &192) } elseif ($techR &192) {
$bonus = 0.8; $bonus = 0.8;
elseif ($techR &64) } elseif ($techR &64) {
$bonus = 0.9; $bonus = 0.9;
else } else {
$bonus = 1; $bonus = 1;
}
$temps[1][$key] *= $bonus * 1/$vitesse; $temps[1][$key] *= $bonus * 1/$vitesse;
$conso[1] += $vais * $temps[1][$key] * $bonus / exp($vitesse/7.5); $conso[1] += $vais * $temps[1][$key] * $bonus / exp($vitesse/7.5);
//Calcul du bonus pour le réacteur à fusion de type II //Calcul du bonus pour le réacteur à fusion de type II
$techR = $start_planete->technologies[1]; $techR = $start_planete->technologies[1];
if ($techR &3584) if ($techR &3584) {
$bonus = 0.7; $bonus = 0.7;
elseif ($techR &1536) } elseif ($techR &1536) {
$bonus = 0.8; $bonus = 0.8;
elseif ($techR &512) } elseif ($techR &512) {
$bonus = 0.9; $bonus = 0.9;
else } else {
$bonus = 1; $bonus = 1;
}
$temps[2][$key] *= $bonus * 1/$vitesse; $temps[2][$key] *= $bonus * 1/$vitesse;
$conso[2] += $vais * $temps[2][$key] * $bonus / exp($vitesse/10); $conso[2] += $vais * $temps[2][$key] * $bonus / exp($vitesse/10);
} }
if (!isset($vaisseaux[4])) if (!isset($vaisseaux[4])) {
$vaisseaux[4] = 0; $vaisseaux[4] = 0;
if (!isset($vaisseaux[5])) }
if (!isset($vaisseaux[5])) {
$vaisseaux[5] = 0; $vaisseaux[5] = 0;
}
//Si les chasseurs peuvent rentrer dans les cales des vaisseaux, on les enlèves //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; $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 //On calcul le temps de déplacement maximal
if ($returnArray) if ($returnArray) {
return $temps; return $temps;
elseif ($returnConso) } elseif ($returnConso) {
return array(max($temps[0]) + max($temps[1]) + max($temps[2]), ceil($conso[0]+$conso[1]+$conso[2])); 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])); 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 //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; return false;
elseif ($this->start_time + $this->end_time > time()) } elseif ($this->start_time + $this->end_time > time()) {
return false; return false;
}
if ($this->statut == 0) if ($this->statut == 0) {
{ switch ($this->mission) {
switch($this->mission)
{
case 6: case 6:
case 7: case 7:
$this->stationner(); $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(); $this->retourner();
}
return true; return true;
} }
function stationner() public function stationner()
{ {
//On décharge les ressources éventuellement contenue //On décharge les ressources éventuellement contenue
$this->decharger(); $this->decharger();
//On fait atterir les vaisseaux //On fait atterir les vaisseaux
foreach ($this->vaisseaux as $key => $vais) foreach ($this->vaisseaux as $key => $vais) {
$this->end_planete->vaisseaux[$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->end_planete->modif[] = "vaisseaux";
}
$this->modifFlotte = "DELETE"; $this->modifFlotte = "DELETE";
} }
function transporter() public function transporter()
{ {
$max = $this->decharger(); $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 //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(); $this->load_planete();
file_log("Erreur de colonisation de la planète : ".$this->end_planete." pour le joueur : ".$this->start_planete->id_user, 2); 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); 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 //On vérifie que la planète ne soit pas déjà colonisée
global $table_planete, $table_alliances, $table_alliances_creation, $table_user; 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); 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(); $bdd = new BDD();
$p = $bdd->query("SELECT * FROM $table_planete WHERE galaxie = ".$position[1]." AND ss = ".$position[2]." AND position = ".$position[3].";"); $p = $bdd->query("SELECT * FROM $table_planete WHERE galaxie = ".$position[1]." AND ss = ".$position[2]." AND position = ".$position[3].";");
$bdd->deconnexion(); $bdd->deconnexion();
} } else {
else
{
$bdd = new BDD(); $bdd = new BDD();
$p = $bdd->query("SELECT * FROM $table_alliances WHERE galaxie = ".$position[1]." AND ss = ".$position[2].";"); $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.";"); $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(); $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 = 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(array($position[1], $position[2], $position[3]), 0);
$rapport->addInfo(false, 1); $rapport->addInfo(false, 1);
@ -459,11 +455,8 @@ class Flotte
$this->statut = 1; $this->statut = 1;
$this->addModifFlotte("statut"); $this->addModifFlotte("statut");
} } else {
else if (is_numeric($position[3])) {
{
if (is_numeric($position[3]))
{
//On crée la planète //On crée la planète
$this->end_planete = new Planete(false); $this->end_planete = new Planete(false);
$this->end_planete->galaxie = $position[1]; $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 //On définit la limite de ressources pour permettre le déchargement de celles contenues dans les vaisseaux
$this->end_planete->cap = 100000; $this->end_planete->cap = 100000;
} } else {
else
{
//On crée l'astéroide //On crée l'astéroide
$this->end_planete = new Asteroide(false); $this->end_planete = new Asteroide(false);
$this->end_planete->galaxie = $position[1]; $this->end_planete->galaxie = $position[1];
@ -500,8 +491,7 @@ class Flotte
$rapport->addInfo(true, 1); $rapport->addInfo(true, 1);
$rapport->send(); $rapport->send();
if (!is_numeric($position[3])) if (!is_numeric($position[3])) {
{
unset($this->end_planete); unset($this->end_planete);
$bdd = new BDD(); $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.";"); $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 //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(); $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); $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; $coeff = 1;
}
$a = floor($this->end_planete->debris_met * $coeff); $a = floor($this->end_planete->debris_met * $coeff);
$b = floor($this->end_planete->debris_cri * $coeff); $b = floor($this->end_planete->debris_cri * $coeff);
$this->contenu[0] += $a; $this->contenu[0] += $a;
$this->contenu[1] += $b; $this->contenu[1] += $b;
if (!in_array('contenu', $this->modifFlotte)) if (!in_array('contenu', $this->modifFlotte)) {
$this->modifFlotte[] = 'contenu'; $this->modifFlotte[] = 'contenu';
}
$this->end_planete->debris_met -= $a; $this->end_planete->debris_met -= $a;
$this->end_planete->debris_cri -= $b; $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'; $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'; $this->end_planete->modif[] = 'debris_cri';
}
//Send link //Send link
$rapport = new Rapport(4, $this->start_planete, 0, $this->start_time + $this->end_time); $rapport = new Rapport(4, $this->start_planete, 0, $this->start_time + $this->end_time);
@ -545,34 +540,38 @@ class Flotte
$rapport->send(); $rapport->send();
$this->statut = 1; $this->statut = 1;
if (!in_array('statut', $this->modifFlotte)) if (!in_array('statut', $this->modifFlotte)) {
$this->modifFlotte[] = 'statut'; $this->modifFlotte[] = 'statut';
} }
}
function espionner() public function espionner()
{ {
//Si la planète d'arrivé n'est pas chargée, on charge les planètes //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(); $this->load_planete();
}
//Extraction des niveaux technologique des deux adversaires //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; $espionnage_A = 3;
elseif (($this->start_planete->technologies[1]& 33554432) == 33554432) } elseif (($this->start_planete->technologies[1]& 33554432) == 33554432) {
$espionnage_A = 3; $espionnage_A = 3;
elseif (($this->start_planete->technologies[1]& 16777216) == 16777216) } elseif (($this->start_planete->technologies[1]& 16777216) == 16777216) {
$espionnage_A = 3; $espionnage_A = 3;
else } else {
$espionnage_A = 0; $espionnage_A = 0;
if (($this->start_planete->technologies[1]& 536870912) == 536870912) }
if (($this->start_planete->technologies[1]& 536870912) == 536870912) {
$contreespionnage_B = 3; $contreespionnage_B = 3;
elseif (($this->start_planete->technologies[1]& 268435456) == 268435456) } elseif (($this->start_planete->technologies[1]& 268435456) == 268435456) {
$contreespionnage_B = 2; $contreespionnage_B = 2;
elseif (($this->start_planete->technologies[1]& 134217728) == 134217728) } elseif (($this->start_planete->technologies[1]& 134217728) == 134217728) {
$contreespionnage_B = 1; $contreespionnage_B = 1;
else } else {
$contreespionnage_B = 0; $contreespionnage_B = 0;
}
//Création du rapport //Création du rapport
$rapport = new Rapport(5, $this->start_planete, $this->end_planete, $this->start_time + $this->end_time); $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 //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(); $this->load_planete();
}
$max = array(0, 0, 0); $max = array(0, 0, 0);
//Si on dépasse les capacités, on laisse les ressources en trop dans le cargo //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; $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]; $max[0] = $this->contenu[0];
}
$this->$plan->metal += $max[0]; $this->$plan->metal += $max[0];
$this->contenu[0] -= $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; $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]; $max[1] = $this->contenu[1];
}
$this->$plan->cristal += $max[1]; $this->$plan->cristal += $max[1];
$this->contenu[1] -= $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; $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]; $max[2] = $this->contenu[2];
}
$this->$plan->hydrogene += $max[2]; $this->$plan->hydrogene += $max[2];
$this->contenu[2] -= $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 //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(); $this->load_planete();
}
if (isset($this->$plan->vaisseaux[0])) if (isset($this->$plan->vaisseaux[0])) {
{ foreach ($this->vaisseaux as $key => $vais) {
foreach ($this->vaisseaux as $key => $vais)
$this->$plan->vaisseaux[$key] += $vais; $this->$plan->vaisseaux[$key] += $vais;
} }
else } else {
$this->$plan->vaisseaux = $this->vaisseaux; $this->$plan->vaisseaux = $this->vaisseaux;
}
$this->$plan->addModif("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; return false;
else } else {
{
$this->end_time = time() - $this->start_time + 10; $this->end_time = time() - $this->start_time + 10;
$this->mission = 5; $this->mission = 5;
if (!in_array('mission', $this->modifFlotte)) if (!in_array('mission', $this->modifFlotte)) {
$this->modifFlotte[] = 'mission'; $this->modifFlotte[] = 'mission';
if (!in_array('end_time', $this->modifFlotte)) }
if (!in_array('end_time', $this->modifFlotte)) {
$this->modifFlotte[] = 'end_time'; $this->modifFlotte[] = 'end_time';
}
return true; return true;
} }
} }
function retourner() public function retourner()
{ {
//Si la planète de départ n'est pas chargée, on charge les planètes //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(); $this->load_planete();
}
//Si on a demandé une planète particulière au retour //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->decharger("ret_planete");
$this->atterir("ret_planete"); $this->atterir("ret_planete");
} }
//Si le retour se fait sur la planète source //Si le retour se fait sur la planète source
else else {
{
$this->decharger("start_planete"); $this->decharger("start_planete");
$this->atterir("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; $this->modifFlotte[] = $modif;
} }
}
function printTime_end() public function printTime_end()
{ {
return $this->start_time + $this->end_time; 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; 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; return $this->start_time + $this->end_time*2;
else } else {
return 0; return 0;
} }
}
static function txtMission($mission) public static function txtMission($mission)
{
switch($mission)
{ {
switch ($mission) {
case 1: case 1:
return "Transporter"; return "Transporter";
break; break;
@ -750,90 +755,84 @@ class Flotte
* @return void * @return void
* @access public * @access public
*/ */
function __destruct() public function __destruct()
{ {
global $table_flottes; global $table_flottes;
if ($this->modifFlotte === "DELETE") if ($this->modifFlotte === "DELETE") {
{
$bdd = new BDD(); $bdd = new BDD();
$bdd->query("DELETE FROM $table_flottes WHERE id = ".$this->id_flotte.";"); $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); 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 $bdd->deconnexion();
{ } else {
if (empty($this->id_flotte) && $this->modifFlotte == "INSERT") if (empty($this->id_flotte) && $this->modifFlotte == "INSERT") {
{ $out1 = '';
$out1 = ''; $out2 = ''; $out2 = '';
global $spatialVAR; global $spatialVAR;
foreach ($this->vaisseaux as $key => $vais) foreach ($this->vaisseaux as $key => $vais) {
{ if ($vais > 0) {
if ($vais > 0)
{
$out1 .= ', '.$spatialVAR[$key]; $out1 .= ', '.$spatialVAR[$key];
$out2 .= ', '.$vais; $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);"; $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);"; $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 = new BDD();
$bdd->query($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 : insertion flotte", 2); 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(); $out = array();
$bdd = new BDD(); $bdd = new BDD();
foreach($this->modifFlotte as $modif) foreach ($this->modifFlotte as $modif) {
{ if (!is_array($this->{$modif})) {
if (!is_array($this->{$modif})) if (is_int($this->{$modif}) || is_float($this->{$modif})) {
{
if (is_int($this->{$modif}) || is_float($this->{$modif}))
$out[] .= $modif." = ".$this->{$modif}; $out[] .= $modif." = ".$this->{$modif};
else } else {
{
$bdd->escape($this->{$modif}); $bdd->escape($this->{$modif});
$out[] .= $modif." = '".$this->{$modif}."'"; $out[] .= $modif." = '".$this->{$modif}."'";
} }
} } else {
else if ($modif == "contenu") {
{
if ($modif == "contenu")
$calc = "resso"; $calc = "resso";
elseif ($modif == "vaisseaux") } elseif ($modif == "vaisseaux") {
$calc = "nomvaisn"; $calc = "nomvaisn";
}
if (!isset(${$calc.'VAR'})) if (!isset(${$calc.'VAR'})) {
global ${$calc.'VAR'}; global ${$calc.'VAR'};
}
foreach(${$calc.'VAR'} as $key => $var) foreach (${$calc.'VAR'} as $key => $var) {
{
$bdd->escape($this->{$modif}[$key]); $bdd->escape($this->{$modif}[$key]);
$out[] = ${$calc.'VAR'}[$key]." = ".$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.";"; $sql = "UPDATE $table_flottes SET ".implode(', ', $out).", last = 0 WHERE id = ".$this->id_flotte.";";
if (DEBUG) if (DEBUG) {
var_dump($sql); var_dump($sql);
}
$bdd->query($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); 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(); $bdd->deconnexion();
} }
} }
} }
} }
?>

View file

@ -5,32 +5,30 @@
*/ */
class Groupe class Groupe
{ {
var $contenu = array(); //Tableau contenant les vaisseaux de l'utilisateur public $contenu = array(); //Tableau contenant les vaisseaux de l'utilisateur
var $caracteristiques = array(); public $caracteristiques = array();
var $example = array( public $example = array(
array("somme boucliers", "somme pv", "nbVaisseauxInitiaux") array("somme boucliers", "somme pv", "nbVaisseauxInitiaux")
); );
var $user; //Classe donnant des informations sur l'utilisateur de la flotte ou l'ID de l'utilisateur public $user; //Classe donnant des informations sur l'utilisateur de la flotte ou l'ID de l'utilisateur
var $camp = 0; //Camp du groupe public $camp = 0; //Camp du groupe
var $timestamp = 0; //TImestamp de la dernière attaque public $timestamp = 0; //TImestamp de la dernière attaque
var $actions = array(); //Tableau des actions faite ou à faire public $actions = array(); //Tableau des actions faite ou à faire
var $action_encours = 0; public $action_encours = 0;
/** /**
* Constructor * Constructor
*/ */
function __construct() public function __construct()
{ {
} }
function regenereBoucliers() public function regenereBoucliers()
{ {
foreach ($this->caracteristiques as $caracteristique) // foreach ($this->caracteristiques as $caracteristique)
{ // {
if ($this->actions[$action_encours][0] == 2) // 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_access"] = 'Accès au fichier impossible: ';
$PHPMAILER_LANG["file_open"] = 'File Error: Ne peut ouvrir le fichier: '; $PHPMAILER_LANG["file_open"] = 'File Error: Ne peut ouvrir le fichier: ';
$PHPMAILER_LANG["encoding"] = 'Type d\'encodage inconnu : '; $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 class Rapport
{ {
var $type = 0; public $type = 0;
var $var = array(); public $var = array();
var $utilA = 0; public $utilA = 0;
var $utilB = 0; public $utilB = 0;
var $timestamp = 0; public $timestamp = 0;
var $titreA = ""; public $titreA = "";
var $titreB = ""; public $titreB = "";
var $rapportA = ""; public $rapportA = "";
var $rapportB = ""; public $rapportB = "";
/** /**
* Constructor * Constructor
* @access protected * @access protected
*/ */
function Rapport($type, $utilA, $utilB, $time) public function Rapport($type, $utilA, $utilB, $time)
{ {
$this->type = $type; $this->type = $type;
$this->utilA = $utilA; $this->utilA = $utilA;
@ -30,126 +30,117 @@ class Rapport
$this->timestamp = $time; $this->timestamp = $time;
} }
function addInfo($info, $id) public function addInfo($info, $id)
{ {
$this->var[$id] = $info; $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); 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); 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; global $LANG;
//Différentiation entre les planètes et les astéroides //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->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 />"; $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->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 />"; $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>"; $this->rapportA .= "<em>Nos sondes n'ont pas pu récolter d'informations sur cette planète.</em>";
else { } else {
//Ressources //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 />"; $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 //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>"; $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 .= "<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 />"; $this->rapportA .= "</table><br />";
} }
//Flottes en orbite //Flottes en orbite
if ($this->var[2] > 3) if ($this->var[2] > 3) {
{
} }
//Flottes au sol //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>"; $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 .= "<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 />"; $this->rapportA .= "</table><br />";
} }
//Défenses //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>"; $this->rapportA .= "<table style=\"margin: auto;\"><tr><th>Nombre</th><th>Défenses</th></tr>";
foreach ($this->var[0]->terrestres as $key => $unite) foreach ($this->var[0]->terrestres as $key => $unite) {
{ if (!dTerrestre::type($key)) {
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 .= "<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 />"; $this->rapportA .= "</table><br />";
} }
} }
if ($this->var[3] >= 1) if ($this->var[3] >= 1) {
{
$this->titreB = "Rapport de contre-espionnage"; $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; $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->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; $this->rapportA = $this->rapportA;
} }
function sendTransport() public function sendTransport()
{ {
global $LANG; 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]'; $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->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 />'; $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.']'; $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->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 />'; $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; $temps = $this->timestamp;
@ -159,27 +150,28 @@ class Rapport
$db->escape($this->rapportB); $db->escape($this->rapportB);
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA->id_user.", '$titre', '$this->rapportA', '$temps');"); $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(); $db->deconnexion();
} }
function sendColonisation() public function sendColonisation()
{ {
$titre = 'Colonisation de ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].']'; $titre = 'Colonisation de ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].']';
if (is_numeric($this->var[0][2])) if (is_numeric($this->var[0][2])) {
{ if ($this->var[1]) {
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.'; $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.'; $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 } else {
{ if ($this->var[1]) {
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.'; $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.'; $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; $temps = $this->timestamp;
$db = new BDD(); $db = new BDD();
@ -189,16 +181,13 @@ class Rapport
$db->deconnexion(); $db->deconnexion();
} }
function sendRecyclage() public function sendRecyclage()
{ {
global $LANG; 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]'; $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 />'; $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.']'; $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 />'; $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(); $db->deconnexion();
} }
function sendCombat(){ public function sendCombat()
{
include(_FCORE."../game/vars.php"); include(_FCORE."../game/vars.php");
include_once(_FCORE."../game/function.php"); include_once(_FCORE."../game/function.php");
require_once(SMARTY_DIR."Smarty.class.php"); require_once(SMARTY_DIR."Smarty.class.php");
@ -316,7 +306,8 @@ class Rapport
$db->deconnexion(); $db->deconnexion();
} }
function show(){ public function show()
{
include(_FCORE."../game/vars.php"); include(_FCORE."../game/vars.php");
include_once(_FCORE."../game/function.php"); include_once(_FCORE."../game/function.php");
require_once(SMARTY_DIR."Smarty.class.php"); require_once(SMARTY_DIR."Smarty.class.php");
@ -372,7 +363,7 @@ class Rapport
return $this->rapportA; return $this->rapportA;
} }
function sendAlliance() public function sendAlliance()
{ {
$this->titreA = 'Déclaration officielle de votre alliance !'; $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.'; $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(); $db->deconnexion();
} }
function sendAlliance2() public function sendAlliance2()
{ {
$this->titreA = 'Fondation de votre alliance !'; $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>'; $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(); $db->deconnexion();
} }
} }
?>

View file

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

View file

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

View file

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

View file

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

View file

@ -11,31 +11,32 @@ include_once("Class/tinyasteroide.php");
* *
* *
***************************************************************************/ ***************************************************************************/
class User{ class User
var $id_user, {
$pseudo, public $id_user;
$auth_level, public $pseudo;
$options, public $auth_level;
$race, public $options;
$alliance, public $race;
$id_alliance, public $alliance;
$id_grade_alliance, public $id_alliance;
$permissions_alliance, public $id_grade_alliance;
$mv, public $permissions_alliance;
$mail, public $mv;
$envoyerMail, public $mail;
$last_visite, public $envoyerMail;
$points, public $last_visite;
$place_points, public $points;
$technologies = array(), public $place_points;
$credits, public $technologies = array();
$politique, public $credits;
$politique_lastchange, public $politique;
$destinationsFavoris, public $politique_lastchange;
$amis = array(), public $destinationsFavoris;
$combatAT_tactique, public $amis = array();
$combatDE_tactique, public $combatAT_tactique;
$modifUser = array(); public $combatDE_tactique;
public $modifUser = array();
/** /**
* Constructeur * Constructeur
@ -44,7 +45,8 @@ class User{
* @return void * @return void
* @access public * @access public
*/ */
function User($id = 0){ public function User($id = 0)
{
if (!empty($id)) { if (!empty($id)) {
global $technologiesVAR, $table_user; global $technologiesVAR, $table_user;
$bdd = new bdd(); $bdd = new bdd();
@ -68,31 +70,38 @@ class User{
$this->credits = $user["credits"]; $this->credits = $user["credits"];
$this->politique = $user["politique"]; $this->politique = $user["politique"];
$this->politique_lastchange = $user["politique_lastchange"]; $this->politique_lastchange = $user["politique_lastchange"];
if (!empty($user["amis"])) $this->amis = unserialize($user["amis"]); if (!empty($user["amis"])) {
else $this->amis = array(); $this->amis = unserialize($user["amis"]);
if (!empty($user["destinationsFavoris"])) $this->destinationsFavoris = unserialize($user["destinationsFavoris"]); } else {
else $this->destinationsFavoris = array(); $this->amis = array();
}
if (!empty($user["destinationsFavoris"])) {
$this->destinationsFavoris = unserialize($user["destinationsFavoris"]);
} else {
$this->destinationsFavoris = array();
}
$this->combatAT_tactique = $user["combatAT_tactique"]; $this->combatAT_tactique = $user["combatAT_tactique"];
$this->combatDE_tactique = $user["combatDE_tactique"]; $this->combatDE_tactique = $user["combatDE_tactique"];
foreach($technologiesVAR as $tech){ foreach ($technologiesVAR as $tech) {
$this->technologies[] = intval($user[$tech]); $this->technologies[] = intval($user[$tech]);
} }
//Si l'ID d'alliance est défini, on charge l'alliance //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); $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; $this->permissions_alliance = 1023;
else } else {
{
global $table_alliances_grade; global $table_alliances_grade;
$bdd = new BDD(); $bdd = new BDD();
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = ".$this->id_grade_alliance.";"); $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; global $table_bourse_ressources;
//On charge les 3 valeurs boursières //On charge les 3 valeurs boursières
@ -110,8 +119,7 @@ class User{
$bourse = $bdd->query("SELECT dispo FROM $table_bourse_ressources;"); $bourse = $bdd->query("SELECT dispo FROM $table_bourse_ressources;");
$bdd->deconnexion(); $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 //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); $metal += $credits/bourse_calcPrixBase($bourse[0]["dispo"], 0.7);
$cristal += $credits/bourse_calcPrixBase($bourse[1]["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[1]["dispo"], $cristal);
$points += bourse_calcPrixBase($bourse[2]["dispo"], $hydrogene); $points += bourse_calcPrixBase($bourse[2]["dispo"], $hydrogene);
if ($demolition) if ($demolition) {
$this->points -= intval($points); $this->points -= intval($points);
else } else {
$this->points += intval($points); $this->points += intval($points);
}
$this->addModifUser("points"); $this->addModifUser("points");
} }
function addCredits($credits) public function addCredits($credits)
{ {
$this->credits += $credits; $this->credits += $credits;
$this->addModifUser("credits"); $this->addModifUser("credits");
@ -138,11 +147,12 @@ class User{
return 0; return 0;
} }
function addModifUser($modif) public function addModifUser($modif)
{ {
if (!in_array($modif, $this->modifUser)) if (!in_array($modif, $this->modifUser)) {
$this->modifUser[] = $modif; $this->modifUser[] = $modif;
} }
}
/** /**
* Destructeur * Destructeur
@ -150,62 +160,61 @@ class User{
* @return void * @return void
* @access public * @access public
*/ */
function __destruct(){ public function __destruct()
{
global $table_user; global $table_user;
$out = array(); $out = array();
$bdd = new BDD(); $bdd = new BDD();
foreach($this->modifUser as $key => $modif) foreach ($this->modifUser as $key => $modif) {
{
//On gère les champs variables tableaux //On gère les champs variables tableaux
if (is_array($modif)) if (is_array($modif)) {
{
$calc = dDonnees::nameVAR($modif[0]); $calc = dDonnees::nameVAR($modif[0]);
if (!isset(${$calc.'VAR'})) if (!isset(${$calc.'VAR'})) {
global ${$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); trigger_error('Impossible de trouver les données pour '.$modif[0], E_USER_ERROR);
}
$out[] = ${$calc.'VAR'}[$modif[1]]." = ".$this->{$modif[0]}[$modif[1]]; $out[] = ${$calc.'VAR'}[$modif[1]]." = ".$this->{$modif[0]}[$modif[1]];
} } elseif ($modif == "force") {
elseif ($modif == "force")
$out[] = " "; $out[] = " ";
elseif (!is_array($this->{$modif})) } elseif (!is_array($this->{$modif})) {
{
$bdd->escape($this->{$modif}); $bdd->escape($this->{$modif});
if (is_int($this->{$modif}) || is_float($this->{$modif})) $out[] .= $modif." = ".$this->{$modif}; if (is_int($this->{$modif}) || is_float($this->{$modif})) {
else $out[] .= $modif." = '".$this->{$modif}."'"; $out[] .= $modif." = ".$this->{$modif};
} else {
$out[] .= $modif." = '".$this->{$modif}."'";
} }
else } else {
{ if ($modif != "coeff_bat" && $modif != "vaisseaux" && $modif != "terrestres" && $modif != "casernes" && $modif != "technologies" && $modif != "batiments") {
if ($modif != "coeff_bat" && $modif != "vaisseaux" && $modif != "terrestres" && $modif != "casernes" && $modif != "technologies" && $modif != "batiments")
{
$prep = serialize($this->{$modif}); $prep = serialize($this->{$modif});
$bdd->escape($prep); $bdd->escape($prep);
$out[] = $modif." = '$prep'"; $out[] = $modif." = '$prep'";
} } else {
else
{
$calc = dDonnees::nameVAR($modif); $calc = dDonnees::nameVAR($modif);
if (!isset(${$calc.'VAR'})) if (!isset(${$calc.'VAR'})) {
global ${$calc.'VAR'}; global ${$calc.'VAR'};
}
foreach($this->{$modif} as $j => $value) foreach ($this->{$modif} as $j => $value) {
$out[] = ${$calc.'VAR'}[$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.";"; $sql = "UPDATE $table_user SET ".implode(', ', $out)." WHERE id = ".$this->id_user.";";
if (DEBUG) if (DEBUG) {
echo '<br /><br />'.$sql; echo '<br /><br />'.$sql;
}
$bdd->query($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); 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(); $bdd->deconnexion();
} }
} }
?>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,30 +1,27 @@
<?php <?php
if(!defined('INDEX')) { header('Location: ../'); exit; } if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$titre = "Création d'inscription"; $titre = "Création d'inscription";
$pagea = "inscription"; $pagea = "inscription";
if (!empty($_POST["HB_pseudo"]) && !empty($_POST["race"])) if (!empty($_POST["HB_pseudo"]) && !empty($_POST["race"])) {
{ if (empty($_POST["HB_conf"]) && empty($_POST["HB_mdp"])) {
if (empty($_POST["HB_conf"]) && empty($_POST["HB_mdp"]))
$_POST["HB_mdp"] = $_POST["HB_conf"] = gen_mdp(9); $_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"))); $_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")); $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"); 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 } 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")) {
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); 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 !'); erreur('Mot de passe incorrect !');
}
} }
?>

View file

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

View file

@ -1,20 +1,23 @@
<?php <?php
if(!defined('INDEX')) { header('Location: ../'); exit; } if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$pagea = 'print'; $pagea = 'print';
$titre = 'V&eacute;rification joueur'; $titre = 'V&eacute;rification joueur';
$template->assign('linkpage', 'vjoueurs'); $template->assign('linkpage', 'vjoueurs');
//Changement du nom d'utilisateur //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')); $id_plan = intval(gpc('id'));
$mod = gpc('mod', 'post'); $mod = gpc('mod', 'post');
$liste = "abcdefghijklmnopqrstuvwxyz./!*123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $liste = "abcdefghijklmnopqrstuvwxyz./!*123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$code = ''; $code = '';
while(strlen($code) <= 8) while (strlen($code) <= 8) {
$code .= $liste[rand(0,64)]; $code .= $liste[rand(0, 64)];
}
$mdp = mdp($mod, $code); $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;"); $reqMail = $bdd->unique_query("SELECT mail FROM $table_user WHERE id = $id_plan;");
$bdd->escape($mod); $bdd->escape($mod);
$reqPseudo = $bdd->query("SELECT mail FROM $table_user WHERE pseudo = '$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 !'); 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->query("UPDATE $table_user SET pseudo = '$mod', mdp = '".$mdp[0]."', mdp_var = '".$mdp[1]."' WHERE id = $id_plan;");
$bdd->deconnexion(); $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"); 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."); erreur("Une erreur est survenue lors de l'envoie du mail.");
} }
}
//Changement du mot de passe //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')); $id_plan = intval(gpc('id'));
$mod = gpc('mod', 'post'); $mod = gpc('mod', 'post');
@ -46,9 +50,7 @@ elseif (!empty($_GET['id']) && !empty($_POST['key']) && !empty($_POST['mod']) &&
$bdd->deconnexion(); $bdd->deconnexion();
erreur("Mot de passe changé avec succès.<br />Pensez à avertir l'utilisateur de ce changement !", "green"); 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'; $pagea = 'print_key';
$id_plan = intval(gpc('id')); $id_plan = intval(gpc('id'));
$key = gpc('key'); $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('type', explode('(', $req['Type']));
$template->assign('idPlan', $id_plan); $template->assign('idPlan', $id_plan);
$template->assign('key', $key); $template->assign('key', $key);
} } elseif (!empty($_GET['id'])) {
elseif (!empty($_GET['id']))
{
$id_plan = intval(gpc('id')); $id_plan = intval(gpc('id'));
if (isset($_POST['key']) && isset($_POST['mod'])) if (isset($_POST['key']) && isset($_POST['mod'])) {
{
$key = gpc('key', 'post'); $key = gpc('key', 'post');
$mod = gpc('mod', 'post'); $mod = gpc('mod', 'post');
$bdd = new BDD(); $bdd = new BDD();
@ -82,9 +81,7 @@ elseif (!empty($_GET['id']))
$template->assign('tableau', $req); $template->assign('tableau', $req);
$template->assign('idPlan', $id_plan); $template->assign('idPlan', $id_plan);
} } elseif (!empty($_GET['name'])) {
elseif (!empty($_GET['name']))
{
$name = gpc('name'); $name = gpc('name');
$bdd = new BDD(); $bdd = new BDD();
$bdd->escape($name); $bdd->escape($name);
@ -92,7 +89,6 @@ elseif (!empty($_GET['name']))
$bdd->deconnexion(); $bdd->deconnexion();
header('Location: admin.php?p=vjoueurs&id='.$req['id']); header('Location: admin.php?p=vjoueurs&id='.$req['id']);
exit; exit;
} } else {
else
$pagea = 'print_choixU'; $pagea = 'print_choixU';
?> }

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,32 +1,29 @@
<?php <?php
if(!defined('INDEX')) { header('Location: ../'); exit; } if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$titre = '!!! Supprimer joueur !!!'; $titre = '!!! Supprimer joueur !!!';
$pagea = 'erreur'; $pagea = 'erreur';
$template->assign('linkpage', 'djoueurs'); $template->assign('linkpage', 'djoueurs');
if ($SESS->level >= 5 && !empty($_GET['id'])) if ($SESS->level >= 5 && !empty($_GET['id'])) {
{
$id = intval(gpc('id')); $id = intval(gpc('id'));
$bdd = new BDD(); $bdd = new BDD();
$req = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id;"); $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_mail WHERE destinataire = $id;");
$bdd->query("DELETE FROM $table_user WHERE id = $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_flottes WHERE id_user = $id;");
$bdd->query("DELETE FROM $table_planete WHERE id_user = $id;"); $bdd->query("DELETE FROM $table_planete WHERE id_user = $id;");
$bdd->deconnexion(); $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.'); $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(); $bdd->deconnexion();
$template->assign('message', 'Le joueur n\'a pas été trouvé ou vous n\'avez pas les permissions de le supprimer !'); $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'); $name = gpc('name');
$bdd = new BDD(); $bdd = new BDD();
$bdd->escape($name); $bdd->escape($name);
@ -35,7 +32,6 @@ elseif (!empty($_GET['name']))
header('Location: '.$VAR["menu"]["djoueurs"].'&id='.$req['id']); header('Location: '.$VAR["menu"]["djoueurs"].'&id='.$req['id']);
exit; exit;
} } else {
else
$pagea = 'print_choixU'; $pagea = 'print_choixU';
?> }

View file

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

View file

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

View file

@ -1,8 +1,9 @@
<?php <?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 //On inclut les classes de données
require_once("Class/Donnees/interface.php"); require_once("Class/Donnees/interface.php");
require_once("Class/Donnees/alliances_batiments.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"); $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"); $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"); $coeffVAR = array("coeff_mine_m", "coeff_mine_c", "coeff_mine_h", "coeff_centrale_s", "coeff_centrale_f");
?>

View file

@ -1,18 +1,18 @@
<?php <?php
if(!defined('INDEX')) { header('Location: ../'); exit; } if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$bdd->reconnexion(); $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).";"); $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(); $bdd->deconnexion();
if (!empty($flottes)) if (!empty($flottes)) {
{ foreach ($flottes as $flotte) {
foreach($flottes as $flotte)
{
$flotte = new Flotte($flotte['id']); $flotte = new Flotte($flotte['id']);
$flotte->check_mission(); $flotte->check_mission();
} }
} }
unset($flottes, $flotte); unset($flottes, $flotte);
?>

View file

@ -10,8 +10,11 @@ function trouvNom($id_user)
function linkNom($id_user) function linkNom($id_user)
{ {
if (is_numeric($id_user)) $nom = trouvNom($id_user); if (is_numeric($id_user)) {
else $id_user = trouvId($id_user); $nom = trouvNom($id_user);
} else {
$id_user = trouvId($id_user);
}
return '<a href="?p=util&amp;i='.$id_user.'">'.$nom.'</a>'; return '<a href="?p=util&amp;i='.$id_user.'">'.$nom.'</a>';
} }
@ -29,9 +32,13 @@ function affTemp($secondes)
{ {
$heures = intval($secondes/3600); $heures = intval($secondes/3600);
$minutes = intval($secondes/60-($heures*60)); $minutes = intval($secondes/60-($heures*60));
if ($minutes < 10) $minutes = '0'.$minutes; if ($minutes < 10) {
$minutes = '0'.$minutes;
}
$seconde = $secondes-($heures*3600)-($minutes*60); $seconde = $secondes-($heures*3600)-($minutes*60);
if ($seconde < 10) $seconde = '0'.$seconde; if ($seconde < 10) {
$seconde = '0'.$seconde;
}
return $heures.':'.$minutes.':'.$seconde; return $heures.':'.$minutes.':'.$seconde;
} }
@ -39,7 +46,7 @@ function affTemp($secondes)
function sec($time) function sec($time)
{ {
$output = ''; $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) { foreach ($tab as $key => $value) {
$compteur = 0; $compteur = 0;
while ($time > ($value-1)) { while ($time > ($value-1)) {
@ -48,32 +55,40 @@ function sec($time)
} }
if ($compteur != 0) { if ($compteur != 0) {
$output .= $compteur.' '.$key; $output .= $compteur.' '.$key;
if ($compteur > 1) $output .= 's'; if ($compteur > 1) {
if ($value != 1) $output .= ' '; $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) function txtmission($mission)
{ {
if ($mission == 0) if ($mission == 0) {
return 'Stationner'; return 'Stationner';
elseif ($mission == 1) } elseif ($mission == 1) {
return 'Transporter'; return 'Transporter';
elseif ($mission == 2) } elseif ($mission == 2) {
return 'Coloniser'; return 'Coloniser';
elseif ($mission == 3) } elseif ($mission == 3) {
return 'Attaquer'; return 'Attaquer';
elseif ($mission == 4) } elseif ($mission == 4) {
return 'Recycler'; return 'Recycler';
elseif ($mission == 5) } elseif ($mission == 5) {
return 'Espionner'; return 'Espionner';
elseif ($mission == 6) } elseif ($mission == 6) {
return 'Retour'; return 'Retour';
else } else {
return 'Erreur'; return 'Erreur';
}
} }
function pillage($metal, $cristal, $hydrogene, $vfm) function pillage($metal, $cristal, $hydrogene, $vfm)
@ -84,14 +99,11 @@ function pillage($metal, $cristal, $hydrogene, $vfm)
$somme = $Qm + $Qc + $Qh; $somme = $Qm + $Qc + $Qh;
if ($somme < 2) if ($somme < 2) {
{
$Fm = $metal / 2; $Fm = $metal / 2;
$Fc = $cristal / 2; $Fc = $cristal / 2;
$Fh = $hydrogene / 2; $Fh = $hydrogene / 2;
} } else {
else
{
$Fm = $Qm / $somme * $vfm; $Fm = $Qm / $somme * $vfm;
$Fc = $Qc / $somme * $vfm; $Fc = $Qc / $somme * $vfm;
$Fh = $Qh / $somme * $vfm; $Fh = $Qh / $somme * $vfm;
@ -156,56 +168,57 @@ function erreur($message, $color = "red", $lien = "", $temps = 2500)
{ {
global $template, $page, $SESS; global $template, $page, $SESS;
if (!empty($page)) if (!empty($page)) {
$template->assign('page', $page); $template->assign('page', $page);
}
$template->assign('message', $message); $template->assign('message', $message);
$template->assign('couleur',$color); $template->assign('couleur', $color);
if (!empty($lien)) if (!empty($lien)) {
$template->assign('scripth','<meta http-equiv="refresh" content="'.($temps/1000).'; url='.$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 //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'); $template->display('game/erreur.tpl');
else } else {
$template->display('cms/erreur.tpl'); $template->display('cms/erreur.tpl');
}
exit; exit;
} }
function send_mp($joueur, $titre, $message, $temps = 0, $emetteur = 0, $type = 0) function send_mp($joueur, $titre, $message, $temps = 0, $emetteur = 0, $type = 0)
{ {
global $table_mail, $VAR; global $table_mail, $VAR;
if (empty($temps)) if (empty($temps)) {
$temps = time(); $temps = time();
}
$mail = false; $mail = false;
if (!is_numeric($joueur)) if (!is_numeric($joueur)) {
{
$joueur = trouvInfoUser($joueur, "pseudo", array("id", "mail", "envoyerMail")); $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"]; $mail = $joueur["mail"];
else } else {
$mail = false; $mail = false;
}
$joueur = $joueur["id"]; $joueur = $joueur["id"];
} } else {
else
{
$joueur = trouvInfoUser($joueur, "id", array("id", "mail", "envoyerMail")); $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"]; $mail = $joueur["mail"];
else } else {
$mail = false; $mail = false;
}
$joueur = $joueur["id"]; $joueur = $joueur["id"];
} }
if (!is_numeric($emetteur)) if (!is_numeric($emetteur)) {
{
$emetteur = trouvInfoUser($emetteur, "pseudo", array("id")); $emetteur = trouvInfoUser($emetteur, "pseudo", array("id"));
$emetteur = $emetteur['id']; $emetteur = $emetteur['id'];
} }
if (!empty($joueur)) if (!empty($joueur)) {
{
$bdd = new BDD(); $bdd = new BDD();
$bdd->escape($joueur); $bdd->escape($joueur);
$bdd->escape($titre); $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->query("INSERT INTO $table_mail (destinataire, expediteur, type, sujet, contenu, temps) VALUES($joueur, $emetteur, $type, '$titre', '$message', $temps);");
$bdd->deconnexion(); $bdd->deconnexion();
if ($mail) if ($mail) {
{ if ($emetteur == 0) {
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"); 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"); 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) function gen_mdp($nbchar)
{ {
$liste = "abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $liste = "abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$code = ""; $code = "";
for($i = 0; $i < $nbchar; $i++) for ($i = 0; $i < $nbchar; $i++) {
{ $code .= $liste[rand(0, 60)];
$code .= $liste[rand(0,60)];
} }
return $code; return $code;
@ -237,33 +249,33 @@ function gen_mdp($nbchar)
function check_mdp($mdp, $pseudo = null, $conf=null) 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"; 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."; 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"; 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"; 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"; 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 !"; 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é !"; 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; return $mdp;
}
} }
function mdp($nom, $mdp, $alea = null) function mdp($nom, $mdp, $alea = null)
{ {
if (empty($alea)) if (empty($alea)) {
{
$alea = substr(random(1024), 0, 255); $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) function redirection($url)
@ -287,26 +299,24 @@ function slots($id_user)
function limite($txt, $limit) function limite($txt, $limit)
{ {
if (strlen($txt) > $limit) if (strlen($txt) > $limit) {
return true; return true;
else } else {
return false; return false;
}
} }
function bourse_calcPrixBase($dispo, $nb = 1000, $rate = 2) function bourse_calcPrixBase($dispo, $nb = 1000, $rate = 2)
{ {
if ($nb > 1000) if ($nb > 1000) {
{
$prix = 0; $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, 1000, $rate);
} }
$prix += bourse_calcPrixBase($dispo-$i, $dispo%1000, $rate); $prix += bourse_calcPrixBase($dispo-$i, $dispo%1000, $rate);
return $prix; return $prix;
} } else {
else
return ceil(pow($dispo, -0.1) * $nb * $rate); return ceil(pow($dispo, -0.1) * $nb * $rate);
}
//return pow($dispo, -0.1) * 200; //Prix de base ... //return pow($dispo, -0.1) * 200; //Prix de base ...
} }
?>

View file

@ -1,5 +1,8 @@
<?php <?php
if(!defined('INDEX')) { header('Location: ../'); exit; } if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$page = 'accueil'; $page = 'accueil';
$titre = 'Accueil'; $titre = 'Accueil';
@ -10,13 +13,12 @@ $bdd->reconnexion();
//On regarde si le joueur a une flotte en vue //On regarde si le joueur a une flotte en vue
$radar = array(); $radar = array();
$detect = 86400; $detect = 86400;
foreach($queryPlanetes as $planeteJoueur) foreach ($queryPlanetes as $planeteJoueur) {
{
$end_id = $planeteJoueur['id']; $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'])); $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(); $bdd->deconnexion();
$template->assign('radar',$radar); $template->assign('radar', $radar);
//$template->assign('alliance', $alli); //$template->assign('alliance', $alli);
unset($nbPlan, $end_id, $radar, $alli); unset($nbPlan, $end_id, $radar, $alli);
@ -29,11 +31,8 @@ if (SURFACE == "planete") {
$template->assign('fileVais', $planete->file_vais->printFile($planete)); $template->assign('fileVais', $planete->file_vais->printFile($planete));
$template->assign('fileTer', $planete->file_ter->printFile($planete)); $template->assign('fileTer', $planete->file_ter->printFile($planete));
$template->assign('fileTech', $planete->file_tech->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 //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->fondateur = new User($planete->fondateur);
$planete->loadDetails(); $planete->loadDetails();
} }
?>

View file

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

View file

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

View file

@ -1,20 +1,22 @@
<?php <?php
if(!defined('INDEX')) { header('Location: ../'); exit; } if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$gestion = strtolower(gpc("g")); $gestion = strtolower(gpc("g"));
if ($gestion == "grades") if ($gestion == "grades") {
{
$page = 'alliance/gestion_grades'; $page = 'alliance/gestion_grades';
//On vérifie que le joueur ait les permissions pour modifier les 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 !"); erreur("Vous n'avez pas le grade nécessaire pour modifier les grades !");
}
$id = intval(gpc("i")); $id = intval(gpc("i"));
$del = intval(gpc("d")); $del = intval(gpc("d"));
if (!empty($id) && gpc("nom", "post")) if (!empty($id) && gpc("nom", "post")) {
{
$nom = 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; $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'); header('Location: ?p=gestion&g=grades');
exit; exit;
} } elseif (gpc("nom", "post")) {
elseif (gpc("nom", "post"))
{
$nom = 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; $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'); header('Location: ?p=gestion&g=grades');
exit; exit;
} } elseif (!empty($id)) {
elseif (!empty($id))
{
$bdd->reconnexion(); $bdd->reconnexion();
$grade = $bdd->unique_query("SELECT id, nom, auth FROM $table_alliances_grade WHERE id_alliance = ".$planete->id." AND id = $id;"); $grade = $bdd->unique_query("SELECT id, nom, auth FROM $table_alliances_grade WHERE id_alliance = ".$planete->id." AND id = $id;");
$bdd->deconnexion(); $bdd->deconnexion();
$template->assign("grade_mod", $grade); $template->assign("grade_mod", $grade);
} } elseif (!empty($del)) {
elseif (!empty($del))
{
$bdd->reconnexion(); $bdd->reconnexion();
$grade = $bdd->query("DELETE FROM $table_alliances_grade WHERE id_alliance = ".$planete->id." AND id = $del;"); $grade = $bdd->query("DELETE FROM $table_alliances_grade WHERE id_alliance = ".$planete->id." AND id = $del;");
$bdd->deconnexion(); $bdd->deconnexion();
@ -62,24 +58,19 @@ if ($gestion == "grades")
$template->assign("grades", $grades); $template->assign("grades", $grades);
unset($grades, $id, $del); unset($grades, $id, $del);
} } elseif ($gestion == "alliance" || ($gestion == "wings" && !empty($planete->wing))) {
elseif ($gestion == "alliance" || ($gestion == "wings" && !empty($planete->wing)))
{
$page = 'alliance/gestion_alliance'; $page = 'alliance/gestion_alliance';
//On vérifie que le joueur ait les permissions pour modifier les 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 paramètres de l'alliance !"); 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"); $asteroide_name = gpc("asteroide_name", "post");
$planete->nom_asteroide = $asteroide_name; $planete->nom_asteroide = $asteroide_name;
$planete->modif[] = "nom_asteroide"; $planete->modif[] = "nom_asteroide";
} } elseif (isset($_POST["texte_interne"])) {
elseif (isset($_POST["texte_interne"]))
{
$texte_interne = gpc("texte_interne", "post"); $texte_interne = gpc("texte_interne", "post");
$defcon = intval(gpc("defcon", "post")); $defcon = intval(gpc("defcon", "post"));
$defcon_txt = gpc("defcon_txt", "post"); $defcon_txt = gpc("defcon_txt", "post");
@ -89,9 +80,7 @@ elseif ($gestion == "alliance" || ($gestion == "wings" && !empty($planete->wing)
$bdd->escape($defcon_txt); $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->query("UPDATE $table_alliances SET texte_interne = '$texte_interne', defcon = $defcon, defcon_txt = '$defcon_txt' WHERE id = ".$planete->id.";");
$bdd->deconnexion(); $bdd->deconnexion();
} } elseif (isset($_POST["url_forum"])) {
elseif (isset($_POST["url_forum"]))
{
$url_forum = gpc("url_forum", "post"); $url_forum = gpc("url_forum", "post");
$url_chat = gpc("url_chat", "post"); $url_chat = gpc("url_chat", "post");
$port_chat = intval(gpc("port_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->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->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(); $bdd->deconnexion();
} } elseif (isset($_POST["message_inscription"])) {
elseif (isset($_POST["message_inscription"]))
{
$etatinscriptions = intval(gpc("etatinscriptions", "post")); $etatinscriptions = intval(gpc("etatinscriptions", "post"));
$message_inscription = gpc("message_inscription", "post"); $message_inscription = gpc("message_inscription", "post");
$presentation = gpc("presentation", "post"); $presentation = gpc("presentation", "post");
@ -118,23 +105,20 @@ elseif ($gestion == "alliance" || ($gestion == "wings" && !empty($planete->wing)
$bdd->escape($chan_chat); $bdd->escape($chan_chat);
$bdd->query("UPDATE $table_alliances SET etatinscriptions = '$etatinscriptions', message_inscription = '$message_inscription', presentation = '$presentation' WHERE id = ".$planete->id.";"); $bdd->query("UPDATE $table_alliances SET etatinscriptions = '$etatinscriptions', message_inscription = '$message_inscription', presentation = '$presentation' WHERE id = ".$planete->id.";");
$bdd->deconnexion(); $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 //On vérifie que le joueur demandé existe bien et fasse bien parti de l'alliance
$bdd->reconnexion(); $bdd->reconnexion();
$membre = $bdd->unique_query("SELECT id_alliance FROM $table_user WHERE id != ".intval(gpc('newfondateur', 'post')).";"); $membre = $bdd->unique_query("SELECT id_alliance FROM $table_user WHERE id != ".intval(gpc('newfondateur', 'post')).";");
$bdd->deconnexion(); $bdd->deconnexion();
if (!empty($membre)) if (!empty($membre)) {
{
$planete->fondateur = intval(gpc('newfondateur', 'post')); $planete->fondateur = intval(gpc('newfondateur', 'post'));
$planete->modif[] = "fondateur"; $planete->modif[] = "fondateur";
erreur("Fondateur changé avec succès.", "green"); erreur("Fondateur changé avec succès.", "green");
} } else {
else
erreur("Impossible de donner les droits de fondateur à ce joueur !"); erreur("Impossible de donner les droits de fondateur à ce joueur !");
} }
}
$planete->loadDetails(); $planete->loadDetails();
@ -144,17 +128,15 @@ elseif ($gestion == "alliance" || ($gestion == "wings" && !empty($planete->wing)
$bdd->deconnexion(); $bdd->deconnexion();
$template->assign("membres", $membres); $template->assign("membres", $membres);
unset($membres); unset($membres);
} } elseif ($gestion == "wings") {
elseif ($gestion == "wings")
{
$page = 'alliance/gestion_wing'; $page = 'alliance/gestion_wing';
//On vérifie que le joueur ait les permissions pour modifier les grades //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 !"); 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"); $fondateur = gpc("fondateur", "post");
$nom = gpc("nom", "post"); $nom = gpc("nom", "post");
$tag = strtoupper(gpc("tag", "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.";"); $wings = $bdd->unique_query("SELECT COUNT(id) AS nb FROM $table_alliances WHERE galaxie = ".$planete->galaxie." AND ss = ".$planete->ss.";");
$bdd->deconnexion(); $bdd->deconnexion();
if (!empty($alliances)) if (!empty($alliances)) {
erreur("Une alliance porte déjà ce nom ou ce tag. Veuillez en choisir un autre."); 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"); $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"); 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"); 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 !"); erreur("La race de la wing est incorrecte !");
}
$bdd->reconnexion(); $bdd->reconnexion();
$bdd->escape($race); $bdd->escape($race);
@ -185,17 +167,16 @@ elseif ($gestion == "wings")
$affected = $bdd->affected(); $affected = $bdd->affected();
$bdd->deconnexion(); $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>"); 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"); 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."); 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."); 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 //On charge la liste des wings
@ -204,52 +185,40 @@ elseif ($gestion == "wings")
$bdd->deconnexion(); $bdd->deconnexion();
$template->assign("wings", $wings); $template->assign("wings", $wings);
unset($wings); unset($wings);
} } else {
else
{
$page = 'alliance/gestion_membres'; $page = 'alliance/gestion_membres';
$gestion = "membres"; $gestion = "membres";
//On vérifie que le joueur ait les permissions pour modifier les grades //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 !"); erreur("Vous n'avez pas le grade nécessaire pour modifier les membres !");
}
//Acceptation ou refus des postulants //Acceptation ou refus des postulants
if (!empty($_GET["pa"])) if (!empty($_GET["pa"])) {
{
$id = intval(gpc("pa")); $id = intval(gpc("pa"));
$bdd->reconnexion(); $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;"); $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(); $bdd->deconnexion();
erreur("Impossible de trouver la candidature. Si le problème perciste, contactez un opérateur."); 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(); $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."); 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"].";"); $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->query("DELETE FROM $table_alliances_attente WHERE id_alliance = ".$planete->id." AND id = $id;");
$bdd->deconnexion(); $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 !"); 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"); 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(); $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."); 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")); $id = intval(gpc("pr"));
$bdd->reconnexion(); $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;"); $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"); 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 //Gestion des exclusions de l'alliance
elseif (!empty($_GET["u"])) elseif (!empty($_GET["u"])) {
{
$id = intval(gpc("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."); 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->reconnexion();
$bdd->query("UPDATE $table_user SET id_alliance = 0, id_grade_alliance = 0 WHERE id_alliance = ".$planete->id." AND id = $id;"); $bdd->query("UPDATE $table_user SET id_alliance = 0, id_grade_alliance = 0 WHERE id_alliance = ".$planete->id." AND id = $id;");
$bdd->deconnexion(); $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."); 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"); 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 !"); erreur("Membre introuvable !");
} }
}
$id = intval(gpc("i")); $id = intval(gpc("i"));
if (!empty($id)) if (!empty($id)) {
{
$grade = intval(gpc('grade', 'post')); $grade = intval(gpc('grade', 'post'));
$bdd->reconnexion(); $bdd->reconnexion();
$gradet = $bdd->unique_query("SELECT id FROM $table_alliances_grade WHERE id_alliance = ".$planete->id." AND id = $grade;"); $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->query("UPDATE $table_user SET id_grade_alliance = $grade WHERE id_alliance = ".$planete->id." AND id = $id;");
}
$bdd->deconnexion(); $bdd->deconnexion();
header('Location: ?p=gestion&g=membres'); header('Location: ?p=gestion&g=membres');
@ -307,4 +275,3 @@ else
$template->assign("onglet", $gestion); $template->assign("onglet", $gestion);
unset($gestion); unset($gestion);
?>

View file

@ -1,22 +1,26 @@
<?php <?php
if(!defined('INDEX')) { header('Location: ../'); exit; } if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$page = 'messagerie'; $page = 'messagerie';
$titre = 'Messagerie d\'alliance'; $titre = 'Messagerie d\'alliance';
$template->assign("link_P", "alli_messagerie"); $template->assign("link_P", "alli_messagerie");
$template->assign("titreR", $titre); $template->assign("titreR", $titre);
//On interdit l'accès à la messagerie en cas de prise de contrôle d'un joueur //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.'); 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->reconnexion();
$bdd->query("UPDATE $table_alliances_mail SET statut = 1 WHERE destinataire = ".$planete->id." AND id = $id;"); $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'); 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'); erreur('Une demande est déjà en cours ou vous n\'êtes pas autorisé à avertir ce message.', 'red', '?p=messagerie');
}
$bdd->deconnexion(); $bdd->deconnexion();
} }
@ -24,14 +28,13 @@ if ($id = intval(gpc('avertir')))
$onglet = gpc('n'); $onglet = gpc('n');
$template->assign('onglet', $onglet); $template->assign('onglet', $onglet);
if ($onglet == "rapports") if ($onglet == "rapports") {
{
//Demande de supression des messages //Demande de supression des messages
if (!empty($_POST)) if (!empty($_POST)) {
{
$bdd->reconnexion(); $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->query("UPDATE $table_alliances_mail SET vu = 's' WHERE destinataire = ".$planete->id." AND id = ".intval($value).";");
}
$bdd->deconnexion(); $bdd->deconnexion();
header('Location: ?p=messagerie&n='.$onglet); header('Location: ?p=messagerie&n='.$onglet);
@ -44,22 +47,17 @@ if ($onglet == "rapports")
$bdd->deconnexion(); $bdd->deconnexion();
$template->assign('messages', $data); $template->assign('messages', $data);
} } elseif ($onglet == "send") {
elseif ($onglet == "send")
{
$bdd->reconnexion(); $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;"); $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(); $bdd->deconnexion();
$template->assign('messages', $data); $template->assign('messages', $data);
} } elseif ($onglet == "envoyer") {
elseif ($onglet == "envoyer")
{
$page = 'envoyer'; $page = 'envoyer';
$titre = 'Envoyer un message'; $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')); $utils = explode(';', gpc('destinataire', 'post'));
$nbutil = count($utils); $nbutil = count($utils);
@ -67,27 +65,28 @@ elseif ($onglet == "envoyer")
$message = htmlspecialchars(gpc('message', 'post')); $message = htmlspecialchars(gpc('message', 'post'));
$objet = htmlspecialchars(gpc('objet', '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.'); 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é.'); erreur('Aucun utilisateur sélectionné.');
}
$bdd->reconnexion(); $bdd->reconnexion();
$bdd->escape($message); $bdd->escape($message);
$bdd->escape($objet); $bdd->escape($objet);
$introuv = array(); $introuv = array();
foreach($utils as $util) foreach ($utils as $util) {
{ if (empty($util)) {
if (empty($util))
continue; continue;
}
$util = trim($util); $util = trim($util);
$bdd->escape($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);"); $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"].', 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. 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, A bientôt dans Halo-Battle,
Le Staff'); Le Staff');
} }
else } else {
$introuv[] = htmlentities($util); $introuv[] = htmlentities($util);
} }
}
$bdd->deconnexion(); $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'); 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'); erreur('Votre message a été envoyé avec succès.', "green", '?p=messagerie');
} }
}
$amis = array(); $amis = array();
$amisn = array(); $amisn = array();
$bdd->reconnexion(); $bdd->reconnexion();
foreach($planete->amis as $ami) { foreach ($planete->amis as $ami) {
$res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$ami.";"); $res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$ami.";");
if ($res != false) { if ($res != false) {
$amis[] = $res['pseudo']; $amis[] = $res['pseudo'];
@ -124,32 +125,31 @@ elseif ($onglet == "envoyer")
$template->assign('amis', $amis); $template->assign('amis', $amis);
$template->assign('amisn', $amisn); $template->assign('amisn', $amisn);
if (isset($_GET['d'])) $template->assign('destinataire', gpc('d')); if (isset($_GET['d'])) {
if (isset($_GET['o'])) $template->assign('objet', gpc('o')); $template->assign('destinataire', gpc('d'));
} }
else if (isset($_GET['o'])) {
{ $template->assign('objet', gpc('o'));
}
} else {
//Demande de supression des messages //Demande de supression des messages
if (!empty($_POST)) if (!empty($_POST)) {
{
$bdd->reconnexion(); $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->query("DELETE FROM $table_alliances_mail WHERE destinataire = ".$planete->id_user." AND id = ".intval($value).";");
}
$bdd->deconnexion(); $bdd->deconnexion();
header('Location: ?p=messagerie&n='.$onglet); header('Location: ?p=messagerie&n='.$onglet);
exit; exit;
} }
if ($SESS->level >= 3) if ($SESS->level >= 3) {
{
$bdd->reconnexion(); $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;"); $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->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(); $bdd->deconnexion();
} } else {
else
{
$bdd->reconnexion(); $bdd->reconnexion();
//Calcul du nombre total de message enregistré //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;"); $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(); $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('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); $template->assign('messages', $data);
} }
unset($onglet, $data, $nbmax); unset($onglet, $data, $nbmax);
if ($bdd->num_rows) if ($bdd->num_rows) {
$template->assign('IM', $bdd->num_rows); $template->assign('IM', $bdd->num_rows);
?> }

View file

@ -1,37 +1,39 @@
<?php <?php
if(!defined('INDEX')) { header('Location: ../'); exit; } if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$id = intval(gpc('postuler')); $id = intval(gpc('postuler'));
$message = gpc('motivation', 'post'); $message = gpc('motivation', 'post');
$page = 'alliance/nm_postuler'; $page = 'alliance/nm_postuler';
if (!empty($message)) if (!empty($message)) {
{
$bdd->reconnexion(); $bdd->reconnexion();
$bdd->escape($message); $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;"); $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->query("INSERT INTO $table_alliances_attente (id_alliance, id_user, timestamp, message) VALUES ($id, ".$planete->id_user.", ".time().", '$message');");
}
$bdd->deconnexion(); $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); 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); redirection($VAR["menu"]["alliance"]."&postuler=".$id);
} }
else } else {
{
$bdd->reconnexion(); $bdd->reconnexion();
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;"); $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;"); $postul = $bdd->unique_query("SELECT id FROM $table_alliances_attente WHERE id_alliance = $id AND id_membre = ".$planete->id_user." LIMIT 1;");
$bdd->deconnexion(); $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); 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); $template->assign("alliance", $alliance);
else } else {
redirection($VAR["menu"]["alliance"]); redirection($VAR["menu"]["alliance"]);
} }
?> }

View file

@ -1,26 +1,26 @@
<?php <?php
if(!defined('ONYX')) exit; if (!defined('ONYX')) {
exit;
}
$act = gpc('q'); $act = gpc('q');
if ($act == "fonder") if ($act == "fonder") {
{
$bdd->reconnexion(); $bdd->reconnexion();
//On regarde si le joueur n'est pas déjà en train de fonder une alliance //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(); $bdd->deconnexion();
$page = 'alliance/nm_fonder'; $page = 'alliance/nm_fonder';
$nom = gpc('nom', 'post'); $nom = gpc('nom', 'post');
$tag = gpc('tag', 'post'); $tag = gpc('tag', 'post');
if (!empty($nom) || !empty($tag)) if (!empty($nom) || !empty($tag)) {
{
//Vérifications //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"); 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"); 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); $lien = sha1($tag.'Hb$'.$nom.'☺Ø'.$planete->id_user.'‘«'.$planete->race);
@ -28,22 +28,20 @@ if ($act == "fonder")
$bdd->escape($nom); $bdd->escape($nom);
$bdd->escape($tag); $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.";"); $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->query("INSERT INTO $table_alliances_creation (tag, nom_alliance, fondateur, lien) VALUES ('$tag', '$nom', ".$planete->id_user.", '$lien');");
}
$bdd->deconnexion(); $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"); 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>'); 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"); 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); unset($nom, $tag);
} } else {
else
{
$page = 'alliance/nm_statut'; $page = 'alliance/nm_statut';
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE id = ".$alli[0]["id"].";"); $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.";"); $pseudos = $bdd->query("SELECT pseudo FROM $table_user WHERE id = ".$signaturesExport.";");
$bdd->deconnexion(); $bdd->deconnexion();
if (gpc('r') == "quit") if (gpc('r') == "quit") {
{ if ($alliance["fondateur"] == $planete->id_user) {
if ($alliance["fondateur"] == $planete->id_user)
{
$bdd->reconnexion(); $bdd->reconnexion();
$bdd->query("DELETE FROM $table_alliances_creation WHERE id = ".$alli[0]["id"].";"); $bdd->query("DELETE FROM $table_alliances_creation WHERE id = ".$alli[0]["id"].";");
$bdd->deconnexion(); $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($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."); 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"); erreur("Votre alliance vient d'être supprimée", "green");
} } else {
else
{
$keys = array_keys($signatures, $planete->id_user); $keys = array_keys($signatures, $planete->id_user);
foreach ($keys as $key) foreach ($keys as $key) {
unset($signatures[$key]); unset($signatures[$key]);
}
$signatures = ";".implode(';', $signatures).";"; $signatures = ";".implode(';', $signatures).";";
$bdd->reconnexion(); $bdd->reconnexion();
@ -90,9 +84,7 @@ if ($act == "fonder")
$template->assign("pseudos", $pseudos); $template->assign("pseudos", $pseudos);
$template->assign("nbSignatures", count($signatures)); $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'; $page = 'alliance/nm_search';
$tag = gpc('search_tag', 'post'); $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%';"); $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(); $bdd->deconnexion();
if (!empty($rech1) && !empty($rech2)) if (!empty($rech1) && !empty($rech2)) {
$recherche = array_merge($rech1, $rech2); $recherche = array_merge($rech1, $rech2);
elseif (!empty($rech2)) } elseif (!empty($rech2)) {
$recherche = $rech2; $recherche = $rech2;
else } else {
$recherche = $rech1; $recherche = $rech1;
}
if ($bdd->num_rows == 1) if ($bdd->num_rows == 1) {
redirection($VAR["menu"]["alliance"]."&v=".$recherche[0]['id']); 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"]); erreur("Aucune alliance ne correspond à ces critères de recherche", "", $VAR["menu"]["alliance"]);
}
$template->assign("recherches", $recherche); $template->assign("recherches", $recherche);
unset($nom, $tag, $recherche); unset($nom, $tag, $recherche);
} } else {
else
{
$bdd->reconnexion(); $bdd->reconnexion();
$template->assign("fondation", $bdd->query("SELECT id FROM $table_alliances_creation WHERE fondateur = ".$planete->id_user." OR signatures LIKE '%;".$planete->id_user.";%';")); $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'; $page = 'alliance/nm_accueil';
} }
?>

View file

@ -1,74 +1,71 @@
<?php <?php
if(!defined('ONYX')) exit; if (!defined('ONYX')) {
exit;
}
$hash = gpc('signer'); $hash = gpc('signer');
$page = 'alliance/nm_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"); erreur("Vous êtes déjà dans une alliance, vous ne pouvez pas ratifier d'alliance !", "red");
elseif (!empty($_POST["sign"])) } elseif (!empty($_POST["sign"])) {
{ if (trim(strtolower(gpc("sign", "post"))) == "oui") {
if (trim(strtolower(gpc("sign", "post"))) == "oui")
{
$hash = intval($hash); $hash = intval($hash);
$bdd->reconnexion(); $bdd->reconnexion();
$ratifier = $bdd->unique_query("SELECT id, fondateur, signatures FROM $table_alliances_creation WHERE signatures LIKE '%;".$planete->id_user.";%' LIMIT 1;"); $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); $ratifier["signatures"] = explode(';', substr($ratifier["signatures"], 1), -1);
unset($ratifier["signatures"][array_search($planete->id_user, $ratifier["signatures"])]); unset($ratifier["signatures"][array_search($planete->id_user, $ratifier["signatures"])]);
if (count($ratifier["signatures"]) == 0) if (count($ratifier["signatures"]) == 0) {
$ratifier["signatures"] = ""; $ratifier["signatures"] = "";
else } else {
$ratifier["signatures"] = ';'.implode(';', $ratifier["signatures"]).';'; $ratifier["signatures"] = ';'.implode(';', $ratifier["signatures"]).';';
}
$bdd->escape($ratifier["signatures"]); $bdd->escape($ratifier["signatures"]);
$bdd->query("UPDATE $table_alliances_creation SET signatures = '".$ratifier["signatures"]."' WHERE id = ".$ratifier["id"].";"); $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;"); $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); $alliance["signatures"] = explode(';', substr($alliance["signatures"], 1), -1);
else } else {
$alliance["signatures"] = array(); $alliance["signatures"] = array();
}
$alliance["signatures"][] = $planete->id_user; $alliance["signatures"][] = $planete->id_user;
$newnb = count($alliance["signatures"]); $newnb = count($alliance["signatures"]);
$alliance["signatures"] = ';'.implode(';', $alliance["signatures"]).';'; $alliance["signatures"] = ';'.implode(';', $alliance["signatures"]).';';
$bdd->escape($alliance["signatures"]); $bdd->escape($alliance["signatures"]);
$bdd->query("UPDATE $table_alliances_creation SET signatures = '".$alliance["signatures"]."' WHERE id = $hash;"); $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;"); $planete_fondateur = $bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = ".$alliance["fondateur"]." ORDER BY id ASC LIMIT 1;");
}
$bdd->deconnexion(); $bdd->deconnexion();
if ($newnb >= nb_signatures) if ($newnb >= nb_signatures) {
{ if (debut_d_univers && $newnb == nb_signatures && empty($planete_fondateur->vaisseaux[2])) {
if (debut_d_univers && $newnb == nb_signatures && empty($planete_fondateur->vaisseaux[2]))
{
//On donne un vaisseau de colonisation au fondateur //On donne un vaisseau de colonisation au fondateur
$planete_fondateur = new Planete($planete_fondateur["id"]); $planete_fondateur = new Planete($planete_fondateur["id"]);
$planete_fondateur->vaisseaux[2]++; $planete_fondateur->vaisseaux[2]++;
unset($planete_fondateur); 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."); 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 //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 !"); 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."); 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"); erreur("Votre signature a bien été prise en compte !", "green");
} } else {
else
redirection($VAR["menu"]["alliance"]); redirection($VAR["menu"]["alliance"]);
} }
else } else {
{
$bdd->reconnexion(); $bdd->reconnexion();
$bdd->escape($hash); $bdd->escape($hash);
$fonder = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE fondateur = ".$planete->id_user." LIMIT 1;"); $fonder = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE fondateur = ".$planete->id_user." LIMIT 1;");
if (!empty($fonder)) if (!empty($fonder)) {
{
$bdd->deconnexion(); $bdd->deconnexion();
erreur("Vous ne pouvez pas ratifier d'alliance car vous en fonder actuellement une !", "red"); 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;"); $ratifier = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE signatures LIKE '%;".$planete->id_user.";%' LIMIT 1;");
$bdd->deconnexion(); $bdd->deconnexion();
if (!empty($alliance) && sha1($alliance['tag'].'Hb$'.$alliance['nom_alliance'].'☺Ø'.$alliance['fondateur'].'‘«'.$planete->race) == $hash) if (!empty($alliance) && sha1($alliance['tag'].'Hb$'.$alliance['nom_alliance'].'☺Ø'.$alliance['fondateur'].'‘«'.$planete->race) == $hash) {
{ if (!empty($alliance["signatures"])) {
if (!empty($alliance["signatures"]))
{
$alliance["signatures"] = explode(';', substr($alliance["signatures"], 1), -1); $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 !"); erreur("Vous avez déjà ratifier cette alliance !");
$alliance["nbsignatures"] = count($alliance["signatures"]);
} }
else $alliance["nbsignatures"] = count($alliance["signatures"]);
} else {
$alliance["nbsignatures"] = 0; $alliance["nbsignatures"] = 0;
}
$template->assign("alliance", $alliance); $template->assign("alliance", $alliance);
$template->assign("ratifier", $ratifier); $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); 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); erreur("Vous ne pouvez plus signer pour cette alliance !", 'red', $_SERVER["HTTP_REFERER"], 4000);
}
} }
?>

View file

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

View file

@ -1,43 +1,45 @@
<?php <?php
if(!defined('INDEX')) { header('Location: ./'.$VAR['first_page']); exit; } if (!defined('INDEX')) {
header('Location: ./'.$VAR['first_page']);
exit;
}
$page = 'arbre'; $page = 'arbre';
$titre = 'Arbre des technologies'; $titre = 'Arbre des technologies';
if (empty($_GET['q'])) if (empty($_GET['q'])) {
$_GET['q'] = ''; $_GET['q'] = '';
}
$template->assign('defaut', gpc('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 //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; $_GET['r'] = $planete->race;
}
$race = gpc('r'); $race = gpc('r');
$template->assign('raceAff', $race); $template->assign('raceAff', $race);
if (SURFACE == "asteroide") if (SURFACE == "asteroide") {
{
$TEMP_liste = array(); $TEMP_liste = array();
foreach($planete->batiments as $id => $batiment) foreach ($planete->batiments as $id => $batiment) {
{ if (!empty($LANG[$race]["alli_batiments"]["noms_sing"][$id])) {
if (!empty($LANG[$race]["alli_batiments"]["noms_sing"][$id]))
$TEMP_liste[$id] = array( $TEMP_liste[$id] = array(
'niveau' => $batiment, 'niveau' => $batiment,
'etat' => dAlliancesBatiments::needed($id, $planete, true) 'etat' => dAlliancesBatiments::needed($id, $planete, true)
); );
} }
}
$template->assign('batiments', $TEMP_liste); $template->assign('batiments', $TEMP_liste);
} } else {
else
{
$TEMP_liste = array(); $TEMP_liste = array();
foreach($planete->batiments as $id => $batiment) foreach ($planete->batiments as $id => $batiment) {
{ if (!empty($LANG[$race]["batiments"]["noms_sing"][$id])) {
if (!empty($LANG[$race]["batiments"]["noms_sing"][$id]))
$TEMP_liste[$id] = array( $TEMP_liste[$id] = array(
'niveau' => $batiment, 'niveau' => $batiment,
'etat' => dBatiments::needed($id, $planete, true) 'etat' => dBatiments::needed($id, $planete, true)
); );
} }
}
$template->assign('batiments', $TEMP_liste); $template->assign('batiments', $TEMP_liste);
} }
@ -55,37 +57,36 @@ else
$template->assign('technologies',$TEMP_technologies); $template->assign('technologies',$TEMP_technologies);
*/ */
$TEMP_liste = array(); $TEMP_liste = array();
foreach($planete->casernes as $id => $unite) foreach ($planete->casernes as $id => $unite) {
{ if (!empty($LANG[$race]["caserne"]["noms_sing"][$id])) {
if (!empty($LANG[$race]["caserne"]["noms_sing"][$id]))
$TEMP_liste[$id] = array( $TEMP_liste[$id] = array(
'niveau' => $unite, 'niveau' => $unite,
'etat' => dCaserne::needed($id, $planete, true) 'etat' => dCaserne::needed($id, $planete, true)
); );
}
} }
$template->assign('caserne', $TEMP_liste); $template->assign('caserne', $TEMP_liste);
$TEMP_liste = array(); $TEMP_liste = array();
foreach($planete->terrestres as $id => $unite) foreach ($planete->terrestres as $id => $unite) {
{ if (!empty($LANG[$race]["terrestre"]["noms_sing"][$id])) {
if (!empty($LANG[$race]["terrestre"]["noms_sing"][$id]))
$TEMP_liste[$id] = array( $TEMP_liste[$id] = array(
'niveau' => $unite, 'niveau' => $unite,
'etat' => dTerrestre::needed($id, $planete, true) 'etat' => dTerrestre::needed($id, $planete, true)
); );
}
} }
$template->assign('unites', $TEMP_liste); $template->assign('unites', $TEMP_liste);
$TEMP_liste = array(); $TEMP_liste = array();
foreach($planete->vaisseaux as $id => $unite) foreach ($planete->vaisseaux as $id => $unite) {
{ if (!empty($LANG[$race]["vaisseaux"]["noms_sing"][$id])) {
if (!empty($LANG[$race]["vaisseaux"]["noms_sing"][$id]))
$TEMP_liste[$id] = array( $TEMP_liste[$id] = array(
'niveau' => $unite, 'niveau' => $unite,
'etat' => dSpatial::needed($id, $planete, true) 'etat' => dSpatial::needed($id, $planete, true)
); );
}
} }
$template->assign('vaisseaux', $TEMP_liste); $template->assign('vaisseaux', $TEMP_liste);
unset($TEMP_liste, $id, $unite); unset($TEMP_liste, $id, $unite);
?>

View file

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

View file

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

View file

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

View file

@ -1,59 +1,60 @@
<?php <?php
if(!defined('ONYX')) if (!defined('ONYX')) {
exit; exit;
}
$page = 'chantierspatial'; $page = 'chantierspatial';
if (SURFACE == "planete") if (SURFACE == "planete") {
$titre = ucfirst($LANG[$planete->race]['batiments']['noms_sing'][8]); $titre = ucfirst($LANG[$planete->race]['batiments']['noms_sing'][8]);
else } else {
$titre = ucfirst($LANG[$planete->race]['alli_batiments']['noms_sing'][3]); $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 //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."); 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 //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); 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); 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")); $lieu = intval(gpc("k"));
if ($lieu >= $planete->batiments[3] || $lieu < 0) if ($lieu >= $planete->batiments[8] || $lieu < 0) {
$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 //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); $planete->file_vais->addObjet($id, $nbv, $planete, $lieu);
redirection($VAR['menu']['chantierspatial']."&k=".$lieu); redirection($VAR['menu']['chantierspatial']."&k=".$lieu);
} }
//Annulation d'une nouvelle construction //Annulation d'une nouvelle construction
if (isset($_GET['a']) && isset($_GET['b'])) if (isset($_GET['a']) && isset($_GET['b'])) {
{
$n = intval(gpc('s')); $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); $planete->file_vais->delObjet(intval(gpc('b')), $n, intval(gpc('a')), $planete);
redirection($VAR['menu']['chantierspatial']."&k=".$lieu); redirection($VAR['menu']['chantierspatial']."&k=".$lieu);
} }
$TEMP_liste = array(); $TEMP_liste = array();
foreach($planete->vaisseaux as $i => $nombre) foreach ($planete->vaisseaux as $i => $nombre) {
{ if (!empty($LANG[$planete->race]['vaisseaux']['noms_sing'][$i]) && dSpatial::needed($i, $planete)) {
if (!empty($LANG[$planete->race]['vaisseaux']['noms_sing'][$i]) && dSpatial::needed($i, $planete)) $TEMP_liste[] = array(
{
$TEMP_liste[] = array (
'id' => $i, 'id' => $i,
'image' => dSpatial::image($i, $planete), 'image' => dSpatial::image($i, $planete),
'nombre' => $nombre, 'nombre' => $nombre,
@ -71,4 +72,3 @@ $template->assign('lieu', $lieu);
$template->assign('files', $planete->file_vais->printFile($planete)); $template->assign('files', $planete->file_vais->printFile($planete));
unset($TEMP_liste, $i, $n, $niveau); unset($TEMP_liste, $i, $n, $niveau);
?>

View file

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

View file

@ -1,18 +1,19 @@
<?php <?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'; $page = 'description';
$titre = 'D&eacute;tails'; $titre = 'D&eacute;tails';
function tableauProd($ibat,$nivo) function tableauProd($ibat, $nivo)
{ {
$return = array(); $return = array();
$c = $nivo-2 < 1 ? 1 : $nivo-2; $c = $nivo-2 < 1 ? 1 : $nivo-2;
$a = $c + 6; $a = $c + 6;
if ($ibat == 0) if ($ibat == 0) {
{ for ($c; $c < $a; $c++) {
for ($c; $c < $a; $c++)
{
$production = ceil(pow(1.1, $c) * 52 * $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); $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); $return[] = array($c, $production, $energie, $production_diff, $energie_diff);
} }
} } elseif ($ibat == 1) {
elseif ($ibat == 1) for ($c; $c < $a; $c++) {
{
for ($c; $c < $a; $c++)
{
$production = ceil(pow(1.1, $c) * 34 * $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); $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); $return[] = array($c, $production, $energie, $production_diff, $energie_diff);
} }
} } elseif ($ibat == 2) {
elseif ($ibat == 2) for ($c; $c < $a; $c++) {
{
for ($c; $c < $a; $c++)
{
$production = ceil(pow(1.1, $c) * 21 * ($c + 0.7)); $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)); $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); $return[] = array($c, $production, $energie, $production_diff, $energie_diff);
} }
} } elseif ($ibat == 3) {
elseif ($ibat == 3) for ($c; $c < $a; $c++) {
{
for ($c; $c < $a; $c++)
{
$production = ceil(exp(0.28*$c)*22); $production = ceil(exp(0.28*$c)*22);
$production_diff = ceil(exp(0.28*$c)*22) - ceil(exp(0.28*$nivo)*22); $production_diff = ceil(exp(0.28*$c)*22) - ceil(exp(0.28*$nivo)*22);
$return[] = array($c, $production, 0, $production_diff, 0); $return[] = array($c, $production, 0, $production_diff, 0);
} }
} } elseif ($ibat == 4) {
elseif ($ibat == 4) { for ($c; $c < $a; $c++) {
for ($c; $c < $a; $c++)
{
$production = ceil(exp(0.297*$c)*25); $production = ceil(exp(0.297*$c)*25);
$production_diff = ceil(exp(0.297*$c)*25) - ceil(exp(0.297*$nivo)*25); $production_diff = ceil(exp(0.297*$c)*25) - ceil(exp(0.297*$nivo)*25);
$energie = ceil(pow(1.34,($c-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); $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); $return[] = array($c, $production, $energie, $production_diff, $energie_diff);
} }
} } else {
else
return false; return false;
}
return $return; 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; $_GET['r'] = $planete->race;
}
$race = gpc('r'); $race = gpc('r');
$template->assign('raceAff', $race); $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'); $template->assign('type', 'technologies');
$b = intval(gpc('b')); $b = intval(gpc('b'));
$t = intval(gpc('t')); $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('ressourcesNext', array(Donnee::creditsTechnologie($b, $t, $planete), Donnee::tempsTechnologie($b, $t, $planete)));
$template->assign('etat', Donnee::print_neededTechnologie($b, $t, $planete, $race)); $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'); $template->assign('type', 'batiments');
$t = intval(gpc('b')); $t = intval(gpc('b'));
$template->assign('id', $t); $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('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)); $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'); $template->assign('type', 'vaisseaux');
$t = intval(gpc('v')); $t = intval(gpc('v'));
$template->assign('id', $t); $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('etat', dSpatial::needed($t, $planete, $race));
$template->assign('caract', array($nomvais_at[$t], $nomvais_bc[$t], $nomvais_pv[$t], $nomvais_rs[$t])); $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'); $template->assign('type', 'terrestre');
$t = gpc('d'); $t = gpc('d');
$template->assign('id', $t); $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('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)); $template->assign('etat', dTerrestre::needed($t, $planete, true));
if ($t-8 >= 0) if ($t-8 >= 0) {
{
$t -= 8; $t -= 8;
$template->assign('caract', array($defense_at[$t], $defense_bc[$t], $defense_pv[$t])); $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'); $template->assign('type', 'caserne');
$t = gpc('c'); $t = gpc('c');
$template->assign('id', $t); $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('etat', dCaserne::needed($t, $planete, true));
$template->assign('caract', array('!!', '!!', '!!')); $template->assign('caract', array('!!', '!!', '!!'));
} } else {
else
redirection('?p=accueil'); redirection('?p=accueil');
}
unset($t, $race); unset($t, $race);
?>

View file

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

View file

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

View file

@ -1,18 +1,19 @@
<?php <?php
if(!defined('INDEX')) { header('Location: ../'); exit; } if (!defined('INDEX')) {
header('Location: ../');
exit;
}
$idN = intval(gpc('n')); $idN = intval(gpc('n'));
$flotteN = new Flotte($idN, false); $flotteN = new Flotte($idN, false);
$flotteN->load_planete(); $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); erreur('Impossible de trouver cette flotte !', "red", '?p=flotte', 1500);
else } else {
{
//Changement du nom de la flotte //Changement du nom de la flotte
if (!empty($_POST['nomflotte'])) if (!empty($_POST['nomflotte'])) {
{
$nouvNom = gpc('nomflotte', 'post'); $nouvNom = gpc('nomflotte', 'post');
$flotteN->nom = $nouvNom; $flotteN->nom = $nouvNom;
$flotteN->addModifFlotte("nom"); $flotteN->addModifFlotte("nom");
@ -21,20 +22,18 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
} }
//Annulation de la mission //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 //Calcul du temps passé depuis le lancement de la flotte
$tpsDD = time() - $flotteN->start_time; $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); 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;"); $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); 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); 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->values['ret_fleet'] = md5('HB.fleet_'.rand().'☺ß☻');
$SESS->put(); $SESS->put();
@ -45,4 +44,3 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
} }
unset($idN, $flotteN, $nouvNom, $tpsDD); unset($idN, $flotteN, $nouvNom, $tpsDD);
?>

View file

@ -1,5 +1,8 @@
<?php <?php
if(!defined('INDEX')) { header('Location: ../'); exit; } if (!defined('INDEX')) {
header('Location: ../');
exit;
}
//Récupération des informations envoyées //Récupération des informations envoyées
$idPrep = gpc("cds", "post"); $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_galaxie'] = $end_galaxie = intval(gpc('amas', 'post'));
$SESS->values["prepFlottes"][$idPrep]['end_systeme'] = $end_ss = intval(gpc('ss', 'post')); $SESS->values["prepFlottes"][$idPrep]['end_systeme'] = $end_ss = intval(gpc('ss', 'post'));
$end_pos = gpc('pos', 'post'); $end_pos = gpc('pos', 'post');
if ($end_pos != "A") if ($end_pos != "A") {
$SESS->values["prepFlottes"][$idPrep]['end_position'] = floor($end_pos); $SESS->values["prepFlottes"][$idPrep]['end_position'] = floor($end_pos);
else } else {
$SESS->values["prepFlottes"][$idPrep]['end_position'] = $end_pos; $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]['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]['mission'] = $mission = intval(gpc('mission', 'post'));
$SESS->values["prepFlottes"][$idPrep]['vitesse'] = $vitesse = intval(gpc('vitesse', '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(); $SESS->put();
//Vérification du nombre de vaisseaux sur la planète //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 //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"]); 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 //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"]); erreur("La mission sélectionnée est incorrecte !", "red", $VAR["menu"]["flotte"]);
}
//Vérification que le nombre de slots ne soit pas dépassé //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"]); erreur('Vous ne pouvez pas envoyer plus de flottes simultanément.', "red", $VAR["menu"]["flotte"]);
}
//Vérifications en cas de mission colonisation //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 //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"]); 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 //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(); $bdd->reconnexion();
$resultat = $bdd->unique_query("SELECT id FROM $table_alliances_creation WHERE fondateur = ".$planete->id_user.";"); $resultat = $bdd->unique_query("SELECT id FROM $table_alliances_creation WHERE fondateur = ".$planete->id_user.";");
$bdd->deconnexion(); $bdd->deconnexion();
if (!$resultat) if (!$resultat) {
erreur('Fonder d\'abord une alliance avant de coloniser un astéroide !', "red", $VAR["menu"]["flotte"]); 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 //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); 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 //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"]); 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 //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'); 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 //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'); erreur('La destination de la flotte n\'est pas correcte.', "red", '?p=flotte');
}
//On vérifie que l'on possède assez de ressources //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'); 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 //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); erreur('Vous avez spécifié des valeurs de ressources à embarquer incorrectes !', "red", '?p=flotte', 4000);
}
//On vérifie la vitesse de la flotte //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'); erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte');
}
//Recherche de la planète ou de l'astéroïde //Recherche de la planète ou de l'astéroïde
if ($end_pos == "A") if ($end_pos == "A") {
{
$bdd->reconnexion(); $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;"); $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(); $bdd->deconnexion();
} } else {
else
{
$bdd->reconnexion(); $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;"); $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(); $bdd->deconnexion();
} }
//On vérifie qu'il n'y ait pas une interaction entre deux multi-comptes //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)) if (count($multi) > 1 && ($mission == 1 || $mission == 6 || $mission == 7)) {
{ foreach ($multi as $test) {
foreach($multi as $test) if ($test['id_util'] == $resultat['id_user']) {
{
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).'); 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); 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) } elseif ($mission == 2 && $resultat) {
{ if ($end_pos != "A") {
if ($end_pos != "A")
erreur('La planète que vous voulez coloniser est déjà habitée.', "red", '?p=flotte', 3000); 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); 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 //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(); $bdd->reconnexion();
$resultatu = $bdd->unique_query("SELECT mv, time_inscription FROM $table_user WHERE id = ".$resultat['id_user'].";"); $resultatu = $bdd->unique_query("SELECT mv, time_inscription FROM $table_user WHERE id = ".$resultat['id_user'].";");
$bdd->deconnexion(); $bdd->deconnexion();
if ($resultatu['mv'] > 0) 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 !!! 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);
elseif ($resultatu['time_inscription'] + 604800 > time()) } //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); 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'); 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'); 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->values['forceFlotte'] = true;
$SESS->put(); $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"); 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 //TODO Autoriser l'espionnage sur les planètes inhabités
elseif ($mission == 5) elseif ($mission == 5) {
{ if (!$resultat) {
if (!$resultat)
erreur('Impossible d\'espionner la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000); 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); 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); 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); erreur('La planète sur laquelle vous désirez donner vos vaisseaux n\'existe pas.', "red", '?p=flotte', 3000);
}
//Création de la flotte //Création de la flotte
@ -159,4 +166,3 @@ $SESS->values["prepFlottes"][$idPrep]["statut"] = 2;
$SESS->put(); $SESS->put();
erreur('Votre flotte a été envoyée avec succès.', "green", '?p=flotte', 4000); erreur('Votre flotte a été envoyée avec succès.', "green", '?p=flotte', 4000);
?>

View file

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

View file

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

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