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 :

[Conception] Jeu en ligne (augmenter les ressources automatiquement) [Fait]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Par défaut [Conception] Jeu en ligne (augmenter les ressources automatiquement)
    Bonjour,
    avec des copains nous nous sommes décidés à faire un jeux en ligne en php (du type ogame ou travian pour ceux qui connaissent).

    Mais nos maigres connaissances butent déja pour la mise à jour des ressources à chaque actualisation de la page par l'utilisateur.

    Je m'explique, pendant l'inscription les ressources sont définies à 800 (pour les 4 types de ressources), mais nous cherchons à ce que ces ressources augmentent en fonction du temps (et que l'UPDATE se fasse au chargement de la page par l'utilisateur).

    Je pense qu'il faudrait utiliser la commande "date" avant et apres et augmenter les ressources en fonction du temps passé entre les deux actualisations , mais ca m'a l'air bien compliqué. Connaissez vous plus simple ?



    Merci d'avance

  2. #2
    Membre éclairé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Par défaut
    Citation Envoyé par oklama
    Bonjour,
    avec des copains nous nous sommes décidés à faire un jeux en ligne en php (du type ogame ou travian pour ceux qui connaissent).

    Mais nos maigres connaissances butent déja pour la mise à jour des ressources à chaque actualisation de la page par l'utilisateur.

    Je m'explique, pendant l'inscription les ressources sont définies à 800 (pour les 4 types de ressources), mais nous cherchons à ce que ces ressources augmentent en fonction du temps (et que l'UPDATE se fasse au chargement de la page par l'utilisateur).

    Je pense qu'il faudrait utiliser la commande "date" avant et apres et augmenter les ressources en fonction du temps passé entre les deux actualisations , mais ca m'a l'air bien compliqué. Connaissez vous plus simple ?



    Merci d'avance

    Soit tu a un programme sur le serveur qui se charge d'actualiser la base de donnée, et fait donc evoluer les resources même quand tu n'est pas connecter (Ex : Ogame)

    Soit tu fait apelle à un script qui recalcule les resources à chaque actualisation/Interraction(si les autres joueurs veulent récupèrer des informations sur un autre joueur) avec le compte en vérifiant une diférence de date (On peut dire que c'est actualiser toute les heures?) et si la diférence dépasse une certaine valeur, alors on effectu une mise à jour (et on stoque le moment présent)
    Dans ce cas un timestamp est ce qu'il me semble le plus adapter.
    Mes articles Développez | Dernier article : Raytracer en haskell
    Network library : SedNL | Zenol's Blog : http://zenol.fr

    N'oubliez pas de consulter la FAQ et les cours et tutoriels.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    Citation Envoyé par oklama
    commande "date"
    la fonction date() n'est utilisé que pour transformer un timestamp, donné par time().

    C'est donc beaucoup plus simple pour vous de travailler directement sur la valeur du time() sachant qu'elle s'exprime en seconde.

    Bonne chance pour votre projet.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Par défaut
    Merci à vous pour vos réponses rapides et précises.

    Je pense que dans ma situation, comme le dit SpiritOfDoc, il serait plus adapté de faire un programme qui se charge d'actualiser ma base de donnée, mais je ne sais pas comment m'y prendre , alors je vais me rabattre vers time().

    Je vous tient au courant, merci de votre soutient.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    J'ai rien dit de telle :p.

    Par contre tu peux très bien utiliser les sessions, ça devrait te permettre de bien gérer les temps sans utiliser (de trop) ta BDD.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Par défaut


    Excuse mon manque de connaissance, mais que veus tu dire par la ? J'utilise les sessions pour transmettre les variables, tu penses qu'il serait préférable de stocker les valeures des ressources dans les variables sessions ? parce que ca me parait plutôt difficile, il faudrait alors que l'UPDATE se fasse quand l'utilisateur appuie sur "deconnecter", ce qui entrainerai pas mal de contrainte au niveau du jeux.
    J'ai cherché si il y avait une fonction time() spécifique aux sessions, mais je n'ai pas trouvé.

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    Les sessions ne sont pas utiliser que pour garder un login en mémoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['time'] = time();
    Ceci te met en variable session le timestamp.

    Et je ne vois pas vraiment le rapport entre le lien déconnexion et les sessions (comme dit plus haut, ça n'a pas d'utilisation spécifique :p).

    Bonne soirée.

    [EDIT] : Une belle FAQ et des beaux tutoriaux

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Par défaut
    Bonjour à tous et bienvenue parmis vous !!!
    Je me présente, j'ai 15 ans, bientôt 16.
    Moi-même, je suis en train de créer un jeu. Je te le dis honnêtement : je ne suis pas un grand programmeur. Voila tt d'abord l'adresse de mon site (qui risque de changer) :
    http://samax69.free.fr/site/login.php
    Bon... Il semble encore y avoir du travail, mais vu de loin, je pense qu'il devrait être terminé avant les vacances d'été...
    Va jeter également un oeil au forum à cette adresse :
    http://zellios-empire.forumactif.com

    Comment ais-je fait pour les ressources : je t'envoie directement mon script si tu veux (allez, je suis sympa!!!)

    Bien sûr, ma solution est loin d'être la meilleure, mais ça semble fonctionner...

    <?php

    session_start();

    $pseudo=$_SESSION['login']; <------ la tu prends le pseudo du joueur qui vient de de logguer
    $pass=$_SESSION['password']; <------son mot de passe


    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>

    <head>
    <title>ZellioS EmpireS</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_reloadPage(init) { //reloads the window if Nav4 resized
    if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
    else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
    }
    MM_reloadPage(true);
    //-->
    </script>
    </head>


    <body>


    <div align="center">
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <p><a href="Champs.php"><img src="select_chps.gif" width="92" height="92" border="0"></a>_ <a href="Nveau-Site.php"><img src="select_city.gif" width="92" height="92" border="0"></a>_ <img src="select_chps.gif" width="92" height="92">_ <img src="select_chps.gif" width="92" height="92"> <br/>
    </p>
    </div>

    <div align="center"></div>
    <div align="center"></div>
    <div align="center">
    <?php


    mysql_connect("http://sql.free.fr", "*****", "*****"); // Connexion à MySQL
    mysql_select_db("*****"); // Sélection de la base coursphp
    $reponse111 = mysql_query("SELECT * FROM $pseudo WHERE id=25"); // Requête SQL
    $données111 = mysql_fetch_array($reponse111);
    $nivo_bois = $données111['contenu'];

    $reponse112 = mysql_query("SELECT * FROM $pseudo WHERE id=26"); // Requête SQL
    $données112 = mysql_fetch_array($reponse112);
    $nivo_terre = $données112['contenu'];

    $reponse113 = mysql_query("SELECT * FROM $pseudo WHERE id=27"); // Requête SQL
    $données113 = mysql_fetch_array($reponse113);
    $nivo_fer = $données113['contenu'];

    $reponse114 = mysql_query("SELECT * FROM $pseudo WHERE id=28"); // Requête SQL
    $données114 = mysql_fetch_array($reponse114);
    $nivo_céré = $données114['contenu'];

    $reponse115 = mysql_query("SELECT * FROM $pseudo WHERE id=29"); // Requête SQL
    $données115 = mysql_fetch_array($reponse115);
    $time_bdd = $données115['contenu'];

    $reponse116 = mysql_query("SELECT * FROM $pseudo WHERE id=1"); // Requête SQL
    $données116 = mysql_fetch_array($reponse116);
    $bois = $données116['contenu'];

    $reponse117 = mysql_query("SELECT * FROM $pseudo WHERE id=2"); // Requête SQL
    $données117 = mysql_fetch_array($reponse117);
    $terre = $données117['contenu'];

    $reponse118 = mysql_query("SELECT * FROM $pseudo WHERE id=3"); // Requête SQL
    $données118 = mysql_fetch_array($reponse118);
    $fer = $données118['contenu'];

    $reponse119 = mysql_query("SELECT * FROM $pseudo WHERE id=4"); // Requête SQL
    $données119 = mysql_fetch_array($reponse119);
    $céré = $données119['contenu'];

    mysql_close();

    $bois=$bois/1000000;

    $fer=$fer/1000000;

    $terre=$terre/1000000;

    $céré=$céré/1000000;

    $timestamp_actuel=time();

    $temps_ecoule = $timestamp_actuel - $time_bdd;

    $prod_bois=$nivo_bois*$nivo_bois*$nivo_bois*2;

    $prod_terre=$nivo_terre*$nivo_terre*$nivo_terre*2;

    $prod_fer=$nivo_fer*$nivo_fer*$nivo_fer*2;

    $prod_céré=$nivo_céré*$nivo_céré*$nivo_céré*4;

    $bois_produit= $prod_bois / 3600 * $temps_ecoule;

    $terre_produit=$prod_terre/3600*$temps_ecoule;

    $fer_produit=$prod_fer/3600*$temps_ecoule;

    $céré_produit=$prod_céré/3600*$temps_ecoule;

    $boisnv=($bois+$bois_produit)*1000000;

    $terrenv=($terre+$terre_produit)*1000000;

    $fernv=($fer+$fer_produit)*1000000;

    $cérénv=($céré+$céré_produit)*1000000;



    mysql_connect("http://sql.free.fr", "*****", "*****"); // Connexion à MySQL
    mysql_select_db("*****"); // Sélection de la base coursphp
    mysql_query("UPDATE $pseudo SET contenu=$boisnv WHERE id=1"); // Requête SQL
    mysql_query("UPDATE $pseudo SET contenu=$terrenv WHERE id=2"); // Requête SQL
    mysql_query("UPDATE $pseudo SET contenu=$fernv WHERE id=3"); // Requête SQL
    mysql_query("UPDATE $pseudo SET contenu=$cérénv WHERE id=4"); // Requête SQL
    mysql_query("UPDATE $pseudo SET contenu=$timestamp_actuel WHERE id=29"); // Requête SQL

    mysql_close();

    mysql_connect("http://sql.free.fr", "*****", "*****"); // Connexion à MySQL
    mysql_select_db("*****"); // Sélection de la base coursphp

    $reponse196 = mysql_query("SELECT * FROM $pseudo WHERE id=1"); // Requête SQL
    $données196 = mysql_fetch_array($reponse196);
    $boisnv = $données196['contenu'];

    $reponse197 = mysql_query("SELECT * FROM $pseudo WHERE id=2"); // Requête SQL
    $données197 = mysql_fetch_array($reponse197);
    $terrenv = $données197['contenu'];

    $reponse198 = mysql_query("SELECT * FROM $pseudo WHERE id=3"); // Requête SQL
    $données198 = mysql_fetch_array($reponse198);
    $fernv = $données198['contenu'];

    $reponse199 = mysql_query("SELECT * FROM $pseudo WHERE id=4"); // Requête SQL
    $données199 = mysql_fetch_array($reponse199);
    $cérénv = $données199['contenu'];

    mysql_close();

    $boisnv=$boisnv/1000000;

    $terrenv=$terrenv/1000000;

    $fernv=$fernv/1000000;

    $cérénv=$cérénv/1000000;

    echo "<p align=\"center\"><img src=\"wood.gif\" width=\"29\" height=\"22\"> $boisnv
    <img src=\"2.gif\" width=\"25\" height=\"19\"> $terrenv
    <img src=\"3.gif\" width=\"26\" height=\"21\"> $fernv
    <img src=\"e53.gif\" width=\"34\" height=\"29\"> $cérénv<br/></p>";

    ?>
    <p>&nbsp;</p>
    <div id="Layer1" style="position:absolute; width:200px; height:207px; z-index:1; left: -17px; top: 405px;"><a href="Champs.php"><img src="Login.gif" width="146" height="40" border="0" usemap="#Map">
    <map name="Map">
    <area shape="rect" coords="2,4,143,38" href="login.php" target="_blank">
    </map>
    <img src="Inscription.gif" width="146" height="40" border="0" usemap="#Map2">
    <map name="Map2">
    <area shape="rect" coords="1,2,147,42" href="Form_inscr.php">
    </map>
    <img src="mode-d'emploi.gif" width="146" height="40" border="0" usemap="#Map3">
    <map name="Map3">
    <area shape="rect" coords="1,2,147,41" href="http://www.zellios-empire.forumactif.com" target="_blank">
    </map>
    <img src="Forumb.gif" width="146" height="40" border="0" usemap="#Map4">
    <map name="Map4">
    <area shape="rect" coords="2,2,146,39" href="http://www.zellios-empire.forumactif.com" target="_blank">
    </map>
    </a></div>

    </div>
    </body>
    </html>


    Te pose pas de questions sur tt ce qui est images et autre, mais je t'envoie ce script à titre d'exemple, pour que tu visualises. D'après moi, la bdd c'est ce qu'il y a de mieux : aucun risque d'erreur, de bug ou autre, aucune perte de données, l'utilisateur n'a pas à cliquer sur le lien "déconnection" avant de quitter le jeu...

    Tu te créés une page php "ressources.php", par exemple, dans cette page, tu fais tout ce dont il y a besoin au niveau des ressources, et ensuite, sur chacune des pages de ton jeu (enfin... pas pr l'index et tt, tu gères comme un grand), tu inclus cette page ressources avec la balise include().

    PS: tu remarqueras que j'ai fait des divisions et multiplications qui pourront te paraître inutiles (genre /1000000000) mais j'ai eu un p'ti pb avec ma base de données. En effet, j'arrivais pas à enregistrer des nombres décimaux (avec la catégorie "float", ds ma bdd, il ne garde que le premier chiffre après la virgule) alors j'ai arrangé ça en mettant des nombres conséquents ds ma bdd, puis en les divisant pour que l'utilisateur aie un nombre résonnable de ressources.

    Bon... J'espère que mon aide saura te satisfaire. Sur ce, slt et à bientôt.

    Re-PS : Si ça vs intéresse, toi et tes copains pourriez même vous joindre à moi pour la création du jeu : moi-même, je suis nul en programmation, ce jeu me prend à plein temps et je suis seul pour le créer. Pour me contacter, tu peux m'envoyer un MP de le forum de mon jeu (cf l'adresse plus haut).

  9. #9
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 495
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 495
    Par défaut
    salut,
    les balise CODE auraient été le bienvenue...
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

Discussions similaires

  1. Augmenter les ressources utilisées par le navigateur
    Par SirJAH dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/01/2015, 14h17
  2. création de lignes et les supprimer automatiquement
    Par dev2010 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/09/2010, 15h17
  3. [Projet en cours] Conception jeu en ligne
    Par Flavius35 dans le forum Projets
    Réponses: 5
    Dernier message: 09/02/2010, 22h07
  4. augmenter les ressources processeur
    Par Phiss dans le forum IIS
    Réponses: 8
    Dernier message: 29/10/2007, 12h08

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