CoP. Создание реактивных выстрелов — S.T.A.L.K.E.R. Inside Wiki

CoP. Создание реактивных выстрелов

Материал из S.T.A.L.K.E.R. Inside Wiki

Версия от 19:31, 3 августа 2013; 91.218.192.254 (обсуждение)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Идея конечно попахивает бредом. Хотя в моде над которым сейчас тружусь я её реализовал.

Суть такого нововведения в том что бы подстволшьник мог стрелять реактивными гранатами-выстрелами (аля ОГ-7В)


Приступим!!!


1) Открываем configs/weapons/weapons.ltx и копируем секцию описания выстрела M-203:

[ammo_m209]:ammo_base
 GroupControlSection	= spawn_group
 discovery_dependency =
 $spawn			= "weapons\ammo\ammo_m209" ; option for Level Editor
 class			= S_M209
 cform           = skeleton
 visual          = dynamics\weapons\wpn_ammo\ammo_m209.ogf
 description		= ammo-m209_descr
 slot = -1
 $prefetch 		= 64
 
 cost			= 3500
 
 box_size		= 1
 
 inv_name		= ammo-m209
 inv_name_short	= ammo-m209_s
 inv_weight		= 0.1
 
 inv_grid_width		= 1
 inv_grid_height		= 1
 inv_grid_x			= 5
 inv_grid_y			= 13
 
 kill_msg_x			= 61
 kill_msg_y			= 232
 kill_msg_width		= 19
 kill_msg_height		= 22
 
 
 k_dist			= 1
 k_disp			= 1
 k_hit			= 1
 k_impulse		= 1
 k_pierce		= 0.25
 k_ap			= 0.25
 impair			= 1
 buck_shot		= 0
 tracer			= off
 wm_size         = 0.05
 
 fake_grenade_name = wpn_fake_missile2
 
 ;могут ли боеприпасы быть неограниченными : 1 - могут, 0 - не могут
 can_be_unlimited = true ;false

И перепишем её:

[ammo_m209rocket]:ammo_base
 GroupControlSection	= spawn_group
 discovery_dependency =
 $spawn			= "weapons\ammo\ammo_m209rocket" ; option for Level Editor
 class			= S_M209
 cform           = skeleton
 visual          = dynamics\weapons\wpn_ammo\ammo_m209.ogf
 description		= ammo-m209rocket_descr
 slot = -1
 $prefetch 		= 64
 
 cost			= 7500
 
 box_size		= 1
 
 inv_name		= ammo-m209rocket
 inv_name_short	= ammo-m209rocket_s
 inv_weight		= 0.15
 
 inv_grid_width		= 1
 inv_grid_height		= 1
 inv_grid_x			= 5
 inv_grid_y			= 13
 
 kill_msg_x			= 61
 kill_msg_y			= 232
 kill_msg_width		= 19
 kill_msg_height		= 22
 
 
 k_dist			= 1
 k_disp			= 1
 k_hit			= 1
 k_impulse		= 1
 k_pierce		= 0.25
 k_ap			= 0.25
 impair			= 1
 buck_shot		= 0
 tracer			= off
 wm_size         = 0.05
 
 fake_grenade_name = wpn_fake_missile13
 
 ;могут ли боеприпасы быть неограниченными : 1 - могут, 0 - не могут
 can_be_unlimited = true ;false

Как видите, здесь мы поменяли только системное имя, ссылки на описание, вес, стоимость и ссылку на fake_missile А вот это и есть основа всего =)

Путем долгих разборов выяснилось, что подствольник, как таковой, не стреляет, а лишь запускает функцию fake_missile c определенными парраметрами.

Следовательно, в этом же файле чуть ниже мы видим описания конкретных fake'ов. Так вот, после всех родных fake'ов мы вставим вот такой вот:

