JeuWeb - Crée ton jeu par navigateur
pb gestion ressources - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : pb gestion ressources (/showthread.php?tid=233)

Pages : 1 2 3


RE: pb gestion ressources - max - 21-09-2006

oui je comprend, c'est ce que je veu faire
mais je ne vois pas comment.... tu peut reprendre mon script et mettre a peu près ce a quoi tu pense?


RE: pb gestion ressources - Globe - 21-09-2006

Eh bien disons dans ta table qui gère les batiments des joueurs...

Tu met type du batiment, un champs pour chaque ressource requise pour le niveau suivant, le temps de construction et le niveau...

Ensuite genre :
Code PHP :
<?php 
$niveau_nouveau
= $data['niveau']+1;
$or_nouveau = $data['or']+(($data['or']/100)*10); // + 10% si je ne m'abuse desolé les maths pas mon truc
$temps_nouveau = $data['temps']+(($data['temps']/100)*10);



RE: pb gestion ressources - max - 23-09-2006

$or_nouveau = $data['or']+(($data['or']/100)*10);
avec se code on ne prend pas en compte le niveau du batiment non?


RE: pb gestion ressources - Globe - 24-09-2006

Tu n'as pas compris le principe...
or est le prix du niveau suivant, donc là tout ce que le champs batiment à besoin de faire est de s'incrémenter, le prix en or augment de 10% ainsi que tout le reste...


RE: pb gestion ressources - LittleQI - 25-09-2006

Si tu veux une montée exponetielle tu peu toujours faire:

soit prod la production par heure du batiment au niveau 1
et niveau le niveau actuel du batiment

(prod*niveau²)/2

ce qui te donne la production pour 1 heure


RE: pb gestion ressources - max - 25-09-2006

disons qu'on a 10000metal et une mine au niveau 1
on décide de passer sa mine niveau 2, on attend le temps nécessaire et au bout de ce temps....
on a une mine niveau 2 et 20000 metal (si on dit que la mine niveau 2 produit 2* plus que la niveau 1)
la forumule du batiment que ce soit expotentiel ou non je l'ai mais ce que je n'ai pas c'est la correction du bug si dessus
vous comprenez?


RE: pb gestion ressources - Globe - 25-09-2006

Non pas vraiment...


RE: pb gestion ressources - max - 26-09-2006

j'avou c'est dur
mais avec $metal=(prod*niveau²)/2
et qu'on est au niveau 1 avec 100 metal
lorsqu'on passe au niveau 2 on multiplie toute les ressources (donc 100) par (2²) /2
tu voi?
dans ogame quand on augmente les batiments, la prod /h agmente mais les ressources qu'on a deja obtenue précédament restent les memes
c'est mieu la?


RE: pb gestion ressources - gtsoul - 26-09-2006

même sans les innombrables fautes d'orthographe, de syntaxe et tout le reste c'est toujours aussi flou.
Le programmation est une affaire de rigueur; donc avant de nous montrer le moindre petit bout de code (dans lequel cas, on cherchera la faute de frappe), explique nous le système global.

C'est à dire le sens de tes variables (ex : c'est quoi $vrai_metal ? tu vends du faux peut-etre ?)
et un tableau explicatif de tes règles métier, genre :
niveau batiment | prix | production
1 | 1000 | 100%
2 | 2000 | 110%
3 | 4000 | 120%

et évite de comparer ton système de jeu à ogame ... c'est moyen pour une personne qui essaye de créer le sien propre.

A partir de là, si tu as clairement énoncé ton problème, tu laisses la main aux experts arithmético-programmateurs qui hantent ce forum.


RE: pb gestion ressources - LittleQI - 26-09-2006

Dis moi si je me trompes mais j'ai l'impression que tu calcule ton metal a chaque fois à partir de l'enregistrement tu joueur jusqu'à maintenant.

Le mieu est simplement de faire une table ressource contenant le nombre de resource ainsi que la derniere fois qu'elles ont été mises a jour (n format mktime tant qu'a faire)

ensuite tu fais juste
Code PHP :
<?
//on calcule la production pour 1 heure
$prod=(prod*niveau²)/2;
//on la transforme en prod pour 1 seconde
$prod=$prod/3600;
//on multiplie par le nombre de seconde ecoulée depuis la derniere mise a jour
$prod=$prod*(mktime()-$dernMAJ);
//on a plus qu'à ajouter la production à la valeur de metal de depart
$nouveauMetal = $metal+$prod;
?>

Reste plus qu'à le mettre a jour dans la base de données (la nouvelle d'ate de mise a jour + la valeur de metal)