Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые!-2 Пред.  1, 2, 3 ... 18, 19, 20 ... 26, 27, 28  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2Ответить
АвторСообщение
theleo_ua
= Major =
Next rank: Lieutenant Colonel after 336 points
2954

Doom Rate: 1.84

Posts quality: +485
Ссылка на пост №361 Отправлено: 27.12.19 21:29:34
N00b2015 пишет:
Я бы попробовал ALLOWBOUNCEONACTORS (без BOUNCEONACTORS). Хотя, наверное, я ответил слишком поздно.


Я решил проблему вот так:

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



BounceCount 99
+USEBOUNCESTATE
Var Int User_BouncesLeft;

States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetUserVar("User_BouncesLeft", 5 )

WEMP AABBB 1 Bright A_SpawnItemEx("WandOfEmbersTrail", 0, 0, 0, 0, 0, 0, 0, 128)
//Loop
Goto Spawn+2

Bounce:
TNT1 A 0 A_JumpIf(User_BouncesLeft <= 0, "Death_Prepare")
TNT1 A 0 A_SetUserVar("User_BouncesLeft", User_BouncesLeft - 1 )
Goto Spawn+2

Bounce.Actor.Creature:
TNT1 A 0 A_ChangeFlag("HITOWNER", TRUE)
TNT1 A 0 A_SetUserVar("User_BouncesLeft", 5 )
Goto Spawn

Death_Prepare:
TNT1 A 0 A_ChangeFlag("SHOOTABLE", TRUE)
TNT1 A 0 A_Die

Death:
TNT1 A 0 A_PlaySound("WandOfEmbersExplode_Alias")
WEMP CDEFG 3 Bright
Stop
}//States



Т.е. добавил bounce стейты и свой собственный счетчик через переменную
3 1
DOOMGABR
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 150 points
1140

Doom Rate: 1.87

Posts quality: +711
Ссылка на пост №362 Отправлено: 27.12.19 22:09:23
Вопрос по поводу ZDoom декалей. Возможно ли наложение Thing'a "Decal" с помощью какого-либо метода наложения, аля "умножение", "перекрытие". У меня есть декали с чёрным фоном просто. А метод наложения устраняет ненужный фон и иделально накладывается на текстуру
svl
Recruit
Next rank: Marine after 4 points
16

Doom Rate: 2

Posts quality: +1
Ссылка на пост №363 Отправлено: 29.12.19 09:27:14
Как doom определяет место назначения телепорта, если телепортирующая линия не имеет тэга?
N00b2015
- Sergeant Major -
Next rank: = Sergeant Major = after 64 points
536

Doom Rate: 2.15

Posts quality: +176
Ссылка на пост №364 Отправлено: 29.12.19 12:03:36
svl
Если тега "нет", то он нулевой. Поэтому будет телепорт на место некоторой teleport destination, стоящей в секторе с нулевым тегом. На место какой именно — не спрашивай, это зависит от порта. В классических, кажется, на ту, у которой номер thing наименьший, а в zdoom, кажется, наоборот.
1 1
svl
Recruit
Next rank: Marine after 4 points
16

Doom Rate: 2

Posts quality: +1
Ссылка на пост №365 Отправлено: 29.12.19 15:30:07
N00b2015 пишет:
будет телепорт на место некоторой teleport destination, стоящей в секторе с нулевым тегом

Не получается так, на одной карте происходит из 29 сектора в 28, на другой из 108 в 99. Про номер thing понял
N00b2015
- Sergeant Major -
Next rank: = Sergeant Major = after 64 points
536

Doom Rate: 2.15

Posts quality: +176
Ссылка на пост №366 Отправлено: 29.12.19 16:06:17
svl
Либо ты путаешь номер сектора с тегом (номера сектора уникальные, теги могут быть одинаковые у разных секторов), либо я чего-то не понимаю. В сектор с нулевым тегом, а не в нулевой сектор (кстати, они не с единицы случайно в GZDB?..).
1 1
svl
Recruit
Next rank: Marine after 4 points
16

Doom Rate: 2

Posts quality: +1
Ссылка на пост №367 Отправлено: 29.12.19 16:45:23
Да, напутал. Все ясно, а что не ясно, докурим :) Спасибо
N00b2015
- Sergeant Major -
Next rank: = Sergeant Major = after 64 points
536

Doom Rate: 2.15

