Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Modyfikacja

dontsayips [amxbans]

Modyfikacja

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 shakerek

    Profesjonalista

  • Zbanowany

Reputacja: 4
Nowy

  • Postów:167
  • Lokalizacja:warszawa
Offline

Napisano 30.01.2012 14:28

Witam, chciałbym by ktoś umiał przerobić plugin dontsayips aby zsynchronizował się z amxbansem, po napisaniu reklamy plugin zablokuje wyskakiwanie na sayu oraz jeśli będzie spamował reklamą tak założmy 3 razy napisze wtedy dostanie bana z powodem reklamujesz na 30 minut od amxbansa.
Tutaj chciałbym zwrócić uwagę że udało mi się wykonać na starszej wersji dontsay'a ale tam po napisaniu reklamy od razu dostawało się bana a tutaj zależy mi że za 4 razem, druga sprawa to że w reasonie był podany ID bana czyli reason nie był poprawny. Bardzo proszę o lekką modyfikację tego pluginu ++ mile widziane.
#define PLUGINNAME    "Don't say IPs by Pavulon"
#define VERSION "0.2"
#define AUTHOR "JGHG"
/*
Copyleft 2005
Plugin topic: http://www.amxmodx.o...pic.php?p=90172

Don't say IPs
=============
Messages like "hey join my server 213.34.231.23" are automatically blocked... and another message is printed instead. :-P
Or, you can choose to just ban violators by setting cvar ip_banviolators to 1 and ip_banminutes to how many minutes the violator should be banned. 0 is permanent, 5 is default.
/JGHG

VERSIONS
========
050204 0.1 First version

CREDITS
=======
Requested by lord_inuyasha88.
*/
#include <amxmodx>
#include <fakemeta>
#include <regex>
//#define PATTERN "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" // \b
//#define PATTERN "([0-9].*[\., ].*[0-9].*[\., ].*[0-9].*[\., ].*[0-9])"
#define PATTERN "([0-9].*[\., ].*[0-9].*[\., ].*[0-9].*[\., ].*[0-9])|(www\.)|(\.pl)|(\.com)|(\.ru)|(\.de)|(\.net)|(\.info)|(\.org)|(\.biz)|(\.nl)|(\.lt)|(\.eu)|(\.name)"
#define REASON "Reklamujesz"
#define CVAR_BANMINUTES "ip_banminutes"
#define CVAR_BANVIOLATORS "ip_banviolators"
#define CVAR_BANTIMES "ip_bantimes"
#define TEKST "Zapraszamy na spaced.pl =)"
// Globals below
new Regex:g_result
new g_returnvalue
new g_error[64]
new times[32]
new g_allArgs[1024]
new banuids[33]
new banname[33][32]
new const g_name[] = "name"
new /* const */ g_name_change[] = "#Cstrike_Name_Change"
new g_msgid_saytext
// Globals above
public plugin_init()
{
register_plugin(PLUGINNAME, VERSION, AUTHOR)

register_clcmd("say", "hook_say")
register_clcmd("say_team", "hook_say")
register_cvar(CVAR_BANVIOLATORS, "1")
register_cvar(CVAR_BANMINUTES, "30")
register_cvar(CVAR_BANTIMES, "3")

register_dictionary("admincmd.txt")

register_forward(FM_ClientUserInfoChanged, "forward_client_userinfochanged")

g_msgid_saytext = get_user_msgid("SayText")
}
public plugin_modules()
{
require_module("regex")
}
public forward_client_userinfochanged(id, buffer)
{
if (!is_user_connected(id))
return FMRES_IGNORED

static name[32]
engfunc(EngFunc_InfoKeyValue, buffer, g_name, name, sizeof name - 1)

if (get_user_flags(id)&ADMIN_RESERVATION)
return FMRES_IGNORED

look4(name,id, 2)

return FMRES_SUPERCEDE
}
msg_name_change(id, /* const */ oldname[])
{
client_cmd(id,"name ^"%s^"",TEKST)
message_begin(MSG_BROADCAST, g_msgid_saytext)
write_byte(id)
write_string(g_name_change)
write_string(oldname)
write_string(TEKST)
message_end()
}
public hook_say(id, level, cid)
{
if ( (get_user_flags(id)&ADMIN_RESERVATION) || !id )
return PLUGIN_CONTINUE

read_args(g_allArgs, 1023)
if (look4(g_allArgs,id, 1)==1)
return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}
public look4(g_allArgs[],id, type)
{
g_result = regex_match(g_allArgs, PATTERN, g_returnvalue, g_error, 63, "i")
switch (g_result) {
case REGEX_MATCH_FAIL: {
log_amx("REGEX_MATCH_FAIL! %s", g_error)
return PLUGIN_CONTINUE
}
case REGEX_PATTERN_FAIL: {
log_amx("REGEX_PATTERN_FAIL! %s", g_error)
return PLUGIN_CONTINUE
}
case REGEX_NO_MATCH: {
return PLUGIN_CONTINUE
}
default: {
if (type==1) times[id]++

new authid[32]
get_user_authid(id, authid, 31)

new name[32]
get_user_name(id, name, 31)

if (get_cvar_num(CVAR_BANVIOLATORS)&&times[id]>=get_cvar_num(CVAR_BANTIMES)
|| get_cvar_num(CVAR_BANVIOLATORS)&&type==2) {
banuids[id] = get_user_userid(id)
format(banname[id], 31, "%s", g_allArgs)
new minutesString[10]
get_cvar_string(CVAR_BANMINUTES, minutesString, 9)
new temp[64], banned[16], minutes = get_cvar_num(CVAR_BANMINUTES)

if (minutes)
format(temp, 63, "%L", id, "FOR_MIN", minutesString)
else
format(temp, 63, "%L", id, "PERM")

format(banned, 15, "%L", id, "BANNED")
log_amx("%s (%s), %s %s %s. This was written: ^"%s^"", name, authid, banned, temp, REASON, g_allArgs)
new userid[1]
userid[0] = id
set_task(0.1,"cmd_ban",id, userid, 1)
}
if (type==1)
{
client_print(0, print_chat, "%s: %s", name, TEKST)
server_cmd("amx_chat %s (%s): ^"%s^"", name, authid, g_allArgs)
regex_free(g_result)
return 1 // block msg
} else
if (type==2)
{
new username[32]
get_user_name(id, username, 31)
msg_name_change(id, username)
server_cmd("amx_chat %s (%s): ^"%s^"", username, authid, name)

}
}
}
return PLUGIN_CONTINUE
}
public cmd_ban(userid[])
{
new id = userid[0]
new username[32]
get_user_name(id, username, 31)
if (!equal(username, banname[id]))
{
new minutes = get_cvar_num(CVAR_BANMINUTES)
server_cmd("amx_ban %d #%d %s", minutes, banuids[id], REASON)
} else
set_task(1.0,"cmd_ban",id, userid, 1)
}
public client_connect(id)
{
times[id]=0
format(banname[id], 32, "")
}
public client_disconnect(id)
{
times[id]=0
format(banname[id], 32, "")
}

Załączone pliki







Również z jednym lub większą ilością słów kluczowych: Modyfikacja

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych