剑三插件编写入门
什么是插件
插件是一种遵循一定规范的应用程序接口编写出来的程序。
由于一个大型软件通常只由一家软件公司开发,在开发过程中,由于人手和时间的限制,这就决定了软件自身功能的局限性,而且软件的更新速度也是较为缓慢的,也不能满足所有的用户需求。正是处于这样的考虑,通常一些大型的软件都提供了调用外部插件程序的接口。这样一来,通过别人的插件使得自己的软件在功能和更新速度上都大大得到改善,同时使用者可以根据自己的需求来制作一些更适用于自己使用环境的插件程序。
游戏中的插件和外挂是两个不同的概念,游戏外挂通常是通过修改游戏运行时的数据,包括网络通信、本机内存等方式欺骗服务器,让外挂使用者达到不劳而获的目的。
而游戏插件是游戏开发者允许的,在一定限制下的改善游戏内容,比如界面显示、操作方式、或者为使用者提供方便功能,并不直接修改游戏数据的程序。游戏插件都只能运行在客户端。
剑三中插件能做什么
前面已经提到过,游戏插件都是运行在客户端的,也就是说我们通过客户端可以做的事情,理论上通过插件都可以做到。为了不影响游戏的正常运行,通常开发者都会对游戏插件做出一些限制、下面整理一下剑三中,插件所被允许做的事情。
1、改善用户界面(UI)
例如常用的头顶增强、战斗提示、气条拖动、Buff、Debuff缩放、弧形血条等。
2、改善游戏操作
例如拾取助手、自动Roll取绿装、自动贩卖灰物品等。
3、提供游戏开发者允许,但又没有提供的功能。
例如仇恨插件、任务指引、焦点目标、技能CD提示等。
3、其他不影响游戏数据的你能想到的任何东西。
例如小游戏插件。
插件的安装
在剑三的安装目录下的interface文件夹中放入你需要安装的插件,登录游戏,在人物选择界面右侧点击插件管理,勾选上你想加载的插件,这样在你进入游戏,游戏程序就会去调用相应的插件程序了。
以我的电脑为例,安装从多玩论坛下载的弧形血条插件我的剑三安装在D:\Program
Files\Kingsoft\JX3\ 目录下面。
进入D:\Program Files\Kingsoft\JX3\ 目录,到interface文件夹。如果没有这个文件夹,直接新建文件夹并命名为interface即可。
解压下载到的headEx.rar文件,得到一个HeadEx的文件夹,文件夹里包含了HeadEx.lua 、info.ini、LEOConst_HeadEx.ini等文件,将HeadEx文件夹放入到interface文件夹中,进入游戏,在任务选择画面点击插件管理,勾选弧形血条插件,进入游戏后就可以看见插件了。
很多人在安装插件时发现将插件文件放入了interface文件夹下,但在游戏中的插件管理中看不到自己下载的插件,这样的问题通常是因为在解压插件文件的过程中,多产生了一级目录。
例如弧形血条插件中包含info.ini文件,这个文件应该处于的位置是Interface\HeadEx\info.ini
而有的使用者在解压时直接将HeadEx下的文件解压到了interface中,或者在interface下的HeadEx 文件夹中又创建的HeadEx文件夹,造成了如下的一些目录情况,这些都是不能运行插件的。
Interface\info.ini
Interface\HeadEx\ HeadEx \info.ini
学习制作插件需要哪些基础和工具
简单Lua编程,包括lua基本语法,table的概念,函数的概念,面向对象的基础概念。
工具上剑三客户端当然是不能少啦,剩下就是lua语言的编辑环境,最简单的就是txt文档编辑器来,一般我们还是习惯使用一些特殊的编辑器,比如UEStidio,NotePad++,这些支持语法高亮的编辑器。
另外为了方便检查脚本错误,还需要使用luaforwindows的可执行文件。可以到lua的去下
载(le/p/luaforwindows/)
剑三插件的组成
首先,剑三中的游戏插件是一个程序,那么我们肯定是需要一个文件来保存程序的代码。其次,插件程序是不可以脱离游戏独立运行的,它必须依赖于游戏程序,那么我们需要一种方式来告诉游戏程序,这个插件是干什么的,应该从哪开始执行这个插件程序,这个文件在剑三中就是info.ini文件。最后,由于
在游戏中通常会运行很多个插件,那么这么多info.ini就会十分的混乱,为了方便管理,降低每个插件与其他插件的耦合度,剑三有这样一个规则,插件必须放在一个文件夹中,文件夹中必须有一个info.ini文件。并且ini文件中必须有一个Section名为文件夹名字。(一个Section就是INI文件中用中括号分割的一段区域,具体详见Windows INI文件格式)
综上,剑三插件的基本结构有以下5点:
1、需要一个文件夹、至少一个程序文件、一个info.ini文件。
2、info.ini文件必须在这个文件夹中。
3、info.ini文件中的Section名必须为这个文件夹的文字。
4、info.ini文件中必须指明需要运行的程序文件的路径与名称。
5、info.ini文件中所指明的程序文件不能直接放在interface目录下,必须在其子目录中
从上面这五点中可以得到这样一些隐含信息:
info文件所指明的程序文件不必要和info在同一级目录下。
Info中可以有多个Section,但由于Section名和文件夹名不相同,所以多余的Section并不起作用,且不影响正常的Section工作。
Info文件中指明的程序文件可以有多个,随其编号决定调用顺序,编号越小越先调用。
info指明的程序文件不需要是lua的扩展名,只要是lua程序文件,可以是任意扩展名。
交易时间字符串是什么Info文件只能在interface目录的直接子目录下,比如 interface\HeadEx,不能是
interface\a\b\info.ini
Info.ini文件中的注释符号使用【#】,具体配置项如下所示:
Info中的配置对应游戏中的显示界面:
当我们指定的系统插件版本号低于右上角显示的系统版本号时,插件将变成灰,这表示官方对插件的一些设置、开放的接口作出了调整,可能你所编写的插件在该版本下不能正常使用,我们可以通过勾选下面的允许加载过期插件来强制运行它,但是不一定可以正常工作哦。
通常我们为了编写和管理插件的方便,有这样一些约定俗成的规矩。
1、为你的插件新建一个文件夹,文件夹的名字尽量做到见即知意。
2、为了避免和别的插件冲突,在你的文件夹前加一个自己的前缀,比如Const_HeadEx。
3、将你的插件入口程序和info.ini文件放到同一目录下。
4、在你的程序文件第一行首先定义一个table,这个table的名字是你插件的名字,用于存储所有与你插件相关的信息。
5、所有的函数、属性、都写在自己定义的table中。
6、在程序文件的最后一行调用你的入口函数。
7、将界面配置文件和对应的程序文件取相同的文件名。
剑三插件的Hello World
下面开始我们进入剑三插件的Hello World程序,哈哈哈哈。
1、首先在剑三目录下的interface中建立一个My_InterFaceTest文件夹
2、在Interface文件夹中建立一个info.ini文件和Main.lua文件。
3、在info.ini文件中输入以下内容:
4、在Main.Lua文件中输入以下内容
5、进入游戏,在插件管理界面勾选我的HelloWorld
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论