Version 1.13a

This commit is contained in:
nemunaire 2020-11-15 16:12:30 +01:00
commit ba8f323879
1634 changed files with 10080 additions and 213021 deletions

View file

@ -0,0 +1 @@

File diff suppressed because it is too large Load diff

View file

@ -1,161 +0,0 @@
<?php $cache = array (
'var' =>
array (
'serveur_name' => 'Béta #1',
'version' => '1.12 Alpha',
'vitesse' => '10',
'flottes' => '1',
'attaques' => '1',
'time_maintenance' => '20000',
'galaxie' => '1',
'nb_amas' => '1',
'nb_systeme' => '99',
'nb_planete' => '12',
'first_page' => 'index.php',
'url_images' => '',
'db_prefix' => '',
'mail_admin' => 'admin@halo-battle.s-fr.com',
'mail_support' => 'technique@halo-battle.s-fr.com',
'link' =>
array (
'self' => './',
'accueil' => 'http://www.halo-battle.fr/',
'blog' => 'http://www.halo-battle.fr/ark/',
'jeu' => 'http://www.halo-battle.fr/',
'inscription' => 'http://www.halo-battle.fr/register',
'forum' => 'http://www.halo-battle.fr/forum/',
'operateur' => '?p=operateur',
),
'menu' =>
array (
'accueil' => '?p=accueil',
'operateur' => '?p=operateur',
'batiments' => '?p=batiments',
'caserne' => '?p=caserne',
'chantierspatial' => '?p=chantierspatial',
'chantierterrestre' => '?p=chantierterrestre',
'defenses' => '?p=defenses',
'laboratoire' => '?p=laboratoire',
'arbre' => '?p=arbre',
'ressources' => '?p=ressources',
'gestion' => '?p=gestion',
'marche' => '?p=marche',
'bourse' => '?p=bourse',
'flotte' => '?p=flotte',
'armee' => '?p=prochainement',
'carte' => '?p=carte',
'options' => '?p=options',
'messages' => '?p=messagerie',
'envoie' => '?p=envoyer',
'alliance' => '?p=alliances',
'classement' => '?p=classement',
'chat' => '?p=chat',
'forums' => 'http://www.halo-battle.fr/forum/',
'bugs' => 'http://www.halo-battle.fr/tester/',
'faq' => '?p=faq',
'deconnexion' => '?p=deconnexion',
),
'chrono' => '<!--Page générée en: $ secondes.-->',
),
'env' =>
array (
'auth' => '0',
'ignore_user_abort' => '1',
'error_level' => '6143',
'header' =>
array (
'Content-Type' => 'text/html;charset=utf-8',
),
'ini' =>
array (
'allow_url_fopen' => '0',
'allow_url_include' => '0',
'display_errors' => '1',
'display_startup_errors' => '1',
'magic_quotes_runtime' => '0',
'magic_quotes_sybase' => '0',
'memory_limit' => '64M',
'log_errors' => '1',
),
'log_php' => '1',
'locale' =>
array (
0 => 'fr_FR.UTF8',
1 => 'fr.UTF8',
2 => 'fr_FR.UTF-8',
3 => 'fr.UTF-8',
),
),
'root' => '/var/www/halo-battle/htdocs/',
'modules' =>
array (
0 => 'db',
1 => 'session',
2 => 'lang',
3 => 'bbcode',
4 => 'templates',
5 => 'pistage',
),
'opt' =>
array (
'db' =>
array (
'type' => 'mysql',
'profile' => 'default',
'log' => '0',
'crypt' => '',
'no_connection' => 'Connexion &agrave; la base de donn&eacute;e impossible',
),
'session' =>
array (
'active' => '1',
'time' => '3600',
'maxip' => '20',
'cookie' => 'hbsession',
'db' =>
array (
'table' => 'sessions',
),
),
'lang' =>
array (
'type' => 'fr',
),
'bbcode' =>
array (
'smiley_dir' => './images/smile/',
'smiley' =>
array (
'wink' => ':wink:',
'biggrin' => ':D',
'smile' => ':-)',
'razz' => ':P',
'eek' => ':shock:',
'cool' => '8-)',
'twisted' => ':twisted:',
'evil' => ':evil:',
'mad' => ':-x',
'confused' => ':-?',
'sad' => ':-(',
'surprised' => ':-O',
'neutral' => ':-|',
'redface' => ':oops:',
'rolleyes' => ':roll:',
'lol' => ':lol:',
),
),
'templates' =>
array (
'tpl' => '',
'compile' => 'modules/templates/compile/',
'config' => 'modules/templates/config/',
'cache' => 'modules/templates/cache/',
'profile' => 'default',
),
'pistage' =>
array (
'ips' => '82.245.190.225;84.101.175.59;86.214.198.131',
),
),
'check' => '27fea96d5af3067bdfe2c679ca02fc44ecd1e0f21d456e436e480e7597dd521c',
); ?>

View file

