Свойства объектов¶
Открываем Whacked, создаём новый файл. У вас есть выбор - создать ли файл с конфигурацией BooM или Deh. Чем они различаются смотрите в конце темы. Пока выбираем deh, его поддерживает обычный DooM и Legacy. Bex поддерживают порты Boom, Zdoom и производные.
Свойства объектов¶
Нажимаем кнопку «Things». Далее смотрим: У каждого объекта должен быть свой порядковый номер. Этот номер изменять нельзя. А вот имя - запросто. Но желательно на английском. Объект «Player» вообще лучше не трогать! Новые объкты создавать нельзя! Смотрим в меню Properties. Здесь мы задаём главные свойсва объектов.
| Название | Описание |
|---|---|
| ID | «Карточный» номер. Под таким номером данный объект будет в редакторе карт |
| Speed | На сколько объект переместится во время обновления стэйтов (подробнее в следующей теме) |
| Status | Каждый объект объёмный. Его объём - цилиндр с данным радиусом |
| Height | Каждый объект объёмный. Его объём - цилиндр с данной высотой |
| Missle Damage | Повреждения, наносимые другим объектам, если данный объект - снаряд |
| Reaction Time | Реакция монстров. В 1/35 секунды. Если монстр вас завидел, то монстр всё ещё стоит, но спустя данное время, если он всё ещё вас видит, то он «просыпается» |
| Pain Chance | Шанс боли. 255 = 100%. Вероятность прехода на стэйт боли (вы в него стреляйте, а он издаёт вопль и корчится) |
| Mass | Масса данного объекта. Чем меньше масса, тем больше расстояние, на которое объект отлетает при повреждениях. |
| Bits | Биты - второстепенные свойства объектов (см. ниже) |
Стейты объектов¶
Какие стейты использует объект для разных ситуаций
| Название | Описание |
|---|---|
| Spawn State | Какой стэйт использует сразу после того, как появился на карте |
| Move State | Какой стэйт использует монстр, после того, как просыпается (стейты движения) |
| Pain State | Какой стэйт использует монстр, когда ему больно |
| Melee State | Какой стэйт использует монстр при атаке вблизи |
| Attack State | Какой стэйт использует монстр при атаке на расстоянии |
| Death State | Какой стэйт использует монстр, когда он умирает |
| Exploding State | Какой стэйт использует монстр, когда его разрывает на куски (ракетой, бфг) |
| Respawn State | Какой стэйт использует монстр, когда его воскрешает ArchVile |
Звуки объекта¶
Звуки, который издаёт объект в разных ситуациях.
| Название | Описание |
|---|---|
| Alert Sound | Звук, издаваемый монстром, когда он просыпается |
| Attack Sound | Звук, издаваемый монстром, когда он атакует на расстоянии или вблизи |
| Pain Sound | Звук, издаваемый монстром, когда ему больно |
| Death Sound | Звук, издаваемый монстром, когда он умирает |
| Action Sound | Звук, издаваемый монстром, когда он ищет момент для атаки (например, хрюканье импа) |
Биты объекта¶
Биты - второстепенные свойства объекта. По ним можно определить, будет ли объект летать, будет ли он монстром или итемом и т. д. Bits - главное свойство объекта, его значение - цифра. Каждый бит имеет свою цифру. Если вы хотите одному объекту приписать несколько битов, то надо в опцию Bits приписать сумму номеров этих битов. Есть в описании бита строка «активируется движком». Это значит, что если вы поставите этот бит объекту, он не подействует. Данный бит активируется и будет действовать, когда движку необходимо.
| Название | Номер | Описание |
|---|---|---|
| Can Be Picked Up | 1 | Объект можно подобрать (не рекомендуется включать/выключать этот бит у объектов!) |
| Obstacle | 2 | Объект объёмный, блокирует другие объекты |
| Shootable | 4 | Объект получает повреждения от стрельбы |
| Invisible And Touchable | 8 | Полностью невидимый, но блокирует объекты (лучше не использовать, а просто нарисовать невидимый спрайт или см. ниже) |
| Visible And untouchable | 16 | Видимый, но неблокирует объекты |
| Deaf (Ambush) | 32 | Представте ситуацию: доносится до монстра звук выстрела из сектора вне зоны видимости. Что сделает обычный монстр? Пойдёт в тот сектор. А монстр с таким битом не пойдёт |
| Attack Right Back | 64 | Как только проснётся, сразу выстрелит в игрока |
| Steps Before Attack | 128 | Отойдёт как минимум на шаг назад прежде, чем стрелять |
| Spawned on Ceiling | 256 | Появится на потолке сектора |
| No Gravity | 512 | На объект не действует гравитация |
| Travels Over Cliffs | 1024 | Может спрыгивать со ступенек больше 24. |
| Picks Up Items | 2048 | Может подбирать итемы (не рекомендуется включать данный бит у объектов, только игрок обязан иметь этот бит) |
| No clipping | 4096 | Может проходить сквозь стены и объекты |
| Keep Wall Slide Info | 8192 | Объект может скользить по стенам (активируется движком) |
| Floating | 16384 | Может летать, т. е. изменять свою z координату (если также поставлен бит No Gravity) |
| Semi No Clipping | 32768 | Может проходит сквозь другие объекты, но не сквозь стены |
| Projectile | 65536 | Данный объект ведёт себя как снаряд - когда достигает стены или объекта, взрывается (используя Death State) нанося повреждения, используя Missile Damage |
| Dropped By An Enemy | 131072 | Данный объект брошен монстром (активируется движком) |
| Draw As Shadow | 262144 | Сделать прозрачным (в Legacy) или рисовать точками (в DooM и других портах) |
| Puffs Vs. Bleeds | 524288 | У объекта вместо крови - дымок идёт (как от пуль при попадании в стену) |
| Corpse Slides Of Steps | 1048576 | Дохлый монстр будет скользить по ступенькам вниз |
| No Auto Leveling | 2097152 | Высота объекта всегда будет больше высоты пола сектора |
| Affects Kill % | 4194304 | Этот объект - монстр. Он может получать повреждения, издаёт разные звуки. И в конце уровня, когда идёт подсчёт убитых, данный объект тоже считают |
| Affects Item % | 8388608 | Этот объект - итем. Когда в конце уровня идёт подсчёт итемов, данный объект тоже считают |
| Flying Skull | 16777216 | Объект приобретает способность парить в воздухе |
| Not In Deathmatch | 33554432 | Данный объект не появляется при игре в DeathMatch |
| Color 1 | 67108864 | Все цвета зелёного отеенка приобретают серый оттенок |
| Color 2 | 134217788 | Все цвета зелёного отеенка приобретают коричневый оттенок |
Фичи Legacy¶
У Legacy есть ещё 2 бита для цветов. Два предыдущих бита - серый и коричневый. Если их включить вместе, то в итоге они дают красный цвет. Так что DooM поддерживает 3 дополнительных цвета. В Legacy из четырёх цветов можно сделать 13 комбинаций! Далее представляю таблицу таких комбинаций (в скобках биты). Иногда из этих битов получается то, что я назвал контраст. Все цвета картинки (не только зелёные) приобретают немыслимые оттенки. Всего 4 типа контраста, все цвета там меняются по разному.
| Цвета | (1) Серый (67108864) | (2) Коричневый (134217728) | (1 + 2) Красный (201326592) |
| (3) Светло Серый (268435456) | (1 + 3) Оранжевый (335544320) | (2 + 3) Ярко красный (402653184) | (1 + 2 + 3) Светло Синий (469762048) |
| (4) Синий (536870912) | (1 + 4) Жёлтый (603979776) | (2 + 4) Бежевый (671088640) | (1 + 2 + 4) Синий (738197504) |
| (3 + 4) Контраст_1 (805306368) | (1 + 3 + 4) Контраст_2 (872415232) | (2 + 3 + 4) Контраст_3 (536870912) | (1 + 2 + 3 + 4) Контраст_3 (1006632960) |
Но Whacked не может вставлять эти новые биты Legacy в deh. Поэтому сначала в Whacked включаем нужные вам обычные биты, затем открываем deh в блокноте. На эти обычные биты прибавляем к нужным вам новым на каркуляторе (или в уме, но я так не умею). Но вдруг у вас там ошибка (ни тот стэйт прописали, например)? Исправлять ошибку вручную в Блокноте трудно, но если вы откройте этот файл в Whacked, то новые биты сотруться. Поэтому совет: прежде, чем прописывать новые биты, удостоверьтесь, что у вас нет ошибок. Теперь откройте ваш deh в whacked, но выберите конфигурацию BooM. Сохраните его как bex. Откройте в блокноте. Чувствуйте разницу? Bex гораздо проще редактировать вручную, но и занимает bex места больше раза в 4 (deh занимает мала места, bex будет занимать мало, умноженное на 4. Что будет? Правильно, мало). Лажа в том, что Legacy не поддерживает bex. Но данные знания могут пригодиться любителям zdoom и производных портов. У Legacy есть ещё 2 бита: No Clip Thing (1073741824) - честно говоря, не понял чем он отличается от бита Semi No Clipping (32768) Floor Hugger (2147483648) - снаряд будет двигаться только по полу (пушку рекомендуется держать выше 90 градусов по y оси, выше середины экрана, иначе снаряд взорвётся сразу после вылета).
Фичи Heretic¶
Legacy уже давно заручилась поддержкой Еретика, теперь можно использовать некоторые его фичи. Я научился пока использовать только биты объектов. Теоретически можно использовать и кодепоинтеры, но в deh это почти невозможно, а bex Legacy пока не поддерживает. Биты прописывать надо пока только в блокноте: создаёте новую строку «Bits2», а дальше дейсвуйте так же, как обычно. Вот список новых битов.
| Название | Номер | Описание |
|---|---|---|
| Low Gravity | 1 | Сила гравитации, воздействующая на данный объект будет в 3 раза ниже |
| Wind Thrust | 2 | Сила ветра может действовать на данный объект |
| Floor Bounce | 4 | Данный снаряд отскакивает от пола и потолка (но не от стен) |
| Through Ghost | 8 | Данный снаряд будет проходить сквозь объекты с битом Draw As Shadow (262144) |
| Fly | 16 | Включить у этого объекта режим полёта (можно приписать игроку) |
| Foot Clip | 32 | Чего то там про ноги… каюсь, не знаю :)… |
| Spawn Float | 64 | Объект появляется в случайной z координате |
| No Teleport | 128 | Данный объект не телепортируется |
| Rip | 256 | Данный снаряд, попадая в другой объект, не взрывается, а летит дальше |
| Pushable | 512 | Другие объекты могут двигать данный объект |
| Slide Against Walls | 1024 | Объект может скользить против стен |
| On Object | 2048 | Объект остаётся стоять на другом объекте |
| Pass Object | 4096 | Разрешить проверку z координаты (помните, ещё в первом думе нельзя было пройти под летящим на большой высоте какодемоном? Данный бит устраняет это) |
| Cannot Push | 8192 | Объект не может двигать другие объкты, даже если они с битом Pushable (512) |
| Feet Clipped | 16384 | Опять чего - то с ногами… И опять я не знаю :)… |
| Boss | 32768 | Звуки просыпания и смерти этого объекта проигрываются на полную громкость, независимо от расстояния от объекта до игрока |
| Fire Damage | 32768 | Звуки просыпания и смерти этого объекта проигрываются на полную громкость, независимо от расстояния от объекта до игрока |
| No Damage Thrust | 65536 | Наносит урон огнём (нужна ещё сгорающая анимация монстров, специальное свойство, которого я не знаю) |
| Telestomp | 262144 | Объект, телепортируясь, может разнести на куски другой объект, стоящий в телепорте |
| Float Bobbing | 524288 | Объект летает вверх - вниз по синусойде (как некоторые итемы в Еретике и Хексене) |
| Don’t Draw | 1048576 | Не рендерить спрайты объекта, объект невидим (всё же рекомендуется рисовать прозрачный спрайт) |
| Predicting Shots | 2097152 | Монстр умеет предсказывать траекторию цели, и выпускает снаряд в предпологаемую позицию |
| Teleporting Missile | 4194304 | Данный снаряд может телепортироваться |