Version 1.10c
|
|
@ -9,6 +9,20 @@
|
|||
*
|
||||
***************************************************************************/
|
||||
class File{
|
||||
var $file;
|
||||
|
||||
function File($file){
|
||||
$this->file = unserialize($file);
|
||||
}
|
||||
|
||||
function reajusteVacances($timeVac){
|
||||
if (isset($this->file[0])) {
|
||||
$this->file[0] += time() - $timeVac;
|
||||
}
|
||||
|
||||
return serialize($this->file);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ajoute $nombre objets $objet dans la file $file
|
||||
* @param int $file Nom de la file d'attente
|
||||
|
|
@ -20,10 +34,13 @@ class File{
|
|||
*/
|
||||
function file_addObjet($file, $objet, $nombre = 1){
|
||||
$planete = $this;
|
||||
|
||||
if ($nombre > 99999) erreur('Dépacement de capacité !<br />Vous ne pouvez pas mettre autant d\'unités en file d\'attente en une seule fois.');
|
||||
|
||||
switch($file){
|
||||
case "alli_batiments": $court = "abat"; $calc = "alli_batiment"; global ${$calc.'LIMIT'}; $exist = $this->file_exist($objet, "file_".$court); break;
|
||||
case "batiments": $court = "bat"; $calc = "batiment"; $exist = $this->file_exist($objet, "file_".$court); break;
|
||||
case "technologies": $court = "tech"; $calc = "technolo"; $exist = $this->file_exist($objet, "file_".$court); break;
|
||||
case "technologies": $court = "tech"; $calc = "technolo"; $exist = $this->file_exist($objet, $nombre); break;
|
||||
case "casernes": $court = "cas"; $calc = "casernen"; $exist = false; break;
|
||||
case "terrestres": $court = "ter"; $calc = "nomterrn"; $exist = false; break;
|
||||
case "vaisseaux": $court = "vais"; $calc = "nomvaisn"; $exist = false; break;
|
||||
|
|
@ -67,44 +84,52 @@ class File{
|
|||
if ($exist) return 2;
|
||||
|
||||
//Vérification que le nombre ne soit pas négatif
|
||||
if ($nombre < 0) return 5;
|
||||
if ($nombre < 0 && ($file != "batiments" || $nombre < -1)) return 5;
|
||||
|
||||
//Actualisation du temps s'il n'y a pas d'objet en file
|
||||
if (count($this->{"file_".$court}) < 2) $this->{"file_".$court}[0] = time();
|
||||
|
||||
|
||||
if ($file == "alli_batiments" || $file == "batiments") {
|
||||
eval(${$calc.'CALC'}[$objet][0]);
|
||||
eval(${$calc.'CALC'}[$objet][1]);
|
||||
eval(${$calc.'CALC'}[$objet][2]);
|
||||
$d = 0;
|
||||
}
|
||||
elseif ($file == "technologies") {
|
||||
$a = $b = $c = 0;
|
||||
$d = $technologiesCALC[$file_tech][$objet][2];
|
||||
if ($nombre > 0) {
|
||||
if ($file == "alli_batiments" || $file == "batiments") {
|
||||
eval(${$calc.'CALC'}[$objet][0]);
|
||||
eval(${$calc.'CALC'}[$objet][1]);
|
||||
eval(${$calc.'CALC'}[$objet][2]);
|
||||
$d = 0;
|
||||
}
|
||||
elseif ($file == "technologies") {
|
||||
$a = $b = $c = 0;
|
||||
$d = $technologiesCALC[$file_tech][$objet][2];
|
||||
}
|
||||
else {
|
||||
$a = ${$calc.'CALC'}[$objet][0];
|
||||
$b = ${$calc.'CALC'}[$objet][1];
|
||||
$c = ${$calc.'CALC'}[$objet][2];
|
||||
$d = 0;
|
||||
}
|
||||
|
||||
//On applique les bonus politiques aux temps et coûts
|
||||
if (isset($this->politique) && $this->politique == 1 && ($file == "casernes" || $file == "terrestres" || $file == "vaisseaux")) {
|
||||
$a *= 0.9;
|
||||
$b *= 0.9;
|
||||
$c *= 0.9;
|
||||
}
|
||||
|
||||
//Vérification du nombre maximum d'entraînement possible de cette unité sur cette planète
|
||||
if ($nombre > 1) {
|
||||
if ($a) $nombre = min(floor($this->metal/$a), $nombre);
|
||||
if ($b) $nombre = min(floor($this->cristal/$b), $nombre);
|
||||
if ($c) $nombre = min(floor($this->hydrogene/$c), $nombre);
|
||||
if ($d) $nombre = min(floor($this->credits/$d), $nombre);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$a = ${$calc.'CALC'}[$objet][0];
|
||||
$b = ${$calc.'CALC'}[$objet][1];
|
||||
$c = ${$calc.'CALC'}[$objet][2];
|
||||
$a = 0;
|
||||
$b = 0;
|
||||
$c = 0;
|
||||
$d = 0;
|
||||
}
|
||||
|
||||
//On applique les bonus politiques aux temps et coûts
|
||||
if (isset($this->politique) && $this->politique == 1 && ($file == "casernes" || $file == "terrestres" || $file == "vaisseaux")) {
|
||||
$a *= 0.9;
|
||||
$b *= 0.9;
|
||||
$c *= 0.9;
|
||||
}
|
||||
|
||||
//Vérification du nombre maximum d'entraînement possible de cette unité sur cette planète
|
||||
if ($nombre > 1) {
|
||||
if ($a) $nombre = min(floor($this->metal/$a), $nombre);
|
||||
if ($b) $nombre = min(floor($this->cristal/$b), $nombre);
|
||||
if ($c) $nombre = min(floor($this->hydrogene/$c), $nombre);
|
||||
if ($d) $nombre = min(floor($this->credits/$d), $nombre);
|
||||
}
|
||||
|
||||
//Vérification des ressources de la planète
|
||||
if ($this->metal < $a * $nombre) return 3;
|
||||
elseif ($this->cristal < $b * $nombre) return 3;
|
||||
|
|
@ -153,10 +178,10 @@ class File{
|
|||
|
||||
//On gère les files de type arbre
|
||||
if ($file == "technologies") {
|
||||
if (isset($this->{"file_".$court}[$objet])) {
|
||||
if (isset($this->{"file_".$court}[$objet+1])) {
|
||||
global ${$file.'CALC'};
|
||||
//On réinitialise le temps si c'est la première
|
||||
if ($objet == 1) $this->{"file_".$court}[0] = time();
|
||||
if ($objet == 0) $this->{"file_".$court}[0] = time();
|
||||
|
||||
$i = $objet;
|
||||
$filearbre = $this->{"file_".$court}[$objet+1][1];
|
||||
|
|
@ -190,37 +215,40 @@ class File{
|
|||
$n = $this->{$file}[$objet] + 1;
|
||||
}
|
||||
|
||||
|
||||
if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court;
|
||||
|
||||
if ($file == "batiments") {
|
||||
eval(${$calc.'CALC'}[$objet][0]);
|
||||
eval(${$calc.'CALC'}[$objet][1]);
|
||||
eval(${$calc.'CALC'}[$objet][2]);
|
||||
$d = 0;
|
||||
}
|
||||
elseif ($file == "technologies") {
|
||||
$a = $b = $c = 0;
|
||||
$d = $technologiesCALC[$filearbre][$objet][2];
|
||||
}
|
||||
else {
|
||||
$a = ${$calc.'CALC'}[$objet][0];
|
||||
$b = ${$calc.'CALC'}[$objet][1];
|
||||
$c = ${$calc.'CALC'}[$objet][2];
|
||||
$d = 0;
|
||||
}
|
||||
if ($nombre > 0) {
|
||||
if ($file == "batiments") {
|
||||
eval(${$calc.'CALC'}[$objet][0]);
|
||||
eval(${$calc.'CALC'}[$objet][1]);
|
||||
eval(${$calc.'CALC'}[$objet][2]);
|
||||
$d = 0;
|
||||
}
|
||||
elseif ($file == "technologies") {
|
||||
$a = $b = $c = 0;
|
||||
$d = $technologiesCALC[$filearbre][$objet][2];
|
||||
}
|
||||
else {
|
||||
$a = ${$calc.'CALC'}[$objet][0];
|
||||
$b = ${$calc.'CALC'}[$objet][1];
|
||||
$c = ${$calc.'CALC'}[$objet][2];
|
||||
$d = 0;
|
||||
}
|
||||
|
||||
//On applique les bonus politiques aux temps et coûts
|
||||
if (isset($this->politique) && $this->politique == 1 && ($file == "casernes" || $file == "terrestres" || $file == "vaisseaux")) {
|
||||
$a *= 0.9;
|
||||
$b *= 0.9;
|
||||
$c *= 0.9;
|
||||
}
|
||||
//On applique les bonus politiques aux temps et coûts
|
||||
if (isset($this->politique) && $this->politique == 1 && ($file == "casernes" || $file == "terrestres" || $file == "vaisseaux")) {
|
||||
$a *= 0.9;
|
||||
$b *= 0.9;
|
||||
$c *= 0.9;
|
||||
}
|
||||
|
||||
//Mise à jour des ressources de la planète en conséquence à la construction
|
||||
$this->metal += $a * $nombre;
|
||||
$this->cristal += $b * $nombre;
|
||||
$this->hydrogene += $c * $nombre;
|
||||
$this->credits += $d * $nombre;
|
||||
//Mise à jour des ressources de la planète en conséquence à la construction
|
||||
$this->metal += $a * $nombre;
|
||||
$this->cristal += $b * $nombre;
|
||||
$this->hydrogene += $c * $nombre;
|
||||
$this->credits += $d * $nombre;
|
||||
}
|
||||
|
||||
return $nombre;
|
||||
}
|
||||
|
|
@ -259,7 +287,6 @@ class File{
|
|||
* @access public
|
||||
*/
|
||||
function file_pret($file){
|
||||
$nanite = 0;
|
||||
$planete = $this;
|
||||
switch($file){
|
||||
case "alli_batiments": $court = "abat"; $calc = "alli_batiment"; $exist = $this->file_exist($objet, "file_".$court); break;
|
||||
|
|
@ -283,7 +310,7 @@ class File{
|
|||
if ($key == 0) continue;
|
||||
|
||||
//Récupération du temps de recherche
|
||||
$sec = $technologiesCALC[$bout[1]][$bout[0]][3] / (1 + $planete->batiments[6] * 0.005);
|
||||
$sec = $technologiesCALC[$bout[1]][$bout[0]][3] / (1 + $this->batiments[6] * 0.01);
|
||||
|
||||
//On applique les bonus politiques aux temps et coûts
|
||||
if (isset($this->politique) && $this->politique == 1 && ($file == "casernes" || $file == "terrestres" || $file == "vaisseaux")) {
|
||||
|
|
@ -296,9 +323,16 @@ class File{
|
|||
if ($sec < $tps) {
|
||||
$this->{$file}[$bout[1]] += $technologiesCALC[$bout[1]][$bout[0]][0];
|
||||
$this->{"file_".$court}[0] += $sec;
|
||||
unset($this->{"file_".$court}[$key]); //CAUSE DE PROBLEME POSSIBLE !
|
||||
$tps -= $sec;
|
||||
unset($this->{"file_".$court}[$key]);
|
||||
$this->{"file_".$court} = array_merge($this->{"file_".$court});
|
||||
|
||||
//La déouverte de technologie est bénéfique pour le moral de la population
|
||||
if ($this->moral) {
|
||||
if ($this->politique == 3) $this->setMoral(0.1); //Démocratie : Découvrir une nouvelle technologie a plus d'effet bénéfique sur le moral
|
||||
else $this->setMoral(0.05);
|
||||
}
|
||||
|
||||
if (!in_array($file, $this->modifUser)) $this->modifUser[] = $file;
|
||||
if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court;
|
||||
}
|
||||
|
|
@ -320,7 +354,31 @@ class File{
|
|||
//Accélération du temps de construction
|
||||
$sec = floor($sec/VITESSE);
|
||||
|
||||
if ($sec * $bout[1] < $tps) {
|
||||
if ($bout[1] < 0) {
|
||||
$n--;
|
||||
eval(${$calc.'CALC'}[$bout[0]][3]);
|
||||
$sec = floor($sec*0.6/VITESSE);
|
||||
|
||||
if ($sec < $tps) {
|
||||
eval(${$calc.'CALC'}[$bout[0]][0]);
|
||||
eval(${$calc.'CALC'}[$bout[0]][1]);
|
||||
eval(${$calc.'CALC'}[$bout[0]][2]);
|
||||
|
||||
//On reçoit 70% des ressources en bonus
|
||||
$this->metal += $a * 0.7;
|
||||
$this->cristal += $b * 0.7;
|
||||
$this->hydrogene += $c * 0.7;
|
||||
|
||||
$this->{$file}[$bout[0]]--;
|
||||
$this->{"file_".$court}[0] += $bout[1] * $sec;
|
||||
$tps -= $sec;
|
||||
unset($this->{"file_".$court}[$key]);
|
||||
|
||||
if (!in_array($file, $this->modif)) $this->modif[] = $file;
|
||||
if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court;
|
||||
}
|
||||
}
|
||||
elseif ($sec * $bout[1] < $tps && $bout[1] > 0) {
|
||||
//S'il s'agit d'un silo, on sauvegarde le temps pour utilisation par le script de production
|
||||
if ($file == "batiments" && $bout[0] == 10) $timestamp_lastSilo = $this->{"file_".$court}[0];
|
||||
if ($file == "batiments" && $bout[0] == 0) $timestamp_mineM = $this->{"file_".$court}[0];
|
||||
|
|
@ -334,7 +392,7 @@ class File{
|
|||
if (!in_array($file, $this->modif)) $this->modif[] = $file;
|
||||
if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court;
|
||||
}
|
||||
elseif ($sec < time() - $this->{"file_".$court}[0]) {
|
||||
elseif ($sec < time() - $this->{"file_".$court}[0] && $bout[1] > 0) {
|
||||
//TODO Trouver plus simple que la ligne en dessous
|
||||
for($j=0 ; $j * $sec < $tps ; $j++) {}
|
||||
$j--;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
*
|
||||
***************************************************************************/
|
||||
class Flotte{
|
||||
var $id_flotte,
|
||||
var $id_flotte = 0,
|
||||
$nom,
|
||||
$start_planete,
|
||||
$start_time,
|
||||
|
|
@ -17,6 +17,7 @@ class Flotte{
|
|||
$end_time,
|
||||
$ret_planete,
|
||||
$ret_time,
|
||||
$nb_vais,
|
||||
$vaisseaux = array(),
|
||||
$tactique = 0,
|
||||
$mission,
|
||||
|
|
@ -57,14 +58,13 @@ class Flotte{
|
|||
$this->mission = $flotte["mission"];
|
||||
$this->statut = $flotte["statut"];
|
||||
$this->last = $flotte["last"];
|
||||
$this->nb_vais = $flotte["nb_vais"];
|
||||
|
||||
foreach($nomvaisnVAR as $vais){
|
||||
$this->vaisseaux[] = $flotte[$vais];
|
||||
}
|
||||
|
||||
foreach($ressoVAR as $contenu){
|
||||
$this->contenu[] = $flotte[$contenu];
|
||||
}
|
||||
$this->contenu = array($flotte["contenu_metal"], $flotte["contenu_cristal"], $flotte["contenu_hydrogene"]);
|
||||
|
||||
$this->calculer();
|
||||
}
|
||||
|
|
@ -74,8 +74,11 @@ class Flotte{
|
|||
function calculer(){
|
||||
global $nomvais_rs;
|
||||
|
||||
$this->nb_vais = 0;
|
||||
|
||||
//Calcul de la capacité maximale d'embarquement de la flotte
|
||||
foreach($this->vaisseaux as $key => $vais){
|
||||
$this->nb_vais += $vais;
|
||||
$this->contenuMax += $nomvais_rs[$key] * $vais;
|
||||
}
|
||||
}
|
||||
|
|
@ -161,6 +164,9 @@ class Flotte{
|
|||
$conso[2] += $vais * $temps[2][$key] * $bonus / exp($vitesse/10);
|
||||
}
|
||||
|
||||
if (!isset($this->vaisseaux[4])) $this->vaisseaux[4] = 0;
|
||||
if (!isset($this->vaisseaux[5])) $this->vaisseaux[5] = 0;
|
||||
|
||||
//Si les chasseurs peuvent rentrer dans les cales des vaisseaux, on les enlèves
|
||||
if ($this->contenuMax - ($this->contenu[0] + $this->contenu[1] + $this->contenu[2]) - ($this->vaisseaux[4] * $nomvais_rs[4] + $this->vaisseaux[5] * $nomvais_rs[5]) >= ($this->vaisseaux[4] + $this->vaisseaux[5]) * 200) {
|
||||
$temps[2][4] = $temps[2][5] = $temps[1][4] = $temps[1][5] = $temps[0][4] = $temps[0][5] = 0;
|
||||
|
|
@ -242,38 +248,42 @@ class Flotte{
|
|||
$bdd->connexion();
|
||||
if ($this->modifFlotte === "DELETE") $bdd->query("DELETE FROM $table_flottes WHERE id = ".$this->id_flotte.";");
|
||||
else {
|
||||
for($i = 0; $i < $nb; $i++){
|
||||
if (!is_array($this->{$this->modifFlotte[$i]})) {
|
||||
$bdd->escape($this->{$this->modifFlotte[$i]});
|
||||
if (is_int($this->{$this->modifFlotte[$i]}) || is_float($this->{$this->modifFlotte[$i]})) $out[] .= $this->modifFlotte[$i]." = ".$this->{$this->modifFlotte[$i]};
|
||||
else $out[] .= $this->modifFlotte[$i]." = '".$this->{$this->modifFlotte[$i]}."'";
|
||||
if (empty($this->id_flotte)) {
|
||||
if ($this->modifFlotte === "INSERT") {
|
||||
$out1 = ''; $out2 = '';
|
||||
global $nomvaisnVAR;
|
||||
foreach ($this->vaisseaux as $key => $vais){
|
||||
$out1 .= ', '.$nomvaisnVAR[$key];
|
||||
$out2 .= ', '.$vais;
|
||||
}
|
||||
$sql = "INSERT INTO $table_flottes (id_user, mission, start_time, start_planete, end_time, end_planete, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, tactique, nom, nbvais$out1) VALUES ('".$this->start_planete->id_user."', '".$this->mission."', '".$this->start_time."', '".$this->start_planete->id."', '".$this->end_time."', '".$this->end_planete."', '".$this->vitesse."', '".$this->contenu[0]."', '".$this->contenu[1]."', '".$this->contenu[2]."', '".$this->tactique."', '".$this->nom.", ".$nb_vais."'$out2);";
|
||||
//var_dump($sql);
|
||||
$bdd->query($sql);
|
||||
}
|
||||
else {
|
||||
if ($this->modifFlotte[$i] == "contenu") $calc = "resso";
|
||||
elseif ($this->modifFlotte[$i] == "vaisseaux") $calc = "nomvaisn";
|
||||
}
|
||||
else {
|
||||
for($i = 0; $i < $nb; $i++){
|
||||
if (!is_array($this->{$this->modifFlotte[$i]})) {
|
||||
$bdd->escape($this->{$this->modifFlotte[$i]});
|
||||
if (is_int($this->{$this->modifFlotte[$i]}) || is_float($this->{$this->modifFlotte[$i]})) $out[] .= $this->modifFlotte[$i]." = ".$this->{$this->modifFlotte[$i]};
|
||||
else $out[] .= $this->modifFlotte[$i]." = '".$this->{$this->modifFlotte[$i]}."'";
|
||||
}
|
||||
else {
|
||||
if ($this->modifFlotte[$i] == "contenu") $calc = "resso";
|
||||
elseif ($this->modifFlotte[$i] == "vaisseaux") $calc = "nomvaisn";
|
||||
|
||||
if (!isset(${$calc.'VAR'})) global ${$calc.'VAR'};
|
||||
if (!isset(${$calc.'VAR'})) global ${$calc.'VAR'};
|
||||
|
||||
$nombr = count(${$calc.'VAR'});
|
||||
for($j = 0; $j < $nombr; $j++){
|
||||
$bdd->escape($this->{$this->modifFlotte[$i]}[$j]);
|
||||
$out[] = ${$calc.'VAR'}[$j]." = ".$this->{$this->modifFlotte[$i]}[$j];
|
||||
$nombr = count(${$calc.'VAR'});
|
||||
for($j = 0; $j < $nombr; $j++){
|
||||
$bdd->escape($this->{$this->modifFlotte[$i]}[$j]);
|
||||
$out[] = ${$calc.'VAR'}[$j]." = ".$this->{$this->modifFlotte[$i]}[$j];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!empty($out)) $bdd->query("UPDATE $table_flottes SET ".implode(', ', $out).", last = 0 WHERE id = ".$this->id_flotte.";");
|
||||
else $bdd->query("UPDATE $table_flottes SET last = 0 WHERE id = ".$this->id_flotte.";");
|
||||
}
|
||||
if (empty($id_flotte)) {
|
||||
$out1 = ''; $out2 = '';
|
||||
global $nomvaisnVAR;
|
||||
foreach ($this->vaisseaux as $key => $vais){
|
||||
$out1 .= ', '.${$calc.'VAR'}[$key];
|
||||
$out2 .= ', '.$vais;
|
||||
}
|
||||
$sql = "INSERT INTO $table_flottes (id_user, mission, start_time, start_planete, end_time, end_planete, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, tactique, nom$out1) VALUES ('".$start_planete->id_user."', '".$this->mission."', '".$this->start_time."', '".$start_planete->id."', '".$this->end_time."', '".$this->end_planete."', '".$this->vitesse."', '".$this->contenu[0]."', '".$this->contenu[1]."', '".$this->contenu[2]."', '".$this->tactique."', '".$this->nom."'$out2);";
|
||||
var_dump($sql);
|
||||
//$bdd->query($sql);
|
||||
}
|
||||
elseif (!empty($out)) $bdd->query("UPDATE $table_flottes SET ".implode(', ', $out).", last = 0 WHERE id = ".$this->id_flotte.";");
|
||||
else $bdd->query("UPDATE $table_flottes SET last = 0 WHERE id = ".$this->id_flotte.";");
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ class Planete extends User{
|
|||
$cristal,
|
||||
$hydrogene,
|
||||
$population,
|
||||
$moral,
|
||||
$alert_ressources = array(false, false, false),
|
||||
$timestamp,
|
||||
$timestamp_lastSilo,
|
||||
|
|
@ -51,7 +52,7 @@ class Planete extends User{
|
|||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function Planete($id = 0){
|
||||
function Planete($id = 0, $first = false){
|
||||
if (!empty($id)) {
|
||||
global $var___db, $config, $table_planete;
|
||||
global $batimentVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR;
|
||||
|
|
@ -77,6 +78,7 @@ class Planete extends User{
|
|||
$this->cristal = $plan["cristal"];
|
||||
$this->hydrogene = $plan["hydrogene"];
|
||||
$this->population = $plan["population"];
|
||||
$this->moral = $plan["moral"];
|
||||
$this->timestamp = $plan["timestamp"];
|
||||
|
||||
foreach($batimentVAR as $bat){
|
||||
|
|
@ -109,7 +111,7 @@ class Planete extends User{
|
|||
if (!empty($plan["file_vais"])) $this->file_vais = unserialize($plan["file_vais"]);
|
||||
else $this->file_vais = array();
|
||||
|
||||
$this->actualiser();
|
||||
$this->actualiser(true, $first);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -120,7 +122,7 @@ class Planete extends User{
|
|||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function actualiser($actuFile = true){
|
||||
function actualiser($actuFile = true, $first = false){
|
||||
//Actualisation des files d'attentes
|
||||
if ($actuFile) {
|
||||
$this->file_pret("batiments");
|
||||
|
|
@ -177,11 +179,24 @@ class Planete extends User{
|
|||
}
|
||||
}
|
||||
|
||||
//Vérification de la date pour faire les actions journalières
|
||||
if (date('zya') != date('zya', $this->timestamp)) {
|
||||
//On évalue le moral
|
||||
$this->evalMoral($first);
|
||||
|
||||
//Si la population est à 0, on ajoute des habitants
|
||||
if ($this->population <= 0) $this->population = 1000;
|
||||
|
||||
$this->population = $this->population * 1.0153^max(1, floor((time()-$this->timestamp)/86400));
|
||||
$popPlus = $this->population * 0.0153^max(1, floor((time()-$this->timestamp)/86400));
|
||||
|
||||
if ($this->politique == 2) $popPlus *= 1.1; //Communisme : 10 % de population qui arrive en plus.
|
||||
elseif ($this->politique == 3) $popPlus *= 1.05; //Démocratie : 5 % de population qui arrive en plus.
|
||||
|
||||
if ($this->technologies[2] & 4) $popPlus *= 1.15;
|
||||
elseif ($this->technologies[2] & 2) $popPlus *= 1.10;
|
||||
elseif ($this->technologies[2] & 1) $popPlus *= 1.05;
|
||||
|
||||
$this->population += $popPlus;
|
||||
$this->credits += $this->population/100*exp(0.01)*25;
|
||||
$this->modif[] = 'population';
|
||||
}
|
||||
|
|
@ -196,6 +211,75 @@ class Planete extends User{
|
|||
}
|
||||
}
|
||||
|
||||
function setMoral($difference){
|
||||
$this->moral += $difference;
|
||||
|
||||
//Ajustement du moral
|
||||
if ($this->moral > 1) $this->moral = 1;
|
||||
elseif ($this->moral < 0) $this->moral = 0;
|
||||
|
||||
if (!in_array("moral", $this->modif)) $this->modif[] = "moral";
|
||||
}
|
||||
|
||||
function evalMoral($first = false){
|
||||
//Cas de sous-production
|
||||
if (($this->coeff_bat[0] + $this->coeff_bat[1] + $this->coeff_bat[2])/3 < 0.9) {
|
||||
if ($this->politique == 2) $this->moral -= 0.10; //Communisme : démoralise 2x plus
|
||||
else $this->moral -= 0.05;
|
||||
if (!in_array('moral', $this->modif)) $this->modif[] = 'moral';
|
||||
}
|
||||
|
||||
//Surpopulation
|
||||
|
||||
//Surlogement
|
||||
|
||||
//Ajustement du moral en fonction de la politique
|
||||
if ($this->politique == 1 && $this->moral > 0.7) $this->moral = 0.7;
|
||||
|
||||
//Isolement si besoin
|
||||
if ($this->moral < 0.1) {
|
||||
//On vérifie qu'il ne s'agit pas de la planète mère
|
||||
global $bdd, $table_planete;
|
||||
$bdd->connexion();
|
||||
$res = $bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = ".$this->id_user." ORDER BY id LIMIT 1;");
|
||||
$bdd->deconnexion();
|
||||
if ($res['id'] != $this->id) {
|
||||
if ($this->moral <= 0.01 || $this->moral <= 0.04) {
|
||||
if ($this->moral <= 0.01) $rand = rand(0,4);
|
||||
else $rand = rand(0,20);
|
||||
//Perte de la planète
|
||||
if ($rand == 1) {
|
||||
$bdd->connexion();
|
||||
$bdd->query("DELETE FROM $table_planete WHERE id = ".$this->id.";");
|
||||
$bdd->deconnexion();
|
||||
send_mp($this->id_user, 'Perte de contrôle de '.$this->nom_planete, "Suite à une démoralisation percistante de la population sur la planète ".$this->nom_planete." [".$this->galaxie.":".$this->ss.":".$this->position."], la population a renversé votre gouvernement en tuant tous vos gouverneurs. Vous perdez donc définitivement le contrôle de cette planète.");
|
||||
if (!$first) {
|
||||
$sess->values['idPlan'] = $res['id'];
|
||||
erreur('La population de cette planète est tellement démoralisée qu\'elle s\'est révolté contre vous. Vous ne contrôlez plus cette planète.');
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ($this->moral <= 0.06 || $this->moral <= 0.1) {
|
||||
if ($this->moral <= 0.06) $rand = rand(0,2);
|
||||
else $rand = rand(0,10);
|
||||
//Perte de contrôle temporaire
|
||||
if ($rand == 1) {
|
||||
$debut = time() - rand(0, 3600)*4;
|
||||
$fin = $debut + 86400;
|
||||
$this->isolement = array($debut, $fin);
|
||||
if (!in_array('isolement', $this->modif)) $this->modif[] = 'isolement';
|
||||
|
||||
send_mp($this->id_user, 'Perte de contrôle temporaire de '.$this->nom_planete, "Suite à une démoralisation percistante de la population sur la planète ".$this->nom_planete." [".$this->galaxie.":".$this->ss.":".$this->position."], la population a pris le contrôle de votre planète. Vous perdez le contrôle de cette planète le temps que vos gouverneurs reprennent le pouvoir.");
|
||||
if (!$first) {
|
||||
$sess->values['idPlan'] = $res['id'];
|
||||
erreur('La population de cette planète est tellement démoralisée qu\'elle s\'est révoltée contre vous. Vous perdez temporairement le contrôle de cette planète.');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie si la planète est isolée ou non
|
||||
*
|
||||
|
|
@ -205,8 +289,8 @@ class Planete extends User{
|
|||
function isolement(){
|
||||
$return = false;
|
||||
|
||||
if (time() > $isolement[0]) {
|
||||
if (!isset($isolement[1]) || (time() > $isolement[1] && date('dmY') != date('dmY', $isolement[0]))) {
|
||||
if (time() > $this->isolement[0]) {
|
||||
if (!isset($this->isolement[1]) || (time() > $this->isolement[1] && date('dmY') != date('dmY', $this->isolement[0]))) {
|
||||
$nbPlan = count($queryPlanetes);
|
||||
$numP = 0;
|
||||
for ($i=0 ; $i<$nbPlan ; $i++) {
|
||||
|
|
@ -226,25 +310,17 @@ class Planete extends User{
|
|||
$debut = mktime(rand(0, 24-$tps), 0, 0, date('n'), date('j'), date('Y'));
|
||||
$fin = $debut + $tps * 3600;
|
||||
|
||||
$bdd->connexion();
|
||||
$bdd->query("UPDATE $table_planete SET isolement = '$debut $fin' WHERE id = '$idPlan';");
|
||||
$bdd->deconnexion();
|
||||
$isolement[0] = $debut;
|
||||
if (time() > $isolement[0]) $isolement[1] = $fin;
|
||||
$this->isolement[0] = $debut;
|
||||
if (time() > $this->isolement[0]) $this->isolement[1] = $fin;
|
||||
if (!in_array('isolement', $this->modif)) $this->modif[] = 'isolement';
|
||||
}
|
||||
}
|
||||
$p = gpc('p');
|
||||
if (isset($isolement[1]) && time() < $isolement[1]) {
|
||||
if (isset($this->isolement[1]) && time() < $this->isolement[1]) {
|
||||
$return = true;
|
||||
}
|
||||
}
|
||||
|
||||
//On applique les bonus politiques aux productions
|
||||
if (isset($this->politique) && $this->politique == 1) {
|
||||
$sec *= 0.9;
|
||||
}
|
||||
|
||||
if (!in_array('isolement', $this->modif)) $this->modif[] = 'isolement';
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
|
@ -301,7 +377,7 @@ class Planete extends User{
|
|||
else $prod_cri = ((ceil(pow(1.1, $this->batiments[1]) * 23 * $this->batiments[1]) / 3600) * $temps_ecoule) * $this->coeff_bat[1] * 1.5;
|
||||
|
||||
if ($this->batiments[2] <= 0) $prod_hy = 0;
|
||||
else $prod_hy = ((ceil(pow(1.1, $this->batiments[2]) * 14 * ($this->batiments[2] + 0.7)) / 3600) * $temps_ecoule) * $this->coeff_bat[2] * 1.5 - $conso_h;
|
||||
else $prod_hy = ((ceil(pow(1.1, $this->batiments[2]) * 14 * ($this->batiments[2] + 0.7)) / 3600) * $temps_ecoule) * $this->coeff_bat[2] * 1.5;
|
||||
|
||||
//Augmentation de la production en fonction des technologies
|
||||
if ($this->technologies[0] & 4) {
|
||||
|
|
@ -320,6 +396,28 @@ class Planete extends User{
|
|||
$prod_hy *= 1.05;
|
||||
}
|
||||
|
||||
//Augmentation de la production en fonction du moral
|
||||
if ($this->moral > 0.9) {
|
||||
$prod_met *= 1.05;
|
||||
$prod_cri *= 1.05;
|
||||
$prod_hy *= 1.05;
|
||||
}
|
||||
elseif ($this->moral > 0.75) {
|
||||
$prod_met *= 1.02;
|
||||
$prod_cri *= 1.02;
|
||||
$prod_hy *= 1.02;
|
||||
}
|
||||
elseif ($this->moral < 0.45) {
|
||||
$prod_met *= 0.97;
|
||||
$prod_cri *= 0.97;
|
||||
$prod_hy *= 0.97;
|
||||
}
|
||||
elseif ($this->moral < 0.25) {
|
||||
$prod_met *= 0.94;
|
||||
$prod_cri *= 0.94;
|
||||
$prod_hy *= 0.94;
|
||||
}
|
||||
|
||||
//Augmentation de la production en fonction de la politique
|
||||
if ($this->politique == 2) {
|
||||
$prod_met *= 1.10;
|
||||
|
|
@ -327,6 +425,9 @@ class Planete extends User{
|
|||
$prod_hy *= 1.10;
|
||||
}
|
||||
|
||||
//On enlève la consomation d'hydrogène
|
||||
$prod_hy -= $conso_h;
|
||||
|
||||
if ($retarray) return array(array(ceil($this->coeff_bat[0]*100), ceil($this->coeff_bat[1]*100), ceil($this->coeff_bat[2]*100), ceil($this->coeff_bat[3]*100), ceil($this->coeff_bat[4]*100)), array($prod_met, $prod_cri, $prod_hy + $conso_h, $energie_s*$this->coeff_bat[3], $energie_f*$this->coeff_bat[4]), array($energie_m*$this->coeff_bat[0], $energie_c*$this->coeff_bat[1], $energie_h*$this->coeff_bat[2], $conso_h, ($energie_s*$this->coeff_bat[3] + $energie_f*$this->coeff_bat[4])-($energie_m*$this->coeff_bat[0] + $energie_c*$this->coeff_bat[1] + $energie_h*$this->coeff_bat[2])));
|
||||
else return array($prod_met, $prod_cri, $prod_hy);
|
||||
}
|
||||
|
|
|
|||
BIN
game/bourse/AAAAAcovenant.png
Normal file
|
After Width: | Height: | Size: 81 KiB |
BIN
game/bourse/AAAAcovenant.png
Normal file
|
After Width: | Height: | Size: 79 KiB |
BIN
game/bourse/AAAcovenant.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
BIN
game/bourse/AAcovenant.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
game/bourse/Acovenant.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
game/bourse/Copie de humain.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
game/bourse/covenant.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
game/bourse/humain.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
game/cache/signatures/8..sign
vendored
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB |
|
|
@ -1,13 +1,17 @@
|
|||
<?php
|
||||
if ($config['stnb'] && (!isset($sess->values['auth_level']) || $sess->values['auth_level'] < 8)) {
|
||||
if ($config['stnb'] && (!isset($sess->level) || $sess->level < 5)) {
|
||||
switch($config['stnb']){
|
||||
case 1:
|
||||
$titre = 'Serveur en maintenance';
|
||||
$contenu = 'Nous effectuons actuellement des opérations de maintenance sur le serveur, il est indisponible durant '.($config['dureestnb']/60).' minutes.<br /><br />Pour plus d\'information sur les corrections et nouveautés apportés, nous vous conseillons de lire l\'<a href="'.$config['link']['accueil'].'" class="lien">annonce officielle de cette maintenance sur le forum du jeu</a>.<br /><br />Merci de votre compréhension';
|
||||
break;
|
||||
case 2:
|
||||
$titre = 'Serveur en maintenance';
|
||||
$contenu = 'Nous effectuons actuellement des opérations de maintenance sur le serveur, il est indisponible durant '.($config['dureestnb']/60).' minutes.<br /><br />Pour plus d\'information sur les corrections et nouveautés apportés, nous vous conseillons de lire la <a href="'.$config['link']['accueil'].'" class="lien">HB Weekly Update sur le forum du jeu</a>.<br /><br />Merci de votre compréhension';
|
||||
break;
|
||||
case 3:
|
||||
$titre = 'Serveur en maintenance';
|
||||
$contenu = 'Nous effectuons actuellement des opérations de maintenance sur le serveur, il est indisponible durant '.($config['dureestnb']/60).' minutes.<br /><br />Pour plus d\'information sur les corrections et nouveautés apportés, nous vous conseillons de lire la <a href="'.$config['link']['accueil'].'" class="lien">HB Weekly Update sur le forum du jeu</a>.<br /><br />Merci de votre compréhension';
|
||||
$contenu = 'Nous effectuons actuellement des opérations de maintenance sur le serveur, il est indisponible durant '.($config['dureestnb']/60).' minutes.<br /><br />Pour plus d\'information sur les corrections et nouveautés apportés, nous vous conseillons de lire le <a href="http://www.halo-battle.fr/tester/changelog_page.php" class="lien">ChangeLog de Mantis</a>.<br /><br />Merci de votre compréhension';
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -306,7 +306,7 @@ function send_mailHTML($admail, $sujet, $corps){
|
|||
function erreur($message, $color = "red", $lien = "", $temps = 2500){
|
||||
global $template;
|
||||
$template->assign('message', $message);
|
||||
if (!empty($lien)) $template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="'.$lien.'";\', '.$temps.');</script>');
|
||||
//if (!empty($lien)) $template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="'.$lien.'";\', '.$temps.');</script>');
|
||||
$template->assign('couleur',$color);
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@ $titre = 'Batiments';
|
|||
if (isset($_GET['c'])) {
|
||||
//Vérification que la planète ne soit pas pleine
|
||||
if ($planete->casesRest <= 0) erreur('Vous n\'avez plus de place sur votre planète.', "red", "?p=batiments", 3500);
|
||||
//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 !');
|
||||
|
||||
//Récupération des erreurs de la mise en file d'attente pour traitement
|
||||
$construction = $planete->file_addObjet("batiments", intval(gpc('c')));
|
||||
|
|
@ -23,6 +25,20 @@ $titre = 'Batiments';
|
|||
default: header('Location: ?p=batiments'); exit;
|
||||
}
|
||||
}
|
||||
//Lancement d'une déconstruction
|
||||
if (isset($_GET['d'])) {
|
||||
//Récupération des erreurs de la mise en file d'attente pour traitement
|
||||
$construction = $planete->file_addObjet("batiments", intval(gpc('d')), -1);
|
||||
|
||||
switch($construction){
|
||||
case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour construire ce bâtiment.'); break;
|
||||
case 2: erreur('Ce bâtiment est déjà en file d\'attente !'); break;
|
||||
case 3: erreur('Vous n\'avez pas les ressources nécessaire pour construire ce bâtiment !'); break;
|
||||
case 4: erreur('File d\'attente pleine !'); break;
|
||||
case 5: erreur('Le nombre d\'objets est négatif !'); break;
|
||||
default: header('Location: ?p=batiments'); exit;
|
||||
}
|
||||
}
|
||||
//Annulation d'une nouvelle construction
|
||||
if (isset($_GET['a']) && isset($batiment[$_GET['a']])) {
|
||||
$i = intval(gpc('a'));
|
||||
|
|
@ -46,7 +62,8 @@ $titre = 'Batiments';
|
|||
foreach($planete->batiments as $i => $PLbatiment) {
|
||||
$tr = 0; $a = 0; $b = 0; $c = 0; $sec = 0; $enFile = false;
|
||||
if ($PLbatiment > 0) $niveau = $PLbatiment; else $niveau = 0;
|
||||
$n = $PLbatiment + 1; eval($batimentCALC[$i][0]); eval($batimentCALC[$i][1]); eval($batimentCALC[$i][2]); eval($batimentCALC[$i][3]);
|
||||
$n = $PLbatiment + 1;
|
||||
eval($batimentCALC[$i][0]); eval($batimentCALC[$i][1]); eval($batimentCALC[$i][2]); eval($batimentCALC[$i][3]);
|
||||
if ($planete->file_exist($i, 'file_bat')) $enFile = true; else $enFile = false;
|
||||
|
||||
//On applique les bonus de test
|
||||
|
|
@ -88,6 +105,7 @@ $titre = 'Batiments';
|
|||
|
||||
$n = $planete->batiments[$bout[0]] + 1;
|
||||
eval($batimentCALC[$bout[0]][3]);
|
||||
if ($bout[1] < 0) $sec *= 0.6;
|
||||
if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_bat[0])), $batiment[$bout[0]]);
|
||||
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE), $batiment[$bout[0]]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ include_once(_FCORE."../game/Class/class.bourse.php");
|
|||
|
||||
define('MAX_ACTION_PAR_JOUR', 5);
|
||||
|
||||
erreur('Arrêtez de tester la bourse, on attend le nouveau script !');
|
||||
|
||||
/*if (date('G') < 7 && date('G') >= 0 && date('w') != 0 && date('w') != 6 && $queryUser['auth_level'] < 3)
|
||||
erreur('La bourse est actuellement fermée !<br />Réouverture à 7h00', "orange");
|
||||
else*/if ($queryPlanetes[0]['id'] != $planete->id)
|
||||
|
|
|
|||
|
|
@ -65,14 +65,10 @@ for ($i = 1; $i <= MAX_PLANETE; $i++) {
|
|||
$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.debris_met, P.debris_cri, U.pseudo, U.race, 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;");
|
||||
|
||||
if ($d['race'] == 'covenant') $ra = '(c)';
|
||||
elseif ($auth_level >= 6 && md5($d['race']) == '34c19b21bd4a3dda389e767d32fe9779') $ra = '(f)';
|
||||
else $ra = '(h)';
|
||||
$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'], $ra, $d['pseudo'], '<a href="?p=envoyer&d='.$d['pseudo'].'" class="msg"><span>Message</span></a>', $d['tag']);//, $eA['tag']);
|
||||
$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();
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ foreach ($planete->file_vais as $key => $bout){
|
|||
$n = $planete->vaisseaux[$bout[0]] + 1;
|
||||
eval($nomvaisnCALC[$bout[0]][3]);
|
||||
if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_vais[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $nomvaisn[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_vais[0])));
|
||||
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE), $nomvaisn[$bout[0]]);
|
||||
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE) * $bout[1], $nomvaisn[$bout[0]]);
|
||||
}
|
||||
$template->assign('file', $file);
|
||||
?>
|
||||
|
|
@ -94,7 +94,7 @@ foreach ($planete->file_ter as $key => $bout){
|
|||
$n = $planete->terrestres[$bout[0]] + 1;
|
||||
eval($nomterrnCALC[$bout[0]][3]);
|
||||
if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_ter[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $nomterrn[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_ter[0])));
|
||||
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE), $nomterrn[$bout[0]]);
|
||||
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE) * $bout[1], $nomterrn[$bout[0]]);
|
||||
}
|
||||
$template->assign('file', $file);
|
||||
?>
|
||||
|
|
@ -64,10 +64,13 @@ if ($TypeSearch) {
|
|||
$j = ($pageClassement-1)*$nbppage;
|
||||
|
||||
$TEMP_classement = array();
|
||||
foreach($data as $lign){
|
||||
$j++;
|
||||
$TEMP_classement[] = array($j, $lign['tag'], $lign['nbr_membres'], separerNombres($lign[$export]),0);
|
||||
if ($data) {
|
||||
foreach($data as $lign){
|
||||
$j++;
|
||||
$TEMP_classement[] = array($j, $lign['tag'], $lign['nbr_membres'], separerNombres($lign[$export]),0);
|
||||
}
|
||||
}
|
||||
else erreur('Classement non disponible.');
|
||||
|
||||
$template->assign('places', $TEMP_classement);
|
||||
}
|
||||
|
|
@ -80,10 +83,13 @@ else {
|
|||
$j = ($pageClassement-1)*$nbppage;
|
||||
|
||||
$TEMP_classement = array();
|
||||
foreach($data as $lign){
|
||||
$j++;
|
||||
$TEMP_classement[] = array($j, $lign['pseudo'], $lign['race'], $lign['tag'], $lign['nom'], separerNombres($lign[$export]));
|
||||
if ($data) {
|
||||
foreach($data as $lign){
|
||||
$j++;
|
||||
$TEMP_classement[] = array($j, $lign['pseudo'], $lign['race'], $lign['tag'], $lign['nom'], separerNombres($lign[$export]));
|
||||
}
|
||||
}
|
||||
else erreur('Classement non disponible.');
|
||||
|
||||
$template->assign('places', $TEMP_classement);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,8 +93,8 @@ foreach ($planete->file_ter as $key => $bout){
|
|||
if ($key == 0) continue;
|
||||
$n = $planete->terrestres[$bout[0]] + 1;
|
||||
eval($nomterrnCALC[$bout[0]][3]);
|
||||
if ($i == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_ter[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $nomterrn[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_ter[0])));
|
||||
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE), $nomterrn[$bout[0]]);
|
||||
if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_ter[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $nomterrn[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_ter[0])));
|
||||
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE) * $bout[1], $nomterrn[$bout[0]]);
|
||||
}
|
||||
$template->assign('file', $file);
|
||||
?>
|
||||
|
|
@ -6,5 +6,5 @@ $bdd->connexion();
|
|||
$message = $bdd->unique_query("SELECT * FROM $table_messages_demarrage ORDER BY time DESC LIMIT 1;");
|
||||
$bdd->deconnexion();
|
||||
$titre = $message['titre'];
|
||||
$template->assign('contenu', bbcode(nl2br($message['contenu']), 1).'<br /><br /><a class="submit" href="?p=accueil">Continuer</a>');
|
||||
$template->assign('contenu', '<p style="margin: 0 5px;">'.bbcode(nl2br($message['contenu']), 1).'<br /><br /><a class="submit" href="?p=accueil">Continuer</a></p>');
|
||||
?>
|
||||
|
|
@ -17,21 +17,20 @@ if (!empty($_POST['objet']) && !empty($_POST['nom']) && !empty($_POST['message']
|
|||
$bdd->escape($objet);
|
||||
$bdd->escape($pseudo);
|
||||
|
||||
$introuv = array();
|
||||
for($i = 0; $i < $nbutil; $i++){
|
||||
$util = trim($utils[$i]);
|
||||
if (empty($util)) continue;
|
||||
$bdd->escape($util);
|
||||
if ($env = $bdd->unique_query("SELECT id, pseudo, mail, envoyerMail FROM $table_user WHERE pseudo = '$util';")) {
|
||||
if ($util != $planete->pseudo && $env = $bdd->unique_query("SELECT id, pseudo, mail, envoyerMail FROM $table_user WHERE pseudo = '$util';")) {
|
||||
$bdd->query("INSERT INTO $table_mail (destinataire, expediteur, sujet, contenu, temps) VALUES(".$env['id'].", '$id_user', '$objet', '$message', '$time');");
|
||||
if ($env["envoyerMail"] >= 1 && !empty($env["mail"])) send_mail($env["mail"], 'Nouveau message privé', 'Bonjour '.$env["pseudo"].',<br /><br />Un nouveau message privé vous a été envoyé dans la galaxie '.$config['serveur_name']);
|
||||
}
|
||||
else {
|
||||
$bdd->deconnexion();
|
||||
erreur('Impossible de trouver l\'un des destinataire du message : '.htmlentities($util), "red", '?p=envoyer');
|
||||
}
|
||||
else $introuv[] = htmlentities($util);
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
erreur('Votre message a été envoyé avec succès.', "green", '?p=messagerie');
|
||||
if (!empty($introuv[0])) erreur('Impossible de trouver le/les destinataire(s) suivant(s) : '.implode(', ', $introuv).'.<br />Les autres ont bien reçu votre message.', "red", '?p=envoyer');
|
||||
else erreur('Votre message a été envoyé avec succès.', "green", '?p=messagerie');
|
||||
}
|
||||
|
||||
$amis = array();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$titre = 'Flottes';
|
||||
include_once(_FCORE."../game/Class/class.flotte.php");
|
||||
|
||||
if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']) && !empty($_POST['ss']) && !empty($_POST['pos']) && !empty($_POST['vitesse']) && isset($_POST['mission']) && isset($_POST['metal']) && isset($_POST['cristal']) && isset($_POST['hydrogene'])) {
|
||||
$end_galaxie = floor(gpc('amas', 'post'));
|
||||
|
|
@ -47,7 +48,7 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
|
|||
//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 > $queryPlanete['metal']) || (!empty($EBcristal) && !$EBcristal > $queryPlanete['cristal']) || (!empty($EBhydrogene) && !$EBhydrogene > $queryPlanete['hydrogene'])) erreur('Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.', "red", '?p=flotte');
|
||||
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
|
||||
|
|
@ -86,33 +87,33 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
|
|||
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");
|
||||
}
|
||||
|
||||
//Création de la flotte
|
||||
$req = array();
|
||||
$reqPlan = array();
|
||||
$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 {
|
||||
$req[] = $nomvaisnVAR[$key].' = '.$vaisseau;
|
||||
$reqPlan[] = $nomvaisnVAR[$key].' = '.$nomvaisnVAR[$key].' - '.$vaisseau;
|
||||
$nbVais += $vaisseau;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($nbVais <= 0) erreur('Vous devez envoyer au moins un vaisseau pour former une flotte !', "red", '?p=flotte');
|
||||
elseif ($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:'.$config['mailadmin'].'">contactez un administrateur</a>.', "red", '?p=flotte', 4500);
|
||||
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:'.$config['mailadmin'].'">contactez un administrateur</a>.', "red", '?p=flotte', 4500);
|
||||
|
||||
$flotte->nom = gpc('nomflotte', 'post');
|
||||
$flotte->mission = $mission;
|
||||
$flotte->start_planete = $planete;
|
||||
$flotte->start_time = time();
|
||||
$flotte->end_planete = $resultat['id'];
|
||||
$calc = $flotte->calc_deplacement($planete->galaxie, $planete->ss, $planete->position, $end_galaxie, $end_ss, $end_pos, $vitesse);
|
||||
$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];
|
||||
|
||||
|
|
@ -121,11 +122,19 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
|
|||
|
||||
//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 < ceil(gpc('metal', 'post')) + ceil(gpc('cristal', 'post')) + ceil(gpc('hydrogene', 'post')) + $conso) erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent.', "red", '?p=flotte', 3500);
|
||||
if ($flotte->contenuMax < ceil(gpc('metal', 'post')) + ceil(gpc('cristal', 'post')) + ceil(gpc('hydrogene', 'post')) + $conso) erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent. '.$flotte->contenuMax, "red", '?p=flotte', 3500);
|
||||
elseif ($planete->metal < ceil(gpc('metal', 'post')) || $planete->cristal < ceil(gpc('cristal', 'post')) || $planete->hydrogene < ceil(gpc('hydrogene', 'post')) + $conso) erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500);
|
||||
else {
|
||||
if ($mission == 1) $flotte->tactique = gpc('tactique', 'post');
|
||||
$flotte->contenu = array(ceil(gpc('metal', 'post')), ceil(gpc('cristal', 'post')), ceil(gpc('hydrogene', 'post')));
|
||||
$flotte->contenu = array(floor(gpc('metal', 'post')), floor(gpc('cristal', 'post')), floor(gpc('hydrogene', 'post')));
|
||||
$flotte->modifFlotte = "INSERT";
|
||||
|
||||
//On actualise la planète
|
||||
$planete->metal -= floor(gpc('metal', 'post'));
|
||||
$planete->cristal -= floor(gpc('cristal', 'post'));
|
||||
$planete->hydrogene -= floor(gpc('hydrogene', 'post') + $conso);
|
||||
$planete->vaisseaux = $sauv;
|
||||
if (!in_array('vaisseaux', $planete->modif)) $planete->modif[] = 'vaisseaux';
|
||||
|
||||
unset($sess->values['vais']);
|
||||
$sess->put();
|
||||
|
|
@ -143,6 +152,7 @@ elseif (!empty($_POST['v0']) || !empty($_POST['v1']) || !empty($_POST['v2']) ||
|
|||
else $v = (int)abs($v);
|
||||
|
||||
if ($vaisseau < $v) {
|
||||
$planete->vaisseaux = $sauv;
|
||||
erreur('Il ne vous reste plus assez de vaisseaux !', "red", '?p=flotte');
|
||||
}
|
||||
|
||||
|
|
@ -175,6 +185,37 @@ elseif (!empty($_POST['v0']) || !empty($_POST['v1']) || !empty($_POST['v2']) ||
|
|||
|
||||
//TODO Ajouter les destinations favorites + Colonies
|
||||
}
|
||||
//Affichage du détail d'une flotte
|
||||
elseif (!empty($_GET['n'])) {
|
||||
$idN = ceil(gpc('n'));
|
||||
|
||||
$flotteN = new Flotte($idN);
|
||||
$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 {
|
||||
//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';");
|
||||
header('Location: ?p=flotte&n='.$idN);
|
||||
exit;
|
||||
}
|
||||
else erreur('Impossible d\'annuler la mission, elle a déjà commencée.', "red", '?p=flotte&n='.$idN, 1500);
|
||||
}
|
||||
|
||||
$sess->values['ret_fleet'] = sha1('HB.fleet_'.rand().'☺ß☻');
|
||||
$sess->put();
|
||||
|
||||
$template->assign('ret_fleet', $sess->values['ret_fleet']);
|
||||
$template->assign('flotte', $flotteN);
|
||||
$template->assign('nomvais', $nomvaisa);
|
||||
$page = 'flotten';
|
||||
}
|
||||
}
|
||||
//Affichage de la page générale
|
||||
else {
|
||||
//Mise à jour des tactiques par défaut
|
||||
|
|
@ -218,7 +259,10 @@ else {
|
|||
$retour = '-';
|
||||
$Hretour = '-';
|
||||
}
|
||||
$TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], $flotte['end_galaxie'].':'.$flotte['end_ss'].':'.$flotte['end_position'], date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour);
|
||||
|
||||
$end_planete = new Planete($flotte['end_planete']);
|
||||
|
||||
$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);
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ $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) || ($planete->technologies[3] & 1024 && $politique == 2) || ($planete->technologies[3] & 512 && $politique == 1) || $politique == 0) && $planete->politique != $politique) {
|
||||
if (($planete->technologies[3] & 2048 && ($politique == 3 || $politique == 2 || $politique == 1) || $politique == 0) && $planete->politique != $politique) {
|
||||
$planete->politique = $politique;
|
||||
$planete->politique_lastchange = time();
|
||||
$planete->modifUser[] = "politique";
|
||||
|
|
@ -29,8 +29,10 @@ if (is_numeric($politique)) {
|
|||
}
|
||||
|
||||
$politiques = array('Anarchie');
|
||||
if ($planete->technologies[3] & 512) $politiques[] = 'Fascisme (Mouvement Frieden)';
|
||||
if ($planete->technologies[3] & 1024) $politiques[] = 'Communisme (Mouvement Koslovic)';
|
||||
if ($planete->technologies[3] & 2048) $politiques[] = 'Démocratie (Administration coloniale)';
|
||||
if ($planete->technologies[3] & 2048) {
|
||||
$politiques[] = 'Fascisme (Mouvement Frieden)';
|
||||
$politiques[] = 'Communisme (Mouvement Koslovic)';
|
||||
$politiques[] = 'Démocratie (Administration coloniale)';
|
||||
}
|
||||
$template->assign('politiques', $politiques);
|
||||
?>
|
||||
|
|
@ -8,6 +8,9 @@ if ($planete->batiments[6] == 0) erreur('Vous devez d\'abord construire un '.str
|
|||
|
||||
//Lancement d'une nouvelle recherche
|
||||
if (isset($_GET['t']) && isset($_GET['f']) ) {
|
||||
//On annule la recherche si le labo est en construction
|
||||
if ($planete->file_exist(6, 'file_bat')) erreur('Votre laboratoire est en travaux, vous ne pouvez pas faire de recherches pour le moment !');
|
||||
|
||||
//Récupération des erreurs de la mise en file d'attente pour traitement
|
||||
$construction = $planete->file_addObjet("technologies", intval(gpc('t')), intval(gpc('f')));
|
||||
|
||||
|
|
@ -43,13 +46,14 @@ foreach ($planete->technologies as $key => $technologie){
|
|||
|
||||
//On applique les bonus de test
|
||||
$calc[3] /= VITESSE;
|
||||
$calc[3] /= (1 + $planete->batiments[6] * 0.005);
|
||||
|
||||
$TEMP_technologies[] =
|
||||
array(
|
||||
'image' => $planete->race=='humain'?'../humain_na.jpg':'../covenant_na.jpg',
|
||||
'nom' => $technolo[$key][$i],
|
||||
'niveau' => '0',
|
||||
'description' => 'Technologie de '.$technologiesVAR[$key].' ; numéro : '.$calc[0].'<br />Résultat : '.((int)($technologie & $calc[1]).' | '.$calc[1]),
|
||||
'description' => 'Technologie de '.$technologiesVAR[$key].' ; numéro : '.$calc[0].'<br />Résultat : '.((int)($technologie & $calc[1]).' | '.$calc[1].' | '.$technologie),
|
||||
'nec_metal' => 0,
|
||||
'nec_cristal' => 0,
|
||||
'nec_hydrogene' => 0,
|
||||
|
|
@ -80,7 +84,7 @@ $file = array();
|
|||
foreach ($planete->file_tech as $key => $tech_infile){
|
||||
if ($key == 0) continue;
|
||||
|
||||
$sec = $technologiesCALC[$tech_infile[1]][$tech_infile[0]][3];
|
||||
$sec = $technologiesCALC[$tech_infile[1]][$tech_infile[0]][3] / (1 + $planete->batiments[6] * 0.01);
|
||||
if ($key == 1) $file[] = array($tech_infile[0], 1, ceil($sec/VITESSE - (time() - $planete->file_tech[0])), $technolo[$tech_infile[1]][$tech_infile[0]]);
|
||||
else $file[] = array($tech_infile[0], 1, ceil($sec/VITESSE), $technolo[$tech_infile[1]][$tech_infile[0]]);
|
||||
}
|
||||
|
|
|
|||
5
game/jeu/marche.php
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$titre = 'Marché';
|
||||
|
||||
?>
|
||||
|
|
@ -33,6 +33,16 @@ if (isset($_POST['IR'])) {
|
|||
if ($stop) { header('Location: ?p=messagerie'); exit; }
|
||||
}
|
||||
|
||||
if (gpc('avertir')) {
|
||||
$id = gpc('avertir');
|
||||
$bdd->connexion();
|
||||
$bdd->escape($id);
|
||||
$bdd->query("UPDATE $table_mail SET statut = 1 WHERE destinataire = $id_user AND id = $id;");
|
||||
if ($bdd->affected()) erreur('La demande de vérification de contenu par les opérateurs a été transmise avec succès.', 'green', '?p=messagerie');
|
||||
else erreur('Une demande est déjà en cours ou vous n\'êtes pas autorisé à avertir ce message.', 'red', '?p=messagerie');
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
|
||||
$bdd->connexion();
|
||||
$messcomp = $bdd->query("SELECT M.*, U.pseudo AS expediteur FROM $table_mail M INNER JOIN $table_user U ON U.id = M.expediteur WHERE M.destinataire = $id_user AND M.expediteur != false ORDER BY M.id DESC;");
|
||||
$nbmax = $bdd->num_rows;
|
||||
|
|
|
|||
|
|
@ -14,39 +14,16 @@ $mdp = $queryUser['mdp'];
|
|||
$mdp_var = $queryUser['mdp_var'];
|
||||
|
||||
if (isset($_GET['a']) && $_GET['a'] == 'mv' && isset($_GET['n']) && $_GET['n'] == $sess->values['idvac']) {
|
||||
$impossible = false;
|
||||
include_once(_FCORE."../game/Class/class.gerefile.php");
|
||||
$nbPlan = count($queryPlanetes);
|
||||
for ($i=0 ; $i<$nbPlan ; $i++) {
|
||||
$file = unserialize($queryPlanetes[$i]['file_bat']);
|
||||
if (!empty($queryPlanetes[$i]['file_bat']) && count($file->file)) $impossible = true;
|
||||
$bdd->connexion();
|
||||
$bdd->query("SELECT * FROM flottes WHERE id_user = '$id_user'");
|
||||
if ($bdd->num_rows) erreur('Des flottes sont actuellement en mission, veuillez toutes les faire revenir à quai avant d\'activer le mode vacances.', "red", '?p=options', 4000);
|
||||
|
||||
$file = unserialize($queryPlanetes[$i]['file_tech']);
|
||||
if (!empty($queryPlanetes[$i]['file_tech']) && count($file->file)) $impossible = true;
|
||||
$bdd->query("UPDATE user SET mv = 1 WHERE id = '$id_user'");
|
||||
$bdd->deconnexion();
|
||||
$sess->values['connected'] = FALSE;
|
||||
$sess->put();
|
||||
|
||||
$file = unserialize($queryPlanetes[$i]['file_cas']);
|
||||
if (!empty($queryPlanetes[$i]['file_cas']) && count($file->file)) $impossible = true;
|
||||
|
||||
$file = unserialize($queryPlanetes[$i]['file_vais']);
|
||||
if (!empty($queryPlanetes[$i]['file_vais']) && count($file->file)) $impossible = true;
|
||||
|
||||
$file = unserialize($queryPlanetes[$i]['file_ter']);
|
||||
if (!empty($queryPlanetes[$i]['file_ter']) && count($file->file)) $impossible = true;
|
||||
}
|
||||
|
||||
if ($impossible) erreur('Impossible d\'activer le mode vacances.<br />Toutes les files d\'attentes sur vos différentes planètes ne sont pas vides.', "red", '?p=options', 4000);
|
||||
else {
|
||||
$bdd->connexion();
|
||||
$bdd->query("SELECT * FROM flottes WHERE id_user = '$id_user'");
|
||||
if ($bdd->num_rows) erreur('Des flottes sont actuellement en mission, veuillez toutes les faire revenir à quai avant d\'activer le mode vacances.', "red", '?p=options', 4000);
|
||||
|
||||
$bdd->query("UPDATE user SET mv = '1' WHERE id = '$id_user'");
|
||||
$bdd->deconnexion();
|
||||
$sess->values['connected'] = FALSE;
|
||||
$sess->put();
|
||||
|
||||
erreur('Le mode vacances est maintenant actif sur votre compte.<br /><br />Vous pourez vous reconnecter sur votre compte à partir de<br />'.strftime("%A %d %B à %H:%M", $planete->last_visite+259200).'<br /><br />Bonnes vacances !', "green", '?index', 10000);
|
||||
}
|
||||
erreur('Le mode vacances est maintenant actif sur votre compte.<br /><br />Vous pourez vous reconnecter sur votre compte à partir de<br />'.strftime("%A %d %B à %H:%M", $planete->last_visite+259200).'<br /><br />Bonnes vacances !', "green", '?index', 10000);
|
||||
}
|
||||
elseif (isset($_GET['a']) && $_GET['a'] == 'dl' && isset($_GET['n']) && $_GET['n'] == $sess->values['idvac']) {
|
||||
$bdd->connexion();
|
||||
|
|
|
|||
|
|
@ -11,8 +11,9 @@ if (!empty($_GET['i']) && isset($_GET['n'])) {
|
|||
$bdd->connexion();
|
||||
$bdd->escape($Un);
|
||||
$bdd->escape($Ui);
|
||||
$user = $bdd->unique_query("SELECT * FROM user WHERE pseudo = '$Un' AND mdpNOUV = '$Ui';");
|
||||
if ($user && $bdd->unique_query("UPDATE user SET mdp = mdpNOUV, mdpNOUV = '' WHERE pseudo = '$Un'")) {
|
||||
$user = $bdd->unique_query("SELECT * FROM $table_user WHERE pseudo = '$Un' AND mdpNOUV = '$Ui';");
|
||||
if ($user) {
|
||||
$bdd->query("UPDATE user SET mdp = mdpNOUV, mdpNOUV = '' WHERE pseudo = '$Un'");
|
||||
$bdd->deconnexion();
|
||||
$template->assign('message','Votre mot de passe a été réinitialisé avec succès.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?index";\', 3500);</script>');
|
||||
|
|
@ -29,19 +30,29 @@ if (!empty($_GET['i']) && isset($_GET['n'])) {
|
|||
}
|
||||
}
|
||||
|
||||
if (isset($_POST['HB_pseudo']) && isset($_POST['HB_mail']) && isset($_POST['HB_captcha'])) {
|
||||
if ((isset($_POST['HB_pseudo']) && isset($_POST['HB_mail']) && isset($_POST['HB_captcha'])) || (isset($_GET['ps']) && isset($_GET['m']) && isset($_GET['a']))) {
|
||||
$ok = true;
|
||||
if (empty($_POST['HB_pseudo']) || empty($_POST['HB_mail'])) {
|
||||
if ((empty($_POST['HB_pseudo']) || empty($_POST['HB_mail'])) && (empty($_GET['ps']) || empty($_GET['m']))) {
|
||||
$ok = false;
|
||||
$erreur .= '<p style="color: #FF0000"><b>Pseudo ou adresse électronique vide :</b><br />Veuillez compléter tous les champs de ce formulaire avant de le valider.</p><br />';
|
||||
}
|
||||
if (strtolower($_POST['HB_captcha']) != strtolower($_SESSION['aleat_nbr'])) {
|
||||
|
||||
if (isset($_GET['m']) && is_numeric('0x'.$_GET['m'])) $_GET['m'] = cxor(hexstr($_GET['m']), date('WYDj'));
|
||||
if (!isset($_POST['HB_captcha'])) $_POST['HB_captcha'] = '';
|
||||
if (strtolower($_POST['HB_captcha']) != strtolower($_SESSION['aleat_nbr']) && gpc('a') != hash_var($_GET['ps'].'☻♫☼'.date('W!Y¨D@j').'Ņ♂↨'.$_GET['m'], "sha512")) {
|
||||
$ok = false;
|
||||
$erreur .= '<p style="color: #FF0000"><b>Code de vérification incorrect :</b><br />Le texte que vous avez recopier ne correspondait pas au texte de l\'image, veuillez recommencer.</p><br />';
|
||||
}
|
||||
if ($ok) {
|
||||
$HB_pseudo = $_POST['HB_pseudo'];
|
||||
$HB_mail = $_POST['HB_mail'];
|
||||
if (strtolower($_POST['HB_captcha']) == strtolower($_SESSION['aleat_nbr'])) {
|
||||
$HB_pseudo = gpc('HB_pseudo', 'post');
|
||||
$HB_mail = gpc('HB_mail', 'post');
|
||||
}
|
||||
else {
|
||||
$HB_pseudo = gpc('ps');
|
||||
$HB_mail = gpc('m');
|
||||
}
|
||||
|
||||
$bdd->connexion();
|
||||
$bdd->escape($HB_pseudo);
|
||||
$bdd->escape($HB_mail);
|
||||
|
|
@ -49,7 +60,7 @@ if (isset($_POST['HB_pseudo']) && isset($_POST['HB_mail']) && isset($_POST['HB_c
|
|||
if ($user) {
|
||||
$liste = "abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
$code = '';
|
||||
while(strlen($code) != 8) {
|
||||
while(strlen($code) <= 8) {
|
||||
$code .= $liste[rand(0,60)];
|
||||
}
|
||||
$passNOUV = mdp($HB_pseudo, $code, $user['mdp_var']);
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'rename';
|
||||
$titre = $planete->nom_planete;
|
||||
$titre = htmlentities($planete->nom_planete);
|
||||
|
||||
if (isset($_POST['planete'])) {
|
||||
$nouvNom = trim(str_replace(' ', ' ', $_POST['planete']));
|
||||
|
|
|
|||
|
|
@ -6,17 +6,12 @@ $titre = 'Détails utilisateur';
|
|||
$u = floor(gpc('i'));
|
||||
|
||||
$bdd->connexion();
|
||||
$detailsUser = $bdd->query("SELECT * FROM $table_user WHERE id = $u;");
|
||||
$bdd->escape($u);
|
||||
$detailsUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $u;");
|
||||
$bdd->deconnexion();
|
||||
var_dump($detailsUser);
|
||||
|
||||
if (!empty($detailsUser)) {
|
||||
$amis = explode(';', $detailsUser['amis']);
|
||||
if (in_array($id_user, $amis)) $template->assign('amis', true);
|
||||
$template->assign('userD', $detailsUser);
|
||||
if (!empty($detailsUser['id_alliance'])) {
|
||||
$bdd->connexion();
|
||||
$template->assign('alliance', $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$detailsUser['id_alliance'].";"));
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
}
|
||||
else erreur('Joueur introuvable !');
|
||||
?>
|
||||
|
|
@ -16,9 +16,10 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
'Moins bien connus que les Elites, les Brutes combattent en groupes et sont physiquement plus forts que leurs congénères. Les Brutes démontrent les mêmes aptitudes au combat que les Elites et leur nombre s\'est considérablement accru depuis le début du conflit. Ils portent une arme balistique explosive à laquelle est fixée une baïonnette.');
|
||||
$casernea = array('grunt(s)','jackal(s)','drone(s)','élite(s)','sniper(s)','hunter(s)','médecin(s)','ingénieur(s)','brute(s)');
|
||||
$casernei = array('grunt1.jpg','jackal.jpg','94990342wb4.jpg','98004530fx3.jpg','88091275ja8.jpg','hunter1.jpg','81770345oo4.jpg','88218731ts1.jpg','72188202fg9.jpg');
|
||||
$batimend = array('purificateur_m','purificateur_c','ionisateur','centrale_s','centrale_fusion','oeil','recherches','chantier_terrestre','???','caserne','silo','centre_info');
|
||||
$batimeni = array('batimentcovieux4.jpg','cristaloo3.png','powersupplycoviejq1.jpg','solaire.jpg','sanstitrevi7.jpg','oeilduprophetewj6.jpg','covielabocn5.jpg','chantierterrestrehg1.jpg','sanstitretruecolor09zn6.jpg','caserncov0ry.jpg','stockagebasement1cs10bl.jpg','ordianteur_hologramme.jpg');
|
||||
//$batimend = array('purificateur_m','purificateur_c','ionisateur','centrale_s','centrale_fusion','oeil','recherches','chantier_terrestre','???','caserne','silo','centre_info','habitation','arcologie','commercial','loisir','administration');
|
||||
$batimeni = array('batimentcovieux4.jpg','cristaloo3.png','powersupplycoviejq1.jpg','solaire.jpg','sanstitrevi7.jpg','oeilduprophetewj6.jpg','covielabocn5.jpg','chantierterrestrehg1.jpg','sanstitretruecolor09zn6.jpg','caserncov0ry.jpg','stockagebasement1cs10bl.jpg','ordianteur_hologramme.jpg', '!!', '!!', '!!', '!!', '!!');
|
||||
$batiment = array('Purificateur de métal','Purificateur de cristal','Ionisateur','Centrale solaire','Centrale de fusion','Oeil des prophètes','Centre de recherches','Chantier terrestre','Chantier spatial','Caserne','Entrepôt','Centrale informatique');
|
||||
//$batiment = array('Purificateur de métal','Purificateur de cristal','Ionisateur','Centrale solaire','Centrale de fusion','Oeil des prophètes','Centre de recherches','Chantier terrestre','Chantier spatial','Caserne','Entrepôt','Centrale informatique', 'Module résidentiel', 'Mégastructure', 'Marché', 'Sanctuaire', 'Chambre du Conseil');
|
||||
$batimede = array( 'Le purificateur de métal vous fournit les matières premières pour la construction de vos infrastructures et de vos unités. Plus vous développerez vos purificateurs, plus ils produiront de ressources. Les purificateurs les plus développés ont aussi besoin de plus d\'énergie.',
|
||||
'Le purificateur de cristal vous fournit les ressources pour vos installations électroniques et pour les alliages. Le purificateur de cristal consomme deux fois plus d\'énergie que celui de métal. Tous les vaisseaux et bâtiments ont besoin de cristal pour leur bouclier ou encore leurs composants électroniques. La production augmente avec le développement de l\'usine.',
|
||||
'L\'ionisateur utilise des ions négatifs et positifs d\'hydrogène pour créer une source conventionnelle de courant stable, servant à alimenter les bâtiments covenants qui nécessitent une arrivée massive de cette "ressource" pour actionner les divers éléments matériels des contrôles. La centrale de fusion à besoin de beaucoup d\'ions pour fonctionner.',
|
||||
|
|
@ -30,12 +31,17 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
'Ce bâtiment permet la création de toutes vos unités spatiales ou volantes. La force des covenants a souvent été due à ses grandes avancées technologiques en matière d\'aéronautique. Un grand chantier spatial permet de créer des unités de plus en plus fortes et de surcroît de les créer de plus en plus rapidement.',
|
||||
'Le Temple de la Guerre vous permet de créer l\'élite des forces d\'infanterie. Des soldats y sont fanatisés puis entraînés au maniement des armes et à la stratégie militaire. Plus vous développez le temple, plus la vitesse de production sera rapide.',
|
||||
'Les ressources qui ne sont pas encore traitées sont mises en stock dans ces entrepôts géants. Un entrepôt plus grand permet le stockage d\'une plus grande quantité de ressources. Lorsque l\'entrepôt est plein, l\'extraction est stoppée. Il est grandement conseillé de développer ce genre d\'infrastructure.',
|
||||
'La centrale informatique est le coeur de votre planète, le cerveau de votre territoire, analysant chaque particule détectée avec grand soin. Plus votre centrale est améliorée, plus rapidement et aisément les données seront traitées.');
|
||||
'La centrale informatique est le coeur de votre planète, le cerveau de votre territoire, analysant chaque particule détectée avec grand soin. Plus votre centrale est améliorée, plus rapidement et aisément les données seront traitées.',
|
||||
'~#DESCRIPTION MANQUANTE#~ Module résidentiel',
|
||||
'~#DESCRIPTION MANQUANTE#~ Mégastructure',
|
||||
'~#DESCRIPTION MANQUANTE#~ Marché',
|
||||
'~#DESCRIPTION MANQUANTE#~ Sanctuaire',
|
||||
'~#DESCRIPTION MANQUANTE#~ Chambre du Conseil');
|
||||
$technolo = array(
|
||||
array('Forage niveau 1', 'Forage niveau 2', 'Forage niveau 3', 'Commerce galactique niveau 1', 'Rendement métal niveau 1', 'Rendement métal niveau 2', 'Rendement métal niveau 3', 'Rendement cristal niveau 1', 'Rendement cristal niveau 2', 'Rendement cristal niveau 3', 'Rendement hydrogène niveau 1', 'Rendement hydrogène niveau 2', 'Rendement hydrogène niveau 3', 'Théorie du Marché niveau 1', 'Théorie du Marché niveau 2', 'Théorie du Marché niveau 3', 'Fonderies avancées niveau 1', 'Fonderies avancées niveau 2', 'Fonderies avancées niveau 3'),
|
||||
array('Forage niveau 1', 'Forage niveau 2', 'Forage niveau 3', 'Commerce galactique', 'Rendement métal niveau 1', 'Rendement métal niveau 2', 'Rendement métal niveau 3', 'Rendement cristal niveau 1', 'Rendement cristal niveau 2', 'Rendement cristal niveau 3', 'Rendement hydrogène niveau 1', 'Rendement hydrogène niveau 2', 'Rendement hydrogène niveau 3', 'Théorie du Marché niveau 1', 'Théorie du Marché niveau 2', 'Théorie du Marché niveau 3', 'Fonderies avancées niveau 1', 'Fonderies avancées niveau 2', 'Fonderies avancées niveau 3'),
|
||||
array('Maîtrise énergie niveau 1', 'Maîtrise énergie niveau 2', 'Maîtrise énergie niveau 3', 'Réacteur à combustion niveau 1', 'Réacteur à combustion niveau 2', 'Réacteur à combustion niveau 3', 'Réacteur à fusion niveau 1', 'Réacteur à fusion niveau 2', 'Réacteur à fusion niveau 3', 'Réacteur à fusion type II niveau 1', 'Réacteur à fusion type II niveau 2', 'Réacteur à fusion type II niveau 3', 'Informatique niveau 1', 'Informatique niveau 2', 'Informatique niveau 3', 'IA niveau 1', 'IA niveau 2', 'IA niveau 3', 'Télécommunications niveau 1', 'Télécommunications niveau 2', 'Télécommunications niveau 3', 'Polymères radars niveau 1', 'Polymères radars niveau 2', 'Polymères radars niveau 3', 'Espionnage niveau 1', 'Espionnage niveau 2', 'Espionnage niveau 3', 'Contre-espionnage niveau 1', 'Contre-espionnage niveau 2', 'Contre-espionnage niveau 3'),
|
||||
array('Constructions planétaires niveau 1', 'Constructions planétaires niveau 2', 'Constructions planétaires niveau 3', 'Construction optimisée', 'Ingénierie orbitale', 'Aménagement territorial niveau 1', 'Aménagement territorial niveau 2', 'Aménagement territorial niveau 3'),
|
||||
array('Immigration coloniale niveau 1', 'Sciences politiques niveau 1', 'Immigration coloniale niveau 2', 'Urbanisme niveau 1', 'Immigration coloniale niveau 3', 'Urbanisme niveau 2', 'Grandes surfaces', 'Centre de loisirs', 'Arcologie', 'Urbanisme niveau 3', 'Sciences politiques niveau 2', 'Stratégie militaire niveau 1', 'Sciences politiques niveau 3', 'Stratégie militaire niveau 2', 'Stratégie militaire niveau 3'),
|
||||
array('Immigration coloniale niveau 1', 'Immigration coloniale niveau 2', 'Immigration coloniale niveau 3', 'Urbanisme niveau 1', 'Urbanisme niveau 2', 'Urbanisme niveau 3', 'Grandes surfaces', 'Centre de loisirs', 'Arcologie', 'Sciences politiques niveau 1', 'Sciences politiques niveau 2', 'Sciences politiques niveau 3', 'Stratégie militaire niveau 1', 'Stratégie militaire niveau 2', 'Stratégie militaire niveau 3'),
|
||||
|
||||
array('Projectile Haut Densité niveau 1', 'Projectile Haut Densité niveau 2', 'Projectile Haut Densité niveau 3', 'Assistance de visée niveau 1', 'Assistance de visée niveau 2', 'Assistance de visée niveau 3', 'Guidage laser niveau 1', 'Guidage laser niveau 2', 'Guidage laser niveau 3', 'Condensateurs rapides niveau 1', 'Condensateurs rapides niveau 2', 'Condensateurs rapides niveau 3', 'Balistique avancée niveau 1', 'Balistique avancée niveau 2', 'Balistique avancée niveau 3', 'Accélération magnétique niveau 1', 'Accélération magnétique niveau 2', 'Accélération magnétique niveau 3'),
|
||||
array('Robotique niveau 1', 'Robotique niveau 2', 'Robotique niveau 3', 'Ingénierie atomique niveau 1', 'Ingénierie atomique niveau 2', 'Ingénierie atomique niveau 3', 'Nano-régénération niveau ', 'Nano-régénération niveau 2', 'Nano-régénération niveau 3', 'Squelette renforcé niveau 1', 'Squelette renforcé niveau 2', 'Squelette renforcé niveau 3', 'Armatures enrichies niveau 1', 'Armatures enrichies niveau 2', 'Armatures enrichies niveau 3', 'Composés avancés niveau 1', 'Composés avancés niveau 2', 'Composés avancés niveau 3', 'Alliage niveau 1', 'Alliage niveau 2', 'Alliage niveau 3', 'Alliage avancé niveau 1', 'Alliage avancé niveau 2', 'Alliage avancé niveau 3', 'Armure moléculaire niveau 1', 'Armure moléculaire niveau 2', 'Armure moléculaire niveau 3'),
|
||||
|
|
@ -165,8 +171,7 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
'~#DESCRIPTION MANQUANTE#~ Drone',
|
||||
'~#DESCRIPTION MANQUANTE#~ Station de defense');
|
||||
}
|
||||
//else {
|
||||
elseif ($race == 'humain') {
|
||||
elseif ($race == 'humain' || $race == "none") {
|
||||
$ressourc = array('Métal','Cristal','Hydrogène','Énergie','Crédits');
|
||||
$casernen = array('Marine','Fusiller','Grenadier','T.C.A.O.','Sniper','Spartan','Médecin','Ingénieur','Soldat exo squelette');
|
||||
$casernde = array( 'Les marines constituent l\'infanterie de base de vos forces militaires. De faible puissance et de résistance plutôt médiocre, ils rivalisent avec les unités covenants standard. Ils sont équipés d\'une armure de kevlar renforcée et d\'un SMG.',
|
||||
|
|
@ -180,6 +185,7 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
'Les soldats exo squelettiques possèdent des armures de combat très résistantes et d\'une puissance énorme mais contre balancée par une faible autonomie d\'énergie, une mobilité faible et d\'une discrétion auditive aussi silencieuse qu\'un char d\'assaut dans un champs de mines lotus.');
|
||||
$casernea = array('marine(s)','fusiller(s)','grenadier(s)','T.C.A.O.','sniper(s)','spartan(s)','médecin(s)','ingénieur(s)','soldat(s) exo squelette');
|
||||
$casernei = array('marines.jpg','marinehf0.jpg','grenadier.jpg','TCAO2.jpg','sniper.jpg','spartan.jpg','medecin.jpg','ingenieurs.jpg','exosquelettehbpb2.jpg');
|
||||
//$batiment = array('Usine de métallurgie','Usine de cristal','Synchronisateur d\'hydrogène','Centrale solaire','Centrale énergétique','Base radar','Centre de recherches','Chantier terrestre','Chantier spatial','Ecole militaire','Silo de stockage','Centrale informatique', 'Module résidentiel', 'Arcologie', 'Centre commercial', 'Centre de loisirs', 'Centre administratif');
|
||||
$batiment = array('Usine de métallurgie','Usine de cristal','Synchronisateur d\'hydrogène','Centrale solaire','Centrale énergétique','Base radar','Centre de recherches','Chantier terrestre','Chantier spatial','Ecole militaire','Silo de stockage','Centrale informatique');
|
||||
$batimede = array( 'Cette usine traite tous les métaux recueillis afin de produire du titanium-A ou différents types d\'alliages de qualité pour vos différentes constructions planétaires ou spatiales. Chaque niveau augmente la production de métal.',
|
||||
'L\'usine de cristal filtre les déchets récoltés avec les cristaux. Une fois séparés du reste ils sont classés par qualité par une quantité d\'appareils de haute technologie. Plus les cristaux sont purs plus ceux-ci peuvent être transformés en unités de stockage de données ou en conducteurs énergétiques de haute qualité. Plus ce bâtiment sera développé, plus vous pourrez traiter de cristaux rapidement.',
|
||||
|
|
@ -192,14 +198,19 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
'Le chantier spatial permet de construire vôtre flotte de vaisseaux spatiaux. Généralement à la limite de l\'atmosphère d\'une planète il ne peut cependant se déplacer et doit impérativement rester en orbite. Le chantier spatial, bien que ressemblant à une station spatial, ne peut être détruit grâce à sa position qui lui confère un camouflage total.',
|
||||
'L\'académie militaire forme les meilleurs officiers et sous-officiers de la galaxie. Ces hommes expérimentés vous aideront à choisir de meilleures stratégies défensives ou offensives ou encore même économiques face aux différentes situations qui vous seront imposées. Plus vous augmenterez le niveau de cette structure plus vos officiers seront rapides et efficaces dans leurs tâches.',
|
||||
'Comme toutes choses, vos ressources ont besoin d\'espace pour être stockées ; c\'est pourquoi ces énormes silos vous seront d\'une aide précieuse afin d\'y renfermer une grande quantité de matières premières pour toutes vos productions. Plus le niveau du silo est haut, plus il pourra contenir de ressources supplémentaires.',
|
||||
'La centrale informatique est le coeur de votre planète, le cerveau de votre territoire, analysant chaque particule détectée avec grand soin. Plus votre centrale est améliorée, plus rapidement et aisément les données seront traitées.');
|
||||
$batimend = array('mine_m','mine_c','!!','centrale_s','centrale_f','radar','recherches','chantier_terrestre','???','ecole_militaire','silo','centre_info');
|
||||
$batimeni = array('mine_m.jpg','mine_c.png','synchroniseur.jpg','centrale solaire.jpg','centrale electrique.jpg','baseradardl3.jpg','recherches.jpg','chantierterrestrecopybj8.jpg','chantier spatial.jpg','ecole militaire.jpg','stockage.jpg','search0yp.jpg');
|
||||
'La centrale informatique est le coeur de votre planète, le cerveau de votre territoire, analysant chaque particule détectée avec grand soin. Plus votre centrale est améliorée, plus rapidement et aisément les données seront traitées.',
|
||||
'~#DESCRIPTION MANQUANTE#~ Module résidentiel',
|
||||
'~#DESCRIPTION MANQUANTE#~ Arcologie',
|
||||
'~#DESCRIPTION MANQUANTE#~ Centre commercial',
|
||||
'~#DESCRIPTION MANQUANTE#~ Centre de loisirs',
|
||||
'~#DESCRIPTION MANQUANTE#~ Centre administratif');
|
||||
//$batimend = array('mine_m','mine_c','!!','centrale_s','centrale_f','radar','recherches','chantier_terrestre','???','ecole_militaire','silo','centre_info','habitation','arcologie','commercial','loisir','administration');
|
||||
$batimeni = array('mine_m.jpg','mine_c.png','synchroniseur.jpg','centrale solaire.jpg','centrale electrique.jpg','baseradardl3.jpg','recherches.jpg','chantierterrestrecopybj8.jpg','chantier spatial.jpg','ecole militaire.jpg','stockage.jpg','search0yp.jpg', '../humain_na.jpg', '../humain_na.jpg', '../humain_na.jpg', '../humain_na.jpg', '../humain_na.jpg');
|
||||
$technolo = array(
|
||||
array('Forage niveau 1', 'Forage niveau 2', 'Forage niveau 3', 'Commerce galactique niveau 1', 'Rendement métal niveau 1', 'Rendement métal niveau 2', 'Rendement métal niveau 3', 'Rendement cristal niveau 1', 'Rendement cristal niveau 2', 'Rendement cristal niveau 3', 'Rendement hydrogène niveau 1', 'Rendement hydrogène niveau 2', 'Rendement hydrogène niveau 3', 'Théorie du Marché niveau 1', 'Théorie du Marché niveau 2', 'Théorie du Marché niveau 3', 'Fonderies avancées niveau 1', 'Fonderies avancées niveau 2', 'Fonderies avancées niveau 3'),
|
||||
array('Forage niveau 1', 'Forage niveau 2', 'Forage niveau 3', 'Commerce galactique', 'Rendement métal niveau 1', 'Rendement métal niveau 2', 'Rendement métal niveau 3', 'Rendement cristal niveau 1', 'Rendement cristal niveau 2', 'Rendement cristal niveau 3', 'Rendement hydrogène niveau 1', 'Rendement hydrogène niveau 2', 'Rendement hydrogène niveau 3', 'Théorie du Marché niveau 1', 'Théorie du Marché niveau 2', 'Théorie du Marché niveau 3', 'Fonderies avancées niveau 1', 'Fonderies avancées niveau 2', 'Fonderies avancées niveau 3'),
|
||||
array('Maîtrise énergie niveau 1', 'Maîtrise énergie niveau 2', 'Maîtrise énergie niveau 3', 'Réacteur à combustion niveau 1', 'Réacteur à combustion niveau 2', 'Réacteur à combustion niveau 3', 'Réacteur à fusion niveau 1', 'Réacteur à fusion niveau 2', 'Réacteur à fusion niveau 3', 'Réacteur à fusion type II niveau 1', 'Réacteur à fusion type II niveau 2', 'Réacteur à fusion type II niveau 3', 'Informatique niveau 1', 'Informatique niveau 2', 'Informatique niveau 3', 'IA niveau 1', 'IA niveau 2', 'IA niveau 3', 'Télécommunications niveau 1', 'Télécommunications niveau 2', 'Télécommunications niveau 3', 'Polymères radars niveau 1', 'Polymères radars niveau 2', 'Polymères radars niveau 3', 'Espionnage niveau 1', 'Espionnage niveau 2', 'Espionnage niveau 3', 'Contre-espionnage niveau 1', 'Contre-espionnage niveau 2', 'Contre-espionnage niveau 3'),
|
||||
array('Constructions planétaires niveau 1', 'Constructions planétaires niveau 2', 'Constructions planétaires niveau 3', 'Construction optimisée', 'Ingénierie orbitale', 'Aménagement territorial niveau 1', 'Aménagement territorial niveau 2', 'Aménagement territorial niveau 3'),
|
||||
array('Immigration coloniale niveau 1', 'Sciences politiques niveau 1', 'Immigration coloniale niveau 2', 'Urbanisme niveau 1', 'Immigration coloniale niveau 3', 'Urbanisme niveau 2', 'Grandes surfaces', 'Centre de loisirs', 'Arcologie', 'Urbanisme niveau 3', 'Sciences politiques niveau 2', 'Stratégie militaire niveau 1', 'Sciences politiques niveau 3', 'Stratégie militaire niveau 2', 'Stratégie militaire niveau 3'),
|
||||
array('Immigration coloniale niveau 1', 'Immigration coloniale niveau 2', 'Immigration coloniale niveau 3', 'Urbanisme niveau 1', 'Urbanisme niveau 2', 'Urbanisme niveau 3', 'Grandes surfaces', 'Centre de loisirs', 'Arcologie', 'Sciences politiques niveau 1', 'Sciences politiques niveau 2', 'Sciences politiques niveau 3', 'Stratégie militaire niveau 1', 'Stratégie militaire niveau 2', 'Stratégie militaire niveau 3'),
|
||||
|
||||
array('Projectile Haut Densité niveau 1', 'Projectile Haut Densité niveau 2', 'Projectile Haut Densité niveau 3', 'Assistance de visée niveau 1', 'Assistance de visée niveau 2', 'Assistance de visée niveau 3', 'Guidage laser niveau 1', 'Guidage laser niveau 2', 'Guidage laser niveau 3', 'Condensateurs rapides niveau 1', 'Condensateurs rapides niveau 2', 'Condensateurs rapides niveau 3', 'Balistique avancée niveau 1', 'Balistique avancée niveau 2', 'Balistique avancée niveau 3', 'Accélération magnétique niveau 1', 'Accélération magnétique niveau 2', 'Accélération magnétique niveau 3'),
|
||||
array('Robotique niveau 1', 'Robotique niveau 2', 'Robotique niveau 3', 'Ingénierie atomique niveau 1', 'Ingénierie atomique niveau 2', 'Ingénierie atomique niveau 3', 'Nano-régénération niveau ', 'Nano-régénération niveau 2', 'Nano-régénération niveau 3', 'Squelette renforcé niveau 1', 'Squelette renforcé niveau 2', 'Squelette renforcé niveau 3', 'Armatures enrichies niveau 1', 'Armatures enrichies niveau 2', 'Armatures enrichies niveau 3', 'Composés avancés niveau 1', 'Composés avancés niveau 2', 'Composés avancés niveau 3', 'Alliage niveau 1', 'Alliage niveau 2', 'Alliage niveau 3', 'Alliage avancé niveau 1', 'Alliage avancé niveau 2', 'Alliage avancé niveau 3', 'Armure moléculaire niveau 1', 'Armure moléculaire niveau 2', 'Armure moléculaire niveau 3'),
|
||||
|
|
|
|||
235
game/vars.php
|
|
@ -1,6 +1,7 @@
|
|||
<?php //vars.php : contient toutes les valeurs pour construire chaque batiments, unités ou technologies
|
||||
if (!isset($technolo)) {
|
||||
if (empty($race)) $race = $sess->values['race'];
|
||||
if (empty($race) && empty($sess->values['race'])) $race = "none";
|
||||
elseif (empty($race)) $race = $sess->values['race'];
|
||||
include(_FCORE."../game/noms.php");
|
||||
}
|
||||
$nanite = 0;
|
||||
|
|
@ -122,7 +123,7 @@ array(
|
|||
),
|
||||
0
|
||||
);
|
||||
$batimentVAR = array('mine_m','mine_c','mine_h','centrale_s','centrale_f','radar','labo','chantier_terrestre','chantier_spatial','caserne','silo','centre_info');
|
||||
$batimentVAR = array('mine_m','mine_c','mine_h','centrale_s','centrale_f','radar','labo','chantier_terrestre','chantier_spatial','caserne','silo','centre_info');//,'habitation','arcologie','commercial','loisir','administration');
|
||||
$batimentCALC = array(
|
||||
array(
|
||||
'$a = ceil(pow(1.5,$n)*68);',
|
||||
|
|
@ -195,7 +196,12 @@ $batimentCALC = array(
|
|||
'$b = ceil(pow(1.7,$planete->batiments[11])*420);',
|
||||
'$c = ceil(pow(1.7,$planete->batiments[11])*100);',
|
||||
'$sec = ceil((pow(1.9,$planete->batiments[11])*800)/((0.0025*$planete->casernes[7])+1));'
|
||||
)
|
||||
),
|
||||
array(),
|
||||
array(),
|
||||
array(),
|
||||
array(),
|
||||
array()
|
||||
);
|
||||
$batimentTECH = array(
|
||||
0,
|
||||
|
|
@ -208,16 +214,27 @@ $batimentTECH = array(
|
|||
0,
|
||||
0,
|
||||
array(
|
||||
array($technolo[2][3], 'techno_inge', 8589934592)
|
||||
array($technolo[2][3], 'techno_inge2', 9)
|
||||
),
|
||||
array(
|
||||
array($technolo[2][4], 'techno_inge', 17179869184)
|
||||
array($technolo[2][4], 'techno_inge2', 17)
|
||||
),
|
||||
0,
|
||||
0,
|
||||
array(
|
||||
array($technolo[1][12], 'techno_inge', 4096)
|
||||
)
|
||||
),
|
||||
0,
|
||||
array(
|
||||
array($technolo[3][8], 'techno_poli', 256)
|
||||
),
|
||||
array(
|
||||
array($technolo[3][6], 'techno_poli', 64)
|
||||
),
|
||||
array(
|
||||
array($technolo[3][7], 'techno_poli', 128)
|
||||
),
|
||||
0
|
||||
);
|
||||
|
||||
$technoloVAR = array('informatique','detection','armement','blindage','energie_t','reacteur','reacteur_f','reacteur_ff','medecine','tactique','spartan','prodfile');
|
||||
|
|
@ -753,147 +770,147 @@ $technologiesCALC = array(
|
|||
array(
|
||||
array(1, 0, 1000, 54000),
|
||||
array(2, 1, 2000, 90000),
|
||||
array(4, 2, 4000, 126000),
|
||||
array(4, 3, 4000, 126000),
|
||||
array(8, 1, 4000, 126000),
|
||||
array(16, 1, 2000, 72000),
|
||||
array(32, 16, 4000, 108000),
|
||||
array(64, 32, 8000, 144000),
|
||||
array(32, 17, 4000, 108000),
|
||||
array(64, 49, 8000, 144000),
|
||||
array(128, 1, 2000, 72000),
|
||||
array(256, 128, 4000, 108000),
|
||||
array(512, 256, 8000, 144000),
|
||||
array(256, 129, 4000, 108000),
|
||||
array(512, 385, 8000, 144000),
|
||||
array(1024, 1, 2000, 72000),
|
||||
array(2048, 1024, 4000, 108000),
|
||||
array(4096, 2048, 8000, 144000),
|
||||
array(8192, 8, 3000, 126000),
|
||||
array(16384, 8192, 6000, 162000),
|
||||
array(32768, 16384, 12000, 198000),
|
||||
array(65536, 1168, 3000, 126000),
|
||||
array(131072, 65536, 6000, 162000),
|
||||
array(262144, 131072, 12000, 198000)
|
||||
array(2048, 1025, 4000, 108000),
|
||||
array(4096, 3073, 8000, 144000),
|
||||
array(8192, 9, 3000, 126000),
|
||||
array(16384, 8201, 6000, 162000),
|
||||
array(32768, 24585, 12000, 198000),
|
||||
array(65536, 1169, 3000, 126000),
|
||||
array(131072, 66705, 6000, 162000),
|
||||
array(262144, 197777, 12000, 198000)
|
||||
),
|
||||
//Ingénieurie
|
||||
array(
|
||||
array(1, 0, 1000, 54000),
|
||||
array(2, 1, 2000, 90000),
|
||||
array(4, 2, 4000, 126000),
|
||||
array(4, 3, 4000, 126000),
|
||||
array(8, 1, 2000, 90000),
|
||||
array(16, 8, 4000, 126000),
|
||||
array(32, 16, 8000, 162000),
|
||||
array(64, 8, 3000, 126000),
|
||||
array(128, 64, 6000, 162000),
|
||||
array(256, 128, 12000, 198000),
|
||||
array(512, 64, 4000, 162000),
|
||||
array(1024, 512, 8000, 198000),
|
||||
array(2048, 1024, 16000, 234000),
|
||||
array(16, 9, 4000, 126000),
|
||||
array(32, 25, 8000, 162000),
|
||||
array(64, 9, 3000, 126000),
|
||||
array(128, 73, 6000, 162000),
|
||||
array(256, 201, 12000, 198000),
|
||||
array(512, 73, 4000, 162000),
|
||||
array(1024, 585, 8000, 198000),
|
||||
array(2048, 1609, 16000, 234000),
|
||||
array(4096, 0, 1000, 54000),
|
||||
array(8192, 4096, 2000, 90000),
|
||||
array(16384, 8192, 4000, 126000),
|
||||
array(16384, 12288, 4000, 126000),
|
||||
array(32768, 4096, 2000, 54000),
|
||||
array(65536, 32768, 4000, 90000),
|
||||
array(131072, 65536, 8000, 126000),
|
||||
array(262144, 8192, 2000, 72000),
|
||||
array(524288, 262144, 4000, 108000),
|
||||
array(1048576, 524288, 8000, 144000),
|
||||
array(2097152, 262144, 2000, 54000),
|
||||
array(4194304, 2097152, 4000, 90000),
|
||||
array(8388608, 4194304, 8000, 126000),
|
||||
array(16777216, 16384, 2000, 54000),
|
||||
array(33554432, 16777216, 4000, 90000),
|
||||
array(67108864, 33554432, 8000, 126000),
|
||||
array(134217728, 16384, 3000, 90000),
|
||||
array(268435456, 134217728, 6000, 126000),
|
||||
array(536870912, 268435456, 12000, 162000)
|
||||
array(65536, 36864, 4000, 90000),
|
||||
array(131072, 102400, 8000, 126000),
|
||||
array(262144, 12288, 2000, 72000),
|
||||
array(524288, 274432, 4000, 108000),
|
||||
array(1048576, 798720, 8000, 144000),
|
||||
array(2097152, 274432, 2000, 54000),
|
||||
array(4194304, 2371584, 4000, 90000),
|
||||
array(8388608, 6565888, 8000, 126000),
|
||||
array(16777216, 28672, 2000, 54000),
|
||||
array(33554432, 16805888, 4000, 90000),
|
||||
array(67108864, 50360320, 8000, 126000),
|
||||
array(134217728, 28672, 3000, 90000),
|
||||
array(268435456, 134246400, 6000, 126000),
|
||||
array(536870912, 402681856, 12000, 162000)
|
||||
),
|
||||
//Ingénieurie 2
|
||||
array(
|
||||
array(1, 0, 1000, 36000),
|
||||
array(2, 1, 2000, 72000),
|
||||
array(4, 2, 4000, 108000),
|
||||
array(4, 3, 4000, 108000),
|
||||
array(8, 1, 4000, 126000),
|
||||
array(16, 1, 4000, 126000),
|
||||
array(32, 24, 4000, 126000),
|
||||
array(64, 32, 8000, 162000),
|
||||
array(128, 64, 16000, 198000)
|
||||
array(32, 25, 4000, 126000),
|
||||
array(64, 57, 8000, 162000),
|
||||
array(128, 121, 16000, 198000)
|
||||
),
|
||||
//Politique
|
||||
array(
|
||||
array(1, 0, 1000, 36000),
|
||||
array(512, 0, 1000, 90000),
|
||||
array(2, 1, 2000, 72000),
|
||||
array(4, 3, 4000, 108000),
|
||||
array(8, 1, 2000, 72000),
|
||||
array(4, 2, 4000, 108000),
|
||||
array(16, 8, 4000, 108000),
|
||||
array(64, 8, 4000, 126000),
|
||||
array(16, 9, 4000, 108000),
|
||||
array(32, 25, 8000, 144000),
|
||||
array(64, 9, 4000, 126000),
|
||||
array(128, 8, 6000, 162000),
|
||||
array(256, 8, 6000, 162000),
|
||||
array(32, 16, 8000, 144000),
|
||||
array(256, 9, 6000, 162000),
|
||||
array(512, 0, 1000, 90000),
|
||||
array(1024, 512, 2000, 90000),
|
||||
array(2048, 1536, 4000, 90000),
|
||||
array(4096, 512, 2000, 72000),
|
||||
array(2048, 1024, 4000, 90000),
|
||||
array(8192, 4096, 4000, 108000),
|
||||
array(16384, 8192, 8000, 144000)
|
||||
array(8192, 4608, 4000, 108000),
|
||||
array(16384, 12800, 8000, 144000)
|
||||
),
|
||||
|
||||
//Armement
|
||||
array(
|
||||
array(1, 0, 1000, 36000),
|
||||
array(2, 1, 2000, 72000),
|
||||
array(4, 2, 4000, 108000),
|
||||
array(4, 3, 4000, 108000),
|
||||
array(8, 1, 1000, 54000),
|
||||
array(16, 8, 2000, 90000),
|
||||
array(32, 16, 4000, 126000),
|
||||
array(64, 8, 2000, 72000),
|
||||
array(128, 64, 4000, 108000),
|
||||
array(256, 128, 8000, 144000),
|
||||
array(512, 64, 2000, 90000),
|
||||
array(1024, 512, 4000, 126000),
|
||||
array(2048, 1024, 8000, 162000),
|
||||
array(16, 9, 2000, 90000),
|
||||
array(32, 25, 4000, 126000),
|
||||
array(64, 9, 2000, 72000),
|
||||
array(128, 73, 4000, 108000),
|
||||
array(256, 201, 8000, 144000),
|
||||
array(512, 73, 2000, 90000),
|
||||
array(1024, 585, 4000, 126000),
|
||||
array(2048, 1609, 8000, 162000),
|
||||
array(4096, 1, 3000, 108000),
|
||||
array(8192, 4096, 6000, 144000),
|
||||
array(16384, 8192, 12000, 180000),
|
||||
array(32768, 4096, 3000, 126000),
|
||||
array(65536, 32768, 6000, 162000),
|
||||
array(131072, 65536, 12000, 198000)
|
||||
array(8192, 4097, 6000, 144000),
|
||||
array(16384, 12289, 12000, 180000),
|
||||
array(32768, 4097, 3000, 126000),
|
||||
array(65536, 36865, 6000, 162000),
|
||||
array(131072, 102401, 12000, 198000)
|
||||
),
|
||||
//Défense
|
||||
array(
|
||||
array(1, 0, 1000, 36000),
|
||||
array(2, 1, 2000, 72000),
|
||||
array(4, 2, 4000, 108000),
|
||||
array(4, 3, 4000, 108000),
|
||||
array(8, 1, 2000, 72000),
|
||||
array(16, 8, 4000, 108000),
|
||||
array(32, 16, 8000, 144000),
|
||||
array(64, 8, 3000, 108000),
|
||||
array(128, 64, 6000, 144000),
|
||||
array(256, 128, 12000, 180000),
|
||||
array(16, 9, 4000, 108000),
|
||||
array(32, 25, 8000, 144000),
|
||||
array(64, 9, 3000, 108000),
|
||||
array(128, 73, 6000, 144000),
|
||||
array(256, 201, 12000, 180000),
|
||||
array(512, 0, 1000, 36000),
|
||||
array(1024, 512, 2000, 72000),
|
||||
array(2048, 1024, 4000, 108000),
|
||||
array(2048, 1536, 4000, 108000),
|
||||
array(4096, 512, 2000, 72000),
|
||||
array(8192, 4096, 4000, 108000),
|
||||
array(16384, 8192, 8000, 144000),
|
||||
array(32768, 4096, 3000, 108000),
|
||||
array(65536, 32768, 6000, 144000),
|
||||
array(131072, 65536, 12000, 180000),
|
||||
array(8192, 4608, 4000, 108000),
|
||||
array(16384, 12800, 8000, 144000),
|
||||
array(32768, 4608, 3000, 108000),
|
||||
array(65536, 37376, 6000, 144000),
|
||||
array(131072, 102912, 12000, 180000),
|
||||
array(262144, 512, 1000, 54000),
|
||||
array(524288, 262144, 2000, 90000),
|
||||
array(1048576, 524288, 4000, 126000),
|
||||
array(2097152, 262144, 2000, 90000),
|
||||
array(4194304, 2097152, 4000, 126000),
|
||||
array(8388608, 4194304, 8000, 162000),
|
||||
array(16777216, 2097152, 3000, 126000),
|
||||
array(33554432, 16777216, 6000, 162000),
|
||||
array(67108864, 33554432, 12000, 198000),
|
||||
array(524288, 262656, 2000, 90000),
|
||||
array(1048576, 786944, 4000, 126000),
|
||||
array(2097152, 262656, 2000, 90000),
|
||||
array(4194304, 2359808, 4000, 126000),
|
||||
array(8388608, 6554112, 8000, 162000),
|
||||
array(16777216, 2359808, 3000, 126000),
|
||||
array(33554432, 19137024, 6000, 162000),
|
||||
array(67108864, 52691456, 12000, 198000)
|
||||
),
|
||||
//Défense 2
|
||||
array(
|
||||
array(1, 0, 2000, 72000),
|
||||
array(2, 1, 4000, 144000),
|
||||
array(4, 2, 6000, 216000),
|
||||
array(4, 3, 6000, 216000),
|
||||
array(8, 0, 2000, 72000),
|
||||
array(16, 8, 4000, 144000),
|
||||
array(32, 16, 6000, 216000),
|
||||
array(64, 18, 8000, 288000)
|
||||
array(32, 24, 6000, 216000),
|
||||
array(64, 27, 8000, 288000)
|
||||
),
|
||||
//Projets expérimentaux
|
||||
array(
|
||||
|
|
@ -917,22 +934,22 @@ $technologiesCALC = array(
|
|||
array(
|
||||
array(1, 0, 4000, 54000),
|
||||
array(2, 1, 6000, 72000),
|
||||
array(4, 2, 8000, 90000),
|
||||
array(8, 4, 10000, 108000),
|
||||
array(16, 8, 12000, 126000),
|
||||
array(32, 16, 14000, 144000),
|
||||
array(64, 32, 16000, 162000),
|
||||
array(128, 64, 18000, 180000),
|
||||
array(256, 128, 20000, 198000),
|
||||
array(512, 256, 22000, 216000),
|
||||
array(1024, 512, 24000, 234000),
|
||||
array(2048, 1024, 26000, 252000),
|
||||
array(4096, 2048, 28000, 270000),
|
||||
array(8192, 4096, 30000, 288000),
|
||||
array(16384, 8192, 32000, 306000),
|
||||
array(32768, 16384, 34000, 324000),
|
||||
array(65536, 32768, 36000, 342000),
|
||||
array(131072, 65536, 38000, 360000)
|
||||
array(4, 3, 8000, 90000),
|
||||
array(8, 7, 10000, 108000),
|
||||
array(16, 15, 12000, 126000),
|
||||
array(32, 31, 14000, 144000),
|
||||
array(64, 63, 16000, 162000),
|
||||
array(128, 127, 18000, 180000),
|
||||
array(256, 255, 20000, 198000),
|
||||
array(512, 511, 22000, 216000),
|
||||
array(1024, 1023, 24000, 234000),
|
||||
array(2048, 2047, 26000, 252000),
|
||||
array(4096, 4095, 28000, 270000),
|
||||
array(8192, 8191, 30000, 288000),
|
||||
array(16384, 16383, 32000, 306000),
|
||||
array(32768, 32767, 34000, 324000),
|
||||
array(65536, 65535, 36000, 342000),
|
||||
array(131072, 131071, 38000, 360000)
|
||||
)
|
||||
);
|
||||
?>
|
||||