模块开发
一个模块由属性、脚本、宏三个部件配合完成「判断」与「执行」。下面先讲清三者的关系,再依次介绍模块结构、决策脚本、热键、属性与编辑流程。
属性、脚本、宏:三个部件
Section titled “属性、脚本、宏:三个部件”一个能自动循环的模块靠三个部件配合:
- 属性(输入):把游戏内的数值或状态取回桌面端,例如血量、技能冷却、Buff 剩余时间。
- 脚本(决策):桌面端 Lua 脚本,读取属性、做判断,决定这一刻该放哪个技能。它是模块的大脑。
- 宏(动作):每个宏是一段游戏内宏命令(如
/cast 技能名)并绑定一个热键;脚本调用它即触发对应技能。
运行时你按住启动键,程序按 APM 节奏反复执行你绑定的脚本;脚本每轮根据当前属性值调用相应的宏。
| 组成 | 说明 |
|---|---|
| 宏(150 行) | 共 150 个槽位。前 105 个可填写静态宏,也可仅保留热键,由初始化代码动态设置名称与正文;后 45 个为固定目标选择槽位。 |
| Lua 脚本(50 行) | 可复用的逻辑片段,绑定到鼠标键或热键来选择执行。 |
| 属性(90 行) | 把游戏内的一个数值/状态取回桌面端。每行一个属性,是模块判断逻辑的输入。 |
| 属性库 | 随模块存储的属性模板集合,含 25 条基础模板;编辑器补充原生光环字段。属性行可引用库条目,内置显示名随语言切换。 |
| 职业 / 名称 / 版本 | 职业标签用于筛选;版本在每次保存时自动递增,回传给游戏端比对以提示重载。 |
热键全部由程序发送、你不用手按,所以布局的设计目标是「抗物理修饰键叠加」而非顺手。默认表用 30 个主键 × 5 个前缀 = 150 行,分三个互不相交的主键域:
- 宏 1–50:NUMPAD(小键盘)域
- 宏 51–90:标点键域(
, . / ; ' [ ] =) - 宏 91–105 与 SelectTarget:F 键域(F1–F12)
默认模板使用以下五种修饰键组合。动态宏沿用槽位热键;请在编辑器使用有效且不重复的绑定。
ALT-SHIFT-x CTRL-SHIFT-x SHIFT-x CTRL-x ALT-x编辑器工作流
Section titled “编辑器工作流”- 打开:在设置窗口点「模块编辑」,编辑的是当前选中模块的副本。
- 保存:点「保存」或按
Ctrl+S(编辑单元格时也生效)。保存需要登录,模块加密后上云;成功后编辑器自动关闭。 - 克隆:以当前内容为基础另存为一个新模块(名称自动加「克隆」后缀)。
- 导入 / 导出:通过 .wa1 文件在本地备份或分享模块。导出的是结构清晰的明文 JSON,用文本编辑器或 AI 改完再导回都行;导入的模块会分配全新身份,不会覆盖他人的云端条目。
- 未保存守卫:关窗、新建、导入前若有改动会弹出确认。
- 参数提示:鼠标停在属性行的参数格上,会显示该参数的类型和这段代码开头注释写的可选值(预置条目列出了全部单位 ID、资源类型等);自己的代码在开头用
--注释说明参数,同样会显示。 - 检查与缩进:逻辑与自定义代码的「保存」先检查(逻辑在客户端隔离试运行,游戏侧代码只编译语法),通过后按块结构自动整理缩进再保存;「本地运行检查」只检查、不改文本。
属性的三种状态
Section titled “属性的三种状态”属性表每行有「属性」下拉,三态由此决定:
| 状态 | 含义 |
|---|---|
| 不使用 | 空占位行,不生成、不回传。 |
| 自定义代码 | 这一行跑你自己写的 Lua 代码。给属性起个名字即自动启用。 |
| 库条目名 | 引用属性库里的某个模板,带入它的代码与默认参数;在行内点「编辑」改动代码即脱钩为自定义代码。 |
「参数」列最多填 3 段(逗号分隔),会注入为代码里的 arg1 / arg2 / arg3:能转成数字的按数字直传,其余当字符串,空段为 nil。同一段代码填不同参数即可复用(例如 player 和 target)。