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

Titre: OnPlayerUpdate ou Timer ?
Posté 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 .
Titre: Re : OnPlayerUpdate ou Timer ?
Posté par: cristab le 29 Janvier 2011, 14:38:47
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
Titre: Re : OnPlayerUpdate ou Timer ?
Posté par: Eloctro le 29 Janvier 2011, 14:40:17
Ouai et j'était entrain de me dire que c'était plus régulier pour un futur Anti-Téléporte .
Titre: Re : OnPlayerUpdate ou Timer ?
Posté par: Eloctro le 29 Janvier 2011, 19:03:41
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é .
Titre: Re : OnPlayerUpdate ou Timer ?
Posté par: Myk3L le 29 Janvier 2011, 20:52:37
Soit pas trop gourmand aussi !
Pour voir à quel point OnPlayerUpdate est appelé à une vitesse folle, faites ce test :
Citer
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
Titre: Re : OnPlayerUpdate ou Timer ?
Posté par: scott1 le 30 Janvier 2011, 02:40:08
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 ++
Titre: Re : OnPlayerUpdate ou Timer ?
Posté par: Xartrick le 30 Janvier 2011, 15:37:52
@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
Titre: Re : OnPlayerUpdate ou Timer ?
Posté par: Myk3L le 30 Janvier 2011, 15:57:31
Ouais j'avoue, j'étais en mode SendClientMessage donc j'ai format et j'avais pas pensé au ++ ni à print le résultat :D
Titre: Re : OnPlayerUpdate ou Timer ?
Posté par: Eloctro le 30 Janvier 2011, 16:14:38
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)