я просто не думал что у гугла/яндекса могут возникнуть проблемы при выкладывании
Нет никаких проблем. Могу выкладывать где надо. Не пользовался Гугл диском, поэтому не привычно с начала, теперь нормалёк.
В общем, мне нужны горящие - мелкие торчи, большие торчи, возможно "горящие бочки" тоже. Там надо смотреть, как это выглядит. Бывает что сделано так, что можно прослезиться от смеха.
Пробуй. Огонь я добавил на "огненную бочку", взрыв добавил на взрыв обычной бочки.
Обычная бочка добавляется на карту командой summon explosivebarrel огненная summon burningbarrel
Ну или как вариант, пускаешь мап23, там в начальной комнате сразу 2 варианта бочек есть
Теперь пойдем по изменениям, которые я сделал в моде:
DECORATE: вписал сверху 3 строчки подключения моих файлов + изменил сам код обычной бочки DECORATE__LEO__BARREL_EXAMPLE: пример кода огненной бочки (пример как подключать огонь) DECORATE__LEO__EXPLOSION: код огненного взрыва бочек DECORATE__LEO__FIRE: код огня (который использует горящая бочка) Modeldef.LEO.def: дефиниция чтобы горящая бочка тоже была моделью
папка ACS - там дополнительные скрипты для огня (без них не будет работать)
Попробовал - работает, взрывы бочек и горящие бочки. Понравилось. Только это.... Взрывы бочек надо сделать чуть большими в объёме, а у горящих бочек, сделать пошире огонь и наклонить его вбок, вправо, где-то на 60 градусов.
Кстати, надеялся что на Торчах, длинных и коротких будет пламя, а его не оказалось. Печаль.
Шаг 1: я тебе показал ролики огня и взрывов Шаг 2: ты сказал тебе такое нужно Шаг 3: я скопировал тебе в мод то что было в роликах точь в точь так, как оно было в роликах, без изменений Шаг 4: дабы облегчить дальнейшую работу и ликвидировать 7 лишних комментариев, я приклеил тестовую версию огня и взрыва на бочки (не изменяя параметры огня и взрыва)
эти шаги уже проделаны, как ты догадался. Теперь распишем дальнейшие шаги:
Шаг 5: я рассказываю как менять размер взрыва Шаг 6: ты делаешь Шаг 7: повторяем шаги 5-6 пока не достигнем приемлемого результата Шаг 8: шаги 5-7 для огня пошире Шаг 9: шаги 5-7 для "наклонить его вбок, вправо, где-то на 60 градусов" Шаг 10: шаги 5-7 для "на Торчах, длинных и коротких будет пламя"
следующие 2 актора: ACTOR MaceExplosion1_BIG и ACTOR MaceExplosion2_BIG
у каждого из них есть параметр Scale (либо просто Scale либо XScale/YScale)
Просто вписываешь туда другие числа (например 2.0 или 1.5), и будет другой размер
Если использовать просто Scale - то будет изменяться размер как по оси X так и по оси Y Если же использовать XScale/YScale, то можно указать свой уникальный размер по каждой из осей
Таким образом, подбери себе такой размер, как тебе надо. Если не работает, говори
З.Ы. Максимальный размер скейла 4.0 если не ошибаюсь
В общем ставь 1.1 на каждый параметр Scale у себя (без X,Y). Хорошо бы это всё совместить в один файл DECORATE, который уже содержит осколки взрыва бочки. Погоняй, отпишись как выглядит.
Нет, это ты будешь ставить у себя, гонять, смотреть как выглядит и отписывать, нравится результат или нет
Раз возникла такая непонятка, давай объясню тогда:
Шаг 1: я отредактировал твой мод (добавив туда взрывы, огонь и прочее) и скинул тебе обновленную версию мода Шаг 2: всё, дальше ты сам работаешь с этой версией мода, а я только подсказываю, в каком месте копать и что в моде изменять
Тобишь, если я сказал тебе "поменяй числа X/Y", значит ты берешь, меняешь их в своем моде, и если результат устраивает, отписываешь "результат устраивает", а если не устраивает, пытаешься менять числа до тех пор пока либо результат не устроит (в таком случае отписываешь "результат устраивает") либо возникнут какие-то проблемы (в таком случае отписываешь "возникли проблемы такие-то")
и после того, как все проблемы будут исправлены, продолжаешь использовать эту версию мода, и добавлять в нее последующие модели и эффекты
aivar242:
Хорошо бы это всё совместить в один файл DECORATE
так совмести: берешь первый файл, ctrl+A ctrl+C, берешь второй файл, ctrl+V, и всё, текст первого файла скопирован в текст второго. Вот таким простым образом ты копипастишь код четырех декорейтов в один DECORATE. После этого не забудь из DECORATE удалить те три "include" строки (сейчас они у тебя в начале файла), которые подключают эти 3 файла
Иными словами, мод редактируешь и проверяешь на пригодность результата ты, а я всего-лишь подсказываю, как и что делать. Соответственно, вместо "сделай то погоняй это", ты спрашиваешь "как сделать то?", а я тебе отвечаю "это сделать вот так", и ты делаешь/гоняешь (сам)
соответственно, подбери такие числа, которые сделают подходящий тебе огонь
З.Ы. Я еще не учел такие вещи как "насыщенность огня" (как много спавнится кусков огня) и "точка спавна огня" (например когда ты будешь увеличивать ширину огня, скорее всего столкнешься с тем, что он будет спавниться левее/правее бочки). Это нормально, пока не обращай внимания на эти нюансы, так как я и так тебе уже много рассказал, разберись пока с шириной и направлением вбок, остальное обсудим позже
В общем да - нормально, при 10 и 15 огонь стал шире, но при этом он сдвинулся по отношению к бочке, в сторону. Надо выровнять как-то их между собой. Параметры 0, 0, 0.2. Если ставить 0.2, 0.2, 0.2 - то огонь становится очень редким, всего несколько кусков и никаким не кривым. Надо чтобы он горел набок, под 50гр., как в оригинале, на спрайте.
В общем да - нормально, при 10 и 15 огонь стал шире, но при этом он сдвинулся по отношению к бочке, в сторону. Надо выровнять как-то их между собой. Параметры 0, 0, 0.2. Если ставить 0.2, 0.2, 0.2 - то огонь становится очень редким, всего несколько кусков и никаким не кривым. Надо чтобы он горел набок, под 50гр., как в оригинале, на спрайте.
актора
ACTOR TorchFireHeretic_Generator: TeleGlitterGenerator1 { блаблабла }
замени на такой текст:
Скрытый текст:
ACTOR TorchFireHeretic_Generator: TeleGlitterGenerator1 {
Уже лучше, но пламя выглядит как парус, то есть снизу уже чем на верху. Верхние языки пламени, как под линейку, а надо, чтобы пламя у бочки было на диаметр бочки, а кверху сужалось в конус. Если нельзя сделать, то я оставлю прошлый вариант. (Прямое пламя вверх, на ширину бочки) Хотелось бы конечно приблизиться к оригиналу.
Прошлый вариант был нормальным, "прямое пламя вверх". Вот его надо как есть, просто повернуть у основания бочки вправо.
Сейчас играю и могу сказать, что взрывы бочек с ошмётками и бочки с пламенем - очень не плохо преображают Doom.) В адском бепределе боя, подрывать бочки с рядом стоящими зомби солдатами, сержантами и импами, одно удовольствие.)
Уже лучше, но пламя выглядит как парус, то есть снизу уже чем на верху. Верхние языки пламени, как под линейку, а надо, чтобы пламя у бочки было на диаметр бочки, а кверху сужалось в конус. Если нельзя сделать, то я оставлю прошлый вариант. (Прямое пламя вверх, на ширину бочки) Хотелось бы конечно приблизиться к оригиналу.
Прошлый вариант был нормальным, "прямое пламя вверх". Вот его надо как есть, просто повернуть у основания бочки вправо.
замени этого же актора на такое:
Скрытый текст:
ACTOR TorchFireHeretic_Generator: TeleGlitterGenerator1 {
TNT1 AA 0 A_SpawnItemEx("FiremanFire_SMALL", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3) TNT1 A 0 A_SpawnItemEx("FiremanFire_SMALL", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3)
TNT1 AA 0 A_SpawnItemEx("FiremanFire_SMALL", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3) TNT1 A 0 A_SpawnItemEx("FiremanFire_SMALL", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3)
TNT1 AA 0 A_SpawnItemEx("FiremanFire_SMALL", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3) TNT1 A 0 A_SpawnItemEx("FiremanFire_SMALL", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3)
//Loop Stop }
}
такой код вполне подойдет для:
aivar242:
Если нельзя сделать, то я оставлю прошлый вариант.
но все равно попробуй в новом коде поиграться со следующим:
в конце каждой строки есть 25, 0, 0, 0.3)
25 - это высота точки спавна огня, а первые два нуля - скорость движения огня вбок. Сначала подбери себе высоту спавна (вместо 25 поставь другие числа), а потом пробуй нули менять например на -1, -2, -3, или -1.5, в общем разные числа попробуй там
Если не получится сделать что-то вменяемое, оставляй пока 25, 0, 0, 0.3)
При именении значения отличного от 0, пламя полностью пропадает.
Заметил, что с прошлыми параметрами, пламя было в стороне от бочки. С твоими, последними параметрами - вроде воровнялось. Какие из параметров отвечают за оффсет этого пламени?
При именении значения отличного от 0, пламя полностью пропадает.
Тогда предлагаю пока забить на наклон пламени вбок (если у меня появится желание, я посмотрю потом, что можно сделать, но не обещаю) и оставить его горящим вверх
aivar242:
Какие из параметров отвечают за оффсет этого пламени?
Сейчас каждая из строк у тебя выглядит примерно так:
TNT1 A 0 A_SpawnItemEx("FiremanFire_SMALL", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3)
первый random в ней выглядит так:
0.5+random[TeleGlitter](0,20)-10
0.5 - это оффсет по оси X (влево/вправо)
второй random в ней выглядит так:
random[TeleGlitter](0,20)-10
добавь в начало число, например так:
0.5+random[TeleGlitter](0,20)-10
соответственно 0.5 - это и будет оффсет по оси Y (вперед/назад)
третий "уже не random" в ней выглядит так:
25
это оффсет по оси Z (вверх/вниз)
Напомню, что менять надо в каждой строке, и если тебе принципиально, чтобы количество строк стало 2 (вместо 8 как сейчас), говори
Да, в твоём последнем варианте - слишком много строк добавлено, вместо 2-ух. Пламя как я понимаю именно из-за этого стало жирным, насыщенным, но черезчур. Вполне хватает и 2-ух строк, как и раньше, ну можно 4-ре строки (если можешь применяй. Могу и сам но не хочу ошибок неделать потом париться).
Да, в твоём последнем варианте - слишком много строк добавлено, вместо 2-ух. Пламя как я понимаю именно из-за этого стало жирным, насыщенным, но черезчур. Вполне хватает и 2-ух строк, как и раньше, ну можно 4-ре строки (если можешь применяй. Могу и сам но не хочу ошибок неделать потом париться).
Скрытый текст:
ACTOR TorchFireHeretic_Generator: TeleGlitterGenerator1 {
var int user_i;
States { Spawn:
TNT1 A 1
TNT1 A 0 A_SpawnItemEx("FiremanFire_BIG", 0.5+random[TeleGlitter](0,14)-7, random[TeleGlitter](0,14)-7, 25, 0, 0, 0.3)
В строке: "TNT1 A 0 A_SpawnItemEx("FiremanFire_BIG", 2+random[TeleGlitter](0,12)-7, 1.5+random[TeleGlitter](0,12)-7, 25, 0, 0, 0.3)" - параметр -7, после (0,12), так же отвечает за оффсет. Возможно 2+ перед random это лишнее?
При запуске порта, в окошке с логом, выстакивает красная строка: - Tried to register Вurning Barrel more then once. При прошлых версиях кода, вроде этой строки не было.
Добавлено спустя 5 часов 12 минут 52 секунды:
Только сейчас обнаружил, что прохожу через горящую бочку, как буд-то её нет. Думаю что красная строка в логе связана с этим.
Скорей всего проблема в этом тексте:
Скрытый текст:
ACTOR BurningBarrel {
Var Int User_GlitterIsSpawned; Var Int User_Visible;
+LOOKALLAROUND +SEEINVISIBLE
States { Spawn: TNT1 A 1 TNT1 A 0 ACS_NamedExecuteWithResult("SpawnItemGlitter", 5) Goto SpawnBasic SpawnBasic: FCAN A 0 A_ClearTarget FCAN A 0 A_Look FCAN A 0 A_SetUserVar("User_Visible", 0) // if A_Look didn't jump to See (and as such set user_visible to 1) FCAN ABC 4 Bright FCAN C 0 A_Look FCAN C 0 A_SetUserVar("User_Visible", 0) // if A_Look didn't jump to See (and as such set user_visible to 1) Loop See: FCAN A 0 A_SetUserVar("User_Visible", 1) FCAN ABC 4 Goto SpawnBasic } }
Когда я этот текст комментирую, то бочка становится не прозрачной, но пропадает огонь над ней. В чём может быть причина?
Я немного не понял - у тебя бочка с пламенем, это та же Explosive Barrel, то есть ты её применил, заместо настоящей. Изучив код, пришёл к выводу, что бочка с пламенем и само пламя, должны быть вместе одним актором. Это фигово. Нельзя ли сделать, чтобы бочка появлялась в игре благодаря Modeldef, а пламя, просто ориентировалось над ней - отдельно?
В строке: "TNT1 A 0 A_SpawnItemEx("FiremanFire_BIG", 2+random[TeleGlitter](0,12)-7, 1.5+random[TeleGlitter](0,12)-7, 25, 0, 0, 0.3)" - параметр -7, после (0,12), так же отвечает за оффсет. Возможно 2+ перед random это лишнее?
Я это сделал для личного удобства. Например, если была строка
5+random[TeleGlitter](0,20)-10
то при необходимости менять оффсет я менял 5 на нужный мне оффсет, а при необходимости менять ширину огня я менял 20 на нужную ширину, и пропорционально изменял 10, таким образом у меня при изменении ширины огня гарантированно не менялась позиция точки спавна огня. Например, если было так:
5+random[TeleGlitter](0,20)-10
и я захотел поменять ширину в 3 раза, то я делал так:
5+random[TeleGlitter](0,60)-30
и огонь становился в 3 раза шире, но точка спавна была в том же месте где и раньше
Если тебе такое не нужно, можешь ограничиться одним числом
aivar242:
Только сейчас обнаружил, что прохожу через горящую бочку, как буд-то её нет. Думаю что красная строка в логе связана с этим.
Сделай видео. Скорее всего это особенность рендера гоззы. Огонь в любом случае будет рендериться не полностью, если спавнится внутри игрока или рядом с игроком, это нормально (для гоззы)
aivar242:
При запуске порта, в окошке с логом, выстакивает красная строка: - Tried to register Вurning Barrel more then once. При прошлых версиях кода, вроде этой строки не было.
aivar242:
ACTOR BurningBarrel
В том моде, что я тебе давал, строка была такой:
ACTOR BurningBarrel_Model : BurningBarrel replaces BurningBarrel //Fire example
Так что верни строку как было, проблема исчезнет. А если не исчезнет, то выкладывай сам мод и видео с демонстрацией проблемы
aivar242:
Я немного не понял - у тебя бочка с пламенем, это та же Explosive Barre
Изучив код, пришёл к выводу, что бочка с пламенем и само пламя, должны быть вместе одним актором
нет, бочка это актор BurningBarrel, а пламя это актор TorchFireHeretic_Generator, который спавнит акторы FiremanFire_BIG и FiremanFire_SMALL (большой и маленький куски пламени), из которых собственно и создает пламя
aivar242:
Нельзя ли сделать, чтобы бочка появлялась в игре благодаря Modeldef, а пламя, просто ориентировалось над ней - отдельно?