forked from halo-battle/game
Version 1.5a
This commit is contained in:
parent
a66ed9797b
commit
58928889ed
79 changed files with 4932 additions and 332 deletions
|
|
@ -20,149 +20,87 @@ $Hgalaxie = $queryPlanete["galaxie"];
|
|||
$Hss = $queryPlanete["ss"];
|
||||
$Hposition = $queryPlanete["position"];
|
||||
|
||||
$queryFlottes = $chapeau->query("SELECT * FROM `$table_flottes` WHERE `id_user` = '$id_user' OR (`end_galaxie` = '$Hgalaxie' AND `end_ss` = '$Hss' AND `end_position` = '$Hposition')");
|
||||
$queryFlottes = $chapeau->query("SELECT * FROM `$table_flottes` WHERE `id_user` = '$id_user' OR (`end_galaxie` = '$Hgalaxie' AND `end_ss` = '$Hss' AND `end_position` = '$Hposition');");
|
||||
$nbFlottes = $chapeau->num_rows;
|
||||
for ($i = 0; $i < $nbFlottes; $i++) {
|
||||
//Récupération des principales variables de la flotte
|
||||
$id_user = $queryFlottes[$i]['id_user'];
|
||||
$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'];
|
||||
$temps = $queryFlottes[$i]['start_time'] + $queryFlottes[$i]['end_time'];
|
||||
$end_time = $queryFlottes[$i]['start_time'] + $queryFlottes[$i]['end_time'];
|
||||
//On vérifie que la planète cible existe
|
||||
if ($mission != 3 && !$queryEN = $chapeau->unique_query("SELECT * FROM `$table_planete` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position';")) {
|
||||
//TODO La planète cible n'existe plus/pas, envoyer un mail au joueur et retourner la flotte
|
||||
continue;
|
||||
}
|
||||
$ENidPlan = $queryEN['id'];
|
||||
|
||||
//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'])) {
|
||||
|
||||
//Mission attaquer
|
||||
//Mission Attaquer
|
||||
if ($mission == 1) {
|
||||
require_once('Class/class.combat.php');
|
||||
//Chargement des données du joueur attaqué : EN...
|
||||
$planeteEN = $chapeau->unique_query("SELECT * FROM `$table_planete` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'");
|
||||
$ENidPlan = $planeteEN['id'];
|
||||
|
||||
//Le combat existe déjà, la flotte était placée en attente
|
||||
//On regarde si le combat a déjà commencé
|
||||
if ($queryFlottes[$i]['effectue'] == 2) {
|
||||
//Recherche de la flotte
|
||||
$resultatC = $chapeau->unique_query("SELECT * FROM `$table_flottes_combats` WHERE `refflotte` = '$id_flotte';");
|
||||
|
||||
//La flotte n'a pas été trouvée dans la BDD : impossible
|
||||
if (!$resultatC) die('Erreur dans le script de combat, <a href="mailto:admin@halo-battle.s-fr.com">contactez d\'urgence un administrateur</a> !');
|
||||
|
||||
//Il est temps de passer au tour suivant !
|
||||
if (time() >= $resultatC['timestamp']) {
|
||||
//On récupère le combat
|
||||
$combat = unserialize($resultatC['serialize']);
|
||||
|
||||
//On prépare les rapports de combats
|
||||
$rapport = new Rapport($mission, $queryFlottes[$i]['id_user'], $planeteEN['id_user'], $combat->timestamp);
|
||||
|
||||
//Mise à jour des tactiques
|
||||
if (!empty($resultatC['tactiqueAT'])) $combat->changerTactiqueAT($resultatC['tactiqueAT']);
|
||||
if (!empty($resultatC['tactiqueEN'])) $combat->changerTactiqueEN($resultatC['tactiqueEN']);
|
||||
|
||||
while($combat->timestamp <= time()) {
|
||||
//On passe le tour
|
||||
$combat->Ntour++;
|
||||
$rapport->addInfo($combat->ATvais, 0);
|
||||
$rapport->addInfo($combat->ENvais, 1);
|
||||
$rapport->addInfo($combat->ENdef, 2);
|
||||
$rapport->addInfo($combat->Ntour, 3);
|
||||
$rapport->addInfo($planeteEN, 4);
|
||||
$rapport->addInfo($queryFlottes[$i], 5);
|
||||
|
||||
//Détermine qui est le tour : attaquant ou défenseur
|
||||
if (floor($combat->Ntour/2) == $combat->Ntour/2) { //Le tour est paire : tour attaquant
|
||||
$arraytactique = tactique($combat->ATtactique);
|
||||
if (@$combat->attaquerVais($combat->calcAttaque($arraytactique[2] + $combat->regenereBC($arraytactique[1], true, !$arraytactique[3]), true), true) == 0) { //Attaquant vainceur
|
||||
$chapeau->query("DELETE FROM `$table_flottes_combats` WHERE `refflotte` = '$id_flotte'");
|
||||
$chapeau->query("UPDATE `$table_flottes` SET ".$combat->exportAT(true).", `effectue` = '1', `ret_time` = ".$combat->timestamp." WHERE `id` = '$id_flotte';");
|
||||
$chapeau->query("UPDATE `$table_planete` SET ".$combat->exportEN().", `metal` = `metal` - '".$combat->vaisContenuM."', `cristal` = `cristal` - '".$combat->vaisContenuC."', `hydrogene` = `hydrogene` - '".$combat->vaisContenuH."' WHERE `id` = '$ENidPlan';");
|
||||
$rapport->addInfo(array(true, true), 6);
|
||||
}
|
||||
else $rapport->addInfo(array(false, false), 6);
|
||||
|
||||
$rapport->addInfo($combat->ATvais, 7);
|
||||
$rapport->addInfo($combat->ENvais, 8);
|
||||
$rapport->addInfo($combat->ENdef, 9);
|
||||
}
|
||||
else { //Le tour est impaire : tour défenseur
|
||||
$arraytactique = tactique($combat->ENtactique);
|
||||
if (@$combat->attaquerVais($combat->calcAttaque($arraytactique[2] + $combat->regenereBC($arraytactique[1], false, !$arraytactique[3]), false), false) == 0) { //Défenseur vainceur
|
||||
$chapeau->query("DELETE FROM `$table_flottes_combats` WHERE `refflotte` = '$id_flotte';");
|
||||
$chapeau->query("DELETE FROM `$table_flottes` WHERE `id` = '$id_flotte'");
|
||||
$chapeau->query("UPDATE `$table_planete` SET ".$combat->exportEN()." WHERE `id` = '$ENidPlan';");
|
||||
$rapport->addInfo(array(true, false), 6);
|
||||
}
|
||||
else $rapport->addInfo(array(false, false), 6);
|
||||
|
||||
$rapport->addInfo($combat->ATvais, 7);
|
||||
$rapport->addInfo($combat->ENvais, 8);
|
||||
$rapport->addInfo($combat->ENdef, 9);
|
||||
}
|
||||
|
||||
//Prévision du prochain tour
|
||||
$combat->timestamp += 300;
|
||||
$rapport->addInfo($combat->timestamp, 10);
|
||||
$rapport->addInfo(array($combat->vaisContenuM, $combat->vaisContenuC, $combat->vaisContenuH), 11);
|
||||
|
||||
//On envoie les rapports aux joueurs concernés
|
||||
$rapport->send();
|
||||
if ($queryCombat = $chapeau->unique_query("SELECT * FROM `$table_flottes_combats` WHERE `refflotte` = '$id_flotte';")) {
|
||||
//On vérifie si on lance le tour suivant ou non
|
||||
if (time() >= $queryCombat['timestamp']) {
|
||||
//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']);
|
||||
}
|
||||
$timestamp_suite = $combat->timestamp;
|
||||
|
||||
$debriM = $combat->debriM + $planeteEN['debris_met'];
|
||||
$debriC = $combat->debriC + $planeteEN['debris_cri'];
|
||||
|
||||
$combat->debriM = 0;
|
||||
$combat->debriC = 0;
|
||||
|
||||
//On sérialise la classe pour l'exporter
|
||||
$serialise = serialize($combat);
|
||||
|
||||
//On enregistre le combat dans la base de données
|
||||
$chapeau->query("UPDATE `$table_flottes_combats` SET `serialize` = '$serialise', `tactiqueAT` = '0', `tactiqueEN` = '0', `timestamp` = '$timestamp_suite' WHERE `refflotte` = '$id_flotte'");
|
||||
$chapeau->query("UPDATE `$table_planete` SET `debris_met` = '$debriM', `debris_cri` = '$debriC' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'");
|
||||
else continue;
|
||||
}
|
||||
else die('Erreur dans le script de combat, <a href="mailto:admin@halo-battle.s-fr.com">contactez d\'urgence un administrateur</a> !');
|
||||
}
|
||||
else {
|
||||
//On trouve les variables nécessaire pour le combat : vaisseaux, défenses, ...
|
||||
$resultatDef = $chapeau->unique_query("SELECT * FROM `$table_planete` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'");
|
||||
//On génére un nouveau combat
|
||||
$combat = new Combat($queryFlottes[$i], $queryEN, $queryEN);
|
||||
$chapeau->query("UPDATE `$table_flottes` SET `effectue` = '2' WHERE `id` = '$id_flotte';");
|
||||
}
|
||||
|
||||
//On déclare le combat
|
||||
$combat = new Combat($queryFlottes[$i], $resultatDef, $resultatDef);
|
||||
|
||||
//On prépare les rapports de combats
|
||||
$rapport = new Rapport($mission, $queryFlottes[$i]['id_user'], $planeteEN['id_user'], $combat->timestamp);
|
||||
|
||||
//Définition des tactiques par défaut pour les deux combatants
|
||||
$resultatU = $chapeau->unique_query("SELECT `combatAT_tactique` FROM `$table_user` WHERE `id` = '".$queryFlottes[$i]['id_user']."'");
|
||||
if (empty($queryFlottes[$i]['tactiqueAT'])) $combat->changerTactiqueAT($resultatU['combatAT_tactique']);
|
||||
else $combat->changerTactiqueAT($queryFlottes[$i]['tactiqueAT']);
|
||||
|
||||
$resultatU = $chapeau->query("SELECT combatDE_tactique FROM `$table_user` WHERE `id` = '".$resultatDef['id_user']."'");
|
||||
if (empty($queryFlottes[$i]['tactiqueEN'])) $combat->changerTactiqueEN($resultatU['combatDE_tactique']);
|
||||
else $combat->changerTactiqueEN($queryFlottes[$i]['tactiqueEN']);
|
||||
while($combat->timestamp <= time()) {
|
||||
//Préparation du rapport
|
||||
$rapport = new Rapport($mission, $queryFlottes[$i]['id_user'], $queryEN['id_user'], $combat->timestamp);
|
||||
|
||||
$combat->Ntour++;
|
||||
$rapport->addInfo($combat->ATvais, 0);
|
||||
$rapport->addInfo($combat->ENvais, 1);
|
||||
$rapport->addInfo($combat->ENdef, 2);
|
||||
$rapport->addInfo($combat->Ntour, 3);
|
||||
$rapport->addInfo($resultatDef, 4);
|
||||
$rapport->addInfo($queryEN, 4);
|
||||
$rapport->addInfo($queryFlottes[$i], 5);
|
||||
|
||||
//Lancement de l'attaque
|
||||
if (@$combat->attaquerVais($combat->calcAttaque(100,true),true) == 0) { //Attaquant vainceur
|
||||
$chapeau->query("DELETE FROM `$table_flottes_combats` WHERE `refflotte` = '$id_flotte'");
|
||||
$chapeau->query("UPDATE `$table_flottes` SET ".$combat->exportAT(true).", `effectue` = '1', `ret_time` = ".$combat->timestamp." WHERE `id` = '$id_flotte'");
|
||||
$chapeau->query("UPDATE `$table_planete` SET ".$combat->exportEN().", `metal` = `metal` - '".$combat->vaisContenuM."', `cristal` = `cristal` - '".$combat->vaisContenuC."', `hydrogene` = `hydrogene` - '".$combat->vaisContenuH."' WHERE `id` = '$ENidPlan';");
|
||||
$rapport->addInfo(array(true, true), 6);
|
||||
$effect = false;
|
||||
//Détermine à qui est le tour : attaquant ou défenseur
|
||||
if ($combat->Ntour%2) { //Tour impaire : tour attaquant
|
||||
//Récupération des paramètres de la tactique
|
||||
$arraytactique = tactique($combat->ATtactique);
|
||||
|
||||
//Lancement du combat, si condition validée, attaquant vainceur
|
||||
if (@!$combat->attaquerVais($combat->calcAttaque($arraytactique[2] + $combat->regenereBC($arraytactique[1], true, !$arraytactique[3]), true), true)) {
|
||||
$chapeau->query("DELETE FROM `$table_flottes_combats` WHERE `refflotte` = '$id_flotte';");
|
||||
$chapeau->query("UPDATE `$table_flottes` SET ".$combat->exportAT(true).", `effectue` = '1', `ret_time` = '".$combat->timestamp."' + `end_time` WHERE `id` = '$id_flotte';");
|
||||
$chapeau->query("UPDATE `$table_planete` SET ".$combat->exportEN().", `metal` = `metal` - '".$combat->pillage[0]."', `cristal` = `cristal` - '".$combat->pillage[1]."', `hydrogene` = `hydrogene` - '".$combat->pillage[2]."' WHERE `id` = '$ENidPlan';");
|
||||
$rapport->addInfo(array(true, true), 6);
|
||||
}
|
||||
else $rapport->addInfo(array(false, false), 6);
|
||||
}
|
||||
else {
|
||||
$rapport->addInfo(array(false, false), 6);
|
||||
$effect = true;
|
||||
else { //Tour impaire : tour défenseur
|
||||
//Récupération des paramètres de la tactique
|
||||
$arraytactique = tactique($combat->ENtactique);
|
||||
|
||||
//Lancement du combat, si condition validée, défenseur vainceur
|
||||
if (@!$combat->attaquerVais($combat->calcAttaque($arraytactique[2] + $combat->regenereBC($arraytactique[1], false, !$arraytactique[3]), false), false)) {
|
||||
$chapeau->query("DELETE FROM `$table_flottes_combats` WHERE `refflotte` = '$id_flotte';");
|
||||
$chapeau->query("DELETE FROM `$table_flottes` WHERE `id` = '$id_flotte';");
|
||||
$chapeau->query("UPDATE `$table_planete` SET ".$combat->exportEN()." WHERE `id` = '$ENidPlan';");
|
||||
$rapport->addInfo(array(true, false), 6);
|
||||
}
|
||||
else $rapport->addInfo(array(false, false), 6);
|
||||
}
|
||||
|
||||
$rapport->addInfo($combat->ATvais, 7);
|
||||
|
|
@ -171,44 +109,46 @@ for ($i = 0; $i < $nbFlottes; $i++) {
|
|||
|
||||
//Prévision du prochain tour
|
||||
$combat->timestamp += 300;
|
||||
$timestamp_suite = $combat->timestamp;
|
||||
$rapport->addInfo($combat->timestamp, 10);
|
||||
$rapport->addInfo(array($combat->vaisContenuM, $combat->vaisContenuC, $combat->vaisContenuH), 11);
|
||||
|
||||
$debriM = $combat->debriM + $planeteEN['debris_met'];
|
||||
$debriC = $combat->debriC + $planeteEN['debris_cri'];
|
||||
|
||||
$combat->debriM = 0;
|
||||
$combat->debriC = 0;
|
||||
|
||||
//On sérialise la classe pour l'exporter
|
||||
$serialise = serialize($combat);
|
||||
$rapport->addInfo($combat->pillage, 11);
|
||||
|
||||
//On envoie les rapports aux joueurs concernés
|
||||
$rapport->send();
|
||||
}
|
||||
$debriM = $combat->debriM + $queryEN['debris_met'];
|
||||
$debriC = $combat->debriC + $queryEN['debris_cri'];
|
||||
|
||||
$combat->debriM = 0;
|
||||
$combat->debriC = 0;
|
||||
$chapeau->query("UPDATE `$table_planete` SET `debris_met` = '$debriM', `debris_cri` = '$debriC' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position';");
|
||||
|
||||
if (!$rapport->var[6][0]) { //Si le combat n'est pas terminé
|
||||
//On sérialise la classe pour l'exporter
|
||||
$serialise = serialize($combat);
|
||||
|
||||
//On enregistre le combat dans la base de données
|
||||
$chapeau->query("INSERT INTO `$table_flottes_combats` VALUES(NULL, '".$queryFlottes[$i]['id']."', '$timestamp_suite', '$serialise', '0', '0');");
|
||||
if ($effect) $chapeau->query("UPDATE `$table_flottes` SET `effectue` = '2' WHERE `id` = '$id_flotte';");
|
||||
$chapeau->query("UPDATE `$table_planete` SET `debris_met` = '$debriM', `debris_cri` = '$debriC' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position';");
|
||||
if ($queryFlottes[$i]['effectue']) $chapeau->query("UPDATE `$table_flottes_combats` SET `serialize` = '$serialise', `tactiqueAT` = '0', `tactiqueEN` = '0', `timestamp` = '".$combat->timestamp."' WHERE `refflotte` = '$id_flotte';");
|
||||
else $chapeau->query("INSERT INTO `$table_flottes_combats` VALUES(NULL, '".$queryFlottes[$i]['id']."', '".$combat->timestamp."', '$serialise', '0', '0');");
|
||||
}
|
||||
}
|
||||
//Mission Transporter
|
||||
elseif ($mission == 2) {
|
||||
$planeteEN = $chapeau->unique_query("SELECT `metal`, `cristal`, `hydrogene` FROM `$table_planete` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'");
|
||||
$Cmetal = $queryFlottes[$i]['contenu_metal'] + $resultatT['metal'];
|
||||
$Ccristal = $queryFlottes[$i]['contenu_cristal'] + $planeteEN['cristal'];
|
||||
$Chydrogene = $queryFlottes[$i]['contenu_hydrogene'] + $planeteEN['hydrogene'];
|
||||
$chapeau->query("UPDATE `$table_planete` SET `metal` = '$Cmetal', `cristal` = '$Ccristal', `hydrogene` = '$Chydrogene' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'");
|
||||
$chapeau->query("UPDATE `$table_flottes` SET `effectue` = '1', `contenu_metal` = '0', `contenu_cristal` = '0', `contenu_hydrogene` = '0' WHERE `id` = '$id_flotte'");
|
||||
$chapeau->query("UPDATE `$table_planete` SET `metal` = `metal` + '".$queryFlottes[$i]['contenu_metal']."', `cristal` = `cristal` + '".$queryFlottes[$i]['contenu_cristal']."', `hydrogene` = `hydrogene` + '".$queryFlottes[$i]['contenu_hydrogene']."' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position';");
|
||||
$chapeau->query("UPDATE `$table_flottes` SET `effectue` = '1', `contenu_metal` = '0', `contenu_cristal` = '0', `contenu_hydrogene` = '0' WHERE `id` = '$id_flotte';");
|
||||
|
||||
$message = mysql_real_escape_string('Vos vaisseaux ont déposés '.$queryFlottes[$i]['contenu_metal'].' de métal, '.$queryFlottes[$i]['contenu_cristal'].' de cristal et '.$queryFlottes[$i]['contenu_hydrogene'].' d\'hydrogène aux coordonnées '.$end_galaxie.':'.$end_ss.':'.$end_position);
|
||||
$chapeau->query("INSERT INTO `$table_mail` VALUES('', '1', '".trouvNom($queryFlottes[$i]['id_user'])."', '', 'Transport', '$message', '$temps')");
|
||||
$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();
|
||||
}
|
||||
//Mission Coloniser
|
||||
elseif ($mission == 3) {
|
||||
$chapeau->query("SELECT * FROM `$table_planete` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'");
|
||||
if (!$chapeau->num_rows > 0) {
|
||||
$rapport = new Rapport($mission, $queryFlottes[$i]['id_user'], 0, $end_time);
|
||||
$rapport->addInfo(array($end_galaxie, $end_ss, $end_position), 0);
|
||||
|
||||
if ($queryEN) $rapport->addInfo(false, 1);
|
||||
else {
|
||||
$rapport->addInfo(true, 1);
|
||||
$time = time();
|
||||
$cases = mt_rand(125,222);
|
||||
$image = mt_rand(1,15);
|
||||
|
|
@ -231,72 +171,68 @@ for ($i = 0; $i < $nbFlottes; $i++) {
|
|||
$debut = mktime(rand(0, 24-$tps), 0, 0, date('n'), date('j'), date('Y'));
|
||||
$fin = $debut + $tps * 3600;
|
||||
|
||||
$chapeau->query("INSERT INTO `$table_planete` (`id_user`, `isolement`, `nom_planete`, `galaxie`, `ss`, `position`, `image`, `cases`, `timestamp`, `metal`, `cristal`, `hydrogene`) VALUES ('$queryFlottes[$i]['id_user']', '$debut $fin', 'Planète colonisée', '$end_galaxie', '$end_ss', '$end_position', '$image', '$cases', '$time', '$Cmetal', '$Ccristal', '$Chydrogene')");
|
||||
$chapeau->query("INSERT INTO `$table_planete` (`id_user`, `isolement`, `nom_planete`, `galaxie`, `ss`, `position`, `image`, `cases`, `timestamp`, `metal`, `cristal`, `hydrogene`) VALUES ('".$queryFlottes[$i]['id_user']."', '$debut $fin', 'Planète colonisée', '$end_galaxie', '$end_ss', '$end_position', '$image', '$cases', '$time', '$Cmetal', '$Ccristal', '$Chydrogene');");
|
||||
|
||||
if ($queryFlottes[$i]['nb_vais'] == 1) {
|
||||
$queryFlottes[$i]['nb_vais'] = -1;
|
||||
$chapeau->query("DELETE FROM `$table_flottes` WHERE `id` = '$id_flotte'");
|
||||
}
|
||||
else $chapeau->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'");
|
||||
|
||||
$message = 'Votre vaisseau a atteint la planète ['.$end_galaxie.':'.$end_ss.':'.$end_position.'] et commence la colonisation';
|
||||
$chapeau->query("INSERT INTO `$table_mail` VALUES('', '1', '".trouvNom($queryFlottes[$i]['id_user'])."', '', 'Colonisation', '$message', '$temps')");
|
||||
else $chapeau->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';");
|
||||
}
|
||||
else $chapeau->query("INSERT INTO `$table_mail` VALUES('', '1', '".trouvNom($queryFlottes[$i]['id_user'])."', '', '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')");
|
||||
$rapport->send();
|
||||
}
|
||||
//Mission Recycler
|
||||
elseif ($mission == 4) {
|
||||
$resultatT = $chapeau->unique_query("SELECT * FROM `$table_planete` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'");
|
||||
if ($resultatT) {
|
||||
$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'];
|
||||
$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'];
|
||||
|
||||
$debris_met = $resultatT['debris_met'];
|
||||
$debris_cri = $resultatT['debris_cri'];
|
||||
$capacite = $queryFlottes[$i]['contenu_max'];
|
||||
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;
|
||||
}
|
||||
else if ($a > $debris_met) {
|
||||
$a = $debris_met;
|
||||
$b = ($capacite - $a);
|
||||
if ($b > $debris_cri) $b = $debris_cri;
|
||||
}
|
||||
else if ($b > $debris_cri) {
|
||||
$b = $debris_cri;
|
||||
$a = ($capacite - $b);
|
||||
if ($a > $debris_met) $a = $debris_met;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$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;
|
||||
}
|
||||
$Cmetal = $a + $queryFlottes[$i]['contenu_metal'];
|
||||
$Ccristal = $b + $queryFlottes[$i]['contenu_cristal'];
|
||||
$debris_met -= $a;
|
||||
$debris_cri -= $b;
|
||||
|
||||
$chapeau->query("UPDATE `$table_flottes` SET `effectue` = '1', `contenu_metal` = '$Cmetal', `contenu_cristal` = '$Ccristal' WHERE `id` = '$id_flotte'");
|
||||
$chapeau->query("UPDATE `$table_planete` SET `debris_met` = '$debris_met', `debris_cri` = '$debris_cri' WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'");
|
||||
|
||||
$message = 'Vos vaisseaux récoltent '.$a.' de métal et '.$b.' de cristal aux coordonnées '.$end_galaxie.':'.$end_ss.':'.$end_position;
|
||||
$chapeau->query("INSERT INTO `$table_mail` VALUES('', '1', '".trouvNom($queryFlottes[$i]['id_user'])."', '', 'Recyclage', '$message', '$temps')");
|
||||
else if ($a > $debris_met) {
|
||||
$a = $debris_met;
|
||||
$b = ($capacite - $a);
|
||||
if ($b > $debris_cri) $b = $debris_cri;
|
||||
}
|
||||
else if ($b > $debris_cri) {
|
||||
$b = $debris_cri;
|
||||
$a = ($capacite - $b);
|
||||
if ($a > $debris_met) $a = $debris_met;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$a = $debris_met;
|
||||
$b = $debris_cri;
|
||||
}
|
||||
$Cmetal = $a + $queryFlottes[$i]['contenu_metal'];
|
||||
$Ccristal = $b + $queryFlottes[$i]['contenu_cristal'];
|
||||
|
||||
$chapeau->query("UPDATE `$table_flottes` SET `effectue` = '1', `contenu_metal` = '$Cmetal', `contenu_cristal` = '$Ccristal' WHERE `id` = '$id_flotte';");
|
||||
$chapeau->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';");
|
||||
|
||||
$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();
|
||||
}
|
||||
//Mission Espionnage
|
||||
elseif ($mission == 5) {
|
||||
$chapeau->query("UPDATE `$table_flottes` SET `effectue` = '1' WHERE `id` = '$id_flotte';");
|
||||
$nbsondes = $queryFlottes[$i]['vaisseau_3'];
|
||||
$resultatT = $chapeau->unique_query("SELECT * FROM `$table_planete` WHERE `galaxie` = '$end_galaxie' AND `ss` = '$end_ss' AND `position` = '$end_position'");
|
||||
$id_userT = $resultatT['id_user'];
|
||||
$id_userT = $queryEN['id_user'];
|
||||
$id_att = $queryFlottes[$i]['id_user'];
|
||||
$resultatUD = $chapeau->unique_query("SELECT * FROM `$table_user` WHERE `id` = '$id_userT';");
|
||||
$resultatUA = $chapeau->unique_query("SELECT * FROM `$table_user` WHERE `id` = '$id_att';");
|
||||
|
||||
$diffNiveau = $resultatUA['detection'] - $resultatUD['detection'] + floor($nbsondes/2);
|
||||
$rapport = new Rapport($mission, $id_att, $id_userT, $queryFlottes[$i]['start_time'] + $queryFlottes[$i]['end_time']);
|
||||
$rapport = new Rapport($mission, $id_att, $id_userT, $end_time);
|
||||
|
||||
if ($diffNiveau < 0) {
|
||||
$rapport->addInfo($resultatT, 0);
|
||||
$rapport->addInfo(false, 1);
|
||||
|
|
@ -308,31 +244,41 @@ for ($i = 0; $i < $nbFlottes; $i++) {
|
|||
if ($diffNiveau >= 4) $rapport->addInfo($resultatUD, 4);
|
||||
if ($diffNiveau >= 5) $rapport->addInfo(true, 5);
|
||||
|
||||
$chapeau->query("UPDATE `$table_flottes` SET `effectue` = '1' WHERE `id` = '$id_flotte'");
|
||||
$rapport->send();
|
||||
}
|
||||
}
|
||||
if ($queryFlottes[$i]['nb_vais'] >= 0 && time() >= $queryFlottes[$i]['start_time'] + $queryFlottes[$i]['end_time'] * 2 && !empty($queryFlottes[$i]['end_time']) && $queryFlottes[$i]['mission'] != 0 && ($queryFlottes[$i]['mission'] != 1 || (!empty($queryFlottes[$i]['ret_time']) && time() >= $queryFlottes[$i]['ret_time'] + $queryFlottes[$i]['end_time']))) {
|
||||
|
||||
//Si la flotte a terminé son retour
|
||||
if ($queryFlottes[$i]['nb_vais'] >= 0 && $queryFlottes[$i]['effectue']) {
|
||||
$start_galaxie = $queryFlottes[$i]['start_galaxie'];
|
||||
$start_ss = $queryFlottes[$i]['start_ss'];
|
||||
$start_position = $queryFlottes[$i]['start_position'];
|
||||
$ret_galaxie = $queryFlottes[$i]['ret_galaxie'];
|
||||
$ret_ss = $queryFlottes[$i]['ret_ss'];
|
||||
$ret_position = $queryFlottes[$i]['ret_position'];
|
||||
$id_flotte = $queryFlottes[$i]['id'];
|
||||
if (!empty($queryFlottes[$i]['ret_position'])) $resultatP = $chapeau->unique_query("SELECT * FROM `$table_planete` WHERE `galaxie` = '$ret_galaxie' AND `ss` = '$ret_ss' AND `position` = '$ret_position';");
|
||||
else $resultatP = $chapeau->unique_query("SELECT * FROM `$table_planete` WHERE `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position';");
|
||||
$metal = $queryFlottes[$i]['contenu_metal'] + $resultatP['metal'];
|
||||
$cristal = $queryFlottes[$i]['contenu_cristal'] + $resultatP['cristal'];
|
||||
$hydrogene = $queryFlottes[$i]['contenu_hydrogene'] + $resultatP['hydrogene'];
|
||||
for($j = 1; $j <= 12; $j++) {
|
||||
${'Pvaisseaux_'.$j} = $resultatP['vaisseau_'.$j] + $queryFlottes[$i]['vaisseau_'.$j];
|
||||
$chapeau->query("UPDATE `$table_planete` SET `vaisseau_$j` = '${'Pvaisseaux_'.$j}' WHERE `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'");
|
||||
$retour = false;
|
||||
if (!empty($queryFlottes[$i]['ret_position']) && time() >= $queryFlottes[$i]['ret_time']) {
|
||||
if ($chapeau->unique_query("SELECT * FROM `$table_planete` WHERE `galaxie` = '$ret_galaxie' AND `ss` = '$ret_ss' AND `position` = '$ret_position';")) {
|
||||
$export = '';
|
||||
for($j = 1; $j <= 12; $j++) {
|
||||
$export .= ', `vaisseau_'.$j.'` = `vaisseau_'.$j.'` + '.$queryFlottes[$i]['vaisseau_'.$j];
|
||||
}
|
||||
$chapeau->query("UPDATE `$table_planete` SET `metal` = `metal` + '".$queryFlottes[$i]['contenu_metal']."', `cristal` = `cristal` + '".$queryFlottes[$i]['contenu_cristal']."', `hydrogene` = `hydrogene` + '".$queryFlottes[$i]['contenu_hydrogene']."'$export WHERE `galaxie` = '$ret_galaxie' AND `ss` = '$ret_ss' AND `position` = '$ret_position';");
|
||||
$chapeau->query("DELETE FROM `$table_flottes` WHERE `id_user` = '".$queryFlottes[$i]['id_user']."' AND `id` = '$id_flotte';");
|
||||
}
|
||||
}
|
||||
elseif (time() >= $queryFlottes[$i]['ret_time']) $retour = true;
|
||||
elseif (time() >= $queryFlottes[$i]['start_time'] + $queryFlottes[$i]['end_time'] * 2 && $queryFlottes[$i]['mission'] != 0 && ($queryFlottes[$i]['mission'] != 1 || (!empty($queryFlottes[$i]['ret_time']) && time() >= $queryFlottes[$i]['ret_time'] + $queryFlottes[$i]['end_time']))) $retour = true;
|
||||
if ($retour) {
|
||||
if ($chapeau->unique_query("SELECT * FROM `$table_planete` WHERE `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position';")) {
|
||||
$export = '';
|
||||
for($j = 1; $j <= 12; $j++) {
|
||||
$export .= ', `vaisseau_'.$j.'` = `vaisseau_'.$j.'` + '.$queryFlottes[$i]['vaisseau_'.$j];
|
||||
}
|
||||
$chapeau->query("UPDATE `$table_planete` SET `metal` = `metal` + '".$queryFlottes[$i]['contenu_metal']."', `cristal` = `cristal` + '".$queryFlottes[$i]['contenu_cristal']."', `hydrogene` = `hydrogene` + '".$queryFlottes[$i]['contenu_hydrogene']."'$export WHERE `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position';");
|
||||
$chapeau->query("DELETE FROM `$table_flottes` WHERE `id_user` = '".$queryFlottes[$i]['id_user']."' AND `id` = '$id_flotte';");
|
||||
}
|
||||
}
|
||||
$chapeau->query("UPDATE `$table_planete` SET `metal` = '$metal', `cristal` = '$cristal', `hydrogene` = '$hydrogene' WHERE `galaxie` = '$start_galaxie' AND `ss` = '$start_ss' AND `position` = '$start_position'");
|
||||
$chapeau->query("DELETE FROM `$table_flottes` WHERE `id_user` = '$id_user' AND `id` = '$id_flotte'");
|
||||
}
|
||||
}
|
||||
|
||||
$id_user = $sess->values['id'];
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue