а что он должен делать то?Доброго времени суток
Ищу плагин на подобе bad_nick под ReApi/ Либо что то с тем же функционалом
Спасибо за любую помощь
ОптимизейшнПочему именно ReApi?
ну скажу так!:Доброго времени суток
Ищу плагин на подобе bad_nick под ReApi/ Либо что то с тем же функционалом
Спасибо за любую помощь
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Bad nick"
#define VERSION "1.1"
#define AUTHOR "pike"
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
}
public client_putinserver(id)
{
if ((is_user_hltv(id)) || (is_user_bot(id)))
return PLUGIN_CONTINUE
new line, text[64], txtlen, nick[32], authid[32], ip[32]
get_user_authid(id, authid, sizeof(authid)-1)
get_user_ip(id, ip, 31, 1)
get_user_name(id, nick, sizeof nick -1)
while((line = read_file("addons/amxmodx/configs/bad_words.ini",line,text,63,txtlen)) != 0)
{
if (containi(nick, text[0]) != -1)
server_cmd("kick #%d Bad nick %s", get_user_userid(id), nick)
log_to_file("addons/amxmodx/logs/bad_nick.txt","%s <%s><%s> <Bad nick kicked>", nick, ip, authid)
}
return PLUGIN_HANDLED
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "NickBlocker"
#define VERSION "0.2"
#define AUTHOR "s0u1"
new config[81],line,text[32],num,BlockedNicks[410][32],i
public plugin_init() {
register_plugin("NickBlocker","0.1","s0u1")
}
public plugin_cfg() {
get_configsdir(config,81)
format(config,80,"%s/BlockedNicks.ini",config)
if(file_exists(config)) {
for(line=0;read_file(config,line,text,sizeof(text)-1,num);line++) {
if(num>0) BlockedNicks[line]=text
}
}
write_file(config,"",-1)
}
new nickname[32]
public client_putinserver(id) {
get_user_name(id, nickname, sizeof(nickname)-1)
for(i=0;i<line+1;i++) {
if(containi(nickname,BlockedNicks[i])!=-1)
server_cmd("kick #%d this nick name is blocked, please rename", get_user_userid(id))
}
}
public client_infochanged(id) {
new oldname[32]
get_user_info(id, "name", nickname,31)
get_user_name(id,oldname,31)
for(i=0;i<line;i++) {
if(containi(nickname,BlockedNicks[i])!=-1)
server_cmd("kick #%d this nick name is blocked, please rename", get_user_userid(id))
}
}
#include <amxmodx>
#include <amxmisc>
#include <regex>
new Regex:re, ret
new reasons[100], n_reasons[130], no_reasons[100], name_change[33]
new g_connects[33] = 0
new pro_look[33] = 0
new act_plagin, reas_disconnect, name_no_change, name_snochange
new act_plagins, reas_disconnects, name_no_changes, name_snochanges
public plugin_init()
{
register_plugin("Bad Nick", "1.3a", "Sutar")
act_plagin = register_cvar("amx_bednick_actives", "1") //1 - вкл. плагин, 0 и все другие значения - выкл.
reas_disconnect = register_cvar("amx_bednick_disconnect", "1") //Что делать при обнаружение рекламы? 0 - кик, 1 - смена ника.
name_no_change = register_cvar("amx_bednick_change", "1") //Если ник игрока, не смогло поменять, 0 - кик, 1 - реконект (перезаходит).
name_snochange = register_cvar("amx_bednick_snochange", "3") //Сколько раз игрок перезаходит, прежде чем, его кикнет (тоесть, ник поменять нельзя и игрок перезаходит.)
name_change = "Player"; //Если reas_disconnect = 1, на какой ник меняем? (не больше 33 символов)
reasons = "Извините, ваш ник содержит рекламу!"; //Причина кика (не больше 100 символов)
n_reasons = "Извините, ваш ник содержит рекламу! Попробуйте перезайти..."; //Если ник не смогло поменять, игрока кикать
no_reasons = "Извините, попробуйте войти позже..."; //Если ник не смогло поменять и он превысил лимит, перезаходов игрока кикает
new err[32]
re = regex_compile("(?:\w+\.[a-z]{2,4}\b|(?:\s*\d+\s*\.){3})", ret, err, 31, "i")
if (re!=REGEX_OK) server_print("Error: %s (%d)", err, ret)
}
public client_authorized(id)
{
act_plagins = get_pcvar_num(act_plagin)
reas_disconnects = get_pcvar_num(reas_disconnect)
name_no_changes = get_pcvar_num(name_no_change)
name_snochanges = get_pcvar_num(name_snochange)
if(act_plagins != 1)
return PLUGIN_CONTINUE
new player_name[33]
get_user_name(id, player_name, 32)
new matchs = regex_match_c(player_name, re, ret)
if(matchs > 0)
{
if(reas_disconnects == 0)
server_cmd("kick #%d ^"%s^"", get_user_userid(id), reasons)
else
{
if(reas_disconnects == 1 && pro_look[id] == 0)
{
set_user_info(id, "name", name_change)
console_cmd(id, "name %s", name_change)
pro_look[id] = 1
set_task(0.1, "client_authorized", id)
}
else
{
pro_look[id] = 0
if(matchs > 0)
{
if(g_connects[id] >= name_snochanges)
{
g_connects[id] = 0
server_cmd("kick #%d ^"%s^"", get_user_userid(id), no_reasons)
}
else
{
if(name_no_changes == 0)
server_cmd("kick #%d ^"%s^"", get_user_userid(id), n_reasons)
else if(name_no_changes == 1)
{
++g_connects[id]
console_cmd(id, "reconnect")
}
}
}
}
}
}
return PLUGIN_CONTINUE
}
public plugin_end()
regex_free(re);
все подобные не работают адекватно либо вообще.C++:#include <amxmodx> #include <amxmisc> #include <regex> new Regex:re, ret new reasons[100], n_reasons[130], no_reasons[100], name_change[33] new g_connects[33] = 0 new pro_look[33] = 0 new act_plagin, reas_disconnect, name_no_change, name_snochange new act_plagins, reas_disconnects, name_no_changes, name_snochanges public plugin_init() { register_plugin("Bad Nick", "1.3a", "Sutar") act_plagin = register_cvar("amx_bednick_actives", "1") //1 - вкл. плагин, 0 и все другие значения - выкл. reas_disconnect = register_cvar("amx_bednick_disconnect", "1") //Что делать при обнаружение рекламы? 0 - кик, 1 - смена ника. name_no_change = register_cvar("amx_bednick_change", "1") //Если ник игрока, не смогло поменять, 0 - кик, 1 - реконект (перезаходит). name_snochange = register_cvar("amx_bednick_snochange", "3") //Сколько раз игрок перезаходит, прежде чем, его кикнет (тоесть, ник поменять нельзя и игрок перезаходит.) name_change = "Player"; //Если reas_disconnect = 1, на какой ник меняем? (не больше 33 символов) reasons = "Извините, ваш ник содержит рекламу!"; //Причина кика (не больше 100 символов) n_reasons = "Извините, ваш ник содержит рекламу! Попробуйте перезайти..."; //Если ник не смогло поменять, игрока кикать no_reasons = "Извините, попробуйте войти позже..."; //Если ник не смогло поменять и он превысил лимит, перезаходов игрока кикает new err[32] re = regex_compile("(?:\w+\.[a-z]{2,4}\b|(?:\s*\d+\s*\.){3})", ret, err, 31, "i") if (re!=REGEX_OK) server_print("Error: %s (%d)", err, ret) } public client_authorized(id) { act_plagins = get_pcvar_num(act_plagin) reas_disconnects = get_pcvar_num(reas_disconnect) name_no_changes = get_pcvar_num(name_no_change) name_snochanges = get_pcvar_num(name_snochange) if(act_plagins != 1) return PLUGIN_CONTINUE new player_name[33] get_user_name(id, player_name, 32) new matchs = regex_match_c(player_name, re, ret) if(matchs > 0) { if(reas_disconnects == 0) server_cmd("kick #%d ^"%s^"", get_user_userid(id), reasons) else { if(reas_disconnects == 1 && pro_look[id] == 0) { set_user_info(id, "name", name_change) console_cmd(id, "name %s", name_change) pro_look[id] = 1 set_task(0.1, "client_authorized", id) } else { pro_look[id] = 0 if(matchs > 0) { if(g_connects[id] >= name_snochanges) { g_connects[id] = 0 server_cmd("kick #%d ^"%s^"", get_user_userid(id), no_reasons) } else { if(name_no_changes == 0) server_cmd("kick #%d ^"%s^"", get_user_userid(id), n_reasons) else if(name_no_changes == 1) { ++g_connects[id] console_cmd(id, "reconnect") } } } } } } return PLUGIN_CONTINUE } public plugin_end() regex_free(re);