BJ34 Скорее всего ты случайно поставил стелс монстров вместо обычных.
Invisible Warrior Эта штука называется "fake contrast", наблюдается у строго вертикальных или строго горизонтальных линий, лечится небольшим искривлением линии.
Serious_MOod о, спасибо. Буду знать.
Правда иногда, к сожалению, линии реально должны быть вертикальными и горизонтальными, так что иногда этот контраст придется терпеть.(
Invisible Warrior Достаточно самую малость искривить линию, и этой штуки не будет. Но я тут подумал, что может быть ты имел "градацию" освещения, которая есть в софте, а в софте так освещение в принципе построено, потому что палитра.
Serious_MOod ну я хз, я обычно стремаюсь даже маленько менять угол линии, если речь идет о прямоугольных/рукотворных (техно, или деревянных там например) комнатах. Вроде мелочь, а глаз на подсознании все равно воспринимает этот один градус, на который положение отличается от нормального, как "что-то здесь не так". Если это одна мелочь, это не страшно, но если такие "что-то не так" на карте накапливаются, мозг начинает чувствовать подвох
про градацию не понял немного. Я вообще плохо разбираюсь в технике движка дума. Знаю только то, что непосредственно влияет на геймплей, по большей части.
Добавлено спустя 1 час 32 минуты 34 секунды:
У меня еще возник вопрос...
Я обнаружил, что секторы с полом равным потолку, но у которых потолок открытое небо, не блокируют видимость на миникарте (т.е. игрок может быть и не видит через эту линию, а вот миникарта отрисовывает проход за этим сектором) в портах GLboom и GZdoom. При этом PrBoom, ZDoom ее блокируют все-таки. Интересное различие.
Меня интересует, можно ли как-то принудительно поставить, чтобы через сектор до открытия прохода нельзя было смотреть? Я не хочу спойлерить где откроются проходы на карте игроку раньше времени, а с такими глюками он по миникарте все сразу увидит.
Invisible Warrior В свойствах лайндефа есть два флажка: "Not shown on automap" (не рисуется на карте) и "Shown as 1-sided on automap" (рисуется цветом односторонних лайндефов). Они могут помочь.
Насчёт освещения --- вот статья на этот счёт. Эта фича движка была добавлена для того, чтобы можно было различать неровности и углы между стенами с похожими текстурами (сравни две картинки на той странице).
Если что, в производных портах от ZDoom есть возможность отключить контраст через mapinfo. Однако красивую картинку обычно удаётся получить и без подобных наворотов.
N00b2015 спасибо за ссылку, теперь понял зачем это. Ну да, проще заморочиться и сделать как надо через билдер, или забить, ведь не все играют через здум-порты.
По поводу стен - потестил, понял, что это конкретно из-за неба. Меняешь небо на обычный потолок, все нормально
Там прикол не в том что лайндеф не виден или виден неправильно, эти опции я уже юзал. А в том что видно ЧЕРЕЗ него. Если глушить видимость, то придется убирать видимость на миникарте всего открывающегося за этим проходом коридора, но он тогда никогда не будет видимым, даже когда проход уже откроется. В общем, пока что я экспериментирую.
Добавлено спустя 2 часа 53 минуты 23 секунды:
посмотрел я в общем, в гл буме если отключить видимость лайндефов, то они не будут видимы, а пол-то, блин, все равно будет отрисовываться... т.е. что ты глушишь эти лайндефы, что нет, все равно видно сам сектор.... мдааа.... "This is fine" (c)
Serious_MOod Рутрекер никто не отменял
Всем спасибо за помощь!
Добавлено спустя 23 часа 31 минуту 22 секунды:
Как в DECORATE наложить один спрайт на другой?
типа, у меня есть спрайт SASSA0 (база) и SASFA0 (маззлфлеш). Я хочу чтобы эти два спрайта уместились в одну строку кода и проигрывались одновременно.
===
upd: мне удалось, но полной синхронии нет. не пойму. помогите её добиться, плз. + как сделать, чтобы плазмоган силком не выпускал два шара подряд? мне нужно чтобы нажал и быстро отпустил FIRE — вылетает один шар, задержал более "раза" — обычная атака
КОД:
Скрытый текст:
States
{
Ready:
PLSG A 1 A_WeaponReady
Loop
Deselect:
PLSG A 1 A_Lower
Loop
Select:
PLSG A 1 A_Raise
Loop
Fire:
PLSG A 3 A_FirePlasma
PLSG A 0 A_GunFlash("Flash")
TNT1 A 0 A_ReFire
PLSG B 3 A_FirePlasma
TNT1 A 0 A_GunFlash("Flash2")
TNT1 A 0 A_ReFire
Goto Ready
Flash:
PLSF A 4 Bright A_Light1
Goto LightDone
Flash2:
PLSF B 4 Bright A_Light1
Goto LightDone
Spawn:
PLAS A -1
Stop
}
}
Попытался сделать двумя рефайрами — не удалось.
Добавлено спустя 50 минут 53 секунды:
Ввожу IDKFA и новый ствол, наименованный "plsmrfl : PlasmaRifle replaces PlasmaRifle" не выдаётся. Что не так?
ЕЯПП, то для синхронизации кадров длительность общая длительность вспышки должна быть равна длительности выстрела; плюс нет необходимости вызывать A_GunFlash, при наличии A_FirePlasma, поскольку последняя автоматом включает "Flash" стэйт.
Навскидку, попробуй так:
Fire:
PLSG A 3 A_FirePlasma
PLSG B 5 A_ReFire
Goto Ready
Flash:
PLSF A 1 Bright A_Light1 //Ну или PLSF A 2
PLSF B 2 Bright A_Light1 //Ну или PLSF B 1
Goto LightDone
DOOMGABR как понимать "обычную атаку"? если быстро клацнуть атаку у стандартного плазмагана, то тоже вылетит лишь один шарик, а если удерживать - полетит поток
все новые стволы вроде надо указывать в мапинфо/кейконфе, replaces заменяет лишь аткор, который спавнится/дропается на уровне
MyNameIs видишь ли, в моем коде я отказался от стейта "остывания". Теперь и фрейм взвода плазмы не нужен и никакого перегрева. Поэтому, собсна, я и запутался. Буду ща всё пробовать.
у меня вообще возник образ мысли, что оружие без указания в мапинфо работает коряво и, например, обратно его взять после смены не удастся, но я выражаю мысли хреново и их поток вышел вообще не туда
забей
Добавлено спустя 5 минут 30 секунд:
DOOMGABR
так ведь.. так же, как и флэш?
после указания в стейте, парралельно с настоящим, рисуется стейт оверлея, в который можно запихнуть что угодно.
хоть счетчик, хоть выстрелы в цикле
только оверлей более настраиваемый, у него там есть собственные флаги
Void Weaver Но почему то у меня синхронии нет. В моём коде PLSGB это кусок плазмогана под маззфлешем, а PLSFB — маззлфлеш, который должен накладываться точь в точь над куском плазмогана (PLSGB)
Код:
Fire:
PLSG A 3 A_FirePlasma
TNT1 A 0 A_Overlay(2, "Muzzle")
PLSG B 3 A_ReFire
Goto Ready
Muzzle:
PLSF A 3 A_Light1
PLSF B 3 A_Light1
Goto LightDone
DOOMGABR потому что ты запускаешь оверлей из какой-то хрен знает откуда
зажимая кнопку, рефайр просто будет всегда циклить стейт А, перезапуская после каждого раза Маззл
если ее не зажимать, то длина фреймов А+Б будет разная, в то время как маззл всегда будет стараться отрисовать 3+3. и будет рассинхрон. и он есть.
вызывай оверлей перед тем, на что он должен накладываться, чтобы он шел параллельно, а не из середины
Fire:
TNT1 A 0 A_Overlay(2, "Muzzle") Muzzle:
PLSG A 3 A_FirePlasma PLSF A 3 A_Light1
PLSG B 3 A_ReFire PLSF B 3 A_Light1
Goto Ready Goto LightDone
Снова вопрос от меня. Подобный сюжет уже обсуждался недавно в этой теме, но по какой-то причине у меня не работает ни один из предложенных советов.
В некоторый момент при определённых условиях спаунится дохлый (изначально) актор A. Я хочу, чтобы арчвайл мог воскресить актора A, но как бы я ни пытался объявить A, вылезали проблемы.
Код актора A (на зскрипте, декорейт будет аналогичен):
class A: Actor {
default {
Monster;
-COUNTKILL
DamageFactor 0.0;
Radius 32;
Height 20;
}
states {
Spawn:
TNT1 A 0;
TNT1 A 0;
Death:
TNT1 A 0 A_UnsetShootable;
TNT1 A 0 A_UnsetSolid;
TNT1 A 0; //(1)
CYBR A -1 CanRaise; //чтобы актора видно было
stop;
Raise:
//а тут будет происходить то, ради чего всё и затевается (будет спауниться другой актор)
stop;
}
}
Приведённая версия актора не воскрешается, очевидно, потому что нет флажка +CORPSE: арчи просто пробегают мимо, не видя актора. Однако попытка поставить этот флажок с помощью A_ChangeFlag, например, в (1), приводит к полному исчезновению актора!
Как заставить арчвайла воскрешать актора A, не залезая в код арчвайла? Как безболезненно поставить флажок +CORPSE?
P. S. Если A_UnSet... заменить на A_NoBlocking, проблема, естественно, остаётся.