;==================================================DS预加载==================================================
;=========================================DS界面
#call [\DS_功能\01_DS_界面.txt] @DS_界面
#call [\DS_功能\04_DS_触发.txt] @DS_触发
;=========================
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-05-06 21:40:10 |
👁️ 阅读: 9
根据课程日志记录,你提供的 `QFunction-0.txt` 脚本存在以下语法和格式问题:
**1. WHILE循环中使用了条件判断和执行语句**
- 在 `[@进入循环]` 函数中,WHILE和ENDWHILE之间直接使用了 `#IF` 和 `#ACT`。根据规则,WHILE循环内不能直接包含条件判断和执行语句,必须通过 `GOTO` 跳转到其他函数进行判断。
**2. 使用了不存在的命令 `StopTeleport`**
- 在 `[@BeginTeleport]` 触发中,使用了 `StopTeleport` 命令。该命令不在知识库允许范围内。
**3. FORMULATION命令中存在空格导致参数错误**
- 在多处 `FORMULATION` 计算中,公式内存在空格(例如 `<$STR(N$X初始)> + (<$STR(N$列)> - 1) * 70`)。根据规则,TXT语法中不能在计算公式内增加空格,否则引擎会将其视为多个参数,导致错误。
**4. 使用了不存在的常量函数**
- 脚本中使用了如 `<$ADD(...)>` 的旧式数学函数。根据规则,应统一改用 `<FORMULATION[...]>` 或 `<$FORMULATION[...]>` 常量表达式进行数学计算。
**5. 检测指令位置错误**
- 部分检测指令(如 `randomex`)未严格放在 `#IF` 语句下方。
**6. 变量初始化问题**
- 部分字符串变量(如 `S$显示`)在使用前未用 `MOV` 命令进行初始化,直接进行了 `INC` 操作。
**建议修改方向:**
1. 将 `[@进入循环]` 中的 `#IF/#ACT` 逻辑移出WHILE循环,通过 `GOTO` 调用。
2. 将 `StopTeleport` 命令替换为知识库中存在的命令(如 `stop`)。
3. 检查所有 `FORMULATION` 语句,确保计算公式内没有空格。
4. 将所有旧式数学函数(如 `<$ADD>`)替换为 `FORMULATION` 命令或 `<$FORMULATION[...]>` 常量。
5. 确保所有检测指令都位于 `#IF` 下方。
6. 在使用字符串变量前,使用 `MOV S$变量名 ""` 进行初始化。
由于脚本内容较长,建议你根据上述要点逐段检查并修正。如果对具体某段代码的修改有疑问,可以提出。
← 返回问答库