Тридэ полы хотя бы являются возможностью, предусмотренной авторами поддерживающих их движков.
Мне, кстати, всегда было интересно, каким нодбилдером лучше пользоваться, чтобы минимизировать риск возникновения глюков при создании невидимых платформ в ванили. Или нужно просто использовать метод тыка? Типа, добавил сектор - глюк ушёл, добавил ещё один - глюк вернулся.
Я так понимаю забор фиксированной высоты делается не сильно сложно. Делаете проходимую двустороннюю линию с текстурой забора, а непроходимость обеспечиваете невидимым (self-referencing) сектором нужной высоты. Простреливаться не будет, но если уж сильно хочется можно поиграться с моментальным поднятием/опусканием. Не сложнее обычного "3D" моста в ЛР.
В принципе, проходимая линия необязательна. Текстуру забора можно сунуть на одну из линий невидимой платформы, только нужно будет сместить её (текстуру) вниз.
Да, жаркая получилась дискуссия. Ну что ж, всем спасибо за ответы. Пока не разобрался, буду разбираться постепенно. Наверное, надо бы найти какой-нибудь пример DEHACKED-патча. Пока делаю сами уровни (второй уровень). Возник банальный вопрос: можно ли в Дум Билдер 2 как-нибудь быстро поменять местами лицевую и заднюю сторону линии? Например, телепортер обычно делают как сектор с лицевыми сторонами наружу, а я случайно сделал внутрь, и пришлось перерисовывать.
Про многоэтажность (или иллюзию) в Bloody Steel: я имел в виду, например, второй уровень, где спрыгиваешь в зал с бочками из вентиляционной шахты, или что-то вроде того. Шахта расположена над залом - это в некотором смысле многоэтажность. Или в четвёртом уровне в конце что-то вроде винтовой лестницы - тоже секторы как будто один над другим. И это корректно отображается в Zdoom (даже не GZdoom). Значит, как-то это можно делать. Но не уверен, можно ли сделать, чтобы окна нескольких этажей, одно над другим, выходили на улицу (в один сектор).
Пока делаю сами уровни (второй уровень). Возник банальный вопрос: можно ли в Дум Билдер 2 как-нибудь быстро поменять местами лицевую и заднюю сторону линии?
Подсветить линию в обычном (не 3D) режиме и нажать F.
Что касается винтовых лестниц и подобного - этого можно добиться с помощью "бесшумной телепортации". Есть в Boom такая возможность. Она позволяет сделать так, чтобы игрок незаметно переносился из одной точки карты в другую, не теряя скорости. Можно использовать в том числе для создания иллюзии спуска или подъёма на другой этаж. Поскольку этажи на самом деле не находятся друг над другом, сделать одно окно над другим нельзя.
1. Открой свойства сектора.
2. В открытом окошке открой вкладку Custom
3. Задай параметр xpanningfloor и(или) ypanningfloor отличные от 0 (или x(y)panningceiling, если редактируешь потолок)
P.S: проще пользоваться GZDoom builder, если честно.
Добавлено спустя 1 минуту 1 секунду:
MasterMind :
В свойствах сектора или в 3Д режиме подсвети пол/потолок и жми на стрелочки (если конечно ты не поменял значение клавиш)
Парни, возник один интересный вопрос. Есть монстр с летающими вокруг него шарами. Шары естесно сделаны проджектайлами. Вот как в шарах проверить, что моб, тобишь создатель - погиб?
Парни, возник один интересный вопрос. Есть монстр с летающими вокруг него шарами. Шары естесно сделаны проджектайлами. Вот как в шарах проверить, что моб, тобишь создатель - погиб?
такой вопрос: как сделать чтобы при смерти монстра игрок говорил что-либо? Я так понимаю надо у каждого монстра в стейте death и xdeath что-то прописывать, но вот какую точно команду чтобы звук именно от игрока исходил?
- edit -
И еще, мне необходимо приостанавливать проигрывание звука (например боли) при пересечении Linedefа, но почему то у меня команда stopsound не распознается, хотя версия gzdoomа 2.7.1. В чем может быть причина?
такой вопрос: как сделать чтобы при смерти монстра игрок говорил что-либо? Я так понимаю надо у каждого монстра в стейте death и xdeath что-то прописывать, но вот какую точно команду чтобы звук именно от игрока исходил?
В стейтах Death и Xdeath прописываешь A_GiveToTarget, создаешь инвенторку(актор с типом inventory) и через ту команду выдаешь игроку. В коде игрока через A_JumpIfInventory делаешь проверку, на то, что у игрока значение той инвенторки выше нуля и пишешь переход в другой стейт, где будет вопроизведение звука. Чтобы игру не зацикливало, в новом стейте не забудь поставить функцию A_TakeInventory, которой ты отнимешь значение инвентории, выданной игроку.
Вот тебе примерчик небольшой кароч:
Скрытый текст:
Вот это код простенького зомбимена. В стейтах смерти выдаётся инвенторка PlayerSay
actor Zombieman_ : ZombieMan replaces ZombieMan
{
DropItem "PistolsAmmoDrop"
States
{
Death:
TNT1 A 0 A_GiveToTarget("PlayerSay", 1)
goto "Super::Death"
XDeath:
TNT1 A 0 A_GiveToTarget("PlayerSay", 1)
goto "Super::XDeath"
Death.Grenade:
TNT1 A 0 A_GiveToTarget("PlayerSay", 1)
goto "Super::Death"
XDeath.Grenade:
TNT1 A 0 A_GiveToTarget("PlayerSay", 1)
goto "Super::XDeath"
}
}
А вот как типа реализуется сказанная плеером фраза
Небольшой кусочек из дум плеера
See:
TNT1 A 0 A_JumpIfInventory("PlayerSay", 1, "SayState") //Постоянно проверяем нету ли у думера случаем нашей инвентории?
LWRN AAAAABBBBBCCCCCDDDDD 1
Goto Spawn
SayState:
TNT1 A 0 A_PlaySound("blablabla", 5) //Играем звук
TNT1 A 0 A_TakeInventory("PlayerSay", 1) //Забираем нашу инвенторию, тобы игрок мог ещё чё та говорить, да и игру не зациклило)
Goto See
navy_seals :
И еще, мне необходимо приостанавливать проигрывание звука (например боли) при пересечении Linedefа, но почему то у меня команда stopsound не распознается, хотя версия gzdoomа 2.7.1. В чем может быть причина?
На сколько я знаю, эта команда глушит звук на конкретном канале(обычно их в здуме 8), а не конкретно взятый по названию
Спасибо, довольно сложный для меня код, буду разбираться.
Пока не ясно что делает строка
LWRN AAAAABBBBBCCCCCDDDDD 1
и что за стейты такие Death.Grenade и ХDeath.Grenade?
Возник еще вопрос: Вот я сделал оружие, нарисовал спрайты, настроил актора, как сделать так, чтобы оно в редакторе в Things появилось?
LWRN A 1
LWRN A 1
LWRN A 1
LWRN A 1
LWRN A 1
LWRN B 1
LWRN B 1
LWRN B 1
LWRN B 1
LWRN B 1
LWRN C 1
LWRN C 1
LWRN C 1
LWRN C 1
LWRN C 1
LWRN D 1
LWRN D 1
LWRN D 1
LWRN D 1
LWRN D 1
Просто так короче.
navy_seals :
и что за стейты такие Death.Grenade и ХDeath.Grenade?
Этот стейт будет работать при смерти данного объекта от вещи с дамагтайпом "Grenade"
navy_seals :
Вот я сделал оружие, нарисовал спрайты, настроил актора, как сделать так, чтобы оно в редакторе в Things появилось?
Просто добавь любой не занятый номер (здумом) после идентификации актора:
ACTOR LALKA { описание } -> ACTOR LALKA 9999 { описание }