剑网三插件入门教程(3):Hello JiangHu

本篇教程将指导你建立一个简单的插件:Hello Jianghu,主要介绍插件的基本结构和一些基本知识。
这个插件的唯一功能就是在进入游戏以后输出一行信息,效果是这样的:
1.jpg
怎么样?是不是觉得有点吭爹呢^_^


剑三插件的目录结构
剑三的插件都放在游戏的Interface文件夹内,在正式服中它的路径是:剑三安装目录\bin\zhcn\Interface
在这个目录下每一个文件夹就是一个插件,文件夹名就是插件的名字。
2.jpg
进入一个插件的文件夹后,会看到这些文件:info.ini、一个或多个lua文件,还可能会有除了info.ini之外的ini文件,例如Cube插件的目录是这样的:
3.jpg
Info.ini是插件的信息文件,游戏程序将通过它来读取插件的名称、说明和要执行的lua脚本,所以这个文件是很重要的。
Cube.lua就是插件lua脚本,一个插件可以有多个lua脚本,通过info.ini的设置来执行。
Cube.ini是插件的界面配置文件,带有界面的插件就需要这个界面文件了,现在我们先不管它。

一个最简单的插件的目录结构是这样的:一个以插件名命名的文件夹、文件夹里有一个info.ini和一个lua。
我们开始建立Hello Jianghu插件
首先在Interface目录下面建立文件夹Hello,然后在Hello文件夹中新建2个文本文件并改名为info.ini和hello.lua,如图
4.jpg

配置info.ini

Info.ini的格式是这样的:

  1.    
  2. [插件文件夹名]
  3. name=插件的名字(在人物选择界面的插件管理面板中显示的名字)
  4. desc=插件的介绍
  5. default=1
  6. version=0.4
  7. lua_0=插件脚本1
  8. lua_1=插件脚本2
  9. …………
复制代码

第一行的方框中的内容必须是这个插件的文件夹名,否则会无法加载
default=1表示这个插件是默认加载的,即插件管理面板中默认是打钩的
version=0.4是剑三插件系统的版本号,目前是0.4
lua_0= 的后面就是插件的lua脚本的路径了,如果有多个脚本,就可以继续写lua_1=xxx lua_2=xxx ……,游戏会从lua_0开始按顺序载入。

在本例中,我们的info.ini内容是这样的:

  1.   
  2. [Hello]
  3. name=Hello Jianghu
  4. desc=我的第一个插件
  5. default=1
  6. version=0.4
  7. lua_0=Interface\Hello\Hello.lua
复制代码


编写lua脚本

先来个最简单的
直接用记事本打开hello.lua,输进这一句:
  1. Output("Hello JiangHu")
复制代码
保存,小退下游戏重进就能在聊天框看到效果了:
5.jpg
关于Output函数:这是一个万能的输出函数,可以输出字符串、变量、甚至直接输出一个数组,用法很简单:直接Output(变量)即可,它的原型可以在\ui\script\msg.lua中找到。

是否觉得Output显示的这种格式不顺眼?想要干净的显示一行文字?这时候就可以用OutputMessage函数了,我们把hello.lua中的内容换成这样
  1. OutputMessage("MSG_SYS", "Hello JiangHu\n")
复制代码

保存并小退一下看看,这样就漂亮多了吧?
6.jpg
Jianghu后面那\n是一个换行的转义符,顾名思义,所用就是在这一行结尾来一个换行,这样可以避免让下一行内容紧接着这一行,影响阅读。关于转义符的用法可以自行上网搜索。
关于OutputMessage函数:这是个函数可以输出字符串、变量,一般的用法是OutputMessage(szType, szMsg),Type是输出信息类型("MSG_SYS"是黄字的系统信息),szMsg是要输出的字符串,它的原型也在\ui\script\msg.lua中。

Lua脚本的推荐格式
为了减小我们自己的脚本对全局环境的影响并且为了方便管理,我们一般都会按照这种标准来写插件脚本:
在文件头创建一个以插件名字命名的空table,然后把这个插件所有的变量和函数都定义到这个table中。
按照这种格式,我们把hello.lua改成这样:
  1.   
  2. Hello = {}
  3. Hello.TextJH = "Hello Jianghu\n"
  4. function Hello.output()
  5.   OutputMessage("MSG_SYS", Hello.TextJH)
  6. end
  7. Hello.output()
复制代码

虽然看起来变得繁琐了,但这样可以为日后的修改维护提供很大的方便。

给插件加入快捷键
想要在游戏中为这个插件设置一个快捷键,按一次就显示一条”Hello Jianghu”?
只需要在hello.lua最后加入这一句:
  1. Hotkey.AddBinding("Hello_output", "输出信息", "Hello", Hello.output, nil)
复制代码

小退之后你就能在游戏的快捷键设置里找到Hello这一项了,给它设置一个快捷键按几下,看到效果了吧:
7.jpg

Hotkey.AddBinding函数的各参数用法我用一张图来说明:
8.jpg
第五个参数固定为nil
好了,这次就讲这么多吧。
附上最终完成的Hello Jianghu插件:
Hello.rar (444 Bytes, 下载次数: 215)


文章的最后给大家推荐两篇插件入门教程:
南宫临风的 插件教程:基础介绍和创建第一个插件  这个教程……怎么说呢,反正我刚开始学插件的时候是看不懂这篇教程的……
Const奶舟的 剑三插件编写入门(一)  这篇教程相当好、相当经典,曾经给了我很大帮助,强烈推荐看几遍
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值