Автор |
Сообщение |
Reiko = Lance Corporal =
| 217 |
|
Отправлено: 13.08.07 23:47:06 |
|
|
dukenator
Жаль...
===========
У меня проблема - пытаюсь я сделать монстра наподобие iceguy из hexen, сделал почти все статы кроме смерти. Как мне сделать, чтобы когда монстр умерал - разлетался на куски как iceguy? |
|
|
| |
Guest = Warrant Officer =
| 1028 |
|
Отправлено: 14.08.07 00:10:27 |
|
|
Reiko : | У меня проблема - пытаюсь я сделать монстра наподобие iceguy из hexen, сделал почти все статы кроме смерти. Как мне сделать, чтобы когда монстр умерал - разлетался на куски как iceguy? |
Если смерть не спрайтовая (а раз спрашиваешь, значит нет), то в death-стейте нужно прописать испускание соответствующих прожектайлов с малой скоростью и, возможно, для плавности с lowgravity. |
|
|
| |
Shadowman Lieutenant Colonel
| 1985 |
|
Отправлено: 14.08.07 13:53:34 |
|
|
Вопрос такой - как имитировать поведение монстра наподобие амфибии из Хексена?
Вроде как он подбегает, выныривает и кусает, и пока игрок стоит вплотную, оно кусается (то есть цикл после melee attack проверяет - есть ли игрок рядом, если есть, то кусать дальше), как только игрок отошел - оно снова куда-то заныривает и далее ходит ищет игрока уже ТАМ.
Подозреваю, что мне нужен экшен наподобие A_CPosRefire
Но для ближней атаки такого нету и ничего подходящего в вики сыскать не удалось. Использование же обычных экшенов делает поведение монстра крайне некрасивым (то есть он постоянно будет выпрыгивать, когда кусать, а не 1 раз, как задумывалось).
Вот такие пироги. |
|
|
| |
Guest = Warrant Officer =
| 1028 |
|
Отправлено: 14.08.07 13:58:31 |
|
|
Shadowman : | амфибии из Хексена? |
Если это зеленая ящерка, выныривающая перед игроком, то она была сделана в Zdoom community project, глянь там. А технически, думается, оно никуда не ныряет и ТАМ не ищет, просто для определенных фреймов спрайт прозрачный. Ведь когда оно перед тобой, пусть и ТАМ, ты через него не перешагнешь, и в самом Хексене вроде как так и было. |
|
|
| |
Shadowman Lieutenant Colonel
| 1985 |
|
Отправлено: 14.08.07 14:09:01 |
|
|
Guest : | Если это зеленая ящерка, выныривающая перед игроком, то она была сделана в Zdoom community project, глянь там. |
Глянул. Декорэйт вообще без строчек чистое наследование свойств от монстра хексена без попытки вникнуть в его внутреннее устройство.
Если б я делал точно такую же ящерицу, я бы так и поступил, но у меня задумка иная была, как тут через наследование быть, не знаю... |
|
|
| |
dukenator UAC Sergeant Major
| 704 |
|
Отправлено: 15.08.07 04:46:31 |
|
|
Shadowman
Элементарно.
Это примерно вот так:
States
{
Spawn:
ZVER AB 10
Loop
See:
ZVER ABCD 3 A_Chase
Loop
Missile:
ZVER H 0 A_JumpIfInventory("Hidden",1,30) \\а если зверок уже занырнул?
ZVER HIJ 3 // зверек ныряет
ZVER A 0 A_GiveInventory("Hidden",1)
ZVER A 0 A_HideThing \\все, зверька не видно
ZVER A 0 A_ChangeFlag("NOBLOCKMAP",1) \\он занырнул, верно? а потому пуля его теперь не достанет
ZVER AAAAAAAAAAAAAAAAA 3 A_Chase \\он плывет под водой
ZVER A 0 A_TakeInventory("Hidden",1)
ZVER A 0 A_UnHideThing
ZVER A 0 A_ChangeFlag("NOBLOCKMAP",0)
ZVER JIH 3 \\ он вынырнул
Goto See
Goto See+7 \\если зверек войдет в стат миссиле уже скрытым, то он не погрузиться, а продолжит плыть
Melee:
ZVER E 0 A_JumpIfInventory("Hidden",1,4) \\если зверок к был под водой, то он вынырнет
ZVER EF 5 A_FaceTarget
ZVER G 5 A_SargAttack
Goto See
ZVER E 0 A_UnHideThing
ZVER E 0 A_TakeInventory("Hidden",1)
ZVER A 0 A_ChangeFlag("NOBLOCKMAP",0)
ZVER JIH 3
ZVER EF 5 A_FaceTarget
ZVER G 5 A_SargAttack
Goto See
Death:
ZVER K 3 A_Scream
ZVER L 3 A_Fall
ZVER M 3 A_NoBlocking
ZVER N -1
Stop
}
}
Actor Hidden : CustomInventory
{
Inventory.Amount 1
Inventory.MaxAmount 1
} |
|
|
| |
Shadowman Lieutenant Colonel
| 1985 |
|
Отправлено: 15.08.07 10:36:32 |
|
|
dukenator : | ZVER E 0 A_JumpIfInventory("Hidden",1,4) \\если зверок к был под водой, то он вынырнет
ZVER EF 5 A_FaceTarget
ZVER G 5 A_SargAttack
Goto See |
В целом идею понял, я и забыл, что у монстров тоже инвентарь есть. А вот насчет See ты что-то напутал: у тебя ж в See всего 4 стата, потому экшен Goto See+7 неясно куда выводит.
Потом статы See - это что? по идее это должны быть поиск игрока под водой, то есть в See присутствует ныряние изначально. Потому если после атаки отправлять на See - тоже надо прописывать стэйты ныряния и т.п.
ЗЫ. Почему слово "команда" автозаменяется на community? |
|
|
| |
dukenator UAC Sergeant Major
| 704 |
|
Отправлено: 15.08.07 14:01:50 |
|
|
Shadowman
Извини, ошибочка вышла.
Вот так:
Spawn:
ZVER AB 10
Loop
See:
ZVER ABCD 3 A_Chase
Loop
Missile:
ZVER H 0 A_JumpIfInventory("Hidden",1,30) \\а если зверок уже занырнул?
ZVER HIJ 3 // зверек ныряет
ZVER A 0 A_GiveInventory("Hidden",1)
ZVER A 0 A_HideThing \\все, зверька не видно
ZVER A 0 A_ChangeFlag("NOBLOCKMAP",1) \\он занырнул, верно? а потому пуля его теперь не достанет
ZVER AAAAAAAAAAAAAAAAA 3 A_Chase \\он плывет под водой
ZVER A 0 A_TakeInventory("Hidden",1)
ZVER A 0 A_UnHideThing
ZVER A 0 A_ChangeFlag("NOBLOCKMAP",0)
ZVER JIH 3 \\ он вынырнул
Goto See
Goto Missile+7 \\если зверек войдет в стат миссиле уже скрытым, то он не погрузиться, а продолжит плыть
Melee:
ZVER E 0 A_JumpIfInventory("Hidden",1,4) \\если зверок к был под водой, то он вынырнет
ZVER EF 5 A_FaceTarget
ZVER G 5 A_SargAttack
Goto Missile
ZVER E 0 A_UnHideThing
ZVER E 0 A_TakeInventory("Hidden",1)
ZVER A 0 A_ChangeFlag("NOBLOCKMAP",0)
ZVER JIH 3
ZVER EF 5 A_FaceTarget
ZVER G 5 A_SargAttack
Goto Missile
Death:
ZVER K 3 A_Scream
ZVER L 3 A_Fall
ZVER M 3 A_NoBlocking
ZVER N -1
Stop
}
} |
|
|
| |
Shadowman Lieutenant Colonel
| 1985 |
|
Отправлено: 15.08.07 14:56:29 |
|
|
dukenator
Ок, спс. Попробую прикрутить |
|
|
| |
Reiko = Lance Corporal =
| 217 |
|
Отправлено: 11.09.07 15:02:49 |
|
|
хелп, А как делать колонну которая при виде игрока стреляет плазмой?(и когда игрок исчезает из поля зрения колонны она перестает стрелять) |
|
|
| |
Falcor - Sergeant Major -
| 577 |
|
Отправлено: 11.09.07 15:09:37 |
|
|
Обычный монстр с нулевой скоростью передвижения. |
|
|
| |
Eternal Lieutenant Colonel
| 1936 |
|
Отправлено: 11.09.07 15:10:17 |
|
|
Reiko : | А как делать колонну которая при виде игрока стреляет плазмой? |
Турельку хочешь сделать?
Ну как... делаешь колонну монстром без скорости, и всё. Лучше вот скажи как сделать чтобы оно всегда стреляло? Видит игрока, или нет. Просто перманентно...
без перерыва. |
|
|
| |
entryway - Warrant Officer -
| 965 |
|
Отправлено: 11.09.07 15:23:57 |
|
|
dukenator : | ZVER AAAAAAAAAAAAAAAAA |
это декорейт так смешно выглядит? |
|
|
| |
Reiko = Lance Corporal =
| 217 |
|
Отправлено: 11.09.07 15:38:21 |
|
|
Eternal
вот помудохался и написал вот
actor tower
{
obituary "%o was perforated by a turrel."
health 1000
radius 16
height 60
mass 10000
speed 0
painchance 170
bloodcolor grey
MONSTER
+FLOORCLIP
states
{
Spawn:
TLP2 ABCD 10 A_Look
loop
See:
TLP2 AABBCCDD 3 A_Chase
loop
Missile:
TLP2 A 10 A_FaceTarget
TLP2 A 4 bright A_CustomMissile("plasmaball",50,0,0,0)
TLP2 A 1 A_CPosRefire
goto Missile+1
Pain:
TLP2 A 3
TLP2 A 3 A_Pain
goto spawn
Death:
TLP2 A 1
TLP2 B 1 A_Scream
TLP2 C 5
TLP2 D 5 A_Playsound("baby/death")
TLP2 A -1
stop
}
}
| |
|
|
| |
Eternal Lieutenant Colonel
| 1936 |
|
Отправлено: 11.09.07 16:06:08 |
|
|
Reiko
Ну и я о том же, простенько и со вкусом Токо спрайтов смерти нужно...бы.
А теперь попробуй сделать так, чтобы оно палило (куда-то) просто так, без игрока... |
|
|
| |
Midnighter Marine
| 31 |
|
Отправлено: 11.09.07 16:18:48 |
|
|
А возможен на базе непрерывно стреляющей турельки портал для монстров? Хочется добавить подобное. |
|
|
| |
nprotect = 1st Lieutenant =
| 1239 |
|
Отправлено: 11.09.07 16:37:31 |
|
|
Eternal : | А теперь попробуй сделать так, чтобы оно палило (куда-то) просто так, без игрока... |
а нельзя разве скриптом? ну что-нибудь типа Spawn_Projectile, я просто не помню синтаксиса |
|
|
| |
Eternal Lieutenant Colonel
| 1936 |
|
Отправлено: 11.09.07 16:55:37 |
|
|
nprotect
Можно, только неизвестно будет ли это в здум-ин-дум работать, может будет, а может нет, нужно же через декорэйт мутить. В гозоформате можно конечно же... |
|
|
| |
nprotect = 1st Lieutenant =
| 1239 |
|
Отправлено: 11.09.07 17:32:17 |
|
|
Eternal
не, зачем decorate. просто стационарный скрипт, open к примеру. или просто при пересечении линии. а потом вызывать его через определенный промежуток, delay(xx) и restart |
|
|
| |
Eternal Lieutenant Colonel
| 1936 |
|
Отправлено: 11.09.07 17:35:44 |
|
|
nprotect
Дык я ж про формат Zdoom-in-doom. Какой open...
Вот какие скрипты декорейт понимает? Какие-то ведь понимает, стало быть они будут работать и не в хексен формате? |
|
|
| |
nprotect = 1st Lieutenant =
| 1239 |
|
Отправлено: 11.09.07 18:25:05 |
|
|
Eternal : | Дык я ж про формат Zdoom-in-doom. Какой open... Вот какие скрипты декорейт понимает? Какие-то ведь понимает, стало быть они будут работать и не в хексен формате? |
а, это я дурак, извиняюсь, проглядел. decorate понимает только вызов внешнего скрипта, т.е. сам скрипт должен быть прописан в SCRIPTS, а zdoom-in-doom просто не даст создать его |
|
|
| |
dukenator UAC Sergeant Major
| 704 |
|
Отправлено: 12.09.07 01:18:30 |
|
|
Midnighter
То есть портал, который вызывал бы уродцев, один за другим?
Eternal : | Вот какие скрипты декорейт понимает? |
Он понимает ACS-скрипты, забитые в wad-файл. |
|
|
| |
Eternal Lieutenant Colonel
| 1936 |
|
Отправлено: 12.09.07 02:00:51 |
|
|
dukenator : | Он понимает ACS-скрипты, забитые в wad-файл. |
Открыл...америку... Это и так понятно... Ладно ещё раз. Формат doom-in-doom понимает декорэйт, но не понимает хексен скрипты, декорэйт понимает скрипты в том случае если формат вадника zdoom-in-hexen.
Теперь вопрос:
Как сделать постоянно бесцельно стреляющего монстра (факел например) используя только декорэйт? Ну то есть без а_чейза.
Надеюсь теперь по полочкам всё? |
|
|
| |
Guest = Warrant Officer =
| 1028 |
|
Отправлено: 12.09.07 02:58:21 |
|
|
dukenator : | Он понимает ACS-скрипты, забитые в wad-файл. |
Скрипты из одной инструкции можно писать прямо в Декорейт безо всяких зашиваний.
EDIT:
Eternal : | Как сделать постоянно бесцельно стреляющего монстра (факел например) используя только декорэйт? Ну то есть без а_чейза. |
Делаешь простой неодушевленный предмет, в SPAWN-стейт которого зашиваешь пуск прожектайлов нужного типа в фиксированном направлении и будет тебе счастье. |
|
|
| |
Eternal Lieutenant Colonel
| 1936 |
|
Отправлено: 12.09.07 06:08:58 |
|
|
Guest : | и будет тебе счастье. |
Точно, я прям утону весь в щасте аж. |
|
|
| |
Guest = Warrant Officer =
| 1028 |
|
Отправлено: 12.09.07 10:14:32 |
|
|
Eternal : | Точно, я прям утону весь в щасте аж. |
Ну как же без этого, так всегда бывает, когда получается |
|
|
| |
dukenator UAC Sergeant Major
| 704 |
|
Отправлено: 12.09.07 10:34:42 |
|
|
Guest : | фиксированном направлении и будет тебе счастье. |
А как?
Там ведь направление задается относительно позиции игрока! |
|
|
| |
Guest = Warrant Officer =
| 1028 |
|
Отправлено: 12.09.07 11:03:31 |
|
|
dukenator : | Там ведь направление задается относительно позиции игрока! |
Это кто тебе сказал? Посмотри, как в ТА сделан снаряд ледяной пушки - при взрыве он испускает сферическую волну прожектайлов и игрок там нипричем. |
|
|
| |
dukenator UAC Sergeant Major
| 704 |
|
Отправлено: 12.09.07 11:07:56 |
|
|
Guest
Сферическую волна делается при помощи отклонений по горизонтали и вертикали от точки 0 а точка 0 это у нас
что?
Игрок! |
|
|
| |
Shadowman Lieutenant Colonel
| 1985 |
|
Отправлено: 12.09.07 11:13:17 |
|
|
dukenator
А разве нельзя в spawn-стат прописать атаку вроде A_CustomMissile и в параметрах указать углы отклонения снарядов (от позиции монстра - то есть от того, куда он "смотрит") Получишь круговую атаку если правильно углы записать. |
|
|
| |