Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Вопросы по переносу ресурсов из других портов в GZDoom Пред.  1, 2, 3 ... 12, 13, 14 ... 21, 22, 23  След.
   Список разделов - Местечко мапперов и моддеров - Вопросы по переносу ресурсов из других портов в GZDoomОтветить
АвторСообщение
theleo_ua
= Colonel =
Next rank: - Commissar - after 258 points
4632

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №241 Отправлено: 15.04.17 00:32:20
aivar242:
Ты имеешь ввиду, 2 обратных слэша


Несмотря на то, что 2 обратных слеша лишние (это движок форума iddqd тебе их пририсовал), я имел в виду не это. Поэтому еще раз глянь свой комментарий с кодом, который вешал гоззу, и ответь мне на следующий вопрос:

Почему актора "кусок огня" зовут TeleGlitter1_aivar242, а строка A_SpawnItemEx спавнит актора ShortBlueTorch_ADD_Flame1 ?
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №242 Отправлено: 15.04.17 00:44:17
Ну да, согласен, там серъёзная ошибка. Правильно - спавнить надо куски огня, а не себя же. То есть правильно должно быть: - SMBT ABCD 4 Bright A_SpawnItemEx("TeleGlitter1_aivar242", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3)

Я ещё сомневаюсь, - как правильно? Нужно спавнить имя Аctora - TeleGlitter1_aivar242, или же то, что идёт после него, то есть : TeleGlitter1 ?
theleo_ua
= Colonel =
Next rank: - Commissar - after 258 points
4632

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №243 Отправлено: 15.04.17 00:55:46
aivar242:
Самое интересное, что оказывается не надо создавать в Spawn:, пустой спрайт TNT A 0.


Пишу для чего создают в Spawn пустой спрайт TNT A 0:

Скрытый текст:


An actor that has just been spawned does not run the codepointer from its first “Spawn” frame. An example of this behavior in the original games is ArchvileFire. It will be called, however, if the actor loops or returns to its Spawn state later. An easy workaround to have actors call a codepointer immediately after spawning consists in having the very first frame have a duration of 0 tics, followed by another frame in which the codepointer instruction is given. Another solution is to use the NoDelay keyword (c) https://zdoom.org/wiki/Actor_states#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);
Stop

То огонь не появится. А если у тебя будет например так:

Spawn:
SMBT A 1 КОМАНДА1
SMBT A 1 КОМАНДА2
Stop

то команда 1 не выполнится

Чтобы этой проблемы избежать, после spawn вставляют TNT1 A 0, и полезно вбить себе такую привычку, так как в противном случае в один прекрасный момент у тебя что-то перестанет работать, и ты не поймешь, почему

А твой огонь работает без TNT1 A 0 потому, что:
1) У тебя Spawn стейт зациклен командой Loop, т.е. повторяется бесконечно (а в таком случае, при втором и последующих выполнениях цикла, твоя команда A_SpawnItemEx выполняться будет)
2) Тебе не важно, сработает ли запуск первого куска огня или нет, так как куски огня у тебя запускаются бесконечно, соответственно не важно, на первом или втором тике они начнут запускаться

Но у меня часто бывают случаи, когда мне важно чтобы команда выполнялась сразу при первом спавне актора, и никак иначе (например при спавне актора я могу определять, спрайт это будет или модель, если спрайт то какой из трех, если модель то какая из пяти, какая у нее будет прозрачность, размер и прочие вещи), соответственно чтобы с этим у меня никогда не было проблем, я вбил себе привычку в строке TNT1 A 0 в начале спавн стейтов



aivar242:
То есть правильно должно быть


