Mapchooser Extended 1.11.2 CSGO+CSS - Описание обновления
Сгенерировано с помощью AI
═══════════════════════════════════════
ДЛЯ ОБЫЧНЫХ ПОЛЬЗОВАТЕЛЕЙ
═══════════════════════════════════════
Основные изменения:
1. Улучшенный визуальный стиль сообщений в чате
● Цветовой префикс плагина изменён с
[MCE] (тёмно-синий) на
[MAP] (оранжевый с синим)
● Сообщения стали более выразительными с улучшенной цветовой палитрой
● Числовые значения (времени, раунды, фраги) теперь выделены оранжевым цветом для лучшей видимости
2. Исправлены проблемы с переводами при ServerLang ru
● Ранее при установке
ServerLang "ru" в конфиге sourcemod возникали ошибки с отображением текстов
● Теперь все переводы работают корректно независимо от языковых настроек сервера
● Система автоматически использует английский язык, если русский недоступен
3. Переместился звуковой плагин в папку disabled
● Плагин
mapchooser_extended_sounds.smx теперь находится в папке
disabled
●
Почему это было сделано: Если вы не используете звуки при голосованиях, плагин больше не будет генерировать ошибки
●
Как включить если нужно: Переместите файл из папки
disabled в папку
plugins
═══════════════════════════════════════
ДЛЯ ОПЫТНЫХ ПОЛЬЗОВАТЕЛЕЙ И РАЗРАБОТЧИКОВ
═══════════════════════════════════════
Технические изменения в коде:
1. Добавлена библиотека multicolors.inc (SourceMod)
● Используется для унифицированной работы с цветными сообщениями в чате
● Обеспечивает совместимость с разными движками Source Engine
● Позволяет централизованно управлять префиксом плагина
2. Новые глобальные переменные в basetriggers.sp
/* Prefix used by multicolors for all chat messages */
char g_sPrefixMCE[PREFIX_MAX_LENGTH];
EngineVersion g_GameEngine = Engine_Unknown;
bool doNextmap; // Флаг для отключения команды nextmap на некоторых движках
3. Функция LoadChatPrefix() - динамическая загрузка префикса
stock void LoadChatPrefix()
{
/* Loads the prefix used for all chat messages. The phrase is configurable in translations. */
Format(g_sPrefixMCE, sizeof(g_sPrefixMCE), "%t", "MCE Prefix");
if (g_sPrefixMCE[0] == '\0' || StrEqual(g_sPrefixMCE, "MCE Prefix", false))
{
strcopy(g_sPrefixMCE, sizeof(g_sPrefixMCE), "[MCE]");
}
}
● Префикс теперь загружается из файла переводов, а не захардкодирован
● Позволяет легко изменять префикс без перекомпиляции плагина
● Используется функция
CSetPrefix() из multicolors для установки префикса
4. Переименование констант для лучшей читаемости
●
TIMELEFT_ALL_ALWAYS →
PRINT_TO_ALL_ALWAYS (Печать для всех игроков всегда)
●
TIMELEFT_ALL_MAYBE →
PRINT_TO_ALL_MAYBE (Печать для всех игроков если разрешено)
●
TIMELEFT_ONE →
PRINT_TO_ONE (Печать для одного игрока)
5. Поддержка Left4Dead и Left4Dead2
Добавлена специальная логика для игр серии Left4Dead:
if (g_GameEngine == Engine_Left4Dead || g_GameEngine == Engine_Left4Dead2)
{
g_Cvar_FriendlyFire = FindConVar("z_difficulty");
// Расширенная обработка параметров сложности и дружественного огня
}
● Автоматическое определение типа игры через
GetEngineVersion()
● Для L4D учитываются переменные приятного огня как процент повреждений
● Поддержка сложностей: Easy, Normal, Hard, Impossible (Expert)
6. Отключение команды nextmap для игры Dystopia
if (strcmp(folder, "dystopia") == 0)
{
doNextmap = false;
}
else
{
RegConsoleCmd("nextmap", Command_Nextmap);
doNextmap = true;
}
Так как Dystopia имеет иные механики голосования, команда nextmap отключена для этой игры.
7. Изменение сигнатуры функции ShowFriendlyFire()
Было:
void ShowFriendlyFire(int client)
Стало:
void ShowFriendlyFire(int client, int who)
● Добавлен параметр
who для управления целевой аудиторией сообщения
● Теперь функция использует одинаковую логику с
ShowTimeLeft()
8. Обновление работы с CP функциями (Chat Print)
Было:
CPrintToChatAll(" %t", "Timeleft", mins, secs);
CPrintToChat(client," %t", "Current Map", map);
Стало:
CPrintToChatAll("%t", "Timeleft", mins, secs); // Без пробела
CPrintToChat(client, "%t", "Current Map", map); // Префикс добавляется через CSetPrefix
● Убран пробел в начале строки форматирования
● Префикс добавляется автоматически через
CSetPrefix() из multicolors
● Результат: более чистый и унифицированный код
9. Добавлена фраза Friendly Fire Percent для Left4Dead
"Friendly Fire Percent"
{
"#format" "{1:0.0f}"
"en" "Friendly Fire is {ORANGE}{1}%."
}
Выводит процент дружественного огня для игр Left4Dead и Left4Dead2.
10. Переработка файла переводов basetriggers.phrases.txt
Структурные изменения:
● Убраны русские переводы (оставлены только английские)
● Добавлена новая фраза "MCE Prefix" управляемая из кода
● Все фразы теперь начинаются без префикса - он добавляется функцией
CSetPrefix()
● Обновлены основные цвета: вместо
{DARKBLUE} используется
{ORANGE} для выделения значений
Пример:
Было:
"Timeleft"
{
"ru" "{DARKBLUE}[MCE]{DEFAULT} До конца карты осталось"
"en" "{DARKBLUE}[MCE]{DEFAULT} Time remaining for map: "
}
Стало:
"Timeleft"
{
"en" "Time remaining for map: {ORANGE}"
}
11. Обновлена ссылка на справку по цветам в комментариях
●
Было: https://hlmod.ru/resources/more-colors.975/
●
Стало: More Colors
12. Поддержка новых конфигов для multicolors
В папку
include/ добавлены:
●
multicolors.inc - основная библиотека
● папка
multicolors/ - включения для поддержки разных движков
Эти файлы обеспечивают работу всех цветовых функций на движках: CSGO, CSS, TF2, L4D, L4D2, Nucleardawn и других.
═══════════════════════════════════════
Архитектурные улучшения:
═══════════════════════════════════════
●
Централизованное управление префиксом - Теперь префикс плагина хранится в файле переводов и может быть изменён администратором без необходимости перекомпиляции
●
Лучшая поддержка разных движков - Использование multicolors.inc обеспечивает совместимость с расширенным спектром Source Engine игр
●
Исправление проблем локализации - Система выбора языка теперь более надёжная и не конфликтует с
ServerLang
●
Оптимизация инициализации - Перемещение логики LoadChatPrefix() в начало OnPluginStart() обеспечивает корректное отображение префикса