Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

История благодарностей участнику zpcs43 ::: Спасибо сказали: 6
Дата поста: В теме: За сообщение: Спасибо сказали:
20.8.2019, 11:40 Боты Yapb (Yet Another Pod-Bot)
Как же это они на reHLDS не работают,если я недавно с ними тестил кое-что?Алсо на гитхабе постоянно их обновляют.
TheArtemMaps
13.1.2019, 18:05 SteamBoost [VALVE-MS RU] - бот
Выкладываю фикс того плагина проверки - при использовании других плагинов,совершающих манипуляции с чатом,проверку можно было обойти и спамить в чат
Cкрытый текст

Код:

#include <amxmodx>
#include <engine>
#include <fakemeta>
new bool:g_locked[33]
new g_transw[33]
new cvar_max,cvar_min
stock createrandnum(id)//Чтобы наверняка исключить возможность совпадения с правильным ответом
{
new r=random_num(0,80)
if(r==g_transw[id])random_num(1,2)==2?r++:r-- //Гениально просто пипец как
return r
}
public plugin_init()
{
register_plugin("Antibot checker","0.2beta","KL")
register_forward(FM_Voice_SetClientListening, "fwd_SetVoicePlayers")
register_concmd("checkforbot","create_menu")
register_clcmd("say","SayText")
register_clcmd("say_team","SayText")
cvar_max=register_cvar("antibot_maxnum","20")//максимальное число
cvar_min=register_cvar("antibot_minnum","1")//минимальное число
}
public SayText (id)
{
if(g_locked[id])
{
client_print(id,print_chat,"Никто не видит ваши сообщения.Введите checkforbot в консоли")
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public client_putinserver(id)
{
set_task(3.0,"create_menu",id)
g_locked[id]=true
}
public client_disconnect(id)
{
remove_task(id)
}
public create_menu(id)
{
new g_string[33]
new min=get_pcvar_num(cvar_min)
new max=get_pcvar_num(cvar_max)
new a=random_num(min,max)
new b=random_num(min,max)
new c=random_num(1,2)
new result=c==2?a+b:a-b
new mn[2]
g_transw[id]=random_num(1,4)
formatex(g_string,charsmax(g_string),"Проверка!%i %c %i = ? ",a,c==2?'+':'-',b)
new menu=menu_create(g_string,"menu_handler")
for(new i=1;i<5;i++)
{
formatex(g_string,charsmax(g_string),"%i",i==g_transw[id]?result:createrandnum(id))
mn[0]=i
mn[1]=0
menu_additem(menu,g_string,mn)
}
menu_display(id,menu,0)
}
public menu_handler(id,menu,item)
{
new data[6], iName[64],access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
menu_destroy(menu)
new key=data[0]
if(key!=g_transw[id])
{
server_cmd("kick #%d ^"Попробуйте снова!^"", get_user_userid(id))
return PLUGIN_HANDLED
}

//Если проверка пройдена,врубить микрофон
g_locked[id]=false
return PLUGIN_HANDLED
}

public fwd_SetVoicePlayers(receiver, sender, bool:listen)
{
if(g_locked[sender])
{
// client_print(sender,print_chat,"Никто вас не слышит.Введите checkforbot в консоли")
engfunc(EngFunc_SetClientListening, receiver, sender, false)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}

google.bsk
12.1.2019, 20:58 SteamBoost [VALVE-MS RU] - бот
Цитата(several @ 12.1.2019, 21:37) *
В базу сохраняются ответы по стим айди или как?

В базу не сохраняются,но можно будет допилить позже.Неужто сложно один раз после подключения нажать на кнопочку?
Цитата(several @ 12.1.2019, 21:37) *
zpcs43,
На ReAPI есть такой?

Простите,суть вопроса неясна.Неужто под reHLDS обычные AMXX плагины не пашут?По моим сведениям - очень даже.Поправьте,если не так pardon.gif
Izmayl7
12.1.2019, 20:15 SteamBoost [VALVE-MS RU] - бот
Цитата(several @ 12.1.2019, 17:57) *
Проблема актуальна.
Бот заходит под рандомными никами wquydgqwy, потом пытается сменить на STEAMBO0ST [VALVE-MS RU]
StopSpam Bots с рандомной командой в чат для разблокировки не помогает
от этого спамера.
Ищу решение. Меню с ответом на вопрос мне кажется более адекватным.

Я уже предложил решение раннее.
Впрочем,капча есть.Игроков не кикает,а блокирует вывод в чат и микрофон.
Тут

Код:

#include <amxmodx>
#include <engine>
#include <fakemeta>
new bool:g_locked[33]
new g_transw[33]
new cvar_max,cvar_min
stock createrandnum(id)//Чтобы наверняка исключить возможность совпадения с правильным ответом
{
new r=random_num(0,80)
if(r==g_transw[id])random_num(1,2)==2?r++:r-- //Гениально просто пипец как
return r
}
public plugin_init()
{
register_plugin("Antibot checker","0.1beta","KL")
register_forward(FM_Voice_SetClientListening, "fwd_SetVoicePlayers")
new gmsgSayText = get_user_msgid ( "SayText" );
register_message ( gmsgSayText, "SayText" );
cvar_max=register_cvar("antibot_maxnum","20")//максимальное число
cvar_min=register_cvar("antibot_minnum","1")//минимальное число
}
public SayText ( msgid, receiver, sender )//блокируем чат
{
if(g_locked[sender])
{
return PLUGIN_HANDLED
}
}
public client_putinserver(id)
{
set_task(3.0,"create_menu",id)
g_locked[id]=true
}
public client_disconnect(id)
{
remove_task(id)
}
public create_menu(id)
{
new g_string[33]
new min=get_pcvar_num(cvar_min)
new max=get_pcvar_num(cvar_max)
new a=random_num(min,max)
new b=random_num(min,max)
new c=random_num(1,2)
new result=c==2?a+b:a-b
new mn[2]
g_transw[id]=random_num(1,4)
formatex(g_string,charsmax(g_string),"Проверка!%i %c %i = ? ",a,c==2?'+':'-',b)
new menu=menu_create(g_string,"menu_handler")
for(new i=1;i<5;i++)
{
formatex(g_string,charsmax(g_string),"%i",i==g_transw[id]?result:createrandnum(id))
mn[0]=i
mn[1]=0
menu_additem(menu,g_string,mn)
}
menu_display(id,menu,0)
}
public menu_handler(id,menu,item)
{
new data[6], iName[64],access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
menu_destroy(menu)
new key=data[0]
if(key!=g_transw[id])
{
server_cmd("kick #%d ^"Попробуйте снова!^"", get_user_userid(id))
return PLUGIN_HANDLED
}

//Если проверка пройдена,врубить микрофон
g_locked[id]=false
}

public fwd_SetVoicePlayers(receiver, sender, bool:listen)//блокируем микрофон
{
if(g_locked[sender])
{
engfunc(EngFunc_SetClientListening, receiver, sender, false)
return FMRES_SUPERCEDE
}
}

Izmayl7, several