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 :

Problème de production [gestion de temps etc..] [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Par défaut Problème de production [gestion de temps etc..]
    Bonjour, je souhaite faire pour mon jeu un système de production de ressources.

    Le joueurs possèdent une production qui doit s'écouler sur une heure.
    Exemple je produit 1000 de ressources en 01heure. Mais je ne dois pas obtenir 1000 d'un coup, je dois obtenir 1.000 pendant l'heure qui s’écoule.

    Pour cela j'ai essayé de faire diverses choses, mais je n'ai pas réussi à faire des calcules de temps.

    J'ai donc essayé de faire:

    L'heure actuelle - Nouvelle Heure = Différence.

    Différence / 3600 (secondes) = Nombre temps écoule

    Nombre temps écoule * valeur de production (1000 pour l'exemple) = total à Update dans la BDD


    Par exemple, j'ai essayé se genre de chose mais je n'y arrive pas, je ne sais absolument pas comment faire, je voudrais bien un petit coup de main :p

    Cordialement,

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu peux nous montrer ton essai avec le code réel pour qu'on te dise ce qui ne va pas ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Par défaut
    Oui je peux je met plusieurs essaies ^^ tout n'est pas compréhensible.


    Code : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php
    // Initialisation des variables
    $iRessourcesDepart = $ress['gold']; 
    $iProductionParHeure = $mine_j['ouvrier'] + $mine_j['esclave']; 
    $iTempsDerniereModif = $mine_j['temps']; 
     
    //on calcule le nombre de secondes écoulées depuis la dernière mise à jour
    $iTempsActuel = time();
    $iTempsEcoule = $iTempsActuel - $iTempsDerniereModif ; 
     var_dump($iTempsEcoule);
    // On calcule le nombre de ressources produites durant le temps écoulé
    $iRessourceProduite = $iProductionParHeure * $iTempsEcoule;
     
    $iRessourceTotale = $iRessourcesDepart + $iRessourceProduite;
     
    // Mise a jour dans la bdd
    $up=$bdd->prepare('UPDATE ressource SET gold = gold+? WHERE id_planete = ? AND id_membre = ?');
    $up->execute(array($iRessourceProduite,$planete_utilise,$idmembre));
     
    ?>
    <html>
    <head>
        <script type="text/javascript">
            var iRessourceProduite = <?php echo $iRessourceProduite; ?>;
            var iProductionParHeure = <?php echo $iProductionParHeure; ?>;
            var iSecondes = 3600;
            function augmentation_ressource(){
     
                document.getElementById("ressource").innerHTML = iRessourcesDepart+(iProductionParHeure*iSecondes);
                iSecondes++;
                setTimeout("augmentation_ressource()",1000);
     
            }
        </script>
    </head>
    <body onload="augmentation_ressource()">
    <p>Votre production est de <span id="ressource"><?php echo $iRessourceTotale; ?></span> Or.</p>
    </body>
    </html>
    La c'est quelques infos trouvé sur le net combiné avec mes modifs mais sa ne fonctionne pas.

    Un second que j'ai essayé de faire que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $now = time();
    $date2 = strtotime("now");
    $diff = abs($date1 - $date2); // te retourne le nombre de seconde
    var_dump($diff);
    $nb_heure = $diff/3600; // te donne le nombre d'heure entre les deux dates 
     
    $total = $nb_heure*$valeur_ajouter; 
    var_dump($total);
    Voila deux exemples

    Cordialement,

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Qu'est ce que tu obtiens avec le premier code ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Par défaut
    Que des erreurs, enfin déjà il produit par secondes, au lieu de par heure j'ai essayé de l'adapter pour sa, mais sans succès. Ensuite il me prend pas la bonne donné de base il me met direct autant que le timestamp niveau ressource de base et après il rajoute 100 par secondes.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    enfin déjà il produit par secondes, au lieu de par heure
    Ce n'est pas ce que tu voulais ? que les 1000 soient gagnés progressivement ? (environ 0,27 par seconde donc).

    Ensuite il me prend pas la bonne donné de base
    La donnée de base pour quoi ?
    C'est quoi la bonne donnée de base ?

    Les colonnes "ouvriers" et "esclave" contiennent quoi et dans quelle unité ?
    La colonne "temps" est dans quel format ?

    Dans ta requête UPDATE d'ailleurs tu oublies de mettre à jour "temps".
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec la gestion du temps
    Par jurams dans le forum SDL
    Réponses: 10
    Dernier message: 08/07/2011, 10h24
  2. [SDL-jeux]problème gestion de temps
    Par men1n2 dans le forum SDL
    Réponses: 33
    Dernier message: 13/11/2007, 18h06
  3. Aide pour l'analyse d'un problème de gestion de temps
    Par PAINCO dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 03/06/2005, 15h49
  4. [VB.NET] Gestion en temps réel d'une bdd access
    Par qwiskas dans le forum Windows Forms
    Réponses: 6
    Dernier message: 12/02/2005, 19h37
  5. fonction de gestion du temps
    Par fati dans le forum C
    Réponses: 5
    Dernier message: 26/12/2002, 16h32

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