本篇教程由作者设定未经允许禁止转载。

配置文件结构

Better Combat的配置文件在config中含有三个文件,这里根据不同文件分开来解析。

[1.20.1]Better Combat配置文件中文解析-第1张图片


client.json5

客户端配置文件

{
"isHoldToAttackEnabled": true,
#是否允许按住按钮自动进行攻击。
"isMiningWithWeaponsEnabled": true,
#是否允许使用武器开采方块。
"isSwingThruGrassEnabled": true,
#是否允许攻击穿草。
"isAttackInsteadOfMineWhenEnemiesCloseEnabled": true,
#是否允许敌人在武器攻击范围内时进行攻击而不是开采方块。
"isHighlightCrosshairEnabled": true,
#是否允许敌人在攻击范围内的时候凸显十字线。
"hudHighlightColor": 16711680,
#敌人在攻击范围内的时候凸显十字线的颜色。
"isShowingArmsInFirstPerson": false,
#是否允许在第一人称的攻击动画中渲染玩家手臂。
"isShowingOtherHandFirstPerson": true,
#是否允许在第一人称的攻击动画中渲染不使用武器的手臂。
"isSweepingParticleEnabled": true,
#是否允许产生横扫攻击粒子效果。
"isTooltipAttackRangeEnabled": true,
#是否允许在武器的工具标签上提示攻击距离。
"weaponSwingSoundVolume": 100,
#武器挥舞时的音量大小(这里以百分比表示)。
"isDebugOBBEnabled": true,
#是否允许在显示实体碰撞箱时也显示武器攻击判定范围。
"swingThruGrassBlacklist": "farmersdelight",
#攻击穿草的黑名单,带有此ID的物品攻击不再穿草。
"mineWithWeaponBlacklist": ""
#开采方块的黑名单,带有此ID的物品不再能开采方块。
}


fallback_compatibility.json

用于修改自动判定武器类型的正则表达式。

说白了这个文件就是用来根据武器ID字段来判断武器类型的。

注意这里的ID指的是武器的物品ID。

{
  "schema_version": 1,
#表格版本号。
  "blacklist_item_id_regex": "pickaxe",
#ID中含有此字段的物品不会被自动判定武器类型。
#下面是近战武器自动判定的文件主体,这里仅举一例来讲,剩下没讲的是其他类型的武器,主体格式是完全一样的。
  "fallback_compatibility": [
    {
      "item_id_regex": "claymore|great_sword|greatsword",
#与下行对应,将id中含有claymore|great_sword|greatsword相关字段的武器自动判定为下行中的武器类型。
      "weapon_attributes": "bettercombat:claymore"
#与上行对应,将id中含有相关字段的武器自动判定为bettercombat:claymore武器类型。
    }
  ],
#下面是远程武器自动判定的文件主体。
  "ranged_weapons": [
    {
      "item_id_regex": "two_handed_crossbow",
#与下行对应,将id中含有two_handed_crossbow相关字段的武器自动判定为下行中的武器类型。
      "weapon_attributes": "bettercombat:crossbow_two_handed_heavy"
#与上行对应,将id中含有相关字段的武器自动判定为bettercombat:crossbow_two_handed_heavy武器类型。
    },
    {
      "item_id_regex": "two_handed_bow",
#与下行对应,将id中含有two_handed_bow相关字段的武器自动判定为下行中的武器类型。
      "weapon_attributes": "bettercombat:bow_two_handed_heavy"
#与上行对应,将id中含有相关字段的武器自动判定为bettercombat:bow_two_handed_heavy武器类型。
    }
  ]
}


server.json5

服务端配置文件。

这里以我的解析代替了作者注释。

