Просмотр
Материал из DoomDev
Страница «
Спецификатор предмета
»
Перейти к:
навигация
,
поиск
[[Изображение:special1.jpg|frame|center|Рисунок 1: Спецификатор монстра в действии]] Одной из особенностей ZDoom, выгодно отличающей его от других портов, является спецификатор монстра. В момент смерти монстра может выполняться скрипт или действие, что позволяет намного расширить возможности редактирования уровней. На уровне-примере [http://zdoom.org/zdkb/monspec.zip monspec.wad], когда умирает сержант, вызывается скрипт, выполняющий одновременно несколько действий. [[Изображение:special2.gif|frame|center|/##<br> Sector for Spawn = Сектор появления<br> Tagged Door = Дверь, которой присвоен tag<br> Tagged Sector = Сектор, которому присвоен tag<br> # = №<br> Map Spot = Предмет-метка на карте<br> Enemyw/ Special = Монстр, имеющий спецификатор<br> Weapon & Player = Оружие и игрок<br> ##/<br> Рисунок 2: План уровня в WadAuthor]] На рисунке 2 показан план карты. Секторам №№ 1 и 2, как и двери, назначены tag-и. Дверь открывается скриптом, поэтому с ней ассоциированы обычные линии (linedefs). Сектор появления – сектор, в котором создается предмет «Сфера душ» (Soulsphere), и который содержит метку на карте, предназначенную для использования спецификатором Thing_Spawn. [[Изображение:special3.gif|frame|center|Рисунок 3: Настройка монстра]] На рисунке 3 показана настройка монстра. Назначенный монстру спецификатор вызывает скрипт 1. То есть, когда монстр умирает, происходит следующее: Яркость освещения в секторе 1 постепенно понижается с уровня 180 до 120. Яркость освещения в секторе 2 увеличивается с уровня 120 до 180. Открывается дверь. Предмет «Сфера душ» (Soulsphere) появляется в местоположении предмета-метки. Двери и секторам tag-и присвоены обычным образом. Кроме того, tag должен быть присвоен предмету-метке, что и показано на рисунке 4. [[Изображение:special4.gif|frame|center|Рисунок 4: Настройка предмета-метки]] Я поместил предмет-метку в отдельном секторе, хотя можно этого и не делать. Так как одна команда работает с предметом-меткой, а другая – с сектором, то они не конфликтуют (информация, исправленная благодаря Randy). Дополнительное замечание от Randy: То же самое замечание относится и к предметам-выходам из телепортов: они идентифицируются по их ID предмета, а не по секторам их содержащим. Поэтому в одном секторе могут быть несколько предметов-выходов, и пока они имеют различные ID, их можно использовать независимо друг от друга. [[Изображение:special5.jpg|frame|center|Рисунок 5: Редактор скриптов]] Заключительный этап – написание скрипта. Этот скрипт очень прост. Спецификатор монстра вызывает скрипт 1. Когда монстр умирает, команды скрипта выполняются одна за другой, без задержки. Другими словами, эти действия происходят одновременно. Получается довольно интересный эффект, что можно увидеть, запустив наш уровень-пример. const не требуется, но немного ускоряет скрипт (Randy). Кроме того, если применить директиву #include “zcommon.acs”, можно использовать именованные константы, что сделает скрипт намного читабельнее. Тогда в команде [[Thing_Spawn]] число 25 можно изменить на T_SOULSPHERE. Ниже перечислены все использованные команды и описания их аргументов: [[Door_Open]] tag, скорость * tag – tag, назначенный двери * скорость – скорость открывания двери [[Light_Fade]] tag, цель, скорость * tag – tag, назначенный сектору * цель – новая яркость освещения. Освещение может стать менее или более ярким. Чтобы понизить яркость, установите начальное значение яркости больше значения этого аргумента. Чтобы повысить яркость, сделайте наоборот меньше. [[Thing_Spawn]] tag, предмет, угол * tag – tag, назначенный предмету-метке. * предмет – Это ID предмета (ThingID). Список предметов, которые можно создать при помощи данной команды, приведен в справочнике ZDoom. * угол – угол, определяющий ориентацию создаваемого предмета. Спецификаторы могут быть назначены не только монстрам, но и другим предметам. Поэтому, когда игрок возьмет ракетомет, его может ожидать сюрприз. {{RCTutorial}}
Шаблон:RCTutorial
Возврат к странице
Спецификатор предмета
.
Просмотры
Статья
Обсуждение
Просмотр
История
Личные инструменты
Представиться системе
Навигация
Заглавная страница
Сообщество
Текущие события
Свежие правки
Случайная статья
Справка
Поиск
Инструменты
Ссылки сюда
Связанные правки
Загрузить файл
Спецстраницы