aivar242:
A_SpawnItemEx("TeleGlitter1_aivar242"


Правильно должно быть так:

A_SpawnItemEx("ИМЯ АКТОРА КУСКА ОГНЯ У КОТОРОГО ТЫ В СВОЙСТВАХ ПИСАЛ ТРАНСЛЕЙШН"

aivar242:
Я ещё сомневаюсь, - как правильно? Нужно спавнить имя Аctora - TeleGlitter1_aivar242, или же то, что идёт после него, то есть : TeleGlitter1 ?


правильно спавнить имя того актора, в свойствах которого ты указывал транслейшн

Идея такая, что сначала ты описываешь актора "Вася", у которого транслейшном говоришь ему "пускай Вася будет зеленый", а потом ты описываешь актора "Петя", которому говоришь "а отспавни мне пожалуйста актора Васю"

Соответственно у актора "Петя" строка будет такая:

SMBT A 1 A_SpawnItemEx("Вася", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3)

Пока ты не поймешь этот момент, дальше идти нет смысла
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №244 Отправлено: 15.04.17 01:02:52
ВОПРОС: Вот только что мы обсудили, что надо писать в Spawn:, пустой спрайт TNT A 0. Почему над ним бывает пишут ещё и TNT A 1 ? Что это значит?


theleo_ua:
Пока ты не поймешь этот момент, дальше идти нет смысла

Ну теперь точно по спавну вопросов нет. Можно идти дальше.

Скрытый текст:

Сложность для меня в том, что Петя и Вася, - 2 разных Актёра, выполняющих одну роль. Для меня легче было бы, чтобы был один Актёр, а все привязки и действия, выполнялись бы прописанными свойствами, коммандами и флагами. Напирмер в Doomsday порте как-то логичней с этим.

theleo_ua
= Colonel =
Next rank: - Commissar - after 258 points
4632

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №245 Отправлено: 15.04.17 01:10:21
aivar242:
ВОПРОС: Вот только что мы обсудили, что надо писать в Spawn:, пустой спрайт TNT A 0. Почему над ним бывает пишут ещё и TNT A 1 ? Что это значит?


Хотят чтобы перед выполнением следующей строки прошел 1 тик. Почему так хотят - зависит от ситуации. Ты пока без необходимости не пиши строку TNT A 1 (но строку TNT1 A 0 есть смысл писать в стейте spawn)

aivar242:
Ну теперь точно по спавну вопросов нет. Можно идти дальше.


Напиши мне твой текущий код куска огня и код факела
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №246 Отправлено: 15.04.17 01:16:14
theleo_ua
По поводу TNT A 1 понял. Про TNT A 0 - тоже, буду использовать его.

У меня сейчас вот так. На спрайте мелкого торча, спавнятся жёлтые шарики огня. Около 3-4 штук сразу:
Скрытый текст:

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 ABCD 4 Bright A_SpawnItemEx("TeleGlitter1_aivar242", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3)
Loop
}
}

theleo_ua
= Colonel =
Next rank: - Commissar - after 258 points
4632

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №247 Отправлено: 15.04.17 01:18:37
Замени
SMBT ABCD 4 Bright
на
SMBT A 1

что изменилось?
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №248 Отправлено: 15.04.17 01:25:20
theleo_ua:
что изменилось?

Стало больше шариков. Мельтешат. Уже отдалённо похоже на пламя.)

Этот момент мне не понятен - почему так? Было 4 фрейма - АВСD 4 - шариков было около 3-4 и они спавнились медленно, а когда я вбил один фрейм - A 1 - то их стало больше и они начали мельтешить?

Кажется понял... 4 фрейма по 4 тика - это большой отрезок времени - поэтому и медленно шарики респавнились, а А 1 - это один фрейм с одним тиком, который быстро респавнится, при параметре Loop конечно.
theleo_ua
= Colonel =
Next rank: - Commissar - after 258 points
4632

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №249 Отправлено: 15.04.17 01:34:38
aivar242:
Стало больше шариков. Мельтешат. Уже отдалённо похоже на пламя.)


Теперь попробуй так:

Spawn:
SMBT A 1
SMBT AAAAAAAAAAAA 0 A_SpawnItemEx("TeleGlitter1_aivar242", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3)
Loop

что поменялось?

aivar242:
Этот момент мне не понятен - почему так? Было 4 фрейма - АВСD - шариков было около 3-4 и они спавнились медленно, а когда я вбил один фрейм - A 1 - то их стало больше и они начали мельтешить?


