Version 1.9a
1
.onyx
|
|
@ -1 +0,0 @@
|
|||
./onyx/
|
||||
143
connexion.php
|
|
@ -1,143 +0,0 @@
|
|||
<?php
|
||||
define("INDEX", 1);
|
||||
$chrono_start = microtime();
|
||||
$onyx = @file_get_contents('./.onyx') or die("Configuration introuvable.");
|
||||
define("_FCORE",trim($onyx));
|
||||
$_SERVER['REMOTE_ADDR'] = "127.0.0.1";
|
||||
require_once(_FCORE."kernel.php");
|
||||
require_once(_FCORE."hb_game/tables.php");
|
||||
set_time_limit(0);
|
||||
error_reporting(E_ALL);
|
||||
|
||||
echo "Demarrage du serveur ...";
|
||||
$socket = socket_create(AF_INET, SOCK_STREAM, 0);
|
||||
@socket_bind($socket, '127.0.0.1', 13650) or die("\nERREUR : Port déja utilise");
|
||||
socket_listen($socket);
|
||||
$bdd = new bdd();
|
||||
echo " Serveur pret, en attente.\n\n";
|
||||
|
||||
while(true) {
|
||||
$client = socket_accept($socket);
|
||||
|
||||
//On attend une requête
|
||||
$reception = socket_read($client, 255);
|
||||
echo "Reception d'une connexion en provenance de ".$reception."\n";
|
||||
if (!empty($reception)) {
|
||||
$ip = $reception;
|
||||
$_SERVER['REMOTE_ADDR'] = $ip;
|
||||
//On renvoie le type de connexion au serveur
|
||||
socket_write($client, "secure", 6);
|
||||
|
||||
//On attend une requête contenant le nom de l'utilisateur
|
||||
$HB_login = socket_read($client, 255);
|
||||
$bdd->connexion();
|
||||
$bdd->escape($HB_login);
|
||||
$res = $bdd->unique_query("SELECT mdp_var FROM $table_user WHERE pseudo = '$HB_login';");
|
||||
$bdd->deconnexion();
|
||||
if (empty($res['mdp_var'])) socket_write($client, 'not found', 9);
|
||||
else socket_write($client, $res['mdp_var'], 255);
|
||||
|
||||
//On attend une requête contenant le mot de passe
|
||||
$HB_password = socket_read($client, 255);
|
||||
$bdd->connexion();
|
||||
$bdd->escape($HB_password);
|
||||
$resultat = $bdd->unique_query("SELECT id, mv, last_visite, auth_level, raisonmv FROM $table_user WHERE pseudo = '$HB_login' AND mdp = '$HB_password';");
|
||||
if ($resultat) {
|
||||
$id = $resultat['id'];
|
||||
$reqPlan = $bdd->query("SELECT id, file_bat, file_tech, file_cas, file_vais, file_ter FROM $table_planete WHERE id_user = '$id' ORDER BY id ASC;");
|
||||
$resultatP = $reqPlan[0];
|
||||
if (!$reqPlan) {
|
||||
$bdd->deconnexion();
|
||||
socket_write($client, 'ERR:Impossible de trouver votre planète !', 41);
|
||||
}
|
||||
else {
|
||||
if ($resultat['mv'] != 0) {
|
||||
if ($resultat['last_visite']+259200 > time() && $resultat['auth_level'] < 2) {
|
||||
if ($resultat['mv'] == 3) socket_write($client, 'MV3:'.$resultat['raisonmv'], 260);
|
||||
elseif ($resultat['mv'] == 2) socket_write($client, 'MV2:'.($resultat['last_visite']+259200).':'.$resultat['raisonmv'], 300);
|
||||
else socket_write($client, 'MV1:'.$resultat['last_visite']+259200, 255);
|
||||
}
|
||||
else {
|
||||
$bdd->query("UPDATE $table_user SET mv = '0' WHERE id = '$id';");
|
||||
$bdd->query("UPDATE $table_planete SET timestamp = '".time()."' WHERE id_user = '$id';");
|
||||
|
||||
//On fait repartir à 0 les files d'attente
|
||||
include_once(_FCORE."hb_game/Class/class.gerefile.php");
|
||||
$cntplan = count($reqPlan);
|
||||
for ($i = 0; $i < $cntplan; $i++) {
|
||||
if (!empty($reqPlan[$i]['file_bat'])) {
|
||||
$file = unserialize($reqPlan[$i]['file_bat']);
|
||||
$file->timestamp = time();
|
||||
$fileBat = serialize($file);
|
||||
$bdd->escape($fileBat);
|
||||
}
|
||||
else $fileBat = '';
|
||||
if (!empty($reqPlan[$i]['file_tech'])) {
|
||||
$file = unserialize($reqPlan[$i]['file_tech']);
|
||||
$file->timestamp = time();
|
||||
$fileTech = serialize($file);
|
||||
$bdd->escape($fileTech);
|
||||
}
|
||||
else $fileTech = '';
|
||||
if (!empty($reqPlan[$i]['file_cas'])) {
|
||||
$file = unserialize($reqPlan[$i]['file_cas']);
|
||||
$file->timestamp = time();
|
||||
$fileCas = serialize($file);
|
||||
$bdd->escape($fileCas);
|
||||
}
|
||||
else $fileCas = '';
|
||||
if (!empty($reqPlan[$i]['file_vais'])) {
|
||||
$file = unserialize($reqPlan[$i]['file_vais']);
|
||||
$file->timestamp = time();
|
||||
$fileVais = serialize($file);
|
||||
$bdd->escape($fileCas);
|
||||
}
|
||||
else $fileVais = '';
|
||||
if (!empty($reqPlan[$i]['file_ter'])) {
|
||||
$file = unserialize($reqPlan[$i]['file_ter']);
|
||||
$file->timestamp = time();
|
||||
$fileTer = serialize($file);
|
||||
$bdd->escape($fileTer);
|
||||
}
|
||||
else $fileTer = '';
|
||||
|
||||
$idPlan = $reqPlan[$i]['id'];
|
||||
$bdd->query("UPDATE $table_planete SET file_bat = '$fileBat', file_tech = '$fileTech', file_cas = '$fileCas', file_vais = '$fileVais', file_ter = '$fileTer' WHERE id = '$idPlan';");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$time = time();
|
||||
$bdd->query("UPDATE $table_user SET last_visite = '$time', last_ip = '$ip' WHERE id = '$id';");
|
||||
$bdd->query("INSERT INTO $table_registre_identification (id_util, ip) VALUES ('".$id."','".$ip."');");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$sess = new session();
|
||||
$sess->load();
|
||||
$sess->values['connected'] = TRUE;
|
||||
$sess->values['id'] = $resultat['id'];
|
||||
$sess->values['idPlan'] = $resultatP['id'];
|
||||
$sess->values['auth_level'] = $resultat['auth_level'];
|
||||
$sess->put();
|
||||
|
||||
socket_write($client, "ok", 2);
|
||||
|
||||
socket_write($client, $config['session_name'], strlen($config['session_name']));
|
||||
socket_write($client, $sess->cookie, strlen($sess->cookie));
|
||||
$fin = time() + $config['session_time']."po";
|
||||
socket_write($client, $fin, strlen($fin));
|
||||
|
||||
$sess = false;
|
||||
unset($sess);
|
||||
echo "Identification validee pour $HB_login => $fin\n";
|
||||
}
|
||||
}
|
||||
else socket_write($client, 'not found', 9);
|
||||
}
|
||||
else socket_write($client, "ERR:La phase d'identification n'a pas encore commence", 49);
|
||||
|
||||
socket_close($client);
|
||||
echo "Fin d'une connexion\n\n";
|
||||
flush();
|
||||
}
|
||||
?>
|
||||
160
game/Class/Copie de class.bourse.php
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
<?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 !!
|
||||
}
|
||||
}
|
||||
?>
|
||||
187
game/Class/class.bourse.php
Normal file
|
|
@ -0,0 +1,187 @@
|
|||
<?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 $taxeV = 1.5;
|
||||
var $metal;
|
||||
var $cristal;
|
||||
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, "id");
|
||||
if (!empty($user)) $this->loadUser($user);
|
||||
}
|
||||
}
|
||||
|
||||
function __destruct(){
|
||||
$this->bd->deconnexion();
|
||||
}
|
||||
|
||||
function loadAction($nom, $type = "nom"){
|
||||
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'];
|
||||
}
|
||||
|
||||
function loadUser($user, $type = "id"){
|
||||
global $table_user;
|
||||
$this->bd->escape($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]);
|
||||
if (!empty($tmp[1])) $end[$tmp[0]] = explode(',', $tmp[1]);
|
||||
else $end[$tmp[0]] = array();
|
||||
}
|
||||
$this->actionsUser = $end;
|
||||
}
|
||||
|
||||
function prixAchat($nb){
|
||||
return array(floor($this->metal * $nb * $this->taxeA), floor($this->cristal * $nb * $this->taxeA));
|
||||
}
|
||||
|
||||
function prixVente($nb){
|
||||
if ($this->action() < $nb) $nb = $this->action();
|
||||
|
||||
return array(floor($this->metal * $nb / $this->taxeV), floor($this->cristal * $nb / $this->taxeV));
|
||||
}
|
||||
|
||||
function addAction($nb){
|
||||
$ret = array(floor($this->metal * $nb * $this->taxeA), floor($this->cristal * $nb * $this->taxeA));
|
||||
|
||||
$this->metal *= pow(1.1, $nb);
|
||||
$this->cristal *= pow(1.1, $nb);
|
||||
|
||||
for($i = 0; $i < $nb; $i++){
|
||||
$this->actionsUser[$this->id][] = time();
|
||||
}
|
||||
|
||||
$this->maj();
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function delAction($nb){
|
||||
if ($this->action() < $nb) $nb = $this->action();
|
||||
|
||||
$ret = array(floor($this->metal * $nb / $this->taxeV), floor($this->cristal * $nb / $this->taxeV));
|
||||
|
||||
$this->metal /= pow(1.1, $nb);
|
||||
$this->cristal /= pow(1.1, $nb);
|
||||
|
||||
for($i = 0; $i < $nb; $i++){
|
||||
unset($this->actionsUser[$this->id][$i]);
|
||||
}
|
||||
|
||||
$this->maj();
|
||||
return $ret;
|
||||
}
|
||||
|
||||
function actionIn24Hours(){
|
||||
$nb = 0;
|
||||
if (isset($this->actionsUser[$this->id])) {
|
||||
$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(){
|
||||
if (isset($this->actionsUser[$this->id])) return count($this->actionsUser[$this->id]);
|
||||
else return 0;
|
||||
|
||||
}
|
||||
|
||||
function maj(){
|
||||
$this->majBourse();
|
||||
$this->majUser();
|
||||
$this->fileSave();
|
||||
}
|
||||
|
||||
function majBourse(){
|
||||
global $table_bourse;
|
||||
|
||||
$this->bd->query("UPDATE $table_bourse SET nom = '".$this->nom."', metal = '".$this->metal."', cristal = '".$this->cristal."' WHERE id = ".$this->id.";");
|
||||
}
|
||||
|
||||
function majUser(){
|
||||
global $table_user;
|
||||
|
||||
$champ = '';
|
||||
foreach($this->actionsUser as $key => $cell) {
|
||||
if (count($cell) > 0) {
|
||||
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 delUser($id = ""){
|
||||
if (!empty($id)) $this->loadUser($id);
|
||||
|
||||
$champ = '';
|
||||
foreach($this->actionsUser as $key => $cell) {
|
||||
$cnt = count($cell);
|
||||
if ($cnt > 0) {
|
||||
$this->loadAction($key, "id");
|
||||
$this->delAction($cnt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function fileSave(){
|
||||
$fichier = fopen(_FCORE."../game/cache/bourse/".$this->id.".".strftime('%Y%m%d').".bourse",'a+');
|
||||
fwrite($fichier, time().';'.$this->metal.';'.$this->cristal."\n");
|
||||
fclose($fichier);
|
||||
}
|
||||
|
||||
|
||||
function newGroupe($nom, $metal, $cristal, $description = ""){
|
||||
global $table_bourse;
|
||||
|
||||
$this->bd->query("INSERT INTO $table_bourse (nom, metal, cristal, description) VALUES('$nom', '$metal', '$cristal', '$description');");
|
||||
}
|
||||
|
||||
function editGroupe($description){
|
||||
//TODO toute cette fonction !!
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -3,10 +3,25 @@ class gererFile {
|
|||
var $file = array();
|
||||
var $chaine = false;
|
||||
var $timestamp = 0;
|
||||
var $type = '';
|
||||
var $limite = 0;
|
||||
|
||||
function gererFile($limite) {
|
||||
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) {
|
||||
503
game/Class/class.planete.php
Normal file
|
|
@ -0,0 +1,503 @@
|
|||
<?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,
|
||||
$galaxie,
|
||||
$ss,
|
||||
$position,
|
||||
$isolement,
|
||||
$nom_planete,
|
||||
$image,
|
||||
$cases,
|
||||
$casesRest,
|
||||
$debris_met,
|
||||
$debris_cri,
|
||||
$metal,
|
||||
$cristal,
|
||||
$hydrogene,
|
||||
$alert_ressources = array(false, false, false),
|
||||
$timestamp,
|
||||
$energie,
|
||||
$energieConso,
|
||||
$file_tech,
|
||||
$file_bat,
|
||||
$file_cas,
|
||||
$file_ter,
|
||||
$file_vais,
|
||||
$coeff_bat = array(),
|
||||
$batiments = array(),
|
||||
$casernes = array(),
|
||||
$terrestres = array(),
|
||||
$vaisseaux = array(),
|
||||
$modif = array('metal', 'cristal', 'hydrogene', 'timestamp');
|
||||
|
||||
/**
|
||||
* Constructeur
|
||||
* @param int $id id de la planète à importer
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function Planete($id = 0){
|
||||
if (!empty($id)) {
|
||||
global $var___db, $config, $table_planete;
|
||||
global $batimentVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR;
|
||||
$bdd = new bdd();
|
||||
$bdd->connexion();
|
||||
$bdd->escape($id);
|
||||
$plan = $bdd->unique_query("SELECT * FROM $table_planete WHERE id = $id;");
|
||||
$bdd->deconnexion();
|
||||
if (!empty($plan)) {
|
||||
$this->id = $plan["id"];
|
||||
parent::User($plan["id_user"]);
|
||||
$this->galaxie = $plan["galaxie"];
|
||||
$this->ss = $plan["ss"];
|
||||
$this->position = $plan["position"];
|
||||
$this->isolement = $plan["isolement"];
|
||||
$this->nom_planete = $plan["nom_planete"];
|
||||
$this->image = $plan["image"];
|
||||
$this->cases = $plan["cases"];
|
||||
$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->timestamp = $plan["timestamp"];
|
||||
|
||||
foreach($batimentVAR as $bat){
|
||||
$this->batiments[] = $plan[$bat];
|
||||
}
|
||||
$this->file_bat = explode(';', $plan["file_bat"]);
|
||||
$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"]);
|
||||
foreach($casernenVAR as $cas){
|
||||
$this->casernes[] = $plan[$cas];
|
||||
}
|
||||
$this->file_cas = explode(';', $plan["file_cas"]);
|
||||
foreach($nomterrnVAR as $ter){
|
||||
$this->terrestres[] = $plan[$ter];
|
||||
}
|
||||
$this->file_ter = explode(';', $plan["file_ter"]);
|
||||
foreach($nomvaisnVAR as $vais){
|
||||
$this->vaisseaux[] = $plan[$vais];
|
||||
}
|
||||
$this->file_vais = explode(';', $plan["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){
|
||||
//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");
|
||||
$this->file_pret("technologies");
|
||||
$this->file_pret("casernes");
|
||||
$this->file_pret("terrestres");
|
||||
$this->file_pret("vaisseaux");
|
||||
}
|
||||
|
||||
//Calcul du nombre de cases restantes
|
||||
$this->casesRest = $this->cases;
|
||||
foreach($this->batiments as $bat){
|
||||
$this->casesRest -= $bat;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie si la planète est isolée ou non
|
||||
*
|
||||
* @return boolean
|
||||
* @access public
|
||||
*/
|
||||
function isolement(){
|
||||
$isolement = explode(' ', $this->isolement);
|
||||
$return = false;
|
||||
|
||||
if (time() > $isolement[0]) {
|
||||
if (!isset($isolement[1]) || (time() > $isolement[1] && date('dmY') != date('dmY', $isolement[0]))) {
|
||||
$nbPlan = count($queryPlanetes);
|
||||
$numP = 0;
|
||||
for ($i=0 ; $i<$nbPlan ; $i++) {
|
||||
if ($queryPlanetes[$i]['id'] == $queryPlanete['id']) $numP = $i;
|
||||
}
|
||||
if ($numP > 10) {
|
||||
switch($numP){
|
||||
case 11: $tps = 2; break;
|
||||
case 12: $tps = 4; break;
|
||||
case 13: $tps = 6; break;
|
||||
case 14: $tps = 8; break;
|
||||
case 15: $tps = 12; break;
|
||||
case 16: $tps = 16; break;
|
||||
case 17: $tps = 20; break;
|
||||
default: $tps = 24;
|
||||
}
|
||||
$debut = mktime(rand(0, 24-$tps), 0, 0, date('n'), date('j'), date('Y'));
|
||||
$fin = $debut + $tps * 3600;
|
||||
|
||||
$bdd->connexion();
|
||||
$bdd->query("UPDATE $table_planete SET isolement = '$debut $fin' WHERE id = '$idPlan';");
|
||||
$bdd->deconnexion();
|
||||
$isolement[0] = $debut;
|
||||
if (time() > $isolement[0]) $isolement[1] = $fin;
|
||||
}
|
||||
}
|
||||
$p = gpc('p');
|
||||
if (isset($isolement[1]) && time() < $isolement[1]) {
|
||||
$return = true;
|
||||
}
|
||||
}
|
||||
|
||||
$this->isolement = implode(' ', $isolement);
|
||||
if (!in_array('isolement', $this->modif)) $this->modif[] = 'isolement';
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calcul les ressources produites en fonction de $temps_ecoule
|
||||
* @param int $temps_ecoule Temps écoulé depuis la dernière actualisation
|
||||
*
|
||||
* @return array
|
||||
* @access public
|
||||
*/
|
||||
function production($temps_ecoule, $retarray = false){
|
||||
//Accélération de la production
|
||||
$temps_ecoule *= 10;
|
||||
|
||||
//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;
|
||||
if ($this->batiments[1] > 0) $energie_c = ceil(exp(0.28*$this->batiments[1])*10); else $energie_c = 0;
|
||||
if ($this->batiments[2] > 0) $energie_h = ceil(exp(0.2849*$this->batiments[2])*13); else $energie_h = 0;
|
||||
if ($this->batiments[3] > 0) $energie_s = ceil(exp(0.28*$this->batiments[3])*22); else $energie_s = 0;
|
||||
if ($this->batiments[4] > 0) $energie_f = ceil(exp(0.297*$this->batiments[4])*25); else $energie_f = 0;
|
||||
|
||||
//Calcul de la consomation d'énergie
|
||||
$this->energieConso = $energie_m * $this->coeff_bat[0] + $energie_c * $this->coeff_bat[1] + $energie_h * $this->coeff_bat[2];
|
||||
$nrjmx = $energie_m + $energie_c + $energie_h;
|
||||
|
||||
//Calcul de la production d'énergie
|
||||
$this->energie = $energie_s * $this->coeff_bat[3] + $energie_f * $this->coeff_bat[4];
|
||||
|
||||
if ($this->energieConso == 0) $coeff = 0;
|
||||
else $coeff = $this->energie / $this->energieConso;
|
||||
|
||||
if ($coeff < 0) $coeff = 0;
|
||||
elseif ($coeff > 1) $coeff = 1;
|
||||
|
||||
$Ncoeff = array();
|
||||
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]) {
|
||||
$this->coeff_bat[$i] = $Ncoeff[$i];
|
||||
if (!in_array('coeff_bat', $this->modif)) $this->modif[] = 'coeff_bat';
|
||||
}
|
||||
}
|
||||
|
||||
//Calcul de la consomation d'hydrogène
|
||||
if ($this->batiments[4] > 0) $conso_h = ((ceil(pow(1.34,($this->batiments[4]-1))*9)/3600)*$temps_ecoule) * $this->coeff_bat[4];
|
||||
else $conso_h = 0;
|
||||
|
||||
//Calcul des production de ressources
|
||||
if ($this->batiments[0] <= 0 || $this->batiments[3] <= 0) $prod_met = 0.011 * $temps_ecoule;
|
||||
else $prod_met = ((ceil(pow(1.1, $this->batiments[0]) * 35 * $this->batiments[0]) / 3600) * $temps_ecoule) * $this->coeff_bat[0] * 1.5;
|
||||
|
||||
if ($this->batiments[1] <= 0 || $this->batiments[3] <= 0) $prod_cri = 0.0055 * $temps_ecoule;
|
||||
else $prod_cri = ((ceil(pow(1.1, $this->batiments[1]) * 23 * $this->batiments[1]) / 3600) * $temps_ecoule) * $this->coeff_bat[1] * 1.5;
|
||||
|
||||
if ($this->batiments[2] <= 0) $prod_hy = 0;
|
||||
else $prod_hy = ((ceil(pow(1.1, $this->batiments[2]) * 14 * ($this->batiments[2] + 0.7)) / 3600) * $temps_ecoule) * $this->coeff_bat[2] * 1.5 - $conso_h;
|
||||
|
||||
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
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function __destruct(){
|
||||
global $var___db, $config, $table_planete;
|
||||
$nb = count($this->modif);
|
||||
$out = array();
|
||||
$bdd = new bdd();
|
||||
$bdd->connexion();
|
||||
for($i = 0; $i < $nb; $i++){
|
||||
if ($this->modif[$i] == 'technologies') $this->modifUser[] = $this->modif[$i];
|
||||
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 (ereg('file', $this->modif[$i])) {
|
||||
$prep = implode(';', $this->{$this->modif[$i]});
|
||||
$bdd->escape($prep);
|
||||
$out[] .= $this->modif[$i]." = '$prep'";
|
||||
}
|
||||
else {
|
||||
if ($this->modif[$i] == "batiments") $calc = "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_planete SET ".implode(', ', $out)." WHERE id = ".$this->id.";");
|
||||
$bdd->deconnexion();
|
||||
parent::__destruct();
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -45,14 +45,14 @@ class Rapport{
|
|||
|
||||
function sendEspionnage(){
|
||||
global $config;
|
||||
include_once(_FCORE."hb_game/function.php");
|
||||
include_once(_FCORE."../game/function.php");
|
||||
$titreA = 'Rapport d\'espionnage de '.$this->var[0]['nom_planete'].' ['.$this->var[0]['galaxie'].':'.$this->var[0]['ss'].':'.$this->var[0]['position'].']';
|
||||
$rapportA = '<b>Espionnage de '.trouvNom($this->utilB).' sur '.$this->var[0]['nom_planete'].'['.$this->var[0]['galaxie'].':'.$this->var[0]['ss'].':'.$this->var[0]['position'].']</b><br /><br />';
|
||||
|
||||
$race = trouvInfo($this->utilB, 'race');
|
||||
$auth_level = 0;
|
||||
include(_FCORE."hb_game/noms.php");
|
||||
include(_FCORE."hb_game/vars.php");
|
||||
include(_FCORE."../game/noms.php");
|
||||
include(_FCORE."../game/vars.php");
|
||||
|
||||
if (isset($this->var[1]) && $this->var[1] == false) $rapportA .= '<i>Nos sondes n\'ont pas pu récolter d\'information sur cette planète.</i>';
|
||||
else {
|
||||
|
|
@ -98,90 +98,75 @@ class Rapport{
|
|||
$rapportB = 'Nous venons d\'apprendre que notre planète : '.$this->var[0]['nom_planete'].'['.$this->var[0]['galaxie'].':'.$this->var[0]['ss'].':'.$this->var[0]['position'].'] a été la cible d\'un espionnage de la part de '.trouvNom($this->utilA);
|
||||
|
||||
$temps = $this->timestamp;
|
||||
$utilA = trouvNom($this->utilA);
|
||||
$utilB = trouvNom($this->utilB);
|
||||
|
||||
$db = new bdd();
|
||||
$db->connexion();
|
||||
$db->escape($titreA);
|
||||
$db->escape($titreB);
|
||||
$db->escape($rapportA);
|
||||
$db->escape($rapportB);
|
||||
$db->escape($utilA);
|
||||
$db->escape($utilB);
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilA, '', '$titreA', '$rapportA', '$temps')");
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilB, '', '$titreB', '$rapportB', '$temps')");
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA.", '$titreA', '$rapportA', '$temps')");
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilB.", '$titreB', '$rapportB', '$temps')");
|
||||
$db->deconnexion();
|
||||
}
|
||||
|
||||
function sendTransport(){
|
||||
global $config;
|
||||
include_once(_FCORE."hb_game/function.php");
|
||||
include_once(_FCORE."../game/function.php");
|
||||
$titre = 'Transport vers '.$this->var[0]['nom_planete'].' ['.$this->var[0]['galaxie'].':'.$this->var[0]['ss'].':'.$this->var[0]['position'].']';
|
||||
|
||||
$race = trouvInfo($this->utilA, 'race');
|
||||
include(_FCORE."hb_game/noms.php");
|
||||
include(_FCORE."../game/noms.php");
|
||||
$rapportA = 'Vos vaisseaux ont déposé '.$this->var[1][0].' de '.$ressourc[0].', '.$this->var[1][1].' de '.$ressourc[1].' et '.$this->var[1][2].' d\''.$ressourc[2].' sur '.$this->var[0]['nom_planete'].'['.$this->var[0]['galaxie'].':'.$this->var[0]['ss'].':'.$this->var[0]['position'].']</b><br /><br />';
|
||||
|
||||
$race = trouvInfo($this->utilB, 'race');
|
||||
include(_FCORE."hb_game/noms.php");
|
||||
include(_FCORE."../game/noms.php");
|
||||
$rapportB = 'Les vaisseaux de '.trouvNom($this->utilA).' ont déposé '.$this->var[1][0].' de '.$ressourc[0].', '.$this->var[1][1].' de '.$ressourc[1].' et '.$this->var[1][2].' d\''.$ressourc[2].' sur '.$this->var[0]['nom_planete'].'['.$this->var[0]['galaxie'].':'.$this->var[0]['ss'].':'.$this->var[0]['position'].']</b><br /><br />';
|
||||
|
||||
$temps = $this->timestamp;
|
||||
$utilA = trouvNom($this->utilA);
|
||||
$utilB = trouvNom($this->utilB);
|
||||
|
||||
$db = new bdd();
|
||||
$db->connexion();
|
||||
$db->escape($titre);
|
||||
$db->escape($rapportA);
|
||||
$db->escape($rapportB);
|
||||
$db->escape($utilA);
|
||||
$db->escape($utilB);
|
||||
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilA, '', '$titre', '$rapportA', '$temps')");
|
||||
if ($utilA != $utilB) $db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilB, '', '$titre', '$rapportB', '$temps')");
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA.", '$titre', '$rapportA', '$temps')");
|
||||
if ($this->utilA != $this->utilB) $db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilB.", '$titre', '$rapportB', '$temps')");
|
||||
$db->deconnexion();
|
||||
}
|
||||
|
||||
function sendColonisation(){
|
||||
include_once(_FCORE."hb_game/function.php");
|
||||
include_once(_FCORE."../game/function.php");
|
||||
$titre = 'Colonisation de ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].']';
|
||||
if ($this->var[1]) $rapport = 'Votre vaisseau a atteint la planète ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].'] et commence la colonisation.';
|
||||
else $rapport = 'Nous n\'avons pas pu coloniser la planète ['.$this->var[0][0].':'.$this->var[0][1].':'.$this->var[0][2].'] car lorsque nous sommes arrivé sur place, elle était déjà colonisée.';
|
||||
|
||||
$temps = $this->timestamp;
|
||||
$utilA = trouvNom($this->utilA);
|
||||
|
||||
$db = new bdd();
|
||||
$db->connexion();
|
||||
$db->escape($titre);
|
||||
$db->escape($rapport);
|
||||
$db->escape($utilA);
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilA, '', '$titre', '$rapport', '$temps')");
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA.", '$titre', '$rapport', '$temps')");
|
||||
$db->deconnexion();
|
||||
}
|
||||
|
||||
function sendRecyclage(){
|
||||
include_once(_FCORE."hb_game/function.php");
|
||||
include_once(_FCORE."../game/function.php");
|
||||
$titre = 'Recyclage de '.$this->var[0]['nom_planete'].' ['.$this->var[0]['galaxie'].':'.$this->var[0]['ss'].':'.$this->var[0]['position'].']';
|
||||
$rapport = 'Vos vaisseaux récoltent '.$this->var[1][0].' de '.$ressourc[0].' et '.$this->var[1][1].' de '.$ressourc[1].' sur '.$this->var[0]['nom_planete'].'['.$this->var[0]['galaxie'].':'.$this->var[0]['ss'].':'.$this->var[0]['position'].']</b><br /><br />';
|
||||
|
||||
$temps = $this->timestamp;
|
||||
$utilA = trouvNom($this->utilA);
|
||||
|
||||
$db = new bdd();
|
||||
$db->connexion();
|
||||
$db->escape($titre);
|
||||
$db->escape($rapport);
|
||||
$db->escape($utilA);
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilA, '', '$titre', '$rapport', '$temps')");
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA.", '$titre', '$rapport', '$temps')");
|
||||
$db->deconnexion();
|
||||
}
|
||||
|
||||
function sendCombat(){
|
||||
include(_FCORE."hb_game/vars.php");
|
||||
include_once(_FCORE."hb_game/function.php");
|
||||
include(_FCORE."../game/vars.php");
|
||||
include_once(_FCORE."../game/function.php");
|
||||
require_once(SMARTY_DIR."Smarty.class.php");
|
||||
|
||||
$rapportA = new Smarty();
|
||||
|
|
@ -221,12 +206,12 @@ class Rapport{
|
|||
$rapportA->assign('nextTour', $this->var[10]);
|
||||
|
||||
$race = trouvInfo($this->utilA, 'race');
|
||||
include(_FCORE."hb_game/noms.php");
|
||||
include(_FCORE."../game/noms.php");
|
||||
$rapportA->assign('ressources', $ressourc);
|
||||
$rapportA->assign('nomvaisAT', $nomvaisa);
|
||||
|
||||
$race = trouvInfo($this->var[4]['id_user'], 'race');
|
||||
include(_FCORE."hb_game/noms.php");
|
||||
include(_FCORE."../game/noms.php");
|
||||
$rapportA->assign('nomvaisEN', $nomvaisa);
|
||||
array_splice($nomterra, 0, 8);
|
||||
$rapportA->assign('nomdefEN', $nomterra);
|
||||
|
|
@ -256,12 +241,12 @@ class Rapport{
|
|||
$rapportB->assign('nextTour', $this->var[10]);
|
||||
|
||||
$race = trouvInfo($this->utilA, 'race');
|
||||
include(_FCORE."hb_game/noms.php");
|
||||
include(_FCORE."../game/noms.php");
|
||||
$rapportB->assign('ressources', $ressourc);
|
||||
$rapportB->assign('nomvaisAT', $nomvaisa);
|
||||
|
||||
$race = trouvInfo($this->var[4]['id_user'], 'race');
|
||||
include(_FCORE."hb_game/noms.php");
|
||||
include(_FCORE."../game/noms.php");
|
||||
$rapportB->assign('nomvaisEN', $nomvaisa);
|
||||
array_splice($nomterra, 0, 8);
|
||||
$rapportB->assign('nomdefEN', $nomterra);
|
||||
|
|
@ -272,25 +257,20 @@ class Rapport{
|
|||
$titreA = 'Combat contre '.$this->var[4]['pseudo'];
|
||||
$titreB = 'Combat contre '.$this->var[5]['pseudo'];
|
||||
$temps = $this->timestamp;
|
||||
$utilA = trouvNom($this->utilA);
|
||||
$utilB = trouvNom($this->utilB);
|
||||
|
||||
$db = new bdd();
|
||||
$db->connexion();
|
||||
$db->escape($titreA);
|
||||
$db->escape($titreB);
|
||||
$db->escape($rapportA);
|
||||
$db->escape($rapportB);
|
||||
$db->escape($utilA);
|
||||
$db->escape($utilB);
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilA, '', '$titreA', '$rapportA', '$temps')");
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilB, '', '$titreB', '$rapportB', '$temps')");
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA.", '$titreA', '$rapportA', '$temps')");
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilB."', '$titreB', '$rapportB', '$temps')");
|
||||
$db->deconnexion();
|
||||
}
|
||||
|
||||
function show(){
|
||||
include(_FCORE."hb_game/vars.php");
|
||||
include_once(_FCORE."hb_game/function.php");
|
||||
include(_FCORE."../game/vars.php");
|
||||
include_once(_FCORE."../game/function.php");
|
||||
require_once(SMARTY_DIR."Smarty.class.php");
|
||||
|
||||
$rapportA = new Smarty();
|
||||
|
|
@ -332,7 +312,7 @@ class Rapport{
|
|||
$rapportA->assign('nextTour', $this->var[10]);
|
||||
|
||||
$race = trouvInfo($this->utilA, 'race');
|
||||
include(_FCORE."hb_game/noms.php");
|
||||
include(_FCORE."../game/noms.php");
|
||||
$rapportA->assign('ressources', $ressourc);
|
||||
$rapportA->assign('nomvaisAT', $nomvaisa);
|
||||
$rapportA->assign('nomvaisEN', $nomvaisa);
|
||||
|
|
@ -345,7 +325,7 @@ class Rapport{
|
|||
}
|
||||
|
||||
function sendAlliance(){
|
||||
include_once(_FCORE."hb_game/function.php");
|
||||
include_once(_FCORE."../game/function.php");
|
||||
$titreA = 'Déclaration officielle de votre alliance !';
|
||||
$rapportA = 'Félicitations, votre alliance a recueilli suffisament de signature, sa déclaration est maintenant officielle !<br /><br />Vous pouvez dès maintenant administrer votre alliance en vous rendant sur la page Alliance.';
|
||||
|
||||
|
|
@ -355,14 +335,12 @@ class Rapport{
|
|||
$db->connexion();
|
||||
$db->escape($titreA);
|
||||
$db->escape($rapportA);
|
||||
$utilA = trouvNom($this->utilA);
|
||||
$db->escape($utilA);
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilA, '', '$titreA', '$rapportA', '$temps')");
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA.", '$titreA', '$rapportA', '$temps')");
|
||||
$db->deconnexion();
|
||||
}
|
||||
|
||||
function sendAlliance2(){
|
||||
include_once(_FCORE."hb_game/function.php");
|
||||
include_once(_FCORE."../game/function.php");
|
||||
$titreA = 'Fondation de votre alliance !';
|
||||
$rapportA = 'Pour terminer la création de votre alliance, trouvez 4 joueurs de cette galaxie sans alliance pour leur faire signer votre traité de fondation d\'alliance.<br /><br />Lien de signature : <a href="?p=alliances&q=signer&i='.$this->var[0].'">http://'.$_SERVER['HTTP_HOST'].'/?p=alliances&q=signer&i='.$this->var[0].'</a>';
|
||||
|
||||
|
|
@ -372,9 +350,7 @@ class Rapport{
|
|||
$db->connexion();
|
||||
$db->escape($titreA);
|
||||
$db->escape($rapportA);
|
||||
$utilA = trouvNom($this->utilA);
|
||||
$db->escape($utilA);
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, expediteur, sujet, contenu, temps) VALUES($utilA, '', '$titreA', '$rapportA', '$temps')");
|
||||
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA.", '$titreA', '$rapportA', '$temps')");
|
||||
$db->deconnexion();
|
||||
}
|
||||
}
|
||||
108
game/Class/class.user.php
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
<?php
|
||||
/***************************************************************************
|
||||
* class.user.php
|
||||
* ----------------
|
||||
* begin : Dimanche 7 septembre 2008
|
||||
* update : Dimanche 7 septembre 2008
|
||||
* email : nemunaire@gmail.com
|
||||
*
|
||||
*
|
||||
***************************************************************************/
|
||||
class User{
|
||||
var $id_user,
|
||||
$pseudo,
|
||||
$auth_level,
|
||||
$race,
|
||||
$id_alliance,
|
||||
$id_grade_alliance,
|
||||
$mail,
|
||||
$envoyerMail,
|
||||
$technologies = array(),
|
||||
$destinationsFavoris,
|
||||
$amis,
|
||||
$combatAT_tactique,
|
||||
$combatDE_tactique,
|
||||
$modifUser = array();
|
||||
|
||||
/**
|
||||
* Constructeur
|
||||
* @param int $id id de la planète à importer
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function User($id = 0){
|
||||
if (!empty($id)) {
|
||||
global $var___db, $config, $table_user;
|
||||
global $technoloVAR;
|
||||
$bdd = new bdd();
|
||||
$bdd->connexion();
|
||||
$bdd->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->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->combatAT_tactique = $user["combatAT_tactique"];
|
||||
$this->combatDE_tactique = $user["combatDE_tactique"];
|
||||
|
||||
foreach($technoloVAR as $tech){
|
||||
$this->technologies[] = $user[$tech];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Destructeur
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function __destruct(){
|
||||
global $var___db, $config, $table_user;
|
||||
$nb = count($this->modifUser);
|
||||
$out = array();
|
||||
$bdd = new bdd();
|
||||
$bdd->connexion();
|
||||
for($i = 0; $i < $nb; $i++){
|
||||
if (!is_array($this->{$this->modifUser[$i]})) {
|
||||
$bdd->escape($this->{$this->modifUser[$i]});
|
||||
if (is_int($this->{$this->modifUser[$i]}) || is_float($this->{$this->modifUser[$i]})) $out[] .= $this->modifUser[$i]." = ".$this->{$this->modifUser[$i]};
|
||||
else $out[] .= $this->modifUser[$i]." = '".$this->{$this->modifUser[$i]}."'";
|
||||
}
|
||||
else {
|
||||
if (ereg('file', $this->modifUser[$i])) {
|
||||
$prep = implode(';', $this->{$this->modifUser[$i]});
|
||||
$bdd->escape($prep);
|
||||
$out[] .= $this->modifUser[$i]." = '$prep'";
|
||||
}
|
||||
else {
|
||||
if ($this->modifUser[$i] == "batiments") $calc = "batiment";
|
||||
elseif ($this->modifUser[$i] == "technologies") $calc = "technolo";
|
||||
elseif ($this->modifUser[$i] == "casernes")$calc = "casernen";
|
||||
elseif ($this->modifUser[$i] == "terrestres") $calc = "nomterrn";
|
||||
elseif ($this->modifUser[$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->modifUser[$i]}[$j]);
|
||||
$out[] .= ${$calc.'VAR'}[$j]." = ".$this->{$this->modifUser[$i]}[$j];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!empty($out)) $plan = $bdd->unique_query("UPDATE $table_user SET ".implode(', ', $out)." WHERE id = ".$this->id_user.";");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
}
|
||||
?>
|
||||
118
game/Class/nouv class.gerefile.php
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
<?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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
2
game/cache/bourse/1.20080913.bourse
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
1221316749;1331.143;1331.143
|
||||
1221316774;1610.6794;1610.6794
|
||||
1
game/cache/inline.cache
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
1
|
||||
1
game/cache/nbcovie.cache
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
14
|
||||
1
game/cache/nbhumain.cache
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
16
|
||||
BIN
game/cache/signatures/2..sign
vendored
Normal file
|
After Width: | Height: | Size: 85 KiB |
BIN
game/cache/signatures/6..sign
vendored
Normal file
|
After Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB |
10
game/cron/bourse.php
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
if(!defined('CRON')) { header('Location: ../'); exit; }
|
||||
print '<br /><br />Début des taches de la bourse ; il est : '.date('d/m/Y H:i:s');
|
||||
|
||||
$bdd->connexion();
|
||||
$bdd->query("UPDATE $table_bourse SET metalAnc = metal, cristalAnc = cristal");
|
||||
$bdd->deconnexion();
|
||||
|
||||
print '<br />Fin des taches de la bourse ; il est : '.date('d/m/Y H:i:s').'<br />';
|
||||
?>
|
||||
109
game/cron/classement.php
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
<?php
|
||||
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');
|
||||
|
||||
//*
|
||||
//Classement Joueurs
|
||||
$bdd->connexion();
|
||||
$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];
|
||||
$pointsbat = 0;
|
||||
$pointsterr = 0;
|
||||
$pointsvais = 0;
|
||||
|
||||
$bdd->connexion();
|
||||
$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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$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;
|
||||
}
|
||||
}
|
||||
|
||||
$pointstech /= 1000;
|
||||
$pointsvais /= 1000;
|
||||
$pointsterr /= 1000;
|
||||
$pointsbat /= 1000;
|
||||
$points = $pointsbat + $pointsterr + $pointsvais + $pointstech;
|
||||
$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);");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
|
||||
$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) {
|
||||
$p++;
|
||||
$bdd->query("UPDATE $table_user SET place_points = $p WHERE id = ".$classement[$i]['id']);
|
||||
}
|
||||
else $bdd->query("UPDATE $table_user SET place_points = 0 WHERE id = ".$classement[$i]['id']);
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
//*/
|
||||
print '<br />Fin de la génération du classement joueur ; il est : '.date('d/m/Y H:i:s');
|
||||
|
||||
//Classement Alliances
|
||||
$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'].");");
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
|
||||
print '<br />Fin de la génération du classement ; il est : '.date('d/m/Y H:i:s');
|
||||
?>
|
||||
34
game/cron/inactifs.php
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
if(!defined('CRON')) { header('Location: ../'); exit; }
|
||||
print '<br /><br />Début de la gestion des joueurs inactifs ; il est : '.date('d/m/Y H:i:s');
|
||||
|
||||
$limite1 = time() - 7 * 86400;
|
||||
$limite2 = time() - 8 * 86400;
|
||||
$limiteS = time() - 14 * 86400;
|
||||
$bdd->connexion();
|
||||
$utils = $bdd->query("SELECT id, pseudo, mail FROM $table_user WHERE last_visite < $limite1 AND last_visite > $limite2 AND mv = 0;");
|
||||
$utils['nombre'] = $bdd->num_rows;
|
||||
for($i = 0; $i < $utils['nombre']; $i++){
|
||||
send_mail($utils[$i]['mail'], "Compte de jeu inactif", '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Halo-Battle :: Compte de jeu inactif</title></head><body><p>Bonjour '.$utils[$i]['pseudo'].',<br />Cela fait plus d\'une semaine que vous ne vous êtes pas connecté au jeu <a href="http://www.halo-battle.s-fr.com/">Halo-Battle</a>.<br />Pour que vos planètes et vos vaisseaux soient concervés, pensez à mettre votre compte en mode vacances avant qu\'il ne soit définitivement supprimé de nos serveurs.<br /><br />A bientôt dans Halo-Battle,<br />Le staff</p></body></html>');
|
||||
print '<br />Envoie d\'un mail au joueur inactif '.$utils[$i]['pseudo'];
|
||||
}
|
||||
|
||||
$utils = $bdd->query("SELECT id, pseudo, mail FROM $table_user WHERE last_visite < $limiteS AND mv = 0;");
|
||||
$utils['nombre'] = $bdd->num_rows;
|
||||
for($i = 0; $i < $utils['nombre']; $i++){
|
||||
send_mail($utils[$i]['mail'], "Compte de jeu supprimé", '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Halo-Battle :: Suppression de votre compte</title></head><body><p>Bonjour '.$utils[$i]['pseudo'].',<br />Cela fait plus de deux semaines que vous ne vous êtes pas connecté au jeu <a href="http://www.halo-battle.s-fr.com/">Halo-Battle</a>.<br />Votre compte ainsi que toutes les données personnelles vous concernant viennent d\'être supprimées de notre serveur de jeu, ainsi, vous ne recevrez plus de courriels de notre part.<br /><br />A bientôt dans Halo-Battle,<br />Le staff</p></body></html>');
|
||||
/* $bdd->query("DELETE FROM $table_flottes WHERE id_user = ".$utils[$i]['id']);
|
||||
//TODO vérifier la suppression desactions du joueur
|
||||
$action = new Bourse();
|
||||
$action->delUser($utils[$i]['id']);
|
||||
//TODO Ajouter CASCADE !! pour supprimer les combats avec les flottes
|
||||
$bdd->query("DELETE FROM $table_planete WHERE id_user = ".$utils[$i]['id']);
|
||||
$bdd->query("DELETE FROM $table_user WHERE id = ".$utils[$i]['id']);
|
||||
$bdd->query("DELETE FROM $table_mail WHERE destinataire = ".$utils[$i]['pseudo']);
|
||||
$bdd->query("DELETE FROM $table_mail WHERE expediteur = ".$utils[$i]['pseudo']);
|
||||
*/ print '<br />Envoie d\'un mail et suppression du joueur inactif '.$utils[$i]['pseudo'];
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
|
||||
print '<br />Fin de la gestion des joueurs inactifs ; il est : '.date('d/m/Y H:i:s').'<br />';
|
||||
?>
|
||||
110
game/cron/sauvebdd.php
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
<?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';
|
||||
}
|
||||
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();
|
||||
}
|
||||
|
||||
print '<br />Fin de la sauvegarde de la base de données ; il est : '.date('d/m/Y H:i:s').'<br />';
|
||||
?>
|
||||
27
game/cron/suppr_joueurs.php
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
if(!defined('CRON')) { header('Location: ../'); exit; }
|
||||
print '<br /><br />Début de la suppression des joueurs ; il est : '.date('d/m/Y H:i:s');
|
||||
|
||||
require(_FCORE."../game/Class/class.bourse.php");
|
||||
|
||||
$bdd->connexion();
|
||||
$utils = $bdd->query("SELECT id, pseudo, bourse FROM $table_user WHERE mv = -1;");
|
||||
$utils['nombre'] = $bdd->num_rows;
|
||||
for($i = 0; $i < $utils['nombre']; $i++){
|
||||
//TODO vérifier la suppression desactions du joueur
|
||||
$action = new Bourse();
|
||||
$action->delUser($utils[$i]['id']);
|
||||
|
||||
$bdd->query("DELETE FROM $table_flottes WHERE id_user = ".$utils[$i]['id']);
|
||||
//TODO Ajouter CASCADE !! pour supprimer les combats avec les flottes
|
||||
$bdd->query("DELETE FROM $table_planete WHERE id_user = ".$utils[$i]['id']);
|
||||
$bdd->query("DELETE FROM $table_user WHERE id = ".$utils[$i]['id']);
|
||||
$bdd->query("DELETE FROM $table_mail WHERE destinataire = ".$utils[$i]['pseudo']);
|
||||
$bdd->query("DELETE FROM $table_mail WHERE expediteur = ".$utils[$i]['pseudo']);
|
||||
print '<br />Supression de l\'utilisateur '.$utils[$i]['pseudo'];
|
||||
}
|
||||
$bdd->query("UPDATE $table_user SET mv = -1 WHERE mv = -2;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
print '<br />Fin de la suppression des joueurs ; il est : '.date('d/m/Y H:i:s').'<br />';
|
||||
?>
|
||||
19
game/fermerServeur.php
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
if ($config['stnb'] && (!isset($sess->values['auth_level']) || $sess->values['auth_level'] < 8)) {
|
||||
switch($config['stnb']){
|
||||
case 1:
|
||||
$titre = 'Serveur en maintenance';
|
||||
$contenu = 'Nous effectuons actuellement des opérations de maintenance sur le serveur, il est indisponible durant '.($config['dureestnb']/60).' minutes.<br /><br />Pour plus d\'information sur les corrections et nouveautés apportés, nous vous conseillons de lire l\'<a href="'.$config['link']['accueil'].'" class="lien">annonce officielle de cette maintenance sur le forum du jeu</a>.<br /><br />Merci de votre compréhension';
|
||||
break;
|
||||
case 2:
|
||||
$titre = 'Serveur en maintenance';
|
||||
$contenu = 'Nous effectuons actuellement des opérations de maintenance sur le serveur, il est indisponible durant '.($config['dureestnb']/60).' minutes.<br /><br />Pour plus d\'information sur les corrections et nouveautés apportés, nous vous conseillons de lire la <a href="'.$config['link']['accueil'].'" class="lien">HB Weekly Update sur le forum du jeu</a>.<br /><br />Merci de votre compréhension';
|
||||
break;
|
||||
}
|
||||
|
||||
$template->assign('titre', $titre);
|
||||
$template->assign('texte', $contenu);
|
||||
$template->display('cms/maj.tpl');
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
|
|
@ -6,7 +6,7 @@ set_time_limit(0);
|
|||
* L'ATTAQUé.
|
||||
*/
|
||||
|
||||
require_once(_FCORE."hb_game/Class/class.rapport.php");
|
||||
require_once(_FCORE."../game/Class/class.rapport.php");
|
||||
|
||||
function resteVaisseau($tableau){
|
||||
$ct = count($tableau);
|
||||
|
|
@ -57,7 +57,7 @@ for ($i = 0; $i < $nbFlottes; $i++) {
|
|||
if ($queryFlottes[$i]['effectue'] != 1 && time() >= $queryFlottes[$i]['start_time'] + $queryFlottes[$i]['end_time'] && !empty($queryFlottes[$i]['end_time'])) {
|
||||
//Mission Attaquer
|
||||
if ($mission == 1) {
|
||||
require_once(_FCORE."hb_game/Class/class.combat.php");
|
||||
require_once(_FCORE."../game/Class/class.combat.php");
|
||||
$bdd->connexion();
|
||||
//On regarde si le combat a déjà commencé
|
||||
if ($queryFlottes[$i]['effectue'] == 2) {
|
||||
|
|
@ -71,8 +71,8 @@ for ($i = 0; $i < $nbFlottes; $i++) {
|
|||
//Récupération du combat
|
||||
$combat = unserialize($queryCombat['serialize']);
|
||||
//Mise à jour des tactiques
|
||||
if (!empty($queryCombat['tactiqueAT'])) $combat->changerTactiqueAT($queryCombat['tactiqueAT']);
|
||||
if (!empty($queryCombat['tactiqueEN'])) $combat->changerTactiqueEN($queryCombat['tactiqueEN']);
|
||||
if (!empty($queryFlottes[$i]['tactiqueAT'])) $combat->changerTactiqueAT($queryFlottes[$i]['tactiqueAT']);
|
||||
if (!empty($queryFlottes[$i]['tactiqueEN'])) $combat->changerTactiqueEN($queryFlottes[$i]['tactiqueEN']);
|
||||
}
|
||||
else continue;
|
||||
}
|
||||
|
|
@ -3,16 +3,25 @@ function trouvNom($id_user){
|
|||
global $table_user;
|
||||
$base = new bdd();
|
||||
$base->connexion();
|
||||
$resultat = $base->unique_query("SELECT pseudo FROM $table_user WHERE id = '$id_user'");
|
||||
$resultat = $base->unique_query("SELECT pseudo FROM $table_user WHERE id = $id_user;");
|
||||
$base->deconnexion();
|
||||
return $resultat['pseudo'];
|
||||
}
|
||||
|
||||
function trouvId($nom){
|
||||
global $table_user;
|
||||
$base = new bdd();
|
||||
$base->connexion();
|
||||
$resultat = $base->unique_query("SELECT id FROM $table_user WHERE pseudo = '$nom';");
|
||||
$base->deconnexion();
|
||||
return $resultat['id'];
|
||||
}
|
||||
|
||||
function trouvInfo($id_user, $info){
|
||||
global $table_user;
|
||||
$base = new bdd();
|
||||
$base->connexion();
|
||||
$resultat = $base->unique_query("SELECT $info FROM $table_user WHERE id = '$id_user'");
|
||||
$resultat = $base->unique_query("SELECT $info FROM $table_user WHERE id = $id_user;");
|
||||
$base->deconnexion();
|
||||
return $resultat[$info];
|
||||
}
|
||||
|
|
@ -49,27 +58,43 @@ function sec($time) {
|
|||
return $output;
|
||||
}
|
||||
|
||||
function readDeblok($tableau, $queryPlanete, $queryUser){
|
||||
function readDeblok($tableau, $queryPlanete){
|
||||
global $batimentVAR, $technoloVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR;
|
||||
if ($tableau == '0') return 'Débloqué';
|
||||
else {
|
||||
$nbDeblok = count($tableau);
|
||||
$return = '';
|
||||
for ($i=0 ; $i<$nbDeblok ; $i++) {
|
||||
if (isset($queryPlanete[$tableau[$i][1]])) $return .= techno($tableau[$i][0], $queryPlanete[$tableau[$i][1]], $tableau[$i][2]).'<br />';
|
||||
else $return .= techno($tableau[$i][0], $queryUser[$tableau[$i][1]], $tableau[$i][2]).'<br />';
|
||||
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';
|
||||
else return '#Error';
|
||||
|
||||
//print $tableau[$i][2];
|
||||
if (isset($var)) $return .= techno($tableau[$i][0], $queryPlanete->{$var}[$x], $tableau[$i][2]).'<br />';
|
||||
}
|
||||
return $return;
|
||||
if (empty($return)) return 'Débloqué';
|
||||
else return $return;
|
||||
}
|
||||
}
|
||||
|
||||
function requestDeblok($tableau, $queryPlanete, $queryUser){
|
||||
function requestDeblok($tableau, $queryPlanete){
|
||||
global $batimentVAR, $technoloVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR;
|
||||
if ($tableau == '0') return true;
|
||||
else {
|
||||
$nbDeblok = count($tableau);
|
||||
$return = true;
|
||||
for ($i=0 ; $i<$nbDeblok ; $i++) {
|
||||
if (isset($queryPlanete[$tableau[$i][1]]) && $queryPlanete[$tableau[$i][1]] < $tableau[$i][2]) $return = false;
|
||||
elseif (isset($queryUser[$tableau[$i][1]]) && $queryUser[$tableau[$i][1]] < $tableau[$i][2]) $return = false;
|
||||
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';
|
||||
else return false;
|
||||
|
||||
if (isset($var) && $queryPlanete->{$var}[$x] < $tableau[$i][2]) $return = false;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
|
@ -193,11 +218,11 @@ function vais_conso($tempsDeplacement,$nbvais = 1){
|
|||
return intval($tempsDeplacement*$nbvais/20);
|
||||
}
|
||||
|
||||
function send_mail($mail, $sujet, $corps){
|
||||
require_once(_FCORE."hb_game/Class/class.phpmailer.php");
|
||||
function send_mail($admail, $sujet, $corps){
|
||||
require_once(_FCORE."../game/Class/class.phpmailer.php");
|
||||
|
||||
$mail = new PHPmailer();
|
||||
$mail->SetLanguage('fr', _FCORE."hb_game/Class/");
|
||||
$mail->SetLanguage('fr', _FCORE."../game/Class/");
|
||||
$mail->IsSMTP();
|
||||
$mail->IsHTML(true);
|
||||
$mail->Host='s-fr.com';
|
||||
|
|
@ -207,7 +232,7 @@ function send_mail($mail, $sujet, $corps){
|
|||
$mail->Username='no-reply@halo-battle.s-fr.com';
|
||||
$mail->Password='hD3e2nXu';
|
||||
|
||||
$mail->AddAddress($mail);
|
||||
$mail->AddAddress($admail);
|
||||
$mail->AddReplyTo('no-reply@halo-battle.s-fr.com');
|
||||
$mail->Subject = $sujet;
|
||||
$mail->Body = $corps;
|
||||
|
|
@ -218,8 +243,67 @@ function send_mail($mail, $sujet, $corps){
|
|||
return $return;
|
||||
}
|
||||
|
||||
function mdp($nom, $mdp, $alea){
|
||||
hash_var(strtoupper($HB_login).':'.$HB_password.'♂♪'.$var['mdp_var']);
|
||||
// xor
|
||||
function send_mailHTML($admail, $sujet, $corps){
|
||||
require_once(_FCORE."../game/Class/class.phpmailer.php");
|
||||
|
||||
$mail = new PHPmailer();
|
||||
$mail->SetLanguage('fr', _FCORE."../game/Class/");
|
||||
$mail->IsSMTP();
|
||||
$mail->IsHTML(true);
|
||||
$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($admail);
|
||||
$mail->AddReplyTo('no-reply@halo-battle.s-fr.com');
|
||||
$mail->Subject = 'Halo-Battle :: '.$sujet;
|
||||
$mail->Body = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Halo-Battle :: '.$sujet.'</title></head><body><p>'.$corps.'<br /><br />A bientôt dans Halo-Battle,<br />Le staff</p></body></html>';
|
||||
|
||||
$return = $mail->Send();
|
||||
$mail->SmtpClose();
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
function erreur($message, $color = "red", $lien = "", $temps = 2500){
|
||||
global $template;
|
||||
$template->assign('message', $message);
|
||||
if (!empty($lien)) $template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="'.$lien.'";\', '.$temps.');</script>');
|
||||
$template->assign('couleur',$color);
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
|
||||
function send_mp($joueur, $titre, $message){
|
||||
global $table_mail;
|
||||
$temps = time();
|
||||
if (!is_numeric($joueur)) $joueur = trouvId($joueur);
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
function nameLink($id, $type){
|
||||
global $race;
|
||||
require(_FCORE."../game/noms.php");
|
||||
|
||||
if ($type == "technologie") return '<a href="?p=description&t=1">'.$technolo[$id].'</a>';
|
||||
}
|
||||
|
||||
function mdp($nom, $mdp, $alea = false){
|
||||
if (empty($alea)) {
|
||||
$alea = random(1024);
|
||||
return array(hash_var(cxor(strtoupper($nom).':'.$mdp.'♂♪',$alea)), $alea);
|
||||
}
|
||||
else return hash_var(cxor(strtoupper($nom).':'.$mdp.'♂♪',$alea));
|
||||
}
|
||||
?>
|
||||
32
game/jeu/accueil.php
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'accueil';
|
||||
$titre = 'Accueil';
|
||||
|
||||
//Affichage de l'alliance du joueur
|
||||
$bdd->connexion();
|
||||
$alli = $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = '".$queryUser['id_alliance']."';");
|
||||
|
||||
//On regarde si le joueur a une flotte en vue
|
||||
$radar = array();
|
||||
$nbPlan = count($queryPlanetes);
|
||||
$detect = $queryUser['detection']*1800;
|
||||
for($i = 0; $i < $nbPlan; $i++){
|
||||
$end_galaxie = $queryPlanetes[$i]['galaxie'];
|
||||
$end_ss = $queryPlanetes[$i]['ss'];
|
||||
$end_position = $queryPlanetes[$i]['position'];
|
||||
$radar[] = array($bdd->query("SELECT F.mission, F.start_galaxie, F.start_ss, F.start_position, F.start_time, F.end_time, F.start_time + F.end_time - ".time()." AS arrive_time, P.nom_planete, U.pseudo FROM $table_flottes F INNER JOIN $table_planete P ON P.galaxie = F.start_galaxie AND P.ss = F.start_ss AND P.position = F.start_position INNER JOIN $table_user U ON U.id = P.id_user WHERE F.effectue != '1' AND F.end_galaxie = '$end_galaxie' AND F.end_ss = '$end_ss' AND F.end_position = '$end_position' AND F.id_user != $id_user AND F.start_time + F.end_time - ".time()." <= $detect;"), array($queryPlanetes[$i]['nom_planete'], $queryPlanetes[$i]['galaxie'], $queryPlanetes[$i]['ss'], $queryPlanetes[$i]['position']));
|
||||
}
|
||||
|
||||
$bdd->deconnexion();
|
||||
|
||||
//Affichage des informations sur la planète
|
||||
$diametre = separerNombres($planete->cases * 92);
|
||||
$Classpoints = separerNombres($queryUser['points']);
|
||||
|
||||
$template->assign('mail', $queryMail);
|
||||
$template->assign('radar',$radar);
|
||||
$template->assign('diametre',$diametre);
|
||||
$template->assign('points',$Classpoints);
|
||||
$template->assign('alliance', $alli);
|
||||
?>
|
||||
15
game/jeu/admin/accueil.php
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$pagea = 'accueil';
|
||||
$titre = 'Accueil administration';
|
||||
|
||||
$bdd->connexion();
|
||||
$mail = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_ope_mail WHERE statut = 0;");
|
||||
$pilori = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_user WHERE mv > 1;");
|
||||
$news = $bdd->query("SELECT * FROM $table_ope_news ORDER BY id ASC LIMIT 3;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$template->assign('nbMail', $mail['nombre']);
|
||||
$template->assign('nbPilori', $pilori['nombre']);
|
||||
$template->assign('news', $news);
|
||||
?>
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$pagea = 'print';
|
||||
$titre = 'Vérification planète';
|
||||
$titre = 'Vérification alliance';
|
||||
|
||||
$template->assign('linkpage', 'valliances');
|
||||
|
||||
64
game/jeu/admin/demarrage.php
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$pagea = 'demarrage';
|
||||
$titre = 'Page de démarrage';
|
||||
|
||||
$template->assign('linkpage', 'demarrage');
|
||||
|
||||
if (!empty($_GET['i']) && $_GET['i'] == 'add') {
|
||||
if (!empty($_POST['contenu']) && isset($_POST['titre'])) {
|
||||
$titre = gpc('titre', 'post');
|
||||
$contenu = gpc('contenu', 'post');
|
||||
$chapeau->connexion();
|
||||
$chapeau->escape($titre);
|
||||
$chapeau->escape($contenu);
|
||||
$time = time();
|
||||
$chapeau->query("INSERT INTO $table_messages_demarrage (titre, contenu, time) VALUES ('$titre', '$contenu', $time);");
|
||||
$chapeau->deconnexion();
|
||||
|
||||
header('Location: admin.php?p=demarrage');
|
||||
exit;
|
||||
}
|
||||
$template->assign('id', 'add');
|
||||
$pagea = 'demarrage_add';
|
||||
}
|
||||
elseif (!empty($_GET['i'])) {
|
||||
$id = $_GET['i'];
|
||||
if (!empty($_POST['contenu']) && isset($_POST['titre'])) {
|
||||
$titre = gpc('titre', 'post');
|
||||
$texte = gpc('contenu', 'post');
|
||||
$chapeau->connexion();
|
||||
$chapeau->escape($titre);
|
||||
$chapeau->escape($texte);
|
||||
$time = time();
|
||||
$reset = gpc('reset', 'post');
|
||||
if (!empty($reset)) $chapeau->query("UPDATE $table_messages_demarrage SET contenu = '$texte', titre = '$titre', time = $time WHERE id = '$id';");
|
||||
else $chapeau->query("UPDATE $table_messages_demarrage SET contenu = '$texte', titre = '$titre' WHERE id = '$id';");
|
||||
$chapeau->deconnexion();
|
||||
|
||||
header('Location: admin.php?p=demarrage');
|
||||
exit;
|
||||
}
|
||||
$chapeau->connexion();
|
||||
$req = $chapeau->unique_query("SELECT * FROM $table_messages_demarrage WHERE id = '$id';");
|
||||
$chapeau->deconnexion();
|
||||
$template->assign('mod', $req);
|
||||
$template->assign('id', $id);
|
||||
$pagea = 'demarrage_add';
|
||||
}
|
||||
elseif (!empty($_GET['d'])) {
|
||||
$id = $_GET['d'];
|
||||
$chapeau->connexion();
|
||||
$chapeau->query("DELETE FROM $table_messages_demarrage WHERE id = '$id';");
|
||||
$chapeau->deconnexion();
|
||||
|
||||
header('Location: admin.php?p=demarrage');
|
||||
exit;
|
||||
}
|
||||
else {
|
||||
$chapeau->connexion();
|
||||
$req = $chapeau->query("SELECT * FROM $table_messages_demarrage;");
|
||||
$chapeau->deconnexion();
|
||||
$template->assign('tableau', $req);
|
||||
}
|
||||
?>
|
||||
14
game/jeu/admin/inscription.php
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$titre = 'Création d\'inscription';
|
||||
$pagea = 'inscription';
|
||||
|
||||
if (!empty($_POST['HB_pseudo']) && !empty($_POST['race'])) {
|
||||
if ($_POST['HB_conf'] == $_POST['HB_mdp'] && !empty($_POST['HB_mdp'])) {
|
||||
$res = $_POST;
|
||||
$cds = sha1($res['HB_pseudo'].'$'.$res['race'].'£'.$res['HB_mdp'].'#'.$res['HB_mail'].'ß'.time().'Ó'.$_SERVER['HTTP_USER_AGENT'].'♀☻'.$_SERVER['REMOTE_ADDR'].$res['HB_placement']);
|
||||
erreur('URL : ?p=njoueur&nom='.$res['HB_pseudo'].'&race='.$res['race'].'&mdp='.$res['HB_mdp'].'&mail='.$res['HB_mail'].'&ti='.time().'&placement='.$res['HB_placement'].'&cds='.$cds.'<br /><br />L\'inscription doit avoir lieu par vous même en raison des procédures de sécurités !', "white");
|
||||
}
|
||||
else erreur('Mot de passe incorrect !');
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$pagea = 'rapports';
|
||||
$titre = 'Vérification planète';
|
||||
$titre = 'Afficher les rapports d\'un joueur';
|
||||
|
||||
$template->assign('linkpage', 'vrapports');
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$titre = 'Supprimer joueur';
|
||||
$titre = '!!! Supprimer joueur !!!';
|
||||
$pagea = 'erreur';
|
||||
|
||||
$template->assign('linkpage', 'djoueurs');
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$titre = 'Alliance';
|
||||
include_once(_FCORE."hb_game/Class/class.rapport.php");
|
||||
include_once(_FCORE."../game/Class/class.rapport.php");
|
||||
|
||||
//Si le joueur est membre de l'alliance
|
||||
$bdd->connexion();
|
||||
|
|
@ -52,7 +52,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';
|
||||
|
|
@ -67,7 +67,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
|
||||
}
|
||||
elseif ($_GET['q'] == 'adm_grades' && $access['membre']) {
|
||||
if (isset($_GET['a']) && $_GET['a'] = 'add') {
|
||||
if (isset($_GET['a']) && $_GET['a'] == 'add') {
|
||||
if (!empty($_POST['nom']) && isset($_POST['description'])) {
|
||||
$nom = $_POST['nom'];
|
||||
$description = $_POST['description'];
|
||||
|
|
@ -88,11 +88,21 @@ 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';
|
||||
}
|
||||
elseif (!empty($_GET['i']) && isset($_GET['a']) && $_GET['a'] == 'del') {
|
||||
$i = gpc('i');
|
||||
$bdd->connexion();
|
||||
$bdd->escape($i);
|
||||
$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');
|
||||
exit;
|
||||
}
|
||||
elseif (!empty($_GET['i'])) {
|
||||
$page = 'alliance_adm_grades_add';
|
||||
$i = $_GET['i'];
|
||||
|
|
@ -123,7 +133,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';
|
||||
|
|
@ -158,6 +168,39 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
}
|
||||
$page = 'alliance_adm_mpmass';
|
||||
}
|
||||
elseif ($_GET['q'] == 'adm_emprunt' && $access['membre']) {
|
||||
$u = gpc('u');
|
||||
$a = gpc('a');
|
||||
if (!empty($a) && is_numeric($a)) {
|
||||
$bdd->escape($a);
|
||||
$demande = $bdd->unique_query("SELECT * FROM $table_alliances_emprunt WHERE id=$a");
|
||||
if ($bdd->query("UPDATE $table_alliances SET metal = metal - ".$demande['metal'].", cristal = cristal - ".$demande['cristal'].", hydrogene = hydrogene - ".$demande['hydrogene']." WHERE id = ".$alliance['id'].";") == NULL) {
|
||||
$bdd->query("UPDATE $table_planete SET metal = metal + ".$demande['metal'].", cristal = cristal + ".$demande['cristal'].", hydrogene = hydrogene + ".$demande['hydrogene']." WHERE id_user = ".$demande['id_user']." LIMIT 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');
|
||||
exit;
|
||||
}
|
||||
else erreur('Impossible d\'accepter la demande de financement pour le moment.');
|
||||
}
|
||||
elseif (!empty($u) && is_numeric($u)) {
|
||||
$bdd->escape($u);
|
||||
$demande = $bdd->unique_query("SELECT id_user FROM $table_alliances_emprunt WHERE id=$u");
|
||||
$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');
|
||||
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'].";");
|
||||
$template->assign('demandes', $demandes);
|
||||
|
||||
$alliance['metalS'] = separerNombres($alliance['metal']);
|
||||
$alliance['cristalS'] = separerNombres($alliance['cristal']);
|
||||
$alliance['hydrogeneS'] = separerNombres($alliance['hydrogene']);
|
||||
$template->assign('alliance', $alliance); $page = 'alliance_adm_emprunt';
|
||||
}
|
||||
elseif ($_GET['q'] == 'adm_alliance' && $access['alliance']) {
|
||||
$recharg = false;
|
||||
if (isset($_POST['defcon']) && isset($_POST['defcon_txt']) && isset($_POST['etat_inscription']) && isset($_POST['image']) && isset($_POST['url'])) {
|
||||
|
|
@ -216,7 +259,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';
|
||||
|
|
@ -257,7 +300,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$bdd->escape($user);
|
||||
$bdd->query("UPDATE $table_user SET id_grade_alliance = '0', id_alliance = '0' WHERE id = '".$user."' AND id_alliance = '".$alliance['id']."';");
|
||||
$bdd->deconnexion();
|
||||
//TODO Envoyer un message au joueur renvoyé
|
||||
send_mp($user, '['.strtoupper($alliance['tag']).'] Renvoie de l\'alliance', 'Vous venez d\'être renvoyé de votre alliance.');
|
||||
}
|
||||
elseif (!empty($_GET['accept'])) {
|
||||
$user = floor($_GET['accept']);
|
||||
|
|
@ -267,7 +310,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
if ($verif) {
|
||||
$bdd->query("UPDATE $table_user SET id_grade_alliance = '0', id_alliance = '".$alliance['id']."' WHERE id = '".$user."' AND id_alliance = '0';");
|
||||
$bdd->query("DELETE FROM $table_alliances_attente WHERE id_membre = '$user';");
|
||||
//TODO Envoyer un message au joueur renvoyé
|
||||
send_mp($user, '['.strtoupper($alliance['tag']).'] Bienvenue dans l\'alliance '.$alliance['nom'], 'L\'alliance '.$alliance['nom'].' a accepté votre demande d\'intégration.<br />Félicitations !');
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
|
|
@ -277,7 +320,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
$bdd->escape($user);
|
||||
$bdd->query("DELETE FROM $table_alliances_attente WHERE id_membre = $user AND id_alliance = ".$alliance['id'].";");
|
||||
$bdd->deconnexion();
|
||||
//TODO Envoyer un message au joueur renvoyé
|
||||
send_mp($user, 'Refus de candidature pour '.$alliance['nom'], 'L\'alliance '.$alliance['nom'].' a rejeté votre demande d\'intégration.');
|
||||
}
|
||||
$page = 'alliance_adm_membres';
|
||||
$bdd->connexion();
|
||||
|
|
@ -318,7 +361,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';
|
||||
|
|
@ -332,11 +375,82 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
}
|
||||
$template->assign('chat', $chat);
|
||||
}
|
||||
elseif ($_GET['q'] == 'quit_alliance' && gpc('a') == sha1('ç§'.date('AWGzO').$alliance['id'])) {
|
||||
$bdd->connexion();
|
||||
$bdd->escape($user);
|
||||
$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.');
|
||||
|
||||
$template->assign('message','Vous avez quitté votre alliance.');
|
||||
$template->assign('couleur','green');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
elseif ($_GET['q'] == 'donner') {
|
||||
$page = 'alliance_donner';
|
||||
$metalD = gpc('metal', 'post'); if (!is_numeric($metalD)) $metalD = 0;
|
||||
$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) {
|
||||
$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;");
|
||||
|
||||
header('Location: ?p=alliances');
|
||||
exit;
|
||||
}
|
||||
else {
|
||||
erreur('Vous n\'avez pas assez de ressources sur cette planète pour donner autant à votre alliance.');
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ($_GET['q'] == 'emprunt') {
|
||||
$bdd->query("SELECT id FROM $table_alliances_emprunt WHERE id_user = $id_user AND id_alliance = ".$alliance['id'].";");
|
||||
if ($bdd->num_rows > 0) {
|
||||
erreur('Vous avez déjà une demande de financement en cours, vous ne pouvez pas en faire une nouvelle', "red", '?p=alliances');
|
||||
}
|
||||
$page = 'alliance_emprunt';
|
||||
$metalD = gpc('metal', 'post'); if (!is_numeric($metalD)) $metalD = 0;
|
||||
$cristalD = gpc('cristal', 'post'); if (!is_numeric($cristalD)) $cristalD = 0;
|
||||
$hydrogeneD = gpc('hydrogene', 'post'); if (!is_numeric($hydrogeneD)) $hydrogeneD = 0;
|
||||
$raison = gpc('raison', 'post');
|
||||
if ($metalD+$cristalD+$hydrogeneD > 0 && $metalD >= 0 && $cristalD >= 0 && $hydrogeneD >= 0) {
|
||||
if ($alliance['metal']-$metalD >= 0 && $alliance['cristal']-$cristalD >= 0 && $alliance['hydrogene']-$hydrogeneD >= 0) {
|
||||
$bdd->escape($metalD);
|
||||
$bdd->escape($cristalD);
|
||||
$bdd->escape($hydrogeneD);
|
||||
$bdd->escape($raison);
|
||||
$bdd->query("INSERT INTO $table_alliances_emprunt (id_alliance, id_user, raison, metal, cristal, hydrogene) VALUES (".$alliance['id'].", $id_user, '$raison', $metalD, $cristalD, $hydrogeneD);");
|
||||
|
||||
erreur('Votre demande a été enregistrée avec succès.', "green", '?p=alliances');
|
||||
}
|
||||
else {
|
||||
erreur('Vous n\'avez pas assez de ressources sur cette planète pour donner autant à votre alliance.');
|
||||
}
|
||||
}
|
||||
|
||||
$alliance['metalS'] = separerNombres($alliance['metal']);
|
||||
$alliance['cristalS'] = separerNombres($alliance['cristal']);
|
||||
$alliance['hydrogeneS'] = separerNombres($alliance['hydrogene']);
|
||||
$template->assign('alliance', $alliance);
|
||||
$template->assign('scripth', '<script src="js/alli_emprunt.js" type="text/javascript"></script>');
|
||||
}
|
||||
else {
|
||||
$page = 'alliance_accueil';
|
||||
$alliance['presentation'] = bbcode(htmlspecialchars($alliance['presentation']),1);
|
||||
$alliance['texte_interne'] = bbcode(htmlspecialchars($alliance['texte_interne']),1);
|
||||
|
||||
$alliance['metal'] = separerNombres($alliance['metal']);
|
||||
$alliance['cristal'] = separerNombres($alliance['cristal']);
|
||||
$alliance['hydrogene'] = separerNombres($alliance['hydrogene']);
|
||||
|
||||
$template->assign('alliance', $alliance);
|
||||
$template->assign('quitalliance', sha1('ç§'.date('AWGzO').$alliance['id']));
|
||||
$bdd->connexion();
|
||||
$membres = $bdd->query("SELECT * FROM $table_user WHERE id_alliance = ".$alliance['id'].";");
|
||||
$bdd->deconnexion();
|
||||
|
|
@ -357,7 +471,7 @@ if (!empty($queryUser['id_alliance']) && $queryUser['id_grade_alliance'] != -1 &
|
|||
}
|
||||
elseif (!empty($queryUser['id_alliance']) && $bdd->connexion() && !$bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$queryUser['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
|
||||
|
|
@ -407,10 +521,7 @@ else {
|
|||
}
|
||||
else {
|
||||
$bdd->deconnexion();
|
||||
$template->assign('message','Impossible de trouver cette alliance !');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
erreur('Impossible de trouver cette alliance !');
|
||||
}
|
||||
}
|
||||
elseif ($_GET['q'] == 'postuler' && !empty($_GET['i'])) {
|
||||
|
|
@ -423,10 +534,7 @@ else {
|
|||
$bdd->escape($message);
|
||||
$bdd->query("INSERT INTO $table_alliances_attente (id_alliance, id_membre, timestamp, message, ) VALUES (NULL, ".$alliance['id'].", ".$id_user.", '".time()."', '$message');");
|
||||
$bdd->deconnexion();
|
||||
$template->assign('message','Votre candidature a été envoyée avec succès à l\'alliance : '.$alliance['nom']);
|
||||
$template->assign('couleur','green');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
erreur('Votre candidature a été envoyée avec succès à l\'alliance : '.$alliance['nom'], "green");
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
$template->assign('alliance', $alliance);
|
||||
|
|
@ -442,13 +550,7 @@ else {
|
|||
if ($alliance) {
|
||||
if (empty($alliance['signatures'])) $signataires = array();
|
||||
else $signataires = explode(';', $alliance['signatures']);
|
||||
if ($alliance['fondateur'] == $id_user || in_array($id_user, $signataires)) {
|
||||
$template->assign('message','Vous avez déjà signé pour cette alliance.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=signer";\', 3500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
if ($alliance['fondateur'] == $id_user || in_array($id_user, $signataires)) erreur('Vous avez déjà signé pour cette alliance.', "red", "?p=alliances&q=signer", 3500);
|
||||
else {
|
||||
//Si c'est la 4ème signature, on crée l'alliance
|
||||
if (count($signataires) >= 3) {
|
||||
|
|
@ -481,10 +583,7 @@ else {
|
|||
$bdd->query("UPDATE $table_user SET id_alliance = '$id_alli' WHERE id = '$fondateur';");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$template->assign('message','Votre signature a bien été ajoutée à la déclaration de l\'alliance.<br />L\'alliance a désormais suffisament de signature pour être créée !');
|
||||
$template->assign('couleur','green');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
erreur('Votre signature a bien été ajoutée à la déclaration de l\'alliance.<br />L\'alliance a désormais suffisament de signature pour être créée !', "green");
|
||||
}
|
||||
else {
|
||||
$signataires[] = $id_user;
|
||||
|
|
@ -493,20 +592,11 @@ else {
|
|||
$bdd->query("UPDATE $table_alliances_creation SET signatures = '$signataires' WHERE lien = '$lien';");
|
||||
$bdd->query("UPDATE $table_user SET id_alliance = 'c".$alliance['id']."' WHERE id = '$id_user';");
|
||||
$bdd->deconnexion();
|
||||
$template->assign('message','Votre signature a bien été ajoutée à la déclaration de l\'alliance.');
|
||||
$template->assign('couleur','green');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
erreur('Votre signature a bien été ajoutée à la déclaration de l\'alliance.', "green");
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
$template->assign('message','Impossible de trouver l\'alliance !');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=signer";\', 3500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
else erreur('Impossible de trouver l\'alliance !', "red", "?p=alliances&q=signer");
|
||||
}
|
||||
elseif ($_GET['q'] == 'fonder') {
|
||||
if (!empty($_POST['nom']) && !empty($_POST['tag'])) {
|
||||
|
|
@ -514,42 +604,11 @@ else {
|
|||
$nom = htmlentities($_POST['nom']);
|
||||
$tag = htmlentities($_POST['tag']);
|
||||
|
||||
if (strlen($nom) < 5) {
|
||||
$template->assign('message','Le nom d\'alliance que vous avez choisit est trop court.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=fonder";\', 3500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
elseif (strlen($nom) > 25) {
|
||||
$template->assign('message','Le nom d\'alliance que vous avez choisit est trop long.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=fonder";\', 3500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
elseif (strlen($tag) > 5) {
|
||||
$template->assign('message','Le tag d\'alliance que vous avez choisit est trop long.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=fonder";\', 3500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
elseif (strlen($tag) < 3) {
|
||||
$template->assign('message','Le tag d\'alliance que vous avez choisit est trop court.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=fonder";\', 3500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
elseif (ereg('\'', $tag) || ereg('\'', $nom)) {
|
||||
$template->assign('message','Le nom d\'alliance ou le tag que vous avez choisit contient des caractères non autorisé.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=fonder";\', 3500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
|
||||
if (strlen($nom) < 5) erreur('Le nom d\'alliance que vous avez choisit est trop court.', "red", "?p=alliances&q=fonder", 3500);
|
||||
elseif (strlen($nom) > 25) erreur('Le nom d\'alliance que vous avez choisit est trop long.', "red", "?p=alliances&q=fonder", 3500);
|
||||
elseif (strlen($tag) > 5) erreur('Le tag d\'alliance que vous avez choisit est trop long.', "red", "?p=alliances&q=fonder", 3500);
|
||||
elseif (strlen($tag) < 3) erreur('Le tag d\'alliance que vous avez choisit est trop court.', "red", "?p=alliances&q=fonder", 3500);
|
||||
elseif (ereg('\'', $tag) || ereg('\'', $nom)) erreur('Le nom d\'alliance ou le tag que vous avez choisit contient des caractères non autorisé.', "red", "?p=alliances&q=fonder", 3500);
|
||||
$bdd->connexion();
|
||||
$bdd->escape($nom);
|
||||
$bdd->escape($tag);
|
||||
|
|
@ -557,13 +616,7 @@ else {
|
|||
$test = $bdd->query("SELECT * FROM $table_alliances WHERE nom = '$nom' AND tag = '$tag';");
|
||||
$test2 = $bdd->query("SELECT * FROM $table_alliances_creation WHERE nom = '$nom' AND tag = '$tag';");
|
||||
$bdd->deconnexion();
|
||||
if ($test || $test2) {
|
||||
$template->assign('message','Le nom ou le tag que vous avez choisit est déjà utilisé par une alliance.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=alliances&q=fonder";\', 3500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
if ($test || $test2) erreur('Le nom ou le tag que vous avez choisit est déjà utilisé par une alliance.', "red", "?p=alliances&q=fonder", 3500);
|
||||
else {
|
||||
$lien = sha1($tag.'Hb$'.$nom.'☺Ø'.$id_user.rand());
|
||||
$bdd->connexion();
|
||||
|
|
@ -574,10 +627,7 @@ else {
|
|||
$rapport->addInfo($lien, 0);
|
||||
$rapport->send();
|
||||
|
||||
$template->assign('message','Votre alliance a bien été créée.<br />Il ne vous reste plus qu\'à trouver au moins 4 signatures pour finir la création de votre alliance.<br /><br />Le lien permettant à vos quatres personnes de signer est <a href="?p=alliances&q=signer&i='.$lien.'">http://'.$_SERVER['HTTP_HOST'].'?p=alliances&q=signer&i='.$lien.'</a>');
|
||||
$template->assign('couleur','green');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
erreur('Votre alliance a bien été créée.<br />Il ne vous reste plus qu\'à trouver au moins 4 signatures pour finir la création de votre alliance.<br /><br />Le lien permettant à vos quatres personnes de signer est <a href="?p=alliances&q=signer&i='.$lien.'">http://'.$_SERVER['HTTP_HOST'].'?p=alliances&q=signer&i='.$lien.'</a>', "green");
|
||||
}
|
||||
}
|
||||
$page = 'alliance_nm_fonder';
|
||||
60
game/jeu/amis.php
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$titre = 'Amis';
|
||||
|
||||
$a = gpc('a');
|
||||
$nom = gpc('nom', 'post');
|
||||
if (!empty($a)) {
|
||||
$fav = explode(';', $queryUser['amis']);
|
||||
$cntfav = count($fav);
|
||||
|
||||
$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);
|
||||
$bdd->connexion();
|
||||
$bdd->query("UPDATE $table_user SET amis = '".$queryUser['amis']."' WHERE id = $id_user;");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
header('Location: ?p=amis');
|
||||
exit;
|
||||
}
|
||||
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']))) {
|
||||
$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;");
|
||||
}
|
||||
else {
|
||||
$bdd->deconnexion();
|
||||
erreur('Joueur introuvable.', "red", "?p=amis", 2000);
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
|
||||
header('Location: ?p=amis');
|
||||
exit;
|
||||
}
|
||||
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].";");
|
||||
if ($res != false) {
|
||||
$destins[] = array($fav[$i], $res['pseudo'], md5(date('GA').'@'.$fav[$i]));
|
||||
}
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
$template->assign('destins', $destins);
|
||||
}
|
||||
?>
|
||||
|
|
@ -8,41 +8,53 @@ $template->assign('defaut',$_GET['q']);
|
|||
if (empty($_GET['r']) || ($_GET['r'] != 'humain' && $_GET['r'] != 'covenant')) $_GET['r'] = $queryUser['race'];
|
||||
|
||||
$race = $_GET['r'];
|
||||
if ($race != $queryUser['race']) include(_FCORE."hb_game/noms.php");
|
||||
if ($race != $queryUser['race']) include(_FCORE."../game/noms.php");
|
||||
$template->assign('raceAff', $race);
|
||||
|
||||
$TEMP_batiments = array();
|
||||
$nb=count($batiment);
|
||||
$nb = count($batiment);
|
||||
for ($id=0 ; $id<$nb ; $id++) {
|
||||
if (!empty($batiment[$id])) $TEMP_batiments[] = array(
|
||||
'id' => $id,
|
||||
'nom' => $batiment[$id],
|
||||
'niveau' => $queryPlanete[$batimentVAR[$id]],
|
||||
'etat' => readDeblok($batimentTECH[$id], $queryPlanete, $queryUser)
|
||||
'niveau' => $planete->batiments[$id],
|
||||
'etat' => readDeblok($batimentTECH[$id], $planete)
|
||||
);
|
||||
}
|
||||
$template->assign('batiments',$TEMP_batiments);
|
||||
|
||||
$TEMP_technologies = array();
|
||||
$nb=count($technolo);
|
||||
$nb = count($technolo);
|
||||
for ($id=0 ; $id<$nb ; $id++) {
|
||||
if (!empty($technolo[$id])) $TEMP_technologies[] = array(
|
||||
'id' => $id,
|
||||
'nom' => $technolo[$id],
|
||||
'niveau' => $queryUser[$technoloVAR[$id]],
|
||||
'etat' => readDeblok($technoloTECH[$id], $queryPlanete, $queryUser)
|
||||
'etat' => readDeblok($technoloTECH[$id], $planete)
|
||||
);
|
||||
}
|
||||
$template->assign('technologies',$TEMP_technologies);
|
||||
|
||||
$TEMP_terrestre = array();
|
||||
$nb=count($casernen);
|
||||
for ($id=0 ; $id<$nb ; $id++) {
|
||||
if (!empty($casernen[$id])) $TEMP_terrestre[] = array(
|
||||
'id' => $id,
|
||||
'nom' => $casernen[$id],
|
||||
'niveau' => $planete->casernes[$id],
|
||||
'etat' => readDeblok($casernenTECH[$id], $planete)
|
||||
);
|
||||
}
|
||||
$template->assign('caserne',$TEMP_terrestre);
|
||||
|
||||
$TEMP_terrestre = array();
|
||||
$nb=count($nomterrn);
|
||||
for ($id=0 ; $id<$nb ; $id++) {
|
||||
if (!empty($nomterrn[$id])) $TEMP_terrestre[] = array(
|
||||
'id' => $id,
|
||||
'nom' => $nomterrn[$id],
|
||||
'niveau' => $queryPlanete[$nomterrnVAR[$id]],
|
||||
'etat' => readDeblok($nomterrnTECH[$id], $queryPlanete, $queryUser)
|
||||
'niveau' => $planete->terrestres[$id],
|
||||
'etat' => readDeblok($nomterrnTECH[$id], $planete)
|
||||
);
|
||||
}
|
||||
$template->assign('unites',$TEMP_terrestre);
|
||||
|
|
@ -53,8 +65,8 @@ for ($id=0 ; $id<$nb ; $id++) {
|
|||
if (!empty($nomvaisn[$id])) $TEMP_vaisseaux[] = array(
|
||||
'id' => $id,
|
||||
'nom' => $nomvaisn[$id],
|
||||
'niveau' => $queryPlanete[$nomvaisnVAR[$id]],
|
||||
'etat' => readDeblok($nomvaisnTECH[$id], $queryPlanete, $queryUser)
|
||||
'niveau' => $planete->vaisseaux[$id],
|
||||
'etat' => readDeblok($nomvaisnTECH[$id], $planete)
|
||||
);
|
||||
}
|
||||
$template->assign('vaisseaux',$TEMP_vaisseaux);
|
||||
22
game/jeu/avertmulti.php
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'vide';
|
||||
$titre = 'Multicompte';
|
||||
$template->assign('titreP', '<span style="color: red;">! ATTENTION AU MULTICOMPTE !</span>');
|
||||
|
||||
$bdd->connexion();
|
||||
$multi = $bdd->query("SELECT U.pseudo, R.id_util FROM $table_registre_identification R INNER JOIN $table_user U ON U.id = R.id_util WHERE R.ip = '$ip' GROUP BY R.ip, R.id_util");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$cnt = count($multi);
|
||||
$joueurs = '';
|
||||
for($i = 0; $i < $cnt; $i++){
|
||||
if ($multi[$i]['id_util'] == $id_user) continue;
|
||||
|
||||
if ($joueurs != '') $joueurs .= ', '.$multi[$i]['pseudo'];
|
||||
else $joueurs = $multi[$i]['pseudo'];
|
||||
|
||||
}
|
||||
|
||||
$template->assign('contenu', '<div class="error">Nous avons détecté que plus d\'un compte s\'est connecté sur cette adresse IP.<br />Pour ne pas être considéré comme multi-compte, évitez toute interraction avec '.$joueurs.'<br /><br />Si vous êtes plusieurs dans la même famille à jouer à Halo-Battle dans cette galaxie, <ins>vous devez impérativement</ins> <a href="'.$config['link']["operateur"].'">prendre contact avec un opérateur</a> afin que vos comptes ne soient pas considérés comme du multi-compte.<br /><br />Si vous vous connectez depuis un lieu public (cybercafé, aéroport, hôtel, wifi public, ...), vous pouvez prévenir <a href="'.$config['link']["operateur"].'">les opérateurs de la galaxie</a> afin que cette connexion ne soit pas considérée comme du multi-compte.<br /><br />Pour plus d\'informations, reportez-vous <a href="?p=regles#comptes">au chapitre <i>Comptes</i> des régles du jeu</a>.</div>');
|
||||
?>
|
||||
89
game/jeu/batiments.php
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'batiments';
|
||||
$titre = 'Batiments';
|
||||
|
||||
$TEMP_batiments = array();
|
||||
$nbstop = count($batiment);
|
||||
|
||||
//Lancement d'une nouvelle construction
|
||||
if (isset($_GET['c'])) {
|
||||
//Vérification que la planète ne soit pas pleine
|
||||
if ($planete->casesRest <= 0) erreur('Vous n\'avez plus de place sur votre planète.', "red", "?p=batiments", 3500);
|
||||
|
||||
//Récupération des erreurs de la mise en file d'attente pour traitement
|
||||
$construction = $planete->file_addObjet("batiments", intval(gpc('c')));
|
||||
|
||||
switch($construction){
|
||||
case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour construire ce bâtiment.'); break;
|
||||
case 2: erreur('Ce bâtiment est déjà en file d\'attente !'); break;
|
||||
case 3: erreur('Vous n\'avez pas les ressources nécessaire pour construire ce bâtiment !'); break;
|
||||
default: header('Location: ?p=batiments'); exit;
|
||||
}
|
||||
}
|
||||
//Annulation d'une nouvelle construction
|
||||
if (isset($_GET['a']) && isset($batiment[$_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_bat')) {
|
||||
$planete->file_delObjet("batiments", $i);
|
||||
header('Location: ?p=batiments');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
//Règler la production à la châine
|
||||
/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) {
|
||||
if($_GET['r']) $file->chaine = false;
|
||||
else $file->chaine = true;
|
||||
$export = mysql_real_escape_string(serialize($file));
|
||||
mysql_query("UPDATE planete SET file_bat = '$export' WHERE id = '$idPlan';");
|
||||
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->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 (!empty($batiment[$i]) && requestDeblok($batimentTECH[$i], $planete)) $TEMP_batiments[] =
|
||||
array(
|
||||
'image' => $batimeni[$i],
|
||||
'nom' => $batiment[$i],
|
||||
'niveau' => $niveau,
|
||||
'description' => $batimede[$i],
|
||||
'descriptione' => addslashes($batimede[$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,
|
||||
'enfile' => $enFile,
|
||||
'maq_metal' => ceil($a - $planete->metal),
|
||||
'maq_cristal' => ceil($b - $planete->cristal),
|
||||
'maq_hydrogene' => ceil($c - $planete->hydrogene)
|
||||
);
|
||||
}
|
||||
$template->assign('batiments', $TEMP_batiments);
|
||||
$template->assign('chaine', $planete->batiments);
|
||||
$nbfile = count($planete->file_bat) - 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();
|
||||
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]]);
|
||||
}
|
||||
|
||||
$template->assign('file', $file);
|
||||
?>
|
||||
121
game/jeu/bourse.php
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$titre = 'Bourse';
|
||||
include_once(_FCORE."../game/Class/class.bourse.php");
|
||||
|
||||
define('MAX_ACTION_PAR_JOUR', 5);
|
||||
|
||||
/*if (date('G') < 7 && date('G') >= 0 && date('w') != 0 && date('w') != 6 && $queryUser['auth_level'] < 3)
|
||||
erreur('La bourse est actuellement fermée !<br />Réouverture à 7h00', "orange");
|
||||
else*/if ($queryPlanetes[0]['id'] != $planete->id)
|
||||
erreur('Vous devez être sur votre planète mère pour utiliser la bourse.');
|
||||
else {
|
||||
$a = gpc('a');
|
||||
$v = gpc('v');
|
||||
$nb = gpc('a'.$a.$v, 'post');
|
||||
if (!empty($a) && is_numeric($nb)) {
|
||||
$action = new Bourse($a, $id_user);
|
||||
$poss24 = $action->actionIn24Hours();
|
||||
if ($poss24 + $nb > MAX_ACTION_PAR_JOUR) erreur('Vous ne pouvez pas acheter plus de 5 mêmes actions dans les mêmes 24h.');
|
||||
$ressources = $action->prixAchat($nb);
|
||||
if ($ressources[0] > $planete->metal || $ressources[1] > $planete->cristal) erreur('Vous n\'avez pas assez de ressources pour acheter '.$nb.' actions.');
|
||||
$action->addAction($nb);
|
||||
$planete->metal -= $ressources[0];
|
||||
$planete->cristal -= $ressources[1];
|
||||
|
||||
header('Location: ?p=bourse&d='.$a);
|
||||
exit;
|
||||
}
|
||||
elseif (!empty($v) && is_numeric($nb)) {
|
||||
$action = new Bourse($v, $id_user);
|
||||
$ressources = $action->delAction($nb);
|
||||
$planete->metal += $ressources[0];
|
||||
$planete->cristal += $ressources[1];
|
||||
|
||||
header('Location: ?p=bourse&d='.$v);
|
||||
exit;
|
||||
}
|
||||
elseif ($e = gpc('e') && $queryUser['auth_level'] >= 3) {
|
||||
if (isset($_POST['nomaction']) && isset($_POST['descaction'])) {
|
||||
$nom = gpc('nomaction', 'post');
|
||||
$description = gpc('descaction', 'post');
|
||||
$bdd->connexion();
|
||||
$bdd->escape($nom);
|
||||
$bdd->escape($description);
|
||||
$bdd->escape($e);
|
||||
$bdd->query("UPDATE $table_bourse SET description = '$description', nom = '$nom' WHERE id = $e;");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
elseif (isset($_POST['prixAM']) && isset($_POST['prixAC'])) {
|
||||
$prixAM = gpc('prixAM', 'post');
|
||||
$prixAC = gpc('prixAC', 'post');
|
||||
$bdd->connexion();
|
||||
$bdd->escape($prixAM);
|
||||
$bdd->escape($prixAC);
|
||||
$bdd->escape($e);
|
||||
$bdd->query("UPDATE $table_bourse SET metal = $prixAM, cristal = $prixAC WHERE id = $e;");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
elseif (isset($_POST['newsaction'])) {
|
||||
$news = gpc('newsaction', 'post');
|
||||
$time = time();
|
||||
$bdd->connexion();
|
||||
$bdd->escape($news);
|
||||
$bdd->escape($e);
|
||||
$bdd->query("UPDATE $table_bourse SET news = '$news', timeDesc = '$time' WHERE id = $e;");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
|
||||
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'))) {
|
||||
if (isset($_POST['nomaction']) && isset($_POST['descaction'])) {
|
||||
$nom = gpc('nomaction', 'post');
|
||||
$description = gpc('descaction', 'post');
|
||||
$prixAM = gpc('prixAM', 'post');
|
||||
$prixAC = gpc('prixAC', 'post');
|
||||
$news = gpc('newsaction', 'post');
|
||||
$time = time();
|
||||
$bdd->connexion();
|
||||
$bdd->escape($nom);
|
||||
$bdd->escape($description);
|
||||
$bdd->escape($prixAM);
|
||||
$bdd->escape($prixAC);
|
||||
$bdd->escape($news);
|
||||
if (!empty($news)) $bdd->query("INSERT INTO $table_bourse (nom, description, news, timeDesc, metal, cristal) VALUES ('$nom', '$description', '$news', '$time', '$prixAM', '$prixAC');");
|
||||
else $bdd->query("INSERT INTO $table_bourse (nom, description, metal, cristal) VALUES ('$nom', '$description', '$prixAM', '$prixAC');");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
|
||||
header('Location: ?p=bourse');
|
||||
exit;
|
||||
}
|
||||
elseif ($d = gpc('d')) {
|
||||
$action = new Bourse($d, $id_user);
|
||||
$template->assign('taxeA', $action->taxeA);
|
||||
$template->assign('taxeV', $action->taxeV);
|
||||
$template->assign('poss', $action->action());
|
||||
$template->assign('poss24', $action->actionIn24Hours());
|
||||
$action = null;
|
||||
|
||||
$bdd->connexion();
|
||||
$bdd->escape($d);
|
||||
$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);
|
||||
}
|
||||
else {
|
||||
$bdd->connexion();
|
||||
$infos = $bdd->query("SELECT id, nom, news AS description FROM $table_bourse WHERE news != '' ORDER BY timeDesc DESC LIMIT 7;");
|
||||
$bourse = $bdd->query("SELECT id, nom, metal, cristal, (metal/metalAnc-1)*100 AS evolution FROM $table_bourse;");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$page = 'bourse';
|
||||
$template->assign('bourse', $bourse);
|
||||
$template->assign('infos', $infos);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -4,14 +4,14 @@ $page = 'carte';
|
|||
$titre = 'Carte spatiale';
|
||||
|
||||
if (isset($_GET['galaxie'])) $g = floor($_GET['galaxie']);
|
||||
else $g = $queryPlanete['galaxie'];
|
||||
else $g = $planete->galaxie;
|
||||
|
||||
if ($queryUser['auth_level'] >= 5 && $g <= 0) $g = 0;
|
||||
elseif ($g < 1) $g = 1;
|
||||
if ($g > MAX_AMAS) $g = 1;
|
||||
|
||||
if (isset($_GET['ss'])) $s = floor($_GET['ss']);
|
||||
else $s = $queryPlanete['ss'];
|
||||
else $s = $planete->ss;
|
||||
|
||||
if ($s < 1) $s = 1;
|
||||
if ($s > MAX_SYSTEME) $s = MAX_SYSTEME;
|
||||
|
|
@ -37,6 +37,10 @@ else {
|
|||
$Spu = $s + 1;
|
||||
}
|
||||
|
||||
//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"));
|
||||
|
||||
$TEMP_carte = array();
|
||||
for ($i = 1; $i <= MAX_PLANETE; $i++) {
|
||||
$bdd->connexion();
|
||||
|
|
@ -50,7 +54,7 @@ for ($i = 1; $i <= MAX_PLANETE; $i++) {
|
|||
elseif ($auth_level >= 6 && md5($d['race']) == '34c19b21bd4a3dda389e767d32fe9779') $ra = '(f)';
|
||||
else $ra = '(h)';
|
||||
|
||||
$TEMP_carte[] = array($i, htmlspecialchars($d['nom_planete']), $d['debris_met'], $d['debris_cri'], $ra, $d['pseudo'], '<a href="?p=envoyer&d='.$d['pseudo'].'" class="msg"><span>Message</span></a>', $d['tag']);//, $eA['tag']);
|
||||
$TEMP_carte[] = array($i, $d['nom_planete'], $d['debris_met'], $d['debris_cri'], $ra, $d['pseudo'], '<a href="?p=envoyer&d='.$d['pseudo'].'" class="msg"><span>Message</span></a>', $d['tag']);//, $eA['tag']);
|
||||
}
|
||||
else {
|
||||
$bdd->deconnexion();
|
||||
89
game/jeu/caserne.php
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'caserne';
|
||||
$titre = $batiment[9];
|
||||
|
||||
//Vérification que le joueur ait bien un labo avant d'afficher la page
|
||||
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'))) {
|
||||
//Récupération des erreurs de la mise en file d'attente pour traitement
|
||||
$construction = $planete->file_addObjet("casernes", intval(gpc('v')), $nbv);
|
||||
|
||||
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;
|
||||
default: header('Location: ?p=caserne'); exit;
|
||||
}
|
||||
}
|
||||
//Annulation d'une nouvelle construction
|
||||
if (isset($_GET['a'])) {
|
||||
$i = intval(gpc('a'));
|
||||
$n = intval(gpc('n'));
|
||||
if (empty($n)) $n = 1;
|
||||
$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
|
||||
if($planete->file_exist($i, 'file_cas')) {
|
||||
$planete->file_delObjet("casernes", $i, $n, $w);
|
||||
header('Location: ?p=caserne');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
//Règler la production à la châine
|
||||
/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) {
|
||||
if($_GET['r']) $file->chaine = false;
|
||||
else $file->chaine = true;
|
||||
$export = mysql_real_escape_string(serialize($file));
|
||||
mysql_query("UPDATE planete SET file_bat = '$export' WHERE id = '$idPlan';");
|
||||
header('Location: ?p=batiments');
|
||||
exit;
|
||||
}*/
|
||||
|
||||
for ($i=0 ; $i<$nbstop ; $i++) {
|
||||
$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];
|
||||
if (!empty($casernen[$i]) && requestDeblok($casernenTECH[$i], $planete)) $TEMP_batiments[] =
|
||||
array(
|
||||
'image' => $casernei[$i],
|
||||
'nom' => $casernen[$i],
|
||||
'nombre' => $nombre,
|
||||
'description' => $casernde[$i],
|
||||
'descriptione' => addslashes($casernde[$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('unites', $TEMP_batiments);
|
||||
$template->assign('chaine', $planete->casernes);
|
||||
$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);
|
||||
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]]);
|
||||
}
|
||||
|
||||
$template->assign('file', $file);
|
||||
?>
|
||||
89
game/jeu/chantierspatial.php
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$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);
|
||||
|
||||
$TEMP_batiments = array();
|
||||
$nbstop = count($nomvaisn);
|
||||
|
||||
//Lancement d'une nouvelle construction
|
||||
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
|
||||
//Récupération des erreurs de la mise en file d'attente pour traitement
|
||||
$construction = $planete->file_addObjet("vaisseaux", intval(gpc('v')), $nbv);
|
||||
|
||||
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;
|
||||
default: header('Location: ?p=chantierspatial'); exit;
|
||||
}
|
||||
}
|
||||
//Annulation d'une nouvelle construction
|
||||
if (isset($_GET['a'])) {
|
||||
$i = intval(gpc('a'));
|
||||
$n = intval(gpc('n'));
|
||||
if (empty($n)) $n = 1;
|
||||
$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
|
||||
if($planete->file_exist($i, 'file_vais')) {
|
||||
$planete->file_delObjet("vaisseaux", $i, $n, $w);
|
||||
header('Location: ?p=chantierspatial');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
//Règler la production à la châine
|
||||
/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) {
|
||||
if($_GET['r']) $file->chaine = false;
|
||||
else $file->chaine = true;
|
||||
$export = mysql_real_escape_string(serialize($file));
|
||||
mysql_query("UPDATE planete SET file_bat = '$export' WHERE id = '$idPlan';");
|
||||
header('Location: ?p=batiments');
|
||||
exit;
|
||||
}*/
|
||||
|
||||
for ($i=0 ; $i<$nbstop ; $i++) {
|
||||
$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];
|
||||
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
|
||||
);
|
||||
}
|
||||
$template->assign('vaisseaux', $TEMP_batiments);
|
||||
$template->assign('chaine', $planete->vaisseaux);
|
||||
$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);
|
||||
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));
|
||||
}
|
||||
|
||||
$template->assign('file', $file);
|
||||
?>
|
||||
89
game/jeu/chantierterrestre.php
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$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);
|
||||
|
||||
$TEMP_batiments = array();
|
||||
$nbstop = count($nomterrn);
|
||||
|
||||
//Lancement d'une nouvelle construction
|
||||
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
|
||||
//Récupération des erreurs de la mise en file d'attente pour traitement
|
||||
$construction = $planete->file_addObjet("terrestres", intval(gpc('v')), $nbv);
|
||||
|
||||
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;
|
||||
default: header('Location: ?p=chantierterrestre'); exit;
|
||||
}
|
||||
}
|
||||
//Annulation d'une nouvelle construction
|
||||
if (isset($_GET['a'])) {
|
||||
$i = intval(gpc('a'));
|
||||
$n = intval(gpc('n'));
|
||||
if (empty($n)) $n = 1;
|
||||
$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
|
||||
if($planete->file_exist($i, 'file_ter')) {
|
||||
$planete->file_delObjet("terrestres", $i, $n, $w);
|
||||
header('Location: ?p=chantierterrestre');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
//Règler la production à la châine
|
||||
/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) {
|
||||
if($_GET['r']) $file->chaine = false;
|
||||
else $file->chaine = true;
|
||||
$export = mysql_real_escape_string(serialize($file));
|
||||
mysql_query("UPDATE planete SET file_bat = '$export' WHERE id = '$idPlan';");
|
||||
header('Location: ?p=batiments');
|
||||
exit;
|
||||
}*/
|
||||
|
||||
for ($i=0 ; $i<$nbstop ; $i++) {
|
||||
$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];
|
||||
if (!empty($nomterrn[$i]) && requestDeblok($nomterrnTECH[$i], $planete) && !$nomterrnCALC[$i][4]) $TEMP_batiments[] =
|
||||
array(
|
||||
'image' => $nomterri[$i],
|
||||
'nom' => $nomterrn[$i],
|
||||
'nombre' => $nombre,
|
||||
'description' => $nomterde[$i],
|
||||
'descriptione' => addslashes($nomterde[$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('unites', $TEMP_batiments);
|
||||
$template->assign('chaine', $planete->terrestres);
|
||||
$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);
|
||||
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));
|
||||
}
|
||||
|
||||
$template->assign('file', $file);
|
||||
?>
|
||||
89
game/jeu/defenses.php
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'defenses';
|
||||
$titre = 'Défenses';
|
||||
|
||||
//Vérification que le joueur ait bien un labo avant d'afficher la page
|
||||
if ($planete->batiments[7] == 0) erreur('Vous devez d\'abord construire un '.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'))) {
|
||||
//Récupération des erreurs de la mise en file d'attente pour traitement
|
||||
$construction = $planete->file_addObjet("terrestres", intval(gpc('v')), $nbv);
|
||||
|
||||
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;
|
||||
default: header('Location: ?p=defenses'); exit;
|
||||
}
|
||||
}
|
||||
//Annulation d'une nouvelle construction
|
||||
if (isset($_GET['a'])) {
|
||||
$i = intval(gpc('a'));
|
||||
$n = intval(gpc('n'));
|
||||
if (empty($n)) $n = 1;
|
||||
$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
|
||||
if($planete->file_exist($i, 'file_ter')) {
|
||||
$planete->file_delObjet("terrestres", $i, $n, $w);
|
||||
header('Location: ?p=chantierterrestre');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
//Règler la production à la châine
|
||||
/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) {
|
||||
if($_GET['r']) $file->chaine = false;
|
||||
else $file->chaine = true;
|
||||
$export = mysql_real_escape_string(serialize($file));
|
||||
mysql_query("UPDATE planete SET file_bat = '$export' WHERE id = '$idPlan';");
|
||||
header('Location: ?p=batiments');
|
||||
exit;
|
||||
}*/
|
||||
|
||||
for ($i=0 ; $i<$nbstop ; $i++) {
|
||||
$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];
|
||||
if (!empty($nomterrn[$i]) && requestDeblok($nomterrnTECH[$i], $planete) && $nomterrnCALC[$i][4]) $TEMP_batiments[] =
|
||||
array(
|
||||
'image' => $nomterri[$i],
|
||||
'nom' => $nomterrn[$i],
|
||||
'nombre' => $nombre,
|
||||
'description' => $nomterde[$i],
|
||||
'descriptione' => addslashes($nomterde[$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('unites', $TEMP_batiments);
|
||||
$template->assign('chaine', $planete->terrestres);
|
||||
$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);
|
||||
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));
|
||||
}
|
||||
|
||||
$template->assign('file', $file);
|
||||
?>
|
||||
10
game/jeu/demarrage.php
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'vide';
|
||||
|
||||
$bdd->connexion();
|
||||
$message = $bdd->unique_query("SELECT * FROM $table_messages_demarrage ORDER BY time DESC LIMIT 1;");
|
||||
$bdd->deconnexion();
|
||||
$titre = $message['titre'];
|
||||
$template->assign('contenu', bbcode(nl2br($message['contenu']), 1).'<br /><br /><a class="submit" href="?p=accueil">Continuer</a>');
|
||||
?>
|
||||
|
|
@ -72,23 +72,22 @@ function tableauProd($ibat,$nivo){
|
|||
else return $return;
|
||||
}
|
||||
|
||||
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."hb_game/noms.php");
|
||||
if ($race != $planete->race) include(_FCORE."../game/noms.php");
|
||||
$template->assign('raceAff', $race);
|
||||
|
||||
if (isset($_GET['b']) && is_numeric($_GET['b']) && $_GET['b'] < count($batiment)) {
|
||||
$template->assign('type', 'batiments');
|
||||
$t = $_GET['b'];
|
||||
$nom_bdd = $batimentVAR[$t];
|
||||
$template->assign('t', $t);
|
||||
$template->assign('image', $batimeni[$t]);
|
||||
$template->assign('nom', $batiment[$t]);
|
||||
$template->assign('niveau', $queryPlanete[$nom_bdd]);
|
||||
$template->assign('niveau', $planete->batiments[$t]);
|
||||
$template->assign('description', $batimede[$t]);
|
||||
$template->assign('tableau_prod', tableauProd($t, $queryPlanete[$nom_bdd]));
|
||||
$template->assign('tableau_prod', tableauProd($t, $planete->batiments[$t]));
|
||||
|
||||
$n=($queryPlanete[$nom_bdd]+1);
|
||||
$n = $planete->batiments[$t] + 1;
|
||||
$a = 0; $b = 0; $c = 0; $sec = 0;
|
||||
eval($batimentCALC[$t][0]);
|
||||
eval($batimentCALC[$t][1]);
|
||||
|
|
@ -96,18 +95,17 @@ if (isset($_GET['b']) && is_numeric($_GET['b']) && $_GET['b'] < count($batiment)
|
|||
eval($batimentCALC[$t][3]);
|
||||
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec)));
|
||||
|
||||
$template->assign('etat', readDeblok($batimentTECH[$t], $queryPlanete, $queryUser));
|
||||
$template->assign('etat', readDeblok($batimentTECH[$t], $planete));
|
||||
}
|
||||
elseif (isset($_GET['t']) && is_numeric($_GET['t']) && $_GET['t'] < count($technolo)) {
|
||||
$template->assign('type', 'technologies');
|
||||
$t = $_GET['t'];
|
||||
$nom_bdd = $technoloVAR[$t];
|
||||
$template->assign('image', $technoli[$t]);
|
||||
$template->assign('nom', $technolo[$t]);
|
||||
$template->assign('niveau', $queryUser[$nom_bdd]);
|
||||
$template->assign('niveau', $planete->technologies[$t]);
|
||||
$template->assign('description', $technode[$t]);
|
||||
|
||||
$n=($queryUser[$nom_bdd]+1);
|
||||
$n = $planete->technologies[$t] + 1;
|
||||
$a = 0; $b = 0; $c = 0; $sec = 0;
|
||||
eval($technoloCALC[$t][0]);
|
||||
eval($technoloCALC[$t][1]);
|
||||
|
|
@ -115,45 +113,62 @@ elseif (isset($_GET['t']) && is_numeric($_GET['t']) && $_GET['t'] < count($techn
|
|||
eval($technoloCALC[$t][3]);
|
||||
$template->assign('ressourcesNext', array(separerNombres($a), separerNombres($b), separerNombres($c), sec($sec)));
|
||||
|
||||
$template->assign('etat', readDeblok($technoloTECH[$t], $queryPlanete, $queryUser));
|
||||
$template->assign('etat', readDeblok($technoloTECH[$t], $planete));
|
||||
}
|
||||
elseif (isset($_GET['v']) && is_numeric($_GET['v']) && $_GET['v'] < count($nomvaisn)) {
|
||||
$template->assign('type', 'vaisseaux');
|
||||
$t = $_GET['v'];
|
||||
$nom_bdd = $nomvaisnVAR[$t];
|
||||
$template->assign('image', $nomvaisi[$t]);
|
||||
$template->assign('nom', $nomvaisn[$t]);
|
||||
$template->assign('niveau', $queryPlanete[$nom_bdd]);
|
||||
$template->assign('niveau', $planete->vaisseaux[$t]);
|
||||
$template->assign('description', $nomvaisd[$t]);
|
||||
|
||||
$n=($queryPlanete[$nom_bdd]+1);
|
||||
$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('etat', readDeblok($nomvaisnTECH[$t], $queryPlanete, $queryUser));
|
||||
$template->assign('etat', readDeblok($nomvaisnTECH[$t], $planete));
|
||||
$template->assign('caract', array($nomvais_at[$t], $nomvais_bc[$t], $nomvais_pv[$t], $nomvais_rs[$t]));
|
||||
}
|
||||
elseif (isset($_GET['d']) && is_numeric($_GET['d']) && $_GET['d'] < count($nomterrn)) {
|
||||
$template->assign('type', 'terrestre');
|
||||
$t = $_GET['d'];
|
||||
$nom_bdd = $nomterrnVAR[$t];
|
||||
$template->assign('image', $nomterri[$t]);
|
||||
$template->assign('nom', $nomterrn[$t]);
|
||||
$template->assign('niveau', $queryPlanete[$nom_bdd]);
|
||||
$template->assign('niveau', $planete->terrestres[$t]);
|
||||
$template->assign('description', $nomterde[$t]);
|
||||
|
||||
$n=($queryPlanete[$nom_bdd]+1);
|
||||
$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('etat', readDeblok($nomterrnTECH[$t], $queryPlanete, $queryUser));
|
||||
$template->assign('etat', readDeblok($nomterrnTECH[$t], $planete));
|
||||
if ($t-8 >= 0) {
|
||||
$t -= 8;
|
||||
$template->assign('caract', array($defense_at[$t], $defense_bc[$t], $defense_pv[$t]));
|
||||
}
|
||||
}
|
||||
elseif (isset($_GET['c']) && is_numeric($_GET['c']) && $_GET['c'] < count($casernen)) {
|
||||
$template->assign('type', 'caserne');
|
||||
$t = $_GET['c'];
|
||||
$template->assign('image', $casernei[$t]);
|
||||
$template->assign('nom', $casernen[$t]);
|
||||
$template->assign('niveau', $planete->casernes[$t]);
|
||||
$template->assign('description', $casernde[$t]);
|
||||
|
||||
$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('etat', readDeblok($casernenTECH[$t], $planete));
|
||||
if ($t-8 >= 0) {
|
||||
$t -= 8;
|
||||
$template->assign('caract', array('!!', '!!', '!!'));
|
||||
}
|
||||
}
|
||||
else {
|
||||
header('Location: ?p=accueil');
|
||||
}
|
||||
62
game/jeu/destinrapid.php
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$titre = 'Destinations rapides';
|
||||
|
||||
$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);
|
||||
|
||||
$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);
|
||||
$bdd->connexion();
|
||||
$bdd->query("UPDATE $table_user SET destinationsFavoris = '".$queryUser['destinationsFavoris']."' WHERE id = $id_user;");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
header('Location: ./?p=destinationsrapides');
|
||||
exit;
|
||||
}
|
||||
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']))) {
|
||||
$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;");
|
||||
}
|
||||
else {
|
||||
$bdd->deconnexion();
|
||||
erreur('Impossible d\'ajouter cette planète, elle n\'est pas habitée !', "red", '?p=destinationsrapides');
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
|
||||
header('Location: ./?p=destinationsrapides');
|
||||
exit;
|
||||
}
|
||||
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].";");
|
||||
if ($res != false) {
|
||||
$destins[] = array($fav[$i], $res['nom_planete'], '['.$res['galaxie'].':'.$res['ss'].':'.$res['position'].']', md5(date('AG').'@'.$fav[$i]));
|
||||
}
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
$template->assign('destins', $destins);
|
||||
}
|
||||
?>
|
||||
53
game/jeu/envoyer.php
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'envoyer';
|
||||
$titre = 'Envoyer un message';
|
||||
|
||||
if (!empty($_POST['objet']) && !empty($_POST['nom']) && !empty($_POST['message'])) {
|
||||
$utils = explode(';', gpc('nom', 'post'));
|
||||
$nbutil = count($utils);
|
||||
|
||||
$time = time();
|
||||
$message = htmlspecialchars(gpc('message', 'post'));
|
||||
$objet = htmlspecialchars(gpc('objet', 'post'));
|
||||
$bdd->connexion();
|
||||
$bdd->escape($message);
|
||||
$bdd->escape($objet);
|
||||
$bdd->escape($pseudo);
|
||||
|
||||
for($i = 0; $i < $nbutil; $i++){
|
||||
$util = trim(htmlentities($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';")) {
|
||||
$bdd->query("INSERT INTO $table_mail (destinataire, expediteur, sujet, contenu, temps) VALUES(".$env['id'].", '$id_user', '$objet', '$message', '$time');");
|
||||
if ($env["envoyerMail"] >= 1 && !empty($env["mail"])) send_mail($env["mail"], 'Nouveau message privé', 'Bonjour '.$env["pseudo"].',<br /><br />Un nouveau message privé vous a été envoyé dans la galaxie '.$config['serveur_name']);
|
||||
}
|
||||
else {
|
||||
$bdd->deconnexion();
|
||||
erreur('Impossible de trouver l\'un des destinataire du message : '.$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].";");
|
||||
if ($res != false) {
|
||||
$amis[] = $res['pseudo'];
|
||||
$amisn[] = $ami[$i];
|
||||
}
|
||||
}
|
||||
$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')));
|
||||
?>
|
||||
|
|
@ -28,165 +28,57 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
|
|||
$nbr = $bdd->num_rows;
|
||||
|
||||
//Vérification du code anti-bots
|
||||
if ($_POST['cds'] != $sess->values['flcds']) {
|
||||
$template->assign('message','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>.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 4000);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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) {
|
||||
$template->assign('message','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>.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 5000);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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)) {
|
||||
$template->assign('message','La destination de la flotte n\'est pas correcte.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 2500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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']) {
|
||||
$template->assign('message','Vous n\'avez pas assez de slots disponibles.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 2500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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) {
|
||||
$template->assign('message','Mission incorrecte !');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 2500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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']) {
|
||||
$template->assign('message','Vous ne connaissez pas cette tactique de combat !');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 2500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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)) {
|
||||
$template->assign('message','Vous ne pouvez pas espionner sans sonde d\'espionnage !');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 2500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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)) {
|
||||
$template->assign('message','Vous ne pouvez pas coloniser sans vaisseau de colonisation !');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 2500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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)) {
|
||||
$template->assign('message','Vous ne pouvez pas coloniser sans vaisseau de colonisation !');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 2500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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'])) {
|
||||
$template->assign('message','Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 2500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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)) {
|
||||
$template->assign('message','Vous avez spécifié des valeurs négatives !');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 2500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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) {
|
||||
$template->assign('message','La vitesse de votre flotte est incorrecte !');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 2500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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) {
|
||||
$template->assign('message','Le joueur que vous tentez d\'attaquer est actuellement en mode vacances, vous ne pouvez donc pas l\'attaquer avant son retour de vacances.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 3000);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
elseif ($resultatu['time_inscription'] + 604800 > time()) {
|
||||
$template->assign('message','Le joueur que vous tentez d\'attaquer s\'est inscrit récemment, laissez-lui le temps de se préparer au combat !');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 3000);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
elseif (!$resultat) {
|
||||
$template->assign('message','La planète que vous tentez d\'attaquer est inhabitée.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 3000);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
elseif ($resultat['id_user'] == $id_user) {
|
||||
$template->assign('message','La planète que vous tentez d\'attaquer vous appartient.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 3000);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
elseif ($mission == 2 && !$resultat) {
|
||||
$template->assign('message','Impossible de transporter des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 3000);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
elseif ($mission == 3 && $resultat) {
|
||||
$template->assign('message','La planète que vous voulez coloniser est déjà habitée.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 3000);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
elseif ($mission == 0 && $resultat['id_user'] != $id_user) {
|
||||
$template->assign('message','La planète sur laquelle vous désirez stationner ne vous appartient pas.'.$resultat['id_user'].' : '.$id_user);
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 3000);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
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();
|
||||
$template->assign('message','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.');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
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
|
||||
|
|
@ -197,13 +89,7 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
|
|||
$nbI = count($nomvaisa);
|
||||
for ($i=1 ; $i<=$nbI ; $i++) {
|
||||
if (!empty($sess->values['vais'][$i])) {
|
||||
if ($sess->values['vais'][$i] > $queryPlanete['vaisseau_'.$i]) {
|
||||
$template->assign('message','Vous avez envoyé plus de vaisseaux que vous n\'en posséder sur cette planète.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 3000);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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, ";
|
||||
|
|
@ -213,20 +99,8 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
|
|||
}
|
||||
}
|
||||
}
|
||||
if ($nbVais <= 0) {
|
||||
$template->assign('message','Vous devez envoyer au moins un vaisseau pour former une flotte !');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 3500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
elseif ($sess->values['flnbvais'] != $nbVais) {
|
||||
$template->assign('message','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="">contactez un administrateur</a>.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 4500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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'];
|
||||
|
|
@ -248,20 +122,8 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
|
|||
$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) {
|
||||
$template->assign('message','Vous ne pouvez pas embarquer autant de ressources, les cales débordent.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 3500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
elseif ($plan_metal < 0 || $plan_cristal < 0 || $plan_hydrogene < 0) {
|
||||
$template->assign('message','Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 3500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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'];
|
||||
|
|
@ -281,11 +143,7 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
|
|||
unset($sess->values['vais']);
|
||||
$sess->put();
|
||||
|
||||
$template->assign('message','Votre flotte a été envoyée avec succès.');
|
||||
$template->assign('couleur','green');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 4000);</script>');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
erreur('Votre flotte a été envoyée avec succès.', "green", '?p=flotte', 4000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -298,27 +156,14 @@ elseif (!empty($_POST['v1']) || !empty($_POST['v2']) || !empty($_POST['v3']) ||
|
|||
$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]) {
|
||||
$template->assign('message','Il ne vous reste plus assez de vaisseaux !');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 2000);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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) {
|
||||
$template->assign('message','Vous devez envoyer au moins un vaisseau.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 2000);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
|
||||
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'];
|
||||
|
|
@ -359,7 +204,32 @@ elseif (!empty($_POST['v1']) || !empty($_POST['v2']) || !empty($_POST['v3']) ||
|
|||
$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>');
|
||||
$template->assign('favoris', '<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']);
|
||||
|
|
@ -369,42 +239,34 @@ elseif (!empty($_GET['n'])) {
|
|||
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') {
|
||||
$template->assign('message','Votre flotte est déjà en train de revenir !');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte&n='.$idN.'";\', 1500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
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 {
|
||||
$template->assign('message','Impossible d\'annuler la mission, elle a déjà commencée.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte&n='.$idN.'";\', 1500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
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) {
|
||||
$template->assign('message','Impossible de trouver cette flotte !');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?p=flotte";\', 1500);</script>');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
if ($bdd->num_rows <= 0) erreur('Impossible de trouver cette flotte !', "red", '?p=flotte', 1500);
|
||||
else {
|
||||
if (!empty($_POST['nomflotte'])) {
|
||||
$nom = $_POST['nomflotte'];
|
||||
$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 = '$idN' LIMIT 1;");
|
||||
$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']);
|
||||
|
|
@ -422,9 +284,36 @@ elseif (!empty($_GET['n'])) {
|
|||
$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';");
|
||||
|
|
@ -465,5 +354,21 @@ else {
|
|||
|
||||
$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);
|
||||
}
|
||||
?>
|
||||
89
game/jeu/laboratoire.php
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'laboratoire';
|
||||
$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'])) {
|
||||
//Récupération des erreurs de la mise en file d'attente pour traitement
|
||||
$construction = $planete->file_addObjet("technologies", intval(gpc('t')));
|
||||
|
||||
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;
|
||||
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')) {
|
||||
$planete->file_delObjet("technologies", $i);
|
||||
header('Location: ?p=laboratoire');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
//Règler la production à la châine
|
||||
/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) {
|
||||
if($_GET['r']) $file->chaine = false;
|
||||
else $file->chaine = true;
|
||||
$export = mysql_real_escape_string(serialize($file));
|
||||
mysql_query("UPDATE planete SET file_bat = '$export' WHERE id = '$idPlan';");
|
||||
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;
|
||||
$n = $planete->technologies[$i] + 1; eval($technoloCALC[$i][0]); eval($technoloCALC[$i][1]); eval($technoloCALC[$i][2]); eval($technoloCALC[$i][3]);
|
||||
if ($planete->file_exist($i, 'file_tech')) $enFile = true;
|
||||
if (!empty($technolo[$i]) && requestDeblok($technoloTECH[$i], $planete)) $TEMP_batiments[] =
|
||||
array(
|
||||
'image' => $technoli[$i],
|
||||
'nom' => $technolo[$i],
|
||||
'niveau' => $niveau,
|
||||
'description' => $technode[$i],
|
||||
'descriptione' => addslashes($technode[$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,
|
||||
'enfile' => $enFile,
|
||||
'maq_metal' => ceil($a - $planete->metal),
|
||||
'maq_cristal' => ceil($b - $planete->cristal),
|
||||
'maq_hydrogene' => ceil($c - $planete->hydrogene)
|
||||
);
|
||||
}
|
||||
$template->assign('recherches', $TEMP_batiments);
|
||||
$template->assign('chaine', $planete->technologies);
|
||||
$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();
|
||||
for ($i=1 ; $i <= $nbfile ; $i++) {
|
||||
$file_unit = explode(',', $planete->file_tech[$i]);
|
||||
$n = $planete->technologies[$file_unit[0]] + 1;
|
||||
eval($technoloCALC[$file_unit[0]][3]);
|
||||
if ($i == 1) $file[] = array($file_unit[0], $file_unit[1], ceil($sec - (time() - $planete->file_tech[0])), $technolo[$file_unit[0]]);
|
||||
else $file[] = array($file_unit[0], $file_unit[1], ceil($sec), $technolo[$file_unit[0]]);
|
||||
}
|
||||
|
||||
$template->assign('file', $file);
|
||||
?>
|
||||
|
|
@ -9,7 +9,7 @@ if (!empty($HB_login)) {
|
|||
exit;
|
||||
}
|
||||
else {
|
||||
header('Location: ./');
|
||||
header('Location: ./'.$config['first_page']);
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
|
|
@ -8,9 +8,8 @@ if (isset($_POST['IM'])) {
|
|||
for($i=1 ; $i<=$_POST['IM'] ; $i++) {
|
||||
if (!empty($_POST['m'.$i])) {
|
||||
$mes = $_POST['m'.$i];
|
||||
$pseudo = $queryUser["pseudo"];
|
||||
$bdd->connexion();
|
||||
$bdd->query("DELETE FROM $table_mail WHERE destinataire = '$pseudo' AND id = '$mes';");
|
||||
$bdd->query("DELETE FROM $table_mail WHERE destinataire = $id_user AND id = '$mes';");
|
||||
$bdd->deconnexion();
|
||||
$stop = true;
|
||||
}
|
||||
|
|
@ -22,9 +21,8 @@ if (isset($_POST['IR'])) {
|
|||
for($i=1 ; $i<=$_POST['IR'] ; $i++) {
|
||||
if (!empty($_POST['r'.$i])) {
|
||||
$mes = $_POST['r'.$i];
|
||||
$pseudo = $queryUser["pseudo"];
|
||||
$bdd->connexion();
|
||||
$bdd->query("UPDATE $table_mail SET vu='s' WHERE destinataire = '$pseudo' AND id = '$mes';");
|
||||
$bdd->query("UPDATE $table_mail SET vu='s' WHERE destinataire = $id_user AND id = '$mes';");
|
||||
$bdd->deconnexion();
|
||||
$stop = true;
|
||||
}
|
||||
|
|
@ -32,14 +30,13 @@ if (isset($_POST['IR'])) {
|
|||
if ($stop) { header('Location: ?p=messagerie'); exit; }
|
||||
}
|
||||
|
||||
$pseudo = $queryUser["pseudo"];
|
||||
$bdd->connexion();
|
||||
$messcomp = $bdd->query("SELECT * FROM $table_mail WHERE destinataire = '$pseudo' AND expediteur != '' ORDER BY id DESC;");
|
||||
$messcomp = $bdd->query("SELECT M.*, U.pseudo AS expediteur FROM $table_mail M INNER JOIN $table_user U ON U.id = M.expediteur WHERE M.destinataire = $id_user AND M.expediteur != false ORDER BY M.id DESC;");
|
||||
$nbmax = $bdd->num_rows;
|
||||
|
||||
$result = $bdd->query("SELECT * FROM $table_mail WHERE destinataire = '$pseudo' AND expediteur != '' ORDER BY id DESC LIMIT 50;");
|
||||
$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 > $i) $result = $messcomp;
|
||||
if ($queryUser['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();
|
||||
|
|
@ -52,7 +49,7 @@ $template->assign('messages', $TEMP_messages);
|
|||
$template->assign('IM', $i);
|
||||
|
||||
|
||||
$data = $bdd->query("SELECT * FROM $table_mail WHERE destinataire = '$pseudo' AND expediteur = '' AND vu != 's' ORDER BY id DESC;");
|
||||
$data = $bdd->query("SELECT * FROM $table_mail WHERE destinataire = $id_user AND expediteur = false AND vu != 's' ORDER BY id DESC;");
|
||||
$nbres = $bdd->num_rows;
|
||||
$TEMP_rapport = array();
|
||||
for($i = 0; $i < $nbres; $i++){
|
||||
|
|
@ -65,6 +62,6 @@ for (j=2; document.getElementsByName(\'m\'+j)[0]; j++) hide(document.getElements
|
|||
for (j=2; document.getElementsByName(\'r\'+j)[0]; j++) hide(document.getElementsByName(\'r\'+j)[0].previousSibling);
|
||||
</script>');
|
||||
|
||||
$bdd->query("UPDATE $table_mail SET vu = '0' WHERE destinataire = '$pseudo' AND vu != 's'");
|
||||
$bdd->query("UPDATE $table_mail SET vu = '0' WHERE destinataire = $id_user AND vu != 's'");
|
||||
$bdd->deconnexion();
|
||||
?>
|
||||
|
|
@ -3,10 +3,12 @@ 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);
|
||||
//file_log('inscription : login = '.$_POST['HB_login'].' ; password = '.$_POST['HB_password'], 1);
|
||||
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 = $_GET['mdp'];
|
||||
$mdp = mdp($pseudo, $_GET['mdp']);
|
||||
$alea = $mdp[1];
|
||||
$mdp = $mdp[0];
|
||||
$race = $_GET['race'];
|
||||
$mail = $_GET['mail'];
|
||||
$ti = $_GET['ti'];
|
||||
|
|
@ -21,7 +23,7 @@ if (!empty($_GET['cds'])) {
|
|||
$base->escape($mail);
|
||||
$base->escape($ti);
|
||||
|
||||
$base->query("SELECT * FROM $table_user WHERE pseudo = '$pseudo' ORDER BY id DESC;");
|
||||
$base->query("SELECT id FROM $table_user WHERE pseudo = '$pseudo';");
|
||||
if ($base->num_rows) {
|
||||
$template->assign('message','Votre compte est déjà créé sur ce serveur !');
|
||||
$template->assign('couleur','red');
|
||||
|
|
@ -30,13 +32,19 @@ if (!empty($_GET['cds'])) {
|
|||
}
|
||||
|
||||
//Création de l'utilisateur
|
||||
$base->query("INSERT INTO $table_user (pseudo, mdp, race, mail, last_ip, time_inscription) VALUES ('$pseudo', '$mdp', '$race', '$mail', '".$_SERVER['REMOTE_ADDR']."', '".time()."');");
|
||||
$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()."');");
|
||||
|
||||
//Création des bases de la planète
|
||||
$image = mt_rand(1,15);
|
||||
$cases = 225;
|
||||
$queryUser = $base->query("SELECT * FROM $table_user WHERE pseudo = '$pseudo' ORDER BY id DESC;");
|
||||
$id_user = $queryUser[0]['id'];
|
||||
$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('couleur','red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
exit;
|
||||
}
|
||||
$id_user = $queryUser['id'];
|
||||
$time = time();
|
||||
|
||||
//Recherche d'une planète disponible
|
||||
|
|
@ -118,7 +126,7 @@ if (!empty($_GET['cds'])) {
|
|||
exit;
|
||||
}
|
||||
else {
|
||||
$template->assign('message','Vous pouvez maintenant vous connectez sur ce serveur !');
|
||||
$template->assign('message','Vous pouvez maintenant vous connecter sur ce serveur !');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?index";\', 3500);</script>');
|
||||
$template->assign('couleur','green');
|
||||
$template->display('cms/erreur.tpl');
|
||||
|
|
@ -13,10 +13,7 @@ if (!empty($_POST['titre']) && !empty($_POST['description'])) {
|
|||
$bdd->escape($description);
|
||||
$bdd->query("INSERT INTO $table_ope_mail (id_user, titre, contenu, time) VALUES ('$id_user', '$titre', '$description', '$time');");
|
||||
$bdd->deconnexion();
|
||||
$template->assign('message','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.');
|
||||
$template->assign('couleur','green');
|
||||
$template->display('game/erreur.tpl');
|
||||
exit;
|
||||
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) {
|
||||
$titre = $_POST['O_titre'];
|
||||
115
game/jeu/options.php
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'options';
|
||||
$titre = 'Options';
|
||||
$template->assign('page',$page);
|
||||
$template->assign('titre',$titre);
|
||||
|
||||
$pseudo = $queryUser['pseudo'];
|
||||
$mailUtil = $queryUser['mail'];
|
||||
$mdp = $queryUser['mdp'];
|
||||
$mdp_var = $queryUser['mdp_var'];
|
||||
|
||||
if (isset($_GET['a']) && $_GET['a'] == 'mv' && isset($_GET['n']) && $_GET['n'] == $sess->values['idvac']) {
|
||||
$impossible = false;
|
||||
include_once(_FCORE."../game/Class/class.gerefile.php");
|
||||
$nbPlan = count($queryPlanetes);
|
||||
for ($i=0 ; $i<$nbPlan ; $i++) {
|
||||
$file = unserialize($queryPlanetes[$i]['file_bat']);
|
||||
if (!empty($queryPlanetes[$i]['file_bat']) && count($file->file)) $impossible = true;
|
||||
|
||||
$file = unserialize($queryPlanetes[$i]['file_tech']);
|
||||
if (!empty($queryPlanetes[$i]['file_tech']) && count($file->file)) $impossible = true;
|
||||
|
||||
$file = unserialize($queryPlanetes[$i]['file_cas']);
|
||||
if (!empty($queryPlanetes[$i]['file_cas']) && count($file->file)) $impossible = true;
|
||||
|
||||
$file = unserialize($queryPlanetes[$i]['file_vais']);
|
||||
if (!empty($queryPlanetes[$i]['file_vais']) && count($file->file)) $impossible = true;
|
||||
|
||||
$file = unserialize($queryPlanetes[$i]['file_ter']);
|
||||
if (!empty($queryPlanetes[$i]['file_ter']) && count($file->file)) $impossible = true;
|
||||
}
|
||||
|
||||
if ($impossible) erreur('Impossible d\'activer le mode vacances.<br />Toutes les files d\'attentes sur vos différentes planètes ne sont pas vides.', "red", '?p=options', 4000);
|
||||
else {
|
||||
$bdd->connexion();
|
||||
$bdd->query("SELECT * FROM flottes WHERE id_user = '$id_user'");
|
||||
if ($bdd->num_rows) erreur('Des flottes sont actuellement en mission, veuillez toutes les faire revenir à quai avant d\'activer le mode vacances.', "red", '?p=options', 4000);
|
||||
|
||||
$bdd->query("UPDATE user SET mv = '1' WHERE id = '$id_user'");
|
||||
$bdd->deconnexion();
|
||||
$sess->values['connected'] = FALSE;
|
||||
$sess->put();
|
||||
|
||||
erreur('Le mode vacances est maintenant actif sur votre compte.<br /><br />Vous pourez vous reconnecter sur votre compte à partir de<br />'.strftime("%A %d %B à %H:%M", $queryUser['last_visite']+259200).'<br /><br />Bonnes vacances !', "green", '?index', 10000);
|
||||
}
|
||||
}
|
||||
elseif (isset($_GET['a']) && $_GET['a'] == 'dl' && isset($_GET['n']) && $_GET['n'] == $sess->values['idvac']) {
|
||||
$bdd->connexion();
|
||||
$bdd->query("UPDATE user SET mv = -2 WHERE id = $id_user");
|
||||
$bdd->deconnexion();
|
||||
|
||||
erreur('Votre compte sera supprimé le <br />'.strftime("%A %d %B à %H:%M", mktime(5,0,0,date('n',time()+86400*2),date('d',time()+86400*2),date('y',time()+86400*2))).'.', "green");
|
||||
}
|
||||
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 ($_POST['mdp_nouv'] == $_POST['mdp_conf']) {
|
||||
$password = mdp($pseudo, $_POST['mdp_nouv'], $mdp_var);
|
||||
$auth = sha1($password);
|
||||
|
||||
$bdd->connexion();
|
||||
$bdd->escape($password);
|
||||
$bdd->query("UPDATE user SET mdpNOUV = '$password' WHERE id = '$id_user'");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if(!send_mail($mailUtil, 'Halo-Battle :: Activation de votre nouveau mot de passe', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Halo-Battle :: Activation de votre nouveau mot de passe</title></head><body><p>Bonjour '.trouvNom($id_user).',<br />Vous recevez ce mail suite à votre demande de changement de mot de passe. Ce dernier entrera en vigueur une fois que vous aurez validé ce changement en cliquant via ce lien :<br /><a href="http://'.$_SERVER['HTTP_HOST'].'/'.$config['first_page'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'">http://'.$_SERVER['HTTP_HOST'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'</a><br />Notez que pour que le mot de passe soit changé, il faut que vous soyer connecté sur votre compte.<br /><br />A bientôt dans Halo-Battle,<br />Le staff</p></body></html>')) erreur('Erreur lors de l\'envoie du courriel de confirmation !<br /><br />Si le problème perciste, <a href="mailto:'.$config['mailadmin'].'">contactez un administrateur</a>.');
|
||||
else erreur('Un courriel vient d\'être envoyé à '.$mailUtil.'. Le mot de passe ne sera modifié qu\'après avoir cliqué sur le lien d\'activation contenu dans ce courriel.', "green");
|
||||
$mail->SmtpClose();
|
||||
unset($mail);
|
||||
}
|
||||
else erreur('Le nouveau mot de passe que vous avez entré ne correspond pas à sa confirmation.', "red", '?p=options', 3500);
|
||||
}
|
||||
else erreur('L\'ancien mot de passe que vous avez tapé n\'est pas correct.', "red", '?p=options', 3500);
|
||||
}
|
||||
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['mail']) && !empty($_POST['mail'])) {
|
||||
$Nmail = $_POST['mail'];
|
||||
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;
|
||||
}
|
||||
else {
|
||||
$auth = sha1($Nmail);
|
||||
$bdd->query("UPDATE user SET mailNOUV = '$Nmail' WHERE id = '$id_user'");
|
||||
$bdd->deconnexion();
|
||||
|
||||
//On envoie le mail de confirmation
|
||||
if(!send_mail($Nmail, 'Halo-Battle :: Activation de votre nouvelle adresse électronique', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Halo-Battle :: Activation de votre nouvelle adresse électronique</title></head><body><p>Bonjour,<br />Vous recevez ce mail suite à votre demande de changement d\'adresse électronique. Cette dernière entrera en vigueur une fois que vous aurez validé ce changement en cliquant via ce lien :<br /><a href="http://'.$_SERVER['HTTP_HOST'].'/'.$config['first_page'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'">http://'.$_SERVER['HTTP_HOST'].'?p=changeopt&util='.$id_user.'&auth='.$auth.'</a><br />Notez que pour que l\'adresse soit changée, il faut que vous soyer connecté sur votre compte.<br /><br />A bientôt dans Halo-Battle,<br />Le staff</p></body></html>')) erreur('Erreur lors de l\'envoie du courriel de confirmation !<br /><br /><small><i>'.$mail->ErrorInfo.'</i></small><br /><br />Si le problème perciste, <a href="mailto:'.$config['mailadmin'].'">contactez un administrateur</a>.');
|
||||
else erreur('Un courriel vient d\'être envoyé à '.$Nmail.'. L\'adresse électronique ne sera modifié qu\'après avoir cliqué sur le lien d\'activation contenu dans ce courriel.', "green");
|
||||
$mail->SmtpClose();
|
||||
unset($mail);
|
||||
}
|
||||
}
|
||||
else erreur('L\'adresse électronique que vous avez tapée n\'est pas valide.', "red", '?p=options');
|
||||
}
|
||||
else erreur('Veuillez remplir tous les champs avant de valider le formulaire.', "red", '?p=options');
|
||||
}
|
||||
else erreur('Mot de passe incorrect.', "red", '?p=options');
|
||||
}
|
||||
|
||||
$sess->values['idvac'] = sha1(rand(123456789,9876543210).'ß‘}☻'.time());
|
||||
$sess->put();
|
||||
|
||||
$template->assign('mail',$queryUser['mail']);
|
||||
$template->assign('idvac',$sess->values['idvac']);
|
||||
?>
|
||||
21
game/jeu/options_change.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$titre = 'Changement des options';
|
||||
|
||||
if (isset($_GET['auth'])) {
|
||||
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';");
|
||||
$bdd->deconnexion();
|
||||
erreur('Votre nouveau mot de passe est en place.', "green");
|
||||
}
|
||||
elseif (!empty($queryUser['mailNOUV']) && !empty($queryUser['mailNOUV']) && sha1($queryUser['mailNOUV']) == $_GET['auth']) {
|
||||
$bdd->connexion();
|
||||
$bdd->query("UPDATE user SET mail = mailNOUV, mailNOUV = '', mdpNOUV = '' WHERE id = '$id_user';");
|
||||
$bdd->deconnexion();
|
||||
erreur('Votre nouvelle adresse électronique est en place.', "green");
|
||||
}
|
||||
else erreur('Impossible d\'authentifier le lien !');
|
||||
}
|
||||
else erreur('Le lien est incomplet !');
|
||||
?>
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
session_start();
|
||||
require_once(_FCORE."hb_game/Class/class.phpmailer.php");
|
||||
require_once(_FCORE."../game/Class/class.phpmailer.php");
|
||||
$page = 'oubliemdp';
|
||||
$erreur = '';
|
||||
|
||||
|
|
@ -12,7 +12,7 @@ if (!empty($_GET['i']) && isset($_GET['n'])) {
|
|||
$bdd->escape($Un);
|
||||
$bdd->escape($Ui);
|
||||
$user = $bdd->unique_query("SELECT * FROM user WHERE pseudo = '$Un' AND mdpNOUV = '$Ui';");
|
||||
if ($user && $bdd->unique_query("UPDATE user SET mdp = mdpNOUV, mdpNOUV = '', mdp_var = 0 WHERE pseudo = '$Un'")) {
|
||||
if ($user && $bdd->unique_query("UPDATE user SET mdp = mdpNOUV, mdpNOUV = '' WHERE pseudo = '$Un'")) {
|
||||
$bdd->deconnexion();
|
||||
$template->assign('message','Votre mot de passe a été réinitialisé avec succès.');
|
||||
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?index";\', 3500);</script>');
|
||||
|
|
@ -45,18 +45,18 @@ if (isset($_POST['HB_pseudo']) && isset($_POST['HB_mail']) && isset($_POST['HB_c
|
|||
$bdd->connexion();
|
||||
$bdd->escape($HB_pseudo);
|
||||
$bdd->escape($HB_mail);
|
||||
$user = $bdd->unique_query("SELECT id FROM $table_user WHERE pseudo = '$HB_pseudo' AND mail = '$HB_mail';");
|
||||
$user = $bdd->unique_query("SELECT id, mdp_var FROM $table_user WHERE pseudo = '$HB_pseudo' AND mail = '$HB_mail';");
|
||||
if ($user) {
|
||||
$liste = "abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
$code = '';
|
||||
while(strlen($code) != 8) {
|
||||
$code .= $liste[rand(0,60)];
|
||||
}
|
||||
$passNOUV = sha1(strtoupper($HB_pseudo).':'.$code);
|
||||
$passNOUV = mdp($HB_pseudo, $code, $user['mdp_var']);
|
||||
$bdd->unique_query("UPDATE $table_user SET mdpNOUV = '$passNOUV' WHERE pseudo = '$HB_pseudo';");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if(!send_mail($HB_mail, 'Halo-Battle :: Reinitialisation du mot de passe', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Halo-Battle :: Réinitialisation du mot de passe</title></head><body><p>Bonjour '.$HB_pseudo.',<br />Vous recevez ce mail suite à votre demande de réinitialisation de mot de passe. Pour confirmer votre réinitialisation de mot de passe et ainsi pouvoir de nouveau accéder au jeu, cliquez sur le lien ci-après :<br /><a href="http://'.$_SERVER['HTTP_HOST'].'?p=oubliemdp&i='.$passNOUV.'&n='.$HB_pseudo.'">http://'.$_SERVER['HTTP_HOST'].'?p=oubliemdp&i='.$passNOUV.'&n='.$HB_pseudo.'</a><br /><br />Votre nouveau mot de passe est : '.$code.'<br /><br />A bientôt dans Halo-Battle,<br />Le staff</p></body></html>')){ //Teste si le return code est ok.
|
||||
if(!send_mail($HB_mail, 'Halo-Battle :: Reinitialisation du mot de passe', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Halo-Battle :: Réinitialisation du mot de passe</title></head><body><p>Bonjour '.$HB_pseudo.',<br />Vous recevez ce mail suite à votre demande de réinitialisation de mot de passe. Pour confirmer votre réinitialisation de mot de passe et ainsi pouvoir de nouveau accéder au jeu, cliquez sur le lien ci-après :<br /><a href="http://'.$_SERVER['HTTP_HOST'].'/'.$config['first_page'].'?p=oubliemdp&i='.$passNOUV.'&n='.$HB_pseudo.'">http://'.$_SERVER['HTTP_HOST'].'?p=oubliemdp&i='.$passNOUV.'&n='.$HB_pseudo.'</a><br /><br />Votre nouveau mot de passe est : '.$code.'<br /><br />A bientôt dans Halo-Battle,<br />Le staff</p></body></html>')){ //Teste si le return code est ok.
|
||||
$template->assign('message','Erreur lors de l\'envoie du courriel de confirmation !<br /><br /><small><i>'.$mail->ErrorInfo.'</i></small><br /><br />Si le problème perciste, <a href="mailto:technique@halo-battle.s-fr.com">contactez un administrateur</a>.');
|
||||
$template->assign('couleur','red');
|
||||
$template->display('cms/erreur.tpl');
|
||||
41
game/jeu/rename.php
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'rename';
|
||||
$titre = $planete->nom_planete;
|
||||
|
||||
if (isset($_POST['planete'])) {
|
||||
$nouvNom = trim($_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');
|
||||
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');
|
||||
}
|
||||
}
|
||||
elseif(isset($_GET['a']) && isset($_GET['i']) && $_GET['a'] == $sess->values['abandon'] && !empty($idPlan) && $idPlan == $_GET['i']) {
|
||||
$galaxie = $planete->galaxie; $ss = $planete->ss; $position = $planete->position; $bdd->connexion();
|
||||
$bdd->query("DELETE FROM $table_planete WHERE id_user = $id_user AND id = $idPlan AND galaxie = $galaxie AND ss = $ss AND position = $position LIMIT 1;");
|
||||
$bdd->query("DELETE FROM $table_flottes WHERE id_user = $id_user AND start_galaxie = $galaxie AND start_ss = $ss AND start_position = $position;");
|
||||
|
||||
$req = $bdd->unique_query("SELECT * FROM $table_planete WHERE id_user = $id_user LIMIT 1;");
|
||||
$bdd->deconnexion();
|
||||
$sess->values['abandon'] = 0;
|
||||
unset($sess->values['abandon']);
|
||||
$sess->values['idPlan'] = $req['id'];
|
||||
$sess->put();
|
||||
|
||||
erreur('Cette planète n\'est désormais plus sous votre contrôle.', "green", '?p=accueil');
|
||||
}
|
||||
|
||||
$bdd->connexion();
|
||||
$reqnb = $bdd->unique_query("SELECT COUNT(id) AS total FROM $table_planete WHERE id_user = $id_user;");
|
||||
$bdd->deconnexion();
|
||||
if ($reqnb['total'] > 1) $hashA = md5(rand(123456789,9876543210));
|
||||
else $hashA = false;
|
||||
$sess->values['abandon'] = $hashA;
|
||||
$sess->put();
|
||||
$template->assign('abandonH', $hashA);
|
||||
?>
|
||||
30
game/jeu/ressources.php
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
$page = 'ressources';
|
||||
$titre = 'Ressources';
|
||||
|
||||
if (isset($_POST['coeff_metal']) && isset($_POST['coeff_cs'])) {
|
||||
|
||||
$planete->coeff_bat[0] = floor($_POST['coeff_metal'])/100;
|
||||
if (isset($_POST['coeff_cristal'])) $planete->coeff_bat[1] = floor($_POST['coeff_cristal'])/100;
|
||||
if (isset($_POST['coeff_hydrogene'])) $planete->coeff_bat[2] = floor($_POST['coeff_hydrogene'])/100;
|
||||
$planete->coeff_bat[3] = floor($_POST['coeff_cs'])/100;
|
||||
if (isset($_POST['coeff_ce'])) $planete->coeff_bat[4] = floor($_POST['coeff_ce'])/100;
|
||||
if (!in_array('coeff_bat', $planete->modif)) $planete->modif[] = 'coeff_bat';
|
||||
|
||||
header('Location: ?p=ressources');
|
||||
exit;
|
||||
}
|
||||
|
||||
$template->assign('nombat', $batiment);
|
||||
|
||||
$tablo = $planete->production(3600, true);
|
||||
|
||||
$template->assign('ressources_prod', $tablo[1]);
|
||||
$template->assign('ressources_conso', $tablo[2]);
|
||||
$template->assign('ressources_coef', $tablo[0]);
|
||||
$template->assign('ressources_silo', array($planete->batiments[10], pow(2, $planete->batiments[10]) * 100000));
|
||||
$template->assign('ressources_toto', array($tablo[1][2] - $tablo[2][3], '(0)'));
|
||||
|
||||
$template->assign('ressources_tab', array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100));
|
||||
?>
|
||||
|
|
@ -124,8 +124,9 @@ $queryEN = array(
|
|||
$debriC = $combat->debriC;
|
||||
|
||||
$rapport->addInfo(array($debriM, $debriC), 12);
|
||||
$rapport->addInfo(array($enligne, $infos, count($infos)-1, array('humains' => $nbhumain, 'covenants' => $nbcovie, 'serveurs' => 'cette'), VERSION, $min.' min'), 13);
|
||||
$rapport->addInfo(array($enligne, $infos, count($infos)-1, array('humains' => $nbhumain, 'covenants' => $nbcovie, 'serveurs' => 'cette'), $config['version'], $min.' min'), 13);
|
||||
|
||||
$template->assign('page', 'simulateur_combat');
|
||||
$template = $rapport->show();
|
||||
print $template;
|
||||
echo("\n<!--Page générée en : ".round((array_sum(explode(' ', microtime()))) - (array_sum(explode(' ', $chrono_start))), 4)." secondes.-->");
|
||||
|
|
@ -18,7 +18,7 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
$casernei = array('grunt1.jpg','jackal.jpg','94990342wb4.jpg','98004530fx3.jpg','88091275ja8.jpg','hunter1.jpg','81770345oo4.jpg','88218731ts1.jpg','72188202fg9.jpg');
|
||||
$batimend = array('purificateur_m','purificateur_c','ionisateur','centrale_s','centrale_fusion','oeil','recherches','chantier_terrestre','???','caserne','silo','centre_info');
|
||||
$batimeni = array('batimentcovieux4.jpg','cristaloo3.png','powersupplycoviejq1.jpg','solaire.jpg','sanstitrevi7.jpg','oeilduprophetewj6.jpg','covielabocn5.jpg','chantierterrestrehg1.jpg','sanstitretruecolor09zn6.jpg','caserncov0ry.jpg','stockagebasement1cs10bl.jpg','ordianteur_hologramme.jpg');
|
||||
$batiment = array('Purificateur de métal','Purificateur de cristal','Ionisateur','Centrale solaire','Centrale de fusion','Oeil des prophètes','Centre de recherches','Chantier terrestre','Chantier spatial',0/*'Caserne'*/,'Entrepôt','Centrale informatique');
|
||||
$batiment = array('Purificateur de métal','Purificateur de cristal','Ionisateur','Centrale solaire','Centrale de fusion','Oeil des prophètes','Centre de recherches','Chantier terrestre','Chantier spatial','Caserne','Entrepôt','Centrale informatique');
|
||||
$batimede = array( 'Le purificateur de métal vous fournit les matières premières pour la construction de vos infrastructures et de vos unités. Plus vous développerez vos purificateurs, plus ils produiront de ressources. Les purificateurs les plus développés ont aussi besoin de plus d\'énergie.',
|
||||
'Le purificateur de cristal vous fournit les ressources pour vos installations électroniques et pour les alliages. Le purificateur de cristal consomme deux fois plus d\'énergie que celui de métal. Tous les vaisseaux et bâtiments ont besoin de cristal pour leur bouclier ou encore leurs composants électroniques. La production augmente avec le développement de l\'usine.',
|
||||
'L\'ionisateur utilise des ions négatifs et positifs d\'hydrogène pour créer une source conventionnelle de courant stable, servant à alimenter les bâtiments covenants qui nécessitent une arrivée massive de cette "ressource" pour actionner les divers éléments matériels des contrôles. La centrale de fusion à besoin de beaucoup d\'ions pour fonctionner.',
|
||||
|
|
@ -164,7 +164,7 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
|
|||
'Les soldats exo squelettiques possèdent des armures de combat très résistantes et d\'une puissance énorme mais contre balancée par une faible autonomie d\'énergie, une mobilité faible et d\'une discrétion auditive aussi silencieuse qu\'un char d\'assaut dans un champs de mines lotus.');
|
||||
$casernea = array('marine(s)','fusiller(s)','grenadier(s)','T.C.A.O.','sniper(s)','spartan(s)','médecin(s)','ingénieur(s)','soldat(s) exo squellette');
|
||||
$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',0/*'Ecole militaire'*/,'Silo de stockage','Centrale informatique');
|
||||
$batiment = array('Usine de métallurgie','Usine de cristal','Synchronisateur d\'hydrogène','Centrale solaire','Centrale énergétique','Base radar','Centre de recherches','Chantier terrestre','Chantier spatial','Ecole militaire','Silo de stockage','Centrale informatique');
|
||||
$batimede = array( 'Cette usine traite tous les métaux recueillis afin de produire du titanium-A ou différents types d\'alliages de qualité pour vos différentes constructions planétaires ou spatiales. Chaque niveau augmente la production de métal.',
|
||||
'L\'usine de cristal filtre les déchets récoltés avec les cristaux. Une fois séparés du reste ils sont classés par qualité par une quantité d\'appareils de haute technologie. Plus les cristaux sont purs plus ceux-ci peuvent être transformés en unités de stockage de données ou en conducteurs énergétiques de haute qualité. Plus ce bâtiment sera développé, plus vous pourrez traiter de cristaux rapidement.',
|
||||
'Ce bâtiment use de l\'eau pour la décomposer et en extraire l\'hydrogène, la base de toutes vos productions énergétiques, pour ensuite l\'acheminer dans des condensateurs ioniques afin de le rendre plus dense et par le fait même plus efficace. Chaque niveau augmente la production du synchronisateur.',
|
||||
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
55
game/tables.php
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) { header('Location: ../'); exit; }
|
||||
if ($config['db_type'] == "postgresql") {
|
||||
$table_alliances = '"public"."'.$config['db_prefix'].'alliances"';
|
||||
$table_alliances_attente = '"public"."'.$config['db_prefix'].'alliances_attente"';
|
||||
$table_alliances_chat = '"public"."'.$config['db_prefix'].'alliances_chat"';
|
||||
$table_alliances_creation = '"public"."'.$config['db_prefix'].'alliances_creation"';
|
||||
$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_flottes = '"public"."'.$config['db_prefix'].'flottes"';
|
||||
$table_flottes_combats = '"public"."'.$config['db_prefix'].'flottes_combats"';
|
||||
$table_infoshead = '"public"."'.$config['db_prefix'].'infoshead"';
|
||||
$table_mail = '"public"."'.$config['db_prefix'].'mail"';
|
||||
$table_messages_demarrage = '"public"."'.$config['db_prefix'].'messages_demarrage"';
|
||||
$table_ope_faq = '"public"."'.$config['db_prefix'].'ope_faq"';
|
||||
$table_ope_mail = '"public"."'.$config['db_prefix'].'ope_mail"';
|
||||
$table_ope_modele = '"public"."'.$config['db_prefix'].'ope_modele"';
|
||||
$table_ope_news = '"public"."'.$config['db_prefix'].'ope_news"';
|
||||
$table_planete = '"public"."'.$config['db_prefix'].'planete"';
|
||||
$table_registre_identification = '"public"."'.$config['db_prefix'].'registre_identification"';
|
||||
$table_sessions = '"public"."'.$config['db_prefix'].'sessions"';
|
||||
$table_user = '"public"."'.$config['db_prefix'].'user"';
|
||||
$table_user_inscriptions = '"public"."'.$config['db_prefix'].'user_inscriptions"';
|
||||
$table_version = '"public"."'.$config['db_prefix'].'version"';
|
||||
}
|
||||
elseif ($config['db_type'] == "mysql") {
|
||||
$table_alliances = $config['db_prefix'].'alliances';
|
||||
$table_alliances_attente = $config['db_prefix'].'alliances_attente';
|
||||
$table_alliances_chat = $config['db_prefix'].'alliances_chat';
|
||||
$table_alliances_creation = $config['db_prefix'].'alliances_creation';
|
||||
$table_alliances_emprunt = $config['db_prefix'].'alliances_emprunt';
|
||||
$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_flottes = $config['db_prefix'].'flottes';
|
||||
$table_flottes_combats = $config['db_prefix'].'flottes_combats';
|
||||
$table_infoshead = $config['db_prefix'].'infoshead';
|
||||
$table_mail = $config['db_prefix'].'mail';
|
||||
$table_messages_demarrage = $config['db_prefix'].'messages_demarrage';
|
||||
$table_ope_faq = $config['db_prefix'].'ope_faq';
|
||||
$table_ope_mail = $config['db_prefix'].'ope_mail';
|
||||
$table_ope_modele = $config['db_prefix'].'ope_modele';
|
||||
$table_ope_news = $config['db_prefix'].'ope_news';
|
||||
$table_planete = $config['db_prefix'].'planete';
|
||||
$table_registre_identification = $config['db_prefix'].'registre_identification';
|
||||
$table_sessions = $config['db_prefix'].'sessions';
|
||||
$table_user = $config['db_prefix'].'user';
|
||||
$table_user_inscriptions = $config['db_prefix'].'user_inscriptions';
|
||||
$table_version = $config['db_prefix'].'version';
|
||||
}
|
||||
?>
|
||||
|
|
@ -1,8 +1,10 @@
|
|||
<?php //vars.php : contient toutes les valeurs pour construire chaque batiments, unités ou technologies
|
||||
if (!isset($technolo)) {
|
||||
$race = 'none';
|
||||
include(_FCORE."hb_game/noms.php");
|
||||
include(_FCORE."../game/noms.php");
|
||||
}
|
||||
$nanite = 0;
|
||||
|
||||
/*
|
||||
* Défenses
|
||||
*/
|
||||
|
|
@ -73,73 +75,73 @@ $batimentCALC = 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+$queryPlanete["centre_info"]))*pow(1.5,$n))*(1/(1+$queryPlanete["ingenieur"]*0.005)))*60;'
|
||||
'$sec = (ceil(1.02*(1/(1+$nanite))*(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+$queryPlanete["centre_info"]))*pow(1.55,$n))*(1/(1+$queryPlanete["ingenieur"]*0.005)))*60;'
|
||||
'$sec = (ceil(1.2*(1/(1+$nanite))*(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+$queryPlanete["centre_info"]))*pow(1.624,$n))*(1/(1+$queryPlanete["ingenieur"]*0.005)))*60;'
|
||||
'$sec = (ceil(1.5*(1/(1+$nanite))*(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+$queryPlanete["centre_info"]))*pow(1.597,$n))*(1/(1+$queryPlanete["ingenieur"]*0.005)))*60;'
|
||||
'$sec = (ceil(1.36*(1/(1+$nanite))*(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+$queryPlanete["centre_info"]))*pow(1.7,$n))*(1/(1+$queryPlanete["ingenieur"]*0.005)))*60;'
|
||||
'$sec = (ceil(1.8*(1/(1+$nanite))*(3/(1+$planete->batiments[11]))*pow(1.7,$n))*(1/(1+$planete->casernes[7]*0.005)))*60;'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(2,$queryPlanete["radar"])*750);',
|
||||
'$b = ceil(pow(2,$queryPlanete["radar"])*500);',
|
||||
'$a = ceil(pow(2,$planete->batiments[5])*750);',
|
||||
'$b = ceil(pow(2,$planete->batiments[5])*500);',
|
||||
'$c = 0;',
|
||||
'$sec = ceil((pow(2,$queryPlanete["radar"])*720)/(pow(1.23,$queryPlanete["centre_info"])+0.0025*$queryPlanete["ingenieur"]));'
|
||||
'$sec = ceil((pow(2,$planete->batiments[5])*720)/(pow(1.23,$planete->batiments[11])+0.0025*$planete->casernes[7]));'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(2,$queryPlanete["labo"])*200);',
|
||||
'$b = ceil(pow(2,$queryPlanete["labo"])*150);',
|
||||
'$a = ceil(pow(2,$planete->batiments[6])*200);',
|
||||
'$b = ceil(pow(2,$planete->batiments[6])*150);',
|
||||
'$c = 0;',
|
||||
'$sec = ceil((pow(2,$queryPlanete["labo"])*720)/(pow(1.23,$queryPlanete["centre_info"])+0.0025*$queryPlanete["ingenieur"]));'
|
||||
'$sec = ceil((pow(2,$planete->batiments[6])*720)/(pow(1.23,$planete->batiments[11])+0.0025*$planete->casernes[7]));'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(2,$queryPlanete["chantier_terrestre"])*520);',
|
||||
'$b = ceil(pow(2,$queryPlanete["chantier_terrestre"])*380);',
|
||||
'$a = ceil(pow(2,$planete->batiments[7])*520);',
|
||||
'$b = ceil(pow(2,$planete->batiments[7])*380);',
|
||||
'$c = 0;',
|
||||
'$sec = ceil((pow(2,$queryPlanete["chantier_terrestre"])*420)/(pow(1.23,$queryPlanete["centre_info"])+0.0025*$queryPlanete["ingenieur"]));'
|
||||
'$sec = ceil((pow(2,$planete->batiments[7])*420)/(pow(1.23,$planete->batiments[11])+0.0025*$planete->casernes[7]));'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(2,$queryPlanete["chantier_spatial"])*600);',
|
||||
'$b = ceil(pow(2,$queryPlanete["chantier_spatial"])*450);',
|
||||
'$a = ceil(pow(2,$planete->batiments[8])*600);',
|
||||
'$b = ceil(pow(2,$planete->batiments[8])*450);',
|
||||
'$c = 0;',
|
||||
'$sec = ceil((pow(2,$queryPlanete["chantier_spatial"])*600)/(pow(1.23,$queryPlanete["centre_info"])+0.0025*$queryPlanete["ingenieur"]));'
|
||||
'$sec = ceil((pow(2,$planete->batiments[8])*600)/(pow(1.23,$planete->batiments[11])+0.0025*$planete->casernes[7]));'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(2,$queryPlanete["caserne"])*200);',
|
||||
'$b = ceil(pow(2,$queryPlanete["caserne"])*100);',
|
||||
'$a = ceil(pow(2,$planete->batiments[9])*200);',
|
||||
'$b = ceil(pow(2,$planete->batiments[9])*100);',
|
||||
'$c = 0;',
|
||||
'$sec = ceil((pow(2,$queryPlanete["caserne"])*300)/(pow(1.23,$queryPlanete["centre_info"])+0.0025*$queryPlanete["ingenieur"]));'
|
||||
'$sec = ceil((pow(2,$planete->batiments[9])*300)/(pow(1.23,$planete->batiments[11])+0.0025*$planete->casernes[7]));'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(2,$queryPlanete["silo"])*400);',
|
||||
'$b = ceil(pow(2,$queryPlanete["silo"])*260);',
|
||||
'$a = ceil(pow(2,$planete->batiments[10])*400);',
|
||||
'$b = ceil(pow(2,$planete->batiments[10])*260);',
|
||||
'$c = 0;',
|
||||
'$sec = ceil((pow(2,$queryPlanete["silo"])*1200)/(pow(1.23,$queryPlanete["centre_info"])+0.0025*$queryPlanete["ingenieur"]));'
|
||||
'$sec = ceil((pow(2,$planete->batiments[10])*1200)/(pow(1.23,$planete->batiments[11])+0.0025*$planete->casernes[7]));'
|
||||
),
|
||||
array(
|
||||
'$a = ceil(pow(1.7,$queryPlanete["centre_info"])*600);',
|
||||
'$b = ceil(pow(1.7,$queryPlanete["centre_info"])*420);',
|
||||
'$c = ceil(pow(1.7,$queryPlanete["centre_info"])*100);',
|
||||
'$sec = ceil((pow(1.9,$queryPlanete["centre_info"])*800)/((0.0025*$queryPlanete["ingenieur"])+1));'
|
||||
'$a = ceil(pow(1.7,$planete->batiments[11])*600);',
|
||||
'$b = ceil(pow(1.7,$planete->batiments[11])*420);',
|
||||
'$c = ceil(pow(1.7,$planete->batiments[11])*100);',
|
||||
'$sec = ceil((pow(1.9,$planete->batiments[11])*800)/((0.0025*$planete->casernes[7])+1));'
|
||||
)
|
||||
);
|
||||
$batimentTECH = array(
|
||||
|
|
@ -171,73 +173,73 @@ $technoloCALC = array(
|
|||
'$a = 0;',
|
||||
'$b = ceil(pow(2,$n)*500);',
|
||||
'$c = ceil(pow(2,$n)*150);',
|
||||
'$sec = ceil((420*2*($queryUser["informatique"]+1))/pow(1.25,($queryPlanete["labo"]-1)));'
|
||||
'$sec = ceil((420*2*($planete->technologies[0]+1))/pow(1.25,($planete->batiments[6]-1)));'
|
||||
),
|
||||
array(
|
||||
'$a=ceil(pow(2,$n)*500);',
|
||||
'$b=ceil(pow(2,$n)*750);',
|
||||
'$c=ceil(pow(2,$n)*100);',
|
||||
'$sec = ceil((600*2*($queryUser["detection"]+1))/pow(1.25,($queryPlanete["labo"]-2)));'
|
||||
'$sec = ceil((600*2*($planete->technologies[1]+1))/pow(1.25,($planete->batiments[6]-2)));'
|
||||
),
|
||||
array(
|
||||
'$a=ceil(pow(2,$n)*2500);',
|
||||
'$b=ceil(pow(2,$n)*500);',
|
||||
'$c = 0;',
|
||||
'$sec = ceil((1500*2*($queryUser["armement"]+1))/pow(1.25,($queryPlanete["labo"]-5)));'
|
||||
'$sec = ceil((1500*2*($planete->technologies[2]+1))/pow(1.25,($planete->batiments[6]-5)));'
|
||||
),
|
||||
array(
|
||||
'$a=ceil(pow(2,$n)*4000);',
|
||||
'$b=ceil(pow(2,$n)*1500);',
|
||||
'$c = 0;',
|
||||
'$sec = ceil((1710*2*($queryUser["blindage"]+1))/pow(1.25,($queryPlanete["labo"]-4)));'
|
||||
'$sec = ceil((1710*2*($planete->technologies[3]+1))/pow(1.25,($planete->batiments[6]-4)));'
|
||||
),
|
||||
array(
|
||||
'$a=ceil(pow(2,$n)*2000);',
|
||||
'$b=ceil(pow(2,$n)*1500);',
|
||||
'$c=ceil(pow(2,$n)*300);',
|
||||
'$sec = ceil((900*2*($queryUser["energie_t"]+1))/pow(1.25,($queryPlanete["labo"]-2)));'
|
||||
'$sec = ceil((900*2*($planete->technologies[4]+1))/pow(1.25,($planete->batiments[6]-2)));'
|
||||
),
|
||||
array(
|
||||
'$a=ceil(pow(2,$n)*1400);',
|
||||
'$b=ceil(pow(2,$n)*400);',
|
||||
'$c = 0;',
|
||||
'$sec = ceil((510*2*($queryUser["reacteur"]+1))/pow(1.25,($queryPlanete["labo"]-2)));'
|
||||
'$sec = ceil((510*2*($planete->technologies[5]+1))/pow(1.25,($planete->batiments[6]-2)));'
|
||||
),
|
||||
array(
|
||||
'$a=ceil(pow(2,$n)*3000);',
|
||||
'$b=ceil(pow(2,$n)*2100);',
|
||||
'$c=ceil(pow(2,$n)*750);',
|
||||
'$sec = ceil((1650*2*($queryUser["reacteur_f"]+1))/pow(1.25,($queryPlanete["labo"]-4)));'
|
||||
'$sec = ceil((1650*2*($planete->technologies[6]+1))/pow(1.25,($planete->batiments[6]-4)));'
|
||||
),
|
||||
array(
|
||||
'$a=ceil(pow(2,$n)*5000);',
|
||||
'$b=ceil(pow(2,$n)*4000);',
|
||||
'$c=ceil(pow(2,$n)*1500);',
|
||||
'$sec = ceil((2400*2*($queryUser["reacteur_ff"]+1))/pow(1.25,($queryPlanete["labo"]-6)));'
|
||||
'$sec = ceil((2400*2*($planete->technologies[7]+1))/pow(1.25,($planete->batiments[6]-6)));'
|
||||
),
|
||||
array(
|
||||
'$a=ceil(pow(2,$n)*800);',
|
||||
'$b=ceil(pow(2,$n)*1000);',
|
||||
'$c = 0;',
|
||||
'$sec = ceil((360*2*($queryUser["medecine"]+1))/pow(1.25,($queryPlanete["labo"]-1)));'
|
||||
'$sec = ceil((360*2*($planete->technologies[8]+1))/pow(1.25,($planete->batiments[6]-1)));'
|
||||
),
|
||||
array(
|
||||
'$a=ceil(pow(2,$n)*2600);',
|
||||
'$b=ceil(pow(2,$n)*2600);',
|
||||
'$c = 0;',
|
||||
'$sec = ceil((4410*2*($queryUser["tactique"]+1))/pow(1.25,($queryPlanete["labo"]-3)));'
|
||||
'$sec = ceil((4410*2*($planete->technologies[9]+1))/pow(1.25,($planete->batiments[6]-3)));'
|
||||
),
|
||||
array(
|
||||
'$a=ceil(pow(3,$n)*5200);',
|
||||
'$b=ceil(pow(3,$n)*4250);',
|
||||
'$c=ceil(pow(3,$n)*850);',
|
||||
'$sec = ceil((5000*2*($queryUser["spartan"]+1))/pow(1.25,($queryPlanete["labo"]-8)));'
|
||||
'$sec = ceil((5000*2*($planete->technologies[10]+1))/pow(1.25,($planete->batiments[6]-8)));'
|
||||
),
|
||||
array(
|
||||
'$a=ceil(pow(4,$n)*6200);',
|
||||
'$b=ceil(pow(5,$n)*5250);',
|
||||
'$c=ceil(pow(3,$n)*4550);',
|
||||
'$sec = ceil(pow(3,$n)*5560/pow(1.25,($queryPlanete["labo"]-1)));'
|
||||
'$sec = ceil(pow(3,$n)*5560/pow(1.25,($planete->batiments[6]-1)));'
|
||||
)
|
||||
);
|
||||
$technoloTECH = array(
|
||||
|
|
@ -286,85 +288,195 @@ $technoloTECH = array(
|
|||
array($technolo[0], 'informatique', 8)
|
||||
)
|
||||
);
|
||||
$casernenVAR = array('soldat1','soldat2','soldat3','soldat4','sniper','spartan','medecin','ingenieur','soldat_lourd');
|
||||
$casernenCALC = array(
|
||||
array(
|
||||
80,
|
||||
45,
|
||||
0,
|
||||
'$sec = ceil(60/pow(1.25,($planete->batiments[9]-1)));'
|
||||
),
|
||||
array(
|
||||
110,
|
||||
90,
|
||||
0,
|
||||
'$sec = ceil(240/pow(1.25,($planete->batiments[9]-2)));'
|
||||
),
|
||||
array(
|
||||
150,
|
||||
105,
|
||||
20,
|
||||
'$sec = ceil(240/pow(1.25,($planete->batiments[9]-3)));'
|
||||
),
|
||||
array(
|
||||
220,
|
||||
150,
|
||||
0,
|
||||
'$sec = ceil(720/pow(1.25,($planete->batiments[9]-5)));'
|
||||
),
|
||||
array(
|
||||
180,
|
||||
100,
|
||||
0,
|
||||
'$sec = ceil(300/pow(1.25,($planete->batiments[9]-3)));'
|
||||
),
|
||||
array(
|
||||
25000,
|
||||
10000,
|
||||
0,
|
||||
'$sec = ceil(29700/pow(1.25,($planete->batiments[9]-10)));'
|
||||
),
|
||||
array(
|
||||
100,
|
||||
100,
|
||||
0,
|
||||
'$sec = ceil(90/pow(1.25,($planete->batiments[9]-2)));',
|
||||
0
|
||||
),
|
||||
array(
|
||||
90,
|
||||
105,
|
||||
0,
|
||||
'$sec = ceil(90/pow(1.25,($planete->batiments[9]-2)));'
|
||||
),
|
||||
array(
|
||||
300,
|
||||
250,
|
||||
0,
|
||||
'$sec = ceil(900/pow(1.25,($planete->batiments[9]-5)));'
|
||||
)
|
||||
);
|
||||
$casernenTECH = array(
|
||||
array(
|
||||
array($batiment[9], 'caserne', 1)
|
||||
),
|
||||
array(
|
||||
array($batiment[9], 'caserne', 2)
|
||||
),
|
||||
array(
|
||||
array($batiment[9], 'caserne', 3),
|
||||
array($technolo[2], 'armement', 2)
|
||||
),
|
||||
array(
|
||||
array($batiment[9], 'caserne', 5),
|
||||
array($technolo[2], 'armement', 3),
|
||||
array($technolo[9], 'tactique', 2)
|
||||
),
|
||||
array(
|
||||
array($batiment[9], 'caserne', 3),
|
||||
array($technolo[2], 'armement', 1)
|
||||
),
|
||||
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(
|
||||
array($batiment[9], 'caserne', 2)
|
||||
),
|
||||
array(
|
||||
array($batiment[9], 'caserne', 5),
|
||||
array($technolo[2], 'armement', 4),
|
||||
array($technolo[3], 'blindage', 2)
|
||||
)
|
||||
);
|
||||
$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');
|
||||
$nomterrnCALC = array(
|
||||
array(
|
||||
500,
|
||||
300,
|
||||
0,
|
||||
'$sec = ceil(720/pow(1.25,($queryPlanete["chantier_terrestre"]-1)));'
|
||||
'$sec = ceil(720/pow(1.25,($planete->batiments[7]-1)));',
|
||||
0
|
||||
),
|
||||
array(
|
||||
680,
|
||||
420,
|
||||
0,
|
||||
'$sec = ceil(2040/pow(1.25,($queryPlanete["chantier_terrestre"]-3)));'
|
||||
'$sec = ceil(2040/pow(1.25,($planete->batiments[7]-3)));',
|
||||
0
|
||||
),
|
||||
array(
|
||||
1000,
|
||||
600,
|
||||
0,
|
||||
'$sec = ceil(7200/pow(1.25,($queryPlanete["chantier_terrestre"]-4)));'
|
||||
'$sec = ceil(7200/pow(1.25,($planete->batiments[7]-4)));',
|
||||
0
|
||||
),
|
||||
array(
|
||||
1400,
|
||||
950,
|
||||
0,
|
||||
'$sec = ceil(3960/pow(1.25,($queryPlanete["chantier_terrestre"]-6)));'
|
||||
'$sec = ceil(3960/pow(1.25,($planete->batiments[7]-6)));',
|
||||
0
|
||||
),
|
||||
array(
|
||||
400,
|
||||
240,
|
||||
0,
|
||||
'$sec = ceil(600/pow(1.25,($queryPlanete["chantier_terrestre"]-1)));'
|
||||
'$sec = ceil(600/pow(1.25,($planete->batiments[7]-1)));',
|
||||
0
|
||||
),
|
||||
array(
|
||||
480,
|
||||
260,
|
||||
0,
|
||||
'$sec = ceil(1080/pow(1.25,($queryPlanete["chantier_terrestre"]-2)));'
|
||||
'$sec = ceil(1080/pow(1.25,($planete->batiments[7]-2)));',
|
||||
0
|
||||
),
|
||||
array(
|
||||
600,
|
||||
420,
|
||||
0,
|
||||
'$sec = ceil(2160/pow(1.25,($queryPlanete["chantier_terrestre"]-3)));'
|
||||
'$sec = ceil(2160/pow(1.25,($planete->batiments[7]-3)));',
|
||||
0
|
||||
),
|
||||
array(
|
||||
1000,
|
||||
500,
|
||||
0,
|
||||
'$sec = ceil(4680/pow(1.25,($queryPlanete["chantier_terrestre"]-5)));'
|
||||
'$sec = ceil(4680/pow(1.25,($planete->batiments[7]-5)));',
|
||||
0
|
||||
),
|
||||
array(
|
||||
430,
|
||||
230,
|
||||
0,
|
||||
'$sec = ceil(1080/pow(1.25,($queryPlanete["chantier_terrestre"]-1)));'
|
||||
'$sec = ceil(1080/pow(1.25,($planete->batiments[7]-1)));',
|
||||
1
|
||||
),
|
||||
array(
|
||||
1250,
|
||||
650,
|
||||
80,
|
||||
'$sec = ceil(2040/pow(1.25,($queryPlanete["chantier_terrestre"]-3)));'
|
||||
'$sec = ceil(2040/pow(1.25,($planete->batiments[7]-3)));',
|
||||
1
|
||||
),
|
||||
array(
|
||||
2500,
|
||||
1750,
|
||||
100,
|
||||
'$sec = ceil(7200/pow(1.25,($queryPlanete["chantier_terrestre"]-4)));'
|
||||
'$sec = ceil(7200/pow(1.25,($planete->batiments[7]-4)));',
|
||||
1
|
||||
),
|
||||
array(
|
||||
6000,
|
||||
3750,
|
||||
120,
|
||||
'$sec = ceil(3960/pow(1.25,($queryPlanete["chantier_terrestre"]-7)));'
|
||||
'$sec = ceil(3960/pow(1.25,($planete->batiments[7]-7)));',
|
||||
1
|
||||
),
|
||||
array(
|
||||
15000,
|
||||
9500,
|
||||
1500,
|
||||
'$sec = ceil(3960/pow(1.25,($queryPlanete["chantier_terrestre"]-9)));'
|
||||
'$sec = ceil(3960/pow(1.25,($planete->batiments[7]-9)));',
|
||||
1
|
||||
)
|
||||
);
|
||||
$nomterrnTECH = array(
|
||||
|
|
@ -426,73 +538,73 @@ $nomvaisnCALC = array(
|
|||
1000,
|
||||
800,
|
||||
0,
|
||||
'$sec = ceil(1080/pow(1.25,($queryPlanete["chantier_spatial"]-1)));'
|
||||
'$sec = ceil(1080/pow(1.25,($planete->batiments[8]-1)));'
|
||||
),
|
||||
array(
|
||||
4000,
|
||||
3000,
|
||||
0,
|
||||
'$sec = ceil(6300/pow(1.25,($queryPlanete["chantier_spatial"]-5)));'
|
||||
'$sec = ceil(6300/pow(1.25,($planete->batiments[8]-5)));'
|
||||
),
|
||||
array(
|
||||
9000,
|
||||
9000,
|
||||
1000,
|
||||
'$sec = ceil(8280/pow(1.25,($queryPlanete["chantier_spatial"]-5)));'
|
||||
'$sec = ceil(8280/pow(1.25,($planete->batiments[8]-5)));'
|
||||
),
|
||||
array(
|
||||
1000,
|
||||
1200,
|
||||
100,
|
||||
'$sec = ceil(1440/pow(1.25,($queryPlanete["chantier_spatial"]-3)));'
|
||||
'$sec = ceil(1440/pow(1.25,($planete->batiments[8]-3)));'
|
||||
),
|
||||
array(
|
||||
15000,
|
||||
9000,
|
||||
1000,
|
||||
'$sec = ceil(7380/pow(1.25,($queryPlanete["chantier_spatial"]-5)));'
|
||||
'$sec = ceil(7380/pow(1.25,($planete->batiments[8]-5)));'
|
||||
),
|
||||
array(
|
||||
1800,
|
||||
1000,
|
||||
0,
|
||||
'$sec = ceil(1200/pow(1.25,($queryPlanete["chantier_spatial"]-1)));'
|
||||
'$sec = ceil(1200/pow(1.25,($planete->batiments[8]-1)));'
|
||||
),
|
||||
array(
|
||||
2550,
|
||||
1350,
|
||||
65,
|
||||
'$sec = ceil(4680/pow(1.25,($queryPlanete["chantier_spatial"]-3)));'
|
||||
'$sec = ceil(4680/pow(1.25,($planete->batiments[8]-3)));'
|
||||
),
|
||||
array(
|
||||
12950,
|
||||
6900,
|
||||
100,
|
||||
'$sec = ceil(16800/pow(1.25,($queryPlanete["chantier_spatial"]-6)));'
|
||||
'$sec = ceil(16800/pow(1.25,($planete->batiments[8]-6)));'
|
||||
),
|
||||
array(
|
||||
26000,
|
||||
16400,
|
||||
1600,
|
||||
'$sec = ceil(18060/pow(1.25,($queryPlanete["chantier_spatial"]-6)));'
|
||||
'$sec = ceil(18060/pow(1.25,($planete->batiments[8]-6)));'
|
||||
),
|
||||
array(
|
||||
60000,
|
||||
40000,
|
||||
3000,
|
||||
'$sec = ceil(32400/pow(1.25,($queryPlanete["chantier_spatial"]-8)));'
|
||||
'$sec = ceil(32400/pow(1.25,($planete->batiments[8]-8)));'
|
||||
),
|
||||
array(
|
||||
500000,
|
||||
400000,
|
||||
250000,
|
||||
'$sec = ceil(117000/pow(1.25,($queryPlanete["chantier_spatial"]-12)));'
|
||||
'$sec = ceil(117000/pow(1.25,($planete->batiments[8]-12)));'
|
||||
),
|
||||
array(
|
||||
500000,
|
||||
400000,
|
||||
250000,
|
||||
'$sec = ceil(117000/pow(1.25,($queryPlanete["chantier_spatial"]-12)));'
|
||||
'$sec = ceil(117000/pow(1.25,($planete->batiments[8]-12)));'
|
||||
)
|
||||
);
|
||||
$nomvaisnTECH = array(
|
||||
|
|
@ -558,4 +670,5 @@ $nomvaisnTECH = array(
|
|||
array($technolo[3], 'blindage', 12)
|
||||
)
|
||||
);
|
||||
$coeffVAR = array('coeff_mine_m', 'coeff_mine_c', 'coeff_mine_h', 'coeff_centrale_s', 'coeff_centrale_f');
|
||||
?>
|
||||
|
|
@ -1 +1 @@
|
|||
../onyx/
|
||||
C:/Program Files/xampp/var/HB_new/onyx/
|
||||
|
|
@ -24,7 +24,7 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
|
|||
$chapeau->connexion();
|
||||
|
||||
//Passage des valeurs générales au template
|
||||
$template->assign('version', VERSION);
|
||||
$titre = "Administration";
|
||||
$template->assign('page','admin');
|
||||
|
||||
$chapeau->unique_query("SELECT * FROM $table_user WHERE race = 'covenant'");
|
||||
|
|
@ -49,23 +49,25 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
|
|||
if (!isset($_GET['p'])) $_GET['p'] = '';
|
||||
if ($sess->values['auth_level'] >= 5) {
|
||||
switch($_GET['p']){
|
||||
case 'djoueurs': include(_FCORE."hb_game/jeu/admin/supprimer_joueur.php"); break;
|
||||
case 'bandeau': include(_FCORE."hb_game/jeu/admin/bandeau.php"); break;
|
||||
case 'version': include(_FCORE."hb_game/jeu/admin/version.php"); break;
|
||||
case 'djoueurs': include(_FCORE."../game/jeu/admin/supprimer_joueur.php"); break;
|
||||
case 'bandeau': include(_FCORE."../game/jeu/admin/bandeau.php"); break;
|
||||
case 'demarrage': include(_FCORE."../game/jeu/admin/demarrage.php"); break;
|
||||
case 'version': include(_FCORE."../game/jeu/admin/version.php"); break;
|
||||
case 'inscription': include(_FCORE."../game/jeu/admin/inscription.php"); break;
|
||||
}
|
||||
}
|
||||
if (empty($pagea)) {
|
||||
switch($_GET['p']){
|
||||
case 'courrier': include(_FCORE."hb_game/jeu/admin/mail.php"); break;
|
||||
case 'vip': include(_FCORE."hb_game/jeu/admin/ip.php"); break;
|
||||
case 'vflotte': include(_FCORE."hb_game/jeu/admin/flottes.php"); break;
|
||||
case 'vplanetes': include(_FCORE."hb_game/jeu/admin/planete.php"); break;
|
||||
case 'vjoueurs': include(_FCORE."hb_game/jeu/admin/joueur.php"); break;
|
||||
case 'valliances': include(_FCORE."hb_game/jeu/admin/alliance.php"); break;
|
||||
case 'vrapports': include(_FCORE."hb_game/jeu/admin/rapport.php"); break;
|
||||
case 'sjoueurs': include(_FCORE."hb_game/jeu/admin/sanction_joueur.php"); break;
|
||||
case 'cjoueurs': include(_FCORE."hb_game/jeu/admin/prendre_controle.php"); break;
|
||||
default: $pagea = 'vp';;
|
||||
case 'courrier': include(_FCORE."../game/jeu/admin/mail.php"); break;
|
||||
case 'vip': include(_FCORE."../game/jeu/admin/ip.php"); break;
|
||||
case 'vflotte': include(_FCORE."../game/jeu/admin/flottes.php"); break;
|
||||
case 'vplanetes': include(_FCORE."../game/jeu/admin/planete.php"); break;
|
||||
case 'vjoueurs': include(_FCORE."../game/jeu/admin/joueur.php"); break;
|
||||
case 'valliances': include(_FCORE."../game/jeu/admin/alliance.php"); break;
|
||||
case 'vrapports': include(_FCORE."../game/jeu/admin/rapport.php"); break;
|
||||
case 'sjoueurs': include(_FCORE."../game/jeu/admin/sanction_joueur.php"); break;
|
||||
case 'cjoueurs': include(_FCORE."../game/jeu/admin/prendre_controle.php"); break;
|
||||
default: include(_FCORE."../game/jeu/admin/accueil.php"); break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,53 +8,76 @@ require_once(_FCORE."common.php");
|
|||
|
||||
if (isset($sess) && isset($sess->values['connected']) && $sess->values['connected'] && !empty($sess->values['id']) && isset($sess->values['auth_level']) && !empty($sess->values['idPlan'])) {
|
||||
$json = new Services_JSON();
|
||||
|
||||
$nbtrajet = 2;
|
||||
|
||||
if (empty($config['flottes']) && $sess->values['auth_level'] == 0) {
|
||||
$datas = array(
|
||||
'root' => array(
|
||||
'destination' => '<input class="dest" type="text" id="amas" name="amas" maxlength="2" value="'.gpc('galaxie', 'post').'" />:<input class="dest" type="text" id="ss" name="ss" maxlength="2" value="'.gpc('ss', 'post').'" />:<input class="dest" type="text" id="plan" name="pos" maxlength="2" value="'.gpc('pos', 'post').'" />',
|
||||
'temps' => '-',
|
||||
'deblok' => '<span style="color: #FF0000;"><b>Les flottes sont désactivés pour le moment.</b></span>',
|
||||
'conso' => '-',
|
||||
'tactique' => ''
|
||||
'tactique' => '',
|
||||
'places' => ''
|
||||
)
|
||||
);
|
||||
header("X-JSON: ".$json->encode($datas));
|
||||
exit;
|
||||
}
|
||||
|
||||
$destin = gpc('fav_dest', 'post');
|
||||
|
||||
$chapeau = new bdd();
|
||||
$chapeau->connexion();
|
||||
$idPlan = $sess->values['idPlan'];
|
||||
$queryPlanete = $chapeau->unique_query("SELECT * FROM $table_planete WHERE id = '$idPlan'");
|
||||
if (!empty($destin)) {
|
||||
$chapeau->escape($destin);
|
||||
$queryPlaneteRapid = $chapeau->unique_query("SELECT nom_planete, galaxie, ss, position FROM $table_planete WHERE id = $destin;");
|
||||
if ($queryPlaneteRapid) $destinRapid = '['.$queryPlaneteRapid['galaxie'].':'.$queryPlaneteRapid['ss'].':'.$queryPlaneteRapid['position'].']<input type="hidden" id="amas" name="amas" maxlength="2" value="'.$queryPlaneteRapid['galaxie'].'" /><input type="hidden" id="ss" name="ss" maxlength="2" value="'.$queryPlaneteRapid['ss'].'" /><input type="hidden" id="plan" name="pos" maxlength="2" value="'.$queryPlaneteRapid['position'].'" />';
|
||||
}
|
||||
if (!isset($destinRapid)) $destinRapid = '<input class="dest" type="text" id="amas" name="amas" maxlength="2" value="'.gpc('galaxie', 'post').'" />:<input class="dest" type="text" id="ss" name="ss" maxlength="2" value="'.gpc('ss', 'post').'" />:<input class="dest" type="text" id="plan" name="pos" maxlength="2" value="'.gpc('pos', 'post').'" />';
|
||||
$start_galaxie = $queryPlanete['galaxie'];
|
||||
$start_ss = $queryPlanete['ss'];
|
||||
$start_position = $queryPlanete['position'];
|
||||
|
||||
$met = gpc('met', 'post');
|
||||
$cri = gpc('cri', 'post');
|
||||
$hyd = gpc('hyd', 'post');
|
||||
if (!empty($sess->values['flcontenu']) && $met+$cri+$hyd >= 0 && $met >= 0 && $cri >= 0 && $hyd >= 0) $places = $sess->values['flcontenu'] - ($met+$cri+$hyd);
|
||||
else $places = 'inconnu';
|
||||
|
||||
if (empty($sess->values['fltime']) || $sess->values['fltime'] + 600 < time() || empty($sess->values['flnbvais']) || empty($sess->values['flvitesse']) && isset($sess->values['auth_level']))
|
||||
$datas = array(
|
||||
'root' => array(
|
||||
'destination' => $destinRapid,
|
||||
'temps' => '-',
|
||||
'deblok' => '<b>Une erreur est survenue lors de la création de la flotte. Veuillez recommencer</b>',
|
||||
'conso' => '-',
|
||||
'tactique' => ''
|
||||
'tactique' => '',
|
||||
'places' => separerNombres($places)
|
||||
)
|
||||
);
|
||||
elseif (empty($_POST['nom']) || preg_replace('@[^a-zA-Z0-9_ ]@i', '', $_POST['nom']) != $_POST['nom'])
|
||||
$datas = array(
|
||||
'root' => array(
|
||||
'destination' => $destinRapid,
|
||||
'temps' => '-',
|
||||
'deblok' => '<b>Nom de la flotte incorrect !</b>',
|
||||
'conso' => '-',
|
||||
'tactique' => ''
|
||||
'tactique' => '',
|
||||
'places' => separerNombres($places)
|
||||
)
|
||||
);
|
||||
elseif ($_POST['galaxie'] > MAX_AMAS || $_POST['ss'] > MAX_SYSTEME || $_POST['pos'] > MAX_PLANETE || $_POST['galaxie'] < 0 || $_POST['ss'] < 1 || $_POST['pos'] < 1 || ($_POST['galaxie'] < 1 && $sess->values['auth_level'] < 6))
|
||||
$datas = array(
|
||||
'root' => array(
|
||||
'destination' => $destinRapid,
|
||||
'temps' => '<span style="color: #FF0000;"><b>Lieu inaccessible</b></span>',
|
||||
'deblok' => '<b>Corrigez la destination !</b>',
|
||||
'conso' => '-',
|
||||
'tactique' => ''
|
||||
'tactique' => '',
|
||||
'places' => separerNombres($places)
|
||||
)
|
||||
);
|
||||
else {
|
||||
|
|
@ -62,9 +85,10 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
|
|||
$temps = vais_tempsDeplacement($start_galaxie,$start_ss,$start_position,$_POST['galaxie'],$_POST['ss'],$_POST['pos'],$sess->values['flvitesse'],$_POST['vitesse'],$sess->values['flpreparation'],$sess->values['flchauffe']);
|
||||
if ($temps <= 0) $temps = 454;
|
||||
$conso = vais_conso($temps, $sess->values['flnbvais'])*$_POST['vitesse']/45;
|
||||
$places -= ceil($conso*$nbtrajet);
|
||||
$tactique = '';
|
||||
if ($_POST['mission'] == '1') {
|
||||
$tactique = ' utiliser la tactique : <select name="tactique">';
|
||||
$tactique = '<label for="selecttactique">Tactique d\'attaque :</label><select id="selecttactique" name="tactique">';
|
||||
//On récupère le niveau actuel de la technologie Commandement militaire
|
||||
$id_user = $sess->values['id'];
|
||||
$table = $config['db_prefix'].'user';
|
||||
|
|
@ -75,10 +99,12 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
|
|||
if ($lvltechno < 1) { //Si on a pas le niveau, on ne peux pas envoyer la flotte
|
||||
$datas = array(
|
||||
'root' => array(
|
||||
'destination' => $destinRapid,
|
||||
'temps' => affTemp(floor($temps)),
|
||||
'deblok' => '<b>Vous ne pouvez pas attaquer sans un minimum de connaissances militaires !</b>',
|
||||
'conso' => separerNombres(ceil($conso*$nbtrajet)),
|
||||
'tactique' => ''
|
||||
'tactique' => '',
|
||||
'places' => separerNombres($places)
|
||||
)
|
||||
);
|
||||
header("X-JSON: ".$json->encode($datas));
|
||||
|
|
@ -90,17 +116,19 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
|
|||
else $tactique .= '<option value="'.$i.'">'.txtTactique($i).'</option>';
|
||||
}
|
||||
}
|
||||
$tactique .= '</select>';
|
||||
$tactique .= '</select><br />';
|
||||
}
|
||||
$cds = sha1('flotte'.$conso.'ß10'.time().'|HB;'.rand(10,99).$temps);
|
||||
$sess->values['flcds'] = $cds;
|
||||
$sess->put();
|
||||
$datas = array(
|
||||
'root' => array(
|
||||
'destination' => $destinRapid,
|
||||
'temps' => affTemp(floor($temps)),
|
||||
'deblok' => '<input type="hidden" name="cds" value="'.$cds.'" /><input type="submit" value="GO" class="submit" />',
|
||||
'conso' => separerNombres(ceil($conso*2)),
|
||||
'tactique' => $tactique
|
||||
'tactique' => $tactique,
|
||||
'places' => separerNombres($places)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
|
|||
77
htdocs/captcha/index.html
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<meta http-equiv="Content-Language" content="fr" />
|
||||
<title> ::Halo-Battle:: - Erreur</title>
|
||||
<style type="text/css">
|
||||
|
||||
html
|
||||
{
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
body
|
||||
{
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
div
|
||||
{
|
||||
background-color: #080819;
|
||||
text-align: center;
|
||||
margin: 10% auto 0 auto;
|
||||
padding: 25px 0;
|
||||
width: 80%;
|
||||
border-top: #FFFFFF dotted 1px;
|
||||
border-left: #FFFFFF dotted 1px;
|
||||
border-right: #FFFFFF solid 3px;
|
||||
border-bottom: #FFFFFF solid 3px;
|
||||
}
|
||||
|
||||
h1
|
||||
{
|
||||
font-size: 3em;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
h2
|
||||
{
|
||||
font-size: 2em;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
h3
|
||||
{
|
||||
font-size: 1.5em;
|
||||
color: #FFFFFF;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
a
|
||||
{
|
||||
position: absolute;
|
||||
bottom: 20px;
|
||||
right: 30px;
|
||||
font-size: 0.8em;
|
||||
display: block;
|
||||
padding: 5px 10px;
|
||||
background-color: #FFFFFF;
|
||||
color: #000000;
|
||||
text-decoration: underline;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
<h2>Erreur</h2>
|
||||
<h1>403</h1>
|
||||
<h3>Refus de traitement de la requête.<br /><em>Forbidden.</em></h3>
|
||||
</div>
|
||||
<a href="/">HALO-BATTLE</a>
|
||||
<!-- \\******* By Phantom *******// Halo-Battle, Tous droits réservés -->
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,355 +0,0 @@
|
|||
<?php
|
||||
if(!defined('INDEX')) define('INDEX', 1);
|
||||
print 'Début de la génération du classement ; il est : '.date('d/m/Y H:i:s');
|
||||
|
||||
set_time_limit(0);
|
||||
ignore_user_abort(true);
|
||||
|
||||
$onyx = @file_get_contents('./../.onyx') or die("Configuration introuvable.");
|
||||
define("_FCORE",'../'.trim($onyx));
|
||||
|
||||
require_once(_FCORE."kernel.php");
|
||||
require_once(_FCORE."hb_game/tables.php");
|
||||
require_once(_FCORE."hb_game/vars.php");
|
||||
|
||||
$bdd = new bdd();
|
||||
/*
|
||||
//Classement Joueurs
|
||||
$bdd->connexion();
|
||||
$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];
|
||||
$pointsbat = 0;
|
||||
$pointsterr = 0;
|
||||
$pointsvais = 0;
|
||||
|
||||
$bdd->connexion();
|
||||
$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];
|
||||
}
|
||||
}
|
||||
|
||||
$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];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$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;
|
||||
}
|
||||
}
|
||||
|
||||
$pointstech /= 1000;
|
||||
$pointsvais /= 1000;
|
||||
$pointsterr /= 1000;
|
||||
$pointsbat /= 1000;
|
||||
$points = $pointsbat + $pointsterr + $pointsvais + $pointstech;
|
||||
$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);");
|
||||
$bdd->deconnexion();
|
||||
}
|
||||
|
||||
$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) {
|
||||
$p++;
|
||||
$bdd->query("UPDATE $table_user SET place_points = $p WHERE id = ".$classement[$i]['id']);
|
||||
}
|
||||
else $bdd->query("UPDATE $table_user SET place_points = 0 WHERE id = ".$classement[$i]['id']);
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
*/
|
||||
print '<br />Fin de la génération du classement joueur ; il est : '.date('d/m/Y H:i:s');
|
||||
|
||||
//Classement Alliances
|
||||
$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'].");");
|
||||
}
|
||||
$bdd->deconnexion();
|
||||
|
||||
print '<br />Fin de la génération du classement ; il est : '.date('d/m/Y H:i:s');
|
||||
exit;
|
||||
//Script by Keiran
|
||||
print 'Il est : '.date('d/m/Y H:i:s');
|
||||
|
||||
set_time_limit(0);
|
||||
ignore_user_abort(true);
|
||||
|
||||
$onyx = @file_get_contents('./../.onyx') or die("Configuration introuvable.");
|
||||
define("_FCORE",'../'.trim($onyx));
|
||||
require(_FCORE."common.php");
|
||||
include(_FCORE."hb_game/classement/fonctions.php");
|
||||
|
||||
$chapeau = new bdd();
|
||||
$chapeau->connexion();
|
||||
$chapeau->db();
|
||||
|
||||
##################################################
|
||||
#MAJ classement Joueurs
|
||||
##################################################
|
||||
mysql_query("TRUNCATE TABLE `classement`");
|
||||
$sql_1 = mysql_query("SELECT * FROM `user`");
|
||||
while($recup_id = mysql_fetch_array($sql_1)) {
|
||||
|
||||
$id = $recup_id['id'];
|
||||
$PSEUDO_USER = $recup_id['pseudo'];
|
||||
$race = $recup_id['race'];
|
||||
|
||||
$planete = mysql_query("SELECT * FROM `planete` WHERE `id_user` = " . $id)or die( mysql_error() );
|
||||
while ($donnees_planete = mysql_fetch_array($planete)) {
|
||||
|
||||
// partie pts batiements ressources
|
||||
$POINTS_BATIMENTS += batiment1($donnees_planete['mine_m'] ) + batiment2( $donnees_planete['mine_c'] ) + batiment3( $donnees_planete['mine_h'] ) + batiment4( $donnees_planete['centrale_s'] ) + batiment5( $donnees_planete['centrale_f'] ) + batiment6( $donnees_planete['radar'] ) + batiment7( $donnees_planete['labo'] ) + batiment8( $donnees_planete['chantier_terrestre'] ) + batiment9( $donnees_planete['chantier_spatial'] ) /* + batiment10( $donnees_planete['caserne'] )*/ + batiment11( $donnees_planete['silo'] ) + batiment11( $donnees_planete['centre_info'] );
|
||||
|
||||
// partie pts def ressources
|
||||
|
||||
$metal_d += 500 * $donnees_planete['def_1'];
|
||||
$cristal_d += 200 * $donnees_planete['def_1'];
|
||||
|
||||
$metal_d += 4000 * $donnees_planete['def_2'];
|
||||
$cristal_d += 2000 * $donnees_planete['def_2'];
|
||||
|
||||
$metal_d += 4500 * $donnees_planete['def_3'];
|
||||
$cristal_d += 800 * $donnees_planete['def_3'];
|
||||
$hydrogene_d += 600 * $donnees_planete['def_3'];
|
||||
|
||||
$metal_d += 12000 * $donnees_planete['def_4'];
|
||||
$cristal_d += 10000 * $donnees_planete['def_4'];
|
||||
$hydrogene_d += 1000 * $donnees_planete['def_4'];
|
||||
|
||||
$metal_d += 15000 * $donnees_planete['def_5'];
|
||||
$cristal_d += 9500 * $donnees_planete['def_5'];
|
||||
$hydrogene_d += 1500 * $donnees_planete['def_5'];
|
||||
|
||||
// partie pts vaiseaux
|
||||
|
||||
$POINTS_VAISSEAUX += $donnees_planete['vaisseau_1'] + $donnees_planete['vaisseau_2'] + $donnees_planete['vaisseau_3'] + $donnees_planete['vaisseau_4'] + $donnees_planete['vaisseau_5'] + $donnees_planete['vaisseau_6'] + $donnees_planete['vaisseau_7'] + $donnees_planete['vaisseau_8'] + $donnees_planete['vaisseau_9'] + $donnees_planete['vaisseau_10'] + $donnees_planete['vaisseau_11']+ $donnees_planete['vaisseau_12'];
|
||||
|
||||
// partie pts vaiseaux ressources
|
||||
|
||||
// 'cargos de classe Parabola', 1
|
||||
$metal += ( $donnees_planete['vaisseau_1'] * 1000 );
|
||||
$cristal += ( $donnees_planete['vaisseau_1'] * 800 );
|
||||
|
||||
// 'cargos de classe Laden', 2
|
||||
$metal += ( $donnees_planete['vaisseau_2'] * 4000 );
|
||||
$cristal += ( $donnees_planete['vaisseau_2'] * 3000 );
|
||||
|
||||
// 'vaisseau(X) de colonisation de classe Odyssey', 3
|
||||
$metal += ( $donnees_planete['vaisseau_3'] * 9000 );
|
||||
$cristal += ( $donnees_planete['vaisseau_3'] * 9000 );
|
||||
$hydrogene += ( $donnees_planete['vaisseau_3'] * 1000 );
|
||||
|
||||
// 'drone(s) d\'espionnage de classe Clarion', 4
|
||||
$metal += ( $donnees_planete['vaisseau_4'] * 1000) ;
|
||||
$cristal += ( $donnees_planete['vaisseau_4'] * 1200 );
|
||||
$hydrogene += ( $donnees_planete['vaisseau_4'] * 100 );
|
||||
|
||||
// 'recycleur(s) de classe Minotaur', 5
|
||||
//SELECT * FROM `user` WHERE 1$metal += ( $donnees_planete['vaisseau_5'] * 15000 );
|
||||
$cristal += ( $donnees_planete['vaisseau_5'] * 9000 );
|
||||
$hydrogene += ( $donnees_planete['vaisseau_5'] * 1000 );
|
||||
|
||||
// 'C709 Longsword Interceptor', 6
|
||||
$metal += ( $donnees_planete['vaisseau_6'] * 1700 );
|
||||
$cristal += ( $donnees_planete['vaisseau_6'] * 1220 );
|
||||
|
||||
// 'Frégates', 7
|
||||
$metal += ( $donnees_planete['vaisseau_7'] * 5800 );
|
||||
$cristal += ( $donnees_planete['vaisseau_7'] * 1400 );
|
||||
|
||||
// 'croiseur(s) de classe Halcyon', 8
|
||||
$metal += ( $donnees_planete['vaisseau_8'] * 20000 );
|
||||
$cristal += ( $donnees_planete['vaisseau_8'] * 16000 );
|
||||
$hydrogene += ( $donnees_planete['vaisseau_8'] * 1600 );
|
||||
|
||||
// 'croiseur(s) de classe Marathon', 9
|
||||
$metal += ( $donnees_planete['vaisseau_9'] * 26000 );
|
||||
$cristal += ( $donnees_planete['vaisseau_9'] * 16400 );
|
||||
$hydrogene += ( $donnees_planete['vaisseau_9'] * 1600 );
|
||||
|
||||
// 'porte vaisseaux', 10
|
||||
$metal += ( $donnees_planete['vaisseau_10'] * 60000 );
|
||||
$cristal += ( $donnees_planete['vaisseau_10'] * 40000 );
|
||||
$hydrogene += ( $nb_vaisseaux['vaisseau_10'] * 3000 );
|
||||
|
||||
$METAL_VAISSEAUX = $metal;
|
||||
$CRISTAL_VAISSEAUX = $cristal;
|
||||
$HYDROGENE_VAISSEAUX = $hydrogene;
|
||||
$RESSOURCES_VAISSEAUX = $METAL_VAISSEAUX + $CRISTAL_VAISSEAUX + $HYDROGENE_VAISSEAUX;
|
||||
|
||||
|
||||
} // boucle planetes -->
|
||||
|
||||
// partie pts techno
|
||||
$techno_db = mysql_query("SELECT `informatique`, `detection`, `armement`, `energie_t`, `reacteur`, `reacteur_f`, `reacteur_ff`, `medecine`, `tactique`, `spartan`, `blindage` FROM `user` WHERE `id` = ".$id)or die(mysql_error());
|
||||
while ($techno = mysql_fetch_array($techno_db)) {
|
||||
|
||||
$POINTS_TECHNO = $techno['informatique'] + $techno['detection'] + $techno['armement'] + $techno['energie_t'] + $techno['reacteur'] + $techno['reacteur_f'] + $techno['reacteur_ff'] + $techno['medecine'] + $techno['tactique'] + $techno['spartan'] + $techno['blindage'];
|
||||
|
||||
// partie pts techno ressources
|
||||
$RESSOURCES_TECHNO = techno1( $techno['informatique'] ) + techno2( $techno['detection'] ) + techno3( $techno['armement'] ) + techno4( $techno['energie_t'] ) + techno5( $techno['reacteur'] ) + techno6( $techno['reacteur_f'] ) + techno7( $techno['reacteur_ff'] ) + techno8( $techno['medecine'] ) + techno9( $techno['tactique'] ) + techno10( $techno['spartan'] ) + techno11( $techno['blindage'] );
|
||||
}
|
||||
|
||||
$PT_RESSOURCES = ( $RESSOURCES_VAISSEAUX + $RESSOURCES_TECHNO + $POINTS_BATIMENTS ) / 1000;
|
||||
$POINTS_BATIMENTS = $POINTS_BATIMENTS / 1000;
|
||||
|
||||
// points flottes terrestres recherches batiments
|
||||
if ($recup_id['auth_level'] < 2 && $recup_id['mv'] < 2) mysql_query("INSERT INTO `classement` VALUES (NULL, '$PSEUDO_USER', '$race', '$PT_RESSOURCES', '$POINTS_VAISSEAUX', '0', '$POINTS_TECHNO', '$POINTS_BATIMENTS')") or die (mysql_error());
|
||||
mysql_query("UPDATE `user` SET `flotte` = '" . $POINTS_VAISSEAUX . "', `recherches` = '" . $POINTS_TECHNO . "', `batiments` = '" . $POINTS_BATIMENTS . "', `points` = '" . $PT_RESSOURCES . "' WHERE `pseudo` = '" . $PSEUDO_USER . "'") or die (mysql_error());
|
||||
|
||||
$metal = 0;
|
||||
$cristal = 0;
|
||||
$hydrogene = 0;
|
||||
$POINTS_VAISSEAUX = 0;
|
||||
$POINTS_TECHNO = 0;
|
||||
$PT_RESSOURCES = 0;
|
||||
$METAL_VAISSEAUX = 0;
|
||||
$CRISTAL_VAISSEAUX = 0;
|
||||
$HYDROGENE_VAISSEAUX = 0;
|
||||
$RESSOURCES_VAISSEAUX = 0;
|
||||
$POINTS_BATIMENTS = 0;
|
||||
|
||||
}
|
||||
|
||||
$sql_2 = mysql_query("SELECT * FROM `classement` ORDER BY `classement`.`points` DESC");
|
||||
$i=0;
|
||||
while($resultat = mysql_fetch_array($sql_2)) {
|
||||
$nomuser = $resultat['pseudo'];
|
||||
$reqd = mysql_query("SELECT `auth_level` FROM `user` WHERE `pseudo` = '$nomuser'");
|
||||
$resultatd = mysql_fetch_array($reqd);
|
||||
if ($resultatd['auth_level'] < 2) {
|
||||
$i++;
|
||||
mysql_query("UPDATE `user` SET `place_points` = '$i' WHERE `pseudo` = '$nomuser'");
|
||||
}
|
||||
else mysql_query("UPDATE `user` SET `place_points` = '0' WHERE `pseudo` = '$nomuser'");
|
||||
}
|
||||
|
||||
##################################################
|
||||
#MAJ classement Ally
|
||||
##################################################
|
||||
mysql_query("TRUNCATE TABLE `classement_alliances`");
|
||||
|
||||
//recuperation de l'id et du tag de l'ally
|
||||
$sql_1 = mysql_query("SELECT t1.id_alliance ,t2.tag
|
||||
FROM `user` AS t1
|
||||
INNER JOIN `alliances` AS t2 ON t1.id_alliance = t2.id
|
||||
GROUP BY t1.id_alliance
|
||||
");
|
||||
while($recup_id = mysql_fetch_array($sql_1))
|
||||
{
|
||||
|
||||
$id_ally = $recup_id['id_alliance'];
|
||||
$tag_ally = $recup_id['tag'];
|
||||
|
||||
// recuperation du nombre de membre dans l'ally
|
||||
$nb_members = mysql_query(" SELECT COUNT( * )
|
||||
FROM `user` AS t1
|
||||
WHERE t1.id_alliance = $id_ally
|
||||
");
|
||||
$nb_members= mysql_fetch_row($nb_members);
|
||||
|
||||
// recuperation de la somme des points de l'ally
|
||||
$nb_points = mysql_query("SELECT SUM( classement.points )
|
||||
FROM classement, user
|
||||
WHERE user.id_alliance = $id_ally
|
||||
AND user.pseudo = classement.pseudo
|
||||
");
|
||||
$nb_points= mysql_fetch_row($nb_points);
|
||||
|
||||
$nb_points_by_members = ceil($nb_points/$nb_members);
|
||||
|
||||
// recuperation de la somme des points flottes de l'ally
|
||||
$nb_points_flottes = mysql_query("SELECT SUM( classement.flottes )
|
||||
FROM classement, user
|
||||
WHERE user.id_alliance = $id_ally
|
||||
AND user.pseudo = classement.pseudo
|
||||
");
|
||||
$nb_points_flottes= mysql_fetch_row($nb_points_flottes);
|
||||
|
||||
$nb_points_flottes_by_members = ceil($nb_points_flottes/$nb_members);
|
||||
|
||||
// recuperation de la somme des points terrestres de l'ally
|
||||
$nb_points_terrestres = mysql_query("SELECT SUM( classement.terrestres )
|
||||
FROM classement, user
|
||||
WHERE user.id_alliance = $id_ally
|
||||
AND user.pseudo = classement.pseudo
|
||||
");
|
||||
$nb_points_terrestres= mysql_fetch_row($nb_points_terrestres);
|
||||
|
||||
$nb_points_terrestres_by_members = ceil($nb_points_terrestres/$nb_members);
|
||||
|
||||
// recuperation de la somme des points recherches de l'ally
|
||||
$nb_points_recherches = mysql_query("SELECT SUM( classement.recherches )
|
||||
FROM classement, user
|
||||
WHERE user.id_alliance = $id_ally
|
||||
AND user.pseudo = classement.pseudo
|
||||
");
|
||||
$nb_points_recherches= mysql_fetch_row($nb_points_recherches);
|
||||
|
||||
$nb_points_recherches_by_members = ceil($nb_points_recherches/$nb_members);
|
||||
|
||||
// recuperation de la somme des points batiments de l'ally
|
||||
$nb_points_batiments = mysql_query("SELECT SUM( classement.batiments )
|
||||
FROM classement, user
|
||||
WHERE user.id_alliance = $id_ally
|
||||
AND user.pseudo = classement.pseudo
|
||||
");
|
||||
$nb_points_batiments= mysql_fetch_row($nb_points_batiments);
|
||||
|
||||
$nb_points_batiments_by_members = ceil($nb_points_batiments/$nb_members);
|
||||
|
||||
mysql_query("INSERT INTO `classement_alliances` VALUES (NULL, '$tag_ally', '$nb_members[0]', '$nb_points[0]','$nb_points_by_members', '$nb_points_flottes[0]','$nb_points_flottes_by_members', '$nb_points_terrestres[0]', '$nb_points_terrestres_by_members', '$nb_points_recherches[0]', '$nb_points_recherches_by_members', '$nb_points_batiments[0]', '$nb_points_batiments_by_members')");
|
||||
}
|
||||
$chapeau->deconnexion();
|
||||
print '<br />Il est : '.date('d/m/Y H:i:s');
|
||||
?>
|
||||
|
|
@ -1,689 +0,0 @@
|
|||
<?
|
||||
function showHeaderPage()
|
||||
{
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>WebcronSave V1.41</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15"/>
|
||||
<meta http-equiv="expires" content="0">
|
||||
<style type="text/css">
|
||||
<!--
|
||||
body { background: #FFFFFF; }
|
||||
|
||||
#topnav {
|
||||
background-color: #003399;
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
#topnav li {
|
||||
display : inline;
|
||||
width: 100%;
|
||||
background-color: #FFFFFF;
|
||||
margin: 1 0px 1 0px;
|
||||
}
|
||||
|
||||
#topnav a {
|
||||
color: #003399;
|
||||
}
|
||||
|
||||
#topnav a {
|
||||
color: #003399;
|
||||
}
|
||||
|
||||
.message {
|
||||
color: black;
|
||||
font_weight:bold;
|
||||
}
|
||||
.error {
|
||||
color: red;
|
||||
font_weight:bold;
|
||||
}
|
||||
|
||||
//-->
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<?
|
||||
}
|
||||
|
||||
// recup chaine de get, post ou cookie avec ou sans stripslashes selon magic_quotes_gpc
|
||||
function RecupChaine($chaine) {
|
||||
if (get_magic_quotes_gpc()==1) return stripslashes($chaine); // il y avait magic
|
||||
return $chaine; // il n'y avait pas magic
|
||||
}
|
||||
|
||||
function showMessage($message,$class)
|
||||
{
|
||||
?>
|
||||
<div class="<?=$class?>">
|
||||
<?=$message?>
|
||||
</div>
|
||||
<?
|
||||
}
|
||||
|
||||
function moimeme($paramget='') {
|
||||
|
||||
global $_CONFIG;
|
||||
$ret=rtrim($_SERVER['PHP_SELF'],'/');
|
||||
$ret .=$paramget;
|
||||
if ($_CONFIG['IDENTIF'] != 'basic') {
|
||||
$ret .= empty($paramget)?'?':'&';
|
||||
$ret .= 'login='.urlencode($_CONFIG['LOGIN_HTTP']);
|
||||
$ret .= '&pass='.urlencode($_CONFIG['PASS_HTTP']);
|
||||
}
|
||||
return '"'.$ret.'"';
|
||||
}
|
||||
|
||||
function showFormConfig()
|
||||
{
|
||||
global $_CONFIG;
|
||||
?>
|
||||
<H1>CONFIGURATION</H1>
|
||||
<B>ATTENTION !</B><BR />
|
||||
Les mots de passe de base de données et d'administration doivent être saisis lors de la première configuration.
|
||||
Lors des autres accès à l'administration, laissez-les en blanc, sauf si vous désirez les changer.<BR>
|
||||
Nous conseillons le mode d'identification 'basic', mais il se peut qu'il ne fonctionne pas sur certains systèmes.
|
||||
Utilisez alors le mode 'par URL'.<br>
|
||||
<B>Si vous êtes obligé d'utiliser le mode 'par URL' et que d'autres personnes utilisent votre machine, videz l'historique de
|
||||
votre browser sinon d'autres personnes pourront retrouver vos login et mot de passe.</B>
|
||||
<BR><BR>
|
||||
<B>Utilisation de Webcronsave avec webcron.org :</B><br>
|
||||
<UL>
|
||||
<LI>identification basic : créez une tâche quotidienne avec l'url :<BR>
|
||||
<i>http://monsite.com/webcronsave.php?action=savewebcron</i><BR>
|
||||
et mettez le login et le mot de passe d'administration dans les login et mot de passe de la création/édition d'une tâche.
|
||||
<LI>identification par URL : créez une tâche quotidienne avec l'url :<BR>
|
||||
<i>http://monsite.com/webcronsave.php?action=savewebcron&login=monlogin&pass=monpass</i><BR>
|
||||
mais laissez vides les login et mot de passe de la création/édition d'une tâche.
|
||||
</UL>
|
||||
|
||||
<form action=<?=moimeme()?> method="POST">
|
||||
<input type="hidden" name="action" value="saveconfig">
|
||||
<TABLE border=1 cellpadding="3" align="center">
|
||||
|
||||
<tr bgcolor="#FFFFCC"><td colspan="2" align = "center" ><b>BASE DE DONNEES</b></td></tr>
|
||||
<TR bgcolor="#FFFFCC">
|
||||
<td align="right">Nom du serveur :</td>
|
||||
<td><input type="text" name="SERVER" value="<?=$_CONFIG['SERVER']?>"></td>
|
||||
</tr>
|
||||
<tr bgcolor="#FFFFCC">
|
||||
<td align="right">Login utilisateur :</td>
|
||||
<td><input type="text" name="USER" value="<?=$_CONFIG['USER']?>"></td>
|
||||
</tr>
|
||||
<tr bgcolor="#FFFFCC">
|
||||
<td align="right">Nouveau mot de passe utilisateur :</td>
|
||||
<td><input type="text" name="PASS"></td>
|
||||
</tr>
|
||||
<tr bgcolor="#FFFFCC">
|
||||
<td align="right">Nom de la base de données :</td>
|
||||
<td><input type="text" name="BASE" value="<?=$_CONFIG['BASE']?>"></td>
|
||||
</tr>
|
||||
<tr bgcolor="#CCCCFF"><td colspan="2" align = "center"><b>ADMINISTRATION</b></td></tr>
|
||||
<tr bgcolor="#CCCCFF">
|
||||
<td align="right">Email en cas de problème :</td>
|
||||
<td><input type="text" name="EMAIL" value="<?=$_CONFIG['EMAIL']?>"></td>
|
||||
</tr>
|
||||
<tr bgcolor="#CCCCFF">
|
||||
<td align="right">Login d'accès à l'admin :</td>
|
||||
<td><input type="text" name="LOGIN_HTTP" value="<?=$_CONFIG['LOGIN_HTTP']?>"></td>
|
||||
</tr>
|
||||
<tr bgcolor="#CCCCFF">
|
||||
<td align="right">Nouveau mot de passe d'accès à l'admin :</td>
|
||||
<td><input type="text" name="PASS_HTTP"></td>
|
||||
</tr>
|
||||
<tr bgcolor="#CCCCFF">
|
||||
<td align="right">Mode d'identification :</td>
|
||||
<td>
|
||||
basic : <input type="radio" name="IDENTIF" value="basic"<? echo $_CONFIG['IDENTIF']!='basic'?'':'CHECKED'?>>
|
||||
par URL : <input type="radio" name="IDENTIF" value="url"<? echo $_CONFIG['IDENTIF']=='basic'?'':'CHECKED'?>>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr bgcolor="#CCFFFF">
|
||||
<td colspan="2" align="center"><b>LISTE DES SAUVEGARDES A FAIRE</b</td>
|
||||
</tr>
|
||||
|
||||
<tr bgcolor="#CCFFFF">
|
||||
<td align="right"> sauvegarde du 1er du mois : </td>
|
||||
<td><input type="radio" name="MONTH" value="1" <?=($_CONFIG['MONTH']==1)?"CHECKED":""?>> Oui <input type="radio" name="MONTH" value="0" <?=($_CONFIG['MONTH']==0)?"CHECKED":""?>> Non </td>
|
||||
</tr>
|
||||
<tr bgcolor="#CCFFFF">
|
||||
<td align="right">sauvegarde du dimanche : </td>
|
||||
<td><input type="radio" name="WEEK" value="1" <?=($_CONFIG['WEEK']==1)?"CHECKED":""?>> Oui <input type="radio" name="WEEK" value="0" <?=($_CONFIG['WEEK']==0)?"CHECKED":""?>> Non </td>
|
||||
</tr>
|
||||
<tr bgcolor="#CCFFFF">
|
||||
<td align="right">sauvegarde de la veille : </td>
|
||||
<td><input type="radio" name="YESTERDAY" value="1" <?=($_CONFIG['YESTERDAY']==1)?"CHECKED":""?>> Oui <input type="radio" name="YESTERDAY" value="0" <?=($_CONFIG['YESTERDAY']==0)?"CHECKED":""?>> Non </td>
|
||||
</tr>
|
||||
<tr bgcolor="#CCFFFF">
|
||||
<td align="right">sauvegarde du jour : </td>
|
||||
<td><input type="radio" name="TODAY" value="1" <?=($_CONFIG['TODAY']==1)?"CHECKED":""?>> Oui <input type="radio" name="TODAY" value="0" <?=($_CONFIG['TODAY']==0)?"CHECKED":""?>> Non </td>
|
||||
</tr>
|
||||
<? if (isset($_CONFIG["BASE"]) && isset($_CONFIG["SERVER"]) && isset($_CONFIG["USER"]) && isset($_CONFIG["PASS"])) {
|
||||
if (checkMysql())
|
||||
{
|
||||
$list=listTable();
|
||||
?>
|
||||
<tr bgcolor="#CCCCFF">
|
||||
<td colspan="2" align="center"><b>LISTE DES TABLES A SAUVEGARDER</b</td>
|
||||
</tr>
|
||||
<?
|
||||
foreach($list as $table)
|
||||
{
|
||||
if (!isset($_CONFIG['TABLE_'.$table['nom']])) $_CONFIG['TABLE_'.$table['nom']]=1;
|
||||
?>
|
||||
<tr bgcolor="#CCFFFF">
|
||||
<td align="right">table <b><?=$table['nom']?></b></td>
|
||||
<td><input type="radio" name="TABLE_<?=$table['nom']?>" value="1" <?=($_CONFIG['TABLE_'.$table['nom']]==1)?"CHECKED":""?>> Oui <input type="radio" name="TABLE_<?=$table['nom']?>" value="0" <?=($_CONFIG['TABLE_'.$table['nom']]==0)?"CHECKED":""?>> Non </td>
|
||||
</tr>
|
||||
<?
|
||||
}
|
||||
?>
|
||||
<? } else {?>
|
||||
<tr bgcolor="#CCCCFF">
|
||||
<td colspan="2" align="center"><b>TOUTES LES TABLES SONT SAUVEGARDEES</b</td>
|
||||
</tr>
|
||||
<? } } else { ?>
|
||||
<tr bgcolor="#CCCCFF">
|
||||
<td colspan="2" align="center"><b>TOUTES LES TABLES SONT SAUVEGARDEES</b</td>
|
||||
</tr>
|
||||
<? } ?>
|
||||
<TR>
|
||||
<td colspan="2" align="center"><input type="submit" name="submit" value="Valider"></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</form>
|
||||
<?
|
||||
}
|
||||
function showFooterPage()
|
||||
{
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
<?
|
||||
}
|
||||
function showMenu()
|
||||
{
|
||||
?>
|
||||
<ul id="topnav">
|
||||
<li> <a href=<?=moimeme('?action=config')?>>Configuration</a> </li>
|
||||
<li> <a href=<?=moimeme('?action=save')?>>Sauvegarde Manuelle</a> </li>
|
||||
<li> <a href=<?=moimeme('?action=restore')?>>Restauration</a> </li>
|
||||
<li> <a href="http://www.webcron.org">Webcron</a> </li>
|
||||
</ul>
|
||||
<?
|
||||
}
|
||||
|
||||
function showIdentifPage()
|
||||
{
|
||||
global $_CONFIG;
|
||||
?>
|
||||
<H1>IDENTIFICATION</H1>
|
||||
<FORM align="center" method="GET" action="<?=$_SERVER['PHP_SELF']?>">
|
||||
<TABLE border=1 cellpadding="3" align="center">
|
||||
<tr bgcolor="#CCCCFF">
|
||||
<td align="right">Login d'accès à l'admin :</td>
|
||||
<td><input type="text" name="login" value="<?=$_CONFIG['LOGIN_HTTP']?>"></td>
|
||||
</tr>
|
||||
<tr bgcolor="#CCCCFF">
|
||||
<td align="right">Mot de passe d'accès à l'admin :</td>
|
||||
<td><input type="text" name="pass"></td>
|
||||
</tr>
|
||||
<TR>
|
||||
<td colspan="2" align="center"><input type="submit" name="submit" value="Valider"></td>
|
||||
</tr>
|
||||
</TABLE>
|
||||
</FORM>
|
||||
<?
|
||||
}
|
||||
|
||||
function checkMysql()
|
||||
{
|
||||
global $_CONFIG;
|
||||
include('./webcronsave/config.php');
|
||||
|
||||
if (!$my=mysql_connect($_CONFIG['SERVER'],$_CONFIG['USER'],$_CONFIG['PASS']))
|
||||
return false;
|
||||
else
|
||||
{
|
||||
if (!mysql_select_db($_CONFIG['BASE']))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function saveData()
|
||||
{
|
||||
global $_CONFIG;
|
||||
checkMysql();
|
||||
$fname=date('Y-m-d')."_".$_CONFIG['BASE'];
|
||||
$list=listTable();
|
||||
if (!function_exists('gzopen'))
|
||||
$fp=fopen('./webcronsave/'.$fname.'.sql','w');
|
||||
else
|
||||
$fp=gzopen('./webcronsave/'.$fname.'.gz','w');
|
||||
if ($fp)
|
||||
{
|
||||
foreach($list as $table)
|
||||
{
|
||||
if (isset($_CONFIG['TABLE_'.$table['nom']]))
|
||||
{
|
||||
if ($_CONFIG['TABLE_'.$table['nom']]=='1')
|
||||
{
|
||||
dumpTable($fp,$table);
|
||||
}
|
||||
}
|
||||
else dumpTable($fp,$table);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
function restoreFile($file)
|
||||
{
|
||||
showMessage('Restauration en cours','message');
|
||||
checkMysql();
|
||||
list($name,$ext)=explode('.',$file);
|
||||
if ($ext=='gz')
|
||||
$pref='gz';
|
||||
else
|
||||
$pref='f';
|
||||
$open=$pref.'open';
|
||||
$gets=$pref.'gets';
|
||||
$eof=$pref.'eof';
|
||||
$close=$pref.'close';
|
||||
$fp=$open($dir='./webcronsave/'.$file,'r');
|
||||
if ($fp)
|
||||
{
|
||||
$buffer='';
|
||||
$inChamp=false;
|
||||
while (!$eof($fp)) {
|
||||
$s=$gets($fp, 4096);
|
||||
$old='';
|
||||
for($i=0;$i<strlen($s);$i++)
|
||||
{
|
||||
$current=$s[$i];
|
||||
if ($current=="'" && $old!='\\')
|
||||
$inChamp=!$inChamp;
|
||||
|
||||
if ($current==';' && $inChamp==false)
|
||||
{
|
||||
$query=$buffer;
|
||||
if (!mysql_query($query))
|
||||
{
|
||||
showMessage('Problème de requete <b>'.htmlentities($query).'</b> Mysql '.mysql_error(),'error');
|
||||
return false;
|
||||
}
|
||||
$buffer='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$buffer.=$current;
|
||||
}
|
||||
$old=$current;
|
||||
}
|
||||
}
|
||||
$close($fp);
|
||||
return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
|
||||
function dumpTable($fp,$table)
|
||||
{
|
||||
global $_CONFIG;
|
||||
$nomtable=$table['nom'];
|
||||
|
||||
if (!function_exists('gzopen'))
|
||||
$fwrite='fwrite';
|
||||
else
|
||||
$fwrite='gzwrite';
|
||||
|
||||
$fwrite($fp,'#sauvegarde base mysql '.$_CONFIG['BASE']."\n\n");
|
||||
$fwrite($fp,"DROP TABLE IF EXISTS `$nomtable`;\n\n");
|
||||
|
||||
$sql='SET SQL_QUOTE_SHOW_CREATE=1';
|
||||
$res=mysql_query($sql); // pas fatal
|
||||
|
||||
$sql="SHOW CREATE TABLE `$nomtable`";
|
||||
$res=mysql_query($sql) or die ('Erreur Mysql '.mysql_error().'<br>');
|
||||
while($res && $row=mysql_fetch_row($res))
|
||||
{
|
||||
if (is_numeric($table['autoinc'])) $row[1] .= ' AUTO_INCREMENT='.$table['autoinc'];
|
||||
$fwrite($fp,$row[1].";\n");
|
||||
}
|
||||
$fwrite($fp,"\n\n");
|
||||
|
||||
$res = mysql_query("SELECT * FROM `$nomtable`") or die ('Erreur Mysql '.mysql_error().'<br>');
|
||||
|
||||
while ($row = mysql_fetch_assoc($res)){
|
||||
$strFieldsNames = '';
|
||||
$strFieldsValues = '';
|
||||
|
||||
foreach ($row 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 listTable()
|
||||
{
|
||||
global $_CONFIG;
|
||||
$list_table=array();
|
||||
$list_autoinc =array();
|
||||
$res=mysql_query('SHOW TABLE STATUS') or die ('Erreur Mysql '.mysql_error().'<br>');
|
||||
// $tmpfile=tempnam(ini_get("session.save_path"),"webcronsave_");
|
||||
if (!$res)
|
||||
{
|
||||
echo 'Erreur Mysql '.mysql_error().'<br>';
|
||||
die;
|
||||
}
|
||||
else
|
||||
{
|
||||
while($row=mysql_fetch_array($res))
|
||||
{
|
||||
$list_table[]=array('nom'=>$row['Name'],'autoinc'=>$row['Auto_increment']);
|
||||
}
|
||||
}
|
||||
return $list_table;
|
||||
}
|
||||
|
||||
function saveConfig($data)
|
||||
{
|
||||
global $_CONFIG;
|
||||
|
||||
// on vérifie si config correcte
|
||||
if (empty($data['PASS'])) {
|
||||
if (empty($_CONFIG['PASS'])) {
|
||||
showMessage ('Le mot de passe de la base de données est vide.','error');
|
||||
showMessage ('Ceci n\'est acceptable que si vous faites un essai en local','error');
|
||||
$_CONFIG['PASS']='';
|
||||
}
|
||||
$data['PASS']=$_CONFIG['PASS']; // prise en compte nouveau mot de passe bdd
|
||||
}
|
||||
|
||||
if (empty($data['PASS_HTTP'])) {
|
||||
if (empty($_CONFIG['PASS_HTTP'])) {
|
||||
return 'le mot de passe admin ne doit pas être vide'; // mot de passe admin vide interdit
|
||||
}
|
||||
$data['PASS_HTTP']=$_CONFIG['PASS_HTTP']; // prise en compte nouveau mot de passe admin
|
||||
}
|
||||
|
||||
if (empty($data['USER'])) {
|
||||
showMessage ('Le nom d\'utilisateur de la base de données est vide.','error');
|
||||
showMessage ('Ceci n\'est acceptable que si vous faites un essai en local','error');
|
||||
}
|
||||
if (empty($data['LOGIN_HTTP'])) {
|
||||
return 'le nom d\'utilisateur admin ne doit pas être vide';
|
||||
}
|
||||
|
||||
if($fd = fopen('./webcronsave/config.php','w'))
|
||||
{
|
||||
fputs($fd,"<?php\n");
|
||||
foreach($data as $key => $val)
|
||||
{
|
||||
fputs($fd,"\$_CONFIG[\"$key\"]=".var_export(recupchaine($val),true).";\n");
|
||||
$_CONFIG[$key]=$val;
|
||||
}
|
||||
fputs($fd,'?','>');
|
||||
fclose($fd);
|
||||
//je crée un htaccess pour ne pas que les gens viennent chercher les fichiers en direct
|
||||
if($fd = @fopen('./webcronsave/.htaccess','w'))
|
||||
{
|
||||
$str="order deny,allow\ndeny from all\n";
|
||||
fputs($fd,$str);
|
||||
fclose($fd);
|
||||
}
|
||||
return '';
|
||||
}
|
||||
else
|
||||
return 'Problème de droits : impossible de sauvegarder le fichier de config';
|
||||
}
|
||||
|
||||
function getFileSize($size) {
|
||||
$units = array(' B', ' KB', ' MB', ' GB', ' TB');
|
||||
for ($i = 0; $size > 1024; $i++) { $size /= 1024; }
|
||||
return round($size, 2).$units[$i];
|
||||
}
|
||||
|
||||
function fileData($file)
|
||||
{
|
||||
global $_CONFIG;
|
||||
$dir='./webcronsave/';
|
||||
list($name,$ext)=explode('.',$file);
|
||||
list($date,$db)=explode('_',$name);
|
||||
list($year,$month,$day)=explode('-',$date);
|
||||
if ($ext=='gz') $ext_f='Fichier compressé (algorithme GZIP)';
|
||||
else $ext_f='Fichier non compressé';
|
||||
return 'sauvegarde du '.$day.'/'.$month.'/'.$year.' '.getFileSize(filesize($dir.$file)).' '.$ext_f;
|
||||
}
|
||||
function checkFile()
|
||||
{
|
||||
global $_CONFIG;
|
||||
if (!function_exists('gzopen'))
|
||||
$ext='.sql';
|
||||
else
|
||||
$ext='.gz';
|
||||
//sauvegarde du jour
|
||||
if ($_CONFIG['TODAY']=='1') $names[date('Y-m-d').'_'.$_CONFIG['BASE'].$ext]=date('Y-m-d').'_'.$_CONFIG['BASE'].$ext;
|
||||
//sauvegarde de la veille
|
||||
if ($_CONFIG['YESTERDAY']=='1') $names[date('Y-m-d',time()-86400).'_'.$_CONFIG['BASE'].$ext]=date('Y-m-d',time()-86400).'_'.$_CONFIG['BASE'].$ext;
|
||||
//sauvegarde du debut du mois
|
||||
if ($_CONFIG['MONTH']=='1') $names[date('Y-m-01').'_'.$_CONFIG['BASE'].$ext]=date('Y-m-01').'_'.$_CONFIG['BASE'].$ext;
|
||||
//sauvegarde du dimanche
|
||||
if ($_CONFIG['WEEK']=='1') $names[date('Y-m-d',time()-date('w')*86400).'_'.$_CONFIG['BASE'].$ext]=date('Y-m-d',time()-date("w")*86400)."_".$_CONFIG['BASE'].$ext;
|
||||
//var_dump($names);
|
||||
$list_f=listFileSave();
|
||||
foreach($list_f as $file)
|
||||
{
|
||||
if (!in_array($file,$names)) unlink('./webcronsave/'.$file);
|
||||
}
|
||||
|
||||
}
|
||||
function listFileSave()
|
||||
{
|
||||
$dir='./webcronsave/';
|
||||
$list_f=array();
|
||||
if (is_dir($dir)) {
|
||||
if ($dh = opendir($dir)) {
|
||||
while (($file = readdir($dh)) !== false) {
|
||||
if (!in_array($file,array('.','..','config.php','.htaccess')))
|
||||
{
|
||||
$list_f[]=$file;
|
||||
}
|
||||
}
|
||||
closedir($dh);
|
||||
}
|
||||
}
|
||||
return $list_f;
|
||||
}
|
||||
function listeSave()
|
||||
{
|
||||
global $_CONFIG;
|
||||
|
||||
$list_f=listFileSave();
|
||||
|
||||
echo '<ul id="list_archive">';
|
||||
foreach($list_f as $val)
|
||||
{
|
||||
echo '<li> <a href='.moimeme('?action=dorestore&file='.urlencode($val)).'>Restaurer</a> '.fileData($val).'</li>';
|
||||
}
|
||||
echo '</ul>';
|
||||
}
|
||||
function readConfig()
|
||||
{
|
||||
global $_CONFIG;
|
||||
$rsrc=@opendir( './webcronsave');
|
||||
if ($rsrc===false) return false;
|
||||
closedir ($rsrc);
|
||||
|
||||
if (file_exists('./webcronsave/config.php'))
|
||||
include_once('./webcronsave/config.php');
|
||||
if (!isset($_CONFIG['TODAY'])) $_CONFIG['TODAY']=0;
|
||||
if (!isset($_CONFIG['YESTERDAY'])) $_CONFIG['YESTERDAY']=0;
|
||||
if (!isset($_CONFIG['MONTH'])) $_CONFIG['MONTH']=1;
|
||||
if (!isset($_CONFIG['WEEK'])) $_CONFIG['WEEK']=0;
|
||||
if (!isset($_CONFIG['SERVER'])) $_CONFIG['SERVER']='localhost';
|
||||
if (!isset($_CONFIG['USER'])) $_CONFIG['USER']='';
|
||||
if (!isset($_CONFIG['PASS'])) $_CONFIG['PASS']='';
|
||||
if (!isset($_CONFIG['BASE'])) $_CONFIG['BASE']='';
|
||||
if (!isset($_CONFIG['EMAIL'])) $_CONFIG['EMAIL']='';
|
||||
if (!isset($_CONFIG['LOGIN_HTTP'])) $_CONFIG['LOGIN_HTTP']='';
|
||||
if (!isset($_CONFIG['PASS_HTTP'])) $_CONFIG['PASS_HTTP']='';
|
||||
if (!isset($_CONFIG['IDENTIF'])) $_CONFIG['IDENTIF']='basic';
|
||||
return true;
|
||||
|
||||
} // function readConfig()
|
||||
|
||||
|
||||
function AfficherListe() {
|
||||
echo 'sauvegarde(s) disponible(s) :<BR>';
|
||||
$lst= ListFileSave();
|
||||
for ($k= 0; $k < count($lst); $k++) {
|
||||
echo htmlentities($lst[$k]),'<BR>';
|
||||
}
|
||||
|
||||
} //function AfficherListe()
|
||||
|
||||
//GESTION DE LA PAGE
|
||||
|
||||
if (isset($_POST['action']) && strlen($_POST['action'])>0) $action=recupchaine($_POST['action']);
|
||||
else if (isset($_GET['action']) && strlen($_GET['action'])>0) $action=recupchaine($_GET['action']);
|
||||
//par défaut l'action est la configuration
|
||||
else $action='config';
|
||||
|
||||
if (!readConfig())
|
||||
{
|
||||
$action='error';
|
||||
$errorMessage='Veuillez créer le repertoire \'webcronsave\' pour sauvegarder votre config et vos sauvegardes.';
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!empty($_CONFIG['LOGIN_HTTP']) && !empty($_CONFIG['PASS_HTTP']))
|
||||
{
|
||||
if ($_CONFIG['IDENTIF']!='basic') {
|
||||
if (empty($_GET['login']) || empty($_GET['pass'])) // identification non fournie
|
||||
$action='demandermdp';
|
||||
else if ((recupchaine($_GET['login']) != $_CONFIG['LOGIN_HTTP']) ||
|
||||
(recupchaine($_GET['pass']) != $_CONFIG['PASS_HTTP']) ) // identif incorrecte
|
||||
$action='demandermdp';
|
||||
|
||||
} // fin identif par url
|
||||
else { // identif par basic
|
||||
if (!isset($_SERVER['PHP_AUTH_USER'])) {
|
||||
header('WWW-Authenticate: Basic realm="WebCronSave"');
|
||||
header('HTTP/1.0 401 Unauthorized');
|
||||
exit;
|
||||
} else {
|
||||
if ($_SERVER['PHP_AUTH_USER']!=$_CONFIG['LOGIN_HTTP'] || $_SERVER['PHP_AUTH_PW']!=$_CONFIG['PASS_HTTP'])
|
||||
{
|
||||
header('WWW-Authenticate: Basic realm="WebCronSave"');
|
||||
header('HTTP/1.0 401 Unauthorized');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
} // fin identif par basic
|
||||
}
|
||||
}
|
||||
checkFile();
|
||||
//traitement spécifique
|
||||
switch($action)
|
||||
{
|
||||
//webcron sauvegarde automatique
|
||||
case 'savewebcron':
|
||||
if (!saveData()) {
|
||||
mail($_CONFIG['EMAIL'],'Problème avec votre sauvegarde','Veuillez vérifier votre configuration : http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."\n");
|
||||
echo 'pb sauvegarde';
|
||||
} else {
|
||||
checkFile();
|
||||
AfficherListe();
|
||||
}
|
||||
break;
|
||||
|
||||
//Affichage de la config
|
||||
case 'config':
|
||||
showHeaderPage();
|
||||
showMenu();
|
||||
showFormConfig();
|
||||
break;
|
||||
|
||||
//sauvegarde de la config
|
||||
case 'saveconfig':
|
||||
showHeaderPage();
|
||||
$diag=saveConfig($_POST);
|
||||
showMenu();
|
||||
if ($diag!='')
|
||||
{
|
||||
showMessage($diag,'error');
|
||||
}
|
||||
else
|
||||
{
|
||||
showMessage('La configuration a été sauvegardée',"message");
|
||||
showMessage('Vérification de la connexion de la base de données','message');
|
||||
if (!checkMysql()) showMessage('Problème de connexion Mysql '.mysql_error(),'error');
|
||||
else showMessage('La connexion est bien configurée !','message');
|
||||
}
|
||||
break;
|
||||
|
||||
//Affichage d'une erreur
|
||||
case 'error':
|
||||
showHeaderPage();
|
||||
showMenu();
|
||||
showMessage($errorMessage,'error');
|
||||
showFooterPage();
|
||||
break;
|
||||
|
||||
//Gestion de la sauvegarde manuel
|
||||
case 'save':
|
||||
showHeaderPage();
|
||||
showMenu();
|
||||
if (saveData())
|
||||
{
|
||||
showMessage('La sauvegarde a été effectuée avec succès','message');
|
||||
}
|
||||
else
|
||||
showMessage('Problème de création de fichier','error');
|
||||
showFooterPage();
|
||||
break;
|
||||
|
||||
//gestion de la restauration
|
||||
case 'restore':
|
||||
showHeaderPage();
|
||||
showMenu();
|
||||
listeSave();
|
||||
showFooterPage();
|
||||
break;
|
||||
|
||||
//gestion de la restauration
|
||||
case 'dorestore':
|
||||
showHeaderPage();
|
||||
showMenu();
|
||||
$file=recupchaine($_GET['file']);
|
||||
if (!restoreFile($file)) showMessage('Problème de requête Mysql '.mysql_error(),'error');
|
||||
else showMessage('Restauration effectuée avec succès','message');
|
||||
showFooterPage();
|
||||
break;
|
||||
|
||||
//saisie de l'identification par URL
|
||||
case 'demandermdp':
|
||||
showHeaderPage();
|
||||
showIdentifPage();
|
||||
showFooterPage();
|
||||
break;
|
||||
|
||||
//gestion par défaut
|
||||
default:
|
||||
break;
|
||||
}
|
||||
?>
|
||||