Hacknet-Extension-Tutorial


Hacknet-Extension-Tutorial / Content
Bit  ·  2024-08-13

Missions.md

Missions

在Hacknet中,每个邮件都是一个Mission,同时,Entopy和CSEC的任务数据库中的任务和DHS中的任务也是Mission
一个Mission的结构大概如下:

 1<?xml version = "1.0" encoding = "UTF-8" ?>
 2<mission id="testMission0" activeCheck="true" shouldIgnoreSenderVerification="false">
 3    <goals>
 4        <goal type="filedeletion" target="advExamplePC" file="asdf.txt" path="home"/>
 5    </goals>
 6    <missionStart val="7" suppress="true">changeSong</missionStart>
 7    <missionEnd val="1">addRank</missionEnd>
 8    <nextMission IsSilent="false">NONE</nextMission>
 9    <branchMissions>
10        <branch>Missions/BranchExample/TestBranchMission.xml</branch>
11    </branchMissions>
12    <posting title="Do the Extension Test Mission" reqs="someCustomFlag" requiredRank="3" >
13content
14    </posting>
15    <email>
16        <sender>Matt</sender>
17        <subject>Test Mission Email</subject>
18        <body>body</body>
19        <attachments>
20            <note title="An example note">note</note>
21            <link comp="missionTestNode" />
22        <account comp="missionTestNode" user="TestUser" pass="testpass" />
23        </attachments>
24    </email>
25</mission>

我们可以看到,Mission由<mission>开始,由</mission>结束
在开始标签中可以定义三个属性:

一个mission大概有以下几个部分:

Goals

goals指的是任务完成条件,一个Mission可以有很多个goal,Matt提供的goal类型也有很多
goal格式应为:<goal type=[goal类型] [其余参数]/>
goal共有以下几个类型:

filedeletion

1<goal type="filedeletion" target="advExamplePC" file="asdf.txt" path="home"/>

类型:删除文件
参数:

clearfolder

1<goal type="clearfolder" target="advExamplePC" path="home"/>

类型:清空文件夹
参数:

filedownload

1<goal type="filedownload" target="advExamplePC" file="downloadFile.txt" path="home"/>

类型:下载指定文件
参数:

filechange

1<goal type="filechange" target="advExamplePC" file="changeFile.txt" path="home" keyword="extension"/>

类型:更改文件内容
参数:

附加内容

由于该类型可能较难理解,附加内容补充,我们将举一个例子

1<goal type="filechange" target="advExamplePC" file="changeFile.txt" path="home" keyword="extension"/>
2<goal type="filechange" target="advExamplePC" file="changeFile.txt" path="home" keyword="data" removal="true" caseSensitive="true"/>

这是一个组合goal,第一个goal指的是让关键字extension在changeFile.txt中出现
第二个goal指的是让关键字data在文件changeFile.txt中不出现,不区分大小写
这个组合goal可以实现:让文件中的data替换为extension

getadmin

1<goal type="getadmin" target="advExamplePC"/>

类型:获取指定电脑的管理员权限
参数:

getstring

1<goal type="getstring" target="password" />

类型:在附加内容中存在指定内容
参数:

delay

1<goal type="delay" time="10.0"/>

类型:仅延迟一段时间
参数:

hasflag

1<goal type="hasflag" target="flagName"/>

类型:获取指定flag
参数:

fileupload

1<goal type="fileupload" target="advExamplePC" file="asdf.txt" path="home" destTarget="introFactionHomeNode" destPath="Drop/Uploads"/>
2<goal type="fileupload" target="advExamplePC" file="asdf2.dec" path="home" destTarget="introFactionHomeNode" destPath="home" decrypt="true" decryptPass="password"/>

类型:上传文件
参数:

AddDegree

1<goal type="AddDegree" owner="John Stalvern" degree="Masters in Digital Security" uni="Manchester University" gpa="3.0"/>

类型:在国际学术数据库中添加人员学历
参数:

wipedegrees

1<goal type="wipedegrees" owner="John Stalvern"/>

类型:在国际学术数据库中删除人员数据
参数:

sendemail

1<goal type="sendemail" mailServer="jmail" recipient="mailuser123" subject="Email Subject!"/>

类型:发送邮件
参数:

removeDeathRowRecord

1<goal type="removeDeathRowRecord" fname="Matt" lname="Trobbiani"/>

类型:删除人员死亡记录
参数:

附加内容

该goal可以是一个自闭合标签,也可以在开始和结束标签中添加遗言

getadminpasswordstring(DLC专属)

1<goal type="getadminpasswordstring" target="advExamplePC"/>

类型:在附加内容中填写了指定节点的管理员密码
参数:

missionStart

在任务开始时执行的内容
可选属性:

开始和结束标签中间是具体要执行的function(内置函数)

missionEnd

在任务结束时执行的内容
可选属性只有一个,val 给内置函数传的参数

开始和结束标签中间是具体要执行的function(内置函数)

nextMission

下一个任务,也就是完成本任务后自动跳转的任务
可选属性只有一个,IsSilent 让这个任务不发邮件安静处理,注意是当前任务不是下一个任务

开始和结束标签中间是下一个Mission的相对路径,可以为NONE

branchMissions

分支任务
解释:如果完成了分支任务中任何一个任务的所有goal,则自动跳转到该分支任务的nextMission
branchMissions中可以有多个mission
实例格式:

1<branchMissions>
2    <branch>Missions/BranchExample/TestBranchMission.xml</branch>
3</branchMissions>

posting

用于在任务数据库和DHS中添加额外内容
属性:

开始标签和结束标签中间为显示的该任务大致描述

email

给玩家发送的邮件,若为DHS任务则不发送邮件
可用标签:

attachments

邮件附件
可用标签:

note

笔记,属性:

开始标签和结束标签中间为笔记内容

link

节点链接,属性:

这是一个自闭合标签

account

账号,属性: