Coucou et me revoilà !
Donc aujourd'hui pas vraiment de problème par rapport à d'habitude, mais quelque chose que j'avais réalisé il y a pas mal de temps, c'est que les timers sur SA-MP ont une durée qui n'est pas celle qu'on leur attribue.
Par exemple, lorsqu'on démarre un timer d'une minute par exemple, il n'est jamais d'une minute, mais plutôt de quelque chose comme une minute, et quelques secondes.
Les minutes sont donc plus longues que prévues !
Donc par exemple pour une horloge. On aura tendance à faire la plupart du temps un timer d'une minute au terme du quel la fonction d'actualisation du textdraw (ou autre) sera appelée, ou bien seconde, mais le principe reste le même.
Donc SetTimer("UpdateClock", 60000, true);, mais dans ce cas, il s'agira de 64 secondes au lieu de 60.
Maintenant par exemple, il y a des serveurs où des heures sont 'programmées' pour avoir une action, par exemple, un Jour de paie à xxh00 !
Mais imaginons que la dernière fois où UpdateClock aura été appelée était à l'heure réelle de xx-1h59 et 58 secondes !
Le cadran in game affichera xx-1h59, mais lors de la prochaine échéance du timer, l'horloge passera directement de xx-1h59 à xxh01, ce qui dans le cas énoncé peut être frustrant de redevoir attendre une heure.
Même si ça peut paraître assez minime, j'aime pas l'idée que ça se passe comme ça, les bugs doivent être éradiqués !
Donc, ma question, quelqu'un aurait-il un coefficient x tel que (t = temps imputé au timer && ms = millisecondes passées réellement) ms = xt ?!
Et sinon, comment pourrait-on obtenir une valeur exacte et pas un truc genre 16/15 (64/60) !
Avec une fonction Gettickcount (que je ne maîtrise malheureusement pas) en même temps qu'un timer ?!
Enfin celui qui me trouve ça aura un dessin plein de coeurs de ma part !
Alors petit edit ! Finalement je me suis rendu compte que j'étais un imbécile, que GetTickCount c'était super facile à utiliser, une simple soustraction entre deux nombres, à la fin du timer moins au lancage du serveur !
J'ai donc lancé un petit timer de 20 heures, je vous transmettrai les résultats précis de mon enquête !