ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ArknightsGameResource战斗系统数据解析:buff_template、battle表与[uc]lua热更脚本

ArknightsGameResource战斗系统数据解析:buff_template、battle表与[uc]lua热更脚本 ArknightsGameResource战斗系统数据解析buff_template、battle表与[uc]lua热更脚本【免费下载链接】ArknightsGameResource明日方舟客户端素材项目地址: https://gitcode.com/gh_mirrors/ar/ArknightsGameResourceArknightsGameResource 是明日方舟客户端素材的完整开源镜像其中gamedata/目录几乎囊括了战斗系统的全部运行时数据buff_template模板表、battle 目录下的各类战斗表以及[uc]lua目录里的热更新 Lua 脚本。对新手来说这是理解明日方舟一张 buff 从定义到生效完整链路的最快入口。本文将带你快速看懂这三块数据。一、先看数据全貌gamedata 目录结构战斗相关数据集中在gamedata/下核心子目录如下目录 / 文件内容规模gamedata/battle/战斗表集合buff 模板、关卡脚本等8 个 JSON 表gamedata/buff_table.json基础 buff 定义虚弱、晕眩、沉默等112 条gamedata/[uc]lua/热更新 Lua 脚本热修复、自定义 Action数千个脚本明日方舟战斗系统数据与干员立绘对照示意图展示ArknightsGameResource中的素材组织方式二、buff_template_data.json8447 个 buff 模板buff_template_data.json 是整个战斗表里最大的一张包含8447 个模板键名就是模板 key例如skadi2_s_1、skadi2_s_1[protect]—— 斯卡蒂二代技能产生的增伤/护盾damage_block[all]、periodic_damage[not_env]—— 通用挡伤害、周期伤害明日方舟干员斯卡蒂立绘对应buff_template_data.json中的skadi2系列buff模板示例每个模板的核心结构是eventToActions——当某事件发生时执行哪些动作{ templateKey: damage_block[all], eventToActions: { ON_TAKE_DAMAGE: [ { $type: Torappu.Battle.Action.NodesBlockDamage, Assembly-CSharp, _showShieldUI: false } ] } }可以看到动作节点用$type指向 C# 程序集中的类如BlockDamage再带上一组下划线前缀的参数。这就是明日方舟战斗系统的核心设计buff 行为 事件 动作节点 参数。想查某个 buff 具体干了什么按 key 找到模板看它挂了哪些事件、调了哪些节点即可。同目录下还有几张配套小表ep_breakbuff_table.json异常/护盾类 buffSANITY、WATER、FIRE、DARK、ANGERlevel_script_table.json关卡脚本索引levelScriptDataLevelDict中登记了 gamedata/levelscripts/formal/ 下的关卡脚本battle_misc_table.json战场杂项配置地块类型、粒子特效等三、buff_table.json112 个基础 buff 的数值定义如果说模板表描述buff 做什么那 buff_table.json 描述buff 是什么。以sluggish[inf]减速为例字段含义清晰字段示例值含义attributes.attributeModifiersattributeType: 6, value: -0.8属性修正这里降低 80%maxStackCnt1最大叠层数isDamageMissabletrue减速是否可被闪避影响isSilenceable / isStunnablefalse / false该状态能否被沉默/晕眩打断lifeTimeType258持续时间的类型表中还包含stun、silence、palsy[stack]等 112 个基础状态是理解游戏异常状态体系的第一手资料。明日方舟干员陈立绘配合battle目录战斗表说明关卡与buff数据关联四、[uc]lua 热更脚本不改包也能修战斗逻辑gamedata/[uc]lua/ 是客户端的热更新目录官方可以用 Lua 脚本在不更新客户端的情况下修复 bug 或微调逻辑。对数据解析者而言它同时揭示了战斗系统的扩展点1. 自定义战斗 Action / AbilityBehaviourbattle/battlemodule.lua 引入测试脚本通过BattleMgr.me:DefineAction(TestAction, test)注册一个 Lua 版动作并在OnExecute(blackboard, sourceType, snapshot)中执行逻辑见 battle/actions/testaction.lua。这与 buff 模板里的 C# 动作节点互为补充简单行为走数据表复杂行为可下沉到 Lua。2. 海量热修复脚本hotfixesgamedata/[uc]lua/hotfixes/ 下有上百个*hotfixer.lua。以 whitw2skill3funnelrangedattackhotfixer.lua 为例它继承HotfixBase用Fix_ex把 C# 类Whitw2Skill3FunnelRangedAttack的OnDetached、RuntimeApplyAttack两个方法运行时替换成 Lua 实现并用xpcall包裹保证异常不外泄。文件名基本就是哪个干员/哪个系统出了什么问题的直接说明是很好的系统命名对照表。3. 目录分工base/战斗、计时器、网络、对话等基础模块feature/支援席、活动、衣橱等玩法特性hotfixes/热修复脚本集合五、总结三步读懂明日方舟战斗数据查状态→ buff_table.json112 个基础 buff 的属性与修正查行为→ battle/buff_template_data.json8447 个事件 → 动作节点模板查逻辑补丁→ gamedata/[uc]lua/hotfixes/Lua 热更如何替换 C# 行为。配合根目录的 file_dict.json素材清单与 levels.json关卡数据你就能在本地完成一次完整的战斗系统逆向阅读。【免费下载链接】ArknightsGameResource明日方舟客户端素材项目地址: https://gitcode.com/gh_mirrors/ar/ArknightsGameResource创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表