Welcome to U.A.C.
login / register 
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Скриптинг [Заказываем скрипты/Делимся скриптами] Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9
   Список разделов - Местечко мапперов и моддеров - Скриптинг [Заказываем скрипты/Делимся скриптами]Ответить

Будет ли эта тема полезной/жизнеспособной?
Ответ если Вы программист: [Да! Буду просматривать заказы и размещать скрипты]
19%
 19% [ 8 ]
Ответ если Вы программист: [Нет! Эта тема бред]
4%
 4% [ 2 ]
Ответ если Вы программист: [Буду иногда размещать скрипты, но заказы.. лень]
34%
 34% [ 14 ]
Ответ если Вы заказчик: [Да!]
41%
 41% [ 17 ]
Ответ если Вы заказчик: [Нет!]
0%
 0% [ 0 ]
Проголосовало думеров : 29
Всего оставлено голосов : 41
Голосование без ограничения по времени

АвторСообщение
theleo_ua
- Commissar -
Next rank: = Commissar = after 24 points
5316

Doom Rate: 1.79

Posts quality: +1221
Ссылка на пост №161 Отправлено: 21.11.20 05:19:46
N00b2015 т.е. по большому счету, можно не париться?

Рейтинг сообщения: +1, отметил(и): N00b
4 1
md3d
Recruit
Next rank: Recruit after 8 points
2

Doom Rate: 2

Ссылка на пост №162 Отправлено: 10.08.22 11:06:42
Всем привет.

Пытаюсь сделать такую ностальгическую фичу, как мигающая дискета в нижнем, правом углу экрана.
Код у меня получился весьма «индусский», и фича срабатывает только в начале уровня.
Хотелось бы получить более «гибкий код». К тому же картинка дискеты у меня выводится только под изображение экрана 16:9 с выключенными HUD.

Код скрипта должен быть примерно следующий:

Если расстояние от игрока до двери составляет 5 шагов (условно), то с вероятностью 20% нужно вывести на экран сообщение «TEST»

Сообщение «TEST» выводится на экран при следующих условиях:

Если изображение экрана 16:9, HUD включен, то сообщение выводится с координатами х=10 у=20
Если изображение экрана 16:9, HUD выключен, то сообщение выводится с координатами х=10 у=30
Если изображение экрана 4:3, HUD включен, то сообщение выводится с координатами х=20 у=40
Если изображение экрана 4:3, HUD выключен, то сообщение выводится с координатами х=20 у=50

Поможет ли кто нибудь осуществить задуманное?
Shadowman
UAC General
Next rank: Unavailable after 0 points
9365

Doom Rate: 2

Posts quality: +2696
Ссылка на пост №163 Отправлено: 15.08.26 20:08:17
Хотелось бы прояснить одну вещь. Я не глубокий знаток подноготной механики декорэйта, поэтому то, что мне ответил ИИ, вызывает необходимость проверки.
ИИ написал:

В GZDoom стандартное поведение A_Chase таково: при потере цели он вызывает A_Chase с параметрами, которые могут вызвать переход в See (если есть цель) или в Spawn (если цели нет). Однако в вашем коде вы не используете явный переход, но движок может сам сгенерировать переход в Spawn, если цель потеряна и состояние See не содержит явного goto. В большинстве случаев, если цель потеряна, A_Chase возвращает монстра в состояние, указанное в свойстве SeeState, но если оно не задано, то в Spawn. Это зависит от движка и настроек.

Другими словами, есть вероятность, что движок отправит монстра в Spawn, даже если в коде явно указана зацикленность See стейта, или ИИ тут глючит в ответе?
Это важно, потому что я хочу установить некоторые базовые параметры моба в Spawn-стейте, и потому если моба движок каким-то образом может кинуть в Spawn помимо прямых команд, меня такой расклад не устраивает (т.к. тогда параметры будут устанавливаться заново).
В моем случае See стейт устроен вот так:
See:
SCMP AABBCCDDEEFFGG 2 A_Chase
loop
Из всех других статов (атака, боль и т.п.) переход идет напрямую в See
Стоит ли опасаться каких-то сбросов в Spawn самим движком?
1 8 2
JSO x
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 132 points
1508