@ -1,610 +0,0 @@
<?php $cache = array (
0 =>
array (
'id' => '46',
'version' => '1.5b',
'contenu' => '- Correction du bug de redirection après une construction/annulation
- Ajout d\'énormément d\'outils dans le panneau d\'opérateur
- Réinitialisation des temps des files d\'attente lorsque l\'on se reconnecte après le mode vacances
- Ajout de la raison d\'un blocage de compte
- Correction du script de combat',
'temps' => '1212184801',
'pseudo' => 'nemunaire',
),
1 =>
array (
'id' => '45',
'version' => '1.5a',
'contenu' => '- Correction de 4 fautes d\'orthographes dans les descriptions et noms d\'unités
- Correction du bug de transport de ressources
- Ajout d\'un rapport de transport pour le joueur destinataire
- Correction d\'une faute d\'orthographe dans les rapports de transport
- Refonte complète du script de flotte
- Correction du template de rapport de combat : les états des défenses sont bien affichés
- Affichage des pourcentages dans les rapports de combats en nombre entiers
- Ajout d\'un simulateur de combat
- On ne peut plus envoyer de flotte si on a changé une donnée et que ça n\'a pas été validé par le serveur (évite l\'affichage du message "Impossible d\'authentifier la flotte")
- Amélioration de la description du placement préférentiel dans l\'inscription
- Correction d\'une faute de frappe dans le template de messagerie
- Correction des retours de flottes
- Ajout du support de fermeture de serveur',
'temps' => '1212184800',
'pseudo' => 'nemunaire',
),
2 =>
array (
'id' => '44',
'version' => '1.5',
'contenu' => '- Mise en place du script de combat
- Mise à jour en "temps réel", plus besoin d\'actualiser la page deux fois de suite pour avoir les nouveaux chiffres
- Le deuxième lien "tout sélectionner" dans la messagerie sélectionne les rapports
- Activation du pillage lorsque l\'on gagne un combat spatial
- Ajout de la vérification des flottes dans l\'interface d\'admin
- Ajout de textes dans la FAQ
- Correction du total d\'hydrogène affiché dans la page ressources
- Correction de l\'envoie de rapport d\'espionnage',
'temps' => '1212098400',
'pseudo' => 'nemunaire',
),
3 =>
array (
'id' => '43',
'version' => '1.4a',
'contenu' => '- Correction de l\'affichage de la production des mines
- Correction de l\'arrivée des flottes
- Correction des alliances si on se trouve dans une alliance qui n\'existe plus',
'temps' => '1212012000',
'pseudo' => 'nemunaire',
),
4 =>
array (
'id' => '42',
'version' => '1.4',
'contenu' => '- Ajout du chat dans le jeu
- Détermination du nom du chateur en fonction du nom de joueur
- Application au chat des couleur du design en fonction de la race',
'temps' => '1211925600',
'pseudo' => 'nemunaire',
),
5 =>
array (
'id' => '41',
'version' => '1.3',
'contenu' => '- Modification de la base de données pour corriger le bug de surconsomation
- Correction générale dans les actions des flottes',
'temps' => '1211925600',
'pseudo' => 'nemunaire',
),
6 =>
array (
'id' => '40',
'version' => '1.2e',
'contenu' => '- Ajout des caractéristiques des vaisseaux dans les descriptions
- On peut rappeler sa flotte',
'temps' => '1211925600',
'pseudo' => 'nemunaire',
),
7 =>
array (
'id' => '39',
'version' => '1.2d',
'contenu' => '- Ajustement des coûts et caractéristiques des vaisseaux et défenses
- Ajout de l\'interface d\'admin pour la vérification des multi-comptes
- Modification de la consommation des vaisseaux',
'temps' => '1211839200',
'pseudo' => 'nemunaire',
),
8 =>
array (
'id' => '38',
'version' => '1.2c',
'contenu' => '- Correction de la consommation des vaisseaux
- Ajout d\'un lien pour classer par place les membres d\'une alliance
- Correction de la possibilité de construire un bâtiment inexistant
- Correction du lien FAQ dans l\'en-tête
- Les planètes mères ont toute 225 cases
- Correction de l\'erreur des slots',
'temps' => '1211752800',
'pseudo' => 'nemunaire',
),
9 =>
array (
'id' => '37',
'version' => '1.2b',
'contenu' => '- Ajout du tableau de production dans la page description
- Correction de la file d\'attente : lorsque l\'on annule un bâtiment, le premier de la liste ne recommence pas à 0
- Ajout de détails sur la flotte dans la page de description d\'une flotte
- Correction du radar de la page d\'accueil en cas de combat en cours
- Correction du bug d\'actualisation des pages de construction.',
'temps' => '1211666400',
'pseudo' => 'nemunaire',
),
10 =>
array (
'id' => '36',
'version' => '1.2a',
'contenu' => '- Correction de la faute de frappe "Accpter" dans la liste des membre d\'alliance
- Prise en charge du BBcode dans les présentations et texte interne des alliances
- Correction de la faille XSS dans la présentation et le texte interne des alliances',
'temps' => '1211580000',
'pseudo' => 'nemunaire',
),
11 =>
array (
'id' => '35',
'version' => '1.2',
'contenu' => '- Augmentation de la production de ressources de 50%
- Correction de 14 failles de sécurité
- Correction de la possibilité de construire un bâtiment déjà en file d\'attente
- Correction de la possibilité de rechercher une technologie déjà en file d\'attente
- Ajout du classement dans la liste des membres de l\'alliance
- Ajout d\'un champ mot de passe dans le changement d\'adresse électronique
- Ajout des silos de stockage dans la page Ressources
- Lorsque l\'on annule la première chose d\'une file d\'attente, le temps redémarre
- Correction du nom de la page laboratoire
- Correction du lancement/arrêt des recherches
- Ajout de la page de description des unités, bâtiments, technologies
- Ajout d\'une limite de taille pour les noms de planète
- Ajout d\'une limite de taille pour les noms de flottes',
'temps' => '1211493600',
'pseudo' => 'nemunaire',
),
12 =>
array (
'id' => '34',
'version' => '1.1c',
'contenu' => '- Correction de la carte spatiale : on peut afficher toutes les galaxies
- Sauvegarde des identifications à des fins de vérifications par les chefs internes
- Limitation du nombre de MP affiché dans la messagerie
- Suppression du classement des membres du staff
- Limitation de la taille du champ pseudo lors de l\'inscription
- Lorsque l\'on est pas encore classé, est affiché "non classé" au lieu de "0ème"
- Correction du nom "galaxie" en "amas" dans la carte spatiale
- Correction de 3 fautes d\'orthographes dans les descriptions.',
'temps' => '1211234400',
'pseudo' => 'nemunaire',
),
13 =>
array (
'id' => '33',
'version' => '1.1b',
'contenu' => 'Changement d\'hébergeur :
Passage de Halo.fr à S-fr.com',
'temps' => '1211228100',
'pseudo' => 'nemunaire',
),
14 =>
array (
'id' => '32',
'version' => '1.1b',
'contenu' => '- Ajout de la publicité et des statistiques sur les pages
- Correction du script de session (Par Phantom)
- Ajout d\'un formulaire de don en bas de page',
'temps' => '1211148000',
'pseudo' => 'nemunaire',
),
15 =>
array (
'id' => '31',
'version' => '1.1a',
'contenu' => '- Correction de l\'erreur d\'affichage des accents dans les noms de planètes
- Correction du nombre de cases de la planète
- Les batiments qui ne sont pas encore construits ne sont plus affiché dans la page Ressources.
- Correction de la production minimale pour produire lorsque l\'on a pas de centrales électriques
- Correction du lien de changement de mot de passe et d\'adresse mail (dans les options)
- Correction du total de l\'énergie affiché dans la page ressources
- Ajout d\'un lien pour répondre rapidement aux MP',
'temps' => '1211148000',
'pseudo' => 'nemunaire',
),
16 =>
array (
'id' => '30',
'version' => '1.1',
'contenu' => '- Ajout d\'une production minimale',
'temps' => '1211061600',
'pseudo' => 'nemunaire',
),
17 =>
array (
'id' => '29',
'version' => '1.0b',
'contenu' => '- Correction du mail d\'activation
- Ajout du système d\'oubli de mot de passe
- Déplacement de l\'énergie à droite de l\'hydrogène/ions
- Correction des noms de ressources affichés dans la page ressources
- Correction du script de production
- Ajout de listes découlantes pour changer le taux de production des mines et des centrales',
'temps' => '1211061600',
'pseudo' => 'nemunaire',
),
18 =>
array (
'id' => '28',
'version' => '1.0a',
'contenu' => '- Correction de la non-production
- Correction de la signature des pré-alliances',
'temps' => '1210975200',
'pseudo' => 'nemunaire',
),
19 =>
array (
'id' => '27',
'version' => '1.0<br />Version FINALE',
'contenu' => '- Réorganisation complètes des fichiers
- Utilisation du noyau Onyx',
'temps' => '1210975200',
'pseudo' => 'nemunaire',
),
20 =>
array (
'id' => '26',
'version' => '0.11a',
'contenu' => '- Autorisation des espaces dans les noms de flottes
- Ajout du champ \'tactique\' dans le formulaire d\'envoi de flotte
- Correction du script de combat au niveau du pillage
- Correction de l\'heure d\'envoi affiché dans le détail des messages privés ou rapports
...',
'temps' => '1203980400',
'pseudo' => 'nemunaire',
),
21 =>
array (
'id' => '25',
'version' => '0.11<br />Release Candidate 2',
'contenu' => '- Correction des heures et destinations de retour dans la liste des flottes en mission
- Correction des erreurs affichés lors de la création de flottes
- Mise en place du nouveau script de combat
- Correction de l\'envoie de flotte lorsqu\'on a plus de 1 000 vaisseaux d\'un type
- Interprétation du BBcode dans les messages privés et les rapports
- Traduction des noms des mois dans les dates
- Modification de la base de données pour le nouveau script de combat',
'temps' => '1203894000',
'pseudo' => 'nemunaire',
),
22 =>
array (
'id' => '24',
'version' => '0.10b',
'contenu' => '- Correction du temps de production des 5 premiers bâtiments.
- Correction de l\'arbre des technologies.',
'temps' => '1203202800',
'pseudo' => 'nemunaire',
),
23 =>
array (
'id' => '23',
'version' => '0.10a',
'contenu' => '- Correction du temps de déplacement lors de la création de flotte
- Modification de la couleur pour les messages privés mis en valeur
- Les liens d\'envoi rapide de mail sont diriger vers la bonne page
- Correction de l\'affichage des images manquante dans les batiments, technologies, ...
',
'temps' => '1200783600',
'pseudo' => 'nemunaire',
),
24 =>
array (
'id' => '22',
'version' => '0.10<br />Release Candidate 1',
'contenu' => 'Ajout de beaucoup trop de chose pour être listés ici ^^',
'temps' => '1200524400',
'pseudo' => 'nemunaire',
),
25 =>
array (
'id' => '21',
'version' => '0.9a<br />Béta 3',
'contenu' => '- Correction de "l\'overproduction" si l\'on dépasse la capacité des dépôts
- Correction de la production, passage en page FINALE
- Ajout de toutes les descriptions détaillés pour les bâtiments, défenses, chantier_spatial, ...
- Mise en place du classement',
'temps' => '1197846000',
'pseudo' => 'nemunaire',
),
26 =>
array (
'id' => '20',
'version' => '0.9',
'contenu' => '- Correction de l\'identification si le JavaScript n\'est pas activé<br />
- Correction du problème de ralentissement de création des vaisseaux<br />
- Correction de l\'impossibilité de construire certain bâtiments après d\'autres<br />
- Mise en template de la page de construction des défenses<br />
- Ajout d\'une file d\'attente pour la construction des défenses<br />
<br />
- Modification de la base de données pour introduire la file d\'attente',
'temps' => '1197414000',
'pseudo' => 'nemunaire',
),
27 =>
array (
'id' => '19',
'version' => '0.8a',
'contenu' => '- Correction d\'une faille de sécurité mineure dans l\'identification<br />
- Correction de la continuité bizarre de la carte spatiale<br />
- Correction du bug de la page de départ<br />
- Enregistrement des connexions pour vérification par les opérateurs<br />
<br />
- Ajout de cookies pour se souvenir des derniers paramètres d\'identifications<br />
- Correction du bug de temps de construction lors d\'une déconnexion (valable uniquement pour le chantier spatial)<br />
- Correction d\'une faille de sécurité avec les cookies d\'identification.',
'temps' => '1195945200',
'pseudo' => 'nemunaire',
),
28 =>
array (
'id' => '18',
'version' => '0.8<br />Béta 2',
'contenu' => '- Ajout d\'un avertissement lorsque l\'on n\'a pas de laboratoire, de chantier spatial, ...<br />
- Correction du bug des ID lors de la construction<br />
- Correction de l\'énergie affichée<br />
- Correction du point qui était affiché si le chiffre était négatif<br />
- Transformation du chantier spatial en template<br />
- Mise en place de la file d\'attente pour le chantier spatial<br />
- La production de ressource s\'arrête si les entrepôts sont pleins<br />
- Nouveaux calculs de production (calcul avec coefficient)<br />
- Ajout d\'une sécurité empêchant l\'actualisation de la page avant 2 secondes (ANNULEE)<br />
- Correction du bug de l\'énergie et de la production<br />',
'temps' => '1195686000',
'pseudo' => 'nemunaire',
),
29 =>
array (
'id' => '17',
'version' => '0.7a',
'contenu' => '- Ajout de la production à la chaine pour les recherches<br />
- Correction de l\'erreur de redirection lors de l\'annulation d\'une recherche produite à la chaine<br />
- Correction de la possibilité de lancer une recherche sans avoir toutes les ressources ou autres niveaux<br />
- Transformation de la page bâtiment en template<br />
- Le forum est affiché dans la zone de contenu (RETIRE dans la version 0.8)<br />
- Modification de l\'apparence de l\'inscription<br />
- Correction de la possibilité de construire tous les bâtiments via l\'URL<br />
- Correction des bâtiments mystérieusement en file d\'attente<br />
- Correction des recherches mystérieusement en file d\'attente<br />
- Correction des ressources nécessaire pour une mine de cristal<br />
- Modification des textes pour les mettre au format HTML (accents, ...)<br />
- Les images descriptives apparaissent sans être répétés si le cadre est plus grand que prévu<br />',
'temps' => '1195599600',
'pseudo' => 'nemunaire',
),
30 =>
array (
'id' => '16',
'version' => '0.7',
'contenu' => '- File d\'attente pour le laboratoire fonctionnelle<br />
- Correction du nom court "vaisseaux de colo" en "vaisseau(x) de colonisation" dans le chantier spatial et l\'écran des flottes.<br />
- Correction de l\'inscription : on pouvais avoir une planète avec une position de plus de 12<br />
- Mise en évidence du message d\'impossibilité d\'envoyer de nouvelles flottes (limitation de slots)<br />
- Correction du bug de changement de nom des planètes<br />
- Transformation de l\'envoie des MP en templates<br />
- Correction des erreurs affichées dans le formulaire d\'envoi de MP<br />
- Correction de la possibilité de faire deux recherches identiques dans la même file d\'attente<br />
- Ajout d\'un message communs à toutes les pages<br />
- Correction des images des défenses<br />
- Modification de la description du "canon plasma"<br />
- Intégration des publicités Google<br />
- Correction d\'une faille de sécurité dans le système de validation de recherches<br />
- Modification de la template du laboratoire<br />',
'temps' => '1195513200',
'pseudo' => 'nemunaire',
),
31 =>
array (
'id' => '15',
'version' => '0.6d',
'contenu' => '- Affichage et suppression dans la file d\'attente de recherche correct<br />
<br />
- Modification de la base de données pour permettre la file d\'attente des recherches',
'temps' => '1194908400',
'pseudo' => 'nemunaire',
),
32 =>
array (
'id' => '14',
'version' => '0.6c',
'contenu' => '- Ajout du BBcode dans les MP<br />
- Correction des coordonnées de la planète dans le message de colonisation<br />
- Tous les bâtiments ont leur description détaillée<br />
- Correction des liens des bâtiments dans l\'arbre des technologies<br />
- Correction de la taille des blocs<br />
- Finalisation de la template du laboratoire<br />
- Modification possible du message d\'accueil<br />
- Ajout d\'avertissements automatiques en cas de maintenance<br />
- Correction de l\'oubli des retours à la ligne dans les rapports de bugs<br />
- Correction de la faille de sécurité dans les MP',
'temps' => '1194822000',
'pseudo' => 'némunaire',
),
33 =>
array (
'id' => '13',
'version' => '0.6b',
'contenu' => '- Correction dans les noms d\'utilisateurs des flottes<br />
- Correction de la construction du bâtiment chantier spatial<br />
- Ajout d\'erreurs avec style dans les options<br />
- Correction d\'une faille de sécurité dans les pages rapport de bug et renommer sa planète<br />
- Correction du bug empêchant de modifier le mot de passe<br />
- Correction de l\'impossibilité d\'envoyer un MP<br />
- Correction du captcha d\'identification<br />
- Correction du bug empêchant de modifier le nom de sa planète si le nom est vide<br />
- Ajout d\'un favicon<br />
- Correction de la suppression automatique des MP<br />
- Nouveau système de colonisation<br />
<br />
- Mise à jour de la base de données pour finaliser l\'isolement',
'temps' => '1194735600',
'pseudo' => 'némunaire',
),
34 =>
array (
'id' => '12',
'version' => '0.6a',
'contenu' => '- Ajout d\'un séparateur dans les grands nombres<br />
- Correction de l\'impossibilité de rechercher la recherche n°8<br />
- Mise à jour de la consommation<br />
- Finition du tableau des ressources/sélection de planètes<br />
- Mise en place de la reconduction de l\'isolement de la planète<br />
- Ajout de l\'isolement de la planète<br />
<br />
- Mise à jour de la base de données pour permettre l\'isolement des planètes',
'temps' => '1194649200',
'pseudo' => 'nemunaire',
),
35 =>
array (
'id' => '11',
'version' => '0.6',
'contenu' => '- Correction de l\'annulation des recherches<br />
- Correction du bug qui empêchait la colonisation<br />
- Correction de la recherche "Réacteur de fusion"<br />
- Limite de colonisation à 15 planètes<br />
- Vérifications avant le lancement de flotte<br />
- Pas de changement de page quand on change de planète<br />
- Ajout du fichier de sécurité dans toutes les pages<br />',
'temps' => '1194562800',
'pseudo' => 'nemunaire',
),
36 =>
array (
'id' => '10',
'version' => '5.0b',
'contenu' => '- Désactivation de register_global<br />
- Désactivation des magic_quotes<br />
- Mise en template de la page de départ<br />',
'temps' => '1194390000',
'pseudo' => 'nemunaire',
),
37 =>
array (
'id' => '9',
'version' => '0.5a<br />Béta 1',
'contenu' => '- Ajout de flèches pour se déplacer dans la carte spatiale<br />
- Correction de la validation des codes d\'activation<br />
- Vérification de la destination des flottes<br />
- Impossible de créer un bâtiment si l\'on a pas assez de ressource (même par l\'adresse URL)<br />
- Idem pour les vaisseaux et les recherches<br />
- Ajout d\'un rapport d\'attaque<br />
- Correction du rapport de colonie<br />
<br />
- Modification de la base de données sans intérêt pour cette version',
'temps' => '1194303600',
'pseudo' => 'nemunaire',
),
38 =>
array (
'id' => '8',
'version' => '0.5',
'contenu' => '- Ajout particulier ;) top secret ^^<br />
- Ajout de grade d\'authentification<br />
- Mise en template de la page des recherche<br />
- Ajout de la mission \'recyclage\' pour les vaisseaux<br />
<br />
- Modification de la base de données pour les grades d\'authentification et le contenu pour les flottes<br />',
'temps' => '1194217200',
'pseudo' => 'nemunaire',
),
39 =>
array (
'id' => '7',
'version' => '0.4a',
'contenu' => '- Ajout des descriptions pour les bâtiments, chantier spatial, chantier terrestre, caserne, défense<br />
- Désactivation de la page du chantier terrestre<br />
- Connexion impossible si le JavaScript n\'est pas activé<br />
- Désactivation de la page de la caserne<br />
- Affichage du jeu impossible sans s\'identifier<br />
- Augmentation de la protection lors de l\'identification<br />
- Correction de l\'affichage de l\'heure<br />
- Correction de l\'alignement au centre de toutes les pages d\'entrainement<br />
<br />
- Correction d\'un bug durant l\'annulation de la construction des batiments<br />
- Ajout de détails sur des batiments<br />
- Nouveau temps et consomations pour les flottes<br />
- Mise en place de la limite de contenu dans les vaisseaux<br />
- Augmentation de la sécurité lors de l\'identification.',
'temps' => '1194130800',
'pseudo' => 'nemunaire',
),
40 =>
array (
'id' => '6',
'version' => '0.4',
'contenu' => '- Fonctionnalité "attaquer" fonctionnelle pour les flottes<br />
- Nouvelles images : humains : M808B Scorpions MBT, M12 LRV Warthogs, 077-TC Pelican<br />
- Masquage du tableau des flottes en actions s\'il n\'y en a pas<br />
- Correction des actions "Tous les vaisseaux" et "Aucun vaisseau"<br />
- Création de flotte impossible sans vaisseau ou sans nom<br />
- Correction de la fonctionnalité "transporter" dans les flottes<br />
- Fonctionnalité "coloniser" opérationnelle<br />
<br />
Ajout de sécurité concernant le vol de session (sécurité pas encore active)',
'temps' => '1193958000',
'pseudo' => 'nemunaire',
),
41 =>
array (
'id' => '5',
'version' => '0.3a',
'contenu' => '- Ajout d\'une notification sur la page de départ lorsque l\'on a des messages non lus<br />
- Correction des problèmes d\'alignement et de couleur des tableaux de production<br />
- Finalisation du système d\'inscription<br />
- Correction du vaisseaux grand-transporteur qui n\'était pas construit<br />
- Correction de "Ecole militaire" en "Caserne" dans l\'arbre des technologie<br />
- Amélioration de la page des versions en page dynamique<br />
- Nouvelles images : humains : Chantier terrestre, chantier spatial, technologie armement<br />
- Restauration d\'une ancienne image : humains : chantier spatial<br />
<br />
Modification de la base de données en vue de nouvelles fonctionnalités pour les flottes.',
'temps' => '1193871600',
'pseudo' => 'nemunaire',
),
42 =>
array (
'id' => '4',
'version' => '0.3',
'contenu' => '- Ajout de l\'image de fond<br />
- Alignement au centre du tableau des pages : bâtiments, caserne, chantier spatial, chantier terrestre, défenses, laboratoire<br />
- Ajout de 3 images de planètes et modification du script d\'inscription pour<br />
- Fonctionnalité "Transporter" et "stationner" opérationnelle pour les flottes',
'temps' => '1193785200',
'pseudo' => 'nemunaire',
),
43 =>
array (
'id' => '3',
'version' => '0.2<br />Alpha 1',
'contenu' => 'Modifications :<br />
- Ajout du nouveau design ( au fur et a mesure ).<br />
- Augmentation des ressources.<br />
<br />
Corrections :<br />
- Correction du bug du cristal.
',
'temps' => '1193921270',
'pseudo' => 'terao',
),
44 =>
array (
'id' => '2',
'version' => '0.1',
'contenu' => 'Modifications :<br />
- Ajout de milliers de choses utiles.<br />
<br />
Corrections :<br />
- Correction de plein de bugs.<br />
',
'temps' => '1193921239',
'pseudo' => 'terao',
),
45 =>
array (
'id' => '1',
'version' => '0.0',
'contenu' => 'Commencement du projet Halo Battle.
',
'temps' => '1193916768',
'pseudo' => 'terao',
),
); ?>

View file

@ -1,152 +0,0 @@
<?php $cache = array (
'var' =>
array (
'serveur_name' => 'Béta #1',
'version' => '1.12 Alpha',
'vitesse' => '10',
'flottes' => '1',
'attaques' => '1',
'time_maintenance' => '20000',
'galaxie' => '1',
'nb_amas' => '1',
'nb_systeme' => '99',
'nb_planete' => '12',
'first_page' => 'index.php',
'url_images' => '',
'db_prefix' => '',
'mail_admin' => 'admin@halo-battle.s-fr.com',
'mail_support' => 'technique@halo-battle.s-fr.com',
'link' =>
array (
'self' => './',
'accueil' => 'http://www.halo-battle.fr/',
'blog' => 'http://www.halo-battle.fr/ark/',
'jeu' => 'http://www.halo-battle.fr/',
'inscription' => 'http://www.halo-battle.fr/register',
'forum' => 'http://www.halo-battle.fr/forum/',
'operateur' => '?p=operateur',
),
'menu' =>
array (
'accueil' => '?p=accueil',
'courrier' => '?p=courrier',
'webmail' => 'http://panel-admin.s-fr.com/tools/webmail/src/login.php',
'vip' => '?p=vip',
'vflottes' => '?p=vflottes',
'vplanetes' => '?p=vplanetes',
'vjoueurs' => '?p=vjoueurs',
'valliances' => '?p=valliances',
'vrapports' => '?p=vrapports',
'sjoueurs' => '?p=sjoueurs',
'sancp' => '?p=sancp',
'cjoueurs' => '?p=cjoueurs',
'djoueurs' => '?p=djoueurs',
'inscription' => '?p=inscription',
'bandeau' => '?p=bandeau',
'demarrage' => '?p=demarrage',
'versions' => '?p=version',
),
'chrono' => '<!--Page générée en: $ secondes.-->',
),
'env' =>
array (
'auth' => '0',
'ignore_user_abort' => '1',
'error_level' => '6143',
'header' =>
array (
'Content-Type' => 'text/html;charset=utf-8',
),
'ini' =>
array (
'allow_url_fopen' => '0',
'allow_url_include' => '0',
'display_errors' => '1',
'display_startup_errors' => '1',
'magic_quotes_runtime' => '0',
'magic_quotes_sybase' => '0',
'memory_limit' => '64M',
'log_errors' => '1',
),
'log_php' => '1',
'locale' =>
array (
0 => 'fr_FR.UTF8',
1 => 'fr.UTF8',
2 => 'fr_FR.UTF-8',
3 => 'fr.UTF-8',
),
),
'root' => '/var/www/halo-battle/htdocs/',
'modules' =>
array (
0 => 'db',
1 => 'session',
2 => 'lang',
3 => 'bbcode',
4 => 'templates',
5 => 'pistage',
),
'opt' =>
array (
'db' =>
array (
'type' => 'mysql',
'profile' => 'default',
'log' => '0',
'crypt' => '',
'no_connection' => 'Connexion &agrave; la base de donn&eacute;e impossible',
),
'session' =>
array (
'active' => '1',
'time' => '3600',
'maxip' => '20',
'cookie' => 'hbsession',
'db' =>
array (
'table' => 'sessions',
),
),
'lang' =>
array (
'type' => 'fr',
),
'bbcode' =>
array (
'smiley_dir' => './images/smile/',
'smiley' =>
array (
'wink' => ':wink:',
'biggrin' => ':D',
'smile' => ':-)',
'razz' => ':P',
'eek' => ':shock:',
'cool' => '8-)',
'twisted' => ':twisted:',
'evil' => ':evil:',
'mad' => ':-x',
'confused' => ':-?',
'sad' => ':-(',
'surprised' => ':-O',
'neutral' => ':-|',
'redface' => ':oops:',
'rolleyes' => ':roll:',
'lol' => ':lol:',
),
),
'templates' =>
array (
'tpl' => '',
'compile' => 'modules/templates/compile/',
'config' => 'modules/templates/config/',
'cache' => 'modules/templates/cache/',
'profile' => 'default',
),
'pistage' =>
array (
'ips' => '82.245.190.225;84.101.175.59;86.214.198.131',
),
),
'check' => '27fea96d5af3067bdfe2c679ca02fc44ecd1e0f21d456e436e480e7597dd521c',
); ?>

View file

