- commit
- acf3e07
- parent
- 39f0eec
- author
- BovineBeta
- date
- 2023-07-12 13:00:10 +0000 UTC
docs: [Actions] 完善Action的属性和功能说明, 以及修改错误
1 files changed,
+103,
-31
+103,
-31
1@@ -32,25 +32,48 @@ Action拥有触发条件功能. 触发条件通过**条件标签**来设置.
2 - `requiredFlags` 拥有特定flag触发
3
4 ## 所有条件标签及其必须属性
5-
6+~~~xml
7+<Instantly needsMissionComplete="false"></Instantly>
8+~~~
9 `<Instantly>`: 立即触发.
10-- 无必须属性
11+- `needsMissionComplete`: 是否要在在任务完成后触发. 这是个非必须属性, 默认为`false`
12
13+~~~xml
14+<OnConnect target="targetComp"></OnConnect>
15+~~~
16 `<OnConnect>`: 连接某个节点后触发.
17 - `target`: 需要连接的节点ID
18
19+~~~xml
20+<OnDisconnect target="targetComp"></OnDisconnect>
21+~~~
22 `<OnDisconnect>`: 断开某个节点后触发.
23 - `target`: 需要断开的节点ID
24
25-`<HasFlags>`: 拥有某项flag(s)后触发.
26-- `requiredFlags`: 需要的flag, 多个flag用英文逗号隔开.
27+**注意:! 由于Hacknet的Bug, 如果`target`是`playerComp`, 即使没有断开玩家节点, `<OnDisconnect>`都会触发!**
28
29-`<DoesNotHaveFlags>`: 没有某项flag(s)后触发.
30+~~~xml
31+<HasFlags requiredFlags="flag1,flag2"></HasFlags>
32+~~~
33+`<HasFlags>`: 拥有某项flag(s)后触发.
34 - `requiredFlags`: 需要的flag, 多个flag用英文逗号隔开.
35
36+~~~xml
37+<OnAdminGained target="targerComp"></OnAdminGained>
38+~~~
39 `<OnAdminGained>`: 获取某个节点的管理员权限后触发.
40 - `target`: 需要获取管理员权限的节点ID
41
42+~~~xml
43+<DoesNotHaveFlags requiredFlags="flag1,flag2">
44+ <!-- 没有实装, 一用就报错 -->
45+</DoesNotHaveFlags>
46+~~~
47+`<DoesNotHaveFlags>`: 没有某项flag(s)后触发.
48+- `requiredFlags`: 需要的flag, 多个flag用英文逗号隔开.
49+
50+**没有实装, 但是出现在了官方的教程扩展`IntroExtension`里面. 一用就报错.**
51+
52 # 行为标签
53
54 行为标签控制游戏内容. Action在触发条件成立后将会执行行为标签
55@@ -72,13 +95,19 @@ Action拥有触发条件功能. 触发条件通过**条件标签**来设置.
56 - 节点操作类 行为标签
57 - HacknetOS操作类 行为标签
58
59-## 加载类行为标签
60
61+***注意! 以下简称自闭和标签(空内容标签)为"空标签". 在所有可以延迟的行为标签中, 所有的`DelayHost`属性和`Delay`均为非必须属性.***
62+## 加载类行为标签
63 ~~~xml
64 <AddConditionalActions Filepath="Actions/NextAction.xml" DelayHost="delayNode" Delay="0"/>
65 ~~~
66-`<AddConditionalActions>`: 加载另一个Action.
67-- `Filepath`: Action文件相对路径.
68+`<AddConditionalActions>`: 加载另一个Action
69+- `Filepath`: Action文件相对路径
70+
71+
72+| 空标签 | 可延迟 |
73+| --- | --- |
74+| 是 | 是 |
75
76 ~~~xml
77 <LaunchHackScript Filepath="Scripts/HackerScript.txt" DelayHost="delayNode" Delay="0" SourceComp="SourceComp" TargetComp="TargetComp" RequireLogsOnSource="false" RequireSourceIntact="true"/>
78@@ -90,27 +119,40 @@ Action拥有触发条件功能. 触发条件通过**条件标签**来设置.
79 - `RequireLogsOnSource`: 目标节点是否需要在攻击源节点上留下日志. 默认为false.
80 - `RequireSourceIntact`: 攻击源节点是否需要系统网络文件
81
82+| 空标签 | 可延迟 |
83+| --- | --- |
84+| 是 | 是 |
85+
86 ~~~xml
87 <LoadMission MissionName="Missions/SurpriseMission.xml"/>
88 ~~~
89 `<LoadMission>`立即加载任务:
90 - `MissionName`: 任务的相对路径
91
92-这是个自闭和标签, 不可被延迟.
93+| 空标签 | 延迟 |
94+| --- | --- |
95+| 是 | 是 |
96
97 ~~~xml
98 <RunFunction FunctionName="FunctionName" FunctionValue="0" DelayHost="delayNode" Delay="0"/>
99 ~~~
100-`<RunFunction>`: 运行Function.
101-- `FunctionName`: Function的名字.
102-- `FunctionValue`: Function运行时传递参数值. 部分Function运行需要传递参数值.
103+`<RunFunction>`: 运行Function
104+- `FunctionName`: Function的名字
105+- `FunctionValue`: Function运行时传递参数值. 部分Function运行需要传递参数值
106+
107+
108+| 空标签 | 可延迟 |
109+| --- | --- |
110+| 是 | 是 |
111
112 ~~~xml
113 <SaveGame DelayHost="delayNode" Delay="0"/>
114 ~~~
115 `<SaveGame>`: 保存游戏
116
117-这是一个自闭合标签, 可以被延迟
118+| 空标签 | 可延迟 |
119+| --- | --- |
120+| 是 | 是 |
121
122 ## 文件操作类
123 ~~~xml
124@@ -122,7 +164,9 @@ Action拥有触发条件功能. 触发条件通过**条件标签**来设置.
125 - `TargetComp` 目标节点
126 - `TargetFolderpath` 文件将会存放的路径
127
128-这是一个自闭合标签, 不可延迟
129+| 空标签 | 可延迟 |
130+| --- | --- |
131+| 是 | **否** |
132
133 ~~~xml
134 <AppendToFile DelayHost="delayNode" Delay="0" TargetComp="companyWhitelist" TargetFolderpath="Whitelist" TargetFilename="list.txt">#PLAYER_IP#</AppendToFile>
135@@ -133,6 +177,9 @@ Action拥有触发条件功能. 触发条件通过**条件标签**来设置.
136 - `TargetFilename`: 目标文件名.
137 - 内容: 添加到内容, 将会另起一行. 可以为空.
138
139+| 空标签 | 可延迟 |
140+| --- | --- |
141+| **否** | 是 |
142
143 ~~~xml
144 <CopyAsset DestFilePath="home" DestComp="playerComp" SourceComp="assetNode" SourceFileName="copycat.txt" SourceFilePath="home/copy"/>
145@@ -143,7 +190,9 @@ Action拥有触发条件功能. 触发条件通过**条件标签**来设置.
146 - `DestFilePath`: 目标路径, 即粘贴的路径.
147 - `DestComp`: 目标节点, 即粘贴的目标节点.
148
149-这是一个自闭和标签, 不可延迟.
150+| 空标签 | 可延迟 |
151+| --- | --- |
152+| 是 | **否** |
153
154 ~~~xml
155 <DeleteFile TargetComp="playerComp" FilePath="home" FileName="deleteme.txt" DelayHost="delayNode" Delay="0"/>
156@@ -153,11 +202,15 @@ Action拥有触发条件功能. 触发条件通过**条件标签**来设置.
157 - `FilePath`: 文件路径
158 - `FileName`: 文件名
159
160+| 空标签 | 可延迟 |
161+| --- | --- |
162+| 是 | 是 |
163+
164 ## 特殊内容操作类
165 ~~~xml
166-<AddIRCMessage Author="Kaguya" TargetComp="ircNode" Delay="">text</AddIRCMessage>
167+<AddIRCMessage Author="Kaguya" TargetComp="ircNode" Delay="0">text</AddIRCMessage>
168 ~~~
169-`AddIRCMessage`: 向IRC中添加消息.
170+`AddIRCMessage`: 向IRC中添加消息
171 - `Author` 信息的发送人
172 - `TargetComp` 目标IRC频道节点ID
173 - `Delay` 距离该Actions被触发时的延迟
174@@ -166,6 +219,10 @@ Action拥有触发条件功能. 触发条件通过**条件标签**来设置.
175 IRC消息的延迟发送通过服务器的`runtime`目录实现, 无需`DelayHost`.
176 - IRC: /IRC/runtime
177 - IRCHub(DHS): /HomeBase/runtime
178+
179+| 空标签 | 可延迟 |
180+| --- | --- |
181+| **否** | **是, 且不需要`DelayHost`** |
182
183 ~~~xml
184 <SwitchToTheme ThemePathOrName="Themes/ExampleTheme.xml" FlickerInDuration="3.0" DelayHost="delayNode" Delay="0"/>
185@@ -174,36 +231,45 @@ IRC消息的延迟发送通过服务器的`runtime`目录实现, 无需`DelayHos
186 - `ThemePathOrName` 主题的路径或者是名字
187 - `FlickerInDuration` 当切换主题时, 界面闪烁的时间, 单位为秒, 设定为小于等于0则直接切换不闪烁
188
189-这是一个自闭合标签, 可以被延迟
190+| 空标签 | 可延迟 |
191+| --- | --- |
192+| 是 | 是 |
193
194 ~~~xml
195-<AddConditionalActions Filepath="Actions/NextAction.xml" DelayHost="delayNode" Delay=""/>
196+<AddConditionalActions Filepath="Actions/NextAction.xml" DelayHost="delayNode" Delay="0"/>
197 ~~~
198 `AddConditionalActions`:在Action中执行另一个Action
199 - `Filepath` Action文件路径
200
201-这是一个自闭合标签, 可以被延迟
202+| 空标签 | 可延迟 |
203+| --- | --- |
204+| 是 | 是 |
205
206 ~~~xml
207 <StartScreenBleedEffect AlertTitle="Sequencer Attack" CompleteAction="Actions/ScreenBleedFailed.xml" TotalDurationSeconds="" DelayHost="delayNode" Delay="">Break into the Moonshine servers
208 Delete all files and backups
209 Get out of there!</StartScreenBleedEffect>
210 ~~~
211-`StartScreenBleedEffect`:开启红屏效果, 也就是被追踪, 要ISP改IP时的效果和最后删Entech文件的效果
212-属性:
213+`StartScreenBleedEffect`:开启红屏效果, 也就是被追踪, 要ISP改IP时的效果和最后删Entech文件的效果
214 - `AlertTitle` 红屏标题
215 - `CompleteAction` 完全红屏后执行的Action
216 - `TotalDurationSeconds` 完全红屏所用时间
217
218-两个标签中的内容为红屏后左下角的提示, 最多只能有三行, 可以被延迟
219+两个标签中的内容为红屏后左下角的提示, 最多只能有三行.
220+
221+| 空标签 | 可延迟 |
222+| --- | --- |
223+| **否** | 是 |
224
225 ~~~xml
226 <CancelScreenBleedEffect DelayHost="delayNode" Delay="0"/>
227 ~~~
228-`CancelScreenBleedEffect`:关闭红屏效果
229-属性:无特殊属性
230+`CancelScreenBleedEffect`:关闭红屏效果
231+
232
233-这是一个自闭合标签, 可以被延迟
234+| 空标签 | 可延迟 |
235+| --- | --- |
236+| 是 | 是 |
237
238 ~~~xml
239 <KillExe DelayHost="delayNode" Delay="0" ExeName="*"/>
240@@ -211,7 +277,9 @@ Get out of there!</StartScreenBleedEffect>
241 `KillExe`:终止某个exe进程
242 - `ExeName`: 要结束的exe名字
243
244-这是一个自闭合标签, 可以被延迟
245+| 空标签 | 可延迟 |
246+| --- | --- |
247+| 是 | 是 |
248
249 ~~~xml
250 <LoadMission MissionName="Missions/SurpriseMission.xml"/>
251@@ -219,15 +287,19 @@ Get out of there!</StartScreenBleedEffect>
252 `LoadMission`:加载一个任务
253 - `MissionName` 任务的相对路径
254
255-这是一个自闭合标签
256+| 空标签 | 可延迟 |
257+| --- | --- |
258+| 是 | **否** |
259
260 ~~~xml
261-<RunFunction FunctionName="" FunctionValue="0" DelayHost="delayNode" Delay="1.0"/>
262+<RunFunction FunctionName="functionName" FunctionValue="0" DelayHost="delayNode" Delay="1.0"/>
263 ~~~
264 `RunFunction`: 加载一个function
265 - `FunctionName`: Function相对路径
266-- `FunctionValue`: //TODO不会
267+- `FunctionValue`: 运行function传递的参数值 (简答理解就类似于 `FunctionName(FunctionValue)`)
268
269-这是一个自闭合标签,可以被延迟
270+| 空标签 | 可延迟 |
271+| --- | --- |
272+| 是 | 是 |
273
274 ~~~xml