Оружие теперь заряжается не напрямую патронами из пачек, а магазинами/обоймами/лентами, которые, в свою очередь, набиваются уже патронами из пачек.
Набиваются в реальном времени, халявы не будет. Соответственно, набить патронами 100 патронную ленту пулемета будет чуть быстрее, чем попить кофе в реале и набить обойму ПМ.
Разумеется там, где обойм/магазинов быть не должно, их и нет. Это относится к двустволкам, помповым ружьям, подствольникам (наконец-то обрабатываются адекватно) и т.п. - ко всему, куда N патронов не заряжается как одно целое.
"Управление"
Зарядка магазина:
Для заряжания/разряжания магазина нужно поместить его на пояс. Можно сразу несколько, будут заряжаться по очереди.
После закрытия инвентаря нажать 5 - выбор бинокля. Бинокль сбрасывается в инвентарь. Это не предмет срочной необходимости.
Зарядка и смена типа патронов - стандартные кнопки для этих действий, разрядка - выстрел.
Если в процессе зарядки закончатся патроны заряжаемого типа, или магазин будет заряжен до максимума, зарядка автоматом завершается.
Зарядку можно остановить в любой момент, если выбрать другое оружие или снова нажать 5. Бинокль вернется в слот, а магазин выпадет в инвентарь. Чтобы снова работать с ним, нужно снова поместить его на пояс.
Зарядка оружия:
Работает заряжние с нуля и смена типа боеприпасов в любой момент. Разрядить оружие можно через инвентарь. Дозаряжание не работает, и с этим ничего сделать нельзя - ограничение схемы. Чтобы дозарядить, придется сначала разрядить оружие через инвентарь. Не так уж и страшно, под огнем все равно никто с полмагазина перезаряжать не будет. При осечке оружие не дозаряжается, просто устраняется клин.
"Благодарности"
Спасибо создателям "Биорадара", и особенно tolusha за технологию определения предметов на поясе.
Версия игры: Сталкер ТЧ 1.004
Список изменений/нововведений:
- Оружие заряжается магазинами.
- Возможны магазины разной емкости на одном и том же оружии.
- Возможно зарядить оружие не полностью заряженным магазином, не заряжается только полностью пустыми.
- В бою не важно, сколько патронов осталось в пачках, гораздо важнее, сколько осталось заряженных магазинов.
- В счетчике патронов показано количество доступных для заряжания магазинов вместо количества оставшихся патронов.
Наконец-то вышла полная версия мода.
Установка:
Поместить в папку gamedata папки meshes, sounds и textures из архива - в них содержатся общие для обеих версий файлы.
Поверх них скопировать содержимое папок 1.0004 или АМК, в зависимости от того, какая версия нужна.
Заряжаемые в слоте бинокля магазины в mp_ranks прописывать не нужно, при смерти с ними вылета быть не должно.
"ReadMe"
В полной версии я не стал вырезать магазины для оружия, которого нет в оригинале - много кому они понадобятся. Магазины сделаны для того оружия, что есть в моей сборке, но не факт, что это все необходимые магазины на все случаи жизни.
Модели и текстуры магазинов выдраны из существующего оружия, по необходимости доработаны/переработаны и приведены к некому общему знаменателю.
Гаусс-пушка теперь тоже использует магазины, но, в отличие от обычных магазинов, магазины для Гаусса дозаряжать своими силами нельзя. Слишком специфичная у них конструкция, чтобы делать это в полевых условиях.
Реализована поддержка спидлодеров для револьвера. Разница с обычным магазином в том, что при зарядке оружия с помощью спидлодера пустой спидлодер выпадает в инвентарь сразу, а при разрядке оружия вместо спидлодера выпадают обычные патроны.
При покупке револьвера или получения его в диалоге один пустой спидлодер дается автоматически.
Теоретически, можно многократно покупать и продавать револьвер (да и любое оружие с магазинным питанием, только его надо будет разряжать) и собирать халявные спидлодеры (магазины). На деле, при правильно настроенной торговле, это должно быть крайне невыгодно по сравнению с покупкой оружия и магазинов к нему.
Для всего оружия, где это имеет смысл (автоматы в основном, разъемы магазинов у них стандартные), прописаны разные емкости магазинов. Дисковые магазины (хоть их и нет в оригинале) не ставятся на оружие со схемой буллпап. В теории вфоткнутся, но на практике будут мешать целиться.
Все пустые магазины (с окончанием "_е") автоматически получают condition = 0. Все магазины, которые при первоначальном спавне оказались не у актора - condition = 0,995 = полный магазин. Все магазины, которые спавнятся в инвентаре актора, имеют condition = 1, и рассматриваются как "один патрон, извлеченный из оружия при разрядке", поэтому они сразу преобразуются в обычные магазины с condition <= 0,995. Поэтому если просто заспавнить магазин в инвентарь актору, в нем окажется всего один патрон.
Чтобы все-таки выдать актору полный магазин, нужно пользоваться функцией ammo_manager.give_loaded(секция_магазина).
Выдавать таким образом секцию пустого магазина с окончанием "_е" нет смысла, полным он не станет, и в магазин с одним патроном не преобразуется, так и останется пустым. Тут достаточно обычного спавна.
Все оружие, получаемое актором в диалогах или при торговле, становится полностью заряженным. Количество патронов в оружии, подбираемом с трупов, определяется death_manager-ом. Все остальное оружие на магазинном питании - изначально лежащее на земле или в тайниках - заряжено только одним патроном.
Добавление новых магазинов, а также что и зачем:
Допустим, надо добвить магазин 5,45х39 на 60 патронов. Редкий, но существующий.
Находим уже существующий магазин, например, на 30
Магазин на 30 патронов 5,45х39
[wm_5.45x39a30]:wm
ammo_mag_size = 30
ammo_class = ammo_5.45x39_fmj, ammo_5.45x39_ap
charged0 = mag_30_5.45x39_fmj
charged1 = mag_30_5.45x39_ap
inv_weight = 0.203
visual = weapons\magazines\mag_30_545x39.ogf
hud = mag_30_545x39_hud
[wm_5.45x39b30]:wm
ammo_mag_size = 30
ammo_class = ammo_5.45x39_ap, ammo_5.45x39_fmj
charged0 = mag_30_5.45x39_ap
charged1 = mag_30_5.45x39_fmj
inv_weight = 0.203
visual = weapons\magazines\mag_30_545x39.ogf
hud = mag_30_545x39_hud
[mag_30_545x39_hud]:wm_hud
visual = weapons\magazines\mag_30_545x39_hud.ogf
[mag_30_5.45x39_fmj]:ammo_5.45x39_fmj
box_size = 1
mag_size = 30
script_binding = ammo_manager.init
wm_section = wm_5.45x39a30
inv_name = mag_30_5.45x39
description = desc_load_5.45x39_fmj
inv_name_short = mag_30_5.45x39_fmj_s
inv_weight = 0.0105
belt = true
inv_grid_width = 1
inv_grid_height = 1
inv_grid_x = 38
inv_grid_y = 2
visual = weapons\magazines\mag_30_545x39.ogf
cost = 120
[mag_30_5.45x39_ap]:ammo_5.45x39_ap
box_size = 1
mag_size = 30
script_binding = ammo_manager.init
wm_section = wm_5.45x39b30
inv_name = mag_30_5.45x39
description = desc_load_5.45x39_ap
inv_name_short = mag_30_5.45x39_ap_s
inv_weight = 0.0105
belt = true
inv_grid_width = 1
inv_grid_height = 1
inv_grid_x = 38
inv_grid_y = 2
visual = weapons\magazines\mag_30_545x39.ogf
cost = 120
[mag_30_5.45x39_fmj_e]:mag_30_5.45x39_fmj
description = desc_mag_e
inv_weight = 0.203
[mag_30_5.45x39_ap_e]:mag_30_5.45x39_ap
description = desc_mag_e
inv_weight = 0.203
Здесь видим три пары секций: заряжаемый магазин, заряженный магазин (от 1 патрона до максимума, неважно), пустой магазин - три основных типа * два типа боеприпасов в калибре 5,45х39.
Совместимость и возможные проблемы:
В архиве две версии, под чистую игру и под АМК 1.4.1
Мод сделан под 4 патч, на других не тестировался.
Врядли совместим с патронами на поясе.
Вес заряженного магазина в инвентаре отображается (но только отображается) неправильно - издержки движка. Общий вес считается верно.
В папке bonus находится файл xrGame.dll для 4 патча (автор malandrinus) для предотвращения вылета из-за не прописанного в mp_ranks оружия. При желании поместить в папку bin, создание резервной копии xrGame.dll приветствуется. Установка этого файла необязательна.