theleo_ua Давно уже хотел спросить: - Что значит TNT A 0 ? Что за лумп, или ламп ?
Закинул твой код - то что надо. Только партикли овальные и мигают не правильно, но главное что оно существует.) Спсб. The Leo - ты реально шаришь в Декорейте. Гоззе ещё бы возможность применять коды к отдельным элементам модели, то вообще было бы супер.
Давно уже хотел спросить: - Что значит TNT A 0 ? Что за лумп, или ламп ?
TNT1 A это значит полностью прозрачный спрайт, иными словами "ничего не отображать". Подробнее здесь
aivar242:
Закинул твой код - то что надо. Только партикли овальные и мигают не правильно
Позже отпишу в чем причина, а пока я не отписал, поиграйся с числами (время жизни партиклов, размер) и попробуй спавнить несколько партиклов например вот так: TNT1 A 0 A_SpawnParticle (Green, SPF_FULLBRIGHT | SPF_RELATIVE, 70, 1, 0, -7, -4, 40) TNT1 A 0 A_SpawnParticle (Green, SPF_FULLBRIGHT | SPF_RELATIVE, 70, 5, 0, 0, -4, 40) TNT1 A 0 A_SpawnParticle (Green, SPF_FULLBRIGHT | SPF_RELATIVE, 70, 25, 0, 7, -4, 40) Т.е. каждая строка отличается уникальными координатами и размером, соответственно подобрав нужное количество партиклов нужного размера и в нужных местах ты сможешь добиться того эффекта что тебе надо
aivar242:
но главное что оно существует
Чтобы ты понимал, я недавно вот такой красный эффект свечения по краям модели пытался реализовать партиклами в гздуме, причем реализовать так, чтобы когда врубаешь крылья, и залетаешь на модель сверху (смотришь на нее сверху), или снизу, чтобы свечение отображалось корректно (а не так, что снизу модель, сверху свечение, и между моделью и свечением есть воздушное пространство), и у меня получилось
Так что ставлю 99% что твоя проблема решается
aivar242:
мигают не правильно
Уменьши время жизни партиклов: число 70 замени например на 1
aivar242:
Спсб. The Leo - ты реально шаришь в Декорейте.
всегда пожалуйста
aivar242:
Гоззе ещё бы возможность применять коды к отдельным элементам модели, то вообще было бы супер.
Для этого надо модель делать двумя (или более) разными акторами, и синхронизировать их
Вообщем, поизучал поведение этого света, пришёл к выводу, что: - Сейчас он резко стартует, после чего происходит затухание в 0. А мне нужно - из 0, плавное возгорание до максимума и такое же затухание в 0. Поизучав Декорейт, понял, что это вроде как возможно, но вот мне не понятно как чередуются цифры в твоём коде и что за чем идёт. Я так понял надо добавить туда, параметр - [startalpha:] или [sizestep]. Что-то из этих двух точно должно дать то, что мне нужно.
theleo_ua Дело в том, что в принципе мне ничего не понятно. В общих чертах понял, что надо мутить с этим Translation что-то. Вроде как найти нужный цвет из палеты Дума и вписать в параметры этого Translation. Но что, и куда вбивать, как присвоить нужному актору эту строку - Translation, для меня остаётся загадкой. Эти торчи - это последнее, что меня интересует, для моего мода. Надо сделать их тёрёх цветов, как в оригинале - красный, зелёный, синий.
Транслейшн не обязательно с палитры присваивать. Ещё можно по grayscale. Например, Translation "0:255=%[0,0,0]:[1,0,0]" покрасит всё равномерно в красный.
Присвоить его можно... ну, если через ZScript, то легко и непринуждённо. А если через DECORATE, то либо присвоить самому себе Translation и спавнить через A_SpawnItemEx с SXF_TRANSFERTRANSLATION, или унаследоваться от актора которого надо перекрасить, поменять ему транслатион и спавнить его.
ZZYZX То есть вот эту строку - Translation "0:255=%[0,0,0]:[1,0,0]" просто закидывать в Декорейт, в код соответствующего актора - то есть красного торча и всё? Подкидывать его к другим акторам и добиваться изменением параметров, другого цвета?
Дело в том, что там уже есть код для каждого торча, который создаёт это жёлтое пламя. Его надо перекрасить на зёлёное и синее, для соответствующих торчей. Красное - возможно не нужно, так как жёлтое пламя, имеет красные языки пламени.
3) любому своему торчу (кроме тех, на которых уже есть огонь) кинь строку
TNT1 A 8 A_SpawnItemEx("TeleGlitter1", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)
и посмотри что будет
Отпиши о результате, после этого продолжим. Я вот так шаг за шагом простыми вещами буду тебе постепенно рассказывать, как такие вещи в декорейте работают, чтобы по итогу прийти к пониманию с твоей стороны как делать и редактировать огонь, который ты хочешь
ZZYZX:
Присвоить его можно... ну, если через ZScript, то легко и непринуждённо.
Я бы с радостью подсказал аивару как такой огонь сделать на зскрипте, да вот проблема в том что я на данный момент не разбираюсь в зскрипте. Вот как например через зскрипт реализовать TeleGlitter-ные генераторы, о которых я выше расписал?
Ну - как будет желание я поизучаю, но сейчас я могу либо показать аивару на примере декорейта+ACS либо не показать ничего, поэтому пока есть настроение, я думаю стоит пользоваться этим моментом
Также вспомни, как долго шло обучение аивара декорейту и какими длинными постами объяснялись простейшие вещи декорейта (за ACS я вообще не брался), боюсь если пытаться обучать зскрипту (теперь вспоминаем, что я и сам в зскрипте чуть менее чем ноль), количетво страниц в этой теме умножится раз в 10 минимум
Поэтому я вижу такие варианты с цветом огня аивара:
1) Я ему рассказываю как это делается в декорейте (плюс ACS если понадобится, но предполагаю что не понадобится), а ты цитируешь меня и рассказываешь как это делается в зскрипте
2) Тот же пункт 1, но ты ничего не делаешь
ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("TeleGlitter1", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)
SMBT ABCD 4 Bright
Loop
}
}
Всё нормально, продолжаем в Decorate+ACS. Я сам конечно за инновации, хотелось бы его хоть немного узучить. Пока, лучше известным 100% способом это сделать, если будет работать. Понемногу начинаю въезжать, что к чему. Например я не знал, что TeleGlitter1 - это актор из Еретика. Я думал это тоже ген. У актора и ген, практически одинаковое название - поэтому я и путаюсь.
Красные, взлетающие крестики, стали ярко-зелёными.
Отлично. Теперь давай (в рамках текущего комментария) временно забудем про цвет, и заменим крестики на огонь. Значит у нас сейчас нашим генератором спавнится следующий актор "крестик":
Скрытый текст:
ACTOR TeleGlitter1_aivar242 : TeleGlitter1 replaces TeleGlitter1
{
States
{
Spawn:
TGLT A 2 Bright
TGLT B 2 Bright A_AccTeleGlitter
TGLT C 2 Bright
TGLT D 2 Bright A_AccTeleGlitter
TGLT E 2 Bright
Loop
}
}
Т.е. у актора используются спрайты крестика TGLT ABCDE. Теперь давай заменим их на спрайты огня. Огонь будем брать из еретика, вот этот:
Мы хотим, чтобы наш факел в думе (напомню, что про цвет пока временно забываем, на текущем шаге мы только прикручиваем огонь вместо крестиков) спавнил не крестики, а вот этот еретиковский огонь
Значит нам нужно в нашем акторе-крестике заменить спрайты крестиков (тобишь TGLT) на спрайты огня (тобишь FX09)
Актор с крестиками выглядит так:
Скрытый текст:
ACTOR TeleGlitter1_aivar242 : TeleGlitter1 replaces TeleGlitter1
{
States
{
Spawn:
TGLT A 2 Bright
TGLT B 2 Bright A_AccTeleGlitter
TGLT C 2 Bright
TGLT D 2 Bright A_AccTeleGlitter
TGLT E 2 Bright
Loop
}
}
Заменим его например так:
Скрытый текст:
ACTOR TeleGlitter1_aivar242 : TeleGlitter1 replaces TeleGlitter1
{
States
{
Spawn:
FX09 A 2 Bright
FX09 B 2 Bright A_AccTeleGlitter
FX09 C 2 Bright
FX09 D 2 Bright A_AccTeleGlitter
FX09 E 2 Bright
FX09 F 2 Bright A_AccTeleGlitter
FX09 G 2 Bright
FX09 H 2 Bright A_AccTeleGlitter
FX09 I 2 Bright
FX09 J 2 Bright A_AccTeleGlitter
FX09 K 2 Bright
Loop
}
}
Т.е. весь наш декорейт код будет примерно таким:
Скрытый текст:
ACTOR TeleGlitter1_aivar242 : TeleGlitter1 replaces TeleGlitter1
{
States
{
Spawn:
FX09 A 2 Bright
FX09 B 2 Bright A_AccTeleGlitter
FX09 C 2 Bright
FX09 D 2 Bright A_AccTeleGlitter
FX09 E 2 Bright
FX09 F 2 Bright A_AccTeleGlitter
FX09 G 2 Bright
FX09 H 2 Bright A_AccTeleGlitter
FX09 I 2 Bright
FX09 J 2 Bright A_AccTeleGlitter
FX09 K 2 Bright
Loop
}
}
ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("TeleGlitter1", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)
SMBT ABCD 4 Bright
Loop
}
}
Но кое-что мы забыли. Надо кинуть спрайты огня из еретика в свой мод. Вспоминай, как ты кидал красные крестики из еретика в свой мод, и по такой же аналогии кинь себе в мод спрайты FX09 A..K
Важное замечание: перед тем, как кидать их в свой мод, внимательно проверь, нет ли в твоем моде спрайтов с такими именами. Если нет - все окей, делай как с крестиками. А если внезапно такие файлы уже там будут, тогда эти спрайты ты должен будешь кинуть в свой мод под другими именами, например вместо FX09 сохранить их как FF09 (в таком случае в декорейт коде актора TeleGlitter1_aivar242 ты вместо FX09 должен будешь писать FF09)