Автор | Сообщение |
Артём = Sergeant Major =
| 661 |
Doom Rate: 1.64 Posts quality: +227 |
Отправлено: 08.02.19 17:59:15 | | | Void Weaver пишет: | 3. Можно ли чем-нибудь пробить DORMANT флаг или это абсолютная неуязвимость? |
Есть такой лайндеф "Thing Activate" - для этого он как раз и предназначен. При его активации монстр "оживает" и перестанет быть DORMANT.
Насчёт 2-го пункта: можно сделать в декорейте дубликат объекта, который ты хочешь сделать неподбираемым, и задать ему статы либо трупа (чтобы проходить сквозь него, не подбирая), либо декоративного твёрдого объекта (чтобы игрок не смог подойник к нему вплотную). Естественно, спрайт нужно тоже скопировать и задать ему новое имя.
Добавлено спустя 1 минуту 17 секунд:
Если ты, конечно, имеешь в виду именно это. | |
|
| |
Void Weaver = Captain =
| 2496 |
Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 08.02.19 18:14:25 | | | Артём пишет: | Есть такой лайндеф "Thing Activate" - для этого он как раз и предназначен. При его активации монстр "оживает" и перестанет быть DORMANT. | Вопрос был не в том "КАК СНЯТЬ дормант" (я в курсе как это делается), а в том "КАК ПРОБИТЬ его".
Меня интересует возможность наличия какого-нибудь способа нанести урон (в разумных пределах) монстру находящемуся в ДОРМАНТе. Мб есть какие-то флаги или комбинации оных, особый DamageType или ещё что подобное.
2. Исключено. Опять таки по причине того что задача совершенно иная. Я чётко спросил как сделать неподбираемым реальный инвентори итем. Я не спрашивал о том "как сделать макет аптечки (например)".
Интересует то, как детектится взаимодействие игрок-итем несмотря на отсутствие у итемов размерных свойств (Height, Radius) и чем (если можно) можно прервать оное взаимодействие. Вдруг существует какой-нибудь флаг который сделает предмет неподбираемым?
Увы, бро, мои вопросы поставлены совсем иначе нежели так как ты их понял. |
Рейтинг сообщения: +1, отметил(и): Артём |
|
1 |
9 |
1 |
|
|
| |
Артём = Sergeant Major =
| 661 |
Doom Rate: 1.64 Posts quality: +227 |
Отправлено: 08.02.19 18:20:20 | | | Void Weaver
Поэкспериментирую в редакторе, потом отпишусь.
Добавлено спустя 11 минут:
https://zdoom.org/wiki/Actor_flags
Поищи флаг Special насчёт вопроса 3. Может, поможет. |
|
|
| |
Void Weaver = Captain =
| 2496 |
Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 08.02.19 18:54:10 | | | Ок. Остались 1 и 3 вопросы.
Ленивый как и скупой: платит дважды. Оказалось что надо было наследовать с заменой от стандартных хилок (Stimpack, Medkit) а не пытаться заменить базовый класс Health. И да, NOINTERACTION прекрасно превращает предметы в "неподъёмные". Будем копипастить...
ЭДИТ:
Насчёт флага Special. Он не поможет против домантов даже в теории (по крайней мере на уровне декора).
СПЕШИАЛ флаг на "наследнике" от SpectralMonster (и ТОЛЬКО него!) говорит что при коллизии с игроком, последний будет покоцан носителем флага. А игрок наследуется только от PlayerPawn, и выходит что сделать игрока наследником SpectralMonster не получится. |
Рейтинг сообщения: +1, отметил(и): Артём |
|
1 |
9 |
1 |
|
|
| |
N00b Chief Petty Officer
| 922 |
Doom Rate: 2.15 Posts quality: +384 |
Отправлено: 08.02.19 19:12:21 | | | Void Weaver
Actor flags: | Dormant actors can't do anything and don't take damage. |
Как и сказал Артём, этот флаг — SPECIAL, только при снятии его в рантайме, по-моему, могли возникать какие-то проблемы, не помню точно.
Я посмотрел в исходники gzdoom, там в p_actionfunctions.cpp описана A_FadeIn. Кроме альфы она только сбрасывает флаг STYLEF_Alpha1 (renderstyle.h), но он не должен влиять на отображение актора...
edit. Ты вроде уже решил проблему, но там насчёт SPECIAL написано "has a special use for this flag", а не что-нибудь типа "is the only class subject to this flag". |
|
|
| |
Void Weaver = Captain =
| 2496 |
Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 08.02.19 19:44:28 | | | N00b2015 пишет: | Ты вроде уже решил проблему, но там насчёт SPECIAL написано "has a special use for this flag", а не что-нибудь типа "is the only class subject to this flag". | Во-первых, нифига не решил, а во-вторых именно что ОНЛИ КЛАСС: | The base class SpectralMonster has a special use for this flag that allows actors inheriting from it to hurt the player when they come in contact with said actors. | Только СпектралМонстр, Карл! А для тех кто не СМ, флаг просто говорит движку что носитель сего может быть поднят (actor can be picked up).
Проехали, попробую выяснить где мой косяк с _Фэйд ф-циями.
ЭДИТ:
N00b2015, спасибо, _Фэйды работают как положено. | |
|
1 |
9 |
1 |
|
|
| |
N00b Chief Petty Officer
| 922 |
Doom Rate: 2.15 Posts quality: +384 |
Отправлено: 08.02.19 20:19:01 | | | Теперь мой вопрос: нужен метод снять с большого (десятки/сотни) количества секторов special в игре (формат gzdoom in udmf). Естественно, можно было бы дедовским ванильным способом накрошить контрольных секторов и вызывать 241 floor lower to lowest TxTy. Минусы очевидны: полно контрольных секторов, возни с объединением и т. п., а если нужные сектора не самые низкие среди своих соседей, то работать это вообще не будет. Человеческого способа я не нашёл, может быть, есть хоть какой-нибудь костыльный, но работоспособный? Видел ли кто-нибудь такое в существующих картах? Подскажите, пожалуйста, если кто знает.
Edit: 200: generic_floor не подходит, там побочный эффект, текстура заменяется. | |
|
| |
Doomgay1999 - Corporal -
| 96 |
Doom Rate: 2
|
Отправлено: 13.02.19 04:38:47 | | | Как сделать так чтобы двери раздвигались? | |
|
| |
Void Weaver = Captain =
| 2496 |
Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 13.02.19 05:34:42 | | | ЕЯПП, то через полиобжекты.
Тут подробный гайд (eng), вроде его даже тут постили.
Ещё можно съэмулировать раздвижную дверь через Door_Animated спешл с соответствующим анимдефом. Но это не труЪ. | |
|
1 |
9 |
1 |
|
|
| |
Doomgay1999 - Corporal -
| 96 |
Doom Rate: 2
|
Отправлено: 13.02.19 07:19:43 | | | А как добавить свою карты в wad? | |
|
| |
Void Weaver = Captain =
| 2496 |
Doom Rate: 1.82 Posts quality: +808 |
Отправлено: 13.02.19 07:33:21 | | | Тыц, тыц (много интересного), ну и тыц (коли норм знаешь инглиш). |
Рейтинг сообщения: +1, отметил(и): Артём |
|
1 |
9 |
1 |
|
|
| |
Doomgay1999 - Corporal -
| 96 |
Doom Rate: 2
|
Отправлено: 13.02.19 07:50:33 | | | Как добавить свои карты в wad? | |
|
| |
Артём = Sergeant Major =
| 661 |
Doom Rate: 1.64 Posts quality: +227 |
Отправлено: 13.02.19 08:59:46 | | | Doomgay1999
В Doom Builder: в настройках File > Save Map into > выбираешь Вад. Только учти, что если номер карты, которую ты сохраняешь, соответствует номеру карты из вада, куда ты сохраняешь, то карта в том ваде будет переписана. |
|
|
| |
Doomgay1999 - Corporal -
| 96 |
Doom Rate: 2
|
Отправлено: 13.02.19 10:07:15 | | | Как создать погодные условия? | |
|
| |
Артём = Sergeant Major =
| 661 |
Doom Rate: 1.64 Posts quality: +227 |
|
| |
Doomgay1999 - Corporal -
| 96 |
Doom Rate: 2
|
Отправлено: 13.02.19 13:43:03 | | | А можно сделать чтобы на одном уровне было не один, а два саундтрека? | |
|
| |
Артём = Sergeant Major =
| 661 |
Doom Rate: 1.64 Posts quality: +227 |
Отправлено: 13.02.19 13:54:09 | | | Doomgay1999
Если под классику, то никак (если только не слепить два саундтрека в один ) Если под гоззу - то можно скриптами прописать SetMusic.
Подробнее тут;
https://zdoom.org/wiki/SetMusic |
|
|
| |
YURA_111 UAC Sergeant Major
| 768 |
Doom Rate: 1.98 Posts quality: +136 |
Отправлено: 13.02.19 14:24:51 | | | Народ вчера столкнулся с непонятком в GZDOOM - функция A_RadiusGive разве не может работать через стены? Т.е. она может работать только в пределах одной комнаты и стены являются препятствием???
Артём пишет: | Если под гоззу - то можно скриптами прописать SetMusic. |
Это вроде как лучше делать через ZScript
https://zdoom.org/wiki/Object
там ищем
static bool S_ChangeMusic(String music_name, int order = 0, bool looping = true, bool force = false) |
|
|
| |
Артём = Sergeant Major =
| 661 |
Doom Rate: 1.64 Posts quality: +227 |
Отправлено: 13.02.19 15:12:31 | | | YURA_111
ZScript'ом никогда не пользовался, но спасибо. | |
|
| |
alekv - Colonel -
| | 4168 |
Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 13.02.19 15:15:01 | | | YURA_111 пишет: | Народ вчера столкнулся с непонятком в GZDOOM - функция A_RadiusGive разве не может работать через стены? Т.е. она может работать только в пределах одной комнаты и стены являются препятствием??? |
Добавь в функцию флаг RGF_NOSIGHT
И функция не будет учитывать какие-либо препятствия. | |
|
1 |
3 |
1 |
|
|
| |