создание меню GUI
В этой статье я расскажу вам о базовых изменениях в главном меню Counter Strike 1.6.
Из этой статьи вы узнаете:
Как изменять название пунктов меню.
Как добавлять новые пункты меню.
Для урока нам понадобиться: Counter Strike 1.6, или ее русифицированная версия, любой текстовый редактор. Теперь приступим.
Скорее всего почти у всех меню игры русифицировано. У меня оно выглядит так :

1. Начнем с изменения названия пунктов.

Заходим в «%GAMEDIR%\cstrike\resource» открываем файл GameMenu.res. Этот файл отвечает за главное меню. Открываем его любым текстовым редактором. В файле мы видим:
"GameMenu"
{
"1"
{
"label" "#GameUI_GameMenu_ResumeGame"
"command" "ResumeGame"
"OnlyInGame" "1"
}
"2"
{
"label" "#GameUI_GameMenu_Disconnect"
"command" "Disconnect"
"OnlyInGame" "1"
"notsingle" "1"
}
"4"
{
"label" "#GameUI_GameMenu_PlayerList"
"command" "OpenPlayerListDialog"
"OnlyInGame" "1"
"notsingle" "1"
}
"8"
{
"label" ""
"command" ""
"OnlyInGame" "1"
}
"9"
{
"label" "#GameUI_GameMenu_NewGame"
"command" "OpenCreateMultiplayerGameDialog"
}
"10"
{
"label" "#GameUI_GameMenu_FindServers"
"command" "OpenServerBrowser"
}
"13"
{
"label" "#GameUI_GameMenu_Options"
"command" "OpenOptionsDialog"
}
"14"
{
"label" "#GameUI_GameMenu_Quit"
"command" "Quit"
}
}
Переименовываем пункт меню. Ищем строки:
"6"
{
"label" "#GameUI_GameMenu_FindServers"
"command" "OpenServerBrowser"
}
Теперь #GameUI_GameMenu_FindServers изменяем к примеру на Lan Game.
"6"
{
"label" "Lan Game"
"command" "OpenServerBrowser"
}
Заходим в игру, смотрим:

Теперь попробуем сделать тоже самое только для русифицированной Counter Strike 1.6.
Заходим в «%GAMEDIR%\cstrike\resource», ищем там файл gameui_english. В файле следующие строки:
"GameUI_GameMenu_FindServers" "Найти серверы"
И зменим на :
"GameUI_GameMenu_FindServers" "Поиск серверов"
Зайдем в игру и проверим:

2. Добавление нового пункта в меню.
Давайте добавим пункт меню, например быстрой заход на наш игровой сервер.
Заходим в «%GAMEDIR%\cstrike\resource», и открываем файл GameMenu.res.
Для примера берем Public Classic Server (xx.xxxxxx.xx:27000)
"*"
{
"label" "Public Classic Server"
"command" "engine connect xx.xxxxx.xx:27000"
}
Вставляем этот пункт в нужное нам место. Смотрим что получилось:

Теперь делаем тоже самое для русифицированной Counter Strike 1.6.
Заходим в «%GAMEDIR%\cstrike\resource», и открываем файл gameui_english. В любое удобное нам место добавляем
"GameUI_Csxxx" "Классический сервер"
, теперь снова открываем файл GameMenu.res и добавляем туда следующие строки:
"*"
{
"label" "#GameUI_Csxxx"
"command" "engine connect xx.xxxxx.xx:27000"
}
Заходим в игру, смотрим:

Таким методом можно добавить еще серверов. Вот что вышло у меня :


Если на сервере стоить пароль:
"*"
{
"label" "Server"
"command" "engine password 12345;engine connect xx.xxxxx.xx:27000"
}
Как мы видим, при нажатии пункта Server, вначале сработает ввод пароля а потом уже коннект на сам сервер)
Теперь добавим еще пару новых пунктов меню:
"*"
{
"label" "SnickErS.cfg"
"command" "exec snickers.cfg"
}
В меню появится пункт который позволит загрузить ваш личный конфиг. Вышеописанным способом вы можете русифицировать имя конфига. Кол-во пунктов меню зависит от вас

Теперь добавим смену игры на Half-Life.
В удобное нам место добавим строки:
"*"
{
"label" "#GameUI_GameMenu_ChangeGame"
"command" "OpenChangeGameDialog"
"notsteam" "1"
"notsingle" "1"
"notmulti" "1"
}
Смотрим что у нас вышло:

Так же между пунктами меню можно создавать пробелы/расстояния. Добавим в нужное нам место строчки:
"*"
{
"label" ""
"command" ""
}
Заходим в игру:

Вышеуказанными способами вы сможете разнообразить свое меню, "label" Это название пункта, "command" это сама команда которая будет выполнять вашу функцию.
Теперь добавим пункт меню который будет отображаться после захода на сервер.

Добавим пункт Список игроков:
"*"
{
"label" "#GameUI_GameMenu_PlayerList"
"command" "OpenPlayerListDialog"
"OnlyInGame" "1"
"notsingle" "1"
}
Добавим еще пункт Показать кол-во кадров в секунду:
Quote
"*"
{
"label" "Show FPS"
"command" "engine net_graph 3"
"OnlyGame" "1"
}
Добавим еще Reconnect:
Quote
"*"
{
"label" "Reconnect"
"command" "engine reconnect"
"OnlyGame" "1"
}
Заходим в игру:

Вот мы с вами и изучили основу добавления пунктов меню. Дальше вы сможете сами добавить свои пункты меню а так же все русифицировать. Главное соблюдайте нумерацию и расположение скобок в меню.