game/onyx/hb_game/jeu/njoueur.php

143 lines
6.0 KiB
PHP
Raw Normal View History

2008-11-17 11:00:00 +00:00
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!empty($_GET['cds'])) {
if (!empty($_GET['nom']) && !empty($_GET['race']) && !empty($_GET['mdp']) && !empty($_GET['mail']) && !empty($_GET['ti']) && isset($_GET['placement'])) {
2008-11-30 11:00:00 +00:00
file_log('inscription : login = '.$_POST['HB_login'].' ; password = '.$_POST['HB_password'], 1);
2008-11-17 11:00:00 +00:00
if ($_GET['cds'] == sha1($_GET['nom'].'$'.$_GET['race'].'£'.$_GET['mdp'].'#'.$_GET['mail'].'ß'.$_GET['ti'].'Ó'.$_SERVER['HTTP_USER_AGENT'].'♀☻'.$_SERVER['REMOTE_ADDR'].$_GET['placement'])) {
2008-11-19 11:00:00 +00:00
$pseudo = $_GET['nom'];
$mdp = $_GET['mdp'];
$race = $_GET['race'];
$mail = $_GET['mail'];
$ti = $_GET['ti'];
2008-11-17 11:00:00 +00:00
$base = new bdd();
$base->connexion();
$base->db();
2008-11-19 11:00:00 +00:00
$base->escape($pseudo);
$base->escape($mdp);
$base->escape($race);
$base->escape($mail);
$base->escape($ti);
2008-11-17 11:00:00 +00:00
2008-11-19 11:00:00 +00:00
$base->query("SELECT * FROM $table_user WHERE pseudo = '$pseudo' ORDER BY id DESC;");
2008-11-17 11:00:00 +00:00
if ($base->num_rows) {
$template->assign('message','Votre compte est déjà créé sur ce serveur !');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
}
//Création de l'utilisateur
2008-11-19 11:00:00 +00:00
$base->query("INSERT INTO $table_user (pseudo, mdp, race, mail, last_ip, time_inscription) VALUES ('$pseudo', '$mdp', '$race', '$mail', '".$_SERVER['REMOTE_ADDR']."', '".time()."');");
2008-11-17 11:00:00 +00:00
//Création des bases de la planète
$image = mt_rand(1,15);
2008-11-30 11:00:00 +00:00
$cases = 225;
2008-11-19 11:00:00 +00:00
$queryUser = $base->query("SELECT * FROM $table_user WHERE pseudo = '$pseudo' ORDER BY id DESC;");
2008-11-17 11:00:00 +00:00
$id_user = $queryUser[0]['id'];
$time = time();
//Recherche d'une planète disponible
if (empty($_GET['placement'])) {
$planete_trouvee = false;
while (!$planete_trouvee) {
$galaxie = mt_rand(1, MAX_AMAS);
$ss = mt_rand(1, MAX_SYSTEME);
$pos = mt_rand(1, MAX_PLANETE);
//Test pour savoir si la planète est déjà habitée
2008-11-19 11:00:00 +00:00
$base->query("SELECT id FROM $table_planete WHERE galaxie='$galaxie' AND ss='$ss' AND position='$pos'");
2008-11-17 11:00:00 +00:00
if($base->num_rows) $planete_trouvee = false;
else $planete_trouvee = true;
}
2008-11-19 11:00:00 +00:00
$base->query("INSERT INTO $table_planete (id_user, nom_planete, galaxie, ss, position, image, cases, timestamp, metal, cristal, hash_planete) VALUES ('$id_user', 'Planète mère', '$galaxie', '$ss', '$pos', '$image', '$cases', '$time', '1000', '700', SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)))");
2008-11-17 11:00:00 +00:00
}
else {
2008-11-19 11:00:00 +00:00
$placement = $_GET["placement"];
$base->escape($placement);
$placement_joueur = $base->unique_query("SELECT * FROM $table_user WHERE pseudo = '$placement';");
2008-11-17 11:00:00 +00:00
if (!$placement_joueur && !isset($sess->values['forceInscript'])) {
$sess->values['forceInscript'] = true;
$sess->put();
$template->assign('message','Le joueur à côté duquel vous souhaitez être placé n\'est pas encore ou plus inscrit sur ce serveur.<br /><br />Si vous ne souhaitez plus être placé à ses côtés, rechargez la page.');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
}
if (!isset($sess->values['forceInscript'])) {
2008-11-19 11:00:00 +00:00
$placement_planetes = $base->query("SELECT * FROM $table_planete WHERE id_user = '".$placement_joueur["id"]."'");
2008-11-17 11:00:00 +00:00
$planete_trouvee = false;
$decale = 0;
while (!$planete_trouvee) {
for($i = 0; $i < $base->num_rows ; $i++){
$galaxie = $placement_planetes[$i]['galaxie'];
$ss = $placement_planetes[$i]['ss'] + $decale;
if ($ss >= MAX_SYSTEME) break;
for ($j = 1; $j <= MAX_PLANETE ; $j++) {
2008-11-19 11:00:00 +00:00
$base->query("SELECT * FROM $table_planete WHERE galaxie='$galaxie' AND ss='$ss' AND position='$j'");
2008-11-17 11:00:00 +00:00
if(!$base->num_rows) {
$planete_trouvee = true;
$blk_galaxie = $galaxie;
$blk_ss = $ss;
$blk_pos = $j;
break;
}
}
if ($planete_trouvee) break;
}
$decale++;
if ($ss >= MAX_SYSTEME) break;
}
if (!$planete_trouvee) $impplac = true;
}
if (!$planete_trouvee || ($planete_trouvee && !empty($sess->values['forceInscript']))) {
while (!$planete_trouvee) {
$blk_galaxie = mt_rand(1, MAX_AMAS);
$blk_ss = mt_rand(1, MAX_SYSTEME);
$blk_pos = mt_rand(1, MAX_PLANETE);
//Test pour savoir si la planète est déjà habitée
2008-11-19 11:00:00 +00:00
$base->query("SELECT id FROM $table_planete WHERE galaxie='$blk_galaxie' AND ss='$blk_ss' AND position='$blk_pos'");
2008-11-17 11:00:00 +00:00
if($base->num_rows) $planete_trouvee = false;
else $planete_trouvee = true;
}
}
2008-11-19 11:00:00 +00:00
$base->query("INSERT INTO $table_planete (id_user, nom_planete, galaxie, ss, position, image, cases, timestamp, metal, cristal, hash_planete) VALUES ('$id_user', 'Planète mère', '$blk_galaxie', '$blk_ss', '$blk_pos', '$image', '$cases', '$time', '1000', '700', SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)))");
2008-11-17 11:00:00 +00:00
}
$base->deconnexion();
if (!empty($impplac)) {
$template->assign('message','Impossible de trouver une planète proche du joueur près duquel vous vouliez être placé.<br />Vous avez été placé aléatoirement.');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
}
else {
$template->assign('message','Vous pouvez maintenant vous connectez sur ce serveur !');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?index";\', 3500);</script>');
$template->assign('couleur','green');
$template->display('cms/erreur.tpl');
exit;
}
}
else {
$template->assign('message','Impossible d\'authentifier votre inscription !<br /><br />Si le problème perciste, contactez un administrateur.');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
}
}
else {
$template->assign('message','Impossible de terminer votre inscription, il manque des données !<br /><br />Si le problème perciste, contactez un administrateur.');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
}
}
else header('Location: ./');
?>