GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Asphalt le 28 Janvier 2008, 21:01:35

Titre: Vérification d'un code
Posté par: Asphalt le 28 Janvier 2008, 21:01:35
Bonsoir,

Voilà, je poste pour vous demander si une erreur se présente dans mon code.
Il s'agit d'un début d'anti-cheat qui ban si un minigun est découvert dans les armes d'un joueur.

Code : Lien pastebin http://pastebin.com/f136827f1 (http://pastebin.com/f136827f1)

Ce code, soit disant, bannirait des gens qui ne cheatent pas. Erreur de code ou mensonges de la part des cheateurs ^^ ?

Merci.
Titre: Re : Vérification d'un code
Posté par: Syg le 29 Janvier 2008, 16:20:26
Je ne vois pas pourquoi ce FS bannirait des joueurs qui n'ont pas de minigun en main.

Par contre, ce que je vois c'est que ce FS contient un timer de 50 ms qui fait plein de chose (avec le risque qu'il faille plus de 50 ms pour éxécuter ce qu'il y a dans le timer).
D'autant plus que lorsque l'on fait un boucle sur les joueurs, on fait systématiquement un test sur IsPlayerConnected, ça évite de se traiter les joueurs qui ne sont pas connectés.
Donc il ne faudrait pas que les appels au timer s'empilent (dans le cas où le timer met plus de 50 ms pour s'exéctuer), on sait jamais, les effets sont imprévisibles.

Je te conseille de rajouter un test de IsPlayerConnected après le for et de passer l'interval du timer à 500 ms (largement suffisant pour une détection du minugun qui a besoin de presque 1 seconde pour commencer à tirer).

++
Syg