| Автор | 
		Сообщение | 
	
	
		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
 
Ок, спс. Попробую прикрутить   |  
 |  
  | 
      	
	
        
		 |  |