@ -1,161 +0,0 @@
<?php $cache = array (
'var' =>
array (
'serveur_name' => 'Béta #1',
'version' => '1.12 Alpha',
'vitesse' => '10',
'flottes' => '1',
'attaques' => '1',
'time_maintenance' => '20000',
'galaxie' => '1',
'nb_amas' => '1',
'nb_systeme' => '99',
'nb_planete' => '12',
'first_page' => 'index.php',
'url_images' => '',
'db_prefix' => '',
'mail_admin' => 'admin@halo-battle.s-fr.com',
'mail_support' => 'technique@halo-battle.s-fr.com',
'link' =>
array (
'self' => './',
'accueil' => 'http://www.halo-battle.fr/',
'blog' => 'http://www.halo-battle.fr/ark/',
'jeu' => 'http://www.halo-battle.fr/',
'inscription' => 'http://www.halo-battle.fr/register',
'forum' => 'http://www.halo-battle.fr/forum/',
'operateur' => '?p=operateur',
),
'menu' =>
array (
'accueil' => '?p=accueil',
'operateur' => '?p=operateur',
'batiments' => '?p=batiments',
'caserne' => '?p=caserne',
'chantierspatial' => '?p=chantierspatial',
'chantierterrestre' => '?p=chantierterrestre',
'defenses' => '?p=defenses',
'laboratoire' => '?p=laboratoire',
'arbre' => '?p=arbre',
'ressources' => '?p=ressources',
'gestion' => '?p=gestion',
'marche' => '?p=marche',
'bourse' => '?p=bourse',
'flotte' => '?p=flotte',
'armee' => '?p=prochainement',
'carte' => '?p=carte',
'options' => '?p=options',
'messages' => '?p=messagerie',
'envoie' => '?p=envoyer',
'alliance' => '?p=alliances',
'classement' => '?p=classement',
'chat' => '?p=chat',
'forums' => 'http://www.halo-battle.fr/forum/',
'bugs' => 'http://www.halo-battle.fr/tester/',
'faq' => '?p=faq',
'deconnexion' => '?p=deconnexion',
),
'chrono' => '<!--Page générée en: $ secondes.-->',
),
'env' =>
array (
'auth' => '0',
'ignore_user_abort' => '1',
'error_level' => '6143',
'header' =>
array (
'Content-Type' => 'text/html;charset=utf-8',
),
'ini' =>
array (
'allow_url_fopen' => '0',
'allow_url_include' => '0',
'display_errors' => '1',
'display_startup_errors' => '1',
'magic_quotes_runtime' => '0',
'magic_quotes_sybase' => '0',
'memory_limit' => '64M',
'log_errors' => '1',
),
'log_php' => '1',
'locale' =>
array (
0 => 'fr_FR.UTF8',
1 => 'fr.UTF8',
2 => 'fr_FR.UTF-8',
3 => 'fr.UTF-8',
),
),
'root' => '/var/www/halo-battle/htdocs/',
'modules' =>
array (
0 => 'db',
1 => 'session',
2 => 'lang',
3 => 'bbcode',
4 => 'templates',
5 => 'pistage',
),
'opt' =>
array (
'db' =>
array (
'type' => 'mysql',
'profile' => 'default',
'log' => '0',
'crypt' => '',
'no_connection' => 'Connexion &agrave; la base de donn&eacute;e impossible',
),
'session' =>
array (
'active' => '1',
'time' => '3600',
'maxip' => '20',
'cookie' => 'hbsession',
'db' =>
array (
'table' => 'sessions',
),
),
'lang' =>
array (
'type' => 'fr',
),
'bbcode' =>
array (
'smiley_dir' => './images/smile/',
'smiley' =>
array (
'wink' => ':wink:',
'biggrin' => ':D',
'smile' => ':-)',
'razz' => ':P',
'eek' => ':shock:',
'cool' => '8-)',
'twisted' => ':twisted:',
'evil' => ':evil:',
'mad' => ':-x',
'confused' => ':-?',
'sad' => ':-(',
'surprised' => ':-O',
'neutral' => ':-|',
'redface' => ':oops:',
'rolleyes' => ':roll:',
'lol' => ':lol:',
),
),
'templates' =>
array (
'tpl' => '',
'compile' => 'modules/templates/compile/',
'config' => 'modules/templates/config/',
'cache' => 'modules/templates/cache/',
'profile' => 'default',
),
'pistage' =>
array (
'ips' => '82.245.190.225;84.101.175.59;86.214.198.131',
),
),
'check' => '27fea96d5af3067bdfe2c679ca02fc44ecd1e0f21d456e436e480e7597dd521c',
); ?>

View file

@ -1,25 +0,0 @@
<?php $cache = array (
'count' =>
array (
0 => '15',
1 => '15',
2 => 'cette',
3 => '1',
),
'infos' =>
array (
0 =>
array (
'id' => '5',
'texte' => 'TEST',
'color' => '',
),
1 =>
array (
'id' => '1',
'texte' => 'DEFENDREZ-VOUS L\'HUMANITE OU LA DETRUIREZ-VOUS',
'color' => 'yellow',
),
),
'messagedemarrage' => 'Weekly du 2 juillet 2009',
); ?>

File diff suppressed because one or more lines are too long

View file

@ -1,161 +0,0 @@
<?php $cache = array (
'var' =>
array (
'serveur_name' => 'Béta #1',
'version' => '1.12 Alpha',
'vitesse' => '10',
'flottes' => '1',
'attaques' => '1',
'time_maintenance' => '20000',
'galaxie' => '1',
'nb_amas' => '1',
'nb_systeme' => '99',
'nb_planete' => '12',
'first_page' => 'index.php',
'url_images' => '',
'db_prefix' => '',
'mail_admin' => 'admin@halo-battle.s-fr.com',
'mail_support' => 'technique@halo-battle.s-fr.com',
'link' =>
array (
'self' => './',
'accueil' => 'http://www.halo-battle.fr/',
'blog' => 'http://www.halo-battle.fr/ark/',
'jeu' => 'http://www.halo-battle.fr/',
'inscription' => 'http://www.halo-battle.fr/register',
'forum' => 'http://www.halo-battle.fr/forum/',
'operateur' => '?p=operateur',
),
'menu' =>
array (
'accueil' => '?p=accueil',
'operateur' => '?p=operateur',
'batiments' => '?p=batiments',
'caserne' => '?p=caserne',
'chantierspatial' => '?p=chantierspatial',
'chantierterrestre' => '?p=chantierterrestre',
'defenses' => '?p=defenses',
'laboratoire' => '?p=laboratoire',
'arbre' => '?p=arbre',
'ressources' => '?p=ressources',
'gestion' => '?p=gestion',
'marche' => '?p=marche',
'bourse' => '?p=bourse',
'flotte' => '?p=flotte',
'armee' => '?p=prochainement',
'carte' => '?p=carte',
'options' => '?p=options',
'messages' => '?p=messagerie',
'envoie' => '?p=envoyer',
'alliance' => '?p=alliances',
'classement' => '?p=classement',
'chat' => '?p=chat',
'forums' => 'http://www.halo-battle.fr/forum/',
'bugs' => 'http://www.halo-battle.fr/tester/',
'faq' => '?p=faq',
'deconnexion' => '?p=deconnexion',
),
'chrono' => '<!--Page générée en: $ secondes.-->',
),
'env' =>
array (
'auth' => '0',
'ignore_user_abort' => '1',
'error_level' => '6143',
'header' =>
array (
'Content-Type' => 'text/html;charset=utf-8',
),
'ini' =>
array (
'allow_url_fopen' => '0',
'allow_url_include' => '0',
'display_errors' => '1',
'display_startup_errors' => '1',
'magic_quotes_runtime' => '0',
'magic_quotes_sybase' => '0',
'memory_limit' => '64M',
'log_errors' => '1',
),
'log_php' => '1',
'locale' =>
array (
0 => 'fr_FR.UTF8',
1 => 'fr.UTF8',
2 => 'fr_FR.UTF-8',
3 => 'fr.UTF-8',
),
),
'root' => '/var/www/halo-battle/htdocs/',
'modules' =>
array (
0 => 'db',
1 => 'session',
2 => 'lang',
3 => 'bbcode',
4 => 'templates',
5 => 'pistage',
),
'opt' =>
array (
'db' =>
array (
'type' => 'mysql',
'profile' => 'default',
'log' => '0',
'crypt' => '',
'no_connection' => 'Connexion &agrave; la base de donn&eacute;e impossible',
),
'session' =>
array (
'active' => '1',
'time' => '3600',
'maxip' => '20',
'cookie' => 'hbsession',
'db' =>
array (
'table' => 'sessions',
),
),
'lang' =>
array (
'type' => 'fr',
),
'bbcode' =>
array (
'smiley_dir' => './images/smile/',
'smiley' =>
array (
'wink' => ':wink:',
'biggrin' => ':D',
'smile' => ':-)',
'razz' => ':P',
'eek' => ':shock:',
'cool' => '8-)',
'twisted' => ':twisted:',
'evil' => ':evil:',
'mad' => ':-x',
'confused' => ':-?',
'sad' => ':-(',
'surprised' => ':-O',
'neutral' => ':-|',
'redface' => ':oops:',
'rolleyes' => ':roll:',
'lol' => ':lol:',
),
),
'templates' =>
array (
'tpl' => '',
'compile' => 'modules/templates/compile/',
'config' => 'modules/templates/config/',
'cache' => 'modules/templates/cache/',
'profile' => 'default',
),
'pistage' =>
array (
'ips' => '82.245.190.225;84.101.175.59;86.214.198.131',
),
),
'check' => '27fea96d5af3067bdfe2c679ca02fc44ecd1e0f21d456e436e480e7597dd521c',
); ?>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<configs active="1" root="/var/www/halo-battle/htdocs/" cache="1">
<configs active="1" root="/home/battlehalo/halobattle.fr/beta/htdocs/" cache="1">
<config match="admin.php">
<var name="menu">
<var name="accueil">?p=accueil</var>
@ -23,23 +23,23 @@
</config>
<config match="*">
<var name="serveur_name">Béta #1</var>
<var name="version">1.12 Alpha</var>
<var name="version">1.13 Béta</var>
<var name="vitesse">10</var>
<var name="flottes">1</var> <!-- Les flottes sont activées -->
<var name="attaques">1</var> <!-- Les attaques sont activées -->
<var name="attaques">0</var> <!-- Les attaques sont activées -->
<var name="time_maintenance">20000</var> <!-- Heure de génération du classement et des tâches cron -->
<var name="galaxie">1</var> <!-- Numéro de la galaxie -->
<var name="nb_amas">1</var> <!-- Nombre d'amas dans la galaxie -->
<var name="nb_systeme">99</var> <!-- Nombre de système dans chaque amas -->
<var name="nb_planete">12</var> <!-- Nombre de planètes par systèmes -->
<var name="first_page">index.php</var> <!-- Page principale -->
<var name="url_images"></var> <!-- Adresse du serveur d'images et de contenu -->
<var name="url_images">http://content.halo-battle.fr/</var> <!-- Adresse du serveur d'images et de contenus -->
<var name="db_prefix"></var> <!-- Préfixe des tables dans la base de données -->
<var name="mail_admin">admin@halo-battle.s-fr.com</var>
<var name="mail_support">technique@halo-battle.s-fr.com</var>
<var name="mail_admin">admin@halo-battle.fr</var>
<var name="mail_support">technique@halo-battle.fr</var>
<var name="link">
<var name="self">./</var>
<var name="accueil">http://www.halo-battle.fr/</var>
@ -48,8 +48,10 @@
<var name="inscription">http://www.halo-battle.fr/register</var>
<var name="forum">http://www.halo-battle.fr/forum/</var>
<var name="operateur">?p=operateur</var>
<var name="oubliemdp">?p=oubliemdp</var>
</var>
<var name="menu">
<var name="accueil">?p=accueil</var>
<var name="operateur">?p=operateur</var>
@ -62,6 +64,7 @@
<var name="arbre">?p=arbre</var>
<var name="ressources">?p=ressources</var>
<var name="gestion">?p=gestion</var>
<var name="diplomatie">?p=diplomatie</var>
<var name="marche">?p=marche</var>
<var name="bourse">?p=bourse</var>
<var name="flotte">?p=flotte</var>
@ -69,14 +72,17 @@
<var name="carte">?p=carte</var>
<var name="options">?p=options</var>
<var name="messages">?p=messagerie</var>
<var name="envoie">?p=envoyer</var>
<var name="alli_messagerie">?p=alli_messagerie</var>
<var name="envoie">?p=messagerie&amp;n=send</var>
<var name="alliance">?p=alliances</var>
<var name="alli_chat">?p=alli_chat</var>
<var name="classement">?p=classement</var>
<var name="chat">?p=chat</var>
<var name="forums">http://www.halo-battle.fr/forum/</var>
<var name="bugs">http://www.halo-battle.fr/tester/</var>
<var name="bugs">http://issues.halo-battle.fr/</var>
<var name="faq">?p=faq</var>
<var name="deconnexion">?p=deconnexion</var>
<var name="pilori">?p=pilori</var>
</var>
<!--
<var name="rewrite_url">
@ -85,7 +91,7 @@
</var>
-->
<var name="chrono"><![CDATA[<!--Page générée en: $ secondes.-->]]></var>
<env option="auth">0</env>
<env option="ignore_user_abort">1</env>
<env option="error_level">6143</env>
@ -109,7 +115,7 @@
<env option="2">fr_FR.UTF-8</env>
<env option="3">fr.UTF-8</env>
</env>
<module name="db">
<option name="type">mysql</option>
<option name="profile">default</option>
@ -117,7 +123,7 @@
<option name="crypt"></option>
<option name="no_connection"><![CDATA[Connexion &agrave; la base de donn&eacute;e impossible]]></option>
</module>
<module name="session">
<option name="active">1</option>
<option name="time">3600</option>
@ -127,9 +133,9 @@
<option name="table">sessions</option>
</option>
</module>
<module name="lang" />
<module name="bbcode" />
<module name="templates">
@ -139,13 +145,13 @@
<option name="cache">modules/templates/cache/</option>
</module>
<!--<module name="fermerServeur">
<option name="type">1</option><!- 1: mise à jour prévue ; 2: mise à jour exceptionnelle ->
<option name="temps">900</option> <!- temps en secondes ->
</module>-->
<module name="fermerServeur">
<option name="type">1</option><!-- 1: mise à jour prévue ; 2: mise à jour exceptionnelle -->
<option name="temps">1300</option> <!-- temps en secondes -->
</module>
<module name="pistage">
<option name="ips">82.245.190.225;84.101.175.59;86.214.198.131</option>
</module>
</config>
</configs>
</configs>

View file

@ -2,9 +2,9 @@
if(!defined('ONYX')) exit;
$___profile['db'] = 'halo_battle';
$___profile['db'] = 'hb_game_beta';
$___profile['host'] = 'localhost';
$___profile['user'] = 'root';
$___profile['pass'] = 'rmss169';
$___profile['pass'] = '';
?>

View file

@ -0,0 +1,22 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
if (!empty($_POST["req"]))
$req = gpc("req", "post");
elseif (!empty($_GET["req"]))
$req = gpc("req");
else
$req = "SHOW TABLES;";
$bdd = new BDD();
$template->assign("reponses", $bdd->query($req));
$template->assign("erreur", $bdd->erreur());
$template->assign("affected", $bdd->affected());
$bdd->deconnexion();
if (eregi("show tables", $req))
$template->assign("lien", "SELECT * FROM ");
$pagea = 'bdd';
$titre = 'Administration de la base de données';
?>

View file