ABCD 4 это значит что после каждого фрейма идет ожидание в 4 тика
A 1 это значит что после каждого фрейма идет ожидание в 1 тик, соответственно шариков будет в 4 раза больше

а то что я тебе предложил сейчас:

Скрытый текст:

Spawn:
SMBT A 1
SMBT AAAAAAAAAAAA 0 A_SpawnItemEx(блаблабла)
Loop



это значит что на каждом фрейме (который длиной в 1 тик) будет спавниться сразу 12 шариков

Рейтинг сообщения: +1, отметил(и): aivar242
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №250 Отправлено: 15.04.17 01:43:32
theleo_ua:
что поменялось?

Шарики слились, стали похожи на пламя.

Давно хотел спросить... Что это такое, в свойствах - var int user_i; ?

По пламени это всё, или ещё что-то будет? Как его настраивать? Параметрами в строке спавна, как и раньше?
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1630
Ссылка на пост №251 Отправлено: 15.04.17 10:33:44
aivar242:
В Doomsday прекрасный генератор огня, партикли 3D. В Гозе тоже есть, но он 2D. По сути тот же спрайт, но генерируется из кусков.

Тратить ресурсы процессора на отрисовку мизерных партиклей на свечку это бред )
С большим огнём хотя бы визуально разница будет, а тут и того нет, зато постоянно спавнится куча акторов и каждая свечка будет 10+ акторов вместо 1-2.

Нужно понимать, что в гздуме в принципе нормальных партиклей нет и быть не может. По техническим причинам.
2 2 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №252 Отправлено: 15.04.17 12:48:50
ZZYZX
Хорошо. какой тогда выход? Смотреть на корявенькую ABCD анимацию пламени? Я пробовал врубать с огнём на слабом железе - вроде всё тянет, а сколько там спавнится, респавнится, мне какбы всё равно, если тянет. Потом ещё раз погоняю процессор с огнями и без.
А вообще - всё делается для улучшения графики в старом Думе. Это естественно влечёт за собой, увеличение нагрузки на железо. Это надо принять. Тем, кто хочет играть на совсем слабом железе, придётся в любом случае выбирать, настраивать, чтобы всё тянуло. Это не сложно сделать. Выключая настройки в самом порте, выключая свет, освещение на уровнях, эфекты и применяя простенькие, низкополигональные модели, первых паков. Там вариантов куча для оптимизации.

Вот этот ZScrypt, о котором ты всё время твердишь. Что он привносит в Гоззу, кроме похожести с языком С? Есть какие-то полезные фичи, которые с помощью него можно реализовать?

Добавлено спустя 4 часа 19 минут 44 секунды:

theleo_ua
Как верхнюю половину пламени, сделать более конусной? Возможно ли это? Сейчас жёлтое пламя похоже на матрёшку, а надо - чтобы на каплю.

Скрытый текст:

ACTOR TeleGlitter1_Blue : 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
SMBT A 0 A_SpawnItemEx("TeleGlitter1_Blue", random[TeleGlitter](0,3)-10, random[TeleGlitter](0,3)-10, 30, 0, 0, 0.4)
Loop
}
}

theleo_ua
= Colonel =
Next rank: - Commissar - after 258 points
4632

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №253 Отправлено: 15.04.17 18:55:54
aivar242:
По пламени это всё


нет, я буду постепенно рассказывать тебе как это работает, и проверять, как ты это понял

aivar242:
Что это такое, в свойствах - var int user_i; ?


См. ниже

aivar242:
Шарики слились, стали похожи на пламя.


Значит смотри:

1) У тебя есть следующая строка:
SMBT AAAAAAAAAAAA 0 A_SpawnItemEx("TeleGlitter1_aivar242", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3)

Количество букв A в этой строке отвечает за густоту пламени (чем больше букв, тем больше густота). Соответственно поэкспериментируй с количеством букв А, и подбери себе минимальное их количество, при котором качество огня тебя устроит

2) Есть 2 варианта записи этой строки. Её можно записать вот так:

