- Редактирование оружия
- Редактирование оружия
- Материал из S.T.A.L.K.E.R. Inside Wiki
- Содержание
- Общие положения
- Разбор структуры конфига
- Первый раздел
- Второй раздел
- Третий раздел
- Четвертый раздел
- Пятый раздел
- Шестой раздел
- Седьмой раздел
- Изменение описаний
- Нововведения в ЗП
- Апгрейды и изнашиваемость
- Основной конфиг
- Авторы
Редактирование оружия
Материал из Mod Wiki.
Сегодня мы разберем то, каким образом можно редактировать оружие в игре — от характеристик до описания. Характеристики оружия хранятся здесь:
. 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 = weaponsg36wpn_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 = wpnwpn_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 = weaponsg36wpn_g36_hud.ogf — модель, отображаемая у нас в руках
Изменение описаний
Описания оружия хранятся в файле: . S.T.A.L.K.E.Rgamedataconfigtextrusstring_table_enc_weapons.xml
В нем хранятся строки с названиями и описаниями, на которые ссылаются конфиги оружия. Например, тот же G36 ссылается сюда:
[. ]
Штурмовая винтовка немецкого производства, представляющая собой первоклассный образец
современного оружия — лёгкого, надёжного и эргономичного.n Боеприпасы:n обычный 5,56×45 мм
SS109,n бронебойный 5,56×45 мм АР.
Меняя их содержимое, мы меняем описания/названия данного оружия.
Изменение патронов
Параметры патронов хранятся в файле:
. 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.56×45-ss190 — ссылка на string_id, из которого игра подгружает описание этого типа патронов
cost = 320 — стоимость одной коробки
box_size = 30 — количество патронов в одной коробке
inv_name = ammo-5.56×45-ss190 — ссылка на string_id, содержащий имя для инвентаря
inv_name_short = ammo-5.56×45-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 — визуальный размер дырки на стене от пули
Источник
Редактирование оружия
Материал из S.T.A.L.K.E.R. Inside Wiki
Содержание
Общие положения
Сегодня мы разберем то, каким образом можно редактировать оружие в игре — от характеристик до описания. Характеристики оружия хранятся здесь:
Разбор структуры конфига
Возьмем, для примера, конфиг w_g36.ltx. Он делится на разделы:
Первый раздел
Здесь хранится общая информация о оружии, ссылки на спавн и т.д. Нас интересуют следующие строки:
- description = enc1weapons1_wpn_g36 — ссылка на string_id, из которой игра подгружает описание этого оружия.
- ef_main_weapon_type = 2 — основной тип, к которому принадлежит оружие
- ef_weapon_type = 6 — подтип, к которому принадлежит оружие
- default_to_ruck = false — значит, если при пустой ячейке под автомат, подобрать автомат он будет помещён в ячейку; если true автомат в ячейку помещён не не будет.
- sprint_allowed = true — эта строка означает, что с оружием можно бегать.
Второй раздел
Содержит модификаторы, которые даются к углу зрения/дальности обзора NPC, держащего это оружие в руках:
- holder_range_modifier = 1.85 — во сколько раз увеличивается eye_range ботов. Он производит умножение дальности обзора ботов с данным оружием в руках.
- holder_fov_modifier = 0.3 — во сколько раз увеличивается eye_fov ботов. При редактировании этого параметра случаются проблемы с обзором нпс — могут не увидеть монстра в упор.
Следующие значения могут находится в другой части файла, но относятся они к обзору.
- min_radius = 30 — минимальное расстояние с которого боты начинают использовать данное оружие. Для всего оружия кроме снайперских винтовок, гранат и гранатомётов рекомендуется ставить 0. Используется для того, чтобы боты с гранатомётами и снайперками переключались при приближении врага на второе оружие, а также не бросали гранаты себе под ноги.
- max_radius = 100 — максимальное расстояние на котором боты используют данное оружие. Рекомендуется делать максимально большим каким возможно, учитывая при этом точность оружия. Вы наверно часто сталкивались с ситуациями, когда отстреливаете ботов с дальней дистанции они целятся в Вас, ходят из стороны в сторону, но не стреляют. Данные баги связаны с недостаточным размером данного параметра. Ограничивать данный параметр стоит для пистолетов, дробовиков и огнемёта.
Третий раздел
Содержит данные о самом оружии, его некоторых характеристиках:
- cost = 2200000 — базовая цена (торговцы умножают её на некоторый коэффициент)
- weapon_class = assault_rifle — класс оружия (здесь — штурмовая винтовка)
- ammo_mag_size = 300 — размер магазина
- 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 — длина иконки (кол-во клеток по х)
- inv_grid_height = 2 — высота иконки (кол-во клеток по у)
- inv_grid_x = 0 — координаты первого угла иконки по x
- inv_grid_y = 10 — координаты первого угла иконки по y
Четвертый раздел
В четвертом разделе хранится информация о износе/отдаче оружия. Практически все параметры там снабжены комментариями, поэтому приведу лишь самые интересные:
- cam_relax_speed = 5.7 — скорость возврата в исходное положение
- cam_dispersion = 0.2 — увеличения угла (в градусах) при первом выстреле
- fire_dispersion_condition_factor = 5 — увеличение дисперсии в процентах при максимальном износе. Мало кто понимает, но этот параметр указан не в градусах — это множитель. 5 — это 5000% разброса при максимальном износе. Подобный разброс IRL можно получить только рассверлив ПМ перфоратором. Все стволы в оригинальной игре имеют множитель 5, а начиная с CS маразм разработчиков начал крепчать и многие стволы получили значение 15. В CoP эта тенденция усилилась и ещё больше стволов получили значение 15. Каждый нормальный модер уменьшит это значение. Для пистолетов рекомендуется 3 — 4, автоматов 2 — 2.5, снайперок 1 — 1.5
- misfire_probability = 0.003 — вероятность осечки при максимальном износе
- misfire_condition_k = 0.05 — коэффициент. Проще не трогать, т.к. настроить два параметра для каждого ствола в оружейном паке гораздо легче чем три. Может понабиться только для оружия с небольшим настрелом типа ВСС.
- condition_shot_dec = 0.0002 — увеличение износа при каждом выстреле. Если вписать -1, то оружие полностью отремонтируется после первого выстрела.
Пятый раздел
Здесь хранится множество параметров, из которых наиболее интересны эти:(PDM — это параметр качания ствола в руках ГГ при движении в режиме прицеливания. добавил дядяСаша imgal@mail.ru)
- PDM_disp_base = 3.0 — множитель, на который умножается базовая дисперсия оружия, когда ГГ (Главный Герой) стоит на месте в полный рост;
- PDDM_disp_vel_factor = 1.3 — множитель, на который умножается базовая дисперсия оружия, когда ГГ крутит оружием или бежит;
- PDM_disp_accel_factor = 1.3 — множитель, на который умножается базовая дисперсия оружия, когда ГГ бежит в спринте;
- PDM_crouch = 1.0 — множитель, на который умножается базовая дисперсия оружия, когда ГГ идет пригнувшись;
- PDM_crouch_no_acc = 1.0 — множитель, на который умножается базовая дисперсия оружия, когда ГГ стоит на месте, пригнувшись;
- hit_power = 0.50, 0.54, 0.57, 0.60 — сила выстрела, зависит от ранга: новичок, опытный, ветеран и мастер соответственно.
- hit_impulse = 105 — импульс пули (сила, которую летящая пуля передает жертве, влияет на поведение ragdoll-тела. Чем больше поставишь, тем дальше улетит. Если сделать большое отрицательное значение, то жертвы будут прилетать к ГГ)
- hit_type = fire_wound — тип причиняемых повреждений, в данном случае — пулевые ранения (параметр в синглплеере ни на что не влияет)
- fire_distance = 600 — максимальная дистанция полета пули, затем она падает на землю и исчезает. Логично прописать значение эффективного огня(пистолеты-пулеметы 50-200м, пистолеты 50м, дробовики 30м и нож полметра), но не имеет смысла устанавливать значение больше радиуса алайфа: ведь за его пределами никого нет.)
- bullet_speed = 925 — начальная скорость пули
- rpm = 600 — скорострельность выстрел/минута
- hud = wpn_g36_hud — внешний вид оружия от 1-ого лица
Шестой раздел
- = x, y, z
- position = -0.026, -0.132, 0.0 — позиция оружия на спине по отношению к НПС при виде от 3-его лица
- orientation = 0, 0, 0 — вращение оружия на спине НПС при виде от 3-его лица
Примечание В ЧН\ЗП будет выглядеть так:
- position = -0.026, -0.132, 0.0 — позиция оружия в руках НПС
- orientation = 0, 0, 0 — вращение оружия в руках НПС
- strap_position = -0.26,-0.11,0.25 — позиция оружия на спине по отношению к НПС при виде от 3-его лица
- strap_orientation = -15,-9,110 — вращение оружия на спине НПС при виде от 3-его лица
Седьмой раздел
Содержит описания визуальной стороны оружия и некоторые другие параметры:
- startup_ammo = 90 — как нетрудно догадаться, стартовое количество патронов (в синглплеере ни на что не влияет)
- visual = weapons\g36\wpn_g36.ogf — модель оружия, используемая NPC, а также игроком при виде от третьего лица
- ph_mass = 4 — физическая масса, используемая при расчетах
- scope_status = 2 — ситуация со съемным прицелом
- silencer_status = 1 — ситуация с несъемным глушителем
- grenade_launcher_status = 0 — ситуация с отсутствующим подствольным гранатометом
- Параметры:
- 0 — нет, новый прикрепить нельзя
- 1 — уже есть, несъемный
- 2 — нет, но можно установить
- zoom_enabled = true — есть ли зум (прицеливание)
- scope_zoom_factor = 33.3 — какой зум дает прицеливание (здесь 60/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 — точка выстрела из подствольного гранатомета
- fire_bone = wpn_body
- orientation = 0, 0, 0 — ориентация ствола оружия в направлении точки попадания пули(это центр монитора). Некоторые мододелы ориентируют оружие по линии прицеливания- это не правильно, ибо пуля вылетает из ствола, а не из прицела.
- position = 0, 0, 0 — позиция. Первая координата отвечает за перемещение в стороны (положительная — вправо, отрицательная — влево), вторая — перемещение по высоте (положительная — вверх, отрицательная — вниз), третья — перемещение по горизонтали (положительная — вперед, отрицательная — назад)
- visual = weapons\g36\wpn_g36_hud.ogf — модель, отображаемая у нас в руках
- grenade_bone = grenade
Далее идут различные анимации при различных действиях ГГ с оружием (стрельба, перезарядка и т.д.). Но они нам особо не нужны. Но не в этом суть, суть в том, что уже давно, никто не замечал несколько строк, а именно, 3 строчки которые отвечают за позицию оружия при прицеливании:
- zoom_offset = -0.123900,0.012450,-0.1377700000 — тут всё точно так же как и с позицией (которая идёт после fire_bone)
- zoom_rotate_x = 0.024750
- zoom_rotate_y = 0.001300
Их так же нужно править, если меняли позицию самого оружия, иначе прицеливаться ГГ будет не в центр экрана, а ниже/выше и левее/правее. Для настройки этой фичи был сделан hud_adjust_mode, но его, почему-то не оставили. Частично вам может помочь такая штука, как:
- zoom_hide_crosshair — скрывать ли перекрестие прицела при прицеливании
Изменение описаний
Описания оружия хранятся в файле: . \S.T.A.L.K.E.R\gamedata\config\text\rus\string_table_enc_weapons.xml
В нем хранятся строки с названиями и описаниями, на которые ссылаются конфиги оружия. Например, тот же G36 ссылается сюда:
Меняя их содержимое, мы меняем описания/названия данного оружия.
Нововведения в ЗП
HUD модель была разделена на 2 части — руки и, собственно, само оружие. Это было сделано для того, чтобы добиться смены визуалов рук при смене комбинизона. Из-за этого (и не только из-за этого) большая часть конфига, находящаяся под «[wpn_xxx_hud]:hud_base» претерпела некоторые изменения — о них я и расскажу.
- hands_position = 0.020500,-0.206999,0.261999 — положение рук и оружия
- hands_orientation = 3.349998,2.599999,-0.050000 — направление (ориентация) рук и оружия
- hands_position_16x9 = 0.020500, -0.165999,0.209500 — положение рук и оружия для мониторов 16×9
- hands_orientation_16x9 = 3.649998,1.050001, -0.050000 — направление (ориентация) рук и оружия для мониторов 16×9
- item_position = 0,0,0 — позиция оружия относительно рук
- item_orientation = 0,0,0 — ориентация оружия относительно рук
- aim_hud_offset_pos = -0.129000,0.017000,-0.001500 — смещение рук с оружием при прицеливании
- aim_hud_offset_rot = -0.012500,0.040000,0.020000 — ориентация рук с оружием при прицеливании
- aim_hud_offset_pos_16x9 = -0.129000,0.017000,-0.001500 — смещение рук с оружием при прицеливании для мониторов 16×9
- aim_hud_offset_rot_16x9 = -0.012500,0.040000,0.020000 — ориентация рук с оружием при прицеливании для мониторов 16×9
- gl_hud_offset_pos = 0,0,0 — смещение рук с оружием при прицеливании из подствольника
- gl_hud_offset_rot = 0,0,0 — ориентация рук с оружием при прицеливании из подствольника
- gl_hud_offset_pos_16x9 = 0,0,0 — смещение рук с оружием при прицеливании из подствольника для мониторов 16×9
- gl_hud_offset_rot_16x9 = 0,0,0 — ориентация рук с оружием при прицеливании из подствольника для мониторов 16×9
Апгрейды и изнашиваемость
Как известно, в ЗП есть возможность апгрейда оружия. За выбор схем при апгрейде отвечают строки:
- upgrades = up_gr_firstab_ak74, up_gr_seconab_ak74, up_gr_thirdab_ak74, up_gr_fourtab_ak74, up_gr_fifthab_ak74, * up_gr_fifthcd_ak74 — части апгрейд схемы
- installed_upgrades = — установленные апгрейды
- upgrade_scheme = upgrade_scheme_ak74 — апгрейд-схема
Так-же в ЗП была создана более продуманная схема изнашиваемости, вот строки которые за это отвечают:
- misfire_start_condition = 0.6 — изношенность, при которой появляется шанс осечки
- misfire_end_condition = 0.1 — изношенность при которой шанс осечки становится константным
- misfire_start_prob = 0.003 — шанс осечки при изношенности больше чем misfireStartCondition
- misfire_end_prob = 0.043 — шанс осечки при изношенности больше чем misfireEndCondition
- condition_shot_dec = 0.001 — увеличение изношенности при одиночном выстреле
- condition_queue_shot_dec = 0.0012 — увеличение изношенности при выстреле очередью
Изношенность нового ствола = 1.0
Основной конфиг
Здесь изменений не так много:
Иконка используемая при апгрейде. Координаты отсчитываются с левого верхнего угла по пикселям. Файл с иконками находится по пути textures\ui\ui_actor_weapons.dds
- upgr_icon_x = 304 — координаты по х (горизонтально)
- upgr_icon_y = 627 — координаты по у (вертикально)
- upgr_icon_width = 295 — ширина иконки
- upgr_icon_height = 110 — высота иконки
- * scopes_sect = scope_ak74, scope_x2.7_ak74, scope_live_detector_ak74, scope_night_ak74 — ссылки на вторичный конфиг прицела
- [scope_ak74] — собственно сам вторичный конфиг
- scope_name = wpn_addon_scope — ссылка на конфиг прицела
- scope_x = 47 — расположение иконки установленного прицела на иконке оружия по x(в пикселях)
- scope_y = 0 — по у
Авторы
Статья средняя, но не сказано про параметр патронов «explosive». Нет подствольников и ракет, а именно патронов! Даже в оригинальном файле «weapons.ltx» в свойствах патронов 5.45×39 для АК к конце всегда есть строка «explosive = off». Достаточно изменить её на «explosive = on» и при выстреле таким снарядом мы увидим как в месте попадания разгорается и тухнет оранжевое пламя. Но это всего лишь анимация, так что если будете делать такие патроны, не забывайте увеличить их бронебойную способность и останавливающее действие. Кстати, это не только для патронов АК сделать можно, а для любых всего одной строкой. Удачи!
Немного поправил Chriotmao 05.09.2013
Источник