增加模块 - Natsukage/PostNamazu GitHub Wiki

我想要为邮差增加功能模块,我应该如何开始呢?

邮差的功能分为各个独立的模块,其文件均位于PostNamazu/Actions目录下,如果想要为邮差追加功能模块,只需参照现有的Actions,直接新建继承了NamazuModule的类即可。
邮差会在启动时自动加载所有继承了NamazuModule的类,并为其在主界面上创建启动开关。
通常情况下,你不需要额外创建或修改其他任何文件,即可让让邮差识别并加载你的功能模块。

对于需要在启动时通过SigScan获取地址的功能模块,可以参考Command模块或WayMark模块。
在邮差启动时、游戏进程切换时,每个模块的GetOffsets()方法将被执行,可以在这里执行更新内存地址等相关操作。

每个模块接受指令并执行的方法需为public void类型,并接受一个string类型变量作为输入。
方法名本身没有强制规定,其具体接受哪些指令通过方法前的Command属性来指定。你可以随意地为一个方法指定一个或多个对应的指令。邮差会在初始化时将其注册在对应的字典中,并在需要的时刻调用对应的方法。

[Command("command")] [Command("DoTextCommand")]
public void DoTextCommand(string command)
{
   ...
}

不论是来自于HTTP的请求,还是来自于Triggernometry或OverlayPlugin的请求,或是其他插件通过DoAction()方法调用邮差发起的请求。都会根据其command类型唤起对应的执行方法,所有指令统一接受一个string类型的输入,如果需要传递复杂结构,可以使用Json等方法进行传递。

一个模块中可以有多个执行指令的方法并绑定不同的指令,具体可以参考参考队列Queue模块。

对于完全不涉及内存操作的模块,可以参考SendKey模块,可以完全无视GetOffsets()方法。只需要指定了Command属性的接受指令的主要方法即可。