配件数据进阶
配件数据进阶
配件作为可以影响枪械属性的重要物品,模组也提供了非常多的属性词条给配件,以此来达到影响枪械属性的效果,本章节列出目前所有可用可调整的属性以及对应的用法。
属性词条
目前可供配件进行调整的属性词条如下表:
属性词条 | 效果 |
---|---|
weight | 重量,会增加枪械总重,影响移速。 |
ads | 开镜时间,影响枪械的开镜时间。 |
inaccuracy | 腰际射击精度,影响非开镜状态下的射击精度。 |
aim_inaccuracy | 瞄准精度,影响开镜状态下的射击精度。 |
sneak_inaccuracy | 潜行射击精度,影响潜行状态下的射击精度。 |
lie_inaccuracy | 趴伏射击精度,影响趴伏状态下的射击精度。 |
effective_range | 射程,影响枪械的射程。(无实际效果) |
ammo_speed | 弹速,影响枪械开火后,子弹的速度。 |
pierce | 穿透,影响枪械子弹穿过实体的数量。 |
rpm | 射速,影响枪械每分钟射出弹药量。 |
silence | 消音,影响声音传播的范围以及是否使用专门的消音后的音源。 |
extended_mag_level | 弹药容量等级,影响扩容弹匣,调用对应等级的弹匣容量。 |
ignite | 点燃,影响枪械是否可以点燃实体或方块。 |
explosion | 爆炸,影响枪械是否可以造成爆炸。 |
recoil | 后坐力,影响枪械的开火后坐力。 |
damage | 伤害,影响枪械的伤害。 |
armor_ignore | 护甲穿透,影响枪械对原版护甲的伤害穿透。 |
head_shot | 爆头,影响枪械的爆头伤害。 |
knockback | 击退,影响枪械是否可以对实体造成击退。 |
melee | 刺刀,影响枪械是否可以使用刺刀近战以及相关的属性。 |
配件属性数值的运算
在深入了解不同属性的调整方式前,我们有必要先了解一下关于模组的属性数值相关的运算公式。
三个乘区
模组为配件修改枪械的属性数值提供了三种不同的乘区,来进行精确的属性数值调整
addend
加数,多个配件相加,作为第一个乘区。percent
百分比加数,1+多个配件相加,作为第二个乘区。multiplier
乘数,多个配件相乘,作为第三个乘区。
提示
绝大部分的属性的数值都可以用这三个乘区进行调整,并且可以同时应用多个乘区进行调整。
运算公式

最终属性 = [ 基础值 + Σ(配件 addend) ] × [1 + Σ(配件 percent) ] × Π(配件 multiplier)
其中:
Σ
表示求和 (所有配件数值相加)
Π
表示连乘 (所有配件数值相乘)
更通俗点来讲的话:
基础属性 → [加算乘区] → [百分比加算乘区] → [乘算乘区] → 最终属性
- [加算乘区] 为固定值相加
- [百分比加算乘区] 为百分比值相加
- [乘算乘区] 为乘数连乘
如果还看不懂的话,可以结合实际计算示例来理解:
假设:
武器基础射速(base)= 600 RPM
配件1:addend = 30, percent = 0.1, multiplier = 1.05
配件2:addend = 0, percent = 0.15, multiplier = 0.95
配件3:addend = -10, percent = 0, multiplier = 1.10
计算过程:
1.
加算乘区
:600 + (30 + 0 - 10) = 620 RPM2.
百分比加算乘区
:1 + (0.1 + 0.15 + 0) = 1.25 → 620 × 1.25 = 775 RPM3.
乘算乘区
:1.05 × 0.95 × 1.10 ≈ 1.09725 → 775 × 1.09725 ≈ 850 RPM最终射速:850 RPM
注意
尽管游戏内的枪械属性图表显示属性的数值时会隐藏小数点后两位或后一位,但是这并不代表以后的数值会被省略掉,它们依旧会参与计算的。

属性词条的用法
绝大部分的属性词条都能用 乘区 进行调整,以 ads (开镜时间) 为例:
{
"ads": {
// 加数(多个配件的数值相加,作为第一个乘区)
"addend": 0.03
// 百分比加数(1 + 多个配件相加,作为第二个乘区)
"percent": 0.2,
// 乘数(多个配件相乘,作为第三个乘区)
"multiplier": 1.2,
// 三个参数不需要全部写,可以自选其中的一个或多个(最终计算时会跳过没写的乘区)
}
}
因此这里只说明一些较为特殊的属性词条的用法。
weight (重量)
{
"weight": 0.34
}
- 以 千克(kg) 为单位,默认-1.5%移动速度/kg,直接填写数值,会增加至枪械的总重量,不能用 乘区 进行调整
silence (消音)
{
"silence": {
// 是否使用专门的消音后的音源
"use_silence_sound": true
}
}
- 消音后的枪声范围将调用枪械
data
里fire_sound
字段的数值
extended_mag_level (弹药容量等级)
{
// 扩容弹匣等级(1,2,3,分别对应调用枪械 data 中的三种弹匣容量)
"extended_mag_level": 1,
}
}
- 只能用在 弹匣配件 中
- 不同等级的弹匣弹容将调用枪械
data
里extended_mag_ammo_amount
字段的数值
ignite (点燃)
{
// 是否点燃目标(一但为 true,那么强行开启点燃)
"ignite": {
"entity": true,
"block": true
}
}
entity
为实体block
为方块- 最终会受模组的 config (配置) 影响
explosion (爆炸)
{
"explosion": {
// 一但为 true,那么强行开启爆炸,默认为 false
"explode": false,
"radius": {
// 里面填写参考三个乘区
},
"damage": {
// 里面填写参考三个乘区
},
// 一但为 true,那么强行开启击退,默认为 false
"knockback": false,
// 一但为 true,那么强行开启破坏方块,默认为 false
"destroy_block": false,
"delay": {
// 里面填写参考三个乘区
}
}
}
radius
为爆炸半径,可用 乘区 进行调整damage
为爆炸伤害,可用 乘区 进行调整delay
为延时爆炸,以 秒(s) 为单位,从开火那一刻开始计时,可用 乘区 进行调整- 是否可以破坏方块,最终会受模组的 config (配置) 影响
注意
因为同步问题,使用delay
延时爆炸功能,子弹可能会出现客户端和服务端各走各的问题
recoil (后坐力)
{
// 后坐力配置
"recoil": {
// 水平后坐力配置
"yaw": {
// 里面填写参考三个乘区
},
// 垂直后坐力配置
"pitch": {
// 里面填写参考三个乘区
}
}
}
yaw
为水平后坐力,可用 乘区 进行调整pitch
为垂直后坐力,可用 乘区 进行调整
melee (刺刀)
{
"melee": {
// 刺刀距离参数,枪械里还有个刺刀攻击距离参数,两者做加和
"distance": 2,
// 刺刀范围角度
"range_angle": 45,
// 刺刀冷却时间,枪械里还有个刺刀冷却时间参数,两者做加和
"cooldown": 0,
// 伤害值
"damage": 6,
// 击退效果
"knockback": 0.4,
// 前摇时长,单位:秒
"prep": 0.1
// 额外效果
"effects": [
// 可以添加多个效果
{
// 效果 ID
"id": "minecraft:poison",
// 时长,秒
"time": 5,
// 效果等级
"amplifier": 1,
// 是否显示粒子效果
"hide_particles": true
}
]
}
}