428 lines
23 KiB
PHP
428 lines
23 KiB
PHP
<?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é.
|
|
*/
|
|
|
|
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é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é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ées joueur attaquant
|
|
for ($j = 1; $j <= $resultat['vaisseau_'.$i]; $j++) {
|
|
$ATvais .= $i.' '; //Récupération du type du vaisseau
|
|
$ATvais_pv .= $nomvais_pv[$i-1].' '; //Récupération des PV du vaisseau suivant son type
|
|
$ATvais_bc .= $nomvais_bc[$i-1].' '; //Récupération des boucliers du vaisseau suivant son type
|
|
}
|
|
//Données joueur cible
|
|
for ($j = 1; $j <= $resultatd['vaisseau_'.$i]; $j++) {
|
|
$ENvais .= $i.' '; //Récupération du type du vaisseau
|
|
$ENvais_pv .= $nomvais_pv[$i-1].' '; //Récupération des PV du vaisseau suivant son type
|
|
$ENvais_bc .= $nomvais_bc[$i-1].' '; //Récupération des boucliers du vaisseau suivant son type
|
|
}
|
|
}
|
|
//Génération des tableaux contenant les informations des défenses de la planète
|
|
for ($i = 1; $i <= 5; $i++) {
|
|
for ($j = 1; $j <= $resultatd['def_'.$i]; $j++) {
|
|
$ENdef .= $i.' '; //Récupération du type de défense
|
|
$ENdef_pv .= $defense_pv[$i-1].' '; //Récupération des PV de la défense suivant son type
|
|
$ENdef_bc .= $defense_bc[$i-1].' '; //Récupération des boucliers de la défense suivant son type
|
|
}
|
|
}
|
|
//Cré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é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è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 à 0 et non à 1
|
|
$vaisAT_pv = $ATvais_pv[$vaisAT_id]; //récupération du nombre de PV du vaisseau
|
|
$vaisAT_bc = $ATvais_bc[$vaisAT_id]; //Récupération du bouclier
|
|
$vaisAT_at = $nomvais_at[$vaisAT_type];
|
|
|
|
//On ne fait quelque chose que si le vaisseau à encore des point de vie
|
|
if ($vaisAT_pv > 0) {
|
|
/* Formation défense majeur, attaque aléatoire
|
|
*
|
|
* Régénération des boucliers 100%
|
|
* Attaque suivant les proportions vaisseaux/défenses du joueur cible
|
|
*/
|
|
//Si le bouclier est endommagé, on le régéné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é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 à 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 être attaquée
|
|
$vaisEN_id = rand(1,$ENnbvais+$ENnbdef);
|
|
|
|
//Si l'unité attaquée est un vaisseau
|
|
if ($vaisEN_id <= $ENnbvais) {
|
|
$vaisEN_id--;
|
|
|
|
//Définition des paramètres du vaisseau attaqué
|
|
$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é
|
|
$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ète
|
|
$deb_met += $nomvais_md[$vaisEN_type];
|
|
$deb_cri += $nomvais_cd[$vaisEN_type];
|
|
}
|
|
//Si le vaisseau est endommagé
|
|
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é attaquée est une défense
|
|
else {
|
|
//Recherche de l'ID de la défense
|
|
$defEN_id = $vaisEN_id - $ENnbvais - 1;
|
|
|
|
//Définitions des paramè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é
|
|
if ($defEN_pv <= 0) continue;
|
|
$defEN_bc = $defense_bc[$defEN_type];
|
|
|
|
//Recherche du rapide fire pour la défense attaqué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é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é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è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 à 0 et non à 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ération du nombre de PV du vaisseau
|
|
print $vaisEN_id.' - '.$vaisEN_type.'<br/>';
|
|
$vaisEN_bc = $ENvais_bc[$vaisEN_id]; //Récupération du bouclier
|
|
$vaisEN_at = $nomvais_at[$vaisEN_type];
|
|
|
|
//On ne fait quelque chose que si le vaisseau à encore des point de vie
|
|
if ($vaisEN_pv > 0) {
|
|
/* Formation défense majeur, attaque aléatoire
|
|
*
|
|
* Régénération des boucliers 100%
|
|
* Attaque suivant les proportions vaisseaux/défenses du joueur cible
|
|
*/
|
|
//Si le bouclier est endommagé, on le régéné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é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 à attaquer
|
|
while($vaisEN_at > 0 && resteVaisseau($ATvais)) {
|
|
//Détermine le nombre de vaisseaux
|
|
$ATnbvais = count($ATvais);
|
|
|
|
//Choix du vaisseau qui va être attaquée
|
|
$vaisAT_id = rand(1,$ATnbvais);
|
|
|
|
//Si l'unité attaquée est un vaisseau
|
|
if ($vaisAT_id <= $ATnbvais) {
|
|
$vaisAT_id--;
|
|
|
|
//Définition des paramètres du vaisseau attaqué
|
|
$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é
|
|
$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ète
|
|
$deb_met += $nomvais_md[$vaisAT_type];
|
|
$deb_cri += $nomvais_cd[$vaisAT_type];
|
|
}
|
|
//Si le vaisseau est endommagé
|
|
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é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 à jour de la quantité de ressources sur la planète pillé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 à l'attaquant
|
|
if ($win) $message = 'L\'attaque que nous avons lancé contre la planète '.$end_galaxie.':'.$end_ss.':'.$end_position.' s\'est terminée avec succès puisque nous avons gagné.<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é contre la planète '.$end_galaxie.':'.$end_ss.':'.$end_position.' s\'est terminée par une défaite.<br /><br />Un champ de débris composé de '.$deb_met.' de '.$ressourc[0].' et '.$deb_cri.' de '.$ressourc[1].' s\'est formé à la suite de cette bataille.';
|
|
$pseudo = trouvNom($resultat['id_user']);
|
|
$temps = $resultat['start_time'] + $resultat['end_time'];
|
|
mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Attaque', '$message', '$temps')");
|
|
//Envoie d'un mail au défenseur
|
|
if ($win) $message = 'Nous venons de subir une attaque sur la planète '.$end_galaxie.':'.$end_ss.':'.$end_position.'. Nos défenses n\'ont pas suffi à arrêter l\'ennemi qui est reparti avec près de '.$pillage[0].' de '.$ressourc[0].', '.$pillage[1].' de '.$ressourc[1].' et '.$pillage[2].' de '.$ressourc[2].'.';
|
|
$pseudo = trouvNom($resultatd['id_user']);
|
|
mysql_query("INSERT INTO mail VALUES('', '1', '$pseudo', '', 'Attaque', '$message', '$temps')");
|
|
|
|
}
|
|
//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és '.$resultat['contenu_metal'].' de métal, '.$resultat['contenu_cristal'].' de cristal et '.$resultat['contenu_hydrogene'].' d\'hydrogène aux coordonné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ète colonisé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è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ète [$end_galaxie:$end_ss:$end_position] car lorsque nous sommes arrivé sur place, elle était déjà colonisé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é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();
|
|
?>
|