• 11 Juin 2024, 05:58:57


Auteur Sujet: Simuler la fonction GameTickCount() sous Linux  (Lu 1135 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Simuler la fonction GameTickCount() sous Linux
« le: 26 Avril 2009, 21:37:12 »
Salut,

sachant que les fonctions GetTickCount() et tickcount() ne fonctionnent pas sous Linux, j'avais entendu qu'il fallait simler ces fonctions, ma question est : Comment ?

Avec un timer comme dans PEN1 ? C'est pas super précis...

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Simuler la fonction GameTickCount() sous Linux
« Réponse #1 le: 26 Avril 2009, 22:19:25 »
La fonction tickcount fonctionne sous Linux. Mais il semblerait qu'elle aie quelques bugs.
A tester car je ne l'ai jamais utilisée.

Il existe peut-être un plugin pour Linux qui fourni cette fonction (je n'en ai pas trouvé).

++
Syg
Courtesy of GtaManiac

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Simuler la fonction GameTickCount() sous Linux
« Réponse #2 le: 26 Avril 2009, 22:26:54 »
Salut,

effectivement, il existe un plugin qui règle cette fonction, à chercher : xtime (de Boylett)

++Sim++





Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Simuler la fonction GameTickCount() sous Linux
« Réponse #3 le: 26 Avril 2009, 22:31:06 »
Celui là, je l'ai trouvé Sim mais il semblerait qu'il ne soit pas très intéressant au niveau de la fonction tickcount.
Voici le lien : http://forum.sa-mp.com/index.php?topic=76793.0

++
Syg
Courtesy of GtaManiac

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Simuler la fonction GameTickCount() sous Linux
« Réponse #4 le: 26 Avril 2009, 22:33:34 »
En effet, il y a déjà une fonction qui retourne le timestamp dans Dutils...

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Simuler la fonction GameTickCount() sous Linux
« Réponse #5 le: 26 Avril 2009, 22:56:07 »
Salut,

en ouvrant le fichier, on obtient tout de même cette fonction:

static cell AMX_NATIVE_CALL n_ticks(AMX* amx, cell* params )
{
    long ticks, usec, sec;
    struct timeval tempo;
    gettimeofday(&tempo, NULL);
    usec = tempo.tv_usec;
    sec = tempo.tv_sec;
    ticks = (1000 * sec) + (usec / 1000);
    logprintf("return %d        -       %d",ticks,start_tick);
    ticks -= start_tick;
return (int)ticks;
}

on y voit que les microsecondes sont divisées par 1000 puis ajoutées... par contre je ne suis pas certains de la qualité, Syg pourrait tu confirmer s'il te plait?

++Sim++





Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Simuler la fonction GameTickCount() sous Linux
« Réponse #6 le: 27 Avril 2009, 10:34:50 »
C'est normal, on divise les microsecondes (10-6) par 1000 pour avoir de millisecondes (10-3).

Si la fonction Linux gettimeofday retourne correctement le nombre de microsecondes alors ce plugin fonctionnera parfaitement.

Cette fonction retourne le nombre de millisecondes écoulées depuis le lancement du serveur SA-MP (pas depuis le lancement de la machine). Mais ceci n'est pas un problème.

++
Syg
Courtesy of GtaManiac