Редактирование оружия

Материал из Mod Wiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 12:13, 25 июля 2007 (править)
BAC9-FLCL (Обсуждение | вклад)

← К предыдущему изменению
Текущая версия (21:49, 18 апреля 2010) (править) (отменить)
EtMrak (Обсуждение | вклад)
(Первый раздел)
 
(12 промежуточных версий не показаны.)
Строка 4: Строка 4:
Характеристики оружия хранятся здесь: Характеристики оружия хранятся здесь:
-...\S.T.A.L.K.E.R\gamedata\config\weapons\w_[...].ltx+''...\S.T.A.L.K.E.R\gamedata\config\weapons\w_[...].ltx''
==Разбор структуры конфига== ==Разбор структуры конфига==
Строка 15: Строка 15:
Нас интересуют следующие строки: Нас интересуют следующие строки:
-* description = enc_weapons1_wpn-g36 - ссылка на string_id, из которого игра подгружает описание этого оружия.+* '''description''' = enc_weapons1_wpn-g36 - ссылка на string_id, из которого игра подгружает описание этого оружия.
-* ef_main_weapon_type = 2 - основной тип, к которому принадлежит оружие+* '''ef_main_weapon_type''' = 2 - основной тип, к которому принадлежит оружие
-* ef_weapon_type = 6 - подтип, к которому принадлежит оружие+* '''ef_weapon_type''' = 6 - подтип, к которому принадлежит оружие
 +* '''sprint_allowed''' = true - возможность спринта с этим оружием(false-выкл, true-вкл)