@ -1,17 +1,20 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$titre = 'Création d\'inscription';
$pagea = 'inscription';
$titre = "Création d'inscription";
$pagea = "inscription";
if (!empty($_POST['HB_pseudo']) && !empty($_POST['race']))
if (!empty($_POST["HB_pseudo"]) && !empty($_POST["race"]))
{
if (empty($_POST["HB_conf"]) && empty($_POST["HB_mdp"]))
$_POST["HB_mdp"] = $_POST["HB_conf"] = gen_mdp(9);
if ($_POST['HB_conf'] == $_POST['HB_mdp'] && !empty($_POST['HB_mdp']))
{
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 !');
$_POST['HB_mdp'] = cxor(gpc("HB_mdp", "post"), sha1(gpc("HB_pseudo", "post").'£'.gpc("race", "post")));
$cds = sha1(gpc("HB_pseudo", "post").'$'.gpc("race", "post").'£'.gpc("HB_mdp", "post").'#'.gpc("HB_mail", "post").'ß'.time().'Ó'.$_SERVER['HTTP_USER_AGENT'].'♀☻'.$_SERVER['REMOTE_ADDR'].gpc("HB_placement", "post"));
erreur('MDP: <em>'.gpc("HB_conf", "post").'</em><br />URL : <a href="?p=njoueur&amp;nom='.gpc("HB_pseudo", "post").'&amp;race='.gpc("race", "post").'&amp;mdp='.strhex(gpc("HB_mdp", "post")).'&amp;mail='.gpc("HB_mail", "post").'&amp;ti='.time().'&amp;placement='.gpc("HB_placement", "post").'&amp;cds='.$cds.'">Lien</a><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 !');
}
?>

View file

@ -4,32 +4,51 @@ $pagea = 'vip';
$titre = 'Vérification IP';
$timelimit = date('Y-m-d', mktime(0, 0, 0, date("m"), date("d"), date("Y"))); //2008-06-17 18:15:00
$chapeau->connexion();
$page = gpc('v');
if (empty($page) || !is_numeric($page)) $page = 0;
if (empty($page) || !is_numeric($page))
$page = 0;
$act = gpc('act');
if ($act == 'multiok') $chapeau->query("UPDATE $table_user SET multi = '1' WHERE id = ".$_GET['util'].";");
if ($act == 'multiok')
{
$bdd = new BDD();
$user = intval(gpc('util'));
$bdd->query("UPDATE $table_user SET multi = '1' WHERE id = ".$user.";");
$bdd->deconnexion();
unset($user);
}
if (isset($_GET['ip'])) $req = mysql_query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE ip = '".$_GET['ip']."' ORDER BY ip ASC;");
elseif (isset($_GET['util']) && isset($_GET['comp'])) $req = mysql_query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE id_util = ".$_GET['util']." OR id_util = ".$_GET['comp']." ORDER BY ip ASC;");
elseif (isset($_GET['util'])) $req = mysql_query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE id_util = '".$_GET['util']."' ORDER BY ip ASC;");
elseif (isset($_GET['tri'])) $req = mysql_query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id ORDER BY ".$_GET['tri']." ASC;");
else $req = mysql_query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE R.time > '$timelimit 00:00:00' ORDER BY R.ip ASC LIMIT ".($page*75).",75;");
$bdd = new BDD();
if (isset($_GET['ip']))
$req = $bdd->query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE ip = '".gpc('ip')."' ORDER BY ip ASC;");
elseif (isset($_GET['util']) && isset($_GET['comp']))
$req = $bdd->query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE id_util = ".intval(gpc('util'))." OR id_util = ".intval(gpc('comp'))." ORDER BY ip ASC;");
elseif (isset($_GET['util']))
$req = $bdd->query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE id_util = '".intval(gpc('util'))."' ORDER BY ip ASC;");
elseif (isset($_GET['tri']))
$req = $bdd->query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id ORDER BY ".gpc('tri')." ASC;");
else
$req = $bdd->query("SELECT R.id, R.id_util, R.time, R.ip, U.pseudo, U.mv, U.multi FROM $table_registre_identification R INNER JOIN $table_user U ON R.id_util = U.id WHERE R.time > '$timelimit 00:00:00' ORDER BY R.ip ASC LIMIT ".($page*75).",75;");
//SELECT last_ip,COUNT(*) FROM user GROUP BY last_ip HAVING COUNT(*)>1
$nbpage = $chapeau->unique_query("SELECT COUNT(id) AS nb FROM $table_registre_identification WHERE time > '$timelimit 00:00:00';");
$chapeau->deconnexion();
$nbpage = $bdd->unique_query("SELECT COUNT(id) AS nb FROM $table_registre_identification WHERE time > '$timelimit 00:00:00';");
$bdd->deconnexion();
$anc = array('ip' => 0, 'id_util' => 0);
$tableau = array();
while($resultat = mysql_fetch_array($req)) {
if ($resultat['mv'] == 3) $color = 'DFBF00';
elseif ($resultat['multi'] == 1 && $anc['ip'] == $resultat['ip'] && $anc['id_util'] != $resultat['id_util']) $color = 'EE66EE';
elseif ($anc['ip'] == $resultat['ip'] && $anc['id_util'] != $resultat['id_util']) $color = 'FF0000';
else $color = false;
$tableau[] = array($resultat['ip'], 'absent pour plus de rapidité'/*gethostbyaddr($resultat['ip'])*/, $resultat['id_util'], $resultat['pseudo'], $resultat['time'], $resultat['mv'], $color);
$anc = $resultat;
}
foreach($req as $resultat)
{
if ($resultat['mv'] == 3)
$color = 'DFBF00';
elseif ($resultat['multi'] == 1 && $anc['ip'] == $resultat['ip'] && $anc['id_util'] != $resultat['id_util'])
$color = 'EE66EE';
elseif ($anc['ip'] == $resultat['ip'] && $anc['id_util'] != $resultat['id_util'])
$color = 'FF0000';
else
$color = false;
$tableau[] = array($resultat['ip'], 'absent pour plus de rapidité'/*gethostbyaddr($resultat['ip'])*/, $resultat['id_util'], $resultat['pseudo'], $resultat['time'], $resultat['mv'], $color);
$anc = $resultat;
}
$template->assign('ips', $tableau);
$template->assign('numpage', $page);
$template->assign('nbpage', floor($nbpage['nb']/75));

View file

@ -1,52 +1,98 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$pagea = 'print';
$titre = 'Vérification joueur';
$titre = 'V&eacute;rification joueur';
$template->assign('linkpage', 'vjoueurs');
if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id') {
$pagea = 'print_key';
$id_plan = $_GET['id'];
$key = $_GET['key'];
$chapeau->connexion();
$chapeau->escape($id_plan);
$chapeau->escape($key);
$reqJ = $chapeau->unique_query("SELECT * FROM $table_user WHERE id = '$id_plan';");
$req = $chapeau->unique_query("DESCRIBE $table_user $key;");
$chapeau->deconnexion();
$template->assign('tableau', $reqJ);
$template->assign('type', explode('(', $req['Type']));
$template->assign('idPlan', $id_plan);
$template->assign('key', $_GET['key']);
}
elseif (!empty($_GET['id'])) {
$id_plan = $_GET['id'];
if (isset($_POST['key']) && isset($_POST['mod'])) {
$key = $_POST['key'];
$mod = $_POST['mod'];
$chapeau->connexion();
$chapeau->escape($mod);
$chapeau->escape($id_plan);
$chapeau->query("UPDATE $table_user SET $key = '$mod' WHERE id = '$id_plan';");
$chapeau->deconnexion();
//Changement du nom d'utilisateur
if (!empty($_GET['id']) && !empty($_POST['key']) && !empty($_POST['mod']) && $_POST['key'] == 'pseudo')
{
$id_plan = intval(gpc('id'));
$mod = gpc('mod', 'post');
$liste = "abcdefghijklmnopqrstuvwxyz./!*123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$code = '';
while(strlen($code) <= 8)
$code .= $liste[rand(0,64)];
$mdp = mdp($mod, $code);
$bdd = new BDD();
$reqMail = $bdd->unique_query("SELECT mail FROM $table_user WHERE id = $id_plan;");
$bdd->escape($mod);
$reqPseudo = $bdd->query("SELECT mail FROM $table_user WHERE pseudo = '$mod';");
if ($reqPseudo !== NULL)
erreur('Nom d\'utilisateur d&eacute;jà utilis&eacute;. Impossible de faire le changement !');
$bdd->query("UPDATE $table_user SET pseudo = '$mod', mdp = '".$mdp[0]."', mdp_var = '".$mdp[1]."' WHERE id = $id_plan;");
$bdd->deconnexion();
if(send_mail($reqMail['mail'], "Nouveau nom d'utilisateur", "Bonjour ".$mod.",\n\nVous recevez ce mail suite au changement de votre nom d'utilisateur sur le serveur ".$VAR["serveur_name"].".\nCe changement a été effectué par un opérateur de la galaxie, sur votre demande ou dans le cadre des règles du jeu.\nDe plus, pour votre sécurité, un nouveau mot de passe vous a été automatiquement attribué.\n\nVos nouvelles informations personnelles sont les suivantes :\n\tNom d'utilisateur : ".$mod."\n\tMot de passe : '.$code.'\n\nVotre ancien nom d'utilisateur et mot de passe ne sont plus valide à partir de maintenant et vous devez utiliser les données ci-dessus pour vous connecter.\n\nSi vous rencontrez des problèmes suites à ce changement, n'hésitez pas à contacter l'opérateur qui suivit votre demande.\n\nPour votre sécurité, nous vous rappelons qu'il est dangeureux de conserver un mail contenant des données personnelles. Pensez donc à supprimer ce mail une fois que vous vous serez connecté au jeu.\n\nL'équipe d'Halo-Battle"))
erreur("Nom d'utilisateur mis à jour avec succès. Un mail a &eacute;t&eacute; envoy&eacute; à l'utilisateur contenant un nouveau mot de passe.", "green");
else
erreur("Une erreur est survenue lors de l'envoie du mail.");
}
$chapeau->connexion();
$req = $chapeau->unique_query("SELECT * FROM $table_user WHERE id = '$id_plan';");
$chapeau->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_plan);
}
elseif (!empty($_GET['name'])) {
$name = $_GET['name'];
$chapeau->connexion();
$chapeau->escape($name);
$req = $chapeau->unique_query("SELECT * FROM $table_user WHERE pseudo = '$name';");
$chapeau->deconnexion();
header('Location: admin.php?p=vjoueurs&id='.$req['id']);
exit;
}
else {
//Changement du mot de passe
elseif (!empty($_GET['id']) && !empty($_POST['key']) && !empty($_POST['mod']) && $_POST['key'] == 'mdp')
{
$id_plan = intval(gpc('id'));
$mod = gpc('mod', 'post');
$bdd = new BDD();
$req = $bdd->unique_query("SELECT pseudo, mdp_var FROM $table_user WHERE id = $id_plan;");
$mdp = mdp($req["pseudo"], $mod, $req["mdp_var"]);
$bdd->query("UPDATE $table_user SET mdp = '$mdp' WHERE id = $id_plan;");
$bdd->deconnexion();
erreur("Mot de passe changé avec succès.<br />Pensez à avertir l'utilisateur de ce changement !", "green");
}
elseif (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id' && $_GET['key'] != 'mdpNOUV' && $_GET['key'] != 'auth_level' && $_GET['key'] != 'mdp_var')
{
$pagea = 'print_key';
$id_plan = intval(gpc('id'));
$key = gpc('key');
$bdd = new BDD();
$bdd->escape($key);
$reqJ = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id_plan;");
$req = $bdd->unique_query("DESCRIBE $table_user $key;");
$bdd->deconnexion();
$template->assign('tableau', $reqJ);
$template->assign('type', explode('(', $req['Type']));
$template->assign('idPlan', $id_plan);
$template->assign('key', $key);
}
elseif (!empty($_GET['id']))
{
$id_plan = intval(gpc('id'));
if (isset($_POST['key']) && isset($_POST['mod']))
{
$key = gpc('key', 'post');
$mod = gpc('mod', 'post');
$bdd = new BDD();
$bdd->escape($mod);
$bdd->escape($key);
$bdd->query("UPDATE $table_user SET $key = '$mod' WHERE id = $id_plan;");
$bdd->deconnexion();
}
$bdd = new BDD();
$req = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id_plan;");
$bdd->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_plan);
}
elseif (!empty($_GET['name']))
{
$name = gpc('name');
$bdd = new BDD();
$bdd->escape($name);
$req = $bdd->unique_query("SELECT * FROM $table_user WHERE pseudo = '$name';");
$bdd->deconnexion();
header('Location: admin.php?p=vjoueurs&id='.$req['id']);
exit;
}
else
$pagea = 'print_choixU';
}
?>

View file

@ -0,0 +1,24 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$pagea = 'mail_mass';
$titre = 'Envoie de mail en masse aux joueurs de la galaxie';
$template->assign('linkpage', 'mail_mass');
if (!empty($_POST['sujet']) || !empty($_POST['message'])) {
$sujet = "Halo-Battle :: ".gpc('sujet', 'post');
$message = gpc('message', 'post');
$bdd = new BDD();
$users = $bdd->query("SELECT pseudo, mail FROM $table_user;");
$bdd->deconnexion();
foreach($users as $user)
{
$messageJ = str_replace('$pseudo', $user["pseudo"], $message);
send_mail($user["mail"], $sujet, $messageJ);
//print 'Mail : '.$user["mail"].' ; sujet : '.$sujet.' ; message : '.$messageJ.'<br />';
}
erreur("Tous les mails ont été envoyés avec succès.", "green");
}
?>

View file

@ -5,61 +5,73 @@ $titre = 'Vérification planète';
$template->assign('linkpage', 'vplanetes');
if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] == 'hash_planete') {
$id_plan = $_GET['id'];
$chapeau->connexion();
$chapeau->query("UPDATE $table_planete SET hash_planete = SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)) WHERE id = $id_plan;");
if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] == 'hash_planete')
{
$id_plan = intval(gpc('id'));
$bdd = new BDD();
$bdd->query("UPDATE $table_planete SET hash_planete = SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)) WHERE id = $id_plan;");
$req = $chapeau->unique_query("SELECT * FROM $table_planete WHERE id = $id_plan;");
$chapeau->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_plan);
}
elseif (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id') {
$pagea = 'print_key';
$id_plan = $_GET['id'];
$key = $_GET['key'];
$chapeau->connexion();
$chapeau->escape($id_plan);
$chapeau->escape($key);
$reqp = $chapeau->unique_query("SELECT * FROM $table_planete WHERE id = '$id_plan';");
$req = $chapeau->unique_query("DESCRIBE $table_planete $key;");
$chapeau->deconnexion();
$template->assign('tableau', $reqp);
$template->assign('type', explode('(', $req['Type']));
$template->assign('idPlan', $id_plan);
$template->assign('key', $_GET['key']);
}
elseif (!empty($_GET['id'])) {
$id_plan = $_GET['id'];
if (isset($_POST['key']) && isset($_POST['mod']) && $_POST['key'] != 'id') {
$key = $_POST['key'];
$mod = $_POST['mod'];
$chapeau->connexion();
$chapeau->escape($mod);
$chapeau->query("UPDATE $table_planete SET $key = '$mod' WHERE id = $id_plan;");
$chapeau->deconnexion();
$req = $bdd->unique_query("SELECT * FROM $table_planete WHERE id = $id_plan;");
$bdd->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_plan);
}
$chapeau->connexion();
$req = $chapeau->unique_query("SELECT * FROM $table_planete WHERE id = $id_plan;");
$chapeau->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_plan);
}
elseif (isset($_GET['amas']) && isset($_GET['ss']) && !empty($_GET['pos'])) {
$amas = $_GET['amas'];
$ss = $_GET['ss'];
$pos = $_GET['pos'];
$chapeau->connexion();
$chapeau->escape($amas);
$chapeau->escape($ss);
$chapeau->escape($pos);
$req = $chapeau->unique_query("SELECT * FROM $table_planete WHERE galaxie = '$amas' AND ss = '$ss' AND position = '$pos';");
$chapeau->deconnexion();
header('Location: admin.php?p=vplanetes&id='.$req['id']);
exit;
}
else {
elseif (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id')
{
$pagea = 'print_key';
$id_plan = intval(gpc('id'));
$key = intval(gpc('key'));
$bdd = new BDD();
$reqp = $bdd->unique_query("SELECT * FROM $table_planete WHERE id = $id_plan;");
$req = $bdd->unique_query("DESCRIBE $table_planete $key;");
$bdd->deconnexion();
$template->assign('tableau', $reqp);
$template->assign('type', explode('(', $req['Type']));
$template->assign('idPlan', $id_plan);
$template->assign('key', $_GET['key']);
}
elseif (!empty($_GET['id']))
{
$id_plan = intval(gpc('id'));
if (isset($_POST['key']) && isset($_POST['mod']) && $_POST['key'] != 'id')
{
$key = gpc('key', 'post');
$mod = gpc('mod', 'post');
$bdd = new BDD();
$bdd->escape($key);
$bdd->escape($mod);
$bdd->query("UPDATE $table_planete SET $key = '$mod' WHERE id = $id_plan;");
$bdd->deconnexion();
}
$bdd = new BDD();
$req = $bdd->unique_query("SELECT * FROM $table_planete WHERE id = $id_plan;");
$bdd->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_plan);
}
elseif (isset($_GET['amas']) && isset($_GET['ss']) && !empty($_GET['pos']))
{
$amas = intval(gpc('amas'));
$ss = intval(gpc('ss'));
$pos = intval(gpc('pos'));
$bdd = new BDD();
$req = $bdd->unique_query("SELECT id FROM $table_planete WHERE galaxie = $amas AND ss = $ss AND position = $pos;");
$bdd->deconnexion();
header('Location: '.$VAR["menu"]["vplanetes"].'&id='.$req['id']);
exit;
}
elseif (isset($_GET['format']))
{
preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\]?$#', gpc('format'), $position);
$bdd = new BDD();
$req = $bdd->unique_query("SELECT id FROM $table_planete WHERE galaxie = ".$position[1]." AND ss = ".$position[2]." AND position = ".$position[3].";");
$bdd->deconnexion();
header('Location: '.$VAR["menu"]["vplanetes"].'&id='.$req['id']);
exit;
}
else
$pagea = 'print_choixP';
}
?>