Скрытый текст:

SMBT AAAAAAAAAAAA 0 A_SpawnItemEx("TeleGlitter1_aivar242", 0.5+random[TeleGlitter](0,20)-10, random[TeleGlitter](0,20)-10, 25, 0, 0, 0.3)



а можно записать вот так:

Скрытый текст:


SMBT A 0
{
for (user_i = 0; user_i < 12; user_i++)
{
A_SpawnItemEx("TeleGlitter1_aivar242", 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



второй вариант, как видишь, занимает больше строк, в нем в строке A_SpawnItemEx надо в конце ставить точку с запятой, и для того, чтобы второй вариант работал, нужно в свойствах актора написать var int user_i;

первый вариант лишен этих недостатков. Недостаток первого варианта один: вместо числа 12 тебе придется писать 12 букв А подряд, вот так: AAAAAAAAAAAA (а если их будет 200, будет не совсем удобно:) )

Какой из вариантов тебе больше нравится?

aivar242:
По пламени это всё, или ещё что-то будет? Как его настраивать? Параметрами в строке спавна, как и раньше?


Да, пламя настраивается параметрами в строке спавна. Как настраивать конкретно густоту, я отписал выше

aivar242:
Как верхнюю половину пламени, сделать более конусной? Возможно ли это? Сейчас жёлтое пламя похоже на матрёшку, а надо - чтобы на каплю.


С этим пока не спеши. Пока надо добиться того, что у тебя на каждом факеле пламя своего цвета (красный зеленый синий и желтый (там где нужен конкретно желтый) ), и это пламя устраивает тебя своей густотой и прочими особенностями (кроме конусности)

ZZYZX:
Тратить ресурсы процессора на отрисовку мизерных партиклей на свечку это бред )


Согласен, в идеале это должна рисовать видеокарта, только пока ни думсдей ни гздум не умеют в партиклы видеокартой к сожалению. Вспоминая, что это все обрабатывается на одном ядре, в думсдее из-за этого очень сильно проседает фпс (в гздуме я столкнулся с просадкой фпс только когда около 25 статуй с огнем были одновременно в кадре)

По этой причине я делал спавн огня через ACS, чтобы детектить, когда огонь не в кадре чтобы его не спавнить (надо будет усовешенствовать этот алгоритм, так как сейчас он определяет через a_look и всегда спавнит одно и то же кол-во "партиклей" (а надо, чем дальше от игрока, тем меньше) ). Возможно эти усовершенствования стоит сделать через зскрипт, тогда можно будет быстрее и эффективнее понимать, надо спавнить партиклы огня или нет, и если надо, то как много

ZZYZX:
С большим огнём хотя бы визуально разница будет, а тут и того нет, зато постоянно спавнится куча акторов и каждая свечка будет 10+ акторов вместо 1-2.


здесь согласен

ZZYZX:
Нужно понимать, что в гздуме в принципе нормальных партиклей нет и быть не может. По техническим причинам.


таким простым способом ренди и граф обезопасили гоззу от лишних проседаний фпс:) (привет думсдей)
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №254 Отправлено: 15.04.17 22:11:19
theleo_ua
По поводу густоты я понял.

Что мне нужно добавить в свой код, чтобы пламя перестало гореть, когда игрок его не видит? То, о чём ты говорил выше.
theleo_ua
= Colonel =
Next rank: - Commissar - after 258 points
4632

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №255 Отправлено: 16.04.17 01:45:17
aivar242:
Что мне нужно добавить в свой код, чтобы пламя перестало гореть, когда игрок его не видит?


Это последнее что мы будем делать. Сначала надо добиться чтобы огонь вел себя так как тебе надо. Значит какие претензии к качеству огня сейчас остались?
3 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №256 Отправлено: 16.04.17 02:10:35
theleo_ua
Претензии такие, что само пламя идёт не конусом, в виде капли, а как бы матрёшкой, состоящей из 2-ух округлых частей.

