query("SELECT * FROM `$table` WHERE `id_user` = '$id_user'"); $nbr = $chapeau->num_rows; $end_galaxie = floor($_POST['amas']); $chapeau->escape($end_galaxie); $end_ss = floor($_POST['ss']); $chapeau->escape($end_ss); $end_pos = floor($_POST['pos']); $chapeau->escape($end_pos); $mission = floor($_POST['mission']); $chapeau->escape($mission); $tactique = floor($_POST['tactique']); $chapeau->escape($tactique); $EBmetal = floor($_POST['metal']); $chapeau->escape($EBmetal); $EBcristal = floor($_POST['cristal']); $chapeau->escape($EBcristal); $EBhydrogene = floor($_POST['hydrogene']); $chapeau->escape($EBhydrogene); $vitesse = floor($_POST['vitesse']); $chapeau->escape($vitesse); //Vérification du code anti-bots if ($_POST['cds'] != $sess->values['flcds']) { $template->assign('message','Impossible d\'authentifier l\'envoie de la flotte.
Si le problème perciste, contactez un administrateur.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } //Si la mission est d'attaquer, on vérifie que les attaques ne soient pas désactivées elseif ($mission == 1 && !ATTAQUES) { $template->assign('message','Les attaques sont désactivées pour le moment. Pour plus d\'informations, consultez le forum.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } //Vérification que la destination ne soit pas en dehors de la galaxie elseif ($end_galaxie > MAX_AMAS || $end_ss > MAX_SYSTEME || $end_pos > MAX_PLANETE || $end_galaxie < 0 || $end_ss < 1 || $end_pos < 1 || ($end_galaxie < 1 && $sess->values['auth_level'] < 6)) { $template->assign('message','La destination de la flotte n\'est pas correcte.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } //Vérification que le nombre de slots ne soit pas dépassé elseif ($nbr + 1 > $queryUser['informatique']) { $template->assign('message','Vous n\'avez pas assez de slots disponibles.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } //On vérifie la mission elseif ($mission < 1 || $mission > 5) { $template->assign('message','Mission incorrecte !'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } //Si la mission est d'attaquer, on vérifie la tactique elseif ($mission == 1 && $tactique > $queryUser['tactique']) { $template->assign('message','Vous ne connaissez pas cette tactique de combat !'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } //On vérifie la mission, si elle est d'espionner, il faut qu'il y ait des sondes elseif ($mission == 5 && (!isset($sess->values['vais'][4]) || $sess->values['vais'][4] < 0)) { $template->assign('message','Vous ne pouvez pas espionner sans sonde d\'espionnage !'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } //On vérifie la mission, si elle est de coloniser, il faut qu'il y ait des vaisseaux de colonisation elseif ($mission == 3 && (!isset($sess->values['vais'][3]) || $sess->values['vais'][3] < 0)) { $template->assign('message','Vous ne pouvez pas coloniser sans vaisseau de colonisation !'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } //On vérifie la mission, si elle est de recycler, il faut qu'il y ait des reclycleurs elseif ($mission == 4 && (!isset($sess->values['vais'][5]) || $sess->values['vais'][5] < 0)) { $template->assign('message','Vous ne pouvez pas coloniser sans vaisseau de colonisation !'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } //On vérifie que l'on possède assez de ressources elseif ((!empty($EBmetal) && !$EBmetal > $queryPlanete['metal']) || (!empty($EBcristal) && !$EBcristal > $queryPlanete['cristal']) || (!empty($EBhydrogene) && !$EBhydrogene > $queryPlanete['hydrogene'])) { $template->assign('message','Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } //On vérifie la vitesse du vaisseau elseif (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 100) { $template->assign('message','La vitesse de votre flotte est incorrecte !'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } else { $table = $config['db_prefix'].'planete'; $resultat = $chapeau->unique_query("SELECT * FROM `$table` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_pos';"); //Si la mission est d'attaquer, on vérifie que le joueur cible ne soit pas ne mode vacances if ($mission == 1) { //Récupération de l'ID du joueur cible $rech_user = $resultat['id_user']; $table = $config['db_prefix'].'user'; $resultatu = $chapeau->unique_query("SELECT * FROM `$table` WHERE `id` = '$rech_user';"); if ($resultatu['mv'] != 0) { $template->assign('message','Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } elseif ($resultatu['time_inscription'] + 604800 > time()) { $template->assign('message','Le joueur que vous tentez d\'attaquer s\'est inscrit récemment, laissez-lui le temps de se préparer au combat !'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } elseif (!$resultat) { $template->assign('message','La planète que vous tentez d\'attaquer est inhabitée.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } elseif ($resultat['id_user'] == $id_user) { $template->assign('message','La planète que vous tentez d\'attaquer vous appartient.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } } elseif ($mission == 2 && !$resultat) { $template->assign('message','Impossible de transporter des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } elseif ($mission == 3 && $resultat) { $template->assign('message','La planète que vous voulez coloniser est déjà habitée.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } elseif ($mission == 4 && ($resultat['debris_met'] <= 0 || $resultat['debris_cri'] <= 0) && empty($sess->values['forceFlotte'])) { $sess->values['forceFlotte'] = true; $sess->put(); $template->assign('message','Il n\'y a rien à recycler sur la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'].
Vous pouvez forcer le lancement de la flotte en rechargeant cette page.'); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } //Création de la flotte $req = ''; $reqb = ''; $reqPlan = ''; $nbVais = ''; $nbI = count($nomvaisa); for ($i=1 ; $i<=$nbI ; $i++) { if (!empty($sess->values['vais'][$i])) { if ($sess->values['vais'][$i] > $queryPlanete['vaisseau_'.$i]) { $template->assign('message','Vous avez envoyé plus de vaisseaux que vous n\'en posséder sur cette planète.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } else { $req .= "'".$sess->values['vais'][$i]."', "; $reqb .= "`vaisseau_$i`, "; if (!empty($reqPlan)) $reqPlan .= ', '; $reqPlan .= "`vaisseau_$i` = `vaisseau_$i` - '".$sess->values['vais'][$i]."'"; $nbVais += $sess->values['vais'][$i]; } } } if ($nbVais <= 0) { $template->assign('message','Vous devez envoyer au moins un vaisseau pour former une flotte !'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } elseif ($sess->values['flnbvais'] != $nbVais) { $template->assign('message','Une erreur est survenue lors de la création de la flotte :

