Créer une variable qui se vide petit à petit... [Résolu/Fermé]

Signaler
Messages postés
107
Date d'inscription
mardi 1 septembre 2009
Statut
Membre
Dernière intervention
1 juin 2014
-
Messages postés
107
Date d'inscription
mardi 1 septembre 2009
Statut
Membre
Dernière intervention
1 juin 2014
-
Bonjour !

Je débute en php & mySQL et je me lance dans la création d'un site de simulation, gestion d'un personnage virtuel. (je sais c'est un assez mauvais plan pour une débutante ^^)

Donc, mon problème concerne les variables Faim et Soif du personnage virtuel du membre.

J'aimerai créer une colonne dans ma table mySQL intitulée "Faim" et une autre "Soif". Celles-ci aurait comme valeur par défaut 100 mais se videraient petit à petit pour que, si le membre ne nourrit pas son personnage pendant 72 heures, la variable arrive à 0.

En revanche, je ne sais pas du tout quel type de colonne je doit créer pour ce genre de chose... Quel doit être le type de la colonne ? Ou bien simplement une INT mais un code php qui gère tout ça ?

Merci d'avance de vos réponses !
J'espère ne pas avoir été trop floue dans mes explications...

A bientôt.

5 réponses

Messages postés
468
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
9 juillet 2020
100
Bonsoir,

Si la valeur de départ est 100 et que cette valeur va décroître, il semble que le type entier tinyint conviendrait puisque : signées, les valeurs évoluent de -128 à 127 et les entiers non signés de 0 à 255.

La table ne fera pas de traitement. Elle stockera des données, en l'occurrence des valeurs. Les valeurs à stocker régulièrement dans la base de données seront calculées par le script PHP en fonction de tes règles de jeu.

Bon courage...
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60414 internautes nous ont dit merci ce mois-ci


Bonjour

Non ce n'est pas possible de faire décroître ta variable quand personne ne clique sur rien, mais ce n'est pas grave car ça ne sert à rien. Si personne n'est connecté, peu importe que ta variable évolue ou non, ce qui compte, c'est qu'elle soit à jour quand tu en auras réellement besoin.
Pour ça, il suffit d'ajouter une colonne Timestamp (par exemple) qui mémorise quand a eu lieu la dernière mise à jour de ton champ. Quand tu reviens sur ta page, tu fais le calcul des points perdus pendant tout le temps ou il ne s'est rien passé, et tu remets à jour le nombre de points restants ainsi que le timestamp.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60414 internautes nous ont dit merci ce mois-ci

Messages postés
468
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
9 juillet 2020
100
Bonjour,

La mécanique est la suivante:

Un script est déposé sur un site web.
Il ne fait rien.
Lorsqu'un visiteur tape l'adresse du script pour l'afficher, le script va :
- être vérifié quant à sa syntaxe et s'arrêter s'il y a erreur.
- S'il n'y a pas d'erreur de syntaxe, les instructions qui s'y trouvent : comptage, activités en relation avec une base de données (enregistrements, modifications, suppressions) vont être exécutées.
- En général le script produit avant, pendant ou après le traitement le code HTML qui sera envoyé au navigateur du visiteur.

En clair, le visiteur tape l'adresse de la page et voit dans son navigateur le résultat produit. Mais le traitement se fait SUR le serveur. Et il se fait quand le script est lancé, c'est à dire quand il est sollicité, quand son adresse est sollicitée ; par un visiteur ou par un robot qui fouille le net. Mais la visite par les robots est aléatoire. Donc tant que le script n'est pas sollicité, il ne pourra pas effectuer de décompte de temps.

Il me semble, mais d'autres lecteurs pourront confirmer, que si tu tiens absolument au décompte du temps, il faudra que ce décompte soit effectué par le serveur lui-même par un cron. Mais le mieux est encore l'accès au jeu par une identification.
- Lors du premier accès (début de jeu) tu enregistres la date et l'heure.
- Chaque action propre à ton jeu est enregistrée avec la date et l'heure.
- A chaque accès ultérieur, à chaque ré-affichage de page ou à chaque consultation des points restants, tu notes l'heure du moment et en fonction de l'heure de début, des actions effectuées et du temps passé, tu refais le décompte des points

Voilà, ce sont les solutions auxquelles je pense. Peut-être y en a-t-il d'autres... Voir d'autres avis aussi..

Bonne suite.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60414 internautes nous ont dit merci ce mois-ci

Messages postés
107
Date d'inscription
mardi 1 septembre 2009
Statut
Membre
Dernière intervention
1 juin 2014
11
Merci beaucoup pour ta réponse :)

En revanche, du coup, mon problème est que j'aimerai faire décroître la valeur même lorsque le membre n'est pas connecté, et donc ne cliquera sur rien.. Toutes les heures la variable perdra 3 points, par exemple, mais sans que le membre intervienne dans ce script.

Est-ce possible en php ?
Messages postés
107
Date d'inscription
mardi 1 septembre 2009
Statut
Membre
Dernière intervention
1 juin 2014
11
Bonjour,

Merci, je n'avais pas pensé à utiliser cette méthode.
Je vais donc essayer cette solution.

Merci pour la réponse !