Редактирование оружия — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

Редактирование оружия — различия между версиями

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

Перейти к: навигация, поиск
(5000 рублей уже сегодня!)
м (Откат правок 5.228.7.181 (обсуждение) к версии 77.37.210.38)
Строка 1: Строка 1:
Теперь Ваш новый график работы будет выглядеть так -  
+
==Общие положения==
В день вы будете заняты всего 60 минут - остальное время посвящайте себе и своим близким!
+
 
+
Сегодня мы разберем то, каким образом можно редактировать оружие в игре - от характеристик до описания.
Мы гарантируем:  
+
Характеристики оружия хранятся здесь:
- Первые деньги на вашей карте уже сегодня.  
+
 
- Обучение. Поддержка учеников пн-птн с 10-18 мск.  
+
''...\S.T.A.L.K.E.R\gamedata\config\weapons\w_[...].ltx''
- Куратор, который скоординирует ваше обучение.  
+
 
- Никаких сложных схем!
+
==Разбор структуры конфига==
- Работаете дома, по своему графику.  
+
 
   
+
Возьмем, для примера, конфиг '''w_g36.ltx'''. Он делится на разделы:
Все подробности у нас на сайте. ( stabilno.zarplatt.ru )
+
 
 +
===Первый раздел===
 +
 
 +
Здесь хранится общая информация о оружии, ссылки на спавн и т.д.
 +
Нас интересуют следующие строки:
 +
 
 +
* '''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 - модель, отображаемая у нас в руках
 +
 
 +
==Изменение описаний==
 +
 
 +
Описания оружия хранятся в файле:
 +
''...\S.T.A.L.K.E.R\gamedata\config\text\rus\string_table_enc_weapons.xml''
 +
 
 +
В нем хранятся строки с названиями и описаниями, на которые ссылаются конфиги оружия. Например, тот же '''G36''' ссылается сюда:
 +
 
 +
<pre>[...]
 +
<string id="enc_weapons1_wpn-g36">
 +
<text>Штурмовая винтовка немецкого производства, представляющая собой первоклассный образец
 +
современного оружия - лёгкого, надёжного и эргономичного.\n Боеприпасы:\n обычный 5,56x45 мм
 +
SS109,\n бронебойный 5,56x45 мм АР.</text>
 +
[...]
 +
<string id="wpn-g36">
 +
<text>ГП37</text>
 +
[...]</pre>
 +
 
 +
Меняя их содержимое, мы меняем описания/названия данного оружия.
 +
 
 +
==Нововведения в ЗП==
 +
===HUD===
 +
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 - положение рук и оружия для мониторов 16x9
 +
* '''hands_orientation_16x9''' = 3.649998,1.050001, -0.050000 - направление (ориентация) рук и оружия для мониторов 16x9
 +
 
 +
* '''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 - смещение рук с оружием при прицеливании для мониторов 16x9
 +
* '''aim_hud_offset_rot_16x9''' = -0.012500,0.040000,0.020000 - ориентация рук с оружием при прицеливании для мониторов 16x9
 +
 
 +
* '''gl_hud_offset_pos'''      = 0,0,0 - смещение рук с оружием при прицеливании из подствольника
 +
* '''gl_hud_offset_rot'''      = 0,0,0 - ориентация рук с оружием при прицеливании из подствольника
 +
* '''gl_hud_offset_pos_16x9'''  = 0,0,0 - смещение рук с оружием при прицеливании из подствольника для мониторов 16x9
 +
* '''gl_hud_offset_rot_16x9'''  = 0,0,0 - ориентация рук с оружием при прицеливании из подствольника для мониторов 16x9
 +
 
 +
===Апгрейды и изнашиваемость===
 +
Как известно, в ЗП есть возможность апгрейда оружия. За выбор схем при апгрейде отвечают строки:
 +
 
 +
* '''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 - по у
 +
 
 +
==Авторы==
 +
 
 +
Статья создана:
 +
 
 +
* [[Участник:BAC9-FLCL|BAC9-FLCL]]
 +
* [[Участник:Ya.D|Ya.D]]
 +
 
 +
[[Категория:Конфигурационные_файлы]]
 +
Статья средняя, но не сказано про параметр патронов "explosive". Нет подствольников и ракет, а именно патронов! Даже в оригинальном файле "weapons.ltx" в свойствах патронов 5.45x39  для АК к конце всегда есть строка "explosive = off".  Достаточно изменить её на "explosive = on" и при выстреле таким снарядом мы увидим как в месте попадания разгорается и тухнет оранжевое пламя. Но это всего лишь анимация, так что если будете делать такие патроны, не забывайте увеличить их бронебойную способность и останавливающее действие. Кстати, это не только для патронов АК сделать можно, а для любых всего одной строкой. Удачи!
 +
 
 +
Немного поправил '''Chriotmao''' 05.09.2013

Версия 11:43, 12 января 2017

Общие положения

Сегодня мы разберем то, каким образом можно редактировать оружие в игре - от характеристик до описания. Характеристики оружия хранятся здесь:

...\S.T.A.L.K.E.R\gamedata\config\weapons\w_[...].ltx

Разбор структуры конфига

Возьмем, для примера, конфиг 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 - модель, отображаемая у нас в руках

Изменение описаний

Описания оружия хранятся в файле: ...\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>
[...]

Меняя их содержимое, мы меняем описания/названия данного оружия.

Нововведения в ЗП

HUD

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 - положение рук и оружия для мониторов 16x9
  • hands_orientation_16x9 = 3.649998,1.050001, -0.050000 - направление (ориентация) рук и оружия для мониторов 16x9
  • 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 - смещение рук с оружием при прицеливании для мониторов 16x9
  • aim_hud_offset_rot_16x9 = -0.012500,0.040000,0.020000 - ориентация рук с оружием при прицеливании для мониторов 16x9
  • gl_hud_offset_pos = 0,0,0 - смещение рук с оружием при прицеливании из подствольника
  • gl_hud_offset_rot = 0,0,0 - ориентация рук с оружием при прицеливании из подствольника
  • gl_hud_offset_pos_16x9 = 0,0,0 - смещение рук с оружием при прицеливании из подствольника для мониторов 16x9
  • gl_hud_offset_rot_16x9 = 0,0,0 - ориентация рук с оружием при прицеливании из подствольника для мониторов 16x9

Апгрейды и изнашиваемость

Как известно, в ЗП есть возможность апгрейда оружия. За выбор схем при апгрейде отвечают строки:

  • 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.45x39 для АК к конце всегда есть строка "explosive = off". Достаточно изменить её на "explosive = on" и при выстреле таким снарядом мы увидим как в месте попадания разгорается и тухнет оранжевое пламя. Но это всего лишь анимация, так что если будете делать такие патроны, не забывайте увеличить их бронебойную способность и останавливающее действие. Кстати, это не только для патронов АК сделать можно, а для любых всего одной строкой. Удачи!

Немного поправил Chriotmao 05.09.2013

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