Association Shodaria : Forum de la communauté, aide et création de jeux gratuits en ligne
Nouvelles: Ouverture du forum de l'association Shodaria !
 
*
Bienvenue, Invité. Veuillez vous connecter ou vous enregistrer. 07 Janvier 2009, 17:45


Connexion avec identifiant, mot de passe et durée de la session


« sujet précédent | | sujet suivant »
Pages: [1] Imprimer
Auteur Sujet: Rechargement des points d'action  (Lu 342 fois)
dante
Administrator
Sr. Member
*****

Karma: 21
Hors ligne Hors ligne

Messages: 380



Voir le profil WWW Courriel
Rechargement des points d'action
« le: 15 Octobre 2006, 01:17 »

Rechargement des points d'action : (niveau débutant)


Pour faire un rechargement exact à la seconde pret, vous avez besoin de 3 champs dans votre table.
Il est conseillé de séparer la table "membre" qui contient les informations de connexion et celle du "joueur" qui contient le pseudo, les caractéristiques, et donc les PA.

La table membre devrait avoir :
- un champ de type INT (10) qui contiendra la date de la dernière connexion à la seconde pret (date_der_connexion)
- un champ de type SMALLINT (4) qui contiendra le reste du calcul des PA en secondes (sec_pa)

La table joueur devrait avoir :
- un champ de type SMALLINT (4) qui représente le nombre de PA courant (PA)


Si vous avez un fichier de configuration (vivement conseillé),  ajoutez y les variables suivantes :

Code:
$global_PA_MAX = 700;     // nombre de PA au maximum
$global_PA_Temps=600;       // temps de rechargement d'un PA en seconde, ici un toutes les 10 minutes

Ensuite, à la connexion du joueur :

Code:
// on récupère les infos du joueur
$req = mysql_query('SELECT PA, date_der_connexion , sec_pa, id_joueur FROM membre m, joueur j WHERE m.id_joueur = j.id && m.id = '.$id.' LIMIT 1');
$perso = mysql_fetch_array($req);

// on va calculer le nombre de secondes écoulées depuis sa dernière connexion + le reste de sa dernière connexion
$seconds=time()- ($perso['date_der_connexion']+$perso['sec_pa']);

//on va déterminer le nombre de PA gagné, floor() arrondi à l'entier inférieur le calcul.
$nbPA=floor($seconds/$global_PA_Temps);

//calculons le reste de la division, on le rajoutera à la prochaine connexion
$Reste_PA=$seconds % $global_PA_Temps;

//on vérifie que notre résultat $nbPA ne dépasse pas le maximum
if($global_PA_MAX<$nbPA+$perso['PA']) $nbPA=$global_PA_MAX-$perso['PA'];

//on affiche le résultat
echo 'Gain de '.$nbPA.' PA, prochain PA dans '.$Reste_PA.' seconde(s) ';

//mise à jour
mysql_query('UPDATE membre SET sec_pa = '.$Reste_PA.', date_der_connexion = '.time().' WHERE id = '.$id.' LIMIT 1');
mysql_query('UPDATE joueur SET PA = PA + '.$nbPA.' WHERE id = '.$perso['id_joueur'].' LIMIT 1');


voilà, les PA seront maintenant distribués à la seconde prêt :=)
« Dernière édition: 15 Octobre 2006, 01:18 par dante » Journalisée
Pages: [1] Imprimer 
« sujet précédent | | sujet suivant »
Aller à:  

Propulsé par MySQL Propulsé par PHP Association Shodaria : Forum de la communauté, aide et création de jeux gratuits en ligne | Powered by SMF 1.0.9.
© 2001-2006, Lewis Media. All Rights Reserved.

phpMyVisites
XHTML 1.0 Transitionnel valide ! CSS valide ! Dilber MC Theme by HarzeM