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

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

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

Перейти к: навигация, поиск

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

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


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


1) Открываем 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