Bonjour,

Nous avons mis en place un système de temps pour le développement des technologies au sein d’un jeu par navigateur. Pour faire simple, les joueurs possèdent différentes technologies qu’ils lancent au moment de leur choix via un bouton disponible a cote de la technologie choisie par le joueur, puis celle-ci dure alors "x" temps.

Pour cela, nous avons mis en place le code suivant :

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<?php
$title= "Technologie"; 
require_once 'header.php'; 
require_once 'arbre_technologie_general.php'; 
?>
<div class="titre_page">
	<div class="select_races">
		<div class="select">Commune<span><img src="<?php echo pathImg(); ?>arrow_down.png" alt=""/></span></div>
		<div class="option">
			<ol>
				<li><a href="technologie_humain.php">Humain</a></li>
				<li><a href="technologie_valhar.php">Valhar</a></li>
				<li><a href="technologie_ancien.php">Ancien Peuple</a></li>
				<li><a href="technologie_droide.php">Droïde</a></li>
				<li><a href="technologie_orak.php">Orak</a></li>
				<li><a href="technologie_inconnu.php">Inconnu</a></li>
			</ol>
		</div>
	</div>
 
	<div class="title">TECHNOLOGIES</div>
</div>
 
<?php if(!empty($_SESSION['error'])){ echo $_SESSION['error']; } 
 
	$race='commune';	
  $q=$bdd->prepare('SELECT tec.id, tec.nom, tec.image, tec.race, tec.description, tj.prix_gold, tj.prix_titane, tj.prix_cristal, tj.prix_orinia, tj.prix_orinium, tj.prix_organique,tj.nombre_chercheur,tj.temps,tj.niveau,tj.construction,tj.technologie_possede,tj.id_technologie,tj.id_membre FROM technologie AS tec LEFT JOIN technologie_joueur AS tj ON tec.id=tj.id_technologie WHERE tj.id_membre = ? AND tec.race= ? AND tj.technologie_possede = ? ORDER BY tec.id ASC');
  $q->execute(array($idmembre,$race,1));
 
	while($r=$q->fetch()) {
 
		// TEMPS  ET EVOLUTION
 
		$decompte_temps=$bdd->prepare("SELECT * FROM construction_techno WHERE joueur= :joueur") or die("Erreur requête reqEv");
		$decompte_temps->bindValue(':joueur', $idmembre, PDO::PARAM_INT);
		$decompte_temps->execute();
		$evolution_temps = $decompte_temps->fetch();
 
	?> 
			<!-- Partie à mettre dans le while -->
			<div class="global">
				<div class="inner_tech">
					<div class="left">
						<img src="<?php echo pathImg(); ?>technologies/general/<?php echo htmlentities($r['image']); ?>" alt="" />
						<div class="d"><?php echo convertTime(htmlentities($r['temps'])); ?></div>
 
					</div>
					<div class="right">
						<div class="ri1">
							<div class="r1"><?php echo htmlentities($r['nom']); ?></div>
							<div class="r2">Niveau actuel : <?php echo htmlentities($r['niveau']); ?></div>
						</div>
						<div class="ri2">
							<div class="rc1">
								<ul>
								<ul>
									<li>Or :</li>
									<li>Titane :</li>
									<li>Cristal :</li>
									<li>Orinia :</li>
									<li>Orinium :</li>
									<li>Organique :</li>
									<li>Chercheurs :</li>
								</ul>
							</div>
							<div class="rc2">
								<ul>
									<li><?php echo htmlentities($r['prix_gold']); ?></li>
									<li><?php echo htmlentities($r['prix_titane']); ?></li>
									<li><?php echo htmlentities($r['prix_cristal']); ?></li>
									<li><?php echo htmlentities($r['prix_orinia']); ?></li>
									<li><?php echo htmlentities($r['prix_orinium']); ?></li>
									<li><?php echo htmlentities($r['prix_organique']); ?></li>
									<li><?php echo htmlentities($r['nombre_chercheur']); ?></li>
								</ul>
							</div>
						</div>
						<div class="ri3">
							<form  action="<?php echo pathPhp(); ?>technologies/achat_technologie_general.php" method="post">
							<input type="hidden" name="id_cache" value="<?php echo htmlentities($r['id']) ?>">
							<input type="hidden" name="nom" value="<?php echo htmlentities($r['nom']) ?>">
							<input type="hidden" name="nombre_chercheur" value="<?php echo htmlentities($r['nombre_chercheur']) ?>">
							<input type="hidden" name="niveau" value="<?php echo htmlentities($r['niveau']) ?>">
							<input type="hidden" name="prix_gold" value="<?php echo htmlentities($r['prix_gold']) ?>">
							<input type="hidden" name="prix_titane" value="<?php echo htmlentities($r['prix_titane']) ?>">
							<input type="hidden" name="prix_cristal" value="<?php echo htmlentities($r['prix_cristal']) ?>">
							<input type="hidden" name="prix_orinia" value="<?php echo htmlentities($r['prix_orinia']) ?>">
							<input type="hidden" name="prix_orinium" value="<?php echo htmlentities($r['prix_orinium']) ?>">
							<input type="hidden" name="prix_organique" value="<?php echo htmlentities($r['prix_organique']) ?>">
							<input type="hidden" name="temps" value="<?php echo htmlentities($r['temps']) ?>">
							<?php 
							if($r['construction'] == 0)
							{
								echo '<input type="submit" class="upgrade" value="">';
 
							}
							elseif(!empty($evolution_temps['technologie'])) 
							{
								if ($evolution_temps['time'] > time()) 
								{
									$restant = ($evolution_temps['time']-time());
									echo "<script>compteARebours(".$restant.",'".$evolution_temps['post']."','technologie.php');</script>";
									echo '<div id="rebours_'.htmlentities($evolution_temps['post']).'"><i><span style="color:red">En cours de développement...</span></i></div>';
								}
								else
								{
									header('Refresh:0');
									$c_fini=1;
 
									if($c_fini==1)
										{
											$id_technologie=$_SESSION['id_technologie'];
 
											$suppr=$bdd->prepare('DELETE FROM construction_techno WHERE joueur = ?');
											$suppr->execute(array($idmembre));
 
											$lvl=$bdd->prepare('UPDATE technologie_joueur SET niveau = niveau+1 WHERE id_membre = ? AND id_technologie = ?');
											$lvl->execute(array($idmembre,$id_technologie));
 
											$aug=$bdd->prepare('UPDATE technologie_joueur SET construction = 0 WHERE id_membre = ?');
											$aug->execute(array($idmembre));
											/* COEFFICIANT MULTIPLICATEUR */
 
											$aug_temps=1.6;
											$coeff=1.3;
											$req_multip=$bdd->prepare('UPDATE technologie_joueur SET prix_gold = prix_gold*:prixgold, prix_titane = prix_titane*:prixtitane, prix_cristal = prix_cristal*:prixcristal, prix_orinia = prix_orinia*:prixorinia, prix_orinium = prix_orinium*:prixorinium, prix_organique = prix_organique*:prixorganique, nombre_chercheur = nombre_chercheur*:nombrechercheur, temps = temps*:temps WHERE id_membre = :idmembre AND id_technologie = :id');
											$req_multip->execute(array(':prixgold' => $coeff, ':prixtitane' => $coeff,':prixcristal' => $coeff,':prixorinia' => $coeff, ':prixorinium' => $coeff, ':prixorganique' => $coeff, ':nombrechercheur' => $coeff, ':temps' => $aug_temps, ':idmembre' => $idmembre, ':id' => $id_technologie ));
 
											echo '<meta http-equiv="refresh" content="0"/>';
 
										}
								}
							}
							else 
							{
								echo "<script>compteARebours(".$restant.",'".$evolution_temps['id']."','technologie.php');</script>";
								echo '<div id="rebours_'.htmlentities($evolution_temps['id']).'"><i></i></div>';
 
							}
							?>
							</form>
						</div>
						<div class="description">
							<?php echo htmlentities($r['description']); ?>
						</div>
					</div>
				</div>
			</div>
			<!-- Fin du while -->
 
	<?php 
	} 
	?>
<?php require_once '../footer.php'; ?>
Cela fonctionne très bien mais le temps s’affiche toujours sur la première technologie de la page technologie, or nous voulons que le temps s’affiche uniquement sur la technologie lancée par le joueur.

Cordialement,