О, отлично. Теперь начинается самое интересное: будем менять цвет (начнем с зеленого например). Значит есть несколько способов это сделать:
Скрытый текст:
1) Палитровый Translation (я его использовал в этом каменте для смены красного цвета крестика на зеленый)
2) RGB Translation (пример привел ZZYZX )
3) Colourise через слейд
4) Tint через слейд
Первые 2 прописываются в декорейте (конкретно в коде того актора, у которых в твоем примере были спрайты TGLT и FX09), а третий и четвертый делаются через слейд мофицикацией самих спрайтов.
Палитровый Translation самый сложный в использовании и его дольше всего рассказывать, но тем не менее он дает наилучшее качество результата, так как ты контролируешь каждый чих. Я сейчас не буду рассказывать этот способ, но если остальные 3 не устроят, тогда постепенно расскажу.
RGB Translation который предложил ZZYZX я не пробовал и без понятия, какое он дает качество, но так как им легко пользоваться (возможно даже он самый легкий из всех 4-х), мы его попробуем.
3-й и 4-й способы хороши тем, что уже в слейде видишь результат, и можешь менять/подстраивать цвет под свои нужны прямо в слейде (примерно как ты юзаешь фотошоп и какой-то фильтр там, и сразу в реальном времени видишь результат). Чем они отличаются друг от друга, ты сам увидишь (они просто чуть по разному цвет меняют, и разные настройки есть). Еще они хороши тем, что там можно использовать труколор, и тогда у тебя не будет проблемы, что из-за разных палитр в думе и еретике огонь из еретика будет в думе отображаться криво. А плохи они тем, что для каждого цвета тебе придется отдельные спрайты себе в мод сохранять (например для желтого у тебя будут спрайты FF09, для зеленого FG09, для синего FB09 и т д)
С введением понятно (а если непонятно, спрашивай), и теперь давай попробуем сменить тебе цвет на зеленый каждым из способов (кроме первого).
Пробуем вторым способом (RGB Translation (пример привел ZZYZX ) ):
Скрытый текст:
Поменяй свой декорейт код на такой:
Скрытый текст:
ACTOR TeleGlitter1_aivar242 : TeleGlitter1 replaces TeleGlitter1
{
Translation "0:255=%[0,0,0]:[0,1,0]"
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 было FF09, то пиши туда FF09 соответственно
Пробуем третьим способом (Colourise через слейд):
Скрытый текст:
1) Пускаешь слейд и справа сверху выбираешь "Palette: Doom"
2) Открываешь heretic.wad
3) Метишь через SHIFT спрайты FX09 с A по K
4) На выделенных спрайтах жмешь ПКМ / Graphics / convert to
5) Сверху, где "Convert to" выбираешь "PNG Truecolour", остальные настройки по умолчанию
6) Нажимаешь "Convert all"
7) Теперь выбери мышкой любой из FX09 спрайтов, и нажми в слейде справа сверху кнопку "Colourise"
8) В появившемся диалоге выбираешь цвет, смотришь как спрайт выглядит на превью, и если тебя устраивает, жмешь ОК, а если нет, выбираешь другой цвет (там в палитре можно подобрать себе любой, даже кастомный оттенок сделать)
Примечание: пункт 8 можно разово сделать, выделив все FX09 спрайты через шифт (тогда тебе не придется на каждом спрайте клацать, но недостаток метода в том, что ты не видишь на превью, как оно меняет другие спрайты, и соответственно после замены цвета тебе придется проклацать остальные спрайты, чтобы убедиться, что их цвет сменился адекватно (рекомендую кстати масштаб в слейде выставить на 800) )
9) После того, как цвет всех спрайтов поменял, вспоминай, как ты кидал красные крестики из еретика в свой мод, и по такой же аналогии кинь себе в мод спрайты FX09 A..K
ВАЖНО: на шаге 9 ты будешь себе в мод сохранять спрайты каждого цвета отдельным именем. Т.е. спрайты зеленого цвета с именем FG09 например, спрайты синего цвета с именем FB09 и т д, потому как если ты сохранишь все с одним и тем же именем, то у каждого огня в твоем моде будет один и тот же цвет.
Теперь, когда ты поменял цвет спрайтов огня и добавил эти спрайты себе в мод, надо прописать корректные имена спрайтов в декорейте. Допустим что ты делал зеленый цвет и имена спрайтов у тебя FG09. В таком случае декорейт код будет таким:
Скрытый текст:
ACTOR TeleGlitter1_aivar242 : TeleGlitter1 replaces TeleGlitter1
{
States
{
Spawn:
FG09 A 2 Bright
FG09 B 2 Bright A_AccTeleGlitter
FG09 C 2 Bright
FG09 D 2 Bright A_AccTeleGlitter
FG09 E 2 Bright
FG09 F 2 Bright A_AccTeleGlitter
FG09 G 2 Bright
FG09 H 2 Bright A_AccTeleGlitter
FG09 I 2 Bright
FG09 J 2 Bright A_AccTeleGlitter
FG09 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
}
}
Пробуем четвертым способом (Tint через слейд):
Скрытый текст:
Способ точь в точь как третий, за исключением того, что отличаются следующие шаги:
7) Вместо "Colourise" ты выберешь кнопку "Tint"
8) Кроме выбора цвета у тебя появится и выбор интенсивности (amount)
Если качество тебе не понравится (например ты выбираешь синий цвет, но при любом значении интенсивности все равно есть зеленые пиксели на спрайте), тогда на шаге 5 ты вместо "PNG Truecolor" выберешь "Doom GFX Paletted" либо "PNG Paletted" (попробуй оба варианта, они тоже могут разное качество дать на выходе), а там где "Converted Graphic" (не путать с "Current Graphic") вместо "Existing/Global" поставишь "Doom" (если сверху выбирал "Doom GFX Paletted") либо "Heretic" (если сверху выбирал "PNG Paletted"). После этого качество изменения цвета данным способом возможно станет лучше
В общем попробуй проделать все что я отписал выше (тебе даже не обязательно пробовать каждым способом: если какой-то один заработает как надо, можешь даже не пробовать остальные) и отпиши результат.
Попробовал 2-ой способ - всё работает. То что нужно. Остальные способа тоже не плохи, но слишком много волокиты... Переколорить спрайты, закинуть, удлинить Декорейт код в три раза. По второму способу - минимум телодвижений и кода, а действие то же. Эти, остальные способы, я взял на заметку если что.
Если в твоем случае заработал второй способ, значит тебе повезло. Потому как в моем случае он не работает (так как я хочу чтобы один и тот же код огня работал в думе, еретике, хексене и страйфе), а так как в этих играх разные палитры, то мой текущий код огня (я его делал "простым" способом, который похож на второй), который прекрасно работает в еретике, уже не хочет работать в хексене (поэтому мне придется переделывать мой огонь муторным способом, который чем-то похож на 3-й с примесью первого)
А в твоем случае этот метод сработал потому что у твоего мода одна целевая игра: дум (соответственно палитра только думовская)
aivar242:
ВОПРОС: - Нельзя ли соместить этих 2-ух актёров в коде, в одного? Пока сам не могу вьехать - возможно ли это? Уже каша в голове от вариантов.
Если я правильно понял, что ты хочешь, то тебе надо делать так:
Скрытый текст:
Пишешь трех акторов огня вот так (ВАЖНО! Я убрал replaces-ы, так как в данном случае они не нужны):
Скрытый текст:
ACTOR Красный_огонь : TeleGlitter1
{
ТУТ ДЕКОРЕЙТ КОД КРАСНОГО ОГНЯ
}
ACTOR Синий_огонь : TeleGlitter1
{
ТУТ ДЕКОРЕЙТ КОД СИНЕГО ОГНЯ
}
ACTOR Зеленый_огонь : TeleGlitter1
{
ТУТ ДЕКОРЕЙТ КОД ЗЕЛЕНОГО ОГНЯ
}
После этого в декорейт каждого из факелов спавнишь своего актора огня вот так:
Скрытый текст:
ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("Синий_огонь", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)
SMBT ABCD 4 Bright
Loop
}
}
ACTOR ShortGreenTorch_ADD_Flame : ShortGreenTorch replaces ShortGreenTorch
{
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("Зеленый_огонь", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)
SMBT ABCD 4 Bright
Loop
}
}
ACTOR ShortRedTorch_ADD_Flame : ShortRedTorch replaces ShortRedTorch
{
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("Красный_огонь", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)
SMBT ABCD 4 Bright
Loop
}
}
Если нет, тогда распиши подробнее, что ты хочешь сделать (т.е. какая цель, для чего конкретно тебе захотелось акторов объединять)
Добавлено спустя 5 минут 57 секунд:
aivar242:
Продолжаем.
Так что, проблема решена? Тогда:
1) Отпиши мне, что сейчас тебя не устраивает (какие проблемы остались)
2) Кинь последнюю версию своего декорейт кода огня и факелов под спойлер (файл выкладывать не надо, просто скопипасти декорейт код тех акторов, о которых мы говорим последние 5 каментов)
Это по сути то же и получается.) Всё равно в коде для одного факела - 2 актёра: 1) TeleGlitter1 2) ShortBlueTorch_ADD_Flame. А допустим одним атёром, это сделать нельзя?
Цель - простая. Меньше строк кода, чтобы не путаться, чисто для себя. Просто когда 2 атёра, на одно действие, возникает небольшая путаница, у не профи, как я. Нет, так нет - не проблема.
Вот. Я немного изменил название атёров, на свой лад, чтобы так ввести некое единство этих двух, на по сути одно действие. Да, проблема решена, двигаемся дальше.
Одного примера я думаю достаточно, так как код подходит и для мелких торчей и для больших, только параметры разные будут.
Скрытый текст:
ACTOR ShortBlueTorch_ADD_Flame1 : TeleGlitter1 replaces TeleGlitter1
{
Translation "0:255=%[0,0,0]:[0,1,0]"
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_Flame2 : 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
}
}
Это по сути то же и получается.) Всё равно в коде для одного факела - 2 актёра: 1) TeleGlitter1 2) ShortBlueTorch_ADD_Flame. А допустим одним атёром, это сделать нельзя?
Либо нельзя либо я не знаю как
aivar242:
Цель - простая. Меньше строк кода
Меньше строк кода кстати ты можешь сделать следующим способом (я в сообщении выше это проморгал):
Скрытый текст:
Синее пламя например у тебя будет вот таким:
Скрытый текст:
ACTOR ShortBlueTorch_ADD_Flame1 : TeleGlitter1 replaces TeleGlitter1
{
Translation "0:255=%[0,0,0]:[0,0,1]"
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 ShortRedTorch_ADD_Flame1 : ACTOR ShortBlueTorch_ADD_Flame1
{
Translation "0:255=%[0,0,0]:[1,0,0]"
}
ACTOR ShortGreenTorch_ADD_Flame1 : ACTOR ShortBlueTorch_ADD_Flame1
{
Translation "0:255=%[0,0,0]:[0,0,1]"
}
Т.е. акторы красного и зеленого огня займут по одной строчке
aivar242:
двигаемся дальше
Опиши, какие проблемы остались (что не устраивает)
theleo_ua Ммм. Так там же всего пару огненных круглых шариков, взмывающих вверх, вместо крестиков.) А как сделать полноценный огонь из этого? Я предполагал, что мы только начали подходить к главному.
А... В смысле, мне надо только вбить свои параметры и менять их, для достижения нужного мне результата? То что первый огонь полный код, а остальные работают по ссылке на полный - это я понял. Попробую реализовать. Цвет как я понял, подключаяется свойством - Translation. Мы разобрали только синий цвет, а как же зелёный? А, вроде понял... Последние параметры в квадратных скобках.
ВОПРОС: - Можно ли, с помощью этого кода, сделать очень маленькое пламя, - для свечек? Пока я реализовал это у себя, с помощью спрайтов "крест на крест" и анимации. Хотелось бы, полноценного пламени.
Добавлено спустя 3 часа 48 минут 59 секунд:
Вообщем, - что-то в коде не то. Пламени как такового не поучается. Я помню с бочкой, код который ты мне тогда кидал - там было 2 вида пламени, накладывающиеся друг на друга - малое и большое.
В таких моментах как сейчас - для меня сложно, потому что я не знаю - почему у меня - отдельные шарики, взлетающие вверх. Пламени нет. Вот теперь мне требуется объяснение.
Я могу поступить и проще. Могу просто код с бочки, повторить для факелов. Но я надеялся, что если генераторов будет 2, то пламена не будут генерироваться в унисон, когда и бочка, и факел на одном плане. Такая вот идея. Я бы давно взял код с бочек и не парился бы, но я хочу работу 2-ух генераторов одновременно, а не одного.
ZZYZX Пока другого ничего и не остаётся. Но хотелось бы это изменить. В Doomsday прекрасный генератор огня, партикли 3D. В Гозе тоже есть, но он 2D. По сути тот же спрайт, но генерируется из кусков.
Рассказываю как тебе надо менять твой текущий код:
Скрытый текст:
Твой текущий код генератора огня для синего факела выглядит так:
Скрытый текст:
ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
States
{
Spawn:
TNT1 A 8 A_SpawnItemEx("ShortBlueTorch_ADD_Flame1", random[TeleGlitter](0,31)-16, random[TeleGlitter](0,31)-16, 0, 0, 0, 0.25)
SMBT ABCD 4 Bright
Loop
}
}
Попробуй сделать вот так:
Скрытый текст:
ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
var int user_i;
States
{
Spawn:
SMBT A 1
SMBT A 0
{
for (user_i = 0; user_i < 12; user_i++)
{
A_SpawnItemEx("ShortBlueTorch_ADD_Flame1", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3);
}//for (user_i = 0; user_i < 12; user_i++)
}//SMBT A 0
Loop
//Stop
}//States
}//ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
то же самое повторишь для красного и зеленого факела, меняя соответственно:
ShortBlueTorch_ADD_Flame на ShortRedTorch_ADD_Flame и ShortGreenTorch_ADD_Flame
а ShortBlueTorch_ADD_Flame1 на ShortRedTorch_ADD_Flame1 и ShortGreenTorch_ADD_Flame1
После этого у тебя огонь будет больше похож на то что надо, но все равно что-то не понравится. Тогда возьмешь в руки вот эту ссылку, и почитаешь в том (и последующих) комментариях, что какое число значит. Например что значит число 12 в строке
for (user_i = 0; user_i < 12; user_i++)
что значат числа 20 и 10 в строке
0.5+random[TeleGlitter](0,20)-10,
и т д. После того, как поймешь, что каждое число значит, начнешь менять их в своем коде и экспериментировать
После того, как поэкспериментируешь, отпиши, какого добился результата и какие проблемы остались.
aivar242:
Можно ли, с помощью этого кода, сделать очень маленькое пламя, - для свечек?
Можно:
Шаг 1: делаешь для свечек большое пламя (как его делать, ты уже в курсе)
Шаг 2: куришь вот эту ссылку, и понимаешь, что там отвечает за размер и густоту огня
Шаг 3: уменьшаешь размер огня, меняя сответствующие числа
Шаг 4: уменьшаешь густоту огня, меняя сответствующие числа
4-й шаг важен с точки зрения оптимизации и лагов: если огонь маленький, то не нужно спавнить 256 акторов огня в одной и той же точке. Соответственно на шаге 4 ты экспериментальным путем подберешь наименьшее значение числа для густоты огня, при котором огонь выглядит так как тебе надо (так как чем меньше число, отвечающее за густоту, тем меньше кусков огня спавнится, и тем меньше нагружается процессор)
Чтобы ты понял логику, по которой работает огонь, давай распишу кратко, как это работает с точки зрения движка гоззы:
Скрытый текст:
Для каждого факела на карте происходит следующее:
1) Сначала спавнится спрайтовый факел на уровне
2) После этого он моментально заменяется на 3дмодель (так как ты переопределил актора через replaces и навесил ему дефиниции в modeldef)
3) После этого данный актор-модель начинает циклически спавнить над собой кусочки огня, направляя их вверх, строкой A_SpawnItemEx("ShortBlueTorch_ADD_Flame1", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3);
данная строка выполняется бесконечно, соответственно куски огня спавнятся бесконечно (а умирают они, долетая вверх, потому, что в акторе кусочка огня написано Stop)
Надеюсь после этого станет понятнее, как работает код, который описан выше
ZZYZX:
Маленькое пламя для свечек это ты берёшь спрайт с двумя-тремя кадрами и вешаешь его над моделью. Получается неплохо. http://i.imgur.com/0BlfGpI.png
Где ты был раньше:) Кстати, вот если бы ты был на месте аивара, каким бы методом сделал огонь для горящей бочки и для красных/зеленых/синих факелов?
theleo_ua Этот последний код, при запуске нужного уровня чреез консоль, намертво вешает Гоззу. Процессор при этом загружен на 30%.
Скрытый текст:
ACTOR TeleGlitter1_aivar242 : TeleGlitter1 replaces TeleGlitter1
{
Translation \"0:255=%[0,0,0]:[0,0,1]\"
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
{
var int user_i;
States
{
Spawn:
SMBT A 1
SMBT A 0
{
for (user_i = 0; user_i < 12; user_i++)
{
A_SpawnItemEx(\"ShortBlueTorch_ADD_Flame1\", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3);
}//for (user_i = 0; user_i < 12; user_i++)
}//SMBT A 0
Loop
//Stop
}//States
}//ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
Это не полный код. Ранее, когда ты мне составлял код для бочек, он был сложнее. Там было 2 актора на пламя, для больших партиклей и отдельно для мелких. Вообщем я думаю вернуться к тому коду, в этой теме, вначале.
Опять же, я надеялся, что с твоей помощью, снова создать код огня, - с нуля, и уже цветного. Тот старый код для бочки, мне кажется можно ужать, сделав его компактнее. Но если тебе например лень будет возиться, то я сам буду париться, пока не зделаю то что нужно. Просто на это тогда, уйдёт ещё пол года.)
Для проверки качесва пламени с свойством "Translation", которое меняет цвет пламени, я его подкинул бочкам. Пламя оказалось не совсем таким, которое мне нужно, то есть не имеющим шейдеров. Оно как бы залито одним цветом и у него нет глубины. Не ожидал такого. Я ещё посмотрю, проверю, покручу ещё раз, может слишком густое пламя, поэтому так.
Этот последний код, при запуске нужного уровня чреез консоль, намертво вешает Гоззу.
Я увидел в чем проблема, и она появилась потому, что ты не до конца понимаешь как работает общий механизм. Давай попробуем кратко по порядку: процитирую часть своего предыдущего сообщения:
theleo_ua:
Для каждого факела на карте происходит следующее:
1) Сначала спавнится спрайтовый факел на уровне
2) После этого он моментально заменяется на 3дмодель (так как ты переопределил актора через replaces и навесил ему дефиниции в modeldef)
3) После этого данный актор-модель начинает циклически спавнить над собой кусочки огня, направляя их вверх, строкой A_SpawnItemEx("ShortBlueTorch_ADD_Flame1", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3);
данная строка выполняется бесконечно, соответственно куски огня спавнятся бесконечно (а умирают они, долетая вверх, потому, что в акторе кусочка огня написано Stop)
Да, тут-то как раз сложности и нет. Сложность в том, чтобы сделать эти "кусочки огня", которых у меня сейчас всего несколько штук, поднимающихся от пола до определённой высоты - много. Мне надо чтобы это было похоже на огонь. Вот это для меня сложно. Я не понимаю как это сделать?
Стараюсь лишних вопросов не задавать, это отвлечёт от главного.
Хуже всего я ориентируюсь в Акторах. Если на одно действие повешано их несколько штук, где модели заменяют срайты и один должен упоминать другого, это всё - край. Через час анализирования и концетранции проц (голова) повисает.
1) Есть актор "кусочек огня", его код выглядит так:
Скрытый текст:
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
Stop
}
}
2) Есть актор "3д модель факела", его код выглядит так:
Скрытый текст:
ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
var int user_i;
States
{
Spawn:
SMBT A 1
Loop
}//States
}//ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
Вопрос: как надо изменить код актора "3д модель факела", чтобы он начал спавнить сверху себя актора "кусочек огня" ?
Напиши мне, как будет выглядеть код измененного актора "3д модель факела", который спавнит сверху себя актора "кусочек огня"
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
Stop
}
}
ACTOR ShortBlueTorch_ADD_Flame : ShortBlueTorch replaces ShortBlueTorch
{
var int user_i;
States
{
Spawn:
SMBT A 1 A_SpawnItemEx("TeleGlitter1_aivar242", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3);
Loop
}
}
Ты имеешь ввиду, 2 обратных слэша, в строке \"ShortBlueTorch_ADD_Flame1\" ? Убрал их, запустил код и сразу ошибка, в конце строки со спавном, не должно быть точки с запятой. Убрал и всё запустилось. Вижу жёлтые шарики, можно продолжать.
Самое интересное, что оказывается не надо создавать в Spawn:, пустой спрайт TNT A 0.