Изменение Меню
Изменение шрифта в главном меню
По умолчанию Source SDK настраивает мод для использования шрифта Halflife2 для заголовка.
С виду это неплохой шрифт, но он ориентирован к использованию в HalfLife2 в нем многие символы отсутствуют или выглядят как оружие или специальные символы.

Для настройки вашего мода к использованию более приемлимого шрифта требуется внести изменения в файл resource/ClientScheme.res (редактируется текстовым редактором).

Если вы будите пытаться открыть данный файл с помощью Visual Studio возможны проблемы с отображением содержимого.

Найдите в файле секцию ClientTitleFont
ClientTitleFont
{
 "1"
 {
  "name"  "GothicI"
  "tall"  "72"
  "weight"  "400"
  "antialias"  "1"
  "custom"  "1"
 }
}
Параметр custom указывает использовать собственно поставляемый шрифт, иначе будет производится поиск в системной директории WINDOWS/FONTS.

Имя шрифта соответствует специфическому имени шрифта, которое можно узнать открыв .ttf файл шрифта программой просмотра:


Если вы используете свой собственный шрифт (который обычо не поставляется с WINDOWS), потребуется добавление записи в секцию CustomFontFiles:
CustomFontFiles
{
 "1" "resource/HALFLIFE2.ttf"
 "2" "resource/HL2crosshairs.ttf"
 "3" "resource/GothicI.ttf"
}
Если у вас используется нестандартный шрифт, убедитесь что поместили соответствующий файл шрифта в директорию resource.


Изменение заголовка (title)
Первоначально имеющийся экран вашего мода при запуске показывает что это Halflife 2.
Естественно вы захотите это изменить, тогда вносите измение в файл scripts/gameinfo.txt
GameInfo
{
  game  "MyMod"
  title  "My Mod Name"
  type  singleplayer_only
}
game — отображается в заголовке окна программы
title — это и есть заголовок который мы захочем сменить
type — указывает что это одиночный тип игры

Внимание! не путайте файл scripts/gameinfo.txt с другими файлами имеющими такое же имя в других директориях.

Добавление собственной консольной команды в меню
В файле resource/gamemenu.res содержится скрипт описывающий какие будут присутствовать пункты меню в вашем моде.
Файл рабит на сейкции соответствующие каждому пункуту меню, такого вида
"7"
{
	"label" "#GameUI_GameMenu_SaveGame"
	"command" "OpenSaveGameDialog"
	"notmulti" "1"
	"OnlyInGame" "1"
}
«label» — устанавливает текстоый ресурс элемента меню
«command» — комманда кторая будет обработана движком, если команда начинается с текста «engine «, все что правее него будет выполнено так как это бы вводилось с консоли.
Например:
"command" "engine cl_showfps 1" 
это позволит включать отображение экрана fps с помощью кнопки меню
«notmulti» — использовать только для сингл-плеера
«OnlyInGame» — использовать только во время выполнения игры

Сами тексты которые отображаются в меню хранятся в файлах resource/gameui_*.txt (соответственно языковой версии).

Изменение фоновых картинок
Half-Life2 загружает 3D анимированные фоновые карты, этот механизм описан в документации по SDK:
http://www.valve-erc.com/srcsdk/Levels/background_maps.html.
Файл scripts/ChapterBackgrounds.txt в вашей директории мода связывает фоновые карты с определенными эпизодами игры.
Этот файл представляет собой список всех эпизодов в игре, и указывает какие фоны из каких BSP файлов будут загружены когда эпизод будет разблокирован в процессе прохождения сценария игроком.
"chapters"
{
 1 "background01"
 2 "background01"
 3 "background02"
 4 "background02"
 5 "background03"
 6 "background03"
 7 "background04"
 8 "background04"
 9 "background05"
 9a "background05"
 10 "background06"
 11 "background06"
 12 "background07"
 13 "background07"
 14 "background07"
 15 "background07"
}
Если в даннй момент нет фоновой карты, например, если она еще загружается — будет отображена статическая фоновая картинка. Такие картинки помещаются в директории materials/console, она находится в файле source materials.gcf.
Для загрузки этих картинок используются те же имена, указанные в файле ChapterBackgrounds.txt.
materials\console\
	...
	background01.vtf
	background01.vmt
	background01_widescreen.vtf
	background01_widescreen.vmt
	...
VTF — это Формат текстур Valve (Valve`s Texture Format), VMT — это текстовый файл который содержит описание материала — подробнее ознакомиться с его форматом можно в документации по SDK в секции Материалы (Materials) — http://www.valve-erc.com/srcsdk/.
TGA картинки используемые для фонов должны быть кратны размерам 512×512 (1024×1024) пикселей, и иметь 24 битную глубину цвета.
Для использования своего набора картинок воссоздайте структуру файлов в той же последовательности что и внутри .gcf файла в директорию вашего мода.
C:\MyMod\ModName\materials
C:\MyMod\ModName\materials\console\
C:\MyMod\ModName\materialsrc
C:\MyMod\ModName\materialsrc\console
Разработчики из Valve подразумевают что в директории materialsrc у вас сохраняются ваши исходные TGA файлы. Директория materials хранит преобразованные VTF и соответствующие им VMT файлы.
Для преобразования из .tga в .vtf, используйте утилиту vtex.exe (этот файл обычно находится в директории C:\program files\Valve\Steam\SteamApps\username\sourcesdk\bin.
Если например .tga находятся в директории materialsrc\console, vtex автоматически поместит .vtf в директорию materials\console.
Для создания соответствующих VMT лучше взять за основу оригинальные файлы из .gcf, изменение внесите в тектовом редакторе (notepad) и сохраните в директорию materials\console. Для пример, вот так будет выглядеть файл background01.vmt:
"UnlitGeneric"
{
	"$basetexture" "console/background01"
	"$vertexcolor" 1
	"$vertexalpha" 1
	"$ignorez" 1
	"$no_fullbright" "1"
	"$nolod" "1"
}


Создание статического фона для меню
Используя всю вышеприведенную информацию, создайте вашу фоновую картинку с именем background01.tga и преобразуйте из формата TGA в VTF. Поместите VTF в директорию materials/console, если этой директории у вас нет — создайте.
Теперь нужно изменить файл cfg/valve.rc
//exec default.cfg
exec joystick.cfg
exec autoexec.cfg
stuffcmds
startupmenu
Здесь мы рассмотрим строку
startupmenu
Если закоментировать ее,
//startupmenu
то предыдущая фоновая карта будет заменена на постоянную статическую картинку.

Музыка и звуки в меню
Звуки наведения и кликов на кнопки меню находятся в файлах:
sound/UI/buttonclick.wav
sound/UI/buttonclickrelease.wav
sound/UI/buttonrollover.wav


Создайте файл с музыкальным треком и поместите его в директорию sound/media
В файле cfg/valve.rc укажите
play media/MySound.wav


Иконки в меню выбора эпизодов (синглплеер)
Замените материалы в файлах materials/vgui/chapters/*.vtf на ваши собственные (если их нет — создайте на основе тех которые в hl2).

Ссылки
http://www.chatbear.com/…
http://www.sourcewiki.org/wiki/index.php/Main_Menu_Editing
http://www.sourcewiki.org/wiki/index.php/MainMenuEditingPart2

Автор: DarkLight.
2 марта 2005, 03:03