Цитата(coca-cola :) @ 8.11.2016, 8:44)
ArTeMsH, ну так предоставь исходник этого плагина. Предоставь весь список плагинов. Из тебя всё нужно вытягивать ?
Да и старайся понятней формулировать свои предложения, очень трудно понять, что ты пишешь.
Код:
#include <amxmodx> #include <amxmisc> #define PLUGIN "Colored Translit Config" #define VERSION "3.0" #define AUTHOR "Sho0ter" #define INTCVARS 29 #define ACCESS_LEVEL ADMIN_RCON #define CT_TRANSLIT 0 #define CT_LOG 1 #define CT_ADMIN_PREFIX 2 #define CT_NAME_COLOR 3 #define CT_CHAT_COLOR 4 #define CT_ALLCHAT 5 #define CT_LISTEN 6 #define CT_SOUNDS 7 #define CT_COUNTRY 8 #define CT_SWEAR 9 #define CT_SWEAR_WARNS 10 #define CT_SWEAR_IMMUN 11 #define CT_SWEAR_GAG 12 #define CT_SWEAR_GAG_TIME 13 #define CT_AUTO_RUS 14 #define CT_SHOW_INFO 15 #define CT_IGNORE 16 #define CT_IGNORE_MODE 17 #define CT_GAG_IMMUN 18 #define CT_FLOOD 19 #define CT_SPAM 20 #define CT_SPAM_IMMUN 21 #define CT_SPAM_WARNS 22 #define CT_SPAM_ACTION 23 #define CT_SPAM_TIME 24 #define CT_CHEAT 25 #define CT_CHEAT_IMMUN 26 #define CT_CHEAT_ACTION 27 #define CT_CHEAT_TIME 28 new sCvars[INTCVARS][] = { "amx_translit", "amx_translit_log", "amx_admin_prefix", "amx_name_color", "amx_chat_color", "amx_allchat", "amx_listen", "amx_ctsounds", "amx_country_chat", "amx_swear_filter", "amx_swear_warns", "amx_swear_immunity", "amx_swear_gag", "amx_swear_gag_time", "amx_auto_rus", "amx_show_info", "amx_ignore", "amx_ignore_mode", "amx_gag_immunity", "amx_flood_time", "amx_spam_filter", "amx_spam_immunity", "amx_spam_warns", "amx_spam_action", "amx_spam_time", "amx_cheat_filter", "amx_cheat_immunity", "amx_cheat_action", "amx_cheat_time" } new cOnOff[2][] = { "CT_OFF", "CT_ON" } new cChatColors[7][] = { "", "CT_COLOR_YELLOW", "CT_COLOR_GREEN", "CT_COLOR_GRAY", "CT_COLOR_BLUE", "CT_COLOR_RED", "CT_COLOR_TEAM" } new cAllChat[3][] = { "CT_OFF", "CT_ON", "CT_ALLCHAT_ADMIN" } new cCountry[4][] = { "CT_OFF", "CT_COUNTRY_FULL", "CT_COUNTRY_2", "CT_COUNTRY_3" } new cAutoRus[3][] = { "CT_OFF", "CT_AUTO_RUS_CONNECT", "CT_AUTO_RUS_ALWAYS" } new cIgnoreMode[4][] = { "", "CT_IGNORE_NO_TRANSLIT", "CT_IGNORE_HIDE", "CT_IGNORE_STATSX_SHELL" } new cSpamAction[7][] = { "CT_OFF", "CT_SPAM_KICK", "CT_SPAM_GAG", "CT_SPAM_BAN_STEAMID", "CT_SPAM_BAN_IP", "CT_SPAM_BAN_STEAMID_AMXBANS", "CT_SPAM_BAN_IP_AMXBANS" } new cCheatAction[7][] = { "CT_OFF", "CT_CHEAT_KICK", "CT_CHEAT_BAN_STEAMID", "CT_CHEAT_BAN_IP", "CT_CHEAT_BAN_STEAMID_AMXBANS", "CT_CHEAT_BAN_IP_AMXBANS", "CT_CHEAT_CUSTOM" } new iLines[INTCVARS] new iCvars[INTCVARS] new Edited[33] new Position[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_dictionary("colored_translit_config.txt") register_menucmd(register_menuid("Config Menu"), 1023, "action_configs_menu") register_concmd("colored_translit_config", "cmd_admin_menu", ACCESS_LEVEL) cache_lines() read_cvars() add_menu() return PLUGIN_CONTINUE } public add_menu() { new mName[128] format(mName, charsmax(mName), "%L", LANG_SERVER, "CT_MENU_TITLE") AddMenuItem(mName, "colored_translit_config", ADMIN_RCON, PLUGIN) } public write_cvars(id) { new cFile[128], sLine[32] get_configsdir(cFile, charsmax(cFile)) format(cFile, charsmax(cFile), "%s/colored_translit/config.cfg", cFile) for(new i; i < INTCVARS-1; i++) { format(sLine, charsmax(sLine), "%s ^"%d^"", sCvars[i], iCvars[i]) write_file(cFile, sLine, iLines[i]) } server_cmd("exec %s", cFile) server_exec() client_print(id, print_chat, "[%s] %L", PLUGIN, id, "CT_SAVED") return PLUGIN_CONTINUE } public read_cvars() { for(new i; i < INTCVARS; i++) { iCvars[i] = get_cvar_num(sCvars[i]) } return PLUGIN_CONTINUE } public cache_lines() { new cFile[128] get_configsdir(cFile, charsmax(cFile)) format(cFile, charsmax(cFile), "%s/colored_translit/config.cfg", cFile) if(!file_exists(cFile)) { new errMsg[128] format(errMsg, charsmax(errMsg), "Config file <%s> not found!", cFile) set_fail_state(errMsg) return PLUGIN_HANDLED } new Buffer[512], Len, Cached new AllLines = file_size(cFile, 1) while(Cached < INTCVARS-1) { for(new i; i <= AllLines; i++) { read_file(cFile, i, Buffer, charsmax(Buffer), Len) if(Buffer[0] == ';' || Buffer[0] == '/' || !strlen(Buffer)) { continue } if(containi(Buffer, sCvars[Cached]) == 0) { iLines[Cached] = i Cached++ i = AllLines } } } return PLUGIN_CONTINUE } public cmd_admin_menu(id, level, cid) { if(!access(id, level)) { return PLUGIN_HANDLED } show_configs_menu(id, Position[id] = 1, 1) return PLUGIN_CONTINUE } public show_configs_menu(id, position, firstopen) { if(firstopen) { read_cvars() Edited[id] = 0 } new Len, MenuBody[1024] new Keys = MENU_KEY_0 Len = format(MenuBody, charsmax(MenuBody), "\y%L\R\r%d/5^n^n", id, "CT_MENU_TITLE", position) switch(position) { case 1: { Keys |= (1 << 0) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r1. \w%L\R\y%L^n", id, "CT_MENU_TRANSLIT", id, cOnOff[iCvars[CT_TRANSLIT]]) Keys |= (1 << 1) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r2. \w%L\R\y%L^n", id, "CT_MENU_LOG", id, cOnOff[iCvars[CT_LOG]]) Keys |= (1 << 2) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r3. \w%L\R\y%L^n", id, "CT_MENU_ADMIN_PREFIX", id, cOnOff[iCvars[CT_ADMIN_PREFIX]]) Keys |= (1 << 3) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r4. \w%L\R\y%L^n", id, "CT_MENU_NAME_COLOR", id, cChatColors[iCvars[CT_NAME_COLOR]]) Keys |= (1 << 4) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r5. \w%L\R\y%L^n", id, "CT_MENU_CHAT_COLOR", id, cChatColors[iCvars[CT_CHAT_COLOR]]) Keys |= (1 << 5) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r6. \w%L\R\y%L^n", id, "CT_MENU_ALLCHAT", id, cAllChat[iCvars[CT_ALLCHAT]]) } case 2: { Keys |= (1 << 0) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r1. \w%L\R\y%L^n", id, "CT_MENU_LISTEN", id, cOnOff[iCvars[CT_LISTEN]]) Keys |= (1 << 1) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r2. \w%L\R\y%L^n", id, "CT_MENU_SOUNDS", id, cOnOff[iCvars[CT_SOUNDS]]) Keys |= (1 << 2) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r3. \w%L\R\y%L^n", id, "CT_MENU_COUNTRY", id, cCountry[iCvars[CT_COUNTRY]]) Keys |= (1 << 3) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r4. \w%L\R\y%L^n", id, "CT_MENU_SWEAR", id, cOnOff[iCvars[CT_SWEAR]]) Keys |= (1 << 4) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r5. \w%L\R\y%d^n", id, "CT_MENU_SWEAR_WARNS", iCvars[CT_SWEAR_WARNS]) Keys |= (1 << 5) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r6. \w%L\R\y%L^n", id, "CT_MENU_SWEAR_IMMUN", id, cOnOff[iCvars[CT_SWEAR_IMMUN]]) } case 3: { Keys |= (1 << 0) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r1. \w%L\R\y%L^n", id, "CT_MENU_SWEAR_GAG", id, cOnOff[iCvars[CT_SWEAR_GAG]]) Keys |= (1 << 1) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r2. \w%L\R\y%d %L^n", id, "CT_MENU_SWEAR_GAG_TIME", iCvars[CT_SWEAR_GAG_TIME], id, "CT_MIN") Keys |= (1 << 2) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r3. \w%L\R\y%L^n", id, "CT_MENU_AUTO_RUS", id, cAutoRus[iCvars[CT_AUTO_RUS]]) Keys |= (1 << 3) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r4. \w%L\R\y%L^n", id, "CT_MENU_SHOW_INFO", id, cOnOff[iCvars[CT_SHOW_INFO]]) Keys |= (1 << 4) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r5. \w%L\R\y%L^n", id, "CT_MENU_IGNORE", id, cOnOff[iCvars[CT_IGNORE]]) Keys |= (1 << 5) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r6. \w%L\R\y%L^n", id, "CT_MENU_IGNORE_MODE", id, cIgnoreMode[iCvars[CT_IGNORE_MODE]]) } case 4: { Keys |= (1 << 0) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r1. \w%L\R\y%L^n", id, "CT_MENU_GAG_IMMUN", id, cOnOff[iCvars[CT_GAG_IMMUN]]) Keys |= (1 << 1) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r2. \w%L\R\y%d %L^n", id, "CT_MENU_FLOOD", iCvars[CT_FLOOD], id, "CT_SEC") Keys |= (1 << 2) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r3. \w%L\R\y%L^n", id, "CT_MENU_SPAM", id, cOnOff[iCvars[CT_SPAM]]) Keys |= (1 << 3) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r4. \w%L\R\y%L^n", id, "CT_MENU_SPAM_IMMUN", id, cOnOff[iCvars[CT_SPAM_IMMUN]]) Keys |= (1 << 4) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r5. \w%L\R\y%d^n", id, "CT_MENU_SPAM_WARNS", iCvars[CT_SPAM_WARNS]) Keys |= (1 << 5) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r6. \w%L\R\y%L^n", id, "CT_MENU_SPAM_ACTION", id, cSpamAction[iCvars[CT_SPAM_ACTION]]) } case 5: { Keys |= (1 << 0) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r1. \w%L\R\y%d %L^n", id, "CT_MENU_SPAM_TIME", iCvars[CT_SPAM_TIME], id, "CT_MIN") Keys |= (1 << 1) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r2. \w%L\R\y%L^n", id, "CT_MENU_CHEAT", id, cOnOff[iCvars[CT_CHEAT]]) Keys |= (1 << 2) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r3. \w%L\R\y%L^n", id, "CT_MENU_CHEAT_IMMUN", id, cOnOff[iCvars[CT_CHEAT_IMMUN]]) Keys |= (1 << 3) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r4. \w%L\R\y%L^n", id, "CT_MENU_CHEAT_ACTION", id, cCheatAction[iCvars[CT_CHEAT_ACTION]]) Keys |= (1 << 4) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r5. \w%L\R\y%d %L^n", id, "CT_MENU_CHEAT_TIME", iCvars[CT_CHEAT_TIME], id, "CT_MIN") } } Keys |= (1 << 6) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "^n\r7. \w%L^n", id, "CT_MENU_CLEAR") if(Edited[id]) { Keys |= (1 << 7) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r8. \w%L \r*^n^n", id, "CT_MENU_SAVE") } else { Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r8. \d%L^n^n", id, "CT_MENU_SAVE") } if(position != 5) { Keys |= (1 << 8) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r9. \w%L^n", id, "CT_MENU_MORE") } else { Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r9. \d%L^n", id, "CT_MENU_MORE") } if(position != 1) { Keys |= (1 << 9) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r0. \w%L^n^n\y%s v%s by %s", id, "CT_MENU_BACK", PLUGIN, VERSION, AUTHOR) } else { Keys |= (1 << 9) Len += format(MenuBody[Len], charsmax(MenuBody) - Len, "\r0. \w%L^n^n\y%s v%s by %s", id, "CT_MENU_EXIT", PLUGIN, VERSION, AUTHOR) } show_menu(id, Keys, MenuBody, -1, "Config Menu") } public action_configs_menu(id, key) { switch(key) { case 6: { show_configs_menu(id, Position[id], 1) return PLUGIN_HANDLED } case 7: { if(Edited[id]) { write_cvars(id) } Edited[id] = 0 show_configs_menu(id, Position[id], 0) return PLUGIN_HANDLED } case 8: { if(Position[id] != 5) { Position[id]++ show_configs_menu(id, Position[id], 0) } return PLUGIN_HANDLED } case 9: { if(Position[id] == 1) { return PLUGIN_HANDLED } Position[id]-- show_configs_menu(id, Position[id], 0) return PLUGIN_HANDLED } default: { new Choosed if(Position[id] == 1) { Choosed = Position[id] * key } else { Choosed = (Position[id] - 1) * 6 + key } iCvars[Choosed]++ if(Choosed == CT_NAME_COLOR || Choosed == CT_CHAT_COLOR) { if(iCvars[Choosed] >= 7) { iCvars[Choosed] = 1 } } else if(Choosed == CT_ALLCHAT || Choosed == CT_AUTO_RUS) { if(iCvars[Choosed] >= 3) { iCvars[Choosed] = 0 } } else if(Choosed == CT_COUNTRY) { if(iCvars[Choosed] >= 4) { iCvars[Choosed] = 0 } } else if(Choosed == CT_SWEAR_WARNS || Choosed == CT_SPAM_WARNS || Choosed == CT_SWEAR_GAG_TIME || Choosed == CT_FLOOD) { if(iCvars[Choosed] >= 31) { iCvars[Choosed] = 0 } } else if(Choosed == CT_CHEAT_TIME || Choosed == CT_SPAM_TIME) { if(iCvars[Choosed] < 30) { iCvars[Choosed] += 4 } else if(30 <= iCvars[Choosed] < 240) { iCvars[Choosed] += 29 } else if(240 <= iCvars[Choosed] < 1440) { iCvars[Choosed] += 59 } else if(1440 <= iCvars[Choosed] < 10080) { iCvars[Choosed] += 1439 } else if(10080 <= iCvars[Choosed] < 50000) { iCvars[Choosed] += 10079 } else { iCvars[Choosed] = 0 } } else if(Choosed == CT_IGNORE_MODE) { if(iCvars[Choosed] >= 4) { iCvars[Choosed] = 1 } } else if(Choosed == CT_SPAM_ACTION || Choosed == CT_CHEAT_ACTION) { if(iCvars[Choosed] >= 7) { iCvars[Choosed] = 0 } } else if(iCvars[Choosed] >= 2) { iCvars[Choosed] = 0 } Edited[id] = 1 show_configs_menu(id, Position[id], 0) } } return PLUGIN_HANDLED } Код:
/* * ====== ИНФОРМАЦИЯ ====== * * Название: Colored Translit * Автор: Sho0ter * Версия: 3.0 * Последнее обновление: 02.12.2010 * Посетите сайт: http://cs.4m.net.ua * * ======== ОПИСАНИЕ ======== * * Это полная замена стандартного чата * с огромным функционалом * * ==== БЛАГОДАРНОСТЬ ===== * * Использованы исходники: * * 1. Translit with chat colors (by Makzz) * 2. Admin Chat Colors (by Arion) * 3. Chat Logger (by Jim) * 4. Swear Replacement (by kaboomkazoom) * * Использованы идеи: * * 1. Translit with chat colors (by Makzz) * 2. Admin Chat Colors (by Arion) * 3. Chat Logger (by Jim) * 4. Swear Replacement (by kaboomkazoom) * 5. Admin Listen (by BigBaller) * 6. All Chat (by Ian Cammarata) * 7. No Reklama Advanced (by Racoon) * 8. Ban for cheat messages (by draft) * * Вcем им огромное спасибо! * * ========= ВАЖНО ========== * * Чтобы обеспечить полную * рабоспособносить плагина: * * 1. Отключить все плагины * работаючщие с чатом * 2. Отключить плагины которые * есть в списке ниже * 3. Поместить плагин в самый * низ plugins.ini * * Отключить стоит следующие плагины: * * 1. Translit * 2. Admin Chat Colors * 3. Chat Logger * 4. Admin Listen * 5. All Chat * 6. Swear Replacement * 7. No Reklama Advanced * 8. Stop Chat Ad * 9. Ban for cheat messages * 10. И им подобные * * ======== ФУНКЦИИ ========= * * 1. Возможность писать по-русски * 2. Гибкие настройки * 3. Возможность переключить рус/англ * 4. Выбраный язык остается в конфиге игрока * 5. Возможность блокировать чат * 6. Возможность скрывать слова * 7. Функционирование команд "/", "@" и "!" * 8. Анти-флуд * 9. Анти-мат * 10. Анти-спам * 11. Анти-чит * 12. Приставка к нику админа * 13. Изменения цвета ника админа * 14. Изменения цвета сообений админа * 15. Запись чата в лог * 16. Возможность писать всем * 17. Админ может видеть весь чат * 18. Элементы чата в ланг-файле * 19. Логирование всех действий плагина * 20. И еще другие мелочи * * == КОМАНДЫ ДЛЯ ИГРОКА == * * say /rus * - Писать в чате по-русски * * say /eng * - Писать по-английски * * == КОМАНДЫ ДЛЯ АДМИНА == * * amx_gag <имя/номер/стим> <время в минутах> * - Запретить игроку писать в чат * * amx_ungag <имя/номер/стим> * - Разрешить игроку писать в чат * * ===== ПЕРЕМЕННЫЕ ====== * * amx_translit <0/1> [По умолчанию: 1] * - Русский чат * - 0 Выключен * - 1 Включен * * amx_translit_log <0/1> [По умолчанию: 1] * - Логирование * - 0 Выключено * - 1 Включено * * amx_admin_prefix <0/1> [По умолчанию: 1] * - Приставка [Админ] * - 0 Выключена * - 1 Включена * * amx_name_color <1/2/3/4/5/6> [По умолчанию: 6] * - Цвет ника админа в чате * - 1 Стандартный (желтый) * - 2 Зеленый * - 3 Серый * - 4 Синий * - 5 Красный * - 6 Цвет команды * * amx_chat_color <1/2/3/4/5/6> [По умолчанию: 1] * - Цвет сообщений админа в чате * - 1 Стандартный (желтый) * - 2 Зеленый * - 3 Серый * - 4 Синий * - 5 Красный * - 6 Цвет команды * * amx_allchat <0/1/2> [По умолчанию: 0] * - Все пишут всем * - 0 Выключено * - 1 Включено * - 2 Только админы пишут всем * * amx_listen <0/1> [По умолчанию: 1] * - Админы видят весь чат * - 0 Выключено * - 1 Включено * * amx_ctsounds <0/1> [По умолчанию: 1] * - Звуки * - 0 Выключены * - 1 Включены * * amx_country_chat <0/1/2/3> [По умолчанию: 0] * - Приставка страны * - 0 Выключена * - 1 Полная * - 2 Краткая (2 буквы) * - 3 Краткая (3 буквы) * * amx_swear_filter <0/1> [По умолчанию: 1] * - Анти-мат * - 0 Выключен * - 1 Включен * * amx_swear_immunity <0/1> [По умолчанию: 1] * - Иммунитет админов к анти-мату * - 0 Выключен * - 1 Включен * * * amx_swear_warns <количество> [По умолчанию: 3] * - Количество предупреждений за мат * - после которых игрок будет наказан * * amx_swear_gag <0/1> [По умолчанию: 1] * - Блокировка чата за мат * - 0 Включена * - 1 Выключена * * amx_swear_gag_time <минуты> [По умолчанию: 5] * - Время блокировки чата за мат * * amx_auto_rus <0/1/2> [По умолчанию: 1] * - Автоматическое выставление русского языка * - 0 Выключено * - 1 Выставлять всем русский при входе * - 2 Все пишут только по-русски * * amx_show_info <0/1> [По умолчанию: 1] * - Информация о чат-командах при подключении * - 0 Отключена * - 1 Включена * * amx_ignore <0/1> [По умолчанию: 1] * - Использование игнор-листа * - 0 Нет * - 1 Да * * amx_ignore_mode <1/2/3> [По умолчанию: 1] * - Способ игнорирования слов * - 1 Не переводить в русский * - 2 Скрывать * - 3 Полностью игнорировать * * amx_gag_immunity <0/1> [По умолчанию: 1] * - Иммунитет админов к блокировке чата * - 0 Нет * - 1 Да * * amx_flood_time <секунды> [По умолчанию: 3] * - Анти-флуд время * * amx_spam_filter <0/1> [По умолчанию: 1] * - Анти-спам * - 0 Выключен * - 1 Включен * * amx_spam_immunity <0/1> [По умолчанию: 1] * - Иммунитет админов к анти-спаму * - 0 Выключен * - 1 Включен * * amx_spam_warns <количество> [По умолчанию: 3] * - Количество предупреждений за спам * - после которых игрок будет наказан * * amx_spam_action <0/1/2/3/4/5/6> [По умолчанию: 2] * - Наказание за спам * - 0 Выключено * - 1 Кик * - 2 Блокировка чата * - 3 Бан по SteamID * - 4 Бан по IP * - 5 Бан по SteamID через AmxBans * - 6 Бан по IP через AmxBans * * amx_spam_time <минуты> [По умолчанию: 30] * - Время бана/блокировки чата за спам * * amx_cheat_filter <0/1> [По умолчанию: 1] * - Анти-чит сообщения * - 0 Выключено * - 1 Включено * * amx_cheat_immunity <0/1> [По умолчанию: 1] * - Иммунитет админов к анти-читу * - 0 Выключен * - 1 Включен * * amx_cheat_action <0/1/2/3/4/5/6> [По умолчанию: 1] * - 0 Выключено * - 1 Кик * - 2 Бан по SteamID * - 3 Бан по IP * - 4 Бан по SteamID через AmxBans * - 5 Бан по IP через AmxBans * - 6 Свое (см. amx_cheat_custom) * * amx_cheat_time <минуты> [По умолчанию: 0] * - Время бана за чит-сообщение * - В минутах * - 0 Навсегда * * amx_cheat_custom <команда> [По умолчанию: ] * - Свое действие за чит-сообщение * - Ключи: * - %userid% - ID Игрока * - %name% - Ник игрока * - %ip% - IP Игрока * - %steamid% - SteamID игрока * - Пример: "amx_destroy %name%" * * === ИСТОРИЯ ИЗМЕНЕНИЙ === * * 3.0: * [!] Фикс ошибки вылета игроков * [!] Добавлены нативы и форварды * [!] Оптимизация кода * [*] Исправлена кодировка ланг-файла * * 2.0b Final: * [!] Исправлен командный чат * [!] Исправлена команда amx_gag * * 2.0a Final: * [!] Полная оптимизация кода * [!] Полностью переписано форматирование сообщения * [!] Убран лишний код * [*] Исправлены сообщения при gag/ungag * [*] Исправлены команды /rus /eng * [+] Добавлена приставка страны * [+] Добавлено предупреждение за маты * [*] Изменена приставка админа * [*] Изменены сообщения анти-мата * * 2.0 Final: * [+] Добавлены звуки * [!] Оптимизирован код * [*] Фикс логирования банов за чит-сообщения * [*] Фикс логирования гагов за мат * [!] Обновлен квар amx_ignore_mode (Специально для Statsx_Shell юзеров) * [*] Обновлен квар amx_auto_rus * [!]- Убраны лишние инклюды * * 1.9: * [+] Добавлен анти-чит * [+] Добавлена возможность скрывать слова * [+] Добавлены новые квары * [*] Фикс некоторых ошибок * [!] Оптимизирован код * * 1.8: * [!] Исправлены команды rus eng * [!] Доработан код игнорирования * [!] Исправлен баг с анти-флудом * [!] Доработана защита от сбивания блока чата при реконнекте * * 1.7: * [+] Добавлен анти-спам * [+] Добавлены новые квары * [!] Изменен код игрорирования * [!] Изменен код блокировки чата * * 1.6: * [!] Переделан код блокировки чата (Geny-Key) * [!] Запись блокировок в лог * [*] Код разделен на части * * 1.5: * [!] Доработан анти-мат * [!] Доработано выведение сообщений * [+] Добавлена возомжность блокировки чата * [+] Добавлен анти-флуд * [+] Добавлены новые квары * * 1.4: * [*] Доработан анти-мат * [!] Исправлена приставка наблюдателя * [*] Упрощена настройка доступа * [!] Обновлен ланг-файл * [*] Мелкие исправления * [!] Исправлена возможность отправки пустых сообщений * * 1.3: * [!] Исправлено падение сервера * [*] Косметическая уборка консоли * [*] Косметическая уборка кода * [*] Все конфиги перенесены в отдельную папку * [!] Изменен ланг-файл * [*] Изменена папка логов чата * * 1.2: * [+] Добавлен иммунитет админов к анти-мату * [+] Добавлено авто-выставление русского языка * [+] Добавлены чат-команды /rus и /eng * [+] Добавлена информация о чат-командах * [+] Добавлена возможность игнорировать слова * [+] Добавлен конфиг-файл * [+] Добавлены FCVAR_SERVER * * 1.1: * [+] Добавлен анти-мат * [+] Добавлено выведение в консоль * * 1.0: * [!] Первый релиз * * ============================ */ #include <amxmodx> #include <amxmisc> #include <geoip> #include <colored_translit> #include "colored_translit/defines.inl" #include "colored_translit/init.inl" #include "colored_translit/cfg.inl" #include "colored_translit/putin.inl" #include "colored_translit/clcmds.inl" #include "colored_translit/gag.inl" #include "colored_translit/ungag.inl" #include "colored_translit/natives.inl" #include "colored_translit/info.inl" #include "colored_translit/say.inl" #include "colored_translit/say_team.inl" #include "colored_translit/stocks.inl"