Свойства объектов ================= Открываем Whacked, создаём новый файл. У вас есть выбор - создать ли файл с конфигурацией BooM или Deh. Чем они различаются смотрите в конце темы. Пока выбираем deh, его поддерживает обычный DooM и Legacy. Bex поддерживают порты Boom, Zdoom и производные. Свойства объектов ----------------- Нажимаем кнопку "Things". Далее смотрим: У каждого объекта должен быть свой порядковый номер. Этот номер изменять нельзя. А вот имя - запросто. Но желательно на английском. Объект "Player" вообще лучше не трогать! Новые объкты создавать нельзя! Смотрим в меню Properties. Здесь мы задаём главные свойсва объектов. .. list-table:: :widths: 15 40 :header-rows: 1 * - Название - Описание * - ID - "Карточный" номер. Под таким номером данный объект будет в редакторе карт * - Speed - На сколько объект переместится во время обновления стэйтов (подробнее в следующей теме) * - Status - Каждый объект объёмный. Его объём - цилиндр с данным радиусом * - Height - Каждый объект объёмный. Его объём - цилиндр с данной высотой * - Missle Damage - Повреждения, наносимые другим объектам, если данный объект - снаряд * - Reaction Time - Реакция монстров. В 1/35 секунды. Если монстр вас завидел, то монстр всё ещё стоит, но спустя данное время, если он всё ещё вас видит, то он "просыпается" * - Pain Chance - Шанс боли. 255 = 100%. Вероятность прехода на стэйт боли (вы в него стреляйте, а он издаёт вопль и корчится) * - Mass - Масса данного объекта. Чем меньше масса, тем больше расстояние, на которое объект отлетает при повреждениях. * - Bits - Биты - второстепенные свойства объектов (см. ниже) Стейты объектов --------------- Какие стейты использует объект для разных ситуаций .. list-table:: :widths: 15 30 :header-rows: 1 * - Название - Описание * - Spawn State - Какой стэйт использует сразу после того, как появился на карте * - Move State - Какой стэйт использует монстр, после того, как просыпается (стейты движения) * - Pain State - Какой стэйт использует монстр, когда ему больно * - Melee State - Какой стэйт использует монстр при атаке вблизи * - Attack State - Какой стэйт использует монстр при атаке на расстоянии * - Death State - Какой стэйт использует монстр, когда он умирает * - Exploding State - Какой стэйт использует монстр, когда его разрывает на куски (ракетой, бфг) * - Respawn State - Какой стэйт использует монстр, когда его воскрешает ArchVile Звуки объекта ------------- Звуки, который издаёт объект в разных ситуациях. .. list-table:: :widths: 15 30 :header-rows: 1 * - Название - Описание * - Alert Sound - Звук, издаваемый монстром, когда он просыпается * - Attack Sound - Звук, издаваемый монстром, когда он атакует на расстоянии или вблизи * - Pain Sound - Звук, издаваемый монстром, когда ему больно * - Death Sound - Звук, издаваемый монстром, когда он умирает * - Action Sound - Звук, издаваемый монстром, когда он ищет момент для атаки (например, хрюканье импа) Биты объекта ------------ Биты - второстепенные свойства объекта. По ним можно определить, будет ли объект летать, будет ли он монстром или итемом и т. д. Bits - главное свойство объекта, его значение - цифра. Каждый бит имеет свою цифру. Если вы хотите одному объекту приписать несколько битов, то надо в опцию Bits приписать сумму номеров этих битов. Есть в описании бита строка "активируется движком". Это значит, что если вы поставите этот бит объекту, он не подействует. Данный бит активируется и будет действовать, когда движку необходимо. .. list-table:: :widths: 15 10 30 :header-rows: 1 * - Название - Номер - Описание * - 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 типа контраста, все цвета там меняются по разному. .. table:: +-----------------------------------------------------------------------+ | | +==================+================+=================+=================+ | | **(1)** | **(2)** | **(1 + 2)** | | **Цвета** | **Серый** | **Коричневый** | **Красный** | | | **(67108864)** | **(134217728)** | **(201326592)** | +------------------+----------------+-----------------+-----------------+ | **(3)** | (1 + 3) | (2 + 3) | (1 + 2 + 3) | | **Светло Серый** | Оранжевый | Ярко красный | Светло Синий | | **(268435456)** | (335544320) | (402653184) | (469762048) | +------------------+----------------+-----------------+-----------------+ | **(4)** | (1 + 4) | (2 + 4) | (1 + 2 + 4) | | **Синий** | Жёлтый | Бежевый | Синий | | **(536870912)** | (603979776) | (671088640) | (738197504) | +------------------+----------------+-----------------+-----------------+ | **(3 + 4)** | (1 + 3 + 4) | (2 + 3 + 4) | (1 + 2 + 3 + 4) | | **Контраст_1** | Контраст_2 | Контраст_3 | Контраст_3 | | **(805306368)** | (872415232) | (536870912) | (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", а дальше дейсвуйте так же, как обычно. Вот список новых битов. .. list-table:: :widths: 15 10 30 :header-rows: 1 * - Название - Номер - Описание * - 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 - Данный снаряд может телепортироваться