===Второй раздел=== ===Второй раздел===
Строка 23: Строка 24:
Содержит модификаторы, которые даются к углу зрения/дальности обзора NPC, держащего это оружие в руках: Содержит модификаторы, которые даются к углу зрения/дальности обзора NPC, держащего это оружие в руках:
-* holder_range_modifier = 1.85 - во сколько раз увеличивается eye_range +* '''holder_range_modifier''' = 1.85 - во сколько раз увеличивается eye_range
-* holder_fov_modifier = 0.3 - во сколько раз увеличивается eye_fov+* '''holder_fov_modifier''' = 0.3 - во сколько раз увеличивается eye_fov
===Третий раздел=== ===Третий раздел===
Строка 30: Строка 31:
Содержит данные о самом оружии, его некоторых характеристиках: Содержит данные о самом оружии, его некоторых характеристиках:
-* cost = 18000 - базовая цена (торговцы умножают её на некоторый коэффициент)+* '''cost''' = 18000 - базовая цена (торговцы умножают её на некоторый коэффициент)
-* weapon_class = assault_rifle - класс оружия (здесь - штурмовая винтовка)+* '''weapon_class''' = assault_rifle - класс оружия (здесь - штурмовая винтовка)
-* ammo_mag_size = 30 - размер магазина+* '''ammo_mag_size''' = 30 - размер магазина
-* ammo_class = ammo_5.56x45_ss190, ammo_5.56x45_ap - типы используемых патронов+* '''ammo_class''' = ammo_5.56x45_ss190, ammo_5.56x45_ap - типы используемых патронов
-* grenade_class = ammo_m209 - тип используемых гранат+* '''grenade_class''' = ammo_m209 - тип используемых гранат
-* fire_modes = 1, -1 - режимы ведения огня+* '''fire_modes''' = 1, -1 - режимы ведения огня
-* hand_dependence = 1 - засивимость о рук (?) - возможно, речь идет о качании ствола+* '''hand_dependence''' = 1 - засивимость о рук (?) - возможно, речь идет о качании ствола
-* single_handed = 0 - держится ли только в одной руке+* '''single_handed''' = 0 - держится ли только в одной руке
-* slot = 2 - слот в инвентаре+* '''slot''' = 2 - слот в инвентаре
-* animation_slot = 2 - вид анимации (для пистолета/для винтовки)+* '''animation_slot''' = 2 - вид анимации (для пистолета/для винтовки)
-* inv_name = wpn-g36 - ссылка на имя, отображаемое в инвентаре, тоже берется из string table, как и описание+* '''inv_name''' = wpn-g36 - ссылка на имя, отображаемое в инвентаре, тоже берется из string table, как и описание
-* inv_name_short = wpn-g36 - короткое имя; в данном случае используется то же самое+* '''inv_name_short''' = wpn-g36 - короткое имя; в данном случае используется то же самое
-* inv_weight = 3.6 - вес+* '''inv_weight''' = 3.6 - вес
-* inv_grid_width = 5 - координаты первого угла иконки по x+* '''inv_grid_width''' = 5 - координаты первого угла иконки по x
-* inv_grid_height = 2 - координаты первого угла иконки по y+* '''inv_grid_height''' = 2 - координаты первого угла иконки по y
-* inv_grid_x = 0 - координаты второго угла иконки по x+* '''inv_grid_x''' = 0 - координаты второго угла иконки по x
-* inv_grid_y = 10 - координаты второго угла иконки по y+* '''inv_grid_y''' = 10 - координаты второго угла иконки по y
===Четвертый раздел=== ===Четвертый раздел===
Строка 58: Строка 59:
Практически все параметры там снабжены комментариями, поэтому приведу лишь самые интересные: Практически все параметры там снабжены комментариями, поэтому приведу лишь самые интересные:
-* cam_relax_speed = 5.7;0.2 - скорость возврата в исходное положение+* '''cam_relax_speed''' = 5.7 - скорость возврата в исходное положение
-* cam_dispersion = 0.2 - увеличения угла (в градусах) с каждым выстрелом+* '''cam_dispersion''' = 0.2 - увеличения угла (в градусах) с каждым выстрелом
-* fire_dispersion_condition_factor = 5 - увеличение дисперсии в процентах при максимальном износе +* '''fire_dispersion_condition_factor''' = 5 - увеличение дисперсии в процентах при максимальном износе
-* misfire_probability = 0.003 - вероятность осечки при максимальном износе +* '''misfire_probability''' = 0.003 - вероятность осечки при максимальном износе
-* misfire_condition_k = 0.05 - порог (в данном случае - 5%), после которого оружие может заклинивать+* '''misfire_condition_k''' = 0.05 - порог (в данном случае - 5%), после которого оружие может заклинивать
-* condition_shot_dec = 0.0002 - увеличение износа при каждом выстреле+* '''condition_shot_dec''' = 0.0002 - увеличение износа при каждом выстреле
===Пятый раздел=== ===Пятый раздел===
Строка 70: Строка 71:
Здесь хранится множество параметров, из которых наиболее интересны эти: Здесь хранится множество параметров, из которых наиболее интересны эти:
-* hit_power = 0.50, 0.54, 0.57, 0.60 - сила выстрела+* '''hit_power''' = 0.50, 0.54, 0.57, 0.60 - сила выстрела
-* hit_impulse = 105 - импульс пули (?)+* '''hit_impulse''' = 105 - импульс пули (сила, которую летящая пуля передает жертве, влияет на поведение ragdoll-тела)
-* hit_type = fire_wound - тип причиняемых повреждений, в данном случае - пулевые ранения (параметр в синглплеере ни на что не влияет)+* '''hit_type''' = fire_wound - тип причиняемых повреждений, в данном случае - пулевые ранения (параметр в синглплеере ни на что не влияет)
-* fire_distance = 600 - максимальная дистанция для выстрела+* '''fire_distance''' = 600 - максимальная дистанция для выстрела
-* bullet_speed = 925 - начальная скорость пули+* '''bullet_speed''' = 925 - начальная скорость пули
-* hud = wpn_g36_hud - внешний вид оружия+* '''hud''' = wpn_g36_hud - внешний вид оружия
===Шестой раздел=== ===Шестой раздел===
-* position = -0.026, -0.132, 0.0 - позиция по отношению к игроку (?)+* '''position''' = -0.026, -0.132, 0.0 - позиция по отношению к игроку (?)
-* orientation = 0, 0, 0 - направление, в которое смотрит ствол (?)+* '''orientation''' = 0, 0, 0 - направление, в которое смотрит ствол (?)
===Седьмой раздел=== ===Седьмой раздел===
Строка 88: Строка 89:
Содержит описания визуальной стороны оружия и некоторые другие параметры: Содержит описания визуальной стороны оружия и некоторые другие параметры:
-* startup_ammo = 90 - как нетрудно догадаться, стартовое количество патронов (в синглплеере ни на что не влияет)+* '''startup_ammo''' = 90 - как нетрудно догадаться, стартовое количество патронов (в синглплеере ни на что не влияет)
-*visual = weapons\g36\wpn_g36.ogf - модель оружия, используемая NPC, а также игроком при виде от третьего лица+* '''visual''' = weapons\g36\wpn_g36.ogf - модель оружия, используемая NPC, а также игроком при виде от третьего лица
-* ph_mass = 4 - физическая масса, используемая при расчетах+* '''ph_mass''' = 4 - физическая масса, используемая при расчетах
-* scope_status = 1 - ситуация со съемным прицелом+* '''scope_status''' = 1 - ситуация со съемным прицелом
-* silencer_status = 0 - ситуация со съемным глушителем+* '''silencer_status''' = 0 - ситуация со съемным глушителем
-* grenade_launcher_status = 0 - ситуация с подствольным гранатометом+* '''grenade_launcher_status''' = 0 - ситуация с подствольным гранатометом
-Параметры:+* Параметры:
 +** '''0''' - нет, новый прикрепить нельзя
 +** '''1''' - уже есть, несъемный
 +** '''2''' - нет, но можно установить новый
