
Epic Fight - EDP(扩展数据包)
能够让你使用数据包把被动技能添加到类别,以及在样式、冲刺攻击以及其他一些功能中使用技能数据键(SkillDatakeys)。
Extended Datapacks
使用新的系统扩展 Epic Fight 数据包,例如被动技能、数据键逻辑、蓄力攻击、着色器以及高级自定义……等等!
✨ 功能
通过 JSON 添加被动技能
使用技能数据键(布尔值、整数、浮点数 + 比较器)
创建蓄力攻击
通过缩放与使用方法修复相机问题
添加高级挥舞轨迹
使用按风格切换模型
通过 JSON 扩展技能构建器
通过数据包执行 ShaderFX
通过 JSON 添加类别
执行叠加层
创建天生技能(简单、可保持与条件型)
🧭 路线图
系统与着色器 II v2.2 重制 ✔️
未来构想
计时型天生技能与条件可保持型天生技能 (目前这个胜出!)
动画相机数据包(1.20.1)
技能书(闪避/格挡/通用)
📚 新维基!
该信息仅对 2.2 版本有效
https://github.com/Sleys-g/ExtendedDatapacks/wiki
📦 核心系统
🔹 被动技能 (v1.0)
为武器类别分配被动技能:
"passive_skill": "namespace:skill_id"
⚠ 重要 某些被动武器技能需要一个天生技能。 错误的组合可能导致崩溃。
🔽 更多详情(进阶)
点击展开
被动技能实现后的效果图,请注意这仅适用于“武器被动技能”,使用其他技能将无效。

🔹 技能数据键 (v1.1+)
允许使用技能数据进行条件逻辑判断。
支持的类型
- 布尔值
- 整数
- 浮点数
基础示例
"skill_data_key": "namespace:path",
"expected_value": true
浮点示例(需要容差)
"skill_data_key": "namespace:path",
"expected_value": 2.5,
"tolerance": 0.01
更多详情
点击展开
在此案例中,我们来看一个如何使用技能数据键与先前特性(被动技能)协同工作的例子。
此处,我们使用打刀的被动技能,该技能允许“收刀”入鞘。一旦此被动生效且值为 True,我们就切换到“收刀”风格。

这支持在谓词中使用以下列表:
- passive_skill_boolean_data_key
- passive_skill_float_data_key
- passive_skill_integer_data_key
- innate_skill_boolean_data_key
- innate_skill_float_data_key
- innate_skill_integer_data_key
对于布尔值,你需要添加技能数据键和期望的值: "skill_data_key": "namespace:path", "expected_value": true
对于整数,你需要添加技能数据键和期望的值: "skill_data_key": "namespace:path", "expected_value": 5
对于浮点数,你需要添加技能数据键、期望的值和一个容差: "skill_data_key": "namespace:path", "expected_value": 2.5, "tolerance": 0.01
⚠ 请确保对每个键使用正确的值 ⚠
🔹 技能数据键 – 比较器 (v1.2+)
增加对以下运算符的支持:
>, <, ==, !=, >=, <=
示例
"skill_data_key": "modid:charge",
"comparison_type": ">",
"expected_value": 5
🧠 内部工作原理如下:
X | Comparison | Value
8 > 5
🔽 更多详情(进阶)
点击展开
理论实现示例

这里有一把武器,当它的天生技能充能超过“5”层时,便会从双持姿态切换到剑柄格(Ochs)姿态,直到“充能”层数小于或等于 5。
请记住,在处理浮点数时添加 ""tolerance": 0.X" ....
💡 好习惯!
有一点需要补充的是,为了更好地理解,将操作这样排序会很有帮助:
"skill_data_key": "modid:charge",
"comparison_type": ">",
"expected_value": 5
因为比较实际上是这样工作的: SkillKey | Comparison Type | ExpectedValue.
X | Comparison Type | Constant.
8 > 5.
🔹 蓄力攻击 (v1.3 & v1.8.4+)
按住某个键进入蓄力模式。
效果
- +20% 伤害
- -15% 攻击速度
- 可选的耐力消耗
行为
- 不会重置连击
- 可以混合普通攻击和蓄力攻击
示例连击
1AA → 2CAA → 3AA → CDA
🔽 更多详情(进阶)
点击展开
当玩家发动蓄力攻击时,系统不会重置连击序列。这意味着内部连击计数会自然继续,允许你在普通攻击和蓄力攻击之间切换,而不会破坏战斗流程。
例如,如果你的武器有这样一个序列:
普通攻击:1AA → 2AA → 3AA → DA → AS
蓄力攻击:1CAA → 2CAA → 3CAA → CDA → CAS
你可以根据连击的位置将这两套动画串联起来。这允许类似这样的组合:
1AA → 2CAA → 3AA → 1CAA → CDA → AS
要保持在蓄力攻击模式,你必须按住按钮。当你松开按钮时,半秒钟后,系统会恢复到普通模式。

