GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Nikko™ le 27 Avril 2009, 21:37:51

Titre: Temps restant avec un timer
Posté par: Nikko™ le 27 Avril 2009, 21:37:51
Bonsoir tout le monde,

Voila, j'ai besoin de votre aide, j'ai un timer qui se déclenche lors d'un commande.
Lors d'une autre commande, je voudrais bien que ça affiche le temps restant "dans" le timer. Est-ce possible ? Si oui comment faire ?
Merci beaucoup d'avance.

++
nikko
Titre: Re : Temps restant avec un timer
Posté par: Syg le 27 Avril 2009, 22:08:47
Si tu es sous Windows, il suffit d'utiliser la fonction GetTickCount.

Exemple :
new TempsDebutTimer;

public Montimer ()
{
   TempsDebutTimer = GetTickCount ();
}

// Quelque part dans le script
SetTimer ("MonTimer", TempsTotalTimer, 0);

public OnPlayerCommandText (...)
{

   if (strcmp ("/Combien", ...)
   {
      new TempsRestant = TempsDebutTimer + TempsTotalTimer - GetTickCount ();
      printf ("Temps restant pour le timer : %d ms (%d s)", TempsRestant, TempsRestant/1000);
   }
}

NB : La fontion GetTickCount renvoie le nombre de millisecondes écoulées depuis le démarrage de la machine. Ce nombre repasse à 0 tous les 49 jours (la machine ne doit pas être arrêtée entre temps). Il y a donc très peu de chance de tomber dans le cas du passage à 0 de GetTickCount mais si c'est la cas, le calcul précédent sera erroné.

Sous Linux, il faut remplacer les appels à GetTickCount par des appels à tickcount mais je ne sais pas si cette fonction marche correctement.

++
Syg
Titre: Re : Temps restant avec un timer
Posté par: Nikko™ le 27 Avril 2009, 22:12:17
Quand tu dit "Tempsdebuttimer" cest a l'heure ou il commence ?  ???

++
nikko