Описание:
Плагин позволяет менять игрокам имена, когда их нет в живых.
Стандартно плагин будет работать для всех на сервере
С помощью кваров, вы можете настроить уровни доступа по флагам, запретить текст.
Квары:
dnc_enable (0: Выкл, 1: Вкл, стандартно: 1) - работа плагина
dnc_access (флаг, стандартно: "") - установка флага доступа
dnc_announce (0: Выкл, 1: Вкл, стандартно: 1) - управление за текстом
Благодарности:
L3X - первоначальная идея
Код
#include <amxmodx>
#include <fakemeta>
// Главная информация о плагине
#define PLUGIN_NAME "Dead Name Change"
#define PLUGIN_VERSION "0.1"
#define PLUGIN_AUTHOR "VEN"
// Квары имена
#define CVAR_NAME_ENABLE "dnc_enable"
#define CVAR_NAME_ACCESS "dnc_access"
#define CVAR_NAME_ANNOUNCE "dnc_announce"
// Стандартные значения кваров
#define CVAR_DVAL_ENABLE "1"
#define CVAR_DVAL_ACCESS ""
#define CVAR_DVAL_ANNOUNCE "1"
new const g_name[] = "name"
new /* const */ g_name_change[] = "#Cstrike_Name_Change"
new g_pcvar_enable
new g_pcvar_access
new g_pcvar_announce
new g_msgid_saytext
public plugin_init() {
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
g_pcvar_enable = register_cvar(CVAR_NAME_ENABLE, CVAR_DVAL_ENABLE)
g_pcvar_access = register_cvar(CVAR_NAME_ACCESS, CVAR_DVAL_ACCESS)
g_pcvar_announce = register_cvar(CVAR_NAME_ANNOUNCE, CVAR_DVAL_ANNOUNCE)
register_forward(FM_ClientUserInfoChanged, "forward_client_userinfochanged")
g_msgid_saytext = get_user_msgid("SayText")
}
public forward_client_userinfochanged(id, buffer) {
if (!get_pcvar_num(g_pcvar_enable) || !is_user_connected(id) || is_user_alive(id))
return FMRES_IGNORED
static oldname[32], newname[32]
get_user_name(id, oldname, sizeof oldname - 1)
engfunc(EngFunc_InfoKeyValue, buffer, g_name, newname, sizeof newname - 1)
if (equal(newname, oldname))
return FMRES_IGNORED
static iflags, szflags[28]
get_pcvar_string(g_pcvar_access, szflags, sizeof szflags - 1)
iflags = read_flags(szflags)
if (iflags != ADMIN_ALL && !(get_user_flags(id) & iflags))
return FMRES_IGNORED
if (get_pcvar_num(g_pcvar_announce))
msg_name_change(id, oldname, newname)
return FMRES_SUPERCEDE
}
msg_name_change(id, /* const */ oldname[], /* const */ newname[]) {
message_begin(MSG_BROADCAST, g_msgid_saytext)
write_byte(id)
write_string(g_name_change)
write_string(oldname)
write_string(newname)
message_end()
}
Отредактировал: insamez, - 26.7.2013, 19:57
Причина: Отвлекся, добавил несколько слов. Подправил ошибки