- commit
- 18f5338
- parent
- 63c3f33
- author
- BovineBeta
- date
- 2023-07-17 07:56:10 +0000 UTC
docs: [Actions]更正错误, 添加示范, 删除重复项
1 files changed,
+31,
-44
+31,
-44
1@@ -1,7 +1,7 @@
2 # Actions (行动)
3
4 Actions可以根据特定条件控制游戏内容. 例如DHS中的对话, DLC中Coel的破坏白名单等, 它实现游戏的各种特效, 是一个优秀的扩展不可或缺的一部分.
5-
6+
7 为了更好的去介绍Action各个标签的功能, 我们在此将Action的标签分为3大类型:
8 - 根标签
9 - 条件标签
10@@ -9,8 +9,18 @@ Actions可以根据特定条件控制游戏内容. 例如DHS中的对话, DLC中
11
12 一个Action的结构大概如下:
13 ```xml
14+<!-- 根标签 -->
15 <ConditionalActions>
16- <!--这里是Action的其他代码-->
17+
18+ <!-- 条件标签 -->
19+ <Instantly needsMissionComplete="false">
20+
21+ <!-- 行为标签 -->
22+ <SaveGame DelayHost="delayNode" Delay="0"/>
23+ ...
24+ </Instantly>
25+
26+ ...
27 </ConditionalActions>
28 ```
29 # 根标签
30@@ -25,18 +35,13 @@ Action拥有触发条件功能. 触发条件通过**条件标签**来设置.
31
32 条件标签必须是根标签的下一级标签.
33
34-## 条件标签的通用非必须属性
35
36-这些触发条件都有一些通用的可选属性:
37-- `needsMissionComplete` 当完成当前任务时触发
38-- `requiredFlags` 拥有特定flag触发
39-
40-## 所有条件标签及其必须属性
41+## 所有条件标签及其属性
42 ~~~xml
43 <Instantly needsMissionComplete="false"></Instantly>
44 ~~~
45 `<Instantly>`: 立即触发.
46-- `needsMissionComplete`: 是否要在在任务完成后触发. 这是个非必须属性, 默认为`false`
47+- *`needsMissionComplete`: 是否要在在任务完成后触发. 这是个非必须属性, 默认为`false`
48
49 ~~~xml
50 <OnConnect target="targetComp"></OnConnect>
51@@ -80,14 +85,6 @@ Action拥有触发条件功能. 触发条件通过**条件标签**来设置.
52
53 行为标签是条件标签的下一级标签.
54
55-部分行为标签可以被延迟. 延迟情况特殊的行为标签我们将会进行提示, 可延迟的行为标签示范代码块中将带有相关属性. 所有行为标签的默认延迟时间均为0.
56-不可延迟的行为标签只是其自身没有延迟功能, 可以通过其他方式进行延迟, 比如单独创建一个`Action`, 然后延迟加载该`Action`.
57-
58-如果需要延迟, 则应指定两个属性:
59-- `DelayHost`: DelayHost的ID. 因Hacknet的特性, Action的延迟功能需要一个节点帮助, 这个节点就是DelayHost. DelayHost需要拥有`FastActionHost`守护线程.
60-- `Delay`: 延迟时间, 单位为秒
61-
62-
63 行为标签可以通过功能大致分为以下部分:
64 - 加载类 行为标签
65 - 文件操作类 行为标签
66@@ -95,6 +92,15 @@ Action拥有触发条件功能. 触发条件通过**条件标签**来设置.
67 - 节点操作类 行为标签
68 - HacknetOS操作类 行为标签
69
70+部分行为标签可以被延迟. `Action`的延迟通过DelayHost(延迟主机)实现, 此过程将会在DelayHost的`/runtime`生成缓存文件.
71+
72+如果行为标签可以延迟, 并且需要延迟, 则应指定两个属性. 下文将不在逐个说明. 属性如下:
73+- `DelayHost`: DelayHost的ID. 因Hacknet的特性, Action的延迟功能需要一个节点帮助, 这个节点就是DelayHost. DelayHost需要拥有`FastActionHost`守护线程.
74+- `Delay`: 延迟时间, 单位为秒
75+
76+可延迟行为标签的示范代码块中均包含`DelayHost`与`Delay`属性.
77+
78+不可延迟的行为标签自身没有延迟功能, 但可以通过其他方式进行延迟, 比如使用`<AddConditionalActions>`.
79
80 ***注意! 以下简称自闭和标签(空内容标签)为"空标签". 在所有可以延迟的行为标签中, 所有的`DelayHost`属性和`Delay`均为非必须属性.***
81 ## 加载类行为标签
82@@ -109,6 +115,8 @@ Action拥有触发条件功能. 触发条件通过**条件标签**来设置.
83 | --- | --- |
84 | 是 | 是 |
85
86+可以通过`<AddConditionalActions>`使得部分不可延迟的行为标签延迟.
87+
88 ~~~xml
89 <LaunchHackScript Filepath="Scripts/HackerScript.txt" DelayHost="delayNode" Delay="0" SourceComp="SourceComp" TargetComp="TargetComp" RequireLogsOnSource="false" RequireSourceIntact="true"/>
90 ~~~
91@@ -131,7 +139,7 @@ Action拥有触发条件功能. 触发条件通过**条件标签**来设置.
92
93 | 空标签 | 延迟 |
94 | --- | --- |
95-| 是 | 是 |
96+| 是 | **否** |
97
98 ~~~xml
99 <RunFunction FunctionName="FunctionName" FunctionValue="0" DelayHost="delayNode" Delay="0"/>
100@@ -216,7 +224,7 @@ Action拥有触发条件功能. 触发条件通过**条件标签**来设置.
101 - `Delay` 距离该Actions被触发时的延迟
102 - 内容: 消息内容
103
104-IRC消息的延迟发送通过服务器的`runtime`目录实现, 无需`DelayHost`.
105+IRC(DHS)消息的延迟发送通过目标服务器充当"`DelayHost`", 缓存内容将在`runtime`目录生成, 无需`DelayHost`.
106 - IRC: /IRC/runtime
107 - IRCHub(DHS): /HomeBase/runtime
108
109@@ -246,7 +254,7 @@ IRC消息的延迟发送通过服务器的`runtime`目录实现, 无需`DelayHos
110 | 是 | 是 |
111
112 ~~~xml
113-<StartScreenBleedEffect AlertTitle="Sequencer Attack" CompleteAction="Actions/ScreenBleedFailed.xml" TotalDurationSeconds="" DelayHost="delayNode" Delay="">Break into the Moonshine servers
114+<StartScreenBleedEffect AlertTitle="Sequencer Attack" CompleteAction="Actions/ScreenBleedFailed.xml" TotalDurationSeconds="100" DelayHost="delayNode" Delay="0">Break into the Moonshine servers
115 Delete all files and backups
116 Get out of there!</StartScreenBleedEffect>
117 ~~~
118@@ -257,6 +265,8 @@ Get out of there!</StartScreenBleedEffect>
119
120 两个标签中的内容为红屏后左下角的提示, 最多只能有三行.
121
122+需要注意的是`AlertTitle`的英文字母小写与大写在游戏中对应的字体不同.
123+
124 | 空标签 | 可延迟 |
125 | --- | --- |
126 | **否** | 是 |
127@@ -279,27 +289,4 @@ Get out of there!</StartScreenBleedEffect>
128
129 | 空标签 | 可延迟 |
130 | --- | --- |
131-| 是 | 是 |
132-
133-~~~xml
134-<LoadMission MissionName="Missions/SurpriseMission.xml"/>
135-~~~
136-`LoadMission`:加载一个任务
137-- `MissionName` 任务的相对路径
138-
139-| 空标签 | 可延迟 |
140-| --- | --- |
141-| 是 | **否** |
142-
143-~~~xml
144-<RunFunction FunctionName="functionName" FunctionValue="0" DelayHost="delayNode" Delay="1.0"/>
145-~~~
146-`RunFunction`: 加载一个function
147-- `FunctionName`: Function相对路径
148-- `FunctionValue`: 运行function传递的参数值 (简答理解就类似于 `FunctionName(FunctionValue)`)
149-
150-| 空标签 | 可延迟 |
151-| --- | --- |
152-| 是 | 是 |
153-
154-~~~xml
155+| 是 | 是 |