Version 1.12

This commit is contained in:
nemunaire 2009-11-01 12:00:00 +01:00
commit de31cd3e9a
1373 changed files with 156282 additions and 45238 deletions

View file

@ -0,0 +1,42 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'accueil';
$titre = 'Accueil';
//Affichage de l'alliance du joueur
$bdd->reconnexion();
//$alli = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = '".$planete->id_alliance."';");
//On regarde si le joueur a une flotte en vue
$radar = array();
$nbPlan = count($queryPlanetes);
//$detect = $planete->technologies[1]*1800;
/*for($i = 0; $i < $nbPlan; $i++){
$end_galaxie = $queryPlanetes[$i]['galaxie'];
$end_ss = $queryPlanetes[$i]['ss'];
$end_position = $queryPlanetes[$i]['position'];
$radar[] = array($bdd->query("SELECT F.mission, F.start_galaxie, F.start_ss, F.start_position, F.start_time, F.end_time, F.start_time + F.end_time - ".time()." AS arrive_time, P.nom_planete, U.pseudo FROM $table_flottes F INNER JOIN $table_planete P ON P.galaxie = F.start_galaxie AND P.ss = F.start_ss AND P.position = F.start_position INNER JOIN $table_user U ON U.id = P.id_user WHERE F.effectue != '1' AND F.end_galaxie = '$end_galaxie' AND F.end_ss = '$end_ss' AND F.end_position = '$end_position' AND F.id_user != $id_user AND F.start_time + F.end_time - ".time()." <= $detect;"), array($queryPlanetes[$i]['nom_planete'], $queryPlanetes[$i]['galaxie'], $queryPlanetes[$i]['ss'], $queryPlanetes[$i]['position']));
}*/
$bdd->deconnexion();
unset($nbPlan);
if (SURFACE == "planete") {
//Affichage des informations sur la planète
$template->assign('diametre', $planete->cases * 92);
$template->assign('points', $planete->points);
}
$template->assign('radar',$radar);
//$template->assign('alliance', $alli);
if (SURFACE == "planete")
{
$template->assign('fileBat', $planete->file_bat->printFile($planete));
$template->assign('fileCas', $planete->file_cas->printFile($planete));
$template->assign('fileVais', $planete->file_vais->printFile($planete));
$template->assign('fileTer', $planete->file_ter->printFile($planete));
$template->assign('fileTech', $planete->file_tech->printFile($planete));
}
unset($radar, $alli)
?>

View file

@ -0,0 +1,72 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'arbre';
$titre = 'Arbre des technologies';
if (empty($_GET['q']))
$_GET['q'] = '';
$template->assign('defaut',$_GET['q']);
//Récupération et vérification de la race voulue ou définition d'une race par défaut
if (empty($_GET['r']) || ($_GET['r'] != 'humain' && $_GET['r'] != 'covenant'))
$_GET['r'] = $planete->race;
$race = $_GET['r'];
$template->assign('raceAff', $race);
$TEMP_liste = array();
foreach($planete->batiments as $id => $batiment)
{
if (!empty($LANG[$race]["batiments"]["noms_sing"][$id]))
$TEMP_liste[$id] = array(
'niveau' => $batiment,
'etat' => Donnee::print_neededBatiments($id, $planete, $race)
);
}
$template->assign('batiments', $TEMP_liste);
/*
$TEMP_technologies = array();
$nb = count($technolo);
for ($id=0 ; $id<$nb ; $id++) {
if (!empty($technolo[$id])) $TEMP_technologies[] = array(
'id' => $id,
'nom' => $technolo[$id],
'niveau' => $planete->technologies[$id],
'etat' => readDeblok($technoloTECH[$id], $planete)
);
}
$template->assign('technologies',$TEMP_technologies);
*/
$TEMP_liste = array();
foreach($planete->casernes as $id => $unite)
{
if (!empty($LANG[$race]["caserne"]["noms_sing"][$id]))
$TEMP_liste[$id] = array(
'niveau' => $unite,
'etat' => Donnee::print_neededCaserne($id, $planete, $race)
);
}
$template->assign('caserne', $TEMP_liste);
$TEMP_liste = array();
foreach($planete->terrestres as $id => $unite)
{
if (!empty($LANG[$race]["terrestre"]["noms_sing"][$id]))
$TEMP_liste[$id] = array(
'niveau' => $unite,
'etat' => Donnee::print_neededTerrestre($id, $planete, $race)
);
}
$template->assign('unites', $TEMP_liste);
$TEMP_liste = array();
foreach($planete->vaisseaux as $id => $unite)
{
if (!empty($LANG[$race]["vaisseaux"]["noms_sing"][$id]))
$TEMP_liste[$id] = array(
'niveau' => $unite,
'etat' => Donnee::print_neededVaisseaux($id, $planete, $race)
);
}
$template->assign('vaisseaux', $TEMP_liste);
?>

View file

@ -0,0 +1,56 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'batiments';
$titre = 'Batiments';
//Lancement d'une nouvelle construction
if (isset($_GET['c'])) {
//On vérifie qu'il n'y ait pas de technologie en cours de recherche si l'on veut améliorer le centre de recherche
if($_GET['c'] == 6 && !empty($planete->file_tech[1]))
erreur('Une technologie est en cours de recherche dans votre laboratoire, vous ne pouvez pas faire de travaux !');
$planete->file_bat->batiment_addObjet(intval(gpc('c')), $planete);
redirection($VAR['menu']['batiments']);
}
//Lancement d'une déconstruction
if (isset($_GET['d'])) {
//On vérifie qu'il n'y ait pas de technologie en cours de recherche si l'on veut améliorer le centre de recherche
if($_GET['d'] == 6 && !empty($planete->file_tech[1]))
erreur('Une technologie est en cours de recherche dans votre laboratoire, vous ne pouvez pas faire de travaux !');
$planete->file_bat->batiment_addDemolition(intval(gpc('d')), $planete);
redirection($VAR['menu']['batiments']);
}
//Annulation d'une nouvelle construction
if (isset($_GET['a'])) {
$planete->file_bat->batiment_delObjet(intval(gpc('a')), $planete);
redirection($VAR['menu']['batiments']);
}
$TEMP_liste = array();
foreach($planete->batiments as $i => $niveau)
{
//Si l'on est pas sur la planète mère, on désactive le laboratoire
if ($i == 6 && $queryPlanetes[0]['id'] != $planete->id)
continue;
if (!empty($LANG[$planete->race]['batiments']['noms_sing'][$i]) && Donnee::neededBatiments($i, $planete))
{
$TEMP_liste[] = array (
'id' => $i,
'image' => $batimeni[$i],
'niveau' => $niveau,
'nec_metal' => Donnee::metalBatiments($i, $niveau+1, $planete),
'nec_cristal' => Donnee::cristalBatiments($i, $niveau+1, $planete),
'nec_hydrogene' => Donnee::hydrogeneBatiments($i, $niveau+1, $planete),
'temps' => sec(Donnee::tempsBatiments($i, $niveau+1, $planete)),
'enfile' => $planete->file_bat->batiment_objectInFile($i)
);
}
}
$template->assign('batiments', $TEMP_liste);
$template->assign('file', $planete->file_bat->printFile($planete));
?>

