24.08.2015, 21:48
(
Последний раз редактировалось Nixtren; 28.08.2015 в 14:03.
)
SpooflessDialogs
Aqui estб um include que inicialmente tinha feito para uso pessoal, e posso dizer tambйm que й o meu primeiro include. A funзгo dele й evitar que cheaters faзam spoof de dialogs.
O que й dialog spoofing?
Dialog spoofing й o nome dado ao ato de responder a diбlogos que o servidor nгo enviou.
Exemplo de um caso de dialog spoofing
Imagine que vocк tem um diбlogo (ID 30) com a mensagem "Pressione OK para receber $100 gratuitamente", e vocк sу mostra esse diбlogo uma vez ao player (por exemplo, durante o registo), e nunca mais o mostra. Um cheater poderia responder a esse diбlogo quantas vezes ele desejasse, vejamos aqui um "mapa" do que aconteceria:
- Cheater recebe diбlogo ID 30 (durante o registo)
- Cheater responde ao diбlogo ID 30 (durante o registo)
- Cheater responde ao diбlogo ID 30
- Cheater responde ao diбlogo ID 30
- Cheater responde ao diбlogo ID 30
Nгo й normal alguйm praticar dialog spoofing, pois sгo raras as vezes que alguйm consegue tomar vantagem disso, depende muito do seu script. No entanto, й bem possнvel isso acontecer.
Esta include funciona ao fazer hook da callback OnDialogResponse e da funзгo ShowPlayerDialog. Ele armazena numa variбvel o ID que vocк coloca em ShowPlayerDialog, e depois compara-o em OnDialogResponse.
Callbacks opcionais (para colocar no seu GameMode)
Код:
public OnDialogSpoof(playerid, dialogid, SpooflessDialogs_dialogid) { // O que vocк quer fazer com o cheater? Banir? Kickar? return 0; // Para evitar que o spoofing tenha sucesso. }
Vocк precisa de ter os includes y_hooks (pode extraнr tudo para a pasta dos includes) e nhooks para este include funcionar!
No seu GameMode:
Код:
#include <YSI\y_hooks> #include <nhooks> #include <SpooflessDialogs> // Meter esta linha antes de qualquer include que faзa uso de diбlogos
Код:
#define FILTERSCRIPT #include <YSI\y_hooks> #include <nhooks> #include <SpooflessDialogs> // Meter esta linha antes de qualquer include que faзa uso de diбlogos