Valà, pour un jeu j'ai besoin d'un script qui permette un combat en plusieurs tours. Le problème, c'est que mes scripts de combats mettent toujours trop de temps à s'éxecuter, voir beaucoup trop de temps. Pour remédier au problème, j'ai pensé que je pouvais jouer des iframes pour pouvoir passer outre la limite de temps.
Donc voici, en gros, comment ça s'organise =>
=> Vérifications des attaques en cours dans la table Combat_T.
=> Si l'attaque à été lancée il y a plus de 3600 secondes, le combat dois avoir lieu (ouverture d'une IFrame pour son execution).
==> Dans cette iframe, une première page vérifie le statut du combat (Si l'attaquant ou le défenseur a encore des troupes : si l'un des deux n'en a plus, celui a qui il en reste est gagnant).
==> Si personne n'a gagné, phase de combat
===> On récupère les troupes, les données concernant chacunes des troupes du joueur, et on fait une phase de combat, puis on retourne à la page qui vérifie si l'un des joueurs à gagné ou non.
==> Si un joueur a gagné, on procède aux modifications qui s'imposent.
Cette portion de script correspond à la première partie : vérification des attaques en cours + ouverture d'une iframe pour chacunes des attaques qui doivent être executées.
$reponse = mysql_query("SELECT * FROM Combats_T");
while($donnees == mysql_fetch_array($reponse))
{
$TimestampBDD = $donnees['Timestamp'];
$RefTerritoire = $donnees['RefTerritoire'];
$VilleID = $donnees['VilleID'];
$ID_Combat = $donnees['ID_Combat'];
$Timestamp = time();
if($Timestamp <= $TimestampBDD + 3600)
{
?>
<IFRAME SRC="Combat/Launcher_TT.php?ID_Combat=<?php echo($ID_Combat); ?>" heigth="0" width="0" border="0" frameborder="0"></IFRAME><br />
<?
}
}
Soit dit en passant, la table Combat_T est vide, alors le contenu du while ne devrait pas s'éxecuter, si ?
Enfin bref... lorsque ce script est présent dans une page (je précise également que le script pour se connecter à la base de donnée est présent dans les pages en questions), la page ne veux plus se charger.
Ce script a-t-il quelque chose qui cloche ?