View file

@ -0,0 +1,105 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'carte';
$titre = 'Carte spatiale';
//Récupération d'un numéro d'amas à regarder
if (isset($_GET['galaxie']))
$g = floor($_GET['galaxie']);
else
$g = $planete->galaxie;
//Validation du numéro de l'amas
if ($planete->auth_level >= 5 && $g <= 0)
$g = 0;
elseif ($g < 1)
$g = 1;
if ($g > $VAR['nb_amas'])
$g = 1;
//Récupération d'un numéro de système à regarder
if (isset($_GET['ss']))
$s = floor($_GET['ss']);
else
$s = $planete->ss;
//Validation du numéro de système
if ($s < 1)
$s = 1;
if ($s > $VAR['nb_systeme'])
$s = $VAR['nb_systeme'];
//Calcul des prochains amas et systèmes
if ($s == 1 && $g > 1)
{
$Gmu = $g - 1;
$Smu = $VAR['nb_systeme'];
}
elseif ($s == 1)
{
$Gmu = 15;
$Smu = $VAR['nb_systeme'];
}
else
{
$Gmu = $g;
$Smu = $s - 1;
}
if ($s == $VAR['nb_systeme'])
{
$Gpu = $g + 1;
$Spu = 1;
}
else
{
$Gpu = $g;
$Spu = $s + 1;
}
//Erreur au cas où la zone soit trop lointaine par rapport au niveau de la technologie
//if (($planete->technologies[1] < 1 && ($g != $planete->galaxie || $s != $planete->ss)) || ($planete->technologies[1] < 2 && $g != $planete->galaxie))
// erreur('Pour afficher cette zone de la carte spatiale, vous devez plus développer votre technologie ');
//Génération de la carte à afficher
$TEMP_carte = array();
for ($i = 1; $i <= $VAR['nb_planete']; $i++)
{
//Cas d'un système à astéroïde
if ($s%5 == 2 && $i == ceil($VAR['nb_planete']/2))
{
$bdd->reconnexion();
$bdd->escape($g);
$bdd->escape($s);
$d = $bdd->unique_query("SELECT race, nom_asteroide, debris_met, debris_cri, nom, tag, fondateur FROM $table_alliances WHERE galaxie = $g AND ss = $s;");
$bdd->deconnexion();
if($d) {
if ($d['race'] == 'covenant') $ra = '(c)';
elseif ($auth_level >= 6 && md5($d['race']) == '34c19b21bd4a3dda389e767d32fe9779') $ra = '(f)';
else $ra = '(h)';
$TEMP_carte[] = array('A', $d['nom_asteroide'], $d['debris_met'], $d['debris_cri'], $ra, $d['nom'], '<a href="?p=envoyer&amp;d='.$d['fondateur'].'" class="msg"><span>Message</span></a>', $d['tag']);//, $eA['tag']);
}
else {
$TEMP_carte[] = array('A');
}
}
$bdd->reconnexion();
$bdd->escape($g);
$bdd->escape($s);
$resultat = $bdd->query("SELECT id FROM $table_planete WHERE galaxie = $g AND ss = $s AND position = $i;");
if($resultat) {
$d = $bdd->unique_query("SELECT P.nom_planete, P.image, P.debris_met, P.debris_cri, U.pseudo, U.race, U.politique, U.id_alliance, A.tag FROM $table_planete P INNER JOIN $table_user U ON U.id = P.id_user LEFT OUTER JOIN $table_alliances A ON A.id = U.id_alliance WHERE P.galaxie = $g AND P.ss = $s AND P.position = $i;");
$bdd->deconnexion();
$TEMP_carte[] = array($i, $d['nom_planete'], $d['debris_met'], $d['debris_cri'], $d['race'], $d['pseudo'], $d['tag'], $d['image'], $d['politique']);
}
else {
$bdd->deconnexion();
$TEMP_carte[] = array($i);
}
}
$template->assign('carte', $TEMP_carte);
$template->assign('position', array($g, $s, $Gpu, $Spu, $Gmu, $Smu));
?>

View file

@ -0,0 +1,45 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'caserne';
$titre = $LANG[$planete->race]['batiments']['noms_sing'][9];
//Vérification que le joueur ait bien une caserne avant d'afficher la page
if ($planete->batiments[9] <= 0)
erreur('Vous devez d\'abord construire une '.$LANG[$planete->race]['batiments']['noms_sing'][9], "red", '?p=batiments', 3500);
//Lancement d'une nouvelle construction
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
$planete->file_cas->caserne_addObjet(intval(gpc('v')), $nbv, $planete);
redirection($VAR['menu']['caserne']);
}
//Annulation d'une nouvelle construction
if (isset($_GET['a'])) {
$n = intval(gpc('n'));
if (empty($n)) $n = 1;
$planete->file_cas->caserne_delObjet(intval(gpc('a')), $n, $planete);
redirection($VAR['menu']['caserne']);
}
$TEMP_liste = array();
foreach($planete->casernes as $i => $nombre)
{
if (!empty($LANG[$planete->race]['caserne']['noms_sing'][$i]) && Donnee::neededCaserne($i, $planete))
{
$TEMP_liste[] = array (
'id' => $i,
'image' => $casernei[$i],
'nombre' => $nombre,
'nec_metal' => Donnee::metalCaserne($i, $planete),
'nec_cristal' => Donnee::cristalCaserne($i, $planete),
'nec_hydrogene' => Donnee::hydrogeneCaserne($i, $planete),
'temps' => sec(Donnee::tempsCaserne($i, $planete)),
'enfile' => $planete->file_cas->objectInFile($i)
);
}
}
$template->assign('unites', $TEMP_liste);
$template->assign('file', $planete->file_cas->printFile($planete));
?>

View file

