本篇教程将指导你建立一个简单的插件:Hello Jianghu,主要介绍插件的基本结构和一些基本知识。
这个插件的唯一功能就是在进入游戏以后输出一行信息,效果是这样的:
怎么样?是不是觉得有点吭爹呢^_^
剑三插件的目录结构
剑三的插件都放在游戏的Interface文件夹内,在正式服中它的路径是:剑三安装目录\bin\zhcn\Interface
在这个目录下每一个文件夹就是一个插件,文件夹名就是插件的名字。
进入一个插件的文件夹后,会看到这些文件:info.ini、一个或多个lua文件,还可能会有除了info.ini之外的ini文件,例如Cube插件的目录是这样的:
Info.ini是插件的信息文件,游戏程序将通过它来读取插件的名称、说明和要执行的lua脚本,所以这个文件是很重要的。
Cube.lua就是插件lua脚本,一个插件可以有多个lua脚本,通过info.ini的设置来执行。
Cube.ini是插件的界面配置文件,带有界面的插件就需要这个界面文件了,现在我们先不管它。
一个最简单的插件的目录结构是这样的:一个以插件名命名的文件夹、文件夹里有一个info.ini和一个lua。
我们开始建立Hello Jianghu插件
首先在Interface目录下面建立文件夹Hello,然后在Hello文件夹中新建2个文本文件并改名为info.ini和hello.lua,如图
配置info.ini
Info.ini的格式是这样的:
复制代码
第一行的方框中的内容必须是这个插件的文件夹名,否则会无法加载
default=1表示这个插件是默认加载的,即插件管理面板中默认是打钩的
version=0.4是剑三插件系统的版本号,目前是0.4
lua_0= 的后面就是插件的lua脚本的路径了,如果有多个脚本,就可以继续写lua_1=xxx lua_2=xxx ……,游戏会从lua_0开始按顺序载入。
在本例中,我们的info.ini内容是这样的:
复制代码
编写lua脚本
先来个最简单的
直接用记事本打开hello.lua,输进这一句:
复制代码
保存,小退下游戏重进就能在聊天框看到效果了:
是否觉得Output显示的这种格式不顺眼?想要干净的显示一行文字?这时候就可以用OutputMessage函数了,我们把hello.lua中的内容换成这样
复制代码
保存并小退一下看看,这样就漂亮多了吧?
Lua脚本的推荐格式
为了减小我们自己的脚本对全局环境的影响并且为了方便管理,我们一般都会按照这种标准来写插件脚本:
在文件头创建一个以插件名字命名的空table,然后把这个插件所有的变量和函数都定义到这个table中。
按照这种格式,我们把hello.lua改成这样:
复制代码
虽然看起来变得繁琐了,但这样可以为日后的修改维护提供很大的方便。
给插件加入快捷键
想要在游戏中为这个插件设置一个快捷键,按一次就显示一条”Hello Jianghu”?
只需要在hello.lua最后加入这一句:
复制代码
小退之后你就能在游戏的快捷键设置里找到Hello这一项了,给它设置一个快捷键按几下,看到效果了吧:
Hotkey.AddBinding函数的各参数用法我用一张图来说明:
第五个参数固定为nil
好了,这次就讲这么多吧。
附上最终完成的Hello Jianghu插件:
Hello.rar (444 Bytes, 下载次数: 215)
文章的最后给大家推荐两篇插件入门教程:
南宫临风的 插件教程:基础介绍和创建第一个插件 这个教程……怎么说呢,反正我刚开始学插件的时候是看不懂这篇教程的……
Const奶舟的 剑三插件编写入门(一) 这篇教程相当好、相当经典,曾经给了我很大帮助,强烈推荐看几遍
这个插件的唯一功能就是在进入游戏以后输出一行信息,效果是这样的:
怎么样?是不是觉得有点吭爹呢^_^
剑三插件的目录结构
剑三的插件都放在游戏的Interface文件夹内,在正式服中它的路径是:剑三安装目录\bin\zhcn\Interface
在这个目录下每一个文件夹就是一个插件,文件夹名就是插件的名字。
进入一个插件的文件夹后,会看到这些文件:info.ini、一个或多个lua文件,还可能会有除了info.ini之外的ini文件,例如Cube插件的目录是这样的:
Info.ini是插件的信息文件,游戏程序将通过它来读取插件的名称、说明和要执行的lua脚本,所以这个文件是很重要的。
Cube.lua就是插件lua脚本,一个插件可以有多个lua脚本,通过info.ini的设置来执行。
Cube.ini是插件的界面配置文件,带有界面的插件就需要这个界面文件了,现在我们先不管它。
一个最简单的插件的目录结构是这样的:一个以插件名命名的文件夹、文件夹里有一个info.ini和一个lua。
我们开始建立Hello Jianghu插件
首先在Interface目录下面建立文件夹Hello,然后在Hello文件夹中新建2个文本文件并改名为info.ini和hello.lua,如图
配置info.ini
Info.ini的格式是这样的:
-
- [插件文件夹名]
- name=插件的名字(在人物选择界面的插件管理面板中显示的名字)
- desc=插件的介绍
- default=1
- version=0.4
- lua_0=插件脚本1
- lua_1=插件脚本2
- …………
第一行的方框中的内容必须是这个插件的文件夹名,否则会无法加载
default=1表示这个插件是默认加载的,即插件管理面板中默认是打钩的
version=0.4是剑三插件系统的版本号,目前是0.4
lua_0= 的后面就是插件的lua脚本的路径了,如果有多个脚本,就可以继续写lua_1=xxx lua_2=xxx ……,游戏会从lua_0开始按顺序载入。
在本例中,我们的info.ini内容是这样的:
-
- [Hello]
- name=Hello Jianghu
- desc=我的第一个插件
- default=1
- version=0.4
- lua_0=Interface\Hello\Hello.lua
编写lua脚本
先来个最简单的
直接用记事本打开hello.lua,输进这一句:
- Output("Hello JiangHu")
关于Output函数:这是一个万能的输出函数,可以输出字符串、变量、甚至直接输出一个数组,用法很简单:直接Output(变量)即可,它的原型可以在\ui\script\msg.lua中找到。
是否觉得Output显示的这种格式不顺眼?想要干净的显示一行文字?这时候就可以用OutputMessage函数了,我们把hello.lua中的内容换成这样
- OutputMessage("MSG_SYS", "Hello JiangHu\n")
保存并小退一下看看,这样就漂亮多了吧?
Jianghu后面那\n是一个换行的转义符,顾名思义,所用就是在这一行结尾来一个换行,这样可以避免让下一行内容紧接着这一行,影响阅读。关于转义符的用法可以自行上网搜索。
关于OutputMessage函数:这是个函数可以输出字符串、变量,一般的用法是OutputMessage(szType, szMsg),Type是输出信息类型("MSG_SYS"是黄字的系统信息),szMsg是要输出的字符串,它的原型也在\ui\script\msg.lua中。
Lua脚本的推荐格式
为了减小我们自己的脚本对全局环境的影响并且为了方便管理,我们一般都会按照这种标准来写插件脚本:
在文件头创建一个以插件名字命名的空table,然后把这个插件所有的变量和函数都定义到这个table中。
按照这种格式,我们把hello.lua改成这样:
-
- Hello = {}
- Hello.TextJH = "Hello Jianghu\n"
- function Hello.output()
- OutputMessage("MSG_SYS", Hello.TextJH)
- end
- Hello.output()
虽然看起来变得繁琐了,但这样可以为日后的修改维护提供很大的方便。
给插件加入快捷键
想要在游戏中为这个插件设置一个快捷键,按一次就显示一条”Hello Jianghu”?
只需要在hello.lua最后加入这一句:
- Hotkey.AddBinding("Hello_output", "输出信息", "Hello", Hello.output, nil)
小退之后你就能在游戏的快捷键设置里找到Hello这一项了,给它设置一个快捷键按几下,看到效果了吧:
Hotkey.AddBinding函数的各参数用法我用一张图来说明:
第五个参数固定为nil
好了,这次就讲这么多吧。
附上最终完成的Hello Jianghu插件:
Hello.rar (444 Bytes, 下载次数: 215)
文章的最后给大家推荐两篇插件入门教程:
南宫临风的 插件教程:基础介绍和创建第一个插件 这个教程……怎么说呢,反正我刚开始学插件的时候是看不懂这篇教程的……
Const奶舟的 剑三插件编写入门(一) 这篇教程相当好、相当经典,曾经给了我很大帮助,强烈推荐看几遍