http://amxx.pl/topic...yspam-advanced/
witam
mam problem z pluginem antyspam-advanced w/w link
chciałem go dodać by wywalało graczy spamujących reklamami i innymi bajerami
ale plugin mi nie działa
po wpisaniu w konsole amxx list wyskakuje ze antyspam-advanced runnging
ale gdy spamuje nic się nie dzieje
ani na ustawieniach standardowych ani
na moich cvar
próbowałem to na zombi modzie i serwerze testowym na którym nie mam admina
jeśli macie jakiś pomysł będę wdzięczny
zalezy mi na ustawieniu czasu co ile można pisać
bo gracze maja bindy na kupowanie laserminy
#include <amxmodx> #include <colorchat> #define VERSION "0.1" #define TASK_CD 1337 #define tempId(%1) (%1 -= TASK_CD) #pragma semicolon 1; new const gszBlockMisc[][] = { "spk fvox/blip.wav", "Przestan spamowac na chatcie!"}; new g_iMaxPlayers; new fCvarTime, iCvarType, iCvarSound, iCvarKickAsPunishment, iCvarKickAfter; new g_iTimes[33]; new Array:gBlockCmd; public plugin_init(){ register_plugin("Anty Spam Advanced", VERSION, "diablix"); register_clcmd("say", "handleSay"); register_clcmd("say_team", "handleSay"); fCvarTime = register_cvar("spam_delay", "2.5"); // co ile można pisać iCvarType = register_cvar("spam_infotype", "0"); // 1 - konsola | 0 - chat iCvarSound = register_cvar("spam_sound", "1"); // 1 - tak | 0 - nie iCvarKickAsPunishment = register_cvar("spam_kick", "0"); // 1 - kickuj | 0 - nie iCvarKickAfter = register_cvar("spam_kickafter", "0"); // jezeli spam_kick jest rowny 1 -> po piecokrotnym spamie gracz zostanie wyrzucony g_iMaxPlayers = get_maxplayers(); gBlockCmd = ArrayCreate(1, g_iMaxPlayers); set_task(5.0, "taskDisableOldOne"); } @client_connect(id){ g_iTimes[id] = 0; for(new i = 0; i < ArraySize(gBlockCmd) ; i++){ if(id == ArrayGetCell(gBlockCmd, i)){ ArrayDeleteItem(gBlockCmd, i); } } } @taskDisableOldOne(){ if(is_plugin_loaded("Anti Flood")) set_cvar_float("amx_flood_time", 0.1); } @handleSay(id){ new szText[192]; read_argv(1, szText, sizeof szText - 1); if(strlen(szText)){ for(new i = 0; i < ArraySize(gBlockCmd) ; i++){ if(id == ArrayGetCell(gBlockCmd, i)){ switch(get_pcvar_num(iCvarType)){ case 0:{ #if defined _colorchat_included ColorChat(id, GREY, gszBlockMisc[1]); #else client_print(id, 3, gszBlockMisc[1]); #endif } default: console_print(id, gszBlockMisc[1]); } if(get_pcvar_num(iCvarSound)) client_cmd(id, "%s", gszBlockMisc[0]); return 1; } } ArrayPushCell(gBlockCmd, id); set_task(get_pcvar_float(fCvarTime), "taskRemoveCd", id + TASK_CD); if(get_pcvar_num(iCvarKickAsPunishment) && get_pcvar_num(iCvarKickAfter)){ g_iTimes[id] ++; if(g_iTimes[id] >= get_pcvar_num(iCvarKickAfter)){ if(task_exists(id + TASK_CD)) remove_task(id + TASK_CD); new szName[32]; get_user_name(id, szName, sizeof szName - 1); server_cmd("kick ^"%s^" ^"%s^"", szName, gszBlockMisc[1]); } } } return 0; } @taskRemoveCd(id){ id = tempId(id); for(new i = 0; i < ArraySize(gBlockCmd) ; i++){ if(id == ArrayGetCell(gBlockCmd, i)){ ArrayDeleteItem(gBlockCmd, i); } } }