上一节我们创建了MyAddon插件,之后我们首先来看下如何处理系统事件。
准备知识
插件开发的目的是为了在游戏中给玩家提供各类的帮助和服务。那么我们需要能够相应用户的操作以及游戏世界的变化。游戏世界的变化,通过称为系统事件的消息机制发送给我们的插件,比如用户进入游戏世界,死亡,升级等,只要我们的插件注册了这些事件,那么当这些事件发生时,我们的插件就能被通知到,相应的处理代码也会被调用。
插件菜单
- Run - 运行插件,配合Stop命令可以随时的运行或者停止你的插件。
- Stop - 停止已运行的插件
RegisterEvent - 为插件注册事件(包括系统事件和自定义事件,自定义事件将在IGAS库的wiki中说明)
- Add File - 为插件添加文件,会提供文件类型选择。
- Rename Addon - 重命名插件。
- Delete Addon - 删除插件。
- Export Addon - 导出插件,会有一个向导形式的界面弹出,帮助你把该插件保存到硬盘中,当然,插件不具备读写硬盘的能力,所以也只能做成向导了。
为插件注册事件
如图,下面那个系统事件注册界面中,左边是可选的系统事件名称,右边是已经注册的事件名称,双击各个事件名称即可选择或者取消注册。Add Custom Event按钮帮助你注册一个自定义事件的名称,在学习IGAS库之前,不需要使用到。这里也不做说明。 那么,首先我们选择一个事件:
ADDON_LOADED - 这个事件发生在进入游戏前,每个插件及它的SavedVariables被载入后,该事件会被发送,参数是被载入插件的名称。
选择好后,点击Save按钮,然后双击打开Initialize文件,我们可以看到中多了一行注册ADDON_LOADED事件的代码。关闭了,我们继续下一步。
特别注意,在代码中我们常能看到_Addon这个特殊变量,它指向的就是我们创建的这个插件,我们在代码中定义各种全局变量和函数都会保存在_Addon这个表中,_Addon本身作为一个插件对象,也具有相当多的可用操作,比如这里的注册事件,以及下面的事件处理,更多的功能会在后续章节中提到,而关于Addon类的详细说明会在IGAS库的说明中讲解。
处理事件
打开文件列表最下面的MyAddon文件,这也是我们的主文件(类似Main在C里面的作用)。在界面元素选择列表中选择_Addon,在事件选择列表中选择ADDON_LOADED。
Studio自动在代码中添加了一段function定义,这就是我们对应ADDON_LOADED事件的处理函数。(自己加个回车做排版,代码似乎和FAIAP有点小冲突,第一次创建的少一个换行)。 如图,在函数里面补充代码,最终如下
1 IGAS:NewAddon("MyAddon")
2
3 function _Addon:ADDON_LOADED(name)
4 -- 判断是否是MyAddon被载入
5 if name == "MyAddon" then
6 -- IGAS:MsgBox("XXX") 是IGAS提供的消息框,使用简便,以后会介绍更多关于它的用法。
7 IGAS:MsgBox("MyAddon is Loaded!!!")
8 end
9 end
- 然后,我们运行插件。
在弹出的启动事件选择界面中,选择ADDON_LOADED,这是为了测试需要,毕竟系统不会发送这个事件给我们。之后点击LOAD按钮。
好了,我们看到效果了,关闭这个消息框,然后停止掉我们的MyAddon插件,这节就结束了。


