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->unique_query("SELECT COUNT(id) AS cnt FROM $table_flottes WHERE id_user = '$id_user'"); $bdd->deconnexion(); $nbr = $resultat['cnt']; //Vérification du code anti-bots /*if (!isset($sess->values['flcds']) || gpc('cds', 'post') != $sess->values['flcds']) erreur('Impossible d\'authentifier l\'envoie de la flotte.
Si le problème perciste, contactez un administrateur.', "red", '?p=flotte', 4000); //Si la mission est d'attaquer, on vérifie que les attaques ne soient pas désactivées else*/if ($mission == 3 && !ATTAQUES) erreur('Les attaques sont désactivées pour le moment. Pour plus d\'informations, consultez le forum.', "red", '?p=flotte', 5000); //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->level < 6)) erreur('La destination de la flotte n\'est pas correcte.', "red", '?p=flotte'); //Vérification que le nombre de slots ne soit pas dépassé elseif ($nbr > ceil(count($queryPlanetes)/2 + 1)) erreur('Vous n\'avez pas assez de slots disponibles.', "red", '?p=flotte'); //On vérifie la mission elseif ($mission < 0 || $mission > 5) erreur('Mission incorrecte !', "red", '?p=flotte'); //Si la mission est d'attaquer, on vérifie la tactique elseif ($mission == 3 && !(($tactique == 1 && $planete->technologies[3] & 4096) || ($tactique == 2 && $planete->technologies[3] & 8192) || ($tactique == 3 && $planete->technologies[3] & 16384) || $tactique == 0)) erreur('Vous ne connaissez pas cette tactique de combat !', "red", '?p=flotte'); //On vérifie la mission, si elle est d'espionner, il faut qu'il y ait des sondes elseif ($mission == 5 && $sess->values['vais'][6] <= 0 && $sess->values['vais'][13] <= 0) erreur('Vous ne pouvez pas espionner sans sonde d\'espionnage !', "red", '?p=flotte'); //On vérifie la mission, si elle est de coloniser, il faut qu'il y ait des vaisseaux de colonisation elseif ($mission == 2 && $sess->values['vais'][2] <= 0) erreur('Vous ne pouvez pas coloniser sans vaisseau de colonisation !', "red", '?p=flotte'); //On vérifie la mission, si elle est de recycler, il faut qu'il y ait des reclycleurs elseif ($mission == 4 && $sess->values['vais'][3] <= 0) erreur('Vous ne pouvez pas recycler sans recycleur !', "red", '?p=flotte'); //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'])) erreur('Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.', "red", '?p=flotte'); //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)) erreur('Vous avez spécifié des valeurs de ressources à embarquer incorrectes !', "red", '?p=flotte', 4000); //On vérifie la vitesse du vaisseau elseif (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 1) erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte'); else { //On vérifie qu'il n'y ait pas une interaction entre deux multi-comptes $cnt = count($multi); if ($cnt > 1 && $mission == 2) { for($i = 0; $i < $cnt; $i++){ if ($multi[$i]['id_util'] == $resultat['id_user']) erreur('Vous ne pouvez pas avoir d\'interaction avec ce joueur pour raison de multi-compte (voir page d\'accueil).'); } } $bdd->connexion(); $resultat = $bdd->unique_query("SELECT id, id_user, debris_met, debris_cri FROM $table_planete WHERE galaxie = '$end_galaxie' AND ss = '$end_ss' AND position = '$end_pos';"); $bdd->deconnexion(); //Si la mission est d'attaquer, on vérifie que le joueur cible ne soit pas ne mode vacances if ($mission == 3) { //Récupération de l'ID du joueur cible $rech_user = $resultat['id_user']; $bdd->connexion(); $resultatu = $bdd->unique_query("SELECT mv, time_inscription FROM $table_user WHERE id = '$rech_user';"); $bdd->deconnexion(); if ($resultatu['mv'] > 0) erreur('Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.', "red", '?p=flotte', 3000); //TODO Mettre le numéro du mode vacances et non > 0 !!! elseif ($resultatu['time_inscription'] + 604800 > time()) erreur('Le joueur que vous tentez d\'attaquer s\'est inscrit récemment, laissez-lui le temps de se préparer au combat !', "red", '?p=flotte', 3000); elseif (!$resultat) erreur('La planète que vous tentez d\'attaquer est inhabitée.', "red", '?p=flotte'); elseif ($resultat['id_user'] == $id_user) erreur('La planète que vous tentez d\'attaquer vous appartient.', "red", '?p=flotte'); } elseif ($mission == 2 && !$resultat) erreur('Impossible de transporter des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000); elseif ($mission == 3 && $resultat) erreur('La planète que vous voulez coloniser est déjà habitée.', "red", '?p=flotte', 3000); elseif ($mission == 0 && $resultat['id_user'] != $id_user) erreur('La planète sur laquelle vous désirez stationner ne vous appartient pas.', "red", '?p=flotte', 3000); elseif ($mission == 4 && ($resultat['debris_met'] <= 0 || $resultat['debris_cri'] <= 0) && empty($sess->values['forceFlotte'])) { $sess->values['forceFlotte'] = true; $sess->put(); erreur('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.', "orange"); } //Création de la flotte $req = array(); $reqPlan = array(); $nbVais = 0; foreach ($sess->values['vais'] as $key => $vaisseau){ if ($vaisseau > 0) { if ($vaisseau > $planete->vaisseaux[$key]) erreur('Vous avez envoyé plus de vaisseaux que vous n\'en posséder sur cette planète.', "red", '?p=flotte'); else { $req[] = $nomvaisnVAR[$key].' = '.$vaisseau; $reqPlan[] = $nomvaisnVAR[$key].' = '.$nomvaisnVAR[$key].' - '.$vaisseau; $nbVais += $vaisseau; } } } if ($nbVais <= 0) erreur('Vous devez envoyer au moins un vaisseau pour former une flotte !', "red", '?p=flotte'); elseif ($sess->values['flnbvais'] != $nbVais) erreur('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.', "red", '?p=flotte', 4500); else { //Envoie de la flotte $flotte = new flotte(); $flotte->nom = gpc('nomflotte', 'post'); $flotte->mission = $mission; $flotte->start_planete = $planete; $flotte->start_time = time(); $flotte->end_planete = $resultat['id']; $calc = $flotte->calc_deplacement($planete->galaxie, $planete->ss, $planete->position, $end_galaxie, $end_ss, $end_pos, $vitesse); $flotte->end_time = $calc[0]; $conso = $calc[1]; //On double la consomation si on fait un aller-retour if ($mission == 1 || $mission == 3 || $mission == 4 || $mission == 5) $conso *= 2; //On vérifie qu'il y a assez de place dans les cales des vaisseaux avant l'envoie ainsi que de ressources sur la planète $flotte->calculer(); if ($flotte->contenuMax < ceil(gpc('metal', 'post')) + ceil(gpc('cristal', 'post')) + ceil(gpc('hydrogene', 'post')) + $conso) erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent.', "red", '?p=flotte', 3500); elseif ($planete->metal < ceil(gpc('metal', 'post')) || $planete->cristal < ceil(gpc('cristal', 'post')) || $planete->hydrogene < ceil(gpc('hydrogene', 'post')) + $conso) erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500); else { if ($mission == 1) $flotte->tactique = gpc('tactique', 'post'); $flotte->contenu = array(ceil(gpc('metal', 'post')), ceil(gpc('cristal', 'post')), ceil(gpc('hydrogene', 'post'))); unset($sess->values['vais']); $sess->put(); erreur('Votre flotte a été envoyée avec succès.', "green", '?p=flotte', 4000); } } } } elseif (!empty($_POST['v0']) || !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']) || !empty($_POST['v13'])) { $nombreVaisseau = 0; foreach ($planete->vaisseaux as $key => $vaisseau){ $v = gpc('v'.$key, 'post'); if (!is_numeric($v)) $v = 0; else $v = (int)abs($v); if ($vaisseau < $v) { erreur('Il ne vous reste plus assez de vaisseaux !', "red", '?p=flotte'); } $sess->values['vais'][$key] = $v; $nombreVaisseau += $v; } //On vérifie que l'utilisateur a bien envoyé plus d'un vaisseau if ($nombreVaisseau <= 0) erreur('Vous devez envoyer au moins un vaisseau.', "red", '?p=flotte'); //On enregistre les paramètres en session $sess->values['flnbvais'] = $nombreVaisseau; $sess->values['forceFlotte'] = false; //Génération de la liste de mission possible avec les vaisseaux de la flotte $missions = array('Stationner'); if ($planete->technologies[0] & 8) $missions[1] = "Transporter"; if ($sess->values['vais'][2]) $missions[2] = "Coloniser"; if ($planete->technologies[7] & 16) $missions[3] = "Attaquer"; if ($sess->values['vais'][3]) $missions[4] = "Recycler"; if ($sess->values['vais'][3] || $sess->values['vais'][3]) $missions[5] = "Espionner"; $template->assign('missions', $missions); //On enregistre les modification de la session $sess->values['fltime'] = time(); $sess->put(); $page = 'flotte2'; $template->assign('scripth', ''); $template->assign('script', ''); //TODO Ajouter les destinations favorites + Colonies } //Affichage de la page générale else { //Mise à jour des tactiques par défaut $attaque = gpc('attaque', 'post'); $defense = gpc('defense', 'post'); if (is_numeric($attaque) && is_numeric($defense)) { $chang = false; if (($attaque != $planete->combatAT_tactique) && (($attaque == 1 && $planete->technologies[3] & 4096) || ($attaque == 2 && $planete->technologies[3] & 8192) || ($attaque == 3 && $planete->technologies[3] & 16384) || $attaque == 0)) { $planete->combatAT_tactique = $attaque; if (!in_array('combatAT_tactique', $planete->modifUser)) $planete->modifUser[] = 'combatAT_tactique'; $chang = true; } if (($defense != $planete->combatDE_tactique) && (($defense == 1 && $planete->technologies[3] & 4096) || ($defense == 2 && $planete->technologies[3] & 8192) || ($defense == 3 && $planete->technologies[3] & 16384) || $defense == 0)) { $planete->combatDE_tactique = $defense; if (!in_array('combatDE_tactique', $planete->modifUser)) $planete->modifUser[] = 'combatDE_tactique'; $chang = true; } if ($chang) erreur('Tactiques mises à jour avec succès.', 'green', '?p=flotte', 1100); } //Affichage des flottes en cours dans la galaxie $bdd->connexion(); $flottes = $bdd->query("SELECT * FROM $table_flottes WHERE id_user = '$id_user';"); $bdd->deconnexion(); $nbr = $bdd->num_rows; $TEMP_flottesEC = array(); if ($flottes) { foreach ($flottes as $flotte){ if ($flotte['mission'] != 1 && ($flotte['mission'] != 3 || $flotte['effectue'] == '1' || $flotte['nb_vais'] >= 1) && $flotte['mission'] != 0) { $retour = $flotte['start_galaxie'].':'.$flotte['start_ss'].':'.$flotte['start_position']; $Hretour = date('d/m H:i:s',$flotte['start_time']+2*$flotte['end_time']); } elseif ($flotte['mission'] == 1) { $retour = $flotte['start_galaxie'].':'.$flotte['start_ss'].':'.$flotte['start_position']; if (empty($flotte['ret_time'])) $Hretour = '-'; else $Hretour = date('d/m H:i:s',$flotte['ret_time']+$flotte['end_time']); } else { $retour = '-'; $Hretour = '-'; } $TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], $flotte['end_galaxie'].':'.$flotte['end_ss'].':'.$flotte['end_position'], date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour); } } $template->assign('flottesEC', $TEMP_flottesEC); //Affichage des vaisseaux disponible à l'envoie $TEMP_vaisseaux = array(); foreach ($planete->vaisseaux as $key => $vaisseau){ //On affiche uniquement les vaisseaux que l'on possède hormis la station spatiale if ($vaisseau > 0) $TEMP_vaisseaux[] = array($nomvaisn[$key], separerNombres($vaisseau), $vaisseau, $key); } $template->assign('vaisseaux', $TEMP_vaisseaux); //Calcul du nombre de slot disponible et vérouillage de l'envoie si besoin if ($nbr <= ceil(count($queryPlanetes)/2 + 1)) $template->assign('action', ''); else $template->assign('action', 'Nombre de flottes maximum simultanées atteint'); $template->assign('nbflotte', $nbr); $template->assign('nbflottemax', ceil(count($queryPlanetes)/2 + 1)); //Modification des tactiques $tactiques = array('1'); $attaqueT = 0; $defenseT = 0; if ($planete->technologies[3] & 4096) $tactiques[] = '2'; if ($planete->technologies[3] & 8192) $tactiques[] = '3'; if ($planete->technologies[3] & 16384) $tactiques[] = '4'; $template->assign('tactiques', $tactiques); $page = 'flotte1'; } ?>