@ -0,0 +1,45 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'chantierspatial';
$titre = ucfirst($LANG[$planete->race]['batiments']['noms_sing'][8]);
//Vérification que le joueur ait bien un labo avant d'afficher la page
if ($planete->batiments[8] <= 0)
erreur('Vous devez d\'abord construire un '.$LANG[$planete->race]['batiments']['noms_sing'][8], "red", '?p=batiments', 3500);
//Lancement d'une nouvelle construction
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
$planete->file_vais->vaisseaux_addObjet(intval(gpc('v')), $nbv, $planete);
redirection($VAR['menu']['chantierspatial']);
}
//Annulation d'une nouvelle construction
if (isset($_GET['a'])) {
$n = intval(gpc('n'));
if (empty($n)) $n = 1;
$planete->file_vais->vaisseaux_delObjet(intval(gpc('a')), $n, $planete);
redirection($VAR['menu']['chantierspatial']);
}
$TEMP_liste = array();
foreach($planete->vaisseaux as $i => $nombre)
{
if (!empty($LANG[$planete->race]['vaisseaux']['noms_sing'][$i]) && Donnee::neededVaisseaux($i, $planete))
{
$TEMP_liste[] = array (
'id' => $i,
'image' => $nomvaisi[$i],
'nombre' => $nombre,
'nec_metal' => Donnee::metalVaisseaux($i, $planete),
'nec_cristal' => Donnee::cristalVaisseaux($i, $planete),
'nec_hydrogene' => Donnee::hydrogeneVaisseaux($i, $planete),
'temps' => sec(Donnee::tempsVaisseaux($i, $planete)),
'enfile' => $planete->file_vais->objectInFile($i)
);
}
}
$template->assign('vaisseaux', $TEMP_liste);
$template->assign('file', $planete->file_vais->printFile($planete));
?>

View file

@ -0,0 +1,47 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = $p;
$titre = ucfirst($LANG[$planete->race]['batiments']['noms_sing'][7]);
//Vérification que le joueur ait bien un labo avant d'afficher la page
if ($planete->batiments[7] <= 0)
erreur('Vous devez d\'abord construire un '.$LANG[$planete->race]['batiments']['noms_sing'][7], "red", '?p=batiments', 3500);
//Lancement d'une nouvelle construction
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
$planete->file_ter->terrestre_addObjet(intval(gpc('v')), $nbv, $planete);
redirection($VAR['menu'][$p]);
}
//Annulation d'une nouvelle construction
if (isset($_GET['a'])) {
$n = intval(gpc('n'));
if (empty($n)) $n = 1;
$planete->file_ter->terrestre_delObjet(intval(gpc('a')), $n, $planete);
redirection($VAR['menu'][$p]);
}
$TEMP_liste = array();
foreach($planete->terrestres as $i => $nombre)
{
$type = Donnee::typeTerrestre($i);
if (!empty($LANG[$planete->race]['terrestre']['noms_sing'][$i]) && (($p == "defenses" && !$type) || ($p == "chantierterrestre" && $type)) && Donnee::neededTerrestre($i, $planete))
{
$TEMP_liste[] = array (
'id' => $i,
'image' => $nomterri[$i],
'nombre' => $nombre,
'nec_metal' => Donnee::metalTerrestre($i, $planete),
'nec_cristal' => Donnee::cristalTerrestre($i, $planete),
'nec_hydrogene' => Donnee::hydrogeneTerrestre($i, $planete),
'temps' => sec(Donnee::tempsTerrestre($i, $planete)),
'enfile' => $planete->file_ter->objectInFile($i)
);
}
}
$template->assign('unites', $TEMP_liste);
$template->assign('file', $planete->file_ter->printFile($planete));
?>

View file

@ -0,0 +1,148 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'description';
$titre = 'D&eacute;tails';
function tableauProd($ibat,$nivo)
{
$return = array();
$c = $nivo-2 < 1 ? 1 : $nivo-2;
$a = $c + 6;
if ($ibat == 0)
{
for ($c; $c < $a; $c++)
{
$production = ceil(pow(1.1, $c) * 52 * $c);
$production_diff = ceil(pow(1.1, $c) * 52 * $c) - ceil(pow(1.1, $nivo) * 52 * $nivo);
$energie = ceil(exp(0.28*$c)*10);
$energie_diff = ceil(exp(0.28*$c)*10) - ceil(exp(0.28*$nivo)*10);
$return[] = array($c, $production, $energie, $production_diff, $energie_diff);
}
}
elseif ($ibat == 1)
{
for ($c; $c < $a; $c++)
{
$production = ceil(pow(1.1, $c) * 34 * $c);
$production_diff = ceil(pow(1.1, $c) * 34 * $c) - ceil(pow(1.1, $nivo) * 52 * $nivo);
$energie = ceil(exp(0.28*$c)*10);
$energie_diff = ceil(exp(0.28*$c)*10) - ceil(exp(0.28*$nivo)*10);
$return[] = array($c, $production, $energie, $production_diff, $energie_diff);
}
}
elseif ($ibat == 2)
{
for ($c; $c < $a; $c++)
{
$production = ceil(pow(1.1, $c) * 21 * ($c + 0.7));
$production_diff = ceil(pow(1.1, $c) * 21 * ($c + 0.7)) - ceil(pow(1.1, $nivo) * 21 * ($nivo + 0.7));
$energie = ceil(exp(0.2849*$c)*13);
$energie_diff = ceil(exp(0.2849*$c)*13) - ceil(exp(0.2849*$nivo)*13);
$return[] = array($c, $production, $energie, $production_diff, $energie_diff);
}
}
elseif ($ibat == 3)
{
for ($c; $c < $a; $c++)
{
$production = ceil(exp(0.28*$c)*22);
$production_diff = ceil(exp(0.28*$c)*22) - ceil(exp(0.28*$nivo)*22);
$return[] = array($c, $production, 0, $production_diff, 0);
}
}
elseif ($ibat == 4) {
for ($c; $c < $a; $c++)
{
$production = ceil(exp(0.297*$c)*25);
$production_diff = ceil(exp(0.297*$c)*25) - ceil(exp(0.297*$nivo)*25);
$energie = ceil(pow(1.34,($c-1)) * 9);
$energie_diff = ceil(pow(1.34,($c-1)) * 9) - ceil(pow(1.34,($nivo-1)) * 9);
$return[] = array($c, $production, $energie, $production_diff, $energie_diff);
}
}
else
return false;
return $return;
}
if (empty($_GET['r']) || ($_GET['r'] != 'humain' && $_GET['r'] != 'covenant'))
$_GET['r'] = $planete->race;
$race = $_GET['r'];
$template->assign('raceAff', $race);
if (isset($_GET['t']) && is_numeric($_GET['t']) && !empty($LANG[$race]["technologies"]["noms_sing"][$_GET['b']][$_GET['t']]))
{
$template->assign('type', 'technologies');
$b = intval($_GET['b']);
$t = intval($_GET['t']);
$template->assign('branche', $b);
$template->assign('id', $t);
$template->assign('ressourcesNext', array(Donnee::creditsTechnologie($b, $t, $planete), Donnee::tempsTechnologie($b, $t, $planete)));
$template->assign('etat', Donnee::print_neededTechnologie($b, $t, $planete, $race));
}
elseif (isset($_GET['b']) && is_numeric($_GET['b']) && !empty($LANG[$race]["batiments"]["noms_sing"][$_GET['b']]))
{
$template->assign('type', 'batiments');
$t = intval($_GET['b']);
$template->assign('id', $t);
$template->assign('image', $batimeni[$t]);
$template->assign('tableau_prod', tableauProd($t, $planete->batiments[$t]));
$n = $planete->batiments[$t] + 1;
$template->assign('ressourcesNext', array(Donnee::metalBatiments($t, $n, $planete), Donnee::cristalBatiments($t, $n, $planete), Donnee::hydrogeneBatiments($t, $n, $planete), Donnee::tempsBatiments($t, $n, $planete)));
$template->assign('etat', Donnee::print_neededBatiments($t, $planete, $race));
}
elseif (isset($_GET['v']) && is_numeric($_GET['v']) && !empty($LANG[$race]["vaisseaux"]["noms_sing"][$_GET['v']]))
{
$template->assign('type', 'vaisseaux');
$t = intval($_GET['v']);
$template->assign('id', $t);
$template->assign('ressourcesNext', array(Donnee::metalVaisseaux($t, $planete), Donnee::cristalVaisseaux($t, $planete), Donnee::hydrogeneVaisseaux($t, $planete), Donnee::tempsVaisseaux($t, $planete)));
$template->assign('etat', Donnee::print_neededVaisseaux($t, $planete, $race));
$template->assign('caract', array($nomvais_at[$t], $nomvais_bc[$t], $nomvais_pv[$t], $nomvais_rs[$t]));
}
elseif (isset($_GET['d']) && is_numeric($_GET['d']) && !empty($LANG[$race]["terrestre"]["noms_sing"][$_GET['v']]))
{
$template->assign('type', 'terrestre');
$t = $_GET['d'];
$template->assign('id', $t);
$template->assign('ressourcesNext', array(Donnee::metalTerrestre($t, $planete), Donnee::cristalTerrestre($t, $planete), Donnee::hydrogeneTerrestre($t, $planete), Donnee::tempsTerrestre($t, $planete)));
$template->assign('etat', Donnee::print_neededTerrestre($t, $planete, $race));
if ($t-8 >= 0) {
$t -= 8;
$template->assign('caract', array($defense_at[$t], $defense_bc[$t], $defense_pv[$t]));
}
}
elseif (isset($_GET['c']) && is_numeric($_GET['c']) && !empty($LANG[$race]["caserne"]["noms_sing"][$_GET['c']]))
{
$template->assign('type', 'caserne');
$t = $_GET['c'];
$template->assign('id', $t);
$template->assign('ressourcesNext', array(Donnee::metalCaserne($t, $planete), Donnee::cristalCaserne($t, $planete), Donnee::hydrogeneCaserne($t, $planete), Donnee::tempsCaserne($t, $planete)));
$template->assign('etat', Donnee::print_neededCaserne($t, $planete, $race));
$template->assign('caract', array('!!', '!!', '!!'));
}
else {
header('Location: ?p=accueil');
}
?>