Calcul du nombre de vaisseaux incorrect !

Si le problème perciste, contactez un administrateur.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } else { //Envoie de la flotte $nom = $_POST['nomflotte']; $chapeau->escape($nom); $start_time = time(); $start_galaxie = $queryPlanete['galaxie']; $start_ss = $queryPlanete['ss']; $start_pos = $queryPlanete['position']; $vitesse = floor($_POST['vitesse'])/100; $chapeau->escape($vitesse); $end_time = vais_tempsDeplacement($start_galaxie, $start_ss, $start_pos, $end_galaxie, $end_ss, $end_pos, $sess->values['flvitesse'], $vitesse, $sess->values['flpreparation'], $sess->values['flchauffe']); if ($end_time <= 0) { $end_time = 454; } //On vérifie qu'il y a assez de place dans les cales des vaisseaux avant l'envoie $conso = vais_conso($end_time, $sess->values['flnbvais'])*$vitesse*10; $contenu_metal = $_POST['metal']; $chapeau->escape($contenu_metal); $plan_metal = $queryPlanete['metal'] - $contenu_metal; $contenu_cristal = $_POST['cristal']; $chapeau->escape($contenu_cristal); $plan_cristal = $queryPlanete['cristal'] - $contenu_cristal; $contenu_hydrogene = $_POST['hydrogene']; $chapeau->escape($contenu_hydrogene); $plan_hydrogene = $queryPlanete['hydrogene'] - $contenu_hydrogene - $conso; $contenu_max = $sess->values['flcontenu']; if ($contenu_metal + $contenu_cristal + $contenu_hydrogene + $conso > $contenu_max && ($contenu_metal + $contenu_cristal + $contenu_hydrogene != 0 || $mission != 5)) { $template->assign('message','Vous ne pouvez pas embarquer autant de ressources, les cales débordent.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } else { if ($mission == 1) { $tactiqueAT = $_POST['tactique']; $chapeau->escape($tactiqueAT); $tactiqueEN = $resultatu['tactique']; $chapeau->escape($tactiqueEN); } else { $tactiqueAT = 0; $tactiqueEN = 0; } $table = $config['db_prefix'].'flottes'; $chapeau->query("INSERT INTO `$table` (`id_user`, `mission`, `start_time`, `start_galaxie`, `start_ss`, `start_position`, `end_time`, `end_galaxie`, `end_ss`, `end_position`, `vitesse`, `contenu_metal`, `contenu_cristal`, `contenu_hydrogene`, `contenu_max`, `nb_vais`, $reqb`tactiqueAT`, `tactiqueEN`, `nom`) VALUES ('$id_user', '$mission', '$start_time', '$start_galaxie', '$start_ss', '$start_pos', '$end_time', '$end_galaxie', '$end_ss', '$end_pos', '$vitesse', '$contenu_metal', '$contenu_cristal', '$contenu_hydrogene', '$contenu_max', '$nbVais', $req'$tactiqueAT', '$tactiqueEN', '$nom');"); $table = $config['db_prefix'].'planete'; $chapeau->query("UPDATE `$table` SET $reqPlan, `metal` = '$plan_metal', `cristal` = '$plan_cristal', `hydrogene` = '$plan_hydrogene' WHERE `id` = '$idPlan' LIMIT 1 ;"); unset($sess->values['vais']); $sess->put(); $template->assign('message','Votre flotte a été envoyée avec succès.'); $template->assign('couleur','green'); $template->assign('script',''); $template->display('game/erreur.tpl'); exit; } } } } elseif (!empty($_POST['v1']) || !empty($_POST['v2']) || !empty($_POST['v3']) || !empty($_POST['v4']) || !empty($_POST['v5']) || !empty($_POST['v6']) || !empty($_POST['v7']) || !empty($_POST['v8']) || !empty($_POST['v9']) || !empty($_POST['v10']) || !empty($_POST['v11']) || !empty($_POST['v12'])) { $nombreVaisseau = 0; for ($i=1 ; $i<=12 ; $i++) { if (!isset($_POST['v'.$i]) || !is_numeric($_POST['v'.$i]) || $_POST['v'.$i] != abs(floor($_POST['v'.$i]))) $_POST['v'.$i] = 0; if ($_POST['v'.$i] >= 0 && $i != 11) { $sess->values['vais'][$i] = $_POST['v'.$i]; $nombreVaisseau += $_POST['v'.$i]; //Si on indique un nombre de vaisseaux supérieur au nombre présent sur la planète if ($_POST['v'.$i] > $queryPlanete['vaisseau_'.$i]) { $template->assign('message','Il ne vous reste plus assez de vaisseaux !'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } } } $sess->values['flnbvais'] = $nombreVaisseau; $sess->values['forceFlotte'] = false; //On vérifie que l'utilisateur a bien envoyé plus d'un vaisseau if ($nombreVaisseau <= 0) { $template->assign('message','Vous devez envoyer au moins un vaisseau.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } //On ajoute des missions supplémentaire suivant les vaisseaux envoyés $lvltactique = $queryUser['tactique']; $actionsupp = ''; if ($lvltactique >= 1) $actionsupp .= ''; if ($_POST['v3'] >= 1) $actionsupp .= ''; if ($_POST['v5'] >= 1) $actionsupp .= ''; if ($_POST['v4'] >= 1) $actionsupp .= ''; $template->assign('actionsupp', $actionsupp); // Définition des paramètres de la flotte $AvaisType = array(); $AvaisVitesseC = array(); $AvaisVitesseL = array(); $AvaisPrepC = array(); $AvaisPrepL = array(); $AvaisChauffe = array(); $AvaisContenu = 0; for ($i=1 ; $i<=12 ; $i++) { $AvaisType[] = $i; $AvaisVitesseC[] = $nomvais_dc[$i-1]; $AvaisVitesseL[] = $nomvais_dl[$i-1]; $AvaisContenu += $nomvais_rs[$i-1] * $_POST['v'.$i]; $AvaisPrepC[] = $nomvais_pdc[$i-1].' '; $AvaisPrepL[] = $nomvais_pdl[$i-1].' '; $AvaisChauffe[] = $nomvais_cdl[$i-1].' '; } if(min($AvaisVitesseL) != 0) { $sess->values['flvitesse'] = max($AvaisVitesseL); $sess->values['flpreparation'] = max($AvaisPrepL); $sess->values['flchauffe'] = max($AvaisChauffe); } else { $sess->values['flvitesse'] = max($AvaisVitesseC); $sess->values['flpreparation'] = max($AvaisPrepC); $sess->values['flchauffe'] = 0; } $sess->values['fltime'] = time(); $sess->values['flcontenu'] = $AvaisContenu; //On enregistre les modification de la session $sess->put(); $page = 'flotte2'; $template->assign('scripth', ''); $template->assign('script', ''); } elseif (!empty($_GET['n'])) { $idN = mysql_real_escape_string(ceil($_GET['n'])); $page = 'flotten'; $table = $config['db_prefix'].'flottes'; $resultat = $chapeau->unique_query("SELECT * FROM `$table` WHERE `id_user` = '$id_user' AND `id` = '$idN'"); if ($chapeau->num_rows <= 0) { $template->assign('message','Impossible de trouver cette flotte !'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } else { if (!empty($_POST['nomflotte'])) { $nom = mysql_real_escape_string(htmlentities($_POST['nomflotte'])); $chapeau->unique_query("UPDATE `$table` SET `nom` = '$nom' WHERE `id` = '$idN' LIMIT 1 ;"); $resultat['nom'] = $nom; } $template->assign('flotte', $resultat); $template->assign('nomvais', $nomvaisa); $template->assign('n', $idN); } } else { $page = 'flotte1'; $table = $config['db_prefix'].'flottes'; $resultat = $chapeau->query("SELECT * FROM `$table` WHERE `id_user` = '$id_user'"); $nbr = $chapeau->num_rows; $TEMP_flottesEC = array(); for ($i=0 ; $i<$nbr ; $i++) { if ($resultat[$i]['mission'] != 1 && ($resultat[$i]['mission'] != 3 || $resultat[$i]['effectue'] == '1' || $resultat[$i]['nb_vais'] >= 1) && $resultat[$i]['mission'] != 0) { $retour = $resultat[$i]['start_galaxie'].':'.$resultat[$i]['start_ss'].':'.$resultat[$i]['start_position']; $Hretour = date('d/m H:i:s',$resultat[$i]['start_time']+2*$resultat[$i]['end_time']); } elseif ($resultat[$i]['mission'] == 1) { $retour = $resultat[$i]['start_galaxie'].':'.$resultat[$i]['start_ss'].':'.$resultat[$i]['start_position']; if (empty($resultat[$i]['ret_time'])) $Hretour = '-'; else $Hretour = date('d/m H:i:s',$resultat[$i]['ret_time']+$resultat[$i]['end_time']); } else { $retour = '-'; $Hretour = '-'; } $TEMP_flottesEC[] = array($resultat[$i]['id'], $resultat[$i]['nom'], txtmission($resultat[$i]['mission']), $resultat[$i]['nb_vais'], $resultat[$i]['end_galaxie'].':'.$resultat[$i]['end_ss'].':'.$resultat[$i]['end_position'], date('d/m H:i:s',$resultat[$i]['start_time']+$resultat[$i]['end_time']), $retour, $Hretour); } $template->assign('flottesEC', $TEMP_flottesEC); $TEMP_vaisseaux = array(); $j=0; for ($i=1 ; $i<=12 ; $i++) { if ($queryPlanete['vaisseau_'.$i] > 0 && $i != 11) { $j++; $TEMP_vaisseaux[] = array($nomvaisa[$i-1], separerNombres($queryPlanete['vaisseau_'.$i]), $queryPlanete['vaisseau_'.$i], $i); } } $template->assign('vaisseaux', $TEMP_vaisseaux); $trez = $queryUser["informatique"] + 1; if ($nbr < $trez) $template->assign('action', ''); else $template->assign('action', 'Nombre de flottes maximum simultaniées atteint'); $template->assign('nbflotte', $nbr); $template->assign('nbflottemax', $trez); } ?>