mirror of
https://github.com/MaaAssistantArknights/MaaAssistantArknights.git
synced 2026-07-16 09:50:40 +08:00
docs: 关于运行时修改任务的一点解释
This commit is contained in:
@@ -233,6 +233,48 @@ Task.get_raw("B@Loading")->next = { "B#self", "B#next", "B#back" };
|
||||
|
||||
以上这种情况, `"C@B" -> next`(即 `C@A#next`)为 `[ "N1" ]` 而不是 `[ "C@N0" ]`.
|
||||
|
||||
## 运行时修改任务
|
||||
|
||||
- `Task.lazy_parse()` 可以在运行时加载 json 任务配置文件。 lazy_parse 规则与[多文件任务](#多文件任务)相同。
|
||||
- `Task.set_task_base()` 可以修改任务的 `baseTask` 字段。
|
||||
|
||||
### 使用示例
|
||||
|
||||
假设有任务配置文件如下:
|
||||
|
||||
```json
|
||||
{
|
||||
"A": {
|
||||
"baseTask": "A_default"
|
||||
},
|
||||
"A_default": {
|
||||
"next": [ "xxx" ]
|
||||
},
|
||||
"A_mode1": {
|
||||
"next": [ "yyy" ]
|
||||
},
|
||||
"A_mode2": {
|
||||
"next": [ "zzz" ]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
以下代码可以实现根据 mode 的值改变任务 "A",同时会改变其它依赖任务 "A" 的任务,如 "B@A":
|
||||
|
||||
```cpp
|
||||
switch (mode) {
|
||||
case 1:
|
||||
Task.set_task_base("A", "A_mode1"); // 基本上相当于用 A_mode1 的内容直接替换 A,下同
|
||||
break;
|
||||
case 2:
|
||||
Task.set_task_base("A", "A_mode2");
|
||||
break;
|
||||
default:
|
||||
Task.set_task_base("A", "A_default");
|
||||
break;
|
||||
}
|
||||
```
|
||||
|
||||
## 表达式计算
|
||||
|
||||
| 符号 | 含义 | 实例 |
|
||||
|
||||
Reference in New Issue
Block a user