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 }