{
"upswing_multiplier": 0.5,
#攻击前摇所占攻击速度的比例(此处的0.5为50%)。
"allow_fast_attacks": true,
#玩家攻击是否无视无敌帧。
"allow_attacking_mount": false,
#是否允许对玩家当前骑乘的实体执行客户端目标搜索和服务器端攻击请求。
"attack_interval_cap": 2,
#两次攻击之间的最小tick数。
"hostile_player_vehicles": [
#敌对的玩家坐骑(就是那些会通过强行令玩家骑乘造成伤害的生物)。
"alexsmobs:crocodile"
],
"allow_vanilla_sweeping": false,
#是否启用原版的横扫攻击。
"allow_reworked_sweeping": true,
#是否启用本模组重做的横扫攻击系统。
以下提到的横扫攻击系统都指本模组重置的横扫攻击系统。
"reworked_sweeping_extra_target_count": 4,
#横扫攻击系统额外横扫目标数。
"reworked_sweeping_maximum_damage_penalty": 0.5,
#横扫攻击额外横扫目标时的最大减伤率(此处的0.5为50%)。
该模组横扫攻击攻击额外目标时会因目标数量而降低伤害,具体体现为额外目标会有一个横扫减伤。
"reworked_sweeping_enchant_restores": 0.5,
#满级横扫攻击附魔能无视多少的横扫减伤率(此处的0.5为50%)
"reworked_sweeping_plays_sound": true,
#横扫攻击是否发出声音。
"reworked_sweeping_emits_particles": true,
#横扫攻击是否产生粒子效果。
"reworked_sweeping_sound_and_particles_only_for_swords": true,
#重置的横扫攻击系统是否仅适用于武器。
"allow_attacking_thru_walls": false,
#是否允许攻击穿墙。
 movement speed penalty
"movement_speed_while_attacking": 0.0,
#攻击时的速度百分比(此处0为0%速度就是无法移动,1为100%速度就是攻击时不会减速)。
"movement_speed_applied_smoothly": true,
#攻击减速是否平滑地施加在玩家身上。
"movement_speed_effected_while_mounting": false,
#骑乘时是否受到攻击减速影响。
"knockback_reduced_for_fast_attacks": true,
#攻速越快的武器是否会造成越小的击退。
"combo_reset_rate": 5.0,
#武器连招重置的速率(数字越高连招重置越慢)。
"target_search_range_multiplier": 2.0,
#在两侧的目标查找过程中时,攻击距离的额外倍数(大型实体可能会与武器判定箱碰撞,但实体中心的距离可能比攻击距离大)。
"dual_wielding_attack_speed_multiplier": 1.5,
#双持武器时攻击速度倍率。(此处1.5为1.5倍)
"dual_wielding_main_hand_damage_multiplier": 1.0,
#双持武器时主手武器攻击伤害倍率。(此处1.0为1.0倍)
"dual_wielding_off_hand_damage_multiplier": 1.0,
#双持武器时副手武器攻击伤害倍率。(此处1.0为1.0倍)
#下文中FRIENDLY,NEUTRAL与HOSTILE为三种可用的攻击判定类型。
FRIENDLY - 目标不会被玩家攻击伤害。
NEUTRAL - 目标仅会被玩家直视时的攻击伤害。
HOSTILE - 目标如果处在玩家的攻击判定箱中就会受到玩家的攻击伤害。
"player_relations": {
#玩家攻击对特定生物的攻击判定类型。
"minecraft:player": "NEUTRAL",
"minecraft:villager": "NEUTRAL",
"minecraft:iron_golem": "NEUTRAL",
"guardvillagers:guard": "NEUTRAL"
},
"player_relation_to_passives": "HOSTILE",
#玩家攻击对被动生物的攻击判定类型。
"player_relation_to_hostiles": "HOSTILE",
#玩家攻击对敌对生物的攻击判定类型。
"player_relation_to_other": "HOSTILE",
#玩家攻击对其他生物的攻击判定类型。
"fallback_compatibility_enabled": true,
#决定前文中的fallback_compatibility.json文件内容是否启用,启用后将自动为没有预先注册的武器自动注册武器类型。
"weapon_registry_logging": false
#是否允许输出武器属性注册表的内容。
}