DECORATE

Материал из DoomDev

(Различия между версиями)
Перейти к: навигация, поиск
 
-
Lump DECORATE позволяет определять графику или анимации, размещаемые на уровне. DECORATE первоначально предназначаля для создания декоративных объектов, таких как лампы, не беря чужих фреймов, как это требуется при использовании DeHackEd.
+
Текстовый ламп DECORATE позволяет определять графику или анимации, размещаемые на уровне. DECORATE первоначально предназначался для создания декоративных объектов, таких как лампы, не беря чужих фреймов, как это требуется при использовании DeHackEd. Однако, позднее он был расширен и теперь возможно создать практически любой предмет.
-
Общая форма одной декорации:
+
По историческим причинам поддерживается два формата определения предметов. Однако старый формат полностью перекрывается новым и его не рекомендуется использовать.
-
  <имя>
+
 
 +
Общая форма одного предмета:
 +
  actor <имя_класса> [ : <класс-родитель>] [replaces <заменямый_класс>] [<doomednum>]
  {
  {
  <свойства>
  <свойства>
 +
<флаги>
 +
...
  }
  }
-
<Имя> - имя декорации, оно должно быть уникальным (то есть не совпадать с именами предопределенных классов и с именами других предметов определенных в DECORATE).
+
* <имя_класса>
-
Доступны следующие свойства:
+
:имя предмета, под котором его знает ZDoom. Оно должно быть уникальным (то есть не совпадать с именами предопределенных классов и с именами других предметов определенных в DECORATE).
-
{|valign="top" border="1"
+
* <класс-родитель>
-
|'''DoomEdNum''' <x>
+
:имя класса-родителя, от которого данный предмет наследует параметры (необязателен).
-
|<x> - номер предмета, размещаемого в редакторе
+
* <заменямый_класс>
-
|-
+
:имя класса, который заменяется данным классом (необязателен). Этот параметр работает на уровне выше простого повторения doomednum заменяемого класса и также влияет на попытки spawn-ить заменяемый предмет по имени. Однако он работает не полностью для [[Создание неинтерактивных предметов|предметов инвентаря]] и [[Создание новых классов игрока|пользовательских классов игрока]].
-
|'''SpawnNum''' <x>
+
* <doomednum>
-
|<x> - номер используемый в спецификаторах Thing_Spawn
+
:номер класса, используемый при сохранении карты (в лампе [[THINGS]])
-
|-
+
-
|'''Sprite''' <ABCD>
+
-
|<ABCD> - имя используемого спрайта
+
-
|-
+
-
|'''Frames''' "ABCD"
+
-
|ABCD - последовательность символов, определяющая анимацию предмета.  
+
-
Последовательность выглядит следующим образом:
+
-
<длительность>:<кадры>,<длительность>:<кадры>,<длительность>:<кадры>,...
+
-
Длительность - количество тиков между кадрами последовательности. Если не указана, используется значение 4. Кадры - последовательно имена кадров (а имя кадра - один символ). Символ * после имени кадра означает, что соответствующий кадр должен быть ярким (bright).
+
-
Ниже приведены значения свойства Frames некоторых декораций Doom:
+
Определение предмета(класса) состоит из [[Свойства предметов|свойств]], [[Флаги предметов|флагов]] и [[Анимации предметов|анимаций]].
-
"ABCD" - ShortRedTorch
+
[[Свойства предметов|Свойства]] и [[Флаги предметов|флаги]] определяют основное поведение предмета.
-
"6:AB" - HeadCandles
+
-
"A*B*C*D*" - TechLamp
+
-
"10:A, 15:B, 8:C, 6:B" - BloodyTwich
+
-
Заметьте, что когда необходима анимация с непостоянной скоростью, для разделения последовательностей, имеющих одинаковую скорость, используются запятые.
+
[[Анимации предметов|Анимации]] соответственно определяют различные анимации предмета.
-
|-
+
-
|'''Alpha''' <x>
+
-
|<x> - число в промежутке [0, 1], определяющее коэффициент прозрачности. Применяется совместно с RenderStyle.
+
-
|-
+
-
|'''RenderStyle''' <style>
+
-
|<style> - типа изображения декорации. Допустимые значения:
+
-
{|
+
-
|'''STYLE_None'''
+
-
|Невидимый
+
-
|-
+
-
|'''STYLE_Normal'''
+
-
|Обычное
+
-
|-
+
-
|'''STYLE_Fuzzy'''
+
-
|Эффект частичной невидимости
+
-
|-
+
-
|'''STYLE_SoulTrans'''
+
-
|Полупрозначность, определяемая cvar transsouls
+
-
|-
+
-
|'''STYLE_OptFuzzy'''
+
-
|В зависимоти от cvar r_drawfuzz эффект частичной невидимости или полупрозрачность
+
-
|-
+
-
|'''STYLE_Translucent'''
+
-
|Полупрозрачность
+
-
|-
+
-
|'''STYLE_Add'''
+
-
|Предмет подсвечивает фон и полупрозрачен
+
-
|}
+
-
|-
+
-
|'''Radius''' <x>
+
-
|<x> - "радиус" пограничной коробки (bounding box) предмета
+
-
|-
+
-
|'''Height''' <x>
+
-
|<x> - высота предмета
+
-
|-
+
-
|'''Translation1''' <x>
+
-
|<x> - 0, 1 или 2, соответствует стандартному переводу цветов Doom: серый, коричневый, красный
+
-
|-
+
-
|'''Translation2''' <x>
+
-
|<x> - 0-255, соответствует переводу цветов, определенному при помощи ACS-скрипта
+
-
|-
+
-
|'''Solid'''
+
-
|Блокирует движение
+
-
|-
+
-
|'''NoSector'''
+
-
|Предмет невидим, но влияет на передвижения
+
-
|-
+
-
|'''NoBlockmap'''
+
-
|Предмет рисуется, но взаимодействует со средой
+
-
|-
+
-
|'''SpawnCeiling'''
+
-
|Создается на потолке
+
-
|-
+
-
|'''NoGravity'''
+
-
|Не подвержен гравитации
+
-
|-
+
-
|'''LowGravity'''
+
-
|При падении не ускоряется обычном образом
+
-
|-
+
-
|'''WindThrust'''
+
-
|Может быть перемещен ветром. Я не уверен, что это свойство реализовано полностью. Оно работает для ветренных секторов Heretic, но не думаю, что влияет на ветер Boom
+
-
|-
+
-
|'''SpawnFloat'''
+
-
|Предмет создается между полом и потолком на случайной высоте. В версиях 2.0.61 и раньше был баг, в результате которого было некорректное поведение если потолок на 297 единиц выше потолка
+
-
|-
+
-
|'''Pushable'''
+
-
|Предмет можно толкать
+
-
|-
+
-
|'''CannotPush'''
+
-
|Предмет не может толкать другие предметы (если толкают его)
+
-
|-
+
-
|'''FloatBob'''
+
-
|"Плавает", как предметы Heretic и Hexen
+
-
|-
+
-
|'''Reflective'''
+
-
|Отражает снаряды, но не пули
+
-
|-
+
-
|'''DontSplash'''
+
-
|Не создает брызг при нахождении на жидких поверхностях
+
-
|-
+
-
|'''FloorClip'''
+
-
|Нижние пиксели предмета обрезаются для соответствующих полов, определенных в lump-е TEXTURE
+
-
|-
+
-
|'''Scale''' <x>
+
-
|Масштабирует спрайт в отношении <x>:1. То есть при значении 0.5 спрайт в 100 единиц будет сжато до размера 50.
+
-
|}
+
-
Пример:
+
-
  FastBloodyTwich
