Мод «Archery Nexus [Fixed] (B42)» на Project Zomboid
Форк мода Archery Nexus [V2] с исправлениями для Build 42. Весь игровой контент (модели, текстуры, звуки, анимации) принадлежит оригинальному автору. Мод несовместим с оригинальной версией ArcheryNexus.
Содержимое мода:
- Примитивный лук (Base.Primitive_Bow) — бесшумное оружие дальнего боя.
- Деревянные стрелы (Base.WoodShaft_Arrow, тип боеприпаса archerynexus:woodshaft_arrow).
- Колчан (Base.Primitive_Quiver) — контейнер для стрел с поддержкой аттачментов REX5BowBack и REX5.
- Материалы и рецепты для изготовления стрел (флетчинга): осколки стрел, оперение из куриных перьев, тетива, сборка лука. Включено 5 рецептов в файле recipes_fletching.txt.
- Предметы добавлены в таблицы лута: PoliceStorageGuns, HuntingLockers, GunStore*, ArmyStorageGuns, BedroomDresser и другие.
Исправления по сравнению с оригиналом:
- Устранен вылет игры (краш) при перезарядке без предмета в руке (ошибка nil getPrimaryHandItem).
- Исправлена невозможность сесть в транспорт после перезарядки (проблема с resetEquippedHandsModels каждый тик).
- Исправлены ошибки захвата трупа и работы с контейнерами на сервере (некорректный вызов setAnimVariable в серверном контексте).
- Устаревший метод setAnimVariable заменен на setVariable.
- Исправлен десинхронизация перезарядки, из-за которой стрела оставалась в состоянии «не готова к выстрелу» (добавлено исправление пре-синхронизации в ISReloadWeaponAction).
Патчи совместимости для B42:
1. Исправление клавиш перезарядки/взвода (AN_Reload_Fix.lua)
- События Events.OnPressReloadButton.Add и Events.OnPressRackButton.Add принудительно устанавливают WeaponReloadType="REX5", если основным предметом в руке является Primitive_Bow.
- Глобальный monkey-patch: заменяет ISBaseTimedAction.setAnimVariable (оригинал сохраняется в ISBaseTimedAction.AR_ReloadKeyFix). Влияет на ВСЕ timed actions в игре.
- Мод перестанет работать, если TIS изменит сигнатуру setAnimVariable или если другой мод обернет этот метод без цепочки вызовов.
2. Синхронизация перезарядки лука (BowReloadFix.lua)
- Monkey-patch методов ISReloadWeaponAction.animEvent и ISRackFirearm.start для предотвращения рассинхронизации состояния лука.
- Мод перестанет работать, если TIS изменит сигнатуру этих методов.
3. Состояние прицеливания (R5_AimState.lua)
- Событие Events.OnEquipPrimary.Add устанавливает переменную анимации BowInUse.
- Событие Events.OnPlayerUpdate.Add запускает REX5UpdateBow, который меняет спрайт оружия в зависимости от заряженного боеприпаса (каждый тик).
- Событие Events.OnHitZombie.Add заставляет стрелу застревать в зомби через метод setAttachedItem (Rex5AIZ).
4. Переопределение хотбара
- Полная замена метода ISHotbar:getSlotForKey (переназначение слотов 1-20) плюс глобальные привязки клавиш для слотов 6-20.
- Конфликтует с любым другим модом, изменяющим хотбар (например, AuthenticZ).
- Если TIS переписывает ISHotbar, требуется обновление этого патча.
5. Изменение таблиц лута
- Прямая мутация ProceduralDistributions.list[...] при загрузке: PoliceStorageGuns, HuntingLockers, GunStoreShelf/Counter, ArmyStorageGuns, BedroomDresser и др.
- Если TIS переименует какой-либо список, возникнет ошибка при запуске сервера.
6. Теги предметов / типы боеприпасов / реестр аттачментов
- Регистрация через ItemTag.register, AmmoType.register, вставки ISHotbarAttachDefinition (REX5, REX5BowBack), создание или получение AttachedLocations (REX5, REX5Quiver*, REX5BowBack).
Настройки песочницы: отсутствуют.
Быстрая проверка обновлений B42: если методы ISBaseTimedAction.setAnimVariable, ISReloadWeaponAction.animEvent, ISRackFirearm.start, ISHotbar:getSlotForKey и имена списков ProceduralDistributions остаются неизменными, мод работает корректно.
Техническая информация:
- Workshop ID: 3731579266
- Mod ID: ArcheryNexusFixed
| Билд Project Zomboid | |
Le Dodique
→
The Boys! update 4

![Nature's Call [B42.17+ MP] Nature's Call [B42.17+ MP]](/upload/000/u1/9/a/9ae9e7ad.webp)





![EZRoof [B42.15 SP/MP] EZRoof [B42.15 SP/MP]](/upload/000/u1/6/c/394ffee2.webp)

![Archery Nexus [Fixed] (B42) Archery Nexus [Fixed] (B42)](/upload/000/u1/b/a/bab09ffa.webp)