变量、函数与流程控制

← 返回所有分类
变量是什么?怎么在节点中使用变量?通用

变量就是一个"有名字的盒子",用来存储运行时的数据(如图像查找的结果坐标、OCR 识别的文字、计数器等)。

使用步骤:

  1. 在"变量"标签页(Ctrl+3)中定义变量:取个名字(如 count),选类型(字符串/数字/布尔),设默认值
  2. 在节点中写入变量:如"设置变量"节点,或图像查找节点的"结果变量"字段
  3. 在节点中读取变量:如条件判断中引用变量做比较,或"输入文本"节点中插入变量值

典型用法:

  • 图像查找的结果自动存入变量(如 result),包含坐标和置信度
  • 用"设置变量"节点做计数器:每循环一次 count + 1
  • 在"输入文本"节点中引用变量,实现动态输入
"条件判断"节点怎么用?成功时/失败时/自定义条件是什么?通用

条件判断让脚本"根据情况走不同的路"。每个节点都可以设置执行条件(在节点配置底部):

  • 无条件(默认)— 不管前面怎样都执行
  • 成功时 — 只有上一个节点执行成功才执行。如:图像找到了 → 才点击
  • 失败时 — 只有上一个节点执行失败才执行。如:图像没找到 → 走备选方案
  • 自定义条件 — 写一个表达式,为 true 才执行。如:count >= 5(循环超过5次才执行)

"成功/失败"怎么定义?

  • 图像查找:找到 = 成功,没找到 = 失败
  • OCR 比对:文字一致 = 成功,不一致 = 失败
  • 等待变化:检测到变化 = 成功,超时 = 失败
  • 等待/点击/日志:永远成功
"循环"节点有几种模式?怎么用?通用

循环节点是一个容器,你把其他节点拖进去,它们就会被重复执行。三种模式:

  • 固定次数 — 循环 N 次。如:点击 10 次 → 设次数为 10。
  • 无限循环 — 永远重复,直到脚本被手动停止。如:持续监控血条、持续刷怪。
  • 遍历数组 — 依次取出数组中的每个元素执行。如:依次点击列表中的每个按钮。

使用方法:

  1. 添加"循环"节点
  2. 双击配置,选择循环模式和参数
  3. 把要重复执行的节点拖入循环容器内(视觉上会缩进显示)

提示:无限循环中建议加一个短"等待"节点(如 100ms),避免 CPU 占用过高。

函数是什么?什么时候需要把一段流程做成函数?通用

函数是把一组节点"打包"成一个可复用的模块。定义一次,可以在主流程中多次调用。

什么时候用?

  • 同一段操作在流程中出现了 2 次以上 → 做成函数,避免重复
  • 一段操作有独立含义(如"回城""补充弹药""翻页")→ 做成函数让流程更清晰
  • 想从自定义动作中调用一段流程 → 必须先做成函数

使用方法:

  1. 在"函数"标签页(Ctrl+5)中创建函数,编辑其内部节点
  2. 在主流程中添加"调用函数"节点,选择要调用的函数
  3. 函数可以带参数,调用时传入不同的值

函数之间也可以互相调用,可以访问全局变量。

表达式是什么?哪些地方可以用表达式?通用

表达式是一段 Lua 代码片段,运行后产生一个值。让你可以做计算、拼接、判断等灵活操作。

可以用表达式的地方:

  • 条件判断的自定义条件:count >= 10 and hp < 30
  • 设置变量时勾选"表达式":count + 1name .. "_done"
  • 日志输出时勾选"表达式":"第" .. count .. "次循环"
  • 等待时间math.random(500, 1500)(随机等待)

常用语法:

  • 数字运算:a + ba * 2a % 3
  • 字符串拼接:"hello" .. name
  • 比较:x > 100name == "test"
  • 逻辑:a and ba or bnot a

不需要勾选"表达式"时,输入框的内容会被当作纯文本/数字处理。