По поводу создания 3-ёх цветов не беспокойся, я всё уже сделал. 3 цвета, где каждое пламя можно не зависимо настраивать. Жаль только, что покрашенные пламена, имеют однородную заливку, без затенений - не очень хорошо смотрится. Пламя которое по дефолту "жёлто-красное" - выглядит получше, так как имеет жёлтую середину, с белыми ореолами внутри, а по краям пламени - красная окантовка. Хорошо бы, чтобы у других цветов, тоже это было, в разных тонах одного цвета, в стиле твоего аватара, если брать синий.
В принципе, не плохое пламя у твоих торчей, из Херетика: https://www.youtube.com/watch?v=nk2TL4GEa8w
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1630
Ссылка на пост №257 Отправлено: 16.04.17 02:51:34
aivar242:
Вот этот ZScrypt, о котором ты всё время твердишь. Что он привносит в Гоззу, кроме похожести с языком С? Есть какие-то полезные фичи, которые с помощью него можно реализовать?

Полезные фичи с чьей точки зрения? С твоей не факт. С моей — сильно расширяет возможности для моддинга, т.к. на ацс и декоре вместе нельзя сделать и 30% от зскрипта.
В частности можно например инвентарь сделать визуальным интерфейсом, причём это будет не кастомный какой-то магический инвентарь, а конкретно доступ к инвентарю игрока с возможностью пройти по всем итемам.
Можно легко и непринуждённо работать с акторами без TID, можно напрямую работать с секторами/линиями... Даже динамические слопы можно :) Правда граф сказал что он пока ещё не доделал это, но пуллреквест таки висит.

Единственный минус зскрипта в том, что такие как ты "помогите-объясните-мне-всё" просто ничего не поймут там )
В связи с тем, что даже документации нормальной нету, а разбираются в языке полтора человека на всё комьюнити, просто в силу новизны.
В зскрипте можно разобраться либо читая сорцы гздума, либо читая gzdoom.pk3/zscript.
2 2 1
theleo_ua
= Colonel =
Next rank: - Commissar - after 258 points
4632

Doom Rate: 1.81

Posts quality: +997
Ссылка на пост №258 Отправлено: 16.04.17 05:01:09
ZZYZX:
Можно легко и непринуждённо работать с акторами без TID, можно напрямую работать с секторами/линиями


У меня очень сильно горит от того, что когда я год назад хотел вращать статуи (те, которые с шариками как у меня на аватаре) спиной к стенке, я не знал о зскрипте (и, если не ошибаюсь, он тогда был неюзабелен как сейчас). Получается, что на зскрипте там перебираешь все статуи, для каждой чекаешь соседа по расстоянию, и когда "близнецы найдены", проверяешь, с какой стороны от них стенка, а для "одиночек" просто чекаешь угол поворота ближайшей стены, либо забиваешь на статую болт, если в круге с радиусом X (X определить экспериментально) стена не найдена.

А я там такие длинные костыли нагородил на декорейте и ACS, не пересказать (не говоря о том, что работает это все не всегда как надо)

Кстати, в зскрипте реально проверять "ближайшую дверь, запертую ключем таким-то" или "ближайшую кнопку, запертую ключем таким-то" на предмет "по какую сторону (угол, координаты) от целевого актора она находится" ?

aivar242:
Жаль только, что покрашенные пламена, имеют однородную заливку, без затенений - не очень хорошо смотрится. Пламя которое по дефолту "жёлто-красное" - выглядит получше, так как имеет жёлтую середину, с белыми ореолами внутри, а по краям пламени - красная окантовка. Хорошо бы, чтобы у других цветов, тоже это было, в разных тонах одного цвета, в стиле твоего аватара, если брать синий.


Ты это заметил только сейчас или уже на стадии вот этого комментария? Дело в том, что вот этот комментарий рассказывает о том, какие способы смены цвета есть, и я ожидал, что проблема некорректной заливки (иными словами, проблема качества при смене цвета) будет тебе заметна сразу же, и если это будет важно, то ты сразу отпишешь.