View file

@ -5,38 +5,38 @@ $pagea = 'erreur';
$template->assign('linkpage', 'cjoueurs');
if ($SESS->level >= 5 && !empty($_GET['id'])) {
$name = gpc('id');
$bdd = new BDD();
$bdd->escape($name);
$req = $bdd->unique_query("SELECT id, pseudo, auth_level FROM $table_user WHERE id = '$name';");
$bdd->deconnexion();
if ($req['auth_level'] >= $SESS->level) {
$template->assign('message', 'Vous ne pouvez pas prendre le contrôle de cet utilisateur !');
}
else {
$bdd->reconnexion();
$reqPl = $bdd->unique_query("SELECT id, nom_planete FROM $table_planete WHERE id_user = '".$req['id']."' LIMIT 1;");
if ($SESS->level >= 5 && !empty($_GET['id']))
{
$name = intval(gpc('id'));
$bdd = new BDD();
$req = $bdd->unique_query("SELECT id, pseudo, auth_level FROM $table_user WHERE id = $name;");
$bdd->deconnexion();
if ($req['auth_level'] >= $SESS->level)
$template->assign('message', 'Vous ne pouvez pas prendre le contrôle de cet utilisateur !');
else
{
$bdd->reconnexion();
$reqPl = $bdd->unique_query("SELECT id, nom_planete FROM $table_planete WHERE id_user = '".$req['id']."' LIMIT 1;");
$bdd->deconnexion();
if (empty($SESS->values['souscontrole'])) $SESS->values['souscontrole'] = array($SESS->values['id'], $SESS->values['idPlan']);
$SESS->values['id'] = $req['id'];
$SESS->values['idPlan'] = $reqPl['id'];
$SESS->put();
if (empty($SESS->values['souscontrole'])) $SESS->values['souscontrole'] = array($SESS->values['id'], $SESS->values['idPlan']);
$SESS->values['id'] = $req['id'];
$SESS->values['idPlan'] = $reqPl['id'];
$SESS->put();
$template->assign('message', 'Vous contrôlez maintenant le joueur '.$req['pseudo'].'.<br />Planète '.$reqPl['nom_planete'].' sélectionnée !');
$template->assign('message', 'Vous contrôlez maintenant le joueur '.$req['pseudo'].'.<br />Planète '.$reqPl['nom_planete'].' sélectionnée !');
}
}
}
elseif (!empty($_GET['name'])) {
$name = gpc('name');
$bdd = new BDD();
$bdd->escape($name);
$req = $bdd->unique_query("SELECT id FROM $table_user WHERE pseudo = '$name';");
$bdd->deconnexion();
header('Location: admin.php?p=cjoueurs&id='.$req['id']);
exit;
}
else {
elseif (!empty($_GET['name']))
{
$name = gpc('name');
$bdd = new BDD();
$bdd->escape($name);
$req = $bdd->unique_query("SELECT id FROM $table_user WHERE pseudo = '$name';");
$bdd->deconnexion();
header('Location: admin.php?p=cjoueurs&id='.$req['id']);
exit;
}
else
$pagea = 'print_choixU';
}
?>

View file

@ -0,0 +1,42 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$pagea = 'vide';
$titre = 'Mise à jour de la liste des proxys';
function traiterfichier($uri, &$list)
{
$fp = fopen($uri, "r");
while (!feof($fp))
{
$buffer = fgets($fp);
if (preg_match("#^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}#", $buffer, $match))
$list[] = $match[0];
//$list[] = substr($buffer, 0, strpos($buffer, ":"));
}
fclose($fp);
}
$list = array();
traiterfichier("http://www.proxylists.net/socks4.txt", $list);
traiterfichier("http://www.proxylists.net/socks5.txt", $list);
traiterfichier("http://www.proxylists.net/http_highanon.txt", $list);
traiterfichier("http://www.proxylists.net/http.txt", $list);
traiterfichier("http://www.textproxylists.com/proxy.php?anonymous", $list);
traiterfichier("http://www.textproxylists.com/proxy.php?highanonymity", $list);
traiterfichier("http://www.textproxylists.com/proxy.php?codeen", $list);
traiterfichier("http://www.textproxylists.com/proxy.php?transparent", $list);
traiterfichier("http://www.textproxylists.com/proxy.php?nontransparent", $list);
//traiterfichier("http://www.textproxylists.com/proxy.php?allproxy", $list);
//traiterfichier("http://www.multiproxy.org/txt_anon/proxy.txt", $list);
traiterfichier("http://www.multiproxy.org/txt_all/proxy.txt", $list);
$bdd = new BDD();
$bdd->query("TRUNCATE TABLE `proxy_list`;");
$bdd->query("INSERT INTO proxy_list VALUES ('".implode("'),('", $list)."');");
$bdd->deconnexion();
erreur("Procédure terminée, ".count($list)." proxys listés.", "green");
?>

View file

@ -5,22 +5,27 @@ $titre = 'Afficher les rapports d\'un joueur';
$template->assign('linkpage', 'vrapports');
if (!empty($_GET['name'])) {
$id_user = $_GET['name'];
$chapeau->connexion();
$req = $chapeau->query("SELECT * FROM $table_mail WHERE destinataire = '$id_user' AND expediteur = '' ORDER BY temps DESC;");
$chapeau->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_user);
}
elseif (!empty($_GET['id'])) {
$chapeau->connexion();
$req = $chapeau->unique_query("SELECT * FROM $table_user WHERE id = '".mysql_real_escape_string($_GET['id'])."';");
$chapeau->deconnexion();
header('Location: admin.php?p=vrapports&name='.$req['pseudo']);
if (!empty($_GET['id']))
{
$id_user = intval(gpc('id'));
$bdd = new BDD();
$req = $bdd->query("SELECT * FROM $table_mail WHERE destinataire = $id_user AND expediteur = '' ORDER BY temps DESC;");
$bdd->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_user);
$template->assign('script', '<script>for (j=0; document.getElementsByName(j)[0]; j++) hide(document.getElementsByName(j)[0]);</script>');
}
elseif (!empty($_GET['name'])) {
$name = gpc('name');
$bdd = new BDD();
$bdd->escape($name);
$req = $bdd->unique_query("SELECT id FROM $table_user WHERE pseudo = '".$name."';");
$bdd->deconnexion();
header('Location: admin.php?p=vrapports&id='.$req['id']);
exit;
}
else {
else
$pagea = 'print_choixU';
}
?>

View file