+
-
  {
+
-
      DoomEdNum 20000
+
-
      Sprite GOR1
+
-
      Frames "1:A*B*C*B*, 10:ABCB"
+
-
      SpawnCeiling
+
-
      Solid
+
-
      NoGravity
+
-
      Radius 16
+
-
      Height 68
+
-
  }
+
-
Примечанние: если определение предмета содержит комментарий Category, Doom Builder разместит имя предмета в соответствующей категории (а не в категории DECORATE).
+
[[Фукнции-действия]] заставляют предмет делать что-либо при показе вызывающих их кадров. Они - основа практически всего поведения врагов и монстров. Кроме того, в их качестве можно использовать все [[спецификаторы]], доступные в ACS.
 +
 
 +
Примечание: если определение предмета содержит комментарий Category, Doom Builder разместит имя предмета в соответствующей категории (а не в категории DECORATE).
Пример:
Пример:
-
   SmallLamp
+
   actor SmallLamp
   {
   {
-
       DoomEdNum 20001
+
       //...
-
      Sprite SLMP
+
-
      Frames "ABCD"
+
-
      Solid
+
-
      Radius 16
+
-
      Height 56
+
       //$Category lights
       //$Category lights
   }
   }
Примечание: DeePSea автоматически помещает предметы DECORATE в категории DECORATE1 - DECORATE4. DECORATE-предметы имеющие DoomEdNum, совпадающий с DoomEdNum уже существующего предмета, заменяет этот предмет. Это можно использовать как для замены предметов без DeHackEd, так и для помещения предметов в категории DECORATE. Более подробно это освещено в документации редактора.
Примечание: DeePSea автоматически помещает предметы DECORATE в категории DECORATE1 - DECORATE4. DECORATE-предметы имеющие DoomEdNum, совпадающий с DoomEdNum уже существующего предмета, заменяет этот предмет. Это можно использовать как для замены предметов без DeHackEd, так и для помещения предметов в категории DECORATE. Более подробно это освещено в документации редактора.
-
См. также:
+
Статьи по DECORATE:
-
* [[Создание фиктивных pickup]]
+
* [[Создание неинтерактивных предметов]]
-
* [[Создание разбиваемых декораций]]
+
-
* [[Создание новых снарядов]]
+
* [[Создание новых монстров и других сложных предметов]]
* [[Создание новых монстров и других сложных предметов]]
-
* [[Создание новый спрайтов]]
+
* [[Создание сложных предметов на основе исходника]]
* [[Создание нового оружия]]
* [[Создание нового оружия]]
 +
* [[Создание новых снарядов]]
 +
* [[Создание новых предметов инвентаря]]
 +
* [[Создание новых классов игрока]]
 +
* [[Создание (де)активируемых декораций]]
 +
* [[Применение наследования]]
 +
* [[Создание новых спрайтов]]
 +
* [[Переменные в DECORATE]]
 +
* [[Старый формат DECORATE]]
 +
 +
Справочники по предметам
 +
* [[Фукнции-действия]]
 +
 +
Другие материалы по DECORATE:
* [[DeCorEd]]
* [[DeCorEd]]
-
* [[ едактор DECORATE от Doomguy0505]]
+
* [[Decorate Editor Sharp|DecEdit]]
 +
* [[DecX]]
 +
* [[zWad]]
 +
 
 +
{{zdoomwikibased}}

Текущая версия

Личные инструменты