forked from halo-battle/game
Version 1.13a
This commit is contained in:
parent
de31cd3e9a
commit
ba8f323879
1634 changed files with 10080 additions and 213021 deletions
|
|
@ -9,34 +9,31 @@ $bdd->reconnexion();
|
|||
|
||||
//On regarde si le joueur a une flotte en vue
|
||||
$radar = array();
|
||||
$nbPlan = count($queryPlanetes);
|
||||
//$detect = $planete->technologies[1]*1800;
|
||||
/*for($i = 0; $i < $nbPlan; $i++){
|
||||
$end_galaxie = $queryPlanetes[$i]['galaxie'];
|
||||
$end_ss = $queryPlanetes[$i]['ss'];
|
||||
$end_position = $queryPlanetes[$i]['position'];
|
||||
$radar[] = array($bdd->query("SELECT F.mission, F.start_galaxie, F.start_ss, F.start_position, F.start_time, F.end_time, F.start_time + F.end_time - ".time()." AS arrive_time, P.nom_planete, U.pseudo FROM $table_flottes F INNER JOIN $table_planete P ON P.galaxie = F.start_galaxie AND P.ss = F.start_ss AND P.position = F.start_position INNER JOIN $table_user U ON U.id = P.id_user WHERE F.effectue != '1' AND F.end_galaxie = '$end_galaxie' AND F.end_ss = '$end_ss' AND F.end_position = '$end_position' AND F.id_user != $id_user AND F.start_time + F.end_time - ".time()." <= $detect;"), array($queryPlanetes[$i]['nom_planete'], $queryPlanetes[$i]['galaxie'], $queryPlanetes[$i]['ss'], $queryPlanetes[$i]['position']));
|
||||
}*/
|
||||
$detect = 86400;
|
||||
foreach($queryPlanetes as $planeteJoueur)
|
||||
{
|
||||
$end_id = $planeteJoueur['id'];
|
||||
$radar[] = array($bdd->query("SELECT F.mission, F.start_planete, F.start_time, F.end_time, F.start_time + F.end_time - ".time()." AS arrive_time, P.nom_planete, P.galaxie as start_galaxie, P.ss as start_ss, P.position as start_position, U.pseudo FROM $table_flottes F INNER JOIN $table_planete P ON P.id = F.start_planete INNER JOIN $table_user U ON U.id = P.id_user WHERE F.statut != '1' AND F.end_planete = '$end_id' AND F.id_user != $id_user AND F.start_time + F.end_time - ".time()." <= $detect;"), array($planeteJoueur['nom_planete'], $planeteJoueur['galaxie'], $planeteJoueur['ss'], $planeteJoueur['position']));
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
unset($nbPlan);
|
||||
$template->assign('radar',$radar);
|
||||
//$template->assign('alliance', $alli);
|
||||
unset($nbPlan, $end_id, $radar, $alli);
|
||||
|
||||
if (SURFACE == "planete") {
|
||||
//Affichage des informations sur la planète
|
||||
$template->assign('diametre', $planete->cases * 92);
|
||||
$template->assign('points', $planete->points);
|
||||
$template->assign('fileBat', $planete->file_bat->printFile($planete));
|
||||
$template->assign('fileCas', $planete->file_cas->printFile($planete));
|
||||
$template->assign('fileVais', $planete->file_vais->printFile($planete));
|
||||
$template->assign('fileTer', $planete->file_ter->printFile($planete));
|
||||
$template->assign('fileTech', $planete->file_tech->printFile($planete));
|
||||
}
|
||||
else
|
||||
{
|
||||
//On charge l'utilisateur pour récupérer son pseudo et l'afficher sur la page d'accueil
|
||||
$planete->fondateur = new User($planete->fondateur);
|
||||
$planete->loadDetails();
|
||||
}
|
||||
|
||||
$template->assign('radar',$radar);
|
||||
//$template->assign('alliance', $alli);
|
||||
|
||||
if (SURFACE == "planete")
|
||||
{
|
||||
$template->assign('fileBat', $planete->file_bat->printFile($planete));
|
||||
$template->assign('fileCas', $planete->file_cas->printFile($planete));
|
||||
$template->assign('fileVais', $planete->file_vais->printFile($planete));
|
||||
$template->assign('fileTer', $planete->file_ter->printFile($planete));
|
||||
$template->assign('fileTech', $planete->file_tech->printFile($planete));
|
||||
}
|
||||
|
||||
unset($radar, $alli)
|
||||
?>
|
||||
20
onyx2/include/game/jeu/alliance.php
Normal file
20
onyx2/include/game/jeu/alliance.php
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
|
||||
if (!empty($_GET['v']))
|
||||
include('game/jeu/alliances/voir.php');
|
||||
elseif (!empty($_GET['signer']))
|
||||
include('game/jeu/alliances/signer.php');
|
||||
elseif (!empty($planete->id_alliance))
|
||||
{
|
||||
$SESS->values['idPlan'] = 0;
|
||||
$SESS->values['idAsteroide'] = $planete->id_alliance;
|
||||
$SESS->values['isolement'] = 0;
|
||||
$SESS->put();
|
||||
redirection("?p=accueil");
|
||||
}
|
||||
elseif (!empty($_GET['postuler']))
|
||||
include('game/jeu/alliances/postuler.php');
|
||||
else
|
||||
include('game/jeu/alliances/sans.php');
|
||||
?>
|
||||
17
onyx2/include/game/jeu/alliances/chat.php
Normal file
17
onyx2/include/game/jeu/alliances/chat.php
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
|
||||
$planete->loadDetails();
|
||||
if (!empty($planete->url_chat))
|
||||
{
|
||||
//On vérifie que le joueur ait les permissions requises
|
||||
if ($planete->permissions_alliance &256)
|
||||
$page = "alliance/chat_irc";
|
||||
else
|
||||
erreur("Vous n'avez pas le grade requis pour accéder au chat de l'alliance.");
|
||||
}
|
||||
else
|
||||
{
|
||||
$page = "alliance/chat_ajax";
|
||||
}
|
||||
?>
|
||||
310
onyx2/include/game/jeu/alliances/gestion.php
Normal file
310
onyx2/include/game/jeu/alliances/gestion.php
Normal file
|
|
@ -0,0 +1,310 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
|
||||
$gestion = strtolower(gpc("g"));
|
||||
if ($gestion == "grades")
|
||||
{
|
||||
$page = 'alliance/gestion_grades';
|
||||
|
||||
//On vérifie que le joueur ait les permissions pour modifier les grades
|
||||
if (!($planete->permissions_alliance &128))
|
||||
erreur("Vous n'avez pas le grade nécessaire pour modifier les grades !");
|
||||
|
||||
$id = intval(gpc("i"));
|
||||
$del = intval(gpc("d"));
|
||||
|
||||
if (!empty($id) && gpc("nom", "post"))
|
||||
{
|
||||
$nom = gpc("nom", "post");
|
||||
$auth = intval(gpc("gbats", "post")) + intval(gpc("gvais", "post"))*2 + intval(gpc("gflot", "post"))*4 + intval(gpc("gdipl", "post"))*8 + intval(gpc("gcred", "post"))*16 + intval(gpc("gmemb", "post"))*32 + intval(gpc("gwing", "post"))*64 + intval(gpc("galli", "post"))*128 + intval(gpc("gchat", "post"))*256 + intval(gpc("gmess", "post"))*512;
|
||||
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($nom);
|
||||
$bdd->query("UPDATE $table_alliances_grade SET nom = '$nom', auth = $auth WHERE id = $id AND id_alliance = ".$planete->id.";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
header('Location: ?p=gestion&g=grades');
|
||||
exit;
|
||||
}
|
||||
elseif (gpc("nom", "post"))
|
||||
{
|
||||
$nom = gpc("nom", "post");
|
||||
$auth = intval(gpc("gbats", "post")) + intval(gpc("gvais", "post"))*2 + intval(gpc("gflot", "post"))*4 + intval(gpc("gdipl", "post"))*8 + intval(gpc("gcred", "post"))*16 + intval(gpc("gmemb", "post"))*32 + intval(gpc("gwing", "post"))*64 + intval(gpc("galli", "post"))*128;
|
||||
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($nom);
|
||||
$bdd->query("INSERT INTO $table_alliances_grade (id_alliance, nom, auth) VALUES (".$planete->id.", '$nom', $auth);");
|
||||
$bdd->deconnexion();
|
||||
|
||||
header('Location: ?p=gestion&g=grades');
|
||||
exit;
|
||||
}
|
||||
elseif (!empty($id))
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$grade = $bdd->unique_query("SELECT id, nom, auth FROM $table_alliances_grade WHERE id_alliance = ".$planete->id." AND id = $id;");
|
||||
$bdd->deconnexion();
|
||||
$template->assign("grade_mod", $grade);
|
||||
}
|
||||
elseif (!empty($del))
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$grade = $bdd->query("DELETE FROM $table_alliances_grade WHERE id_alliance = ".$planete->id." AND id = $del;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
header('Location: ?p=gestion&g=grades');
|
||||
exit;
|
||||
}
|
||||
|
||||
$bdd->reconnexion();
|
||||
$grades = $bdd->query("SELECT id, id_alliance, nom, auth FROM $table_alliances_grade WHERE id_alliance = ".$planete->id.";");
|
||||
$bdd->deconnexion();
|
||||
$template->assign("grades", $grades);
|
||||
|
||||
unset($grades, $id, $del);
|
||||
}
|
||||
|
||||
elseif ($gestion == "alliance" || ($gestion == "wings" && !empty($planete->wing)))
|
||||
{
|
||||
$page = 'alliance/gestion_alliance';
|
||||
|
||||
//On vérifie que le joueur ait les permissions pour modifier les grades
|
||||
if (!($planete->permissions_alliance &128))
|
||||
erreur("Vous n'avez pas le grade nécessaire pour modifier les paramètres de l'alliance !");
|
||||
|
||||
if (isset($_POST["asteroide_name"]))
|
||||
{
|
||||
$asteroide_name = gpc("asteroide_name", "post");
|
||||
$planete->nom_asteroide = $asteroide_name;
|
||||
$planete->modif[] = "nom_asteroide";
|
||||
}
|
||||
elseif (isset($_POST["texte_interne"]))
|
||||
{
|
||||
$texte_interne = gpc("texte_interne", "post");
|
||||
$defcon = intval(gpc("defcon", "post"));
|
||||
$defcon_txt = gpc("defcon_txt", "post");
|
||||
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($texte_interne);
|
||||
$bdd->escape($defcon_txt);
|
||||
$bdd->query("UPDATE $table_alliances SET texte_interne = '$texte_interne', defcon = $defcon, defcon_txt = '$defcon_txt' WHERE id = ".$planete->id.";");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
elseif (isset($_POST["url_forum"]))
|
||||
{
|
||||
$url_forum = gpc("url_forum", "post");
|
||||
$url_chat = gpc("url_chat", "post");
|
||||
$port_chat = intval(gpc("port_chat", "post"));
|
||||
$chan_chat = gpc("chan_chat", "post");
|
||||
$pass_chat = gpc("pass_chat", "post");
|
||||
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($url_forum);
|
||||
$bdd->escape($url_chat);
|
||||
$bdd->escape($chan_chat);
|
||||
$bdd->escape($pass_chat);
|
||||
$bdd->query("UPDATE $table_alliances SET url_forum = '$url_forum', url_chat = '$url_chat', port_chat = $port_chat, chan_chat = '$chan_chat', pass_chat = '$pass_chat' WHERE id = ".$planete->id.";");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
elseif (isset($_POST["message_inscription"]))
|
||||
{
|
||||
$etatinscriptions = intval(gpc("etatinscriptions", "post"));
|
||||
$message_inscription = gpc("message_inscription", "post");
|
||||
$presentation = gpc("presentation", "post");
|
||||
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($url_forum);
|
||||
$bdd->escape($url_chat);
|
||||
$bdd->escape($chan_chat);
|
||||
$bdd->query("UPDATE $table_alliances SET etatinscriptions = '$etatinscriptions', message_inscription = '$message_inscription', presentation = '$presentation' WHERE id = ".$planete->id.";");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
elseif (isset($_POST["newfondateur"]) && $planete->fondateur == $planete->id_user)
|
||||
{
|
||||
//On vérifie que le joueur demandé existe bien et fasse bien parti de l'alliance
|
||||
$bdd->reconnexion();
|
||||
$membre = $bdd->unique_query("SELECT id_alliance FROM $table_user WHERE id != ".intval(gpc('newfondateur', 'post')).";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (!empty($membre))
|
||||
{
|
||||
$planete->fondateur = intval(gpc('newfondateur', 'post'));
|
||||
$planete->modif[] = "fondateur";
|
||||
erreur("Fondateur changé avec succès.", "green");
|
||||
}
|
||||
else
|
||||
erreur("Impossible de donner les droits de fondateur à ce joueur !");
|
||||
}
|
||||
|
||||
$planete->loadDetails();
|
||||
|
||||
//On charge la liste des utilisateurs de l'alliance si besoin
|
||||
$bdd->reconnexion();
|
||||
$membres = $bdd->query("SELECT id, pseudo FROM $table_user WHERE id_alliance = ".$planete->id." AND id != ".$planete->fondateur.";");
|
||||
$bdd->deconnexion();
|
||||
$template->assign("membres", $membres);
|
||||
unset($membres);
|
||||
}
|
||||
elseif ($gestion == "wings")
|
||||
{
|
||||
$page = 'alliance/gestion_wing';
|
||||
|
||||
//On vérifie que le joueur ait les permissions pour modifier les grades
|
||||
if (!($planete->permissions_alliance &64))
|
||||
erreur("Vous n'avez pas le grade nécessaire pour gérer les wings !");
|
||||
|
||||
if (!empty($_POST["nom"]))
|
||||
{
|
||||
$fondateur = gpc("fondateur", "post");
|
||||
$nom = gpc("nom", "post");
|
||||
$tag = strtoupper(gpc("tag", "post"));
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($fondateur);
|
||||
$bdd->escape($nom);
|
||||
$bdd->escape($tag);
|
||||
$user = $bdd->unique_query("SELECT id, pseudo FROM $table_user WHERE pseudo = '$fondateur' AND id_alliance = 0;");
|
||||
$alliances = $bdd->query("SELECT id FROM $table_alliances WHERE nom_alliance = 'nom' OR tag = '$tag';");
|
||||
$wings = $bdd->query("SELECT COUNT(id) AS nb FROM $table_alliances WHERE galaxie = ".$planate->galaxie." AND ss = ".$planate->ss.";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (!empty($alliances))
|
||||
erreur("Une alliance porte déjà ce nom ou ce tag. Veuillez en choisir un autre.");
|
||||
elseif (!empty($user))
|
||||
{
|
||||
$race = gpc("race", "post");
|
||||
if (!preg_match("#^[A-Za-z0-9èéàùûüôöç'_ -]{5,24}$#ui", $nom))
|
||||
erreur("Le nom d'alliance que vous avez choisi n'est pas valide :<br />il doit avoir entre 5 et 24 caractères (certains accents sont autorisés, mais aucun caractères spéciaux) !", "red");
|
||||
elseif (!preg_match("#^[A-Za-z0-9]{3,5}$#ui", $tag))
|
||||
erreur("Le tag de wing que vous avez choisi n'est pas valide :<br />il doit avoir entre 3 et 5 lettres (sans accents) ou chiffres !", "red");
|
||||
elseif ($race != "humain" && $race != "covenant")
|
||||
erreur("La race de la wing est incorrecte !");
|
||||
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($race);
|
||||
$bdd->query("INSERT INTO $table_alliances (race, sante, nom_alliance, tag, galaxie, ss, wing) VALUES ('$race', 1, '$nom', '$tag', ".$planate->galaxie.", ".$planate->ss.", ".$wings['nb'].")");
|
||||
$affected = $bdd->affected();
|
||||
$bdd->deconnexion();
|
||||
|
||||
if ($affected)
|
||||
{
|
||||
send_mp($user['id'], "Création d'une wing pour l'alliance [".$planete->tag."] ".$planete->nom_alliance, "L'alliance [".$planete->tag."] ".$planete->nom_alliance." vous propose de devenir capitaine de la wing [".$tag."] ".$nom.".<br /><br />Si vous acceptez le poste, cliquez sur le lien suivant : <a href=\"\">ce lien</a>");
|
||||
erreur("Un message vient d'être envoyé à ".$user["pseudo"].". Lorsqu'il aura accepté son poste, la création de la wing sera terminée et les premiers membres pourront s'y inscrire.", "green");
|
||||
}
|
||||
else
|
||||
erreur("Une erreur s'est produite lors de la création de la wing. Si le problème percisite, contacter un opérateur.");
|
||||
}
|
||||
else
|
||||
erreur("Impossible de trouver le nom de ce joueur. Vérifiez que celui-ci n'appartient actuellement à aucune alliance.<br />Impossible de créer une wing sans fondateur valide.");
|
||||
}
|
||||
|
||||
|
||||
//On charge la liste des wings
|
||||
$bdd->reconnexion();
|
||||
$wings = $bdd->query("SELECT id, race, nom_alliance, tag FROM $table_alliances WHERE galaxie = ".$planete->galaxie." AND ss = ".$planete->ss." AND wing != 0;");
|
||||
$bdd->deconnexion();
|
||||
$template->assign("wings", $wings);
|
||||
unset($wings);
|
||||
}
|
||||
else
|
||||
{
|
||||
$page = 'alliance/gestion_membres';
|
||||
$gestion = "membres";
|
||||
|
||||
//On vérifie que le joueur ait les permissions pour modifier les grades
|
||||
if (!($planete->permissions_alliance &32))
|
||||
erreur("Vous n'avez pas le grade nécessaire pour modifier les membres !");
|
||||
|
||||
//Acceptation ou refus des postulants
|
||||
if (!empty($_GET["pa"]))
|
||||
{
|
||||
$id = intval(gpc("pa"));
|
||||
$bdd->reconnexion();
|
||||
$user = $bdd->unique_query("SELECT U.id_alliance, U.pseudo, U.id AS id_user FROM $table_alliances_attente A INNER JOIN $table_user U ON A.id_user = U.id WHERE A.id_alliance = ".$planete->id." AND A.id = $id;");
|
||||
|
||||
if (empty($user))
|
||||
{
|
||||
$bdd->deconnexion();
|
||||
erreur("Impossible de trouver la candidature. Si le problème perciste, contactez un opérateur.");
|
||||
}
|
||||
elseif (!empty($user['id_alliance']))
|
||||
{
|
||||
$bdd->deconnexion();
|
||||
erreur("Le joueur pour lequel vous souhaitez valider la condidature est actuellement dans une autre alliance. Vous ne pouvez donc pas l'accepter immédiatement.");
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->query("UPDATE $table_user SET id_alliance = ".$planete->id.", id_grade_alliance = 0 WHERE id = ".$user["id_user"].";");
|
||||
if ($bdd->affected())
|
||||
{
|
||||
$bdd->query("DELETE FROM $table_alliances_attente WHERE id_alliance = ".$planete->id." AND id = $id;");
|
||||
$bdd->deconnexion();
|
||||
send_mp($user["id_user"], "Candidature pour l'alliance [".$planete->tag."] ".$planete->nom_alliance, "Félicitations vous faites maintenant parti de l'alliance [".$planete->tag."] ".$planete->nom_alliance.".<br /><br />Après examen de votre candidature, le responsable du recrutement a jugé bon de vous accepter au sein de l'alliance.<br />Vous en faites donc désormais parti. Il ne vous reste plus qu'à vous démarquer pour monter dans les grades.<br /><br />Bon jeu !");
|
||||
erreur("Membre ajouté à l'alliance avec succès.<br />Un message privé vient de lui être envoyé afin de l'informer de la nouvelle.", "green");
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->deconnexion();
|
||||
erreur("Une erreur s'est produite lors de l'ajout du joueur dans les membres de l'alliance.<br />Si le problème perciste, contactez un opérateur.");
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif (!empty($_GET["pr"]))
|
||||
{
|
||||
$id = intval(gpc("pr"));
|
||||
$bdd->reconnexion();
|
||||
$user = $bdd->unique_query("SELECT U.id AS id_user FROM $table_alliances_attente A INNER JOIN $table_user U ON A.id_user = U.id WHERE A.id_alliance = ".$planete->id." AND A.id = $id;");
|
||||
$bdd->query("DELETE FROM $table_alliances_attente WHERE id_alliance = ".$planete->id." AND id = $id;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
send_mp($user["id_user"], "Candidature pour l'alliance [".$planete->tag."] ".$planete->nom_alliance, "Nous avons le regret de vous annoncer que l'alliance [".$planete->tag."] ".$planete->nom_alliance." a refusé votre candidature.<br /><br />Après examen de votre candidature, le responsable du recrutement a jugé bon de vous écarter de l'alliance.<br />Pour plus d'informations, veuillez contacter directement le responsable du recrutement.");
|
||||
erreur("Candidature refusée.<br />Un message privé vient d'être envoyé au joueur afin de l'informer de la nouvelle.", "orange");
|
||||
}
|
||||
//Gestion des exclusions de l'alliance
|
||||
elseif (!empty($_GET["u"]))
|
||||
{
|
||||
$id = intval(gpc("u"));
|
||||
if ($planete->fondateur == $id)
|
||||
erreur("Vous ne pouvez pas exclure le fondateur de sa propre alliance.<br />En cas de problème avec le fondateur, veuillez contacter un opérateur.");
|
||||
$bdd->reconnexion();
|
||||
$bdd->query("UPDATE $table_user SET id_alliance = 0, id_grade_alliance = 0 WHERE id_alliance = ".$planete->id." AND id = $id;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if ($bdd->affected())
|
||||
{
|
||||
send_mp($id, "Exclusion de votre alliance [".$planete->tag."] ".$planete->nom_alliance, "Vous vennez d'être exclus de votre alliance [".$planete->tag."] ".$planete->nom_alliance."<br />Pour plus d'informations, veuillez contacter directement le responsable du recrutement.");
|
||||
erreur("Membre renvoyé.<br />Un message privé vient de lui être envoyé afin de l'informer de la nouvelle.", "orange");
|
||||
}
|
||||
else
|
||||
erreur("Membre introuvable !");
|
||||
}
|
||||
|
||||
$id = intval(gpc("i"));
|
||||
if (!empty($id))
|
||||
{
|
||||
$grade = intval(gpc('grade', 'post'));
|
||||
|
||||
$bdd->reconnexion();
|
||||
$gradet = $bdd->unique_query("SELECT id FROM $table_alliances_grade WHERE id_alliance = ".$planete->id." AND id = $grade;");
|
||||
if (!empty($gradet) || $grade == 0)
|
||||
$bdd->query("UPDATE $table_user SET id_grade_alliance = $grade WHERE id_alliance = ".$planete->id." AND id = $id;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
header('Location: ?p=gestion&g=membres');
|
||||
exit;
|
||||
}
|
||||
|
||||
$bdd->reconnexion();
|
||||
$membres = $bdd->query("SELECT id, pseudo, race, last_visite, id_grade_alliance FROM $table_user WHERE id_alliance = ".$planete->id.";");
|
||||
$grades = $bdd->query("SELECT id, id_alliance, nom, auth FROM $table_alliances_grade WHERE id_alliance = ".$planete->id.";");
|
||||
$postulants = $bdd->query("SELECT A.id, A.timestamp, A.message, U.pseudo, U.id AS id_user FROM $table_alliances_attente A INNER JOIN $table_user U ON A.id_user = U.id WHERE A.id_alliance = ".$planete->id.";");
|
||||
$bdd->deconnexion();
|
||||
$template->assign("membres", $membres);
|
||||
$template->assign("grades", $grades);
|
||||
$template->assign("postulants", $postulants);
|
||||
|
||||
unset($membres, $grades, $grade, $id, $postulants);
|
||||
}
|
||||
|
||||
$template->assign("onglet", $gestion);
|
||||
unset($gestion);
|
||||
?>
|
||||
171
onyx2/include/game/jeu/alliances/messagerie.php
Normal file
171
onyx2/include/game/jeu/alliances/messagerie.php
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'messagerie';
|
||||
$titre = 'Messagerie d\'alliance';
|
||||
$template->assign("link_P", "alli_messagerie");
|
||||
$template->assign("titreR", $titre);
|
||||
|
||||
//On interdit l'accès à la messagerie en cas de prise de contrôle d'un joueur
|
||||
if (!empty($sess->values['souscontrole'][0]))
|
||||
erreur('Vous êtes en mode prise de contrôle, vous ne pouvez pas accèder aux messages privés des joueurs.');
|
||||
|
||||
if ($id = intval(gpc('avertir')))
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$bdd->query("UPDATE $table_alliances_mail SET statut = 1 WHERE destinataire = ".$planete->id." AND id = $id;");
|
||||
if ($bdd->affected())
|
||||
erreur('La demande de vérification de contenu par les opérateurs a été transmise avec succès.', 'green', '?p=messagerie');
|
||||
else
|
||||
erreur('Une demande est déjà en cours ou vous n\'êtes pas autorisé à avertir ce message.', 'red', '?p=messagerie');
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
|
||||
//On récupére l'onglet demandé
|
||||
$onglet = gpc('n');
|
||||
$template->assign('onglet', $onglet);
|
||||
|
||||
if ($onglet == "rapports")
|
||||
{
|
||||
//Demande de supression des messages
|
||||
if (!empty($_POST))
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
foreach($_POST as $value)
|
||||
$bdd->query("UPDATE $table_alliances_mail SET vu = 's' WHERE destinataire = ".$planete->id." AND id = ".intval($value).";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
header('Location: ?p=messagerie&n='.$onglet);
|
||||
exit;
|
||||
}
|
||||
|
||||
$bdd->reconnexion();
|
||||
$data = $bdd->query("SELECT * FROM $table_alliances_mail WHERE destinataire = ".$planete->id." AND expediteur = false AND vu != 's' ORDER BY id DESC;");
|
||||
$bdd->query("UPDATE $table_alliances_mail SET vu = 0 WHERE destinataire = ".$planete->id." AND expediteur = false AND vu != 's';");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$template->assign('messages', $data);
|
||||
}
|
||||
elseif ($onglet == "send")
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$data = $bdd->query("SELECT M.*, U.pseudo AS destinataire FROM $table_alliances_mail M INNER JOIN $table_user U ON U.id = M.destinataire WHERE M.expediteur = ".$planete->id." ORDER BY M.id DESC;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$template->assign('messages', $data);
|
||||
}
|
||||
elseif ($onglet == "envoyer")
|
||||
{
|
||||
$page = 'envoyer';
|
||||
$titre = 'Envoyer un message';
|
||||
|
||||
if (!empty($_POST['objet']) && !empty($_POST['destinataire']) && !empty($_POST['message']))
|
||||
{
|
||||
$utils = explode(';', gpc('destinataire', 'post'));
|
||||
$nbutil = count($utils);
|
||||
|
||||
$time = time();
|
||||
$message = htmlspecialchars(gpc('message', 'post'));
|
||||
$objet = htmlspecialchars(gpc('objet', 'post'));
|
||||
|
||||
if (strlen($message) > 99999)
|
||||
erreur('Le contenu de votre message est trop long. Limite : 99 999 caractères.');
|
||||
if (empty($utils))
|
||||
erreur('Aucun utilisateur sélectionné.');
|
||||
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($message);
|
||||
$bdd->escape($objet);
|
||||
|
||||
$introuv = array();
|
||||
foreach($utils as $util)
|
||||
{
|
||||
if (empty($util))
|
||||
continue;
|
||||
$util = trim($util);
|
||||
$bdd->escape($util);
|
||||
|
||||
if ($util != $planete->pseudo && $env = $bdd->unique_query("SELECT id, pseudo, mail, envoyerMail FROM $table_user WHERE pseudo = '$util';"))
|
||||
{
|
||||
$bdd->query("INSERT INTO $table_alliances_mail (destinataire, expediteur, sujet, contenu, temps) VALUES(".$env['id'].", ".$planete->id_user.", '$objet', '$message', $time);");
|
||||
if ($env["envoyerMail"]& 2 && !empty($env["mail"]))
|
||||
send_mail($env["mail"], "Halo-Battle :: Nouveau message privé", 'Bonjour '.$env["pseudo"].',
|
||||
|
||||
Vous recevez ce courriel suite à l\'arrivée d\'un nouveau message privé reçu sur votre compte de jeu du serveur '.$VAR['serveur_name'].'. Le sujet de ce message est : "'.$objet.'" et a été envoyé par '.$planete->pseudo.'. Vous pouvez utiliser le lien suivant pour voir le message ou vous connecter.
|
||||
|
||||
http://'.$_SERVER['HTTP_HOST'].'/'.$VAR['first_page'].'?p=messagerie
|
||||
|
||||
Vous pouvez désactiver ses notifications via les options de votre compte dans l\'onglet "notifications"
|
||||
|
||||
A bientôt dans Halo-Battle,
|
||||
Le Staff');
|
||||
}
|
||||
else
|
||||
$introuv[] = htmlentities($util);
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (!empty($introuv[0]))
|
||||
erreur('Impossible de trouver le/les destinataire(s) suivant(s) : '.implode(', ', $introuv).'.<br />Les autres ont bien reçu votre message.', "red", '?p=messagerie&n=envoyer');
|
||||
else
|
||||
erreur('Votre message a été envoyé avec succès.', "green", '?p=messagerie');
|
||||
}
|
||||
|
||||
$amis = array();
|
||||
$amisn = array();
|
||||
$bdd->reconnexion();
|
||||
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;
|
||||
}
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
$template->assign('amis', $amis);
|
||||
$template->assign('amisn', $amisn);
|
||||
|
||||
if (isset($_GET['d'])) $template->assign('destinataire', gpc('d'));
|
||||
if (isset($_GET['o'])) $template->assign('objet', gpc('o'));
|
||||
}
|
||||
else
|
||||
{
|
||||
//Demande de supression des messages
|
||||
if (!empty($_POST))
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
foreach($_POST as $value)
|
||||
$bdd->query("DELETE FROM $table_alliances_mail WHERE destinataire = ".$planete->id_user." AND id = ".intval($value).";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
header('Location: ?p=messagerie&n='.$onglet);
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($SESS->level >= 3)
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$data = $bdd->query("SELECT M.*, U.pseudo AS expediteur FROM $table_alliances_mail M INNER JOIN $table_user U ON U.id = M.expediteur WHERE M.destinataire = ".$planete->id_user." AND M.expediteur != false ORDER BY M.id DESC;");
|
||||
$bdd->query("UPDATE $table_alliances_mail M SET vu = 0 WHERE M.destinataire = ".$planete->id_user." AND M.expediteur != false ORDER BY M.id DESC;");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
//Calcul du nombre total de message enregistré
|
||||
$nbmax = $bdd->query("SELECT COUNT(id) as nb FROM $table_alliances_mail M WHERE M.destinataire = ".$planete->id_user." AND M.expediteur != false ORDER BY M.id DESC;");
|
||||
$data = $bdd->query("SELECT M.*, U.pseudo AS expediteur FROM $table_alliances_mail M INNER JOIN $table_user U ON U.id = M.expediteur WHERE M.destinataire = ".$planete->id_user." AND M.expediteur != false ORDER BY M.id DESC LIMIT 50;");
|
||||
$bdd->query("UPDATE $table_alliances_mail M SET vu = 0 WHERE M.destinataire = ".$planete->id_user." AND M.expediteur != false ORDER BY M.id DESC LIMIT 50;");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
|
||||
if ($SESS->level < 3 && $nbmax > $bdd->num_rows)
|
||||
$template->assign('avertissement', '<p style="color: red;"><b>Vous avez des messages en attente de réception. Libérez de la place dans votre messagerie pour les afficher.</b></p>');
|
||||
|
||||
$template->assign('messages', $data);
|
||||
}
|
||||
|
||||
unset($onglet, $data, $nbmax);
|
||||
|
||||
if ($bdd->num_rows)
|
||||
$template->assign('IM', $bdd->num_rows);
|
||||
?>
|
||||
37
onyx2/include/game/jeu/alliances/postuler.php
Normal file
37
onyx2/include/game/jeu/alliances/postuler.php
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
|
||||
$id = intval(gpc('postuler'));
|
||||
$message = gpc('motivation', 'post');
|
||||
$page = 'alliance/nm_postuler';
|
||||
|
||||
if (!empty($message))
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($message);
|
||||
$postul = $bdd->unique_query("SELECT id FROM $table_alliances_attente WHERE id_alliance = $id AND id_membre = ".$planete->id_user." LIMIT 1;");
|
||||
if (empty($postul))
|
||||
$bdd->query("INSERT INTO $table_alliances_attente (id_alliance, id_membre, timestamp, message) VALUES ($id, ".$planete->id_user.", ".time().", '$message');");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (empty($postul))
|
||||
erreur("Votre demande d'adhésion a été envoyée avec succès, vous aurez une réponse dès qu'un dirigeant de l'alliance se connectera.", "green", $VAR["menu"]["alliance"]."&v=".$id, 5000);
|
||||
else
|
||||
redirection($VAR["menu"]["alliance"]."&postuler=".$id);
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;");
|
||||
$postul = $bdd->unique_query("SELECT id FROM $table_alliances_attente WHERE id_alliance = $id AND id_membre = ".$planete->id_user." LIMIT 1;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
|
||||
if (!empty($postul))
|
||||
erreur("Vous avez déjà une candidature en cours pour cette alliance !", "red", $VAR["menu"]["alliance"]."&v=".$id, 3000);
|
||||
elseif (!empty($alliance))
|
||||
$template->assign("alliance", $alliance);
|
||||
else
|
||||
redirection($VAR["menu"]["alliance"]);
|
||||
}
|
||||
?>
|
||||
129
onyx2/include/game/jeu/alliances/sans.php
Normal file
129
onyx2/include/game/jeu/alliances/sans.php
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
|
||||
$act = gpc('q');
|
||||
|
||||
if ($act == "fonder")
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
//On regarde si le joueur n'est pas déjà en train de fonder une alliance
|
||||
if (!$alli = $bdd->query("SELECT id FROM $table_alliances_creation WHERE fondateur = ".$planete->id_user." OR signatures LIKE '%;".$planete->id_user.";%';"))
|
||||
{
|
||||
$bdd->deconnexion();
|
||||
$page = 'alliance/nm_fonder';
|
||||
|
||||
$nom = gpc('nom', 'post');
|
||||
$tag = gpc('tag', 'post');
|
||||
if (!empty($nom) || !empty($tag))
|
||||
{
|
||||
//Vérifications
|
||||
if (!preg_match("#^[A-Za-z0-9èéàùûüôöç'_ -]{5,42}$#ui", $nom))
|
||||
erreur("Le nom d'alliance que vous avez choisi n'est pas valide :<br />il doit avoir entre 5 et 42 caractères (certains accents sont autorisés, mais aucun caractères spéciaux) !", "red");
|
||||
elseif (!preg_match("#^[A-Za-z0-9]{3,5}$#ui", $tag))
|
||||
erreur("Le tag d'alliance que vous avez choisi n'est pas valide :<br />il doit avoir entre 3 et 5 lettres (sans accents) ou chiffres !", "red");
|
||||
|
||||
$lien = sha1($tag.'Hb$'.$nom.'☺Ø'.$planete->id_user.'‘«'.$planete->race);
|
||||
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($nom);
|
||||
$bdd->escape($tag);
|
||||
$utilise = $bdd->query("SELECT id FROM $table_alliances WHERE nom_alliance = '$nom' OR tag = '$tag' OR fondateur = ".$planete->id_user." UNION SELECT id FROM $table_alliances_creation WHERE nom_alliance = '$nom' OR tag = '$tag' OR fondateur = ".$planete->id_user.";");
|
||||
if (empty($utilise))
|
||||
$bdd->query("INSERT INTO $table_alliances_creation (tag, nom_alliance, fondateur, lien) VALUES ('$tag', '$nom', ".$planete->id_user.", '$lien');");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (!empty($utilise))
|
||||
erreur("Le nom ou le tag que vous avez choisi est déjà utilisé par une alliance.", "red");
|
||||
else
|
||||
{
|
||||
send_mp($planete->id_user, "Fondation de votre alliance !", 'Pour terminer la création de votre alliance, trouvez au moins 4 joueurs de cette galaxie sans alliance pour leur faire signer votre traité de fondation d\'alliance.<br /><br />Lien de signature :<br /><a href="'.$VAR["menu"]["alliance"].'&signer='.$lien.'">http://'.$_SERVER['HTTP_HOST'].'/'.$VAR["first_page"].''.$VAR["menu"]["alliance"].'&signer='.$lien.'</a>');
|
||||
erreur('Votre alliance a bien été créée.<br />Il ne vous reste plus qu\'à trouver au moins 4 signatures pour finir la création de votre alliance.<br /><br />Le lien permettant à vos quatres personnes de signer est <a href="'.$VAR["menu"]["alliance"].'&signer='.$lien.'">http://'.$_SERVER['HTTP_HOST'].'/'.$VAR["first_page"].''.$VAR["menu"]["alliance"].'&signer='.$lien.'</a>', "green");
|
||||
}
|
||||
}
|
||||
unset($nom, $tag);
|
||||
}
|
||||
else
|
||||
{
|
||||
$page = 'alliance/nm_statut';
|
||||
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE id = ".$alli[0]["id"].";");
|
||||
|
||||
$signatures = explode(';', substr($alliance["signatures"], 1), -1);
|
||||
$signaturesExport = implode(' OR id = ', $signatures);
|
||||
$pseudos = $bdd->query("SELECT pseudo FROM $table_user WHERE id = ".$signaturesExport.";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (gpc('r') == "quit")
|
||||
{
|
||||
if ($alliance["fondateur"] == $planete->id_user)
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$bdd->query("DELETE FROM $table_alliances_creation WHERE id = ".$alli[0]["id"].";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
foreach ($signatures as $id_user)
|
||||
{
|
||||
send_mp($id_user, "Annulation de la fondation de votre alliance !", "Le fondateur de l'alliance pour laquelle vous avez signée vient d'annuler sa création.");
|
||||
}
|
||||
|
||||
send_mp($planete->id_user, "Annulation de la fondation de votre alliance !", "Vous vennez d'annuler la création de votre alliance.");
|
||||
erreur("Votre alliance vient d'être supprimée", "green");
|
||||
}
|
||||
else
|
||||
{
|
||||
$keys = array_keys($signatures, $planete->id_user);
|
||||
foreach ($keys as $key)
|
||||
unset($signatures[$key]);
|
||||
|
||||
$signatures = ";".implode(';', $signatures).";";
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($signatures);
|
||||
$bdd->query("UPDATE $table_alliances_creation SET signatures = '$signatures' WHERE id = ".$alliance["id"].";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
send_mp($planete->id_user, "Annulation de la signature pour votre alliance !", "Vous vennez d'annuler votre signature pour l'alliance ".$alliance["nom"]);
|
||||
erreur("Votre signature a été rayée.", "green");
|
||||
}
|
||||
}
|
||||
|
||||
$template->assign("alliance", $alliance);
|
||||
$template->assign("signatures", $signatures);
|
||||
$template->assign("pseudos", $pseudos);
|
||||
$template->assign("nbSignatures", count($signatures));
|
||||
}
|
||||
}
|
||||
elseif (!empty($_POST['search_tag']) || !empty($_POST['search_nom']))
|
||||
{
|
||||
$page = 'alliance/nm_search';
|
||||
|
||||
$tag = gpc('search_tag', 'post');
|
||||
$nom = str_replace("*", "%", gpc('search_nom', 'post'));
|
||||
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($tag);
|
||||
$bdd->escape($nom);
|
||||
$rech1 = $bdd->query("SELECT id, tag, nom_alliance, race, etat_inscription FROM $table_alliances WHERE tag LIKE '$tag%' AND nom_alliance LIKE '%$nom%';");
|
||||
$rech2 = $bdd->query("SELECT lien AS id, tag, nom_alliance, 0 AS race, 2 AS etat_inscription FROM $table_alliances_creation WHERE tag LIKE '$tag%' AND nom_alliance LIKE '%$nom%';");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (!empty($rech1) && !empty($rech2))
|
||||
$recherche = array_merge($rech1, $rech2);
|
||||
elseif (!empty($rech2))
|
||||
$recherche = $rech2;
|
||||
else
|
||||
$recherche = $rech1;
|
||||
|
||||
if ($bdd->num_rows == 1)
|
||||
redirection($VAR["menu"]["alliance"]."&v=".$recherche[0]['id']);
|
||||
elseif ($bdd->num_rows == 0)
|
||||
erreur("Aucune alliance ne correspond à ces critères de recherche", "", $VAR["menu"]["alliance"]);
|
||||
|
||||
$template->assign("recherches", $recherche);
|
||||
unset($nom, $tag, $recherche);
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$template->assign("fondation", $bdd->query("SELECT id FROM $table_alliances_creation WHERE fondateur = ".$planete->id_user." OR signatures LIKE '%;".$planete->id_user.";%';"));
|
||||
$page = 'alliance/nm_accueil';
|
||||
}
|
||||
?>
|
||||
101
onyx2/include/game/jeu/alliances/signer.php
Normal file
101
onyx2/include/game/jeu/alliances/signer.php
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
|
||||
//Constante pour savoir si l'on offre ou pas un vaisseau de colonisation et s'il est possible de se désangager d'une signature
|
||||
define("debut_d_univers", true);
|
||||
|
||||
$hash = gpc('signer');
|
||||
|
||||
$page = 'alliance/nm_signer';
|
||||
if (!empty($planete->id_alliance))
|
||||
erreur("Vous êtes déjà dans une alliance, vous ne pouvez pas ratifier d'alliance !", "red");
|
||||
elseif (!empty($_POST["sign"]))
|
||||
{
|
||||
if (trim(strtolower(gpc("sign", "post"))) == "oui")
|
||||
{
|
||||
$hash = intval($hash);
|
||||
$bdd->reconnexion();
|
||||
$ratifier = $bdd->unique_query("SELECT id, fondateur, signatures FROM $table_alliances_creation WHERE signatures LIKE '%;".$planete->id_user.";%' LIMIT 1;");
|
||||
if (!empty($ratifier))
|
||||
{
|
||||
$ratifier["signatures"] = explode(';', substr($ratifier["signatures"], 1), -1);
|
||||
unset($ratifier["signatures"][array_search($planete->id_user, $ratifier["signatures"])]);
|
||||
if (count($ratifier["signatures"]) == 0)
|
||||
$ratifier["signatures"] = "";
|
||||
else
|
||||
$ratifier["signatures"] = ';'.implode(';', $ratifier["signatures"]).';';
|
||||
$bdd->escape($ratifier["signatures"]);
|
||||
$bdd->query("UPDATE $table_alliances_creation SET signatures = '".$ratifier["signatures"]."' WHERE id = ".$ratifier["id"].";");
|
||||
}
|
||||
|
||||
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE id = $hash;");
|
||||
if (!empty($alliance["signatures"]))
|
||||
$alliance["signatures"] = explode(';', substr($alliance["signatures"], 1), -1);
|
||||
else
|
||||
$alliance["signatures"] = array();
|
||||
|
||||
$alliance["signatures"][] = $planete->id_user;
|
||||
$newnb = count($alliance["signatures"]);
|
||||
$alliance["signatures"] = ';'.implode(';', $alliance["signatures"]).';';
|
||||
$bdd->escape($alliance["signatures"]);
|
||||
$bdd->query("UPDATE $table_alliances_creation SET signatures = '".$alliance["signatures"]."' WHERE id = $hash;");
|
||||
if (debut_d_univers) //Si on est en début d'univers, on recherche une planète du joueur fondateur
|
||||
$planete_fondateur = $bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = ".$alliance["fondateur"]." ORDER BY id ASC LIMIT 1;");
|
||||
$bdd->deconnexion();
|
||||
if ($newnb >= 4)
|
||||
{
|
||||
if (debut_d_univers && $newnb == 4)
|
||||
{
|
||||
//On donne un vaisseau de colonisation au fondateur
|
||||
$planete_fondateur = new Planete($planete_fondateur["id"]);
|
||||
$planete_fondateur->vaisseaux[2]++;
|
||||
unset($planete_fondateur);
|
||||
|
||||
send_mp($alliance["fondateur"], "Nouvelle signature pour votre alliance !", $planete->pseudo." vient de ratifier votre alliance, portant ainsi à ".$newnb." le nombre de signatures.<br /><br />Vous avez suffisamment de signatures pour coloniser un astéroïde. Pour vous féliciter, le conseil intergalactique a décidé de vous offrir un vaisseau de colonisation pour aller coloniser un astéroide afin d'implanter votre alliance.");
|
||||
}
|
||||
else
|
||||
//TODO refaire un message plus RP
|
||||
send_mp($alliance["fondateur"], "Nouvelle signature pour votre alliance !", $planete->pseudo." vient de ratifier votre alliance, portant ainsi à ".$newnb." le nombre de signatures.<br /><br />Vous avez suffisamment de signatures pour coloniser un astéroïde. Envoyez-en un dès maintenant !");
|
||||
}
|
||||
else
|
||||
send_mp($alliance["fondateur"], "Nouvelle signature pour votre alliance !", $planete->pseudo." vient de ratifier votre alliance, portant ainsi à ".$newnb." le nombre de signatures.");
|
||||
|
||||
erreur("Votre signature a bien été prise en compte !", "green");
|
||||
}
|
||||
else
|
||||
redirection($VAR["menu"]["alliance"]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($hash);
|
||||
$fonder = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE fondateur = ".$planete->id_user." LIMIT 1;");
|
||||
if (!empty($fonder))
|
||||
{
|
||||
$bdd->deconnexion();
|
||||
erreur("Vous ne pouvez pas ratifier d'alliance car vous en fonder actuellement une !", "red");
|
||||
}
|
||||
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE lien = '$hash';");
|
||||
$ratifier = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE signatures LIKE '%;".$planete->id_user.";%' LIMIT 1;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (!empty($alliance) && sha1($alliance['tag'].'Hb$'.$alliance['nom_alliance'].'☺Ø'.$alliance['fondateur'].'‘«'.$planete->race) == $hash)
|
||||
{
|
||||
if (!empty($alliance["signatures"]))
|
||||
{
|
||||
$alliance["signatures"] = explode(';', substr($alliance["signatures"], 1), -1);
|
||||
if (in_array($planete->id_user, $alliance["signatures"]))
|
||||
erreur("Vous avez déjà ratifier cette alliance !");
|
||||
$alliance["nbsignatures"] = count($alliance["signatures"]);
|
||||
}
|
||||
else
|
||||
$alliance["nbsignatures"] = 0;
|
||||
$template->assign("alliance", $alliance);
|
||||
$template->assign("ratifier", $ratifier);
|
||||
}
|
||||
elseif (!empty($alliance))
|
||||
erreur("Impossible de ratifier cette alliance.<br />Vous n'êtes peut-être pas de la même race que le fondateur.", 'red', $VAR["menu"]["alliance"], 4000);
|
||||
else
|
||||
erreur("Vous ne pouvez plus signer pour cette alliance !", 'red', $_SERVER["HTTP_REFERER"], 4000);
|
||||
}
|
||||
?>
|
||||
25
onyx2/include/game/jeu/alliances/voir.php
Normal file
25
onyx2/include/game/jeu/alliances/voir.php
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
|
||||
$id = intval(gpc('v'));
|
||||
$page = 'alliance/view';
|
||||
|
||||
$bdd->reconnexion();
|
||||
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;");
|
||||
$nbmembres = $bdd->unique_query("SELECT COUNT(id) AS nbmembres FROM $table_user WHERE id_alliance = $id;");
|
||||
if ($planete->id_alliance == $id)
|
||||
$grade = $bdd->unique_query("SELECT nom FROM $table_alliances_grade WHERE id = ".$planete->id_grade_alliance.";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (!empty($alliance))
|
||||
{
|
||||
$template->assign("alliance", $alliance);
|
||||
$template->assign("nbmembres", $nbmembres['nbmembres']);
|
||||
if (empty($grade))
|
||||
$template->assign("grade", "Invité");
|
||||
else
|
||||
$template->assign("grade", $grade["nom"]);
|
||||
}
|
||||
else
|
||||
redirection($VAR["menu"]["alliance"]);
|
||||
?>
|
||||
|
|
@ -1,29 +1,46 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
if(!defined('INDEX')) { header('Location: ./'.$VAR['first_page']); exit; }
|
||||
$page = 'arbre';
|
||||
$titre = 'Arbre des technologies';
|
||||
|
||||
if (empty($_GET['q']))
|
||||
$_GET['q'] = '';
|
||||
$template->assign('defaut',$_GET['q']);
|
||||
$template->assign('defaut', gpc('q'));
|
||||
|
||||
//Récupération et vérification de la race voulue ou définition d'une race par défaut
|
||||
if (empty($_GET['r']) || ($_GET['r'] != 'humain' && $_GET['r'] != 'covenant'))
|
||||
if (empty($_GET['r']) || (gpc('r') != 'humain' && gpc('r') != 'covenant'))
|
||||
$_GET['r'] = $planete->race;
|
||||
|
||||
$race = $_GET['r'];
|
||||
$race = gpc('r');
|
||||
$template->assign('raceAff', $race);
|
||||
|
||||
$TEMP_liste = array();
|
||||
foreach($planete->batiments as $id => $batiment)
|
||||
if (SURFACE == "asteroide")
|
||||
{
|
||||
if (!empty($LANG[$race]["batiments"]["noms_sing"][$id]))
|
||||
$TEMP_liste[$id] = array(
|
||||
'niveau' => $batiment,
|
||||
'etat' => Donnee::print_neededBatiments($id, $planete, $race)
|
||||
);
|
||||
$TEMP_liste = array();
|
||||
foreach($planete->batiments as $id => $batiment)
|
||||
{
|
||||
if (!empty($LANG[$race]["alli_batiments"]["noms_sing"][$id]))
|
||||
$TEMP_liste[$id] = array(
|
||||
'niveau' => $batiment,
|
||||
'etat' => Donnee::print_neededAlli_Batiments($id, $planete, $race)
|
||||
);
|
||||
}
|
||||
$template->assign('batiments', $TEMP_liste);
|
||||
}
|
||||
$template->assign('batiments', $TEMP_liste);
|
||||
else
|
||||
{
|
||||
$TEMP_liste = array();
|
||||
foreach($planete->batiments as $id => $batiment)
|
||||
{
|
||||
if (!empty($LANG[$race]["batiments"]["noms_sing"][$id]))
|
||||
$TEMP_liste[$id] = array(
|
||||
'niveau' => $batiment,
|
||||
'etat' => Donnee::print_neededBatiments($id, $planete, $race)
|
||||
);
|
||||
}
|
||||
$template->assign('batiments', $TEMP_liste);
|
||||
}
|
||||
|
||||
/*
|
||||
$TEMP_technologies = array();
|
||||
$nb = count($technolo);
|
||||
|
|
@ -69,4 +86,6 @@ foreach($planete->vaisseaux as $id => $unite)
|
|||
);
|
||||
}
|
||||
$template->assign('vaisseaux', $TEMP_liste);
|
||||
|
||||
unset($TEMP_liste, $id, $unite);
|
||||
?>
|
||||
|
|
@ -1,56 +1,90 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'batiments';
|
||||
$titre = 'Batiments';
|
||||
|
||||
//Si l'on est sur un astéroide, on vérifie que le joueur ait les permissions nécessaire
|
||||
if (SURFACE == "asteroide" && !($planete->permissions_alliance &1))
|
||||
erreur("Vous n'avez pas le grade requis pour vous occuper des bâtiments de l'astéroide.");
|
||||
|
||||
//Lancement d'une nouvelle construction
|
||||
if (isset($_GET['c'])) {
|
||||
//On vérifie qu'il n'y ait pas de technologie en cours de recherche si l'on veut améliorer le centre de recherche
|
||||
if($_GET['c'] == 6 && !empty($planete->file_tech[1]))
|
||||
erreur('Une technologie est en cours de recherche dans votre laboratoire, vous ne pouvez pas faire de travaux !');
|
||||
|
||||
$planete->file_bat->batiment_addObjet(intval(gpc('c')), $planete);
|
||||
|
||||
redirection($VAR['menu']['batiments']);
|
||||
}
|
||||
//Lancement d'une déconstruction
|
||||
if (isset($_GET['d'])) {
|
||||
//On vérifie qu'il n'y ait pas de technologie en cours de recherche si l'on veut améliorer le centre de recherche
|
||||
if($_GET['d'] == 6 && !empty($planete->file_tech[1]))
|
||||
erreur('Une technologie est en cours de recherche dans votre laboratoire, vous ne pouvez pas faire de travaux !');
|
||||
|
||||
$planete->file_bat->batiment_addDemolition(intval(gpc('d')), $planete);
|
||||
|
||||
redirection($VAR['menu']['batiments']);
|
||||
}
|
||||
//Annulation d'une nouvelle construction
|
||||
if (isset($_GET['a'])) {
|
||||
$planete->file_bat->batiment_delObjet(intval(gpc('a')), $planete);
|
||||
|
||||
redirection($VAR['menu']['batiments']);
|
||||
}
|
||||
|
||||
$TEMP_liste = array();
|
||||
foreach($planete->batiments as $i => $niveau)
|
||||
if (isset($_GET['c']))
|
||||
{
|
||||
//Si l'on est pas sur la planète mère, on désactive le laboratoire
|
||||
if ($i == 6 && $queryPlanetes[0]['id'] != $planete->id)
|
||||
continue;
|
||||
//On vérifie qu'il n'y ait pas de technologie en cours de recherche si l'on veut améliorer le centre de recherche
|
||||
if(gpc('c') == 6 && $planete->file_tech->hasObject())
|
||||
erreur('Une technologie est en cours de recherche dans votre laboratoire, vous ne pouvez pas faire de travaux !');
|
||||
|
||||
if (!empty($LANG[$planete->race]['batiments']['noms_sing'][$i]) && Donnee::neededBatiments($i, $planete))
|
||||
{
|
||||
$TEMP_liste[] = array (
|
||||
'id' => $i,
|
||||
'image' => $batimeni[$i],
|
||||
'niveau' => $niveau,
|
||||
'nec_metal' => Donnee::metalBatiments($i, $niveau+1, $planete),
|
||||
'nec_cristal' => Donnee::cristalBatiments($i, $niveau+1, $planete),
|
||||
'nec_hydrogene' => Donnee::hydrogeneBatiments($i, $niveau+1, $planete),
|
||||
'temps' => sec(Donnee::tempsBatiments($i, $niveau+1, $planete)),
|
||||
'enfile' => $planete->file_bat->batiment_objectInFile($i)
|
||||
);
|
||||
}
|
||||
$planete->file_bat->batiment_addObjet(intval(gpc('c')), $planete);
|
||||
|
||||
redirection($VAR['menu']['batiments']);
|
||||
}
|
||||
//Lancement d'une déconstruction
|
||||
if (isset($_GET['d']))
|
||||
{
|
||||
//On vérifie qu'il n'y ait pas de technologie en cours de recherche si l'on veut améliorer le centre de recherche
|
||||
if($_GET['d'] == 6 && $planete->file_tech->hasObject())
|
||||
erreur('Une technologie est en cours de recherche dans votre laboratoire, vous ne pouvez pas faire de travaux !');
|
||||
|
||||
$planete->file_bat->batiment_addDemolition(intval(gpc('d')), $planete);
|
||||
|
||||
redirection($VAR['menu']['batiments']);
|
||||
}
|
||||
//Annulation d'une nouvelle construction
|
||||
if (isset($_GET['a']))
|
||||
{
|
||||
$planete->file_bat->batiment_delObjet(intval(gpc('a')), $planete);
|
||||
|
||||
redirection($VAR['menu']['batiments']);
|
||||
}
|
||||
|
||||
if (SURFACE == "planete")
|
||||
{
|
||||
$page = 'batiments';
|
||||
$TEMP_liste = array();
|
||||
foreach($planete->batiments as $i => $niveau)
|
||||
{
|
||||
//Si l'on est pas sur la planète mère, on désactive le laboratoire
|
||||
if ($i == 6 && $queryPlanetes[0]['id'] != $planete->id)
|
||||
continue;
|
||||
|
||||
if (!empty($LANG[$planete->race]['batiments']['noms_sing'][$i]) && Donnee::neededBatiments($i, $planete))
|
||||
{
|
||||
$TEMP_liste[] = array (
|
||||
'id' => $i,
|
||||
'image' => $batimeni[$i],
|
||||
'niveau' => $niveau,
|
||||
'nec_metal' => Donnee::metalBatiments($i, $niveau+1, $planete),
|
||||
'nec_cristal' => Donnee::cristalBatiments($i, $niveau+1, $planete),
|
||||
'nec_hydrogene' => Donnee::hydrogeneBatiments($i, $niveau+1, $planete),
|
||||
'temps' => sec(Donnee::tempsBatiments($i, $niveau+1, $planete)),
|
||||
'enfile' => $planete->file_bat->batiment_objectInFile($i)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$page = 'batiments_alli';
|
||||
$TEMP_liste = array();
|
||||
foreach($planete->batiments as $i => $niveau)
|
||||
{
|
||||
if (!empty($LANG[$planete->race]['alli_batiments']['noms_sing'][$i]) && Donnee::neededAlli_Batiments($i, $planete))
|
||||
{
|
||||
$TEMP_liste[] = array (
|
||||
'id' => $i,
|
||||
'image' => $alli_batimeni[$i],
|
||||
'niveau' => $niveau,
|
||||
'nec_metal' => Donnee::metalAlli_Batiments($i, $niveau+1, $planete),
|
||||
'nec_cristal' => Donnee::cristalAlli_Batiments($i, $niveau+1, $planete),
|
||||
'nec_hydrogene' => Donnee::hydrogeneAlli_Batiments($i, $niveau+1, $planete),
|
||||
'nec_credits' => Donnee::creditsAlli_Batiments($i, $niveau+1, $planete),
|
||||
'temps' => sec(Donnee::tempsAlli_Batiments($i, $niveau+1, $planete)),
|
||||
'enfile' => $planete->file_bat->batiment_objectInFile($i)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
$template->assign('batiments', $TEMP_liste);
|
||||
$template->assign('file', $planete->file_bat->printFile($planete));
|
||||
|
||||
unset($TEMP_liste, $niveau, $i);
|
||||
?>
|
||||
|
|
@ -5,7 +5,7 @@ $titre = 'Carte spatiale';
|
|||
|
||||
//Récupération d'un numéro d'amas à regarder
|
||||
if (isset($_GET['galaxie']))
|
||||
$g = floor($_GET['galaxie']);
|
||||
$g = intval(gpc('galaxie'));
|
||||
else
|
||||
$g = $planete->galaxie;
|
||||
|
||||
|
|
@ -19,7 +19,7 @@ if ($g > $VAR['nb_amas'])
|
|||
|
||||
//Récupération d'un numéro de système à regarder
|
||||
if (isset($_GET['ss']))
|
||||
$s = floor($_GET['ss']);
|
||||
$s = intval(gpc('ss'));
|
||||
else
|
||||
$s = $planete->ss;
|
||||
|
||||
|
|
@ -68,25 +68,15 @@ for ($i = 1; $i <= $VAR['nb_planete']; $i++)
|
|||
if ($s%5 == 2 && $i == ceil($VAR['nb_planete']/2))
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$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;");
|
||||
$d = $bdd->unique_query("SELECT race, nom_asteroide, debris_met, debris_cri, nom_alliance, image, tag, fondateur FROM $table_alliances WHERE galaxie = $g AND ss = $s;");
|
||||
$bdd->deconnexion();
|
||||
if($d) {
|
||||
if ($d['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&d='.$d['fondateur'].'" class="msg"><span>Message</span></a>', $d['tag']);//, $eA['tag']);
|
||||
}
|
||||
else {
|
||||
if($d)
|
||||
$TEMP_carte[] = array('A', $d['nom_asteroide'], $d['debris_met'], $d['debris_cri'], $d['race'], $d['nom_alliance'], $d['tag'], $d['image'], 0);
|
||||
else
|
||||
$TEMP_carte[] = array('A');
|
||||
}
|
||||
}
|
||||
|
||||
$bdd->reconnexion();
|
||||
$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.image, P.debris_met, P.debris_cri, U.pseudo, U.race, U.politique, U.id_alliance, A.tag FROM $table_planete P INNER JOIN $table_user U ON U.id = P.id_user LEFT OUTER JOIN $table_alliances A ON A.id = U.id_alliance WHERE P.galaxie = $g AND P.ss = $s AND P.position = $i;");
|
||||
|
|
@ -102,4 +92,6 @@ for ($i = 1; $i <= $VAR['nb_planete']; $i++)
|
|||
|
||||
$template->assign('carte', $TEMP_carte);
|
||||
$template->assign('position', array($g, $s, $Gpu, $Spu, $Gmu, $Smu));
|
||||
|
||||
unset($TEMP_carte, $g, $s, $Gpu, $Spu, $Gmu, $Smu, $resultat, $d, $i);
|
||||
?>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
if(!defined('INDEX') || SURFACE != "planete") { header('Location: ./'.$VAR['first_page']); exit; }
|
||||
$page = 'caserne';
|
||||
$titre = $LANG[$planete->race]['batiments']['noms_sing'][9];
|
||||
|
||||
|
|
@ -8,19 +8,21 @@ $titre = $LANG[$planete->race]['batiments']['noms_sing'][9];
|
|||
erreur('Vous devez d\'abord construire une '.$LANG[$planete->race]['batiments']['noms_sing'][9], "red", '?p=batiments', 3500);
|
||||
|
||||
//Lancement d'une nouvelle construction
|
||||
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
|
||||
$planete->file_cas->caserne_addObjet(intval(gpc('v')), $nbv, $planete);
|
||||
|
||||
redirection($VAR['menu']['caserne']);
|
||||
}
|
||||
if (isset($_GET['c']) && ($id = intval(gpc('c'))) >= 0 && $nbc = floor(gpc('cas'.$id, 'post')))
|
||||
{
|
||||
$planete->file_cas->caserne_addObjet($id, $nbc, $planete);
|
||||
|
||||
redirection($VAR['menu']['caserne']);
|
||||
}
|
||||
//Annulation d'une nouvelle construction
|
||||
if (isset($_GET['a'])) {
|
||||
$n = intval(gpc('n'));
|
||||
if (empty($n)) $n = 1;
|
||||
$planete->file_cas->caserne_delObjet(intval(gpc('a')), $n, $planete);
|
||||
|
||||
redirection($VAR['menu']['caserne']);
|
||||
}
|
||||
if (isset($_GET['a']))
|
||||
{
|
||||
$n = intval(gpc('s'));
|
||||
if (empty($n)) $n = 1;
|
||||
$planete->file_cas->caserne_delObjet(intval(gpc('a')), $n, $planete);
|
||||
|
||||
redirection($VAR['menu']['caserne']);
|
||||
}
|
||||
|
||||
$TEMP_liste = array();
|
||||
foreach($planete->casernes as $i => $nombre)
|
||||
|
|
@ -42,4 +44,6 @@ $titre = $LANG[$planete->race]['batiments']['noms_sing'][9];
|
|||
|
||||
$template->assign('unites', $TEMP_liste);
|
||||
$template->assign('file', $planete->file_cas->printFile($planete));
|
||||
|
||||
unset($TEMP_liste, $i, $n, $niveau);
|
||||
?>
|
||||
|
|
@ -1,26 +1,38 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
if(!defined('INDEX')) { header('Location: ./'.$VAR['first_page']); exit; }
|
||||
$page = 'chantierspatial';
|
||||
$titre = ucfirst($LANG[$planete->race]['batiments']['noms_sing'][8]);
|
||||
if (SURFACE == "planete")
|
||||
$titre = ucfirst($LANG[$planete->race]['batiments']['noms_sing'][8]);
|
||||
else
|
||||
$titre = ucfirst($LANG[$planete->race]['alli_batiments']['noms_sing'][3]);
|
||||
|
||||
|
||||
//Si l'on est sur un astéroide, on vérifie que le joueur ait les permissions nécessaire
|
||||
if (SURFACE == "asteroide" && !($planete->permissions_alliance &2))
|
||||
erreur("Vous n'avez pas le grade requis pour vous occuper des vaisseaux de l'astéroide.");
|
||||
|
||||
//Vérification que le joueur ait bien un labo avant d'afficher la page
|
||||
if ($planete->batiments[8] <= 0)
|
||||
if (SURFACE == "planete" && $planete->batiments[8] <= 0)
|
||||
erreur('Vous devez d\'abord construire un '.$LANG[$planete->race]['batiments']['noms_sing'][8], "red", '?p=batiments', 3500);
|
||||
elseif(SURFACE == "asteroide" && $planete->batiments[3] <= 0)
|
||||
erreur('Vous devez d\'abord construire une '.$LANG[$planete->race]['alli_batiments']['noms_sing'][3], "red", '?p=batiments', 3500);
|
||||
|
||||
//Lancement d'une nouvelle construction
|
||||
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
|
||||
$planete->file_vais->vaisseaux_addObjet(intval(gpc('v')), $nbv, $planete);
|
||||
|
||||
redirection($VAR['menu']['chantierspatial']);
|
||||
}
|
||||
if (isset($_GET['v']) && ($id = intval(gpc('v'))) >= 0 && $nbv = floor(gpc('vais'.$id, 'post')))
|
||||
{
|
||||
$planete->file_vais->vaisseaux_addObjet($id, $nbv, $planete);
|
||||
|
||||
redirection($VAR['menu']['chantierspatial']);
|
||||
}
|
||||
//Annulation d'une nouvelle construction
|
||||
if (isset($_GET['a'])) {
|
||||
$n = intval(gpc('n'));
|
||||
if (empty($n)) $n = 1;
|
||||
$planete->file_vais->vaisseaux_delObjet(intval(gpc('a')), $n, $planete);
|
||||
|
||||
redirection($VAR['menu']['chantierspatial']);
|
||||
}
|
||||
if (isset($_GET['a']))
|
||||
{
|
||||
$n = intval(gpc('s'));
|
||||
if (empty($n)) $n = 1;
|
||||
$planete->file_vais->vaisseaux_delObjet(intval(gpc('a')), $n, $planete);
|
||||
|
||||
redirection($VAR['menu']['chantierspatial']);
|
||||
}
|
||||
|
||||
$TEMP_liste = array();
|
||||
foreach($planete->vaisseaux as $i => $nombre)
|
||||
|
|
@ -42,4 +54,6 @@ $titre = ucfirst($LANG[$planete->race]['batiments']['noms_sing'][8]);
|
|||
|
||||
$template->assign('vaisseaux', $TEMP_liste);
|
||||
$template->assign('file', $planete->file_vais->printFile($planete));
|
||||
|
||||
unset($TEMP_liste, $i, $n, $niveau);
|
||||
?>
|
||||
|
|
@ -1,6 +1,11 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
if(!defined('INDEX') || SURFACE != "planete") { header('Location: ./'.$VAR['first_page']); exit; }
|
||||
$page = $p;
|
||||
$onglet = gpc('n');
|
||||
if (!empty($onglet))
|
||||
$template->assign('onglet', $onglet);
|
||||
else
|
||||
$template->assign('onglet', "unites");
|
||||
$titre = ucfirst($LANG[$planete->race]['batiments']['noms_sing'][7]);
|
||||
|
||||
//Vérification que le joueur ait bien un labo avant d'afficher la page
|
||||
|
|
@ -8,26 +13,28 @@ $titre = ucfirst($LANG[$planete->race]['batiments']['noms_sing'][7]);
|
|||
erreur('Vous devez d\'abord construire un '.$LANG[$planete->race]['batiments']['noms_sing'][7], "red", '?p=batiments', 3500);
|
||||
|
||||
//Lancement d'une nouvelle construction
|
||||
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
|
||||
$planete->file_ter->terrestre_addObjet(intval(gpc('v')), $nbv, $planete);
|
||||
|
||||
redirection($VAR['menu'][$p]);
|
||||
}
|
||||
if (isset($_GET['v']) && ($id = intval(gpc('v'))) >= 0 && $nbv = floor(gpc('terr'.$id, 'post')))
|
||||
{
|
||||
$planete->file_ter->terrestre_addObjet($id, $nbv, $planete);
|
||||
|
||||
redirection($VAR['menu'][$p].'&n='.$onglet);
|
||||
}
|
||||
//Annulation d'une nouvelle construction
|
||||
if (isset($_GET['a'])) {
|
||||
$n = intval(gpc('n'));
|
||||
if (empty($n)) $n = 1;
|
||||
$planete->file_ter->terrestre_delObjet(intval(gpc('a')), $n, $planete);
|
||||
|
||||
redirection($VAR['menu'][$p]);
|
||||
}
|
||||
if (isset($_GET['a']))
|
||||
{
|
||||
$n = intval(gpc('s'));
|
||||
if (empty($n)) $n = 1;
|
||||
$planete->file_ter->terrestre_delObjet(intval(gpc('a')), $n, $planete);
|
||||
|
||||
redirection($VAR['menu'][$p].'&n='.$onglet);
|
||||
}
|
||||
|
||||
$TEMP_liste = array();
|
||||
foreach($planete->terrestres as $i => $nombre)
|
||||
{
|
||||
$type = Donnee::typeTerrestre($i);
|
||||
|
||||
if (!empty($LANG[$planete->race]['terrestre']['noms_sing'][$i]) && (($p == "defenses" && !$type) || ($p == "chantierterrestre" && $type)) && Donnee::neededTerrestre($i, $planete))
|
||||
if (!empty($LANG[$planete->race]['terrestre']['noms_sing'][$i]) && (($onglet == "defenses" && !$type) || ($onglet != "defenses" && $type)) && Donnee::neededTerrestre($i, $planete))
|
||||
{
|
||||
$TEMP_liste[] = array (
|
||||
'id' => $i,
|
||||
|
|
@ -44,4 +51,6 @@ $titre = ucfirst($LANG[$planete->race]['batiments']['noms_sing'][7]);
|
|||
|
||||
$template->assign('unites', $TEMP_liste);
|
||||
$template->assign('file', $planete->file_ter->printFile($planete));
|
||||
|
||||
unset($TEMP_liste, $i, $n, $niveau, $onglet);
|
||||
?>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
if(!defined('INDEX') || SURFACE != "planete") { header('Location: ./'.$VAR['first_page']); exit; }
|
||||
$page = 'description';
|
||||
$titre = 'Détails';
|
||||
|
||||
|
|
@ -78,14 +78,14 @@ function tableauProd($ibat,$nivo)
|
|||
|
||||
if (empty($_GET['r']) || ($_GET['r'] != 'humain' && $_GET['r'] != 'covenant'))
|
||||
$_GET['r'] = $planete->race;
|
||||
$race = $_GET['r'];
|
||||
$race = gpc('r');
|
||||
$template->assign('raceAff', $race);
|
||||
|
||||
if (isset($_GET['t']) && is_numeric($_GET['t']) && !empty($LANG[$race]["technologies"]["noms_sing"][$_GET['b']][$_GET['t']]))
|
||||
{
|
||||
$template->assign('type', 'technologies');
|
||||
$b = intval($_GET['b']);
|
||||
$t = intval($_GET['t']);
|
||||
$b = intval(gpc('b'));
|
||||
$t = intval(gpc('t'));
|
||||
$template->assign('branche', $b);
|
||||
$template->assign('id', $t);
|
||||
|
||||
|
|
@ -96,7 +96,7 @@ if (isset($_GET['t']) && is_numeric($_GET['t']) && !empty($LANG[$race]["technolo
|
|||
elseif (isset($_GET['b']) && is_numeric($_GET['b']) && !empty($LANG[$race]["batiments"]["noms_sing"][$_GET['b']]))
|
||||
{
|
||||
$template->assign('type', 'batiments');
|
||||
$t = intval($_GET['b']);
|
||||
$t = intval(gpc('b'));
|
||||
$template->assign('id', $t);
|
||||
$template->assign('image', $batimeni[$t]);
|
||||
$template->assign('tableau_prod', tableauProd($t, $planete->batiments[$t]));
|
||||
|
|
@ -109,19 +109,21 @@ elseif (isset($_GET['b']) && is_numeric($_GET['b']) && !empty($LANG[$race]["bati
|
|||
elseif (isset($_GET['v']) && is_numeric($_GET['v']) && !empty($LANG[$race]["vaisseaux"]["noms_sing"][$_GET['v']]))
|
||||
{
|
||||
$template->assign('type', 'vaisseaux');
|
||||
$t = intval($_GET['v']);
|
||||
$t = intval(gpc('v'));
|
||||
$template->assign('id', $t);
|
||||
$template->assign('image', $nomvaisi[$t]);
|
||||
|
||||
$template->assign('ressourcesNext', array(Donnee::metalVaisseaux($t, $planete), Donnee::cristalVaisseaux($t, $planete), Donnee::hydrogeneVaisseaux($t, $planete), Donnee::tempsVaisseaux($t, $planete)));
|
||||
|
||||
$template->assign('etat', Donnee::print_neededVaisseaux($t, $planete, $race));
|
||||
$template->assign('caract', array($nomvais_at[$t], $nomvais_bc[$t], $nomvais_pv[$t], $nomvais_rs[$t]));
|
||||
}
|
||||
elseif (isset($_GET['d']) && is_numeric($_GET['d']) && !empty($LANG[$race]["terrestre"]["noms_sing"][$_GET['v']]))
|
||||
elseif (isset($_GET['d']) && is_numeric($_GET['d']) && !empty($LANG[$race]["terrestre"]["noms_sing"][$_GET['d']]))
|
||||
{
|
||||
$template->assign('type', 'terrestre');
|
||||
$t = $_GET['d'];
|
||||
$t = gpc('d');
|
||||
$template->assign('id', $t);
|
||||
$template->assign('image', $nomterri[$t]);
|
||||
|
||||
$template->assign('ressourcesNext', array(Donnee::metalTerrestre($t, $planete), Donnee::cristalTerrestre($t, $planete), Donnee::hydrogeneTerrestre($t, $planete), Donnee::tempsTerrestre($t, $planete)));
|
||||
|
||||
|
|
@ -134,15 +136,17 @@ elseif (isset($_GET['d']) && is_numeric($_GET['d']) && !empty($LANG[$race]["terr
|
|||
elseif (isset($_GET['c']) && is_numeric($_GET['c']) && !empty($LANG[$race]["caserne"]["noms_sing"][$_GET['c']]))
|
||||
{
|
||||
$template->assign('type', 'caserne');
|
||||
$t = $_GET['c'];
|
||||
$t = gpc('c');
|
||||
$template->assign('id', $t);
|
||||
$template->assign('image', $casernei[$t]);
|
||||
|
||||
$template->assign('ressourcesNext', array(Donnee::metalCaserne($t, $planete), Donnee::cristalCaserne($t, $planete), Donnee::hydrogeneCaserne($t, $planete), Donnee::tempsCaserne($t, $planete)));
|
||||
|
||||
$template->assign('etat', Donnee::print_neededCaserne($t, $planete, $race));
|
||||
$template->assign('caract', array('!!', '!!', '!!'));
|
||||
}
|
||||
else {
|
||||
header('Location: ?p=accueil');
|
||||
}
|
||||
else
|
||||
redirection('?p=accueil');
|
||||
|
||||
unset($t, $race);
|
||||
?>
|
||||
199
onyx2/include/game/jeu/diplomatie.php
Normal file
199
onyx2/include/game/jeu/diplomatie.php
Normal file
|
|
@ -0,0 +1,199 @@
|
|||
<?php
|
||||
if(!defined('INDEX') || SURFACE != "asteroide") { header('Location: ../'); exit; }
|
||||
|
||||
$onglet = strtolower(gpc('o'));
|
||||
if ($onglet == "new")
|
||||
{
|
||||
$page = "diplomatie/nouveau";
|
||||
|
||||
//On vérifie que le joueur ait les permissions pour modifier les grades
|
||||
if (!($planete->permissions_alliance &8))
|
||||
erreur("Vous n'avez pas le grade nécessaire pour créer des pactes !");
|
||||
|
||||
$type = intval(gpc("type", 'post'));
|
||||
$nom_alli = gpc("nom_alli", 'post');
|
||||
if (isset($_POST["type"]) && !empty($nom_alli) && $type >= 0 && $type < 5)
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$bdd->escape($nom_alli);
|
||||
$alli = $bdd->unique_query("SELECT id FROM $table_alliances WHERE nom_alliance LIKE '$nom_alli';");
|
||||
if (empty($alli))
|
||||
erreur("Impossible de trouver cette alliance. Vérifiez le nom !");
|
||||
//On détecte tous les types de pactes en cas de guerre (pour éviter d'attaquer avec un pacte de non agression !
|
||||
if ($type)
|
||||
$pacte = $bdd->query("SELECT id FROM $table_alliances_pactes WHERE type = $type AND time_fin = 0 AND (accepte = 0 OR accepte = 1) AND ((id_alliance1 = ".$planete->id." AND id_alliance2 = ".$alli['id'].") OR (id_alliance2 = ".$planete->id." AND id_alliance1 = ".$alli['id']."));");
|
||||
else
|
||||
$pacte = $bdd->query("SELECT id FROM $table_alliances_pactes WHERE time_fin = 0 AND (accepte = 0 OR accepte = 1) AND ((id_alliance1 = ".$planete->id." AND id_alliance2 = ".$alli['id'].") OR (id_alliance2 = ".$planete->id." AND id_alliance1 = ".$alli['id']."));");
|
||||
|
||||
if (!empty($pacte) && !$type)
|
||||
erreur("Avant de déclarer une guerre, veuillez abroger tous vos pactes de paix !");
|
||||
elseif (!empty($pacte))
|
||||
erreur("Vous avez déjà un pacte similaire avec cette alliance !");
|
||||
|
||||
if ($type)
|
||||
$bdd->query("INSERT INTO $table_alliances_pactes (id_alliance1, id_alliance2, type, time_creation) VALUES (".$planete->id.", ".$alli['id'].", $type, ".time().");");
|
||||
else
|
||||
$bdd->query("INSERT INTO $table_alliances_pactes (id_alliance1, id_alliance2, type, time_creation, accepte) VALUES (".$planete->id.", ".$alli['id'].", $type, ".time().", 1);");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if ($type)
|
||||
erreur("La demande de pacte a bien été enregistrée.", "green");
|
||||
else
|
||||
erreur("La déclaration a bien été enregistrée.", "green");
|
||||
}
|
||||
elseif(!empty($_GET['c']))
|
||||
{
|
||||
$id = intval(gpc('c'));
|
||||
$bdd->reconnexion();
|
||||
$demand = $bdd->unique_query("SELECT id_alliance1, id_alliance2, accepte FROM $table_alliances_pactes WHERE id = $id AND (id_alliance2 = ".$planete->id." OR id_alliance1 = ".$planete->id.") AND type = 0;");
|
||||
if (!isset($demand['accepte']) || ($demand['accepte'] == 1 && $planete->id == $demand['id_alliance2']) || ($demand['accepte'] == 2 && $planete->id == $demand['id_alliance1']))
|
||||
{
|
||||
$bdd->deconnexion();
|
||||
erreur("Impossible de demander le cesser le feu, n'êtes-vous pas dans la position du demandeur !");
|
||||
}
|
||||
elseif ($demand['accepte'] == 0)
|
||||
{
|
||||
$bdd->deconnexion();
|
||||
erreur("Une demande de cesser le feu est déjà en cours !");
|
||||
}
|
||||
elseif ($demand['accepte'] == 1)
|
||||
{
|
||||
$bdd->query("UPDATE $table_alliances_pactes SET accepte = 0 WHERE id = $id AND id_alliance1 = ".$planete->id." AND accepte = 1;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
erreur("La demande de cesser le feu a bien été transmise.", "green");
|
||||
}
|
||||
elseif ($demand['accepte'] == 2)
|
||||
{
|
||||
$bdd->query("UPDATE $table_alliances_pactes SET accepte = 0, id_alliance2 = id_alliance1, id_alliance1 = ".$planete->id." WHERE id = $id AND id_alliance2 = ".$planete->id." AND accepte = 2;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
erreur("La demande de cesser le feu a bien été transmise.", "green");
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ($onglet == "archives")
|
||||
{
|
||||
$page = "diplomatie/archives";
|
||||
|
||||
$bdd->reconnexion();
|
||||
$guerres = $bdd->query("SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance2 WHERE P.type = 0 AND P.id_alliance1 = ".$planete->id." AND accepte = 1 AND time_fin != 0
|
||||
UNION SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance1 WHERE P.type = 0 AND P.id_alliance2 = ".$planete->id." AND accepte = 1 AND time_fin != 0 ORDER BY nom_alliance DESC;");
|
||||
$pna = $bdd->query("SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance2 WHERE P.type = 1 AND P.id_alliance1 = ".$planete->id." AND accepte = 1 AND time_fin != 0
|
||||
UNION SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance1 WHERE P.type = 1 AND P.id_alliance2 = ".$planete->id." AND accepte = 1 AND time_fin != 0 ORDER BY nom_alliance DESC;");
|
||||
$pc = $bdd->query("SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance2 WHERE P.type = 2 AND P.id_alliance1 = ".$planete->id." AND accepte = 1 AND time_fin != 0
|
||||
UNION SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance1 WHERE P.type = 2 AND P.id_alliance2 = ".$planete->id." AND accepte = 1 AND time_fin != 0 ORDER BY nom_alliance DESC;");
|
||||
$pm = $bdd->query("SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance2 WHERE P.type = 3 AND P.id_alliance1 = ".$planete->id." AND accepte = 1 AND time_fin != 0
|
||||
UNION SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance1 WHERE P.type = 3 AND P.id_alliance2 = ".$planete->id." AND accepte = 1 AND time_fin != 0 ORDER BY nom_alliance DESC;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$template->assign("pnas", $pna);
|
||||
$template->assign("guerres", $guerres);
|
||||
$template->assign("pcs", $pc);
|
||||
$template->assign("pms", $pm);
|
||||
}
|
||||
elseif ($onglet == "encours")
|
||||
{
|
||||
$page = "diplomatie/encours";
|
||||
|
||||
$bdd->reconnexion();
|
||||
$guerres = $bdd->query("SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance2 WHERE P.type = 0 AND P.id_alliance1 = ".$planete->id." AND (time_fin = 0 OR time_fin > ".time().")
|
||||
UNION SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance1 WHERE P.type = 0 AND P.id_alliance2 = ".$planete->id." AND (time_fin = 0 OR time_fin > ".time().")
|
||||
ORDER BY nom_alliance DESC;");
|
||||
$pna = $bdd->query("SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance2 WHERE P.type = 1 AND P.id_alliance1 = ".$planete->id." AND accepte = 1 AND (time_fin = 0 OR time_fin > ".time().")
|
||||
UNION SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance1 WHERE P.type = 1 AND P.id_alliance2 = ".$planete->id." AND accepte = 1 AND (time_fin = 0 OR time_fin > ".time().")
|
||||
ORDER BY nom_alliance DESC;");
|
||||
$pc = $bdd->query("SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance2 WHERE P.type = 2 AND P.id_alliance1 = ".$planete->id." AND accepte = 1 AND (time_fin = 0 OR time_fin > ".time().")
|
||||
UNION SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance1 WHERE P.type = 2 AND P.id_alliance2 = ".$planete->id." AND accepte = 1 AND (time_fin = 0 OR time_fin > ".time().")
|
||||
ORDER BY nom_alliance DESC;");
|
||||
$pm = $bdd->query("SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance2 WHERE P.type = 3 AND P.id_alliance1 = ".$planete->id." AND accepte = 1 AND (time_fin = 0 OR time_fin > ".time().")
|
||||
UNION SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance1 WHERE P.type = 3 AND P.id_alliance2 = ".$planete->id." AND accepte = 1 AND (time_fin = 0 OR time_fin > ".time().")
|
||||
ORDER BY nom_alliance DESC;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$template->assign("pnas", $pna);
|
||||
$template->assign("guerres", $guerres);
|
||||
$template->assign("pcs", $pc);
|
||||
$template->assign("pms", $pm);
|
||||
}
|
||||
else
|
||||
{
|
||||
$onglet = "actus";
|
||||
$page = "diplomatie/general";
|
||||
|
||||
if ($planete->permissions_alliance &8)
|
||||
{
|
||||
if (!empty($_GET['a']))
|
||||
{
|
||||
$id = intval(gpc('a'));
|
||||
$bdd->reconnexion();
|
||||
$demand = $bdd->unique_query("SELECT type FROM $table_alliances_pactes WHERE id = $id AND id_alliance2 = ".$planete->id." AND accepte = 0;");
|
||||
if (!isset($demand['type']))
|
||||
{
|
||||
$bdd->deconnexion();
|
||||
erreur("Impossible de trouver le pacte !");
|
||||
}
|
||||
elseif ($demand['type'] == 0)
|
||||
{
|
||||
$bdd->query("UPDATE $table_alliances_pactes SET accepte = 1, time_fin = ".time()." WHERE id = $id AND id_alliance2 = ".$planete->id." AND accepte = 0;");
|
||||
$bdd->deconnexion();
|
||||
erreur("C'est la fin de la guerre, vous vennez d'accepter le cesser le feu !", "orange", $VAR['menu']['diplomatie']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->query("UPDATE $table_alliances_pactes SET accepte = 1, time_creation = ".time()." WHERE id = $id AND id_alliance2 = ".$planete->id." AND accepte = 0;");
|
||||
$bdd->deconnexion();
|
||||
erreur("Le pacte a bien été accepté.", "green", $VAR['menu']['diplomatie']);
|
||||
}
|
||||
}
|
||||
elseif (!empty($_GET['r']))
|
||||
{
|
||||
$id = intval(gpc('r'));
|
||||
$bdd->reconnexion();
|
||||
$demand = $bdd->unique_query("SELECT type FROM $table_alliances_pactes WHERE id = $id AND id_alliance2 = ".$planete->id." AND accepte = 0;");
|
||||
if (!isset($demand['type']))
|
||||
{
|
||||
$bdd->deconnexion();
|
||||
erreur("Impossible de trouver le pacte !");
|
||||
}
|
||||
elseif ($demand['type'] == 0)
|
||||
{
|
||||
$bdd->query("UPDATE $table_alliances_pactes SET accepte = 2 WHERE id = $id AND id_alliance2 = ".$planete->id." AND accepte = 0;");
|
||||
$bdd->deconnexion();
|
||||
erreur("La guerre continue, vous vennez de refuser le cesser le feu !<br />Se sera désormais à vous de proposer un cesser le feu à la fin de la guerre.", "orange", $VAR['menu']['diplomatie']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->query("UPDATE $table_alliances_pactes SET accepte = 2 WHERE id = $id AND id_alliance2 = ".$planete->id." AND accepte = 0;");
|
||||
$bdd->deconnexion();
|
||||
erreur("Le pacte a bien été refusé.", "orange", $VAR['menu']['diplomatie']);
|
||||
}
|
||||
}
|
||||
elseif (!empty($_GET['s']))
|
||||
{
|
||||
$id = intval(gpc('s'));
|
||||
$bdd->reconnexion();
|
||||
$bdd->query("UPDATE $table_alliances_pactes SET time_fin = ".time()." WHERE id = $id AND (id_alliance2 = ".$planete->id." OR id_alliance1 = ".$planete->id.") AND accepte = 1;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
erreur("Le pacte a bien été abrogé.", "orange", $VAR['menu']['diplomatie']);
|
||||
}
|
||||
}
|
||||
|
||||
$bdd->reconnexion();
|
||||
$demand = $bdd->query("SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance1 WHERE P.id_alliance2 = ".$planete->id." AND accepte = 0 ORDER BY time_demand DESC;");
|
||||
$actus_alli = $bdd->query("SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance2 WHERE P.id_alliance1 = ".$planete->id."
|
||||
UNION SELECT P.*, A.nom_alliance, A.tag, A.id AS alliance_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance1 WHERE P.id_alliance2 = ".$planete->id." AND P.accepte != 0
|
||||
ORDER BY time_demand DESC LIMIT 5;");
|
||||
$actus_world = $bdd->query("SELECT P.*, A.tag AS tag1, A.nom_alliance AS nom_alliance1, A.id AS alliance1_id, B.tag AS tag2, B.nom_alliance AS nom_alliance2, B.id AS alliance2_id FROM $table_alliances_pactes P INNER JOIN $table_alliances A ON A.id = P.id_alliance2 INNER JOIN $table_alliances B ON B.id = P.id_alliance1 WHERE P.accepte = 1 AND P.id_alliance1 != ".$planete->id." AND P.id_alliance2 != ".$planete->id." ORDER BY time_demand DESC LIMIT 5;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$template->assign("demandes", $demand);
|
||||
$template->assign("actus_alli", $actus_alli);
|
||||
$template->assign("actus_world", $actus_world);
|
||||
unset($demand);
|
||||
}
|
||||
|
||||
$template->assign("onglet", $onglet);
|
||||
unset($onglet);
|
||||
?>
|
||||
|
|
@ -5,367 +5,18 @@ $page = 'flotte'; //Définition d'un nom de page inexistant, mais permet de pass
|
|||
include_once("game/Class/class.flotte.php");
|
||||
|
||||
//Création de flotte : envoi final
|
||||
if (!empty($_POST['cds']))
|
||||
{
|
||||
//Récupération des informations envoyées
|
||||
$end_galaxie = floor(gpc('amas', 'post'));
|
||||
$end_ss = floor(gpc('ss', 'post'));
|
||||
$end_pos = floor(gpc('pos', 'post'));
|
||||
$mission = floor(gpc('mission', 'post'));
|
||||
$EBmetal = floor(str_replace(' ', '', gpc('metal', 'post')));
|
||||
$EBcristal = floor(str_replace(' ', '', gpc('cristal', 'post')));
|
||||
$EBhydrogene = floor(str_replace(' ', '', gpc('hydrogene', 'post')));
|
||||
$vitesse = floor(gpc('vitesse', 'post'))/100;
|
||||
|
||||
$bdd->reconnexion();
|
||||
$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 (!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
|
||||
else*/if ($mission == 3 && !ATTAQUES)
|
||||
erreur('Les attaques sont désactivées pour le moment. Pour plus d\'informations, <a href="'.$VAR["link"]["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 > $VAR['nb_amas'] || $end_ss > $VAR['nb_systeme'] || $end_pos > $VAR['nb_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 > 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');
|
||||
//On vérifie la mission, si elle est d'espionner, il faut qu'il y ait des sondes
|
||||
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 == 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 && $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 > $planete->metal) || (!empty($EBcristal) && !$EBcristal > $planete->cristal) || (!empty($EBhydrogene) && !$EBhydrogene > $planete->hydrogene))
|
||||
erreur('Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.', "red", '?p=flotte');
|
||||
//On vérifie que l'on n'envoie pas des ressources négatives
|
||||
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 > 1)
|
||||
erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte');
|
||||
else
|
||||
{
|
||||
//On vérifie qu'il n'y ait pas une interaction entre deux multi-comptes
|
||||
$cnt = count($multi);
|
||||
if ($cnt > 1 && $mission == 1)
|
||||
{
|
||||
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).');
|
||||
}
|
||||
}
|
||||
|
||||
$bdd->reconnexion();
|
||||
$resultat = $bdd->unique_query("SELECT id, id_user, debris_met, debris_cri FROM $table_planete WHERE galaxie = $end_galaxie AND ss = $end_ss AND position = $end_pos;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
//Si la mission est d'attaquer, on vérifie que le joueur cible ne soit pas ne mode vacances ou qu'il soit tout jeune
|
||||
if ($mission == 3)
|
||||
{
|
||||
//Récupération de l'ID du joueur cible
|
||||
$bdd->reconnexion();
|
||||
$resultatu = $bdd->unique_query("SELECT mv, time_inscription FROM $table_user WHERE id = ".$resultat['id_user'].";");
|
||||
$bdd->deconnexion();
|
||||
if ($resultatu['mv'] > 0)
|
||||
erreur('Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.', "red", '?p=flotte', 3000); //TODO Mettre le numéro du mode vacances et non > 0 !!!
|
||||
elseif ($resultatu['time_inscription'] + 604800 > time())
|
||||
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');
|
||||
}
|
||||
//TODO Autoriser l'espionnage sur les planètes inhabités
|
||||
elseif ($mission == 5 && !$resultat)
|
||||
erreur('Impossible d\'espionner des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000);
|
||||
elseif ($mission == 1 && !$resultat)
|
||||
erreur('Impossible de transporter des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000);
|
||||
elseif ($mission == 2 && $resultat)
|
||||
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 == 5 && $resultat['id_user'] == $id_user)
|
||||
erreur('La planète que vous désirez espionner vous appartient !', "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");
|
||||
}
|
||||
|
||||
if (!isset($SESS->values['vais']) || !is_array($SESS->values['vais']))
|
||||
erreur('Erreur lors de la création de la flotte, absence de données des vaisseaux !', "red", '?p=flotte');
|
||||
else {
|
||||
//Envoie de la flotte
|
||||
$flotte = new flotte();
|
||||
|
||||
$sauv = $planete->vaisseaux; //Sauvegarde du contenu de la flotte avant lancement
|
||||
$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
|
||||
$nbVais += $vaisseau;
|
||||
}
|
||||
elseif ($vaisseau < 0) $vaisseau = 0;
|
||||
|
||||
$flotte->vaisseaux[$key] = $vaisseau;
|
||||
$sauv[$key] -= $vaisseau;
|
||||
}
|
||||
|
||||
if ($nbVais <= 0)
|
||||
erreur('Vous devez envoyer au moins un vaisseau pour former une flotte !', "red", '?p=flotte');
|
||||
elseif (!isset($SESS->values['flnbvais']) || $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:'.$VAR['mail_admin'].'">contactez un administrateur</a>.', "red", '?p=flotte', 4500);
|
||||
|
||||
$flotte->nom = gpc('nomflotte', 'post');
|
||||
$flotte->mission = $mission;
|
||||
$flotte->start_planete = $planete;
|
||||
$flotte->start_time = time();
|
||||
|
||||
//On traite le cas des planètes qui n'existent pas (dans le cas de la mission colonisation)
|
||||
if ($mission == 2)
|
||||
{
|
||||
$flotte->end_type = 1;
|
||||
$flotte->end_planete = $end_galaxie.':'.$end_ss.':'.$end_pos;
|
||||
}
|
||||
else
|
||||
{
|
||||
$flotte->end_type = 0;
|
||||
$flotte->end_planete = $resultat['id'];
|
||||
}
|
||||
|
||||
$calc = $flotte->calc_deplacement($planete->galaxie, $planete->ss, $planete->position, $end_galaxie, $end_ss, $end_pos, $vitesse, false, true);
|
||||
$flotte->end_time = $calc[0];
|
||||
$conso = $calc[1];
|
||||
|
||||
//On double la consomation si on fait un aller-retour
|
||||
if ($mission == 1 || $mission == 2 || $mission == 4 || $mission == 5)
|
||||
$conso *= 2;
|
||||
|
||||
//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 < $EBmetal + $EBcristal + $EBhydrogene + $conso)
|
||||
erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent. '.$flotte->contenuMax, "red", '?p=flotte', 3500);
|
||||
elseif ($planete->metal < $EBmetal || $planete->cristal < $EBcristal || $planete->hydrogene < $EBhydrogene + $conso)
|
||||
erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500);
|
||||
else
|
||||
{
|
||||
$flotte->contenu = array($EBmetal, $EBcristal, $EBhydrogene);
|
||||
$flotte->modifFlotte = "INSERT";
|
||||
|
||||
//On actualise la planète
|
||||
$planete->metal -= $EBmetal;
|
||||
$planete->cristal -= $EBcristal;
|
||||
$planete->hydrogene -= floor($EBhydrogene + $conso);
|
||||
$planete->vaisseaux = $sauv;
|
||||
$planete->addModif("vaisseaux");
|
||||
|
||||
unset($flotte);
|
||||
unset($SESS->values['vais']);
|
||||
$SESS->put();
|
||||
|
||||
erreur('Votre flotte a été envoyée avec succès.', "green", '?p=flotte', 4000);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!empty($_POST['cds']) && !empty($SESS->values["prepFlottes"][$_POST['cds']]))
|
||||
require('game/jeu/flottes/envoyer.php');
|
||||
//Restauration d'une flotte sauvegardée
|
||||
elseif (isset($_GET['c']) && !empty($SESS->values["prepFlottes"][$_GET['c']]))
|
||||
require('game/jeu/flottes/restaure.php');
|
||||
//Création de flotte : page 2
|
||||
elseif (!empty($_POST['envoie']))
|
||||
{
|
||||
$nombreVaisseau = 0;
|
||||
foreach ($planete->vaisseaux as $key => $vaisseau){
|
||||
$v = gpc('v'.$key, 'post');
|
||||
if (!is_numeric($v))
|
||||
$v = 0;
|
||||
else
|
||||
$v = (int)abs($v);
|
||||
|
||||
//On vérifie qu'il y a suffisamment de vaisseaux sur la planète
|
||||
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 enregistre les paramètres en session
|
||||
$SESS->values['flnbvais'] = $nombreVaisseau;
|
||||
$SESS->values['forceFlotte'] = false;
|
||||
|
||||
//Génération de la liste de mission possible avec les vaisseaux de la flotte
|
||||
$missions = array("Stationner", "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'][6] || $SESS->values['vais'][13]) $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>');
|
||||
|
||||
//Récupération des destinations favorites et des colonies
|
||||
$favoris = array();
|
||||
include_once("game/Class/class.tinyplanete.php");
|
||||
foreach ($planete->destinationsFavoris as $fav)
|
||||
{
|
||||
$fav_Planete = new TinyPlanete($fav);
|
||||
if (!empty($fav_Planete->nom_planete)) $favoris[$fav_Planete->id] = $fav_Planete->nom_planete;
|
||||
else $favoris[$fav_Planete->id] = '['.$fav_Planete->galaxie.':'.$fav_Planete->ss.':'.$fav_Planete->position.']';
|
||||
}
|
||||
$favorisC = array();
|
||||
foreach ($queryPlanetes as $fav)
|
||||
{
|
||||
if (!empty($fav['nom_planete'])) $favorisC[$fav['id']] = $fav['nom_planete'];
|
||||
else $favorisC[$fav['id']] = '['.$fav['galaxie'].':'.$fav['ss'].':'.$fav['position'].']';
|
||||
}
|
||||
$template->assign('favoris', $favoris);
|
||||
$template->assign('favorisColonies', $favorisC);
|
||||
}
|
||||
elseif (!empty($_POST['envoie']) || !empty($_POST['groupe']))
|
||||
require('game/jeu/flottes/preparer.php');
|
||||
//Affichage du détail d'une flotte
|
||||
elseif (!empty($_GET['n']))
|
||||
{
|
||||
$idN = ceil(gpc('n'));
|
||||
|
||||
$flotteN = new Flotte($idN, false);
|
||||
$flotteN->load_planete();
|
||||
|
||||
if ($flotteN->id_flotte == 0 || $flotteN->start_planete->id_user != $planete->id_user)
|
||||
erreur('Impossible de trouver cette flotte !', "red", '?p=flotte', 1500);
|
||||
else
|
||||
{
|
||||
//Changement du nom de la flotte
|
||||
if (!empty($_POST['nomflotte']))
|
||||
{
|
||||
$nouvNom = gpc('nomflotte', 'post');
|
||||
$flotteN->nom = $nouvNom;
|
||||
$flotteN->addModifFlotte("nom");
|
||||
|
||||
redirection("?p=flotte&n=".$idN);
|
||||
}
|
||||
|
||||
//Annulation de la mission
|
||||
if (isset($_GET['a']) && isset($SESS->values['ret_fleet']) && $_GET['a'] == $SESS->values['ret_fleet'])
|
||||
{
|
||||
//Calcul du temps passé depuis le lancement de la flotte
|
||||
$tpsDD = time() - $flotteN->start_time;
|
||||
if ($flotteN->mission == '6')
|
||||
erreur('Votre flotte est déjà en train de revenir !', 'red', '?p=flotte&n='.$idN, 1500);
|
||||
elseif ($flotteN->end_time > $tpsDD)
|
||||
{
|
||||
$bdd->query("UPDATE $table_flottes SET mission = '6', effectue = '1', end_time = '$tpsDD', end_galaxie = start_galaxie, end_ss = start_ss, end_position = start_position WHERE id_user = '$id_user' AND id = '$idN';");
|
||||
redirection("?p=flotte&n=".$idN);
|
||||
}
|
||||
else
|
||||
erreur('Impossible d\'annuler la mission, elle a déjà commencée.', "red", '?p=flotte&n='.$idN, 1500);
|
||||
}
|
||||
|
||||
$SESS->values['ret_fleet'] = md5('HB.fleet_'.rand().'☺ß☻');
|
||||
$SESS->put();
|
||||
|
||||
$template->assign('ret_fleet', $SESS->values['ret_fleet']);
|
||||
$template->assign('flotte', $flotteN);
|
||||
$page = 'flotten';
|
||||
}
|
||||
}
|
||||
require('game/jeu/flottes/details.php');
|
||||
//Affichage de la page générale
|
||||
else
|
||||
{
|
||||
//Demande de mise à jour des tactiques par défaut
|
||||
$attaque = gpc('attaque', 'post');
|
||||
$defense = gpc('defense', 'post');
|
||||
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;
|
||||
$planete->addModifUser('combatAT_tactique');
|
||||
$chang = true;
|
||||
}
|
||||
if (($defense != $planete->combatDE_tactique) && (($defense == 1 && $planete->technologies[3] & 4096) || ($defense == 2 && $planete->technologies[3] & 8192) || ($defense == 3 && $planete->technologies[3] & 16384) || $defense == 0))
|
||||
{
|
||||
$planete->combatDE_tactique = $defense;
|
||||
$planete->addModifUser('combatDE_tactique');
|
||||
$chang = true;
|
||||
}
|
||||
|
||||
if ($chang)
|
||||
erreur('Tactiques mises à jour avec succès.', 'green', '?p=flotte', 1100);
|
||||
}
|
||||
|
||||
//Affichage des flottes en cours dans la galaxie
|
||||
$bdd->reconnexion();
|
||||
$flottes = $bdd->query("SELECT * FROM $table_flottes WHERE id_user = $id_user;");
|
||||
$bdd->deconnexion();
|
||||
$nbr = $bdd->num_rows;
|
||||
|
||||
//Extraction des flottes en cours
|
||||
$TEMP_flottesEC = array();
|
||||
if ($flottes)
|
||||
{
|
||||
foreach ($flottes as $flotte)
|
||||
{
|
||||
if (($flotte['mission'] != 2 || $flotte['statut'] == '1') && $flotte['mission'] != 0)
|
||||
{
|
||||
$planete_retour = new Planete($flotte['start_planete']);
|
||||
$retour = $planete_retour->galaxie.':'.$planete_retour->ss.':'.$planete_retour->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 = '-';
|
||||
}
|
||||
|
||||
$end_planete = new Planete($flotte['end_planete']);
|
||||
|
||||
if ($flotte['mission'] == 2)
|
||||
{
|
||||
preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\]?$#', $flotte['end_planete'], $position);
|
||||
$TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], ' ['.$position[1].':'.$position[2].':'.$position[3].']', date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour);
|
||||
}
|
||||
else
|
||||
$TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], $end_planete->nom_planete.' ['.$end_planete->galaxie.':'.$end_planete->ss.':'.$end_planete->position.']', date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour);
|
||||
}
|
||||
}
|
||||
$template->assign('flottesEC', $TEMP_flottesEC);
|
||||
|
||||
//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" name="envoie" 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', ceil(count($queryPlanetes)/2 + 1));
|
||||
|
||||
|
||||
$page = 'flotte1';
|
||||
}
|
||||
require('game/jeu/flottes/principal.php');
|
||||
?>
|
||||
48
onyx2/include/game/jeu/flottes/details.php
Normal file
48
onyx2/include/game/jeu/flottes/details.php
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
|
||||
$idN = intval(gpc('n'));
|
||||
|
||||
$flotteN = new Flotte($idN, false);
|
||||
$flotteN->load_planete();
|
||||
|
||||
if ($flotteN->id_flotte == 0 || $flotteN->start_planete->id_user != $planete->id_user)
|
||||
erreur('Impossible de trouver cette flotte !', "red", '?p=flotte', 1500);
|
||||
else
|
||||
{
|
||||
//Changement du nom de la flotte
|
||||
if (!empty($_POST['nomflotte']))
|
||||
{
|
||||
$nouvNom = gpc('nomflotte', 'post');
|
||||
$flotteN->nom = $nouvNom;
|
||||
$flotteN->addModifFlotte("nom");
|
||||
|
||||
redirection("?p=flotte&n=".$idN);
|
||||
}
|
||||
|
||||
//Annulation de la mission
|
||||
if (isset($_GET['a']) && isset($SESS->values['ret_fleet']) && $_GET['a'] == $SESS->values['ret_fleet'])
|
||||
{
|
||||
//Calcul du temps passé depuis le lancement de la flotte
|
||||
$tpsDD = time() - $flotteN->start_time;
|
||||
if ($flotteN->mission == '6')
|
||||
erreur('Votre flotte est déjà en train de revenir !', 'red', '?p=flotte&n='.$idN, 1500);
|
||||
elseif ($flotteN->end_time > $tpsDD)
|
||||
{
|
||||
$bdd->query("UPDATE $table_flottes SET mission = '6', effectue = '1', end_time = $tpsDD, end_galaxie = start_galaxie, end_ss = start_ss, end_position = start_position WHERE id_user = ".$planete->id_user." AND id = $idN;");
|
||||
redirection("?p=flotte&n=".$idN);
|
||||
}
|
||||
else
|
||||
erreur('Impossible d\'annuler la mission, elle a déjà commencée.', "red", '?p=flotte&n='.$idN, 1500);
|
||||
}
|
||||
|
||||
$SESS->values['ret_fleet'] = md5('HB.fleet_'.rand().'☺ß☻');
|
||||
$SESS->put();
|
||||
|
||||
$template->assign('ret_fleet', $SESS->values['ret_fleet']);
|
||||
$template->assign('flotte', $flotteN);
|
||||
$page = 'flotten';
|
||||
}
|
||||
|
||||
unset($idN, $flotteN, $nouvNom, $tpsDD);
|
||||
?>
|
||||
162
onyx2/include/game/jeu/flottes/envoyer.php
Normal file
162
onyx2/include/game/jeu/flottes/envoyer.php
Normal file
|
|
@ -0,0 +1,162 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
|
||||
//Récupération des informations envoyées
|
||||
$idPrep = gpc("cds", "post");
|
||||
|
||||
$SESS->values["prepFlottes"][$idPrep]['nom'] = gpc('nomflotte', 'post');
|
||||
$SESS->values["prepFlottes"][$idPrep]['end_galaxie'] = $end_galaxie = intval(gpc('amas', 'post'));
|
||||
$SESS->values["prepFlottes"][$idPrep]['end_systeme'] = $end_ss = intval(gpc('ss', 'post'));
|
||||
$end_pos = gpc('pos', 'post');
|
||||
if ($end_pos != "A")
|
||||
$SESS->values["prepFlottes"][$idPrep]['end_position'] = floor($end_pos);
|
||||
else
|
||||
$SESS->values["prepFlottes"][$idPrep]['end_position'] = $end_pos;
|
||||
$SESS->values["prepFlottes"][$idPrep]['embarquer'] = array($EBmetal = floor(str_replace(' ', '', gpc('metal', 'post'))), $EBcristal = floor(str_replace(' ', '', gpc('cristal', 'post'))), $EBhydrogene = floor(str_replace(' ', '', gpc('hydrogene', 'post'))));
|
||||
$SESS->values["prepFlottes"][$idPrep]['mission'] = $mission = intval(gpc('mission', 'post'));
|
||||
$SESS->values["prepFlottes"][$idPrep]['vitesse'] = $vitesse = intval(gpc('vitesse', 'post'));
|
||||
|
||||
//On met à jour la session
|
||||
$SESS->put();
|
||||
|
||||
//Vérification du nombre de vaisseaux sur la planète
|
||||
foreach ($SESS->values["prepFlottes"][$idPrep]['vaisseaux'] as $key => $vaisseau)
|
||||
{
|
||||
//On vérifie qu'il y a suffisamment de vaisseaux sur la planète
|
||||
if ($planete->vaisseaux[$key] < $vaisseau)
|
||||
erreur('Vous n\'avez pas assez de vaisseaux sur cette planète pour envoyer cette flotte !', "red", $VAR["menu"]["flotte"]);
|
||||
}
|
||||
|
||||
//Vérification des conditions de mission
|
||||
if ($mission <= 0 || $mission > 7 || ($SESS->values["prepFlottes"][$idPrep]['type'] == 3 && $mission != 3 && $mission != 2))
|
||||
erreur("La mission sélectionnée est incorrecte !", "red", $VAR["menu"]["flotte"]);
|
||||
|
||||
//Vérification que le nombre de slots ne soit pas dépassé
|
||||
if (slots($planete->id_user) <= 0)
|
||||
erreur('Vous ne pouvez pas envoyer plus de flottes simultanément.', "red", $VAR["menu"]["flotte"]);
|
||||
|
||||
//Vérifications en cas de mission colonisation
|
||||
if ($mission == 2)
|
||||
{
|
||||
//On vérifie la mission, si elle est de coloniser, il faut qu'il y ait des vaisseaux de colonisation
|
||||
if ($SESS->values["prepFlottes"][$idPrep]['vaisseaux'][2] <= 0)
|
||||
erreur('Vous ne pouvez pas coloniser sans vaisseau de colonisation !', "red", $VAR["menu"]["flotte"]);
|
||||
|
||||
//On vérifie qu'une colonisation d'asteroide soit bien faite par un fondateur d'alliance en cours de création
|
||||
if ($end_pos == "A")
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$resultat = $bdd->unique_query("SELECT id FROM $table_alliances_creation WHERE fondateur = ".$planete->id_user.";");
|
||||
$bdd->deconnexion();
|
||||
if (!$resultat)
|
||||
erreur('Fonder d\'abord une alliance avant de coloniser un astéroide !', "red", $VAR["menu"]["flotte"]);
|
||||
}
|
||||
}
|
||||
|
||||
//On vérifie que les attaques soient bien activées
|
||||
if ($mission == 3 && !$VAR["attaques"])
|
||||
erreur('Les attaques sont désactivées pour le moment. Pour plus d\'informations, <a href="'.$VAR["menu"]["forums"].'">consultez le forum</a>.', "red", $VAR["menu"]["flotte"], 5000);
|
||||
|
||||
//On vérifie la mission, si elle est de recycler, il faut qu'il y ait des reclycleurs
|
||||
if ($mission == 4 && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][3] <= 0)
|
||||
erreur('Vous ne pouvez pas recycler sans recycleur !', "red", $VAR["menu"]["flotte"]);
|
||||
|
||||
//On vérifie la mission, si elle est d'espionner, il faut qu'il y ait des sondes
|
||||
if ($mission == 5 && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][6] <= 0 && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][13] <= 0)
|
||||
erreur('Vous ne pouvez pas espionner sans sonde d\'espionnage !', "red", '?p=flotte');
|
||||
|
||||
//Vérification que la destination ne soit pas en dehors de la galaxie
|
||||
if ($end_galaxie > $VAR['nb_amas'] || $end_ss > $VAR['nb_systeme'] || $end_galaxie < 0 || $end_ss < 1 || (($end_pos > $VAR['nb_planete'] || $end_pos < 1) && $end_pos != "A") || ($end_galaxie < 1 && $SESS->level < 6))
|
||||
erreur('La destination de la flotte n\'est pas correcte.', "red", '?p=flotte');
|
||||
|
||||
//On vérifie que l'on possède assez de ressources
|
||||
if ((!empty($EBmetal) && !$EBmetal > $planete->metal) || (!empty($EBcristal) && !$EBcristal > $planete->cristal) || (!empty($EBhydrogene) && !$EBhydrogene > $planete->hydrogene))
|
||||
erreur('Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.', "red", '?p=flotte');
|
||||
|
||||
//On vérifie que l'on n'envoie pas des ressources négatives
|
||||
if ((!empty($EBmetal) && $EBmetal < 0) || (!empty($EBcristal) && $EBcristal < 0) || (!empty($EBhydrogene) && $EBhydrogene < 0))
|
||||
erreur('Vous avez spécifié des valeurs de ressources à embarquer incorrectes !', "red", '?p=flotte', 4000);
|
||||
|
||||
//On vérifie la vitesse de la flotte
|
||||
if (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 100)
|
||||
erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte');
|
||||
|
||||
|
||||
//Recherche de la planète ou de l'astéroïde
|
||||
if ($end_pos == "A")
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$resultat = $bdd->unique_query("SELECT id, id AS id_user, debris_met, debris_cri FROM $table_alliances WHERE galaxie = $end_galaxie AND ss = $end_ss;");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
else
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$resultat = $bdd->unique_query("SELECT id, id_user, debris_met, debris_cri FROM $table_planete WHERE galaxie = $end_galaxie AND ss = $end_ss AND position = $end_pos;");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
|
||||
//On vérifie qu'il n'y ait pas une interaction entre deux multi-comptes
|
||||
if (count($multi) > 1 && ($mission == 1 || $mission == 6 || $mission == 7))
|
||||
{
|
||||
foreach($multi as $test)
|
||||
{
|
||||
if ($test['id_util'] == $resultat['id_user'])
|
||||
erreur('Vous ne pouvez pas avoir d\'interaction avec ce joueur pour raison de multi-compte (voir page d\'accueil).');
|
||||
}
|
||||
}
|
||||
|
||||
if ($mission == 1 && !$resultat)
|
||||
erreur('Impossible de transporter des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000);
|
||||
elseif ($mission == 2 && $resultat)
|
||||
{
|
||||
if ($end_pos != "A")
|
||||
erreur('La planète que vous voulez coloniser est déjà habitée.', "red", '?p=flotte', 3000);
|
||||
else
|
||||
erreur('L\'astéroide que vous voulez coloniser est déjà habitée.', "red", '?p=flotte', 3000);
|
||||
}
|
||||
//Si la mission est d'attaquer, on vérifie que le joueur cible ne soit pas ne mode vacances ou qu'il soit tout jeune
|
||||
elseif ($mission == 3 && $end_pos != "A")
|
||||
{
|
||||
$bdd->reconnexion();
|
||||
$resultatu = $bdd->unique_query("SELECT mv, time_inscription FROM $table_user WHERE id = ".$resultat['id_user'].";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if ($resultatu['mv'] > 0)
|
||||
erreur('Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.', "red", '?p=flotte', 3000); //TODO Mettre le numéro du mode vacances et non > 0 !!!
|
||||
elseif ($resultatu['time_inscription'] + 604800 > time())
|
||||
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'] == $planete->id_user)
|
||||
erreur('La planète que vous tentez d\'attaquer vous appartient.', "red", '?p=flotte');
|
||||
}
|
||||
elseif ($mission == 4 && ($resultat['debris_met'] <= 0 || $resultat['debris_cri'] <= 0) && empty($SESS->values['forceFlotte']))
|
||||
{
|
||||
$SESS->values['forceFlotte'] = true;
|
||||
$SESS->put();
|
||||
erreur('Il n\'y a rien à recycler sur la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'].<br />Vous pouvez forcer le lancement de la flotte en rechargeant cette page.', "orange");
|
||||
}
|
||||
//TODO Autoriser l'espionnage sur les planètes inhabités
|
||||
elseif ($mission == 5)
|
||||
{
|
||||
if (!$resultat)
|
||||
erreur('Impossible d\'espionner la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000);
|
||||
elseif ($end_pos != "A" && $resultat['id_user'] == $planete->id_user)
|
||||
erreur('La planète que vous désirez espionner vous appartient !', "red", '?p=flotte', 3000);
|
||||
}
|
||||
|
||||
elseif ($mission == 6 && $resultat['id_user'] != $planete->id_user && $resultat['id_user'] != $planete->id_alliance)
|
||||
erreur('La planète sur laquelle vous désirez stationner ne vous appartient pas.', "red", '?p=flotte', 3000);
|
||||
elseif ($mission == 7 && !$resultat)
|
||||
erreur('La planète sur laquelle vous désirez donner vos vaisseaux n\'existe pas.', "red", '?p=flotte', 3000);
|
||||
|
||||
|
||||
//Création de la flotte
|
||||
$flotte = new flotte();
|
||||
$flotte->creer($planete, $SESS->values["prepFlottes"][$idPrep], $resultat);
|
||||
$SESS->values["prepFlottes"][$idPrep]["statut"] = 2;
|
||||
$SESS->put();
|
||||
|
||||
erreur('Votre flotte a été envoyée avec succès.', "green", '?p=flotte', 4000);
|
||||
?>
|
||||
47
onyx2/include/game/jeu/flottes/preparer.php
Normal file
47
onyx2/include/game/jeu/flottes/preparer.php
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
|
||||
//Génération d'un ID unique pour identifier la flotte durant sa création
|
||||
$idPrep = random();
|
||||
|
||||
//Création du tableau de session
|
||||
$SESS->values["prepFlottes"][$idPrep] = array();
|
||||
|
||||
//On récupère les vaisseaux à envoyer
|
||||
$nombreVaisseau = 0;
|
||||
foreach ($planete->vaisseaux as $key => $vaisseau)
|
||||
{
|
||||
$v = gpc('v'.$key, 'post');
|
||||
if (!is_numeric($v) || $v < 0)
|
||||
$v = 0;
|
||||
|
||||
$SESS->values["prepFlottes"][$idPrep]['vaisseaux'][$key] = $v;
|
||||
$nombreVaisseau += $v;
|
||||
}
|
||||
//On vérifie que l'utilisateur a bien envoyé plus d'un vaisseau
|
||||
if ($nombreVaisseau <= 0)
|
||||
{
|
||||
unset($SESS->values["prepFlottes"][$idPrep]);
|
||||
erreur('Vous devez envoyer au moins un vaisseau.', "red", '?p=flotte');
|
||||
}
|
||||
|
||||
//On définit le type de la flotte (utilisateur ou alliance)
|
||||
if (!empty($_POST['envoie']))
|
||||
$SESS->values["prepFlottes"][$idPrep]['type'] = 1;
|
||||
elseif (!empty($_POST['groupe']))
|
||||
$SESS->values["prepFlottes"][$idPrep]['type'] = 2;
|
||||
else
|
||||
die ('Erreur !');
|
||||
|
||||
//On enregistre les paramètres en session
|
||||
$SESS->values["prepFlottes"][$idPrep]['nbVaisseaux'] = $nombreVaisseau;
|
||||
$SESS->values['forceFlotte'] = false;
|
||||
$SESS->values["prepFlottes"][$idPrep]['time'] = time();
|
||||
$SESS->values["prepFlottes"][$idPrep]['statut'] = 1;
|
||||
$SESS->put();
|
||||
|
||||
unset($nombreVaisseau, $key, $vaisseau, $v);
|
||||
|
||||
header('Location: ?p=flotte&c='.$idPrep);
|
||||
exit;
|
||||
?>
|
||||
84
onyx2/include/game/jeu/flottes/principal.php
Normal file
84
onyx2/include/game/jeu/flottes/principal.php
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'flotte1';
|
||||
|
||||
//Demande de mise à jour des tactiques par défaut
|
||||
$attaque = gpc('attaque', 'post');
|
||||
$defense = gpc('defense', 'post');
|
||||
if (is_numeric($attaque) && is_numeric($defense))
|
||||
{
|
||||
$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;
|
||||
$planete->addModifUser('combatAT_tactique');
|
||||
$chang = true;
|
||||
}
|
||||
if (($defense != $planete->combatDE_tactique) && (($defense == 1 && $planete->technologies[3] & 4096) || ($defense == 2 && $planete->technologies[3] & 8192) || ($defense == 3 && $planete->technologies[3] & 16384) || $defense == 0))
|
||||
{
|
||||
$planete->combatDE_tactique = $defense;
|
||||
$planete->addModifUser('combatDE_tactique');
|
||||
$chang = true;
|
||||
}
|
||||
|
||||
if ($chang)
|
||||
erreur('Tactiques mises à jour avec succès.', 'green', '?p=flotte', 1100);
|
||||
}
|
||||
unset($attaque, $defense, $chang);
|
||||
|
||||
//Affichage des flottes en cours dans la galaxie
|
||||
$bdd->reconnexion();
|
||||
if (SURFACE == "asteroide")
|
||||
$flottes = $bdd->query("SELECT id FROM $table_flottes WHERE id_alliance = ".$planete->id.";");
|
||||
else
|
||||
$flottes = $bdd->query("SELECT id FROM $table_flottes WHERE id_user = ".$planete->id_user.";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
//Extraction des flottes en cours
|
||||
if ($flottes)
|
||||
{
|
||||
foreach ($flottes as $key => $flotte)
|
||||
{
|
||||
$flottes[$key] = new Flotte($flotte['id']);
|
||||
$flottes[$key]->load_planete();
|
||||
}
|
||||
$template->assign('flottesEC', $flottes);
|
||||
}
|
||||
|
||||
//Calcul du nombre de slot disponible et vérouillage de l'envoie si besoin
|
||||
$nbFlottes = count($flottes);
|
||||
if (SURFACE == "asteroide")
|
||||
{
|
||||
if ($planete->batiments[2] == 1)
|
||||
$slots = 1;
|
||||
elseif ($planete->batiments[2] == 2)
|
||||
$slots = 2;
|
||||
elseif ($planete->batiments[2] == 3)
|
||||
$slots = 4;
|
||||
elseif ($planete->batiments[2] == 4)
|
||||
$slots = 7;
|
||||
elseif ($planete->batiments[2] == 5)
|
||||
$slots = 14;
|
||||
else
|
||||
$slots = 0;
|
||||
|
||||
$slots -= $nbFlottes;
|
||||
}
|
||||
else
|
||||
$slots = count($queryPlanetes)-$nbFlottes;
|
||||
|
||||
if ($slots > 0)
|
||||
//$template->assign('action', '<input class="submit" name="envoie" type="submit" value="Envoyer flotte" /> <input class="submit" name="groupe" type="submit" value="Envoye groupé" />');
|
||||
$template->assign('action', '<input class="submit" name="envoie" type="submit" value="Ok" />');
|
||||
else
|
||||
$template->assign('action', '<span class="lack">Nombre de flottes maximum simultanées atteint</span>');
|
||||
|
||||
$template->assign('nbflotte', $nbFlottes);
|
||||
$template->assign('nbflottemax', $slots + $nbFlottes);
|
||||
|
||||
//Affichage des flottes en préparation
|
||||
if (isset($SESS->values["prepFlottes"]))
|
||||
$template->assign('flottesEP', $SESS->values["prepFlottes"]);
|
||||
|
||||
unset($nbFlottes, $slots, $flottes, $flotte, $key);
|
||||
?>
|
||||
56
onyx2/include/game/jeu/flottes/restaure.php
Normal file
56
onyx2/include/game/jeu/flottes/restaure.php
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
|
||||
$idPrep = gpc('c');
|
||||
$template->assign('idPrep', $idPrep);
|
||||
$template->assign('restaure', $SESS->values["prepFlottes"][$idPrep]);
|
||||
|
||||
foreach ($SESS->values["prepFlottes"][$idPrep]['vaisseaux'] as $key => $vaisseau)
|
||||
{
|
||||
//On vérifie qu'il y a suffisamment de vaisseaux sur la planète
|
||||
if ($planete->vaisseaux[$key] < $vaisseau)
|
||||
erreur('Vous n\'avez pas assez de vaisseaux sur cette planète pour envoyer cette flotte !', "red", '?p=flotte');
|
||||
}
|
||||
|
||||
//Génération de la liste de mission possible avec les vaisseaux de la flotte
|
||||
$missions = array();
|
||||
if ($SESS->values["prepFlottes"][$idPrep]['type'] == 1)
|
||||
$missions = array(6 => "Stationner", 7 => "Donner des vaisseaux", 1 => "Transporter");
|
||||
if ($SESS->values["prepFlottes"][$idPrep]['vaisseaux'][2])
|
||||
$missions[2] = "Coloniser";
|
||||
if ($planete->technologies[7]& 16 && $VAR["attaques"])
|
||||
$missions[3] = "Attaquer";
|
||||
if ($SESS->values["prepFlottes"][$idPrep]['type'] == 1 && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][3])
|
||||
$missions[4] = "Recycler";
|
||||
if ($SESS->values["prepFlottes"][$idPrep]['type'] == 1 && ($SESS->values["prepFlottes"][$idPrep]['vaisseaux'][6] || $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][13]))
|
||||
$missions[5] = "Espionner";
|
||||
|
||||
//S'il n'y a aucun choix de mission possible, on abandonne
|
||||
if (count($missions) == 0)
|
||||
erreur('Aucune mission disponible !', "red", '?p=flotte');
|
||||
$template->assign('missions', $missions);
|
||||
|
||||
$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>');
|
||||
$page = 'flotte2';
|
||||
|
||||
//Récupération des destinations favorites et des colonies
|
||||
$favoris = array();
|
||||
include_once("game/Class/class.tinyplanete.php");
|
||||
foreach ($planete->destinationsFavoris as $fav)
|
||||
{
|
||||
$fav_Planete = new TinyPlanete($fav);
|
||||
if (!empty($fav_Planete->nom_planete)) $favoris[$fav_Planete->id] = $fav_Planete->nom_planete;
|
||||
else $favoris[$fav_Planete->id] = '['.$fav_Planete->galaxie.':'.$fav_Planete->ss.':'.$fav_Planete->position.']';
|
||||
}
|
||||
$favorisC = array();
|
||||
foreach ($queryPlanetes as $fav)
|
||||
{
|
||||
if (!empty($fav['nom_planete'])) $favorisC[$fav['id']] = $fav['nom_planete'];
|
||||
else $favorisC[$fav['id']] = '['.$fav['galaxie'].':'.$fav['ss'].':'.$fav['position'].']';
|
||||
}
|
||||
$template->assign('favoris', $favoris);
|
||||
$template->assign('favorisColonies', $favorisC);
|
||||
|
||||
unset($idPrep, $missions, $fav, $vaisseau, $key, $favorisC, $favoris);
|
||||
?>
|
||||
|
|
@ -1,40 +1,56 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'gestion';
|
||||
$titre = 'Gestion';
|
||||
|
||||
//Demande de changement de politique
|
||||
$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 || $politique == 2 || $politique == 1) || $politique == 0) && $planete->politique != $politique) {
|
||||
$planete->politique = $politique;
|
||||
$planete->politique_lastchange = time();
|
||||
$planete->addModifUser("politique");
|
||||
$planete->addModifUser("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 !");
|
||||
//Si l'on est sur un astéroïde, on charge la page de gestion d'alliance !
|
||||
if (SURFACE == "asteroide")
|
||||
include("game/jeu/alliances/gestion.php");
|
||||
else
|
||||
{
|
||||
$page = 'gestion';
|
||||
$titre = 'Gestion';
|
||||
|
||||
//Demande de changement de politique
|
||||
$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 || $politique == 2 || $politique == 1) || $politique == 0) && $planete->politique != $politique)
|
||||
{
|
||||
$planete->politique = $politique;
|
||||
$planete->politique_lastchange = time();
|
||||
$planete->addModifUser("politique");
|
||||
$planete->addModifUser("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 !");
|
||||
}
|
||||
|
||||
if (SURFACE == "planete")
|
||||
$template->assign('planeteEC', array(
|
||||
'id' => $planete->id,
|
||||
'metal' => $planete->metal,
|
||||
'cristal' => $planete->cristal,
|
||||
'hydrogene' => $planete->hydrogene,
|
||||
'energie' => $planete->energie,
|
||||
'population' => $planete->population,
|
||||
)
|
||||
);
|
||||
|
||||
$politiques = array('Anarchie');
|
||||
if ($planete->technologies[3] & 2048)
|
||||
{
|
||||
$politiques[] = 'Fascisme (Mouvement Frieden)';
|
||||
$politiques[] = 'Communisme (Mouvement Koslovic)';
|
||||
$politiques[] = 'Démocratie (Administration coloniale)';
|
||||
}
|
||||
$template->assign('politiques', $politiques);
|
||||
$template->assign('moraldetails', $politiques);
|
||||
|
||||
unset($politiques, $politiques, $politique);
|
||||
}
|
||||
|
||||
$template->assign('planeteEC', array(
|
||||
'id' => $planete->id,
|
||||
'metal' => $planete->metal,
|
||||
'cristal' => $planete->cristal,
|
||||
'hydrogene' => $planete->hydrogene,
|
||||
'energie' => $planete->energie,
|
||||
'population' => $planete->population,
|
||||
)
|
||||
);
|
||||
|
||||
$politiques = array('Anarchie');
|
||||
if ($planete->technologies[3] & 2048) {
|
||||
$politiques[] = 'Fascisme (Mouvement Frieden)';
|
||||
$politiques[] = 'Communisme (Mouvement Koslovic)';
|
||||
$politiques[] = 'Démocratie (Administration coloniale)';
|
||||
}
|
||||
$template->assign('politiques', $politiques);
|
||||
$template->assign('moraldetails', $politiques);
|
||||
?>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
if(!defined('INDEX') || SURFACE != "planete") { header('Location: ./'.$VAR['first_page']); exit; }
|
||||
$page = 'laboratoire';
|
||||
$titre = ucfirst($LANG[$race]['batiments']['noms_sing'][6]);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
if(!defined('INDEX') || SURFACE != "planete") { header('Location: ./'.$VAR['first_page']); exit; }
|
||||
$titre = 'Bourse';
|
||||
|
||||
$a = gpc('a');
|
||||
|
|
@ -27,8 +27,10 @@ if(is_numeric($a) && is_numeric(gpc('a'.$a, 'post'))){
|
|||
|
||||
//On vérifie que le joueur ait assez de crédits pour acheter
|
||||
if ($prix <= $planete->credits) {
|
||||
$planete->credits -= $prix;
|
||||
$planete->addCredits(-1*$prix);
|
||||
$planete->addModifUser('credits');
|
||||
$planete->$var += $nb;
|
||||
$planete->addModif('force');
|
||||
|
||||
if (empty($action['graph'])) $action['graph'] = array();
|
||||
else $action['graph'] = unserialize($action['graph']);
|
||||
|
|
@ -58,8 +60,10 @@ elseif(is_numeric($v) && is_numeric(gpc('a'.$v, 'post'))){
|
|||
$bdd->deconnexion();
|
||||
|
||||
$prix = ceil(pow($action['dispo'], -0.1) * $nb * 1.8)/10;
|
||||
$planete->credits += $prix;
|
||||
$planete->addCredits($prix);
|
||||
$planete->addModifUser('credits');
|
||||
$planete->$var -= $nb;
|
||||
$planete->addModif('force');
|
||||
|
||||
if (empty($action['graph'])) $action['graph'] = array();
|
||||
else $action['graph'] = unserialize($action['graph']);
|
||||
|
|
@ -84,4 +88,5 @@ foreach($bourse as $key => $action){
|
|||
|
||||
$page = 'marche';
|
||||
$template->assign('bourse', $bourse);
|
||||
unset($a, $v, $var, $bourse, $graph, $key, $action, $nb, $prix);
|
||||
?>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
if(!defined('INDEX') || SURFACE != "planete") { header('Location: ./'.$VAR['first_page']); exit; }
|
||||
$page = 'rename';
|
||||
$titre = 'Renommer une planète';
|
||||
|
||||
|
|
@ -21,31 +21,29 @@ if (isset($_POST['planete']))
|
|||
exit;
|
||||
//erreur('Le nom de votre planète a été modifié avec succès.', "green", '?p=accueil');
|
||||
}
|
||||
unset($nouvNom);
|
||||
}
|
||||
elseif(isset($_GET['a']) && isset($_GET['i']) && $_GET['a'] == $SESS->values['abandon'] && !empty($idPlan) && $idPlan == $_GET['i'])
|
||||
elseif(!empty($_GET['a']) && !empty($SESS->values['abandon']) && isset($_GET['i']) && $_GET['a'] == $SESS->values['abandon'] && $planete->id == $_GET['i'])
|
||||
{
|
||||
$galaxie = $planete->galaxie; $ss = $planete->ss; $position = $planete->position;
|
||||
$bdd->reconnexion();
|
||||
$bdd->query("DELETE FROM $table_planete WHERE id_user = $id_user AND id = $idPlan AND galaxie = $galaxie AND ss = $ss AND position = $position LIMIT 1;");
|
||||
$bdd->query("DELETE FROM $table_flottes WHERE id_user = $id_user AND start_galaxie = $galaxie AND start_ss = $ss AND start_position = $position;");
|
||||
|
||||
$req = $bdd->unique_query("SELECT * FROM $table_planete WHERE id_user = $id_user LIMIT 1;");
|
||||
$bdd->query("DELETE FROM $table_planete WHERE id_user = ".$planete->id_user." AND id = ".$planete->id." AND galaxie = ".$planete->galaxie." AND ss = ".$planete->ss." AND position = ".$planete->position." LIMIT 1;");
|
||||
$bdd->query("DELETE FROM $table_flottes WHERE id_user = ".$planete->id_user." AND start_galaxie = ".$planete->galaxie." AND start_ss = ".$planete->ss." AND start_position = ".$planete->position.";");
|
||||
|
||||
$req = $bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = ".$planete->id_user." LIMIT 1;");
|
||||
$bdd->deconnexion();
|
||||
$SESS->values['abandon'] = 0;
|
||||
unset($SESS->values['abandon']);
|
||||
$SESS->values['idPlan'] = $req['id'];
|
||||
$SESS->put($planete->id_user);
|
||||
|
||||
$SESS->put();
|
||||
|
||||
unset($req, $planete);
|
||||
erreur('Cette planète n\'est désormais plus sous votre contrôle.', "green", '?p=accueil');
|
||||
}
|
||||
|
||||
$bdd->reconnexion();
|
||||
$reqnb = $bdd->unique_query("SELECT COUNT(id) AS total FROM $table_planete WHERE id_user = $id_user;");
|
||||
$bdd->deconnexion();
|
||||
if ($reqnb['total'] > 1) $hashA = md5(rand(123456789,9876543210));
|
||||
else $hashA = false;
|
||||
$SESS->values['abandon'] = $hashA;
|
||||
$SESS->put();
|
||||
|
||||
$template->assign('abandonH', $hashA);
|
||||
if (count($queryPlanetes) > 1)
|
||||
{
|
||||
$template->assign('abandonH', $SESS->values['abandon'] = md5(rand(123456789,9876543210)));
|
||||
$SESS->put();
|
||||
}
|
||||
unset($queryPlanetes);
|
||||
?>
|
||||
|
|
@ -1,27 +1,51 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'ressources';
|
||||
if(!defined('INDEX')) { header('Location: ./'.$VAR['first_page']); exit; }
|
||||
$titre = 'Ressources';
|
||||
|
||||
if (isset($_POST['coeff_metal']) && isset($_POST['coeff_cs'])) {
|
||||
if (SURFACE == "planete")
|
||||
{
|
||||
$page = 'ressources';
|
||||
if (isset($_POST['coeff_metal']) && isset($_POST['coeff_cs'])) {
|
||||
|
||||
$planete->coeff_bat[0] = floor($_POST['coeff_metal'])/100;
|
||||
if (isset($_POST['coeff_cristal'])) $planete->coeff_bat[1] = floor($_POST['coeff_cristal'])/100;
|
||||
if (isset($_POST['coeff_hydrogene'])) $planete->coeff_bat[2] = floor($_POST['coeff_hydrogene'])/100;
|
||||
$planete->coeff_bat[3] = floor($_POST['coeff_cs'])/100;
|
||||
if (isset($_POST['coeff_ce'])) $planete->coeff_bat[4] = floor($_POST['coeff_ce'])/100;
|
||||
$planete->addModif("coeff_bat");
|
||||
|
||||
redirection('?p=ressources');
|
||||
}
|
||||
|
||||
$tablo = $planete->production(3600, true);
|
||||
|
||||
$template->assign('ressources_prod', $tablo[1]);
|
||||
$template->assign('ressources_conso', $tablo[2]);
|
||||
$template->assign('ressources_coef', $tablo[0]);
|
||||
$template->assign('ressources_silo', array($planete->batiments[10], pow(2, $planete->batiments[10]) * 100000));
|
||||
$template->assign('ressources_toto', array($tablo[1][2] - $tablo[2][3], '(0)'));
|
||||
|
||||
$template->assign('ressources_tab', array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100));
|
||||
|
||||
$planete->coeff_bat[0] = floor($_POST['coeff_metal'])/100;
|
||||
if (isset($_POST['coeff_cristal'])) $planete->coeff_bat[1] = floor($_POST['coeff_cristal'])/100;
|
||||
if (isset($_POST['coeff_hydrogene'])) $planete->coeff_bat[2] = floor($_POST['coeff_hydrogene'])/100;
|
||||
$planete->coeff_bat[3] = floor($_POST['coeff_cs'])/100;
|
||||
if (isset($_POST['coeff_ce'])) $planete->coeff_bat[4] = floor($_POST['coeff_ce'])/100;
|
||||
$planete->addModif("coeff_bat");
|
||||
unset($tablo);
|
||||
}
|
||||
else
|
||||
{
|
||||
$page = 'ressources_alli';
|
||||
|
||||
$don_credits = intval(gpc("credits", "post"));
|
||||
if (!empty($don_credits) && $don_credits > 0)
|
||||
{
|
||||
//Si le joueur n'a pas assez de crédits
|
||||
if ($don_credits > $planete->credits)
|
||||
erreur('Vous n\'avez pas suffisamment de crédits pour en donner autant.', 'red', $VAR['menu']['ressources']);
|
||||
|
||||
redirection('?p=ressources');
|
||||
}
|
||||
$planete->addCreditsAlliance($don_credits);
|
||||
$planete->addCredits(-1 * $don_credits);
|
||||
|
||||
$tablo = $planete->production(3600, true);
|
||||
erreur('Votre don de '.$don_credits.' '.$LANG[$race]["ressources"]["noms"]["credits"].' a été effectué avec succès.', 'green', $VAR['menu']['ressources']);
|
||||
}
|
||||
|
||||
$template->assign('ressources_prod', $tablo[1]);
|
||||
$template->assign('ressources_conso', $tablo[2]);
|
||||
$template->assign('ressources_coef', $tablo[0]);
|
||||
$template->assign('ressources_silo', array($planete->batiments[10], pow(2, $planete->batiments[10]) * 100000));
|
||||
$template->assign('ressources_toto', array($tablo[1][2] - $tablo[2][3], '(0)'));
|
||||
|
||||
$template->assign('ressources_tab', array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100));
|
||||
unset($don_credits);
|
||||
}
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue