forked from halo-battle/game
Version 1.9g
This commit is contained in:
parent
d028822d0b
commit
4c9814a99c
800 changed files with 237325 additions and 1949 deletions
|
|
@ -1,160 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Classe Bourse par Pierre-Olivier MERCIER
|
||||
* Dernière édition le 21 Juillet 2008
|
||||
* Copyright Halo-Battle Tous droits réservés
|
||||
*/
|
||||
class Bourse{
|
||||
var $bd;
|
||||
|
||||
var $id;
|
||||
var $nom;
|
||||
var $taxeA = 1.1;
|
||||
var $achatM;
|
||||
var $achatC;
|
||||
var $taxeV = 1;
|
||||
var $venteM;
|
||||
var $venteC;
|
||||
var $actionsUser;
|
||||
var $user;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param String $nom Nom de l'action
|
||||
* @param int $user ID du joueur à charger automatiquement
|
||||
*
|
||||
* @access protected
|
||||
*/
|
||||
function Bourse($nom = "", $user = 0){
|
||||
global $var___db, $config;
|
||||
$db = new bdd();
|
||||
$db->connexion();
|
||||
$this->bd = $db;
|
||||
|
||||
if (!empty($nom)) {
|
||||
$this->loadAction($nom);
|
||||
if (!empty($user)) $this->loadUser($user);
|
||||
}
|
||||
}
|
||||
|
||||
function loadAction($nom, $type = "nom"){
|
||||
global $table_bourse;
|
||||
$act = $this->bd->unique_query("SELECT * FROM $table_bourse WHERE $type = '$nom';");
|
||||
$this->id = $act['id'];
|
||||
$this->nom = $act['nom'];
|
||||
$this->achatM = $act['achatM'];
|
||||
$this->achatC = $act['achatC'];
|
||||
$this->venteM = $act['venteM'];
|
||||
$this->venteC = $act['venteC'];
|
||||
}
|
||||
|
||||
function loadUser($user, $type = "id"){
|
||||
global $table_user;
|
||||
$act = $this->bd->unique_query("SELECT id, bourse FROM $table_user WHERE $type = '$user';");
|
||||
$this->user = $act['id'];
|
||||
$this->traitUser($act['bourse']);
|
||||
}
|
||||
|
||||
function traitUser($start){
|
||||
$end = array();
|
||||
$start = explode(';', $start);
|
||||
$cnt = count($start);
|
||||
for($i = 0; $i < $cnt; $i++){
|
||||
$tmp = explode(':', $start[$i]);
|
||||
$end[$tmp[0]] = explode(',', $tmp[1]);
|
||||
}
|
||||
$this->actionsUser = $end;
|
||||
}
|
||||
|
||||
function addAction($nb){
|
||||
$ret = array(floor($this->achatM * $nb * $this->taxeA), floor($this->achatC * $nb * $this->taxeA));
|
||||
|
||||
$this->achatM *= pow(1.1, $nb);
|
||||
$this->achatC *= pow(1.1, $nb);
|
||||
$this->venteM *= pow(1.1, $nb);
|
||||
$this->venteC *= pow(1.1, $nb);
|
||||
|
||||
for($i = 0; $i < $nb; $i++){
|
||||
$this->actionsUser[$this->id][] = time();
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function delAction($nb){
|
||||
if ($this->action() < $nb) $nb = $this->action();
|
||||
|
||||
$ret = array(floor($this->venteM * $nb / $this->taxeV), floor($this->venteC * $nb / $this->taxeV));
|
||||
|
||||
$this->achatM /= pow(1.1, $nb);
|
||||
$this->achatC /= pow(1.1, $nb);
|
||||
$this->venteM /= pow(1.1, $nb);
|
||||
$this->venteC /= pow(1.1, $nb);
|
||||
|
||||
for($i = 0; $i < $nb; $i++){
|
||||
unset($this->actionsUser[$this->id][$i]);
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function actionIn24Hours(){
|
||||
$nb = 0;
|
||||
$cnt = count($this->actionsUser[$this->id]);
|
||||
for($i = 0; $i < $cnt; $i++){
|
||||
if ($this->actionsUser[$this->id][$i] > time() - 86400) $nb++;
|
||||
}
|
||||
return $nb;
|
||||
}
|
||||
|
||||
function action(){
|
||||
return count($this->actionsUser[$this->id]);
|
||||
}
|
||||
|
||||
function maj(){
|
||||
$this->majBourse();
|
||||
$this->majUser();
|
||||
$this->fileSave();
|
||||
}
|
||||
|
||||
function majBourse(){
|
||||
global $table_bourse;
|
||||
|
||||
$this->bd->query("UPDATE $table_bourse SET nom = '".$this->nom."', achatM = '".$this->achatM."', achatC = '".$this->achatC."', venteM = '".$this->venteM."', venteC = '".$this->venteC."' WHERE id = ".$this->id.";");
|
||||
}
|
||||
|
||||
function majUser(){
|
||||
global $table_user;
|
||||
|
||||
$champ = '';
|
||||
foreach($this->actionsUser as $key => $cell) {
|
||||
if (empty($champ)) $champ .= $key.':'.implode(',', $cell);
|
||||
else $champ .= ';'.$key.':'.implode(',', $cell);
|
||||
}
|
||||
|
||||
$this->bd->query("UPDATE $table_user SET bourse = '$champ' WHERE id = ".$this->user.";");
|
||||
}
|
||||
|
||||
|
||||
function fileSave(){
|
||||
$fichier = fopen(_FCORE."hb_game/bourse/".$this->id.".".strftime('%Y%m%d').".bourse",'a+');
|
||||
fwrite($fichier, time().';'.$this->achatM.';'.$this->achatC.';'.$this->venteM.';'.$this->venteC);
|
||||
fclose($fichier);
|
||||
}
|
||||
|
||||
|
||||
function newGroupe($nom, $achatM, $achatC, $description = ""){
|
||||
global $table_bourse;
|
||||
|
||||
$venteM = floor($achatM * pow(1.1, 5));
|
||||
$venteC = floor($achatC * pow(1.1, 5));
|
||||
|
||||
$this->bd->query("INSERT INTO $table_bourse (nom, achatM, achatC, venteM, venteC, description) VALUES('$nom', '$achatM', '$achatC', '$venteM', '$venteC', '$description');");
|
||||
}
|
||||
|
||||
function editGroupe($description){
|
||||
//TODO toute cette fonction !!
|
||||
}
|
||||
}
|
||||
?>
|
||||
144
game/Class/class.alliance.php
Normal file
144
game/Class/class.alliance.php
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
<?php
|
||||
/***************************************************************************
|
||||
* class.alliance.php
|
||||
* --------------------
|
||||
* begin : Vendredi 10 octobre 2008
|
||||
* update : Samedi 11 octobre 2008
|
||||
* email : nemunaire@gmail.com
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
class Alliance extends File{
|
||||
var $id,
|
||||
$race,
|
||||
$fondateur,
|
||||
$sante,
|
||||
$nom,
|
||||
$tag,
|
||||
$galaxie,
|
||||
$ss,
|
||||
$nom_asteroide,
|
||||
$image_asteroide,
|
||||
$debris_met,
|
||||
$debris_cri,
|
||||
$credits,
|
||||
$metal,
|
||||
$cristal,
|
||||
$hydrogene,
|
||||
$file_abat,
|
||||
$file_vais,
|
||||
$alli_batiments = array(),
|
||||
$vaisseaux = array(),
|
||||
$modif = array();
|
||||
|
||||
/**
|
||||
* Constructeur
|
||||
* @param int $id id de l'alliance à importer
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function Alliance($id = 0){
|
||||
if (!empty($id)) {
|
||||
global $var___db, $config, $table_alliances;
|
||||
global $alli_batimentVAR, $nomvaisnVAR;
|
||||
$bdd = new bdd();
|
||||
$bdd->connexion();
|
||||
$bdd->escape($id);
|
||||
$alli = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = $id;");
|
||||
$bdd->deconnexion();
|
||||
if (!empty($alli)) {
|
||||
$this->id = $alli["id"];
|
||||
$this->race = $alli["race"];
|
||||
$this->fondateur = $alli["fondateur"];
|
||||
$this->sante = $alli["sante"];
|
||||
$this->nom = $alli["nom"];
|
||||
$this->tag = $alli["tag"];
|
||||
$this->galaxie = $alli["galaxie"];
|
||||
$this->ss = $alli["ss"];
|
||||
$this->nom_asteroide = $alli["nom_asteroide"];
|
||||
$this->image_asteroide = $alli["image_asteroide"];
|
||||
$this->debris_met = $alli["debris_met"];
|
||||
$this->debris_cri = $alli["debris_cri"];
|
||||
$this->credits = $alli["credits"];
|
||||
$this->metal = $alli["metal"];
|
||||
$this->cristal = $alli["cristal"];
|
||||
$this->hydrogene = $alli["hydrogene"];
|
||||
|
||||
foreach($alli_batimentVAR as $bat){
|
||||
$this->alli_batiments[] = $alli[$bat];
|
||||
}
|
||||
$this->file_bat = unserialize($alli["file_bat"]);
|
||||
|
||||
foreach($nomvaisnVAR as $vais){
|
||||
$this->vaisseaux[] = $plan[$vais];
|
||||
}
|
||||
$this->file_vais = unserialize($alli["file_vais"]);
|
||||
|
||||
$this->actualiser();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Actualise les ressources de la planète en fonction de la production et termine les files d'attentes.
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function actualiser($actuFile = true){
|
||||
//Actualisation des files d'attentes
|
||||
if ($actuFile) {
|
||||
$this->file_pret("alli_batiments");
|
||||
$this->file_pret("vaisseaux");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Destructeur
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function __destruct(){
|
||||
global $var___db, $config, $table_alliances;
|
||||
$nb = count($this->modif);
|
||||
$out = array();
|
||||
$bdd = new bdd();
|
||||
$bdd->connexion();
|
||||
for($i = 0; $i < $nb; $i++){
|
||||
if (!is_array($this->{$this->modif[$i]})) {
|
||||
$bdd->escape($this->{$this->modif[$i]});
|
||||
if (is_int($this->{$this->modif[$i]}) || is_float($this->{$this->modif[$i]})) $out[] .= $this->modif[$i]." = ".$this->{$this->modif[$i]};
|
||||
else $out[] .= $this->modif[$i]." = '".$this->{$this->modif[$i]}."'";
|
||||
}
|
||||
else {
|
||||
if (ereg('file', $this->modif[$i])) {
|
||||
$prep = serialize($this->{$this->modif[$i]});
|
||||
$bdd->escape($prep);
|
||||
$out[] .= $this->modif[$i]." = '$prep'";
|
||||
}
|
||||
else {
|
||||
if ($this->modif[$i] == "batiments") $calc = "batiment";
|
||||
elseif ($this->modif[$i] == "alli_batiments") $calc = "alli_batiment";
|
||||
elseif ($this->modif[$i] == "technologies") $calc = "technolo";
|
||||
elseif ($this->modif[$i] == "casernes")$calc = "casernen";
|
||||
elseif ($this->modif[$i] == "terrestres") $calc = "nomterrn";
|
||||
elseif ($this->modif[$i] == "vaisseaux") $calc = "nomvaisn";
|
||||
elseif ($this->modif[$i] == "coeff_bat") $calc = "coeff";
|
||||
|
||||
if (!isset(${$calc.'VAR'})) global ${$calc.'VAR'};
|
||||
|
||||
$nombr = count(${$calc.'VAR'});
|
||||
for($j = 0; $j < $nombr; $j++){
|
||||
$bdd->escape($this->{$this->modif[$i]}[$j]);
|
||||
$out[] .= ${$calc.'VAR'}[$j]." = ".$this->{$this->modif[$i]}[$j]."";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!empty($out)) $plan = $bdd->unique_query("UPDATE $table_alliances SET ".implode(', ', $out)." WHERE id = ".$this->id.";");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -44,10 +44,13 @@ class Bourse{
|
|||
global $table_bourse;
|
||||
$this->bd->escape($nom);
|
||||
$act = $this->bd->unique_query("SELECT * FROM $table_bourse WHERE $type = '$nom';");
|
||||
$this->id = $act['id'];
|
||||
$this->nom = $act['nom'];
|
||||
$this->metal = $act['metal'];
|
||||
$this->cristal = $act['cristal'];
|
||||
if ($act) {
|
||||
$this->id = $act['id'];
|
||||
$this->nom = $act['nom'];
|
||||
$this->metal = $act['metal'];
|
||||
$this->cristal = $act['cristal'];
|
||||
}
|
||||
else erreur('Impossible de trouver cette action !', "red", '?p=bourse');
|
||||
}
|
||||
|
||||
function loadUser($user, $type = "id"){
|
||||
|
|
|
|||
360
game/Class/class.file.php
Normal file
360
game/Class/class.file.php
Normal file
|
|
@ -0,0 +1,360 @@
|
|||
<?php
|
||||
/***************************************************************************
|
||||
* class.file.php
|
||||
* ----------------
|
||||
* begin : Samedi 11 octobre 2008
|
||||
* update : Samedi 11 octobre 2008
|
||||
* email : nemunaire@gmail.com
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
class File{
|
||||
/**
|
||||
* Ajoute $nombre objets $objet dans la file $file
|
||||
* @param int $file Nom de la file d'attente
|
||||
* @param int $objet Id de l'objet à ajouter
|
||||
* @param int $nombre = 1 Nombre d'objet $objet à ajouter à la file
|
||||
*
|
||||
* @return int Numéro de l'erreur
|
||||
* @access public
|
||||
*/
|
||||
function file_addObjet($file, $objet, $nombre = 1){
|
||||
$planete = $this;
|
||||
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 "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;
|
||||
default: return 1;
|
||||
}
|
||||
|
||||
//On vérifie la taille maximale de la file d'attente
|
||||
if (!empty($this->technologies['techno_inge'])) {
|
||||
if (($this->technologies['techno_inge'] & 131072) == 131072) $max = 5;
|
||||
elseif (($this->technologies['techno_inge'] & 65536) == 65536) $max = 4;
|
||||
elseif (($this->technologies['techno_inge'] & 32768) == 32768) $max = 3;
|
||||
else $max = 2;
|
||||
}
|
||||
else $max = 3;
|
||||
|
||||
if ($file == "technologies") {
|
||||
global ${$file.'CALC'};
|
||||
|
||||
$file_tech = $nombre;
|
||||
$nombre = 1;
|
||||
|
||||
if (empty($technologiesCALC[$file_tech][$objet])) return 1;
|
||||
|
||||
//Vérification des conditions de recherche
|
||||
if (!(($this->technologies[$file_tech] & $technologiesCALC[$file_tech][$objet][1]) == $technologiesCALC[$file_tech][$objet][1] && !($this->technologies[$file_tech] & $technologiesCALC[$file_tech][$objet][0] && $this->technologies[$file_tech] != 0))) return 1;
|
||||
}
|
||||
else {
|
||||
global ${$calc}, ${$calc.'CALC'}, ${$calc.'TECH'};
|
||||
|
||||
//Vérification des conditions de construction
|
||||
if (empty(${$calc}[$objet]) || !requestDeblok(${$calc.'TECH'}[$objet], $this)) return 1;
|
||||
|
||||
//Vérification que l'on ait pas dépassé le nombre maximal de niveau
|
||||
if (!empty(${$calc.'LIMIT'}[$objet]) && ${$file}[$objet] >= ${$calc.'LIMIT'}[$objet]) return 1;
|
||||
|
||||
//Calcul du prochain niveau de l'objet
|
||||
$n = $this->{$file}[$objet] + 1;
|
||||
}
|
||||
|
||||
//Vérification qu'il n'y ait pas déjà une instance de l'objet déjà en construction
|
||||
if ($exist) return 2;
|
||||
|
||||
//Vérification que le nombre ne soit pas négatif
|
||||
if ($nombre < 0) 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];
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
//Vérification des ressources de la planète
|
||||
if ($this->metal < $a * $nombre) return 3;
|
||||
elseif ($this->cristal < $b * $nombre) return 3;
|
||||
elseif ($this->hydrogene < $c * $nombre) return 3;
|
||||
elseif ($this->credits < $d * $nombre) return 3;
|
||||
else {
|
||||
//Génération de la file d'attente
|
||||
$nb = count($this->{"file_".$court});
|
||||
|
||||
//Si le dernier objet est identique à celui que l'on veut construire
|
||||
if ($file == "technologies" && $max <= count($this->{"file_".$court})) return 4; //Vérification de la taille de la file d'attente
|
||||
elseif ($file == "technologies") $this->{"file_".$court}[] = array($objet, $file_tech);
|
||||
elseif ($nb > 1 && $objet == $this->{"file_".$court}[$nb-1][0]) {
|
||||
$this->{"file_".$court}[$nb-1][1] += $nombre;
|
||||
}
|
||||
elseif ($max <= count($this->{"file_".$court})) return 4; //Vérification de la taille de la file d'attente
|
||||
else $this->{"file_".$court}[] = array($objet, $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;
|
||||
|
||||
if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
function file_delObjet($file, $objet, $nombre = 1, $w = 99) {
|
||||
$planete = $this;
|
||||
switch($file){
|
||||
case "alli_batiments": $court = "abat"; $calc = "alli_batiment"; $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 = true; break;
|
||||
case "casernes": $court = "cas"; $calc = "casernen"; $exist = $this->file_exist($objet, "file_".$court); break;
|
||||
case "terrestres": $court = "ter"; $calc = "nomterrn"; $exist = $this->file_exist($objet, "file_".$court); break;
|
||||
case "vaisseaux": $court = "vais"; $calc = "nomvaisn"; $exist = $this->file_exist($objet, "file_".$court); break;
|
||||
default: return false;
|
||||
}
|
||||
|
||||
//Si l'objet n'est pas dans la file d'attente, on annule la suite
|
||||
if (!$exist) return 0;
|
||||
|
||||
if ($w == 99) $w = count($this->{"file_".$court})-1;
|
||||
|
||||
//On gère les files de type arbre
|
||||
if ($file == "technologies") {
|
||||
if (isset($this->{"file_".$court}[$objet])) {
|
||||
global ${$file.'CALC'};
|
||||
//On réinitialise le temps si c'est la première
|
||||
if ($objet == 1) $this->{"file_".$court}[0] = time();
|
||||
|
||||
$i = $objet;
|
||||
$filearbre = $this->{"file_".$court}[$objet+1][1];
|
||||
$objet = $this->{"file_".$court}[$objet+1][0];
|
||||
|
||||
if (!$this->file_exist($objet, $filearbre)) return 0;
|
||||
|
||||
unset($this->{"file_".$court}[$i+1]);
|
||||
$this->{"file_".$court} = array_merge($this->{"file_".$court});
|
||||
}
|
||||
}
|
||||
else {
|
||||
global ${$calc}, ${$calc.'CALC'};
|
||||
|
||||
for($i = $w; $i > 0; $i--) {
|
||||
if($this->{"file_".$court}[$i][0] == $objet){
|
||||
$nombre = min(abs($nombre), $this->{"file_".$court}[$i][1]);
|
||||
|
||||
if($this->{"file_".$court}[$i][1] <= $nombre) {
|
||||
unset($this->{"file_".$court}[$i]);
|
||||
$this->{"file_".$court} = array_merge($this->{"file_".$court});
|
||||
}
|
||||
else $this->{"file_".$court}[$i][1] -= $nombre;
|
||||
|
||||
if ($i == 1) $this->{"file_".$court}[0] = time();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//Calcul du prochain niveau de l'objet
|
||||
$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;
|
||||
}
|
||||
|
||||
//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;
|
||||
|
||||
return $nombre;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie l'existance dans la file $file d'attente de $objet
|
||||
* @param int $objet ID à vérifier
|
||||
* @param string $file Nom de la file d'attente
|
||||
*
|
||||
* @return boolean
|
||||
* @access public
|
||||
*/
|
||||
function file_exist($objet, $file){
|
||||
//On traite le cas d'une file type arbre
|
||||
if (is_numeric($file)) {
|
||||
foreach($this->file_tech as $key => $bout){
|
||||
if ($key == 0) continue;
|
||||
if($objet == $bout[0] && $file == $bout[1]) return true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (count($this->$file) <= 1) return false;
|
||||
foreach($this->$file as $key => $bout){
|
||||
if ($key == 0) continue;
|
||||
if($objet == $bout[0]) return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Actualise la file $file en terminant les constructions/entraînements.
|
||||
* @param string $file Nom de la file d'attente
|
||||
*
|
||||
* @return boolean
|
||||
* @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;
|
||||
case "batiments": $court = "bat"; $calc = "batiment"; break;
|
||||
case "technologies": $court = "tech"; $calc = "technolo"; break;
|
||||
case "casernes": $court = "cas"; $calc = "casernen"; break;
|
||||
case "terrestres": $court = "ter"; $calc = "nomterrn"; break;
|
||||
case "vaisseaux": $court = "vais"; $calc = "nomvaisn"; break;
|
||||
default: return false;
|
||||
}
|
||||
|
||||
if (empty($this->{"file_".$court}[0])) return false;
|
||||
|
||||
//Calcul du temps écoulé depuis le dernier entrainement validé
|
||||
$tps = time() - $this->{"file_".$court}[0];
|
||||
|
||||
if ($file == "technologies") {
|
||||
global ${$file.'CALC'};
|
||||
|
||||
foreach($this->{"file_".$court} as $key => $bout) {
|
||||
if ($key == 0) continue;
|
||||
|
||||
//Récupération du temps de recherche
|
||||
$sec = $technologiesCALC[$bout[1]][$bout[0]][3] / (1 + $planete->batiments[6] * 0.005);
|
||||
|
||||
//On applique les bonus politiques aux temps et coûts
|
||||
if (isset($this->politique) && $this->politique == 1 && ($file == "casernes" || $file == "terrestres" || $file == "vaisseaux")) {
|
||||
$sec *= 0.9;
|
||||
}
|
||||
|
||||
//Accélération du temps de construction
|
||||
$sec /= VITESSE;
|
||||
|
||||
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 !
|
||||
$this->{"file_".$court} = array_merge($this->{"file_".$court});
|
||||
|
||||
if (!in_array($file, $this->modifUser)) $this->modifUser[] = $file;
|
||||
if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court;
|
||||
}
|
||||
else break;
|
||||
}
|
||||
if (in_array("file_".$court, $this->modif)) $this->actualiser(false);
|
||||
}
|
||||
else {
|
||||
global ${$calc}, ${$calc.'CALC'};
|
||||
|
||||
foreach($this->{"file_".$court} as $key => $bout) {
|
||||
if ($key == 0) continue;
|
||||
|
||||
$n = $this->{$file}[$bout[0]] + 1; //Extraction du niveau en cours
|
||||
eval(${$calc.'CALC'}[$bout[0]][3]); //Récupération du temps de construction
|
||||
|
||||
//var_dump($bout[0], $n);
|
||||
|
||||
//Accélération du temps de construction
|
||||
$sec = floor($sec/VITESSE);
|
||||
|
||||
if ($sec * $bout[1] < $tps) {
|
||||
//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];
|
||||
if ($file == "batiments" && $bout[0] == 1) $timestamp_mineC = $this->{"file_".$court}[0];
|
||||
if ($file == "batiments" && $bout[0] == 2) $timestamp_mineH = $this->{"file_".$court}[0];
|
||||
$this->{$file}[$bout[0]] += $bout[1];
|
||||
$this->{"file_".$court}[0] += $bout[1] * $sec;
|
||||
$tps -= $bout[1] * $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 < time() - $this->{"file_".$court}[0]) {
|
||||
//TODO Trouver plus simple que la ligne en dessous
|
||||
for($j=0 ; $j * $sec < $tps ; $j++) {}
|
||||
$j--;
|
||||
$this->{"file_".$court}[$key][1] -= $j;
|
||||
$this->{$file}[$bout[0]] += $j;
|
||||
$this->{"file_".$court}[0] += $j * $sec;
|
||||
$tps -= $j * $sec;
|
||||
|
||||
if (!in_array($file, $this->modif)) $this->modif[] = $file;
|
||||
if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court;
|
||||
|
||||
//Comme la première attente n'est pas terminée, on stoppe la vérification
|
||||
break;
|
||||
}
|
||||
else break;
|
||||
}
|
||||
//On actualise seulement s'il y a eu une modification de faite
|
||||
if (in_array($file, $this->modif)) $this->actualiser(false);
|
||||
$this->{"file_".$court} = array_merge($this->{"file_".$court});
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
281
game/Class/class.flotte.php
Normal file
281
game/Class/class.flotte.php
Normal file
|
|
@ -0,0 +1,281 @@
|
|||
<?php
|
||||
/***************************************************************************
|
||||
* class.flotte.php
|
||||
* ------------------
|
||||
* begin : Samedi 20 septembre 2008
|
||||
* update : Samedi 20 septembre 2008
|
||||
* email : nemunaire@gmail.com
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
class Flotte{
|
||||
var $id_flotte,
|
||||
$nom,
|
||||
$start_planete,
|
||||
$start_time,
|
||||
$end_planete,
|
||||
$end_time,
|
||||
$ret_planete,
|
||||
$ret_time,
|
||||
$vaisseaux = array(),
|
||||
$tactique = 0,
|
||||
$mission,
|
||||
$vitesse,
|
||||
$statut = 0,
|
||||
$last,
|
||||
$contenu = array(0,0,0),
|
||||
$contenuMax = 0,
|
||||
$modifFlotte = array();
|
||||
|
||||
/**
|
||||
* Constructeur
|
||||
* @param int $id id de la flotte à importer
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function Flotte($id = 0){
|
||||
if (!empty($id)) {
|
||||
global $var___db, $config, $table_flottes;
|
||||
global $nomvaisnVAR, $ressoVAR;
|
||||
$bdd = new bdd();
|
||||
$bdd->connexion();
|
||||
$bdd->escape($id);
|
||||
$flotte = $bdd->unique_query("SELECT * FROM $table_flottes WHERE id = $id;");
|
||||
$bdd->query("UPDATE $table_flottes SET last = ".time()." WHERE id = $id;"); //Obtention d'un vérrou de 10 seconde sur la flotte
|
||||
$bdd->deconnexion();
|
||||
if (!empty($flotte)) {
|
||||
$this->id_flotte = $flotte["id"];
|
||||
$this->nom = $flotte["nom"];
|
||||
$this->start_planete = $flotte["start_planete"];
|
||||
$this->start_time = $flotte["start_time"];
|
||||
$this->end_planete = $flotte["end_planete"];
|
||||
$this->end_time = $flotte["end_time"];
|
||||
$this->ret_planete = $flotte["ret_planete"];
|
||||
$this->ret_time = $flotte["ret_time"];
|
||||
$this->tactique = $flotte["tactique"];
|
||||
$this->mission = $flotte["mission"];
|
||||
$this->statut = $flotte["statut"];
|
||||
$this->last = $flotte["last"];
|
||||
|
||||
foreach($nomvaisnVAR as $vais){
|
||||
$this->vaisseaux[] = $flotte[$vais];
|
||||
}
|
||||
|
||||
foreach($ressoVAR as $contenu){
|
||||
$this->contenu[] = $flotte[$contenu];
|
||||
}
|
||||
|
||||
$this->calculer();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function calculer(){
|
||||
global $nomvais_rs;
|
||||
|
||||
//Calcul de la capacité maximale d'embarquement de la flotte
|
||||
foreach($this->vaisseaux as $key => $vais){
|
||||
$this->contenuMax += $nomvais_rs[$key] * $vais;
|
||||
}
|
||||
}
|
||||
|
||||
function load_planete(){
|
||||
if (is_numeric($this->start_planete) && !empty($this->start_planete)) {
|
||||
$this->start_planete = new Planete($this->start_planete);
|
||||
}
|
||||
if (is_numeric($this->end_planete) && !empty($this->end_planete)) {
|
||||
$this->end_planete = new Planete($this->end_planete);
|
||||
}
|
||||
if (is_numeric($this->ret_planete) && !empty($this->ret_planete)) {
|
||||
$this->ret_planete = new Planete($this->ret_planete);
|
||||
}
|
||||
}
|
||||
|
||||
function calc_deplacement($start_galaxie, $start_systeme, $start_position, $end_galaxie, $end_systeme, $end_position, $vitesse, $returnArray = false, $returnConso = false){
|
||||
//Si la planète de départ n'est pas chargée, on charge les planètes
|
||||
if (is_numeric($this->start_planete)) $this->load_planete();
|
||||
global $config, $nomvais_vitesseP, $nomvais_vitesseS, $nomvais_vitesseG, $nomvais_rs;
|
||||
$this->vitesse = $vitesse;
|
||||
|
||||
//Calcul de la longueur du déplacement
|
||||
$diff_galaxie = abs($start_galaxie - $end_galaxie);
|
||||
$diff_systeme = abs($start_systeme - $end_systeme);
|
||||
$diff_position = abs($start_position - $end_position);
|
||||
|
||||
$diff_centre_position_start = abs(ceil($config['nb_amas']/2) - $start_position);
|
||||
$diff_centre_systeme_start = abs(ceil($config['nb_systeme']/2) - $start_systeme);
|
||||
|
||||
$diff_centre_position_end = abs(ceil($config['nb_amas']/2) - $end_position);
|
||||
$diff_centre_systeme_end = abs(ceil($config['nb_systeme']/2) - $end_systeme);
|
||||
|
||||
//Calcul du temps de déplacement pour chaque vaisseau
|
||||
$temps = array(); $conso = array(0, 0, 0);
|
||||
foreach($this->vaisseaux as $key => $vais){
|
||||
//S'il n'y a pas de vaisseaux de ce type, on ne calcul pas leur vitesse
|
||||
if ($vais == 0) continue;
|
||||
|
||||
//Calcul du temps de déplacement entre planètes
|
||||
if ($start_systeme == $end_systeme && $start_galaxie == $end_galaxie) {
|
||||
$temps[0][$key] = (10/$nomvais_vitesseP[$key]) * (1 + 0.1 * $diff_position);
|
||||
$temps[1][$key] = $temps[2][$key] = 0;
|
||||
}
|
||||
//Calcul du temps de déplacement entre système
|
||||
elseif ($start_galaxie == $end_galaxie) {
|
||||
$temps[0][$key] = (10/$nomvais_vitesseP[$key]) * (1 + 0.1 * ($diff_centre_position_start + $diff_centre_position_end));
|
||||
$temps[1][$key] = (20/$nomvais_vitesseS[$key]) * (2 + 1 * $diff_systeme);
|
||||
$temps[2][$key] = 0;
|
||||
}
|
||||
//Calcul du temps de déplacement entre galaxies
|
||||
else {
|
||||
$temps[0][$key] = (10/$nomvais_vitesseP[$key]) * (1 + 0.1 * ($diff_centre_position_start + $diff_centre_position_end));
|
||||
$temps[1][$key] = (20/$nomvais_vitesseS[$key]) * (2 + 1 * ($diff_centre_systeme_start + $diff_centre_systeme_end));
|
||||
$temps[2][$key] = (50/$nomvais_vitesseG[$key]) * (2 + 1.5 * $diff_galaxie);
|
||||
}
|
||||
|
||||
//Calcul du bonus pour le réacteur à combustion
|
||||
$techR = $this->start_planete->technologies[1];
|
||||
if ($techR & 56) $bonus = 0.7;
|
||||
elseif ($techR & 24) $bonus = 0.8;
|
||||
elseif ($techR & 8) $bonus = 0.9;
|
||||
else $bonus = 1;
|
||||
$temps[0][$key] *= $bonus * 1/$vitesse;
|
||||
$conso[0] += $vais * $temps[0][$key] * $bonus / exp($vitesse/5);
|
||||
|
||||
//Calcul du bonus pour le réacteur à fusion
|
||||
$techR = $this->start_planete->technologies[1];
|
||||
if ($techR & 448) $bonus = 0.7;
|
||||
elseif ($techR & 192) $bonus = 0.8;
|
||||
elseif ($techR & 64) $bonus = 0.9;
|
||||
else $bonus = 1;
|
||||
$temps[1][$key] *= $bonus * 1/$vitesse;
|
||||
$conso[1] += $vais * $temps[1][$key] * $bonus / exp($vitesse/7.5);
|
||||
|
||||
//Calcul du bonus pour le réacteur à fusion de type II
|
||||
$techR = $this->start_planete->technologies[1];
|
||||
if ($techR & 3584) $bonus = 0.7;
|
||||
elseif ($techR & 1536) $bonus = 0.8;
|
||||
elseif ($techR & 512) $bonus = 0.9;
|
||||
else $bonus = 1;
|
||||
$temps[2][$key] *= $bonus * 1/$vitesse;
|
||||
$conso[2] += $vais * $temps[2][$key] * $bonus / exp($vitesse/10);
|
||||
}
|
||||
|
||||
//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;
|
||||
}
|
||||
|
||||
//On calcul le temps de déplacement maximal
|
||||
if ($returnArray) return $temps;
|
||||
elseif ($returnConso) return array(max($temps[0]) + max($temps[1]) + max($temps[2]), ceil($conso[0]+$conso[1]+$conso[2]));
|
||||
else return (max($temps[0]) + max($temps[1]) + max($temps[2]));
|
||||
}
|
||||
|
||||
function check_mission(){
|
||||
//On vérifie qu'un calcul ne soit pas déjà en cours
|
||||
if ($this->last >= time() - 10) return false;
|
||||
elseif ($this->start_time + $this->end_time < time()) return false;
|
||||
elseif ($this->statut == 1 && ($this->ret_time > time() || $this->start_time + $this->end_time * 2 >= time())) return $this->retourner();
|
||||
|
||||
switch($this->mission){
|
||||
case 0:
|
||||
case 5:
|
||||
return $this->stationner();
|
||||
break;
|
||||
case 1:
|
||||
return $this->transporter();
|
||||
break;
|
||||
case 2:
|
||||
return $this->coloniser();
|
||||
break;
|
||||
case 3:
|
||||
return $this->espionner();
|
||||
break;
|
||||
case 4:
|
||||
return $this->attaquer();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function rappeler(){
|
||||
if ($this->start_time + $this->end_time >= time()) return false;
|
||||
else {
|
||||
$this->end_time = time() - $this->start_time + 10;
|
||||
$this->mission = 5;
|
||||
if (!in_array('mission', $this->modifFlotte)) $this->modifFlotte[] = 'mission';
|
||||
if (!in_array('end_time', $this->modifFlotte)) $this->modifFlotte[] = 'end_time';
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
function retourner(){
|
||||
//Si la planète de départ n'est pas chargée, on charge les planètes
|
||||
if (is_numeric($this->start_planete)) $this->load_planete();
|
||||
|
||||
//Si on a demandé une planète particulière au retour
|
||||
if (!empty($this->ret_time) && !empty($this->ret_planete) && !is_numeric($this->ret_planete)) {
|
||||
foreach($this->vaisseaux as $key => $vais){
|
||||
$this->ret_planete->vaisseaux[$key] += $vais;
|
||||
}
|
||||
}
|
||||
//Si le retour se fait sur la planète source
|
||||
else {
|
||||
foreach($this->vaisseaux as $key => $vais){
|
||||
$this->start_planete->vaisseaux[$key] += $vais;
|
||||
}
|
||||
}
|
||||
$this->modifFlotte = "DELETE";
|
||||
}
|
||||
|
||||
/**
|
||||
* Destructeur
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function __destruct(){
|
||||
global $var___db, $config, $table_flottes;
|
||||
$nb = count($this->modifFlotte);
|
||||
$out = array();
|
||||
$bdd = new bdd();
|
||||
$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]}."'";
|
||||
}
|
||||
else {
|
||||
if ($this->modifFlotte[$i] == "contenu") $calc = "resso";
|
||||
elseif ($this->modifFlotte[$i] == "vaisseaux") $calc = "nomvaisn";
|
||||
|
||||
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];
|
||||
}
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,110 +0,0 @@
|
|||
<?php
|
||||
class gererFile {
|
||||
var $file = array();
|
||||
var $chaine = false;
|
||||
var $timestamp = 0;
|
||||
var $type = '';
|
||||
var $limite = 0;
|
||||
|
||||
function gererFile($limite, $file, $type) {
|
||||
$this->limite = $limite;
|
||||
$this->type = $type;
|
||||
|
||||
if (!empty($file)) {
|
||||
$file = explode(';', $file);
|
||||
$timestamp = $file[0];
|
||||
unset($file[0]);
|
||||
$file = array_merge($file);
|
||||
$cnt = count($file);
|
||||
for($i = 0; $i < $cnt; $i++){
|
||||
$file[$i] = explode(',', $file[$i]);
|
||||
}
|
||||
$this->file = $file;
|
||||
}
|
||||
else $this->timestamp = time();
|
||||
}
|
||||
|
||||
function addObjet($objet,$nombre,$temps) {
|
||||
$this->file = array_merge($this->file);
|
||||
$nbF = count($this->file);
|
||||
if ($nbF >= $this->limite) return false;
|
||||
$this->chaine = false;
|
||||
if($nbF == 0) $this->timestamp = time();
|
||||
if($nbF > 0 && $this->file[$nbF-1][0] == $objet) $this->file[$nbF-1][1] += $nombre;
|
||||
else $this->file[] = array($objet, $nombre, $temps);
|
||||
return true;
|
||||
}
|
||||
|
||||
function existe($objet) {
|
||||
$this->file = array_merge($this->file);
|
||||
$nbF=count($this->file);
|
||||
for ($i=0 ; $i<$nbF ; $i++){
|
||||
if($objet == $this->file[$i][0]) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function delobjet($objet, $nombre=1) {
|
||||
$this->file = array_merge($this->file);
|
||||
for($i = count($this->file)-1; $i >= 0; $i--) {
|
||||
if($this->file[$i][0] == $objet){
|
||||
$nombre = min($nombre, $this->file[$i][1]);
|
||||
$this->file[$i][1] -= $nombre;
|
||||
if($this->file[$i][1] <= 0) {
|
||||
unset($this->file[$i]);
|
||||
$this->file = array_merge($this->file);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if ($i == 1) $this->timestamp = time();
|
||||
}
|
||||
return $nombre;
|
||||
}
|
||||
|
||||
function pret() {
|
||||
$this->file = array_merge($this->file);
|
||||
$out = array();
|
||||
$nbF = count($this->file);
|
||||
if ($nbF == 1 && $this->chaine) {
|
||||
$nb = floor((time()-$this->timestamp)/$this->file[0][2]);
|
||||
if ($nb > 0) {
|
||||
$out[] = array($this->file[0][0], $nb);
|
||||
$this->timestamp += $nb * $this->file[0][2];
|
||||
}
|
||||
}
|
||||
elseif ($nbF != 0) {
|
||||
$this->file = array_merge($this->file);
|
||||
for($i=0 ; $i<$nbF ; $i++){
|
||||
$tps = time() - $this->timestamp;
|
||||
if($this->file[$i][1] * $this->file[$i][2] < $tps) {
|
||||
$out[] = array($this->file[$i][0], $this->file[$i][1]);
|
||||
$this->timestamp += $this->file[$i][1] * $this->file[$i][2];
|
||||
unset($this->file[$i]);
|
||||
}
|
||||
elseif ($this->file[$i][2] < $tps) {
|
||||
for($j=0 ; $j*$this->file[$i][2]<$tps ; $j++) {}
|
||||
$j--;
|
||||
$out[] = array($this->file[$i][0], $j);
|
||||
$this->timestamp += $j * $this->file[$i][2];
|
||||
$this->file[$i][1] -= $j;
|
||||
break;
|
||||
}
|
||||
else {
|
||||
return $out;
|
||||
}
|
||||
}
|
||||
$this->file = array_merge($this->file);
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
||||
function export(){
|
||||
$nbF = count($this->file);
|
||||
$out = '';
|
||||
for($i=0;$i<$nbF;$i++){
|
||||
$out .= implode(',',$this->file[$i]).';';
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -23,8 +23,13 @@ class Planete extends User{
|
|||
$metal,
|
||||
$cristal,
|
||||
$hydrogene,
|
||||
$population,
|
||||
$alert_ressources = array(false, false, false),
|
||||
$timestamp,
|
||||
$timestamp_lastSilo,
|
||||
$timestamp_lastMineM,
|
||||
$timestamp_lastMineC,
|
||||
$timestamp_lastMineH,
|
||||
$energie,
|
||||
$energieConso,
|
||||
$file_tech,
|
||||
|
|
@ -61,7 +66,8 @@ class Planete extends User{
|
|||
$this->galaxie = $plan["galaxie"];
|
||||
$this->ss = $plan["ss"];
|
||||
$this->position = $plan["position"];
|
||||
$this->isolement = $plan["isolement"];
|
||||
if (!empty($plan["isolement"])) $this->isolement = unserialize($plan["isolement"]);
|
||||
else $this->isolement = array();
|
||||
$this->nom_planete = $plan["nom_planete"];
|
||||
$this->image = $plan["image"];
|
||||
$this->cases = $plan["cases"];
|
||||
|
|
@ -70,31 +76,38 @@ class Planete extends User{
|
|||
$this->metal = $plan["metal"];
|
||||
$this->cristal = $plan["cristal"];
|
||||
$this->hydrogene = $plan["hydrogene"];
|
||||
$this->population = $plan["population"];
|
||||
$this->timestamp = $plan["timestamp"];
|
||||
|
||||
foreach($batimentVAR as $bat){
|
||||
$this->batiments[] = $plan[$bat];
|
||||
}
|
||||
$this->file_bat = explode(';', $plan["file_bat"]);
|
||||
if (!empty($plan["file_bat"])) $this->file_bat = unserialize($plan["file_bat"]);
|
||||
else $this->file_bat = array();
|
||||
|
||||
$this->coeff_bat = array($plan["coeff_mine_m"], $plan["coeff_mine_c"], $plan["coeff_mine_h"], $plan["coeff_centrale_s"], $plan["coeff_centrale_f"]);
|
||||
for($i = 0; $i < 5; $i++){
|
||||
if ($this->coeff_bat[$i] > 1) $this->coeff_bat[$i] = 1;
|
||||
elseif ($this->coeff_bat[$i] < 0) $this->coeff_bat[$i] = 0;
|
||||
}
|
||||
|
||||
$this->file_tech = explode(';', $plan["file_tech"]);
|
||||
if (!empty($plan["file_tech"])) $this->file_tech = unserialize($plan["file_tech"]);
|
||||
else $this->file_tech = array();
|
||||
foreach($casernenVAR as $cas){
|
||||
$this->casernes[] = $plan[$cas];
|
||||
}
|
||||
$this->file_cas = explode(';', $plan["file_cas"]);
|
||||
if (!empty($plan["file_cas"])) $this->file_cas = unserialize($plan["file_cas"]);
|
||||
else $this->file_cas = array();
|
||||
foreach($nomterrnVAR as $ter){
|
||||
$this->terrestres[] = $plan[$ter];
|
||||
}
|
||||
$this->file_ter = explode(';', $plan["file_ter"]);
|
||||
if (!empty($plan["file_ter"])) $this->file_ter = unserialize($plan["file_ter"]);
|
||||
else $this->file_ter = array();
|
||||
foreach($nomvaisnVAR as $vais){
|
||||
$this->vaisseaux[] = $plan[$vais];
|
||||
}
|
||||
$this->file_vais = explode(';', $plan["file_vais"]);
|
||||
if (!empty($plan["file_vais"])) $this->file_vais = unserialize($plan["file_vais"]);
|
||||
else $this->file_vais = array();
|
||||
|
||||
$this->actualiser();
|
||||
}
|
||||
|
|
@ -108,29 +121,6 @@ class Planete extends User{
|
|||
* @access public
|
||||
*/
|
||||
function actualiser($actuFile = true){
|
||||
//Calcul de la capacité de stockage maximale
|
||||
$cap = pow(2, $this->batiments[10]) * 100000;
|
||||
|
||||
//Calcul du temps écoulé depuis la dernière mise à jour de la planète
|
||||
$temps_ecoule = time() - $this->timestamp;
|
||||
$ressources = $this->production($temps_ecoule);
|
||||
if ($this->metal + $ressources[0] < $cap) $this->metal += $ressources[0];
|
||||
else {
|
||||
$this->alert_ressources[0] = true;
|
||||
$this->metal = $cap;
|
||||
}
|
||||
if ($this->cristal + $ressources[1] < $cap) $this->cristal += $ressources[1];
|
||||
else {
|
||||
$this->alert_ressources[1] = true;
|
||||
$this->cristal = $cap;
|
||||
}
|
||||
if ($this->hydrogene + $ressources[2] < $cap) $this->hydrogene += $ressources[2];
|
||||
else {
|
||||
$this->alert_ressources[2] = true;
|
||||
$this->hydrogene = $cap;
|
||||
}
|
||||
$this->timestamp = time();
|
||||
|
||||
//Actualisation des files d'attentes
|
||||
if ($actuFile) {
|
||||
$this->file_pret("batiments");
|
||||
|
|
@ -140,6 +130,65 @@ class Planete extends User{
|
|||
$this->file_pret("vaisseaux");
|
||||
}
|
||||
|
||||
//Calcul de la capacité de stockage maximale
|
||||
if (!empty($timestamp_lastSilo)) {
|
||||
$cap = pow(2, $this->batiments[10]-1) * 100000;
|
||||
$capnouv = pow(2, $this->batiments[10]) * 100000;
|
||||
}
|
||||
else $cap = pow(2, $this->batiments[10]) * 100000;
|
||||
|
||||
//Calcul du temps écoulé depuis la dernière mise à jour de la planète
|
||||
$temps_ecoule = time() - $this->timestamp;
|
||||
$ressources = $this->production($temps_ecoule);
|
||||
if ($this->metal + $ressources[0] < $cap) $this->metal += $ressources[0];
|
||||
else {
|
||||
//Si les capacité de stockage ont changé depuis la dernière actualisation
|
||||
if (isset($capnouv)) {
|
||||
$ressources = $this->production(time() - $this->timestamp_lastSilo);
|
||||
if ($this->metal + $ressources[0] < $capnouv) $this->metal += $ressources[0];
|
||||
}
|
||||
else {
|
||||
$this->alert_ressources[0] = true;
|
||||
$this->metal = $cap;
|
||||
}
|
||||
}
|
||||
if ($this->cristal + $ressources[1] < $cap) $this->cristal += $ressources[1];
|
||||
else {
|
||||
//Si les capacité de stockage ont changé depuis la dernière actualisation
|
||||
if (isset($capnouv)) {
|
||||
$ressources = $this->production(time() - $this->timestamp_lastSilo);
|
||||
if ($this->cristal + $ressources[1] < $capnouv) $this->cristal += $ressources[1];
|
||||
}
|
||||
else {
|
||||
$this->alert_ressources[1] = true;
|
||||
$this->cristal = $cap;
|
||||
}
|
||||
}
|
||||
if ($this->hydrogene + $ressources[2] < $cap) $this->hydrogene += $ressources[2];
|
||||
else {
|
||||
//Si les capacité de stockage ont changé depuis la dernière actualisation
|
||||
if (isset($capnouv)) {
|
||||
$ressources = $this->production(time() - $this->timestamp_lastSilo);
|
||||
if ($this->hydrogene + $ressources[2] < $capnouv) $this->hydrogene += $ressources[2];
|
||||
}
|
||||
else {
|
||||
$this->alert_ressources[2] = true;
|
||||
$this->hydrogene = $cap;
|
||||
}
|
||||
}
|
||||
|
||||
if (date('zya') != date('zya', $this->timestamp)) {
|
||||
//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));
|
||||
$this->credits += $this->population/100*exp(0.01)*25;
|
||||
$this->modif[] = 'population';
|
||||
}
|
||||
|
||||
$this->timestamp = time();
|
||||
|
||||
|
||||
//Calcul du nombre de cases restantes
|
||||
$this->casesRest = $this->cases;
|
||||
foreach($this->batiments as $bat){
|
||||
|
|
@ -154,7 +203,6 @@ class Planete extends User{
|
|||
* @access public
|
||||
*/
|
||||
function isolement(){
|
||||
$isolement = explode(' ', $this->isolement);
|
||||
$return = false;
|
||||
|
||||
if (time() > $isolement[0]) {
|
||||
|
|
@ -191,7 +239,11 @@ class Planete extends User{
|
|||
}
|
||||
}
|
||||
|
||||
$this->isolement = implode(' ', $isolement);
|
||||
//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;
|
||||
}
|
||||
|
|
@ -205,7 +257,7 @@ class Planete extends User{
|
|||
*/
|
||||
function production($temps_ecoule, $retarray = false){
|
||||
//Accélération de la production
|
||||
$temps_ecoule *= 10;
|
||||
$temps_ecoule *= VITESSE;
|
||||
|
||||
//Calcul de la consomation d'énergie
|
||||
if ($this->batiments[0] > 0) $energie_m = ceil(exp(0.28*$this->batiments[0])*10); else $energie_m = 0;
|
||||
|
|
@ -231,7 +283,7 @@ class Planete extends User{
|
|||
for($i = 0; $i < 3; $i++){
|
||||
$Ncoeff[$i] = $coeff * $this->coeff_bat[$i];
|
||||
if ($Ncoeff[$i] > 1) $Ncoeff[$i] = 1;
|
||||
if ($Ncoeff[$i] < $this->coeff_bat[$i]) {
|
||||
if ($Ncoeff[$i] < $this->coeff_bat[$i] && $this->batiments[$i] != 0) {
|
||||
$this->coeff_bat[$i] = $Ncoeff[$i];
|
||||
if (!in_array('coeff_bat', $this->modif)) $this->modif[] = 'coeff_bat';
|
||||
}
|
||||
|
|
@ -251,207 +303,34 @@ class Planete extends User{
|
|||
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;
|
||||
|
||||
//Augmentation de la production en fonction des technologies
|
||||
if ($this->technologies[0] & 4) {
|
||||
$prod_met *= 1.15;
|
||||
$prod_cri *= 1.15;
|
||||
$prod_hy *= 1.15;
|
||||
}
|
||||
elseif ($this->technologies[0] & 2) {
|
||||
$prod_met *= 1.10;
|
||||
$prod_cri *= 1.10;
|
||||
$prod_hy *= 1.10;
|
||||
}
|
||||
elseif ($this->technologies[0] & 1) {
|
||||
$prod_met *= 1.05;
|
||||
$prod_cri *= 1.05;
|
||||
$prod_hy *= 1.05;
|
||||
}
|
||||
|
||||
//Augmentation de la production en fonction de la politique
|
||||
if ($this->politique == 2) {
|
||||
$prod_met *= 1.10;
|
||||
$prod_cri *= 1.10;
|
||||
$prod_hy *= 1.10;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calcul les ressources produites en fonction de $temps_ecoule
|
||||
* @param int $file Nom de la file d'attente
|
||||
* @param int $objet Id de l'objet à ajouter
|
||||
* @param int $nombre = 1 Nombre d'objet $objet à ajouter à la file
|
||||
*
|
||||
* @return int Numéro de l'erreur
|
||||
* @access public
|
||||
*/
|
||||
function file_addObjet($file, $objet, $nombre = 1){
|
||||
$planete = $this;
|
||||
switch($file){
|
||||
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 "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;
|
||||
default: return 1;
|
||||
}
|
||||
global ${$calc}, ${$calc.'CALC'}, ${$calc.'TECH'};
|
||||
|
||||
//Vérification des conditions de construction
|
||||
if (empty(${$calc}[$objet]) || !requestDeblok(${$calc.'TECH'}[$objet], $this)) return 1;
|
||||
//Vérification qu'il n'y ait pas déjà une instance de l'objet déjà en construction
|
||||
if ($exist) return 2;
|
||||
|
||||
//Actualisation du temps s'il n'y a pas d'objet en file
|
||||
if (count($this->{"file_".$court}) < 2) $this->{"file_".$court}[0] = time();
|
||||
|
||||
//Calcul du prochain niveau de l'objet
|
||||
$n = $this->{$file}[$objet] + 1;
|
||||
|
||||
if ($file == "batiments" || $file == "technologies") {
|
||||
eval(${$calc.'CALC'}[$objet][0]);
|
||||
eval(${$calc.'CALC'}[$objet][1]);
|
||||
eval(${$calc.'CALC'}[$objet][2]);
|
||||
}
|
||||
else {
|
||||
$a = ${$calc.'CALC'}[$objet][0];
|
||||
$b = ${$calc.'CALC'}[$objet][1];
|
||||
$c = ${$calc.'CALC'}[$objet][2];
|
||||
}
|
||||
|
||||
//Vérification des ressources de la planète
|
||||
if ($this->metal < $a * $nombre) return 3;
|
||||
elseif ($this->cristal < $b * $nombre) return 3;
|
||||
elseif ($this->hydrogene < $c * $nombre) return 3;
|
||||
else {
|
||||
//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;
|
||||
|
||||
//Génération de la file d'attente
|
||||
$nb = count($this->{"file_".$court});
|
||||
|
||||
//Si le dernier objet est identique à celui que l'on veut construire
|
||||
if (ereg($objet.',', $this->{"file_".$court}[$nb-1])) {
|
||||
$last = explode(',', $this->{"file_".$court}[$nb-1]);
|
||||
$last[1] += $nombre;
|
||||
$this->{"file_".$court}[$nb-1] = implode(',', $last);
|
||||
}
|
||||
else $this->{"file_".$court}[] = $objet.','.$nombre;
|
||||
if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
function file_delObjet($file, $objet, $nombre = 1, $w = 99) {
|
||||
$planete = $this;
|
||||
switch($file){
|
||||
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 "casernes": $court = "cas"; $calc = "casernen"; $exist = $this->file_exist($objet, "file_".$court); break;
|
||||
case "terrestres": $court = "ter"; $calc = "nomterrn"; $exist = $this->file_exist($objet, "file_".$court); break;
|
||||
case "vaisseaux": $court = "vais"; $calc = "nomvaisn"; $exist = $this->file_exist($objet, "file_".$court); break;
|
||||
default: return false;
|
||||
}
|
||||
global ${$calc}, ${$calc.'CALC'};
|
||||
|
||||
//Si l'objet n'est pas dans la file d'attente, on annule la suite
|
||||
if (!$exist) return 0;
|
||||
|
||||
if ($w == 99) $w = count($this->{"file_".$court})-1;
|
||||
|
||||
for($i = $w; $i > 0; $i--) {
|
||||
$last = explode(',', $this->{"file_".$court}[$i]);
|
||||
if($last[0] == $objet){
|
||||
$nombre = min($nombre, $last[1]);
|
||||
|
||||
if($last[1] <= $nombre) {
|
||||
unset($this->{"file_".$court}[$i]);
|
||||
$this->{"file_".$court} = array_merge($this->{"file_".$court});
|
||||
}
|
||||
else $this->{"file_".$court}[$i] = $objet.','.($last[1]-$nombre);
|
||||
|
||||
if ($i == 1) $this->{"file_".$court}[0] = time();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court;
|
||||
|
||||
//Calcul du prochain niveau de l'objet
|
||||
$n = $this->{$file}[$objet] + 1;
|
||||
|
||||
if ($file == "batiments" || $file == "technologies") {
|
||||
eval(${$calc.'CALC'}[$objet][0]);
|
||||
eval(${$calc.'CALC'}[$objet][1]);
|
||||
eval(${$calc.'CALC'}[$objet][2]);
|
||||
}
|
||||
else {
|
||||
$a = ${$calc.'CALC'}[$objet][0];
|
||||
$b = ${$calc.'CALC'}[$objet][1];
|
||||
$c = ${$calc.'CALC'}[$objet][2];
|
||||
}
|
||||
|
||||
//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;
|
||||
|
||||
return $nombre;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie l'existance dans la file $file d'attente de $i
|
||||
* @param int $i ID à vérifier
|
||||
* @param string $file Nom de la file d'attente
|
||||
*
|
||||
* @return boolean
|
||||
* @access public
|
||||
*/
|
||||
function file_exist($objet, $file){
|
||||
if (count($this->$file) <= 1) return false;
|
||||
foreach($this->$file as $bout){
|
||||
$bout = explode(',', $bout);
|
||||
if($objet == $bout[0]) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Actualise la file $file en terminant les constructions/entraînements.
|
||||
* @param string $file Nom de la file d'attente
|
||||
*
|
||||
* @return boolean
|
||||
* @access public
|
||||
*/
|
||||
function file_pret($file){
|
||||
$nanite = 0;
|
||||
$planete = $this;
|
||||
switch($file){
|
||||
case "batiments": $court = "bat"; $calc = "batiment"; break;
|
||||
case "technologies": $court = "tech"; $calc = "technolo"; break;
|
||||
case "casernes": $court = "cas"; $calc = "casernen"; break;
|
||||
case "terrestres": $court = "ter"; $calc = "nomterrn"; break;
|
||||
case "vaisseaux": $court = "vais"; $calc = "nomvaisn"; break;
|
||||
default: return false;
|
||||
}
|
||||
global ${$calc}, ${$calc.'CALC'};
|
||||
|
||||
$nb = count($this->{"file_".$court});
|
||||
for($i = 1; $i < $nb; $i++){
|
||||
$obj = explode(',', $this->{"file_".$court}[$i]);
|
||||
$n = $this->{$file}[$obj[0]] + 1;
|
||||
eval(${$calc.'CALC'}[$obj[0]][3]);
|
||||
$tps = time() - $this->{"file_".$court}[0];
|
||||
|
||||
//Accélération du temps de construction
|
||||
$sec /= 10;
|
||||
|
||||
if ($sec * $obj[1] < $tps) {
|
||||
$this->{$file}[$obj[0]] += $obj[1];
|
||||
unset($this->{"file_".$court}[$i]);
|
||||
$this->{"file_".$court} = array_merge($this->{"file_".$court});
|
||||
$this->{"file_".$court}[0] += $obj[1] * $sec;
|
||||
|
||||
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]) {
|
||||
for($j=0 ; $j * $sec < $tps ; $j++) {}
|
||||
$j--;
|
||||
$this->{"file_".$court}[$i] = $obj[0].','.($obj[1]-$j);
|
||||
$this->{$file}[$obj[0]] += $j;
|
||||
$this->{"file_".$court}[0] += $j * $sec;
|
||||
|
||||
if (!in_array($file, $this->modif)) $this->modif[] = $file;
|
||||
if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court;
|
||||
}
|
||||
else {
|
||||
$this->actualiser(false);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Destructeur
|
||||
*
|
||||
|
|
@ -472,8 +351,8 @@ class Planete extends User{
|
|||
else $out[] .= $this->modif[$i]." = '".$this->{$this->modif[$i]}."'";
|
||||
}
|
||||
else {
|
||||
if (ereg('file', $this->modif[$i])) {
|
||||
$prep = implode(';', $this->{$this->modif[$i]});
|
||||
if (is_array($this->{$this->modif[$i]}) && $this->modif[$i] != "coeff_bat" && $this->modif[$i] != "vaisseaux" && $this->modif[$i] != "terrestres" && $this->modif[$i] != "casernes" && $this->modif[$i] != "technologies" && $this->modif[$i] != "batiments") {
|
||||
$prep = serialize($this->{$this->modif[$i]});
|
||||
$bdd->escape($prep);
|
||||
$out[] .= $this->modif[$i]." = '$prep'";
|
||||
}
|
||||
|
|
@ -495,7 +374,7 @@ class Planete extends User{
|
|||
}
|
||||
}
|
||||
}
|
||||
if (!empty($out)) $plan = $bdd->unique_query("UPDATE $table_planete SET ".implode(', ', $out)." WHERE id = ".$this->id.";");
|
||||
if (!empty($out)) $plan = $bdd->query("UPDATE $table_planete SET ".implode(', ', $out)." WHERE id = ".$this->id.";");
|
||||
$bdd->deconnexion();
|
||||
parent::__destruct();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,21 +8,28 @@
|
|||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
class User{
|
||||
class User extends File{
|
||||
var $id_user,
|
||||
$pseudo,
|
||||
$auth_level,
|
||||
$race,
|
||||
$id_alliance,
|
||||
$id_grade_alliance,
|
||||
$mv,
|
||||
$mail,
|
||||
$envoyerMail,
|
||||
$last_visite,
|
||||
$points,
|
||||
$place_points,
|
||||
$technologies = array(),
|
||||
$credits,
|
||||
$politique,
|
||||
$politique_lastchange,
|
||||
$destinationsFavoris,
|
||||
$amis,
|
||||
$amis = array(),
|
||||
$combatAT_tactique,
|
||||
$combatDE_tactique,
|
||||
$modifUser = array();
|
||||
$modifUser = array("credits");
|
||||
|
||||
/**
|
||||
* Constructeur
|
||||
|
|
@ -34,7 +41,7 @@ class User{
|
|||
function User($id = 0){
|
||||
if (!empty($id)) {
|
||||
global $var___db, $config, $table_user;
|
||||
global $technoloVAR;
|
||||
global $technologiesVAR;
|
||||
$bdd = new bdd();
|
||||
$bdd->connexion();
|
||||
$bdd->escape($id);
|
||||
|
|
@ -45,18 +52,29 @@ class User{
|
|||
$this->pseudo = $user["pseudo"];
|
||||
$this->auth_level = $user["auth_level"];
|
||||
$this->race = $user["race"];
|
||||
$this->mv = $user["mv"];
|
||||
$this->id_alliance = $user["id_alliance"];
|
||||
$this->id_grade_alliance = $user["id_grade_alliance"];
|
||||
$this->mail = $user["mail"];
|
||||
$this->envoyerMail = $user["envoyerMail"];
|
||||
$this->destinationsFavoris = $user["destinationsFavoris"];
|
||||
$this->last_visite = $user["last_visite"];
|
||||
$this->points = $user["points"];
|
||||
$this->place_points = $user["place_points"];
|
||||
$this->credits = $user["credits"];
|
||||
$this->politique = $user["politique"];
|
||||
$this->politique_lastchange = $user["politique_lastchange"];
|
||||
if (!empty($user["amis"])) $this->amis = unserialize($user["amis"]);
|
||||
else $this->amis = array();
|
||||
if (!empty($user["destinationsFavoris"])) $this->destinationsFavoris = unserialize($user["destinationsFavoris"]);
|
||||
else $this->destinationsFavoris = array();
|
||||
$this->combatAT_tactique = $user["combatAT_tactique"];
|
||||
$this->combatDE_tactique = $user["combatDE_tactique"];
|
||||
|
||||
foreach($technoloVAR as $tech){
|
||||
foreach($technologiesVAR as $tech){
|
||||
$this->technologies[] = $user[$tech];
|
||||
}
|
||||
}
|
||||
else die('Erreur #01 : Utilisateur recherché introuvable dans la base de données. Contactez le support technique ('.$config['mail_support'].') au plus vite en précisant le code d\'erreur.');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -86,7 +104,7 @@ class User{
|
|||
}
|
||||
else {
|
||||
if ($this->modifUser[$i] == "batiments") $calc = "batiment";
|
||||
elseif ($this->modifUser[$i] == "technologies") $calc = "technolo";
|
||||
elseif ($this->modifUser[$i] == "technologies") $calc = "technologies";
|
||||
elseif ($this->modifUser[$i] == "casernes")$calc = "casernen";
|
||||
elseif ($this->modifUser[$i] == "terrestres") $calc = "nomterrn";
|
||||
elseif ($this->modifUser[$i] == "vaisseaux") $calc = "nomvaisn";
|
||||
|
|
@ -101,7 +119,7 @@ class User{
|
|||
}
|
||||
}
|
||||
}
|
||||
if (!empty($out)) $plan = $bdd->unique_query("UPDATE $table_user SET ".implode(', ', $out)." WHERE id = ".$this->id_user.";");
|
||||
if (!empty($out)) $plan = $bdd->query("UPDATE $table_user SET ".implode(', ', $out)." WHERE id = ".$this->id_user.";");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,118 +0,0 @@
|
|||
<?php
|
||||
class gererFile {
|
||||
var $file = array();
|
||||
var $chaine = false;
|
||||
var $timestamp = 0;
|
||||
var $type = '';
|
||||
var $limite = 0;
|
||||
|
||||
function gererFile($limite, $file, $type) {
|
||||
$this->limite = $limite;
|
||||
$this->type = $type;
|
||||
|
||||
if (!empty($file)) {
|
||||
$file = explode(';', $file);
|
||||
$timestamp = $file[0];
|
||||
unset($file[0]);
|
||||
$file = array_merge($file);
|
||||
$cnt = count($file);
|
||||
for($i = 0; $i < $cnt; $i++){
|
||||
$file[$i] = explode(',', $file[$i]);
|
||||
}
|
||||
$this->file = $file;
|
||||
}
|
||||
else $this->timestamp = time();
|
||||
}
|
||||
|
||||
function addObjet($objet,$nombre,$temps) {
|
||||
$this->file = array_merge($this->file);
|
||||
$nbF = count($this->file);
|
||||
if ($nbF >= $this->limite) return false;
|
||||
$this->chaine = false;
|
||||
if($nbF == 0) $this->timestamp = time();
|
||||
if($nbF > 0 && $this->file[$nbF-1][0] == $objet) $this->file[$nbF-1][1] += $nombre;
|
||||
else $this->file[] = array($objet, $nombre, $temps);
|
||||
return true;
|
||||
}
|
||||
|
||||
function existe($objet) {
|
||||
$this->file = array_merge($this->file);
|
||||
$nbF=count($this->file);
|
||||
for ($i=0 ; $i<$nbF ; $i++){
|
||||
if($objet == $this->file[$i][0]) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function delobjet($objet, $nombre=1) {
|
||||
$this->file = array_merge($this->file);
|
||||
for($i = count($this->file)-1; $i >= 0; $i--) {
|
||||
if($this->file[$i][0] == $objet){
|
||||
$nombre = min($nombre, $this->file[$i][1]);
|
||||
$this->file[$i][1] -= $nombre;
|
||||
if($this->file[$i][1] <= 0) {
|
||||
unset($this->file[$i]);
|
||||
$this->file = array_merge($this->file);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if ($i == 1) $this->timestamp = time();
|
||||
}
|
||||
return $nombre;
|
||||
}
|
||||
|
||||
function pret() {
|
||||
global $queryUser, $queryPlanete;
|
||||
include(_FCORE."hb_game/vars.php");
|
||||
|
||||
$this->file = array_merge($this->file);
|
||||
$out = array();
|
||||
$nbF = count($this->file);
|
||||
if ($nbF == 1 && $this->chaine) {
|
||||
eval(${$this->type.'CALC'}[$this->file[0][0]][3]);
|
||||
$this->file[0][2] = $sec;
|
||||
|
||||
$nb = floor((time()-$this->timestamp)/$this->file[0][2]);
|
||||
if ($nb > 0) {
|
||||
$out[] = array($this->file[0][0], $nb);
|
||||
$this->timestamp += $nb * $this->file[0][2];
|
||||
}
|
||||
}
|
||||
elseif ($nbF != 0) {
|
||||
$this->file = array_merge($this->file);
|
||||
for($i=0 ; $i<$nbF ; $i++){
|
||||
print ${$this->type.'CALC'}[$this->file[$i][0]][3];
|
||||
eval(${$this->type.'CALC'}[$this->file[$i][0]][3]);
|
||||
$this->file[$i][2] = $sec;
|
||||
|
||||
$tps = time() - $this->timestamp;
|
||||
if($this->file[$i][1] * $this->file[$i][2] < $tps) {
|
||||
$out[] = array($this->file[$i][0], $this->file[$i][1]);
|
||||
$this->timestamp += $this->file[$i][1] * $this->file[$i][2];
|
||||
unset($this->file[$i]);
|
||||
}
|
||||
elseif ($this->file[$i][2] < $tps) {
|
||||
for($j=0 ; $j*$this->file[$i][2]<$tps ; $j++) {}
|
||||
$j--;
|
||||
$out[] = array($this->file[$i][0], $j);
|
||||
$this->timestamp += $j * $this->file[$i][2];
|
||||
$this->file[$i][1] -= $j;
|
||||
break;
|
||||
}
|
||||
else break;
|
||||
}
|
||||
$this->file = array_merge($this->file);
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
|
||||
function export(){
|
||||
$nbF = count($this->file);
|
||||
$out = '';
|
||||
for($i=0;$i<$nbF;$i++){
|
||||
$out .= implode(',',$this->file[$i]).';';
|
||||
}
|
||||
return $out;
|
||||
}
|
||||
}
|
||||
?>
|
||||
15
game/cache/bourse/1.20080914.bourse
vendored
Normal file
15
game/cache/bourse/1.20080914.bourse
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
1221402158;1000;1000
|
||||
1221402254;1000;1000
|
||||
1221402262;1000;1000
|
||||
1221402322;1000;1000
|
||||
1221404739;550;550
|
||||
1221404761;500;500
|
||||
1221404767;550;550
|
||||
1221406975;550;550
|
||||
1221406979;550;550
|
||||
1221406986;550;550
|
||||
1221406992;550;550
|
||||
1221407024;550;550
|
||||
1221407024;550;550
|
||||
1221407062;500;500
|
||||
1221407083;500;500
|
||||
1
game/cache/bourse/1.20080916.bourse
vendored
Normal file
1
game/cache/bourse/1.20080916.bourse
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
1221598960;1898.7429747;1898.7429747
|
||||
7
game/cache/bourse/1.20080917.bourse
vendored
Normal file
7
game/cache/bourse/1.20080917.bourse
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
1221679648;2779.945234;2779.945234
|
||||
1221679655;3057.945;3057.945
|
||||
1221679893;1898.74635985;1898.74635985
|
||||
1221679912;3057.9558625;3057.9558625
|
||||
1221679977;1898.75256906;1898.75256906
|
||||
1221687726;3057.9558625;3057.9558625
|
||||
1221687741;1178.97595734;1178.97595734
|
||||
1
game/cache/bourse/1.20080918.bourse
vendored
Normal file
1
game/cache/bourse/1.20080918.bourse
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
1221859873;1296.878;1296.878
|
||||
1
game/cache/bourse/1.20080919.bourse
vendored
Normal file
1
game/cache/bourse/1.20080919.bourse
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
1221859873;1296.878;1296.878
|
||||
6
game/cache/bourse/1.20080920.bourse
vendored
Normal file
6
game/cache/bourse/1.20080920.bourse
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
1221866953;2088.6382088;2088.6382088
|
||||
1221929547;2297.504;2297.504
|
||||
1221929552;2088.63636364;2088.63636364
|
||||
1221929578;3057.977824;3057.977824
|
||||
1221933324;3363.778;3363.778
|
||||
1221933340;4924.910298;4924.910298
|
||||
5
game/cache/bourse/1.20080921.bourse
vendored
Normal file
5
game/cache/bourse/1.20080921.bourse
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
1221949772;4477.19090909;4477.19090909
|
||||
1221949838;4924.909;4924.909
|
||||
1221949862;4070.17355372;4070.17355372
|
||||
1221949874;4924.9057;4924.9057
|
||||
1221949881;4070.17355372;4070.17355372
|
||||
5
game/cache/bourse/1.20080922.bourse
vendored
Normal file
5
game/cache/bourse/1.20080922.bourse
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
1221949772;4477.19090909;4477.19090909
|
||||
1221949838;4924.909;4924.909
|
||||
1221949862;4070.17355372;4070.17355372
|
||||
1221949874;4924.9057;4924.9057
|
||||
1221949881;4070.17355372;4070.17355372
|
||||
1
game/cache/bourse/1.20081104.bourse
vendored
Normal file
1
game/cache/bourse/1.20081104.bourse
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
1225821369;2594.0162468;2594.0162468
|
||||
4
game/cache/bourse/2.20080915.bourse
vendored
Normal file
4
game/cache/bourse/2.20080915.bourse
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
1221438807;805.255;805.255
|
||||
1221462454;974.35855;974.35855
|
||||
1221462476;1071.7949;1071.7949
|
||||
1221463711;1178.969;1178.969
|
||||
6
game/cache/bourse/2.20080920.bourse
vendored
Normal file
6
game/cache/bourse/2.20080920.bourse
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
1221866953;2088.6382088;2088.6382088
|
||||
1221929547;2297.504;2297.504
|
||||
1221929552;2088.63636364;2088.63636364
|
||||
1221929578;3057.977824;3057.977824
|
||||
1221933324;3363.778;3363.778
|
||||
1221933340;4924.910298;4924.910298
|
||||
1
game/cache/bourse/3.20081104.bourse
vendored
Normal file
1
game/cache/bourse/3.20081104.bourse
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
1225821382;161.051239669;161.051239669
|
||||
4
game/cache/bourse/Copie de 1.20080915.bourse
vendored
Normal file
4
game/cache/bourse/Copie de 1.20080915.bourse
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
1221438807;805.255;805.255
|
||||
1221462454;974.35855;974.35855
|
||||
1221462476;1071.7949;1071.7949
|
||||
1221463711;1178.969;1178.969
|
||||
2
game/cache/inline.cache
vendored
2
game/cache/inline.cache
vendored
|
|
@ -1 +1 @@
|
|||
1
|
||||
0
|
||||
BIN
game/cache/signatures/8..sign
vendored
BIN
game/cache/signatures/8..sign
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB |
98
game/cron/class.planete.php
Normal file
98
game/cron/class.planete.php
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
<?php
|
||||
/***************************************************************************
|
||||
* class.planete.php
|
||||
* -------------------
|
||||
* begin : Jeudi 21 août 2008
|
||||
* update : Dimanche 7 septembre 2008
|
||||
* email : nemunaire@gmail.com
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
class Planete extends User{
|
||||
var $id,
|
||||
$metal,
|
||||
$cristal,
|
||||
$hydrogene,
|
||||
$batiments = array(),
|
||||
$casernes = array(),
|
||||
$terrestres = array(),
|
||||
$vaisseaux = array();
|
||||
|
||||
/**
|
||||
* Constructeur
|
||||
* @param int $id id de la planète à importer
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function Planete($plan, $user){
|
||||
global $batimentVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR;
|
||||
parent::User($user);
|
||||
$this->id = $plan["id"];
|
||||
$this->metal = $plan["metal"];
|
||||
$this->cristal = $plan["cristal"];
|
||||
$this->hydrogene = $plan["hydrogene"];
|
||||
|
||||
foreach($batimentVAR as $bat){
|
||||
$this->batiments[] = $plan[$bat];
|
||||
}
|
||||
foreach($casernenVAR as $cas){
|
||||
$this->casernes[] = $plan[$cas];
|
||||
}
|
||||
foreach($nomterrnVAR as $ter){
|
||||
$this->terrestres[] = $plan[$ter];
|
||||
}
|
||||
foreach($nomvaisnVAR as $vais){
|
||||
$this->vaisseaux[] = $plan[$vais];
|
||||
}
|
||||
}
|
||||
|
||||
function calculerBatiments(){
|
||||
global $batimentCALC;
|
||||
$pointsbat = 0;
|
||||
$planete = $this;
|
||||
|
||||
foreach($this->batiments as $k => $n){
|
||||
eval($batimentCALC[$k][0]);
|
||||
eval($batimentCALC[$k][1]);
|
||||
eval($batimentCALC[$k][2]);
|
||||
$pointsbat += $a + $b + $c;
|
||||
}
|
||||
|
||||
return $pointsbat;
|
||||
}
|
||||
|
||||
function calculerCasernes(){
|
||||
global $casernenCALC;
|
||||
$pointscas = 0;
|
||||
|
||||
foreach($this->casernes as $k => $n){
|
||||
$pointscas += ($casernenCALC[$k][0] + $casernenCALC[$k][1] + $casernenCALC[$k][2]) * $n;
|
||||
}
|
||||
|
||||
return $pointscas;
|
||||
}
|
||||
|
||||
function calculerTerrestres(){
|
||||
global $nomterrnCALC;
|
||||
$pointster = 0;
|
||||
|
||||
foreach($this->terrestres as $k => $n){
|
||||
$pointster += ($nomterrnCALC[$k][0] + $nomterrnCALC[$k][1] + $nomterrnCALC[$k][2]) * $n;
|
||||
}
|
||||
|
||||
return $pointster;
|
||||
}
|
||||
|
||||
function calculerVaisseaux(){
|
||||
global $nomvaisnCALC;
|
||||
$pointsvai = 0;
|
||||
|
||||
foreach($this->vaisseaux as $k => $n){
|
||||
$pointsvai += ($nomvaisnCALC[$k][0] + $nomvaisnCALC[$k][1] + $nomvaisnCALC[$k][2]) * $n;
|
||||
}
|
||||
|
||||
return $pointsvai;
|
||||
}
|
||||
}
|
||||
?>
|
||||
48
game/cron/class.user.php
Normal file
48
game/cron/class.user.php
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
/***************************************************************************
|
||||
* class.user.php
|
||||
* ----------------
|
||||
* begin : Dimanche 7 septembre 2008
|
||||
* update : Dimanche 7 septembre 2008
|
||||
* email : nemunaire@gmail.com
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
class User{
|
||||
var $id_user,
|
||||
$technologies = array(),
|
||||
$credits;
|
||||
|
||||
/**
|
||||
* Constructeur
|
||||
* @param int $id id de la planète à importer
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function User($user){
|
||||
global $technoloVAR;
|
||||
$this->id_user = $user["id"];
|
||||
$this->credits = $user["credits"];
|
||||
|
||||
foreach($technoloVAR as $tech){
|
||||
$this->technologies[] = $user[$tech];
|
||||
}
|
||||
}
|
||||
|
||||
function calculerTechnologies(){
|
||||
global $technoloCALC;
|
||||
$pointstech = 0;
|
||||
$planete = $this;
|
||||
|
||||
foreach($this->batiments as $k => $n){
|
||||
eval($technoloCALC[$k][0]);
|
||||
eval($technoloCALC[$k][1]);
|
||||
eval($technoloCALC[$k][2]);
|
||||
$pointstech += $a + $b + $c;
|
||||
}
|
||||
|
||||
return $pointstech;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -2,6 +2,9 @@
|
|||
if(!defined('CRON')) { header('Location: ../'); exit; }
|
||||
print 'Début de la génération du classement ; il est : '.date('d/m/Y H:i:s');
|
||||
|
||||
require_once(_FCORE."../game/cron/class.user.php");
|
||||
require_once(_FCORE."../game/cron/class.planete.php");
|
||||
|
||||
//*
|
||||
//Classement Joueurs
|
||||
$bdd->connexion();
|
||||
|
|
@ -9,10 +12,8 @@ $bdd->query("TRUNCATE TABLE $table_classement;");
|
|||
$users = $bdd->query("SELECT * FROM $table_user;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$cnt = $bdd->num_rows;
|
||||
for($i = 0; $i < $cnt; $i++){
|
||||
$id_user = $users[$i]['id'];
|
||||
$queryUser = $users[$i];
|
||||
foreach($users as $queryUser){
|
||||
$id_user = $queryUser['id'];
|
||||
$pointsbat = 0;
|
||||
$pointsterr = 0;
|
||||
$pointsvais = 0;
|
||||
|
|
@ -21,76 +22,47 @@ for($i = 0; $i < $cnt; $i++){
|
|||
$planetes = $bdd->query("SELECT * FROM $table_planete WHERE id_user = $id_user;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$cntp = $bdd->num_rows;
|
||||
for($j = 0; $j < $cntp; $j++){
|
||||
$queryPlanete = $planetes[$j];
|
||||
|
||||
$nbbat = count($batimentVAR);
|
||||
for($k = 0; $k < $nbbat; $k++){
|
||||
if ($queryPlanete[$batimentVAR[$k]] == 0) continue;
|
||||
else {
|
||||
$n = $queryPlanete[$batimentVAR[$k]];
|
||||
eval($batimentCALC[$k][0]);
|
||||
eval($batimentCALC[$k][1]);
|
||||
eval($batimentCALC[$k][2]);
|
||||
$pointsbat += $a + $b + $c;
|
||||
}
|
||||
}
|
||||
|
||||
$nbterr = count($nomterrnVAR);
|
||||
for($k = 0; $k < $nbterr; $k++){
|
||||
if ($queryPlanete[$nomterrnVAR[$k]] == 0) continue;
|
||||
else {
|
||||
$n = $queryPlanete[$nomterrnVAR[$k]];
|
||||
$pointsterr += ($nomterrnCALC[$k][0] + $nomterrnCALC[$k][1] + $nomterrnCALC[$k][2]) * $n;
|
||||
}
|
||||
}
|
||||
|
||||
$nbvais = count($nomvaisnVAR);
|
||||
for($k = 0; $k < $nbvais; $k++){
|
||||
if ($queryPlanete[$nomvaisnVAR[$k]] == 0) continue;
|
||||
else {
|
||||
$n = $queryPlanete[$nomvaisnVAR[$k]];
|
||||
$pointsvais += ($nomvaisnCALC[$k][0] + $nomvaisnCALC[$k][1] + $nomvaisnCALC[$k][2]) * $n;
|
||||
}
|
||||
//Calcul des points par planète
|
||||
if (!empty($planetes)) {
|
||||
foreach($planetes as $planete){
|
||||
$plan = new Planete($planete, $queryUser);
|
||||
$pointsbat += $plan->calculerBatiments();
|
||||
$pointsterr += $plan->calculerTerrestres();
|
||||
$pointsvais += $plan->calculerVaisseaux();
|
||||
}
|
||||
}
|
||||
|
||||
$nbtech = count($technoloVAR);
|
||||
$pointstech = 0;
|
||||
for($k = 0; $k < $nbtech; $k++){
|
||||
if ($queryUser[$technoloVAR[$k]] == 0) continue;
|
||||
else {
|
||||
$n = $queryUser[$technoloVAR[$k]];
|
||||
eval($technoloCALC[$k][0]);
|
||||
eval($technoloCALC[$k][1]);
|
||||
eval($technoloCALC[$k][2]);
|
||||
$pointstech += $a + $b + $c;
|
||||
}
|
||||
}
|
||||
//Calcul des points du joueur
|
||||
$pointstech = $plan->calculerTechnologies();
|
||||
|
||||
//Division par 1000
|
||||
$pointstech /= 1000;
|
||||
$pointsvais /= 1000;
|
||||
$pointsterr /= 1000;
|
||||
$pointsbat /= 1000;
|
||||
|
||||
//Calcul des points totaux
|
||||
$points = $pointsbat + $pointsterr + $pointsvais + $pointstech;
|
||||
|
||||
//Mise à jour des points pour le joueur
|
||||
$bdd->connexion();
|
||||
$bdd->query("UPDATE $table_user SET points = $points, batiments = $pointsbat, recherches = $pointstech, flotte = $pointsvais, terrestre = $pointsterr WHERE id = $id_user;");
|
||||
if ($queryUser['auth_level'] < 2 && $queryUser['mv'] < 2) $bdd->query("INSERT INTO $table_classement (id_user, points, flottes, terrestres, recherches, batiments) VALUES ($id_user, $points, $pointsvais, $pointsterr, $pointstech, $pointsbat);");
|
||||
if ($queryUser['auth_level'] < 2 && $queryUser['mv'] < 2) $bdd->query("INSERT INTO $table_classement (id_user, pseudo, points, flottes, terrestres, recherches, batiments) VALUES ($id_user, '".$queryUser['pseudo']."', $points, $pointsvais, $pointsterr, $pointstech, $pointsbat);");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
|
||||
$p = 0;
|
||||
$bdd->connexion();
|
||||
$classement = $bdd->query("SELECT U.id, U.auth_level FROM $table_classement C INNER JOIN $table_user U ON C.id_user = U.id ORDER BY C.points DESC;");
|
||||
$cnt = $bdd->num_rows;
|
||||
$p = 0;
|
||||
for($i = 0; $i < $cnt; $i++){
|
||||
if ($classement[$i]['auth_level'] < 2) {
|
||||
|
||||
foreach($classement as $ligne){
|
||||
if ($ligne['auth_level'] < 2) {
|
||||
$p++;
|
||||
$bdd->query("UPDATE $table_user SET place_points = $p WHERE id = ".$classement[$i]['id']);
|
||||
$bdd->query("UPDATE $table_user SET place_points = $p WHERE id = ".$ligne['id']);
|
||||
}
|
||||
else $bdd->query("UPDATE $table_user SET place_points = 0 WHERE id = ".$classement[$i]['id']);
|
||||
else $bdd->query("UPDATE $table_user SET place_points = 0 WHERE id = ".$ligne['id']);
|
||||
}
|
||||
|
||||
$bdd->deconnexion();
|
||||
//*/
|
||||
print '<br />Fin de la génération du classement joueur ; il est : '.date('d/m/Y H:i:s');
|
||||
|
|
@ -99,11 +71,11 @@ print '<br />Fin de la génération du classement joueur ; il est : '.date('d/m/
|
|||
$bdd->connexion();
|
||||
$bdd->query("TRUNCATE TABLE $table_classement_alliances;");
|
||||
$alliances = $bdd->query("SELECT U.id_alliance, SUM(U.id) AS nombre, SUM(U.points)/SUM(U.id) AS points, SUM(U.batiments)/SUM(U.id) AS batiments, SUM(U.recherches)/SUM(U.id) AS recherches, SUM(U.flotte)/SUM(U.id) AS flotte, SUM(U.terrestre)/SUM(U.id) AS terrestre FROM $table_user U GROUP BY U.id_alliance;");
|
||||
$cnt = $bdd->num_rows;
|
||||
for($i = 0; $i < $cnt; $i++){
|
||||
if ($alliances[$i]['id_alliance'] != 0) $bdd->query("INSERT INTO $table_classement_alliances (id_alliance, nbr_membres, points, batiments, recherches, flottes, terrestres) VALUES (".$alliances[$i]['id_alliance'].", ".$alliances[$i]['nombre'].", ".$alliances[$i]['points'].", ".$alliances[$i]['batiments'].", ".$alliances[$i]['recherches'].", ".$alliances[$i]['flotte'].", ".$alliances[$i]['terrestre'].");");
|
||||
foreach($alliances as $alliance){
|
||||
if ($alliance['id_alliance'] != 0) $bdd->query("INSERT INTO $table_classement_alliances (id_alliance, nbr_membres, points, batiments, recherches, flottes, terrestres) VALUES (".$alliance['id_alliance'].", ".$alliance['nombre'].", ".$alliance['points'].", ".$alliance['batiments'].", ".$alliance['recherches'].", ".$alliance['flotte'].", ".$alliance['terrestre'].");");
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
|
||||
print '<br />Fin de la génération du classement ; il est : '.date('d/m/Y H:i:s');
|
||||
|
||||
?>
|
||||
|
|
@ -1,110 +1,114 @@
|
|||
<?php
|
||||
if(!defined('CRON')) { header('Location: ../'); exit; }
|
||||
|
||||
print '<br /><br />Début de la sauvegarde de la base de données ; il est : '.date('d/m/Y H:i:s');
|
||||
|
||||
function dumpTable($fp, $nomtable) {
|
||||
global $config;
|
||||
include(_FCORE."../game/tables.php");
|
||||
$bdd = new bdd();
|
||||
|
||||
if (!function_exists('gzopen')) $fwrite = 'fwrite';
|
||||
else $fwrite = 'gzwrite';
|
||||
|
||||
$fwrite($fp, "-- Données de la table $nomtable\n\n");
|
||||
$bdd->connexion();
|
||||
$nomtable = ${'table_'.$nomtable};
|
||||
$res = $bdd->query('SELECT * FROM '.$nomtable.';');
|
||||
$bdd->deconnexion();
|
||||
|
||||
for($i = 0; $i < $bdd->num_rows; $i++){
|
||||
$strFieldsNames = '';
|
||||
$strFieldsValues = '';
|
||||
|
||||
foreach ($res[$i] as $field_name => $field_value){
|
||||
if ($strFieldsNames) $strFieldsNames .= ', ';
|
||||
$strFieldsNames .= "$field_name";
|
||||
|
||||
if($strFieldsValues) $strFieldsValues .= ', ';
|
||||
$strFieldsValues .= "'" . addslashes($field_value) . "'";
|
||||
}
|
||||
$fwrite($fp, 'INSERT INTO '.$nomtable.' ('.$strFieldsNames.') VALUES ('.$strFieldsValues.");\n");
|
||||
}
|
||||
$fwrite($fp, "\n\n");
|
||||
}
|
||||
|
||||
function dumpTableXML($fp, $nomtable) {
|
||||
global $config;
|
||||
include(_FCORE."../game/tables.php");
|
||||
$bdd = new bdd();
|
||||
$bdd->connexion();
|
||||
$nomtable = ${'table_'.$nomtable};
|
||||
$res = $bdd->query('SELECT * FROM '.$nomtable.';');
|
||||
$bdd->deconnexion();
|
||||
|
||||
fwrite($fp, "<table name=\"$nomtable>\"\n");
|
||||
for($i = 0; $i < $bdd->num_rows; $i++){
|
||||
fwrite($fp, "\t<enregistrement i=\"$i\">\n");
|
||||
foreach ($res[$i] as $field_name => $field_value){
|
||||
fwrite($fp, "\t\t<$field_name>".htmlentities($field_value)."</$field_name>\n");
|
||||
}
|
||||
fwrite($fp, "\t</enregistrement>\n");
|
||||
}
|
||||
fwrite($fp, "</table>\n");
|
||||
}
|
||||
|
||||
//Création du fichier de destination
|
||||
$fname = _FCORE."backup/".date('Y-m-d H-i-s');
|
||||
if (true || !function_exists('gzopen')) {
|
||||
$fp = fopen($fname.'.sql', 'w+');
|
||||
$ext = 'sql';
|
||||
$fwrite = 'fwrite';
|
||||
}
|
||||
if(!is_writable(_FCORE."backup/")) print 'dossier backup non accessible en ecriture ! Impossible de faire la sauvegarde de la base de données';
|
||||
else {
|
||||
$fp = gzopen($fname.'.gz', 'w+');
|
||||
$ext = 'gz';
|
||||
$fwrite = 'gzwrite';
|
||||
}
|
||||
$fpx = fopen($fname.'.xml', 'w+');
|
||||
function dumpTable($fp, $nomtable) {
|
||||
global $config;
|
||||
include(_FCORE."../game/tables.php");
|
||||
$bdd = new bdd();
|
||||
|
||||
if ($fp) {
|
||||
$fwrite($fp, "-- Utilitaire de sauvegarde de base de données de HB\n-- Sauvegarde du ".date('d/m/Y H:i:s')."\n-- Version du jeu : ".$config['version']."\n\n");
|
||||
fwrite($fpx, '<?xml version="1.0" encoding="UTF-8" ?>'."\n<!DOCTYPE SavBDD_HB>\n");
|
||||
if (!function_exists('gzopen')) $fwrite = 'fwrite';
|
||||
else $fwrite = 'gzwrite';
|
||||
|
||||
//Liste des tables à sauvegarder
|
||||
$list = array('alliances', 'alliances_attente', 'alliances_chat', 'alliances_creation', 'alliances_grade', 'flottes', 'flottes_combats', 'planete', 'user');
|
||||
$fwrite($fp, "-- Données de la table $nomtable\n\n");
|
||||
$bdd->connexion();
|
||||
$nomtable = ${'table_'.$nomtable};
|
||||
$res = $bdd->query('SELECT * FROM '.$nomtable.';');
|
||||
$bdd->deconnexion();
|
||||
|
||||
foreach($list as $table) {
|
||||
dumpTable($fp, $table);
|
||||
dumpTableXML($fpx, $table);
|
||||
for($i = 0; $i < $bdd->num_rows; $i++){
|
||||
$strFieldsNames = '';
|
||||
$strFieldsValues = '';
|
||||
|
||||
foreach ($res[$i] as $field_name => $field_value){
|
||||
if ($strFieldsNames) $strFieldsNames .= ', ';
|
||||
$strFieldsNames .= "$field_name";
|
||||
|
||||
if($strFieldsValues) $strFieldsValues .= ', ';
|
||||
$strFieldsValues .= "'" . addslashes($field_value) . "'";
|
||||
}
|
||||
$fwrite($fp, 'INSERT INTO '.$nomtable.' ('.$strFieldsNames.') VALUES ('.$strFieldsValues.");\n");
|
||||
}
|
||||
$fwrite($fp, "\n\n");
|
||||
}
|
||||
|
||||
function dumpTableXML($fp, $nomtable) {
|
||||
global $config;
|
||||
include(_FCORE."../game/tables.php");
|
||||
$bdd = new bdd();
|
||||
$bdd->connexion();
|
||||
$nomtable = ${'table_'.$nomtable};
|
||||
$res = $bdd->query('SELECT * FROM '.$nomtable.';');
|
||||
$bdd->deconnexion();
|
||||
|
||||
fwrite($fp, "<table name=\"$nomtable>\"\n");
|
||||
for($i = 0; $i < $bdd->num_rows; $i++){
|
||||
fwrite($fp, "\t<enregistrement i=\"$i\">\n");
|
||||
foreach ($res[$i] as $field_name => $field_value){
|
||||
fwrite($fp, "\t\t<$field_name>".htmlentities($field_value)."</$field_name>\n");
|
||||
}
|
||||
fwrite($fp, "\t</enregistrement>\n");
|
||||
}
|
||||
fwrite($fp, "</table>\n");
|
||||
}
|
||||
|
||||
//Création du fichier de destination
|
||||
$fname = _FCORE."backup/".date('Y-m-d H-i-s');
|
||||
if (true || !function_exists('gzopen')) {
|
||||
$fp = fopen($fname.'.sql', 'w+');
|
||||
$ext = 'sql';
|
||||
$fwrite = 'fwrite';
|
||||
}
|
||||
else {
|
||||
$fp = gzopen($fname.'.gz', 'w+');
|
||||
$ext = 'gz';
|
||||
$fwrite = 'gzwrite';
|
||||
}
|
||||
$fpx = fopen($fname.'.xml', 'w+');
|
||||
|
||||
if ($fp) {
|
||||
$fwrite($fp, "-- Utilitaire de sauvegarde de base de données de HB\n-- Sauvegarde du ".date('d/m/Y H:i:s')."\n-- Version du jeu : ".$config['version']."\n\n");
|
||||
fwrite($fpx, '<?xml version="1.0" encoding="UTF-8" ?>'."\n<!DOCTYPE SavBDD_HB>\n");
|
||||
|
||||
//Liste des tables à sauvegarder
|
||||
$list = array('alliances', 'alliances_attente', 'alliances_chat', 'alliances_creation', 'alliances_grade', 'flottes', 'flottes_combats', 'planete', 'user');
|
||||
|
||||
foreach($list as $table) {
|
||||
dumpTable($fp, $table);
|
||||
dumpTableXML($fpx, $table);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('gzopen')) fclose($fp);
|
||||
else gzclose($fp);
|
||||
|
||||
// TODO tester l'envoie de mail !!
|
||||
if (@$envoyer_mail) {
|
||||
require_once(_FCORE."../game/Class/class.phpmailer.php");
|
||||
|
||||
$mail = new PHPmailer();
|
||||
$mail->SetLanguage('fr', _FCORE."../game/Class/");
|
||||
$mail->IsSMTP();
|
||||
$mail->Host='s-fr.com';
|
||||
$mail->From='no-reply@halo-battle.s-fr.com';
|
||||
$mail->FromName='Halo-Battle';
|
||||
$mail->SMTPAuth=true;
|
||||
$mail->Username='no-reply@halo-battle.s-fr.com';
|
||||
$mail->Password='hD3e2nXu';
|
||||
|
||||
$mail->AddAddress('sauv@gmail.com');
|
||||
$mail->AddReplyTo('no-reply@halo-battle.s-fr.com');
|
||||
$mail->Subject = 'Sauvegarde du '.date('d/m/Y à H:i:s');
|
||||
$mail->Body = 'Utilitaire de sauvegarde de base de données de HB version '.$config['version'];
|
||||
$mail->AddAttachment($fname.'.'.$ext);
|
||||
|
||||
$return = $mail->Send();
|
||||
$mail->SmtpClose();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!function_exists('gzopen')) fclose($fp);
|
||||
else gzclose($fp);
|
||||
|
||||
// TODO tester l'envoie de mail !!
|
||||
if (@$envoyer_mail) {
|
||||
require_once(_FCORE."../game/Class/class.phpmailer.php");
|
||||
|
||||
$mail = new PHPmailer();
|
||||
$mail->SetLanguage('fr', _FCORE."../game/Class/");
|
||||
$mail->IsSMTP();
|
||||
$mail->Host='s-fr.com';
|
||||
$mail->From='no-reply@halo-battle.s-fr.com';
|
||||
$mail->FromName='Halo-Battle';
|
||||
$mail->SMTPAuth=true;
|
||||
$mail->Username='no-reply@halo-battle.s-fr.com';
|
||||
$mail->Password='hD3e2nXu';
|
||||
|
||||
$mail->AddAddress('sauv@gmail.com');
|
||||
$mail->AddReplyTo('no-reply@halo-battle.s-fr.com');
|
||||
$mail->Subject = 'Sauvegarde du '.date('d/m/Y à H:i:s');
|
||||
$mail->Body = 'Utilitaire de sauvegarde de base de données de HB version '.$config['version'];
|
||||
$mail->AddAttachment($fname.'.'.$ext);
|
||||
|
||||
$return = $mail->Send();
|
||||
$mail->SmtpClose();
|
||||
}
|
||||
|
||||
print '<br />Fin de la sauvegarde de la base de données ; il est : '.date('d/m/Y H:i:s').'<br />';
|
||||
?>
|
||||
|
|
@ -8,6 +8,12 @@ function trouvNom($id_user){
|
|||
return $resultat['pseudo'];
|
||||
}
|
||||
|
||||
function linkNom($id_user){
|
||||
if (is_numeric($id_user)) $nom = trouvNom($id_user);
|
||||
else $id_user = trouvId($id_user);
|
||||
return '<a href="?p=util&i='.$id_user.'">'.$nom.'</a>';
|
||||
}
|
||||
|
||||
function trouvId($nom){
|
||||
global $table_user;
|
||||
$base = new bdd();
|
||||
|
|
@ -59,21 +65,39 @@ function sec($time) {
|
|||
}
|
||||
|
||||
function readDeblok($tableau, $queryPlanete){
|
||||
global $batimentVAR, $technoloVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR;
|
||||
global $batimentVAR, $technologiesVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR;
|
||||
if ($tableau == '0') return 'Débloqué';
|
||||
else {
|
||||
$nbDeblok = count($tableau);
|
||||
$return = '';
|
||||
for ($i=0 ; $i<$nbDeblok ; $i++) {
|
||||
if ($x = array_search($tableau[$i][1], $batimentVAR)) $var = 'batiments';
|
||||
elseif ($x = array_search($tableau[$i][1], $technoloVAR) || $tableau[$i][1] == $technoloVAR[0]) $var = 'technologies';
|
||||
elseif ($x = array_search($tableau[$i][1], $casernenVAR)) $var = 'casernes';
|
||||
elseif ($x = array_search($tableau[$i][1], $nomterrnVAR)) $var = 'terrestres';
|
||||
elseif ($x = array_search($tableau[$i][1], $nomvaisnVAR)) $var = 'vaisseaux';
|
||||
foreach ($tableau as $ligne){
|
||||
if (!(array_search($ligne[1], $batimentVAR) === false)) {
|
||||
$x = array_search($ligne[1], $batimentVAR);
|
||||
$var = 'batiments';
|
||||
}
|
||||
elseif (!(array_search($ligne[1], $technologiesVAR) === false)) {
|
||||
$x = array_search($ligne[1], $technologiesVAR);
|
||||
$var = 'technologies';
|
||||
}
|
||||
elseif (!($x = array_search($ligne[1], $casernenVAR) === false)) {
|
||||
$x = array_search($ligne[1], $casernenVAR);
|
||||
$var = 'casernes';
|
||||
}
|
||||
elseif (!($x = array_search($ligne[1], $nomterrnVAR) === false)) {
|
||||
$x = array_search($ligne[1], $nomterrnVAR);
|
||||
$var = 'terrestres';
|
||||
}
|
||||
elseif (!($x = array_search($ligne[1], $nomvaisnVAR) === false)) {
|
||||
$x = array_search($ligne[1], $nomvaisnVAR);
|
||||
$var = 'vaisseaux';
|
||||
}
|
||||
else return '#Error';
|
||||
|
||||
//print $tableau[$i][2];
|
||||
if (isset($var)) $return .= techno($tableau[$i][0], $queryPlanete->{$var}[$x], $tableau[$i][2]).'<br />';
|
||||
if (isset($var) && $var == 'technologies') {
|
||||
if (($queryPlanete->{$var}[$x] & $ligne[2]) != $ligne[2]) $return .= '<span class="lack">'.$ligne[0].' ('.$var.')</span><br />';
|
||||
else $return .= $ligne[0].' ('.$var.')<br />';
|
||||
}
|
||||
elseif (isset($var) && $queryPlanete->{$var}[$x] < $ligne[2]) $return .= '<span class="lack">'.$ligne[0].' '.$ligne[2].' ('.$queryPlanete->{$var}[$x].') ('.$var.')</span><br />';
|
||||
elseif (isset($var) && $queryPlanete->{$var}[$x] >= $ligne[2]) $return .= $ligne[0].' '.$ligne[2].' ('.$queryPlanete->{$var}[$x].') ('.$var.')<br />';
|
||||
}
|
||||
if (empty($return)) return 'Débloqué';
|
||||
else return $return;
|
||||
|
|
@ -81,31 +105,42 @@ function readDeblok($tableau, $queryPlanete){
|
|||
}
|
||||
|
||||
function requestDeblok($tableau, $queryPlanete){
|
||||
global $batimentVAR, $technoloVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR;
|
||||
global $batimentVAR, $technologiesVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR;
|
||||
if ($tableau == '0') return true;
|
||||
else {
|
||||
$nbDeblok = count($tableau);
|
||||
$return = true;
|
||||
for ($i=0 ; $i<$nbDeblok ; $i++) {
|
||||
if ($x = array_search($tableau[$i][1], $batimentVAR)) $var = 'batiments';
|
||||
elseif ($x = array_search($tableau[$i][1], $technoloVAR) || array_search($tableau[$i][1], $technoloVAR) === 0) $var = 'technologies';
|
||||
elseif ($x = array_search($tableau[$i][1], $casernenVAR)) $var = 'casernes';
|
||||
elseif ($x = array_search($tableau[$i][1], $nomterrnVAR)) $var = 'terrestres';
|
||||
elseif ($x = array_search($tableau[$i][1], $nomvaisnVAR)) $var = 'vaisseaux';
|
||||
foreach ($tableau as $ligne){
|
||||
if (!(array_search($ligne[1], $batimentVAR) === false)) {
|
||||
$x = array_search($ligne[1], $batimentVAR);
|
||||
$var = 'batiments';
|
||||
}
|
||||
elseif (!(array_search($ligne[1], $technologiesVAR) === false)) {
|
||||
$x = array_search($ligne[1], $technologiesVAR);
|
||||
$var = 'technologies';
|
||||
}
|
||||
elseif (!($x = array_search($ligne[1], $casernenVAR) === false)) {
|
||||
$x = array_search($ligne[1], $casernenVAR);
|
||||
$var = 'casernes';
|
||||
}
|
||||
elseif (!($x = array_search($ligne[1], $nomterrnVAR) === false)) {
|
||||
$x = array_search($ligne[1], $nomterrnVAR);
|
||||
$var = 'terrestres';
|
||||
}
|
||||
elseif (!($x = array_search($ligne[1], $nomvaisnVAR) === false)) {
|
||||
$x = array_search($ligne[1], $nomvaisnVAR);
|
||||
$var = 'vaisseaux';
|
||||
}
|
||||
else return false;
|
||||
|
||||
if (isset($var) && $queryPlanete->{$var}[$x] < $tableau[$i][2]) $return = false;
|
||||
if (isset($var) && $var == 'technologies') {
|
||||
if (($queryPlanete->{$var}[$x] & $ligne[2]) != $ligne[2]) $return = false;
|
||||
}
|
||||
elseif (isset($var) && $queryPlanete->{$var}[$x] < $ligne[2]) $return = false;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
}
|
||||
|
||||
function techno($nom, $niveau, $niveau_ress) {
|
||||
if (empty($niveau)) $niveau = 0;
|
||||
if ($niveau < $niveau_ress) return '<span class="lack">'.$nom.' '.$niveau_ress.' ('.$niveau.')</span>';
|
||||
else return ''.$nom.' '.$niveau_ress.' ('.$niveau.')';
|
||||
}
|
||||
|
||||
function txtmission($mission){
|
||||
if ($mission == 0) return 'Stationner';
|
||||
elseif ($mission == 1) return 'Attaquer';
|
||||
|
|
@ -277,18 +312,18 @@ function erreur($message, $color = "red", $lien = "", $temps = 2500){
|
|||
exit;
|
||||
}
|
||||
|
||||
function send_mp($joueur, $titre, $message){
|
||||
global $table_mail;
|
||||
function send_mp($joueur, $titre, $message, $type = 0, $emetteur = 0){
|
||||
global $table_mail, $bdd;
|
||||
$temps = time();
|
||||
if (!is_numeric($joueur)) $joueur = trouvId($joueur);
|
||||
if (!is_numeric($emetteur)) $emetteur = trouvId($emetteur);
|
||||
if (!empty($joueur)) {
|
||||
$base = new bdd();
|
||||
$base->connexion();
|
||||
$base->escape($joueur);
|
||||
$base->escape($titre);
|
||||
$base->escape($message);
|
||||
$base->query("INSERT INTO $table_mail (destinataire, sujet, contenu, temps) VALUES($joueur, '$titre', '$message', '$temps');");
|
||||
$base->deconnexion();
|
||||
$bdd->connexion();
|
||||
$bdd->escape($joueur);
|
||||
$bdd->escape($titre);
|
||||
$bdd->escape($message);
|
||||
$bdd->query("INSERT INTO $table_mail (destinataire, expediteur, type, sujet, contenu, temps) VALUES($joueur, $emetteur, $type, '$titre', '$message', '$temps');");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,12 +5,12 @@ $titre = 'Accueil';
|
|||
|
||||
//Affichage de l'alliance du joueur
|
||||
$bdd->connexion();
|
||||
$alli = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = '".$queryUser['id_alliance']."';");
|
||||
$alli = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = '".$planete->id_alliance."';");
|
||||
|
||||
//On regarde si le joueur a une flotte en vue
|
||||
$radar = array();
|
||||
$nbPlan = count($queryPlanetes);
|
||||
$detect = $queryUser['detection']*1800;
|
||||
$detect = $planete->technologies[1]*1800;
|
||||
for($i = 0; $i < $nbPlan; $i++){
|
||||
$end_galaxie = $queryPlanetes[$i]['galaxie'];
|
||||
$end_ss = $queryPlanetes[$i]['ss'];
|
||||
|
|
@ -22,7 +22,7 @@ $bdd->deconnexion();
|
|||
|
||||
//Affichage des informations sur la planète
|
||||
$diametre = separerNombres($planete->cases * 92);
|
||||
$Classpoints = separerNombres($queryUser['points']);
|
||||
$Classpoints = separerNombres($planete->points);
|
||||
|
||||
$template->assign('mail', $queryMail);
|
||||
$template->assign('radar',$radar);
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ while($resultat = mysql_fetch_array($req)) {
|
|||
elseif ($resultat['multi'] == 1 && $anc['ip'] == $resultat['ip'] && $anc['id_util'] != $resultat['id_util']) $color = 'EE66EE';
|
||||
elseif ($anc['ip'] == $resultat['ip'] && $anc['id_util'] != $resultat['id_util']) $color = 'FF0000';
|
||||
else $color = false;
|
||||
$tableau[] = array($resultat['ip'], gethostbyaddr($resultat['ip']), $resultat['id_util'], $resultat['pseudo'], $resultat['time'], $resultat['mv'], $color);
|
||||
$tableau[] = array($resultat['ip'], 'absent pour plus de rapidité'/*gethostbyaddr($resultat['ip'])*/, $resultat['id_util'], $resultat['pseudo'], $resultat['time'], $resultat['mv'], $color);
|
||||
$anc = $resultat;
|
||||
}
|
||||
$template->assign('ips', $tableau);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ elseif (!empty($_GET['v'])) {
|
|||
$template->assign('id', $id);
|
||||
$pagea = 'mail_view';
|
||||
}
|
||||
elseif (!empty($_GET['d']) && $sess->values['auth_level'] >= 5) {
|
||||
elseif (!empty($_GET['d']) && $sess->level >= 5) {
|
||||
$id = $_GET['d'];
|
||||
$chapeau->connexion();
|
||||
$chapeau->escape($id);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,17 @@ $titre = 'Vérification planète';
|
|||
|
||||
$template->assign('linkpage', 'vplanetes');
|
||||
|
||||
if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id') {
|
||||
if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] == 'hash_planete') {
|
||||
$id_plan = $_GET['id'];
|
||||
$chapeau->connexion();
|
||||
$chapeau->query("UPDATE $table_planete SET hash_planete = SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)) WHERE id = $id_plan;");
|
||||
|
||||
$req = $chapeau->unique_query("SELECT * FROM $table_planete WHERE id = $id_plan;");
|
||||
$chapeau->deconnexion();
|
||||
$template->assign('tableau', $req);
|
||||
$template->assign('idPlan', $id_plan);
|
||||
}
|
||||
elseif (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id') {
|
||||
$pagea = 'print_key';
|
||||
$id_plan = $_GET['id'];
|
||||
$key = $_GET['key'];
|
||||
|
|
@ -22,16 +32,16 @@ if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id') {
|
|||
}
|
||||
elseif (!empty($_GET['id'])) {
|
||||
$id_plan = $_GET['id'];
|
||||
if (isset($_POST['key']) && isset($_POST['mod'])) {
|
||||
if (isset($_POST['key']) && isset($_POST['mod']) && $_POST['key'] != 'id') {
|
||||
$key = $_POST['key'];
|
||||
$mod = $_POST['mod'];
|
||||
$chapeau->connexion();
|
||||
$chapeau->escape($mod);
|
||||
$chapeau->query("UPDATE $table_planete SET $key = '$mod' WHERE id = '$id_plan';");
|
||||
$chapeau->query("UPDATE $table_planete SET $key = '$mod' WHERE id = $id_plan;");
|
||||
$chapeau->deconnexion();
|
||||
}
|
||||
$chapeau->connexion();
|
||||
$req = $chapeau->unique_query("SELECT * FROM $table_planete WHERE id = '$id_plan';");
|
||||
$req = $chapeau->unique_query("SELECT * FROM $table_planete WHERE id = $id_plan;");
|
||||
$chapeau->deconnexion();
|
||||
$template->assign('tableau', $req);
|
||||
$template->assign('idPlan', $id_plan);
|
||||
|
|
|
|||
|
|
@ -5,20 +5,26 @@ $pagea = 'erreur';
|
|||
|
||||
$template->assign('linkpage', 'cjoueurs');
|
||||
|
||||
if ($sess->values['auth_level'] >= 5 && !empty($_GET['id'])) {
|
||||
if ($sess->level >= 5 && !empty($_GET['id'])) {
|
||||
$name = $_GET['id'];
|
||||
$chapeau->connexion();
|
||||
$chapeau->escape($name);
|
||||
$req = $chapeau->unique_query("SELECT auth_level FROM $table_user WHERE id = '$name';");
|
||||
$req = $chapeau->unique_query("SELECT id, pseudo, auth_level FROM $table_user WHERE id = '$name';");
|
||||
$chapeau->deconnexion();
|
||||
if ($req['auth_level'] >= 3) {
|
||||
if ($req['auth_level'] >= $sess->level) {
|
||||
$template->assign('message', 'Vous ne pouvez pas prendre le contrôle de cet utilisateur !');
|
||||
}
|
||||
else {
|
||||
$sess->values['id'] = $_GET['id'];
|
||||
$chapeau->connexion();
|
||||
$reqPl = $chapeau->unique_query("SELECT id, nom_planete FROM $table_planete WHERE id_user = '".$req['id']."' LIMIT 1;");
|
||||
$chapeau->deconnexion();
|
||||
|
||||
if (empty($sess->values['souscontrole'])) $sess->values['souscontrole'] = array($sess->values['id'], $sess->values['idPlan']);
|
||||
$sess->values['id'] = $req['id'];
|
||||
$sess->values['idPlan'] = $reqPl['id'];
|
||||
$sess->put();
|
||||
|
||||
$template->assign('message', 'Vous contrôlez maintenant le joueur '.$_GET['id'].'.<br />Pensez à sélectionner sa planète !');
|
||||
$template->assign('message', 'Vous contrôlez maintenant le joueur '.$req['pseudo'].'.<br />Planète '.$reqPl['nom_planete'].' sélectionnée !');
|
||||
}
|
||||
}
|
||||
elseif (!empty($_GET['name'])) {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ $pagea = 'erreur';
|
|||
|
||||
$template->assign('linkpage', 'djoueurs');
|
||||
|
||||
if ($sess->values['auth_level'] >= 5 && !empty($_GET['id'])) {
|
||||
if ($sess->level >= 5 && !empty($_GET['id'])) {
|
||||
$id = $_GET['id'];
|
||||
$chapeau->connexion();
|
||||
$chapeau->escape($id);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ $titre = 'Versions';
|
|||
|
||||
$template->assign('linkpage', 'version');
|
||||
|
||||
if (!empty($_GET['i']) && $_GET['i'] == 'add' && $sess->values['auth_level'] >= 7) {
|
||||
if (!empty($_GET['i']) && $_GET['i'] == 'add' && $sess->level >= 7) {
|
||||
if (!empty($_POST['version']) && !empty($_POST['contenu'])) {
|
||||
$version = $_POST['version'];
|
||||
$contenu = $_POST['contenu'];
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@ include_once(_FCORE."../game/Class/class.rapport.php");
|
|||
|
||||
//Si le joueur est membre de l'alliance
|
||||
$bdd->connexion();
|
||||
if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 && $alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$queryUser['id_alliance'].";")) {
|
||||
if (!empty($planete->id_alliance) && $planete->id_grade_alliance != -1 && $alliance = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$planete->id_alliance.";")) {
|
||||
//On détermine les accès du joueur
|
||||
if ($alliance['fondateur'] == $queryUser['id'])
|
||||
if ($alliance['fondateur'] == $id_user)
|
||||
$access = array(
|
||||
'fondateur' => 1,
|
||||
'chat' => 1,
|
||||
|
|
@ -16,10 +16,9 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
'ecriture' => 1,
|
||||
'alliance' => 1
|
||||
);
|
||||
elseif ($queryUser['id_grade_alliance'] != 0) {
|
||||
$id_grade_alliance = $queryUser['id_grade_alliance'];
|
||||
elseif ($planete->id_grade_alliance != 0) {
|
||||
$bdd->connexion();
|
||||
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = $id_grade_alliance;");
|
||||
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = ".$planete->id_grade_alliance.";");
|
||||
$bdd->deconnexion();
|
||||
$access = array(
|
||||
'fondateur' => 0,
|
||||
|
|
@ -52,7 +51,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$bdd->escape($i);
|
||||
$bdd->query("DELETE FROM $table_alliances_chat WHERE id = $i AND id_alliance = $alliId;");
|
||||
$bdd->deconnexion();
|
||||
header('Location: ./?p=alliances&q=adm_chat#chat');
|
||||
header('Location: ?p=alliances&q=adm_chat#chat');
|
||||
exit;
|
||||
}
|
||||
$page = 'alliance_adm_chat';
|
||||
|
|
@ -88,7 +87,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
@$bdd->query("INSERT INTO $table_alliances_grade (id_alliance, nom, description, gest_chat, gest_rang, gest_membre, gest_ecriture, gest_admin) VALUES (".$alliance['id'].", '$nom', '$description', ".ceil($_POST['gest_chat']).", ".ceil($_POST['gest_rang']).", ".ceil($_POST['gest_membre']).", ".ceil($_POST['gest_ecriture']).", ".ceil($_POST['gest_alliance']).");");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
header('Location: ./?p=alliances&q=adm_grades');
|
||||
header('Location: ?p=alliances&q=adm_grades');
|
||||
exit;
|
||||
}
|
||||
$page = 'alliance_adm_grades_add';
|
||||
|
|
@ -100,7 +99,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$mod = $bdd->unique_query("DELETE FROM $table_alliances_grade WHERE id = $i AND id_alliance = ".$alliance['id'].";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
header('Location: ./?p=alliances&q=adm_grades');
|
||||
header('Location: ?p=alliances&q=adm_grades');
|
||||
exit;
|
||||
}
|
||||
elseif (!empty($_GET['i'])) {
|
||||
|
|
@ -133,7 +132,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$bdd->escape($mod);
|
||||
$bdd->query("UPDATE $table_alliances SET $mod = '$text' WHERE id = $alliId;");
|
||||
$bdd->deconnexion();
|
||||
header('Location: ./?p=alliances&q=adm_ecrits&t='.$mod);
|
||||
header('Location: ?p=alliances&q=adm_ecrits&t='.$mod);
|
||||
exit;
|
||||
}
|
||||
$page = 'alliance_adm_ecritures';
|
||||
|
|
@ -150,21 +149,13 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$bdd->escape($titre);
|
||||
$bdd->escape($texte);
|
||||
$bdd->escape($expediteur);
|
||||
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = $alliId;");
|
||||
$membres = $bdd->query("SELECT id FROM $table_user WHERE id_alliance = $alliId;");
|
||||
$bdd->deconnexion();
|
||||
$nbmembre = $bdd->num_rows;
|
||||
$temps = time();
|
||||
$bdd->connexion();
|
||||
for($i = 0; $i < $nbmembre; $i++){
|
||||
$pseudos = $membres[$i]['pseudo'];
|
||||
$bdd->escape($pseudos);
|
||||
$bdd->query("INSERT INTO $table_mail (destinataire, expediteur, sujet, contenu, temps) VALUES ('$pseudos', '$expediteur', '$titre', '$texte', '$temps');");
|
||||
foreach($membres as $membre){
|
||||
send_mp($membre['id'], $titre, $texte, 1, $id_user);
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
$template->assign('message','Le message privé a été communiqué à tous les joueurs de l\'alliance.');
|
||||
$template->assign('couleur','green');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
erreur('Le message privé a été communiqué à tous les joueurs de l\'alliance.', "green", '?p=alliances');
|
||||
}
|
||||
$page = 'alliance_adm_mpmass';
|
||||
}
|
||||
|
|
@ -179,7 +170,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$bdd->query("DELETE FROM $table_alliances_emprunt WHERE id = $a;");
|
||||
send_mp($demande['id_user'], '['.$alliance['tag'].'] Réponse à la demande de financement', 'Votre demande de financement a été acceptée par l\'alliance.<br />Vous recevez '.$demande['metal'].' '.$ressourc[0].', '.$demande['cristal'].' '.$ressourc[1].', '.$demande['hydrogene'].' '.$ressourc[2].'.');
|
||||
|
||||
header('Location: ./?p=alliances&q=adm_emprunt');
|
||||
header('Location: ?p=alliances&q=adm_emprunt');
|
||||
exit;
|
||||
}
|
||||
else erreur('Impossible d\'accepter la demande de financement pour le moment.');
|
||||
|
|
@ -190,7 +181,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$bdd->query("DELETE FROM $table_alliances_emprunt WHERE id = $u;");
|
||||
send_mp($demande['id_user'], '['.$alliance['tag'].'] Réponse à la demande de financement', 'Votre demande de financement a été refusée par l\'alliance.');
|
||||
|
||||
header('Location: ./?p=alliances&q=adm_emprunt');
|
||||
header('Location: ?p=alliances&q=adm_emprunt');
|
||||
exit;
|
||||
}
|
||||
$demandes = $bdd->query("SELECT E.id, E.raison, E.metal, E.cristal, E.hydrogene, U.pseudo FROM $table_alliances_emprunt E INNER JOIN $table_user U ON U.id = E.id_user WHERE E.id_alliance = ".$alliance['id'].";");
|
||||
|
|
@ -199,7 +190,8 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$alliance['metalS'] = separerNombres($alliance['metal']);
|
||||
$alliance['cristalS'] = separerNombres($alliance['cristal']);
|
||||
$alliance['hydrogeneS'] = separerNombres($alliance['hydrogene']);
|
||||
$template->assign('alliance', $alliance); $page = 'alliance_adm_emprunt';
|
||||
$template->assign('alliance', $alliance);
|
||||
$page = 'alliance_adm_emprunt';
|
||||
}
|
||||
elseif ($_GET['q'] == 'adm_alliance' && $access['alliance']) {
|
||||
$recharg = false;
|
||||
|
|
@ -221,7 +213,10 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$recharg = true;
|
||||
}
|
||||
if (isset($_POST['fondateur']) && $alliance['fondateur'] == $id_user && isset($_POST['pswd_admin'])) {
|
||||
if (!empty($_POST['pswd_admin']) && $queryUser['mdp'] == sha1(strtoupper($queryUser['pseudo']).':'.$_POST['pswd_admin']) && empty($sess->values['forcealli'])) {
|
||||
$bdd->connexion();
|
||||
$queryUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id_user;");
|
||||
$bdd->deconnexion();
|
||||
if (!empty($_POST['pswd_admin']) && $queryUser['mdp'] == sha1(strtoupper($planete->pseudo).':'.$_POST['pswd_admin']) && empty($sess->values['forcealli'])) {
|
||||
$sess->values['forcealli'] = true;
|
||||
$sess->put();
|
||||
$template->assign('message','Êtes-vous sûr de vouloir dissoudre cette alliance ?<br /><i>Pour confirmer la dissolution de l\'alliance, rechargez cette page.</i>');
|
||||
|
|
@ -229,27 +224,20 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
elseif (!empty($_POST['pswd_admin']) && $queryUser['mdp'] == sha1(strtoupper($queryUser['pseudo']).':'.$_POST['pswd_admin']) && isset($sess->values['forcealli']) && $sess->values['forcealli']) {
|
||||
elseif (!empty($_POST['pswd_admin']) && $queryUser['mdp'] == sha1(strtoupper($planete->pseudo).':'.$_POST['pswd_admin']) && isset($sess->values['forcealli']) && $sess->values['forcealli']) {
|
||||
$alliId = $alliance['id'];
|
||||
$bdd->connexion();
|
||||
$bdd->query("DELETE FROM $table_alliances WHERE id = '$alliId';");
|
||||
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '$alliId';");
|
||||
$membres = $bdd->query("SELECT id FROM $table_user WHERE id_alliance = '$alliId';");
|
||||
$nbeff = $bdd->num_rows;
|
||||
for($i = 0; $i < $nbeff; $i++){
|
||||
$bdd->query("UPDATE $table_user SET id_alliance = '0', id_grade_alliance = '0' WHERE id = '".$membres[$i]['id']."' AND id_alliance = '$alliId';");
|
||||
foreach($membres as $membre){
|
||||
$bdd->query("UPDATE $table_user SET id_alliance = '0', id_grade_alliance = '0' WHERE id = '".$membre['id']."' AND id_alliance = '$alliId';");
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
$template->assign('message','L\'alliance a été dissoute avec succès.');
|
||||
$template->assign('couleur','green');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
erreur('L\'alliance a été dissoute avec succès.', 'green');
|
||||
}
|
||||
elseif (!empty($_POST['pswd_admin']) && $queryUser['mdp'] != sha1(strtoupper($queryUser['pseudo']).':'.$_POST['pswd_admin'])) {
|
||||
$template->assign('message','Impossible de dissoudre l\'alliance : mot de passe incorrect.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=adm_alliance";\', 3000);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
elseif (!empty($_POST['pswd_admin']) && $queryUser['mdp'] != sha1(strtoupper($planete->pseudo).':'.$_POST['pswd_admin'])) {
|
||||
erreur('Impossible de dissoudre l\'alliance : mot de passe incorrect.', "red", "?p=alliances&q=adm_alliance", 3000);
|
||||
}
|
||||
$fondateur = $_POST['fondateur'];
|
||||
$bdd->connexion();
|
||||
|
|
@ -259,7 +247,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$recharg = true;
|
||||
}
|
||||
if ($recharg) {
|
||||
header('Location: ./?p=alliances&q=adm_alliance');
|
||||
header('Location: ?p=alliances&q=adm_alliance');
|
||||
exit;
|
||||
}
|
||||
$page = 'alliance_adm_admin';
|
||||
|
|
@ -276,9 +264,9 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$bdd->deconnexion();
|
||||
$membre = array();
|
||||
$membrei = array();
|
||||
for($i = 0; $i < $bdd->num_rows; $i++){
|
||||
$membre[] = $membres[$i]['pseudo'];
|
||||
$membrei[] = $membres[$i]['id'];
|
||||
foreach($membres as $membrex){
|
||||
$membre[] = $membrex['pseudo'];
|
||||
$membrei[] = $membrex['id'];
|
||||
}
|
||||
$template->assign('membres', $membre);
|
||||
$template->assign('membresi', $membrei);
|
||||
|
|
@ -327,9 +315,9 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$grades = $bdd->query("SELECT * FROM $table_alliances_grade WHERE id_alliance = ".$alliance['id']." ORDER BY nom ASC;");
|
||||
$bdd->deconnexion();
|
||||
$grade = array(); $gradei = array();
|
||||
for($i = 0; $i < $bdd->num_rows ; $i++){
|
||||
$grade[] = $grades[$i]['nom'];
|
||||
$gradei[] = $grades[$i]['id'];
|
||||
foreach($grades as $gradex){
|
||||
$grade[] = $gradex['nom'];
|
||||
$gradei[] = $gradex['id'];
|
||||
}
|
||||
$template->assign('grades', $grade);
|
||||
$template->assign('gradei', $gradei);
|
||||
|
|
@ -346,10 +334,9 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$bdd->connexion();
|
||||
if (isset($_GET['t']) && $_GET['t'] == 'classement') $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '".$alliance['id']."' ORDER BY place_points ASC;");
|
||||
else $membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = '".$alliance['id']."';");
|
||||
$nb = $bdd->num_rows;
|
||||
for ($i = 0; $i < $nb; $i++) {
|
||||
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = '".$membres[$i]['id_grade_alliance']."';");
|
||||
$membres[$i]['grade_alliance'] = $grade['nom'];
|
||||
foreach($membres as $membre){
|
||||
$grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = '".$membre['id_grade_alliance']."';");
|
||||
$membre['grade_alliance'] = $grade['nom'];
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
$template->assign('membres', $membres);
|
||||
|
|
@ -361,7 +348,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$bdd->escape($message);
|
||||
if (!empty($message)) $bdd->query("INSERT INTO $table_alliances_chat (id_alliance, emetteur, timestamp, message) VALUES (".$alliance['id'].", $id_user, ".time().", '$message')");
|
||||
$bdd->deconnexion();
|
||||
header('Location: ./?p=alliances&q=chat#chat');
|
||||
header('Location: ?p=alliances&q=chat#chat');
|
||||
exit;
|
||||
}
|
||||
$page = 'alliance_chat';
|
||||
|
|
@ -369,9 +356,9 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$bdd->connexion();
|
||||
$chat = $bdd->query("SELECT * FROM $table_alliances_chat WHERE id_alliance = ".$alliance['id']." ORDER BY id DESC LIMIT 30");
|
||||
$bdd->deconnexion();
|
||||
for($i = 0; $i < $bdd->num_rows ; $i++){
|
||||
$chat[$i]['emetteur'] = trouvNom($chat[$i]['emetteur']);
|
||||
$chat[$i]['message'] = bbcode(htmlspecialchars($chat[$i]['message']));
|
||||
foreach($chat as $lign){
|
||||
$lign['emetteur'] = trouvNom($lign['emetteur']);
|
||||
$lign['message'] = bbcode(htmlspecialchars($lign['message']));
|
||||
}
|
||||
$template->assign('chat', $chat);
|
||||
}
|
||||
|
|
@ -381,7 +368,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$bdd->query("UPDATE $table_user SET id_grade_alliance = '0', id_alliance = '0' WHERE id = '".$id_user."' AND id_alliance = '".$alliance['id']."';");
|
||||
$bdd->deconnexion();
|
||||
send_mp($id_user, '['.strtoupper($alliance['tag']).'] Vous quittez l\'alliance', 'Vous venez de quitter votre alliance.');
|
||||
send_mp($alliance['fondateur'], '['.strtoupper($alliance['tag']).'] quitte l\'alliance', 'vient de quitter votre alliance.');
|
||||
send_mp($alliance['fondateur'], '['.strtoupper($alliance['tag']).'] '.trouvNom($id_user).' quitte l\'alliance', linkNom($id_user).'vient de quitter votre alliance.');
|
||||
|
||||
$template->assign('message','Vous avez quitté votre alliance.');
|
||||
$template->assign('couleur','green');
|
||||
|
|
@ -394,12 +381,14 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$cristalD = gpc('cristal', 'post'); if (!is_numeric($cristalD)) $cristalD = 0;
|
||||
$hydrogeneD = gpc('hydrogene', 'post'); if (!is_numeric($hydrogeneD)) $hydrogeneD = 0;
|
||||
if ($metalD+$cristalD+$hydrogeneD > 0 && $metalD >= 0 && $cristalD >= 0 && $hydrogeneD >= 0) {
|
||||
if ($planete->metal-$metalD >= 0 && $planete->cristal-$cristalD >= 0 && $planete->hydrogene-$hydrogeneD >= 0) {
|
||||
if ($planete->metal > $metalD && $planete->cristal > $cristalD && $planete->hydrogene > $hydrogeneD) {
|
||||
$bdd->escape($metalD);
|
||||
$bdd->escape($cristalD);
|
||||
$bdd->escape($hydrogeneD);
|
||||
$bdd->query("UPDATE $table_alliances SET metal = metal + $metalD, cristal = cristal + $cristalD, hydrogene = hydrogene + $hydrogeneD WHERE id = ".$alliance['id'].";");
|
||||
$bdd->query("UPDATE $table_planete SET metal = metal - $metalD, cristal = cristal - $cristalD, hydrogene = hydrogene - $hydrogeneD WHERE id = $id_user;");
|
||||
$planete->metal -= $metalD;
|
||||
$planete->cristal -= $cristalD;
|
||||
$planete->hydrogene -= $hydrogeneD;
|
||||
|
||||
header('Location: ?p=alliances');
|
||||
exit;
|
||||
|
|
@ -469,9 +458,9 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$template->assign('chat', $chat);
|
||||
}
|
||||
}
|
||||
elseif (!empty($queryUser['id_alliance']) && $bdd->connexion() && !$bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$queryUser['id_alliance'].";")) {
|
||||
elseif (!empty($planete->id_alliance) && $bdd->connexion() && !$bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$planete->id_alliance.";")) {
|
||||
$bdd->query("UPDATE $table_user SET id_alliance = 0, id_grade_alliance = 0 WHERE id = $id_user;");
|
||||
header('Location: ./?p=alliances');
|
||||
header('Location: ?p=alliances');
|
||||
exit;
|
||||
}
|
||||
//Si le joueur n'est membre d'aucune alliance
|
||||
|
|
|
|||
|
|
@ -4,33 +4,31 @@ $titre = 'Amis';
|
|||
|
||||
$a = gpc('a');
|
||||
$nom = gpc('nom', 'post');
|
||||
if (!empty($a)) {
|
||||
$fav = explode(';', $queryUser['amis']);
|
||||
$cntfav = count($fav);
|
||||
|
||||
//Suppression d'un ami
|
||||
if (!empty($a)) {
|
||||
$d = gpc('d');
|
||||
if (!empty($d) && $a == md5(date('GA').'@'.$d)) {
|
||||
for($i = 0; $i < $cntfav; $i++){
|
||||
if ($fav[$i] == $d) unset($fav[$i]);
|
||||
}
|
||||
$queryUser['amis'] = implode(';', $fav);
|
||||
$f = array_keys($planete->amis, $d);
|
||||
unset($planete->amis[$f[0]]);
|
||||
$bdd->connexion();
|
||||
$bdd->query("UPDATE $table_user SET amis = '".$queryUser['amis']."' WHERE id = $id_user;");
|
||||
$bdd->query("UPDATE $table_user SET amis = '".serialize($planete->amis)."' WHERE id = $id_user;");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
header('Location: ?p=amis');
|
||||
exit;
|
||||
}
|
||||
//Ajout d'un ami dans la liste
|
||||
elseif (!empty($nom)) {
|
||||
$bdd->connexion();
|
||||
$plan = $bdd->unique_query("SELECT id FROM $table_user WHERE pseudo = '$nom';");
|
||||
if ($plan) {
|
||||
if (in_array($plan['id'], explode(';', $queryUser['amis']))) {
|
||||
if (in_array($plan['id'], $planete->amis)) {
|
||||
$bdd->deconnexion();
|
||||
erreur('Ce joueur est déjà dans votre liste d\'amis.', "red", "?p=amis", 2000);
|
||||
}
|
||||
$queryUser['amis'] .= ";".$plan['id'];
|
||||
$bdd->query("UPDATE $table_user SET amis = '".$queryUser['amis']."' WHERE id = $id_user;");
|
||||
$planete->amis[] = $plan['id'];
|
||||
$bdd->query("UPDATE $table_user SET amis = '".serialize($planete->amis)."' WHERE id = $id_user;");
|
||||
}
|
||||
else {
|
||||
$bdd->deconnexion();
|
||||
|
|
@ -41,17 +39,16 @@ elseif (!empty($nom)) {
|
|||
header('Location: ?p=amis');
|
||||
exit;
|
||||
}
|
||||
//Affichage de la liste d'amis
|
||||
else {
|
||||
$page = 'amis';
|
||||
|
||||
$fav = explode(';', $queryUser['amis']);
|
||||
$cntfav = count($fav);
|
||||
$destins = array();
|
||||
$bdd->connexion();
|
||||
for($i = 0; $i < $cntfav; $i++){
|
||||
$res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$fav[$i].";");
|
||||
foreach($planete->amis as $ami){
|
||||
$res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$ami.";");
|
||||
if ($res != false) {
|
||||
$destins[] = array($fav[$i], $res['pseudo'], md5(date('GA').'@'.$fav[$i]));
|
||||
$destins[] = array($ami, $res['pseudo'], md5(date('GA').'@'.$ami));
|
||||
}
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
|
|
|
|||
|
|
@ -5,10 +5,10 @@ $titre = 'Arbre des technologies';
|
|||
|
||||
if (empty($_GET['q'])) $_GET['q'] = '';
|
||||
$template->assign('defaut',$_GET['q']);
|
||||
if (empty($_GET['r']) || ($_GET['r'] != 'humain' && $_GET['r'] != 'covenant')) $_GET['r'] = $queryUser['race'];
|
||||
if (empty($_GET['r']) || ($_GET['r'] != 'humain' && $_GET['r'] != 'covenant')) $_GET['r'] = $planete->race;
|
||||
|
||||
$race = $_GET['r'];
|
||||
if ($race != $queryUser['race']) include(_FCORE."../game/noms.php");
|
||||
if ($race != $planete->race) include(_FCORE."../game/noms.php");
|
||||
$template->assign('raceAff', $race);
|
||||
|
||||
$TEMP_batiments = array();
|
||||
|
|
@ -29,7 +29,7 @@ for ($id=0 ; $id<$nb ; $id++) {
|
|||
if (!empty($technolo[$id])) $TEMP_technologies[] = array(
|
||||
'id' => $id,
|
||||
'nom' => $technolo[$id],
|
||||
'niveau' => $queryUser[$technoloVAR[$id]],
|
||||
'niveau' => $planete->technologies[$id],
|
||||
'etat' => readDeblok($technoloTECH[$id], $planete)
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,8 @@ $titre = 'Batiments';
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
|
@ -41,11 +43,15 @@ $titre = 'Batiments';
|
|||
exit;
|
||||
}*/
|
||||
|
||||
for ($i=0 ; $i<$nbstop ; $i++) {
|
||||
foreach($planete->batiments as $i => $PLbatiment) {
|
||||
$tr = 0; $a = 0; $b = 0; $c = 0; $sec = 0; $enFile = false;
|
||||
if ($planete->batiments[$i] > 0) $niveau = $planete->batiments[$i]; else $niveau = 0;
|
||||
$n = $planete->batiments[$i] + 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;
|
||||
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]);
|
||||
if ($planete->file_exist($i, 'file_bat')) $enFile = true; else $enFile = false;
|
||||
|
||||
//On applique les bonus de test
|
||||
$sec /= VITESSE;
|
||||
|
||||
if (!empty($batiment[$i]) && requestDeblok($batimentTECH[$i], $planete)) $TEMP_batiments[] =
|
||||
array(
|
||||
'image' => $batimeni[$i],
|
||||
|
|
@ -77,12 +83,13 @@ $titre = 'Batiments';
|
|||
else $template->assign('Vchaine', false);
|
||||
|
||||
$file = array();
|
||||
for ($i=1 ; $i <= $nbfile ; $i++) {
|
||||
$file_unit = explode(',', $planete->file_bat[$i]);
|
||||
$n = $planete->batiments[$file_unit[0]] + 1;
|
||||
eval($batimentCALC[$file_unit[0]][3]);
|
||||
if ($i == 1) $file[] = array($file_unit[0], $file_unit[1], ceil($sec - (time() - $planete->file_bat[0])), $batiment[$file_unit[0]]);
|
||||
else $file[] = array($file_unit[0], $file_unit[1], ceil($sec), $batiment[$file_unit[0]]);
|
||||
foreach ($planete->file_bat as $key => $bout){
|
||||
if ($key == 0) continue;
|
||||
|
||||
$n = $planete->batiments[$bout[0]] + 1;
|
||||
eval($batimentCALC[$bout[0]][3]);
|
||||
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]]);
|
||||
}
|
||||
|
||||
$template->assign('file', $file);
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ else {
|
|||
$a = gpc('a');
|
||||
$v = gpc('v');
|
||||
$nb = gpc('a'.$a.$v, 'post');
|
||||
if ($nb < 0) erreur("Vous ne pouvez pas acheter ou vendre un nombre négatif d'action !", "red", "?p=bourse");
|
||||
if (!empty($a) && is_numeric($nb)) {
|
||||
$action = new Bourse($a, $id_user);
|
||||
$poss24 = $action->actionIn24Hours();
|
||||
|
|
@ -35,7 +36,8 @@ else {
|
|||
header('Location: ?p=bourse&d='.$v);
|
||||
exit;
|
||||
}
|
||||
elseif ($e = gpc('e') && $queryUser['auth_level'] >= 3) {
|
||||
elseif (gpc('e') && $planete->auth_level >= 3) {
|
||||
$e = gpc('e');
|
||||
if (isset($_POST['nomaction']) && isset($_POST['descaction'])) {
|
||||
$nom = gpc('nomaction', 'post');
|
||||
$description = gpc('descaction', 'post');
|
||||
|
|
@ -69,7 +71,7 @@ else {
|
|||
header('Location: ?p=bourse&d='.$e);
|
||||
exit;
|
||||
}
|
||||
elseif (gpc('c') == "new" && $queryUser['auth_level'] >= 3 && is_numeric(gpc('prixAM', 'post')) && is_numeric(gpc('prixAC', 'post'))) {
|
||||
elseif (gpc('c') == "new" && $planete->auth_level >= 3 && is_numeric(gpc('prixAM', 'post')) && is_numeric(gpc('prixAC', 'post'))) {
|
||||
if (isset($_POST['nomaction']) && isset($_POST['descaction'])) {
|
||||
$nom = gpc('nomaction', 'post');
|
||||
$description = gpc('descaction', 'post');
|
||||
|
|
@ -104,8 +106,11 @@ else {
|
|||
$bourse = $bdd->unique_query("SELECT id, nom, description, news, metal, cristal, (metal/metalAnc-1)*100 AS evolution FROM $table_bourse WHERE id = $d;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$page = 'bourseDetails';
|
||||
$template->assign('bourse', $bourse);
|
||||
if ($bourse) {
|
||||
$page = 'bourseDetails';
|
||||
$template->assign('bourse', $bourse);
|
||||
}
|
||||
else erreur('Cette action n\'existe pas !', "red", '?p=bourse');
|
||||
}
|
||||
else {
|
||||
$bdd->connexion();
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ $titre = 'Rapports de bugs';
|
|||
if (!empty($_POST['page']) && !empty($_POST['description'])) {
|
||||
$pages = $_POST['page'];
|
||||
$description = $_POST['description'];
|
||||
$pseudo = $queryUser['pseudo'];
|
||||
$pseudo = $planete->pseudo;
|
||||
$time = time();
|
||||
|
||||
$bdd->connexion();
|
||||
|
|
@ -17,7 +17,7 @@ if (!empty($_POST['page']) && !empty($_POST['description'])) {
|
|||
header('Location: ?p=bugs');
|
||||
exit;
|
||||
}
|
||||
elseif (isset($_GET['a']) && $_GET['a'] == 'del' && isset($_GET['i']) && $sess->values['auth_level'] > 2) {
|
||||
elseif (isset($_GET['a']) && $_GET['a'] == 'del' && isset($_GET['i']) && $sess->level > 2) {
|
||||
$i = $_GET['i'];
|
||||
$bdd->connexion();
|
||||
$bdd->escape($i);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ $titre = 'Carte spatiale';
|
|||
if (isset($_GET['galaxie'])) $g = floor($_GET['galaxie']);
|
||||
else $g = $planete->galaxie;
|
||||
|
||||
if ($queryUser['auth_level'] >= 5 && $g <= 0) $g = 0;
|
||||
if ($planete->auth_level >= 5 && $g <= 0) $g = 0;
|
||||
elseif ($g < 1) $g = 1;
|
||||
if ($g > MAX_AMAS) $g = 1;
|
||||
|
||||
|
|
@ -38,21 +38,39 @@ else {
|
|||
}
|
||||
|
||||
//Erreur au cas où la zone soit trop lointaine par rapport au niveau de la technologie
|
||||
if (($queryUser['detection'] < 1 && ($g != $planete->galaxie || $s != $planete->ss)) || ($queryUser['detection'] < 2 && $g != $planete->galaxie))
|
||||
erreur('Pour afficher cette zone de la carte spatiale, vous devez plus développer votre technologie '.nameLink(1, "technologie"));
|
||||
//if (($planete->technologies[1] < 1 && ($g != $planete->galaxie || $s != $planete->ss)) || ($planete->technologies[1] < 2 && $g != $planete->galaxie))
|
||||
// erreur('Pour afficher cette zone de la carte spatiale, vous devez plus développer votre technologie ');
|
||||
|
||||
$TEMP_carte = array();
|
||||
for ($i = 1; $i <= MAX_PLANETE; $i++) {
|
||||
if ($s%5 == 2 && $i == ceil(MAX_PLANETE/2)) {
|
||||
$bdd->connexion();
|
||||
$bdd->escape($g);
|
||||
$bdd->escape($s);
|
||||
$d = $bdd->unique_query("SELECT race, nom_asteroide, debris_met, debris_cri, nom, tag, fondateur FROM $table_alliances WHERE galaxie = $g AND ss = $s;");
|
||||
$bdd->deconnexion();
|
||||
if($d) {
|
||||
if ($d['race'] == 'covenant') $ra = '(c)';
|
||||
elseif ($auth_level >= 6 && md5($d['race']) == '34c19b21bd4a3dda389e767d32fe9779') $ra = '(f)';
|
||||
else $ra = '(h)';
|
||||
|
||||
$TEMP_carte[] = array('A', $d['nom_asteroide'], $d['debris_met'], $d['debris_cri'], $ra, $d['nom'], '<a href="?p=envoyer&d='.$d['fondateur'].'" class="msg"><span>Message</span></a>', $d['tag']);//, $eA['tag']);
|
||||
}
|
||||
else {
|
||||
$TEMP_carte[] = array('A');
|
||||
}
|
||||
}
|
||||
$bdd->connexion();
|
||||
$bdd->escape($g);
|
||||
$bdd->escape($s);
|
||||
$resultat = $bdd->query("SELECT id FROM $table_planete WHERE galaxie = $g AND ss = $s AND position = $i;");
|
||||
if($resultat) {
|
||||
$d = $bdd->unique_query("SELECT P.nom_planete, P.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 galaxie = $g AND ss = $s AND position = $i;");
|
||||
$bdd->deconnexion();
|
||||
$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)';
|
||||
$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']);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ $titre = $batiment[9];
|
|||
if ($planete->batiments[9] == 0) erreur('Vous devez d\'abord construire une '.strtolower($batiment[9]), "red", '?p=batiments', 4000);
|
||||
|
||||
$TEMP_batiments = array();
|
||||
$nbstop = count($casernen);
|
||||
|
||||
//Lancement d'une nouvelle construction
|
||||
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
|
||||
|
|
@ -17,6 +16,8 @@ if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'p
|
|||
switch($construction){
|
||||
case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour entraîner cette unité.'); break;
|
||||
case 3: erreur('Vous n\'avez pas les ressources nécessaire pour entraîner cette unité !'); break;
|
||||
case 4: erreur('File d\'attente pleine !'); break;
|
||||
case 5: erreur('Le nombre d\'objets est négatif !'); break;
|
||||
default: header('Location: ?p=caserne'); exit;
|
||||
}
|
||||
}
|
||||
|
|
@ -28,7 +29,7 @@ if (isset($_GET['a'])) {
|
|||
$w = intval(gpc('w'));
|
||||
if (empty($w) && !$w === 0) $w = 99;
|
||||
else $w++;
|
||||
//Vérification de la présence du batiment dans la file d'attente
|
||||
//Vérification de la présence de l'unité dans la file d'attente
|
||||
if($planete->file_exist($i, 'file_cas')) {
|
||||
$planete->file_delObjet("casernes", $i, $n, $w);
|
||||
header('Location: ?p=caserne');
|
||||
|
|
@ -45,10 +46,23 @@ if (isset($_GET['a'])) {
|
|||
exit;
|
||||
}*/
|
||||
|
||||
for ($i=0 ; $i<$nbstop ; $i++) {
|
||||
foreach($planete->casernes as $i => $PLcaserne) {
|
||||
$a = $casernenCALC[$i][0]; $b = $casernenCALC[$i][1]; $c = $casernenCALC[$i][2]; eval($casernenCALC[$i][3]);
|
||||
if ($planete->file_exist($i, 'file_cas')) $enFile = true;
|
||||
$nombre = $planete->casernes[$i];
|
||||
else $enFile = false;
|
||||
$nombre = $PLcaserne;
|
||||
|
||||
//On applique les bonus politiques aux temps et coûts
|
||||
if ($planete->politique == 1) {
|
||||
$a *= 0.9;
|
||||
$b *= 0.9;
|
||||
$c *= 0.9;
|
||||
$sec *= 0.9;
|
||||
}
|
||||
|
||||
//On applique les bonus de test
|
||||
$sec /= VITESSE;
|
||||
|
||||
if (!empty($casernen[$i]) && requestDeblok($casernenTECH[$i], $planete)) $TEMP_batiments[] =
|
||||
array(
|
||||
'image' => $casernei[$i],
|
||||
|
|
@ -72,17 +86,18 @@ $nbfile = count($planete->file_cas) - 1;
|
|||
|
||||
if ($nbfile == 1) $template->assign('Pchaine', true);
|
||||
else $template->assign('Pchaine', false);
|
||||
if ($nbfile == 0) $template->assign('Vchaine', true);
|
||||
if ($nbfile <= 0) $template->assign('Vchaine', true);
|
||||
else $template->assign('Vchaine', false);
|
||||
|
||||
$file = array();
|
||||
for ($i=1 ; $i <= $nbfile ; $i++) {
|
||||
$extract = explode(',', $planete->file_cas[$i]);
|
||||
|
||||
$n = $planete->casernes[$extract[0]] + 1;
|
||||
eval($casernenCALC[$extract[0]][3]);
|
||||
if ($i == 1) $file[] = array($extract[0], $extract[1], ceil($sec - (time() - $planete->file_cas[0])), $casernen[$extract[0]]);
|
||||
else $file[] = array($extract[0], $extract[1], ceil($sec), $casernen[$extract[0]]);
|
||||
$file = array();
|
||||
foreach ($planete->file_cas as $key => $bout){
|
||||
if ($key == 0) continue;
|
||||
|
||||
$n = $planete->casernes[$bout[0]] + 1;
|
||||
eval($casernenCALC[$bout[0]][3]);
|
||||
if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_cas[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $casernen[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_cas[0])));
|
||||
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE) * $bout[1], $casernen[$bout[0]]);
|
||||
}
|
||||
|
||||
$template->assign('file', $file);
|
||||
|
|
|
|||
|
|
@ -4,10 +4,9 @@ $page = 'chantierspatial';
|
|||
$titre = $batiment[8];
|
||||
|
||||
//Vérification que le joueur ait bien un labo avant d'afficher la page
|
||||
if ($planete->batiments[8] == 0) erreur('Vous devez d\'abord construire une '.strtolower($batiment[8]), "red", '?p=batiments', 4000);
|
||||
if ($planete->batiments[8] == 0) erreur('Vous devez d\'abord construire un '.strtolower($batiment[8]), "red", '?p=batiments', 4000);
|
||||
|
||||
$TEMP_batiments = array();
|
||||
$nbstop = count($nomvaisn);
|
||||
|
||||
//Lancement d'une nouvelle construction
|
||||
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
|
||||
|
|
@ -17,6 +16,8 @@ if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'p
|
|||
switch($construction){
|
||||
case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour entraîner cette unité.'); break;
|
||||
case 3: erreur('Vous n\'avez pas les ressources nécessaire pour entraîner cette unité !'); break;
|
||||
case 4: erreur('File d\'attente pleine !'); break;
|
||||
case 5: erreur('Le nombre d\'objets est négatif !'); break;
|
||||
default: header('Location: ?p=chantierspatial'); exit;
|
||||
}
|
||||
}
|
||||
|
|
@ -45,25 +46,38 @@ if (isset($_GET['a'])) {
|
|||
exit;
|
||||
}*/
|
||||
|
||||
for ($i=0 ; $i<$nbstop ; $i++) {
|
||||
foreach($planete->vaisseaux as $i => $PLvaisseaux) {
|
||||
$a = $nomvaisnCALC[$i][0]; $b = $nomvaisnCALC[$i][1]; $c = $nomvaisnCALC[$i][2]; eval($nomvaisnCALC[$i][3]);
|
||||
if ($planete->file_exist($i, 'file_vais')) $enFile = true;
|
||||
$nombre = $planete->vaisseaux[$i];
|
||||
else $enFile = false;
|
||||
$nombre = $PLvaisseaux;
|
||||
|
||||
//On applique les bonus politiques aux temps et coûts
|
||||
if ($planete->politique == 1) {
|
||||
$a *= 0.9;
|
||||
$b *= 0.9;
|
||||
$c *= 0.9;
|
||||
$sec *= 0.9;
|
||||
}
|
||||
|
||||
//On applique les bonus de test
|
||||
$sec /= VITESSE;
|
||||
|
||||
if (!empty($nomvaisn[$i]) && requestDeblok($nomvaisnTECH[$i], $planete)) $TEMP_batiments[] =
|
||||
array(
|
||||
'image' => $nomvaisi[$i],
|
||||
'nom' => $nomvaisn[$i],
|
||||
'nombre' => $nombre,
|
||||
'description' => $nomvaisd[$i],
|
||||
'descriptione' => addslashes($nomvaisd[$i]),
|
||||
'nec_metal' => $a,
|
||||
'nec_cristal' => $b,
|
||||
'nec_hydrogene' => $c,
|
||||
'nec_metalS' => separerNombres($a),
|
||||
'nec_cristalS' => separerNombres($b),
|
||||
'nec_hydrogeneS' => separerNombres($c),
|
||||
'temps' => sec($sec),
|
||||
'num' => $i
|
||||
'image' => $nomvaisi[$i],
|
||||
'nom' => $nomvaisn[$i],
|
||||
'nombre' => $nombre,
|
||||
'description' => $nomvaisd[$i],
|
||||
'descriptione' => addslashes($nomvaisd[$i]),
|
||||
'nec_metal' => $a,
|
||||
'nec_cristal' => $b,
|
||||
'nec_hydrogene' => $c,
|
||||
'nec_metalS' => separerNombres($a),
|
||||
'nec_cristalS' => separerNombres($b),
|
||||
'nec_hydrogeneS' => separerNombres($c),
|
||||
'temps' => sec($sec),
|
||||
'num' => $i
|
||||
);
|
||||
}
|
||||
$template->assign('vaisseaux', $TEMP_batiments);
|
||||
|
|
@ -72,18 +86,16 @@ $nbfile = count($planete->file_vais) - 1;
|
|||
|
||||
if ($nbfile == 1) $template->assign('Pchaine', true);
|
||||
else $template->assign('Pchaine', false);
|
||||
if ($nbfile == 0) $template->assign('Vchaine', true);
|
||||
if ($nbfile <= 0) $template->assign('Vchaine', true);
|
||||
else $template->assign('Vchaine', false);
|
||||
|
||||
$file = array();
|
||||
for ($i=1 ; $i <= $nbfile ; $i++) {
|
||||
$extract = explode(',', $planete->file_vais[$i]);
|
||||
|
||||
$n = $planete->vaisseaux[$extract[0]] + 1;
|
||||
eval($nomvaisnCALC[$extract[0]][3]);
|
||||
if ($i == 1) $file[] = array($extract[0], $extract[1], ceil($sec - (time() - $planete->file_vais[0]) + $sec*($extract[1]-1)), $nomvaisn[$extract[0]], ceil($sec - (time() - $planete->file_vais[0])));
|
||||
else $file[] = array($extract[0], $extract[1], ceil($sec*$extract[1]), $nomvaisn[$extract[0]], ceil($sec));
|
||||
foreach ($planete->file_vais as $key => $bout){
|
||||
if ($key == 0) continue;
|
||||
$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]]);
|
||||
}
|
||||
|
||||
$template->assign('file', $file);
|
||||
?>
|
||||
|
|
@ -4,10 +4,9 @@ $page = 'chantierterrestre';
|
|||
$titre = $batiment[7];
|
||||
|
||||
//Vérification que le joueur ait bien un labo avant d'afficher la page
|
||||
if ($planete->batiments[7] == 0) erreur('Vous devez d\'abord construire une '.strtolower($batiment[7]), "red", '?p=batiments', 4000);
|
||||
if ($planete->batiments[7] == 0) erreur('Vous devez d\'abord construire un '.strtolower($batiment[7]), "red", '?p=batiments', 4000);
|
||||
|
||||
$TEMP_batiments = array();
|
||||
$nbstop = count($nomterrn);
|
||||
|
||||
//Lancement d'une nouvelle construction
|
||||
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
|
||||
|
|
@ -17,6 +16,8 @@ if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'p
|
|||
switch($construction){
|
||||
case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour entraîner cette unité.'); break;
|
||||
case 3: erreur('Vous n\'avez pas les ressources nécessaire pour entraîner cette unité !'); break;
|
||||
case 4: erreur('File d\'attente pleine !'); break;
|
||||
case 5: erreur('Le nombre d\'objets est négatif !'); break;
|
||||
default: header('Location: ?p=chantierterrestre'); exit;
|
||||
}
|
||||
}
|
||||
|
|
@ -44,11 +45,23 @@ if (isset($_GET['a'])) {
|
|||
header('Location: ?p=batiments');
|
||||
exit;
|
||||
}*/
|
||||
|
||||
for ($i=0 ; $i<$nbstop ; $i++) {
|
||||
foreach($planete->terrestres as $i => $PLterrestres) {
|
||||
$a = $nomterrnCALC[$i][0]; $b = $nomterrnCALC[$i][1]; $c = $nomterrnCALC[$i][2]; eval($nomterrnCALC[$i][3]);
|
||||
if ($planete->file_exist($i, 'file_ter')) $enFile = true;
|
||||
$nombre = $planete->terrestres[$i];
|
||||
else $enFile = false;
|
||||
$nombre = $PLterrestres;
|
||||
|
||||
//On applique les bonus politiques aux temps et coûts
|
||||
if ($planete->politique == 1) {
|
||||
$a *= 0.9;
|
||||
$b *= 0.9;
|
||||
$c *= 0.9;
|
||||
$sec *= 0.9;
|
||||
}
|
||||
|
||||
//On applique les bonus de test
|
||||
$sec /= VITESSE;
|
||||
|
||||
if (!empty($nomterrn[$i]) && requestDeblok($nomterrnTECH[$i], $planete) && !$nomterrnCALC[$i][4]) $TEMP_batiments[] =
|
||||
array(
|
||||
'image' => $nomterri[$i],
|
||||
|
|
@ -72,18 +85,16 @@ $nbfile = count($planete->file_ter) - 1;
|
|||
|
||||
if ($nbfile == 1) $template->assign('Pchaine', true);
|
||||
else $template->assign('Pchaine', false);
|
||||
if ($nbfile == 0) $template->assign('Vchaine', true);
|
||||
if ($nbfile <= 0) $template->assign('Vchaine', true);
|
||||
else $template->assign('Vchaine', false);
|
||||
|
||||
$file = array();
|
||||
for ($i=1 ; $i <= $nbfile ; $i++) {
|
||||
$extract = explode(',', $planete->file_ter[$i]);
|
||||
|
||||
$n = $planete->terrestres[$extract[0]] + 1;
|
||||
eval($nomterrnCALC[$extract[0]][3]);
|
||||
if ($i == 1) $file[] = array($extract[0], $extract[1], ceil($sec - (time() - $planete->file_ter[0]) + $sec*($extract[1]-1)), $nomterrn[$extract[0]], ceil($sec - (time() - $planete->file_ter[0])));
|
||||
else $file[] = array($extract[0], $extract[1], ceil($sec*$extract[1]), $nomterrn[$extract[0]], ceil($sec));
|
||||
foreach ($planete->file_ter as $key => $bout){
|
||||
if ($key == 0) continue;
|
||||
$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]]);
|
||||
}
|
||||
|
||||
$template->assign('file', $file);
|
||||
?>
|
||||
|
|
@ -41,13 +41,13 @@ $n = gpc('n');
|
|||
if (is_numeric($n) && $n > 0) $nbppage = $n;
|
||||
else $nbppage = 100;
|
||||
|
||||
$pageClassementN = ($pageClassement-1);
|
||||
$pageClassementN = $pageClassement - 1;
|
||||
|
||||
$nbpages = ceil(($nbhumain['humains']+$nbcovie['covenants'])/$nbppage);
|
||||
if ($pageClassement > $nbpages) $pageClassement = $nbpages;
|
||||
|
||||
$TEMP_pages = '<select name="q">';
|
||||
for($i=1 ; $i<=$nbpages ; $i++) {
|
||||
for($i = 1 ; $i <= $nbpages ; $i++) {
|
||||
if ($i == $pageClassement) $TEMP_pages .= '<option value="'.$i.'" selected="selected">'.(($i-1)*$nbppage+1).'-'.($i*$nbppage).'</option>';
|
||||
else $TEMP_pages .= '<option value="'.$i.'">'.(($i-1)*$nbppage+1).'-'.($i*$nbppage).'</option>';
|
||||
}
|
||||
|
|
@ -58,18 +58,18 @@ $plage_debut = $nbppage * $pageClassementN;
|
|||
$plage_fin = $nbppage * ($pageClassementN + 1);
|
||||
if ($TypeSearch) {
|
||||
$bdd->connexion();
|
||||
$data = $bdd->query("SELECT C.".$export.", C.nbr_membres FROM $table_classement_alliances C JOIN $table_alliances A ON 1 = A.id ORDER BY C.$export DESC LIMIT $plage_fin OFFSET $plage_debut;");
|
||||
$data = $bdd->query("SELECT C.".$export.", C.nbr_membres, A.tag FROM $table_classement_alliances C JOIN $table_alliances A ON 1 = A.id ORDER BY C.$export DESC LIMIT $plage_fin OFFSET $plage_debut;");
|
||||
$bdd->deconnexion();
|
||||
$nbres = $bdd->num_rows;
|
||||
var_dump($data);
|
||||
|
||||
$j = ($pageClassement-1)*$nbppage;
|
||||
|
||||
$TEMP_classement = array();
|
||||
for ($i=0; $i<$nbres; $i++) {
|
||||
foreach($data as $lign){
|
||||
$j++;
|
||||
$TEMP_classement[] = array($j, $data[$i]['tag'], $data[$i]['nbr_membres'], separerNombres($data[$i][$export]),0);
|
||||
$TEMP_classement[] = array($j, $lign['tag'], $lign['nbr_membres'], separerNombres($lign[$export]),0);
|
||||
}
|
||||
|
||||
$template->assign('places', $TEMP_classement);
|
||||
}
|
||||
else {
|
||||
$bdd->connexion();
|
||||
|
|
@ -80,9 +80,9 @@ else {
|
|||
$j = ($pageClassement-1)*$nbppage;
|
||||
|
||||
$TEMP_classement = array();
|
||||
for ($i=0; $i<$nbres; $i++) {
|
||||
foreach($data as $lign){
|
||||
$j++;
|
||||
$TEMP_classement[] = array($j, $data[$i]['pseudo'], $data[$i]['race'], $data[$i]['tag'], $data[$i]['nom'], separerNombres($data[$i][$export]));
|
||||
$TEMP_classement[] = array($j, $lign['pseudo'], $lign['race'], $lign['tag'], $lign['nom'], separerNombres($lign[$export]));
|
||||
}
|
||||
|
||||
$template->assign('places', $TEMP_classement);
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'p
|
|||
switch($construction){
|
||||
case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour entraîner cette unité.'); break;
|
||||
case 3: erreur('Vous n\'avez pas les ressources nécessaire pour entraîner cette unité !'); break;
|
||||
case 5: erreur('Le nombre d\'objets est négatif !'); break;
|
||||
default: header('Location: ?p=defenses'); exit;
|
||||
}
|
||||
}
|
||||
|
|
@ -31,7 +32,7 @@ if (isset($_GET['a'])) {
|
|||
//Vérification de la présence du batiment dans la file d'attente
|
||||
if($planete->file_exist($i, 'file_ter')) {
|
||||
$planete->file_delObjet("terrestres", $i, $n, $w);
|
||||
header('Location: ?p=chantierterrestre');
|
||||
header('Location: ?p=defenses');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
|
@ -44,11 +45,23 @@ if (isset($_GET['a'])) {
|
|||
header('Location: ?p=batiments');
|
||||
exit;
|
||||
}*/
|
||||
|
||||
for ($i=0 ; $i<$nbstop ; $i++) {
|
||||
foreach($planete->terrestres as $i => $PLterrestres) {
|
||||
$a = $nomterrnCALC[$i][0]; $b = $nomterrnCALC[$i][1]; $c = $nomterrnCALC[$i][2]; eval($nomterrnCALC[$i][3]);
|
||||
if ($planete->file_exist($i, 'file_ter')) $enFile = true;
|
||||
$nombre = $planete->terrestres[$i];
|
||||
else $enFile = false;
|
||||
$nombre = $PLterrestres;
|
||||
|
||||
//On applique les bonus politiques aux temps et coûts
|
||||
if ($planete->politique == 1) {
|
||||
$a *= 0.9;
|
||||
$b *= 0.9;
|
||||
$c *= 0.9;
|
||||
$sec *= 0.9;
|
||||
}
|
||||
|
||||
//On applique les bonus de test
|
||||
$sec /= VITESSE;
|
||||
|
||||
if (!empty($nomterrn[$i]) && requestDeblok($nomterrnTECH[$i], $planete) && $nomterrnCALC[$i][4]) $TEMP_batiments[] =
|
||||
array(
|
||||
'image' => $nomterri[$i],
|
||||
|
|
@ -72,18 +85,16 @@ $nbfile = count($planete->file_ter) - 1;
|
|||
|
||||
if ($nbfile == 1) $template->assign('Pchaine', true);
|
||||
else $template->assign('Pchaine', false);
|
||||
if ($nbfile == 0) $template->assign('Vchaine', true);
|
||||
if ($nbfile <= 0) $template->assign('Vchaine', true);
|
||||
else $template->assign('Vchaine', false);
|
||||
|
||||
$file = array();
|
||||
for ($i=1 ; $i <= $nbfile ; $i++) {
|
||||
$extract = explode(',', $planete->file_ter[$i]);
|
||||
|
||||
$n = $planete->terrestres[$extract[0]] + 1;
|
||||
eval($nomterrnCALC[$extract[0]][3]);
|
||||
if ($i == 1) $file[] = array($extract[0], $extract[1], ceil($sec - (time() - $planete->file_ter[0]) + $sec*($extract[1]-1)), $nomterrn[$extract[0]], ceil($sec - (time() - $planete->file_ter[0])));
|
||||
else $file[] = array($extract[0], $extract[1], ceil($sec)*$extract[1], $nomterrn[$extract[0]], ceil($sec));
|
||||
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]]);
|
||||
}
|
||||
|
||||
$template->assign('file', $file);
|
||||
?>
|
||||
|
|
@ -93,7 +93,7 @@ if (isset($_GET['b']) && is_numeric($_GET['b']) && $_GET['b'] < count($batiment)
|
|||
eval($batimentCALC[$t][1]);
|
||||
eval($batimentCALC[$t][2]);
|
||||
eval($batimentCALC[$t][3]);
|
||||
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec)));
|
||||
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE)));
|
||||
|
||||
$template->assign('etat', readDeblok($batimentTECH[$t], $planete));
|
||||
}
|
||||
|
|
@ -111,7 +111,7 @@ elseif (isset($_GET['t']) && is_numeric($_GET['t']) && $_GET['t'] < count($techn
|
|||
eval($technoloCALC[$t][1]);
|
||||
eval($technoloCALC[$t][2]);
|
||||
eval($technoloCALC[$t][3]);
|
||||
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec)));
|
||||
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE)));
|
||||
|
||||
$template->assign('etat', readDeblok($technoloTECH[$t], $planete));
|
||||
}
|
||||
|
|
@ -126,7 +126,7 @@ elseif (isset($_GET['v']) && is_numeric($_GET['v']) && $_GET['v'] < count($nomva
|
|||
$n = $planete->vaisseaux[$t] + 1;
|
||||
$a = $nomvaisnCALC[$t][0]; $b = $nomvaisnCALC[$t][1]; $c = $nomvaisnCALC[$t][2]; $sec = 0;
|
||||
eval($nomvaisnCALC[$t][3]);
|
||||
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec)));
|
||||
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE)));
|
||||
|
||||
$template->assign('etat', readDeblok($nomvaisnTECH[$t], $planete));
|
||||
$template->assign('caract', array($nomvais_at[$t], $nomvais_bc[$t], $nomvais_pv[$t], $nomvais_rs[$t]));
|
||||
|
|
@ -142,7 +142,7 @@ elseif (isset($_GET['d']) && is_numeric($_GET['d']) && $_GET['d'] < count($nomte
|
|||
$n = $planete->terrestres[$t] + 1;
|
||||
$a = $nomterrnCALC[$t][0]; $b = $nomterrnCALC[$t][1]; $c = $nomterrnCALC[$t][2]; $sec = 0;
|
||||
eval($nomterrnCALC[$t][3]);
|
||||
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec)));
|
||||
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE)));
|
||||
|
||||
$template->assign('etat', readDeblok($nomterrnTECH[$t], $planete));
|
||||
if ($t-8 >= 0) {
|
||||
|
|
@ -161,7 +161,7 @@ elseif (isset($_GET['c']) && is_numeric($_GET['c']) && $_GET['c'] < count($caser
|
|||
$n = $planete->casernes[$t] + 1;
|
||||
$a = $casernenCALC[$t][0]; $b = $casernenCALC[$t][1]; $c = $casernenCALC[$t][2]; $sec = 0;
|
||||
eval($casernenCALC[$t][3]);
|
||||
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec)));
|
||||
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec/VITESSE)));
|
||||
|
||||
$template->assign('etat', readDeblok($casernenTECH[$t], $planete));
|
||||
if ($t-8 >= 0) {
|
||||
|
|
|
|||
|
|
@ -6,33 +6,31 @@ $a = gpc('a');
|
|||
$amas = gpc('amas', 'post');
|
||||
$ss = gpc('ss', 'post');
|
||||
$pos = gpc('pos', 'post');
|
||||
if (!empty($a)) {
|
||||
$fav = explode(';', $queryUser['destinationsFavoris']);
|
||||
$cntfav = count($fav);
|
||||
|
||||
//Suppression d'une destination rapide
|
||||
if (!empty($a)) {
|
||||
$d = gpc('d');
|
||||
if (!empty($d) && $a == md5(date('AG').'@'.$d)) {
|
||||
for($i = 0; $i < $cntfav; $i++){
|
||||
if ($fav[$i] == $d) unset($fav[$i]);
|
||||
}
|
||||
$queryUser['destinationsFavoris'] = implode(';', $fav);
|
||||
$f = array_keys($planete->destinationsFavoris, $d);
|
||||
unset($planete->destinationsFavoris[$f[0]]);
|
||||
$bdd->connexion();
|
||||
$bdd->query("UPDATE $table_user SET destinationsFavoris = '".$queryUser['destinationsFavoris']."' WHERE id = $id_user;");
|
||||
$bdd->query("UPDATE $table_user SET destinationsFavoris = '".serialize($planete->destinationsFavoris)."' WHERE id = $id_user;");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
header('Location: ./?p=destinationsrapides');
|
||||
header('Location: ?p=destinationsrapides');
|
||||
exit;
|
||||
}
|
||||
//Ajout d'une destination rapide
|
||||
elseif (!empty($amas) && !empty($ss) && !empty($pos)) {
|
||||
$bdd->connexion();
|
||||
$plan = $bdd->unique_query("SELECT id FROM $table_planete WHERE galaxie = $amas AND ss = $ss AND position = $pos;");
|
||||
if ($plan) {
|
||||
if (in_array($plan['id'], explode(';', $queryUser['destinationsFavoris']))) {
|
||||
if (in_array($plan['id'], $planete->destinationsFavoris)) {
|
||||
$bdd->deconnexion();
|
||||
erreur('Cette planète est déjà dans vos destinations rapides.', "red", '?p=destinationsrapides');
|
||||
}
|
||||
$queryUser['destinationsFavoris'] .= ";".$plan['id'];
|
||||
$bdd->query("UPDATE $table_user SET destinationsFavoris = '".$queryUser['destinationsFavoris']."' WHERE id = $id_user;");
|
||||
$planete->destinationsFavoris[] = $plan['id'];
|
||||
$bdd->query("UPDATE $table_user SET destinationsFavoris = '".serialize($planete->destinationsFavoris)."' WHERE id = $id_user;");
|
||||
}
|
||||
else {
|
||||
$bdd->deconnexion();
|
||||
|
|
@ -40,20 +38,19 @@ elseif (!empty($amas) && !empty($ss) && !empty($pos)) {
|
|||
}
|
||||
$bdd->deconnexion();
|
||||
|
||||
header('Location: ./?p=destinationsrapides');
|
||||
header('Location: ?p=destinationsrapides');
|
||||
exit;
|
||||
}
|
||||
//Affichage de la liste des destinations rapides
|
||||
else {
|
||||
$page = 'destinsrapid';
|
||||
|
||||
$fav = explode(';', $queryUser['destinationsFavoris']);
|
||||
$cntfav = count($fav);
|
||||
$destins = array();
|
||||
$bdd->connexion();
|
||||
for($i = 0; $i < $cntfav; $i++){
|
||||
$res = $bdd->unique_query("SELECT nom_planete, galaxie, ss, position FROM $table_planete WHERE id = ".$fav[$i].";");
|
||||
foreach($planete->destinationsFavoris as $fav){
|
||||
$res = $bdd->unique_query("SELECT nom_planete, galaxie, ss, position FROM $table_planete WHERE id = ".$fav.";");
|
||||
if ($res != false) {
|
||||
$destins[] = array($fav[$i], $res['nom_planete'], '['.$res['galaxie'].':'.$res['ss'].':'.$res['position'].']', md5(date('AG').'@'.$fav[$i]));
|
||||
$destins[] = array($fav, $res['nom_planete'], '['.$res['galaxie'].':'.$res['ss'].':'.$res['position'].']', md5(date('AG').'@'.$fav));
|
||||
}
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
|
|
|
|||
|
|
@ -10,13 +10,15 @@ if (!empty($_POST['objet']) && !empty($_POST['nom']) && !empty($_POST['message']
|
|||
$time = time();
|
||||
$message = htmlspecialchars(gpc('message', 'post'));
|
||||
$objet = htmlspecialchars(gpc('objet', 'post'));
|
||||
|
||||
if (strlen($message) > 9999) erreur('Le contenu de votre message est trop long. Limite : 9 999 caractères.');
|
||||
$bdd->connexion();
|
||||
$bdd->escape($message);
|
||||
$bdd->escape($objet);
|
||||
$bdd->escape($pseudo);
|
||||
|
||||
for($i = 0; $i < $nbutil; $i++){
|
||||
$util = trim(htmlentities($utils[$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';")) {
|
||||
|
|
@ -25,29 +27,27 @@ if (!empty($_POST['objet']) && !empty($_POST['nom']) && !empty($_POST['message']
|
|||
}
|
||||
else {
|
||||
$bdd->deconnexion();
|
||||
erreur('Impossible de trouver l\'un des destinataire du message : '.$util, "red", '?p=envoyer');
|
||||
erreur('Impossible de trouver l\'un des destinataire du message : '.htmlentities($util), "red", '?p=envoyer');
|
||||
}
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
erreur('Votre message a été envoyé avec succès.', "green", '?p=messagerie');
|
||||
}
|
||||
|
||||
$ami = explode(';', $queryUser['amis']);
|
||||
$cntami = count($ami);
|
||||
$amis = array();
|
||||
$amisn = array();
|
||||
$bdd->connexion();
|
||||
for($i = 0; $i < $cntami; $i++){
|
||||
$res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$ami[$i].";");
|
||||
foreach($planete->amis as $ami) {
|
||||
$res = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = ".$ami.";");
|
||||
if ($res != false) {
|
||||
$amis[] = $res['pseudo'];
|
||||
$amisn[] = $ami[$i];
|
||||
$amisn[] = $ami;
|
||||
}
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
$template->assign('amis', $amis);
|
||||
$template->assign('amisn', $amisn);
|
||||
|
||||
if (isset($_GET['d'])) $template->assign('destinataire', htmlentities(gpc('d')));
|
||||
if (isset($_GET['o'])) $template->assign('objet', htmlentities(gpc('o')));
|
||||
if (isset($_GET['d'])) $template->assign('destinataire', gpc('d'));
|
||||
if (isset($_GET['o'])) $template->assign('objet', gpc('o'));
|
||||
?>
|
||||
|
|
@ -3,16 +3,16 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
|
|||
$titre = 'Flottes';
|
||||
|
||||
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($_POST['amas']);
|
||||
$end_ss = floor($_POST['ss']);
|
||||
$end_pos = floor($_POST['pos']);
|
||||
$mission = floor($_POST['mission']);
|
||||
if (isset($_POST['tactique'])) $tactique = floor($_POST['tactique']);
|
||||
$end_galaxie = floor(gpc('amas', 'post'));
|
||||
$end_ss = floor(gpc('ss', 'post'));
|
||||
$end_pos = floor(gpc('pos', 'post'));
|
||||
$mission = floor(gpc('mission', 'post'));
|
||||
if (isset($_POST['tactique'])) $tactique = floor(gpc('tactique', 'post'));
|
||||
else $tactique = 0;
|
||||
$EBmetal = floor($_POST['metal']);
|
||||
$EBcristal = floor($_POST['cristal']);
|
||||
$EBhydrogene = floor($_POST['hydrogene']);
|
||||
$vitesse = floor($_POST['vitesse'])/100;
|
||||
$EBmetal = floor(gpc('metal', 'post'));
|
||||
$EBcristal = floor(gpc('cristal', 'post'));
|
||||
$EBhydrogene = floor(gpc('hydrogene', 'post'));
|
||||
$vitesse = floor(gpc('vitesse', 'post'))/100;
|
||||
|
||||
$bdd->connexion();
|
||||
$bdd->escape($end_galaxie);
|
||||
|
|
@ -24,36 +24,35 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
|
|||
$bdd->escape($EBcristal);
|
||||
$bdd->escape($EBhydrogene);
|
||||
$bdd->escape($vitesse);
|
||||
$resultat = $bdd->query("SELECT id FROM $table_flottes WHERE id_user = '$id_user'");
|
||||
$nbr = $bdd->num_rows;
|
||||
$resultat = $bdd->unique_query("SELECT COUNT(id) AS cnt FROM $table_flottes WHERE id_user = '$id_user'");
|
||||
$bdd->deconnexion();
|
||||
$nbr = $resultat['cnt'];
|
||||
|
||||
//Vérification du code anti-bots
|
||||
if ($_POST['cds'] != $sess->values['flcds']) erreur('Impossible d\'authentifier l\'envoie de la flotte.<br />Si le problème perciste, <a href="mailto:technique@halo-battle.s-fr.com">contactez un administrateur</a>.', "red", '?p=flotte', 4000);
|
||||
/*if (!isset($sess->values['flcds']) || gpc('cds', 'post') != $sess->values['flcds']) erreur('Impossible d\'authentifier l\'envoie de la flotte.<br />Si le problème perciste, <a href="mailto:technique@halo-battle.s-fr.com">contactez un administrateur</a>.', "red", '?p=flotte', 4000);
|
||||
//Si la mission est d'attaquer, on vérifie que les attaques ne soient pas désactivées
|
||||
elseif ($mission == 1 && !ATTAQUES) erreur('Les attaques sont désactivées pour le moment. Pour plus d\'informations, <a href="http://halo-battle.s-fr.com/forum/">consultez le forum</a>.', "red", '?p=flotte', 5000);
|
||||
else*/if ($mission == 3 && !ATTAQUES) erreur('Les attaques sont désactivées pour le moment. Pour plus d\'informations, <a href="http://halo-battle.s-fr.com/forum/">consultez le forum</a>.', "red", '?p=flotte', 5000);
|
||||
//Vérification que la destination ne soit pas en dehors de la galaxie
|
||||
elseif ($end_galaxie > MAX_AMAS || $end_ss > MAX_SYSTEME || $end_pos > MAX_PLANETE || $end_galaxie < 0 || $end_ss < 1 || $end_pos < 1 || ($end_galaxie < 1 && $sess->values['auth_level'] < 6)) erreur('La destination de la flotte n\'est pas correcte.', "red", '?p=flotte');
|
||||
elseif ($end_galaxie > MAX_AMAS || $end_ss > MAX_SYSTEME || $end_pos > MAX_PLANETE || $end_galaxie < 0 || $end_ss < 1 || $end_pos < 1 || ($end_galaxie < 1 && $sess->level < 6)) erreur('La destination de la flotte n\'est pas correcte.', "red", '?p=flotte');
|
||||
//Vérification que le nombre de slots ne soit pas dépassé
|
||||
elseif ($nbr > $queryUser['informatique']) erreur('Vous n\'avez pas assez de slots disponibles.', "red", '?p=flotte');
|
||||
elseif ($nbr > ceil(count($queryPlanetes)/2 + 1)) erreur('Vous n\'avez pas assez de slots disponibles.', "red", '?p=flotte');
|
||||
//On vérifie la mission
|
||||
elseif ($mission < 0 || $mission > 5) erreur('Mission incorrecte !', "red", '?p=flotte');
|
||||
//Si la mission est d'attaquer, on vérifie la tactique
|
||||
elseif ($mission == 1 && $tactique > $queryUser['tactique']) erreur('Vous ne connaissez pas cette tactique de combat !', "red", '?p=flotte');
|
||||
elseif ($mission == 3 && !(($tactique == 1 && $planete->technologies[3] & 4096) || ($tactique == 2 && $planete->technologies[3] & 8192) || ($tactique == 3 && $planete->technologies[3] & 16384) || $tactique == 0)) erreur('Vous ne connaissez pas cette tactique de combat !', "red", '?p=flotte');
|
||||
//On vérifie la mission, si elle est d'espionner, il faut qu'il y ait des sondes
|
||||
elseif ($mission == 5 && (!isset($sess->values['vais'][4]) || $sess->values['vais'][4] < 0)) erreur('Vous ne pouvez pas espionner sans sonde d\'espionnage !', "red", '?p=flotte');
|
||||
elseif ($mission == 5 && $sess->values['vais'][6] <= 0 && $sess->values['vais'][13] <= 0) erreur('Vous ne pouvez pas espionner sans sonde d\'espionnage !', "red", '?p=flotte');
|
||||
//On vérifie la mission, si elle est de coloniser, il faut qu'il y ait des vaisseaux de colonisation
|
||||
elseif ($mission == 3 && (!isset($sess->values['vais'][3]) || $sess->values['vais'][3] < 0)) erreur('Vous ne pouvez pas coloniser sans vaisseau de colonisation !', "red", '?p=flotte');
|
||||
elseif ($mission == 2 && $sess->values['vais'][2] <= 0) erreur('Vous ne pouvez pas coloniser sans vaisseau de colonisation !', "red", '?p=flotte');
|
||||
//On vérifie la mission, si elle est de recycler, il faut qu'il y ait des reclycleurs
|
||||
elseif ($mission == 4 && (!isset($sess->values['vais'][5]) || $sess->values['vais'][5] < 0)) erreur('Vous ne pouvez pas recycler sans recycleur !', "red", '?p=flotte');
|
||||
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');
|
||||
//On vérifie que l'on n'envoie pas des ressources négatives
|
||||
elseif ((!empty($EBmetal) && $EBmetal < 0) || (!empty($EBcristal) && $EBcristal < 0) || (!empty($EBhydrogene) && $EBhydrogene < 0)) erreur('Vous avez spécifié des valeurs de ressources à embarquer incorrectes !', "red", '?p=flotte', 4000);
|
||||
//On vérifie la vitesse du vaisseau
|
||||
elseif (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 100) erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte');
|
||||
elseif (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 1) erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte');
|
||||
else {
|
||||
$resultat = $bdd->unique_query("SELECT * FROM $table_planete WHERE galaxie = '$end_galaxie' AND ss = '$end_ss' AND position = '$end_pos';");
|
||||
|
||||
//On vérifie qu'il n'y ait pas une interaction entre deux multi-comptes
|
||||
$cnt = count($multi);
|
||||
if ($cnt > 1 && $mission == 2) {
|
||||
|
|
@ -62,12 +61,18 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
|
|||
}
|
||||
}
|
||||
|
||||
$bdd->connexion();
|
||||
$resultat = $bdd->unique_query("SELECT id, id_user, debris_met, debris_cri FROM $table_planete WHERE galaxie = '$end_galaxie' AND ss = '$end_ss' AND position = '$end_pos';");
|
||||
$bdd->deconnexion();
|
||||
|
||||
//Si la mission est d'attaquer, on vérifie que le joueur cible ne soit pas ne mode vacances
|
||||
if ($mission == 1) {
|
||||
if ($mission == 3) {
|
||||
//Récupération de l'ID du joueur cible
|
||||
$rech_user = $resultat['id_user'];
|
||||
$resultatu = $bdd->unique_query("SELECT * FROM $table_user WHERE id = '$rech_user';");
|
||||
if ($resultatu['mv'] != 0) erreur('Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.', "red", '?p=flotte', 3000);
|
||||
$bdd->connexion();
|
||||
$resultatu = $bdd->unique_query("SELECT mv, time_inscription FROM $table_user WHERE id = '$rech_user';");
|
||||
$bdd->deconnexion();
|
||||
if ($resultatu['mv'] > 0) erreur('Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.', "red", '?p=flotte', 3000); //TODO Mettre le numéro du mode vacances et non > 0 !!!
|
||||
elseif ($resultatu['time_inscription'] + 604800 > time()) erreur('Le joueur que vous tentez d\'attaquer s\'est inscrit récemment, laissez-lui le temps de se préparer au combat !', "red", '?p=flotte', 3000);
|
||||
elseif (!$resultat) erreur('La planète que vous tentez d\'attaquer est inhabitée.', "red", '?p=flotte');
|
||||
elseif ($resultat['id_user'] == $id_user) erreur('La planète que vous tentez d\'attaquer vous appartient.', "red", '?p=flotte');
|
||||
|
|
@ -82,63 +87,45 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
|
|||
}
|
||||
|
||||
//Création de la flotte
|
||||
$req = '';
|
||||
$reqb = '';
|
||||
$reqPlan = '';
|
||||
$nbVais = '';
|
||||
$nbI = count($nomvaisa);
|
||||
for ($i=1 ; $i<=$nbI ; $i++) {
|
||||
if (!empty($sess->values['vais'][$i])) {
|
||||
if ($sess->values['vais'][$i] > $queryPlanete['vaisseau_'.$i]) erreur('Vous avez envoyé plus de vaisseaux que vous n\'en posséder sur cette planète.', "red", '?p=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 .= "'".$sess->values['vais'][$i]."', ";
|
||||
$reqb .= "vaisseau_$i, ";
|
||||
if (!empty($reqPlan)) $reqPlan .= ', ';
|
||||
$reqPlan .= "vaisseau_$i = vaisseau_$i - '".$sess->values['vais'][$i]."'";
|
||||
$nbVais += $sess->values['vais'][$i];
|
||||
$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);
|
||||
else {
|
||||
//Envoie de la flotte
|
||||
$nom = $_POST['nomflotte'];
|
||||
$bdd->escape($nom);
|
||||
$flotte = new flotte();
|
||||
|
||||
$start_time = time();
|
||||
$start_galaxie = $queryPlanete['galaxie'];
|
||||
$start_ss = $queryPlanete['ss'];
|
||||
$start_pos = $queryPlanete['position'];
|
||||
$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);
|
||||
$flotte->end_time = $calc[0];
|
||||
$conso = $calc[1];
|
||||
|
||||
$end_time = vais_tempsDeplacement($start_galaxie, $start_ss, $start_pos, $end_galaxie, $end_ss, $end_pos, $sess->values['flvitesse'], $vitesse, $sess->values['flpreparation'], $sess->values['flchauffe']);
|
||||
if ($end_time <= 0) {
|
||||
$end_time = 454;
|
||||
}
|
||||
//On double la consomation si on fait un aller-retour
|
||||
if ($mission == 1 || $mission == 3 || $mission == 4 || $mission == 5) $conso *= 2;
|
||||
|
||||
//On vérifie qu'il y a assez de place dans les cales des vaisseaux avant l'envoie
|
||||
$conso = vais_conso($end_time, $nbVais)*$vitesse/45*2;
|
||||
$contenu_metal = $_POST['metal']; $bdd->escape($contenu_metal); $plan_metal = $queryPlanete['metal'] - $contenu_metal;
|
||||
$contenu_cristal = $_POST['cristal']; $bdd->escape($contenu_cristal); $plan_cristal = $queryPlanete['cristal'] - $contenu_cristal;
|
||||
$contenu_hydrogene = $_POST['hydrogene']; $bdd->escape($contenu_hydrogene); $plan_hydrogene = $queryPlanete['hydrogene'] - $contenu_hydrogene - $conso;
|
||||
$contenu_max = $sess->values['flcontenu'];
|
||||
if ($contenu_metal + $contenu_cristal + $contenu_hydrogene + $conso > $contenu_max && $contenu_metal + $contenu_cristal + $contenu_hydrogene != 0) erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent.', "red", '?p=flotte', 3500);
|
||||
elseif ($plan_metal < 0 || $plan_cristal < 0 || $plan_hydrogene < 0) erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500);
|
||||
//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);
|
||||
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) {
|
||||
$tactiqueAT = $_POST['tactique'];
|
||||
$bdd->escape($tactiqueAT);
|
||||
$tactiqueEN = $resultatu['tactique'];
|
||||
$bdd->escape($tactiqueEN);
|
||||
}
|
||||
else {
|
||||
$tactiqueAT = 0;
|
||||
$tactiqueEN = 0;
|
||||
}
|
||||
|
||||
$bdd->query("INSERT INTO $table_flottes (id_user, mission, start_time, start_galaxie, start_ss, start_position, end_time, end_galaxie, end_ss, end_position, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, contenu_max, nb_vais, $reqb tactiqueAT, tactiqueEN, nom) VALUES ($id_user, '$mission', '$start_time', '$start_galaxie', '$start_ss', '$start_pos', '$end_time', '$end_galaxie', '$end_ss', '$end_pos', '$vitesse', '$contenu_metal', '$contenu_cristal', '$contenu_hydrogene', '$contenu_max', '$nbVais', $req'$tactiqueAT', '$tactiqueEN', '$nom');");
|
||||
$bdd->query("UPDATE $table_planete SET $reqPlan, metal = '$plan_metal', cristal = '$plan_cristal', hydrogene = '$plan_hydrogene' WHERE id = '$idPlan' LIMIT 1 ;");
|
||||
$bdd->deconnexion();
|
||||
if ($mission == 1) $flotte->tactique = gpc('tactique', 'post');
|
||||
$flotte->contenu = array(ceil(gpc('metal', 'post')), ceil(gpc('cristal', 'post')), ceil(gpc('hydrogene', 'post')));
|
||||
|
||||
unset($sess->values['vais']);
|
||||
$sess->put();
|
||||
|
|
@ -148,227 +135,119 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
|
|||
}
|
||||
}
|
||||
}
|
||||
elseif (!empty($_POST['v1']) || !empty($_POST['v2']) || !empty($_POST['v3']) || !empty($_POST['v4']) || !empty($_POST['v5']) || !empty($_POST['v6']) || !empty($_POST['v7']) || !empty($_POST['v8']) || !empty($_POST['v9']) || !empty($_POST['v10']) || !empty($_POST['v11']) || !empty($_POST['v12'])) {
|
||||
elseif (!empty($_POST['v0']) || !empty($_POST['v1']) || !empty($_POST['v2']) || !empty($_POST['v3']) || !empty($_POST['v4']) || !empty($_POST['v5']) || !empty($_POST['v6']) || !empty($_POST['v7']) || !empty($_POST['v8']) || !empty($_POST['v9']) || !empty($_POST['v10']) || !empty($_POST['v11']) || !empty($_POST['v12']) || !empty($_POST['v13'])) {
|
||||
$nombreVaisseau = 0;
|
||||
for ($i=1 ; $i<=12 ; $i++) {
|
||||
if (!isset($_POST['v'.$i]) || !is_numeric($_POST['v'.$i]) || $_POST['v'.$i] != abs(floor($_POST['v'.$i]))) $_POST['v'.$i] = 0;
|
||||
if ($_POST['v'.$i] >= 0 && $i != 11) {
|
||||
$sess->values['vais'][$i] = $_POST['v'.$i];
|
||||
$nombreVaisseau += $_POST['v'.$i];
|
||||
//Si on indique un nombre de vaisseaux supérieur au nombre présent sur la planète
|
||||
if ($_POST['v'.$i] > $queryPlanete['vaisseau_'.$i]) erreur('Il ne vous reste plus assez de vaisseaux !', "red", '?p=flotte');
|
||||
}
|
||||
}
|
||||
$sess->values['flnbvais'] = $nombreVaisseau;
|
||||
$sess->values['forceFlotte'] = false;
|
||||
foreach ($planete->vaisseaux as $key => $vaisseau){
|
||||
$v = gpc('v'.$key, 'post');
|
||||
if (!is_numeric($v)) $v = 0;
|
||||
else $v = (int)abs($v);
|
||||
|
||||
if ($vaisseau < $v) {
|
||||
erreur('Il ne vous reste plus assez de vaisseaux !', "red", '?p=flotte');
|
||||
}
|
||||
|
||||
$sess->values['vais'][$key] = $v;
|
||||
$nombreVaisseau += $v;
|
||||
}
|
||||
//On vérifie que l'utilisateur a bien envoyé plus d'un vaisseau
|
||||
if ($nombreVaisseau <= 0) erreur('Vous devez envoyer au moins un vaisseau.', "red", '?p=flotte');
|
||||
|
||||
//On ajoute des missions supplémentaire suivant les vaisseaux envoyés
|
||||
$lvltactique = $queryUser['tactique'];
|
||||
$actionsupp = '';
|
||||
if ($lvltactique >= 1) $actionsupp .= '<option value="1" selected="selected">Attaquer</option>';
|
||||
if ($_POST['v3'] >= 1) $actionsupp .= '<option value="3" selected="selected">Coloniser</option>';
|
||||
if ($_POST['v5'] >= 1) $actionsupp .= '<option value="4" selected="selected">Recycler</option>';
|
||||
if ($_POST['v4'] >= 1) $actionsupp .= '<option value="5" selected="selected">Espionner</option>';
|
||||
$template->assign('actionsupp', $actionsupp);
|
||||
//On enregistre les paramètres en session
|
||||
$sess->values['flnbvais'] = $nombreVaisseau;
|
||||
$sess->values['forceFlotte'] = false;
|
||||
|
||||
// Définition des paramètres de la flotte
|
||||
$AvaisType = array(); $AvaisVitesseC = array(); $AvaisVitesseL = array(); $AvaisPrepC = array(); $AvaisPrepL = array(); $AvaisChauffe = array(); $AvaisContenu = 0;
|
||||
for ($i=1 ; $i<=12 ; $i++) {
|
||||
$AvaisType[] = $i;
|
||||
$AvaisVitesseC[] = $nomvais_dc[$i-1];
|
||||
$AvaisVitesseL[] = $nomvais_dl[$i-1];
|
||||
$AvaisContenu += $nomvais_rs[$i-1] * $_POST['v'.$i];
|
||||
$AvaisPrepC[] = $nomvais_pdc[$i-1].' ';
|
||||
$AvaisPrepL[] = $nomvais_pdl[$i-1].' ';
|
||||
$AvaisChauffe[] = $nomvais_cdl[$i-1].' ';
|
||||
}
|
||||
if(min($AvaisVitesseL) != 0) {
|
||||
$sess->values['flvitesse'] = max($AvaisVitesseL);
|
||||
$sess->values['flpreparation'] = max($AvaisPrepL);
|
||||
$sess->values['flchauffe'] = max($AvaisChauffe);
|
||||
}
|
||||
else {
|
||||
$sess->values['flvitesse'] = max($AvaisVitesseC);
|
||||
$sess->values['flpreparation'] = max($AvaisPrepC);
|
||||
$sess->values['flchauffe'] = 0;
|
||||
}
|
||||
$sess->values['fltime'] = time();
|
||||
$sess->values['flcontenu'] = $AvaisContenu;
|
||||
//Génération de la liste de mission possible avec les vaisseaux de la flotte
|
||||
$missions = array('Stationner');
|
||||
if ($planete->technologies[0] & 8) $missions[1] = "Transporter";
|
||||
if ($sess->values['vais'][2]) $missions[2] = "Coloniser";
|
||||
if ($planete->technologies[7] & 16) $missions[3] = "Attaquer";
|
||||
if ($sess->values['vais'][3]) $missions[4] = "Recycler";
|
||||
if ($sess->values['vais'][3] || $sess->values['vais'][3]) $missions[5] = "Espionner";
|
||||
$template->assign('missions', $missions);
|
||||
|
||||
//On enregistre les modification de la session
|
||||
$sess->values['fltime'] = time();
|
||||
$sess->put();
|
||||
|
||||
$page = 'flotte2';
|
||||
$template->assign('scripth', '<script src="js/prototype.js" type="text/javascript"></script>');
|
||||
$template->assign('script', '<script type="text/javascript">document.getElementById(\'nom\').focus();</script><script src="js/flotte.js" type="text/javascript"></script>');
|
||||
$fav = explode(';', $queryUser['destinationsFavoris']);
|
||||
$cntfav = count($fav);
|
||||
$favoris = array();
|
||||
$favorisn = array();
|
||||
$bdd->connexion();
|
||||
for($i = 0; $i < $cntfav; $i++){
|
||||
$res = $bdd->unique_query("SELECT nom_planete, galaxie, ss, position FROM $table_planete WHERE id = ".$fav[$i].";");
|
||||
if ($res != false) {
|
||||
if (!empty($res['nom_planete'])) $favoris[] = $res['nom_planete'];
|
||||
else $favoris[] = '['.$res['galaxie'].':'.$res['ss'].':'.$res['position'].']';
|
||||
$favorisn[] = $fav[$i];
|
||||
}
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
$template->assign('favoris', $favoris);
|
||||
$template->assign('favorisn', $favorisn);
|
||||
$favorisC = array();
|
||||
$favorisnC = array();
|
||||
$cntfav = count($queryPlanetes);
|
||||
for($i = 0; $i < $cntfav; $i++){
|
||||
if (!empty($queryPlanetes[$i]['nom_planete'])) $favorisC[] = $queryPlanetes[$i]['nom_planete'];
|
||||
else $favorisC[] = '['.$queryPlanetes[$i]['galaxie'].':'.$queryPlanetes[$i]['ss'].':'.$queryPlanetes[$i]['position'].']';
|
||||
$favorisnC[] = $queryPlanetes[$i]['id'];
|
||||
}
|
||||
$template->assign('favorisColonies', $favorisC);
|
||||
$template->assign('favorisnColonies', $favorisnC);
|
||||
}
|
||||
elseif (!empty($_GET['n'])) {
|
||||
$idN = ceil($_GET['n']);
|
||||
$bdd->connexion();
|
||||
$bdd->escape($idN);
|
||||
$resultat = $bdd->unique_query("SELECT * FROM $table_flottes WHERE id_user = '$id_user' AND id = '$idN'");
|
||||
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() - $resultat['start_time'];
|
||||
if ($resultat['mission'] == '6') erreur('Votre flotte est déjà en train de revenir !', 'red', '?p=flotte&n='.$idN, 1500);
|
||||
elseif ($resultat['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);
|
||||
}
|
||||
|
||||
$page = 'flotten';
|
||||
if ($bdd->num_rows <= 0) erreur('Impossible de trouver cette flotte !', "red", '?p=flotte', 1500);
|
||||
else {
|
||||
$attaque = gpc('attaque', 'post');
|
||||
$nom = gpc('nomflotte', 'post');
|
||||
if (!empty($nom)) {
|
||||
$bdd->escape($nom);
|
||||
$bdd->unique_query("UPDATE $table_flottes SET nom = '$nom' WHERE id_user = $id_user AND id = '$idN' LIMIT 1;");
|
||||
$resultat['nom'] = $nom;
|
||||
}
|
||||
if (!empty($attaque) && is_numeric($attaque)) {
|
||||
if ($attaque <= $queryUser['tactique']) {
|
||||
$bdd->escape($attaque);
|
||||
$bdd->query("UPDATE $table_flottes SET tactiqueAT = $attaque WHERE id_user = $id_user AND id = '$idN';");
|
||||
$bdd->deconnexion();
|
||||
erreur('Tactique mise à jour avec succès.', 'green', '?p=flotte&n='.$idN, 1100);
|
||||
}
|
||||
else erreur('Veuillez sélectionner les tactiques dans la liste !', 'red', '?p=flotte&n='.$idN);
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
$resultat['contenu_metalF'] = separerNombres($resultat['contenu_metal']);
|
||||
$resultat['contenu_cristalF'] = separerNombres($resultat['contenu_cristal']);
|
||||
$resultat['contenu_hydrogeneF'] = separerNombres($resultat['contenu_hydrogene']);
|
||||
$resultat['contenu_maxF'] = separerNombres($resultat['contenu_max']);
|
||||
$resultat['missionF'] = txtmission($resultat['mission']);
|
||||
$resultat['tactiqueAtDef'] = txtTactique($queryUser['combatAT_tactique']);
|
||||
$resultat['tactiqueF'] = txtTactique($resultat['tactiqueAT']);
|
||||
$resultat['end_timeT'] = $resultat['start_time'] + $resultat['end_time'];
|
||||
|
||||
$sess->values['ret_fleet'] = sha1('HB.fleet_'.rand().'☺ß☻');
|
||||
$sess->put();
|
||||
|
||||
$template->assign('ret_fleet', $sess->values['ret_fleet']);
|
||||
$template->assign('flotte', $resultat);
|
||||
$template->assign('nomvais', $nomvaisa);
|
||||
$template->assign('n', $idN);
|
||||
|
||||
$tactiques = array();
|
||||
$tactiquesn = array();
|
||||
$attaqueT = 0;
|
||||
for($i=1 ; $i<=$queryUser['tactique'] ; $i++) {
|
||||
if ($i == $resultat['tactiqueAT']) $attaqueT = $i;
|
||||
$tactiques[] = txtTactique($i);
|
||||
$tactiquesn[] = $i;
|
||||
}
|
||||
$template->assign('tactiques', $tactiques);
|
||||
$template->assign('tactiquesn', $tactiquesn);
|
||||
$template->assign('attselect', $attaqueT);
|
||||
}
|
||||
|
||||
//TODO Ajouter les destinations favorites + Colonies
|
||||
}
|
||||
//Affichage de la page générale
|
||||
else {
|
||||
//Mise à jour des tactiques par défaut
|
||||
$attaque = gpc('attaque', 'post');
|
||||
$defense = gpc('defense', 'post');
|
||||
if (!empty($attaque) && !empty($defense) && is_numeric($attaque) && is_numeric($defense)) {
|
||||
if ($attaque <= $queryUser['tactique'] && $defense <= $queryUser['tactique']) {
|
||||
$bdd->connexion();
|
||||
$bdd->escape($attaque);
|
||||
$bdd->escape($defense);
|
||||
$bdd->query("UPDATE $table_user SET combatAT_tactique = $attaque, combatDE_tactique = $defense WHERE id = '$id_user';");
|
||||
$bdd->deconnexion();
|
||||
erreur('Tactiques mises à jour avec succès.', 'green', '?p=flotte', 1100);
|
||||
if (is_numeric($attaque) && is_numeric($defense)) {
|
||||
$chang = false;
|
||||
if (($attaque != $planete->combatAT_tactique) && (($attaque == 1 && $planete->technologies[3] & 4096) || ($attaque == 2 && $planete->technologies[3] & 8192) || ($attaque == 3 && $planete->technologies[3] & 16384) || $attaque == 0)) {
|
||||
$planete->combatAT_tactique = $attaque;
|
||||
if (!in_array('combatAT_tactique', $planete->modifUser)) $planete->modifUser[] = 'combatAT_tactique';
|
||||
$chang = true;
|
||||
}
|
||||
else erreur('Veuillez sélectionner les tactiques dans la liste !', 'red', '?p=flotte');
|
||||
if (($defense != $planete->combatDE_tactique) && (($defense == 1 && $planete->technologies[3] & 4096) || ($defense == 2 && $planete->technologies[3] & 8192) || ($defense == 3 && $planete->technologies[3] & 16384) || $defense == 0)) {
|
||||
$planete->combatDE_tactique = $defense;
|
||||
if (!in_array('combatDE_tactique', $planete->modifUser)) $planete->modifUser[] = 'combatDE_tactique';
|
||||
$chang = true;
|
||||
}
|
||||
|
||||
if ($chang) erreur('Tactiques mises à jour avec succès.', 'green', '?p=flotte', 1100);
|
||||
}
|
||||
|
||||
$page = 'flotte1';
|
||||
//Affichage des flottes en cours dans la galaxie
|
||||
$bdd->connexion();
|
||||
$resultat = $bdd->query("SELECT * FROM $table_flottes WHERE id_user = '$id_user';");
|
||||
$flottes = $bdd->query("SELECT * FROM $table_flottes WHERE id_user = '$id_user';");
|
||||
$bdd->deconnexion();
|
||||
$nbr = $bdd->num_rows;
|
||||
|
||||
$TEMP_flottesEC = array();
|
||||
for ($i=0 ; $i<$nbr ; $i++) {
|
||||
if ($resultat[$i]['mission'] != 1 && ($resultat[$i]['mission'] != 3 || $resultat[$i]['effectue'] == '1' || $resultat[$i]['nb_vais'] >= 1) && $resultat[$i]['mission'] != 0) {
|
||||
$retour = $resultat[$i]['start_galaxie'].':'.$resultat[$i]['start_ss'].':'.$resultat[$i]['start_position'];
|
||||
$Hretour = date('d/m H:i:s',$resultat[$i]['start_time']+2*$resultat[$i]['end_time']);
|
||||
if ($flottes) {
|
||||
foreach ($flottes as $flotte){
|
||||
if ($flotte['mission'] != 1 && ($flotte['mission'] != 3 || $flotte['effectue'] == '1' || $flotte['nb_vais'] >= 1) && $flotte['mission'] != 0) {
|
||||
$retour = $flotte['start_galaxie'].':'.$flotte['start_ss'].':'.$flotte['start_position'];
|
||||
$Hretour = date('d/m H:i:s',$flotte['start_time']+2*$flotte['end_time']);
|
||||
}
|
||||
elseif ($flotte['mission'] == 1) {
|
||||
$retour = $flotte['start_galaxie'].':'.$flotte['start_ss'].':'.$flotte['start_position'];
|
||||
if (empty($flotte['ret_time'])) $Hretour = '-';
|
||||
else $Hretour = date('d/m H:i:s',$flotte['ret_time']+$flotte['end_time']);
|
||||
}
|
||||
else {
|
||||
$retour = '-';
|
||||
$Hretour = '-';
|
||||
}
|
||||
$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);
|
||||
}
|
||||
elseif ($resultat[$i]['mission'] == 1) {
|
||||
$retour = $resultat[$i]['start_galaxie'].':'.$resultat[$i]['start_ss'].':'.$resultat[$i]['start_position'];
|
||||
if (empty($resultat[$i]['ret_time'])) $Hretour = '-';
|
||||
else $Hretour = date('d/m H:i:s',$resultat[$i]['ret_time']+$resultat[$i]['end_time']);
|
||||
}
|
||||
else {
|
||||
$retour = '-';
|
||||
$Hretour = '-';
|
||||
}
|
||||
$TEMP_flottesEC[] = array($resultat[$i]['id'], $resultat[$i]['nom'], txtmission($resultat[$i]['mission']), $resultat[$i]['nb_vais'], $resultat[$i]['end_galaxie'].':'.$resultat[$i]['end_ss'].':'.$resultat[$i]['end_position'], date('d/m H:i:s',$resultat[$i]['start_time']+$resultat[$i]['end_time']), $retour, $Hretour);
|
||||
}
|
||||
$template->assign('flottesEC', $TEMP_flottesEC);
|
||||
|
||||
//Affichage des vaisseaux disponible à l'envoie
|
||||
$TEMP_vaisseaux = array();
|
||||
$j=0;
|
||||
for ($i=1 ; $i<=12 ; $i++) {
|
||||
if ($queryPlanete['vaisseau_'.$i] > 0 && $i != 11) {
|
||||
$j++;
|
||||
$TEMP_vaisseaux[] = array($nomvaisn[$i-1], separerNombres($queryPlanete['vaisseau_'.$i]), $queryPlanete['vaisseau_'.$i], $i);
|
||||
}
|
||||
foreach ($planete->vaisseaux as $key => $vaisseau){
|
||||
//On affiche uniquement les vaisseaux que l'on possède hormis la station spatiale
|
||||
if ($vaisseau > 0) $TEMP_vaisseaux[] = array($nomvaisn[$key], separerNombres($vaisseau), $vaisseau, $key);
|
||||
}
|
||||
$template->assign('vaisseaux', $TEMP_vaisseaux);
|
||||
|
||||
$trez = $queryUser["informatique"] + 1;
|
||||
if ($nbr < $trez) $template->assign('action', '<input class="submit" type="submit" value="OK" />');
|
||||
else $template->assign('action', '<span class="lack">Nombre de flottes maximum simultanées atteint</span>');
|
||||
//Calcul du nombre de slot disponible et vérouillage de l'envoie si besoin
|
||||
if ($nbr <= ceil(count($queryPlanetes)/2 + 1)) $template->assign('action', '<input class="submit" type="submit" value="OK" />');
|
||||
else $template->assign('action', '<span class="lack">Nombre de flottes maximum simultanées atteint</span>');
|
||||
|
||||
$template->assign('nbflotte', $nbr);
|
||||
$template->assign('nbflottemax', $trez);
|
||||
$template->assign('nbflottemax', ceil(count($queryPlanetes)/2 + 1));
|
||||
|
||||
//Modification des tactiques
|
||||
$tactiques = array();
|
||||
$tactiquesn = array();
|
||||
$tactiques = array('1');
|
||||
$attaqueT = 0;
|
||||
$defenseT = 0;
|
||||
for($i=1 ; $i<=$queryUser['tactique'] ; $i++) {
|
||||
if ($i == $queryUser['combatAT_tactique']) $attaqueT = $i;
|
||||
if ($i == $queryUser['combatDE_tactique']) $defenseT = $i;
|
||||
$tactiques[] = txtTactique($i);
|
||||
$tactiquesn[] = $i;
|
||||
}
|
||||
if ($planete->technologies[3] & 4096) $tactiques[] = '2';
|
||||
if ($planete->technologies[3] & 8192) $tactiques[] = '3';
|
||||
if ($planete->technologies[3] & 16384) $tactiques[] = '4';
|
||||
|
||||
$template->assign('tactiques', $tactiques);
|
||||
$template->assign('tactiquesn', $tactiquesn);
|
||||
$template->assign('attselect', $attaqueT);
|
||||
$template->assign('defselect', $defenseT);
|
||||
|
||||
$page = 'flotte1';
|
||||
}
|
||||
?>
|
||||
374
game/jeu/flotteANC.php
Normal file
374
game/jeu/flotteANC.php
Normal file
|
|
@ -0,0 +1,374 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$titre = 'Flottes';
|
||||
|
||||
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($_POST['amas']);
|
||||
$end_ss = floor($_POST['ss']);
|
||||
$end_pos = floor($_POST['pos']);
|
||||
$mission = floor($_POST['mission']);
|
||||
if (isset($_POST['tactique'])) $tactique = floor($_POST['tactique']);
|
||||
else $tactique = 0;
|
||||
$EBmetal = floor($_POST['metal']);
|
||||
$EBcristal = floor($_POST['cristal']);
|
||||
$EBhydrogene = floor($_POST['hydrogene']);
|
||||
$vitesse = floor($_POST['vitesse'])/100;
|
||||
|
||||
$bdd->connexion();
|
||||
$bdd->escape($end_galaxie);
|
||||
$bdd->escape($end_ss);
|
||||
$bdd->escape($end_pos);
|
||||
$bdd->escape($mission);
|
||||
$bdd->escape($tactique);
|
||||
$bdd->escape($EBmetal);
|
||||
$bdd->escape($EBcristal);
|
||||
$bdd->escape($EBhydrogene);
|
||||
$bdd->escape($vitesse);
|
||||
$resultat = $bdd->query("SELECT id FROM $table_flottes WHERE id_user = '$id_user'");
|
||||
$nbr = $bdd->num_rows;
|
||||
|
||||
//Vérification du code anti-bots
|
||||
if ($_POST['cds'] != $sess->values['flcds']) erreur('Impossible d\'authentifier l\'envoie de la flotte.<br />Si le problème perciste, <a href="mailto:technique@halo-battle.s-fr.com">contactez un administrateur</a>.', "red", '?p=flotte', 4000);
|
||||
//Si la mission est d'attaquer, on vérifie que les attaques ne soient pas désactivées
|
||||
elseif ($mission == 1 && !ATTAQUES) erreur('Les attaques sont désactivées pour le moment. Pour plus d\'informations, <a href="http://halo-battle.s-fr.com/forum/">consultez le forum</a>.', "red", '?p=flotte', 5000);
|
||||
//Vérification que la destination ne soit pas en dehors de la galaxie
|
||||
elseif ($end_galaxie > MAX_AMAS || $end_ss > MAX_SYSTEME || $end_pos > MAX_PLANETE || $end_galaxie < 0 || $end_ss < 1 || $end_pos < 1 || ($end_galaxie < 1 && $sess->values['auth_level'] < 6)) erreur('La destination de la flotte n\'est pas correcte.', "red", '?p=flotte');
|
||||
//Vérification que le nombre de slots ne soit pas dépassé
|
||||
elseif ($nbr > $queryUser['informatique']) erreur('Vous n\'avez pas assez de slots disponibles.', "red", '?p=flotte');
|
||||
//On vérifie la mission
|
||||
elseif ($mission < 0 || $mission > 5) erreur('Mission incorrecte !', "red", '?p=flotte');
|
||||
//Si la mission est d'attaquer, on vérifie la tactique
|
||||
elseif ($mission == 1 && $tactique > $queryUser['tactique']) erreur('Vous ne connaissez pas cette tactique de combat !', "red", '?p=flotte');
|
||||
//On vérifie la mission, si elle est d'espionner, il faut qu'il y ait des sondes
|
||||
elseif ($mission == 5 && (!isset($sess->values['vais'][4]) || $sess->values['vais'][4] < 0)) erreur('Vous ne pouvez pas espionner sans sonde d\'espionnage !', "red", '?p=flotte');
|
||||
//On vérifie la mission, si elle est de coloniser, il faut qu'il y ait des vaisseaux de colonisation
|
||||
elseif ($mission == 3 && (!isset($sess->values['vais'][3]) || $sess->values['vais'][3] < 0)) erreur('Vous ne pouvez pas coloniser sans vaisseau de colonisation !', "red", '?p=flotte');
|
||||
//On vérifie la mission, si elle est de recycler, il faut qu'il y ait des reclycleurs
|
||||
elseif ($mission == 4 && (!isset($sess->values['vais'][5]) || $sess->values['vais'][5] < 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');
|
||||
//On vérifie que l'on n'envoie pas des ressources négatives
|
||||
elseif ((!empty($EBmetal) && $EBmetal < 0) || (!empty($EBcristal) && $EBcristal < 0) || (!empty($EBhydrogene) && $EBhydrogene < 0)) erreur('Vous avez spécifié des valeurs de ressources à embarquer incorrectes !', "red", '?p=flotte', 4000);
|
||||
//On vérifie la vitesse du vaisseau
|
||||
elseif (!is_numeric($vitesse) || $vitesse < 0 || $vitesse > 100) erreur('La vitesse de votre flotte est incorrecte !', "red", '?p=flotte');
|
||||
else {
|
||||
$resultat = $bdd->unique_query("SELECT * FROM $table_planete WHERE galaxie = '$end_galaxie' AND ss = '$end_ss' AND position = '$end_pos';");
|
||||
|
||||
//On vérifie qu'il n'y ait pas une interaction entre deux multi-comptes
|
||||
$cnt = count($multi);
|
||||
if ($cnt > 1 && $mission == 2) {
|
||||
for($i = 0; $i < $cnt; $i++){
|
||||
if ($multi[$i]['id_util'] == $resultat['id_user']) erreur('Vous ne pouvez pas avoir d\'interaction avec ce joueur pour raison de multi-compte (voir page d\'accueil).');
|
||||
}
|
||||
}
|
||||
|
||||
//Si la mission est d'attaquer, on vérifie que le joueur cible ne soit pas ne mode vacances
|
||||
if ($mission == 1) {
|
||||
//Récupération de l'ID du joueur cible
|
||||
$rech_user = $resultat['id_user'];
|
||||
$resultatu = $bdd->unique_query("SELECT * FROM $table_user WHERE id = '$rech_user';");
|
||||
if ($resultatu['mv'] != 0) erreur('Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.', "red", '?p=flotte', 3000);
|
||||
elseif ($resultatu['time_inscription'] + 604800 > time()) erreur('Le joueur que vous tentez d\'attaquer s\'est inscrit récemment, laissez-lui le temps de se préparer au combat !', "red", '?p=flotte', 3000);
|
||||
elseif (!$resultat) erreur('La planète que vous tentez d\'attaquer est inhabitée.', "red", '?p=flotte');
|
||||
elseif ($resultat['id_user'] == $id_user) erreur('La planète que vous tentez d\'attaquer vous appartient.', "red", '?p=flotte');
|
||||
}
|
||||
elseif ($mission == 2 && !$resultat) erreur('Impossible de transporter des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000);
|
||||
elseif ($mission == 3 && $resultat) erreur('La planète que vous voulez coloniser est déjà habitée.', "red", '?p=flotte', 3000);
|
||||
elseif ($mission == 0 && $resultat['id_user'] != $id_user) erreur('La planète sur laquelle vous désirez stationner ne vous appartient pas.', "red", '?p=flotte', 3000);
|
||||
elseif ($mission == 4 && ($resultat['debris_met'] <= 0 || $resultat['debris_cri'] <= 0) && empty($sess->values['forceFlotte'])) {
|
||||
$sess->values['forceFlotte'] = true;
|
||||
$sess->put();
|
||||
erreur('Il n\'y a rien à recycler sur la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'].<br />Vous pouvez forcer le lancement de la flotte en rechargeant cette page.', "orange");
|
||||
}
|
||||
|
||||
//Création de la flotte
|
||||
$req = '';
|
||||
$reqb = '';
|
||||
$reqPlan = '';
|
||||
$nbVais = '';
|
||||
$nbI = count($nomvaisa);
|
||||
for ($i=1 ; $i<=$nbI ; $i++) {
|
||||
if (!empty($sess->values['vais'][$i])) {
|
||||
if ($sess->values['vais'][$i] > $queryPlanete['vaisseau_'.$i]) erreur('Vous avez envoyé plus de vaisseaux que vous n\'en posséder sur cette planète.', "red", '?p=flotte');
|
||||
else {
|
||||
$req .= "'".$sess->values['vais'][$i]."', ";
|
||||
$reqb .= "vaisseau_$i, ";
|
||||
if (!empty($reqPlan)) $reqPlan .= ', ';
|
||||
$reqPlan .= "vaisseau_$i = vaisseau_$i - '".$sess->values['vais'][$i]."'";
|
||||
$nbVais += $sess->values['vais'][$i];
|
||||
}
|
||||
}
|
||||
}
|
||||
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);
|
||||
else {
|
||||
//Envoie de la flotte
|
||||
$nom = $_POST['nomflotte'];
|
||||
$bdd->escape($nom);
|
||||
|
||||
$start_time = time();
|
||||
$start_galaxie = $queryPlanete['galaxie'];
|
||||
$start_ss = $queryPlanete['ss'];
|
||||
$start_pos = $queryPlanete['position'];
|
||||
|
||||
$end_time = vais_tempsDeplacement($start_galaxie, $start_ss, $start_pos, $end_galaxie, $end_ss, $end_pos, $sess->values['flvitesse'], $vitesse, $sess->values['flpreparation'], $sess->values['flchauffe']);
|
||||
if ($end_time <= 0) {
|
||||
$end_time = 454;
|
||||
}
|
||||
|
||||
//On vérifie qu'il y a assez de place dans les cales des vaisseaux avant l'envoie
|
||||
$conso = vais_conso($end_time, $nbVais)*$vitesse/45*2;
|
||||
$contenu_metal = $_POST['metal']; $bdd->escape($contenu_metal); $plan_metal = $queryPlanete['metal'] - $contenu_metal;
|
||||
$contenu_cristal = $_POST['cristal']; $bdd->escape($contenu_cristal); $plan_cristal = $queryPlanete['cristal'] - $contenu_cristal;
|
||||
$contenu_hydrogene = $_POST['hydrogene']; $bdd->escape($contenu_hydrogene); $plan_hydrogene = $queryPlanete['hydrogene'] - $contenu_hydrogene - $conso;
|
||||
$contenu_max = $sess->values['flcontenu'];
|
||||
if ($contenu_metal + $contenu_cristal + $contenu_hydrogene + $conso > $contenu_max && $contenu_metal + $contenu_cristal + $contenu_hydrogene != 0) erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent.', "red", '?p=flotte', 3500);
|
||||
elseif ($plan_metal < 0 || $plan_cristal < 0 || $plan_hydrogene < 0) erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500);
|
||||
else {
|
||||
if ($mission == 1) {
|
||||
$tactiqueAT = $_POST['tactique'];
|
||||
$bdd->escape($tactiqueAT);
|
||||
$tactiqueEN = $resultatu['tactique'];
|
||||
$bdd->escape($tactiqueEN);
|
||||
}
|
||||
else {
|
||||
$tactiqueAT = 0;
|
||||
$tactiqueEN = 0;
|
||||
}
|
||||
|
||||
$bdd->query("INSERT INTO $table_flottes (id_user, mission, start_time, start_galaxie, start_ss, start_position, end_time, end_galaxie, end_ss, end_position, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, contenu_max, nb_vais, $reqb tactiqueAT, tactiqueEN, nom) VALUES ($id_user, '$mission', '$start_time', '$start_galaxie', '$start_ss', '$start_pos', '$end_time', '$end_galaxie', '$end_ss', '$end_pos', '$vitesse', '$contenu_metal', '$contenu_cristal', '$contenu_hydrogene', '$contenu_max', '$nbVais', $req'$tactiqueAT', '$tactiqueEN', '$nom');");
|
||||
$bdd->query("UPDATE $table_planete SET $reqPlan, metal = '$plan_metal', cristal = '$plan_cristal', hydrogene = '$plan_hydrogene' WHERE id = '$idPlan' LIMIT 1 ;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
unset($sess->values['vais']);
|
||||
$sess->put();
|
||||
|
||||
erreur('Votre flotte a été envoyée avec succès.', "green", '?p=flotte', 4000);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif (!empty($_POST['v1']) || !empty($_POST['v2']) || !empty($_POST['v3']) || !empty($_POST['v4']) || !empty($_POST['v5']) || !empty($_POST['v6']) || !empty($_POST['v7']) || !empty($_POST['v8']) || !empty($_POST['v9']) || !empty($_POST['v10']) || !empty($_POST['v11']) || !empty($_POST['v12'])) {
|
||||
$nombreVaisseau = 0;
|
||||
for ($i=1 ; $i<=12 ; $i++) {
|
||||
if (!isset($_POST['v'.$i]) || !is_numeric($_POST['v'.$i]) || $_POST['v'.$i] != abs(floor($_POST['v'.$i]))) $_POST['v'.$i] = 0;
|
||||
if ($_POST['v'.$i] >= 0 && $i != 11) {
|
||||
$sess->values['vais'][$i] = $_POST['v'.$i];
|
||||
$nombreVaisseau += $_POST['v'.$i];
|
||||
//Si on indique un nombre de vaisseaux supérieur au nombre présent sur la planète
|
||||
if ($_POST['v'.$i] > $queryPlanete['vaisseau_'.$i]) erreur('Il ne vous reste plus assez de vaisseaux !', "red", '?p=flotte');
|
||||
}
|
||||
}
|
||||
$sess->values['flnbvais'] = $nombreVaisseau;
|
||||
$sess->values['forceFlotte'] = false;
|
||||
|
||||
//On vérifie que l'utilisateur a bien envoyé plus d'un vaisseau
|
||||
if ($nombreVaisseau <= 0) erreur('Vous devez envoyer au moins un vaisseau.', "red", '?p=flotte');
|
||||
|
||||
//On ajoute des missions supplémentaire suivant les vaisseaux envoyés
|
||||
$lvltactique = $queryUser['tactique'];
|
||||
$actionsupp = '';
|
||||
if ($lvltactique >= 1) $actionsupp .= '<option value="1" selected="selected">Attaquer</option>';
|
||||
if ($_POST['v3'] >= 1) $actionsupp .= '<option value="3" selected="selected">Coloniser</option>';
|
||||
if ($_POST['v5'] >= 1) $actionsupp .= '<option value="4" selected="selected">Recycler</option>';
|
||||
if ($_POST['v4'] >= 1) $actionsupp .= '<option value="5" selected="selected">Espionner</option>';
|
||||
$template->assign('actionsupp', $actionsupp);
|
||||
|
||||
// Définition des paramètres de la flotte
|
||||
$AvaisType = array(); $AvaisVitesseC = array(); $AvaisVitesseL = array(); $AvaisPrepC = array(); $AvaisPrepL = array(); $AvaisChauffe = array(); $AvaisContenu = 0;
|
||||
for ($i=1 ; $i<=12 ; $i++) {
|
||||
$AvaisType[] = $i;
|
||||
$AvaisVitesseC[] = $nomvais_dc[$i-1];
|
||||
$AvaisVitesseL[] = $nomvais_dl[$i-1];
|
||||
$AvaisContenu += $nomvais_rs[$i-1] * $_POST['v'.$i];
|
||||
$AvaisPrepC[] = $nomvais_pdc[$i-1].' ';
|
||||
$AvaisPrepL[] = $nomvais_pdl[$i-1].' ';
|
||||
$AvaisChauffe[] = $nomvais_cdl[$i-1].' ';
|
||||
}
|
||||
if(min($AvaisVitesseL) != 0) {
|
||||
$sess->values['flvitesse'] = max($AvaisVitesseL);
|
||||
$sess->values['flpreparation'] = max($AvaisPrepL);
|
||||
$sess->values['flchauffe'] = max($AvaisChauffe);
|
||||
}
|
||||
else {
|
||||
$sess->values['flvitesse'] = max($AvaisVitesseC);
|
||||
$sess->values['flpreparation'] = max($AvaisPrepC);
|
||||
$sess->values['flchauffe'] = 0;
|
||||
}
|
||||
$sess->values['fltime'] = time();
|
||||
$sess->values['flcontenu'] = $AvaisContenu;
|
||||
|
||||
//On enregistre les modification de la session
|
||||
$sess->put();
|
||||
|
||||
$page = 'flotte2';
|
||||
$template->assign('scripth', '<script src="js/prototype.js" type="text/javascript"></script>');
|
||||
$template->assign('script', '<script type="text/javascript">document.getElementById(\'nom\').focus();</script><script src="js/flotte.js" type="text/javascript"></script>');
|
||||
$fav = explode(';', $queryUser['destinationsFavoris']);
|
||||
$cntfav = count($fav);
|
||||
$favoris = array();
|
||||
$favorisn = array();
|
||||
$bdd->connexion();
|
||||
for($i = 0; $i < $cntfav; $i++){
|
||||
$res = $bdd->unique_query("SELECT nom_planete, galaxie, ss, position FROM $table_planete WHERE id = ".$fav[$i].";");
|
||||
if ($res != false) {
|
||||
if (!empty($res['nom_planete'])) $favoris[] = $res['nom_planete'];
|
||||
else $favoris[] = '['.$res['galaxie'].':'.$res['ss'].':'.$res['position'].']';
|
||||
$favorisn[] = $fav[$i];
|
||||
}
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
$template->assign('favoris', $favoris);
|
||||
$template->assign('favorisn', $favorisn);
|
||||
$favorisC = array();
|
||||
$favorisnC = array();
|
||||
$cntfav = count($queryPlanetes);
|
||||
for($i = 0; $i < $cntfav; $i++){
|
||||
if (!empty($queryPlanetes[$i]['nom_planete'])) $favorisC[] = $queryPlanetes[$i]['nom_planete'];
|
||||
else $favorisC[] = '['.$queryPlanetes[$i]['galaxie'].':'.$queryPlanetes[$i]['ss'].':'.$queryPlanetes[$i]['position'].']';
|
||||
$favorisnC[] = $queryPlanetes[$i]['id'];
|
||||
}
|
||||
$template->assign('favorisColonies', $favorisC);
|
||||
$template->assign('favorisnColonies', $favorisnC);
|
||||
}
|
||||
elseif (!empty($_GET['n'])) {
|
||||
$idN = ceil($_GET['n']);
|
||||
$bdd->connexion();
|
||||
$bdd->escape($idN);
|
||||
$resultat = $bdd->unique_query("SELECT * FROM $table_flottes WHERE id_user = '$id_user' AND id = '$idN'");
|
||||
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() - $resultat['start_time'];
|
||||
if ($resultat['mission'] == '6') erreur('Votre flotte est déjà en train de revenir !', 'red', '?p=flotte&n='.$idN, 1500);
|
||||
elseif ($resultat['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);
|
||||
}
|
||||
|
||||
$page = 'flotten';
|
||||
if ($bdd->num_rows <= 0) erreur('Impossible de trouver cette flotte !', "red", '?p=flotte', 1500);
|
||||
else {
|
||||
$attaque = gpc('attaque', 'post');
|
||||
$nom = gpc('nomflotte', 'post');
|
||||
if (!empty($nom)) {
|
||||
$bdd->escape($nom);
|
||||
$bdd->unique_query("UPDATE $table_flottes SET nom = '$nom' WHERE id_user = $id_user AND id = '$idN' LIMIT 1;");
|
||||
$resultat['nom'] = $nom;
|
||||
}
|
||||
if (!empty($attaque) && is_numeric($attaque)) {
|
||||
if ($attaque <= $queryUser['tactique']) {
|
||||
$bdd->escape($attaque);
|
||||
$bdd->query("UPDATE $table_flottes SET tactiqueAT = $attaque WHERE id_user = $id_user AND id = '$idN';");
|
||||
$bdd->deconnexion();
|
||||
erreur('Tactique mise à jour avec succès.', 'green', '?p=flotte&n='.$idN, 1100);
|
||||
}
|
||||
else erreur('Veuillez sélectionner les tactiques dans la liste !', 'red', '?p=flotte&n='.$idN);
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
$resultat['contenu_metalF'] = separerNombres($resultat['contenu_metal']);
|
||||
$resultat['contenu_cristalF'] = separerNombres($resultat['contenu_cristal']);
|
||||
$resultat['contenu_hydrogeneF'] = separerNombres($resultat['contenu_hydrogene']);
|
||||
$resultat['contenu_maxF'] = separerNombres($resultat['contenu_max']);
|
||||
$resultat['missionF'] = txtmission($resultat['mission']);
|
||||
$resultat['tactiqueAtDef'] = txtTactique($queryUser['combatAT_tactique']);
|
||||
$resultat['tactiqueF'] = txtTactique($resultat['tactiqueAT']);
|
||||
$resultat['end_timeT'] = $resultat['start_time'] + $resultat['end_time'];
|
||||
|
||||
$sess->values['ret_fleet'] = sha1('HB.fleet_'.rand().'☺ß☻');
|
||||
$sess->put();
|
||||
|
||||
$template->assign('ret_fleet', $sess->values['ret_fleet']);
|
||||
$template->assign('flotte', $resultat);
|
||||
$template->assign('nomvais', $nomvaisa);
|
||||
$template->assign('n', $idN);
|
||||
|
||||
$tactiques = array();
|
||||
$tactiquesn = array();
|
||||
$attaqueT = 0;
|
||||
for($i=1 ; $i<=$queryUser['tactique'] ; $i++) {
|
||||
if ($i == $resultat['tactiqueAT']) $attaqueT = $i;
|
||||
$tactiques[] = txtTactique($i);
|
||||
$tactiquesn[] = $i;
|
||||
}
|
||||
$template->assign('tactiques', $tactiques);
|
||||
$template->assign('tactiquesn', $tactiquesn);
|
||||
$template->assign('attselect', $attaqueT);
|
||||
}
|
||||
}
|
||||
else {
|
||||
//Mise à jour des tactiques par défaut
|
||||
$attaque = gpc('attaque', 'post');
|
||||
$defense = gpc('defense', 'post');
|
||||
if (!empty($attaque) && !empty($defense) && is_numeric($attaque) && is_numeric($defense)) {
|
||||
if ($attaque <= $queryUser['tactique'] && $defense <= $queryUser['tactique']) {
|
||||
$bdd->connexion();
|
||||
$bdd->escape($attaque);
|
||||
$bdd->escape($defense);
|
||||
$bdd->query("UPDATE $table_user SET combatAT_tactique = $attaque, combatDE_tactique = $defense WHERE id = '$id_user';");
|
||||
$bdd->deconnexion();
|
||||
erreur('Tactiques mises à jour avec succès.', 'green', '?p=flotte', 1100);
|
||||
}
|
||||
else erreur('Veuillez sélectionner les tactiques dans la liste !', 'red', '?p=flotte');
|
||||
}
|
||||
|
||||
$page = 'flotte1';
|
||||
$bdd->connexion();
|
||||
$resultat = $bdd->query("SELECT * FROM $table_flottes WHERE id_user = '$id_user';");
|
||||
$bdd->deconnexion();
|
||||
$nbr = $bdd->num_rows;
|
||||
$TEMP_flottesEC = array();
|
||||
for ($i=0 ; $i<$nbr ; $i++) {
|
||||
if ($resultat[$i]['mission'] != 1 && ($resultat[$i]['mission'] != 3 || $resultat[$i]['effectue'] == '1' || $resultat[$i]['nb_vais'] >= 1) && $resultat[$i]['mission'] != 0) {
|
||||
$retour = $resultat[$i]['start_galaxie'].':'.$resultat[$i]['start_ss'].':'.$resultat[$i]['start_position'];
|
||||
$Hretour = date('d/m H:i:s',$resultat[$i]['start_time']+2*$resultat[$i]['end_time']);
|
||||
}
|
||||
elseif ($resultat[$i]['mission'] == 1) {
|
||||
$retour = $resultat[$i]['start_galaxie'].':'.$resultat[$i]['start_ss'].':'.$resultat[$i]['start_position'];
|
||||
if (empty($resultat[$i]['ret_time'])) $Hretour = '-';
|
||||
else $Hretour = date('d/m H:i:s',$resultat[$i]['ret_time']+$resultat[$i]['end_time']);
|
||||
}
|
||||
else {
|
||||
$retour = '-';
|
||||
$Hretour = '-';
|
||||
}
|
||||
$TEMP_flottesEC[] = array($resultat[$i]['id'], $resultat[$i]['nom'], txtmission($resultat[$i]['mission']), $resultat[$i]['nb_vais'], $resultat[$i]['end_galaxie'].':'.$resultat[$i]['end_ss'].':'.$resultat[$i]['end_position'], date('d/m H:i:s',$resultat[$i]['start_time']+$resultat[$i]['end_time']), $retour, $Hretour);
|
||||
}
|
||||
$template->assign('flottesEC', $TEMP_flottesEC);
|
||||
|
||||
$TEMP_vaisseaux = array();
|
||||
$j=0;
|
||||
for ($i=1 ; $i<=12 ; $i++) {
|
||||
if ($queryPlanete['vaisseau_'.$i] > 0 && $i != 11) {
|
||||
$j++;
|
||||
$TEMP_vaisseaux[] = array($nomvaisn[$i-1], separerNombres($queryPlanete['vaisseau_'.$i]), $queryPlanete['vaisseau_'.$i], $i);
|
||||
}
|
||||
}
|
||||
$template->assign('vaisseaux', $TEMP_vaisseaux);
|
||||
|
||||
$trez = $queryUser["informatique"] + 1;
|
||||
if ($nbr < $trez) $template->assign('action', '<input class="submit" type="submit" value="OK" />');
|
||||
else $template->assign('action', '<span class="lack">Nombre de flottes maximum simultanées atteint</span>');
|
||||
|
||||
$template->assign('nbflotte', $nbr);
|
||||
$template->assign('nbflottemax', $trez);
|
||||
|
||||
//Modification des tactiques
|
||||
$tactiques = array();
|
||||
$tactiquesn = array();
|
||||
$attaqueT = 0;
|
||||
$defenseT = 0;
|
||||
for($i=1 ; $i<=$queryUser['tactique'] ; $i++) {
|
||||
if ($i == $queryUser['combatAT_tactique']) $attaqueT = $i;
|
||||
if ($i == $queryUser['combatDE_tactique']) $defenseT = $i;
|
||||
$tactiques[] = txtTactique($i);
|
||||
$tactiquesn[] = $i;
|
||||
}
|
||||
$template->assign('tactiques', $tactiques);
|
||||
$template->assign('tactiquesn', $tactiquesn);
|
||||
$template->assign('attselect', $attaqueT);
|
||||
$template->assign('defselect', $defenseT);
|
||||
}
|
||||
?>
|
||||
|
|
@ -2,4 +2,35 @@
|
|||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'gestion';
|
||||
$titre = 'Gestion';
|
||||
|
||||
$template->assign('planeteEC', array(
|
||||
'id' => $planete->id,
|
||||
'metal' => $planete->metal,
|
||||
'cristal' => $planete->cristal,
|
||||
'hydrogene' => $planete->hydrogene,
|
||||
'energie' => $planete->energie,
|
||||
'population' => $planete->population,
|
||||
)
|
||||
);
|
||||
|
||||
$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) {
|
||||
$planete->politique = $politique;
|
||||
$planete->politique_lastchange = time();
|
||||
$planete->modifUser[] = "politique";
|
||||
$planete->modifUser[] = "politique_lastchange";
|
||||
erreur("Le changement politique a bien été pris en compte par la population de vos différentes planètes.", "green");
|
||||
}
|
||||
elseif ($planete->politique == $politique) erreur("Ce système politique est actuellement en vigueur.", "orange");
|
||||
else erreur("Impossible de choisir ce système politique !");
|
||||
}
|
||||
|
||||
$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)';
|
||||
$template->assign('politiques', $politiques);
|
||||
?>
|
||||
|
|
@ -6,31 +6,94 @@ $titre = 'Laboratoire';
|
|||
//Vérification que le joueur ait bien un labo avant d'afficher la page
|
||||
if ($planete->batiments[6] == 0) erreur('Vous devez d\'abord construire un '.strtolower($batiment[6]), "red", '?p=batiments', 4000);
|
||||
|
||||
$TEMP_batiments = array();
|
||||
$nbstop = count($technolo);
|
||||
|
||||
//Lancement d'une nouvelle construction
|
||||
if (isset($_GET['t'])) {
|
||||
//Lancement d'une nouvelle recherche
|
||||
if (isset($_GET['t']) && isset($_GET['f']) ) {
|
||||
//Récupération des erreurs de la mise en file d'attente pour traitement
|
||||
$construction = $planete->file_addObjet("technologies", intval(gpc('t')));
|
||||
$construction = $planete->file_addObjet("technologies", intval(gpc('t')), intval(gpc('f')));
|
||||
|
||||
switch($construction){
|
||||
case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour effectuer cette recherche.'); break;
|
||||
case 2: erreur('Cette technologie est déjà en file d\'attente !'); break;
|
||||
case 3: erreur('Vous n\'avez pas les ressources nécessaire pour effectuer cette recherche !'); break;
|
||||
case 4: erreur('File d\'attente pleine !'); break;
|
||||
case 5: erreur('Le nombre d\'objets est négatif !'); break;
|
||||
default: header('Location: ?p=laboratoire'); exit;
|
||||
}
|
||||
}
|
||||
|
||||
//Annulation d'une nouvelle construction
|
||||
if (isset($_GET['a'])) {
|
||||
$i = intval(gpc('a'));
|
||||
//Vérification de la présence du batiment dans la file d'attente
|
||||
if($planete->file_exist($i, 'file_tech')) {
|
||||
if(!empty($planete->file_tech[$i+1])) {
|
||||
$planete->file_delObjet("technologies", $i);
|
||||
header('Location: ?p=laboratoire');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
//Affichage des technologies
|
||||
$TEMP_technologies = array();
|
||||
foreach ($planete->technologies as $key => $technologie){
|
||||
foreach ($technologiesCALC[$key] as $i => $calc){
|
||||
//On affiche uniquement les technologies
|
||||
if (($technologie & $calc[1]) == $calc[1] && !($technologie & $calc[0] && $technologie != 0)) {
|
||||
if ($planete->file_exist($i, $key)) $enFile = true;
|
||||
else $enFile = false;
|
||||
|
||||
//On applique les bonus de test
|
||||
$calc[3] /= VITESSE;
|
||||
|
||||
$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]),
|
||||
'nec_metal' => 0,
|
||||
'nec_cristal' => 0,
|
||||
'nec_hydrogene' => 0,
|
||||
'nec_credits' => $calc[2],
|
||||
'nec_metalS' => 0,
|
||||
'nec_cristalS' => 0,
|
||||
'nec_hydrogeneS' => 0,
|
||||
'temps' => sec($calc[3]),
|
||||
'num' => $i,
|
||||
'file' => $key,
|
||||
'enfile' => $enFile,
|
||||
'maq_metal' => 0,
|
||||
'maq_cristal' => 0,
|
||||
'maq_hydrogene' => 0
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
$template->assign('recherches', $TEMP_technologies);
|
||||
|
||||
//Affichage de la file d'attente
|
||||
$nbfile = count($planete->file_tech)-1;
|
||||
if ($nbfile == 1) $template->assign('Pchaine', true);
|
||||
else $template->assign('Pchaine', false);
|
||||
if ($nbfile <= 0) $template->assign('Vchaine', true);
|
||||
else $template->assign('Vchaine', false);
|
||||
$file = array();
|
||||
foreach ($planete->file_tech as $key => $tech_infile){
|
||||
if ($key == 0) continue;
|
||||
|
||||
$sec = $technologiesCALC[$tech_infile[1]][$tech_infile[0]][3];
|
||||
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]]);
|
||||
}
|
||||
|
||||
$template->assign('file', $file);
|
||||
|
||||
/*
|
||||
exit;
|
||||
|
||||
$nbstop = count($technolo);
|
||||
|
||||
|
||||
|
||||
//Règler la production à la châine
|
||||
/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) {
|
||||
if($_GET['r']) $file->chaine = false;
|
||||
|
|
@ -40,7 +103,7 @@ if (isset($_GET['a'])) {
|
|||
header('Location: ?p=batiments');
|
||||
exit;
|
||||
}*/
|
||||
|
||||
/*
|
||||
for ($i=0 ; $i<$nbstop ; $i++) {
|
||||
$tr = 0; $a = 0; $b = 0; $c = 0; $sec = 0; $enFile = false;
|
||||
if ($planete->technologies[$i] > 0) $niveau = $planete->technologies[$i]; else $niveau = 0;
|
||||
|
|
@ -85,5 +148,5 @@ for ($i=1 ; $i <= $nbfile ; $i++) {
|
|||
else $file[] = array($file_unit[0], $file_unit[1], ceil($sec), $technolo[$file_unit[0]]);
|
||||
}
|
||||
|
||||
$template->assign('file', $file);
|
||||
$template->assign('file', $file);*/
|
||||
?>
|
||||
|
|
@ -3,6 +3,9 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
|
|||
$page = 'messagerie';
|
||||
$titre = 'Messagerie';
|
||||
|
||||
//On interdit l'accès à la messagerie en cas de prise de contrôle d'un joueur
|
||||
if (!empty($sess->values['souscontrole'][0])) erreur('Vous êtes en mode prise de contrôle, vous ne pouvez pas accèder aux messages privés des joueurs.');
|
||||
|
||||
if (isset($_POST['IM'])) {
|
||||
$stop = false;
|
||||
for($i=1 ; $i<=$_POST['IM'] ; $i++) {
|
||||
|
|
@ -36,7 +39,7 @@ $nbmax = $bdd->num_rows;
|
|||
|
||||
$result = $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 LIMIT 50;");
|
||||
|
||||
if ($queryUser['auth_level'] >= 3 && $nbmax > $bdd->num_rows) $result = $messcomp;
|
||||
if ($planete->auth_level >= 3 && $nbmax > $bdd->num_rows) $result = $messcomp;
|
||||
elseif ($nbmax > $bdd->num_rows) $template->assign('avertissement', '<p style="color: red; "><b>Vous avez des messages en attente de réception. Libérez de la place dans votre messagerie pour les afficher.</b></p>');
|
||||
|
||||
$TEMP_messages = array();
|
||||
|
|
|
|||
|
|
@ -4,12 +4,14 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
|
|||
if (!empty($_GET['cds'])) {
|
||||
if (!empty($_GET['nom']) && !empty($_GET['race']) && !empty($_GET['mdp']) && !empty($_GET['mail']) && !empty($_GET['ti']) && isset($_GET['placement'])) {
|
||||
//file_log('inscription : login = '.$_POST['HB_login'].' ; password = '.$_POST['HB_password'], 1);
|
||||
$_GET['mdp'] = hexstr($_GET['mdp']);
|
||||
if ($_GET['cds'] == sha1($_GET['nom'].'$'.$_GET['race'].'£'.$_GET['mdp'].'#'.$_GET['mail'].'ß'.$_GET['ti'].'Ó'.$_SERVER['HTTP_USER_AGENT'].'♀☻'.$_SERVER['REMOTE_ADDR'].$_GET['placement'])) {
|
||||
$pseudo = $_GET['nom'];
|
||||
$mdp = mdp($pseudo, $_GET['mdp']);
|
||||
$race = $_GET['race'];
|
||||
$mdp = cxor(gpc('mdp'), sha1($pseudo.'£'.$race));
|
||||
$mdp = mdp($pseudo, $mdp);
|
||||
$alea = $mdp[1];
|
||||
$mdp = $mdp[0];
|
||||
$race = $_GET['race'];
|
||||
$mail = $_GET['mail'];
|
||||
$ti = $_GET['ti'];
|
||||
|
||||
|
|
@ -32,14 +34,14 @@ if (!empty($_GET['cds'])) {
|
|||
}
|
||||
|
||||
//Création de l'utilisateur
|
||||
$base->query("INSERT INTO $table_user (pseudo, mdp, mdp_var, race, mail, last_ip, time_inscription) VALUES ('$pseudo', '$mdp', '$alea', '$race', '$mail', '".$_SERVER['REMOTE_ADDR']."', '".time()."');");
|
||||
$base->query("INSERT INTO $table_user (pseudo, mdp, mdp_var, race, mail, last_ip, time_inscription, credits) VALUES ('$pseudo', '$mdp', '$alea', '$race', '$mail', '".$_SERVER['REMOTE_ADDR']."', '".time()."', 1000);");
|
||||
|
||||
//Création des bases de la planète
|
||||
$image = mt_rand(1,15);
|
||||
$image = mt_rand(1,19);
|
||||
$cases = 225;
|
||||
$queryUser = $base->unique_query("SELECT * FROM $table_user WHERE pseudo = '$pseudo';");
|
||||
if (empty($queryUser)) {
|
||||
$template->assign('message','Une erreur est survenue lors de la création de votre compte sur le serveur.<br /><br />Si le problème perciste, contactez un administrateur.');
|
||||
$template->assign('message','Une erreur est survenue lors de la création de votre compte sur le serveur.<br /><br />Si le problème persiste, contactez un administrateur.');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
|
|
@ -134,14 +136,14 @@ if (!empty($_GET['cds'])) {
|
|||
}
|
||||
}
|
||||
else {
|
||||
$template->assign('message','Impossible d\'authentifier votre inscription !<br /><br />Si le problème perciste, contactez un administrateur.');
|
||||
$template->assign('message','Impossible d\'authentifier votre inscription !<br /><br />Si le problème persiste, contactez un administrateur.');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$template->assign('message','Impossible de terminer votre inscription, il manque des données !<br /><br />Si le problème perciste, contactez un administrateur.');
|
||||
$template->assign('message','Impossible de terminer votre inscription, il manque des données !<br /><br />Si le problème persiste, contactez un administrateur.');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ if (!empty($_POST['titre']) && !empty($_POST['description'])) {
|
|||
$bdd->deconnexion();
|
||||
erreur('Votre demande à bien été transmise aux opérateurs de la galaxie.<br />Une réponse vous sera donnée dans les plus brefs délais.', "green");
|
||||
}
|
||||
elseif (!empty($_POST['O_titre']) && !empty($_POST['O_description']) && $sess->values['auth_level'] > 4) {
|
||||
elseif (!empty($_POST['O_titre']) && !empty($_POST['O_description']) && $sess->level > 4) {
|
||||
$titre = $_POST['O_titre'];
|
||||
$description = $_POST['O_description'];
|
||||
|
||||
|
|
@ -27,7 +27,7 @@ elseif (!empty($_POST['O_titre']) && !empty($_POST['O_description']) && $sess->v
|
|||
header('Location: ?p=operateur');
|
||||
exit;
|
||||
}
|
||||
elseif (isset($_GET['a']) && $_GET['a'] == 'top' && isset($_GET['i']) && $sess->values['auth_level'] > 4) {
|
||||
elseif (isset($_GET['a']) && $_GET['a'] == 'top' && isset($_GET['i']) && $sess->level > 4) {
|
||||
$i = $_GET['i'];
|
||||
$bdd->connexion();
|
||||
$bdd->escape($i);
|
||||
|
|
@ -36,7 +36,7 @@ elseif (isset($_GET['a']) && $_GET['a'] == 'top' && isset($_GET['i']) && $sess->
|
|||
header('Location: ?p=operateur');
|
||||
exit;
|
||||
}
|
||||
elseif (isset($_GET['a']) && $_GET['a'] == 'bas' && isset($_GET['i']) && $sess->values['auth_level'] > 4) {
|
||||
elseif (isset($_GET['a']) && $_GET['a'] == 'bas' && isset($_GET['i']) && $sess->level > 4) {
|
||||
$i = $_GET['i'];
|
||||
$bdd->connexion();
|
||||
$bdd->escape($i);
|
||||
|
|
@ -45,7 +45,7 @@ elseif (isset($_GET['a']) && $_GET['a'] == 'bas' && isset($_GET['i']) && $sess->
|
|||
header('Location: ?p=operateur');
|
||||
exit;
|
||||
}
|
||||
elseif (isset($_GET['a']) && $_GET['a'] == 'del' && isset($_GET['i']) && $sess->values['auth_level'] > 4) {
|
||||
elseif (isset($_GET['a']) && $_GET['a'] == 'del' && isset($_GET['i']) && $sess->level > 4) {
|
||||
$i = $_GET['i'];
|
||||
$bdd->connexion();
|
||||
$bdd->escape($i);
|
||||
|
|
|
|||
|
|
@ -5,8 +5,11 @@ $titre = 'Options';
|
|||
$template->assign('page',$page);
|
||||
$template->assign('titre',$titre);
|
||||
|
||||
$pseudo = $queryUser['pseudo'];
|
||||
$mailUtil = $queryUser['mail'];
|
||||
$pseudo = $planete->pseudo;
|
||||
$mailUtil = $planete->mail;
|
||||
$bdd->connexion();
|
||||
$queryUser = $bdd->unique_query("SELECT mdp, mdp_var FROM $table_user WHERE id = $id_user;");
|
||||
$bdd->deconnexion();
|
||||
$mdp = $queryUser['mdp'];
|
||||
$mdp_var = $queryUser['mdp_var'];
|
||||
|
||||
|
|
@ -42,7 +45,7 @@ if (isset($_GET['a']) && $_GET['a'] == 'mv' && isset($_GET['n']) && $_GET['n'] =
|
|||
$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", $queryUser['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']) {
|
||||
|
|
@ -54,9 +57,9 @@ elseif (isset($_GET['a']) && $_GET['a'] == 'dl' && isset($_GET['n']) && $_GET['n
|
|||
}
|
||||
if (isset($_GET['chg']) && $_GET['chg'] == 'mdp') {
|
||||
if (isset($_POST['mdp_anc']) && isset($_POST['mdp_nouv']) && isset($_POST['mdp_conf']) && !empty($_POST['mdp_anc']) && !empty($_POST['mdp_nouv']) && !empty($_POST['mdp_conf'])) {
|
||||
if(mdp($pseudo, $_POST['mdp_anc'], $mdp_var) == $mdp) {
|
||||
if(mdp($pseudo, gpc('mdp_anc', 'post'), $mdp_var) == $mdp) {
|
||||
if ($_POST['mdp_nouv'] == $_POST['mdp_conf']) {
|
||||
$password = mdp($pseudo, $_POST['mdp_nouv'], $mdp_var);
|
||||
$password = mdp($pseudo, gpc('mdp_nouv', 'post'), $mdp_var);
|
||||
$auth = sha1($password);
|
||||
|
||||
$bdd->connexion();
|
||||
|
|
@ -76,17 +79,16 @@ if (isset($_GET['chg']) && $_GET['chg'] == 'mdp') {
|
|||
else erreur('Veuillez remplir tous les champs avant de valider le formulaire.', "red", '?p=options');
|
||||
}
|
||||
elseif (isset($_GET['chg']) && $_GET['chg'] == 'mail') {
|
||||
if (isset($_POST['mdp_mail']) && sha1(strtoupper($pseudo).':'.$_POST['mdp_mail']) == $mdp) {
|
||||
if (isset($_POST['mdp_mail']) && mdp($pseudo, gpc('mdp_mail', 'post'), $mdp_var) == $mdp) {
|
||||
if (isset($_POST['mail']) && !empty($_POST['mail'])) {
|
||||
$Nmail = $_POST['mail'];
|
||||
$Nmail = gpc('mail', 'post');
|
||||
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $Nmail)) {
|
||||
$bdd->connexion();
|
||||
$bdd->escape($Nmail);
|
||||
$result = $bdd->query("SELECT mail FROM user WHERE mail = '$Nmail'");
|
||||
if($result) {
|
||||
$bdd->deconnexion();
|
||||
header('Location: options.php?erreur=5');
|
||||
exit;
|
||||
erreur('Vous ne pouvez pas utiliser cette adresse mail, elle est déjà utilisée par un autre utilisateur.', "red", '?p=options');
|
||||
}
|
||||
else {
|
||||
$auth = sha1($Nmail);
|
||||
|
|
@ -110,6 +112,6 @@ elseif (isset($_GET['chg']) && $_GET['chg'] == 'mail') {
|
|||
$sess->values['idvac'] = sha1(rand(123456789,9876543210).'ß‘}☻'.time());
|
||||
$sess->put();
|
||||
|
||||
$template->assign('mail',$queryUser['mail']);
|
||||
$template->assign('mail',$planete->mail);
|
||||
$template->assign('idvac',$sess->values['idvac']);
|
||||
?>
|
||||
|
|
@ -3,6 +3,10 @@ if(!defined('INDEX')) { header('Location: ../'); exit; }
|
|||
$titre = 'Changement des options';
|
||||
|
||||
if (isset($_GET['auth'])) {
|
||||
$bdd->connexion();
|
||||
$queryUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id_user;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (!empty($queryUser['mdpNOUV']) && !empty($queryUser['mdpNOUV']) && sha1($queryUser['mdpNOUV']) == $_GET['auth']) {
|
||||
$bdd->connexion();
|
||||
$bdd->query("UPDATE user SET mdp = mdpNOUV, mdpNOUV = '', mailNOUV = '' WHERE id = '$id_user';");
|
||||
|
|
|
|||
|
|
@ -4,15 +4,18 @@ $page = 'rename';
|
|||
$titre = $planete->nom_planete;
|
||||
|
||||
if (isset($_POST['planete'])) {
|
||||
$nouvNom = trim($_POST['planete']);
|
||||
$nouvNom = trim(str_replace(' ', ' ', $_POST['planete']));
|
||||
if (empty($nouvNom)) erreur('Vous n\'avez indiqué aucun nom de planète.', "red", '?p=rename');
|
||||
elseif (ereg('staf', strtolower($nouvNom)) && $sess->values['auth_level'] < 4) erreur('Vous devez faire parti du staff pour afficher le nom "staff" dans le nom de votre planète !', "red", '?p=rename');
|
||||
elseif (limite($nouvNom, 18)) erreur('Le nom de votre planète est trop long.', "red", '?p=rename');
|
||||
elseif (ereg('staf', strtolower($nouvNom)) && $sess->level < 4) erreur('Vous devez faire parti du staff pour afficher le nom "staff" dans le nom de votre planète !', "red", '?p=rename');
|
||||
else {
|
||||
$bdd->connexion();
|
||||
$bdd->escape($nouvNom);
|
||||
$bdd->unique_query("UPDATE $table_planete SET nom_planete = '$nouvNom' WHERE id_user = $id_user AND id = $idPlan;");
|
||||
$bdd->deconnexion();
|
||||
erreur('Le nom de votre planète a été modifié avec succès.', "green", '?p=accueil');
|
||||
header('Location: ?p=accueil');
|
||||
exit;
|
||||
//erreur('Le nom de votre planète a été modifié avec succès.', "green", '?p=accueil');
|
||||
}
|
||||
}
|
||||
elseif(isset($_GET['a']) && isset($_GET['i']) && $_GET['a'] == $sess->values['abandon'] && !empty($idPlan) && $idPlan == $_GET['i']) {
|
||||
|
|
@ -25,7 +28,7 @@ elseif(isset($_GET['a']) && isset($_GET['i']) && $_GET['a'] == $sess->values['ab
|
|||
$sess->values['abandon'] = 0;
|
||||
unset($sess->values['abandon']);
|
||||
$sess->values['idPlan'] = $req['id'];
|
||||
$sess->put();
|
||||
$sess->put($planete->id_user);
|
||||
|
||||
erreur('Cette planète n\'est désormais plus sous votre contrôle.', "green", '?p=accueil');
|
||||
}
|
||||
|
|
@ -36,6 +39,6 @@ $bdd->deconnexion();
|
|||
if ($reqnb['total'] > 1) $hashA = md5(rand(123456789,9876543210));
|
||||
else $hashA = false;
|
||||
$sess->values['abandon'] = $hashA;
|
||||
$sess->put();
|
||||
$sess->put($planete->id_user);
|
||||
$template->assign('abandonH', $hashA);
|
||||
?>
|
||||
22
game/jeu/util.php
Normal file
22
game/jeu/util.php
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'util';
|
||||
$titre = 'Détails utilisateur';
|
||||
|
||||
$u = floor(gpc('i'));
|
||||
|
||||
$bdd->connexion();
|
||||
$detailsUser = $bdd->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();
|
||||
}
|
||||
}
|
||||
?>
|
||||
114
game/noms.php
114
game/noms.php
|
|
@ -1,9 +1,9 @@
|
|||
<?php
|
||||
if (!isset($race)) $race = $queryUser['race'];
|
||||
if (!isset($race)) $race = $sess->values['race'];
|
||||
if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
||||
|
||||
if ($race == 'covenant') {
|
||||
$ressourc = array('Métal','Cristal','Ions','Energie');
|
||||
$ressourc = array('Métal','Cristal','Ions','Énergie','Crédits');
|
||||
$casernen = array('Grunt','Jackal','Drone','Elite','Sniper','Hunter','Médecin','Ingénieur','Brute');
|
||||
$casernde = array( 'Formant l\'unité d\'infanterie de base des Covenants, les Grunt se révèlent dangereux en groupe, mais ne représentent individuellement qu\'une faible menace. Petits, trapus et relativement lents, ils paniquent souvent lorsqu\'ils affrontent des ennemis qui leurs sont supérieurs ; cependant, s\'ils sont menés par un Sangheili, ils se battront jusqu\'au bout.',
|
||||
'Tireurs efficaces, les jackals sont généralement employés comme mercenaires, on les trouve souvent en positions défensives, se battant protégés par les boucliers à énergie qui les caractérisent. Un bouclier bien utilisé fait d\'un Jackal une cible difficile à atteindre, mais celui-ci doit l\'écarter pour faire feu, ce qui lui confère un point faible exploitable.',
|
||||
|
|
@ -31,7 +31,18 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
'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.');
|
||||
$technolo = array('Informatique','Detection','Armement','Bouclier','Maitrise de l\'énergie','Réacteur à antigravité','Réacteur à fusion','Réacteur à fusion Forerunner','Médecine','Commandement militaire',0,'Cristal Mémoriel');
|
||||
$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('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('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'),
|
||||
array('Tourelle légère M202 XP', 'Canon de défense automatique', 'Artillerie lourde de 440mm', 'Lance-missiles Archer', 'Batterie de missiles Anaconda', 'Silo de missiles Shiva', 'Canon à accélération magnétique'),
|
||||
array('Prototype Intercepteur Longsword', 'Prototype Bombardier Longsword', 'Corvette de classe Mako', 'Prototype de Frégate', 'Récupération', 'Prototype de Croiseur de classe Halcyon', 'Prototype de Croiseur de classe Marathon', 'Prototype de Destroyer', 'Prototype de Porte-vaisseaux', 'Prototype de Super Porte-Vaisseaux', 'Prototype de Vaisseau d\'exfiltration de classe Black Cat', 'Prototype de Super canon à accélération magnétique', 'Bunker souterrain', 'Bunker souterrain', 'Bunker souterrain'),
|
||||
array('Expansion niveau 1', 'Expansion niveau 2', 'Expansion niveau 3', 'Expansion niveau 4', 'Expansion niveau 5', 'Expansion niveau 6', 'Expansion niveau 7', 'Expansion niveau 8', 'Expansion niveau 9', 'Expansion niveau 10', 'Expansion niveau 11', 'Expansion niveau 12', 'Expansion niveau 13', 'Expansion niveau 14', 'Expansion niveau 15', 'Expansion niveau 16', 'Expansion niveau 17', 'Expansion niveau 18')
|
||||
);
|
||||
$technode = array( 'L\'informatique vous permet de traiter les informations de façon très rapide réduisant ainsi les temps de réaction qui, dans les combats, peut s\'avérer fatal.',
|
||||
'La détection est cruciale pour préserver sa flotte et ses planètes. Développer cette technologie vous permet de construire une base « œil des prophètes » qui repèrera les vaisseaux s\'approchant de votre planète.',
|
||||
'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat démuni face aux assauts féroces adverses ? Cette technologie vous permettra de rechercher de nouveaux systèmes d\'armements afin de rendre vos outils de guerre plus précis et mortels.',
|
||||
|
|
@ -78,7 +89,7 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
'Utilisant un principe similaire de la tourelle à plasma, le lanceur de torpilles plasma utilise un condensateur de matière pour condenser le flux de plasma surchauffé en une masse de destruction pure. Ce système est le système de défense terrestre le plus évolué jamais construit. Son défaut majeur reste sa cadence de tire lente, limitant sa défense face à de multiples adversaires.');
|
||||
}
|
||||
elseif ($auth_level >= 6 && md5($race) == '34c19b21bd4a3dda389e767d32fe9779') {
|
||||
$ressourc = array('Métal','Cristal','Hydrogène','Energie');
|
||||
$ressourc = array('Métal','Cristal','Hydrogène','Énergie','Crédits');
|
||||
$casernen = array('Constructor','Sentinelle Légère','Sentinelle Lourde','Enforcer Léger','Enforcer Lourd','Monitor','~#PAS DE NOM#~ Médecin','~#PAS DE NOM#~ Ingénieur','~#PAS DE NOM#~ Brute');
|
||||
$casernde = array( 'Les Constructors sont des minis sentinelles capable d\'effectuer certaine reparation mineur, ils peuvent réparés les sentinelles endommager ainsi que les chasseurs légers.',
|
||||
'~#DESCRIPTION MANQUANTE#~ Sentinelle Légère',
|
||||
|
|
@ -92,8 +103,8 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
$casernea = array('constructor(s)','sentinelle(s) légère(s)','sentinelle(s) lourde(s)','enforcer(s) léger(s)','enforcer(s) lourd(s)','monitor(s)','médecin(s)','ingénieur(s)','brute(s)');
|
||||
$casernei = array('scoutma3.jpg','sentinellelegerecn4.jpg','nanw9.jpg','defenseurlegerhs8.jpg','defenseurlourdhr3.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg');
|
||||
$batimend = array('purificateur_m','purificateur_c','ionisateur','centrale_s','centrale_fusion','oeil','recherches','chantier_terrestre','???','caserne','silo','centre_info');
|
||||
$batimeni = array('generateurdemetalsg0.jpg','generateurdecristalmh5.jpg','generateurdhydrognedh3.jpg','generateurdenergievb7.jpg','generateurafusiondb2.jpg',0,'centrederecherchegu9.jpg','chantierterrestrehg1.jpg','chantierspatialff8.jpg',0,'nanw9.jpg',0);
|
||||
$batiment = array('Générateur de Métal','Générateur de Cristal','Générateur d\'Hydrogène','Générateur d\'Energie',0,0,'Centre de recherches','Chantier terrestre','Chantier spatial',0,'Entrepôt',0);
|
||||
$batimeni = array('generateurdemetalsg0.jpg','generateurdecristalmh5.jpg','generateurdhydrognedh3.jpg','generateurdÉnergievb7.jpg','generateurafusiondb2.jpg',0,'centrederecherchegu9.jpg','chantierterrestrehg1.jpg','chantierspatialff8.jpg',0,'nanw9.jpg',0);
|
||||
$batiment = array('Générateur de Métal','Générateur de Cristal','Générateur d\'Hydrogène','Générateur d\'Énergie',0,0,'Centre de recherches','Chantier terrestre','Chantier spatial',0,'Entrepôt',0);
|
||||
$batimede = array( 'Le générateur 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 générateurs, plus uls vous rapportera. Les générateurs plus développés ont aussi besoin de plus d\'énergie.',
|
||||
'Le générateur de cristal vous fourni les ressources pour vos installations électroniques et pour les alliages. Le générateur consomme deux fois plus d\'énergie que celui du métal. Tous les vaisseaux et bâtiments ont besoin de cristal pour leur bouclier ou encore leur composant électronique. La production augmente avec le développement du générateur ainsi que sa consommation.',
|
||||
'L\'hydrogène n\'est pas directement disponible dans la nature. On doit le produire : par electrolyse de l\'eau ce qui consiste à faire passer un courant électrique dans de l\'eau pour que les molécules se séparent et forme du dihydrogène. Mais cette technique utilise de trop grande quantitée d\'énergie.',
|
||||
|
|
@ -106,7 +117,11 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
0,
|
||||
'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.',
|
||||
0);
|
||||
$technolo = array('Informatique','Detection','Armement','Bouclier','Maitrise de l\'énergie','Réacteur à antigravité','Réacteur à fusion','Réacteur à fusion Forruner','Médecine','Commandement militaire',0);
|
||||
$technolo = array(
|
||||
array('Forage niveau 1', 'Forage niveau 2', 'Commerce galactique niveau 1', 'Rendement métal niveau 1', 'Rendement cristal niveau 1', 'Rendement hydrogène niveau 1', 'Forage niveau 3', 'Théorie du Marché niveau 1', 'Rendement métal niveau 2', 'Rendement métal niveau 3', 'Rendement cristal niveau 2', 'Rendement cristal niveau 3', 'Rendement hydrogène niveau 2', 'Fonderies avancées niveau 1', 'Rendement hydrogène niveau 3', 'Théorie du Marché niveau 2', 'Théorie du Marché niveau 3', 'Fonderies avancées niveau 2', 'Fonderies avancées niveau 3'),
|
||||
array('Maîtrise énergie niveau 1', 'Informatique', 'Constructions planétaires', 'Maîtrise énergie', 'Réacteur à combustion', 'Maîtrise énergie', 'Réacteur à combustion', 'Réacteur à fusion', 'Réacteur à combustion', 'Réacteur à fusion', 'Réacteur à fusion type II ', 'Réacteur à fusion', 'Réacteur à fusion type II ', 'Réacteur à fusion type II ', 'Informatique', 'IA ', 'Télécommunications', 'Espionnage', 'Contre-espionnage', 'Informatique', 'IA ', 'IA ', 'Télécommunications', 'Polymères radars', 'Télécommunications', 'Polymères radars', 'Polymères radars', 'Espionnage', 'Espionnage', 'Contre-espionnage', 'Contre-espionnage', 'Constructions planétaires', 'Construction optimisée', 'Ingénierie orbitale', 'Constructions planétaires', 'Aménagement territorial', 'Aménagement territorial', 'Aménagement territorial'),
|
||||
array('Immigration coloniale', 'Sciences politiques', 'Immigration coloniale', 'Urbanisme', 'Immigration coloniale', 'Urbanisme', 'Grandes surfaces', 'Centre de loisirs', 'Arcologie', 'Urbanisme', 'Sciences politiques', 'Stratégie militaire', 'Sciences politiques', 'Stratégie militaire', 'Stratégie militaire'),
|
||||
);
|
||||
$technode = array( 'L\'informatique vous permet de traiter les informations de façon très rapide réduisant ainsi les temps de réactions qui dans les combats peuvent s\'avérer fatales.',
|
||||
'La détection est cruciale pour préserver sa flotte et ses planètes. Développer cette technologie vous permet de construire une base « œil des prophètes » qui repèrera les vaisseaux s\'approchant de votre planète.',
|
||||
'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat démuni face aux assauts féroces adverses ? Cette technologie vous permettra de rechercher de nouveaux systèmes d\'armements afin de rendre vos outils de guerre plus précis et mortels.',
|
||||
|
|
@ -117,7 +132,7 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
'Les covenants ont découvert d\'anciens réacteurs à fusion utilisant la technologie d\'hyperpropulsion Forruner. Cette technologie, beaucoup plus puissante que le réacteur conventionnel au Plasma, autorise des sauts dans le sous-espace ultra précis. Ce type de réacteur est le plus cher mais aussi le plus rapide et puissant de toute la flotte covenante.',
|
||||
'La médecine vous permet d\'avoir moins de pertes au combat et ainsi d\'avoir une force de frappe qui résiste plus longtemps. Au lieu de laisser mourir les soldats blessés, le médecin les soigne pour les remettre sur pied et les rendre de nouveau aptes au combat.',
|
||||
'En tant que général, vous devez avoir un esprit fin pour gagner vos batailles terrestres aussi bien que les affrontements spatiaux. C\'est pourquoi il vous faudra toujours innover en matière de stratégie, vous montrer toujours plus rusé que votre impitoyable adversaire, aussi feriez-vous bien d\'étudier de nouvelles tactiques de combat pour vous assurer une franche victoire.');
|
||||
$technoli = array('informatique1.jpg','detection.jpg','sanstitretruecolor04no6.jpg','boucliervaiseaucovenantey4.jpg','energie.jpg','reacteurantigravyd1.jpg','reacteur_f.jpg','reacteurfusionforerunnewu0.jpg','medecine.JPG','commandement.jpg');
|
||||
$technoli = array('informatique1.jpg','detection.jpg','sanstitretruecolor04no6.jpg','boucliervaiseaucovenantey4.jpg','Énergie.jpg','reacteurantigravyd1.jpg','reacteur_f.jpg','reacteurfusionforerunnewu0.jpg','medecine.JPG','commandement.jpg');
|
||||
$nomvaisa = array('cargos de classe Inquisitor','grand(s) transporteur(s)','vaisseau(x) de colonisation','sonde(s)','recycleur(s)','séraphin(s)','frégate(s)','croiseur(s) de classe CCS','croiseur(s) de classe Reverence','porte-vaisseaux','station(s) orbitale','super(s) porte-vaisseaux');
|
||||
$nomvaisi = array('nanw9.jpg','nanw9.jpg','nanw9.jpg',0,'nanw9.jpg','croiseurforrunerns4.jpg','superdestroyerwa6.jpg','nanw9.jpg','chasseurlourdfk8.jpg','nanw9.jpg','nanw9.jpg','nanw9.jpg');
|
||||
$nomvaisn = array('Transporteur Leger','Transporteur Lourd','Colonisateur',0,'Recycleur','Croiseur Forruner','Super-Destroyer','Chasseur Leger','Chasseur Lourd','Porte-Vaisseaux','Station orbitale','Super porte-vaisseaux');
|
||||
|
|
@ -150,19 +165,20 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
'~#DESCRIPTION MANQUANTE#~ Drone',
|
||||
'~#DESCRIPTION MANQUANTE#~ Station de defense');
|
||||
}
|
||||
else {
|
||||
$ressourc = array('Métal','Cristal','Hydrogène','Energie');
|
||||
$casernen = array('Marine','Fusiller','Grenadier','T.C.A.O.','Sniper','Spartan','Médecin','Ingénieur','Soldat exo squellette');
|
||||
$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 MA5B.',
|
||||
//else {
|
||||
elseif ($race == 'humain') {
|
||||
$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.',
|
||||
'Les fusillers sont équipés de fusils d\'assaut avec zoom intégré. Plus puissants que les marines standards, ils peuvent rivaliser avec des escouades entières de grunts dirigées par des élites hauts gradés.',
|
||||
'Les grenadiers sont les spécialistes en explosifs du CSNU sur le terrain. Ils peuvent détruire les véhicules légers grâce à leurs grenades et leurs lances missiles.',
|
||||
'Les TCAO sont des soldats d\'assauts largués depuis l\'espace directement sur les champs de batailles grâce à des modules spéciaux. Ces soldats sont surentraînés et très chevronnés, risquant leur vie à chaque instant en raison des sauts orbitaux qui font atteindre une chaleur extrême dans le module.',
|
||||
'Les snipers sont dotés de fusils de précision SA 2M capable de descendre un covenant à plusieurs centaines de mètres grâce à son zoom maximum de 10x. Grande portée de tir mais à courte portée, ils sont inutiles.',
|
||||
'Les snipers sont dotés de fusils de précision SA 2M capables de descendre des covenants à plusieurs centaines de mètres grâce à leur zoom maximum de 10x. Très efficasse à longue portée, ils deviennent inutiles au corps à corps.',
|
||||
'Les spartans sont les unités d\'infanterie militaires les plus évoluées militairement du CSNU mais également des Covenants. Ils sont équipés d\'une armure de type Mjolnir améliorant leurs capacités de combat, déjà exceptionnelles grâce à leur entraînement militaire depuis leur plus jeune âge, ainsi qu\'à leurs implants cybernétiques, les rendants d\'une grande efficacité inégalée au sein de l\'infanterie.',
|
||||
'Les médecins sont sur le champ de bataille pour aider les soldats blessés par des tirs lors des affrontements. Ils peuvent réduire le nombre de morts lorsqu\'ils sont bien utilisés et ainsi peut être changer l\'issue de la bataille.',
|
||||
'Les ingénieurs sont là pour réparer vos véhicules endommagés lors des affrontements. Ils peuvent réduire le nombre de vos pertes de véhicules lorsqu\'ils sont bien utilisés.',
|
||||
'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 squellette');
|
||||
$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');
|
||||
$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.',
|
||||
|
|
@ -179,7 +195,18 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
'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');
|
||||
$technolo = array('IA','Radar','Armement','Blindage','Maitrise de l\'énergie','Réacteur à combustion','Réacteur à fusion','Réacteur à fusion de type II','Médecine','Tactiques de combats','Spartan','Base de données');
|
||||
$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('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('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'),
|
||||
array('Tourelle légère M202 XP', 'Canon de défense automatique', 'Artillerie lourde de 440mm', 'Lance-missiles Archer', 'Batterie de missiles Anaconda', 'Silo de missiles Shiva', 'Canon à accélération magnétique'),
|
||||
array('Prototype Intercepteur Longsword', 'Prototype Bombardier Longsword', 'Corvette de classe Mako', 'Prototype de Frégate', 'Récupération', 'Prototype de Croiseur de classe Halcyon', 'Prototype de Croiseur de classe Marathon', 'Prototype de Destroyer', 'Prototype de Porte-vaisseaux', 'Prototype de Super Porte-Vaisseaux', 'Prototype de Vaisseau d\'exfiltration de classe Black Cat', 'Prototype de Super canon à accélération magnétique', 'Bunker souterrain', 'Bunker souterrain', 'Bunker souterrain'),
|
||||
array('Expansion niveau 1', 'Expansion niveau 2', 'Expansion niveau 3', 'Expansion niveau 4', 'Expansion niveau 5', 'Expansion niveau 6', 'Expansion niveau 7', 'Expansion niveau 8', 'Expansion niveau 9', 'Expansion niveau 10', 'Expansion niveau 11', 'Expansion niveau 12', 'Expansion niveau 13', 'Expansion niveau 14', 'Expansion niveau 15', 'Expansion niveau 16', 'Expansion niveau 17', 'Expansion niveau 18')
|
||||
);
|
||||
$technode = array( 'Le résultat absolu de l\'informatique. L\'IA ou Intelligence Artificielle est le résultat d\'années de travail acharné pour pouvoir en arriver à cette grande performance technique. Les IA sont des entités non biologiques dotées du pouvoir de la pensée. Développer cette technologie vous permettra non seulement de disposer d\'Intelligences Artificielles, mais de les rendre de plus en plus complexes, créatives et réactives.',
|
||||
'Ce système très ancien et usé par bien des militaires est utilisé pour la détection et l\'imagerie d\'objets faisant appel à des impulsions d\'ondes électromagnétiques à haute fréquence et sert à déterminer la position et la distance des vaisseaux. Pour chaque niveau, vous augmenterez la puissance de cette technologie et sa précision.',
|
||||
'Un soldat n\'est rien sans son arme, et qu\'est-ce qu\'un soldat démuni face aux assauts féroces adverses ? Cette technologie vous permettra de rechercher de nouveaux systèmes d\'armements afin de rendre vos outils de guerre plus précis et mortels.',
|
||||
|
|
@ -193,23 +220,29 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
'Ces formidables combattants constituent l\'élite de vos forces terrestres. Entraînés au maniement des armes, aux tactiques militaires et au combat de groupe depuis la naissance, ils sont pratiquement invincibles sur les champs de bataille face aux troupes covenantes. Les Spartans ont également subis plusieurs séries de modifications biologiques afin d\'améliorer leurs capacités physiques.',
|
||||
'Les bases de données du CSNU enregistrent des informations de jours en jours. Toutefois il arrive que celles-ci parviennent à saturation et ne peuvent ainsi traiter qu\'un nombre limité d\'informations. Afin de résoudre ce problème, il est possible d\'améliorer la capacité de vos unités de stockage afin de gérer plus d\'informations. Chaque évolution de cette technologie vous permet de rajouter une unité supplémentaire dans votre file d\'attente.');
|
||||
$technoli = array('IA4.jpg','radar7zr.jpg','arme.png','blindage.jpg','plasma4yl.jpg','reacteuracombustion.jpg','reacteurfusiontype1al5.jpg','reacteurfusiontype2nn6.jpg','medecin1.jpg','tactique.jpg','armuremc8ij.jpg','../humain_na.jpg');
|
||||
$nomvaisn = array('Cargos de classe Parabola','Cargos de classe Laden','Vaisseaux de colonisation de classe Odyssey','Drones d\'espionnage de classe Clarion','Recycleurs de classe Minotaur','C709 Longsword Interceptor','Frégate','Croiseurs de classe Halcyon','Croiseurs de classe Marathon','Cuirassé de classe Magellan','Station orbitale','Cuirassé de classe Trafalgar');
|
||||
$nomvaisi = array('csnucargoparabola2mc9.jpg','csnucargoladen2al8.jpg','colonisation.jpg','drone_clarion.jpg','recycl10.jpg','longsworduf9.jpg','frgatecopiegw1.jpg','halcyo15.jpg','qsu169.jpg','62685810.jpg','station.jpg','cuiras18.jpg');
|
||||
|
||||
$nomvaisn = array('Cargos de classe Parabola', 'Cargos de classe Laden', 'Vaisseau de colonisation de classe Odyssey','Recycleur','Intercepteur Longsword', 'Bombardier Longsword', 'Corvette de classe Mako', 'Frégate', 'Croiseur de classe Halcyon', 'Croiseur de classe Marathon', 'Destroyer', 'Porte-vaisseaux', 'Super Porte-Vaisseaux', 'Vaisseau d\'exfiltration de classe Black Cat');
|
||||
$nomvaisi = array('csnucargoparabola2mc9.jpg','csnucargoladen2al8.jpg','colonisation.jpg','../humain_na.jpg','longsworduf9.jpg','../humain_na.jpg','../humain_na.jpg','frgatecopiegw1.jpg','halcyo15.jpg','qsu169.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg');
|
||||
$nomvaisd = array( 'Ces cargos de taille conséquente peuvent transporter assez de ressources et de nourriture pour nourrir une petite ville. Ils sont rapides, très manœuvrables mais peu résistants, ce qui est en fait des proies faciles pour les chasseurs ennemis.',
|
||||
'Ces cargos de taille massive permettent le transport d\'une énorme quantité de ressources. Ils sont plus résistants que leurs homologues de classe Parabola, mais sont néanmoins les cibles prioritaires des chasseurs ennemis visant à faire le plus de pertes dans le camp adverse.',
|
||||
'Les vaisseaux de colonisation sont de vraies minis villes volantes ; ils contiennent la majeure partie des corps d\'états de votre planète mère afin d\'être le plus autonome lorsque que vous colonisez de nouvelles planètes.',
|
||||
'Drones extrêmement rapides et manœuvrables permettant la surveillance et l\'espionnage des planètes alentours avec un risque moins élevé de repérage qu\'avec un vaisseau furtif standard. Ils sont utilisés lors de l\'espionnage de planètes ennemies et sont très fragiles, si bien que lorsqu\'ils traversent un champ de débris, ils sont réduits en de vulgaires morceaux de métal.',
|
||||
'Les guerres sont de plus en plus nombreuses et les pertes de plus en plus grandes laissant à chaque fois des champs de débris immenses limitant les routes des voies commerciales. Des recycleurs ont donc été créés afin de déblayer ces zones et de vous faire profiter de ces ressources gratuites. Lors du voyage de retour, le recycleur transforme les débris pour vous les redonner sous forme de ressources primaires.',
|
||||
'Vaisseau orbital et atmosphérique lourd, apte au combat spatial, atmosphérique, et au bombardement lourd sur des positions stratégiques. Ces vaisseaux sont capable de bombarder une vaste position adverse, grâce à leurs bombes au Napalm, mais sont aussi capables de cibler précisément leurs cibles et de les détruire grâce à leurs nombreux missiles air-air air-sol.',
|
||||
'Cette classe de vaisseau est la plus répandue dans le CSNU. Ces vaisseaux sont très manœuvrables du fait de leur petite taille, mais sont aussi très faibles, à cause de leur blindage et de leur armement moindre. Ces vaisseaux sont peu coûteux mais également peu efficaces et sont surtout utilisés pour des patrouilles. Ils forment les éléments principaux des différentes flottes du CSNU. ',
|
||||
'Ces croiseurs sont des vaisseaux d\'attaque, dépassés technologiquement, très peu répandus, très coûteux mais résistants : leur architecture interne leur permet de résister à de nombreux tirs de plasma. Cette architecture complexe à produire et à maintenir en état, en font des vaisseaux extrêmement rares et chers. Ils ont été très récemment remis à neuf et améliorés, avec un tout nouvel armement.',
|
||||
'Ces grands vaisseaux (2 fois et demie la longueur d\'une frégate), sont des descendants de la lignée des croiseurs Halcyon. Ces vaisseaux ont une très grande puissance de feu (1 CAM lourd), un fort blindage (5 mètres 50 de Titane-A), et sont très rapides. Ils sont assez peu communs, mais restent des vaisseaux d\'attaque très redoutables : ils peuvent encaisser de nombreux tirs de plasma avant de succomber.',
|
||||
'Ces immenses vaisseaux sont capables de transporter bon nombre de Longswords, d\'Albatross, et tout autres types d\'unités. Ces vaisseaux leurs permettent de se défendre contre une éventuelle attaque de chasseurs ennemis, mais sont également très lourdement armés. Ils sont usités lors d\'attaques massives de planètes nécessitant un fort appui aérien et une très grosse puissance de feu. ',
|
||||
'Les station orbitales humaines sont basées sur un même modèle : de multiples DCA légères et lourdes pour les chasseurs, des missiles ARCHERS et un CAM standard capable de pénétrer la plupart des boucliers stellaires. Cette base orbitale est très bien équipée et est considérée comme la défense principale des planètes du CSNU.',
|
||||
'Ces vaisseaux sont beaucoup plus chers du fait de leur meilleur armement, blindage et importante capacité de transport. Ces vaisseaux sont très peu vus sur le terrain, leur rôle principal est de déployer des Longswords afin de fournir aux vaisseaux alliés un appui orbital. Ils font partis des plus puissants vaisseaux du CSNU. Ils sont capables de transporter bon nombre d\'unités terrestres et aériennes.');
|
||||
$nomvaisa = array('cargos de classe Parabola','cargos de classe Laden','vaisseau(x) de colonisation de classe Odyssey','drone(s) d\'espionnage de classe Clarion','recycleur(s) de classe Minotaur','C709 Longsword Interceptor','Frégates','croiseur(s) de classe Halcyon','croiseur(s) de classe Marathon','porte vaisseaux','station(s) orbitale','super(s) porte-vaisseaux');
|
||||
$nomterra = array('sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT','mitrailleuse(s) automatique M247 GP','DCA légère(s)','DCA lourde(s)','canon(s) Gauss','lanceur(s) de missiles');
|
||||
$nomterrn = array('Sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT','Mitrailleuse automatique M247 GP','DCA légère','DCA lourde','Canon Gauss','Lanceur de missiles');
|
||||
'~#DESCRIPTION MANQUANTE#~',
|
||||
'~#DESCRIPTION MANQUANTE#~',
|
||||
'~#DESCRIPTION MANQUANTE#~',
|
||||
'~#DESCRIPTION MANQUANTE#~',
|
||||
'~#DESCRIPTION MANQUANTE#~',
|
||||
'~#DESCRIPTION MANQUANTE#~',
|
||||
'~#DESCRIPTION MANQUANTE#~',
|
||||
'~#DESCRIPTION MANQUANTE#~',
|
||||
'~#DESCRIPTION MANQUANTE#~',
|
||||
'~#DESCRIPTION MANQUANTE#~',
|
||||
'~#DESCRIPTION MANQUANTE#~',
|
||||
'~#DESCRIPTION MANQUANTE#~');
|
||||
$nomvaisa = array('cargos de classe Parabola','cargos de classe Laden','vaisseau(x) de colonisation de classe Odyssey','recycleur(s)','intercepteur(s) Longsword','bombardier(s) Longsword','corvette(s) de classe Mako','Frégates','croiseur(s) de classe Halcyon','croiseur(s) de classe Marathon','destroyer(s)','porte-vaisseaux','supers porte-vaisseaux','vaisseau(x) d\'exfiltration de classe Black Cat');
|
||||
|
||||
$nomterra = array( 'sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT',
|
||||
'tourelle(s) légère(s) M202 XP','lance(s)-missiles Archer','canon(s) de défense automatique(s)','batterie(s) de missiles Anaconda','artillerie(s) lourde(s) de 440mm', 'silo(s) de missiles Shiva', 'canon(s) à accélération magnétique', 'super(s) canon à accélération magnétique');
|
||||
$nomterrn = array( 'Sparrowhawk','077-TC Pelican','C703 Shortsword Bomber','SHD Albatros','M12 LRV Warthogs','M12G1 LAAV Warthogs','M12A1 LAAV Warthogs','M808B Scorpions MBT',
|
||||
'Tourelle légère M202 XP','Lance-missiles Archer','Canon de défense automatique','Batterie de missiles Anaconda','Artillerie lourde de 440mm', 'Silo de missiles Shiva', 'Canon à accélération magnétique', 'Super canon à accélération magnétique');
|
||||
$nomterde = array( 'Véhicule à propulsion verticale permettant des attaques extrêmement rapides et destructrices grâce à ses six tubes lance-missiles, ses deux mitrailleuses légères, et sa mitrailleuse lourde frontale. Ces vaisseaux d\'assaut rapide sont de véritables broyeurs de tôle grâce à leurs 6 tubes lance-missiles et sont capables de détruire des véhicules et des positions fortement blindées.',
|
||||
'Véhicule aérien de transport léger permettant le transport rapide de troupes à des endroits stratégiques tel un warthog ou un scorpion. Ils sont la base des renforts terrestres et permettent l\'acheminement de troupes et de munitions rapidement.',
|
||||
'Vaisseau suborbital très rapide apte tant au combat aérien rapproché qu\'au bombardement ciblé. Ces bombardiers ont un pointeur laser qui leur permet de viser au mieux les cibles ennemies, qu\'elles soient au sol ou aériennes. Ils sont néanmoins capables de combattre en combat aérien rapproché grâce à leurs missiles thermo guidés et sont utilisés lors de bombardements de cibles mineures.',
|
||||
|
|
@ -218,11 +251,20 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
'Véhicule léger équipé d\'un canon à accélération magnétique (CAM), très efficace contre du personnel, des véhicules moyennement blindés, ou bien contre des véhicules aériens légers. Les Warthog M12G1 sont très répandus et surtout utilisés lors d\'offensives sur des cibles disposant d\'un appui aérien ou terrestre léger.',
|
||||
'Véhicule léger, armé d\'un lance-missiles anti-véhicule permettant des assauts rapides contre des véhicules blindés ou contre des positions fortifiées. Ils sont surtout utilisés en cas d\'attaques de postes avancés.',
|
||||
'Tank blindé anti-véhicules. Permet l\'attaque de cibles fortifiées grâce à ses balles perforantes de gros calibre. Ces tanks sont utilisés lors d\'assauts massifs sur des bases fortifiées et vitales à l\'ennemi.',
|
||||
'La mitrailleuse M247 est une arme de calibre moyen envoyant des balles de calibre 30 à une cadence de tir de 6 balles par seconde. Généralement positionnée dans des endroits fixes, cette tourelle, efficace contre l\'infanterie et les véhicules légers de petite taille est de précision moyenne suffisante pour éliminer une menace de quelques soldats covenants.',
|
||||
'Les DCA légères sont des canons anti-aérien de puissance moyenne mais de cadence de tir et de calibre de munitions à tête explosive élevée permettant de détruire la plupart des chasseurs légers avec aisance. Ce modèle est équipé d\'un emplacement spécial lui permettant de tirer également sur des cibles au sol.',
|
||||
'Les DCA lourdes sont quasi-similaires aux légères mais possèdent tout de même une différence au niveau du calibre des balles qui, plus élevé avec une tête explosif supérieure est comparable à une explosion de mine lotus. Il a en contre partie une capacité de tir plus limitée question cadence et une quantité de munitions moindre dans chaque chargeur.',
|
||||
'Le canon gauss est l\'équivalent du Super CAM mais en version miniature tirant des projectiles à haute densité et à grande vitesse sur ses cibles. Il est capable, en outre, de détruire des véhicules à blindage lourd tel des wraith\'s covenants, véritables chars d\'assaut à longue portée. Malheureusement, il est moins efficace contre l\'infanterie dû à sa cadence de tir plutôt faible et sa précision moindre.',
|
||||
'Les lance-missiles du CSNU sont équipés de missiles balistiques hautement explosifs capables de réduire aisément en miettes les chars covenants ou les chasseurs Séraphins. Ce lance-missiles, une fois ses salves tirées, nécessite plusieures minutes de réarmement pour être de nouveau opérationnel.');
|
||||
$nomterri = array('csnusparrowhawkkp4.jpg','pelican.jpg','csnushortswordad3.jpg','albatross.jpg','warthog-vrl.jpg','M12G1_LAAV_Warthog.jpg','M12A1_LAAV_Warthog.jpg','scorpionN.jpg','tourelle_fixe.jpg','dca_legere.jpg','dca_lourde.jpg','tourelle_gauss.jpg','csnulancemissileol5.jpg');
|
||||
|
||||
'~#DESCRIPTION MANQUANTE#~ ',
|
||||
'~#DESCRIPTION MANQUANTE#~ ',
|
||||
'~#DESCRIPTION MANQUANTE#~ ',
|
||||
'~#DESCRIPTION MANQUANTE#~ ',
|
||||
'~#DESCRIPTION MANQUANTE#~ ',
|
||||
'~#DESCRIPTION MANQUANTE#~ ',
|
||||
'~#DESCRIPTION MANQUANTE#~ ',
|
||||
'~#DESCRIPTION MANQUANTE#~ ');
|
||||
$nomterri = array('csnusparrowhawkkp4.jpg','pelican.jpg','csnushortswordad3.jpg','albatross.jpg','warthog-vrl.jpg','M12G1_LAAV_Warthog.jpg','M12A1_LAAV_Warthog.jpg','scorpionN.jpg',
|
||||
'../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg','../humain_na.jpg');
|
||||
}
|
||||
else {
|
||||
$template->assign("race", "humain");
|
||||
erreur('Erreur dans le fichier de race, rapporter le bug. Veuillez indiquer dans le rapport de bug l\'adresse de la page sur laquelle vous vous trouver.');
|
||||
}
|
||||
?>
|
||||
|
|
@ -8,8 +8,8 @@ if ($config['db_type'] == "postgresql") {
|
|||
$table_alliances_grade = '"public"."'.$config['db_prefix'].'alliances_grade"';
|
||||
$table_bourse = '"public"."'.$config['db_prefix'].'bourse"';
|
||||
$table_bug = '"public"."'.$config['db_prefix'].'bug"';
|
||||
$table_classement = '"public"."'.$config['db_prefix'].'classement"';
|
||||
$table_classement_alliances = '"public"."'.$config['db_prefix'].'classement_alliances"';
|
||||
$table_classement = '"public"."'.$config['db_prefix'].'classement'.(floor((time()-$config['time_maintenance'])/86400)%2).'"';
|
||||
$table_classement_alliances = '"public"."'.$config['db_prefix'].'classement_alliances'.(floor((time()-$config['time_maintenance'])/86400)%2).'"';
|
||||
$table_flottes = '"public"."'.$config['db_prefix'].'flottes"';
|
||||
$table_flottes_combats = '"public"."'.$config['db_prefix'].'flottes_combats"';
|
||||
$table_infoshead = '"public"."'.$config['db_prefix'].'infoshead"';
|
||||
|
|
@ -35,7 +35,8 @@ elseif ($config['db_type'] == "mysql") {
|
|||
$table_alliances_grade = $config['db_prefix'].'alliances_grade';
|
||||
$table_bourse = $config['db_prefix'].'bourse';
|
||||
$table_bug = $config['db_prefix'].'bug';
|
||||
$table_classement = $config['db_prefix'].'classement';
|
||||
$table_classement = $config['db_prefix'].'classement'.(floor((time()-$config['time_maintenance'])/86400)%2);
|
||||
$table_classement_alliances = $config['db_prefix'].'classement_alliances'.(floor((time()-$config['time_maintenance'])/86400)%2);
|
||||
$table_flottes = $config['db_prefix'].'flottes';
|
||||
$table_flottes_combats = $config['db_prefix'].'flottes_combats';
|
||||
$table_infoshead = $config['db_prefix'].'infoshead';
|
||||
|
|
|
|||
518
game/vars.php
518
game/vars.php
|
|
@ -1,6 +1,6 @@
|
|||
<?php //vars.php : contient toutes les valeurs pour construire chaque batiments, unités ou technologies
|
||||
if (!isset($technolo)) {
|
||||
$race = 'none';
|
||||
if (empty($race)) $race = $sess->values['race'];
|
||||
include(_FCORE."../game/noms.php");
|
||||
}
|
||||
$nanite = 0;
|
||||
|
|
@ -9,97 +9,150 @@ $nanite = 0;
|
|||
* Défenses
|
||||
*/
|
||||
//Attaque
|
||||
$defense_at = array(10,35,70,250,50);
|
||||
$defense_at = array(200,800,1500,500,4500,15000,10000,25000);
|
||||
//Défense (bouclier)
|
||||
$defense_bc = array(0,15,30,35,100);
|
||||
$defense_bc = array(100,300,600,400,1000,4000,10000,20000);
|
||||
//Coque (pv)
|
||||
$defense_pv = array(15,45,45,240,100);
|
||||
$defense_pv = array(1000,3000,6000,1800,4000,1000,15000,25000);
|
||||
|
||||
//Débris de métal
|
||||
$defense_md = array(300,300,300,300,300);
|
||||
$defense_md = array(300,300,300,300,300,300,300,300);
|
||||
//Débris de cristal
|
||||
$defense_cd = array(300,300,300,300,300);
|
||||
$defense_cd = array(300,300,300,300,300,300,300,300);
|
||||
|
||||
//Rapide fire (nombre d'attaque par phase envers un vaisseau)
|
||||
$defense_rf = array( array(1,1,1,1,1,1,1,1,1,1,1,1),
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1),
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1),
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1),
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1));
|
||||
$defense_rf = array(
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1),
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1),
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1),
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1),
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1),
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1),
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1),
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1)
|
||||
);
|
||||
|
||||
/*
|
||||
* Vaisseaux
|
||||
*/
|
||||
//Nombre maximal de ressources embarqué
|
||||
$nomvais_rs = array(5000,25000,7500,10,20000,50,300,4000,3000,10000,0,30000);
|
||||
$nomvais_rs = array(10000,50000,25000,25000,100,50,200,400,800,1000,1500,50000,100000,500);
|
||||
|
||||
//Coefficient vitesse courte distance : temps pour parcourir un système
|
||||
$nomvais_dc = array(50,50,50,100,50,50,50,50,50,50,50,50);
|
||||
//Temps de préparation courte distance : temps de préparation à compter avant tout déplacement
|
||||
$nomvais_pdc = array(900,900,900,35,900,900,900,900,900,900,900,900);
|
||||
//Coefficient vitesse longue distance : temps pour parcourir un système
|
||||
$nomvais_dl = array(0,54,54,0,54,0,54,54,54,54,0,54);
|
||||
//Temps de préparation longue distance
|
||||
$nomvais_pdl = array(0,0,0,0,0,0,0,0,0,0,0,0);
|
||||
//Coefficient vitesse
|
||||
$nomvais_vitesseP = array(5,5,6,5,10,8,5,7,6,5,4,2,1,6);
|
||||
//Temps de préparation
|
||||
$nomvais_vitesseS = array(5,5,6,5,4,4,5,7,6,5,4,3,2,10);
|
||||
//Temps de chauffe
|
||||
$nomvais_cdl = array(0,20,20,0,20,0,0,20,20,20,0,20);
|
||||
$nomvais_vitesseG = array(5,5,6,5,1,1,5,7,7,7,6,4,3,10);
|
||||
|
||||
//Attaque
|
||||
$nomvais_at = array(10,5,10,0.5,20,30,70,400,1600,2400,4500,4000);
|
||||
$nomvais_at = array(50,50,50,50,150,200,400,900,1500,3500,6000,7000,10000,100);
|
||||
//Défense (bouclier)
|
||||
$nomvais_bc = array(0,40,500,1,1200,0,10,70,1000,2400,4000,3600);
|
||||
$nomvais_bc = array(0,0,0,50,0,200,500,1250,2500,6000,5000,8000,10000,800);
|
||||
//Coque (pv)
|
||||
$nomvais_pv = array(40,80,400,1,300,40,90,450,1500,2000,5000,5000);
|
||||
$nomvais_pv = array(1000,1500,1000,1000,1000,1000,2500,5500,9000,15000,25000,35000,50000,3000);
|
||||
//Débris de métal
|
||||
$nomvais_md = array(300,300,300,300,300,300,300,300,300,300,300,36000);
|
||||
//Débris de cristal
|
||||
$nomvais_cd = array(300,300,300,300,300,300,300,300,300,300,300,24000);
|
||||
//Rapide fire (nombre d'attaque par phase envers un vaisseau)
|
||||
$nomvais_rf = array( array(1,1,1,1,1,1,1,1,1,1,1,1,1), //Cargos petit
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1), //Cargos grand
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1), //Vaisseaux de colonisation
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1), //Espionnage
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1), //Recycleurs
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1), //Longsword/Seraph
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1), //Frégate
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1), //Croiseurs de classe Halcyon
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1), //Croiseurs de classe Marathon
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1), //Porte vaisseaux
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1), //Station orbitale
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1) //Super porte-vaisseaux
|
||||
$nomvais_rf = array( array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Cargos petit
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Cargos grand
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Vaisseaux de colonisation
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Espionnage
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Recycleurs
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Longsword/Seraph
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Frégate
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Croiseurs de classe Halcyon
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Croiseurs de classe Marathon
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Porte vaisseaux
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Station orbitale
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Super porte-vaisseaux
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1), //Super porte-vaisseaux
|
||||
array(1,1,1,1,1,1,1,1,1,1,1,1,1,1) //Super porte-vaisseaux
|
||||
);
|
||||
|
||||
$alli_batimentVAR = array('centre', 'port', 'forge', 'urgence', 'propagande', 'economie');
|
||||
$alli_batimentLIMIT = array(5, 5, 5, 5, 5, 5);
|
||||
$alli_batimentCALC = array(
|
||||
array(
|
||||
'$a = ceil(pow(1.5,$n)*68);',
|
||||
'$b = ceil(pow(1.5,$n)*17);',
|
||||
'$c = 0;',
|
||||
'$sec = (ceil(1.02*(3/(1+$planete->batiments[11]))*pow(1.5,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(1.6,$n)*53);',
|
||||
'$b = ceil(pow(1.6,$n)*27);',
|
||||
'$c = 0;',
|
||||
'$sec = (ceil(1.2*(3/(1+$planete->batiments[11]))*pow(1.55,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(1.5,$n)*242);',
|
||||
'$b = ceil(pow(1.5,$n)*72);',
|
||||
'$c = 0;',
|
||||
'$sec = (ceil(1.5*(3/(1+$planete->batiments[11]))*pow(1.624,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(1.5,$n)*92);',
|
||||
'$b = ceil(pow(1.5,$n)*37);',
|
||||
'$c = 0;',
|
||||
'$sec = (ceil(1.36*(3/(1+$planete->batiments[11]))*pow(1.597,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(1.73,$n)*800);',
|
||||
'$b = ceil(pow(1.73,$n)*420);',
|
||||
'$c = ceil(pow(1.68,$n)*285);',
|
||||
'$sec = (ceil(1.8*(3/(1+$planete->batiments[11]))*pow(1.7,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(2,$planete->batiments[5])*750);',
|
||||
'$b = ceil(pow(2,$planete->batiments[5])*500);',
|
||||
'$c = 0;',
|
||||
'$sec = ceil((pow(2,$planete->batiments[5])*720)/(pow(1.23,$planete->batiments[11])+0.0025*$planete->casernes[7]));'
|
||||
)
|
||||
);
|
||||
$alli_batimentTECH = array(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
array(
|
||||
array($batiment[3], 'centrale_s', 12)
|
||||
),
|
||||
0
|
||||
);
|
||||
$batimentVAR = array('mine_m','mine_c','mine_h','centrale_s','centrale_f','radar','labo','chantier_terrestre','chantier_spatial','caserne','silo','centre_info');
|
||||
$batimentCALC = array(
|
||||
array(
|
||||
'$a = ceil(pow(1.5,$n)*68);',
|
||||
'$b = ceil(pow(1.5,$n)*17);',
|
||||
'$c = 0;',
|
||||
'$sec = (ceil(1.02*(1/(1+$nanite))*(3/(1+$planete->batiments[11]))*pow(1.5,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
'$sec = (ceil(1.02*(3/(1+$planete->batiments[11]))*pow(1.5,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(1.6,$n)*53);',
|
||||
'$b = ceil(pow(1.6,$n)*27);',
|
||||
'$c = 0;',
|
||||
'$sec = (ceil(1.2*(1/(1+$nanite))*(3/(1+$planete->batiments[11]))*pow(1.55,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
'$sec = (ceil(1.2*(3/(1+$planete->batiments[11]))*pow(1.55,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(1.5,$n)*242);',
|
||||
'$b = ceil(pow(1.5,$n)*72);',
|
||||
'$c = 0;',
|
||||
'$sec = (ceil(1.5*(1/(1+$nanite))*(3/(1+$planete->batiments[11]))*pow(1.624,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
'$sec = (ceil(1.5*(3/(1+$planete->batiments[11]))*pow(1.624,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(1.5,$n)*92);',
|
||||
'$b = ceil(pow(1.5,$n)*37);',
|
||||
'$c = 0;',
|
||||
'$sec = (ceil(1.36*(1/(1+$nanite))*(3/(1+$planete->batiments[11]))*pow(1.597,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
'$sec = (ceil(1.36*(3/(1+$planete->batiments[11]))*pow(1.597,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(1.73,$n)*800);',
|
||||
'$b = ceil(pow(1.73,$n)*420);',
|
||||
'$c = ceil(pow(1.68,$n)*285);',
|
||||
'$sec = (ceil(1.8*(1/(1+$nanite))*(3/(1+$planete->batiments[11]))*pow(1.7,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
'$sec = (ceil(1.8*(3/(1+$planete->batiments[11]))*pow(1.7,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(2,$planete->batiments[5])*750);',
|
||||
|
|
@ -150,24 +203,25 @@ $batimentTECH = array(
|
|||
0,
|
||||
0,
|
||||
array(
|
||||
array($technolo[4], 'energie_t', 5),
|
||||
array($batiment[3], 'centrale_s', 12)
|
||||
),
|
||||
0,
|
||||
0,
|
||||
array(
|
||||
array($technolo[1], 'detection', 1)
|
||||
array($technolo[2][3], 'techno_inge', 8589934592)
|
||||
),
|
||||
array(
|
||||
array($technolo[2][4], 'techno_inge', 17179869184)
|
||||
),
|
||||
0,
|
||||
0,
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 2)
|
||||
),
|
||||
0,
|
||||
0,
|
||||
array(
|
||||
array($technolo[0], 'informatique', 2)
|
||||
array($technolo[1][12], 'techno_inge', 4096)
|
||||
)
|
||||
);
|
||||
|
||||
$technoloVAR = array('informatique','detection','armement','blindage','energie_t','reacteur','reacteur_f','reacteur_ff','medecine','tactique','spartan','prodfile');
|
||||
//$technoloVAR = array('techno_indu','techno_inge','techno_poli','techno_arme','techno_defe','techno_proj','techno_expansionnsion');
|
||||
$technoloCALC = array(
|
||||
array(
|
||||
'$a = 0;',
|
||||
|
|
@ -247,8 +301,7 @@ $technoloTECH = array(
|
|||
array($batiment[6], 'labo', 1)
|
||||
),
|
||||
array(
|
||||
array($batiment[6],'labo', 2),
|
||||
array($technolo[0], 'informatique', 2)
|
||||
array($batiment[6],'labo', 2)
|
||||
),
|
||||
array(
|
||||
array($batiment[6], 'labo', 5)
|
||||
|
|
@ -263,14 +316,10 @@ $technoloTECH = array(
|
|||
array($batiment[6], 'labo', 2)
|
||||
),
|
||||
array(
|
||||
array($batiment[6], 'labo', 4),
|
||||
array($technolo[4], 'energie_t', 2),
|
||||
array($technolo[5], 'reacteur', 4)
|
||||
array($batiment[6], 'labo', 4)
|
||||
),
|
||||
array(
|
||||
array($batiment[6], 'labo', 6),
|
||||
array($technolo[4], 'energie_t', 5),
|
||||
array($technolo[6], 'reacteur_f', 4)
|
||||
array($batiment[6], 'labo', 6)
|
||||
),
|
||||
array(
|
||||
array($batiment[6], 'labo', 1)
|
||||
|
|
@ -279,13 +328,10 @@ $technoloTECH = array(
|
|||
array($batiment[6], 'labo', 3)
|
||||
),
|
||||
array(
|
||||
array($batiment[6], 'labo', 8),
|
||||
array($technolo[8], 'medecine', 5),
|
||||
array($technolo[0], 'informatique', 8)
|
||||
array($batiment[6], 'labo', 8)
|
||||
),
|
||||
array(
|
||||
array($batiment[6], 'labo', 10),
|
||||
array($technolo[0], 'informatique', 8)
|
||||
array($batiment[6], 'labo', 10)
|
||||
)
|
||||
);
|
||||
$casernenVAR = array('soldat1','soldat2','soldat3','soldat4','sniper','spartan','medecin','ingenieur','soldat_lourd');
|
||||
|
|
@ -354,38 +400,28 @@ $casernenTECH = array(
|
|||
array($batiment[9], 'caserne', 2)
|
||||
),
|
||||
array(
|
||||
array($batiment[9], 'caserne', 3),
|
||||
array($technolo[2], 'armement', 2)
|
||||
array($batiment[9], 'caserne', 3)
|
||||
),
|
||||
array(
|
||||
array($batiment[9], 'caserne', 5),
|
||||
array($technolo[2], 'armement', 3),
|
||||
array($technolo[9], 'tactique', 2)
|
||||
array($batiment[9], 'caserne', 5)
|
||||
),
|
||||
array(
|
||||
array($batiment[9], 'caserne', 3),
|
||||
array($technolo[2], 'armement', 1)
|
||||
array($batiment[9], 'caserne', 3)
|
||||
),
|
||||
array(
|
||||
array($batiment[9], 'caserne', 10),
|
||||
array($technolo[2], 'armement', 5),
|
||||
array($technolo[3], 'blindage', 5),
|
||||
array($technolo[10], 'spartan', 3)
|
||||
),
|
||||
array(
|
||||
array($batiment[9], 'caserne', 2),
|
||||
array($technolo[8], 'medecine', 2)
|
||||
array($batiment[9], 'caserne', 10)
|
||||
),
|
||||
array(
|
||||
array($batiment[9], 'caserne', 2)
|
||||
),
|
||||
array(
|
||||
array($batiment[9], 'caserne', 5),
|
||||
array($technolo[2], 'armement', 4),
|
||||
array($technolo[3], 'blindage', 2)
|
||||
array($batiment[9], 'caserne', 2)
|
||||
),
|
||||
array(
|
||||
array($batiment[9], 'caserne', 5)
|
||||
)
|
||||
);
|
||||
$nomterrnVAR = array('vais_0','vais_1','vais_2','vais_3','vcl_1','vcl_2','vcl_3','vcl_4','def_1','def_2','def_3','def_4','def_5');
|
||||
$nomterrnVAR = array('vais_0','vais_1','vais_2','vais_3','vcl_1','vcl_2','vcl_3','vcl_4','def_1','def_2','def_3','def_4','def_5','def_6','def_7','def_8');
|
||||
$nomterrnCALC = array(
|
||||
array(
|
||||
500,
|
||||
|
|
@ -471,6 +507,27 @@ $nomterrnCALC = array(
|
|||
'$sec = ceil(3960/pow(1.25,($planete->batiments[7]-7)));',
|
||||
1
|
||||
),
|
||||
array(
|
||||
15000,
|
||||
9500,
|
||||
1500,
|
||||
'$sec = ceil(3960/pow(1.25,($planete->batiments[7]-9)));',
|
||||
1
|
||||
),
|
||||
array(
|
||||
15000,
|
||||
9500,
|
||||
1500,
|
||||
'$sec = ceil(3960/pow(1.25,($planete->batiments[7]-9)));',
|
||||
1
|
||||
),
|
||||
array(
|
||||
15000,
|
||||
9500,
|
||||
1500,
|
||||
'$sec = ceil(3960/pow(1.25,($planete->batiments[7]-9)));',
|
||||
1
|
||||
),
|
||||
array(
|
||||
15000,
|
||||
9500,
|
||||
|
|
@ -484,16 +541,13 @@ $nomterrnTECH = array(
|
|||
array($batiment[7], 'chantier_terrestre', 1)
|
||||
),
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 3),
|
||||
array($technolo[2], 'armement', 1)
|
||||
array($batiment[7], 'chantier_terrestre', 3)
|
||||
),
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 4),
|
||||
array($technolo[5], 'reacteur', 1)
|
||||
array($batiment[7], 'chantier_terrestre', 4)
|
||||
),
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 6),
|
||||
array($technolo[5], 'reacteur', 3)
|
||||
array($batiment[7], 'chantier_terrestre', 6)
|
||||
),
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 1)
|
||||
|
|
@ -502,37 +556,48 @@ $nomterrnTECH = array(
|
|||
array($batiment[7], 'chantier_terrestre', 2)
|
||||
),
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 3),
|
||||
array($technolo[2], 'armement', 1)
|
||||
array($batiment[7], 'chantier_terrestre', 3)
|
||||
),
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 5),
|
||||
array($technolo[2], 'armement', 2),
|
||||
array($technolo[3], 'blindage', 2)
|
||||
array($batiment[7], 'chantier_terrestre', 5)
|
||||
),
|
||||
//Défenses
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 1)
|
||||
array($batiment[7], 'chantier_terrestre', 1),
|
||||
array($technolo[6][0], 'techno_defe2', 1)
|
||||
),
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 3),
|
||||
array($technolo[4], 'energie_t', 2)
|
||||
array($technolo[6][3], 'techno_defe2', 8)
|
||||
),
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 4),
|
||||
array($technolo[2], 'armement', 1)
|
||||
array($technolo[6][1], 'techno_defe2', 2)
|
||||
),
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 4),
|
||||
array($technolo[2], 'armement', 3),
|
||||
array($technolo[4], 'energie_t', 3)
|
||||
array($technolo[6][4], 'techno_defe2', 16)
|
||||
),
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 8),
|
||||
array($technolo[2], 'armement', 5),
|
||||
array($technolo[0], 'informatique', 3)
|
||||
array($technolo[6][2], 'techno_defe2', 4)
|
||||
),
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 8),
|
||||
array($technolo[6][5], 'techno_defe2', 32)
|
||||
),
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 8),
|
||||
array($technolo[6][6], 'techno_defe2', 64)
|
||||
),
|
||||
array(
|
||||
array($batiment[7], 'chantier_terrestre', 10),
|
||||
array($technolo[7][11], 'techno_proj', 2048)
|
||||
)
|
||||
);
|
||||
$nomvaisnVAR = array('vaisseau_1','vaisseau_2','vaisseau_3','vaisseau_4','vaisseau_5','vaisseau_6','vaisseau_7','vaisseau_8','vaisseau_9','vaisseau_10','vaisseau_11','vaisseau_12');
|
||||
$nomvaisnVAR = array('vaisseau_1','vaisseau_2','vaisseau_3','vaisseau_4','vaisseau_5','vaisseau_6','vaisseau_7','vaisseau_8','vaisseau_9','vaisseau_10','vaisseau_11','vaisseau_12','vaisseau_13','vaisseau_14');
|
||||
//Type de réacteur : 0 : Réacteur à combustion, 1 : Réacteur à fusion, 2 : Réacteur à fusion de type II
|
||||
$nomvaisnREA = array(0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2);
|
||||
$nomvaisnCALC = array(
|
||||
array(
|
||||
1000,
|
||||
|
|
@ -546,6 +611,18 @@ $nomvaisnCALC = array(
|
|||
0,
|
||||
'$sec = ceil(6300/pow(1.25,($planete->batiments[8]-5)));'
|
||||
),
|
||||
array(
|
||||
4000,
|
||||
3000,
|
||||
0,
|
||||
'$sec = ceil(6300/pow(1.25,($planete->batiments[8]-5)));'
|
||||
),
|
||||
array(
|
||||
9000,
|
||||
9000,
|
||||
1000,
|
||||
'$sec = ceil(8280/pow(1.25,($planete->batiments[8]-5)));'
|
||||
),
|
||||
array(
|
||||
9000,
|
||||
9000,
|
||||
|
|
@ -610,65 +687,252 @@ $nomvaisnCALC = array(
|
|||
$nomvaisnTECH = array(
|
||||
array(
|
||||
array($batiment[8], 'chantier_spatial', 1),
|
||||
array($technolo[5], 'reacteur', 4)
|
||||
array($technolo[0][3], 'techno_indu', 8)
|
||||
),
|
||||
array(
|
||||
array($batiment[8], 'chantier_spatial', 5),
|
||||
array($technolo[6], 'reacteur_f', 2)
|
||||
array($technolo[0][3], 'techno_indu', 8),
|
||||
array($technolo[1][6], 'techno_inge', 64)
|
||||
),
|
||||
array(
|
||||
array($batiment[8], 'chantier_spatial', 5),
|
||||
array($technolo[7], 'reacteur_ff', 1)
|
||||
array($technolo[8][0], 'techno_expansion', 1)
|
||||
),
|
||||
array(
|
||||
array($batiment[8], 'chantier_spatial', 5),
|
||||
array($technolo[7][4], 'techno_proj', 16)
|
||||
),
|
||||
array(
|
||||
array($batiment[8], 'chantier_spatial', 5),
|
||||
array($technolo[7][0], 'techno_proj', 1)
|
||||
),
|
||||
array(
|
||||
array($batiment[8], 'chantier_spatial', 3),
|
||||
array($technolo[5], 'reacteur', 5),
|
||||
array($technolo[1], 'detection', 2)
|
||||
array($technolo[7][1], 'techno_proj', 2)
|
||||
),
|
||||
array(
|
||||
array($batiment[8], 'chantier_spatial', 5),
|
||||
array($technolo[6], 'reacteur_f', 5),
|
||||
array($technolo[3], 'blindage', 2)
|
||||
array($technolo[7][2], 'techno_proj', 4)
|
||||
),
|
||||
array(
|
||||
array($batiment[8], 'chantier_spatial', 1),
|
||||
array($technolo[5], 'reacteur', 4)
|
||||
array($technolo[7][3], 'techno_proj', 8)
|
||||
),
|
||||
array(
|
||||
array($batiment[8], 'chantier_spatial', 3),
|
||||
array($technolo[6], 'reacteur_f', 3),
|
||||
array($technolo[2], 'armement', 1)
|
||||
array($technolo[7][5], 'techno_proj', 32)
|
||||
),
|
||||
array(
|
||||
array($batiment[8], 'chantier_spatial', 6),
|
||||
array($technolo[7], 'reacteur_ff', 2),
|
||||
array($technolo[2], 'armement', 3),
|
||||
array($technolo[3], 'blindage', 4)
|
||||
array($technolo[7][6], 'techno_proj', 64)
|
||||
),
|
||||
array(
|
||||
array($batiment[8], 'chantier_spatial', 6),
|
||||
array($technolo[7], 'reacteur_ff', 3),
|
||||
array($technolo[2], 'armement', 4),
|
||||
array($technolo[3], 'blindage', 4)
|
||||
array($technolo[7][7], 'techno_proj', 128)
|
||||
),
|
||||
array(
|
||||
array($batiment[8], 'chantier_spatial', 8),
|
||||
array($technolo[7], 'reacteur_ff', 5),
|
||||
array($technolo[2], 'armement', 6),
|
||||
array($technolo[3], 'blindage', 6)
|
||||
array($technolo[7][8], 'techno_proj', 256)
|
||||
),
|
||||
array(
|
||||
array($batiment[8], 'chantier_spatial', 12),
|
||||
array($technolo[7], 'reacteur_ff', 10),
|
||||
array($technolo[2], 'armement', 12),
|
||||
array($technolo[3], 'blindage', 12)
|
||||
array($batiment[8], 'chantier_spatial', 10),
|
||||
array($technolo[7][9], 'techno_proj', 512)
|
||||
),
|
||||
array(
|
||||
array($batiment[8], 'chantier_spatial', 12),
|
||||
array($technolo[7], 'reacteur_ff', 10),
|
||||
array($technolo[2], 'armement', 12),
|
||||
array($technolo[3], 'blindage', 12)
|
||||
array($batiment[8], 'chantier_spatial', 10),
|
||||
array($technolo[7][10], 'techno_proj', 1024)
|
||||
)
|
||||
);
|
||||
$coeffVAR = array('coeff_mine_m', 'coeff_mine_c', 'coeff_mine_h', 'coeff_centrale_s', 'coeff_centrale_f');
|
||||
$ressoVAR = array('contenu_metal', 'contenu_cristal', 'contenu_hydrogene');
|
||||
|
||||
//Nouvel arbre de technologie
|
||||
$technologiesVAR = array("techno_indu", "techno_inge", "techno_inge2", "techno_poli", "techno_arme", "techno_defe", "techno_defe2", "techno_proj", "techno_expansion");
|
||||
$technologiesCALC = array(
|
||||
//Industrie
|
||||
array(
|
||||
array(1, 0, 1000, 54000),
|
||||
array(2, 1, 2000, 90000),
|
||||
array(4, 2, 4000, 126000),
|
||||
array(8, 1, 4000, 126000),
|
||||
array(16, 1, 2000, 72000),
|
||||
array(32, 16, 4000, 108000),
|
||||
array(64, 32, 8000, 144000),
|
||||
array(128, 1, 2000, 72000),
|
||||
array(256, 128, 4000, 108000),
|
||||
array(512, 256, 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)
|
||||
),
|
||||
//Ingénieurie
|
||||
array(
|
||||
array(1, 0, 1000, 54000),
|
||||
array(2, 1, 2000, 90000),
|
||||
array(4, 2, 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(4096, 0, 1000, 54000),
|
||||
array(8192, 4096, 2000, 90000),
|
||||
array(16384, 8192, 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)
|
||||
),
|
||||
//Ingénieurie 2
|
||||
array(
|
||||
array(1, 0, 1000, 36000),
|
||||
array(2, 1, 2000, 72000),
|
||||
array(4, 2, 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)
|
||||
),
|
||||
//Politique
|
||||
array(
|
||||
array(1, 0, 1000, 36000),
|
||||
array(512, 0, 1000, 90000),
|
||||
array(2, 1, 2000, 72000),
|
||||
array(8, 1, 2000, 72000),
|
||||
array(4, 2, 4000, 108000),
|
||||
array(16, 8, 4000, 108000),
|
||||
array(64, 8, 4000, 126000),
|
||||
array(128, 8, 6000, 162000),
|
||||
array(256, 8, 6000, 162000),
|
||||
array(32, 16, 8000, 144000),
|
||||
array(1024, 512, 2000, 90000),
|
||||
array(4096, 512, 2000, 72000),
|
||||
array(2048, 1024, 4000, 90000),
|
||||
array(8192, 4096, 4000, 108000),
|
||||
array(16384, 8192, 8000, 144000)
|
||||
),
|
||||
|
||||
//Armement
|
||||
array(
|
||||
array(1, 0, 1000, 36000),
|
||||
array(2, 1, 2000, 72000),
|
||||
array(4, 2, 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(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)
|
||||
),
|
||||
//Défense
|
||||
array(
|
||||
array(1, 0, 1000, 36000),
|
||||
array(2, 1, 2000, 72000),
|
||||
array(4, 2, 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(512, 0, 1000, 36000),
|
||||
array(1024, 512, 2000, 72000),
|
||||
array(2048, 1024, 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(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),
|
||||
),
|
||||
//Défense 2
|
||||
array(
|
||||
array(1, 0, 2000, 72000),
|
||||
array(2, 1, 4000, 144000),
|
||||
array(4, 2, 6000, 216000),
|
||||
array(8, 0, 2000, 72000),
|
||||
array(16, 8, 4000, 144000),
|
||||
array(32, 16, 6000, 216000),
|
||||
array(64, 18, 8000, 288000)
|
||||
),
|
||||
//Projets expérimentaux
|
||||
array(
|
||||
array(1, 0, 2000, 36000),
|
||||
array(2, 1, 4000, 72000),
|
||||
array(4, 2, 4000, 108000),
|
||||
array(8, 4, 6000, 144000),
|
||||
array(16, 8, 6000, 144000),
|
||||
array(32, 8, 8000, 180000),
|
||||
array(64, 32, 10000, 216000),
|
||||
array(128, 64, 10000, 234000),
|
||||
array(256, 128, 12000, 288000),
|
||||
array(512, 256, 14000, 324000),
|
||||
array(1024, 64, 14000, 342000),
|
||||
array(2048, 256, 16000, 360000),
|
||||
array(4096, 576, 18000, 396000),
|
||||
array(8192, 4096, 20000, 432000),
|
||||
array(16384, 8192, 22000, 504000)
|
||||
),
|
||||
//Technologie expansion
|
||||
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)
|
||||
)
|
||||
);
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue