IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Conseil sur création de jeu php/MySQL


Sujet :

PHP & Base de données

  1. #21
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Merci pour l'explication

    Je sais pas concrètement si je vais pouvoir l'appliquer à mon cas mais j'en prends note surtout ce passage qui me semble intéressant

    Citation Envoyé par nours312 Voir le message
    Tout ceci pour dire, que le joueur qui se connecte lance le script permettant la mise à jour des données de tous les Joueurs lié à celui qui ce connecte (dans l'ordre de l'historique) ...
    Implicitement le premier joueur se connectant des 3 alors ?

    Pour le moment je bosse ma page de construction des batiments qui doit respecter les postulats suivants pour que le joueur puisse lancer les batiments :

    1) assez de ressources dispo
    2) 0 ou 1 batiments en construction (max 2 bats en construction simultané)
    3) pré-requis du batiment à construire atteint (par ex: pour lancer forge lvl6 il faut avoir chateau fort lvl4^^)

    Vive les tableaux de session multidimentionnels avec indicage constitués par d'autres tableaux multi

    Mais je m'en sors bien et comme le dev des technos se base sur celui des batiments à ceci près que je peux lancer 3 technos à la fois, ma classe technos devrait aller vite

    Merci de vos conseils en tout cas

  2. #22
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 34
    Points : 44
    Points
    44
    Par défaut
    Mais c'est un plaisir !...

    Nous avions pousser le vice jusqu'à prendre en considération les statu "bâtisseur" avec level pour les ouvriers dépendants de la cité en charge de construire les bâtiment, Bien évidemment, la vitesse de construction dépendais du nb d'ouvriers affecter à cette opération !... ce qui signifie que l'utilisateur pouvait lancer la construction de 20 bâtiments en y affectant 1 ouvrier à chaque ... ou 1 bâtiment avec 20 ouvrier ^^ ...

    Donc, je sais un peu à koi tu t'amuses en ce moment !.. dommage que je n'ai pas le temps de terminer le dev de ce Jeu, car ça aurait été un petit plaisir de le voir tourner autrement qu'en alpha !...

    Amuses toi bien et si besoin n'hésites pas

  3. #23
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bon j'ai fini ma page batiments du moins pour ce qui est des possibilité de developpement ou non des batiments. La voici (http://img22.imageshack.us/img22/202/gamets.png) les valeurs sont bidons

    En fait ma page se compose entre autre de 3 div (l'entete, la partie messagerie en haut du menu et la partie principale). Via AJAX, j'actualise mon entete toutes les 5s sans appel à la base (session) et la partie messagerie toutes les 20s (appel base). Mes classes sont envoyées dans mon div central via mon menu et le traitement des formulaires appel une page qui renvoi après traitement sur mon index qui lui meme capture une valeur de session pour reafficher une page voulue et actualiser la page (affectation des villageois, construction lancée...) ce qui m'amène à une nouvelle question ^^

    J'ai envie de créer une progressbar suite au lancement d'un bat/techno pour afficher le temps restant. Je pense que ca va pas me poser de problème mais par contre, je voudrais qu'elle s'actualise automatiquement (ca sert à rien sur une contruction de 5 jours mais c'est joli ). Dois je passer obligatoirement par js et setTimeout ?

  4. #24
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Salut,

    bon cette nuit j'ai réfléchi un peu (beaucoup ?) sur la question et j'en suis arrivé à la solution suivante :

    1) Création de la table events destinées uniquement à recevoir les evenements de constructions de batiments de developpement de technos et de creation d'unités


    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    CREATE TABLE `events` (
      `id_event` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `id_joueur` int(10) unsigned NOT NULL,
      `type_event` char(2) NOT NULL,
      `unites` varchar(30) DEFAULT NULL,
      `batiment` varchar(30) DEFAULT NULL,
      `technologie` varchar(30) DEFAULT NULL,
      `date_event_start` int(10) unsigned NOT NULL,
      `date_event_end` int(10) unsigned NOT NULL,
      PRIMARY KEY (`id_event`),
      KEY `id_joueur` (`id_joueur`),
      CONSTRAINT `events_ibfk_1` FOREIGN KEY (`id_joueur`) REFERENCES `joueurs` (`id_joueur`) ON DELETE CASCADE
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;


    Exemple d'insertions :

    INSERT INTO events VALUES(NULL, 2, 'CU', 'villageois-25', '', 'peau_de_fer-3', 1265411467, 1265418667);
    INSERT INTO events VALUES(NULL, 2, 'CB', '', 'laboratoire-4', '', 1265411467, 1265418667);
    INSERT INTO events VALUES(NULL, 2, 'DT', '', '', 'peau_de_fer-3', 1265411467, 1265418667);
    Seul le joueur concernés par les événements de cette table peut déclencher leur execution quand ceux ci sont terminés (time() > date_event_end)


    2) Création de la table attaques

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    CREATE TABLE `attaques` (
      `id_attaque` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `id_joueur` int(10) unsigned NOT NULL,
      `id_joueur_defenseur` int(10) unsigned NOT NULL,
      `unite1` varchar(30) DEFAULT NULL,
      `unite2` varchar(30) DEFAULT NULL,
       .....
      `unite1_def` varchar(30) DEFAULT NULL,
      `unite2_def` varchar(30) DEFAULT NULL,
       .....
      `date_event_start` int(10) unsigned NOT NULL,
      `date_event_end` int(10) unsigned NOT NULL,
      PRIMARY KEY (`id_event`),
      KEY `id_joueur` (`id_joueur`),
      CONSTRAINT `events_ibfk_1` FOREIGN KEY (`id_joueur`) REFERENCES `joueurs` (`id_joueur`) ON DELETE CASCADE
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

    Fonctionnement : au moment de l'attaque, l'attaquant insère un enregistrement dans cette table avec le listings de ces unités envoyé et (et c'est là que ca peut foirer lol) créé un événement MySQL (http://dev.mysql.com/doc/refman/5.1/...ate-event.html) qui s'executera a la second d'arrivée de l'attaque et remplira les champs unites du defenseur et validera l'attaque (is_attacked=true). Ensuite, n'importe quel joueur effectuant une action sur le jeu checkera cette table et executera les lignes is_attacked=true en blouquant en lecture la ligne pour ne pas qu'elle soit executée 2 fois (is_read=true). Problème : il faut gérer le fait qu'un autre joueur puisse attaquer de nouveau le defenseur entre le moment de la premiere attaque et l'execution de cette attaque par un joueur quelconque

    Voilà

Discussions similaires

  1. [AC-2007] Conseil sur création de tables
    Par manusp dans le forum Modélisation
    Réponses: 9
    Dernier message: 17/01/2011, 17h37
  2. [Mission/Télétravail] Création Site Web php/Mysql
    Par med_anis_dk dans le forum Demandes
    Réponses: 0
    Dernier message: 04/07/2010, 01h06
  3. [MySQL] Aide à la création site en php mysql
    Par nbjr1858 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/06/2007, 16h10
  4. conseil sur migration de access vers mysql
    Par jarod71 dans le forum Migration
    Réponses: 1
    Dernier message: 21/01/2007, 20h44
  5. xml - création xml via php(mysql) - manque données
    Par Raiders dans le forum XQUERY/SGBD
    Réponses: 5
    Dernier message: 23/03/2006, 18h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo