Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Версия 1.2.8 (1 июня 2016г):
- добавлена консольная команда nkm_add_reason, которая добавляет причину, соответствующее ей правило и команду наказания
- удален new_kick_menu.ini, так как загрузка причин осуществляется через new_kick_menu.cfg
- удален квар nkm_warning_punishment_cmd, так как его функциональность заменила консольная команда nkm_add_reason
- добавлен квар nkm_warning_hud_msg_pos, который задает x и y координаты предупредительного HUD сообшения
- добавлено автоматическое создание конфигурационного файла new_kick_menu.cfg для кваров, если он не существует
- квар nkm_warning_sound теперь содержит путь к файлу звука, который будет проигрываться игроку при выдаче предупреждения
- добавлена возможность компиляции плагина в режиме интеграции (#define ADMIN_LOADER_INTEGRATION) с плагином Admin Loader версии 1.5 и выше от neygomon с целью получения флагов доступа через предоставляемое API
- удален квар auth_delay_load_flags, так как вызывает слишком много вопросов
Версия 1.2 (15 марта 2016г):
- добавлен квар nkm_warning_hud_msg, который определяет будет ли показываться HUD сообщение при выдаче предупреждения
- добавлен квар nkm_warning_sound, который определяет будет ли проигрываться звук при выдаче предупреждения
- добавлен квар nkm_warning_punishment_cmd, который позволяет назначить свое наказание за превышение максимального числа предупреждений
- добавлена функция native new_kick_menu_display(id), которая позволяет встраивать в свои скрипты вызов нового Kick меню
- добавлена возможность выбора нескольких игроков для применения наказания
- добавлена возможность расставлять переносы строк для сообщений чата в конфигурационных файлах (*.ini, *.cfg, *.txt) и исходном коде
Версия 1.1.5 (1 февраля 2016г):
- добавлен квар nkm_warning_hud_msg_color, который задает цвет предупредительного HUD сообшения
- добавлен квар nkm_log_type, который настраивает куда будут писаться логи. 0 - в стандартный лог AMX Mod X, 1 - в папку newkickmenu
- добавлен квар nkm_high_access_flags, который задает флаги доступа необходимые для возможности кикать и выдавать предупреждения игрокам с иммунитетом
- квар nkm_menu_access_flags, переименован в nkm_access_flags (смысл не изменился, так как ничего кроме меню в плагине нет)
- добавлен конфигурационный файл newkickmenu.cfg, в котором можно задать значения кваров и прочитать описания к ним
Версия 1.1 (30 декабря 2015г):
- добавлена поддержка многоязычности ("addons/amxmodx/data/lang/new_kick_menu.txt")
- добавлена возможность выдавать предупреждения
Версия 1.0.1 (23 ноября 2015г):
- добавлена возможность игрокам с правами ADMIN_RCON (флаг "L"), кикать игроков с иммунитетом
Версия 1.0 (8 сентября 2015г):
- переделан конфиг newkickmenu.ini и код его загрузки, для поддержки большого количества причин и правил
- добавлен квар nkm_menu_access_flags "c", который задает флаги доступа к меню кика
- удален квар nkm_immunity, его функциональность добавлена в nkm_immunity_flags
- переименован квар nkm_delay_load_flags в auth_delay_load_flags
- исправлены недочеты форматирования при листании меню
- к правилу при кике добавляется имя админа, чтобы игрок точно сказал кто из админов его наказал
- добавлено логирование кика, для возможности решения спорных ситуаций и контроля за админами
Версия 0.9.4 (22 апреля 2015г):
- возможность задать задержку загрузки флагов доступа (квар nkm_delay_load_flags)
- реорганизация кода
Версия 0.9.3 (16 ноября 2014г):
- полный переход на версию AMX ModX 1.8.3, на версиях 1.8.2 и ниже работа не гарантируется
- добавлена возможность писать свою причину админам, у которых стоит защита на CS (протектор)
- плагин завершает работу если файл newkickmenu.ini был загружен некорретно. Если загрузка прошла успешно, будет соответствующая запись об этом в логах AMX Mod X
Версия 0.9.2 (13 мая 2014г):
- плагин теперь работает без словаря, причины и правила считываются из newkickmenu.ini
- добавлена поддержка colorchat
- добавлена возможность быстро кикать игрока, за которым в данный момент наблюдает админ. Он будет первым в списке. Также удобно если игрок быстро меняет ники, можно быть уверенным что это именно он
- HLTV получил иммунитет
Версия 0.9.1:
- если у игрока есть бомба, он ее выкидывает и уже потом кикается
new const CFG_ADDITIONAL_TEXT[][] =
{
"// Формат команды: nkm_add_reason ^"текст причины^" ^"текст правила^" [^"команды для наказания^"]^n",
"// ^"команда для наказания^" - необязательный параметр, отвечающий за то, будет ли применяться указанное наказание при выдаче предупреждения или нет^n",
"nkm_add_reason ^"Неадекват^" ^"Неадекватное поведение^" ^"amx_slap %userid% 5^"^n",
"nkm_add_reason ^"Мониторинг^" ^"Запрещено мониторить^"^n",
"nkm_add_reason ^"АФК^" ^"Вы стояли без движения слишком долго^"^n",
"nkm_add_reason ^"Нуб | Ламер^" ^"Сервер не для новичков^"^n",
"nkm_add_reason ^"Кемпер^" ^"Необходимо выполнять задание карты^"^n",
"nkm_add_reason ^"Лагер^" ^"Вы лагаете, настройте интернет и закройте лишние приложения^"^n",
"nkm_add_reason ^"Реклама | Флуд | Спам^" ^"Запрещены флуд, спам, реклама^"^n^n"
};
new kick_reasons_num;
new kick_menu_cid;
new kick_reason_mid[MAX_CLIENTS + 1];
new access_flags , high_access_flags, immunity_flags;
new p_nkm_max_warnings , nkm_max_warnings;
new p_nkm_log_type , nkm_log_type;
new p_nkm_warning_hud_msg , nkm_warning_hud_msg;
new p_nkm_warning_sound , nkm_warning_sound[CVAR_LEN];
new hud_color[3];
new Float: hud_msg_pos[3];
new nkm_log_filename[FILENAME_LEN];
new kick_data [MAX_CLIENTS + 1][kick_data_map];
new warnings_num [MAX_CLIENTS + 1];
new item_to_selected_player[MAX_CLIENTS + 1][MAX_CLIENTS];
new selected_players[MAX_CLIENTS + 1][MAX_CLIENTS + 1];
new kick_reason [MAX_REASONS][REASON_LEN];
new kick_rule [MAX_REASONS][REASON_LEN];
new kick_punish_cmd [MAX_REASONS][CMD_LEN];
for (new i; i < sizeof CFG_ADDITIONAL_TEXT; i++) {
add_to_cfg(CFG_ADDITIONAL_TEXT);
}
}
public plugin_cfg()
{
exec_cfg_file(CONFIG_FILE, nkm_log_type ? nkm_log_filename : "");
load_cvars();
if (nkm_log_type) {
new full_path[FILENAME_LEN];
if (create_amxx_subfolder("amxx_logs", "newkickmenu", full_path, charsmax(full_path))) {
new date_year, date_month, date_day;
date(date_year, date_month, date_day);
formatex(nkm_log_filename, charsmax(nkm_log_filename), "%s/L%d%02d%02d.log", full_path, date_year, date_month, date_day);
}
else {
log_amx("Error opening ^"%s^" folder", full_path);
pause("ad");
return;
}
}
}
init_cvars()
{
//задержка загрузки флагов доступа (пригодится если долго загружаются из базы данных)
auth_delay_load_flags = 1.0;
p_nkm_max_warnings = register_cvar_ex ("nkm_max_warnings" , "3" , _, _, "лимит предупреждений после превышения которого игрок будет автоматически удален с сервера");
p_nkm_log_type = register_cvar_ex ("nkm_log_type" , "1" , _, _, "куда будут писаться логи:^n// 0 - в стандартный лог AMX Mod X ^"addons/amxmodx/logs^"^n// 1 - в подпапку ^"addons/amxmodx/logs/newkickmenu^"");
p_nkm_warning_hud_msg = register_cvar_ex ("nkm_warning_hud_msg" , "1" , _, _, "показывать (1) или не показывать (0) HUD сообщение при выдаче предупреждения");
p_nkm_warning_sound = register_cvar_ex ("nkm_warning_sound" , "events/friend_died" , _, _, "звук, который будет проигрываться игроку при выдаче предупреждения^n// Если квар пустой, то звук не проигрывается");
register_cvar_ex ("nkm_warning_hud_msg_pos" , "-1.0 0.36" , _, _, "x и y координаты HUD сообщения, которое показывается при выдаче предупреждения");
register_cvar_ex ("nkm_warning_hud_msg_color" , "255 75 75" , _, _, "RGB цвет HUD сообщения, которое показывается при выдаче предупреждения. Порядок: Красный Зеленый Синий");
register_cvar_ex ("nkm_access_flags" , "c" , _, _, "флаги доступа необходимые для использовая кик меню");
register_cvar_ex ("nkm_high_access_flags" , "l" , _, _, "флаги доступа необходимые для возможности кикать и выдавать предупреждения игрокам с иммунитетом");
register_cvar_ex ("nkm_immunity_flags" , "a" , _, _, "флаги иммунитета от действий админа^n// Внимание: от действий админов с правами указанными в кваре nkm_high_access_flags иммунитета нет");
}
for (new i = 1; i <= max_players; ++i) {
if (is_connected(i) && i != id && !get_bit(is_hltv, i) && i != observer_target) {
item_to_selected_player[id][item++] = i;
menu_additem (nk_mid, "iem_name", .callback = kick_menu_cid);
}
}
bool: is_player_selected(id, selected_player)
{
for (new i = 1; i <= max_players; i++) {
if (selected_players[id] && i == selected_player) {
return true;
}
}
return false;
}
set_player_unselected(id, selected_player)
{
for (new i = 1; i <= max_players; i++) {
if (selected_players[id] && i == selected_player) {
selected_players[id] = 0;
break;
}
}
}
public plugin_natives()
{
register_native("new_kick_menu_display", "_new_kick_menu_display", 1);
}