Автор | Сообщение |
Reiko = Master Corporal =
 | 254 |
 Doom Rate: 1.73
|
Отправлено: 13.08.07 23:47:06 | | | dukenator
Жаль...
===========
У меня проблема - пытаюсь я сделать монстра наподобие iceguy из hexen, сделал почти все статы кроме смерти. Как мне сделать, чтобы когда монстр умерал - разлетался на куски как iceguy? | |
|
| |
Guest - 2nd Lieutenant -
 | 1356 |
 Doom Rate: 2.77
|
Отправлено: 14.08.07 00:10:27 | | | Reiko : | У меня проблема - пытаюсь я сделать монстра наподобие iceguy из hexen, сделал почти все статы кроме смерти. Как мне сделать, чтобы когда монстр умерал - разлетался на куски как iceguy? |
Если смерть не спрайтовая (а раз спрашиваешь, значит нет), то в death-стейте нужно прописать испускание соответствующих прожектайлов с малой скоростью и, возможно, для плавности с lowgravity. | |
|
3 |
1 |
 |
|
| |
Shadowman = UAC Commissar =
 | 6603 |
Doom Rate: 2.46
|
Отправлено: 14.08.07 13:53:34 | | | Вопрос такой - как имитировать поведение монстра наподобие амфибии из Хексена?
Вроде как он подбегает, выныривает и кусает, и пока игрок стоит вплотную, оно кусается (то есть цикл после melee attack проверяет - есть ли игрок рядом, если есть, то кусать дальше), как только игрок отошел - оно снова куда-то заныривает и далее ходит ищет игрока уже ТАМ.
Подозреваю, что мне нужен экшен наподобие A_CPosRefire
Но для ближней атаки такого нету и ничего подходящего в вики сыскать не удалось. Использование же обычных экшенов делает поведение монстра крайне некрасивым (то есть он постоянно будет выпрыгивать, когда кусать, а не 1 раз, как задумывалось).
Вот такие пироги. | |
|
1 |
6 |
2 |
 |
|
| |
Guest - 2nd Lieutenant -
 | 1356 |
 Doom Rate: 2.77
|
Отправлено: 14.08.07 13:58:31 | | | Shadowman : | амфибии из Хексена? |
Если это зеленая ящерка, выныривающая перед игроком, то она была сделана в Zdoom community project, глянь там. А технически, думается, оно никуда не ныряет и ТАМ не ищет, просто для определенных фреймов спрайт прозрачный. Ведь когда оно перед тобой, пусть и ТАМ, ты через него не перешагнешь, и в самом Хексене вроде как так и было. | |
|
3 |
1 |
 |
|
| |
Shadowman = UAC Commissar =
 | 6603 |
Doom Rate: 2.46
|
Отправлено: 14.08.07 14:09:01 | | | Guest : | Если это зеленая ящерка, выныривающая перед игроком, то она была сделана в Zdoom community project, глянь там. |
Глянул. Декорэйт вообще без строчек чистое наследование свойств от монстра хексена без попытки вникнуть в его внутреннее устройство.
Если б я делал точно такую же ящерицу, я бы так и поступил, но у меня задумка иная была, как тут через наследование быть, не знаю... | |
|
1 |
6 |
2 |
 |
|
| |
dukenator UAC Sergeant Major
 | 726 |
 Doom Rate: 2.68
|
Отправлено: 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 = UAC Commissar =
 | 6603 |
Doom Rate: 2.46
|
Отправлено: 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? | |
|
1 |
6 |
2 |
 |
|
| |
dukenator UAC Sergeant Major
 | 726 |
 Doom Rate: 2.68
|
Отправлено: 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 = UAC Commissar =
 | 6603 |
Doom Rate: 2.46
|
Отправлено: 15.08.07 14:56:29 | | | dukenator
Ок, спс. Попробую прикрутить  | |
|
1 |
6 |
2 |
 |
|
| |
Reiko = Master Corporal =
 | 254 |
 Doom Rate: 1.73
|
Отправлено: 11.09.07 15:02:49 | | | хелп, А как делать колонну которая при виде игрока стреляет плазмой?(и когда игрок исчезает из поля зрения колонны она перестает стрелять)  | |
|
| |
Falcor - Sergeant Major -
 | 567 |
Doom Rate: 2.54
|
Отправлено: 11.09.07 15:09:37 | | | Обычный монстр с нулевой скоростью передвижения. | |
|
| |
Eternal = Major =
 | 3159 |
Doom Rate: 3.78
|
Отправлено: 11.09.07 15:10:17 | | | Reiko : | А как делать колонну которая при виде игрока стреляет плазмой? |
Турельку хочешь сделать?
Ну как... делаешь колонну монстром без скорости, и всё. Лучше вот скажи как сделать чтобы оно всегда стреляло? Видит игрока, или нет. Просто перманентно...
без перерыва. | |
|
2 |
2 |
2 |
 |
|
| |
entryway -= DoomGod =-
 | 2058 |
Doom Rate: 2.75
|
Отправлено: 11.09.07 15:23:57 | | | dukenator : | ZVER AAAAAAAAAAAAAAAAA |
это декорейт так смешно выглядит? | |
|
3 |
1 |
1 |
 |
|
| |
Reiko = Master Corporal =
 | 254 |
 Doom Rate: 1.73
|
Отправлено: 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 = Major =
 | 3159 |
Doom Rate: 3.78
|
Отправлено: 11.09.07 16:06:08 | | | Reiko
Ну и я о том же, простенько и со вкусом Токо спрайтов смерти нужно...бы.
А теперь попробуй сделать так, чтобы оно палило (куда-то) просто так, без игрока... | |
|
2 |
2 |
2 |
 |
|
| |
Midnighter Recruit
 | 15 |
Doom Rate: 1.67
|
Отправлено: 11.09.07 16:18:48 | | | А возможен на базе непрерывно стреляющей турельки портал для монстров? Хочется добавить подобное. | |
|
| |
nprotect = Captain =
 | 2413 |
 Doom Rate: 2.45
|
Отправлено: 11.09.07 16:37:31 | | | Eternal : | А теперь попробуй сделать так, чтобы оно палило (куда-то) просто так, без игрока... |
а нельзя разве скриптом? ну что-нибудь типа Spawn_Projectile, я просто не помню синтаксиса | |
|
1 |
2 |
1 |
 |
|
| |
Eternal = Major =
 | 3159 |
Doom Rate: 3.78
|
Отправлено: 11.09.07 16:55:37 | | | nprotect
Можно, только неизвестно будет ли это в здум-ин-дум работать, может будет, а может нет, нужно же через декорэйт мутить. В гозоформате можно конечно же... | |
|
2 |
2 |
2 |
 |
|
| |
nprotect = Captain =
 | 2413 |
 Doom Rate: 2.45
|
Отправлено: 11.09.07 17:32:17 | | | Eternal
не, зачем decorate. просто стационарный скрипт, open к примеру. или просто при пересечении линии. а потом вызывать его через определенный промежуток, delay(xx) и restart | |
|
1 |
2 |
1 |
 |
|
| |
Eternal = Major =
 | 3159 |
Doom Rate: 3.78
|
Отправлено: 11.09.07 17:35:44 | | | nprotect
Дык я ж про формат Zdoom-in-doom. Какой open...
Вот какие скрипты декорейт понимает? Какие-то ведь понимает, стало быть они будут работать и не в хексен формате? | |
|
2 |
2 |
2 |
 |
|
| |