Hacknet-Extension-Tutorial


commit
acf3e07
parent
39f0eec
author
BovineBeta
date
2023-07-12 13:00:10 +0000 UTC
docs: [Actions] 完善Action的属性和功能说明, 以及修改错误
1 files changed,  +103, -31
M Content/Actions.md
+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