Система Комментирования
Система комментариев позволяет вам вставлять в уровень DVD-подобные комментарии. Пример использования можно увидеть в Lost Coast .
Обзор
Пользователи включают режим комментариев внутри Аудио настроек. Когда комментарии включены, игра ищет файл комментариев внутри директории MOD/maps. Комментарии хранятся отдельно от BSP , это позволяет изменить комментарии уже после финального тестирования карты. Файл комментария должен быть в формате .TXT с названием, как и карта, а так же с приставкой "_commentary".
- Например. Если файл вашей карты называется
d2_lostcoast.bsp
, тогда файл комментария должен называтьсяd2_lostcoast_commentary.txt
.
Если файл комментариев найден, игра переключается в режим комментариев, в котором происходит следующее:
- Энтити содержащиеся в файле комментариев обрабатываются и создаются.
- Игрок переключается в режим полу-бога: иммунитет ко всему, кроме повреждения от падения и trigger_waterydeath . Это не позволяет игрокам обойти барьеры карты.
Игроки могут включить & выключить комментарии в любое время. Энтити упомянутые в файле комментариев будут автоматически уничтожены.
Основные энтити в файле комментария, это point_commentary_node - модель для активации воспроизведения комментариев.
Файл Комментария
Файл комментария - KeyValues -форматированный текст, в котором перечисленные энтити, которые должны быть созданы при включенном режиме комментариев. По существу, это те же энтити, что и в VMF файлах (Hammer . Формат файла выглядит следующим образом:
Commentary { entity { <key> <value> <key> <value> etc... } entity { <key> <value> <key> <value> и т.д... } и т.д... }
Каждая энтити секция содержит список ключей и значений для DLL игры, чтобы создать эти энтити. Эти ключи и значения такие же, как и в VMF , и как следствие - полностью описаны в Hammer FGD файле.
Заметьте, что один из ключей должны быть "classname"
, так DLL Игры поймет, что это описание типа энтити.
Любой тип энтити может быть создан через файл комментария, но не все энтити будут работать правильно. В частности, вы не можете использовать энтити, использующие браши (func_*, trigger_*, и т.д.). Если вы хотите использовать некоторые функции этих энтити, не так уж и трудно заставить их работать в DLL игры. Для примера, если вы хотите через файл комментариев отслеживать перемещение энтити func_tracktrain , которые вы планируете создать через тот же файл комментария, ваш кодер может добавить возможности для энтити func_tracktrain использовать не-брашевые модели.
Если вы хотите более сложные энтити в режиме комментариев, вам будет легче создать эти энтити внутри ваше карты через Hammer, и открывать файл VMF через текстовый редактор и скопировать данные энтити в ваш файл комментария.
Основные энтити в файле комментария, это point_commentary_node .
Расширенное использование
Вы можете задать Outputs в ваших комментарий-энтитях, вложив подраздел connections
в кусок entity
. Формат будет таким:
entity { <key> <value> <key> <value> и т.д.... "connections" { <output name> "<targetname>,<input name>,<parameter>,<delay in seconds>,<number of times the output can fire (-1 = infinite)>" } }
Пример
entity { "classname" "point_commentary_node" "origin" "1214 4787 2356" "angles" "0 90 0" "commentaryfile" "#lostcoast\commentary\comm_tone.wav" "speakers" "Chris Green" "targetname" "comm_node_9" "connections" { "OnCommentaryStarted" "comm_clientcommand,Command,mat_show_histogram 1,42,-1" "OnCommentaryStopped" "comm_clientcommand,Kill,,0,-1" } }
OnCommentaryStarted выход point_commentary_node связывается с Command входом с targetname энтити "comm_clientcommand" (в данном случае, point_clientcommand ). Указывается параметр "mat_show_histogram 1", с ожиданием 42 секунды, и при этом допускается стрелять бесконечное число раз. Выход OnCommentaryStopped соединятся со входом Kill того же энтити, но без параметров или задержки.