View file

@ -0,0 +1,371 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$titre = 'Flottes';
$page = 'flotte'; //Définition d'un nom de page inexistant, mais permet de passer le nom de l'onglet dans une erreur
include_once("game/Class/class.flotte.php");
//Création de flotte : envoi final
if (!empty($_POST['cds']))
{
//Récupération des informations envoyées
$end_galaxie = floor(gpc('amas', 'post'));
$end_ss = floor(gpc('ss', 'post'));
$end_pos = floor(gpc('pos', 'post'));
$mission = floor(gpc('mission', 'post'));
$EBmetal = floor(str_replace(' ', '', gpc('metal', 'post')));
$EBcristal = floor(str_replace(' ', '', gpc('cristal', 'post')));
$EBhydrogene = floor(str_replace(' ', '', gpc('hydrogene', 'post')));
$vitesse = floor(gpc('vitesse', 'post'))/100;
$bdd->reconnexion();
$resultat = $bdd->unique_query("SELECT COUNT(id) AS cnt FROM $table_flottes WHERE id_user = $id_user;");
$bdd->deconnexion();
$nbr = $resultat['cnt'];
//Vérification du code anti-bots
/*if (!isset($SESS->values['flcds']) || gpc('cds', 'post') != $SESS->values['flcds']) erreur('Impossible d\'authentifier l\'envoie de la flotte.<br />Si le problème perciste, <a href="mailto:technique@halo-battle.s-fr.com">contactez un administrateur</a>.', "red", '?p=flotte', 4000);
//Si la mission est d'attaquer, on vérifie que les attaques ne soient pas désactivées
else*/if ($mission == 3 && !ATTAQUES)
erreur('Les attaques sont désactivées pour le moment. Pour plus d\'informations, <a href="'.$VAR["link"]["forum"].'">consultez le forum</a>.', "red", '?p=flotte', 5000);
//Vérification que la destination ne soit pas en dehors de la galaxie
elseif ($end_galaxie > $VAR['nb_amas'] || $end_ss > $VAR['nb_systeme'] || $end_pos > $VAR['nb_planete'] || $end_galaxie < 0 || $end_ss < 1 || $end_pos < 1 || ($end_galaxie < 1 && $SESS->level < 6))
erreur('La destination de la flotte n\'est pas correcte.', "red", '?p=flotte');
//Vérification que le nombre de slots ne soit pas dépassé
elseif ($nbr > ceil(count($queryPlanetes)/2 + 1))
erreur('Vous n\'avez pas assez de slots disponibles.', "red", '?p=flotte');
//On vérifie la mission
elseif ($mission < 0 || $mission > 5)
erreur('Mission incorrecte !', "red", '?p=flotte');
//On vérifie la mission, si elle est d'espionner, il faut qu'il y ait des sondes
elseif ($mission == 5 && $SESS->values['vais'][6] <= 0 && $SESS->values['vais'][13] <= 0)
erreur('Vous ne pouvez pas espionner sans sonde d\'espionnage !', "red", '?p=flotte');
//On vérifie la mission, si elle est de coloniser, il faut qu'il y ait des vaisseaux de colonisation
elseif ($mission == 2 && $SESS->values['vais'][2] <= 0)
erreur('Vous ne pouvez pas coloniser sans vaisseau de colonisation !', "red", '?p=flotte');
//On vérifie la mission, si elle est de recycler, il faut qu'il y ait des reclycleurs
elseif ($mission == 4 && $SESS->values['vais'][3] <= 0)
erreur('Vous ne pouvez pas recycler sans recycleur !', "red", '?p=flotte');
//On vérifie que l'on possède assez de ressources
elseif ((!empty($EBmetal) && !$EBmetal > $planete->metal) || (!empty($EBcristal) && !$EBcristal > $planete->cristal) || (!empty($EBhydrogene) && !$EBhydrogene > $planete->hydrogene))
erreur('Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.', "red", '?p=flotte');
//On vérifie que l'on n'envoie pas des ressources négatives
elseif ((!empty($EBmetal) && $EBmetal < 0) || (!empty($EBcristal) && $EBcristal < 0) || (!empty($EBhydrogene) && $EBhydrogene < 0))
erreur('Vous avez spécifié des valeurs de ressources à embarquer incorrectes !', "red", '?p=flotte', 4000);
//On vérifie la vitesse du vaisseau
elseif (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 1)
erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte');
else
{
//On vérifie qu'il n'y ait pas une interaction entre deux multi-comptes
$cnt = count($multi);
if ($cnt > 1 && $mission == 1)
{
for($i = 0; $i < $cnt; $i++)
{
if ($multi[$i]['id_util'] == $resultat['id_user'])
erreur('Vous ne pouvez pas avoir d\'interaction avec ce joueur pour raison de multi-compte (voir page d\'accueil).');
}
}
$bdd->reconnexion();
$resultat = $bdd->unique_query("SELECT id, id_user, debris_met, debris_cri FROM $table_planete WHERE galaxie = $end_galaxie AND ss = $end_ss AND position = $end_pos;");
$bdd->deconnexion();
//Si la mission est d'attaquer, on vérifie que le joueur cible ne soit pas ne mode vacances ou qu'il soit tout jeune
if ($mission == 3)
{
//Récupération de l'ID du joueur cible
$bdd->reconnexion();
$resultatu = $bdd->unique_query("SELECT mv, time_inscription FROM $table_user WHERE id = ".$resultat['id_user'].";");
$bdd->deconnexion();
if ($resultatu['mv'] > 0)
erreur('Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.', "red", '?p=flotte', 3000); //TODO Mettre le numéro du mode vacances et non > 0 !!!
elseif ($resultatu['time_inscription'] + 604800 > time())
erreur('Le joueur que vous tentez d\'attaquer s\'est inscrit récemment, laissez-lui le temps de se préparer au combat !', "red", '?p=flotte', 3000);
elseif (!$resultat)
erreur('La planète que vous tentez d\'attaquer est inhabitée.', "red", '?p=flotte');
elseif ($resultat['id_user'] == $id_user)
erreur('La planète que vous tentez d\'attaquer vous appartient.', "red", '?p=flotte');
}
//TODO Autoriser l'espionnage sur les planètes inhabités
elseif ($mission == 5 && !$resultat)
erreur('Impossible d\'espionner des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000);
elseif ($mission == 1 && !$resultat)
erreur('Impossible de transporter des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000);
elseif ($mission == 2 && $resultat)
erreur('La planète que vous voulez coloniser est déjà habitée.', "red", '?p=flotte', 3000);
elseif ($mission == 0 && $resultat['id_user'] != $id_user)
erreur('La planète sur laquelle vous désirez stationner ne vous appartient pas.', "red", '?p=flotte', 3000);
elseif ($mission == 5 && $resultat['id_user'] == $id_user)
erreur('La planète que vous désirez espionner vous appartient !', "red", '?p=flotte', 3000);
elseif ($mission == 4 && ($resultat['debris_met'] <= 0 || $resultat['debris_cri'] <= 0) && empty($SESS->values['forceFlotte']))
{
$SESS->values['forceFlotte'] = true;
$SESS->put();
erreur('Il n\'y a rien à recycler sur la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'].<br />Vous pouvez forcer le lancement de la flotte en rechargeant cette page.', "orange");
}
if (!isset($SESS->values['vais']) || !is_array($SESS->values['vais']))
erreur('Erreur lors de la création de la flotte, absence de données des vaisseaux !', "red", '?p=flotte');
else {
//Envoie de la flotte
$flotte = new flotte();
$sauv = $planete->vaisseaux; //Sauvegarde du contenu de la flotte avant lancement
$nbVais = 0;
foreach ($SESS->values['vais'] as $key => $vaisseau)
{
if ($vaisseau > 0)
{
if ($vaisseau > $planete->vaisseaux[$key])
erreur('Vous avez envoyé plus de vaisseaux que vous n\'en posséder sur cette planète.', "red", '?p=flotte');
else
$nbVais += $vaisseau;
}
elseif ($vaisseau < 0) $vaisseau = 0;
$flotte->vaisseaux[$key] = $vaisseau;
$sauv[$key] -= $vaisseau;
}
if ($nbVais <= 0)
erreur('Vous devez envoyer au moins un vaisseau pour former une flotte !', "red", '?p=flotte');
elseif (!isset($SESS->values['flnbvais']) || $SESS->values['flnbvais'] != $nbVais)
erreur('Une erreur est survenue lors de la création de la flotte :<br /><br /><i>Calcul du nombre de vaisseaux incorrect !</i><br /><br />Si le problème perciste, <a href="mailto:'.$VAR['mail_admin'].'">contactez un administrateur</a>.', "red", '?p=flotte', 4500);
$flotte->nom = gpc('nomflotte', 'post');
$flotte->mission = $mission;
$flotte->start_planete = $planete;
$flotte->start_time = time();
//On traite le cas des planètes qui n'existent pas (dans le cas de la mission colonisation)
if ($mission == 2)
{
$flotte->end_type = 1;
$flotte->end_planete = $end_galaxie.':'.$end_ss.':'.$end_pos;
}
else
{
$flotte->end_type = 0;
$flotte->end_planete = $resultat['id'];
}
$calc = $flotte->calc_deplacement($planete->galaxie, $planete->ss, $planete->position, $end_galaxie, $end_ss, $end_pos, $vitesse, false, true);
$flotte->end_time = $calc[0];
$conso = $calc[1];
//On double la consomation si on fait un aller-retour
if ($mission == 1 || $mission == 2 || $mission == 4 || $mission == 5)
$conso *= 2;
//On vérifie qu'il y a assez de place dans les cales des vaisseaux avant l'envoie ainsi que de ressources sur la planète
$flotte->calculer();
if ($flotte->contenuMax < $EBmetal + $EBcristal + $EBhydrogene + $conso)
erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent. '.$flotte->contenuMax, "red", '?p=flotte', 3500);
elseif ($planete->metal < $EBmetal || $planete->cristal < $EBcristal || $planete->hydrogene < $EBhydrogene + $conso)
erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500);
else
{
$flotte->contenu = array($EBmetal, $EBcristal, $EBhydrogene);
$flotte->modifFlotte = "INSERT";
//On actualise la planète
$planete->metal -= $EBmetal;
$planete->cristal -= $EBcristal;
$planete->hydrogene -= floor($EBhydrogene + $conso);
$planete->vaisseaux = $sauv;
$planete->addModif("vaisseaux");
unset($flotte);
unset($SESS->values['vais']);
$SESS->put();
erreur('Votre flotte a été envoyée avec succès.', "green", '?p=flotte', 4000);
}
}
}
}
//Création de flotte : page 2
elseif (!empty($_POST['envoie']))
{
$nombreVaisseau = 0;
foreach ($planete->vaisseaux as $key => $vaisseau){
$v = gpc('v'.$key, 'post');
if (!is_numeric($v))
$v = 0;
else
$v = (int)abs($v);
//On vérifie qu'il y a suffisamment de vaisseaux sur la planète
if ($vaisseau < $v)
erreur('Il ne vous reste plus assez de vaisseaux !', "red", '?p=flotte');
$SESS->values['vais'][$key] = $v;
$nombreVaisseau += $v;
}
//On vérifie que l'utilisateur a bien envoyé plus d'un vaisseau
if ($nombreVaisseau <= 0) erreur('Vous devez envoyer au moins un vaisseau.', "red", '?p=flotte');
//On enregistre les paramètres en session
$SESS->values['flnbvais'] = $nombreVaisseau;
$SESS->values['forceFlotte'] = false;
//Génération de la liste de mission possible avec les vaisseaux de la flotte
$missions = array("Stationner", "Transporter");
if ($SESS->values['vais'][2]) $missions[2] = "Coloniser";
if ($planete->technologies[7]& 16) $missions[3] = "Attaquer";
if ($SESS->values['vais'][3]) $missions[4] = "Recycler";
if ($SESS->values['vais'][6] || $SESS->values['vais'][13]) $missions[5] = "Espionner";
$template->assign('missions', $missions);
//On enregistre les modification de la session
$SESS->values['fltime'] = time();
$SESS->put();
$page = 'flotte2';
$template->assign('scripth', '<script src="js/prototype.js" type="text/javascript"></script>');
$template->assign('script', '<script type="text/javascript">document.getElementById(\'nom\').focus();</script><script src="js/flotte.js" type="text/javascript"></script>');
//Récupération des destinations favorites et des colonies
$favoris = array();
include_once("game/Class/class.tinyplanete.php");
foreach ($planete->destinationsFavoris as $fav)
{
$fav_Planete = new TinyPlanete($fav);
if (!empty($fav_Planete->nom_planete)) $favoris[$fav_Planete->id] = $fav_Planete->nom_planete;
else $favoris[$fav_Planete->id] = '['.$fav_Planete->galaxie.':'.$fav_Planete->ss.':'.$fav_Planete->position.']';
}
$favorisC = array();
foreach ($queryPlanetes as $fav)
{
if (!empty($fav['nom_planete'])) $favorisC[$fav['id']] = $fav['nom_planete'];
else $favorisC[$fav['id']] = '['.$fav['galaxie'].':'.$fav['ss'].':'.$fav['position'].']';
}
$template->assign('favoris', $favoris);
$template->assign('favorisColonies', $favorisC);
}
//Affichage du détail d'une flotte
elseif (!empty($_GET['n']))
{
$idN = ceil(gpc('n'));
$flotteN = new Flotte($idN, false);
$flotteN->load_planete();
if ($flotteN->id_flotte == 0 || $flotteN->start_planete->id_user != $planete->id_user)
erreur('Impossible de trouver cette flotte !', "red", '?p=flotte', 1500);
else
{
//Changement du nom de la flotte
if (!empty($_POST['nomflotte']))
{
$nouvNom = gpc('nomflotte', 'post');
$flotteN->nom = $nouvNom;
$flotteN->addModifFlotte("nom");
redirection("?p=flotte&n=".$idN);
}
//Annulation de la mission
if (isset($_GET['a']) && isset($SESS->values['ret_fleet']) && $_GET['a'] == $SESS->values['ret_fleet'])
{
//Calcul du temps passé depuis le lancement de la flotte
$tpsDD = time() - $flotteN->start_time;
if ($flotteN->mission == '6')
erreur('Votre flotte est déjà en train de revenir !', 'red', '?p=flotte&n='.$idN, 1500);
elseif ($flotteN->end_time > $tpsDD)
{
$bdd->query("UPDATE $table_flottes SET mission = '6', effectue = '1', end_time = '$tpsDD', end_galaxie = start_galaxie, end_ss = start_ss, end_position = start_position WHERE id_user = '$id_user' AND id = '$idN';");
redirection("?p=flotte&n=".$idN);
}
else
erreur('Impossible d\'annuler la mission, elle a déjà commencée.', "red", '?p=flotte&n='.$idN, 1500);
}
$SESS->values['ret_fleet'] = md5('HB.fleet_'.rand().'☺ß☻');
$SESS->put();
$template->assign('ret_fleet', $SESS->values['ret_fleet']);
$template->assign('flotte', $flotteN);
$page = 'flotten';
}
}
//Affichage de la page générale
else
{
//Demande de mise à jour des tactiques par défaut
$attaque = gpc('attaque', 'post');
$defense = gpc('defense', 'post');
if (is_numeric($attaque) && is_numeric($defense))
{
$chang = false;
if (($attaque != $planete->combatAT_tactique) && (($attaque == 1 && $planete->technologies[3] & 4096) || ($attaque == 2 && $planete->technologies[3] & 8192) || ($attaque == 3 && $planete->technologies[3] & 16384) || $attaque == 0))
{
$planete->combatAT_tactique = $attaque;
$planete->addModifUser('combatAT_tactique');
$chang = true;
}
if (($defense != $planete->combatDE_tactique) && (($defense == 1 && $planete->technologies[3] & 4096) || ($defense == 2 && $planete->technologies[3] & 8192) || ($defense == 3 && $planete->technologies[3] & 16384) || $defense == 0))
{
$planete->combatDE_tactique = $defense;
$planete->addModifUser('combatDE_tactique');
$chang = true;
}
if ($chang)
erreur('Tactiques mises à jour avec succès.', 'green', '?p=flotte', 1100);
}
//Affichage des flottes en cours dans la galaxie
$bdd->reconnexion();
$flottes = $bdd->query("SELECT * FROM $table_flottes WHERE id_user = $id_user;");
$bdd->deconnexion();
$nbr = $bdd->num_rows;
//Extraction des flottes en cours
$TEMP_flottesEC = array();
if ($flottes)
{
foreach ($flottes as $flotte)
{
if (($flotte['mission'] != 2 || $flotte['statut'] == '1') && $flotte['mission'] != 0)
{
$planete_retour = new Planete($flotte['start_planete']);
$retour = $planete_retour->galaxie.':'.$planete_retour->ss.':'.$planete_retour->position;
$Hretour = date('d/m H:i:s',$flotte['start_time']+2*$flotte['end_time']);
}
/*elseif ($flotte['mission'] == 1) {
$retour = $flotte['start_galaxie'].':'.$flotte['start_ss'].':'.$flotte['start_position'];
if (empty($flotte['ret_time'])) $Hretour = '-';
else $Hretour = date('d/m H:i:s',$flotte['ret_time']+$flotte['end_time']);
}*/
else
{
$retour = '-';
$Hretour = '-';
}
$end_planete = new Planete($flotte['end_planete']);
if ($flotte['mission'] == 2)
{
preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\]?$#', $flotte['end_planete'], $position);
$TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], ' ['.$position[1].':'.$position[2].':'.$position[3].']', date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour);
}
else
$TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], $end_planete->nom_planete.' ['.$end_planete->galaxie.':'.$end_planete->ss.':'.$end_planete->position.']', date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour);
}
}
$template->assign('flottesEC', $TEMP_flottesEC);
//Calcul du nombre de slot disponible et vérouillage de l'envoie si besoin
if ($nbr <= ceil(count($queryPlanetes)/2 + 1)) $template->assign('action', '<input class="submit" name="envoie" type="submit" value="OK" />');
else $template->assign('action', '<span class="lack">Nombre de flottes maximum simultanées atteint</span>');
$template->assign('nbflotte', $nbr);
$template->assign('nbflottemax', ceil(count($queryPlanetes)/2 + 1));
$page = 'flotte1';
}
?>

