Hacknet-Extension-Tutorial


commit
a0c591f
parent
4a6b47c
author
Bit
date
2023-01-16 08:24:29 +0000 UTC
开启编写扩展之旅
1 files changed,  +120, -1
M Tutorial.md
+120, -1
  1@@ -4,4 +4,123 @@
  2 Hacknet目前有很多的扩展,其中优秀的也有很多,比如ZQG的OCA,Kwiper的Heartbeat;还有一些比较烂的,比如Death by Bit和Real World  
  3 但不管怎样,他们都尝试了编写自己的扩展,尝试为Hacknet社区出一份力  
  4 目前也有很多的人想要写扩展,可国内资料匮乏,国外缺少翻译,这是一大问题  
  5-为了解决这个问题,我们创建了这个仓库,用来尝试着完善教程,我们知道这会很难,但我们愿意尝试。
  6+为了解决这个问题,我们创建了这个仓库,用来尝试着完善教程,我们知道这会很难,但我们愿意尝试。
  7+
  8+## 正文 
  9+好,那么这里,我们就开始正式地开始此教程  
 10+本教程通过扩展目录结构分为11个部分,这些目录分别是:  
 11+- Actions 实现游戏中的各种操作,各种对话,各种特效等  
 12+- Factions 多个Action的集合,可实现比如CSEC任务数据库中最后一个任务的锁定  
 13+- Docs 一些文本内容,如el论坛的帖子  
 14+- HackerScripts 黑客脚本,用来实现例如原版中naix的反击等  
 15+- Missions 任务,在Hacknet中,每一个邮件都是一个任务  
 16+- Music 扩展的音乐资源
 17+- Nodes 扩展中存在的节点定义
 18+- People 人口,用于在通用医疗,国际学术数据库和死亡人员数据库中添加人员数据
 19+- Themes 扩展自定义的Theme,也就是x-server.sys
 20+- Web 用于Web服务器节点的html,css文件等  
 21+
 22+虽然存在11个文件夹,但实际上,只有Actions,Factions,Missions,HackerScripts和Nodes存在扩展代码,其余均为资源  
 23+Docs,Music,People,Themes,Web不会单独拿出来单独讲解,仅在其他的代码编写中需要时提及  
 24+
 25+### Actions
 26+Actions可以实现例如DHS中的对话,DLC中Coel的破坏白名单等,它实现游戏的各种特效,是一个优秀的扩展不可或缺的一部分  
 27+Actions中可以有多个Action,使用相对路径调用  
 28+一个Action的结构大概如下:  
 29+```xml
 30+<ConditionalActions>
 31+    <!--这里是Action的其他代码-->
 32+</ConditionalActions>
 33+```
 34+我们可以看到,Action由<ConditionalActions>开始,由</ConditionalActions>结束,这是Action的标准格式  
 35+每个Action都有触发条件,也就是达成什么条件时触发  
 36+触发条件共有以下几种,但先决条件都是这个Action被加载:  
 37+- Instantly 立即触发 
 38+- OnConnect 连接某个节点后触发,有一个必须属性target,指的是触发需要连接节点的ID
 39+- HasFlags 拥有某项flag(s)后触发,有一个必须属性requiredFlags,指的是触发需要的flag,多个flag用英文逗号分割
 40+- DoesNotHaveFlags 没有某项flag(s)后触发,所需设定属性与HasFlags相同
 41+- OnDisconnect 断开某个节点后触发,所需设定属性与OnConnect相同
 42+- OnAdminGained 获取某个节点的管理员权限后触发,有一个必须属性target,指的是触发需要获取管理员权限的节点ID
 43+
 44+这些触发条件都有一些通用的可选属性:  
 45+- needsMissionComplete 当完成当前任务时触发
 46+- requiredFlags 拥有特定flag触发
 47+
 48+下面开始正式进行Action实现功能的讲解  
 49+
 50+#### AddIRCMessage
 51+作用:在指定IRC频道发送消息  
 52+属性:  
 53+- Author 信息的发送人
 54+- TargetComp 目标IRC频道节点ID
 55+- Delay 距离上一次执行后的延迟
 56+
 57+两个标签中间是要发送的消息  
 58+
 59+#### LaunchHackScript
 60+作用:启动黑客脚本  
 61+属性:  
 62+- Filepath 黑客脚本位置
 63+- DelayHost 用来给Action延迟,因Hacknet的特性,Action延迟需要一个节点帮助,这个节点就是DelayHost,需要有FastActionHost守护线程,该属性为节点ID
 64+- Delay 距离上一次执行后的延迟
 65+- SourceComp 源电脑,也就是执行操作后留下日志的电脑
 66+- TargetComp 目标电脑,黑客脚本作用的电脑
 67+- RequireLogsOnSource 可选属性,是否目标电脑在源电脑上留下日志的情况下才启动
 68+- RequireSourceIntact //TODO
 69+
 70+这是一个自闭合标签
 71+
 72+#### SwitchToTheme
 73+作用:更改玩家的主题  
 74+属性:  
 75+- ThemePathOrName 主题的路径或者是名字
 76+- FlickerInDuration //TODO
 77+
 78+这是一个自闭合标签
 79+
 80+#### AddConditionalActions
 81+作用:在Action中执行另一个Action  
 82+属性:  
 83+- Filepath Action文件路径
 84+
 85+这是一个自闭合标签
 86+
 87+#### AddAsset
 88+作用:向指定节点添加文件  
 89+属性:  
 90+- FileName 要添加的文件名字
 91+- FileContents 要添加的文件的内容
 92+- TargetComp 目标节点
 93+- TargetFolderpath 需要添加到的路径
 94+
 95+这是一个自闭合标签
 96+
 97+
 98+#### StartScreenBleedEffect
 99+作用:开启红屏效果,也就是被追踪,要ISP改IP时的效果和最后删Entech文件的效果  
100+属性:  
101+- AlertTitle 红屏标题
102+- CompleteAction 完全红屏后执行的Action
103+- TotalDurationSeconds 完全红屏所用时间
104+- DelayHost 中继节点,解释和上文相同
105+- Delay 距离上一个执行后的延迟
106+
107+两个标签中的内容为红屏后左下角的提示,最多只能有三行
108+
109+#### CancelScreenBleedEffect
110+作用:关闭红屏效果
111+属性:  
112+- DelayHost 和上文相同
113+- Delay 和上文相同
114+
115+这是一个自闭合标签  
116+
117+#### KillExe
118+作用:终止某个exe进程  
119+属性:  
120+- DelayHost 解释和上文相同
121+- Delay 解释和上文相同
122+- ExeName 要结束的exe名字
123+
124+这是一个自闭合标签  
125+