供弹
大约 2 分钟
供弹
本页介绍供弹方式、无限备弹以及换弹时长的配置。
供弹方式 reload.type
必填,枚举类型。决定弹药从备弹进入枪械的机制。
| 值 | 说明 |
|---|---|
magazine | 弹匣供弹(默认),换弹时从备弹中一次性补充弹药 |
manual | 手动供弹,换弹结束时不做任何补弹操作,弹药装填由枪械逻辑脚本自行控制 |
fuel | 燃料罐供弹,消耗一个燃料罐物品一次性填满 |
inventory | 背包直读,直接从玩家背包中读取弹药数量,无需弹匣物品 |
"reload": {
"type": "magazine"
}提示
默认枪包中绝大多数枪械使用 magazine 模式。inventory 模式见于 minigun 等特殊枪械,fuel 在默认枪包中未使用,但模组本身支持。
警告
manual 为残缺实现,换弹时无法正常补充弹药,弹药装填逻辑需要脚本自行处理。除非你清楚自己在做什么并有对应的脚本支持,否则不建议使用。
无限备弹 reload.infinite
可选,布尔值。开启后换弹不消耗备弹,默认 false。
"reload": {
"type": "magazine",
"infinite": true
}注意
此项与背包直读模式(reload.type 为 inventory)不兼容。
换弹时长
换弹时长由两个时间点控制:
- feed:子弹补充时间点。到达此时刻,服务端将弹药写入枪内。此值应在动画中"弹匣插入"动作对应的时间附近。
- cooldown:冷却完成时间点。到达此时刻,枪械才能进行开火、检视等行为。此值应略大于 feed,覆盖"拍击卡榫"等后续动作。
两个时间点各自分为空仓和战术两种情况:
| 键 | 场景 | 说明 |
|---|---|---|
feed.empty | 空仓换弹 | 膛内无弹,弹匣打空后的换弹 |
feed.tactical | 战术换弹 | 膛内有弹,未打空时主动换弹 |
cooldown.empty | 空仓换弹 | 空仓换弹的总冷却时间 |
cooldown.tactical | 战术换弹 | 战术换弹的总冷却时间 |
"reload": {
"feed": {
"empty": 2.25,
"tactical": 1.55
},
"cooldown": {
"empty": 2.6,
"tactical": 2.0
}
}警告
feed 的值必须小于等于对应的 cooldown,否则枪械将永远无法完成换弹。
空仓换弹 vs 战术换弹
空仓换弹通常比战术换弹多一个"拉栓上膛"的动作,因此 empty 的两个时间值一般大于对应的 tactical 值。
提示
换弹时长的值需要与动画文件中的实际动作时长匹配。建议先完成动画,再将关键帧的时间戳填入此配置。
另请参见:display - 动画与状态机 —— 换弹动画文件和状态机脚本在 display 中指定。