Редактирование оружия
Общие положения
Сегодня мы разберем то, каким образом можно редактировать оружие в игре - от
характеристик до описания. Характеристики оружия хранятся здесь:
...\S.T.A.L.K.E.R\gamedata\config\weapons\w_[...].ltx
Разбор
структуры конфига
Возьмем, для примера, конфиг w_g36.ltx. Он делится на разделы:
Первый раздел
Здесь хранится общая информация о оружии - его класс, тип, ссылки на спавн и
т.д. Нас интересуют следующие строки:
- description =
enc_weapons1_wpn-g36 - ссылка на string_id, из которого игра подгружает
описание этого оружия.
- ef_main_weapon_type
= 2 - основной тип, к которому принадлежит оружие
- ef_weapon_type = 6
- подтип, к которому принадлежит оружие
Второй раздел
Содержит модификаторы, которые даются к углу зрения/дальности обзора NPC,
держащего это оружие в руках:
- holder_range_modifier
= 1.85 - во сколько раз увеличивается eye_range
- holder_fov_modifier
= 0.3 - во сколько раз увеличивается eye_fov
Третий раздел
Содержит данные о самом оружии, его некоторых характеристиках:
- cost = 18000 -
базовая цена (торговцы умножают её на некоторый коэффициент)
- weapon_class =
assault_rifle - класс оружия (здесь - штурмовая винтовка)
- ammo_mag_size = 30
- размер магазина
- ammo_class =
ammo_5.56x45_ss190, ammo_5.56x45_ap - типы используемых патронов
- grenade_class =
ammo_m209 - тип используемых гранат
- fire_modes = 1, -1
- режимы ведения огня
- hand_dependence = 1
- засивимость о рук (?) - возможно, речь идет о качании ствола
- single_handed = 0 -
держится ли только в одной руке
- slot = 2 - слот в
инвентаре
- animation_slot = 2 -
вид анимации (для пистолета/для винтовки)
- inv_name = wpn-g36
- ссылка на имя, отображаемое в инвентаре, тоже берется из string table,
как и описание
- inv_name_short =
wpn-g36 - короткое имя; в данном случае используется то же самое
- inv_weight = 3.6 -
вес
- inv_grid_width = 5 -
координаты первого угла иконки по x
- inv_grid_height = 2
- координаты первого угла иконки по y
- inv_grid_x = 0 -
координаты второго угла иконки по x
- inv_grid_y = 10 -
координаты второго угла иконки по y
Четвертый раздел
В четвертом разделе хранится информация о износе/отдаче оружия. Практически
все параметры там снабжены комментариями, поэтому приведу лишь самые
интересные:
- cam_relax_speed =
5.7 - скорость возврата в исходное положение
- cam_dispersion = 0.2
- увеличения угла (в градусах) с каждым выстрелом
- fire_dispersion_condition_factor
= 5 - увеличение дисперсии в процентах при максимальном износе
- misfire_probability
= 0.003 - вероятность осечки при максимальном износе
- misfire_condition_k
= 0.05 - порог (в данном случае - 5%), после которого оружие может
заклинивать
- condition_shot_dec
= 0.0002 - увеличение износа при каждом выстреле
Пятый раздел
Здесь хранится множество параметров, из которых наиболее интересны эти:
- hit_power = 0.50,
0.54, 0.57, 0.60 - сила выстрела
- hit_impulse = 105 -
импульс пули (сила, которую летящая пуля передает жертве, влияет на
поведение ragdoll-тела)
- hit_type =
fire_wound - тип причиняемых повреждений, в данном случае - пулевые
ранения (параметр в синглплеере ни на что не влияет)
- fire_distance =
600 - максимальная дистанция для выстрела
- bullet_speed = 925
- начальная скорость пули
- hud = wpn_g36_hud -
внешний вид оружия
Шестой раздел
- position = -0.026,
-0.132, 0.0 - позиция по отношению к игроку (?)
- orientation = 0,
0, 0 - направление, в которое смотрит ствол (?)
Седьмой раздел
Содержит описания визуальной стороны оружия и некоторые другие параметры:
- startup_ammo = 90
- как нетрудно догадаться, стартовое количество патронов (в синглплеере ни
на что не влияет)
- visual =
weapons\g36\wpn_g36.ogf - модель оружия, используемая NPC, а также игроком
при виде от третьего лица
- ph_mass = 4 -
физическая масса, используемая при расчетах
- scope_status = 1 -
ситуация со съемным прицелом
- silencer_status =
0 - ситуация со съемным глушителем
- grenade_launcher_status
= 0 - ситуация с подствольным гранатометом
- Параметры:
- 0 - нет,
новый прикрепить нельзя
- 1 - уже
есть, несъемный
- 2 - нет, но
можно установить новый
- zoom_enabled = true
- есть ли зум (прицеливание)
- scope_zoom_factor =
33.3 - какой зум дает прицеливание (здесь - 1.8х)
- scope_texture =
wpn\wpn_crosshair_g36 - текстура прицельной сетки
- shell_point =
0.15, 0.0, -0.05 - точка вылета гильз
- shell_dir = 0.0,
1.0, 0.0
- fire_point =
-0.000000,0.062000,0.134000 - точка выстрела
- fire_point2 =
0.30, 0.00, 0.05 - точка выстрела (2)
- fire_bone =
wpn_body
- orientation = 0,
0, 0 - направление
- position = 0, 0, 0
- позиция
- visual =
weapons\g36\wpn_g36_hud.ogf - модель, отображаемая у нас в руках
Изменение описаний
Описания оружия хранятся в файле: ...\S.T.A.L.K.E.R\gamedata\config\text\rus\string_table_enc_weapons.xml
В нем хранятся строки с названиями и описаниями, на которые ссылаются
конфиги оружия. Например, тот же G36 ссылается сюда:
[...] <string id="enc_weapons1_wpn-g36"> <text>Штурмовая винтовка немецкого производства, представляющая собой первоклассный образец современного оружия - лёгкого, надёжного и эргономичного.\n Боеприпасы:\n обычный 5,56x45 мм SS109,\n бронебойный 5,56x45 мм АР.</text> [...] <string id="wpn-g36"> <text>ГП37</text> [...]
Меняя их содержимое, мы меняем описания/названия данного оружия.
Изменение патронов
Параметры патронов хранятся в файле:
...\S.T.A.L.K.E.R\gamedata\config\weapons\weapons.ltx
Найдем, например, раздел, отвечающий за патроны к тому же G36 (о них
мы узнали из параметра ammo_class), и разберем, что означает каждый
параметр:
- visual =
weapons\ammo\ammo_556x45_ss190.ogf - модель коробки с патронами
- description =
enc_weapons1_ammo_ammo-5.56x45-ss190 - ссылка на string_id, из которого
игра подгружает описание этого типа патронов
- cost = 320 -
стоимость одной коробки
- box_size = 30 -
количество патронов в одной коробке
- inv_name =
ammo-5.56x45-ss190 - ссылка на string_id, содержащий имя для инвентаря
- inv_name_short =
ammo-5.56x45-ss190_s - ссылка на string_id, содержащий краткое имя для
инвентаря
- inv_weight = 0.33
- вес
- inv_grid_width = 2
- координаты первого угла иконки по x
- inv_grid_height =
1 - координаты первого угла иконки по y
- inv_grid_x = 14 -
координаты второго угла иконки по x
- inv_grid_y = 11 -
координаты второго угла иконки по y
- k_dist = 1 -
коэффициент дальности, сама дальность - в стволе, тупо расстояние.
- k_disp = 2.5 -
кучность, завязана с кучностью в стволе
- k_hit = 1 -
убойность, завязана с убойностью в стволе
- k_impulse = 1 -
чисто наскока эффектно ногами непись дрыгнет во время кердыка
- k_pierce = 1 -
коэффициент наскока испорится броня при попадании
- impair = 1 -
коэффициент износа ствола от пули
- buck_shot = 1 -
кол-во составляющих в пуле (напр картечь - 4, пуля - 1)
- tracer = on -
является ли патрон трассирующим (on/off)
- wm_size = 0.05 -
визуальный размер дырки на стене от пули
Авторы
Статья создана:
|