GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Showroom SA:MP => Discussion démarrée par: Eloctro le 01 Mars 2011, 14:11:25

Titre: [INCLUDE]Timer Sytème
Posté par: Eloctro le 01 Mars 2011, 14:11:25
Bonjour j'ai crée un système de timer ,je ne sais pas s'il conssome moins mais le voici :
//Timer Fonction By Eloctro
#define TIMER_%0 forward %0(); public 0%()
forward LaunchTimer(string[],time);
public LaunchTimer(string[],time)
{
    halt(time);
    CallLocalFunction(string,"");
}
// Written by Xalphox.
halt(seconds)
{
new _newTime[4], _oldTime[4];
gettime(_oldTime[0], _oldTime[1], _oldTime[2]);
_oldTime[3] = _oldTime[2] + (_oldTime[1] * 60) + (_oldTime[0] * 600);

while(_newTime[3] != (_oldTime[3] + seconds))
{
gettime(_newTime[0], _newTime[1], _newTime[2]);
_newTime[3] = _newTime[2] + (_newTime[1] * 60) + (_newTime[0] * 600);
}
}

Exemple :
//Dans un code :
LaunchTimer("test",5);//En seconde
//Dans le script
TIMER_test
{
//Code 5 secondes plus tard
}
Titre: Re : [INCLUDE]Timer Sytème
Posté par: cristab le 01 Mars 2011, 14:40:59
j'ai pas trop capter le truc mais sa me semble plus gourmand qu'un timer
Titre: Re : [INCLUDE]Timer Sytème
Posté par: Eloctro le 01 Mars 2011, 16:24:09
halt permet de mettre en pause le script c'est comme la fonction sleep sauf qu'elle ne marche pas partout .
Titre: Re : [INCLUDE]Timer Sytème
Posté par: S!m le 01 Mars 2011, 17:11:25
Salut,

dans ce cas ci, ta fonction halt va arrêter l'exécution du serveur pendant qu'elle s'exécute.

Les timers sont beaucoups plus interessants.

De plus, le système de timers est bien fait. Vous pouvez tout à fait lancer de nombreux timer sans avoir de problème, si vous le faites bien.

Je dois avoir près de 200 timers sur mon serveurs (les timers spécifique à chaque joueur....), et je n'ai pas eu le moindre problème avec eux depuis très très longtemps (disons plus d'un ans et demi).

Si le nombre de timers vous pose problème, vous pouvez faire des timers qui parcourent chaque éléments (exemple les joueurs), toutefois ce n'est pas vraiment plus efficace.

EDIT: petit détail que j'ai oublié : les timers offrent une plus grande précision. Dans ton code, si on demande 2 seconde, la durée de halt peut varier de 1 à 2 secondes selon le moment où halt est lancé.

++Sim++
Titre: Re : [INCLUDE]Timer Sytème
Posté par: S!m le 01 Mars 2011, 17:16:00
Salut,

j'ajoute un petit truc:

Un système de timer est possible, mais sans intérêt.
Comme je viens de le dire, les timers sont bien conçus.
En bref, ils sont plus efficaces que toutes les méthode de contournement que vous pourrez inventer.

Le meilleur système que j'ai vu est celui d'Y_LESS et il admet que les timers sont plus efficaces.

Le seul truc, c'est de faire attention à la façon dont vous gérez vos variables de timers.

++Sim++

Titre: Re : [INCLUDE]Timer Sytème
Posté par: Eloctro le 01 Mars 2011, 20:16:51
D'accord bah ça m'auras éclairé sur ce sujet au moins .
Je pense que vous pouvez lock le sujet .
Titre: Re : [INCLUDE]Timer Sytème
Posté par: Armans le 02 Mars 2011, 16:49:39
Moi il me serai bien utile pour mon serveur si cette faction existe elle doit bien servir a quelque chose car je pense pas il vont inventer une faction que ressemble a une autre ^^.
Titre: Re : [INCLUDE]Timer Sytème
Posté par: S!m le 02 Mars 2011, 17:50:21
Salut,

je ne pensais pas locké, mais face à ce post complètement hors sujet.... (si ce n'est pas hors sujet, merci de m'expliquer hein)

 :lock

++Sim++