Chciałbym przestawić wam kilkanaście sposobów na łatwe i niewinwazyjne(np. ban na całe miasto) banowanie osób ze zmiennym IP(neostrada, netia).
1. Ban na cfg
Banowanie cfg gracza. Gdy ten łączy się z serwerem, sprawdzany jest jego cfg czy nie zawiera pewnej zaszyfrowanej wartości, która odpowiada za bana. Jeśli takowa się znajduje, gracz jest kopany i tak w kółko.
Zalety
[php]#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;
}
}
}[/php]
Odnajdujemy w kodzie const gBanKey[] = "_ban"; i _ban zmieniamy na coś trudnego do odnalezienia. Polecam _volume, lub _rank.
Możemy też zmienić komunikaty wyświetlane przy wykopaniu gracza.
2. Banowanie zakresu
Dośc drastyczna, ale cholernie skuteczna metoda nie do ominięcia(chyba że ktoś zmieni całkowicie IP).
Banujemy po prostu cały zakres, np osiedle. Sprawdza się przy dużych grupkach cziterów.
How we do?
Otwieramy plik listip.cfg znajdujący się w /ctrike. W nowej linijce dodajemy np. 83.20, w wypadku kiedy IP zbanowanego to 83.20.xxx.xx.
Zalety
3. Neobans by peku33
Mimo braku zaufania do pluginów banneo ten mogę polecić. Pełna integracja z amxbans (z moją poprawką) idealnie się sprawdza i nie sprawia problemu. Plugin można pobrać z oficjalnego tematu na forum wiaderko.
Istnieje też wiele pluginów, banneo itp. ale nie są warty na tyle uwagi aby je tu umieszczać.forum
1. Ban na cfg
Banowanie cfg gracza. Gdy ten łączy się z serwerem, sprawdzany jest jego cfg czy nie zawiera pewnej zaszyfrowanej wartości, która odpowiada za bana. Jeśli takowa się znajduje, gracz jest kopany i tak w kółko.
Zalety
- Nie obciąża serwera
- Prosty i łatwy
- Łatwo ominąć.
[php]#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;
}
}
}[/php]
Odnajdujemy w kodzie const gBanKey[] = "_ban"; i _ban zmieniamy na coś trudnego do odnalezienia. Polecam _volume, lub _rank.

Możemy też zmienić komunikaty wyświetlane przy wykopaniu gracza.
2. Banowanie zakresu
Dośc drastyczna, ale cholernie skuteczna metoda nie do ominięcia(chyba że ktoś zmieni całkowicie IP).
Banujemy po prostu cały zakres, np osiedle. Sprawdza się przy dużych grupkach cziterów.
How we do?
Otwieramy plik listip.cfg znajdujący się w /ctrike. W nowej linijce dodajemy np. 83.20, w wypadku kiedy IP zbanowanego to 83.20.xxx.xx.
Zalety
- Skuteczne
- Można zbanować kilku uczciwych graczy, ale wystarczy dla nich założyć konta.
3. Neobans by peku33
Mimo braku zaufania do pluginów banneo ten mogę polecić. Pełna integracja z amxbans (z moją poprawką) idealnie się sprawdza i nie sprawia problemu. Plugin można pobrać z oficjalnego tematu na forum wiaderko.
Istnieje też wiele pluginów, banneo itp. ale nie są warty na tyle uwagi aby je tu umieszczać.forum