Posts quality: +176
Ссылка на пост №368 Отправлено: 31.12.19 22:32:39
Как сделать на ZScript возможно проще и быстрее актор, подобный скуллтаговским спаунерам случайных вещей (такие точно были на третьей, что ли, их карте invasion, это та, которая переделана из Mt. Erebus; да, наверное, и вообще на всех)? Идея такова: на карте лежит какая-то вещь (патроны или какой-нибудь арморбонус), игрок её подбирает, через некоторое время на том же месте респаунится какая-то другая вещь. Но пока игрок не подберёт вещь, она респауниться не будет. В скуллтаге ещё вроде есть какие-то дополнительные ограничения в стиле "не более 5 подборов предмета на волну", но мне можно и без этого, лишь бы работало.
Я попробовал добавить RandomSpawner'у флажок +ALWAYSRESPAWN, но RandomSpawner, кажется, сразу удаляется после того, как отработал (то есть, выбрал актора и заспаунил). Поэтому напрямую так не получится; однако хотелось бы воспользоваться синтаксисом "DropItem <ActorName>[, probability[, amount]]", не копипастя весь код RandomSpawner из gzdoom.pk3 (синтаксис удобен и позволяет избавиться от кучи if-ов).
Всех с наступающим/наступившим!
1 1
theleo_ua
= Major =
Next rank: Lieutenant Colonel after 336 points
2954

Doom Rate: 1.84

Posts quality: +485
Ссылка на пост №369 Отправлено: 01.01.20 20:05:39
N00b2015 пишет:
игрок её подбирает, через некоторое время на том же месте респаунится какая-то другая вещь.


В ванильном Strife была такая опция:


With the RANDOM RESPAWN option
( -random from the commandline) items picked up will be randomly respawned.


(c) https://www.doomworld.com/files/file/5205-strife-v11-shareware/

унаследовали ли ее в GZDoom, я без понятия
3 1
N00b2015
- Sergeant Major -
Next rank: = Sergeant Major = after 64 points
536

Doom Rate: 2.15

Posts quality: +176
Ссылка на пост №370 Отправлено: 01.01.20 23:04:21
Нет, мне не совсем то нужно. -random — это же параметр к запуску экзешника. Он обрабатывается на низком уровне, и поэтому он вообще про все item-ы. Мне же хочется сделать однин класс с таким поведением (чтобы поведение остальных не менялось).
В любом случае, в zdoom он, судя по wiki, не реализован. Пойду лучше сам навешаю костылей :x
Edit: да, успешно перекостылил скопипастил ChooseSpawn() из кода RandomSpawner и поменял его так, чтобы он сохранял в спаунере указатель на заспауненную вещь. Потом он просто каждые n тиков проверяет, не забрана ли она.
1 1
YURA_111
UAC Sergeant Major
Next rank: UAC Sergeant Major after 78 points
682

Doom Rate: 1.98

Posts quality: +116
Ссылка на пост №371 Отправлено: 02.01.20 22:28:56
Народ, какая функция позволяет сделать следующее:
Заспавненный игроком дружественный монстр мог атаковать противника только в том случае, если игрок видит этого противника?

P.S. GZDOOM (последний) и декорейт онли
Герр Смертоносец
UAC Sergeant Major
Next rank: UAC Sergeant Major after 41 points
719

Doom Rate: 1.45

Posts quality: +502
Ссылка на пост №372 Отправлено: 03.01.20 15:39:15
YURA_111 пишет:
Заспавненный игроком дружественный монстр мог атаковать противника только в том случае, если игрок видит этого противника?

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

Рейтинг сообщения: +1, отметил(и): YURA_111
2
ZZYZX
= Commissar =
Next rank: - UAC Commissar - after 80 pointsМодератор форума
5720

Doom Rate: 1.71

Posts quality: +1316
Ссылка на пост №373 Отправлено: 03.01.20 15:46:08
YURA_111 пишет:
P.S. GZDOOM (последний) и декорейт онли

В чём смысл писать только на декоре под последний гздум? На кол. На зскрипте это решается тремя строчками.
2 2 1
YURA_111
UAC Sergeant Major
Next rank: UAC Sergeant Major after 78 points
682

Doom Rate: 1.98

Posts quality: +116
Ссылка на пост №374 Отправлено: 03.01.20 23:20:39
Герр Смертоносец
Спасибо! Честно говоря думал что просто упускаю что-то в функциях подобной A_JumpIfTargetInLos.

ZZYZX пишет:
В чём смысл писать только на декоре под последний гздум?


Мод очень большой, все монстры (их штук 300 или больше - я уже потерял счет) написаны на декоре у которых один парент. Переводить все на ЗСКРИПТ сейчас в планах нет (пока). Если можно оставить монстра на декоре, а его атаку проверять через ЗСКРИПТ - тогда я только рад, но понятия не имею как.
С другой стороны обновления принесли кучу исправлений и добавлений новых флагов и функций - иначе бы вообще не обновлял...
ZZYZX
= Commissar =
Next rank: - UAC Commissar - after 80 pointsМодератор форума
5720

