新浪博客

剑三插件编写入门(一)

2010-11-26 14:15阅读:
剑三插件编写入门(一)

什么是插件


插件是一种遵循一定规范的应用程序接口编写出来的程序。

由于一个大型软件通常只由一家软件公司开发,在开发过程中,由于人手和时间的限制,这就决定了软件自身功能的局限性,而且软件的更新速度也是较为缓慢的,也不能满足所有的用户需求。正是处于这样的考虑,通常一些大型的软件都提供了调用外部插件程序的接口。这样一来,通过别人的插件使得自己的软件在功能和更新速度上都大大得到改善,同时使用者可以根据自己的需求来制作一些更适用于自己使用环境的插件程序。

游戏中的插件和外挂是两个不同的概念,游戏外挂通常是通过修改游戏运行时的数据,包括网络通信、本机内存等方式欺骗服务器,让外挂使用者达到不劳而获的目的。
而游戏插件是游戏开发者允许的,在一定限制下的改善游戏内容,比如界面显示、操作方式、或者为使用者提供方便功能,并不直接修改游戏数据的程序。游戏插件都只能运行在客户端。


剑三中插件能做什么


前面已经提到过,游戏插件都是运行在客户端的,也就是说我们通过客户端可以做的事情,理论上通过插件都可以做到。为了不影响游戏的正常运行,通常开发者都会对游戏插件做出一些限制、下面整理一下剑三中,插件所被允许做的事情。
1、 改善用户界面(UI
例如常用的头顶增强、战斗提示、气条拖动、BuffDebuff缩放、弧形血条等。
2、 改善游戏操作
例如拾取助手、自动Roll取绿装、自动贩卖灰色物品等。
3、提供游戏开发者允许,但又没有提供的功能。
例如仇恨插件、任务指引、焦点目标、技能CD提示等。
3、 其他不影响游戏数据的你能想到的任何东西。
例如小游戏插件。

插件的安装


在剑三的安装目录下的interface文件夹中放入你需要安装的插件,登录游戏,在人物选择界面右侧点击插件管理,勾选上你想加载的插件,这样在你进入游戏,游戏程序就会去调用相应的插件程序了。
以我的电脑为例,安装从多玩论坛下载的 弧形血条插件 我的剑三安装在D:\Program Files\Kingsoft\JX3\ 目录下面。
进入D:\Program Files\Kingsoft\JX3\ 目录,找到interface文件夹。如果没有这个文件夹,直接新建文件夹并命名为interface即可。
解压下载到的headEx.rar文件,得到一个HeadEx的文件夹,文件夹里包含了HeadEx.luainfo.iniLEOConst_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文档编辑器来,一般我们还是习惯使用一些特殊的编辑器,比如UEStidioNotePad++,这些支持语法高亮的编辑器。
另外为了方便检查脚本错误,还需要使用luaforwindows的可执行文件。可以到lua的官方网站去下载 (http://code.google.com/p/luaforwindows/

剑三插件的组成


首先,剑三中的游戏插件是一个程序,那么我们肯定是需要一个文件来保存程序的代码。其次,插件程序是不可以脱离游戏独立运行的,它必须依赖于游戏程序,那么我们需要一种方式来告诉游戏程序,这个插件是干什么的,应该从哪开始执行这个插件程序,这个文件在剑三中就是info.ini文件。最后,由于在游戏中通常会运行很多个插件,那么这么多info.ini就会十分的混乱,为了方便管理,降低每个插件与其他插件的耦合度,剑三有这样一个规则,插件必须放在一个文件夹中,文件夹中必须有一个info.ini文件。并且ini文件中必须有一个Section名为文件夹名字。(一个Section就是INI文件中用中括号分割的一段区域,具体详见Windows INI文件格式)
综上,剑三插件的基本结构有以下5点:
1、需要一个文件夹、至少一个程序文件、一个info.ini文件。
2info.ini文件必须在这个文件夹中。
3info.ini文件中的Section名必须为这个文件夹的文字。
4info.ini文件中必须指明需要运行的程序文件的路径与名称。
5info.ini文件中所指明的程序文件不能直接放在interface目录下,必须在其子目录中

从上面这五点中可以得到这样一些隐含信息:
info文件所指明的程序文件不必要和info在同一级目录下。
Info中可以有多个Section,但由于Section名和文件夹名不相同,所以多余的Section并不起作用,且不影响正常的Section工作。
Info文件中指明的程序文件可以有多个,随其编号决定调用顺序,编号越小越先调用。
info指明的程序文件不需要是lua的扩展名,只要是lua程序文件,可以是任意扩展名。
Info文件只能在interface目录的直接子目录下,比如 interface\HeadEx,不能是interface\a\b\info.ini

Info.ini文件中的注释符号使用【#】,具体配置项如下所示:


[Const_GettingStarted]
#插件名,和文件夹名相同

name=准备开始
#在插件管理栏显示的插件名

desc=描述怎样开始制作剑三插件。 --By 奶舟
#在插件管理栏名称后面跟随的插件描述

default=1
#是否默认加载插件

version=0.3
#插件对应的系统版本号

#=================下面是入口程序文件路径====================
lua_0=Interface\Const_GettingStarted\Main.l

我的更多文章

下载客户端阅读体验更佳

APP专享