20-05-2007, 10:19 AM
Y a de l'idée, mais il ne faut pas seulement prévenir le joueur : il faut aussi limiter vraiment ses ressources. Donc le test ressemblerait plus à :
... Ce qui signifie tout simplement, "si $ ressources est supérieur à 100, alors $ressources vaut 100 (le max)".Code PHP :
<?php
if ($ressources > 100) {
$ressources = 100;
}
Pour engager des troupes, le mieux est d'utiliser 3 tables (mon truc est peut-être pas ce qu'il y a de plus pro, mais les "vrais" développeurs corrigeront. Moi je ferais ça comme ça :
- 1 table joueurs. (tu y accèdes peu et tu récupères les infos principales dans la superglobale de session)
- 1 table profil_troupes. (on y accède peu si c'est possible, il peut être intéressant de mettre ces infos directement dans un fichier XML ou un page php appelée depuis le script principal, pour limiter les accès à la base de données.)
- 1 table troupes_joueurs.
Ca ressemblerait à ça, en gros :
Et dans le code, c'est un truc comme ça :
Code PHP :
<?php
//On récupère les infos importantes sur le joueur
if (isset($_SESSION['id'])) {
$idJoueur = $_SESSION['id'];
$nom = $_SESSION['nom'];
$argent = $_SESSION['argent'];
$niveau = $_SESSION['niveau'];
}
else {
//Sinon, on affiche un message d'erreur et on arrête le script...
}
//On récupère les caractéristiques de la troupe demandée.
//on considère que le joueur a envoyé ces infos par formulaire, depuis une page de recrutement
if (isset($_POST['id_troupe'])) {
//On fait normalement d'autres vérifs
$idTroupe = $_POST['id_troupe']; //le type de troupes demandées
$nbTroupe = $_POST['nb_troupe'];
//On récupère les infos dans la table profil_troupes
// ----Connexion BDD----
$requete = mysql_query("SELECT cout FROM profil_troupes WHERE id='".$idTroupe."'")
// Ici, on a besoin que du cout, mais on pourrait récupérer plus
$troupe = mysql_fetch_array ($requete);
$coutTotal = $troupe['coup'] * $nbTroupe;
if ($coutTotal <= $argent) {
echo "Vous n\'avez pas assez d'argent !";
// Arrêt du script
}
// ... requête à la table joueur pour retirer du pognon ...
// ... mais je ne vais pas le faire
//On initialise les autres valeurs
$blessure = 0;
$moral = 100;
$xp = 0;
// ... on enregistre les donnees dans la table troupes_joueurs
// avec un simple INSERT.
mysql_query("INSERT INTO troupes_joueurs VALUES('', '".$idJoueur."', '".$idTroupe."', '".$nbTroupe."', '".$blessure."', '".$xp."', '".$moral."')");
// ----Deconnexion BDD----
}