Doom Rate: 1.71

Posts quality: +1316
Ссылка на пост №375 Отправлено: 03.01.20 23:52:19
YURA_111 пишет:
Если можно оставить монстра на декоре, а его атаку проверять через ЗСКРИПТ - тогда я только рад, но понятия не имею как.

Можно. Базу монстра делаешь на зскрипте, наследуешься от него в декоре и дальше пишешь код на декоре. Унаследовать монстра от декора вроде не получится, к сожалению.
Если у тебя все монстры откуда-то уже наследуются — то самого главного актора наследуешь от зскрипта. Таким образом добавляемая функция попадёт во всех акторов которые есть.

Рейтинг сообщения: +1, отметил(и): YURA_111
2 2 1
YURA_111
UAC Sergeant Major
Next rank: UAC Sergeant Major after 78 points
682

Doom Rate: 1.98

Posts quality: +116
Ссылка на пост №376 Отправлено: 05.01.20 12:01:06
ZZYZX пишет:
На зскрипте это решается тремя строчками.


Так а можно пожалуйста сам код?

Добавлено спустя 1 день 20 часов 33 минуты 58 секунд:

Функция A_PlaySound уже депрекейтыд - вместо нее теперь A_StartSound. Интересно сколько еще можно будет пользовать "безболезненно" функицю A_Playsound, пока ее окончательно не ёкнут...
DOOMGABR
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 150 points
1140

Doom Rate: 1.87

Posts quality: +711
Ссылка на пост №377 Отправлено: 13.01.20 18:38:35
Как через ACS управлять перемещением тхингов? Например, я хочу двигать по трём осям тхинги динамических источников света.
MyNameIs
- 1st Lieutenant -
Next rank: = 1st Lieutenant = after 102 points
1738

Doom Rate: 1.92

Posts quality: +704
Ссылка на пост №378 Отправлено: 13.01.20 19:45:26
а динлайты вроде нельзя, насколько я в курсе.
можно привязать динлайт к актору через GLDEFS, и его двигать

а двигать, ну, самый простой способ через setactorposition
Скрытый текст:

(тид,getactorX(тид)+число,getactorY(тид)+число,getactorZ(тид)+число);


еще можно с помощью ThrustThing/ThrustThingZ

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

можно еще на путь его погрузить actor mover'ом

Рейтинг сообщения: +1, отметил(и): DOOMGABR
1 1
DOOMGABR
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 150 points
1140

Doom Rate: 1.87

Posts quality: +711
Ссылка на пост №379 Отправлено: 13.01.20 21:04:44
Спасибо конечно за инфу, но у меня че то особо ниче не получилось. Суть в том, чтобы с лифтом синхронно двигались лайты, его освещающие; и акторы типа "эмбиент саунд". Вместе и синхронно, по команде ACS скрипта. Есть предложения?
N00b2015
- Sergeant Major -
Next rank: = Sergeant Major = after 64 points
536

Doom Rate: 2.15

Posts quality: +176
Ссылка на пост №380 Отправлено: 13.01.20 22:18:57
DOOMGABR
"Ничего не получилось" --- это как? Какие именно проблемы возникают? Или акторы вообще не движутся при работе скриптов?
Если проблема в отсутствии синхронизации, нужно подобрать скорости лифта и акторов; дело в том, что секторы движутся (по крайней мере, по вертикали) относительно "octic"-ов (частота 8 Гц), а акторы и ACS работают с обычными тиками (35 Гц). Так что если лифт движется со скоростью 16, то это будет 128 мапюнитов в секунду, что эквивалентно ThrustThingZ со скоростью ("силой"...) где-то на 3,66 каждый тик. Это нехорошо: даже если ACS позволит здесь задать дробную скорость, она всё равно получится неточная. Аналогично с SetActorVelocity (есть и такая функция тоже).
Поэтому решение другое, нужно использовать SetActorPosition(tid, GetActorX(tid), GetActorY(tid), GetSectorFloorZ(liftsectortag) + C); (где C --- изначальный оффсет динлайта или саунда) в бесконечном цикле с Delay(1) (например, в отдельном скрипте, запущенном хоть с начала уровня). Этим ты заодно избавишься от необходимости мучительно придумывать багфиксы на случай, если кто-нибудь обратит внимание на уезжающие по текстуре динлайты, если платформа лифта застряла :-)
1 1
Страница 19 из 28Перейти наверх Пред.  1, 2, 3 ... 18, 19, 20 ... 26, 27, 28  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2