HB/pages/includes/flotte.php

508 lines
26 KiB
PHP
Raw Normal View History

2008-11-19 11:00:00 +00:00
<?php
//session_start();
set_time_limit(10);
$id=$_SESSION['id'];
$galaxy=$_SESSION['galaxy'];
$ss=$_SESSION['ss'];
$pos=$_SESSION['pos'];
/* ! ATTENTION ! NE PAS FAIRE DE REFERENCE A UNE DONNEE DU FICHIER BDD.PHP OU
* DE L'UTILISATEUR COURANT CAR LE SCRIPT EST LANCE PAR L'ATTAQUANT ET PAR
* L'ATTAQU<EFBFBD>.
*/
include('bdd.php');
include('noms.php');
require_once('../fonctions.php');
require('../connectBDD.php');
function resteVaisseau($tableau){
$ct = count($tableau);
for ($i = 0; $i < $ct; $i++) {
if (!empty($tableau[$i])) return true;
}
return false;
}
$req = mysql_query("SELECT * FROM flottes WHERE `id_user` = '$id' OR (`end_galaxie` = '$galaxy' AND `end_ss` = '$ss' AND `end_position` = '$pos')");
while ($resultat = mysql_fetch_array($req)) {
$id_flotte = $resultat['id'];
$mission = $resultat['mission'];
$end_galaxie = $resultat['end_galaxie'];
$end_ss = $resultat['end_ss'];
$end_position = $resultat['end_position'];
if ($resultat['effectue'] != 1 && time() >= $resultat['start_time'] + $resultat['end_time'] && !empty($resultat['end_time'])) {
//Mission attaquer
if ($mission == 1) {
//D<>finition des variables
$deb_met = 0;
$deb_cri = 0;
//R<>cup<75>ration d'informations sur le joueur cible : nombre de vaisseaux, d<>fenses
$reqd = mysql_query("SELECT * FROM planete WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'");
$resultatd = mysql_fetch_array($reqd);
//G<>n<EFBFBD>ration des tableaux contenant les informations de chaque vaisseaux
$ATvais = ''; $ENvais = ''; $ENdef = ''; $ATvais_pv = ''; $ENvais_pv = ''; $ENdef_pv = ''; $ATvais_bc = ''; $ENvais_bc = ''; $ENdef_bc = '';
for ($i = 1; $i <= 12; $i++) {
//Donn<6E>es joueur attaquant
for ($j = 1; $j <= $resultat['vaisseau_'.$i]; $j++) {
$ATvais .= $i.' '; //R<>cup<75>ration du type du vaisseau
$ATvais_pv .= $nomvais_pv[$i-1].' '; //R<>cup<75>ration des PV du vaisseau suivant son type
$ATvais_bc .= $nomvais_bc[$i-1].' '; //R<>cup<75>ration des boucliers du vaisseau suivant son type
}
//Donn<6E>es joueur cible
for ($j = 1; $j <= $resultatd['vaisseau_'.$i]; $j++) {
$ENvais .= $i.' '; //R<>cup<75>ration du type du vaisseau
$ENvais_pv .= $nomvais_pv[$i-1].' '; //R<>cup<75>ration des PV du vaisseau suivant son type
$ENvais_bc .= $nomvais_bc[$i-1].' '; //R<>cup<75>ration des boucliers du vaisseau suivant son type
}
}
//G<>n<EFBFBD>ration des tableaux contenant les informations des d<>fenses de la plan<61>te
for ($i = 1; $i <= 5; $i++) {
for ($j = 1; $j <= $resultatd['def_'.$i]; $j++) {
$ENdef .= $i.' '; //R<>cup<75>ration du type de d<>fense
$ENdef_pv .= $defense_pv[$i-1].' '; //R<>cup<75>ration des PV de la d<>fense suivant son type
$ENdef_bc .= $defense_bc[$i-1].' '; //R<>cup<75>ration des boucliers de la d<>fense suivant son type
}
}
//Cr<43>ation des tableaux
$ATvais = split(' ', trim($ATvais));
$ENvais = split(' ', trim($ENvais));
$ENdef = split(' ', trim($ENdef));
$ATvais_pv = split(' ', trim($ATvais_pv));
$ENvais_pv = split(' ', trim($ENvais_pv));
$ENdef_pv = split(' ', trim($ENdef_pv));
$ATvais_bc = split(' ', trim($ATvais_bc));
$ENvais_bc = split(' ', trim($ENvais_bc));
$ENdef_bc = split(' ', trim($ENdef_bc));
while(resteVaisseau($ATvais) && (resteVaisseau($ENvais) || resteVaisseau($ENdef))) {
//R<>cup<75>ration du nombre de vaisseaux attaquant
$nb_ATvais = count($ATvais);
//Attaque des vaisseaux un par un
for ($i = 0; $i<$nb_ATvais ; $i++) {
//D<>finition des param<61>tres du vaisseau qui va attaquer
$vaisAT_id = $i; //ID du vaisseau dans le tableau
$vaisAT_type = $ATvais[$vaisAT_id] - 1; //type du vaisseau pour une utilisation inter-tableaux : d<>part <20> 0 et non <20> 1
$vaisAT_pv = $ATvais_pv[$vaisAT_id]; //r<>cup<75>ration du nombre de PV du vaisseau
$vaisAT_bc = $ATvais_bc[$vaisAT_id]; //R<>cup<75>ration du bouclier
$vaisAT_at = $nomvais_at[$vaisAT_type];
//On ne fait quelque chose que si le vaisseau <20> encore des point de vie
if ($vaisAT_pv > 0) {
/* Formation d<EFBFBD>fense majeur, attaque al<EFBFBD>atoire
*
* R<EFBFBD>g<EFBFBD>n<EFBFBD>ration des boucliers 100%
* Attaque suivant les proportions vaisseaux/d<EFBFBD>fenses du joueur cible
*/
//Si le bouclier est endommag<61>, on le r<>g<EFBFBD>n<EFBFBD>re
if ($vaisAT_bc < $nomvais_bc[$vaisAT_type]) {
$vaisAT_bc = $ATvais_bc[$vaisAT_id] = $nomvais_bc[$vaisAT_type];
}
//Le bouclier est intact, on attaque al<61>atoirement une d<>fense ou un vaisseau
else {
//Le vaisseau attaque tant qu'il lui reste des points d'attaques disponibles ou tant qu'il reste des vaisseaux et des d<>fenses <20> attaquer
while($vaisAT_at > 0 && (resteVaisseau($ENvais) || resteVaisseau($ENdef))) {
//D<>termine le nombre de vaisseaux et de d<>fenses
$ENnbvais = count($ENvais);
$ENnbdef = count($ENdef);
//Choix du vaisseau ou de la d<>fense qui va <20>tre attaqu<71>e
$vaisEN_id = rand(1,$ENnbvais+$ENnbdef);
//Si l'unit<69> attaqu<71>e est un vaisseau
if ($vaisEN_id <= $ENnbvais) {
$vaisEN_id--;
//D<>finition des param<61>tres du vaisseau attaqu<71>
$vaisEN_type = $ENvais[$vaisEN_id] - 1;
$vaisEN_pv = $ENvais_pv[$vaisEN_id];
$vaisEN_bc = $ENvais_bc[$vaisEN_id];
//Si le vaisseau n'a plus de PV, on en attaque un autre
if ($vaisEN_pv <= 0) continue;
//Recherche du rapide fire pour le vaisseau attaqu<71>
$vaisAT_rf = $nomvais_rf[$vaisAT_type][$vaisEN_type];
//Si le vaisseau est d<>truit
if ($vaisEN_pv + $vaisEN_bc <= $vaisAT_at * $vaisAT_rf) {
//On efface la trace du vaisseau
$ENvais[$vaisEN_id] = '';
$ENvais_pv[$vaisEN_id] = 0;
//Recalcul de l'attaque restante du vaisseau
$vaisAT_at -= floor(($vaisEN_pv + $vaisEN_bc) / $vaisAT_rf);
//On ajoute les d<>bris du vaisseau dans le champ de d<>bris de la plan<61>te
$deb_met += $nomvais_md[$vaisEN_type];
$deb_cri += $nomvais_cd[$vaisEN_type];
}
//Si le vaisseau est endommag<61>
else {
//Calcul du nombre de points de vies perdu par le vaisseau
$atarr = $vaisEN_bc - ($vaisAT_at * $vaisAT_rf);
if ($atarr < 0) $ENvais_pv[$vaisEN_id] += $atarr;
$vaisAT_at -= floor(($vaisEN_pv + $vaisEN_bc) / $vaisAT_rf);
}
}
//Si l'unit<69> attaqu<71>e est une d<>fense
else {
//Recherche de l'ID de la d<>fense
$defEN_id = $vaisEN_id - $ENnbvais - 1;
//D<>finitions des param<61>tres de la d<>fense
$defEN_type = $ENdef[$defEN_id] - 1;
$defEN_pv = $ENdef_pv[$defEN_id];
//Si la d<>fense n'a plus de point de vie, on attaque une autre unit<69>
if ($defEN_pv <= 0) continue;
$defEN_bc = $defense_bc[$defEN_type];
//Recherche du rapide fire pour la d<>fense attaqu<71>e
$vaisAT_rf = 1;
//$vaisAT_rf = $nomvais_rfD[$vaisAT_type][$defEN_type];
//Si la d<>fense est d<>truite
if ($defEN_pv + $defEN_bc <= $vaisAT_at * $vaisAT_rf) {
//On efface la trace de la d<>fense
$ENdef[$defEN_id] = '';
$ENdef_pv[$defEN_id] = 0;
//Recalcul de l'attaque restante du vaisseau
$vaisAT_at -= floor(($defEN_pv + $defEN_bc) / $vaisAT_rf);
}
//Si la d<>fense est endommag<61>e
else {
//Calcul du nombre de points de vies perdu par le vaisseau
$atarr = $defEN_bc - ($vaisAT_at * $vaisAT_rf);
if ($atarr < 0) $ENdef_pv[$defEN_id] += $atarr;
$vaisAT_at -= floor(($defEN_pv + $defEN_bc) / $vaisAT_rf);
}
}
}
}
}
}
//R<>cup<75>ration du nombre de vaisseaux d<>fenseurs
$nb_ENvais = count($ENvais);
//Attaque des vaisseaux un par un
for ($i = 0; $i<$nb_ENvais ; $i++) {
//D<>finition des param<61>tres du vaisseau qui va attaquer
$vaisEN_id = $i; //ID du vaisseau dans le tableau
$vaisEN_type = $ENvais[$vaisEN_id]; //type du vaisseau pour une utilisation inter-tableaux : d<>part <20> 0 et non <20> 1
//Si le vaisseau est d<>trui, on passe directement au suivant
if (empty($vaisEN_type)) continue;
$vaisEN_type--;
$vaisEN_pv = $ENvais_pv[$vaisEN_id]; //r<>cup<75>ration du nombre de PV du vaisseau
$vaisEN_bc = $ENvais_bc[$vaisEN_id]; //R<>cup<75>ration du bouclier
$vaisEN_at = $nomvais_at[$vaisEN_type];
//On ne fait quelque chose que si le vaisseau <20> encore des point de vie
if ($vaisEN_pv > 0) {
/* Formation d<EFBFBD>fense majeur, attaque al<EFBFBD>atoire
*
* R<EFBFBD>g<EFBFBD>n<EFBFBD>ration des boucliers 100%
* Attaque suivant les proportions vaisseaux/d<EFBFBD>fenses du joueur cible
*/
//Si le bouclier est endommag<61>, on le r<>g<EFBFBD>n<EFBFBD>re
if ($vaisEN_bc < $nomvais_bc[$vaisEN_type]) {
$vaisEN_bc = $ENvais_bc[$vaisEN_id] = $nomvais_bc[$vaisEN_type];
}
//Le bouclier est intact, on attaque al<61>atoirement une d<>fense ou un vaisseau
else {
//Le vaisseau attaque tant qu'il lui reste des points d'attaques disponibles ou tant qu'il reste des vaisseaux et des d<>fenses <20> attaquer
while($vaisEN_at > 0 && resteVaisseau($ATvais)) {
//D<>termine le nombre de vaisseaux
$ATnbvais = count($ATvais);
//Choix du vaisseau qui va <20>tre attaqu<71>e
$vaisAT_id = rand(1,$ATnbvais);
//Si l'unit<69> attaqu<71>e est un vaisseau
if ($vaisAT_id <= $ATnbvais) {
$vaisAT_id--;
//D<>finition des param<61>tres du vaisseau attaqu<71>
$vaisAT_type = $ATvais[$vaisAT_id] - 1;
$vaisAT_pv = $ATvais_pv[$vaisAT_id];
$vaisAT_bc = $ATvais_bc[$vaisAT_id];
//Si le vaisseau n'a plus de PV, on en attaque un autre
if ($vaisAT_pv <= 0) continue;
//Recherche du rapide fire pour le vaisseau attaqu<71>
$vaisEN_rf = $nomvais_rf[$vaisEN_type][$vaisAT_type];
//Si le vaisseau est d<>truit
if ($vaisAT_pv + $vaisAT_bc <= $vaisEN_at * $vaisEN_rf) {
//On efface la trace du vaisseau
$ATvais[$vaisAT_id] = '';
$ATvais_pv[$vaisAT_id] = 0;
//Recalcul de l'attaque restante du vaisseau
$vaisEN_at -= floor(($vaisAT_pv + $vaisAT_bc) / $vaisEN_rf);
//On ajoute les d<>bris du vaisseau dans le champ de d<>bris de la plan<61>te
$deb_met += $nomvais_md[$vaisAT_type];
$deb_cri += $nomvais_cd[$vaisAT_type];
}
//Si le vaisseau est endommag<61>
else {
//Calcul du nombre de points de vies perdu par le vaisseau
$atarr = $vaisAT_bc - ($vaisEN_at * $vaisEN_rf);
if ($atarr < 0) $ATvais_pv[$vaisAT_id] += $atarr;
$vaisEN_at -= floor(($vaisAT_pv + $vaisAT_bc) / $vaisEN_rf);
}
}
}
}
}
}
//R<>cup<75>ration du nombre de d<>fenses d<>fenseurs
$nb_ENdef = count($ENdef);
//Attaque des vaisseaux un par un
for ($i = 0; $i<$nb_ENdef ; $i++) {
//D<>finition des param<61>tres du vaisseau qui va attaquer
$defEN_id = $i; //ID du vaisseau dans le tableau
$defEN_type = $ENdef[$defEN_id]; //type du vaisseau pour une utilisation inter-tableaux : d<>part <20> 0 et non <20> 1
//Si le vaisseau est d<>trui, on passe directement au suivant
if (empty($defEN_type)) continue;
$defEN_type--;
$defEN_pv = $ENdef_pv[$defEN_id]; //r<>cup<75>ration du nombre de PV du vaisseau
$defEN_bc = $ENdef_bc[$defEN_id]; //R<>cup<75>ration du bouclier
$defEN_at = $defense_at[$defEN_type];
//On ne fait quelque chose que si le vaisseau <20> encore des point de vie
if ($defEN_pv > 0) {
/* Formation d<EFBFBD>fense majeur, attaque al<EFBFBD>atoire
*
* R<EFBFBD>g<EFBFBD>n<EFBFBD>ration des boucliers 100%
* Attaque suivant les proportions vaisseaux/d<EFBFBD>fenses du joueur cible
*/
//Si le bouclier est endommag<61>, on le r<>g<EFBFBD>n<EFBFBD>re
if ($defEN_bc < $defense_bc[$defEN_type]) {
$defEN_bc = $ENdef_bc[$defEN_id] = $defense_bc[$defEN_type];
}
//Le bouclier est intact, on attaque al<61>atoirement une d<>fense ou un vaisseau
else {
//Le vaisseau attaque tant qu'il lui reste des points d'attaques disponibles ou tant qu'il reste des vaisseaux et des d<>fenses <20> attaquer
while($defEN_at > 0 && restevaisseau($ATvais)) {
//D<>termine le nombre de vaisseaux
$ATnbvais = count($ATvais);
//Choix du vaisseau qui va <20>tre attaqu<71>e
$vaisAT_id = rand(1,$ATnbvais);
//Si l'unit<69> attaqu<71>e est un vaisseau
if ($vaisAT_id <= $ATnbvais) {
$vaisAT_id--;
//D<>finition des param<61>tres du vaisseau attaqu<71>
$vaisAT_type = $ATvais[$vaisAT_id] - 1;
$vaisAT_pv = $ATvais_pv[$vaisAT_id];
$vaisAT_bc = $ATvais_bc[$vaisAT_id];
//Si le vaisseau n'a plus de PV, on en attaque un autre
if ($vaisAT_pv <= 0) continue;
//Recherche du rapide fire pour le defseau attaqu<71>
$defEN_rf = $defense_rf[$defEN_type][$vaisAT_type];
//Si le vaisseau est d<>truit
if ($vaisAT_pv + $vaisAT_bc <= $defEN_at * $defEN_rf) {
//On efface la trace du vaisseau
$ATvais[$vaisAT_id] = '';
$ATvais_pv[$vaisAT_id] = 0;
//Recalcul de l'attaque restante du vaisseau
$defEN_at -= floor(($vaisAT_pv + $vaisAT_bc) / $defEN_rf);
//On ajoute les d<>bris du vaisseau dans le champ de d<>bris de la plan<61>te
$deb_met += $nomvais_md[$vaisAT_type];
$deb_cri += $nomvais_cd[$vaisAT_type];
}
//Si le vaisseau est endommag<61>
else {
//Calcul du nombre de points de vies perdu par le vaisseau
$atarr = $vaisAT_bc - ($defEN_at * $defEN_rf);
if ($atarr < 0) $ATvais_pv[$vaisAT_id] += $atarr;
$defEN_at -= floor(($vaisAT_pv + $vaisAT_bc) / $defEN_rf);
}
}
}
}
}
}
}
//R<>calcul des vaisseaux restants
$ATvaisseaux = array_count_values($ATvais);
$ATvaisseau_1 = $ATvaisseaux['1']; $ATvaisseau_2 = $ATvaisseaux['2']; $ATvaisseau_3 = $ATvaisseaux['3']; $ATvaisseau_4 = $ATvaisseaux['4']; $ATvaisseau_5 = $ATvaisseaux['5']; $ATvaisseau_6 = $ATvaisseaux['6']; $ATvaisseau_7 = $ATvaisseaux['7']; $ATvaisseau_8 = $ATvaisseaux['8']; $ATvaisseau_9 = $ATvaisseaux['9']; $ATvaisseau_10 = $ATvaisseaux['10']; $ATvaisseau_11 = $ATvaisseaux['11']; $ATvaisseau_12 = $ATvaisseaux['12'];
$AT_nbvais = $ATvaisseau_1 + $ATvaisseau_2 + $ATvaisseau_3 + $ATvaisseau_4 + $ATvaisseau_5 + $ATvaisseau_6 + $ATvaisseau_7 + $ATvaisseau_8 + $ATvaisseau_9 + $ATvaisseau_10 + $ATvaisseau_11 + $ATvaisseau_12;
$contenu_max = $nomvais_rs[0]*$ATvaisseau_1 + $nomvais_rs[1]*$ATvaisseau_2 + $nomvais_rs[2]*$ATvaisseau_3 + $nomvais_rs[3]*$ATvaisseau_4 + $nomvais_rs[4]*$ATvaisseau_5 + $nomvais_rs[5]*$ATvaisseau_6 + $nomvais_rs[6]*$ATvaisseau_7 + $nomvais_rs[7]*$ATvaisseau_8 + $nomvais_rs[8]*$ATvaisseau_9 + $nomvais_rs[9]*$ATvaisseau_10 + $nomvais_rs[10]*$ATvaisseau_11 + $nomvais_rs[11]*$ATvaisseau_12;
$ENvaisseaux = array_count_values($ENvais);
$ENvaisseau_1 = $ENvaisseaux['1']; $ENvaisseau_2 = $ENvaisseaux['2']; $ENvaisseau_3 = $ENvaisseaux['3']; $ENvaisseau_4 = $ENvaisseaux['4']; $ENvaisseau_5 = $ENvaisseaux['5']; $ENvaisseau_6 = $ENvaisseaux['6']; $ENvaisseau_7 = $ENvaisseaux['7']; $ENvaisseau_8 = $ENvaisseaux['8']; $ENvaisseau_9 = $ENvaisseaux['9']; $ENvaisseau_10 = $ENvaisseaux['10']; $ENvaisseau_11 = $ENvaisseaux['11']; $ENvaisseau_12 = $ENvaisseaux['12'];
$ENdefenses = array_count_values($ENdef);
$ENdefense_1 = $ENdefenses['1']; $ENdefense_2 = $ENdefenses['2']; $ENdefense_3 = $ENdefenses['3']; $ENdefense_4 = $ENdefenses['4']; $ENdefense_5 = $ENdefenses['5'];
if (!resteVaisseau($ATvais)) {
$win = false;
mysql_query("DELETE FROM `flottes` WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error());
}
else {
$win = true;
if ($contenu_max-$resultat['contenu_metal']-$resultat['contenu_cristal']-$resultat['contenu_hydrogene'] > 0) {
$pillage = pillage($resultatd['metal'], $resultatd['cristal'], $resultatd['hydrogene'], $contenu_max-$resultat['contenu_metal']-$resultat['contenu_cristal']-$resultat['contenu_hydrogene']);
$Cmetal = $resultat['contenu_metal'] + $pillage[0];
$Ccristal = $resultat['contenu_cristal'] + $pillage[1];
$Chydrogene = $resultat['contenu_hydrogene'] + $pillage[2];
}
else {
$Cmetal = 0;
$Ccristal = 0;
$Chydrogene = 0;
}
mysql_query("UPDATE `flottes` SET `effectue` = '1', `contenu_metal` = '$Cmetal', `contenu_cristal` = '$Ccristal', `contenu_hydrogene` = '$Chydrogene', `nb_vais` = '$AT_nbvais', `vaisseau_1` = '$ATvaisseau_1', `vaisseau_2` = '$ATvaisseau_2', `vaisseau_3` = '$ATvaisseau_3', `vaisseau_4` = '$ATvaisseau_4', `vaisseau_5` = '$ATvaisseau_5', `vaisseau_6` = '$ATvaisseau_6', `vaisseau_7` = '$ATvaisseau_7', `vaisseau_8` = '$ATvaisseau_8', `vaisseau_9` = '$ATvaisseau_9', `vaisseau_10` = '$ATvaisseau_10', `vaisseau_11` = '$ATvaisseau_11', `vaisseau_12` = '$ATvaisseau_12' WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error());
//Mise <20> jour de la quantit<69> de ressources sur la plan<61>te pill<6C>e
$planMetal = $resultatd['metal'] - $pillage[0];
$planCristal = $resultatd['cristal'] - $pillage[1];
$planHydrogene = $resultatd['hydrogene'] - $pillage[2];
mysql_query("UPDATE `planete` SET `metal` = '$planMetal', `cristal` = '$planCristal', `hydrogene` = '$planHydrogene' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error());
}
mysql_query("UPDATE `planete` SET `debris_met` = '$deb_met', `debris_cri` = '$deb_cri', `vaisseau_1` = '$ENvaisseau_1', `vaisseau_2` = '$ENvaisseau_2', `vaisseau_3` = '$ENvaisseau_3', `vaisseau_4` = '$ENvaisseau_4', `vaisseau_5` = '$ENvaisseau_5', `vaisseau_6` = '$ENvaisseau_6', `vaisseau_7` = '$ENvaisseau_7', `vaisseau_8` = '$ENvaisseau_8', `vaisseau_9` = '$ENvaisseau_9', `vaisseau_10` = '$ENvaisseau_10', `vaisseau_11` = '$ENvaisseau_11', `vaisseau_12` = '$ENvaisseau_12', `def_1` = '$ENdefense_1', `def_2` = '$ENdefense_2', `def_3` = '$ENdefense_3', `def_4` = '$ENdefense_4', `def_5` = '$ENdefense_5' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error());
//Envoie d'un mail <20> l'attaquant
if ($win) $message = 'L\'attaque que nous avons lanc<6E> contre la plan<61>te '.$end_galaxie.':'.$end_ss.':'.$end_position.' s\'est termin<69>e avec succ<63>s puisque nous avons gagn<67>.<br /><br />Nous rapportons dans nos cales : '.$pillage[0].' de '.$ressourc[0].', '.$pillage[1].' de '.$ressourc[1].' et '.$pillage[2].' de '.$ressourc[2].'.';
else $message = 'L\'attaque que nous avons lanc<6E> contre la plan<61>te '.$end_galaxie.':'.$end_ss.':'.$end_position.' s\'est termin<69>e par une d<>faite.<br /><br />Un champ de d<>bris compos<6F> de '.$deb_met.' de '.$ressourc[0].' et '.$deb_cri.' de '.$ressourc[1].' s\'est form<72> <20> la suite de cette bataille.';
$message = mysql_real_escape_string($message);
$pseudo = trouvNom($resultat['id_user']);
$temps = $resultat['start_time'] + $resultat['end_time'];
mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Attaque', '$message', '$temps')") or die ("erreur sql ".mysql_error());
//Envoie d'un mail au d<>fenseur
if ($win) $message = 'Nous venons de subir une attaque sur la plan<61>te '.$end_galaxie.':'.$end_ss.':'.$end_position.'. Nos d<>fenses n\'ont pas suffi <20> arr<72>ter l\'ennemi qui est reparti avec pr<70>s de '.$pillage[0].' de '.$ressourc[0].', '.$pillage[1].' de '.$ressourc[1].' et '.$pillage[2].' de '.$ressourc[2].'.';
else $message = 'Nous venons de subir une attaque sur la plan<61>te '.$end_galaxie.':'.$end_ss.':'.$end_position.'. Nos d<>fenses ont r<>ussi <20> arr<72>ter l\'ennemi avant qu\'il ne reparte avec nos ressources.';
$message = mysql_real_escape_string($message);
$pseudo = trouvNom($resultatd['id_user']);
mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Attaque', '$message', '$temps')") or die ("erreur sql ".mysql_error());
}
//Mission Transporter
elseif ($mission == 2) {
$reqT = mysql_query("SELECT metal,cristal,hydrogene FROM `planete` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error());
$resultatT = mysql_fetch_array($reqT);
$Cmetal = $resultat['contenu_metal'] + $resultatT['metal'];
$Ccristal = $resultat['contenu_cristal'] + $resultatT['cristal'];
$Chydrogene = $resultat['contenu_hydrogene'] + $resultatT['hydrogene'];
mysql_query("UPDATE `planete` SET `metal` = '$Cmetal', `cristal` = '$Ccristal', `hydrogene` = '$Chydrogene' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error());
mysql_query("UPDATE `flottes` SET `effectue` = '1', `contenu_metal` = '0', `contenu_cristal` = '0', `contenu_hydrogene` = '0' WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error());
$message = 'Vos vaisseaux ont d<>pos<6F>s '.$resultat['contenu_metal'].' de m<>tal, '.$resultat['contenu_cristal'].' de cristal et '.$resultat['contenu_hydrogene'].' d\'hydrog<6F>ne aux coordonn<6E>es '.$end_galaxie.':'.$end_ss.':'.$end_position;
mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Transport', '$message', '$temps')");
}
//Mission Coloniser
elseif ($mission == 3) {
$reqT = mysql_query("SELECT * FROM `planete` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error());
if (!mysql_num_rows($reqT) > 0) {
$time = time();
$temps = time();
$cases = mt_rand(125,222);
$image = mt_rand(1,15);
$reqIsol = mysql_query("SELECT * FROM planete WHERE id_user='$id'");
if (mysql_num_rows($reqIsol) >= 11) $isolement = time() + rand(9000,170000);
else $isolement = 0;
mysql_query("INSERT INTO planete (`id_user`, `isolement`, `nom_planete`, `galaxie`, `ss`, `position`, `image`, `cases`, `timestamp`, `metal`, `cristal`) VALUES ('$id', '$isolement', 'Plan<61>te colonis<69>e', '$end_galaxie', '$end_ss', '$end_position', '$image', '$cases', '$time', '1000', '700')") or die ("erreur sql ".mysql_error());
mysql_query("UPDATE `flottes` SET `effectue` = '1', `vaisseau_3` = '0' WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error());
$message = 'Votre vaisseau a atteint la plan<61>te ['.$end_galaxie.':'.$end_ss.':'.$end_position.'] et commence la colonisation';
$pseudo = trouvNom($resultat['id_user']);
mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Colonisation', '$message', '$temps')") or die ("erreur sql ".mysql_error());
$reqP = mysql_query("SELECT * FROM `planete` WHERE `id_user` = '$id'") or die ("erreur sql ".mysql_error());
$reqPM = mysql_query("SELECT `planeteMere` FROM `user` WHERE `id` = '$id'") or die ("erreur sql ".mysql_error());
$resultatPM = mysql_fetch_array($reqPM);
$c=0;
for ($m=0 ; $m<mysql_num_rows($reqP) ; $m++) {
$resultatP = mysql_fetch_array($reqP);
$idP = $resultatP['id'];
if ($resultatPM['planeteMere'] == $idP || ($resultatPM['planeteMere'] == 0 && $m == 0)) mysql_query("UPDATE `planete` SET `nColo` = '0' WHERE `id`='$idP';");
else {
$c++;
mysql_query("UPDATE `planete` SET `nColo` = '$c' WHERE `id`='$idP';");
}
}
}
else mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Colonisation', 'Nous n''avons pas pu coloniser la plan<61>te [$end_galaxie:$end_ss:$end_position] car lorsque nous sommes arriv<69> sur place, elle <20>tait d<>j<EFBFBD> colonis<69>e.', '$temps')") or die ("erreur sql ".mysql_error());
}
//Mission Recycler
elseif ($mission == 4) {
$reqT = mysql_query("SELECT * FROM `planete` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error());
if (mysql_num_rows($reqT) > 0) {
$resultatT = mysql_fetch_array($reqT);
$resultat['contenu_max'] -= vais_conso($resultat['end_time'],count($resultat['nbvais'])) + $resultat['contenu_metal'] + $resultat['contenu_cristal'] + $resultat['contenu_hydrogene'];
$debris_met = $resultatT['debris_met'];
$debris_cri = $resultatT['debris_cri'];
if ($debris_met+$debris_cri > $resultat['contenu_max']) {
$a=pow($capacite/2);
$b=pow($capacite/2);
if ($a > $debris_met && $b > $debris_cri) {
$a = $debris_met;
$b = $debris_cri;
}
else if ($a > $debris_met) {
$a = $debris_met;
$b = ($capacite - $a);
}
else if ($b > $debris_cri) {
$b = $debris_cri;
$a = ($capacite - $b);
}
}
else {
$a = $debris_met;
$b = $debris_cri;
}
$Cmetal += $a + $resultat['contenu_metal'];
$Ccristal += $b + $resultat['contenu_cristal'];
$debris_met -= $a;
$debris_cri -= $b;
mysql_query("UPDATE `flottes` SET `effectue` = '1', `contenu_metal` = '$Cmetal', `contenu_cristal` = '$Ccristal' WHERE `id` = '$id_flotte'") or die ("erreur sql ".mysql_error());
mysql_query("UPDATE `planete` SET `debris_met` = '$debris_met', `debris_cri` = '$debris_cri' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'") or die ("erreur sql ".mysql_error());
$message = 'Vos vaisseaux r<>coltent '.$a.' de m<>tal et '.$b.' de cristal aux coordonn<6E>es '.$end_galaxie.':'.$end_ss.':'.$end_position;
$pseudo = trouvNom($resultat['id_user']);
mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Transport', '$message', '$temps')") or die ("erreur sql ".mysql_error());
}
}
}
if (time() >= $resultat['start_time'] + $resultat['end_time'] * 2 && !empty($resultat['end_time']) && $resultat['mission'] != 0) {
$start_galaxie = $resultat['start_galaxie'];
$start_ss = $resultat['start_ss'];
$start_position = $resultat['start_position'];
$id_flotte = $resultat['id'];
$reqP = mysql_query("SELECT * FROM planete WHERE `id_user` = '$id' AND `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'") or die ("erreur sql ".mysql_error());
$resultatP = mysql_fetch_array($reqP);
$metal = $resultat['contenu_metal'] + $resultatP['metal'];
$cristal = $resultat['contenu_cristal'] + $resultatP['cristal'];
$hydrogene = $resultat['contenu_hydrogene'] + $resultatP['hydrogene'];
for($i = 1; $i <= 12; $i++) {
${'Pvaisseaux_'.$i} = $resultatP['vaisseau_'.$i] + $resultat['vaisseau_'.$i];
mysql_query("UPDATE `planete` SET `vaisseau_$i` = '${'Pvaisseaux_'.$i}' WHERE `id_user` = '$id' AND `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'");
}
mysql_query("UPDATE `planete` SET `metal` = '$metal', `cristal` = '$cristal', `hydrogene` = '$hydrogene' WHERE `id_user` = '$id' AND `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'");
mysql_query("DELETE FROM `flottes` WHERE `id_user` = '$id' AND `id` = '$id_flotte'");
}
}
mysql_close();
?>