Version 1.8

This commit is contained in:
nemunaire 2008-11-03 12:00:00 +01:00
commit 5f81f76b17
184 changed files with 78335 additions and 736 deletions

View file

@ -12,19 +12,24 @@ if ($_SERVER["REMOTE_ADDR"] == "82.245.190.225" || $_SERVER["REMOTE_ADDR"] == "8
//On vérifie si le client est connecté sur le site
if (isset($sess) && isset($sess->values['connected']) && $sess->values['connected'] && !empty($sess->values['id']) && isset($sess->values['auth_level']) && !empty($sess->values['idPlan'])) {
//On affiche la version du jeu
$template->assign('version', VERSION);
$HB_login = gpc('l');
if (!empty($HB_login) && strtolower($HB_login) != strtolower(trouvNom($sess->values['id']))) {
include(_FCORE."hb_game/jeu/logout.php");
}
elseif (!empty($HB_login)) {
header('Location: ./');
exit;
}
//Récupération d'informations au sujet de l'utilisateur
$id_user = $sess->values['id'];
$template->assign('auth_level', $sess->values['auth_level']);
$bdd->connexion();
$queryUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = '$id_user'");
$queryUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id_user");
//On vérifie que le joueur ne soit pas en mode vacances forcé
if ($queryUser['mv'] || !$queryUser) {
file_log('!! MV jeu : '.var_export($_REQUEST,TRUE));
$sess->close();
header('Location: ?mvf');
exit;
@ -57,7 +62,6 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$queryPlanete = $bdd->unique_query("SELECT * FROM $table_planete WHERE id = '$idPlan'");
$bdd->deconnexion();
$enligne = $bdd->num_rows;
$case = $queryPlanete["cases"];
$metal = $queryPlanete["metal"];
@ -72,7 +76,8 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$bdd->connexion();
$queryPlanete = $bdd->unique_query("SELECT * FROM $table_planete WHERE id = '$idPlan'");
$queryMail = $bdd->query("SELECT * FROM $table_mail WHERE destinataire = '".$queryUser['pseudo']."' AND vu = '1';");
$queryMail = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE destinataire = '".$queryUser['pseudo']."' AND vu = '1';");
$bdd->deconnexion();
//Isolement de la planète
$queryPlanete['isolement'] = explode(' ', $queryPlanete['isolement']);
@ -97,12 +102,14 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$debut = mktime(rand(0, 24-$tps), 0, 0, date('n'), date('j'), date('Y'));
$fin = $debut + $tps * 3600;
$bdd->connexion();
$bdd->query("UPDATE $table_planete SET isolement = '$debut $fin' WHERE id = '$idPlan';");
$bdd->deconnexion();
$queryPlanete['isolement'][0] = $debut;
if (time() > $queryPlanete['isolement'][0]) $queryPlanete['isolement'][1] = $fin;
}
}
if (isset($queryPlanete['isolement'][1]) && time() < $queryPlanete['isolement'][1] && $_GET['p'] != 'rename' && $_GET['p'] != 'accueil' && $_GET['p'] != 'arbre' && $_GET['p'] != 'prochainement' && $_GET['p'] != 'options' && $_GET['p'] != 'messagerie' && $_GET['p'] != 'envoyer' && $_GET['p'] != 'classement' && $_GET['p'] != 'bugs' && $_GET['p'] != 'deconnexion') {
if (isset($queryPlanete['isolement'][1]) && time() < $queryPlanete['isolement'][1] && $p != 'rename' && $p != 'accueil' && $p != 'arbre' && $p != 'prochainement' && $p != 'options' && $p != 'messagerie' && $p != 'envoyer' && $p != 'classement' && $p != 'bugs' && $p != 'deconnexion') {
$template->assign('message','Impossible de rentrer en contact avec cette planète. Réessayez plus tard.');
$template->assign('titre','Planète isolée');
$template->assign('couleur','red');
@ -111,9 +118,8 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
}
}
$bdd->deconnexion();
$template->assign('alertMail', $bdd->num_rows);
$template->assign('alertMail', $queryMail['nombre']);
$metal = $queryPlanete["metal"];
$cristal = $queryPlanete["cristal"];
$hydrogene = $queryPlanete["hydrogene"];
@ -123,9 +129,9 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$queryPlanete["energieS"] = separerNombres($queryPlanete["energie"]);
$queryPlanete["nom_planete"] = htmlspecialchars($queryPlanete["nom_planete"]);
$template->assign('planete',$queryPlanete);
$template->assign('planetes',$queryPlanetes);
$template->assign('nomsressources',$ressourc);
$template->assign('planete', $queryPlanete);
$template->assign('planetes', $queryPlanetes);
$template->assign('nomsressources', $ressourc);
//Calcul du nombre de cases restantes
$coun = count($batiment);
@ -135,8 +141,8 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
}
$template->assign('caseRest',$case-$caseRest);
if (!isset($_GET['p'])) $_GET['p'] = '';
switch($_GET['p']){
$p = gpc('p');
switch($p){
case 'prochainement':
$page = 'prochainement';
$titre = 'Prochainement';
@ -165,6 +171,9 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
case 'arbre':
include(_FCORE."hb_game/jeu/arbre.php");
break;
case 'gestion':
include(_FCORE."hb_game/jeu/gestion.php");
break;
case 'ressources':
include(_FCORE."hb_game/jeu/ressources.php");
break;
@ -234,21 +243,37 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
//Si le joueur n'est pas connecté au site
else {
//On traite la demande de loggin de l'utilisateur
if (isset($_POST['HB_login']) && isset($_POST['HB_password'])) {
if (isset($_GET['l']) && isset($_GET['p']) && isset($_GET['a'])) {
//Récupération des données POST
$HB_login = $_POST['HB_login'];
$HB_password = $_POST['HB_password'];
$HB_login = gpc('l');
$HB_password = gpc('p');
$HB_auth = gpc('a');
if (empty($HB_login) || empty($HB_password)) {
$template->assign('message','Nom d\'utilisateur ou mot de passe incorrect.');
$template->assign('message','Nom d\'utilisateur ou mot de passe incorrect.<br /><br />');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
}
elseif (hash("sha512", $HB_login.'Ņ♂↨'.$HB_password.'☻♫☼'.date('W!Y¨D@j')) != $HB_auth && hash("sha512", $HB_login.'Ņ♂↨'.$HB_password.'☻♫☼'.date('W!Y¨D@j', time()-300)) != $HB_auth) {
$template->assign('message','Impossible d\'authentifier la connexion !<br /><br />Si le problème perciste, contactez un administrateur.');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
}
else {
$ipe = $_SERVER['REMOTE_ADDR'];
$bdd->connexion();
$bruteforce = $bdd->unique_query("SELECT nombre FROM securite_identification WHERE ip = '$ipe';");
if ($bruteforce['nombre'] >= 15) {
$fichier = fopen(_FCORE."ban.xlist",'a+');
fwrite($fichier, $_SERVER['REMOTE_ADDR']."\n\r");
fclose($fichier);
}
$bdd->escape($HB_login);
if (!$var = $bdd->unique_query("SELECT mdp_var FROM $table_user WHERE pseudo = '$HB_login';")) {
if (isset($bruteforce['nombre'])) $bdd->query("UPDATE securite_identification SET nombre = nombre + 1 WHERE ip = '$ipe';");
else $bdd->query("INSERT INTO securite_identification VALUES ('$ipe', '1', '".time()."');");
$bdd->deconnexion();
$template->assign('message','Nom d\'utilisateur ou mot de passe incorrect.');
$template->assign('couleur','red');
@ -286,7 +311,7 @@ else {
$bdd->escape($HB_password);
//Limiter le nombre de personnes en ligne simutanément
$connecte = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_sessions WHERE active = '1' AND var_session != '';");
$connecte = $bdd->unique_query("SELECT COUNT(xid) AS nombre FROM $table_sessions WHERE active = true AND var_session != '';");
if ($connecte['nombre'] > 1500) {
$template->assign('message','Il y a actuellement trop de monde connecté sur Halo-Battle. Pour permettre aux joueurs une navigation convenable, nous vous remercions de revenir plus tard.');
$template->assign('couleur','red');
@ -310,7 +335,6 @@ else {
}
if ($resultat['mv'] != 0) {
file_log('!! MV connection : '.var_export($_REQUEST,TRUE));
if ($resultat['last_visite']+259200 > time() && $resultat['auth_level'] < 2) {
if ($resultat['mv'] == 3) $template->assign('message','Vous êtes définitivement banni de cette galaxie pour '.$resultat['raisonmv'].'. Vous ne pouvez plus vous reconnecter sur votre compte');
elseif ($resultat['mv'] == 2) $template->assign('message','Un opérateur a placé votre compte en mode vacances pour '.$resultat['raisonmv'].'. Vous ne pouvez pas vous reconnecter sur votre compte avant le<br />'.strftime("%A %d %B à %H:%M", $resultat['last_visite']+259200));
@ -369,14 +393,13 @@ else {
}
$bdd->query("UPDATE $table_user SET last_visite = '$time', last_ip = '$ip' WHERE id = '$id';");
$bdd->query("INSERT INTO $table_registre_identification (id_util, ip) VALUES ('".$id."','".$ip."');");
$bdd->query("INSERT INTO $table_registre_identification (id_util, ip) VALUES (".$id.",'".$ip."');");
$bdd->deconnexion();
$sess->values['connected'] = TRUE;
$sess->values['id'] = $resultat['id'];
$sess->values['idPlan'] = $resultatP['id'];
$sess->values['auth_level'] = $resultat['auth_level'];
if ($resultat['auth_level'] > 0) file_log('!! connection : '.var_export($_REQUEST,TRUE));
$sess->put();
header('Location: ./?p=accueil');
@ -394,8 +417,8 @@ else {
}
}
if (!isset($_GET['p'])) $_GET['p'] = '';
switch($_GET['p']){
$p = gpc('p');
switch($p){
//Serveur principal
/* case "validation":
include('game/validation.php');
@ -425,8 +448,8 @@ else {
include(_FCORE."hb_game/jeu/regles.php");
break;
default:
$page = 'mini';
//header('Location: http://halo-battle.s-fr.com/?p=connexion');
//$page = 'mini';
header('Location: http://halo-battle.s-fr.com/?p=connexion');
//exit;
}
$template->display('cms/'.$page.'.tpl');