- commit
- a0c591f
- parent
- 4a6b47c
- author
- Bit
- date
- 2023-01-16 08:24:29 +0000 UTC
开启编写扩展之旅
1 files changed,
+120,
-1
+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+