В общем ладно, лучше поздно чем никогда, поэтому рассказываю: чтобы сделать цвета такими как ты хочешь в вышеприведенной цитате, надо воспользоваться способом 1 и частично способом 3 из вот этого комментария. Способ 1 я тогда не рассказывал, так как он самый сложный (в нем придется пользоваться слейдом и также придется понимать, как работает вот это и вот это).

По поводу способов 3 и 4 ты ответил тогда следующее:

aivar242:
Попробовал 2-ой способ - всё работает. То что нужно. Остальные способа тоже не плохи, но слишком много волокиты... Переколорить спрайты, закинуть, удлинить Декорейт код в три раза. По второму способу - минимум телодвижений и кода, а действие то же. Эти, остальные способы, я взял на заметку если что.


Так вот - у меня плохие новости: первый способ еще сложнее. Но зато он дает идеальные градиенты, ореолы, середины, границы и прочее

Собственно, будем пытаться рассказывать тебе первый способ, или забьем болт?
3 1
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1630
Ссылка на пост №259 Отправлено: 16.04.17 10:19:42
theleo_ua:
У меня очень сильно горит от того, что когда я год назад хотел вращать статуи (те, которые с шариками как у меня на аватаре) спиной к стенке

Ну это и в декоре (особенно ацс) можно. Спавнишь 64 актора в каждом направлении, отслеживаешь в какой стороне ближе попало в стенку :) Ещё можно через SetActorPosition.

theleo_ua:
Кстати, в зскрипте реально проверять "ближайшую дверь, запертую ключем таким-то" или "ближайшую кнопку, запертую ключем таким-то" на предмет "по какую сторону (угол, координаты) от целевого актора она находится" ?

Можно, но я думаю придётся руками экшны проверять (202 и т.д.). Но может и не придётся, я не пробовал этим заниматься.
Есть BlockLinesIterator (или как-то так), позволяющий получить список объектов Line (лайндефы) в определённом блоке (координатах).
Таким образом можно искать двери и сектора рядом с актором.
2 2 1
aivar242
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 36 points
1404

Doom Rate: 1.64

Posts quality: -18
Ссылка на пост №260 Отправлено: 16.04.17 11:56:52
theleo_ua:
будем пытаться рассказывать тебе первый способ, или забьем болт?

Да, я сразу видел что пламя заливается однородным цветом, но думал, что я делаю что-то не правильно и потом это можно будет скорректировать. Когда мы на первых этапах спавнили спрайты TeleGlitter1, то почему-то у них была глубина, у каждого, а когда этих спрайтов спавнилась куча - то всё залилось одним плоским цветом. А понял, то что предложил ZZYZX - заливается одним цветом, о чём он и предупреждал, когда предложил этот способ, а крестики мы тогда заливали как раз таки первым способом, результат которого мне понравился.

Вообщем, если 1-ый способ визуально лучше 3-го и 4-го, тогда приступим к изучению.
Давай так: - Чтобы тебе лишнего мне не объяснять, я объясню, насколько я понимаю строку, этого короткого кода - Translation "168:191=112:127", а дальше ты меня уже поправишь...

Значит так: - Первые значения - 168:191 - это диаппазон красной палитры, от самого светлого, до самого тёмного тона - это заменяемый цвет. Второе - это диаппазон зелёной палитры, от самого светолого, до самого тёмного тона - на этот цвет заменяем. Эти значения, как я понял, расчитаны для зелёного торча. Знак равенства, тоже пока не понятен для чего.

ZZYZX:
Единственный минус зскрипта в том, что такие как ты "помогите-объясните-мне-всё" просто ничего не поймут там )

Меня в старом Думе, интересует только графическая часть, так что внедряться в недры программинга, мне нет смысла, поэтому для меня лучшим вариантом было бы, чтобы мне дали нужный код, который бы делал то, что помогло бы мне реализовать графическую часть.
Страница 13 из 23Перейти наверх Пред.  1, 2, 3 ... 12, 13, 14 ... 21, 22, 23  След.
   Список разделов - Местечко мапперов и моддеров - Вопросы по переносу ресурсов из других портов в GZDoom