AntyBot oparty na pytaniach.
NoLiFeR
13.08.2015
Plugin powoduje wyrzucenie gracza, jeżeli ten nie odpowie na zadane pytanie. (nie kliknie "Tak")
Ułożenie odpowiedzi nie jest stałe przez co spamowanie za pomocą botów jest skutecznie blokowane...
Także nie odpowiedzenie na pytanie w ciągu 5 sekund (Patrz Cvary) powoduje wyrzucenie gracza z serwera z powodem "Nieprawidłowa odpowiedz / brak odpowiedzi".
Standardowa.
Pytań jest pięć, można je zmieniać edytując odpowiednie linijki w sma.
timetokick "5.0" - Czas po którym zostanie wyrzucony gracz który nie odpowie na zadane mu pytanie.
wlaczlogikickowania "1" - Jeżeli wlaczone, w logach zostanie zapisane ip oraz nick delikwenta.
1.1
antybot.sma 2,59 KB
232 Ilość pobrań
1.0
antybot.sma 3,49 KB
243 Ilość pobrań
Wszelkie bugi (których jednak być nie powinno ) proszę zgłaszać w tym temacie.
speedkill
18.08.2015
public menuantybota(id){ id -= TASK_SHOW; if(is_user_connected(id)){ new buffer[400]; formatex(buffer, charsmax(buffer), g_pytania[random(5)]); new x = random(7); if(last == x){ x = random(7); } last = x; format(buffer, charsmax(buffer), "%s^n^n^t\r(\d%d\r) \yT\ra\yk", buffer, (x + 1)); menuencoding[id] = x; format(buffer, charsmax(buffer), "%s^n^n\dPamietaj aby czytac co klikasz :)", buffer); show_menu(id, KLAWISZE, buffer, -1, "InfaHandler"); set_task(get_pcvar_float(Czas), "outtimedmenu", id + TASK_MENU); // Pobierz raz wartość cvara w plugin_cfg, tak samo z pozostałymi cvarami. } }
Linux'
18.08.2015
Sa duzo bardziej skuteczne sposoby weryfikacji gracza czy jest botem. Dla mnie zbedne.
NoLiFeR
18.08.2015
Przemyśl funkcję: public menuantybota(id), bo wygląda ona tragicznie. Czy nie może ona wyglądać na przykład tak jak poniżej?
public menuantybota(id){ id -= TASK_SHOW; if(is_user_connected(id)){ new buffer[400]; formatex(buffer, charsmax(buffer), g_pytania[random(5)]); new x = random(7); if(last == x){ x = random(7); } last = x; format(buffer, charsmax(buffer), "%s^n^n^t\r(\d%d\r) \yT\ra\yk", buffer, (x + 1)); menuencoding[id] = x; format(buffer, charsmax(buffer), "%s^n^n\dPamietaj aby czytac co klikasz :)", buffer); show_menu(id, KLAWISZE, buffer, -1, "InfaHandler"); set_task(get_pcvar_float(Czas), "outtimedmenu", id + TASK_MENU); // Pobierz raz wartość cvara w plugin_cfg, tak samo z pozostałymi cvarami. } }
Ehh.. Już to tłumaczyłem. Gdzie wtedy będą odpowiedzi "nie" ?
To zadziała na każdy nowy "gatunek" botów, przy których inne antyboty zawiodą A jeżeli ktoś zapragnie sobie obejść zabezpieczenie 1'nego cs'a (nwm czy to możliwe, ale raczej tak
) i napadnie na serwer w ten sposób ?
speedkill
18.08.2015
Skąd taka pewność, robiłaś testy? Czy jest to po prostu informacja napisana tak o?random() czesto zwraca ta sama wartosc lepiej uzyc random_num()
random:
random_num:
Misiaczek ;c
24.08.2015
Nie, nie widze
Poprawie kod, jak będe miał czasu ciutkę
client_print(id, print_console, "|--------------------------------------|"); client_print(id, print_console, "|-|Boty nie maja tutaj wstepu :)|-|"); client_print(id, print_console, "|--------------------------------------|");
zamień na
new szTxT[ 256 ]; formatex( szTxT, charsmax( szTxT ), "|--------------------------------------|^n|-|Boty nie maja tutaj wstepu :)|-|^n|--------------------------------------|" ); console_print( id, szTxt );
new name[33], ip[33]; get_user_name(id, name, 32); get_user_ip(id, ip, 32);
zamień na
new Dane[ 2 ][ 33 ] get_user_name( id, Dane[ 0 ], 32 ); get_user_ip( id, Dane[ 1 ], 20, 1);
new last, Czas, logs;
zamień na
new last, pCvar[ 2 ];
Czas = register_cvar("timetokick","5.0"); logs = register_cvar("wlaczlogikickowania","1");
zamień na
pCvar[ 0 ] = register_cvar("timetokick","5.0"); pCvar[ 1 ] = register_cvar("wlaczlogikickowania","1");
set_task(get_pcvar_float(Czas), "outtimedmenu", id+TASK_MENU);
zamień na:
set_task(get_pcvar_float( pCvar[ 0 ] ), "outtimedmenu", id+TASK_MENU);
if(get_pcvar_num(logs))
zamień na
if( get_pcvar_num( pCvar[ 0 ] ) )
NoLiFeR
24.08.2015
V 1.1
Poprawki :
Zaimplementowane zostały poprawki z postu Misiaczek ;c.
Przy formatowaniu tablicy zastosowana została pętla (wieksza optymalnosc kodu końcowego oraz czytelność).
antybot.sma 2,59 KB
208 Ilość pobrań
Użytkownik NoLiFeR edytował ten post 24.08.2015 13:40