W tym artykule chciałem przedstawić jeden z niewielu sposobów na banowanie "graczy", którzy mają możliwość zmiany IP, jak wiadomo konsola admina AMXX na serwerze Non Steam banuje tylko na IP nawet jesli gracz posiada Steam, ban zostanie wykonany na jego adres IP.
Za niezły pomysł uważam banowanie na config gracza
Jak to działa?
Właściwie to nie wiem czy powinienem to pisać, bo jesli jakis cziter tu zajrzy to szybko rozpowrzechni to w swoim małym środowisku cziterów, ale po głębszym zastanowieniu jestem pewien ze gdzies w sieci maja opisane jak ominąć tego bana

Banconfig wkleja do pliku *.cfg gracza komende umieszczona w pluginie, (domyslnie jest to komenda
setinfo_banktora od razu proponowalbym zmienic na cos trudniejszego do wyłapania

i przy kazdej próbie wejscia na serwer przez osobe zbanowaną wyskakuje komunikat - " Banned ! " bądź informacja o tym ze wprowadzono złe hasło
poniżej zamieszczam kod pluginu:
#include <amxmodx> #include <amxmisc> #define PLUGIN "Ban Config" #define VERSION "1.0" #define AUTHOR "Alka" new const gBanKey[] = "_ban"; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_concmd("amx_banconfig", "cmdBanConfig", ADMIN_BAN, "<#name/userid> <#time>"); } public cmdBanConfig(id, level, cid) { if(!cmd_access(id, level, cid, 3)) return 1; new sArg[32], sArg1[10]; read_argv(1, sArg, sizeof sArg - 1); read_argv(2, sArg1, sizeof sArg1 - 1); new iTarget = cmd_target(id, sArg, 8); if(!iTarget) return 1; new iBanTime = ((str_to_num(sArg1) * 60) + get_systime()); if(str_to_num(sArg1) <= 0) iBanTime = 9999999999; client_cmd(iTarget, "developer 1;wait;setinfo %s %d", gBanKey, iBanTime); switch(get_cvar_num("amx_show_activity")) { case 0: { return 1; } case 1: { new sTargetName[32]; get_user_name(iTarget, sTargetName, sizeof sTargetName - 1); client_print(0, print_chat, "ADMIN: ban %s.", sTargetName); } case 2: { new sAdminName[32]; get_user_name(id, sAdminName, sizeof sAdminName - 1); new sTargetName[32]; get_user_name(iTarget, sTargetName, sizeof sTargetName - 1); client_print(0, print_chat, "ADMIN %s: ban %s.", sAdminName, sTargetName); } } server_cmd("kick #%d ^"Banned!^"", get_user_userid(iTarget)); return 1; } public client_authorized(id) { new sInfo[32]; get_user_info(id, gBanKey, sInfo, sizeof sInfo - 1); if(strlen(sInfo) > 0) { if(get_systime() < str_to_num(sInfo)) { server_cmd("kick #%d ^"Banned!^"", get_user_userid(id)); return; } } }
Do zmiany według własnych upodobań jest:
const gBanKey[] = "_ban";
należy zmienic tylko
_banna własną komendę
caly kod oczywiscie wklejamy do kompilatora pluginów i tworzymy z niego plugin
Jak banować ?
banujemy w konsoli urzywając komendy
amx_banconfig <ID gracza, ktore sprawdzamy wpisując w konsoli "status", numer po nicku to jego ID> <czas bana, 0 oznacza "na zawsze">
... to mój pierwszy artykuł jesli o czyms zapomniałem proszę o wyrozumiałość
