Jak zrobić, aby karało nie za dokładny nick bo to jest proste do obejścia.
Ale by jeśli w nicku zawarty jest fragment zablokowany to umiejętnie za to karało?
np
Zablokuje nick Player
Ale gracz wbije z nickiem Player || Abv.pl albo PlayerCS i już taki delikwent jest pominięty. Jak się doda te nicki to dodawają dodatkowy znak i znowu lipa.
W amxx'ie jest taka inteligentna komenda amx_psay, która jak wiadomo służy do prywatnych wiadomości do graczy.
Ona nie potrzebuje całego nicku gracza do którego chcemy wysłać wiadomość a tylko fragment a już wie o kogo chodzi.
Może coś w ten deseń trza?
komenda:
register_concmd("amx_psay", "cmdPsay", ADMIN_CHAT, "<name or #userid> <message> - sends private message")
Funkcja:
public cmdPsay(id, level, cid)
{
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED
new name[32]
read_argv(1, name, 31)
new priv = cmd_target(id, name, 0)
if (!priv)
return PLUGIN_HANDLED
new length = strlen(name) + 1
get_user_name(priv, name, 31);
new message[192], name2[32], authid[32], authid2[32], userid, userid2
get_user_authid(id, authid, 31)
get_user_name(id, name2, 31)
userid = get_user_userid(id)
read_args(message, 191)
if (message[0] == '"' && message[length] == '"') // HLSW fix
{
message[0] = ' '
message[length] = ' '
length += 2
}
remove_quotes(message[length])
get_user_name(priv, name, 31)
if (id && id != priv)
client_print(id, print_chat, "(%s) %s : %s", name, name2, message[length])
client_print(priv, print_chat, "(%s) %s : %s", name, name2, message[length])
console_print(id, "(%s) %s : %s", name, name2, message[length])
get_user_authid(priv, authid2, 31)
userid2 = get_user_userid(priv)
log_amx("Chat: ^"%s<%d><%s><>^" psay ^"%s<%d><%s><>^" ^"%s^"", name2, userid, authid, name, userid2, authid2, message[length])
log_message("^"%s<%d><%s><>^" triggered ^"amx_psay^" against ^"%s<%d><%s><>^" (text ^"%s^")", name2, userid, authid, name, userid2, authid2, message[length])
return PLUGIN_HANDLED
}


Dodatki SourceMod