View file

@ -0,0 +1,40 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'gestion';
$titre = 'Gestion';
//Demande de changement de politique
$politique = gpc('politique', 'post');
if (is_numeric($politique)) {
//On annule le changement politique si le dernier a eu lieu dans la semaine.
if ($planete->politique_lastchange > time() - 604800) erreur("La population de votre empire planètaire vient d'entrer dans une phase de révolution contre le changement de régime.<br />Pour ne pas perdre votre place au sommet de l'empire, le système politique n'a pas été changé.");
if (($planete->technologies[3] & 2048 && ($politique == 3 || $politique == 2 || $politique == 1) || $politique == 0) && $planete->politique != $politique) {
$planete->politique = $politique;
$planete->politique_lastchange = time();
$planete->addModifUser("politique");
$planete->addModifUser("politique_lastchange");
erreur("Le changement politique a bien été pris en compte par la population de vos différentes planètes.", "green");
}
elseif ($planete->politique == $politique) erreur("Ce système politique est actuellement en vigueur.", "orange");
else erreur("Impossible de choisir ce système politique !");
}
$template->assign('planeteEC', array(
'id' => $planete->id,
'metal' => $planete->metal,
'cristal' => $planete->cristal,
'hydrogene' => $planete->hydrogene,
'energie' => $planete->energie,
'population' => $planete->population,
)
);
$politiques = array('Anarchie');
if ($planete->technologies[3] & 2048) {
$politiques[] = 'Fascisme (Mouvement Frieden)';
$politiques[] = 'Communisme (Mouvement Koslovic)';
$politiques[] = 'Démocratie (Administration coloniale)';
}
$template->assign('politiques', $politiques);
$template->assign('moraldetails', $politiques);
?>

View file

@ -0,0 +1,57 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'laboratoire';
$titre = ucfirst($LANG[$race]['batiments']['noms_sing'][6]);
//Si l'on est pas sur la planète mère, on bloque le laboratoire
if ($queryPlanetes[0]['id'] != $planete->id)
erreur('Vous devez être sur votre planète mère pour faire des recherches dans le '.$LANG[$race]['batiments']['noms_sing'][6]);
//Vérification que le joueur ait bien un labo avant d'afficher la page
if ($planete->batiments[6] <= 0)
erreur('Vous devez d\'abord construire un '.$LANG[$race]['batiments']['noms_sing'][6], "red", '?p=batiments', 3500);
//Lancement d'une nouvelle recherche
if (isset($_GET['t']) && isset($_GET['f'])) {
//On vérifie que le laboratoire ne soit pas en construction
if($planete->file_bat->batiment_objectInFile(6))
erreur("Votre ".$LANG[$race]["batiments"]["noms_sing"][6]." est en travaux, vous ne pouvez pas faire de recherches pendant ce temps !");
$planete->file_tech->technologie_addObjet(intval(gpc('t')), intval(gpc('f')), $planete);
redirection($VAR['menu']['laboratoire']);
}
//Annulation d'une nouvelle recherche
if (isset($_GET['a'])) {
$planete->file_tech->technologie_delObjet(intval(gpc('a')), $planete);
redirection($VAR['menu']['laboratoire']);
}
$TEMP_liste = array();
foreach($planete->technologies as $i => $bits)
{
foreach($technoli[$i] as $j => $img)
{
if (!empty($LANG[$planete->race]['technologies']['noms_sing'][$i][$j]) && Donnee::neededTechnologie($i, $j, $planete) && ((int)$bits& pow(2, $j)) != pow(2, $j))
{
$nec = Donnee::donneeTechnologie($i, $j, "array" , $planete);
$TEMP_liste[] = array (
'id' => $i,
'tech' => $j,
'image' => $img,
'nec_metal' => $nec[0],
'nec_cristal' => $nec[1],
'nec_hydrogene' => $nec[2],
'nec_credits' => $nec[3],
'temps' => sec($nec[4]),
'enfile' => $planete->file_tech->technologie_objectInFile($i, $j)
);
}
}
}
$template->assign('recherches', $TEMP_liste);
$template->assign('file', $planete->file_tech->printFile($planete));
?>

