GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: chneubeul le 30 Octobre 2011, 23:55:20

Titre: [Résolu] Le fameux timestamp
Posté par: chneubeul le 30 Octobre 2011, 23:55:20
Bonsoir, me revoilà. :)

Alors voila, j'aimerais faire mon propre système de ban avec une durée. Tout d'abord quelle système me proposer vous d'utiliser pour la gestion du temps ? Personnellement, j'avais pensé à timestamp qui est génial, mais compliqués :D J'aimerais savoir comme je pourrais ajouter du temps à un timestamp existant( qui correspondrais à la date de déban) et savoir quel timestamp correspond à une date plus récente ? Merci :D  :cheers
Titre: Re : [Demande Aide] Le fameux timestamp
Posté par: Myk3L le 31 Octobre 2011, 00:27:01
Yop yop!

Faire un système de ban temporaire, c'est en fait pas compliqué ^^
Faut déjà commencer par créé une table bans_temp de 5 colonnes (c'est un exemple) [id, date, temps, date_fin, nom], sachant que date (par défaut CURRENT_TIMESTAMP), temps et date_fin sont de type TIMESTAMP.

Déjà, le timestamp c'est quoi : le nombre de secondes écoulés depuis le 1er janvier 1970 à 0 h 0.

Ensuite, le principe est le suivant :

Je tape /ban id tempsenheure

On convertie le tempsenheure en secondes (=temps), on ne récupère pas la date actuelle (c'est MySQL qui gère ça), on calcule le timestamp de fin (date+temps = date_fin) et on récupère le nom du joueur (=nom).

Ensuite, il ne nous reste plus qu'à sauvegarder ça dans la SQL.

Voilà pour l'enregistrement.

Après, à chaque connexion d'un joueur, il faut parcourir la table pour voir s'il est dedans (s'il est ban quoi). Pour la vérification, ça sera du type
if(date_fin >= timestamp actuel) delete la ligne dans la SQL, laisser le joueur se connecter
else bah fuck off, kick !

Voili voilou, c'est très schématisé, c'est moche, mais ça marche :D

EDIT :
Liens utiles :
http://wiki.sa-mp.com/wiki/Gettime (http://wiki.sa-mp.com/wiki/Gettime)
http://wiki.sa-mp.com/wiki/Useful_Functions#mktime (http://wiki.sa-mp.com/wiki/Useful_Functions#mktime)