Ресурсы игры: Восстанавливаем работоспособность объекта "мишень" в ЛП (MOW)

Материал из BestWay wiki
Перейти к: навигация, поиск

Все помнят, что ВТВ-2 начинается с миссии "Базовые учения", где основным заданием является стрельба по мишеням. В оригинале:

  1. если "target_human" присвоен "tag" - "rifle" то мишень поражается с винтовки,
  2. если "target_human" присвоен "tag" - "mgun" то мишень поражается с пулемета,
  3. если "target_human" присвоен "tag" - "grenade" то мишень поражается гранатой.

В Лисе Пустыни 1 и 2 срабатывает, а 3 не работает. Для восстановления полной работоспособности объекта "Мишень" в \resource\entity\service\target_human\target_human.def добавляем:

{actor
	{targetClass "human"}
	{brain "actor"}
	{collider "construction"}
	{obstacleID "construction"}
	{mass 20}
	(include "/properties/construction_generic.inc")
	("armor_light" args 0.7)
	{Extension "target.mdl"}
	{props "wood" "fence" "animated_crush" "target"}
	{volume "body"
                   {able {blast}} <-----  Добавляем этот блок		
                          {Tags "body"}
		{thickness 1}
	}
	{volume "body1"
                    '''{able {blast}}''' <-----  Добавляем этот блок
		{Tags "body"}
		    {thickness 1}
	}
	{lodclass "decor_medium"}
}

 А сюда \resource\set\interaction_entity\construction\targ et.inc:

{"target"
	{on spawn
		{if tagged "up"
			{volumes enable contact bullet blast visible touch}
			{area enable}
			{ani_wind "crush" begin}
			{set "broken" 0}
			{auto_operatable 1}
		else
			{volumes disable contact bullet blast visible touch}
			{area disable}
			{ani_wind "crush" end}
			{set "broken" 1}
			{auto_operatable 0}
		}
	}
	(define "pierce_check"
		{if tagged %0 {if stuff %1 {call "break"}}}
	) 
	{on bullet_hit
		("pierce_check" args "smg"   "pistol")
		("pierce_check" args "rifle" "rifle")
		("pierce_check" args "mgun"  "mgun")
                ("pierce_check" args "hmgun"  "hmgun") - /это чтобы от новых боеприпасов к  крупнокалиберным пулеметам мишень падала/
		("pierce_check" args "zenite"  "zenite")
	}
	{on "break"
		{tags add "crushed"}
		{set "broken" 1}
		{auto_operatable 0}
	}
	{on "up"
		{tags remove "crushed"}
		{tags add "up"}
		{set "broken" 0}
		{volumes enable contact bullet blast visible touch}
		{area enable}
		{ani_play "crush" -1}
		{auto_operatable 1}
	}
	{on "down"
		{if not "broken"
			{call "break"}
		}
		{tags remove "crushed"}
	}
	{on break_armor overload
		{if tagged "grenade"
			{call "break"}
		}
	}
        ''{on blast 
                {if stuff "grenade"
                        {call "break"}
                }
             }''  <-----  Добавляем этот блок
}