View file

@ -0,0 +1,87 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$titre = 'Bourse';
$a = gpc('a');
$v = gpc('v');
if(is_numeric($a) && is_numeric(gpc('a'.$a, 'post'))){
$nb = gpc('a'.$a, 'post');
if ($nb <= 0 || $nb > 99999999) erreur("Nombre de ressources invalide !");
if ($a == 0) $var = 'metal';
elseif ($a == 1) $var = 'cristal';
elseif ($a == 2) $var = 'hydrogene';
$bdd->reconnexion();
$action = $bdd->unique_query("SELECT dispo, graph FROM $table_bourse_ressources WHERE id = $a;");
$bdd->deconnexion();
//On vérifie que la bourse ait suffisament de ressources à distribuer :
if ($action['dispo'] <= $nb) erreur("Il n'y a pas assez de ressources dans la galaxie pour que vous puissiez en acheter autant.");
//On vérifie qu'il reste suffisamment de place dans les silos du joueur
if ($planete->cap < $planete->$var + $nb) $nb = $planete->cap - $planete->$var;
if ($nb <= 0) erreur("Vous n'avez pas assez de place pour stocker ces ressources !");
$prix = ceil(pow($action['dispo'], -0.1) * $nb * 2.20)/10;
//On vérifie que le joueur ait assez de crédits pour acheter
if ($prix <= $planete->credits) {
$planete->credits -= $prix;
$planete->$var += $nb;
if (empty($action['graph'])) $action['graph'] = array();
else $action['graph'] = unserialize($action['graph']);
$action['graph'][date('w')] = $action['dispo'];
$graph = serialize($action['graph']);
$bdd->reconnexion();
$bdd->escape($graph);
$bdd->query("UPDATE $table_bourse_ressources SET dispo = dispo - $nb, graph = '$graph' WHERE id = $a;");
$bdd->deconnexion();
}
else erreur("Vous n'avez pas assez de crédits pour faire cet achat !");
}
elseif(is_numeric($v) && is_numeric(gpc('a'.$v, 'post'))){
$nb = gpc('a'.$v, 'post');
if ($nb <= 1000 || $nb > 99999999) erreur("Nombre de ressources invalide !<br />Vous pouvez vendre au minimum 1000 ressources !");
if ($v == 0) $var = 'metal';
elseif ($v == 1) $var = 'cristal';
elseif ($v == 2) $var = 'hydrogene';
//On vérifie que le joueur ait assez de ressources pour vendre, sinon, on ajuste à son maximum
if ($nb > $planete->$var) $nb = $planete->$var;
$bdd->reconnexion();
$action = $bdd->unique_query("SELECT dispo, graph FROM $table_bourse_ressources WHERE id = $v;");
$bdd->deconnexion();
$prix = ceil(pow($action['dispo'], -0.1) * $nb * 1.8)/10;
$planete->credits += $prix;
$planete->$var -= $nb;
if (empty($action['graph'])) $action['graph'] = array();
else $action['graph'] = unserialize($action['graph']);
$action['graph'][date('w')] = $action['dispo'];
$graph = serialize($action['graph']);
$bdd->reconnexion();
$bdd->escape($graph);
$bdd->query("UPDATE $table_bourse_ressources SET dispo = dispo + $nb, graph = '$graph' WHERE id = $v;");
$bdd->deconnexion();
}
$bdd->reconnexion();
$bourse = $bdd->query("SELECT id, dispo FROM $table_bourse_ressources;");
$bdd->deconnexion();
foreach($bourse as $key => $action){
$bourse[$key]['prix'] = pow($action['dispo'], -0.1) * 200;
$bourse[$key]['prixV'] = $bourse[$key]['prix'] * 0.9;
$bourse[$key]['prixA'] = $bourse[$key]['prix'] * 1.07;
}
$page = 'marche';
$template->assign('bourse', $bourse);
?>