-0 - нет, новый прикрепить нельзя +* '''zoom_enabled''' = true - есть ли зум (прицеливание)
-1 - уже есть, несъемный +* '''scope_zoom_factor''' = 33.3 - какой зум дает прицеливание (здесь - 1.8х)
-2 - нет, но можно установить новый+* '''scope_texture''' = wpn\wpn_crosshair_g36 - текстура прицельной сетки
-* zoom_enabled = true - есть ли зум (прицеливание)+* '''shell_point''' = 0.15, 0.0, -0.05 - точка вылета гильз
-* scope_zoom_factor = 33.3 - какой зум дает прицеливание (здесь - 1.8х)+* '''shell_dir''' = 0.0, 1.0, 0.0
-* scope_texture = wpn\wpn_crosshair_g36 - текстура прицельной сетки+
-* shell_point = 0.15, 0.0, -0.05 - точка вылета гильз+* '''fire_point''' = -0.000000,0.062000,0.134000 - точка выстрела
-* shell_dir = 0.0, 1.0, 0.0+* '''fire_point2''' = 0.30, 0.00, 0.05 - точка выстрела (2)
- +* '''fire_bone''' = wpn_body
-* fire_point = -0.000000,0.062000,0.134000 - точка выстрела+* '''orientation''' = 0, 0, 0 - направление
-* fire_point2 = 0.30, 0.00, 0.05 - точка выстрела (2)+* '''position''' = 0, 0, 0 - позиция
-* fire_bone = wpn_body+* '''visual''' = weapons\g36\wpn_g36_hud.ogf - модель, отображаемая у нас в руках
-* 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+''...\S.T.A.L.K.E.R\gamedata\config\text\rus\string_table_enc_weapons.xml''
-В нем хранятся строки с названиями и описаниями, на которые ссылаются конфиги оружия. Например, тот же G36 ссылается сюда:+В нем хранятся строки с названиями и описаниями, на которые ссылаются конфиги оружия. Например, тот же '''G36''' ссылается сюда:
<pre>[...] <pre>[...]
<string id="enc_weapons1_wpn-g36"> <string id="enc_weapons1_wpn-g36">
- <text>Штурмовая винтовка немецкого производства, представляющая собой первоклассный образец современного оружия - + <text>Штурмовая винтовка немецкого производства, представляющая собой первоклассный образец
-лёгкого, надёжного и эргономичного.\n Боеприпасы:\n обычный 5,56x45 мм SS109,\n бронебойный 5,56x45 мм АР.</text>+современного оружия - лёгкого, надёжного и эргономичного.\n Боеприпасы:\n обычный 5,56x45 мм
 +SS109,\n бронебойный 5,56x45 мм АР.</text>
[...] [...]
<string id="wpn-g36"> <string id="wpn-g36">
Строка 134: Строка 135:
Меняя их содержимое, мы меняем описания/названия данного оружия. Меняя их содержимое, мы меняем описания/названия данного оружия.
 +
 +==Изменение патронов==
 +
 +Параметры патронов хранятся в файле:
 +
 +''...\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 - визуальный размер дырки на стене от пули
==Авторы== ==Авторы==

Текущая версия

Содержание

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

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

...\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 - подтип, к которому принадлежит оружие
  • sprint_allowed = true - возможность спринта с этим оружием(false-выкл, true-вкл)

Второй раздел

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

Авторы

Статья создана:

Личные инструменты