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
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"]);
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue