escape($id); $user = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id;"); $bdd->deconnexion(); if (!empty($user)) { $this->id_user = $user["id"]; $this->pseudo = $user["pseudo"]; $this->auth_level = $user["auth_level"]; $this->race = $user["race"]; $this->options = @intval($user["options"]); $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->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($technologiesVAR as $tech){ $this->technologies[] = intval($user[$tech]); } //Si l'ID d'alliance est défini, on charge l'alliance if (!empty($this->id_alliance)) $this->alliance = new TinyAsteroide($this->id_alliance); } 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.'); } } function loadPermissions($fondateur = 0) { if ($fondateur == $this->id_user) $this->permissions_alliance = 1023; else { global $table_alliances_grade; $bdd = new BDD(); $grade = $bdd->unique_query("SELECT * FROM $table_alliances_grade WHERE id = ".$this->id_grade_alliance.";"); $bdd->deconnexion(); $this->permissions_alliance = intval($grade['auth']); } } function addPoints($metal, $cristal, $hydrogene, $credits = 0, $demolition = false) { global $table_bourse_ressources; //On charge les 3 valeurs boursières $bdd = new BDD(); $bourse = $bdd->query("SELECT dispo FROM $table_bourse_ressources;"); $bdd->deconnexion(); if (!empty($credits)) { //TODO Equivalence non prouvée entre $credits/bourse_calcPrixBase($bourse[0]["dispo"], 0.7); et $credits/bourse_calcPrixBase($bourse[0]["dispo"], 1) * 0.7; dans le but de ne donner que 70% des points $metal += $credits/bourse_calcPrixBase($bourse[0]["dispo"], 0.7); $cristal += $credits/bourse_calcPrixBase($bourse[1]["dispo"], 0.7); $hydrogene += $credits/bourse_calcPrixBase($bourse[2]["dispo"], 0.7); } $points = bourse_calcPrixBase($bourse[0]["dispo"], $metal); $points += bourse_calcPrixBase($bourse[1]["dispo"], $cristal); $points += bourse_calcPrixBase($bourse[2]["dispo"], $hydrogene); if ($demolition) $this->points -= intval($points); else $this->points += intval($points); $this->addModifUser("points"); } function addCredits($credits) { $this->credits += $credits; $this->addModifUser("credits"); return 0; } function addModifUser($modif) { if (!in_array($modif, $this->modifUser)) $this->modifUser[] = $modif; } /** * Destructeur * * @return void * @access public */ function __destruct(){ global $table_user; $out = array(); $bdd = new BDD(); foreach($this->modifUser as $key => $modif) { //On gère les champs variables tableaux if (is_array($modif)) { $calc = dDonnees::nameVAR($modif[0]); if (!isset(${$calc.'VAR'})) global ${$calc.'VAR'}; if (empty(${$calc.'VAR'})) trigger_error('Impossible de trouver les données pour '.$modif[0], E_USER_ERROR); $out[] = ${$calc.'VAR'}[$modif[1]]." = ".$this->{$modif[0]}[$modif[1]]; } elseif ($modif == "force") $out[] = " "; elseif (!is_array($this->{$modif})) { $bdd->escape($this->{$modif}); if (is_int($this->{$modif}) || is_float($this->{$modif})) $out[] .= $modif." = ".$this->{$modif}; else $out[] .= $modif." = '".$this->{$modif}."'"; } else { if ($modif != "coeff_bat" && $modif != "vaisseaux" && $modif != "terrestres" && $modif != "casernes" && $modif != "technologies" && $modif != "batiments") { $prep = serialize($this->{$modif}); $bdd->escape($prep); $out[] = $modif." = '$prep'"; } else { $calc = dDonnees::nameVAR($modif); if (!isset(${$calc.'VAR'})) global ${$calc.'VAR'}; foreach($this->{$modif} as $j => $value) $out[] = ${$calc.'VAR'}[$j]." = ".$value; } } } if (!empty($out)) { $sql = "UPDATE $table_user SET ".implode(', ', $out)." WHERE id = ".$this->id_user.";"; if (DEBUG) echo '

'.$sql; $bdd->query($sql); if ($bdd->affected() != 1) elog($bdd->affected()." champ(s) affecté(s) par la requête du fichier ".__FILE__." à la ligne ".__LINE__.", données : out = ".serialize($out)." avec l'ID ".$this->id_user, 2); } $bdd->deconnexion(); } } ?>