Doom Rate: 2.39

Posts quality: +819
Ссылка на пост №164 Отправлено: 16.08.26 17:08:40
В "Spawn:" актор перейдёт, если потеряет смысл жизни последнего врага из поля target/AAPTR_TARGET — может произойти, когда текущая цель мертва и у него не осталось других врагов, которых он любым способом запомнил (от выстрела в пределах слышимости, от того, с кем он не до конца сразился в прошлый раз, и так далее). Так, например, если по монстру, который не слышал и не видел игрока, кто-то попал, то после смерти обидчика он снова замрёт на месте в "Spawn:".

Если нужно всё инициализировать ровно один раз, можно ввести дополнительный предмет-маркер, выдающийся вместе с остальными предметами:
Spawn:
    TNT1 A 0 NoDelay
    TNT1 A 0 A_JumpIfInventory( "MarkerInventory", 0, "SpawnLoop" )
    TNT1 A 0 A_GiveInventory( "MarkerInventory" )
    TNT1 A 0 A_GiveInventory( "SomeInv1" )
    TNT1 A 0 A_GiveInventory( "SomeInv2" )
    TNT1 A 0 A_GiveInventory( "SomeInv3" )
SpawnLoop:
    SCMP AB 8 A_Look
    Loop

Также можно следить за каким-то из уже существующих предметов (здесь обозначены как "SomeInv*"), но это менее универсальный способ, особенно если количество всех предметов может меняться произвольно.

Рейтинг сообщения: +2, отметил(и): Shadowman, Bessa Me Muchos
3 10 1
Shadowman
UAC General
Next rank: Unavailable after 0 points
9365

Doom Rate: 2

Posts quality: +2696
Ссылка на пост №165 Отправлено: 16.08.26 18:46:55
JSO x
Большое спасибо! Именно этот момент и хотелось уточнить. Теперь буду знать, что Spawn может вызываться движком в отдельных случаях.
Проверку на предмет-маркер я в итоге и сделал.

Рейтинг сообщения: +1, отметил(и): JSO x
1 8 2
AleksV
Marine 1st class
Next rank: - UAC Gunner - after 2 points
38

Doom Rate: 2

Posts quality: +17
Ссылка на пост №166 Отправлено: 16.08.26 22:25:59
Если не ошибаюсь, при потере цели монстр переходит в Spawn, если нет стейта Idle. Так что можно в Spawn спокойно инициализировать монстра. Главное, чтобы в самом коде нигде не было Goto Spawn или A_Jump ("Spawn").
Лучше конечно использовать ZScript и переопределить PostbeginPlay.

Рейтинг сообщения: +3, отметил(и): Shadowman, JSO x, Bessa Me Muchos
Shadowman
UAC General
Next rank: Unavailable after 0 points
9365

Doom Rate: 2

Posts quality: +2696
Ссылка на пост №167 Отправлено: 16.08.26 23:51:36
AleksV пишет:
при потере цели монстр переходит в Spawn, если нет стейта Idle.

О, а вот это еще лучше, упрощает код (не нужен токен-итем для проверки выставленных условий в Спаун)! Спасибо!
Жаль, что тупой ИИ не умеет сразу предлагать оптимальные решения. Я заметил, что он идет всегда по самому сложному пути. Например, стал предлагать мне скрипт с массивом тагов вместо более изящного решения, пока я его не направил на нужный путь. Вывод: без знания основ декорэйа и скриптов общение с ИИ на эту тему может увести в неоптимальный код. По этой причине я не рискую что-то делать через зскрипт, т.к. не знаю его азов вообще (а ИИ, как выясняется, всегда уведет в неоптимальную сторону, если его не одергивать).
1 8 2
AleksV
Marine 1st class
Next rank: - UAC Gunner - after 2 points
38

Doom Rate: 2

Posts quality: +17
Ссылка на пост №168 Отправлено: 17.08.26 00:36:56
Кстати вместо итемов лучше использовать переменные, если эти итемы не доджны проверяться из других акторов (через A_JumpIfInTargetInventory или типа того).
Страница 9 из 9Перейти наверх Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9
   Список разделов - Местечко мапперов и моддеров - Скриптинг [Заказываем скрипты/Делимся скриптами]