ACS_NamedExecuteWithResult < а это пиши как CallACS, так ведь проще(разницы по моему никакой нет..)
Читаешь мысли, так как буквально только что я пробежался автозаменой по всем моим модам, заменяя ACS_NamedExecuteWithResult на более лаконичный CallACS
Добавлено спустя 22 минуты 3 секунды:
alekv:
ACS_NamedExecuteWithResult < а это пиши как CallACS, так ведь проще(разницы по моему никакой нет..)
Есть аналогичный алиас для вызова ACS_NamedExecuteWithResult в качестве action ?
Например такая запись AAAA A ACS_NamedExecuteWithResult("blablabla") при замене на AAAA A CallACS("blablabla")
подскажите плз, как сделать так чтобы декоративный актор блокировал ТОЛЬКО игрока, но не прожектайлов?
Так вроде ж это достигается комбинацией проперти solid и ProjectilePassHeight
У меня вопрос ко всем. Цель - свеча, источник света. В вики сказано что-то вроде: States { Spawn: torc abcd 4 Bright light("lightname") // В ГЗдуме есть дефолтные dymamiclight, которые можно прописать здесь? Списка или хотя бы отдельных наименований нигде не нашел. Loop } } Немного не понимаю, на вики сказано, чтобы включить освещение, нужен lights.pk3. У меня в директории никакого lights.pk3 нет, но на стандартных декоративных акторах в разделе light sources освещение присутствует.
Всем привет. А у меня другой вопрос созрел. Как зделать так, чтобы игрок смог "ездить" на акторе? Создал актор в виде "бочки". Кнопкой спавню бочку и надо чтобы игрок на неё запрыгнул и "прокатился".) Но всё выходит так, что когда игрок на бочку прыгает, она останавливается. Порт Gzdoom версии 2.1.666 ^-^
1) Есть ли способ заставить гоззу 2.0.05 (или выше) загружать конкретные pk3 (ну или хотя бы вадники на худой конец) только если соответствующая CVAR равна единице например ? Иными словами, хочу сделать свое сабменю через menudef, в котором будет возможность выбора подгружаемых ресурсов. Пока кроме GAMEINFO ничего не нашел на вики, но gameinfo не позволяет конструкций вида "if CVAR_blablabla == 1 then load blabla.pk3", он либо всегда лоадит либо всегда не лоадит.
Уточню, что меня вполне устраивает тот факт, что после каждого изменения опции в этом меню надо будет рестартить гоззу и будет риск неработоспособности сейвов, мне главное чтобы работало хотя бы так.
2) Есть ли способ заставить конкретно взятую текстуру или патч отображать разные PNG файлы в зависимости от CVAR?
Добавлено спустя 46 минут 4 секунды:
theleo_ua:
2) Есть ли способ заставить конкретно взятую текстуру или патч отображать разные PNG файлы в зависимости от CVAR?
Для текстур способ найден http://zdoom.org/wiki/ReplaceTextures , но он не работает для патчей. Первый вопрос с "подгрузкой паков по условию" все еще актуален
sanek_47 Через ACS-команды ThrustThing и ThrustThingZ. (См. zdoom wiki.) Алгоритм выглядит так: 1. Монстр переходит на melee-стейт (либо запускает проверку на дистанцию/иные условия). 2. Оттуда запускается скрипт. 3. Скрипт начинается с команды SetActivatorToTarget(0). 4. Дальше идут Thrust-команды, где в качестве TID прописан дефолтный 0. Таким образом, скрипт запускается как бы от имени цели. В случае с быком из serious sam нам важно направление морды самого быка. Поэтому понадобится сначала сменить TID быка на рандомный (команда UniqueTID), сохранить его в переменную, определить его угол и уже по этому углу кидать игрока.
Ну а если не трахаться с высоким ACS-программированием, то можно тупо заюзать команду A_RadiusThrust. Тогда монстр будет тупо расшвыривать всё вокруг себя в заданном радиусе с заданной силой, как ракета кибердемона (но не нанося урон).
Всем привет. А у меня другой вопрос созрел. Как зделать так, чтобы игрок смог "ездить" на акторе? Создал актор в виде "бочки". Кнопкой спавню бочку и надо чтобы игрок на неё запрыгнул и "прокатился".) Но всё выходит так, что когда игрок на бочку прыгает, она останавливается. Порт Gzdoom версии 2.1.666 ^-^
Привет, довольно сложный вопрос, способов несколько, объяснить не смогу(т.к. тестить надо), но могу дать ссылки на полезные функции для такой фичи: Warp (acs) A_Warp(Decorate аналог) SetActorPosition А вот способы реализации "актора катальщика" не так просты для новичка в acs..
alekv,благодарю. А примерчик не подкинешь? Просто сейчас в данный момент, выходит что бочка сама по "конвееру" ездит, а когда на неё прыгает игрок - она тормозится, хотя не должна так делать.
П.С Функция Warp здесь не катит. Всё должно быть плавно.)
Код бочки:
ACTOR NewBarrel : ExplosiveBarrel replaces ExplosiveBarrel 305 { spawnid 253
+PUSHABLE Health 20 States { Spawn: BAR1 AB 6 Loop Death: BEXP A 5 BRIGHT BEXP B 5 BRIGHT A_Scream BEXP C 5 BRIGHT Goto Death2 Death2: BEXP C 0 A_SpawnItemEx("DropLaser",0,0,20,random(0,8),random(0,4),random(3,9),random(180,-180),0,0) BEXP C 0 A_Jump(160,"Death2") BEXP C 0 A_SpawnItemEx("DropLaser",0,0,20,random(0,8),random(0,4),random(3,9),random(180,-180),0,0) BEXP C 0 A_SpawnItemEx("DropLaser",0,0,20,random(0,8),random(0,4),random(3,9),random(180,-180),0,0) BEXP C 0 A_SpawnItemEx("DropLaser",0,0,20,random(0,8),random(0,4),random(3,9),random(180,-180),0,0) BEXP C 0 A_SpawnItemEx("DropLaser",0,0,20,random(0,8),random(0,4),random(3,9),random(180,-180),0,0) BEXP C 0 A_SpawnItemEx("DropLaser",0,0,20,random(0,8),random(0,4),random(3,9),random(180,-180),0,0) BEXP C 0 A_SpawnItemEx("DropLaser",0,0,20,random(0,8),random(0,4),random(3,9),random(180,-180),0,0) BEXP C 0 A_SpawnItemEx("DropLaser",0,0,20,random(0,8),random(0,4),random(3,9),random(180,-180),0,0) BEXP C 0 A_SpawnItemEx("DropLaser",0,0,20,random(0,8),random(0,4),random(3,9),random(180,-180),0,0) BEXP D 1 BRIGHT A_Explode BEXP E 10 BRIGHT BEXP E 1050 BRIGHT A_BarrelDestroy BEXP E 5 A_Respawn Wait } }
Свой написать не смогу т.к. я не совсем осилил такую фичу.. Но вот ссылку дать могу где есть пример(во всяком случае что-то подобное) Я в начале не понял что конкретно надо.. Тебе надо что бы персонаж запрыгнул на бочку и та покатилась и персонаж верхом на ней? Вот gothix мод в котором есть код платформы (где взять чисто код не знаю, но думаю что на здум форуме должен быть) Ссылка на мод конечно же просрочилась =( у меня он есть, но выложить смогу примерно через пару часов.
Из такой платформы что в то моде(если разберешься в коде) можно будет сделать актора бочку и когда игрок на нее встанет она будет двигаться и двигать игрока стоящего на ней(по моему получится более менее плавно, это лучшая платформа что я видел)
[ACS / DECORATE] GFD's Moving Platform Library вот тема платформы. Вад Gothix будет как пример как ее связывать со своим модом.. И как ты не смог найти там платформы, если там 1 папка acs и в ней лежит сорс код платформы, декорейт код лежит прямо в корне папки в низу 3 файла, 2 декорейта и 1 лоадацс.
Там же в теме кто-то еще выложил мод другой платформы, ее тоже посмотри, может она больше подойдет(там кода в разы меньше):movingplatform-test.pk3
Добавлено спустя 19 минут 25 секунд:
rewable:
Здравствуйте. Можно ли как-нибудь сделать, чтобы оружие использовало в качестве боеприпасов выносливость (stamina)?
Можно, но надо подробнее объяснить под какой порт, под какой мод.. в оригинальном Doom выносливости нет, а в strife stamina это:
Скрытый текст:
Stamina is a player statistics in Strife, which increases the maximum Health value and affects the damage computation in A_JabDagger. It starts at 0 and maxes at 100. Stamina is increased by UpgradeStamina items which are granted at various points during the game. It can be set for custom actors with the Stamina property, accessed from ACS with APROP_Stamina, and used in DECORATE expressions. The alternate HUD will show the player's current accuracy and stamina if hud_showstats is true.
Так что если в моде есть выносливость, хорошо бы кусок кода выложить тут, тогда думаю помогут.
Добавлено спустя 17 минут 2 секунды:
navy_seals:
У меня вопрос ко всем. Цель - свеча, источник света. В вики сказано что-то вроде: States { Spawn: torc abcd 4 Bright light("lightname") // В ГЗдуме есть дефолтные dymamiclight, которые можно прописать здесь? Списка или хотя бы отдельных наименований нигде не нашел. Loop } } Немного не понимаю, на вики сказано, чтобы включить освещение, нужен lights.pk3. У меня в директории никакого lights.pk3 нет, но на стандартных декоративных акторах в разделе light sources освещение присутствует.
Т.е. тебе надо что бы просто поставил thing на карте и в игре от него исходит свет? torc abcd 4 Bright light("lightname") // Тут если не ошибаюсь прописывается любой свет который у тебя есть(да ты сам можешь создавать источники света со своими параметрами) создается он в лампе GLDEFS Вот тебе не большой пример:
PulseLight SmallYellow //тут указываем тип источника и его имя (типы читаем в вики) Pulse Light пульсирующий свет, там есть еще flickerlight и flickerlight2 для свечи наверное они больше подойдут.
{
Color 1.0 1.0 0.0 //задаем цвет в формате RGB, где R это красный (значение от 0.1 до 1.0) G зеленый B синий, смешивая получишь нужный цвет, GZDB поможет.. там есть в настройках thinga палитра, там можно подобрать цвет и скопировать цифры сюда
Size 32 //размер\ радиус освещения (хз в чем.. наверное в мап пикселях)
SecondarySize 35 //увеличенное освещение.. в случае с PulseLight радиус освещения будет как бы расходиться от 32 до 35
Interval 1.5 //с каким интервалом будет мигать чтоли...
Offset 0 0 0 //координаты смещения источника свет, т.е. его центр к примеру thing, этим offset можно выставить цвет к примеру чуть левее от центра thing..
}
Object PartVerticalLong //аттачим свет к объекту актору, после object пишем имя actor который должен светиться
{
Frame PAR2 //кадр\кадры в декорейте на котором будет свет(почитай в вики подробнее про кадры.. я уже забыл про них)
{Light SmallYellow} //тип света который создали выше
}
После такой манипуляции актор с именем PartVerticalLong будет светиться когда у него будет активен кадр PAR2 A 1 в таком случае light("lightname") прописывать не надо. Это прописывается по моему если в GLDefs не прописать Object..
Не особо понял на здум вики про species. Насмотревшись кодов, видел что это суется и игроку, и монстрам, и снарядам. А что бы просто объединить монстров в одну группу, что бы они не дрались между собой, достаточно им в пропертях указать это? Или в снаряды тоже? И вообще, можно поподробнее про species, с чем это едят то
Моддинг. Порт: GZDoom. Опционально ZDoom и Zandronum.
Суть: Как сделать два взаимосвязанных кастомных BossEye и BossTarget? Можно создать свой BossEye, в котором будет свой набор выпадающих монстров. С этим все ясно. Существует BossTarget, это куда кубы падают.
Вот сделал я SuperBossEye - из него может вылезти Кибердемон и Спайдермастермайнд. Но я не хочу, чтобы они появились в любых точках. Нужно чисто в определенных. На ZDoomwiki и Думворлде ничего нет про "связывание" в одну пару кастомного BossEye и BossTarget. А значит, SuperBossEye будет кидать кубы в обычные Таргеты, а этого не надо.
Маппинг не предлагать, тут Decorate-only. Заранее благодарен.
Fantom, а если кибердемону и мастермайнду в декорейте кинуть на стадии spawn проверку на координаты, и если они на "некорректном bosstarget", то "спавнить обычного монстра" ? Или ты хочешь, чтобы кубы стрелялись строго в определенные точки? В таком случае я думаю надо кубы делать проджектайлами и переписать BossEye чтобы он стрелял твоими кастомными проджектайлами с помощью a_custommissile
добавляешь через var int 2 одномерных массива user_angle и user_pitch, заполняешь их (на стадии spawn) необходимыми тебе angle и pitch (ну чтобы стреляло строго по тем точкам, что тебе надо) и перед выстрелом меняешь переменную user_random на рандомное значение, после чего вызываешь a_custommissile с параметрами user_angle[user_random] и user_pitch[user_random]
Но вообще у меня какая проблема. Решил сделать условно простенький мод, где все монстры заменены на BossTarget'ы, а все оружие заменено на BossEye.
Уже на стадии проверки все стало загибаться: 1) Когда BossTarget'ы были чисто заменой монстров, то BossEye не мог пулять кубы (он считал, что Таргетов нет). Тогда я переделал спавн систему, и сделал выпадение Таргета через RandomSpawner. Заработало, но... 2) Теперь, когда "Джон Ромеро" кидает кубы на места, где раньше стояли противники, из кубов никто не выпадает, только анимация огня и звуки.
Копаю битый час эту инфу, уже всякое вытворял с DropItem и все такое, но не пашет. Да, обычно Eye и Target посредством маппинга ставят, но я хочу, чтобы можно было с такой жутью можно было играть в любой pwad и iwad, без редактирований карт в них.
UPD: Хотя, в таком случае, прибегну к инфе выше. Сделаю так, чтобы спавншот ронял акторов самостоятельно, а eye лишь запускал спавншоты. Пока не уверен, что сработает, но надо проверять, а не гадать.
UPD: Не сработало. Даже с вариациями этой идеи. Я не понимаю, почему. Неучтенная багофича движка?