View file

@ -0,0 +1,51 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'rename';
$titre = 'Renommer une planète';
if (isset($_POST['planete']))
{
$nouvNom = trim(str_replace('&nbsp;', ' ', $_POST['planete']));
if (empty($nouvNom))
erreur('Vous n\'avez indiqué aucun nom de planète.', "red", '?p=rename');
elseif (limite($nouvNom, 18))
erreur('Le nom de votre planète est trop long.', "red", '?p=rename');
elseif (ereg('staf', strtolower($nouvNom)) && $SESS->level < 4)
erreur('Vous devez faire parti du staff pour afficher le nom "staff" dans le nom de votre planète !', "red", '?p=rename');
else
{
$planete->nom_planete = $nouvNom;
$planete->addModif("nom_planete");
header('Location: ?p=accueil');
exit;
//erreur('Le nom de votre planète a été modifié avec succès.', "green", '?p=accueil');
}
}
elseif(isset($_GET['a']) && isset($_GET['i']) && $_GET['a'] == $SESS->values['abandon'] && !empty($idPlan) && $idPlan == $_GET['i'])
{
$galaxie = $planete->galaxie; $ss = $planete->ss; $position = $planete->position;
$bdd->reconnexion();
$bdd->query("DELETE FROM $table_planete WHERE id_user = $id_user AND id = $idPlan AND galaxie = $galaxie AND ss = $ss AND position = $position LIMIT 1;");
$bdd->query("DELETE FROM $table_flottes WHERE id_user = $id_user AND start_galaxie = $galaxie AND start_ss = $ss AND start_position = $position;");
$req = $bdd->unique_query("SELECT * FROM $table_planete WHERE id_user = $id_user LIMIT 1;");
$bdd->deconnexion();
$SESS->values['abandon'] = 0;
unset($SESS->values['abandon']);
$SESS->values['idPlan'] = $req['id'];
$SESS->put($planete->id_user);
erreur('Cette planète n\'est désormais plus sous votre contrôle.', "green", '?p=accueil');
}
$bdd->reconnexion();
$reqnb = $bdd->unique_query("SELECT COUNT(id) AS total FROM $table_planete WHERE id_user = $id_user;");
$bdd->deconnexion();
if ($reqnb['total'] > 1) $hashA = md5(rand(123456789,9876543210));
else $hashA = false;
$SESS->values['abandon'] = $hashA;
$SESS->put();
$template->assign('abandonH', $hashA);
?>

View file

@ -0,0 +1,27 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'ressources';
$titre = 'Ressources';
if (isset($_POST['coeff_metal']) && isset($_POST['coeff_cs'])) {
$planete->coeff_bat[0] = floor($_POST['coeff_metal'])/100;
if (isset($_POST['coeff_cristal'])) $planete->coeff_bat[1] = floor($_POST['coeff_cristal'])/100;
if (isset($_POST['coeff_hydrogene'])) $planete->coeff_bat[2] = floor($_POST['coeff_hydrogene'])/100;
$planete->coeff_bat[3] = floor($_POST['coeff_cs'])/100;
if (isset($_POST['coeff_ce'])) $planete->coeff_bat[4] = floor($_POST['coeff_ce'])/100;
$planete->addModif("coeff_bat");
redirection('?p=ressources');
}
$tablo = $planete->production(3600, true);
$template->assign('ressources_prod', $tablo[1]);
$template->assign('ressources_conso', $tablo[2]);
$template->assign('ressources_coef', $tablo[0]);
$template->assign('ressources_silo', array($planete->batiments[10], pow(2, $planete->batiments[10]) * 100000));
$template->assign('ressources_toto', array($tablo[1][2] - $tablo[2][3], '(0)'));
$template->assign('ressources_tab', array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100));
?>