Трансформация работает. Осталось понять почему оружие при выборе стреляет до поднятия и как отвязать общее патронопотребление снарядов. Спасибо, LEX SAFONOV
Я знаю. BFGBall тоже знает. А 10KProjectile не знает и жрет все 50.
Тогда сделай потребление патронов на нуль у всех типов патрон в параметрах и отнимай уже нужное кол-во в потоке Fire через функцию A_TakeInventory.
Vrasont:
Upd. Оп, баг в коде. Оружие остается на экране после смерти.
Попробуй-ка вот такой код у потока Deselect Deselect: TNT1 A 0 A_JumpIfNoAmmo("Deselect2") EFG1 A 1 A_Lower Goto Deselect+1 Deselect2: EFG1 A 1 A_Lower Loop
LEX SAFONOV. Всё вышло идеально. Огромное спасибо. И ещё кое-что. Через Deselect можно заставить оружие собраться, если оно находиться во втором режиме?
Через Deselect можно заставить оружие собраться, если оно находиться во втором режиме?
Тебе собирание оружие нужно при убирании пушки? Можно сделать, просто нужно анимацию "собирания сделать заранее функции A_Lower. И там ещё есть пару нюансов, но надо по подробнее объяснять, для чего опять же нужен либо пример, либо готовый код)
Попробуй написать анимацию в Deselect и в конце сделай вот так: TNT1 AAAAAAAAAAAAAAAAAAA 0 A_Lower TNT1 A 1 A_Lower Goto Deselect+"" - где кавычки напиши сколько строк нужно пропустить(до кадра TNT1!!). При чём дна буква - один пропуск вроде. Не уверен, что сработает, но у меня в одном моде работает такой способ. Шаблон:
Скрытый текст:
Deselect: DF02 A 1 offset(3, 36) DF02 A 1 offset(9, 44) DF02 A 1 offset(15, 52) DF02 A 1 offset(21, 60) DF02 A 1 offset(27, 68) TNT1 A 0 A_TakeInventory("UseAmmo", 999) DF02 AAAAAAAAAAAAAAAAAAA 0 A_Lower DF02 A 1 A_Lower Goto Deselect+6
У меня проблема с пониманием 3dfloor'ов. Я хотел сделать двухэтажное здание со стёклами в окнах. Пока что прозрачность окон отложим в сторону. Так это выглядит в GZDB: Но в GZDoom что-то идёт не так, и верхний ряд стёкол "теряется": Я делаю стёкла 3dfloor'ами. На все сектора-окна навешиваю 14 тег; на все, кроме того, что над дверью, --- 13 тег (то есть, на всех остальных окнах по 2 тега), и делаю 2 управляющих сектора для 13 и 14. Получается, что в один сектор можно напихать 3dfloor'ов только одного сектор-тега?!
В один сектор можно впилить сколько угодно 3д полов (у всех 1 тэг).
Да, это я знаю. Их маркирующий лайндеф должен указывать на тег этого сектора. У меня другой вопрос --- если у сектора несколько тегов, можно ли на каждый тег этого сектора добавить свои 3dfloor'ы?
Разобрался. Оказывается, у меня был довольно давний релиз GZDoom 1.8.10. На 1.9.1 заработало, то есть, по всей видимости, поддержку нескольких тегов добавили между этими версиями. Anto96WS, ZZYZX --- спасибо
LEX SAFONOV, новая проблема. Проверка на наличие патронов не проходит. Оружие стреляет даже после расхода патронов. И Ready с Ready3 не переключается на Ready2 и 4 со спрайтами "пустого" оружия. Пытался проверку перед Ready поставить, но игра из-за этого крашится (бесконечный цикл вроде), а если в начале Fire - оружие вообще не стреляет. Убрал непотребление патронов. Однако в первом режиме из костыля TakeInventory атака завершается даже при cell>40
Скрытый текст:
ACTOR BFG10X : Weapon { Weapon.AmmoType "Cell" Weapon.AmmoUse 5 Weapon.AmmoGive 120 +NOAUTOFIRE States { Spawn: BFG2 A -1 Stop Ready: TNT1 A 0 A_JumpIfInventory("BFG10XTransform", 1, "Ready3") TNT1 A 0 A_JumpIfNoAmmo("Ready2") EFG1 AAA 1 A_WeaponReady EFG1 BBB 1 A_WeaponReady EFG1 CCC 1 A_WeaponReady EFG1 DDD 1 A_WeaponReady EFG1 EEE 1 A_WeaponReady Loop Ready2: TNT1 A 0 A_JumpIfInventory("Cell",5,"Ready") EFG3 A 1 A_WeaponReady Loop Ready3: TNT1 A 0 A_JumpIfNoAmmo("Ready4") EFG2 AAA 1 A_WeaponReady EFG2 BBB 1 A_WeaponReady EFG2 CCC 1 A_WeaponReady EFG2 DDD 1 A_WeaponReady EFG2 EEE 1 A_WeaponReady Loop Ready4: TNT2 A 0 A_JumpIfInventory("Cell",5,"Ready3") EFG3 H 1 A_WeaponReady Loop Deselect: TNT1 A 0 A_JumpIfInventory("BFG10XTransform", 1, "Deselect2") EFG1 A 1 A_Lower Goto Deselect+1 Deselect2: EFG3 HGFEDCB 1 TNT1 A 0 A_Takeinventory("BFG10XTransform",1) EFG3 A 1 A_Lower Select: TNT1 A 0 A_JumpIfNoAmmo("Select2") EFG1 A 1 A_Raise Goto Select+2 loop Select2: EFG3 A 1 A_Raise Goto Select2+1 loop Fire: TNT1 A 0 A_JumpIfInventory("BFG10XTransform", 1, "Fire2") EFG1 F 4 EFG1 GHIJK 1 EFG1 A 1 Bright A_GunFlash EFG1 A 1 Bright EFG1 B 10 Bright A_FireCustomMissile("BFG10XBall",0,1) TNT1 A 0 A_TakeInventory("Cell",35) EFG1 A 1 TNT1 A 0 A_ReFire Goto Ready Fire2: EFG2 E 4 EFG2 GHIJ 4 EFG2 A 1 Bright A_GunFlash EFG2 A 1 Bright EFG2 B 1 Bright A_FireCustomMissile("BFG10XProjectile",Random(100,-100)/100.00,1,0,0,0,Random(100,-100)/100.00) EFG2 A 1 TNT1 A 0 A_ReFire Goto Ready Altfire: TNT1 A 0 A_JumpIfInventory("BFG10XTransform", 1, "AltFire2") TNT1 A 0 A_GiveInventory("BFG10XTransform", 1) EFG3 A 10 EFG3 BCDEFGH 5 Goto Ready Altfire2: TNT1 A 0 A_TakeInventory("BFG10XTransform", 1) EFG3 HGFEDCB 5 EFG3 A 10 Goto Ready Flash: TNT1 A 2 Bright A_Light1 TNT1 A 2 Bright A_Light2 TNT1 A 2 Bright A_Light1 Goto LightDone } }
Интересно, почему я не встречал гибрид BFG9к с 10к? Не из-за этих ли проблем?
A_CheckReload проверяет кол-во патронов, больше ничего не нужно, прочие функции от шотгана можно убрать) A_GunFlash - делает переход в поток Flash, там тоже править надо. Этот поток отвечает за спрайты выстрела. Хотя мне кажется он тут мало чем играет... Пока мыслей нет от чего не работает. Если совсем уж абзац будет, вышлешь потом в личку вад)
Есть вопрос. Я использую несколько ресурсов для создания вада (Дум1\2) Если я буду использовать при запуске моего вада Дум 2 То будут ли отображатся все ресурсы в ваде ? Или же мне надо модифицировать ванилку 2-ого дума что бы у меня отображались 2 ресурса ?