Автор |
Сообщение |
Reiko = Lance Corporal =
| 210 |
|
Отправлено: 13.08.07 23:47:06 |
|
|
dukenator
Жаль...
===========
У меня проблема - пытаюсь я сделать монстра наподобие iceguy из hexen, сделал почти все статы кроме смерти. Как мне сделать, чтобы когда монстр умерал - разлетался на куски как iceguy? |
|
|
| |
Guest Chief Petty Officer
| 878 |
|
Отправлено: 14.08.07 00:10:27 |
|
|
Reiko : | У меня проблема - пытаюсь я сделать монстра наподобие iceguy из hexen, сделал почти все статы кроме смерти. Как мне сделать, чтобы когда монстр умерал - разлетался на куски как iceguy? |
Если смерть не спрайтовая (а раз спрашиваешь, значит нет), то в death-стейте нужно прописать испускание соответствующих прожектайлов с малой скоростью и, возможно, для плавности с lowgravity. |
|
|
| |
Shadowman - Captain -
| 1482 |
|
Отправлено: 14.08.07 13:53:34 |
|
|
Вопрос такой - как имитировать поведение монстра наподобие амфибии из Хексена?
Вроде как он подбегает, выныривает и кусает, и пока игрок стоит вплотную, оно кусается (то есть цикл после melee attack проверяет - есть ли игрок рядом, если есть, то кусать дальше), как только игрок отошел - оно снова куда-то заныривает и далее ходит ищет игрока уже ТАМ.
Подозреваю, что мне нужен экшен наподобие A_CPosRefire
Но для ближней атаки такого нету и ничего подходящего в вики сыскать не удалось. Использование же обычных экшенов делает поведение монстра крайне некрасивым (то есть он постоянно будет выпрыгивать, когда кусать, а не 1 раз, как задумывалось).
Вот такие пироги. |
|
|
| |
Guest Chief Petty Officer
| 878 |
|
Отправлено: 14.08.07 13:58:31 |
|
|
Shadowman : | амфибии из Хексена? |
Если это зеленая ящерка, выныривающая перед игроком, то она была сделана в Zdoom community project, глянь там. А технически, думается, оно никуда не ныряет и ТАМ не ищет, просто для определенных фреймов спрайт прозрачный. Ведь когда оно перед тобой, пусть и ТАМ, ты через него не перешагнешь, и в самом Хексене вроде как так и было. |
|
|
| |
Shadowman - Captain -
| 1482 |
|
Отправлено: 14.08.07 14:09:01 |
|
|
Guest : | Если это зеленая ящерка, выныривающая перед игроком, то она была сделана в Zdoom community project, глянь там. |
Глянул. Декорэйт вообще без строчек чистое наследование свойств от монстра хексена без попытки вникнуть в его внутреннее устройство.
Если б я делал точно такую же ящерицу, я бы так и поступил, но у меня задумка иная была, как тут через наследование быть, не знаю... |
|
|
| |
dukenator = Corporal =
| 169 |
|
Отправлено: 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 - Captain -
| 1482 |
|
Отправлено: 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 = Corporal =
| 169 |
|
Отправлено: 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 - Captain -
| 1482 |
|
Отправлено: 15.08.07 14:56:29 |
|
|
dukenator
Ок, спс. Попробую прикрутить |
|
|
| |