Version 1.9g

This commit is contained in:
nemunaire 2008-11-08 12:00:00 +01:00
commit 4c9814a99c
800 changed files with 237325 additions and 1949 deletions

View file

@ -5,12 +5,12 @@ $titre = 'Accueil';
//Affichage de l'alliance du joueur
$bdd->connexion();
$alli = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = '".$queryUser['id_alliance']."';");
$alli = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = '".$planete->id_alliance."';");
//On regarde si le joueur a une flotte en vue
$radar = array();
$nbPlan = count($queryPlanetes);
$detect = $queryUser['detection']*1800;
$detect = $planete->technologies[1]*1800;
for($i = 0; $i < $nbPlan; $i++){
$end_galaxie = $queryPlanetes[$i]['galaxie'];
$end_ss = $queryPlanetes[$i]['ss'];
@ -22,7 +22,7 @@ $bdd->deconnexion();
//Affichage des informations sur la planète
$diametre = separerNombres($planete->cases * 92);
$Classpoints = separerNombres($queryUser['points']);
$Classpoints = separerNombres($planete->points);
$template->assign('mail', $queryMail);
$template->assign('radar',$radar);

View file

@ -27,7 +27,7 @@ while($resultat = mysql_fetch_array($req)) {
elseif ($resultat['multi'] == 1 && $anc['ip'] == $resultat['ip'] && $anc['id_util'] != $resultat['id_util']) $color = 'EE66EE';
elseif ($anc['ip'] == $resultat['ip'] && $anc['id_util'] != $resultat['id_util']) $color = 'FF0000';
else $color = false;
$tableau[] = array($resultat['ip'], gethostbyaddr($resultat['ip']), $resultat['id_util'], $resultat['pseudo'], $resultat['time'], $resultat['mv'], $color);
$tableau[] = array($resultat['ip'], 'absent pour plus de rapidité'/*gethostbyaddr($resultat['ip'])*/, $resultat['id_util'], $resultat['pseudo'], $resultat['time'], $resultat['mv'], $color);
$anc = $resultat;
}
$template->assign('ips', $tableau);

View file

@ -30,7 +30,7 @@ elseif (!empty($_GET['v'])) {
$template->assign('id', $id);
$pagea = 'mail_view';
}
elseif (!empty($_GET['d']) && $sess->values['auth_level'] >= 5) {
elseif (!empty($_GET['d']) && $sess->level >= 5) {
$id = $_GET['d'];
$chapeau->connexion();
$chapeau->escape($id);

View file

@ -5,7 +5,17 @@ $titre = 'Vérification planète';
$template->assign('linkpage', 'vplanetes');
if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id') {
if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] == 'hash_planete') {
$id_plan = $_GET['id'];
$chapeau->connexion();
$chapeau->query("UPDATE $table_planete SET hash_planete = SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)) WHERE id = $id_plan;");
$req = $chapeau->unique_query("SELECT * FROM $table_planete WHERE id = $id_plan;");
$chapeau->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_plan);
}
elseif (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id') {
$pagea = 'print_key';
$id_plan = $_GET['id'];
$key = $_GET['key'];
@ -22,16 +32,16 @@ if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id') {
}
elseif (!empty($_GET['id'])) {
$id_plan = $_GET['id'];
if (isset($_POST['key']) && isset($_POST['mod'])) {
if (isset($_POST['key']) && isset($_POST['mod']) && $_POST['key'] != 'id') {
$key = $_POST['key'];
$mod = $_POST['mod'];
$chapeau->connexion();
$chapeau->escape($mod);
$chapeau->query("UPDATE $table_planete SET $key = '$mod' WHERE id = '$id_plan';");
$chapeau->query("UPDATE $table_planete SET $key = '$mod' WHERE id = $id_plan;");
$chapeau->deconnexion();
}
$chapeau->connexion();
$req = $chapeau->unique_query("SELECT * FROM $table_planete WHERE id = '$id_plan';");
$req = $chapeau->unique_query("SELECT * FROM $table_planete WHERE id = $id_plan;");
$chapeau->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_plan);

View file

@ -5,20 +5,26 @@ $pagea = 'erreur';
$template->assign('linkpage', 'cjoueurs');
if ($sess->values['auth_level'] >= 5 && !empty($_GET['id'])) {
if ($sess->level >= 5 && !empty($_GET['id'])) {
$name = $_GET['id'];
$chapeau->connexion();
$chapeau->escape($name);
$req = $chapeau->unique_query("SELECT auth_level FROM $table_user WHERE id = '$name';");
$req = $chapeau->unique_query("SELECT id, pseudo, auth_level FROM $table_user WHERE id = '$name';");
$chapeau->deconnexion();
if ($req['auth_level'] >= 3) {
if ($req['auth_level'] >= $sess->level) {
$template->assign('message', 'Vous ne pouvez pas prendre le contrôle de cet utilisateur !');
}
else {
$sess->values['id'] = $_GET['id'];
$chapeau->connexion();
$reqPl = $chapeau->unique_query("SELECT id, nom_planete FROM $table_planete WHERE id_user = '".$req['id']."' LIMIT 1;");
$chapeau->deconnexion();
if (empty($sess->values['souscontrole'])) $sess->values['souscontrole'] = array($sess->values['id'], $sess->values['idPlan']);
$sess->values['id'] = $req['id'];
$sess->values['idPlan'] = $reqPl['id'];
$sess->put();
$template->assign('message', 'Vous contrôlez maintenant le joueur '.$_GET['id'].'.<br />Pensez à sélectionner sa planète !');
$template->assign('message', 'Vous contrôlez maintenant le joueur '.$req['pseudo'].'.<br />Planète '.$reqPl['nom_planete'].' sélectionnée !');
}
}
elseif (!empty($_GET['name'])) {

View file

@ -5,7 +5,7 @@ $pagea = 'erreur';
$template->assign('linkpage', 'djoueurs');
if ($sess->values['auth_level'] >= 5 && !empty($_GET['id'])) {
if ($sess->level >= 5 && !empty($_GET['id'])) {
$id = $_GET['id'];
$chapeau->connexion();
$chapeau->escape($id);

View file

@ -5,7 +5,7 @@ $titre = 'Versions';
$template->assign('linkpage', 'version');
if (!empty($_GET['i']) && $_GET['i'] == 'add' && $sess->values['auth_level'] >= 7) {
if (!empty($_GET['i']) && $_GET['i'] == 'add' && $sess->level >= 7) {
if (!empty($_POST['version']) && !empty($_POST['contenu'])) {
$version = $_POST['version'];
$contenu = $_POST['contenu'];

View file

@ -5,9 +5,9 @@ include_once(_FCORE."../game/Class/class.rapport.php");
//Si le joueur est membre de l'alliance
$bdd->connexion();
if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 && $alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$queryUser['id_alliance'].";")) {
if (!empty($planete->id_alliance) && $planete->id_grade_alliance != -1 && $alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$planete->id_alliance.";")) {
//On détermine les accès du joueur
if ($alliance['fondateur'] == $queryUser['id'])
if ($alliance['fondateur'] == $id_user)
$access = array(
'fondateur' => 1,
'chat' => 1,
@ -16,10 +16,9 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
'ecriture' => 1,
'alliance' => 1
);
elseif ($queryUser['id_grade_alliance'] != 0) {
$id_grade_alliance = $queryUser['id_grade_alliance'];
elseif ($planete->id_grade_alliance != 0) {
$bdd->connexion();
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = $id_grade_alliance;");
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = ".$planete->id_grade_alliance.";");
$bdd->deconnexion();
$access = array(
'fondateur' => 0,
@ -52,7 +51,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$bdd->escape($i);
$bdd->query("DELETE FROM $table_alliances_chat WHERE id = $i AND id_alliance = $alliId;");
$bdd->deconnexion();
header('Location: ./?p=alliances&q=adm_chat#chat');
header('Location: ?p=alliances&q=adm_chat#chat');
exit;
}
$page = 'alliance_adm_chat';
@ -88,7 +87,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
@$bdd->query("INSERT INTO $table_alliances_grade (id_alliance, nom, description, gest_chat, gest_rang, gest_membre, gest_ecriture, gest_admin) VALUES (".$alliance['id'].", '$nom', '$description', ".ceil($_POST['gest_chat']).", ".ceil($_POST['gest_rang']).", ".ceil($_POST['gest_membre']).", ".ceil($_POST['gest_ecriture']).", ".ceil($_POST['gest_alliance']).");");
$bdd->deconnexion();
}
header('Location: ./?p=alliances&q=adm_grades');
header('Location: ?p=alliances&q=adm_grades');
exit;
}
$page = 'alliance_adm_grades_add';
@ -100,7 +99,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$mod = $bdd->unique_query("DELETE FROM $table_alliances_grade WHERE id = $i AND id_alliance = ".$alliance['id'].";");
$bdd->deconnexion();
header('Location: ./?p=alliances&q=adm_grades');
header('Location: ?p=alliances&q=adm_grades');
exit;
}
elseif (!empty($_GET['i'])) {
@ -133,7 +132,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$bdd->escape($mod);
$bdd->query("UPDATE $table_alliances SET $mod = '$text' WHERE id = $alliId;");
$bdd->deconnexion();
header('Location: ./?p=alliances&q=adm_ecrits&t='.$mod);
header('Location: ?p=alliances&q=adm_ecrits&t='.$mod);
exit;
}
$page = 'alliance_adm_ecritures';
@ -150,21 +149,13 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$bdd->escape($titre);
$bdd->escape($texte);
$bdd->escape($expediteur);
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = $alliId;");
$membres = $bdd->query("SELECT id FROM $table_user WHERE id_alliance = $alliId;");
$bdd->deconnexion();
$nbmembre = $bdd->num_rows;
$temps = time();
$bdd->connexion();
for($i = 0; $i < $nbmembre; $i++){
$pseudos = $membres[$i]['pseudo'];
$bdd->escape($pseudos);
$bdd->query("INSERT INTO $table_mail (destinataire, expediteur, sujet, contenu, temps) VALUES ('$pseudos', '$expediteur', '$titre', '$texte', '$temps');");
foreach($membres as $membre){
send_mp($membre['id'], $titre, $texte, 1, $id_user);
}
$bdd->deconnexion();
$template->assign('message','Le message privé a été communiqué à tous les joueurs de l\'alliance.');
$template->assign('couleur','green');
$template->display('game/erreur.tpl');
exit;
erreur('Le message privé a été communiqué à tous les joueurs de l\'alliance.', "green", '?p=alliances');
}
$page = 'alliance_adm_mpmass';
}
@ -179,7 +170,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$bdd->query("DELETE FROM $table_alliances_emprunt WHERE id = $a;");
send_mp($demande['id_user'], '['.$alliance['tag'].'] Réponse à la demande de financement', 'Votre demande de financement a été acceptée par l\'alliance.<br />Vous recevez '.$demande['metal'].' '.$ressourc[0].', '.$demande['cristal'].' '.$ressourc[1].', '.$demande['hydrogene'].' '.$ressourc[2].'.');
header('Location: ./?p=alliances&q=adm_emprunt');
header('Location: ?p=alliances&q=adm_emprunt');
exit;
}
else erreur('Impossible d\'accepter la demande de financement pour le moment.');
@ -190,7 +181,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$bdd->query("DELETE FROM $table_alliances_emprunt WHERE id = $u;");
send_mp($demande['id_user'], '['.$alliance['tag'].'] Réponse à la demande de financement', 'Votre demande de financement a été refusée par l\'alliance.');
header('Location: ./?p=alliances&q=adm_emprunt');
header('Location: ?p=alliances&q=adm_emprunt');
exit;
}
$demandes = $bdd->query("SELECT E.id, E.raison, E.metal, E.cristal, E.hydrogene, U.pseudo FROM $table_alliances_emprunt E INNER JOIN $table_user U ON U.id = E.id_user WHERE E.id_alliance = ".$alliance['id'].";");
@ -199,7 +190,8 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$alliance['metalS'] = separerNombres($alliance['metal']);
$alliance['cristalS'] = separerNombres($alliance['cristal']);
$alliance['hydrogeneS'] = separerNombres($alliance['hydrogene']);
$template->assign('alliance', $alliance); $page = 'alliance_adm_emprunt';
$template->assign('alliance', $alliance);
$page = 'alliance_adm_emprunt';
}
elseif ($_GET['q'] == 'adm_alliance' && $access['alliance']) {
$recharg = false;
@ -221,7 +213,10 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$recharg = true;
}
if (isset($_POST['fondateur']) && $alliance['fondateur'] == $id_user && isset($_POST['pswd_admin'])) {
if (!empty($_POST['pswd_admin']) && $queryUser['mdp'] == sha1(strtoupper($queryUser['pseudo']).':'.$_POST['pswd_admin']) && empty($sess->values['forcealli'])) {
$bdd->connexion();
$queryUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id_user;");
$bdd->deconnexion();
if (!empty($_POST['pswd_admin']) && $queryUser['mdp'] == sha1(strtoupper($planete->pseudo).':'.$_POST['pswd_admin']) && empty($sess->values['forcealli'])) {
$sess->values['forcealli'] = true;
$sess->put();
$template->assign('message','Êtes-vous sûr de vouloir dissoudre cette alliance ?<br /><i>Pour confirmer la dissolution de l\'alliance, rechargez cette page.</i>');
@ -229,27 +224,20 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$template->display('game/erreur.tpl');
exit;
}
elseif (!empty($_POST['pswd_admin']) && $queryUser['mdp'] == sha1(strtoupper($queryUser['pseudo']).':'.$_POST['pswd_admin']) && isset($sess->values['forcealli']) && $sess->values['forcealli']) {
elseif (!empty($_POST['pswd_admin']) && $queryUser['mdp'] == sha1(strtoupper($planete->pseudo).':'.$_POST['pswd_admin']) && isset($sess->values['forcealli']) && $sess->values['forcealli']) {
$alliId = $alliance['id'];
$bdd->connexion();
$bdd->query("DELETE FROM $table_alliances WHERE id = '$alliId';");
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '$alliId';");
$membres = $bdd->query("SELECT id FROM $table_user WHERE id_alliance = '$alliId';");
$nbeff = $bdd->num_rows;
for($i = 0; $i < $nbeff; $i++){
$bdd->query("UPDATE $table_user SET id_alliance = '0', id_grade_alliance = '0' WHERE id = '".$membres[$i]['id']."' AND id_alliance = '$alliId';");
foreach($membres as $membre){
$bdd->query("UPDATE $table_user SET id_alliance = '0', id_grade_alliance = '0' WHERE id = '".$membre['id']."' AND id_alliance = '$alliId';");
}
$bdd->deconnexion();
$template->assign('message','L\'alliance a été dissoute avec succès.');
$template->assign('couleur','green');
$template->display('game/erreur.tpl');
exit;
erreur('L\'alliance a été dissoute avec succès.', 'green');
}
elseif (!empty($_POST['pswd_admin']) && $queryUser['mdp'] != sha1(strtoupper($queryUser['pseudo']).':'.$_POST['pswd_admin'])) {
$template->assign('message','Impossible de dissoudre l\'alliance : mot de passe incorrect.');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=adm_alliance";\', 3000);</script>');
$template->assign('couleur','red');
$template->display('game/erreur.tpl');
exit;
elseif (!empty($_POST['pswd_admin']) && $queryUser['mdp'] != sha1(strtoupper($planete->pseudo).':'.$_POST['pswd_admin'])) {
erreur('Impossible de dissoudre l\'alliance : mot de passe incorrect.', "red", "?p=alliances&q=adm_alliance", 3000);
}
$fondateur = $_POST['fondateur'];
$bdd->connexion();
@ -259,7 +247,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$recharg = true;
}
if ($recharg) {
header('Location: ./?p=alliances&q=adm_alliance');
header('Location: ?p=alliances&q=adm_alliance');
exit;
}
$page = 'alliance_adm_admin';
@ -276,9 +264,9 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$bdd->deconnexion();
$membre = array();
$membrei = array();
for($i = 0; $i < $bdd->num_rows; $i++){
$membre[] = $membres[$i]['pseudo'];
$membrei[] = $membres[$i]['id'];
foreach($membres as $membrex){
$membre[] = $membrex['pseudo'];
$membrei[] = $membrex['id'];
}
$template->assign('membres', $membre);
$template->assign('membresi', $membrei);
@ -327,9 +315,9 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$grades = $bdd->query("SELECT * FROM $table_alliances_grade WHERE id_alliance = ".$alliance['id']." ORDER BY nom ASC;");
$bdd->deconnexion();
$grade = array(); $gradei = array();
for($i = 0; $i < $bdd->num_rows ; $i++){
$grade[] = $grades[$i]['nom'];
$gradei[] = $grades[$i]['id'];
foreach($grades as $gradex){
$grade[] = $gradex['nom'];
$gradei[] = $gradex['id'];
}
$template->assign('grades', $grade);
$template->assign('gradei', $gradei);
@ -346,10 +334,9 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$bdd->connexion();
if (isset($_GET['t']) && $_GET['t'] == 'classement') $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '".$alliance['id']."' ORDER BY place_points ASC;");
else $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '".$alliance['id']."';");
$nb = $bdd->num_rows;
for ($i = 0; $i < $nb; $i++) {
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = '".$membres[$i]['id_grade_alliance']."';");
$membres[$i]['grade_alliance'] = $grade['nom'];
foreach($membres as $membre){
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = '".$membre['id_grade_alliance']."';");
$membre['grade_alliance'] = $grade['nom'];
}
$bdd->deconnexion();
$template->assign('membres', $membres);
@ -361,7 +348,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$bdd->escape($message);
if (!empty($message)) $bdd->query("INSERT INTO $table_alliances_chat (id_alliance, emetteur, timestamp, message) VALUES (".$alliance['id'].", $id_user, ".time().", '$message')");
$bdd->deconnexion();
header('Location: ./?p=alliances&q=chat#chat');
header('Location: ?p=alliances&q=chat#chat');
exit;
}
$page = 'alliance_chat';
@ -369,9 +356,9 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$bdd->connexion();
$chat = $bdd->query("SELECT * FROM $table_alliances_chat WHERE id_alliance = ".$alliance['id']." ORDER BY id DESC LIMIT 30");
$bdd->deconnexion();
for($i = 0; $i < $bdd->num_rows ; $i++){
$chat[$i]['emetteur'] = trouvNom($chat[$i]['emetteur']);
$chat[$i]['message'] = bbcode(htmlspecialchars($chat[$i]['message']));
foreach($chat as $lign){
$lign['emetteur'] = trouvNom($lign['emetteur']);
$lign['message'] = bbcode(htmlspecialchars($lign['message']));
}
$template->assign('chat', $chat);
}
@ -381,7 +368,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$bdd->query("UPDATE $table_user SET id_grade_alliance = '0', id_alliance = '0' WHERE id = '".$id_user."' AND id_alliance = '".$alliance['id']."';");
$bdd->deconnexion();
send_mp($id_user, '['.strtoupper($alliance['tag']).'] Vous quittez l\'alliance', 'Vous venez de quitter votre alliance.');
send_mp($alliance['fondateur'], '['.strtoupper($alliance['tag']).'] quitte l\'alliance', 'vient de quitter votre alliance.');
send_mp($alliance['fondateur'], '['.strtoupper($alliance['tag']).'] '.trouvNom($id_user).' quitte l\'alliance', linkNom($id_user).'vient de quitter votre alliance.');
$template->assign('message','Vous avez quitté votre alliance.');
$template->assign('couleur','green');
@ -394,12 +381,14 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$cristalD = gpc('cristal', 'post'); if (!is_numeric($cristalD)) $cristalD = 0;
$hydrogeneD = gpc('hydrogene', 'post'); if (!is_numeric($hydrogeneD)) $hydrogeneD = 0;
if ($metalD+$cristalD+$hydrogeneD > 0 && $metalD >= 0 && $cristalD >= 0 && $hydrogeneD >= 0) {
if ($planete->metal-$metalD >= 0 && $planete->cristal-$cristalD >= 0 && $planete->hydrogene-$hydrogeneD >= 0) {
if ($planete->metal > $metalD && $planete->cristal > $cristalD && $planete->hydrogene > $hydrogeneD) {
$bdd->escape($metalD);
$bdd->escape($cristalD);
$bdd->escape($hydrogeneD);
$bdd->query("UPDATE $table_alliances SET metal = metal + $metalD, cristal = cristal + $cristalD, hydrogene = hydrogene + $hydrogeneD WHERE id = ".$alliance['id'].";");
$bdd->query("UPDATE $table_planete SET metal = metal - $metalD, cristal = cristal - $cristalD, hydrogene = hydrogene - $hydrogeneD WHERE id = $id_user;");
$planete->metal -= $metalD;
$planete->cristal -= $cristalD;
$planete->hydrogene -= $hydrogeneD;
header('Location: ?p=alliances');
exit;
@ -469,9 +458,9 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
$template->assign('chat', $chat);
}
}
elseif (!empty($queryUser['id_alliance']) && $bdd->connexion() && !$bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$queryUser['id_alliance'].";")) {
elseif (!empty($planete->id_alliance) && $bdd->connexion() && !$bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$planete->id_alliance.";")) {
$bdd->query("UPDATE $table_user SET id_alliance = 0, id_grade_alliance = 0 WHERE id = $id_user;");
header('Location: ./?p=alliances');
header('Location: ?p=alliances');
exit;
}
//Si le joueur n'est membre d'aucune alliance

View file

@ -4,33 +4,31 @@ $titre = 'Amis';
$a = gpc('a');
$nom = gpc('nom', 'post');
if (!empty($a)) {
$fav = explode(';', $queryUser['amis']);
$cntfav = count($fav);
//Suppression d'un ami
if (!empty($a)) {
$d = gpc('d');
if (!empty($d) && $a == md5(date('GA').'@'.$d)) {
for($i = 0; $i < $cntfav; $i++){
if ($fav[$i] == $d) unset($fav[$i]);
}
$queryUser['amis'] = implode(';', $fav);
$f = array_keys($planete->amis, $d);
unset($planete->amis[$f[0]]);
$bdd->connexion();
$bdd->query("UPDATE $table_user SET amis = '".$queryUser['amis']."' WHERE id = $id_user;");
$bdd->query("UPDATE $table_user SET amis = '".serialize($planete->amis)."' WHERE id = $id_user;");
$bdd->deconnexion();
}
header('Location: ?p=amis');
exit;
}
//Ajout d'un ami dans la liste
elseif (!empty($nom)) {
$bdd->connexion();
$plan = $bdd->unique_query("SELECT id FROM $table_user WHERE pseudo = '$nom';");
if ($plan) {
if (in_array($plan['id'], explode(';', $queryUser['amis']))) {
if (in_array($plan['id'], $planete->amis)) {
$bdd->deconnexion();
erreur('Ce joueur est déjà dans votre liste d\'amis.', "red", "?p=amis", 2000);
}
$queryUser['amis'] .= ";".$plan['id'];
$bdd->query("UPDATE $table_user SET amis = '".$queryUser['amis']."' WHERE id = $id_user;");
$planete->amis[] = $plan['id'];
$bdd->query("UPDATE $table_user SET amis = '".serialize($planete->amis)."' WHERE id = $id_user;");
}
else {
$bdd->deconnexion();
@ -41,17 +39,16 @@ elseif (!empty($nom)) {
header('Location: ?p=amis');
exit;
}
//Affichage de la liste d'amis
else {
$page = 'amis';
$fav = explode(';', $queryUser['amis']);
$cntfav = count($fav);
$destins = array();
$bdd->connexion();
for($i = 0; $i < $cntfav; $i++){
$res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$fav[$i].";");
foreach($planete->amis as $ami){
$res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$ami.";");
if ($res != false) {
$destins[] = array($fav[$i], $res['pseudo'], md5(date('GA').'@'.$fav[$i]));
$destins[] = array($ami, $res['pseudo'], md5(date('GA').'@'.$ami));
}
}
$bdd->deconnexion();

View file

@ -5,10 +5,10 @@ $titre = 'Arbre des technologies';
if (empty($_GET['q'])) $_GET['q'] = '';
$template->assign('defaut',$_GET['q']);
if (empty($_GET['r']) || ($_GET['r'] != 'humain' && $_GET['r'] != 'covenant')) $_GET['r'] = $queryUser['race'];
if (empty($_GET['r']) || ($_GET['r'] != 'humain' && $_GET['r'] != 'covenant')) $_GET['r'] = $planete->race;
$race = $_GET['r'];
if ($race != $queryUser['race']) include(_FCORE."../game/noms.php");
if ($race != $planete->race) include(_FCORE."../game/noms.php");
$template->assign('raceAff', $race);
$TEMP_batiments = array();
@ -29,7 +29,7 @@ for ($id=0 ; $id<$nb ; $id++) {
if (!empty($technolo[$id])) $TEMP_technologies[] = array(
'id' => $id,
'nom' => $technolo[$id],
'niveau' => $queryUser[$technoloVAR[$id]],
'niveau' => $planete->technologies[$id],
'etat' => readDeblok($technoloTECH[$id], $planete)
);
}

View file

@ -18,6 +18,8 @@ $titre = 'Batiments';
case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour construire ce bâtiment.'); break;
case 2: erreur('Ce bâtiment est déjà en file d\'attente !'); break;
case 3: erreur('Vous n\'avez pas les ressources nécessaire pour construire ce bâtiment !'); break;
case 4: erreur('File d\'attente pleine !'); break;
case 5: erreur('Le nombre d\'objets est négatif !'); break;
default: header('Location: ?p=batiments'); exit;
}
}
@ -41,11 +43,15 @@ $titre = 'Batiments';
exit;
}*/
for ($i=0 ; $i<$nbstop ; $i++) {
foreach($planete->batiments as $i => $PLbatiment) {
$tr = 0; $a = 0; $b = 0; $c = 0; $sec = 0; $enFile = false;
if ($planete->batiments[$i] > 0) $niveau = $planete->batiments[$i]; else $niveau = 0;
$n = $planete->batiments[$i] + 1; eval($batimentCALC[$i][0]); eval($batimentCALC[$i][1]); eval($batimentCALC[$i][2]); eval($batimentCALC[$i][3]);
if ($planete->file_exist($i, 'file_bat')) $enFile = true;
if ($PLbatiment > 0) $niveau = $PLbatiment; else $niveau = 0;
$n = $PLbatiment + 1; eval($batimentCALC[$i][0]); eval($batimentCALC[$i][1]); eval($batimentCALC[$i][2]); eval($batimentCALC[$i][3]);
if ($planete->file_exist($i, 'file_bat')) $enFile = true; else $enFile = false;
//On applique les bonus de test
$sec /= VITESSE;
if (!empty($batiment[$i]) && requestDeblok($batimentTECH[$i], $planete)) $TEMP_batiments[] =
array(
'image' => $batimeni[$i],
@ -77,12 +83,13 @@ $titre = 'Batiments';
else $template->assign('Vchaine', false);
$file = array();
for ($i=1 ; $i <= $nbfile ; $i++) {
$file_unit = explode(',', $planete->file_bat[$i]);
$n = $planete->batiments[$file_unit[0]] + 1;
eval($batimentCALC[$file_unit[0]][3]);
if ($i == 1) $file[] = array($file_unit[0], $file_unit[1], ceil($sec - (time() - $planete->file_bat[0])), $batiment[$file_unit[0]]);
else $file[] = array($file_unit[0], $file_unit[1], ceil($sec), $batiment[$file_unit[0]]);
foreach ($planete->file_bat as $key => $bout){
if ($key == 0) continue;
$n = $planete->batiments[$bout[0]] + 1;
eval($batimentCALC[$bout[0]][3]);
if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_bat[0])), $batiment[$bout[0]]);
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE), $batiment[$bout[0]]);
}
$template->assign('file', $file);

View file

@ -13,6 +13,7 @@ else {
$a = gpc('a');
$v = gpc('v');
$nb = gpc('a'.$a.$v, 'post');
if ($nb < 0) erreur("Vous ne pouvez pas acheter ou vendre un nombre négatif d'action !", "red", "?p=bourse");
if (!empty($a) && is_numeric($nb)) {
$action = new Bourse($a, $id_user);
$poss24 = $action->actionIn24Hours();
@ -35,7 +36,8 @@ else {
header('Location: ?p=bourse&d='.$v);
exit;
}
elseif ($e = gpc('e') && $queryUser['auth_level'] >= 3) {
elseif (gpc('e') && $planete->auth_level >= 3) {
$e = gpc('e');
if (isset($_POST['nomaction']) && isset($_POST['descaction'])) {
$nom = gpc('nomaction', 'post');
$description = gpc('descaction', 'post');
@ -69,7 +71,7 @@ else {
header('Location: ?p=bourse&d='.$e);
exit;
}
elseif (gpc('c') == "new" && $queryUser['auth_level'] >= 3 && is_numeric(gpc('prixAM', 'post')) && is_numeric(gpc('prixAC', 'post'))) {
elseif (gpc('c') == "new" && $planete->auth_level >= 3 && is_numeric(gpc('prixAM', 'post')) && is_numeric(gpc('prixAC', 'post'))) {
if (isset($_POST['nomaction']) && isset($_POST['descaction'])) {
$nom = gpc('nomaction', 'post');
$description = gpc('descaction', 'post');
@ -104,8 +106,11 @@ else {
$bourse = $bdd->unique_query("SELECT id, nom, description, news, metal, cristal, (metal/metalAnc-1)*100 AS evolution FROM $table_bourse WHERE id = $d;");
$bdd->deconnexion();
$page = 'bourseDetails';
$template->assign('bourse', $bourse);
if ($bourse) {
$page = 'bourseDetails';
$template->assign('bourse', $bourse);
}
else erreur('Cette action n\'existe pas !', "red", '?p=bourse');
}
else {
$bdd->connexion();

View file

@ -6,7 +6,7 @@ $titre = 'Rapports de bugs';
if (!empty($_POST['page']) && !empty($_POST['description'])) {
$pages = $_POST['page'];
$description = $_POST['description'];
$pseudo = $queryUser['pseudo'];
$pseudo = $planete->pseudo;
$time = time();
$bdd->connexion();
@ -17,7 +17,7 @@ if (!empty($_POST['page']) && !empty($_POST['description'])) {
header('Location: ?p=bugs');
exit;
}
elseif (isset($_GET['a']) && $_GET['a'] == 'del' && isset($_GET['i']) && $sess->values['auth_level'] > 2) {
elseif (isset($_GET['a']) && $_GET['a'] == 'del' && isset($_GET['i']) && $sess->level > 2) {
$i = $_GET['i'];
$bdd->connexion();
$bdd->escape($i);

View file

@ -6,7 +6,7 @@ $titre = 'Carte spatiale';
if (isset($_GET['galaxie'])) $g = floor($_GET['galaxie']);
else $g = $planete->galaxie;
if ($queryUser['auth_level'] >= 5 && $g <= 0) $g = 0;
if ($planete->auth_level >= 5 && $g <= 0) $g = 0;
elseif ($g < 1) $g = 1;
if ($g > MAX_AMAS) $g = 1;
@ -38,21 +38,39 @@ else {
}
//Erreur au cas où la zone soit trop lointaine par rapport au niveau de la technologie
if (($queryUser['detection'] < 1 && ($g != $planete->galaxie || $s != $planete->ss)) || ($queryUser['detection'] < 2 && $g != $planete->galaxie))
erreur('Pour afficher cette zone de la carte spatiale, vous devez plus développer votre technologie '.nameLink(1, "technologie"));
//if (($planete->technologies[1] < 1 && ($g != $planete->galaxie || $s != $planete->ss)) || ($planete->technologies[1] < 2 && $g != $planete->galaxie))
// erreur('Pour afficher cette zone de la carte spatiale, vous devez plus développer votre technologie ');
$TEMP_carte = array();
for ($i = 1; $i <= MAX_PLANETE; $i++) {
if ($s%5 == 2 && $i == ceil(MAX_PLANETE/2)) {
$bdd->connexion();
$bdd->escape($g);
$bdd->escape($s);
$d = $bdd->unique_query("SELECT race, nom_asteroide, debris_met, debris_cri, nom, tag, fondateur FROM $table_alliances WHERE galaxie = $g AND ss = $s;");
$bdd->deconnexion();
if($d) {
if ($d['race'] == 'covenant') $ra = '(c)';
elseif ($auth_level >= 6 && md5($d['race']) == '34c19b21bd4a3dda389e767d32fe9779') $ra = '(f)';
else $ra = '(h)';
$TEMP_carte[] = array('A', $d['nom_asteroide'], $d['debris_met'], $d['debris_cri'], $ra, $d['nom'], '<a href="?p=envoyer&amp;d='.$d['fondateur'].'" class="msg"><span>Message</span></a>', $d['tag']);//, $eA['tag']);
}
else {
$TEMP_carte[] = array('A');
}
}
$bdd->connexion();
$bdd->escape($g);
$bdd->escape($s);
$resultat = $bdd->query("SELECT id FROM $table_planete WHERE galaxie = $g AND ss = $s AND position = $i;");
if($resultat) {
$d = $bdd->unique_query("SELECT P.nom_planete, P.debris_met, P.debris_cri, U.pseudo, U.race, U.id_alliance, A.tag FROM $table_planete P INNER JOIN $table_user U ON U.id = P.id_user LEFT OUTER JOIN $table_alliances A ON A.id = U.id_alliance WHERE galaxie = $g AND ss = $s AND position = $i;");
$bdd->deconnexion();
$d = $bdd->unique_query("SELECT P.nom_planete, P.debris_met, P.debris_cri, U.pseudo, U.race, U.id_alliance, A.tag FROM $table_planete P INNER JOIN $table_user U ON U.id = P.id_user LEFT OUTER JOIN $table_alliances A ON A.id = U.id_alliance WHERE P.galaxie = $g AND P.ss = $s AND P.position = $i;");
if ($d['race'] == 'covenant') $ra = '(c)';
elseif ($auth_level >= 6 && md5($d['race']) == '34c19b21bd4a3dda389e767d32fe9779') $ra = '(f)';
else $ra = '(h)';
$bdd->deconnexion();
$TEMP_carte[] = array($i, $d['nom_planete'], $d['debris_met'], $d['debris_cri'], $ra, $d['pseudo'], '<a href="?p=envoyer&amp;d='.$d['pseudo'].'" class="msg"><span>Message</span></a>', $d['tag']);//, $eA['tag']);
}

View file

@ -7,7 +7,6 @@ $titre = $batiment[9];
if ($planete->batiments[9] == 0) erreur('Vous devez d\'abord construire une '.strtolower($batiment[9]), "red", '?p=batiments', 4000);
$TEMP_batiments = array();
$nbstop = count($casernen);
//Lancement d'une nouvelle construction
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
@ -17,6 +16,8 @@ if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'p
switch($construction){
case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour entraîner cette unité.'); break;
case 3: erreur('Vous n\'avez pas les ressources nécessaire pour entraîner cette unité !'); break;
case 4: erreur('File d\'attente pleine !'); break;
case 5: erreur('Le nombre d\'objets est négatif !'); break;
default: header('Location: ?p=caserne'); exit;
}
}
@ -28,7 +29,7 @@ if (isset($_GET['a'])) {
$w = intval(gpc('w'));
if (empty($w) && !$w === 0) $w = 99;
else $w++;
//Vérification de la présence du batiment dans la file d'attente
//Vérification de la présence de l'unité dans la file d'attente
if($planete->file_exist($i, 'file_cas')) {
$planete->file_delObjet("casernes", $i, $n, $w);
header('Location: ?p=caserne');
@ -45,10 +46,23 @@ if (isset($_GET['a'])) {
exit;
}*/
for ($i=0 ; $i<$nbstop ; $i++) {
foreach($planete->casernes as $i => $PLcaserne) {
$a = $casernenCALC[$i][0]; $b = $casernenCALC[$i][1]; $c = $casernenCALC[$i][2]; eval($casernenCALC[$i][3]);
if ($planete->file_exist($i, 'file_cas')) $enFile = true;
$nombre = $planete->casernes[$i];
else $enFile = false;
$nombre = $PLcaserne;
//On applique les bonus politiques aux temps et coûts
if ($planete->politique == 1) {
$a *= 0.9;
$b *= 0.9;
$c *= 0.9;
$sec *= 0.9;
}
//On applique les bonus de test
$sec /= VITESSE;
if (!empty($casernen[$i]) && requestDeblok($casernenTECH[$i], $planete)) $TEMP_batiments[] =
array(
'image' => $casernei[$i],
@ -72,17 +86,18 @@ $nbfile = count($planete->file_cas) - 1;
if ($nbfile == 1) $template->assign('Pchaine', true);
else $template->assign('Pchaine', false);
if ($nbfile == 0) $template->assign('Vchaine', true);
if ($nbfile <= 0) $template->assign('Vchaine', true);
else $template->assign('Vchaine', false);
$file = array();
for ($i=1 ; $i <= $nbfile ; $i++) {
$extract = explode(',', $planete->file_cas[$i]);
$n = $planete->casernes[$extract[0]] + 1;
eval($casernenCALC[$extract[0]][3]);
if ($i == 1) $file[] = array($extract[0], $extract[1], ceil($sec - (time() - $planete->file_cas[0])), $casernen[$extract[0]]);
else $file[] = array($extract[0], $extract[1], ceil($sec), $casernen[$extract[0]]);
$file = array();
foreach ($planete->file_cas as $key => $bout){
if ($key == 0) continue;
$n = $planete->casernes[$bout[0]] + 1;
eval($casernenCALC[$bout[0]][3]);
if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_cas[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $casernen[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_cas[0])));
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE) * $bout[1], $casernen[$bout[0]]);
}
$template->assign('file', $file);

View file

@ -4,10 +4,9 @@ $page = 'chantierspatial';
$titre = $batiment[8];
//Vérification que le joueur ait bien un labo avant d'afficher la page
if ($planete->batiments[8] == 0) erreur('Vous devez d\'abord construire une '.strtolower($batiment[8]), "red", '?p=batiments', 4000);
if ($planete->batiments[8] == 0) erreur('Vous devez d\'abord construire un '.strtolower($batiment[8]), "red", '?p=batiments', 4000);
$TEMP_batiments = array();
$nbstop = count($nomvaisn);
//Lancement d'une nouvelle construction
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
@ -17,6 +16,8 @@ if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'p
switch($construction){
case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour entraîner cette unité.'); break;
case 3: erreur('Vous n\'avez pas les ressources nécessaire pour entraîner cette unité !'); break;
case 4: erreur('File d\'attente pleine !'); break;
case 5: erreur('Le nombre d\'objets est négatif !'); break;
default: header('Location: ?p=chantierspatial'); exit;
}
}
@ -45,25 +46,38 @@ if (isset($_GET['a'])) {
exit;
}*/
for ($i=0 ; $i<$nbstop ; $i++) {
foreach($planete->vaisseaux as $i => $PLvaisseaux) {
$a = $nomvaisnCALC[$i][0]; $b = $nomvaisnCALC[$i][1]; $c = $nomvaisnCALC[$i][2]; eval($nomvaisnCALC[$i][3]);
if ($planete->file_exist($i, 'file_vais')) $enFile = true;
$nombre = $planete->vaisseaux[$i];
else $enFile = false;
$nombre = $PLvaisseaux;
//On applique les bonus politiques aux temps et coûts
if ($planete->politique == 1) {
$a *= 0.9;
$b *= 0.9;
$c *= 0.9;
$sec *= 0.9;
}
//On applique les bonus de test
$sec /= VITESSE;
if (!empty($nomvaisn[$i]) && requestDeblok($nomvaisnTECH[$i], $planete)) $TEMP_batiments[] =
array(
'image' => $nomvaisi[$i],
'nom' => $nomvaisn[$i],
'nombre' => $nombre,
'description' => $nomvaisd[$i],
'descriptione' => addslashes($nomvaisd[$i]),
'nec_metal' => $a,
'nec_cristal' => $b,
'nec_hydrogene' => $c,
'nec_metalS' => separerNombres($a),
'nec_cristalS' => separerNombres($b),
'nec_hydrogeneS' => separerNombres($c),
'temps' => sec($sec),
'num' => $i
'image' => $nomvaisi[$i],
'nom' => $nomvaisn[$i],
'nombre' => $nombre,
'description' => $nomvaisd[$i],
'descriptione' => addslashes($nomvaisd[$i]),
'nec_metal' => $a,
'nec_cristal' => $b,
'nec_hydrogene' => $c,
'nec_metalS' => separerNombres($a),
'nec_cristalS' => separerNombres($b),
'nec_hydrogeneS' => separerNombres($c),
'temps' => sec($sec),
'num' => $i
);
}
$template->assign('vaisseaux', $TEMP_batiments);
@ -72,18 +86,16 @@ $nbfile = count($planete->file_vais) - 1;
if ($nbfile == 1) $template->assign('Pchaine', true);
else $template->assign('Pchaine', false);
if ($nbfile == 0) $template->assign('Vchaine', true);
if ($nbfile <= 0) $template->assign('Vchaine', true);
else $template->assign('Vchaine', false);
$file = array();
for ($i=1 ; $i <= $nbfile ; $i++) {
$extract = explode(',', $planete->file_vais[$i]);
$n = $planete->vaisseaux[$extract[0]] + 1;
eval($nomvaisnCALC[$extract[0]][3]);
if ($i == 1) $file[] = array($extract[0], $extract[1], ceil($sec - (time() - $planete->file_vais[0]) + $sec*($extract[1]-1)), $nomvaisn[$extract[0]], ceil($sec - (time() - $planete->file_vais[0])));
else $file[] = array($extract[0], $extract[1], ceil($sec*$extract[1]), $nomvaisn[$extract[0]], ceil($sec));
foreach ($planete->file_vais as $key => $bout){
if ($key == 0) continue;
$n = $planete->vaisseaux[$bout[0]] + 1;
eval($nomvaisnCALC[$bout[0]][3]);
if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_vais[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $nomvaisn[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_vais[0])));
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE), $nomvaisn[$bout[0]]);
}
$template->assign('file', $file);
?>

View file

@ -4,10 +4,9 @@ $page = 'chantierterrestre';
$titre = $batiment[7];
//Vérification que le joueur ait bien un labo avant d'afficher la page
if ($planete->batiments[7] == 0) erreur('Vous devez d\'abord construire une '.strtolower($batiment[7]), "red", '?p=batiments', 4000);
if ($planete->batiments[7] == 0) erreur('Vous devez d\'abord construire un '.strtolower($batiment[7]), "red", '?p=batiments', 4000);
$TEMP_batiments = array();
$nbstop = count($nomterrn);
//Lancement d'une nouvelle construction
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
@ -17,6 +16,8 @@ if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'p
switch($construction){
case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour entraîner cette unité.'); break;
case 3: erreur('Vous n\'avez pas les ressources nécessaire pour entraîner cette unité !'); break;
case 4: erreur('File d\'attente pleine !'); break;
case 5: erreur('Le nombre d\'objets est négatif !'); break;
default: header('Location: ?p=chantierterrestre'); exit;
}
}
@ -44,11 +45,23 @@ if (isset($_GET['a'])) {
header('Location: ?p=batiments');
exit;
}*/
for ($i=0 ; $i<$nbstop ; $i++) {
foreach($planete->terrestres as $i => $PLterrestres) {
$a = $nomterrnCALC[$i][0]; $b = $nomterrnCALC[$i][1]; $c = $nomterrnCALC[$i][2]; eval($nomterrnCALC[$i][3]);
if ($planete->file_exist($i, 'file_ter')) $enFile = true;
$nombre = $planete->terrestres[$i];
else $enFile = false;
$nombre = $PLterrestres;
//On applique les bonus politiques aux temps et coûts
if ($planete->politique == 1) {
$a *= 0.9;
$b *= 0.9;
$c *= 0.9;
$sec *= 0.9;
}
//On applique les bonus de test
$sec /= VITESSE;
if (!empty($nomterrn[$i]) && requestDeblok($nomterrnTECH[$i], $planete) && !$nomterrnCALC[$i][4]) $TEMP_batiments[] =
array(
'image' => $nomterri[$i],
@ -72,18 +85,16 @@ $nbfile = count($planete->file_ter) - 1;
if ($nbfile == 1) $template->assign('Pchaine', true);
else $template->assign('Pchaine', false);
if ($nbfile == 0) $template->assign('Vchaine', true);
if ($nbfile <= 0) $template->assign('Vchaine', true);
else $template->assign('Vchaine', false);
$file = array();
for ($i=1 ; $i <= $nbfile ; $i++) {
$extract = explode(',', $planete->file_ter[$i]);
$n = $planete->terrestres[$extract[0]] + 1;
eval($nomterrnCALC[$extract[0]][3]);
if ($i == 1) $file[] = array($extract[0], $extract[1], ceil($sec - (time() - $planete->file_ter[0]) + $sec*($extract[1]-1)), $nomterrn[$extract[0]], ceil($sec - (time() - $planete->file_ter[0])));
else $file[] = array($extract[0], $extract[1], ceil($sec*$extract[1]), $nomterrn[$extract[0]], ceil($sec));
foreach ($planete->file_ter as $key => $bout){
if ($key == 0) continue;
$n = $planete->terrestres[$bout[0]] + 1;
eval($nomterrnCALC[$bout[0]][3]);
if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_ter[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $nomterrn[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_ter[0])));
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE), $nomterrn[$bout[0]]);
}
$template->assign('file', $file);
?>

View file

@ -41,13 +41,13 @@ $n = gpc('n');
if (is_numeric($n) && $n > 0) $nbppage = $n;
else $nbppage = 100;
$pageClassementN = ($pageClassement-1);
$pageClassementN = $pageClassement - 1;
$nbpages = ceil(($nbhumain['humains']+$nbcovie['covenants'])/$nbppage);
if ($pageClassement > $nbpages) $pageClassement = $nbpages;
$TEMP_pages = '<select name="q">';
for($i=1 ; $i<=$nbpages ; $i++) {
for($i = 1 ; $i <= $nbpages ; $i++) {
if ($i == $pageClassement) $TEMP_pages .= '<option value="'.$i.'" selected="selected">'.(($i-1)*$nbppage+1).'-'.($i*$nbppage).'</option>';
else $TEMP_pages .= '<option value="'.$i.'">'.(($i-1)*$nbppage+1).'-'.($i*$nbppage).'</option>';
}
@ -58,18 +58,18 @@ $plage_debut = $nbppage * $pageClassementN;
$plage_fin = $nbppage * ($pageClassementN + 1);
if ($TypeSearch) {
$bdd->connexion();
$data = $bdd->query("SELECT C.".$export.", C.nbr_membres FROM $table_classement_alliances C JOIN $table_alliances A ON 1 = A.id ORDER BY C.$export DESC LIMIT $plage_fin OFFSET $plage_debut;");
$data = $bdd->query("SELECT C.".$export.", C.nbr_membres, A.tag FROM $table_classement_alliances C JOIN $table_alliances A ON 1 = A.id ORDER BY C.$export DESC LIMIT $plage_fin OFFSET $plage_debut;");
$bdd->deconnexion();
$nbres = $bdd->num_rows;
var_dump($data);
$j = ($pageClassement-1)*$nbppage;
$TEMP_classement = array();
for ($i=0; $i<$nbres; $i++) {
foreach($data as $lign){
$j++;
$TEMP_classement[] = array($j, $data[$i]['tag'], $data[$i]['nbr_membres'], separerNombres($data[$i][$export]),0);
$TEMP_classement[] = array($j, $lign['tag'], $lign['nbr_membres'], separerNombres($lign[$export]),0);
}
$template->assign('places', $TEMP_classement);
}
else {
$bdd->connexion();
@ -80,9 +80,9 @@ else {
$j = ($pageClassement-1)*$nbppage;
$TEMP_classement = array();
for ($i=0; $i<$nbres; $i++) {
foreach($data as $lign){
$j++;
$TEMP_classement[] = array($j, $data[$i]['pseudo'], $data[$i]['race'], $data[$i]['tag'], $data[$i]['nom'], separerNombres($data[$i][$export]));
$TEMP_classement[] = array($j, $lign['pseudo'], $lign['race'], $lign['tag'], $lign['nom'], separerNombres($lign[$export]));
}
$template->assign('places', $TEMP_classement);

View file

@ -17,6 +17,7 @@ if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'p
switch($construction){
case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour entraîner cette unité.'); break;
case 3: erreur('Vous n\'avez pas les ressources nécessaire pour entraîner cette unité !'); break;
case 5: erreur('Le nombre d\'objets est négatif !'); break;
default: header('Location: ?p=defenses'); exit;
}
}
@ -31,7 +32,7 @@ if (isset($_GET['a'])) {
//Vérification de la présence du batiment dans la file d'attente
if($planete->file_exist($i, 'file_ter')) {
$planete->file_delObjet("terrestres", $i, $n, $w);
header('Location: ?p=chantierterrestre');
header('Location: ?p=defenses');
exit;
}
}
@ -44,11 +45,23 @@ if (isset($_GET['a'])) {
header('Location: ?p=batiments');
exit;
}*/
for ($i=0 ; $i<$nbstop ; $i++) {
foreach($planete->terrestres as $i => $PLterrestres) {
$a = $nomterrnCALC[$i][0]; $b = $nomterrnCALC[$i][1]; $c = $nomterrnCALC[$i][2]; eval($nomterrnCALC[$i][3]);
if ($planete->file_exist($i, 'file_ter')) $enFile = true;
$nombre = $planete->terrestres[$i];
else $enFile = false;
$nombre = $PLterrestres;
//On applique les bonus politiques aux temps et coûts
if ($planete->politique == 1) {
$a *= 0.9;
$b *= 0.9;
$c *= 0.9;
$sec *= 0.9;
}
//On applique les bonus de test
$sec /= VITESSE;
if (!empty($nomterrn[$i]) && requestDeblok($nomterrnTECH[$i], $planete) && $nomterrnCALC[$i][4]) $TEMP_batiments[] =
array(
'image' => $nomterri[$i],
@ -72,18 +85,16 @@ $nbfile = count($planete->file_ter) - 1;
if ($nbfile == 1) $template->assign('Pchaine', true);
else $template->assign('Pchaine', false);
if ($nbfile == 0) $template->assign('Vchaine', true);
if ($nbfile <= 0) $template->assign('Vchaine', true);
else $template->assign('Vchaine', false);
$file = array();
for ($i=1 ; $i <= $nbfile ; $i++) {
$extract = explode(',', $planete->file_ter[$i]);
$n = $planete->terrestres[$extract[0]] + 1;
eval($nomterrnCALC[$extract[0]][3]);
if ($i == 1) $file[] = array($extract[0], $extract[1], ceil($sec - (time() - $planete->file_ter[0]) + $sec*($extract[1]-1)), $nomterrn[$extract[0]], ceil($sec - (time() - $planete->file_ter[0])));
else $file[] = array($extract[0], $extract[1], ceil($sec)*$extract[1], $nomterrn[$extract[0]], ceil($sec));
foreach ($planete->file_ter as $key => $bout){
if ($key == 0) continue;
$n = $planete->terrestres[$bout[0]] + 1;
eval($nomterrnCALC[$bout[0]][3]);
if ($i == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_ter[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $nomterrn[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_ter[0])));
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE), $nomterrn[$bout[0]]);
}
$template->assign('file', $file);
?>

View file

@ -93,7 +93,7 @@ if (isset($_GET['b']) && is_numeric($_GET['b']) && $_GET['b'] < count($batiment)
eval($batimentCALC[$t][1]);
eval($batimentCALC[$t][2]);
eval($batimentCALC[$t][3]);
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec)));
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE)));
$template->assign('etat', readDeblok($batimentTECH[$t], $planete));
}
@ -111,7 +111,7 @@ elseif (isset($_GET['t']) && is_numeric($_GET['t']) && $_GET['t'] < count($techn
eval($technoloCALC[$t][1]);
eval($technoloCALC[$t][2]);
eval($technoloCALC[$t][3]);
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec)));
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE)));
$template->assign('etat', readDeblok($technoloTECH[$t], $planete));
}
@ -126,7 +126,7 @@ elseif (isset($_GET['v']) && is_numeric($_GET['v']) && $_GET['v'] < count($nomva
$n = $planete->vaisseaux[$t] + 1;
$a = $nomvaisnCALC[$t][0]; $b = $nomvaisnCALC[$t][1]; $c = $nomvaisnCALC[$t][2]; $sec = 0;
eval($nomvaisnCALC[$t][3]);
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec)));
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE)));
$template->assign('etat', readDeblok($nomvaisnTECH[$t], $planete));
$template->assign('caract', array($nomvais_at[$t], $nomvais_bc[$t], $nomvais_pv[$t], $nomvais_rs[$t]));
@ -142,7 +142,7 @@ elseif (isset($_GET['d']) && is_numeric($_GET['d']) && $_GET['d'] < count($nomte
$n = $planete->terrestres[$t] + 1;
$a = $nomterrnCALC[$t][0]; $b = $nomterrnCALC[$t][1]; $c = $nomterrnCALC[$t][2]; $sec = 0;
eval($nomterrnCALC[$t][3]);
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec)));
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE)));
$template->assign('etat', readDeblok($nomterrnTECH[$t], $planete));
if ($t-8 >= 0) {
@ -161,7 +161,7 @@ elseif (isset($_GET['c']) && is_numeric($_GET['c']) && $_GET['c'] < count($caser
$n = $planete->casernes[$t] + 1;
$a = $casernenCALC[$t][0]; $b = $casernenCALC[$t][1]; $c = $casernenCALC[$t][2]; $sec = 0;
eval($casernenCALC[$t][3]);
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec)));
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE)));
$template->assign('etat', readDeblok($casernenTECH[$t], $planete));
if ($t-8 >= 0) {

View file

@ -6,33 +6,31 @@ $a = gpc('a');
$amas = gpc('amas', 'post');
$ss = gpc('ss', 'post');
$pos = gpc('pos', 'post');
if (!empty($a)) {
$fav = explode(';', $queryUser['destinationsFavoris']);
$cntfav = count($fav);
//Suppression d'une destination rapide
if (!empty($a)) {
$d = gpc('d');
if (!empty($d) && $a == md5(date('AG').'@'.$d)) {
for($i = 0; $i < $cntfav; $i++){
if ($fav[$i] == $d) unset($fav[$i]);
}
$queryUser['destinationsFavoris'] = implode(';', $fav);
$f = array_keys($planete->destinationsFavoris, $d);
unset($planete->destinationsFavoris[$f[0]]);
$bdd->connexion();
$bdd->query("UPDATE $table_user SET destinationsFavoris = '".$queryUser['destinationsFavoris']."' WHERE id = $id_user;");
$bdd->query("UPDATE $table_user SET destinationsFavoris = '".serialize($planete->destinationsFavoris)."' WHERE id = $id_user;");
$bdd->deconnexion();
}
header('Location: ./?p=destinationsrapides');
header('Location: ?p=destinationsrapides');
exit;
}
//Ajout d'une destination rapide
elseif (!empty($amas) && !empty($ss) && !empty($pos)) {
$bdd->connexion();
$plan = $bdd->unique_query("SELECT id FROM $table_planete WHERE galaxie = $amas AND ss = $ss AND position = $pos;");
if ($plan) {
if (in_array($plan['id'], explode(';', $queryUser['destinationsFavoris']))) {
if (in_array($plan['id'], $planete->destinationsFavoris)) {
$bdd->deconnexion();
erreur('Cette planète est déjà dans vos destinations rapides.', "red", '?p=destinationsrapides');
}
$queryUser['destinationsFavoris'] .= ";".$plan['id'];
$bdd->query("UPDATE $table_user SET destinationsFavoris = '".$queryUser['destinationsFavoris']."' WHERE id = $id_user;");
$planete->destinationsFavoris[] = $plan['id'];
$bdd->query("UPDATE $table_user SET destinationsFavoris = '".serialize($planete->destinationsFavoris)."' WHERE id = $id_user;");
}
else {
$bdd->deconnexion();
@ -40,20 +38,19 @@ elseif (!empty($amas) && !empty($ss) && !empty($pos)) {
}
$bdd->deconnexion();
header('Location: ./?p=destinationsrapides');
header('Location: ?p=destinationsrapides');
exit;
}
//Affichage de la liste des destinations rapides
else {
$page = 'destinsrapid';
$fav = explode(';', $queryUser['destinationsFavoris']);
$cntfav = count($fav);
$destins = array();
$bdd->connexion();
for($i = 0; $i < $cntfav; $i++){
$res = $bdd->unique_query("SELECT nom_planete, galaxie, ss, position FROM $table_planete WHERE id = ".$fav[$i].";");
foreach($planete->destinationsFavoris as $fav){
$res = $bdd->unique_query("SELECT nom_planete, galaxie, ss, position FROM $table_planete WHERE id = ".$fav.";");
if ($res != false) {
$destins[] = array($fav[$i], $res['nom_planete'], '['.$res['galaxie'].':'.$res['ss'].':'.$res['position'].']', md5(date('AG').'@'.$fav[$i]));
$destins[] = array($fav, $res['nom_planete'], '['.$res['galaxie'].':'.$res['ss'].':'.$res['position'].']', md5(date('AG').'@'.$fav));
}
}
$bdd->deconnexion();

View file

@ -10,13 +10,15 @@ if (!empty($_POST['objet']) && !empty($_POST['nom']) && !empty($_POST['message']
$time = time();
$message = htmlspecialchars(gpc('message', 'post'));
$objet = htmlspecialchars(gpc('objet', 'post'));
if (strlen($message) > 9999) erreur('Le contenu de votre message est trop long. Limite : 9 999 caractères.');
$bdd->connexion();
$bdd->escape($message);
$bdd->escape($objet);
$bdd->escape($pseudo);
for($i = 0; $i < $nbutil; $i++){
$util = trim(htmlentities($utils[$i]));
$util = trim($utils[$i]);
if (empty($util)) continue;
$bdd->escape($util);
if ($env = $bdd->unique_query("SELECT id, pseudo, mail, envoyerMail FROM $table_user WHERE pseudo = '$util';")) {
@ -25,29 +27,27 @@ if (!empty($_POST['objet']) && !empty($_POST['nom']) && !empty($_POST['message']
}
else {
$bdd->deconnexion();
erreur('Impossible de trouver l\'un des destinataire du message : '.$util, "red", '?p=envoyer');
erreur('Impossible de trouver l\'un des destinataire du message : '.htmlentities($util), "red", '?p=envoyer');
}
}
$bdd->deconnexion();
erreur('Votre message a été envoyé avec succès.', "green", '?p=messagerie');
}
$ami = explode(';', $queryUser['amis']);
$cntami = count($ami);
$amis = array();
$amisn = array();
$bdd->connexion();
for($i = 0; $i < $cntami; $i++){
$res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$ami[$i].";");
foreach($planete->amis as $ami) {
$res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$ami.";");
if ($res != false) {
$amis[] = $res['pseudo'];
$amisn[] = $ami[$i];
$amisn[] = $ami;
}
}
$bdd->deconnexion();
$template->assign('amis', $amis);
$template->assign('amisn', $amisn);
if (isset($_GET['d'])) $template->assign('destinataire', htmlentities(gpc('d')));
if (isset($_GET['o'])) $template->assign('objet', htmlentities(gpc('o')));
if (isset($_GET['d'])) $template->assign('destinataire', gpc('d'));
if (isset($_GET['o'])) $template->assign('objet', gpc('o'));
?>

View file

@ -3,16 +3,16 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
$titre = 'Flottes';
if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']) && !empty($_POST['ss']) && !empty($_POST['pos']) && !empty($_POST['vitesse']) && isset($_POST['mission']) && isset($_POST['metal']) && isset($_POST['cristal']) && isset($_POST['hydrogene'])) {
$end_galaxie = floor($_POST['amas']);
$end_ss = floor($_POST['ss']);
$end_pos = floor($_POST['pos']);
$mission = floor($_POST['mission']);
if (isset($_POST['tactique'])) $tactique = floor($_POST['tactique']);
$end_galaxie = floor(gpc('amas', 'post'));
$end_ss = floor(gpc('ss', 'post'));
$end_pos = floor(gpc('pos', 'post'));
$mission = floor(gpc('mission', 'post'));
if (isset($_POST['tactique'])) $tactique = floor(gpc('tactique', 'post'));
else $tactique = 0;
$EBmetal = floor($_POST['metal']);
$EBcristal = floor($_POST['cristal']);
$EBhydrogene = floor($_POST['hydrogene']);
$vitesse = floor($_POST['vitesse'])/100;
$EBmetal = floor(gpc('metal', 'post'));
$EBcristal = floor(gpc('cristal', 'post'));
$EBhydrogene = floor(gpc('hydrogene', 'post'));
$vitesse = floor(gpc('vitesse', 'post'))/100;
$bdd->connexion();
$bdd->escape($end_galaxie);
@ -24,36 +24,35 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
$bdd->escape($EBcristal);
$bdd->escape($EBhydrogene);
$bdd->escape($vitesse);
$resultat = $bdd->query("SELECT id FROM $table_flottes WHERE id_user = '$id_user'");
$nbr = $bdd->num_rows;
$resultat = $bdd->unique_query("SELECT COUNT(id) AS cnt FROM $table_flottes WHERE id_user = '$id_user'");
$bdd->deconnexion();
$nbr = $resultat['cnt'];
//Vérification du code anti-bots
if ($_POST['cds'] != $sess->values['flcds']) erreur('Impossible d\'authentifier l\'envoie de la flotte.<br />Si le problème perciste, <a href="mailto:technique@halo-battle.s-fr.com">contactez un administrateur</a>.', "red", '?p=flotte', 4000);
/*if (!isset($sess->values['flcds']) || gpc('cds', 'post') != $sess->values['flcds']) erreur('Impossible d\'authentifier l\'envoie de la flotte.<br />Si le problème perciste, <a href="mailto:technique@halo-battle.s-fr.com">contactez un administrateur</a>.', "red", '?p=flotte', 4000);
//Si la mission est d'attaquer, on vérifie que les attaques ne soient pas désactivées
elseif ($mission == 1 && !ATTAQUES) erreur('Les attaques sont désactivées pour le moment. Pour plus d\'informations, <a href="http://halo-battle.s-fr.com/forum/">consultez le forum</a>.', "red", '?p=flotte', 5000);
else*/if ($mission == 3 && !ATTAQUES) erreur('Les attaques sont désactivées pour le moment. Pour plus d\'informations, <a href="http://halo-battle.s-fr.com/forum/">consultez le forum</a>.', "red", '?p=flotte', 5000);
//Vérification que la destination ne soit pas en dehors de la galaxie
elseif ($end_galaxie > MAX_AMAS || $end_ss > MAX_SYSTEME || $end_pos > MAX_PLANETE || $end_galaxie < 0 || $end_ss < 1 || $end_pos < 1 || ($end_galaxie < 1 && $sess->values['auth_level'] < 6)) erreur('La destination de la flotte n\'est pas correcte.', "red", '?p=flotte');
elseif ($end_galaxie > MAX_AMAS || $end_ss > MAX_SYSTEME || $end_pos > MAX_PLANETE || $end_galaxie < 0 || $end_ss < 1 || $end_pos < 1 || ($end_galaxie < 1 && $sess->level < 6)) erreur('La destination de la flotte n\'est pas correcte.', "red", '?p=flotte');
//Vérification que le nombre de slots ne soit pas dépassé
elseif ($nbr > $queryUser['informatique']) erreur('Vous n\'avez pas assez de slots disponibles.', "red", '?p=flotte');
elseif ($nbr > ceil(count($queryPlanetes)/2 + 1)) erreur('Vous n\'avez pas assez de slots disponibles.', "red", '?p=flotte');
//On vérifie la mission
elseif ($mission < 0 || $mission > 5) erreur('Mission incorrecte !', "red", '?p=flotte');
//Si la mission est d'attaquer, on vérifie la tactique
elseif ($mission == 1 && $tactique > $queryUser['tactique']) erreur('Vous ne connaissez pas cette tactique de combat !', "red", '?p=flotte');
elseif ($mission == 3 && !(($tactique == 1 && $planete->technologies[3] & 4096) || ($tactique == 2 && $planete->technologies[3] & 8192) || ($tactique == 3 && $planete->technologies[3] & 16384) || $tactique == 0)) erreur('Vous ne connaissez pas cette tactique de combat !', "red", '?p=flotte');
//On vérifie la mission, si elle est d'espionner, il faut qu'il y ait des sondes
elseif ($mission == 5 && (!isset($sess->values['vais'][4]) || $sess->values['vais'][4] < 0)) erreur('Vous ne pouvez pas espionner sans sonde d\'espionnage !', "red", '?p=flotte');
elseif ($mission == 5 && $sess->values['vais'][6] <= 0 && $sess->values['vais'][13] <= 0) erreur('Vous ne pouvez pas espionner sans sonde d\'espionnage !', "red", '?p=flotte');
//On vérifie la mission, si elle est de coloniser, il faut qu'il y ait des vaisseaux de colonisation
elseif ($mission == 3 && (!isset($sess->values['vais'][3]) || $sess->values['vais'][3] < 0)) erreur('Vous ne pouvez pas coloniser sans vaisseau de colonisation !', "red", '?p=flotte');
elseif ($mission == 2 && $sess->values['vais'][2] <= 0) erreur('Vous ne pouvez pas coloniser sans vaisseau de colonisation !', "red", '?p=flotte');
//On vérifie la mission, si elle est de recycler, il faut qu'il y ait des reclycleurs
elseif ($mission == 4 && (!isset($sess->values['vais'][5]) || $sess->values['vais'][5] < 0)) erreur('Vous ne pouvez pas recycler sans recycleur !', "red", '?p=flotte');
elseif ($mission == 4 && $sess->values['vais'][3] <= 0) erreur('Vous ne pouvez pas recycler sans recycleur !', "red", '?p=flotte');
//On vérifie que l'on possède assez de ressources
elseif ((!empty($EBmetal) && !$EBmetal > $queryPlanete['metal']) || (!empty($EBcristal) && !$EBcristal > $queryPlanete['cristal']) || (!empty($EBhydrogene) && !$EBhydrogene > $queryPlanete['hydrogene'])) erreur('Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.', "red", '?p=flotte');
//On vérifie que l'on n'envoie pas des ressources négatives
elseif ((!empty($EBmetal) && $EBmetal < 0) || (!empty($EBcristal) && $EBcristal < 0) || (!empty($EBhydrogene) && $EBhydrogene < 0)) erreur('Vous avez spécifié des valeurs de ressources à embarquer incorrectes !', "red", '?p=flotte', 4000);
//On vérifie la vitesse du vaisseau
elseif (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 100) erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte');
elseif (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 1) erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte');
else {
$resultat = $bdd->unique_query("SELECT * FROM $table_planete WHERE galaxie = '$end_galaxie' AND ss = '$end_ss' AND position = '$end_pos';");
//On vérifie qu'il n'y ait pas une interaction entre deux multi-comptes
$cnt = count($multi);
if ($cnt > 1 && $mission == 2) {
@ -62,12 +61,18 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
}
}
$bdd->connexion();
$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();
//Si la mission est d'attaquer, on vérifie que le joueur cible ne soit pas ne mode vacances
if ($mission == 1) {
if ($mission == 3) {
//Récupération de l'ID du joueur cible
$rech_user = $resultat['id_user'];
$resultatu = $bdd->unique_query("SELECT * FROM $table_user WHERE id = '$rech_user';");
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);
$bdd->connexion();
$resultatu = $bdd->unique_query("SELECT mv, time_inscription FROM $table_user WHERE id = '$rech_user';");
$bdd->deconnexion();
if ($resultatu['mv'] > 0) erreur('Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.', "red", '?p=flotte', 3000); //TODO Mettre le numéro du mode vacances et non > 0 !!!
elseif ($resultatu['time_inscription'] + 604800 > time()) 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) erreur('La planète que vous tentez d\'attaquer est inhabitée.', "red", '?p=flotte');
elseif ($resultat['id_user'] == $id_user) erreur('La planète que vous tentez d\'attaquer vous appartient.', "red", '?p=flotte');
@ -82,63 +87,45 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
}
//Création de la flotte
$req = '';
$reqb = '';
$reqPlan = '';
$nbVais = '';
$nbI = count($nomvaisa);
for ($i=1 ; $i<=$nbI ; $i++) {
if (!empty($sess->values['vais'][$i])) {
if ($sess->values['vais'][$i] > $queryPlanete['vaisseau_'.$i]) erreur('Vous avez envoyé plus de vaisseaux que vous n\'en posséder sur cette planète.', "red", '?p=flotte');
$req = array();
$reqPlan = array();
$nbVais = 0;
foreach ($sess->values['vais'] as $key => $vaisseau){
if ($vaisseau > 0) {
if ($vaisseau > $planete->vaisseaux[$key]) erreur('Vous avez envoyé plus de vaisseaux que vous n\'en posséder sur cette planète.', "red", '?p=flotte');
else {
$req .= "'".$sess->values['vais'][$i]."', ";
$reqb .= "vaisseau_$i, ";
if (!empty($reqPlan)) $reqPlan .= ', ';
$reqPlan .= "vaisseau_$i = vaisseau_$i - '".$sess->values['vais'][$i]."'";
$nbVais += $sess->values['vais'][$i];
$req[] = $nomvaisnVAR[$key].' = '.$vaisseau;
$reqPlan[] = $nomvaisnVAR[$key].' = '.$nomvaisnVAR[$key].' - '.$vaisseau;
$nbVais += $vaisseau;
}
}
}
if ($nbVais <= 0) erreur('Vous devez envoyer au moins un vaisseau pour former une flotte !', "red", '?p=flotte');
elseif ($sess->values['flnbvais'] != $nbVais) erreur('Une erreur est survenue lors de la création de la flotte :<br /><br /><i>Calcul du nombre de vaisseaux incorrect !</i><br /><br />Si le problème perciste, <a href="mailto:'.$config['mailadmin'].'">contactez un administrateur</a>.', "red", '?p=flotte', 4500);
else {
//Envoie de la flotte
$nom = $_POST['nomflotte'];
$bdd->escape($nom);
$flotte = new flotte();
$start_time = time();
$start_galaxie = $queryPlanete['galaxie'];
$start_ss = $queryPlanete['ss'];
$start_pos = $queryPlanete['position'];
$flotte->nom = gpc('nomflotte', 'post');
$flotte->mission = $mission;
$flotte->start_planete = $planete;
$flotte->start_time = time();
$flotte->end_planete = $resultat['id'];
$calc = $flotte->calc_deplacement($planete->galaxie, $planete->ss, $planete->position, $end_galaxie, $end_ss, $end_pos, $vitesse);
$flotte->end_time = $calc[0];
$conso = $calc[1];
$end_time = vais_tempsDeplacement($start_galaxie, $start_ss, $start_pos, $end_galaxie, $end_ss, $end_pos, $sess->values['flvitesse'], $vitesse, $sess->values['flpreparation'], $sess->values['flchauffe']);
if ($end_time <= 0) {
$end_time = 454;
}
//On double la consomation si on fait un aller-retour
if ($mission == 1 || $mission == 3 || $mission == 4 || $mission == 5) $conso *= 2;
//On vérifie qu'il y a assez de place dans les cales des vaisseaux avant l'envoie
$conso = vais_conso($end_time, $nbVais)*$vitesse/45*2;
$contenu_metal = $_POST['metal']; $bdd->escape($contenu_metal); $plan_metal = $queryPlanete['metal'] - $contenu_metal;
$contenu_cristal = $_POST['cristal']; $bdd->escape($contenu_cristal); $plan_cristal = $queryPlanete['cristal'] - $contenu_cristal;
$contenu_hydrogene = $_POST['hydrogene']; $bdd->escape($contenu_hydrogene); $plan_hydrogene = $queryPlanete['hydrogene'] - $contenu_hydrogene - $conso;
$contenu_max = $sess->values['flcontenu'];
if ($contenu_metal + $contenu_cristal + $contenu_hydrogene + $conso > $contenu_max && $contenu_metal + $contenu_cristal + $contenu_hydrogene != 0) erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent.', "red", '?p=flotte', 3500);
elseif ($plan_metal < 0 || $plan_cristal < 0 || $plan_hydrogene < 0) erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500);
//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
$flotte->calculer();
if ($flotte->contenuMax < ceil(gpc('metal', 'post')) + ceil(gpc('cristal', 'post')) + ceil(gpc('hydrogene', 'post')) + $conso) erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent.', "red", '?p=flotte', 3500);
elseif ($planete->metal < ceil(gpc('metal', 'post')) || $planete->cristal < ceil(gpc('cristal', 'post')) || $planete->hydrogene < ceil(gpc('hydrogene', 'post')) + $conso) erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500);
else {
if ($mission == 1) {
$tactiqueAT = $_POST['tactique'];
$bdd->escape($tactiqueAT);
$tactiqueEN = $resultatu['tactique'];
$bdd->escape($tactiqueEN);
}
else {
$tactiqueAT = 0;
$tactiqueEN = 0;
}
$bdd->query("INSERT INTO $table_flottes (id_user, mission, start_time, start_galaxie, start_ss, start_position, end_time, end_galaxie, end_ss, end_position, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, contenu_max, nb_vais, $reqb tactiqueAT, tactiqueEN, nom) VALUES ($id_user, '$mission', '$start_time', '$start_galaxie', '$start_ss', '$start_pos', '$end_time', '$end_galaxie', '$end_ss', '$end_pos', '$vitesse', '$contenu_metal', '$contenu_cristal', '$contenu_hydrogene', '$contenu_max', '$nbVais', $req'$tactiqueAT', '$tactiqueEN', '$nom');");
$bdd->query("UPDATE $table_planete SET $reqPlan, metal = '$plan_metal', cristal = '$plan_cristal', hydrogene = '$plan_hydrogene' WHERE id = '$idPlan' LIMIT 1 ;");
$bdd->deconnexion();
if ($mission == 1) $flotte->tactique = gpc('tactique', 'post');
$flotte->contenu = array(ceil(gpc('metal', 'post')), ceil(gpc('cristal', 'post')), ceil(gpc('hydrogene', 'post')));
unset($sess->values['vais']);
$sess->put();
@ -148,227 +135,119 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
}
}
}
elseif (!empty($_POST['v1']) || !empty($_POST['v2']) || !empty($_POST['v3']) || !empty($_POST['v4']) || !empty($_POST['v5']) || !empty($_POST['v6']) || !empty($_POST['v7']) || !empty($_POST['v8']) || !empty($_POST['v9']) || !empty($_POST['v10']) || !empty($_POST['v11']) || !empty($_POST['v12'])) {
elseif (!empty($_POST['v0']) || !empty($_POST['v1']) || !empty($_POST['v2']) || !empty($_POST['v3']) || !empty($_POST['v4']) || !empty($_POST['v5']) || !empty($_POST['v6']) || !empty($_POST['v7']) || !empty($_POST['v8']) || !empty($_POST['v9']) || !empty($_POST['v10']) || !empty($_POST['v11']) || !empty($_POST['v12']) || !empty($_POST['v13'])) {
$nombreVaisseau = 0;
for ($i=1 ; $i<=12 ; $i++) {
if (!isset($_POST['v'.$i]) || !is_numeric($_POST['v'.$i]) || $_POST['v'.$i] != abs(floor($_POST['v'.$i]))) $_POST['v'.$i] = 0;
if ($_POST['v'.$i] >= 0 && $i != 11) {
$sess->values['vais'][$i] = $_POST['v'.$i];
$nombreVaisseau += $_POST['v'.$i];
//Si on indique un nombre de vaisseaux supérieur au nombre présent sur la planète
if ($_POST['v'.$i] > $queryPlanete['vaisseau_'.$i]) erreur('Il ne vous reste plus assez de vaisseaux !', "red", '?p=flotte');
}
}
$sess->values['flnbvais'] = $nombreVaisseau;
$sess->values['forceFlotte'] = false;
foreach ($planete->vaisseaux as $key => $vaisseau){
$v = gpc('v'.$key, 'post');
if (!is_numeric($v)) $v = 0;
else $v = (int)abs($v);
if ($vaisseau < $v) {
erreur('Il ne vous reste plus assez de vaisseaux !', "red", '?p=flotte');
}
$sess->values['vais'][$key] = $v;
$nombreVaisseau += $v;
}
//On vérifie que l'utilisateur a bien envoyé plus d'un vaisseau
if ($nombreVaisseau <= 0) erreur('Vous devez envoyer au moins un vaisseau.', "red", '?p=flotte');
//On ajoute des missions supplémentaire suivant les vaisseaux envoyés
$lvltactique = $queryUser['tactique'];
$actionsupp = '';
if ($lvltactique >= 1) $actionsupp .= '<option value="1" selected="selected">Attaquer</option>';
if ($_POST['v3'] >= 1) $actionsupp .= '<option value="3" selected="selected">Coloniser</option>';
if ($_POST['v5'] >= 1) $actionsupp .= '<option value="4" selected="selected">Recycler</option>';
if ($_POST['v4'] >= 1) $actionsupp .= '<option value="5" selected="selected">Espionner</option>';
$template->assign('actionsupp', $actionsupp);
//On enregistre les paramètres en session
$sess->values['flnbvais'] = $nombreVaisseau;
$sess->values['forceFlotte'] = false;
// Définition des paramètres de la flotte
$AvaisType = array(); $AvaisVitesseC = array(); $AvaisVitesseL = array(); $AvaisPrepC = array(); $AvaisPrepL = array(); $AvaisChauffe = array(); $AvaisContenu = 0;
for ($i=1 ; $i<=12 ; $i++) {
$AvaisType[] = $i;
$AvaisVitesseC[] = $nomvais_dc[$i-1];
$AvaisVitesseL[] = $nomvais_dl[$i-1];
$AvaisContenu += $nomvais_rs[$i-1] * $_POST['v'.$i];
$AvaisPrepC[] = $nomvais_pdc[$i-1].' ';
$AvaisPrepL[] = $nomvais_pdl[$i-1].' ';
$AvaisChauffe[] = $nomvais_cdl[$i-1].' ';
}
if(min($AvaisVitesseL) != 0) {
$sess->values['flvitesse'] = max($AvaisVitesseL);
$sess->values['flpreparation'] = max($AvaisPrepL);
$sess->values['flchauffe'] = max($AvaisChauffe);
}
else {
$sess->values['flvitesse'] = max($AvaisVitesseC);
$sess->values['flpreparation'] = max($AvaisPrepC);
$sess->values['flchauffe'] = 0;
}
$sess->values['fltime'] = time();
$sess->values['flcontenu'] = $AvaisContenu;
//Génération de la liste de mission possible avec les vaisseaux de la flotte
$missions = array('Stationner');
if ($planete->technologies[0] & 8) $missions[1] = "Transporter";
if ($sess->values['vais'][2]) $missions[2] = "Coloniser";
if ($planete->technologies[7] & 16) $missions[3] = "Attaquer";
if ($sess->values['vais'][3]) $missions[4] = "Recycler";
if ($sess->values['vais'][3] || $sess->values['vais'][3]) $missions[5] = "Espionner";
$template->assign('missions', $missions);
//On enregistre les modification de la session
$sess->values['fltime'] = time();
$sess->put();
$page = 'flotte2';
$template->assign('scripth', '<script src="js/prototype.js" type="text/javascript"></script>');
$template->assign('script', '<script type="text/javascript">document.getElementById(\'nom\').focus();</script><script src="js/flotte.js" type="text/javascript"></script>');
$fav = explode(';', $queryUser['destinationsFavoris']);
$cntfav = count($fav);
$favoris = array();
$favorisn = array();
$bdd->connexion();
for($i = 0; $i < $cntfav; $i++){
$res = $bdd->unique_query("SELECT nom_planete, galaxie, ss, position FROM $table_planete WHERE id = ".$fav[$i].";");
if ($res != false) {
if (!empty($res['nom_planete'])) $favoris[] = $res['nom_planete'];
else $favoris[] = '['.$res['galaxie'].':'.$res['ss'].':'.$res['position'].']';
$favorisn[] = $fav[$i];
}
}
$bdd->deconnexion();
$template->assign('favoris', $favoris);
$template->assign('favorisn', $favorisn);
$favorisC = array();
$favorisnC = array();
$cntfav = count($queryPlanetes);
for($i = 0; $i < $cntfav; $i++){
if (!empty($queryPlanetes[$i]['nom_planete'])) $favorisC[] = $queryPlanetes[$i]['nom_planete'];
else $favorisC[] = '['.$queryPlanetes[$i]['galaxie'].':'.$queryPlanetes[$i]['ss'].':'.$queryPlanetes[$i]['position'].']';
$favorisnC[] = $queryPlanetes[$i]['id'];
}
$template->assign('favorisColonies', $favorisC);
$template->assign('favorisnColonies', $favorisnC);
}
elseif (!empty($_GET['n'])) {
$idN = ceil($_GET['n']);
$bdd->connexion();
$bdd->escape($idN);
$resultat = $bdd->unique_query("SELECT * FROM $table_flottes WHERE id_user = '$id_user' AND id = '$idN'");
if (isset($_GET['a']) && isset($sess->values['ret_fleet']) && $_GET['a'] == $sess->values['ret_fleet']) {
//Calcul du temps passé depuis le lancement de la flotte
$tpsDD = time() - $resultat['start_time'];
if ($resultat['mission'] == '6') erreur('Votre flotte est déjà en train de revenir !', 'red', '?p=flotte&n='.$idN, 1500);
elseif ($resultat['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 = '$id_user' AND id = '$idN';");
header('Location: ?p=flotte&n='.$idN);
exit;
}
else erreur('Impossible d\'annuler la mission, elle a déjà commencée.', "red", '?p=flotte&n='.$idN, 1500);
}
$page = 'flotten';
if ($bdd->num_rows <= 0) erreur('Impossible de trouver cette flotte !', "red", '?p=flotte', 1500);
else {
$attaque = gpc('attaque', 'post');
$nom = gpc('nomflotte', 'post');
if (!empty($nom)) {
$bdd->escape($nom);
$bdd->unique_query("UPDATE $table_flottes SET nom = '$nom' WHERE id_user = $id_user AND id = '$idN' LIMIT 1;");
$resultat['nom'] = $nom;
}
if (!empty($attaque) && is_numeric($attaque)) {
if ($attaque <= $queryUser['tactique']) {
$bdd->escape($attaque);
$bdd->query("UPDATE $table_flottes SET tactiqueAT = $attaque WHERE id_user = $id_user AND id = '$idN';");
$bdd->deconnexion();
erreur('Tactique mise à jour avec succès.', 'green', '?p=flotte&n='.$idN, 1100);
}
else erreur('Veuillez sélectionner les tactiques dans la liste !', 'red', '?p=flotte&n='.$idN);
}
$bdd->deconnexion();
$resultat['contenu_metalF'] = separerNombres($resultat['contenu_metal']);
$resultat['contenu_cristalF'] = separerNombres($resultat['contenu_cristal']);
$resultat['contenu_hydrogeneF'] = separerNombres($resultat['contenu_hydrogene']);
$resultat['contenu_maxF'] = separerNombres($resultat['contenu_max']);
$resultat['missionF'] = txtmission($resultat['mission']);
$resultat['tactiqueAtDef'] = txtTactique($queryUser['combatAT_tactique']);
$resultat['tactiqueF'] = txtTactique($resultat['tactiqueAT']);
$resultat['end_timeT'] = $resultat['start_time'] + $resultat['end_time'];
$sess->values['ret_fleet'] = sha1('HB.fleet_'.rand().'☺ß☻');
$sess->put();
$template->assign('ret_fleet', $sess->values['ret_fleet']);
$template->assign('flotte', $resultat);
$template->assign('nomvais', $nomvaisa);
$template->assign('n', $idN);
$tactiques = array();
$tactiquesn = array();
$attaqueT = 0;
for($i=1 ; $i<=$queryUser['tactique'] ; $i++) {
if ($i == $resultat['tactiqueAT']) $attaqueT = $i;
$tactiques[] = txtTactique($i);
$tactiquesn[] = $i;
}
$template->assign('tactiques', $tactiques);
$template->assign('tactiquesn', $tactiquesn);
$template->assign('attselect', $attaqueT);
}
//TODO Ajouter les destinations favorites + Colonies
}
//Affichage de la page générale
else {
//Mise à jour des tactiques par défaut
$attaque = gpc('attaque', 'post');
$defense = gpc('defense', 'post');
if (!empty($attaque) && !empty($defense) && is_numeric($attaque) && is_numeric($defense)) {
if ($attaque <= $queryUser['tactique'] && $defense <= $queryUser['tactique']) {
$bdd->connexion();
$bdd->escape($attaque);
$bdd->escape($defense);
$bdd->query("UPDATE $table_user SET combatAT_tactique = $attaque, combatDE_tactique = $defense WHERE id = '$id_user';");
$bdd->deconnexion();
erreur('Tactiques mises à jour avec succès.', 'green', '?p=flotte', 1100);
if (is_numeric($attaque) && is_numeric($defense)) {
$chang = false;
if (($attaque != $planete->combatAT_tactique) && (($attaque == 1 && $planete->technologies[3] & 4096) || ($attaque == 2 && $planete->technologies[3] & 8192) || ($attaque == 3 && $planete->technologies[3] & 16384) || $attaque == 0)) {
$planete->combatAT_tactique = $attaque;
if (!in_array('combatAT_tactique', $planete->modifUser)) $planete->modifUser[] = 'combatAT_tactique';
$chang = true;
}
else erreur('Veuillez sélectionner les tactiques dans la liste !', 'red', '?p=flotte');
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;
if (!in_array('combatDE_tactique', $planete->modifUser)) $planete->modifUser[] = 'combatDE_tactique';
$chang = true;
}
if ($chang) erreur('Tactiques mises à jour avec succès.', 'green', '?p=flotte', 1100);
}
$page = 'flotte1';
//Affichage des flottes en cours dans la galaxie
$bdd->connexion();
$resultat = $bdd->query("SELECT * FROM $table_flottes WHERE id_user = '$id_user';");
$flottes = $bdd->query("SELECT * FROM $table_flottes WHERE id_user = '$id_user';");
$bdd->deconnexion();
$nbr = $bdd->num_rows;
$TEMP_flottesEC = array();
for ($i=0 ; $i<$nbr ; $i++) {
if ($resultat[$i]['mission'] != 1 && ($resultat[$i]['mission'] != 3 || $resultat[$i]['effectue'] == '1' || $resultat[$i]['nb_vais'] >= 1) && $resultat[$i]['mission'] != 0) {
$retour = $resultat[$i]['start_galaxie'].':'.$resultat[$i]['start_ss'].':'.$resultat[$i]['start_position'];
$Hretour = date('d/m H:i:s',$resultat[$i]['start_time']+2*$resultat[$i]['end_time']);
if ($flottes) {
foreach ($flottes as $flotte){
if ($flotte['mission'] != 1 && ($flotte['mission'] != 3 || $flotte['effectue'] == '1' || $flotte['nb_vais'] >= 1) && $flotte['mission'] != 0) {
$retour = $flotte['start_galaxie'].':'.$flotte['start_ss'].':'.$flotte['start_position'];
$Hretour = date('d/m H:i:s',$flotte['start_time']+2*$flotte['end_time']);
}
elseif ($flotte['mission'] == 1) {
$retour = $flotte['start_galaxie'].':'.$flotte['start_ss'].':'.$flotte['start_position'];
if (empty($flotte['ret_time'])) $Hretour = '-';
else $Hretour = date('d/m H:i:s',$flotte['ret_time']+$flotte['end_time']);
}
else {
$retour = '-';
$Hretour = '-';
}
$TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], $flotte['end_galaxie'].':'.$flotte['end_ss'].':'.$flotte['end_position'], date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour);
}
elseif ($resultat[$i]['mission'] == 1) {
$retour = $resultat[$i]['start_galaxie'].':'.$resultat[$i]['start_ss'].':'.$resultat[$i]['start_position'];
if (empty($resultat[$i]['ret_time'])) $Hretour = '-';
else $Hretour = date('d/m H:i:s',$resultat[$i]['ret_time']+$resultat[$i]['end_time']);
}
else {
$retour = '-';
$Hretour = '-';
}
$TEMP_flottesEC[] = array($resultat[$i]['id'], $resultat[$i]['nom'], txtmission($resultat[$i]['mission']), $resultat[$i]['nb_vais'], $resultat[$i]['end_galaxie'].':'.$resultat[$i]['end_ss'].':'.$resultat[$i]['end_position'], date('d/m H:i:s',$resultat[$i]['start_time']+$resultat[$i]['end_time']), $retour, $Hretour);
}
$template->assign('flottesEC', $TEMP_flottesEC);
//Affichage des vaisseaux disponible à l'envoie
$TEMP_vaisseaux = array();
$j=0;
for ($i=1 ; $i<=12 ; $i++) {
if ($queryPlanete['vaisseau_'.$i] > 0 && $i != 11) {
$j++;
$TEMP_vaisseaux[] = array($nomvaisn[$i-1], separerNombres($queryPlanete['vaisseau_'.$i]), $queryPlanete['vaisseau_'.$i], $i);
}
foreach ($planete->vaisseaux as $key => $vaisseau){
//On affiche uniquement les vaisseaux que l'on possède hormis la station spatiale
if ($vaisseau > 0) $TEMP_vaisseaux[] = array($nomvaisn[$key], separerNombres($vaisseau), $vaisseau, $key);
}
$template->assign('vaisseaux', $TEMP_vaisseaux);
$trez = $queryUser["informatique"] + 1;
if ($nbr < $trez) $template->assign('action', '<input class="submit" type="submit" value="OK" />');
else $template->assign('action', '<span class="lack">Nombre de flottes maximum simultanées atteint</span>');
//Calcul du nombre de slot disponible et vérouillage de l'envoie si besoin
if ($nbr <= ceil(count($queryPlanetes)/2 + 1)) $template->assign('action', '<input class="submit" type="submit" value="OK" />');
else $template->assign('action', '<span class="lack">Nombre de flottes maximum simultanées atteint</span>');
$template->assign('nbflotte', $nbr);
$template->assign('nbflottemax', $trez);
$template->assign('nbflottemax', ceil(count($queryPlanetes)/2 + 1));
//Modification des tactiques
$tactiques = array();
$tactiquesn = array();
$tactiques = array('1');
$attaqueT = 0;
$defenseT = 0;
for($i=1 ; $i<=$queryUser['tactique'] ; $i++) {
if ($i == $queryUser['combatAT_tactique']) $attaqueT = $i;
if ($i == $queryUser['combatDE_tactique']) $defenseT = $i;
$tactiques[] = txtTactique($i);
$tactiquesn[] = $i;
}
if ($planete->technologies[3] & 4096) $tactiques[] = '2';
if ($planete->technologies[3] & 8192) $tactiques[] = '3';
if ($planete->technologies[3] & 16384) $tactiques[] = '4';
$template->assign('tactiques', $tactiques);
$template->assign('tactiquesn', $tactiquesn);
$template->assign('attselect', $attaqueT);
$template->assign('defselect', $defenseT);
$page = 'flotte1';
}
?>

374
game/jeu/flotteANC.php Normal file
View file

@ -0,0 +1,374 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$titre = 'Flottes';
if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']) && !empty($_POST['ss']) && !empty($_POST['pos']) && !empty($_POST['vitesse']) && isset($_POST['mission']) && isset($_POST['metal']) && isset($_POST['cristal']) && isset($_POST['hydrogene'])) {
$end_galaxie = floor($_POST['amas']);
$end_ss = floor($_POST['ss']);
$end_pos = floor($_POST['pos']);
$mission = floor($_POST['mission']);
if (isset($_POST['tactique'])) $tactique = floor($_POST['tactique']);
else $tactique = 0;
$EBmetal = floor($_POST['metal']);
$EBcristal = floor($_POST['cristal']);
$EBhydrogene = floor($_POST['hydrogene']);
$vitesse = floor($_POST['vitesse'])/100;
$bdd->connexion();
$bdd->escape($end_galaxie);
$bdd->escape($end_ss);
$bdd->escape($end_pos);
$bdd->escape($mission);
$bdd->escape($tactique);
$bdd->escape($EBmetal);
$bdd->escape($EBcristal);
$bdd->escape($EBhydrogene);
$bdd->escape($vitesse);
$resultat = $bdd->query("SELECT id FROM $table_flottes WHERE id_user = '$id_user'");
$nbr = $bdd->num_rows;
//Vérification du code anti-bots
if ($_POST['cds'] != $sess->values['flcds']) erreur('Impossible d\'authentifier l\'envoie de la flotte.<br />Si le problème perciste, <a href="mailto:technique@halo-battle.s-fr.com">contactez un administrateur</a>.', "red", '?p=flotte', 4000);
//Si la mission est d'attaquer, on vérifie que les attaques ne soient pas désactivées
elseif ($mission == 1 && !ATTAQUES) erreur('Les attaques sont désactivées pour le moment. Pour plus d\'informations, <a href="http://halo-battle.s-fr.com/forum/">consultez le forum</a>.', "red", '?p=flotte', 5000);
//Vérification que la destination ne soit pas en dehors de la galaxie
elseif ($end_galaxie > MAX_AMAS || $end_ss > MAX_SYSTEME || $end_pos > MAX_PLANETE || $end_galaxie < 0 || $end_ss < 1 || $end_pos < 1 || ($end_galaxie < 1 && $sess->values['auth_level'] < 6)) erreur('La destination de la flotte n\'est pas correcte.', "red", '?p=flotte');
//Vérification que le nombre de slots ne soit pas dépassé
elseif ($nbr > $queryUser['informatique']) erreur('Vous n\'avez pas assez de slots disponibles.', "red", '?p=flotte');
//On vérifie la mission
elseif ($mission < 0 || $mission > 5) erreur('Mission incorrecte !', "red", '?p=flotte');
//Si la mission est d'attaquer, on vérifie la tactique
elseif ($mission == 1 && $tactique > $queryUser['tactique']) erreur('Vous ne connaissez pas cette tactique de combat !', "red", '?p=flotte');
//On vérifie la mission, si elle est d'espionner, il faut qu'il y ait des sondes
elseif ($mission == 5 && (!isset($sess->values['vais'][4]) || $sess->values['vais'][4] < 0)) erreur('Vous ne pouvez pas espionner sans sonde d\'espionnage !', "red", '?p=flotte');
//On vérifie la mission, si elle est de coloniser, il faut qu'il y ait des vaisseaux de colonisation
elseif ($mission == 3 && (!isset($sess->values['vais'][3]) || $sess->values['vais'][3] < 0)) erreur('Vous ne pouvez pas coloniser sans vaisseau de colonisation !', "red", '?p=flotte');
//On vérifie la mission, si elle est de recycler, il faut qu'il y ait des reclycleurs
elseif ($mission == 4 && (!isset($sess->values['vais'][5]) || $sess->values['vais'][5] < 0)) erreur('Vous ne pouvez pas recycler sans recycleur !', "red", '?p=flotte');
//On vérifie que l'on possède assez de ressources
elseif ((!empty($EBmetal) && !$EBmetal > $queryPlanete['metal']) || (!empty($EBcristal) && !$EBcristal > $queryPlanete['cristal']) || (!empty($EBhydrogene) && !$EBhydrogene > $queryPlanete['hydrogene'])) erreur('Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.', "red", '?p=flotte');
//On vérifie que l'on n'envoie pas des ressources négatives
elseif ((!empty($EBmetal) && $EBmetal < 0) || (!empty($EBcristal) && $EBcristal < 0) || (!empty($EBhydrogene) && $EBhydrogene < 0)) erreur('Vous avez spécifié des valeurs de ressources à embarquer incorrectes !', "red", '?p=flotte', 4000);
//On vérifie la vitesse du vaisseau
elseif (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 100) erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte');
else {
$resultat = $bdd->unique_query("SELECT * FROM $table_planete WHERE galaxie = '$end_galaxie' AND ss = '$end_ss' AND position = '$end_pos';");
//On vérifie qu'il n'y ait pas une interaction entre deux multi-comptes
$cnt = count($multi);
if ($cnt > 1 && $mission == 2) {
for($i = 0; $i < $cnt; $i++){
if ($multi[$i]['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).');
}
}
//Si la mission est d'attaquer, on vérifie que le joueur cible ne soit pas ne mode vacances
if ($mission == 1) {
//Récupération de l'ID du joueur cible
$rech_user = $resultat['id_user'];
$resultatu = $bdd->unique_query("SELECT * FROM $table_user WHERE id = '$rech_user';");
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);
elseif ($resultatu['time_inscription'] + 604800 > time()) erreur('Le joueur que vous tentez d\'attaquer s\'est inscrit récemment, laissez-lui le temps de se préparer au combat !', "red", '?p=flotte', 3000);
elseif (!$resultat) erreur('La planète que vous tentez d\'attaquer est inhabitée.', "red", '?p=flotte');
elseif ($resultat['id_user'] == $id_user) erreur('La planète que vous tentez d\'attaquer vous appartient.', "red", '?p=flotte');
}
elseif ($mission == 2 && !$resultat) erreur('Impossible de transporter des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000);
elseif ($mission == 3 && $resultat) erreur('La planète que vous voulez coloniser est déjà habitée.', "red", '?p=flotte', 3000);
elseif ($mission == 0 && $resultat['id_user'] != $id_user) erreur('La planète sur laquelle vous désirez stationner ne vous appartient pas.', "red", '?p=flotte', 3000);
elseif ($mission == 4 && ($resultat['debris_met'] <= 0 || $resultat['debris_cri'] <= 0) && empty($sess->values['forceFlotte'])) {
$sess->values['forceFlotte'] = true;
$sess->put();
erreur('Il n\'y a rien à recycler sur la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'].<br />Vous pouvez forcer le lancement de la flotte en rechargeant cette page.', "orange");
}
//Création de la flotte
$req = '';
$reqb = '';
$reqPlan = '';
$nbVais = '';
$nbI = count($nomvaisa);
for ($i=1 ; $i<=$nbI ; $i++) {
if (!empty($sess->values['vais'][$i])) {
if ($sess->values['vais'][$i] > $queryPlanete['vaisseau_'.$i]) erreur('Vous avez envoyé plus de vaisseaux que vous n\'en posséder sur cette planète.', "red", '?p=flotte');
else {
$req .= "'".$sess->values['vais'][$i]."', ";
$reqb .= "vaisseau_$i, ";
if (!empty($reqPlan)) $reqPlan .= ', ';
$reqPlan .= "vaisseau_$i = vaisseau_$i - '".$sess->values['vais'][$i]."'";
$nbVais += $sess->values['vais'][$i];
}
}
}
if ($nbVais <= 0) erreur('Vous devez envoyer au moins un vaisseau pour former une flotte !', "red", '?p=flotte');
elseif ($sess->values['flnbvais'] != $nbVais) erreur('Une erreur est survenue lors de la création de la flotte :<br /><br /><i>Calcul du nombre de vaisseaux incorrect !</i><br /><br />Si le problème perciste, <a href="mailto:'.$config['mailadmin'].'">contactez un administrateur</a>.', "red", '?p=flotte', 4500);
else {
//Envoie de la flotte
$nom = $_POST['nomflotte'];
$bdd->escape($nom);
$start_time = time();
$start_galaxie = $queryPlanete['galaxie'];
$start_ss = $queryPlanete['ss'];
$start_pos = $queryPlanete['position'];
$end_time = vais_tempsDeplacement($start_galaxie, $start_ss, $start_pos, $end_galaxie, $end_ss, $end_pos, $sess->values['flvitesse'], $vitesse, $sess->values['flpreparation'], $sess->values['flchauffe']);
if ($end_time <= 0) {
$end_time = 454;
}
//On vérifie qu'il y a assez de place dans les cales des vaisseaux avant l'envoie
$conso = vais_conso($end_time, $nbVais)*$vitesse/45*2;
$contenu_metal = $_POST['metal']; $bdd->escape($contenu_metal); $plan_metal = $queryPlanete['metal'] - $contenu_metal;
$contenu_cristal = $_POST['cristal']; $bdd->escape($contenu_cristal); $plan_cristal = $queryPlanete['cristal'] - $contenu_cristal;
$contenu_hydrogene = $_POST['hydrogene']; $bdd->escape($contenu_hydrogene); $plan_hydrogene = $queryPlanete['hydrogene'] - $contenu_hydrogene - $conso;
$contenu_max = $sess->values['flcontenu'];
if ($contenu_metal + $contenu_cristal + $contenu_hydrogene + $conso > $contenu_max && $contenu_metal + $contenu_cristal + $contenu_hydrogene != 0) erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent.', "red", '?p=flotte', 3500);
elseif ($plan_metal < 0 || $plan_cristal < 0 || $plan_hydrogene < 0) erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500);
else {
if ($mission == 1) {
$tactiqueAT = $_POST['tactique'];
$bdd->escape($tactiqueAT);
$tactiqueEN = $resultatu['tactique'];
$bdd->escape($tactiqueEN);
}
else {
$tactiqueAT = 0;
$tactiqueEN = 0;
}
$bdd->query("INSERT INTO $table_flottes (id_user, mission, start_time, start_galaxie, start_ss, start_position, end_time, end_galaxie, end_ss, end_position, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, contenu_max, nb_vais, $reqb tactiqueAT, tactiqueEN, nom) VALUES ($id_user, '$mission', '$start_time', '$start_galaxie', '$start_ss', '$start_pos', '$end_time', '$end_galaxie', '$end_ss', '$end_pos', '$vitesse', '$contenu_metal', '$contenu_cristal', '$contenu_hydrogene', '$contenu_max', '$nbVais', $req'$tactiqueAT', '$tactiqueEN', '$nom');");
$bdd->query("UPDATE $table_planete SET $reqPlan, metal = '$plan_metal', cristal = '$plan_cristal', hydrogene = '$plan_hydrogene' WHERE id = '$idPlan' LIMIT 1 ;");
$bdd->deconnexion();
unset($sess->values['vais']);
$sess->put();
erreur('Votre flotte a été envoyée avec succès.', "green", '?p=flotte', 4000);
}
}
}
}
elseif (!empty($_POST['v1']) || !empty($_POST['v2']) || !empty($_POST['v3']) || !empty($_POST['v4']) || !empty($_POST['v5']) || !empty($_POST['v6']) || !empty($_POST['v7']) || !empty($_POST['v8']) || !empty($_POST['v9']) || !empty($_POST['v10']) || !empty($_POST['v11']) || !empty($_POST['v12'])) {
$nombreVaisseau = 0;
for ($i=1 ; $i<=12 ; $i++) {
if (!isset($_POST['v'.$i]) || !is_numeric($_POST['v'.$i]) || $_POST['v'.$i] != abs(floor($_POST['v'.$i]))) $_POST['v'.$i] = 0;
if ($_POST['v'.$i] >= 0 && $i != 11) {
$sess->values['vais'][$i] = $_POST['v'.$i];
$nombreVaisseau += $_POST['v'.$i];
//Si on indique un nombre de vaisseaux supérieur au nombre présent sur la planète
if ($_POST['v'.$i] > $queryPlanete['vaisseau_'.$i]) erreur('Il ne vous reste plus assez de vaisseaux !', "red", '?p=flotte');
}
}
$sess->values['flnbvais'] = $nombreVaisseau;
$sess->values['forceFlotte'] = false;
//On vérifie que l'utilisateur a bien envoyé plus d'un vaisseau
if ($nombreVaisseau <= 0) erreur('Vous devez envoyer au moins un vaisseau.', "red", '?p=flotte');
//On ajoute des missions supplémentaire suivant les vaisseaux envoyés
$lvltactique = $queryUser['tactique'];
$actionsupp = '';
if ($lvltactique >= 1) $actionsupp .= '<option value="1" selected="selected">Attaquer</option>';
if ($_POST['v3'] >= 1) $actionsupp .= '<option value="3" selected="selected">Coloniser</option>';
if ($_POST['v5'] >= 1) $actionsupp .= '<option value="4" selected="selected">Recycler</option>';
if ($_POST['v4'] >= 1) $actionsupp .= '<option value="5" selected="selected">Espionner</option>';
$template->assign('actionsupp', $actionsupp);
// Définition des paramètres de la flotte
$AvaisType = array(); $AvaisVitesseC = array(); $AvaisVitesseL = array(); $AvaisPrepC = array(); $AvaisPrepL = array(); $AvaisChauffe = array(); $AvaisContenu = 0;
for ($i=1 ; $i<=12 ; $i++) {
$AvaisType[] = $i;
$AvaisVitesseC[] = $nomvais_dc[$i-1];
$AvaisVitesseL[] = $nomvais_dl[$i-1];
$AvaisContenu += $nomvais_rs[$i-1] * $_POST['v'.$i];
$AvaisPrepC[] = $nomvais_pdc[$i-1].' ';
$AvaisPrepL[] = $nomvais_pdl[$i-1].' ';
$AvaisChauffe[] = $nomvais_cdl[$i-1].' ';
}
if(min($AvaisVitesseL) != 0) {
$sess->values['flvitesse'] = max($AvaisVitesseL);
$sess->values['flpreparation'] = max($AvaisPrepL);
$sess->values['flchauffe'] = max($AvaisChauffe);
}
else {
$sess->values['flvitesse'] = max($AvaisVitesseC);
$sess->values['flpreparation'] = max($AvaisPrepC);
$sess->values['flchauffe'] = 0;
}
$sess->values['fltime'] = time();
$sess->values['flcontenu'] = $AvaisContenu;
//On enregistre les modification de la session
$sess->put();
$page = 'flotte2';
$template->assign('scripth', '<script src="js/prototype.js" type="text/javascript"></script>');
$template->assign('script', '<script type="text/javascript">document.getElementById(\'nom\').focus();</script><script src="js/flotte.js" type="text/javascript"></script>');
$fav = explode(';', $queryUser['destinationsFavoris']);
$cntfav = count($fav);
$favoris = array();
$favorisn = array();
$bdd->connexion();
for($i = 0; $i < $cntfav; $i++){
$res = $bdd->unique_query("SELECT nom_planete, galaxie, ss, position FROM $table_planete WHERE id = ".$fav[$i].";");
if ($res != false) {
if (!empty($res['nom_planete'])) $favoris[] = $res['nom_planete'];
else $favoris[] = '['.$res['galaxie'].':'.$res['ss'].':'.$res['position'].']';
$favorisn[] = $fav[$i];
}
}
$bdd->deconnexion();
$template->assign('favoris', $favoris);
$template->assign('favorisn', $favorisn);
$favorisC = array();
$favorisnC = array();
$cntfav = count($queryPlanetes);
for($i = 0; $i < $cntfav; $i++){
if (!empty($queryPlanetes[$i]['nom_planete'])) $favorisC[] = $queryPlanetes[$i]['nom_planete'];
else $favorisC[] = '['.$queryPlanetes[$i]['galaxie'].':'.$queryPlanetes[$i]['ss'].':'.$queryPlanetes[$i]['position'].']';
$favorisnC[] = $queryPlanetes[$i]['id'];
}
$template->assign('favorisColonies', $favorisC);
$template->assign('favorisnColonies', $favorisnC);
}
elseif (!empty($_GET['n'])) {
$idN = ceil($_GET['n']);
$bdd->connexion();
$bdd->escape($idN);
$resultat = $bdd->unique_query("SELECT * FROM $table_flottes WHERE id_user = '$id_user' AND id = '$idN'");
if (isset($_GET['a']) && isset($sess->values['ret_fleet']) && $_GET['a'] == $sess->values['ret_fleet']) {
//Calcul du temps passé depuis le lancement de la flotte
$tpsDD = time() - $resultat['start_time'];
if ($resultat['mission'] == '6') erreur('Votre flotte est déjà en train de revenir !', 'red', '?p=flotte&n='.$idN, 1500);
elseif ($resultat['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 = '$id_user' AND id = '$idN';");
header('Location: ?p=flotte&n='.$idN);
exit;
}
else erreur('Impossible d\'annuler la mission, elle a déjà commencée.', "red", '?p=flotte&n='.$idN, 1500);
}
$page = 'flotten';
if ($bdd->num_rows <= 0) erreur('Impossible de trouver cette flotte !', "red", '?p=flotte', 1500);
else {
$attaque = gpc('attaque', 'post');
$nom = gpc('nomflotte', 'post');
if (!empty($nom)) {
$bdd->escape($nom);
$bdd->unique_query("UPDATE $table_flottes SET nom = '$nom' WHERE id_user = $id_user AND id = '$idN' LIMIT 1;");
$resultat['nom'] = $nom;
}
if (!empty($attaque) && is_numeric($attaque)) {
if ($attaque <= $queryUser['tactique']) {
$bdd->escape($attaque);
$bdd->query("UPDATE $table_flottes SET tactiqueAT = $attaque WHERE id_user = $id_user AND id = '$idN';");
$bdd->deconnexion();
erreur('Tactique mise à jour avec succès.', 'green', '?p=flotte&n='.$idN, 1100);
}
else erreur('Veuillez sélectionner les tactiques dans la liste !', 'red', '?p=flotte&n='.$idN);
}
$bdd->deconnexion();
$resultat['contenu_metalF'] = separerNombres($resultat['contenu_metal']);
$resultat['contenu_cristalF'] = separerNombres($resultat['contenu_cristal']);
$resultat['contenu_hydrogeneF'] = separerNombres($resultat['contenu_hydrogene']);
$resultat['contenu_maxF'] = separerNombres($resultat['contenu_max']);
$resultat['missionF'] = txtmission($resultat['mission']);
$resultat['tactiqueAtDef'] = txtTactique($queryUser['combatAT_tactique']);
$resultat['tactiqueF'] = txtTactique($resultat['tactiqueAT']);
$resultat['end_timeT'] = $resultat['start_time'] + $resultat['end_time'];
$sess->values['ret_fleet'] = sha1('HB.fleet_'.rand().'☺ß☻');
$sess->put();
$template->assign('ret_fleet', $sess->values['ret_fleet']);
$template->assign('flotte', $resultat);
$template->assign('nomvais', $nomvaisa);
$template->assign('n', $idN);
$tactiques = array();
$tactiquesn = array();
$attaqueT = 0;
for($i=1 ; $i<=$queryUser['tactique'] ; $i++) {
if ($i == $resultat['tactiqueAT']) $attaqueT = $i;
$tactiques[] = txtTactique($i);
$tactiquesn[] = $i;
}
$template->assign('tactiques', $tactiques);
$template->assign('tactiquesn', $tactiquesn);
$template->assign('attselect', $attaqueT);
}
}
else {
//Mise à jour des tactiques par défaut
$attaque = gpc('attaque', 'post');
$defense = gpc('defense', 'post');
if (!empty($attaque) && !empty($defense) && is_numeric($attaque) && is_numeric($defense)) {
if ($attaque <= $queryUser['tactique'] && $defense <= $queryUser['tactique']) {
$bdd->connexion();
$bdd->escape($attaque);
$bdd->escape($defense);
$bdd->query("UPDATE $table_user SET combatAT_tactique = $attaque, combatDE_tactique = $defense WHERE id = '$id_user';");
$bdd->deconnexion();
erreur('Tactiques mises à jour avec succès.', 'green', '?p=flotte', 1100);
}
else erreur('Veuillez sélectionner les tactiques dans la liste !', 'red', '?p=flotte');
}
$page = 'flotte1';
$bdd->connexion();
$resultat = $bdd->query("SELECT * FROM $table_flottes WHERE id_user = '$id_user';");
$bdd->deconnexion();
$nbr = $bdd->num_rows;
$TEMP_flottesEC = array();
for ($i=0 ; $i<$nbr ; $i++) {
if ($resultat[$i]['mission'] != 1 && ($resultat[$i]['mission'] != 3 || $resultat[$i]['effectue'] == '1' || $resultat[$i]['nb_vais'] >= 1) && $resultat[$i]['mission'] != 0) {
$retour = $resultat[$i]['start_galaxie'].':'.$resultat[$i]['start_ss'].':'.$resultat[$i]['start_position'];
$Hretour = date('d/m H:i:s',$resultat[$i]['start_time']+2*$resultat[$i]['end_time']);
}
elseif ($resultat[$i]['mission'] == 1) {
$retour = $resultat[$i]['start_galaxie'].':'.$resultat[$i]['start_ss'].':'.$resultat[$i]['start_position'];
if (empty($resultat[$i]['ret_time'])) $Hretour = '-';
else $Hretour = date('d/m H:i:s',$resultat[$i]['ret_time']+$resultat[$i]['end_time']);
}
else {
$retour = '-';
$Hretour = '-';
}
$TEMP_flottesEC[] = array($resultat[$i]['id'], $resultat[$i]['nom'], txtmission($resultat[$i]['mission']), $resultat[$i]['nb_vais'], $resultat[$i]['end_galaxie'].':'.$resultat[$i]['end_ss'].':'.$resultat[$i]['end_position'], date('d/m H:i:s',$resultat[$i]['start_time']+$resultat[$i]['end_time']), $retour, $Hretour);
}
$template->assign('flottesEC', $TEMP_flottesEC);
$TEMP_vaisseaux = array();
$j=0;
for ($i=1 ; $i<=12 ; $i++) {
if ($queryPlanete['vaisseau_'.$i] > 0 && $i != 11) {
$j++;
$TEMP_vaisseaux[] = array($nomvaisn[$i-1], separerNombres($queryPlanete['vaisseau_'.$i]), $queryPlanete['vaisseau_'.$i], $i);
}
}
$template->assign('vaisseaux', $TEMP_vaisseaux);
$trez = $queryUser["informatique"] + 1;
if ($nbr < $trez) $template->assign('action', '<input class="submit" type="submit" value="OK" />');
else $template->assign('action', '<span class="lack">Nombre de flottes maximum simultanées atteint</span>');
$template->assign('nbflotte', $nbr);
$template->assign('nbflottemax', $trez);
//Modification des tactiques
$tactiques = array();
$tactiquesn = array();
$attaqueT = 0;
$defenseT = 0;
for($i=1 ; $i<=$queryUser['tactique'] ; $i++) {
if ($i == $queryUser['combatAT_tactique']) $attaqueT = $i;
if ($i == $queryUser['combatDE_tactique']) $defenseT = $i;
$tactiques[] = txtTactique($i);
$tactiquesn[] = $i;
}
$template->assign('tactiques', $tactiques);
$template->assign('tactiquesn', $tactiquesn);
$template->assign('attselect', $attaqueT);
$template->assign('defselect', $defenseT);
}
?>

View file

@ -2,4 +2,35 @@
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'gestion';
$titre = 'Gestion';
$template->assign('planeteEC', array(
'id' => $planete->id,
'metal' => $planete->metal,
'cristal' => $planete->cristal,
'hydrogene' => $planete->hydrogene,
'energie' => $planete->energie,
'population' => $planete->population,
)
);
$politique = gpc('politique', 'post');
if (is_numeric($politique)) {
//On annule le changement politique si le dernier a eu lieu dans la semaine.
if ($planete->politique_lastchange > time() - 604800) erreur("La population de votre empire planètaire vient d'entrer dans une phase de révolution contre le changement de régime.<br />Pour ne pas perdre votre place au sommet de l'empire, le système politique n'a pas été changé.");
if ((($planete->technologies[3] & 2048 && $politique == 3) || ($planete->technologies[3] & 1024 && $politique == 2) || ($planete->technologies[3] & 512 && $politique == 1) || $politique == 0) && $planete->politique != $politique) {
$planete->politique = $politique;
$planete->politique_lastchange = time();
$planete->modifUser[] = "politique";
$planete->modifUser[] = "politique_lastchange";
erreur("Le changement politique a bien été pris en compte par la population de vos différentes planètes.", "green");
}
elseif ($planete->politique == $politique) erreur("Ce système politique est actuellement en vigueur.", "orange");
else erreur("Impossible de choisir ce système politique !");
}
$politiques = array('Anarchie');
if ($planete->technologies[3] & 512) $politiques[] = 'Fascisme (Mouvement Frieden)';
if ($planete->technologies[3] & 1024) $politiques[] = 'Communisme (Mouvement Koslovic)';
if ($planete->technologies[3] & 2048) $politiques[] = 'Démocratie (Administration coloniale)';
$template->assign('politiques', $politiques);
?>

View file

@ -6,31 +6,94 @@ $titre = 'Laboratoire';
//Vérification que le joueur ait bien un labo avant d'afficher la page
if ($planete->batiments[6] == 0) erreur('Vous devez d\'abord construire un '.strtolower($batiment[6]), "red", '?p=batiments', 4000);
$TEMP_batiments = array();
$nbstop = count($technolo);
//Lancement d'une nouvelle construction
if (isset($_GET['t'])) {
//Lancement d'une nouvelle recherche
if (isset($_GET['t']) && isset($_GET['f']) ) {
//Récupération des erreurs de la mise en file d'attente pour traitement
$construction = $planete->file_addObjet("technologies", intval(gpc('t')));
$construction = $planete->file_addObjet("technologies", intval(gpc('t')), intval(gpc('f')));
switch($construction){
case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour effectuer cette recherche.'); break;
case 2: erreur('Cette technologie est déjà en file d\'attente !'); break;
case 3: erreur('Vous n\'avez pas les ressources nécessaire pour effectuer cette recherche !'); break;
case 4: erreur('File d\'attente pleine !'); break;
case 5: erreur('Le nombre d\'objets est négatif !'); break;
default: header('Location: ?p=laboratoire'); exit;
}
}
//Annulation d'une nouvelle construction
if (isset($_GET['a'])) {
$i = intval(gpc('a'));
//Vérification de la présence du batiment dans la file d'attente
if($planete->file_exist($i, 'file_tech')) {
if(!empty($planete->file_tech[$i+1])) {
$planete->file_delObjet("technologies", $i);
header('Location: ?p=laboratoire');
exit;
}
}
//Affichage des technologies
$TEMP_technologies = array();
foreach ($planete->technologies as $key => $technologie){
foreach ($technologiesCALC[$key] as $i => $calc){
//On affiche uniquement les technologies
if (($technologie & $calc[1]) == $calc[1] && !($technologie & $calc[0] && $technologie != 0)) {
if ($planete->file_exist($i, $key)) $enFile = true;
else $enFile = false;
//On applique les bonus de test
$calc[3] /= VITESSE;
$TEMP_technologies[] =
array(
'image' => $planete->race=='humain'?'../humain_na.jpg':'../covenant_na.jpg',
'nom' => $technolo[$key][$i],
'niveau' => '0',
'description' => 'Technologie de '.$technologiesVAR[$key].' ; numéro : '.$calc[0].'<br />Résultat : '.((int)($technologie & $calc[1]).' | '.$calc[1]),
'nec_metal' => 0,
'nec_cristal' => 0,
'nec_hydrogene' => 0,
'nec_credits' => $calc[2],
'nec_metalS' => 0,
'nec_cristalS' => 0,
'nec_hydrogeneS' => 0,
'temps' => sec($calc[3]),
'num' => $i,
'file' => $key,
'enfile' => $enFile,
'maq_metal' => 0,
'maq_cristal' => 0,
'maq_hydrogene' => 0
);
}
}
}
$template->assign('recherches', $TEMP_technologies);
//Affichage de la file d'attente
$nbfile = count($planete->file_tech)-1;
if ($nbfile == 1) $template->assign('Pchaine', true);
else $template->assign('Pchaine', false);
if ($nbfile <= 0) $template->assign('Vchaine', true);
else $template->assign('Vchaine', false);
$file = array();
foreach ($planete->file_tech as $key => $tech_infile){
if ($key == 0) continue;
$sec = $technologiesCALC[$tech_infile[1]][$tech_infile[0]][3];
if ($key == 1) $file[] = array($tech_infile[0], 1, ceil($sec/VITESSE - (time() - $planete->file_tech[0])), $technolo[$tech_infile[1]][$tech_infile[0]]);
else $file[] = array($tech_infile[0], 1, ceil($sec/VITESSE), $technolo[$tech_infile[1]][$tech_infile[0]]);
}
$template->assign('file', $file);
/*
exit;
$nbstop = count($technolo);
//Règler la production à la châine
/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) {
if($_GET['r']) $file->chaine = false;
@ -40,7 +103,7 @@ if (isset($_GET['a'])) {
header('Location: ?p=batiments');
exit;
}*/
/*
for ($i=0 ; $i<$nbstop ; $i++) {
$tr = 0; $a = 0; $b = 0; $c = 0; $sec = 0; $enFile = false;
if ($planete->technologies[$i] > 0) $niveau = $planete->technologies[$i]; else $niveau = 0;
@ -85,5 +148,5 @@ for ($i=1 ; $i <= $nbfile ; $i++) {
else $file[] = array($file_unit[0], $file_unit[1], ceil($sec), $technolo[$file_unit[0]]);
}
$template->assign('file', $file);
$template->assign('file', $file);*/
?>

View file

@ -3,6 +3,9 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'messagerie';
$titre = 'Messagerie';
//On interdit l'accès à la messagerie en cas de prise de contrôle d'un joueur
if (!empty($sess->values['souscontrole'][0])) erreur('Vous êtes en mode prise de contrôle, vous ne pouvez pas accèder aux messages privés des joueurs.');
if (isset($_POST['IM'])) {
$stop = false;
for($i=1 ; $i<=$_POST['IM'] ; $i++) {
@ -36,7 +39,7 @@ $nbmax = $bdd->num_rows;
$result = $bdd->query("SELECT M.*, U.pseudo AS expediteur FROM $table_mail M INNER JOIN $table_user U ON U.id = M.expediteur WHERE M.destinataire = $id_user AND M.expediteur != false ORDER BY M.id DESC LIMIT 50;");
if ($queryUser['auth_level'] >= 3 && $nbmax > $bdd->num_rows) $result = $messcomp;
if ($planete->auth_level >= 3 && $nbmax > $bdd->num_rows) $result = $messcomp;
elseif ($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>');
$TEMP_messages = array();

View file

@ -4,12 +4,14 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!empty($_GET['cds'])) {
if (!empty($_GET['nom']) && !empty($_GET['race']) && !empty($_GET['mdp']) && !empty($_GET['mail']) && !empty($_GET['ti']) && isset($_GET['placement'])) {
//file_log('inscription : login = '.$_POST['HB_login'].' ; password = '.$_POST['HB_password'], 1);
$_GET['mdp'] = hexstr($_GET['mdp']);
if ($_GET['cds'] == sha1($_GET['nom'].'$'.$_GET['race'].'£'.$_GET['mdp'].'#'.$_GET['mail'].'ß'.$_GET['ti'].'Ó'.$_SERVER['HTTP_USER_AGENT'].'♀☻'.$_SERVER['REMOTE_ADDR'].$_GET['placement'])) {
$pseudo = $_GET['nom'];
$mdp = mdp($pseudo, $_GET['mdp']);
$race = $_GET['race'];
$mdp = cxor(gpc('mdp'), sha1($pseudo.'£'.$race));
$mdp = mdp($pseudo, $mdp);
$alea = $mdp[1];
$mdp = $mdp[0];
$race = $_GET['race'];
$mail = $_GET['mail'];
$ti = $_GET['ti'];
@ -32,14 +34,14 @@ if (!empty($_GET['cds'])) {
}
//Création de l'utilisateur
$base->query("INSERT INTO $table_user (pseudo, mdp, mdp_var, race, mail, last_ip, time_inscription) VALUES ('$pseudo', '$mdp', '$alea', '$race', '$mail', '".$_SERVER['REMOTE_ADDR']."', '".time()."');");
$base->query("INSERT INTO $table_user (pseudo, mdp, mdp_var, race, mail, last_ip, time_inscription, credits) VALUES ('$pseudo', '$mdp', '$alea', '$race', '$mail', '".$_SERVER['REMOTE_ADDR']."', '".time()."', 1000);");
//Création des bases de la planète
$image = mt_rand(1,15);
$image = mt_rand(1,19);
$cases = 225;
$queryUser = $base->unique_query("SELECT * FROM $table_user WHERE pseudo = '$pseudo';");
if (empty($queryUser)) {
$template->assign('message','Une erreur est survenue lors de la création de votre compte sur le serveur.<br /><br />Si le problème perciste, contactez un administrateur.');
$template->assign('message','Une erreur est survenue lors de la création de votre compte sur le serveur.<br /><br />Si le problème persiste, contactez un administrateur.');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
@ -134,14 +136,14 @@ if (!empty($_GET['cds'])) {
}
}
else {
$template->assign('message','Impossible d\'authentifier votre inscription !<br /><br />Si le problème perciste, contactez un administrateur.');
$template->assign('message','Impossible d\'authentifier votre inscription !<br /><br />Si le problème persiste, contactez un administrateur.');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
}
}
else {
$template->assign('message','Impossible de terminer votre inscription, il manque des données !<br /><br />Si le problème perciste, contactez un administrateur.');
$template->assign('message','Impossible de terminer votre inscription, il manque des données !<br /><br />Si le problème persiste, contactez un administrateur.');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;

View file

@ -15,7 +15,7 @@ if (!empty($_POST['titre']) && !empty($_POST['description'])) {
$bdd->deconnexion();
erreur('Votre demande à bien été transmise aux opérateurs de la galaxie.<br />Une réponse vous sera donnée dans les plus brefs délais.', "green");
}
elseif (!empty($_POST['O_titre']) && !empty($_POST['O_description']) && $sess->values['auth_level'] > 4) {
elseif (!empty($_POST['O_titre']) && !empty($_POST['O_description']) && $sess->level > 4) {
$titre = $_POST['O_titre'];
$description = $_POST['O_description'];
@ -27,7 +27,7 @@ elseif (!empty($_POST['O_titre']) && !empty($_POST['O_description']) && $sess->v
header('Location: ?p=operateur');
exit;
}
elseif (isset($_GET['a']) && $_GET['a'] == 'top' && isset($_GET['i']) && $sess->values['auth_level'] > 4) {
elseif (isset($_GET['a']) && $_GET['a'] == 'top' && isset($_GET['i']) && $sess->level > 4) {
$i = $_GET['i'];
$bdd->connexion();
$bdd->escape($i);
@ -36,7 +36,7 @@ elseif (isset($_GET['a']) && $_GET['a'] == 'top' && isset($_GET['i']) && $sess->
header('Location: ?p=operateur');
exit;
}
elseif (isset($_GET['a']) && $_GET['a'] == 'bas' && isset($_GET['i']) && $sess->values['auth_level'] > 4) {
elseif (isset($_GET['a']) && $_GET['a'] == 'bas' && isset($_GET['i']) && $sess->level > 4) {
$i = $_GET['i'];
$bdd->connexion();
$bdd->escape($i);
@ -45,7 +45,7 @@ elseif (isset($_GET['a']) && $_GET['a'] == 'bas' && isset($_GET['i']) && $sess->
header('Location: ?p=operateur');
exit;
}
elseif (isset($_GET['a']) && $_GET['a'] == 'del' && isset($_GET['i']) && $sess->values['auth_level'] > 4) {
elseif (isset($_GET['a']) && $_GET['a'] == 'del' && isset($_GET['i']) && $sess->level > 4) {
$i = $_GET['i'];
$bdd->connexion();
$bdd->escape($i);

View file

@ -5,8 +5,11 @@ $titre = 'Options';
$template->assign('page',$page);
$template->assign('titre',$titre);
$pseudo = $queryUser['pseudo'];
$mailUtil = $queryUser['mail'];
$pseudo = $planete->pseudo;
$mailUtil = $planete->mail;
$bdd->connexion();
$queryUser = $bdd->unique_query("SELECT mdp, mdp_var FROM $table_user WHERE id = $id_user;");
$bdd->deconnexion();
$mdp = $queryUser['mdp'];
$mdp_var = $queryUser['mdp_var'];
@ -42,7 +45,7 @@ if (isset($_GET['a']) && $_GET['a'] == 'mv' && isset($_GET['n']) && $_GET['n'] =
$sess->values['connected'] = FALSE;
$sess->put();
erreur('Le mode vacances est maintenant actif sur votre compte.<br /><br />Vous pourez vous reconnecter sur votre compte à partir de<br />'.strftime("%A %d %B à %H:%M", $queryUser['last_visite']+259200).'<br /><br />Bonnes vacances !', "green", '?index', 10000);
erreur('Le mode vacances est maintenant actif sur votre compte.<br /><br />Vous pourez vous reconnecter sur votre compte à partir de<br />'.strftime("%A %d %B à %H:%M", $planete->last_visite+259200).'<br /><br />Bonnes vacances !', "green", '?index', 10000);
}
}
elseif (isset($_GET['a']) && $_GET['a'] == 'dl' && isset($_GET['n']) && $_GET['n'] == $sess->values['idvac']) {
@ -54,9 +57,9 @@ elseif (isset($_GET['a']) && $_GET['a'] == 'dl' && isset($_GET['n']) && $_GET['n
}
if (isset($_GET['chg']) && $_GET['chg'] == 'mdp') {
if (isset($_POST['mdp_anc']) && isset($_POST['mdp_nouv']) && isset($_POST['mdp_conf']) && !empty($_POST['mdp_anc']) && !empty($_POST['mdp_nouv']) && !empty($_POST['mdp_conf'])) {
if(mdp($pseudo, $_POST['mdp_anc'], $mdp_var) == $mdp) {
if(mdp($pseudo, gpc('mdp_anc', 'post'), $mdp_var) == $mdp) {
if ($_POST['mdp_nouv'] == $_POST['mdp_conf']) {
$password = mdp($pseudo, $_POST['mdp_nouv'], $mdp_var);
$password = mdp($pseudo, gpc('mdp_nouv', 'post'), $mdp_var);
$auth = sha1($password);
$bdd->connexion();
@ -76,17 +79,16 @@ if (isset($_GET['chg']) && $_GET['chg'] == 'mdp') {
else erreur('Veuillez remplir tous les champs avant de valider le formulaire.', "red", '?p=options');
}
elseif (isset($_GET['chg']) && $_GET['chg'] == 'mail') {
if (isset($_POST['mdp_mail']) && sha1(strtoupper($pseudo).':'.$_POST['mdp_mail']) == $mdp) {
if (isset($_POST['mdp_mail']) && mdp($pseudo, gpc('mdp_mail', 'post'), $mdp_var) == $mdp) {
if (isset($_POST['mail']) && !empty($_POST['mail'])) {
$Nmail = $_POST['mail'];
$Nmail = gpc('mail', 'post');
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $Nmail)) {
$bdd->connexion();
$bdd->escape($Nmail);
$result = $bdd->query("SELECT mail FROM user WHERE mail = '$Nmail'");
if($result) {
$bdd->deconnexion();
header('Location: options.php?erreur=5');
exit;
erreur('Vous ne pouvez pas utiliser cette adresse mail, elle est déjà utilisée par un autre utilisateur.', "red", '?p=options');
}
else {
$auth = sha1($Nmail);
@ -110,6 +112,6 @@ elseif (isset($_GET['chg']) && $_GET['chg'] == 'mail') {
$sess->values['idvac'] = sha1(rand(123456789,9876543210).'ß‘}☻'.time());
$sess->put();
$template->assign('mail',$queryUser['mail']);
$template->assign('mail',$planete->mail);
$template->assign('idvac',$sess->values['idvac']);
?>

View file

@ -3,6 +3,10 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
$titre = 'Changement des options';
if (isset($_GET['auth'])) {
$bdd->connexion();
$queryUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id_user;");
$bdd->deconnexion();
if (!empty($queryUser['mdpNOUV']) && !empty($queryUser['mdpNOUV']) && sha1($queryUser['mdpNOUV']) == $_GET['auth']) {
$bdd->connexion();
$bdd->query("UPDATE user SET mdp = mdpNOUV, mdpNOUV = '', mailNOUV = '' WHERE id = '$id_user';");

View file

@ -4,15 +4,18 @@ $page = 'rename';
$titre = $planete->nom_planete;
if (isset($_POST['planete'])) {
$nouvNom = trim($_POST['planete']);
$nouvNom = trim(str_replace('&nbsp;', ' ', $_POST['planete']));
if (empty($nouvNom)) erreur('Vous n\'avez indiqué aucun nom de planète.', "red", '?p=rename');
elseif (ereg('staf', strtolower($nouvNom)) && $sess->values['auth_level'] < 4) erreur('Vous devez faire parti du staff pour afficher le nom "staff" dans le nom de votre planète !', "red", '?p=rename');
elseif (limite($nouvNom, 18)) erreur('Le nom de votre planète est trop long.', "red", '?p=rename');
elseif (ereg('staf', strtolower($nouvNom)) && $sess->level < 4) erreur('Vous devez faire parti du staff pour afficher le nom "staff" dans le nom de votre planète !', "red", '?p=rename');
else {
$bdd->connexion();
$bdd->escape($nouvNom);
$bdd->unique_query("UPDATE $table_planete SET nom_planete = '$nouvNom' WHERE id_user = $id_user AND id = $idPlan;");
$bdd->deconnexion();
erreur('Le nom de votre planète a été modifié avec succès.', "green", '?p=accueil');
header('Location: ?p=accueil');
exit;
//erreur('Le nom de votre planète a été modifié avec succès.', "green", '?p=accueil');
}
}
elseif(isset($_GET['a']) && isset($_GET['i']) && $_GET['a'] == $sess->values['abandon'] && !empty($idPlan) && $idPlan == $_GET['i']) {
@ -25,7 +28,7 @@ elseif(isset($_GET['a']) && isset($_GET['i']) && $_GET['a'] == $sess->values['ab
$sess->values['abandon'] = 0;
unset($sess->values['abandon']);
$sess->values['idPlan'] = $req['id'];
$sess->put();
$sess->put($planete->id_user);
erreur('Cette planète n\'est désormais plus sous votre contrôle.', "green", '?p=accueil');
}
@ -36,6 +39,6 @@ $bdd->deconnexion();
if ($reqnb['total'] > 1) $hashA = md5(rand(123456789,9876543210));
else $hashA = false;
$sess->values['abandon'] = $hashA;
$sess->put();
$sess->put($planete->id_user);
$template->assign('abandonH', $hashA);
?>

22
game/jeu/util.php Normal file
View file

@ -0,0 +1,22 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'util';
$titre = 'Détails utilisateur';
$u = floor(gpc('i'));
$bdd->connexion();
$detailsUser = $bdd->query("SELECT * FROM $table_user WHERE id = $u;");
$bdd->deconnexion();
var_dump($detailsUser);
if (!empty($detailsUser)) {
$amis = explode(';', $detailsUser['amis']);
if (in_array($id_user, $amis)) $template->assign('amis', true);
$template->assign('userD', $detailsUser);
if (!empty($detailsUser['id_alliance'])) {
$bdd->connexion();
$template->assign('alliance', $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$detailsUser['id_alliance'].";"));
$bdd->deconnexion();
}
}
?>