
无限弹药
所有远程武器真正无限弹药。永久开火,再也不用制造一颗子弹。
查看大图无限弹药
所有远程武器真正无限弹药。永远开火,从此无需再制作一枚子弹。
这个模组的作用
这是 完整沙盒/作弊模式 的 NoReloadWeapons 配套内容。对你装备的每个远程武器都结合了两种效果:
- 无限弹药 — 永远不会播放换弹动画(仅限枪械)。
- 库存返还 — 每次射击后,下一帧会自动将弹药返还至库存。每次射击的净弹药变化:零。
结果:你的库存子弹数量永远保持不变。连续射击加特林一小时,你的弹药储备数字仍会与开始时一模一样。你再也无需制作任何子弹了。
弓和弩获得仅退还处理——它们的箭矢正常搭箭和射击,但消耗的箭矢会立即返还到你的箭袋中。
想要一个不那么激进的版本吗?
姐妹模组 NoReloadWeapons 会给你无限弹匣,但 仍会消耗你背包中的弹药 —— 因此弹药制作和资源管理依然重要。请二选一安装,不要同时安装两者。
本模组未涉及的内容
- 捕捉球 — 保持原版不变。自由捕捉会破坏整个核心游戏循环。
- 工具 — 镐、斧、锤、水壶使用不同的耐久度系统,本模组不干预。
- 近战武器 — 棍棒、小刀、剑保持原版设置。
- NPC武器 — 敌方士兵仍正常消耗弹药。走错路也不会获得不公平的优势。
- 炮塔和基地防御发射器 — 默认情况下保持不变。
- 安装武器 — 默认未触碰。
支持的武器
枪械(无限弹匣 + 回弹)
- 突击步枪 / 简易突击步枪
- 手枪
- 狙击步枪 / 企鹅发射器
- 火焰喷射器
- 加特林机枪
- 多管导弹发射器
- 榴弹发射器
- 很可能还有:霰弹枪、火箭发射器、单发枪
弓级(仅退款)
- 复合弓
- 十字弩
如果你有一把该模组似乎无法影响的远程武器,请打开 UE4SS.log 并查找类似以下内容的行:
[UnlimitedAmmo] 职业=...首次发现武器类型=N (处理方式: ...)
在评论中发布该行——整数将在下一版本中添加。
安装
要求: UE4SS 3.0.1+(从官方GitHub下载最新版本)。
漩涡(推荐)
- 请先安装 UE4SS。
- 点击上方的 模组管理器下载。
- 在Vortex中部署模组,就这样。
手动安装
- 如果尚未安装,请安装 UE4SS。
- 从此页面下载存档。
- 将 UnlimitedAmmo 文件夹解压至
\Pal\Binaries\Win64\ue4ss\Mods\ - 打开
\Pal\Binaries\Win64\ue4ss\Mods\mods.txt并添加一行:UnlimitedAmmo : 1 - 启动游戏。
验证它是否有效
打开 \Pal\Binaries\Win64\ue4ss\UE4SS.log 并搜索 [UnlimitedAmmo]。你应该看到像这样的行:
[UnlimitedAmmo] Hooked PalShooterComponent:OnShootBullet
[UnlimitedAmmo] 退还子弹 'RoughBullet' (WeaponType=3)
第二行在你首次使用该武器射击时,每种子弹类型会出现一次。
配置
编辑 \Pal\Binaries\Win64\ue4ss\Mods\UnlimitedAmmo\config.txt。修改后请重启游戏。
- 模式 —
无限弹匣(默认)。 - 滤镜模式 —
FIREARMS(默认,推荐)。使用白名单/BLACKLIST用于覆盖特定的武器类型整数。 - 白名单类型 / 黑名单类型 — 用逗号分隔的武器类型整数。
- AFFECT_STATIONARY / AFFECT_MOUNT_WEAPONS — 同时默认为
false。 - LOG_LEVEL —
INFO(默认)DEBUG安静。
兼容性
- 单人:已测试,有效。
- 合作模式(主机):主机应能正常工作。其他玩家也需要安装此模组。
- 专用服务器:尚未经过测试。退款机制使用
AddItem_ServerInternal这是一个服务端内部调用,所以它应该在专用服务器上有效,但欢迎报告反馈。 - 其他模组:无已知冲突。与大多数生活质量模组和内容模组兼容。
- 存档文件:100%安全。此模组不会修改存档数据 —— 它仅将引擎移除的物品重新添加回来。
工作原理(技术说明,可选阅读)
这个模组写起来比看起来要难。经过九次迭代,最终可行的方案是:
- 钩子
PalShooterComponent:OnShootBullet(不是使用子弹或者RequestConsumeItem——这些不会在实际的射击路径上触发。 - 从子弹名称中读取
PalWeaponBase.BulletItemName作为名称属性(非调用GetRequiredBulletName()— 其输出参数签名在 UE4SS Lua 中会抛出异常。 - 通过 FName 进行转换
raw:ToString()(非tostring(raw)返回垃圾内容)。 - 通过以下方式获取库存
PalUtility:GetLocalInventoryData(world)通过CDO(非FindFirstOf("PalPlayerInventoryData")可能会返回错误的实例。 - 通过退款
AddItem_ServerInternal(不RequestAddItem(该请求会被静默丢弃)。 - 通过一个滴答延迟退款
ExecuteWithDelay(0)这样引擎的递减操作会先执行。
如果这些步骤中的任何一个失败了,模组会静默地不执行任何操作,或者退还给一个幽灵库存。所有这些失败模式都在测试中观察到了——每一个。
已知限制
- 工具(镐、斧等)通过不同的机制消耗耐久度
OnShootBullet不进行拦截。它们不受此模组影响,这是设计使然。 - 捕捉球被有意保留为原版风格——让捕捉变得过于简单会削弱游戏的核心循环。如果你真的想要无限球,上游的作弊控制台可以实现这一点。
- 退款会在库存计数器上产生一帧的-1/+1"闪烁",通常肉眼不可见,但在慢动作镜头中可以看到。
致谢与许可
- 由 DresseurNomade 和 YellowChick 制作。
- 构建于 UE4SS — 去支持他们吧。
- 许可: 任意使用,只需注明来源。欢迎分叉和变体——但不要以不同名称重新打包此确切模组。
报告问题
如果某个功能没有按预期工作:
- 重现该问题。
- 打开
\Pal\Binaries\Win64\ue4ss\UE4SS.log。 - 复制包含内容的行
[UnlimitedAmmo]。 - 请将其发布在 Bug 标签页中,并附上你的操作描述。日志能告诉我们所需信息的 90%。
如果你也喜欢生存大修模组,可以看看我的另一个模组 PalOverhaul:生存版。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。