Hacknet-Extension-Tutorial


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