[wpn_fake_missile13]:identity_immunities,default_weapon_params
 $prefetch 			= 32
 visual              = dynamics\weapons\wpn_ammo\ammo_m209.ogf
 cform               = skeleton
 class               = G_FAKE
 
 inv_weight			= 0
 
 cost				= 150
 
 blast				= 2.00 ;Взрывная волна(значение влияет на эффект размазанности если ГГ попал в радиус)
 blast_r				= 15 ;Радиус взрывной волны
 blast_impulse		= 350 ;Сила с которой волна раскидывает физические объекты
 ;delete
 blast_impulse_factor = 1 ;Судя по всему наличие самой волны (типа 1=true 0=false)
 
 
 frags				= 30 ;Осколки(тут прописано количество онных)
 frags_r				= 20 ;На какое растояние полетят осколки(желательно делать больше blast_r)
 frag_hit			= 0.50 ;Повреждение наносимое одним осколком
 frag_hit_impulse	= 50 ;Сила с которой осколок толкнет физический объект
 
 hit_type_blast		= explosion ;Тип урона взрывной волны
 hit_type_frag		= fire_wound ;Тип урона осколков
 
 up_throw_factor		= 0.7 ;Х.з.
 
 ;trail				= weapons\rpg_trail_01, weapons\rpg_trail_02
 
 explode_particles	= explosions\explosion_01 ;Визуал взрыва
 
 
 light_color		    = 1.9,1.4,0.5 ;Цвет вспышки при взрыве
 light_range		    = 14.0 ;Яркость вспышки
 light_time 		    = 0.85 ;Время свечения(60.0 = 10сек)
 
 
 ph_mass			 = 5 ;Физическая масса
 ;engine_f			= 530
 ;engine_u			= 90
 
 jump_height = 1 ;Подпрыгивание гранаты перед взрывом
 
 ;трассы от осколков
 fragment_speed		= 100 ;Скорость полёта осколков
 
 wm_size         	= 0.05 ;Размер отверстия от осколка(на стенах и т.д.)
 ;wallmarks
 wallmark_section		 = explosion_marks
 explode_duration		 = 5		;подолжительность взрыва (с)
 
 ;звуки
 snd_explode = weapons\f1_explode ;Звук взрыва
 snd_fly_sound	= weapons\rocket_fly ;Звук полета(работы двигателя)
 
 ;свойства которые читаются, но не используются
 inv_name		= ammo-vog-25p
 inv_name_short	= ammo-vog-25p
 inv_weight		= .2
 
 inv_grid_width		= 1
 inv_grid_height		= 1
 inv_grid_x			= 19
 inv_grid_y			= 9
 
 kill_msg_x			= 38
 kill_msg_y			= 233
 kill_msg_width		= 21
 kill_msg_height		= 22
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Свойства CustomRocket
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 engine_present				= true		;присутствует ли в ракете двигатель
 engine_work_time			= 3000		;время работы двигателя (в милисекундах)
 engine_impulse				= 300		;разгонная сила двигателя
 engine_impulse_up			= 133,906	;подъёмная сила двигателя( установлена сила при которой снаряд немного опускается)
 engine_particles 			= weapons\rpg_trail_00 ;визуал работы двигателя
 lights_enabled 		= true			;свет вокруг ракеты, во время полета
 trail_light_color 	= 0.6,0.5,0.3 ;цвет освещения во время полёта
 trail_light_range 	= 8.0 ;яркость освещения во время полета
 force_explode_time  = 10000 ;время в милисекундах через которое снаряд взорвется не достигнув цели(типа если пальнуть вверх)
 

Сохраняем weapons.ltx

2)Добавление к оружию. Откроем для примера w_fn2000.ltx и найдем строку:

grenade_class			= ammo_m209

И поменяем на:

grenade_class			= ammo_m209, ammo_m209rocket

Сохраняем w_fn2000.ltx

3)Идем в gamedata\configs\text\rus и открываем st_items_weapons.xml

В нем по анологии создаём секции содержащие:

ammo-m209rocket_descr ;Описание
ammo-m209rocket ;Имя в инвентаре
ammo-m209rocket_s ;Имя в слоте

Вот и всё. Теперь если дать ГГ ФН-2000 и эти гранаты он сможет с лёгкостью разделаться с любым врагом =)

Автор: WincentDark69

Другие места
LANGUAGE