2008-11-17 11:00:00 +00:00
< ? php
set_time_limit ( 0 );
/* ! 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é .
*/
2008-11-04 11:00:00 +00:00
require_once ( _FCORE . " hb_game/Class/class.rapport.php " );
2008-11-17 11:00:00 +00:00
function resteVaisseau ( $tableau ){
$ct = count ( $tableau );
for ( $i = 0 ; $i < $ct ; $i ++ ) {
if ( ! empty ( $tableau [ $i ])) return true ;
}
return false ;
}
$Hgalaxie = $queryPlanete [ " galaxie " ];
$Hss = $queryPlanete [ " ss " ];
$Hposition = $queryPlanete [ " position " ];
2008-11-04 11:00:00 +00:00
$bdd -> connexion ();
$queryFlottes = $bdd -> query ( " SELECT * FROM $table_flottes WHERE id_user = ' $id_user ' OR (end_galaxie = ' $Hgalaxie ' AND end_ss = ' $Hss ' AND end_position = ' $Hposition '); " );
$bdd -> deconnexion ();
$nbFlottes = $bdd -> num_rows ;
2008-11-30 11:00:00 +00:00
for ( $i = 0 ; $i < $nbFlottes ; $i ++ ) {
//Récupération des principales variables de la flotte
$id_flotte = $queryFlottes [ $i ][ 'id' ];
$mission = $queryFlottes [ $i ][ 'mission' ];
$end_galaxie = $queryFlottes [ $i ][ 'end_galaxie' ];
$end_ss = $queryFlottes [ $i ][ 'end_ss' ];
$end_position = $queryFlottes [ $i ][ 'end_position' ];
2008-12-01 11:00:00 +00:00
$end_time = $queryFlottes [ $i ][ 'start_time' ] + $queryFlottes [ $i ][ 'end_time' ];
//On vérifie que la planète cible existe
2008-11-04 11:00:00 +00:00
$bdd -> connexion ();
2008-11-16 11:00:00 +00:00
$queryEN = $bdd -> unique_query ( " SELECT * FROM $table_planete WHERE galaxie = ' $end_galaxie ' AND ss = ' $end_ss ' AND position = ' $end_position '; " );
if ( ! $queryEN && $mission != 3 && $mission != 6 && time () > $end_time ) {
$bdd -> query ( " UPDATE $table_flottes SET effectue = '1', mission = '6', ret_time = ' " . ( $end_time + $queryFlottes [ $i ][ 'end_time' ]) . " ' WHERE id = $id_flotte ; " );
$titreA = 'Impossible d\'effectuer la mission' ;
$bdd -> escape ( $titreA );
$rapportA = 'La flotte ' . $queryFlottes [ $i ][ 'nom_flotte' ] . ' n\'a pas pu effectuer sa mission correctement car lorsqu\'elle est arrivée sur place, la planète était déserte.' ;
$bdd -> escape ( $rapportA );
$db -> query ( " INSERT INTO $table_mail VALUES('', '1', ' " . $queryFlottes [ $i ][ 'id_user' ] . " ', '', ' $titreA ', ' $rapportA ', ' " . $end_time . " ') " );
$bdd -> deconnexion ();
continue ;
}
elseif ( ! $queryEN && $mission != 3 && $queryFlottes [ $i ][ 'effectue' ] != 1 ) {
$bdd -> deconnexion ();
2008-12-01 11:00:00 +00:00
continue ;
}
2008-11-04 11:00:00 +00:00
$bdd -> deconnexion ();
2008-12-01 11:00:00 +00:00
$ENidPlan = $queryEN [ 'id' ];
2008-11-30 11:00:00 +00:00
//La flotte est prête a effectuer une action
if ( $queryFlottes [ $i ][ 'effectue' ] != 1 && time () >= $queryFlottes [ $i ][ 'start_time' ] + $queryFlottes [ $i ][ 'end_time' ] && ! empty ( $queryFlottes [ $i ][ 'end_time' ])) {
2008-12-01 11:00:00 +00:00
//Mission Attaquer
2008-11-17 11:00:00 +00:00
if ( $mission == 1 ) {
2008-11-04 11:00:00 +00:00
require_once ( _FCORE . " hb_game/Class/class.combat.php " );
2008-11-16 11:00:00 +00:00
$bdd -> connexion ();
2008-12-01 11:00:00 +00:00
//On regarde si le combat a déjà commencé
2008-11-30 11:00:00 +00:00
if ( $queryFlottes [ $i ][ 'effectue' ] == 2 ) {
2008-11-04 11:00:00 +00:00
if ( $queryCombat = $bdd -> unique_query ( " SELECT * FROM $table_flottes_combats WHERE refflotte = ' $id_flotte '; " )) {
2008-12-01 11:00:00 +00:00
//On vérifie si on lance le tour suivant ou non
if ( time () >= $queryCombat [ 'timestamp' ]) {
2008-11-16 11:00:00 +00:00
//On modifie le timestamp pour ne pas que le combat se déroule deux fois
$timebloque = time () + 5 ;
$bdd -> query ( " UPDATE $table_flottes_combats SET timestamp = ' $timebloque ' WHERE refflotte = ' $id_flotte '; " );
2008-12-01 11:00:00 +00:00
//Récupération du combat
$combat = unserialize ( $queryCombat [ 'serialize' ]);
//Mise à jour des tactiques
if ( ! empty ( $queryCombat [ 'tactiqueAT' ])) $combat -> changerTactiqueAT ( $queryCombat [ 'tactiqueAT' ]);
if ( ! empty ( $queryCombat [ 'tactiqueEN' ])) $combat -> changerTactiqueEN ( $queryCombat [ 'tactiqueEN' ]);
2008-11-17 11:00:00 +00:00
}
2008-12-01 11:00:00 +00:00
else continue ;
2008-11-17 11:00:00 +00:00
}
2008-11-04 11:00:00 +00:00
else {
$time = time ();
$bdd -> query ( " UPDATE $table_flottes SET effectue = '1', ret_time = end_time + $time WHERE id = ' $id_flotte '; " );
file_log ( " Erreur dans le script de combat, la flotte de " . trouvNom ( $queryFlottes [ $i ][ 'id_user' ]) . " ( " . $queryFlottes [ $i ][ 'id_user' ] . " ) a été renvoyé au point de départ. " , 1 );
2008-11-16 11:00:00 +00:00
header ( 'Location: ./?erreurcombat' );
exit ;
2008-11-04 11:00:00 +00:00
}
2008-11-17 11:00:00 +00:00
}
else {
2008-12-01 11:00:00 +00:00
//On génére un nouveau combat
2008-11-16 11:00:00 +00:00
$combat = new Combat ( $queryFlottes [ $i ], $queryEN , $queryEN , array ( trouvInfo ( $queryFlottes [ $i ][ 'id_user' ], 'blindage' ), trouvInfo ( $queryEN [ 'id_user' ], 'blindage' )));
2008-11-04 11:00:00 +00:00
$bdd -> query ( " UPDATE $table_flottes SET effectue = '2' WHERE id = ' $id_flotte '; " );
2008-12-01 11:00:00 +00:00
}
2008-11-16 11:00:00 +00:00
$bdd -> deconnexion ();
2008-11-17 11:00:00 +00:00
2008-12-01 11:00:00 +00:00
while ( $combat -> timestamp <= time ()) {
//Préparation du rapport
$rapport = new Rapport ( $mission , $queryFlottes [ $i ][ 'id_user' ], $queryEN [ 'id_user' ], $combat -> timestamp );
2008-11-17 11:00:00 +00:00
2008-12-01 11:00:00 +00:00
$combat -> Ntour ++ ;
2008-11-30 11:00:00 +00:00
$rapport -> addInfo ( $combat -> ATvais , 0 );
$rapport -> addInfo ( $combat -> ENvais , 1 );
$rapport -> addInfo ( $combat -> ENdef , 2 );
$rapport -> addInfo ( $combat -> Ntour , 3 );
2008-12-01 11:00:00 +00:00
$rapport -> addInfo ( $queryEN , 4 );
2008-11-30 11:00:00 +00:00
$rapport -> addInfo ( $queryFlottes [ $i ], 5 );
2008-11-17 11:00:00 +00:00
2008-11-16 11:00:00 +00:00
//Récupération des paramètres de la tactique de l'attaquant
$arraytactique = tactique ( $combat -> ATtactique );
//On régénére les boucliers de l'attaquant et on calcul l'attaque de l'attaquant
$ATattaque = $combat -> calcAttaque ( $arraytactique [ 2 ] + $combat -> regenereBC ( $arraytactique [ 1 ], true , ! $arraytactique [ 3 ], trouvInfo ( $queryFlottes [ $i ][ 'id_user' ], 'blindage' )), true , trouvInfo ( $queryFlottes [ $i ][ 'id_user' ], 'armement' ));
//Récupération des paramètres de la tactique du défenseur
$arraytactique = tactique ( $combat -> ENtactique );
//On régénére les boucliers de l'attaquant et on calcul l'attaque de l'attaquant
$ENattaque = $combat -> calcAttaque ( $arraytactique [ 2 ] + $combat -> regenereBC ( $arraytactique [ 1 ], false , ! $arraytactique [ 3 ], trouvInfo ( $queryEN [ 'id_user' ], 'blindage' )), false , trouvInfo ( $queryEN [ 'id_user' ], 'armement' ));
//On lance l'attaque
@ $ATresult = $combat -> attaquerVais ( $ATattaque , true );
@ $ENresult = $combat -> attaquerVais ( $ENattaque , false );
if ( ! $ATresult && $ENresult ) { //Attaquant vainqueur
$combat -> ENres [ 'metal' ] = $queryEN [ 'metal' ];
$combat -> ENres [ 'cristal' ] = $queryEN [ 'cristal' ];
$combat -> ENres [ 'hydrogene' ] = $queryEN [ 'hydrogene' ];
$exportAT = $combat -> exportAT ( true ); $ret_time = $combat -> timestamp ;
$exportEN = $combat -> exportEN (); $pillm = $combat -> pillage [ 0 ]; $pillc = $combat -> pillage [ 1 ]; $pillh = $combat -> pillage [ 2 ];
$bdd -> connexion ();
$bdd -> query ( " UPDATE $table_flottes SET $exportAT , effectue = '1', ret_time = ' $ret_time ' + end_time WHERE id = ' $id_flotte '; " );
$bdd -> query ( " UPDATE $table_planete SET $exportEN , metal = metal - ' $pillm ', cristal = cristal - ' $pillc ', hydrogene = hydrogene - ' $pillh ' WHERE id = ' $ENidPlan '; " );
$bdd -> query ( " DELETE FROM $table_flottes_combats WHERE refflotte = ' $id_flotte '; " );
$bdd -> deconnexion ();
$rapport -> addInfo ( array ( true , true , false ), 6 );
2008-11-30 11:00:00 +00:00
}
2008-11-16 11:00:00 +00:00
elseif ( $ATresult && ! $ENresult ) { //Défenseur vainqueur
$exportEN = $combat -> exportEN ();
$bdd -> connexion ();
$bdd -> query ( " DELETE FROM $table_flottes_combats WHERE refflotte = ' $id_flotte '; " );
$bdd -> query ( " DELETE FROM $table_flottes WHERE id = ' $id_flotte '; " );
$bdd -> query ( " UPDATE $table_planete SET $exportEN WHERE id = ' $ENidPlan '; " );
$bdd -> deconnexion ();
$rapport -> addInfo ( array ( true , false , false ), 6 );
}
elseif ( ! $ATresult && ! $ENresult ) { //Match nul
$exportEN = $combat -> exportEN ();
$bdd -> connexion ();
$bdd -> query ( " DELETE FROM $table_flottes_combats WHERE refflotte = ' $id_flotte '; " );
$bdd -> query ( " DELETE FROM $table_flottes WHERE id = ' $id_flotte '; " );
$bdd -> query ( " UPDATE $table_planete SET $exportEN WHERE id = ' $ENidPlan '; " );
$bdd -> deconnexion ();
$rapport -> addInfo ( array ( true , false , true ), 6 );
}
elseif ( $combat -> Ntour >= 250 ) { //Match nul
$exportAT = $combat -> exportAT ( false ); $ret_time = $combat -> timestamp ;
$exportEN = $combat -> exportEN (); $pillm = $combat -> pillage [ 0 ]; $pillc = $combat -> pillage [ 1 ]; $pillh = $combat -> pillage [ 2 ];
$bdd -> connexion ();
$bdd -> query ( " UPDATE $table_flottes SET $exportAT , effectue = '1', ret_time = ' $ret_time ' + end_time WHERE id = ' $id_flotte '; " );
$bdd -> query ( " UPDATE $table_planete SET $exportEN , metal = metal - ' $pillm ', cristal = cristal - ' $pillc ', hydrogene = hydrogene - ' $pillh ' WHERE id = ' $ENidPlan '; " );
$bdd -> query ( " DELETE FROM $table_flottes_combats WHERE refflotte = ' $id_flotte '; " );
$bdd -> deconnexion ();
$rapport -> addInfo ( array ( true , false , true ), 6 );
2008-11-17 11:00:00 +00:00
}
2008-11-16 11:00:00 +00:00
else $rapport -> addInfo ( array ( false , false , false ), 6 );
2008-11-17 11:00:00 +00:00
2008-11-30 11:00:00 +00:00
$rapport -> addInfo ( $combat -> ATvais , 7 );
$rapport -> addInfo ( $combat -> ENvais , 8 );
$rapport -> addInfo ( $combat -> ENdef , 9 );
2008-11-17 11:00:00 +00:00
//Prévision du prochain tour
$combat -> timestamp += 300 ;
2008-11-30 11:00:00 +00:00
$rapport -> addInfo ( $combat -> timestamp , 10 );
2008-12-01 11:00:00 +00:00
$rapport -> addInfo ( $combat -> pillage , 11 );
2008-11-17 11:00:00 +00:00
2008-12-01 11:00:00 +00:00
//On envoie les rapports aux joueurs concernés
$rapport -> send ();
2008-11-04 11:00:00 +00:00
//On arrête la boucle si le combat est terminé
if ( $rapport -> var [ 6 ][ 0 ]) break ;
2008-12-01 11:00:00 +00:00
}
$debriM = $combat -> debriM + $queryEN [ 'debris_met' ];
$debriC = $combat -> debriC + $queryEN [ 'debris_cri' ];
2008-11-17 11:00:00 +00:00
2008-11-16 11:00:00 +00:00
$bdd -> connexion ();
$bdd -> escape ( $debriM );
$bdd -> escape ( $debriC );
$bdd -> query ( " UPDATE $table_planete SET debris_met = $debriM , debris_cri = $debriC WHERE galaxie = ' $end_galaxie ' AND ss = ' $end_ss ' AND position = ' $end_position '; " );
2008-12-01 11:00:00 +00:00
$combat -> debriM = 0 ;
$combat -> debriC = 0 ;
if ( ! $rapport -> var [ 6 ][ 0 ]) { //Si le combat n'est pas terminé
2008-11-17 11:00:00 +00:00
//On sérialise la classe pour l'exporter
$serialise = serialize ( $combat );
2008-11-16 11:00:00 +00:00
$bdd -> escape ( $serialise );
2008-11-17 11:00:00 +00:00
//On enregistre le combat dans la base de données
2008-11-16 11:00:00 +00:00
$timesuite = $combat -> timestamp ;
$idFleet = $queryFlottes [ $i ][ 'id' ];
if ( $queryFlottes [ $i ][ 'effectue' ]) $bdd -> query ( " UPDATE $table_flottes_combats SET serialize = ' $serialise ', tactiqueAT = '0', tactiqueEN = '0', timestamp = ' $timesuite ' WHERE refflotte = ' $id_flotte '; " );
else $bdd -> query ( " INSERT INTO $table_flottes_combats VALUES(NULL, ' $idFleet ', ' $timesuite ', ' $serialise ', '0', '0'); " );
2008-11-17 11:00:00 +00:00
}
2008-11-04 11:00:00 +00:00
$bdd -> deconnexion ();
2008-11-17 11:00:00 +00:00
}
//Mission Transporter
elseif ( $mission == 2 ) {
2008-11-16 11:00:00 +00:00
$Cmetal = $queryFlottes [ $i ][ 'contenu_metal' ];
$Ccristal = $queryFlottes [ $i ][ 'contenu_cristal' ];
$Chydrogene = $queryFlottes [ $i ][ 'contenu_hydrogene' ];
2008-11-04 11:00:00 +00:00
$bdd -> connexion ();
2008-11-16 11:00:00 +00:00
$bdd -> query ( " UPDATE $table_planete SET metal = metal + ' $Cmetal ', cristal = cristal + ' $Ccristal ', hydrogene = hydrogene + ' $Chydrogene ' WHERE galaxie = ' $end_galaxie ' AND ss = ' $end_ss ' AND position = ' $end_position '; " );
2008-11-04 11:00:00 +00:00
$bdd -> query ( " UPDATE $table_flottes SET effectue = '1', contenu_metal = '0', contenu_cristal = '0', contenu_hydrogene = '0' WHERE id = ' $id_flotte '; " );
$bdd -> deconnexion ();
2008-11-30 11:00:00 +00:00
2008-12-01 11:00:00 +00:00
$rapport = new Rapport ( $mission , $queryFlottes [ $i ][ 'id_user' ], $queryEN [ 'id_user' ], $end_time );
$rapport -> addInfo ( $queryEN , 0 );
$rapport -> addInfo ( array ( $queryFlottes [ $i ][ 'contenu_metal' ], $queryFlottes [ $i ][ 'contenu_cristal' ], $queryFlottes [ $i ][ 'contenu_hydrogene' ]), 1 );
$rapport -> send ();
2008-11-17 11:00:00 +00:00
}
//Mission Coloniser
elseif ( $mission == 3 ) {
2008-12-01 11:00:00 +00:00
$rapport = new Rapport ( $mission , $queryFlottes [ $i ][ 'id_user' ], 0 , $end_time );
$rapport -> addInfo ( array ( $end_galaxie , $end_ss , $end_position ), 0 );
2008-11-16 11:00:00 +00:00
$rapport -> addInfo ( true , 1 );
$time = time ();
$cases = mt_rand ( 125 , 222 );
$image = mt_rand ( 1 , 15 );
$Cmetal = $queryFlottes [ $i ][ 'contenu_metal' ] + 1000 ;
$Ccristal = $queryFlottes [ $i ][ 'contenu_cristal' ] + 700 ;
$Chydrogene = $queryFlottes [ $i ][ 'contenu_hydrogene' ];
//Calcul de l'isolement
$nbPlan = count ( $queryPlanetes );
if ( $nbPlan >= 11 ) {
switch ( $nbPlan ){
case 11 : $tps = 2 ; break ;
case 12 : $tps = 4 ; break ;
case 13 : $tps = 6 ; break ;
case 14 : $tps = 8 ; break ;
case 15 : $tps = 12 ; break ;
case 16 : $tps = 16 ; break ;
case 17 : $tps = 20 ; break ;
default : $tps = 24 ;
2008-11-17 11:00:00 +00:00
}
2008-11-16 11:00:00 +00:00
}
else $tps = 0 ;
$debut = mktime ( rand ( 0 , 24 - $tps ), 0 , 0 , date ( 'n' ), date ( 'j' ), date ( 'Y' ));
$fin = $debut + $tps * 3600 ;
2008-11-17 11:00:00 +00:00
2008-11-16 11:00:00 +00:00
$idFlo = $queryFlottes [ $i ][ 'id_user' ];
$bdd -> connexion ();
if ( $bdd -> query ( " INSERT INTO $table_planete (id_user, isolement, nom_planete, galaxie, ss, position, image, cases, timestamp, metal, cristal, hydrogene, hash_planete) VALUES (' $idFlo ', ' $debut $fin ', 'Planète colonisée', ' $end_galaxie ', ' $end_ss ', ' $end_position ', ' $image ', ' $cases ', ' $time ', ' $Cmetal ', ' $Ccristal ', ' $Chydrogene ', SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position))); " ) === false ) {
$rapport -> addInfo ( false , 1 );
$bdd -> query ( " UPDATE $table_flottes SET effectue = 1 WHERE id = $id_flotte ; " );
$bdd -> deconnexion ();
}
else {
2008-11-30 11:00:00 +00:00
if ( $queryFlottes [ $i ][ 'nb_vais' ] == 1 ) {
$queryFlottes [ $i ][ 'nb_vais' ] = - 1 ;
2008-11-16 11:00:00 +00:00
$bdd -> query ( " DELETE FROM $table_flottes WHERE id = $id_flotte " );
2008-11-17 11:00:00 +00:00
}
2008-11-16 11:00:00 +00:00
else $bdd -> query ( " UPDATE $table_flottes SET effectue = 1, vaisseau_3 = vaisseau_3 - 1, nb_vais = nb_vais - 1, contenu_metal = 0, contenu_cristal = 0, contenu_hydrogene = 0 WHERE id = $id_flotte ; " );
2008-11-04 11:00:00 +00:00
$bdd -> deconnexion ();
2008-11-17 11:00:00 +00:00
}
2008-12-01 11:00:00 +00:00
$rapport -> send ();
2008-11-17 11:00:00 +00:00
}
//Mission Recycler
elseif ( $mission == 4 ) {
2008-12-01 11:00:00 +00:00
$capacite = $queryFlottes [ $i ][ 'contenu_max' ] - ( vais_conso ( $queryFlottes [ $i ][ 'end_time' ], count ( $queryFlottes [ $i ][ 'nb_vais' ])) * $queryFlottes [ $i ][ 'vitesse' ] * 5 ) + $queryFlottes [ $i ][ 'contenu_metal' ] + $queryFlottes [ $i ][ 'contenu_cristal' ] + $queryFlottes [ $i ][ 'contenu_hydrogene' ];
2008-11-17 11:00:00 +00:00
2008-12-01 11:00:00 +00:00
$debris_met = $queryEN [ 'debris_met' ];
$debris_cri = $queryEN [ 'debris_cri' ];
if ( $debris_met + $debris_cri > $capacite ) {
$a = floor ( $capacite / 2 );
$b = floor ( $capacite / 2 );
if ( $a > $debris_met && $b > $debris_cri ) {
$a = $debris_met ;
$b = $debris_cri ;
2008-11-17 11:00:00 +00:00
}
2008-12-01 11:00:00 +00:00
else if ( $a > $debris_met ) {
2008-11-17 11:00:00 +00:00
$a = $debris_met ;
2008-12-01 11:00:00 +00:00
$b = ( $capacite - $a );
if ( $b > $debris_cri ) $b = $debris_cri ;
}
else if ( $b > $debris_cri ) {
2008-11-17 11:00:00 +00:00
$b = $debris_cri ;
2008-12-01 11:00:00 +00:00
$a = ( $capacite - $b );
if ( $a > $debris_met ) $a = $debris_met ;
2008-11-17 11:00:00 +00:00
}
2008-12-01 11:00:00 +00:00
}
else {
$a = $debris_met ;
$b = $debris_cri ;
}
$Cmetal = $a + $queryFlottes [ $i ][ 'contenu_metal' ];
$Ccristal = $b + $queryFlottes [ $i ][ 'contenu_cristal' ];
2008-11-17 11:00:00 +00:00
2008-11-04 11:00:00 +00:00
$bdd -> connexion ();
$bdd -> query ( " UPDATE $table_flottes SET effectue = '1', contenu_metal = ' $Cmetal ', contenu_cristal = ' $Ccristal ' WHERE id = ' $id_flotte '; " );
$bdd -> query ( " UPDATE $table_planete SET debris_met = debris_met - ' $a ', debris_cri = debris_cri - ' $b ' WHERE galaxie = ' $end_galaxie ' AND ss = ' $end_ss ' AND position = ' $end_position '; " );
$bdd -> deconnexion ();
2008-11-17 11:00:00 +00:00
2008-12-01 11:00:00 +00:00
$rapport = new Rapport ( $mission , $queryFlottes [ $i ][ 'id_user' ], $queryEN [ 'id_user' ], $end_time );
$rapport -> addInfo ( $queryEN , 0 );
$rapport -> addInfo ( array ( $a , $b ), 1 );
$rapport -> send ();
2008-11-17 11:00:00 +00:00
}
2008-12-01 11:00:00 +00:00
//Mission Espionnage
2008-11-17 11:00:00 +00:00
elseif ( $mission == 5 ) {
2008-11-30 11:00:00 +00:00
$nbsondes = $queryFlottes [ $i ][ 'vaisseau_3' ];
2008-12-01 11:00:00 +00:00
$id_userT = $queryEN [ 'id_user' ];
2008-11-30 11:00:00 +00:00
$id_att = $queryFlottes [ $i ][ 'id_user' ];
2008-11-04 11:00:00 +00:00
$bdd -> connexion ();
2008-11-16 11:00:00 +00:00
$bdd -> query ( " UPDATE $table_flottes SET effectue = 1 WHERE id = $id_flotte ; " );
$resultatUD = $bdd -> unique_query ( " SELECT * FROM $table_user WHERE id = $id_userT ; " );
$resultatUA = $bdd -> unique_query ( " SELECT * FROM $table_user WHERE id = $id_att ; " );
2008-11-04 11:00:00 +00:00
$bdd -> deconnexion ();
2008-11-17 11:00:00 +00:00
$diffNiveau = $resultatUA [ 'detection' ] - $resultatUD [ 'detection' ] + floor ( $nbsondes / 2 );
2008-12-01 11:00:00 +00:00
$rapport = new Rapport ( $mission , $id_att , $id_userT , $end_time );
2008-11-17 11:00:00 +00:00
if ( $diffNiveau < 0 ) {
$rapport -> addInfo ( $resultatT , 0 );
$rapport -> addInfo ( false , 1 );
}
2008-11-04 11:00:00 +00:00
if ( $diffNiveau >= 0 ) $rapport -> addInfo ( $queryEN , 0 );
2008-11-17 11:00:00 +00:00
if ( $diffNiveau >= 1 ) $rapport -> addInfo ( true , 1 );
if ( $diffNiveau >= 2 ) $rapport -> addInfo ( true , 2 );
if ( $diffNiveau >= 3 ) $rapport -> addInfo ( true , 3 );
if ( $diffNiveau >= 4 ) $rapport -> addInfo ( $resultatUD , 4 );
if ( $diffNiveau >= 5 ) $rapport -> addInfo ( true , 5 );
$rapport -> send ();
}
}
2008-12-01 11:00:00 +00:00
//Si la flotte a terminé son retour
2008-11-04 11:00:00 +00:00
if (( $queryFlottes [ $i ][ 'mission' ] == 0 && $queryFlottes [ $i ][ 'start_time' ] + $queryFlottes [ $i ][ 'end_time' ] <= time ()) || ( $queryFlottes [ $i ][ 'effectue' ] == 1 && (( ! empty ( $queryFlottes [ $i ][ 'ret_time' ]) && $queryFlottes [ $i ][ 'ret_time' ] <= time ()) || ( $queryFlottes [ $i ][ 'start_time' ] + $queryFlottes [ $i ][ 'end_time' ] * 2 <= time ())))) {
if ( $queryFlottes [ $i ][ 'mission' ] == 0 ) {
$fin_galaxie = $queryFlottes [ $i ][ 'end_galaxie' ];
$fin_systeme = $queryFlottes [ $i ][ 'end_ss' ];
$fin_potision = $queryFlottes [ $i ][ 'end_position' ];
2008-12-01 11:00:00 +00:00
}
2008-11-04 11:00:00 +00:00
elseif ( ! empty ( $queryFlottes [ $i ][ 'ret_position' ])) {
$fin_galaxie = $queryFlottes [ $i ][ 'ret_galaxie' ];
$fin_systeme = $queryFlottes [ $i ][ 'ret_ss' ];
$fin_potision = $queryFlottes [ $i ][ 'ret_position' ];
}
else {
$fin_galaxie = $queryFlottes [ $i ][ 'start_galaxie' ];
$fin_systeme = $queryFlottes [ $i ][ 'start_ss' ];
$fin_potision = $queryFlottes [ $i ][ 'start_position' ];
}
$bdd -> connexion ();
2008-11-16 11:00:00 +00:00
if ( $bdd -> unique_query ( " SELECT * FROM $table_planete WHERE galaxie = ' $fin_galaxie ' AND ss = ' $fin_systeme ' AND position = ' $fin_potision '; " )) {
2008-11-04 11:00:00 +00:00
$export = '' ;
$nbvais = 12 ;
for ( $j = 1 ; $j <= $nbvais ; $j ++ ) {
$export .= ', vaisseau_' . $j . ' = vaisseau_' . $j . ' + ' . $queryFlottes [ $i ][ 'vaisseau_' . $j ];
2008-12-01 11:00:00 +00:00
}
2008-11-16 11:00:00 +00:00
$Cmetal = $queryFlottes [ $i ][ 'contenu_metal' ];
$Ccristal = $queryFlottes [ $i ][ 'contenu_cristal' ];
$Chydrogene = $queryFlottes [ $i ][ 'contenu_hydrogene' ];
$bdd -> query ( " UPDATE $table_planete SET metal = metal + ' $Cmetal ', cristal = cristal + ' $Ccristal ', hydrogene = hydrogene + ' $Chydrogene ' $export WHERE galaxie = ' $fin_galaxie ' AND ss = ' $fin_systeme ' AND position = ' $fin_potision '; " );
2008-11-17 11:00:00 +00:00
}
2008-11-16 11:00:00 +00:00
$idUserFlotte = $queryFlottes [ $i ][ 'id_user' ];
$bdd -> query ( " DELETE FROM $table_flottes WHERE id_user = ' $idUserFlotte ' AND id = ' $id_flotte '; " );
2008-11-04 11:00:00 +00:00
$bdd -> query ( " DELETE FROM $table_flottes_combats WHERE refflotte = ' $id_flotte '; " );
$bdd -> deconnexion ();
2008-11-17 11:00:00 +00:00
}
}
?>