Bonjour, j'ai appris le PHP il y a deux semaines, et j'ai créé le site que je vais vous montrer en 4 jours... Celui-ci comporte des bugs, ainsi je travaille en local pour implémenter de nouvelles possibilités...

Le jeu est assez basique, un dinosaure a faire évoluer et combattre. J'ai implémenté une fonctionnalité qui consiste à avoir un niveau de régénération de vie augmentée. C'est seulement après, que je me suis rendu compte du soucis que cela posait.

En effet, avant, pour régénérer la vie des gens, je procédais ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
	$bdd->query("UPDATE dinosaure SET lifeActu = lifeActu + (addLIFE/(15 - ".$data['niveau']."))*".$coeff." WHERE lifeActu < addLIFE"); 
	$bdd->query('UPDATE dinosaure SET lifeActu = addLIFE  WHERE lifeActu > addLIFE');

Deja, à mon avis, on peut concaténer ces deux requêtes, mais j'ignore comment...

Mais le plus gros problème n'est pas là...

Avant, c'était UN joueur, qui en executant cette commande, mettait à jour la vie de tous les joueurs... Quand la régénération de vie était identique pour tous, ça ne posait aucun problème, seulement, désormais, il y a un soucis...


J'ai une table dinosaure, qui contient la vieActuelle et la vieMax
et une table niveauAmelioration qui contient :
l'idMembre, l'idAmelioration et le niveau ;

"UPDATE dinosaure SET lifeActu = lifeActu + (addLIFE/(15 - ".$data['niveau']."))*".$coeff."

Le coefficient n'est pas important, mais je vous mets ce à quoi cela correspond :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$tpsRest = getNextRound($bdd);
	if($tpsRest <= 0){
 
	$rendu = $tpsRest * -1;
	$coeff = ($rendu/TIME_UPDATE_REGEN) + 1;

$data['niveau'] s'obtient grâce à la commande suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
	$req = $bdd->query('SELECT niveau FROM niveauamelioration WHERE idMember = '.$_SESSION['idMember'].' AND idAmelioration = 6');
	$data = $req->fetch();

Le problème qui se pose, c'est que les joueurs vont régénérer leur vie d'un montant de : LEURVIEMAX/(15 - NIVEAUAMELIORATION)
et que c'est celui qui exécute le script qui va imposer le montant de pv rendus...

Je ne maîtrise que les notions basiques des reqêtes... Ainsi, je n'sais pas comment en faire une qui, pour chaque idMember qu'elle traiterait, elle irait chercher les informations le concernant afin de déterminer la vie qui doit lui être rendu... J'attends vos réponses avec impatience afin de pouvoir continuer...


Le jeu : http://dinoland.no-ip.org