@ -5,38 +5,41 @@ $pagea = 'erreur';
$template->assign('linkpage', 'sjoueurs');
if (!empty($_GET['id']) && !empty($_GET['sanc']) && (!empty($_GET['raisonmv']) || $_GET['sanc'] < 0)) {
$raisonmv = $_GET['raisonmv'];
$id_plan = $_GET['id'];
$chapeau->connexion();
$chapeau->escape($raisonmv);
$chapeau->escape($id_plan);
if (!empty($_GET['id']) && !empty($_GET['sanc']) && (!empty($_GET['raisonmv']) || $_GET['sanc'] < 0))
{
$raisonmv = gpc('raisonmv');
$id_plan = intval(gpc('id'));
$sanc = gpc('sanc');
$bdd = new BDD();
$bdd->escape($raisonmv);
if ($sanc == 'definitif' || $sanc== 'définitif' || $sanc == 'd')
{
$bdd->query("UPDATE $table_user SET mv = '3', raisonmv = '$raisonmv', operateurmv = $id_user WHERE id = $id_plan;");
$bdd->deconnexion();
if ($_GET['sanc'] == 'definitif' || $_GET['sanc'] == 'définitif' || $_GET['sanc'] == 'd') {
$chapeau->query("UPDATE $table_user SET mv = '3', raisonmv = '$raisonmv', operateurmv = '$id_user' WHERE id = '$id_plan';");
$chapeau->deconnexion();
$template->assign('message', 'Le joueur a été banni définitivement !');
}
else
{
$time = time() + $sanc * 86400 - 259200;
$bdd->query("UPDATE $table_user SET mv = '2', last_visite = $time, raisonmv = '$raisonmv', operateurmv = $id_user WHERE id = $id_plan;");
$bdd->deconnexion();
$template->assign('message', 'Le joueur a été banni définitivement !');
$template->assign('message', 'Le joueur a été placé en mode vacances !');
}
}
else {
$sanc = $_GET['sanc'];
$time = time() + $_GET['sanc'] * 86400 - 259200;
$chapeau->query("UPDATE $table_user SET mv = '2', last_visite = '$time', raisonmv = '$raisonmv', operateurmv = '$id_user' WHERE id = '$id_plan';");
$chapeau->deconnexion();
elseif (!empty($_GET['name']) && !empty($_GET['sanc']) && isset($_GET['raisonmv']))
{
$name = gpc('name');
$bdd = new BDD();
$bdd->escape($name);
$req = $bdd->unique_query("SELECT id FROM $table_user WHERE pseudo = '$name';");
$bdd->deconnexion();
$template->assign('message', 'Le joueur a été placé en mode vacances !');
header('Location: '.$VAR["menu"]["sjoueur"].'&sanc='.gpc('sanc').'&raisonmv='.gpc('raisonmv').'&id='.$req['id']);
exit;
}
}
elseif (!empty($_GET['name']) && !empty($_GET['sanc']) && isset($_GET['raisonmv'])) {
$name = $_GET['name'];
$chapeau->connexion();
$chapeau->escape($name);
$req = $chapeau->unique_query("SELECT * FROM $table_user WHERE pseudo = '$name';");
$chapeau->deconnexion();
header('Location: admin.php?p=sjoueurs&sanc='.$_GET['sanc'].'&raisonmv='.$_GET['raisonmv'].'&id='.$req['id']);
exit;
}
else {
else
$pagea = 'sanctionU_choix';
}
?>

View file

@ -0,0 +1,54 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$pagea = 'print';
$titre = 'Vue des futurs alliances';
$template->assign('linkpage', 'snalliances');
//TODO tout est à faire
if (!empty($_GET['id']) && !empty($_GET['key']) && $_GET['key'] != 'id') {
$pagea = 'print_key';
$id_plan = $_GET['id'];
$key = $_GET['key'];
$chapeau->connexion();
$chapeau->escape($id_plan);
$chapeau->escape($key);
$reqA = $chapeau->unique_query("SELECT * FROM $table_alliances WHERE id = '$id_plan';");
$req = $chapeau->unique_query("DESCRIBE $table_alliances $key;");
$chapeau->deconnexion();
$template->assign('tableau', $reqA);
$template->assign('type', explode('(', $req['Type']));
$template->assign('idPlan', $id_plan);
$template->assign('key', $_GET['key']);
}
elseif (!empty($_GET['id'])) {
$id_plan = $_GET['id'];
if (isset($_POST['key']) && isset($_POST['mod'])) {
$key = $_POST['key'];
$mod = $_POST['mod'];
$chapeau->connexion();
$chapeau->escape($mod);
$chapeau->escape($id_plan);
$chapeau->query("UPDATE $table_alliances SET $key = '$mod' WHERE id = '$id_plan';");
$chapeau->deconnexion();
}
$chapeau->connexion();
$req = $chapeau->unique_query("SELECT * FROM $table_alliances WHERE id = '$id_plan';");
$chapeau->deconnexion();
$template->assign('tableau', $req);
$template->assign('idPlan', $id_plan);
}
elseif (!empty($_GET['name'])) {
$name = $_GET['name'];
$chapeau->connexion();
$chapeau->escape($name);
$req = $chapeau->unique_query("SELECT * FROM $table_alliances WHERE nom = '$name';");
$chapeau->deconnexion();
header('Location: admin.php?p=valliances&id='.$req['id']);
exit;
}
else {
$pagea = 'print_choixU';
}
?>

View file

@ -5,38 +5,37 @@ $pagea = 'erreur';
$template->assign('linkpage', 'djoueurs');
if ($sess->level >= 5 && !empty($_GET['id'])) {
$id = $_GET['id'];
$chapeau->connexion();
$chapeau->escape($id);
$req = $chapeau->unique_query("SELECT * FROM $table_user WHERE id = '$id';");
$chapeau->deconnexion();
if ($req) {
$nom = trouvNom($id);
$chapeau->connexion();
$chapeau->escape($nom);
$chapeau->query("DELETE FROM $table_mail WHERE destinataire = '$nom';");
$chapeau->query("DELETE FROM $table_user WHERE id = '$id';");
$chapeau->query("DELETE FROM $table_flottes WHERE id_user = '$id';");
$chapeau->query("DELETE FROM $table_planete WHERE id_user = '$id';");
$chapeau->deconnexion();
$template->assign('message', 'Le joueur a été supprimé du jeu ainsi que toutes les données le concernant !');
if ($SESS->level >= 5 && !empty($_GET['id']))
{
$id = intval(gpc('id'));
$bdd = new BDD();
$req = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id;");
if ($req && $req["auth_level"] < 4)
{
$bdd->query("DELETE FROM $table_mail WHERE destinataire = $id;");
$bdd->query("DELETE FROM $table_user WHERE id = $id;");
$bdd->query("DELETE FROM $table_flottes WHERE id_user = $id;");
$bdd->query("DELETE FROM $table_planete WHERE id_user = $id;");
$bdd->deconnexion();
$template->assign('message', 'Le joueur '.$id.' ('.$req['pseudo'].') a été supprimé du jeu ainsi que toutes les données le concernant !<br />Vérifiez qu\'il ne soit pas fondateur d\'une alliance ou d\'une mission groupée.');
}
else
{
$bdd->deconnexion();
$template->assign('message', 'Le joueur n\'a pas été trouvé ou vous n\'avez pas les permissions de le supprimer !');
}
}
else {
$chapeau->deconnexion();
$template->assign('message', 'Le joueur n\'a pas été trouvé !');
elseif (!empty($_GET['name']))
{
$name = gpc('name');
$bdd = new BDD();
$bdd->escape($name);
$req = $bdd->unique_query("SELECT * FROM $table_user WHERE pseudo = '$name';");
$bdd->deconnexion();
header('Location: '.$VAR["menu"]["djoueurs"].'&id='.$req['id']);
exit;
}
}
elseif (!empty($_GET['name'])) {
$name = $_GET['name'];
$chapeau->connexion();
$chapeau->escape($name);
$req = $chapeau->unique_query("SELECT * FROM $table_user WHERE pseudo = '$name';");
$chapeau->deconnexion();
header('Location: admin.php?p=djoueurs&id='.$req['id']);
exit;
}
else {
else
$pagea = 'print_choixU';
}
?>

View file

@ -1,6 +1,6 @@
<?php
if (empty($sess->values['connected']) && !defined("xCSRF"))
if (empty($sess->values["connected"]) && !defined("xCSRF"))
define("xCSRF", true);
require_once("function.php"); //Inclusion des fonctions principales
@ -8,53 +8,49 @@ require_once("tables.php"); //Inclusion des noms des tables de base de données
//On prépare le gestionnaire de templates
$template = new Template();
$template->assign('date', strftime("%A %d %B %Y %H:%M"));
$template->assign('datehb', strftime("/%a %d %b %Y/%H%M %S"));
$template->assign('link', array_map("url", $VAR['link']));
$template->assign('url_serveur', $_SERVER['HTTP_HOST']);
$template->assign('url_images', $VAR['url_images']);
$template->assign("link", array_map("url", $VAR["link"]));
$template->assign("url_serveur", $_SERVER["HTTP_HOST"]);
$template->assign("url_images", $VAR["url_images"]);
//On charge la session
$SESS = new Session();
//Extraction des données en cache
$header = Cache::read('headerNB');
//Extraction des données en cache pour le header, sinon création du cache
$header = Cache::read("headerNB");
if (empty($header))
{
$bdd = new BDD();
$nbcovie = $bdd->unique_query("SELECT COUNT(id) AS covenants FROM $table_user WHERE race = 'covenant';");
$nbhumain = $bdd->unique_query("SELECT COUNT(id) AS humains FROM $table_user WHERE race = 'humain';");
$enligne = $bdd->unique_query("SELECT COUNT(session) AS enligne FROM sessions WHERE active = true AND var != '0';");
$infos = $bdd->query("SELECT * FROM $table_infoshead ORDER BY id DESC;");
$msgdem = $bdd->unique_query("SELECT titre FROM $table_messages_demarrage ORDER BY id DESC LIMIT 1;");
$bdd->deconnexion();
Cache::set('headerNB', array('count' => array($nbcovie['covenants'], $nbhumain['humains'], "cette", $enligne['enligne']), 'infos' => $infos, 'messagedemarrage' => $msgdem['titre']));
Cache::set("headerNB", array("count" => array($nbcovie["covenants"], $nbhumain["humains"], "cette", $enligne["enligne"]), "infos" => $infos, "messagedemarrage" => $msgdem["titre"]));
unset($nbcovie, $nbhumain, $enligne, $infos, $msgdem, $bdd);
$header = Cache::read('headerNB');
$header = Cache::read("headerNB");
}
$template->assign('header', $header);
$template->assign('version', $VAR['version']);
$template->assign('first_page', $VAR['first_page']);
$template->assign('LANG', $LANG);
define("VITESSE", $VAR['vitesse']);
$template->assign("header", $header);
$template->assign("version", $VAR["version"]);
$template->assign("serveur_name", $VAR["serveur_name"]);
$template->assign("first_page", $VAR["first_page"]);
$template->assign("LANG", $LANG);
define("VITESSE", $VAR["vitesse"]);
//Si l'on est pas connecté, on garde le header pour comparer lors de la connexion
if (!empty($sess->values["connected"]))
unset($header);
//Evite les attaques CSRF
if (!empty($_SERVER['HTTP_REFERER']) && !ereg(time().'http://'.$_SERVER['HTTP_HOST'], time().$_SERVER['HTTP_REFERER']) && !defined('xCSRF'))
//TODO remplacer les ereg par des preg !
if (!empty($_SERVER["HTTP_REFERER"]) && !ereg(time()."http://".$_SERVER['HTTP_HOST'], time().$_SERVER["HTTP_REFERER"]) && !defined("xCSRF"))
{
elog("Possibilité d'attaque CSRF\n".var_export($_REQUEST,TRUE), 2);
elog("Possibilité d'attaque CSRF\n".var_export($_REQUEST, TRUE), 2);
unset($_POST, $_GET);
$_GET = $_POST = array();
}
function limite($txt, $limit)
{
if (strlen($txt) > $limit)
return true;
else
return false;
}
?>
?>

View file

@ -2,7 +2,7 @@
if(!defined('INDEX')) { header('Location: ../'); exit; }
$bdd->reconnexion();
$flottes = $bdd->query("SELECT id FROM $table_flottes WHERE (id_user = ".$planete->id_user." OR end_planete = ".$planete->id.") AND (start_time + end_time) <= ".time()." AND last < ".(time()-10).";");
$flottes = $bdd->query("SELECT id FROM $table_flottes WHERE (id_user = ".$planete->id_user." OR end_planete = ".$planete->id." OR id_alliance = ".$planete->id_alliance." OR end_planete = ".$planete->id_alliance.") AND (start_time + end_time) <= ".time()." AND last < ".(time()-10).";");
$bdd->deconnexion();
if ($flottes) {

View file

@ -1,38 +1,32 @@
<?php
function trouvNom($id_user)
{
global $table_user;
$base = new bdd();
$resultat = $base->unique_query("SELECT pseudo FROM $table_user WHERE id = $id_user;");
$base->deconnexion();
return $resultat['pseudo'];
}
{
global $table_user;
$bdd = new BDD();
$resultat = $bdd->unique_query("SELECT pseudo FROM $table_user WHERE id = $id_user;");
$bdd->deconnexion();
return $resultat['pseudo'];
}
function linkNom($id_user){
function linkNom($id_user)
{
if (is_numeric($id_user)) $nom = trouvNom($id_user);
else $id_user = trouvId($id_user);
return '<a href="?p=util&amp;i='.$id_user.'">'.$nom.'</a>';
}
/*function trouvId($nom){
function trouvInfoUser($info, $type, $donnees)
{
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'];
}*/
$bdd = new BDD();
$resultat = $bdd->unique_query("SELECT ".implode(',', $donnees)." FROM $table_user WHERE $type = '$info';");
$bdd->deconnexion();
/*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;");
$base->deconnexion();
return $resultat[$info];
}*/
return $resultat;
}
function affTemp($secondes){
function affTemp($secondes)
{
$heures = intval($secondes/3600);
$minutes = intval($secondes/60-($heures*60));
if ($minutes < 10) $minutes = '0'.$minutes;
@ -42,11 +36,8 @@ function affTemp($secondes){
return $heures.':'.$minutes.':'.$seconde;
}
function separerNombres($nombre) {
return number_format($nombre, 0, ',', ' ');
}
function sec($time) {
function sec($time)
{
$output = '';
$tab = array ('jour' => '86400', 'heure' => '3600', 'minute' => '60', 'seconde' => '1');
foreach ($tab as $key => $value) {
@ -65,161 +56,42 @@ function sec($time) {
else return $output;
}
function readDeblok($tableau, $queryPlanete){
global $batimentVAR, $technologiesVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR;
if ($tableau == '0') return 'Débloqué';
else {
$return = '';
foreach ($tableau as $ligne){
if (!(array_search($ligne[1], $batimentVAR) === false)) {
$x = array_search($ligne[1], $batimentVAR);
$var = 'batiments';
}
elseif (!(array_search($ligne[1], $technologiesVAR) === false)) {
$x = array_search($ligne[1], $technologiesVAR);
$var = 'technologies';
}
elseif (!($x = array_search($ligne[1], $casernenVAR) === false)) {
$x = array_search($ligne[1], $casernenVAR);
$var = 'casernes';
}
elseif (!($x = array_search($ligne[1], $nomterrnVAR) === false)) {
$x = array_search($ligne[1], $nomterrnVAR);
$var = 'terrestres';
}
elseif (!($x = array_search($ligne[1], $nomvaisnVAR) === false)) {
$x = array_search($ligne[1], $nomvaisnVAR);
$var = 'vaisseaux';
}
else return '#Error';
if (isset($var) && $var == 'technologies') {
if (($queryPlanete->{$var}[$x] & $ligne[2]) != $ligne[2]) $return .= '<span class="lack">'.$ligne[0].' ('.$var.')</span><br />';
else $return .= $ligne[0].' ('.$var.')<br />';
}
elseif (isset($var) && $queryPlanete->{$var}[$x] < $ligne[2]) $return .= '<span class="lack">'.$ligne[0].' '.$ligne[2].' ('.$queryPlanete->{$var}[$x].') ('.$var.')</span><br />';
elseif (isset($var) && $queryPlanete->{$var}[$x] >= $ligne[2]) $return .= $ligne[0].' '.$ligne[2].' ('.$queryPlanete->{$var}[$x].') ('.$var.')<br />';
}
if (empty($return)) return 'Débloqué';
else return $return;
}
function txtmission($mission)
{
if ($mission == 0)
return 'Stationner';
elseif ($mission == 1)
return 'Transporter';
elseif ($mission == 2)
return 'Coloniser';
elseif ($mission == 3)
return 'Attaquer';
elseif ($mission == 4)
return 'Recycler';
elseif ($mission == 5)
return 'Espionner';
elseif ($mission == 6)
return 'Retour';
else
return 'Erreur';
}
function requestDeblok($tableau, $queryPlanete){
global $batimentVAR, $technologiesVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR;
if ($tableau == '0') return true;
else {
$return = true;
foreach ($tableau as $ligne){
if (!(array_search($ligne[1], $batimentVAR) === false)) {
$x = array_search($ligne[1], $batimentVAR);
$var = 'batiments';
}
elseif (!(array_search($ligne[1], $technologiesVAR) === false)) {
$x = array_search($ligne[1], $technologiesVAR);
$var = 'technologies';
}
elseif (!($x = array_search($ligne[1], $casernenVAR) === false)) {
$x = array_search($ligne[1], $casernenVAR);
$var = 'casernes';
}
elseif (!($x = array_search($ligne[1], $nomterrnVAR) === false)) {
$x = array_search($ligne[1], $nomterrnVAR);
$var = 'terrestres';
}
elseif (!($x = array_search($ligne[1], $nomvaisnVAR) === false)) {
$x = array_search($ligne[1], $nomvaisnVAR);
$var = 'vaisseaux';
}
else return false;
if (isset($var) && $var == 'technologies') {
if (($queryPlanete->{$var}[$x] & $ligne[2]) != $ligne[2]) $return = false;
}
elseif (isset($var) && $queryPlanete->{$var}[$x] < $ligne[2]) $return = false;
}
return $return;
}
}
function txtmission($mission){
if ($mission == 0) return 'Stationner';
elseif ($mission == 1) return 'Transporter';
elseif ($mission == 2) return 'Coloniser';
elseif ($mission == 3) return 'Attaquer';
elseif ($mission == 4) return 'Recycler';
elseif ($mission == 5) return 'Espionner';
elseif ($mission == 6) return 'Retour';
else return 'Erreur';
}
function txtTactique($tactique){
switch($tactique){
case 1: return '1'; break;
case 2: return '2'; break;
case 3: return '3'; break;
case 4: return '4'; break;
case 5: return '5'; break;
case 6: return '6'; break;
case 7: return '7'; break;
case 8: return '8'; break;
case 9: return '9'; break;
case 10: return '10'; break;
case 11: return '11'; break;
case 12: return '12'; break;
case 13: return '13'; break;
case 14: return '14'; break;
case 15: return '15'; break;
case 16: return '16'; break;
case 17: return '17'; break;
case 18: return '18'; break;
case 19: return '19'; break;
case 20: return '20'; break;
case 21: return '21'; break;
default: return 'autre'; break;
}
}
function tactique($tactique){
switch($tactique){
case 1: return array(1,0,12,false); break;
case 2: return array(2,88,12,false); break;
case 3: return array(3,75,25,false); break;
case 4: return array(4,63,37,false); break;
case 5: return array(5,50,50,false); break;
case 6: return array(6,37,63,false); break;
case 7: return array(7,25,75,false); break;
case 8: return array(8,12,88,false); break;
case 9: return array(9,12,88,true); break;
case 10: return array(10,25,75,true); break;
case 11: return array(11,37,63,true); break;
case 12: return array(12,50,50,true); break;
case 13: return array(13,63,37,true); break;
case 14: return array(14,75,25,true); break;
case 15: return array(15,75,26,true); break;
case 16: return array(16,75,27,true); break;
case 17: return array(17,75,28,true); break;
case 18: return array(18,75,29,true); break;
case 19: return array(19,75,30,true); break;
case 20: return array(20,75,31,true); break;
case 21: return array(21,75,32,true); break;
default: return array(1,0,10,false); break;
}
}
function pillage($metal, $cristal, $hydrogene, $vfm){
function pillage($metal, $cristal, $hydrogene, $vfm)
{
$Qm = $metal / $vfm;
$Qc = $cristal / $vfm;
$Qh = $hydrogene / $vfm;
$somme = $Qm + $Qc + $Qh;
if ($somme < 2) {
if ($somme < 2)
{
$Fm = $metal / 2;
$Fc = $cristal / 2;
$Fh = $hydrogene / 2;
}
else {
else
{
$Fm = $Qm / $somme * $vfm;
$Fc = $Qc / $somme * $vfm;
$Fh = $Qh / $somme * $vfm;
@ -228,48 +100,23 @@ function pillage($metal, $cristal, $hydrogene, $vfm){
return array(floor($Fm), floor($Fc), floor($Fh));
}
function vais_tempsDeplacement($start_galaxie,$start_ss,$start_position,$end_galaxie,$end_ss,$end_position,$vitesse,$coefvitesse = 1,$preparation = 0,$chauffe = 0) {
if ($end_galaxie-$start_galaxie == 0 && $end_ss-$start_ss == 0 && $end_position-$start_position == 0) $temps = 0;
elseif ($end_galaxie-$start_galaxie == 0 && $end_ss-$start_ss == 0 && $chauffe == 0) $temps = $preparation+abs($end_position-$start_position)*$vitesse/12;
elseif ($end_galaxie-$start_galaxie == 0 && $chauffe == 0) $temps = $preparation+abs($end_ss-$start_ss)*$vitesse;
elseif ($chauffe == 0) $temps = $preparation+abs($end_galaxie-$start_galaxie)*$vitesse*300;
elseif ($end_galaxie-$start_galaxie == 0 && $end_ss-$start_ss == 0) $temps = $preparation+abs($end_position-$start_position)*($vitesse*2)/12+$preparation;
/*elseif ($end_galaxie-$start_galaxie == 0 && $end_ss-$start_ss <= $chauffe) $temps = abs($end_ss-$start_ss)*(($vitesse/$chauffe)*($chauffe-abs($end_ss-$start_ss))+$vitesse)+$preparation;
elseif ($end_galaxie-$start_galaxie == 0) $temps = $vitesse*abs($end_ss-$start_ss)+$vitesse*10+$preparation;*/
elseif ($end_galaxie-$start_galaxie == 0) $temps = (abs($end_ss-$start_ss)*(($vitesse/$chauffe)*((abs($chauffe-abs($end_ss-$start_ss))+($chauffe-abs($end_ss-$start_ss)))/2)+$vitesse))+(20-(abs($chauffe-abs($end_ss-$start_ss))+($chauffe-abs($end_ss-$start_ss)))/2)*54+$preparation;
else $temps = (($vitesse/$chauffe)*($chauffe-abs($end_galaxie-$start_galaxie))+$vitesse)*300+108+$preparation;
return $temps/$coefvitesse;
}
function vaisTempsdeplacement($start_amas, $start_ss, $start_pos, $end_amas,$end_ss, $end_pos, $vitessevaisseaux, $vitesseflotte=100) {
if($end_amas - $start_amas != 0) return (10+(35000/$vitesseFlotte*sqrt(abs($end_amas-$start_amas)*20000000/$vitesseVaisseaux)));
elseif($end_ss-$start_ss != 0) return (10+(35000/$vitesseFlotte*sqrt(2700000+abs($end_ss-$start_ss)*95000/$vitessevais)));
elseif($end_pos-$start_pos != 0) return (10+(35000/$vitesseFlotte*sqrt((abs($end_pos-$start_pos)*5000/$vitessevais))));
else return (10+(35000/$vitesseFlotte-sqrt(5000/$vitesseVais)));
}
function vais_conso($tempsDeplacement,$nbvais = 1){
return intval($tempsDeplacement*$nbvais/20);
}
function send_mail($admail, $sujet, $corps){
require_once(_FCORE."../game/Class/class.phpmailer.php");
function send_mail($admail, $sujet, $corps)
{
require_once("Class/phpmailer.php");
$mail = new PHPmailer();
$mail->SetLanguage('fr', _FCORE."../game/Class/");
$mail->SetLanguage('fr', ONYX."/include/Class/");
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->Host='s-fr.com';
$mail->From='no-reply@halo-battle.s-fr.com';
$mail->CharSet = "utf-8";
$mail->Host='mail2.power-heberg.net';
$mail->From='no-reply@anomaly-concepts.com';
$mail->FromName='Halo-Battle';
$mail->SMTPAuth=true;
$mail->Username='no-reply@halo-battle.s-fr.com';
$mail->Password='hD3e2nXu';
$mail->Username='no-reply@anomaly-concepts.com';
$mail->Password='balamb468';
$mail->AddAddress($admail);
$mail->AddReplyTo('no-reply@halo-battle.s-fr.com');
$mail->AddReplyTo('nemunaire@anomaly-concepts.com');
$mail->Subject = $sujet;
$mail->Body = $corps;
@ -279,22 +126,23 @@ function send_mail($admail, $sujet, $corps){
return $return;
}
function send_mailHTML($admail, $sujet, $corps){
require_once(_FCORE."../game/Class/class.phpmailer.php");
function send_mailHTML($admail, $sujet, $corps)
{
require_once("Class/phpmailer.php");
$mail = new PHPmailer();
$mail->SetLanguage('fr', _FCORE."../game/Class/");
$mail->SetLanguage('fr', ONYX."/include/Class/");
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->Host='s-fr.com';
$mail->From='no-reply@halo-battle.s-fr.com';
$mail->Host='mail2.power-heberg.net';
$mail->From='no-reply@anomaly-concepts.com';
$mail->FromName='Halo-Battle';
$mail->SMTPAuth=true;
$mail->Username='no-reply@halo-battle.s-fr.com';
$mail->Password='hD3e2nXu';
$mail->Username='no-reply@anomaly-concepts.com';
$mail->Password='balamb468';
$mail->AddAddress($admail);
$mail->AddReplyTo('no-reply@halo-battle.s-fr.com');
$mail->AddReplyTo('nemunaire@anomaly-concepts.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&ocirc;t dans Halo-Battle,<br />Le staff</p></body></html>';
@ -304,49 +152,155 @@ function send_mailHTML($admail, $sujet, $corps){
return $return;
}
function erreur($message, $color = "red", $lien = "", $temps = 2500){
global $template, $page;
function erreur($message, $color = "red", $lien = "", $temps = 2500)
{
global $template, $page, $SESS;
if (!empty($page))
$template->assign('page', $page);
$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');
if (!empty($lien))
$template->assign('scripth','<meta http-equiv="refresh" content="'.($temps/1000).'; url='.$lien.'" />');
//Si le joueur est connecté, on affiche la page d'erreur du jeu, sinon on afficher la page du cms
if (isset($SESS->values['connected']) && $SESS->values['connected'])
$template->display('game/erreur.tpl');
else
$template->display('cms/erreur.tpl');
exit;
}
function send_mp($joueur, $titre, $message, $type = 0, $emetteur = 0){
global $table_mail, $bdd;
function send_mp($joueur, $titre, $message, $type = 0, $emetteur = 0)
{
global $table_mail, $bdd, $VAR;
$temps = time();
if (!is_numeric($joueur)) $joueur = trouvId($joueur);
if (!is_numeric($emetteur)) $emetteur = trouvId($emetteur);
if (!empty($joueur)) {
$bdd->connexion();
$mail = false;
if (!is_numeric($joueur))
{
$joueur = trouvInfoUser($joueur, "pseudo", array("id", "mail", "envoyerMail"));
if (($emetteur == 0 && $joueur["envoyerMail"]& 1) || ($emetteur != 0 && $joueur["envoyerMail"]& 2))
$mail = $joueur["mail"];
else
$mail = false;
$joueur = $joueur["id"];
}
else
{
$joueur = trouvInfoUser($joueur, "id", array("id", "mail", "envoyerMail"));
if (($emetteur == 0 && $joueur["envoyerMail"]& 1) || ($emetteur != 0 && $joueur["envoyerMail"]& 2))
$mail = $joueur["mail"];
else
$mail = false;
$joueur = $joueur["id"];
}
if (!is_numeric($emetteur))
{
$emetteur = trouvInfoUser($emetteur, "pseudo", array("id"));
$emetteur = $emetteur['id'];
}
if (!empty($joueur))
{
$bdd->reconnexion();
$bdd->escape($joueur);
$bdd->escape($titre);
$bdd->escape($message);
$bdd->query("INSERT INTO $table_mail (destinataire, expediteur, type, sujet, contenu, temps) VALUES($joueur, $emetteur, $type, '$titre', '$message', '$temps');");
$bdd->query("INSERT INTO $table_mail (destinataire, expediteur, type, sujet, contenu, temps) VALUES($joueur, $emetteur, $type, '$titre', '$message', $temps);");
$bdd->deconnexion();
if ($mail)
send_mail($mail, "Halo-Battle :: Nouveau message privé", 'Bonjour,\n\nVous recevez ce courriel suite à l\'arrivée d\'un nouveau message privé reçu sur votre compte de jeu du serveur '.$VAR['serveur_name'].'. Le sujet de ce message est : "'.$titre.'". Vous pouvez utiliser le lien suivant pour voir le message ou vous connecter.\n\nhttp://'.$_SERVER['HTTP_HOST'].'/'.$VAR['first_page'].'?p=messagerie\n\nVous pouvez désactiver ses notifications via les options de votre compte dans l\'onglet "notifications"\n\nA bientôt dans Halo-Battle,\nLe Staff');
}
}
function nameLink($id, $type){
global $race;
require(_FCORE."../game/noms.php");
function gen_mdp($nbchar)
{
$liste = "abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$code = "";
for($i = 0; $i < $nbchar; $i++)
{
$code .= $liste[rand(0,60)];
}
if ($type == "technologie") return '<a href="?p=description&amp;t=1">'.$technolo[$id].'</a>';
return $code;
}
function mdp($nom, $mdp, $alea = false){
if (empty($alea)) {
$alea = random(1024);
function check_mdp($mdp, $pseudo = null, $conf=null)
{
if (isset($conf) && $conf !== $mdp)
return "Le mot de passe et sa confirmation sont différent";
elseif (strlen($mdp) < 7)
return "Mot de passe trop court, il doit faire au moins 7 caractères.";
elseif (ctype_digit($mdp))
return "Le mot de passe ne doit pas contenir que des chiffres";
elseif (!empty($pseudo) && ereg($mdp, $pseudo))
return "Votre mot de passe ne doit pas être une partie de votre nom d'utilisateur";
elseif (!empty($pseudo) && ereg($pseudo, $mdp))
return "Votre nom d'utilisateur ne doit pas être une partie de votre mot de passe";
elseif (ereg("halo", $mdp))
return "Le mot de passe ne peut pas contenir le mot halo !";
elseif (preg_match("#azer|qwer|zert|wert|erty|rtyu|tyui|yuio|uiop|poiu|oiuy|iuyt|uytr|ytre|trez|trew|reza|rewq|qsdf|asdf|sdfg|dfgh|fghj|ghjk|hjkl|jklm|mlkj|lkjh|kjhg|jhgf|hgfd|gfds|fdsq|fdsa|wxcv|vcxw|xcvb|bvcx|cvbn|nbvc|vbnm|mnbv|123|234|345|456|567|678|789|987|876|765|654|543|432|321|210|012#iU", $mdp, $osef))
return "Ayez plus de créativité pour définir votre mot de passe, les lettres ou chiffres du clavier qui se suivent ne sont pas une bonne sécurité !";
else
return $mdp;
}
function mdp($nom, $mdp, $alea = null)
{
if (empty($alea))
{
$alea = substr(random(1024), 0, 255);
return array(hash('whirlpool', cxor(strtoupper($nom).':'.$mdp.'♂♪',$alea)), $alea);
}
else return hash('whirlpool', cxor(strtoupper($nom).':'.$mdp.'♂♪',$alea));
else
return hash('whirlpool', cxor(strtoupper($nom).':'.$mdp.'♂♪',$alea));
}
function redirection($url){
function redirection($url)
{
header('Location: '.$url);
print '<meta http-equiv="refresh" content="0; url='.$url.'" />';
exit;
}
?>
function slots($id_user)
{
global $table_flottes, $table_planete;
$bdd = new BDD();
$flottes = $bdd->unique_query("SELECT COUNT(id) AS cnt FROM $table_flottes WHERE id_user = $id_user;");
$colonies = $bdd->unique_query("SELECT COUNT(id) AS cnt FROM $table_planete WHERE id_user = $id_user;");
$bdd->deconnexion();
return (ceil(count($colonies["cnt"])/2 + 1) - $flottes["cnt"]);
}
function limite($txt, $limit)
{
if (strlen($txt) > $limit)
return true;
else
return false;
}
function bourse_calcPrixBase($dispo, $nb = 1000, $rate = 2)
{
if ($nb > 1000)
{
$prix = 0;
for($i = 0; $i < $nb; $i+=1000)
{
$prix += bourse_calcPrixBase($dispo-$i, 1000, $rate);
}
$prix += bourse_calcPrixBase($dispo-$i, $dispo%1000, $rate);
return $prix;
}
else
return ceil(pow($dispo, -0.1) * $nb * $rate);
//return pow($dispo, -0.1) * 200; //Prix de base ...
}
?>

View file

@ -17,6 +17,7 @@ class Alliance extends Surface{
$tag,
$galaxie,
$ss,
$wing,
$nom_asteroide,
$image_asteroide,
$debris_met,
@ -51,6 +52,7 @@ class Alliance extends Surface{
$this->tag = $alli["tag"];
$this->galaxie = $alli["galaxie"];
$this->ss = $alli["ss"];
$this->wing = $alli["wing"];
$this->nom_asteroide = $alli["nom_asteroide"];
$this->image_asteroide = $alli["image_asteroide"];
$this->debris_met = $alli["debris_met"];

View file

@ -15,9 +15,15 @@ class Asteroide extends Surface
$sante,
$nom_alliance,
$tag,
$wing,
$nom_asteroide,
$image_asteroide,
$credits_alliance;
$position = 5,
$cap = 123456789,
$credits_alliance,
$url_chat,
$url_forum,
$details = array();
/**
* Constructeur
@ -53,12 +59,20 @@ class Asteroide extends Surface
parent::User($SESS->values['id']); //On utilise le numéro d'utilisateur enregistré en session
$this->galaxie = $plan["galaxie"];
$this->ss = $plan["ss"];
$this->nom_asteroide = $plan["nom_asteroide"];
$this->image = $this->image_asteroide = $plan["image_asteroide"];
$this->debris_met = $plan["debris_met"];
$this->debris_cri = $plan["debris_cri"];
$this->metal = $plan["metal"];
$this->cristal = $plan["cristal"];
$this->hydrogene = $plan["hydrogene"];
$this->credits_alliance = $plan["credits_alliance"];
$this->fondateur = $plan["fondateur"];
$this->nom_alliance = $plan["nom_alliance"];
$this->wing = $plan["wing"];
$this->tag = $plan["tag"];
$this->url_forum = $plan["url_forum"];
$this->url_chat = $plan["url_chat"];
foreach($alli_batimentVAR as $bat)
$this->batiments[] = $plan[$bat];
@ -78,419 +92,107 @@ class Asteroide extends Surface
}
}
/**
* Actualise les ressources de la planète en fonction de la production et termine les files d'attentes.
*
* @return void
* @access public
*/
function loadDetails()
{
global $table_alliances;
$bdd = new bdd();
$this->details = $bdd->unique_query("SELECT presentation, message_inscription, texte_interne, port_chat, chan_chat, image, etat_inscription, defcon, defcon_txt FROM $table_alliances WHERE id = ".$this->id.";");
$bdd->deconnexion();
}
function actualiser($actuFile = true, $first = false)
{
//Actualisation des files d'attentes
if ($actuFile)
{
$this->file_ready("batiments");
$this->file_readyTechno("technologies");
$this->file_ready("casernes");
$this->file_ready("terrestres");
$this->file_ready("vaisseaux");
}
//Calcul de la capacité de stockage maximale
if (!empty($timestamp_lastSilo))
{
$this->cap = pow(2, $this->batiments[10]-1) * 100000;
$capnouv = pow(2, $this->batiments[10]) * 100000;
}
else
$this->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] < $this->cap)
$this->metal += $ressources[0];
else
{
//Si les capacité de stockage ont changé depuis la dernière actualisation
if (isset($capnouv))
{
$ressources = $this->production(time() - $this->timestamp_lastSilo);
if ($this->metal + $ressources[0] < $capnouv)
$this->metal += $ressources[0];
}
else
{
$this->alert_ressources[0] = true;
$this->metal = $this->cap;
}
}
if ($this->cristal + $ressources[1] < $this->cap)
$this->cristal += $ressources[1];
else
{
//Si les capacité de stockage ont changé depuis la dernière actualisation
if (isset($capnouv))
{
$ressources = $this->production(time() - $this->timestamp_lastSilo);
if ($this->cristal + $ressources[1] < $capnouv)
$this->cristal += $ressources[1];
}
else
{
$this->alert_ressources[1] = true;
$this->cristal = $this->cap;
}
}
if ($this->hydrogene + $ressources[2] < $this->cap)
$this->hydrogene += $ressources[2];
else
{
//Si les capacité de stockage ont changé depuis la dernière actualisation
if (isset($capnouv))
{
$ressources = $this->production(time() - $this->timestamp_lastSilo);
if ($this->hydrogene + $ressources[2] < $capnouv)
$this->hydrogene += $ressources[2];
}
else
{
$this->alert_ressources[2] = true;
$this->hydrogene = $this->cap;
}
}
//Vérification de la date pour faire les actions journalières
if (date('zya') != date('zya', $this->timestamp))
{
//On évalue le moral
$this->evalMoral($first);
//Si la population est à 0, on ajoute des habitants
if ($this->population <= 0)
$this->population = 1000;
$popPlus = $this->population * 0.0153^max(1, floor((time()-$this->timestamp)/86400));
if ($this->politique == 2)
$popPlus *= 1.1; //Communisme : 10 % de population qui arrive en plus.
elseif ($this->politique == 3)
$popPlus *= 1.05; //Démocratie : 5 % de population qui arrive en plus.
if ($this->technologies[2] & 4)
$popPlus *= 1.15;
elseif ($this->technologies[2] & 2)
$popPlus *= 1.10;
elseif ($this->technologies[2] & 1)
$popPlus *= 1.05;
$this->population += $popPlus;
$this->credits += $this->population/100*exp(0.01)*25;
$this->modif[] = 'population';
}
$this->timestamp = time();
//Calcul du nombre de cases restantes
$this->casesRest = $this->cases;
foreach($this->batiments as $bat)
$this->casesRest -= $bat;
}
function setMoral($difference)
{
$this->moral += $difference;
//Ajustement du moral
if ($this->moral > 1)
$this->moral = 1;
elseif ($this->moral < 0)
$this->moral = 0;
if (!in_array("moral", $this->modif))
$this->modif[] = "moral";
}
function evalMoral($first = false)
{
//Cas de sous-production
if (($this->coeff_bat[0] + $this->coeff_bat[1] + $this->coeff_bat[2])/3 < 0.9)
{
if ($this->politique == 2)
$this->moral -= 0.10; //Communisme : démoralise 2x plus
else
$this->moral -= 0.05;
if (!in_array('moral', $this->modif))
$this->modif[] = 'moral';
}
//Surpopulation
//Surlogement
//Ajustement du moral en fonction de la politique
if ($this->politique == 1 && $this->moral > 0.7)
$this->moral = 0.7;
//On vérifie qu'on ne dépasse pas le maximum
if ($this->moral > 1)
$this->moral = 1;
if ($this->moral < 0)
$this->moral = 0;
//Isolement si besoin
if ($this->moral < 0.1)
{
//On vérifie qu'il ne s'agit pas de la planète mère
global $bdd, $table_planete;
$bdd->connexion();
$res = $bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = ".$this->id_user." ORDER BY id LIMIT 1;");
$bdd->deconnexion();
if ($res['id'] != $this->id)
{
if ($this->moral <= 0.01 || $this->moral <= 0.04)
{
if ($this->moral <= 0.01)
$rand = rand(0,4);
else
$rand = rand(0,20);
//Perte de la planète
if ($rand == 1)
{
$bdd->connexion();
$bdd->query("DELETE FROM $table_planete WHERE id = ".$this->id.";");
$bdd->deconnexion();
send_mp($this->id_user, 'Perte de contrôle de '.$this->nom_planete, "Suite à une démoralisation percistante de la population sur la planète ".$this->nom_planete." [".$this->galaxie.":".$this->ss.":".$this->position."], la population a renversé votre gouvernement en tuant tous vos gouverneurs. Vous perdez donc définitivement le contrôle de cette planète.");
if (!$first)
{
$SESS->values['idPlan'] = $res['id'];
erreur('La population de cette planète est tellement démoralisée qu\'elle s\'est révolté contre vous. Vous ne contrôlez plus cette planète.');
}
}
}
elseif ($this->moral <= 0.06 || $this->moral <= 0.1)
{
if ($this->moral <= 0.06)
$rand = rand(0,2);
else
$rand = rand(0,10);
//Perte de contrôle temporaire
if ($rand == 1)
{
$debut = time() - rand(0, 3600)*4;
$fin = $debut + 86400;
$this->isolement = array($debut, $fin);
if (!in_array('isolement', $this->modif)) $this->modif[] = 'isolement';
send_mp($this->id_user, 'Perte de contrôle temporaire de '.$this->nom_planete, "Suite à une démoralisation percistante de la population sur la planète ".$this->nom_planete." [".$this->galaxie.":".$this->ss.":".$this->position."], la population a pris le contrôle de votre planète. Vous perdez le contrôle de cette planète le temps que vos gouverneurs reprennent le pouvoir.");
if (!$first)
{
$SESS->values['idPlan'] = $res['id'];
erreur('La population de cette planète est tellement démoralisée qu\'elle s\'est révoltée contre vous. Vous perdez temporairement le contrôle de cette planète.');
}
}
}
}
$this->file_bat->batiment_ready($this);
$this->file_vais->vaisseaux_ready($this);
}
}
/**
* Vérifie si la planète est isolée ou non
*
* @return boolean
* @access public
*/
function isolement()
function checkAndRetireRessources($metal, $cristal, $hydrogene, $credits)
{
return false;
if ($this->metal >= $metal && $this->cristal >= $cristal && $this->hydrogene >= $hydrogene && $this->credits_alliance >= $credits)
{
$this->metal -= $metal;
$this->cristal -= $cristal;
$this->hydrogene -= $hydrogene;
$this->credits -= $credits;
$this->addModif("force");
$this->addModif("credits_alliance");
return true;
}
else
return false;
}
/**
* 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)
function addRessources($metal, $cristal, $hydrogene, $credits)
{
//Accélération de la production
$temps_ecoule *= VITESSE;
$perte = 0;
//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++)
$this->metal += $metal;
if ($this->metal > $this->cap)
{
$Ncoeff[$i] = $coeff * $this->coeff_bat[$i];
if ($Ncoeff[$i] > 1)
$Ncoeff[$i] = 1;
if ($Ncoeff[$i] < $this->coeff_bat[$i] && $this->batiments[$i] != 0)
{
$this->coeff_bat[$i] = $Ncoeff[$i];
if (!in_array('coeff_bat', $this->modif))
$this->modif[] = 'coeff_bat';
}
$perte += $this->metal - $this->cap;
$this->metal = $this->cap;
}
//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;
//Augmentation de la production en fonction des technologies
if ($this->technologies[0] &4)
$this->cristal += $cristal;
if ($this->cristal > $this->cap)
{
$prod_met *= 1.15;
$prod_cri *= 1.15;
$prod_hy *= 1.15;
}
elseif ($this->technologies[0] &2)
{
$prod_met *= 1.10;
$prod_cri *= 1.10;
$prod_hy *= 1.10;
}
elseif ($this->technologies[0] &1)
{
$prod_met *= 1.05;
$prod_cri *= 1.05;
$prod_hy *= 1.05;
$perte += $this->cristal - $this->cap;
$this->cristal = $this->cap;
}
//Augmentation de la production en fonction du moral
if ($this->moral > 0.9)
$this->hydrogene += $hydrogene;
if ($this->hydrogene > $this->cap)
{
$prod_met *= 1.05;
$prod_cri *= 1.05;
$prod_hy *= 1.05;
}
elseif ($this->moral > 0.75)
{
$prod_met *= 1.02;
$prod_cri *= 1.02;
$prod_hy *= 1.02;
}
elseif ($this->moral < 0.45)
{
$prod_met *= 0.97;
$prod_cri *= 0.97;
$prod_hy *= 0.97;
}
elseif ($this->moral < 0.25)
{
$prod_met *= 0.94;
$prod_cri *= 0.94;
$prod_hy *= 0.94;
$perte += $this->hydrogene - $this->cap;
$this->hydrogene = $this->cap;
}
//Augmentation de la production en fonction de la politique
if ($this->politique == 2)
{
$prod_met *= 1.10;
$prod_cri *= 1.10;
$prod_hy *= 1.10;
}
$this->hydrogecredits_alliancene += $credits;
//On enlève la consomation d'hydrogène
$prod_hy -= $conso_h;
$this->addModif("force");
$this->addModif("credits_alliance");
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);
return $perte;
}
function creer($id_user)
function addCreditsAlliance($credits)
{
//Définition des paramètres de l'utilisateur pour la planète
$this->id_user = $id_user;
$this->credits_alliance += $credits;
$this->addModif("credits_alliance");
return 0;
}
function creer($fondateur, $mere = false)
{
global $VAR, $table_alliances_creation;
$bdd = new BDD();
$alliance = $bdd->unique_query("SELECT * FROM $table_alliances_creation WHERE fondateur = ".$fondateur->id_user." LIMIT 1;");
$bdd->deconnexion();
//On vérifie que l'alliance n'a pas déjà été créée
if (empty($alliance))
return 1;
//Définition des paramètres de l'utilisateur pour l'astéroide
$this->fondateur = $alliance["fondateur"];
$this->race = $fondateur->race;
//Génération du nombre de case et de l'image en fonction de la position dans le système
if ($this->position > MAX_PLANETE*0.75)
{
$this->cases = mt_rand(200,255);
$this->image = mt_rand(1,19);
}
elseif ($this->position > MAX_PLANETE/2)
{
$this->cases = mt_rand(250,300);
$this->image = mt_rand(1,19);
}
elseif ($this->position > MAX_PLANETE/4)
{
$this->cases = mt_rand(175,260);
$this->image = mt_rand(1,19);
}
else
{
$this->cases = mt_rand(150,220);
$this->image = mt_rand(1,19);
}
$this->sante = 1;
$this->nom_alliance = $alliance["nom_alliance"];
$this->tag = $alliance["tag"];
$this->nom_asteroide = $alliance["nom_alliance"];
$this->image_asteroide = mt_rand(1,3);
//Définition des principaux paramètres de la planète
$this->nom_planete = 'Planète colonisée';
$this->timestamp = time();
$this->metal = 1000;
$this->cristal = 700;
$this->hydrogene = 0;
$this->modif = array("id_user", "nom_planete", "galaxie", "ss", "position", "image", "cases", "timestamp", "metal", "cristal", "hydrogene");
$this->modif = array("fondateur", "race", "nom_alliance", "galaxie", "ss", "tag", "nom_asteroide", "image_asteroide");
}
/**
@ -501,12 +203,10 @@ class Asteroide extends Surface
*/
function __destruct()
{
if (empty($this->ss) || empty($this->id_user))
if (empty($this->ss) || empty($this->fondateur))
return;
if ($this->id_user == 1)
var_dump($this);
global $var___db, $config, $table_planete;
global $table_alliances;
if (empty($this->id))
{
$out1 = array(); $out2 = array();
@ -559,7 +259,7 @@ class Asteroide extends Surface
}
}
}
$bdd->query("INSERT INTO $table_planete (".implode(', ', $out1).", hash_planete) VALUES (".implode(', ', $out2).", SHA1(CONCAT('g',planete.galaxie,'s',planete.ss,'p',planete.position)))");
$bdd->query("INSERT INTO $table_alliances (".implode(', ', $out1).") VALUES (".implode(', ', $out2).")");
$bdd->deconnexion();
}
else
@ -570,7 +270,7 @@ class Asteroide extends Surface
for($i = 0; $i < $nb; $i++)
{
if ($this->modif[$i] == "force")
$out[] = "timestamp = timestamp";
$out[] = "metal = ".$this->metal.", cristal = ".$this->cristal.", hydrogene = ".$this->hydrogene;
elseif ($this->modif[$i] == 'technologies')
$this->modifUser[] = $this->modif[$i];
elseif (is_object($this->{$this->modif[$i]}))
@ -598,7 +298,7 @@ class Asteroide extends Surface
else
{
if ($this->modif[$i] == "batiments")
$calc = "batiment";
$calc = "alli_batiment";
elseif ($this->modif[$i] == "technologies")
$calc = "technolo";
elseif ($this->modif[$i] == "casernes")
@ -624,7 +324,7 @@ class Asteroide extends Surface
}
if (!empty($out))
{
$sql = "UPDATE $table_planete SET timestamp = ".time().", metal = ".$this->metal.", cristal = ".$this->cristal.", hydrogene = ".$this->hydrogene.", ".implode(', ', $out)." WHERE id = ".$this->id.";";
$sql = "UPDATE $table_alliances SET ".implode(', ', $out)." WHERE id = ".$this->id.";";
if (DEBUG) echo '<br /><br />'.$sql;
$bdd->query($sql);
}

View file

@ -10,7 +10,7 @@
***************************************************************************/
class Donnee
{
static function tailleFile(Planete $planete)
static function tailleFile(Surface $planete)
{
//On calcul la taille maximale de la file d'attente
if (!empty($planete->technologies[1]))
@ -24,7 +24,7 @@ class Donnee
}
static function neededCheck($tableau, Planete $planete)
static function neededCheck($tableau, Surface $planete)
{
if (!is_array($tableau)) return true;
else
@ -61,7 +61,7 @@ class Donnee
}
}
static function print_neededCheck($tableau, Planete $planete, $race)
static function print_neededCheck($tableau, Surface $planete, $race)
{
global $LANG;
if (!is_array($tableau)) return 'Débloqué';
@ -451,6 +451,174 @@ class Donnee
}
static function metalAlli_Batiments($batiment, $niveau, Surface $planete)
{
switch($batiment)
{
case 0:
$metal = ceil(pow(1.5, $niveau)*68);
break;
case 1:
$metal = ceil(pow(1.6, $niveau)*53);
break;
case 2:
$metal = ceil(pow(1.5, $niveau)*242);
break;
case 3:
$metal = ceil(pow(1.5, $niveau)*92);
break;
case 4:
$metal = ceil(pow(1.73, $niveau)*800);
break;
case 5:
$metal = ceil(pow(2, $niveau)*750);
break;
default:
trigger_error("Batiment d'alliance ".$batiment." introuvable dans les données", E_USER_ERROR);
}
return $metal;
}
static function cristalAlli_Batiments($batiment, $niveau, Surface $planete)
{
switch($batiment)
{
case 0:
$cristal = ceil(pow(1.5, $niveau)*17);
break;
case 1:
$cristal = ceil(pow(1.6, $niveau)*27);
break;
case 2:
$cristal = ceil(pow(1.5, $niveau)*72);
break;
case 3:
$cristal = ceil(pow(1.5, $niveau)*37);
break;
case 4:
$cristal = ceil(pow(1.73, $niveau)*420);
break;
case 5:
$cristal = ceil(pow(2, $niveau)*500);
break;
default:
trigger_error("Batiment d'alliance ".$batiment." introuvable dans les données", E_USER_ERROR);
}
return $cristal;
}
static function hydrogeneAlli_Batiments($batiment, $niveau, Surface $planete)
{
switch($batiment)
{
case 0:
$hydrogene = 0;
break;
case 1:
$hydrogene = 0;
break;
case 2:
$hydrogene = 0;
break;
case 3:
$hydrogene = 0;
break;
case 4:
$hydrogene = ceil(pow(1.68, $niveau)*285);
break;
case 5:
$hydrogene = 0;
break;
default:
trigger_error("Batiment d'alliance ".$batiment." introuvable dans les données", E_USER_ERROR);
}
return $hydrogene;
}
static function creditsAlli_Batiments($batiment, $niveau, Surface $planete)
{
switch($batiment)
{
case 0:
$credits = ceil(pow(1.68, $niveau)*25);
break;
case 1:
$credits = ceil(pow(1.68, $niveau)*85);
break;
case 2:
$credits = ceil(pow(1.68, $niveau)*185);
break;
case 3:
$credits = ceil(pow(1.68, $niveau)*285);
break;
case 4:
$credits = ceil(pow(1.68, $niveau)*385);
break;
case 5:
$credits = ceil(pow(1.68, $niveau)*485);
break;
default:
trigger_error("Batiment d'alliance ".$batiment." introuvable dans les données", E_USER_ERROR);
}
return $credits;
}
static function tempsAlli_Batiments($batiment, $niveau, Surface $planete)
{
switch($batiment)
{
case 0:
$sec = pow(1.5, $niveau)*6;
break;
case 1:
$sec = pow(1.55, $niveau)*6;
break;
case 2:
$sec = pow(1.624, $niveau)*6;
break;
case 3:
$sec = pow(1.597, $niveau)*6;
break;
case 4:
$sec = pow(1.7, $niveau)*6;
break;
case 5:
$sec = ceil(pow(2, $niveau)*720);
break;
default:
trigger_error("Batiment d'alliance ".$batiment." introuvable dans les données", E_USER_ERROR);
}
//Accélération du temps de construction
$sec /= VITESSE;
return $sec;
}
static function neededAlli_Batiments($batiment, Surface $planete)
{
//Maximum 5 niveaux
if ($planete->batiments[$batiment] >= 5)
return false;
global $neededAlli_Batiments;
return Donnee::neededCheck($neededAlli_Batiments[$batiment], $planete);
}
static function print_neededAlli_Batiments($batiment, Surface $planete, $race)
{
global $neededAlli_Batiments;
return Donnee::print_neededCheck($neededAlli_Batiments[$batiment], $planete, $race);
}
static function donneeTechnologie($branche, $idTechnologie, $retour, Planete $planete)
{
//TODO : Faire un switch pour ne renvoyer le tableau que de la branche plutôt que ce tableau avec l'intégralité des branches.
@ -1198,7 +1366,7 @@ class Donnee
}
static function metalVaisseaux($vaisseau, Planete $planete, $nombre = 1)
static function metalVaisseaux($vaisseau, Surface $planete, $nombre = 1)
{
switch($vaisseau)
{
@ -1255,7 +1423,7 @@ class Donnee
return $metal * $nombre;
}
static function cristalVaisseaux($vaisseau, Planete $planete, $nombre = 1)
static function cristalVaisseaux($vaisseau, Surface $planete, $nombre = 1)
{
switch($vaisseau)
{
@ -1312,7 +1480,7 @@ class Donnee
return $cristal * $nombre;
}
static function hydrogeneVaisseaux($vaisseau, Planete $planete, $nombre = 1)
static function hydrogeneVaisseaux($vaisseau, Surface $planete, $nombre = 1)
{
switch($vaisseau)
{
@ -1369,7 +1537,7 @@ class Donnee
return $hydrogene * $nombre;
}
static function tempsVaisseaux($vaisseau, Planete $planete, $nombre = 1)
static function tempsVaisseaux($vaisseau, Surface $planete, $nombre = 1)
{
switch($vaisseau)
{
@ -1437,13 +1605,23 @@ class Donnee
$temps /= VITESSE;
//On tient compte des bonus
return ceil($temps/pow(1.25, ($planete->batiments[8] - $moins))) * $nombre;
if (SURFACE == "planete")
return ceil($temps/pow(1.25, ($planete->batiments[8] - $moins))) * $nombre;
else
return ($temps * $nombre);
}
static function neededVaisseaux($vaisseau, Planete $planete)
static function neededVaisseaux($vaisseau, Surface $planete)
{
global $neededVaisseaux;
return Donnee::neededCheck($neededVaisseaux[$vaisseau], $planete);
if (SURFACE == "asteroide")
{
return true;
}
else
{
global $neededVaisseaux;
return Donnee::neededCheck($neededVaisseaux[$vaisseau], $planete);
}
}
static function print_neededVaisseaux($vaisseau, Planete $planete, $race)

View file

@ -1,12 +1,13 @@
<?php
//Gestion des dépendances, on importe les classes nécessaires à la classe en cours
include_once("game/Class/class.exceptionHB.php");
include_once("game/Class/class.donnee.php");
/***************************************************************************
* class.file.php
* ----------------
* begin : Samedi 11 octobre 2008
* update : Jeudi 26 février 2009
* update : Vendredi 1e mai 2009
* email : nemunaire@gmail.com
*
*
@ -27,7 +28,9 @@ class File
function reajusteVacances($timeVac)
{
if (isset($this->file[0]))
$this->file[0] += time() - $timeVac;
$this->time += time() - $timeVac;
return serialize($this);
}
function refreshTime()
@ -69,6 +72,27 @@ class File
}
}
}
elseif ($this->type == "alli_batiments")
{
$batiments = $planete->batiments;
foreach ($this->file as $key => $element)
{
if ($element[1]) //Cas d'une démolition
{
$temps = Donnee::tempsAlli_Batiments($element[0], $batiments[$element[0]]--, $planete) * 0.6;
if (count($out) == 0)
$temps -= time() - $this->time;
$out[$key] = array($element[0], $element[1], ceil($temps));
}
else //Cas d'une construction
{
$temps = Donnee::tempsAlli_Batiments($element[0], ++$batiments[$element[0]], $planete);
if (count($out) == 0)
$temps -= time() - $this->time;
$out[$key] = array($element[0], $element[1], ceil($temps));
}
}
}