"allow_two_hand_compatibility" 条目表示,是否希望在考虑或不考虑副手物品的情况下进行蓄力攻击。
⚠ 注意,天生技能之间的能量不守恒。在示例中,天生技能是不同的,以便在视觉上显示从普通模式到蓄力模式的切换。
🔹 缩放与使用方法 (v1.4+)
修复了在使用没有正确动画的物品时出现的相机问题。
"zoom_in_type": "custom"
值
- none
- always
- use_tick
- aiming
- custom
💡 你也可以使用物品标签强制设置右键行为。
🔽 更多详情(进阶)
点击展开
在此案例中,我们正在数据包中构建一个“Antitheus”物品。我们已经分配了被动和天生技能;但是,当使用右键时,相机会“出问题”。我们可以通过添加行 "zoom_in_type": "custom" 来解决这个问题。
但是如果我的物品不允许我使用右键怎么办?我们总有办法强制!
对手上任何包含所需标签的物品强制执行**“使用方法”**。这解决了在创建数据包物品时,EF 中出现的多个客户端/服务器使用物品问题。
为此,请在以下路径创建文件:data/epicfight_edp/tags/items/force_use_method.json。
并将物品添加到标签列表中。
现在,我们的武器可以使用右键了,它可以施放 Antitheus 的右键技能,并且相机不会再出问题了!
🔹 高级挥舞轨迹 (v1.5+)
为每种武器风格添加自定义的挥舞轨迹纹理。
📁 路径:
assets/<namespace>/item_skins_parameters/*.json
✔️ 支持:
- 按风格定制轨迹
- 纹理覆盖(忽略动画冲突)
更多详情
点击展开
在这里,我将以钻石剑为例,展示根据其是单手还是双手模式而拥有不同的挥舞轨迹!

当你改变风格时,如果你想改变你的物品模型,并随之改变其挥舞轨迹,这将非常有用。
此功能还会对原始纹理进行“覆盖”,即使它附加在动画上。这确保了你的挥舞轨迹不会被动画修改,而是使用你想要的纹理。
这只是配置纹理;你还需要为相关物品创建 "item_skins" (assets/item_namespace/item_name.json) 文件。
以前面的示例钻石剑为例,它的物品皮肤是这样的 (assets/minecraft/item_skins/diamond_sword.json)

物品皮肤中包含了颜色、起始位置、结束位置、生命周期、插值和粒子类型等参数。只有当高级挥舞轨迹纹理及其回调轨迹失败时,才会使用 "texture_path"。
🔹 按风格切换模型 (v1.6+)
根据玩家的战斗风格分配不同的模型。
📁 路径:
assets/<namespace>/item_model_parameters/*.json
支持:
- 基于风格的模型切换
- 多纹理/模型通道
🔽 更多详情(进阶)
点击展开

参数说明
- item: 将接收模型覆盖的目标物品。
- item_socket: 包含所有模型和纹理的插槽物品,按通道分隔。
- per_style: 布尔标志,指示纹理/模型是否应随玩家风格变化。
- style_config: 一个配置对象,定义每种风格应使用的插槽通道。
- style: 风格标识符。
- socket_channel: 将为该风格使用的物品插槽内的通道。
一旦我们有了这个,我们需要构建我们的“物品模型插槽”,它将在内部存储我们所有的模型覆盖;这对于加载模型并将所需纹理分配给通道非常有用。可添加的通道数量不限;你不需要在每个插槽中都放置一个。

这是在游戏中的样子,结合使用了按风格切换挥舞轨迹系统和按风格切换模型系统
这是产生该效果的资源包:** Google Drive - simply_sword_test.zip **
🔹 技能构建器扩展 (v1.7+)
为技能类别添加图标
📁 路径:
.minecraft/config/epicfight_edp/skill_builder/category_icon/*.json
🔽 更多详情(进阶)
点击展开
在某些情况下,Epic Fight 技能系统中的武器类别没有清晰或定义的图标。 当发生这种情况时,打开相关的技能书可能会因为缺少图标而导致异常。
(此问题发生在旧版本中;现在可能仍会发生,但此系统作为一个预防性解决方案存在。)
工作原理
添加图标很简单。你只需要定义:
- 要用作图标的物品
- 它所属的武器类别

⚠ 覆盖行为 ⚠
此系统允许覆盖。 如果多个配置为同一类别定义了图标,则只使用一个。
为被动技能添加类别
📁 路径:
.minecraft/config/epicfight_edp/skill_builder/passive_skills/*.json
⚠ 不支持覆盖。
🔽 更多详情(进阶)
点击展开

参数
- skill_builder: 存储所有条目的数组名称。
- skill_id: Epic Fight 技能 ID。目标技能必须包含一个用于存储武器类别的字段。如果技能不支持“可用武器类别”,此系统将不起作用。
- category: 要添加到技能中的武器类别。
⚠ 覆盖行为 ⚠
此系统不允许覆盖。 单个类别声明可以被多个被动技能使用,但不能被重新定义。
为格挡技能添加类别
📁 路径:
.minecraft/config/epicfight_edp/skill_builder/guard_skills
支持:
- 格挡/招架系统
- 多种动画类型
- 按风格切换动画
更多详情
点击展开
此系统比前几个更复杂,因为它需要定义:
- 格挡技能
- 武器类别
- 动画类型
- 动画是否随风格变化
- 动画是单个还是数组
- 所需的动画集:
- 2 套:基础与破防
- 3 套:基础、破防与高级(取决于技能)
尽管如此,配置仍然很直接。

核心参数
- skill_guard_builder: 存储所有格挡技能条目的数组名称。
- skill_guard_id: Epic Fight 格挡技能 ID。该技能必须继承自格挡技能并支持动画。任何满足这些要求的格挡技能都是兼容的。
- category: 要添加到格挡技能中的武器类别。
动画参数
取决于格挡技能类型:
格挡 / 冲击格挡 - 类似技能
- guard_motion
- guard_break_motion
招架类技能
- guard_motion
- guard_break_motion
- guard_advanced_motion
动画定义
- guard_motion: 当玩家成功格挡一次来袭攻击时播放的动画。
- guard_break_motion: 当玩家的姿态/耐力被耗尽且格挡被击破、使玩家眩晕时播放的动画。
- guard_advanced_motion: 特殊的格挡互动动画。
- 对于 招架示例:一个偏转动画
- 对于 奇迹武器 – 反击:一个攻击动画
动画子配置
动画条目支持额外的参数:
- type: 定义是使用单个动画还是动画数组(multi)。只有 guard_advanced_motion 支持数组(multi)。为 guard_motion 或 guard_break_motion 设置的任何非 single 的值都将被视为无效。
- per_style: 定义使用动画的风格。
- 使用 "return" 来忽略玩家的当前风格。如果你分配了 "return",系统将理解你不想使用风格,所以如果你使用 return,请不要分配风格。
- 要定义按风格切换的动画,请指定如:one_hand、two_hand 等值。
⚠ 覆盖行为 ⚠
此系统不允许覆盖。 单个类别声明可以被多个格挡技能重用。
🔹 ShaderFX 系统 (v1.8+)
通过数据包动态执行着色器。
📁 路径:
assets/<namespace>/shader_packet_parameters/*.json
触发器
- 技能
- 风格
- 动画
模式
- 保持 → 条件为真时激活
- 一次性 → 仅触发一次
效果
- 冲击帧
- 噪点叠加
- 径向模糊(向内 / 向外)
- 颜色叠加
🔽 更多详情(进阶)
点击展开
参数文件结构
每个文件定义了着色器的运行方式和时间。一个典型的文件如下所示:
字段定义:
| 字段 | 描述 |
|---|---|
| shader_packet | 着色器数据包数组的名称 |
| category | 着色器执行的目标类别 (必需) |
| for_item | 目标物品。接受 "all" 或特定物品。如果省略,默认为 "all"。 |
| payload_on | 执行触发器类型。有效值:Skill、Style、Animation。 (无效组合会导致游戏崩溃。) |
| type | 基于 payload_on 的执行模式。 |
执行模式 (Type)
- Skill → 支持:hold
- Style → 支持:hold
- Animation → 支持:oneshot
Hold: 条件为真时,着色器持续运行 Oneshot: 在特定的经过时间里,着色器运行一次
运行、参数格式
当 payload_on = "Style" 时
skill: <skill_id>
effect:
Style/Hold 的有效效果:
- Overlay Color
- Radial Blur In
- Radial Blur Out
当 payload_on = "Skill" 时
skill: <skill_id>
effect:
Skill/Hold 的有效效果:
- Overlay Color
- Radial Blur In
- Radial Blur Out
当 payload_on = "Animation" 时
animation: <animation_id>
elapse:
effect:
Animation/Oneshot 的有效效果:
- Noise Overlay
- Impact Frame
ShaderFx 参数参考
Impact Frame
| 参数 | 描述 |
|---|---|
| radius | 最大半径 (0–20)。0 表示禁用效果。 |
| intensity | 效果强度 |
| atlook | 仅当玩家面向施法者时触发 |
Noise Overlay
| 参数 | 描述 |
|---|---|
| timeHold | 持续时间 |
| size | 噪点纹理大小 |
| intensity | 效果强度 |
| r, g, b | 颜色值 |
Radial Blur (In / Out)
| 参数 | 描述 |
|---|---|
| timeIn | 平滑淡入持续时间 |
| timeHold | 全强度持续时间 |
| timeOut | 平滑淡出持续时间 |
| intensity | 模糊强度(非标量) |
| samples | 质量/性能权衡 |
Color Overlay
| 参数 | 描述 |
|---|---|
| timeIn | 平滑淡入持续时间 |
| timeHold | 全强度持续时间 |
| timeOut | 平滑淡出持续时间 |
| intensity | 重新着色强度 |
| r, g, b | 目标颜色 |
⚠ 重要说明
- 并非所有 intensity 值 在不同着色器中的行为都相同
- 某些系统依赖于正确的 技能兼容性
- 错误的配置可能导致崩溃
🔹 类别与叠加层 (v1.9+)
类别
它允许通过 JSON 轻松创建新类别。
📁 路径:
.minecraft/config/epicfight_edp/weapon_builder/category/*.json
🔽 更多详情(进阶)
点击展开
根据您的偏好,可以执行以下操作:
- 对于配置:.minecraft/config/epicfight_edp/weapon_builder/category/your_files.json
- 对于 Jar 内:your_mod.jar/lzm_runner/<your_modid>/weapon_builder/category/your_files.json
您的文件应该如下所示:

重要提示:如果您从配置文件夹注册类别,则必须声明一个 modID。 如果您使用 Jar 内文件,则无需指定 modID,因为文件本身所在的命名空间被视为签名者。
叠加层
您可以添加静态叠加层或动画叠加层。
📁 路径:
assets/overlay_parameters/your_file.json
🔽 更多详情(进阶)
点击展开
在那里你可以创建这样的文件;在这个例子中,它适用于单手和双手模式。

如您所见,如果我们想使用一个简单的叠加层,即单个图像,我们只需传递: "overlay_path": "epicfight_edp:overlays/flame/fireflay_50.png"
同时,您必须始终声明您要写入的物品。在示例中,是:"item": "minecraft:diamond_sword",
另一方面:"per_style": true, 只是官方程序;它目前不执行任何操作。如果将来我希望叠加层以不同的参数启动,这将很有用。
分配给纹理的路径不会自动位于“textures”文件夹中。图像显示:"epicfight_edp:overlays/flame/fireflay_50.png"
这意味着它位于:assets/epicfight_edp/overlays/flame/fireflay_50.png
不在: assets/epicfight_edp/textures/overlays/flame/fireflay_50.png
重要提示: 大小必须与可用于动画的图像数量相匹配。FPS 不能超过 游戏刻评估阈值的 20 刻(20 FPS)。
系统从 1 -> Size 开始计数,而不是从 0 开始,并且星号 (*) 必须与图像集中的数字对应。此外,表示法很简单:0 -> 1 -> 10 -> 11 -> 100,等等。
不兼容 000 -> 001 -> 010 -> 11 -> 100...
🔹 天生技能与第三方能力 II (v2.1+)
天生技能
允许通过 JSON 文件 创建和自定义天生技能。
📁 路径 - 配置:
config/ └── epicfight_edp/ └── innate_skill_builder/ ├── conditional_innate_skill/ ├── holdable_innate_skill/ └── simple_innate_skill/
📁 路径 - Jar 内:
data_driven/ └── <mod_id>/ └── innate_skill_builder/ ├── conditional_innate_skill/ ├── holdable_innate_skill/ └── simple_innate_skill/
🔽 更多详情(进阶)
点击展开
简单天生技能
它们使用单个动画和单个属性集。

⚙️ 通用技能字段
这些字段被大多数天生技能类型共享。
| 字段 | 类型 | 描述 |
|---|---|---|
modid |
字符串 | 用于注册技能的 Mod 命名空间。 |
name |
字符串 | 内部技能标识符。 |
animation |
字符串 | 技能使用的主要动画。 |
properties_type |
字符串 | 定义属性是 mono_phase 还是 multi_phase。 |
properties |
对象 | 包含战斗属性定义。 |
⚔️ 技能属性
properties 对象控制技能的 combat 行为。
| 属性 | 类型 | 描述 |
|---|---|---|
max_strikes |
浮点数 | 可命中的最大目标数。 |
damage_multiplier |
浮点数 | 技能施加的伤害倍率。 |
armor_negation |
浮点数 | 伤害计算中忽略的护甲百分比。 |
impact |
浮点数 | 决定命中反应和眩晕效果的强度。 |
stun_type |
字符串 | 应用于目标的眩晕类型。 |
extra_damage |
布尔值 | 在支持时启用额外伤害效果。 |
动画眩晕
击中时造成的眩晕类型
| StunType |
|---|
| short |
long |
hold |
knockback |
neutralize |
fall |
| none |
条件型天生技能
条件型技能会根据玩家的当前状态动态选择动画。
支持的条件:
sprintingin_airkneelinguse_item
如果没有任何条件满足,将使用在 animation 中定义的默认动画。

| 条件 | 描述 |
|---|---|
sprinting |
玩家疾跑时使用。 |
in_air |
玩家未接触地面时使用。 |
kneeling |
玩家蹲伏/下跪时使用。 |
use_item |
主动使用物品时使用。 |
可保持型天生技能
可保持型技能引入了基于蓄力的机制。
特性:
- 自定义蓄力动画
- 最小和最大蓄力时长
- 蓄力超时控制
- 可选的移动减速
此系统为未来混合技能(如条件可保持型天生技能)奠定了基础。

| 字段 | 类型 | 描述 |
|---|---|---|
chargeAnimation |
字符串 | 蓄力时播放的动画。 |
minChargingTicks |
整数 | 激活前的最小蓄力持续时间。 |
maxChargingTicks |
整数 | 用于确定最高蓄力阶段的蓄力等级上限。 |
maxAllowedCharging |
整数 | 玩家在取消前可以保持蓄力的最长时间。 |
reduceSpeed |
布尔值 | 在蓄力时减缓玩家移动速度。 |
animation |
字符串 | 技能释放时播放的最终动画。 |
来自战斗进化(Combat Evolution)的处决动画(仅限 1.20.1)
你可以注册处决动画,可以按物品注册,也可以按类别注册。但不能同时指定两者,否则你的数据包将被视为无效。
📁 路径 - 配置:
config/epicfight_edp/third_party/combat_evolution/execution
📁 路径 - Jar 内:
data_driven/<mod_id>/third_party/combat_evolution/execution
🔽 更多详情(进阶)
点击展开
按类别注册

按物品注册:

| 属性 | 类型 | 描述 |
|---|---|---|
category |
字符串 | 将获得处决动画的武器类别。使用 "null" 忽略此字段。 |
item |
字符串 | 特定物品的注册名称 (modid:item_name)。使用 "null" 忽略此字段。 |
style |
字符串 | 执行处决所需的战斗风格。 |
executionAnimation |
字符串 | 处决过程中攻击者播放的动画。 |
executedAnimation |
字符串 | 被处决目标播放的动画。 |
xOffset |
浮点数 | 应用于被处决实体的水平 X 位置偏移。 |
yOffset |
浮点数 | 应用于被处决实体的垂直位置偏移。 |
zOffset |
浮点数 | 应用于被处决实体的前后 Z 位置偏移。 |
rotationOffset |
浮点数 | 攻击者与被处决目标之间的额外旋转。 |
totalTick |
整数 | 处决序列的总持续时间(以刻为单位)。 |
💡 贴士
- 推荐命名格式:"yourname_function_anycomplement.json"
- 对于技能数据键:SkillKey | Comparison | Value
📌 需求
- Epic Fight Mod
- Lazy Utilities (v2.0 之前) - SL Library, SLM: Epic Fight, SLM: Shaders (v2.0 之后)
📌 可选需求
- Weapons Of Miracle
正在加载版本记录…

正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。