connexion(); $bdd->escape($end_galaxie); $bdd->escape($end_ss); $bdd->escape($end_pos); $bdd->escape($mission); $bdd->escape($tactique); $bdd->escape($EBmetal); $bdd->escape($EBcristal); $bdd->escape($EBhydrogene); $bdd->escape($vitesse); $resultat = $bdd->query("SELECT id FROM $table_flottes WHERE id_user = '$id_user'"); $nbr = $bdd->num_rows; //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 > $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 < 0 || $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 que l'on n'envoie pas des ressources négatives elseif ((!empty($EBmetal) && $EBmetal < 0) || (!empty($EBcristal) && $EBcristal < 0) || (!empty($EBhydrogene) && $EBhydrogene < 0)) { $template->assign('message','Vous avez spécifié des valeurs négatives !'); $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 { $resultat = $bdd->unique_query("SELECT * FROM $table_planete 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']; $resultatu = $bdd->unique_query("SELECT * FROM $table_user 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 == 0 && $resultat['id_user'] != $id_user) { $template->assign('message','La planète sur laquelle vous désirez stationner ne vous appartient pas.'.$resultat['id_user'].' : '.$id_user); $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']; $bdd->escape($nom); $start_time = time(); $start_galaxie = $queryPlanete['galaxie']; $start_ss = $queryPlanete['ss']; $start_pos = $queryPlanete['position']; $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, $nbVais)*$vitesse/45*2; $contenu_metal = $_POST['metal']; $bdd->escape($contenu_metal); $plan_metal = $queryPlanete['metal'] - $contenu_metal; $contenu_cristal = $_POST['cristal']; $bdd->escape($contenu_cristal); $plan_cristal = $queryPlanete['cristal'] - $contenu_cristal; $contenu_hydrogene = $_POST['hydrogene']; $bdd->escape($contenu_hydrogene); $plan_hydrogene = $queryPlanete['hydrogene'] - $contenu_hydrogene - $conso; $contenu_max = $sess->values['flcontenu']; //if ( && ( || $mission != 5)) { if ($contenu_metal + $contenu_cristal + $contenu_hydrogene + $conso > $contenu_max && $contenu_metal + $contenu_cristal + $contenu_hydrogene != 0) { $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; } elseif ($plan_metal < 0 || $plan_cristal < 0 || $plan_hydrogene < 0) { $template->assign('message','Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } else { if ($mission == 1) { $tactiqueAT = $_POST['tactique']; $bdd->escape($tactiqueAT); $tactiqueEN = $resultatu['tactique']; $bdd->escape($tactiqueEN); } else { $tactiqueAT = 0; $tactiqueEN = 0; } $bdd->query("INSERT INTO $table_flottes (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');"); $bdd->query("UPDATE $table_planete SET $reqPlan, metal = '$plan_metal', cristal = '$plan_cristal', hydrogene = '$plan_hydrogene' WHERE id = '$idPlan' LIMIT 1 ;"); $bdd->deconnexion(); 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 = ceil($_GET['n']); $bdd->connexion(); $bdd->escape($idN); $resultat = $bdd->unique_query("SELECT * FROM $table_flottes WHERE id_user = '$id_user' AND id = '$idN'"); 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() - $resultat['start_time']; if ($resultat['mission'] == '6') { $template->assign('message','Votre flotte est déjà en train de revenir !'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } elseif ($resultat['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';"); header('Location: ?p=flotte&n='.$idN); exit; } else { $template->assign('message','Impossible d\'annuler la mission, elle a déjà commencée.'); $template->assign('script',''); $template->assign('couleur','red'); $template->display('game/erreur.tpl'); exit; } } $page = 'flotten'; if ($bdd->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 = $_POST['nomflotte']; $bdd->escape($nom); $bdd->unique_query("UPDATE $table_flottes SET nom = '$nom' WHERE id = '$idN' LIMIT 1;"); $resultat['nom'] = $nom; } $bdd->deconnexion(); $resultat['contenu_metalF'] = separerNombres($resultat['contenu_metal']); $resultat['contenu_cristalF'] = separerNombres($resultat['contenu_cristal']); $resultat['contenu_hydrogeneF'] = separerNombres($resultat['contenu_hydrogene']); $resultat['contenu_maxF'] = separerNombres($resultat['contenu_max']); $resultat['missionF'] = txtmission($resultat['mission']); $resultat['tactiqueAtDef'] = txtTactique($queryUser['combatAT_tactique']); $resultat['tactiqueF'] = txtTactique($resultat['tactiqueAT']); $resultat['end_timeT'] = $resultat['start_time'] + $resultat['end_time']; $sess->values['ret_fleet'] = sha1('HB.fleet_'.rand().'☺ß☻'); $sess->put(); $template->assign('ret_fleet', $sess->values['ret_fleet']); $template->assign('flotte', $resultat); $template->assign('nomvais', $nomvaisa); $template->assign('n', $idN); } } else { $page = 'flotte1'; $bdd->connexion(); $resultat = $bdd->query("SELECT * FROM $table_flottes WHERE id_user = '$id_user';"); $bdd->deconnexion(); $nbr = $bdd->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($nomvaisn[$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); } ?>