GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Eloctro le 29 Janvier 2011, 14:32:11
-
Bonjour ,
J'ai fait un Anti-Cheat comme vous avez pu le voir et je sais si je place mes vérifications dans OnPlayerUpdate ou dans un Timer(De façon à que le serveur n'est pas de crash ou de lag) ?
Merci .
-
un timer de devrais être bien moin gourmand meme si ce timer est d'une seconde tu gagneras au moin 10 requette en moin par player
-
Ouai et j'était entrain de me dire que c'était plus régulier pour un futur Anti-Téléporte .
-
Ouai enfin si j'attend que le joueur tire pour lui enlever l'arme il y aura commme même une balle qui part et j'ai remarqué en testant un cheat très connu que ça flood les armes donc l'anti cheat perdrais sont efficacité .
-
Soit pas trop gourmand aussi !
Pour voir à quel point OnPlayerUpdate est appelé à une vitesse folle, faites ce test :
new call;
OnGameModeInit()
{
call = 0;
return 1;
}
OnPlayerUpdate(playerid)
{
call += 1;
return 1;
}
OnGameModeExit()
{
new buffer[50];
format(buffer, sizeof(buffer), "Appelé %d fois", call);
return 1;
}
Et aller IG, faites un pas en avant et regardez le résultat : impressionnant !
Donc je te conseilles sans hésiter : un timer (à toi de voir de combien de secondes ;))
PS : Dédicace à chnbeul :D
-
Perso pour mon AC j'ai pris un timer de 5sec.
Pour le moment il fait vérification des armes, armure, vie, jetpack.
Et 5 sec je trouve ça relativement correct.
Ce que je te conseil, s'est d'utiliser différent timer pour les différente vérification.
Ceux qui sont vitte vérifiée, genre pour le airbreak et tp, et d'autre moins vite, arme ...
++ Max ++
-
@Myk3L: Tu pourrais améliorer légèrement ton code pour qu'il soit plus présentable (ce n'est pas une remarque :P).
new call = 0;
OnPlayerUpdate(playerid)
{
call++;
return 1;
}
OnGameModeExit()
{
printf("La fonction OnPlayerUpdate à été appelé %d fois !\n", call);
return 1;
}
Simplement :P
-
Ouais j'avoue, j'étais en mode SendClientMessage donc j'ai format et j'avais pas pensé au ++ ni à print le résultat :D
-
Sujet clos j'ai j'ai mis un Timer et de toute façon vous pouvez changer le temp à votre guise(A noter que plus le temps de répétition du timer est petit plus l'anti-téléporte/AirBreak est efficace)