unique_query("SELECT * FROM $table_alliances WHERE id = $id;"); $bdd->deconnexion(); } elseif (preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):?[Aa]?\]?$#', $id, $position)) { $plan = $bdd->unique_query("SELECT * FROM $table_alliances WHERE galaxie = ".$position[1]." AND ss = ".$position[2].";"); $bdd->deconnexion(); } else die('Erreur #04 : Format de recherche d\'asteroide incorrect !'); if (!empty($plan)) { $this->id = $plan["id"]; parent::User($SESS->values['id']); //On utilise le numéro d'utilisateur enregistré en session $this->galaxie = $plan["galaxie"]; $this->ss = $plan["ss"]; $this->nom_asteroide = $plan["nom_asteroide"]; $this->image = $this->image_asteroide = $plan["image_asteroide"]; $this->debris_met = $plan["debris_met"]; $this->debris_cri = $plan["debris_cri"]; $this->metal = $plan["metal"]; $this->cristal = $plan["cristal"]; $this->hydrogene = $plan["hydrogene"]; $this->credits_alliance = $plan["credits_alliance"]; $this->fondateur = $plan["fondateur"]; $this->nom_alliance = $plan["nom_alliance"]; $this->wing = $plan["wing"]; $this->tag = $plan["tag"]; $this->url_forum = $plan["url_forum"]; $this->url_chat = $plan["url_chat"]; foreach($alli_batimentVAR as $bat) $this->batiments[] = $plan[$bat]; if (!empty($plan["file_bat"])) $this->file_bat = unserialize($plan["file_bat"]); else $this->file_bat = new File('alli_batiments'); foreach($nomvaisnVAR as $vais) $this->vaisseaux[] = $plan[$vais]; if (!empty($plan["file_vais"])) $this->file_vais = unserialize($plan["file_vais"]); else $this->file_vais = new File('vaisseaux'); } } } function loadDetails() { global $table_alliances; $bdd = new bdd(); $this->details = $bdd->unique_query("SELECT presentation, message_inscription, texte_interne, port_chat, chan_chat, image, etat_inscription, defcon, defcon_txt FROM $table_alliances WHERE id = ".$this->id.";"); $bdd->deconnexion(); } function actualiser($actuFile = true, $first = false) { //Actualisation des files d'attentes if ($actuFile) { $this->file_bat->batiment_ready($this); $this->file_vais->vaisseaux_ready($this); } } function checkAndRetireRessources($metal, $cristal, $hydrogene, $credits) { if ($this->metal >= $metal && $this->cristal >= $cristal && $this->hydrogene >= $hydrogene && $this->credits_alliance >= $credits) { $this->metal -= $metal; $this->cristal -= $cristal; $this->hydrogene -= $hydrogene; $this->credits -= $credits; $this->addModif("force"); $this->addModif("credits_alliance"); return true; } else return false; } function addRessources($metal, $cristal, $hydrogene, $credits) { $perte = 0; $this->metal += $metal; if ($this->metal > $this->cap) { $perte += $this->metal - $this->cap; $this->metal = $this->cap; } $this->cristal += $cristal; if ($this->cristal > $this->cap) { $perte += $this->cristal - $this->cap; $this->cristal = $this->cap; } $this->hydrogene += $hydrogene; if ($this->hydrogene > $this->cap) { $perte += $this->hydrogene - $this->cap; $this->hydrogene = $this->cap; } $this->hydrogecredits_alliancene += $credits; $this->addModif("force"); $this->addModif("credits_alliance"); return $perte; } function addCreditsAlliance($credits) { $this->credits_alliance += $credits; $this->addModif("credits_alliance"); return 0; } function creer($fondateur, $mere = false) { global $VAR, $table_alliances_creation; $bdd = new BDD(); $alliance = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE fondateur = ".$fondateur->id_user." LIMIT 1;"); $bdd->deconnexion(); //On vérifie que l'alliance n'a pas déjà été créée if (empty($alliance)) return 1; //Définition des paramètres de l'utilisateur pour l'astéroide $this->fondateur = $alliance["fondateur"]; $this->race = $fondateur->race; //Génération du nombre de case et de l'image en fonction de la position dans le système $this->sante = 1; $this->nom_alliance = $alliance["nom_alliance"]; $this->tag = $alliance["tag"]; $this->nom_asteroide = $alliance["nom_alliance"]; $this->image_asteroide = mt_rand(1,3); $this->modif = array("fondateur", "race", "nom_alliance", "galaxie", "ss", "tag", "nom_asteroide", "image_asteroide"); } /** * Destructeur * * @return void * @access public */ function __destruct() { if (empty($this->ss) || empty($this->fondateur)) return; global $table_alliances; if (empty($this->id)) { $out1 = array(); $out2 = array(); $bdd = new bdd(); foreach($this->modif as $modif) { if ($modif == "force") continue; elseif (!is_array($this->{$modif})) { $bdd->escape($this->{$modif}); $out1[] = $modif; if (is_int($this->{$modif}) || is_float($this->{$modif})) $out2[] = $this->{$modif}; else $out2[] = "'".$this->{$modif}."'"; } else { if (is_array($this->{$modif}) && $modif != "coeff_bat" && $modif != "vaisseaux" && $modif != "terrestres" && $modif != "casernes" && $modif != "technologies" && $modif != "batiments") { $prep = serialize($this->{$modif}); $bdd->escape($prep); $out1[] = $modif; $out2[] = "'$prep'"; } else { if ($modif == "batiments") $calc = "batiment"; elseif ($modif == "technologies") $calc = "technolo"; elseif ($modif == "casernes") $calc = "casernen"; elseif ($modif == "terrestres") $calc = "nomterrn"; elseif ($modif == "vaisseaux") $calc = "nomvaisn"; elseif ($modif == "coeff_bat") $calc = "coeff"; if (!isset(${$calc.'VAR'})) global ${$calc.'VAR'}; foreach($this->{$modif} as $j => $value) { $out1[] = ${$calc.'VAR'}[$j]; $out2[] = $value; } } } } $bdd->query("INSERT INTO $table_alliances (".implode(', ', $out1).") VALUES (".implode(', ', $out2).")"); $bdd->deconnexion(); } else { $nb = count($this->modif); $out = array(); $bdd = new bdd(); for($i = 0; $i < $nb; $i++) { if ($this->modif[$i] == "force") $out[] = "metal = ".$this->metal.", cristal = ".$this->cristal.", hydrogene = ".$this->hydrogene; elseif ($this->modif[$i] == 'technologies') $this->modifUser[] = $this->modif[$i]; elseif (is_object($this->{$this->modif[$i]})) { $export = serialize($this->{$this->modif[$i]}); $bdd->escape($export); $out[] = $this->modif[$i]." = '".$export."'"; } elseif (!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 (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'"; } else { if ($this->modif[$i] == "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)) { $sql = "UPDATE $table_alliances SET ".implode(', ', $out)." WHERE id = ".$this->id.";"; if (DEBUG) echo '

'.$sql; $bdd->query($sql); } $bdd->deconnexion(); parent::__destruct(); } } } ?>