---
title: "可视化编排器"
description: "AutoScript 可视化编排器 - 通过图形界面构建条件判断与变量操作,无需手写代码"
---
可视化编排器让你通过图形界面构建 AutoScript 脚本,无需了解 Lua 语法。编排器会根据你的配置自动生成代码。
{/* TODO: 添加可视化编排器界面截图 */}

## 编排器结构
编排器由多个判断块(Conditional Block)堆叠组成,从上到下依次执行。每个判断块包含条件判断和操作步骤两部分。
### 判断块类型
每个判断块可以设置为以下三种类型之一:
| 类型 | 触发条件 | 说明 |
| --- | --- | --- |
| **IF** | 第一个判断块 | 始终为 IF,不可更改 |
| **ELSE IF** | 上方条件均不满足 | 添加额外的条件分支 |
| **ELSE** | 上方所有条件均不满足 | 默认分支,不需要设置条件 |
在一个 IF 后可以添加多个 ELSE IF,但只能有一个 ELSE 块。
添加 ELSE 块后,不能再添加 ELSE IF 或 ELSE 块。
## 添加判断块
点击 [**+ 添加判断块**] 按钮添加新的判断块。新块的类型默认为 ELSE IF。
## 配置条件
每个判断块可包含一个或多个条件行,多个条件之间用 `and` 或 `or` 连接。
### 条件行配置项
| 配置项 | 说明 |
| --- | --- |
| 逻辑运算符 | 与上一条件行的关系:`and`(且)或 `or`(或)。第一行不显示此选项 |
| 左变量 | 选择要比较的目标变量,或直接使用 `true`/`false` 布尔值 |
| 比较运算符 | `==` `~=` `>` `<` `>=` `<=` |
| 比较方式 | 与固定值比较 / 与另一个变量比较 |
| 右值 | 根据变量类型提供对应的输入控件 |
### 特殊规则
- **布尔变量**:当左侧选择布尔类型变量(如 `USER_ENABLE`)时,比较运算符和右值自动隐藏,
条件直接判断该布尔值是否为真
- 可以点击 [**+**] 按钮添加更多条件行,或点击 [**x**] 按钮删除某个条件行
## 配置操作步骤
每个判断块内可包含一个或多个操作步骤(Action Step),当该块的条件满足时,所有操作步骤按顺序执行。
### 操作类型
| 操作 | 说明 | 示例 |
| --- | --- | --- |
| **set** | 将变量设置为指定值 | `RESERVE_DATE = dateadd(datenow(), 1)` |
| **add** | 在变量当前值上增加 | `RESERVE_BEGIN_TIME = RESERVE_BEGIN_TIME + 30` |
| **sub** | 在变量当前值上减去 | `RESERVE_END_TIME = RESERVE_END_TIME - 60` |
### 值来源
| 来源 | 说明 |
| --- | --- |
| 固定值 | 手动输入或选择具体值 |
| 变量 | 从其他目标变量读取值 |
### 日期和时间特殊处理
对于日期和时间类型变量,输入控件提供以下便捷选项:
| 变量类型 | 便捷选项 |
| --- | --- |
| Date | 今天、明天、后天、指定日期(日历选择器) |
| Time | 当前时间、指定时间(时间选择器) |
当选择相对日期选项(如"明天")时,编排器会生成相应的工具函数调用(如 `dateadd(datenow(), 1)`),
确保脚本在运行时动态计算正确的日期。
## 生成代码
配置完成后,点击 [**确认**] 按钮,编排器将把所有判断块转换为 Lua 代码并插入到代码编辑器中。
例如,以下编排配置:
- IF `USER_ENABLE` → set `RESERVE_DATE` 为明天,set `RESERVE_BEGIN_TIME` 为 09:00
- ELSE → set `USER_ENABLE` 为 false
将生成:
```lua
if USER_ENABLE then
RESERVE_DATE = dateadd(datenow(), 1)
RESERVE_BEGIN_TIME = time(9, 0)
else
USER_ENABLE = false
end
```