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

2023-12-18 06:50

本文主要是介绍剑网三插件入门教程(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奶舟的 剑三插件编写入门(一)  这篇教程相当好、相当经典,曾经给了我很大帮助,强烈推荐看几遍

这篇关于剑网三插件入门教程(3):Hello JiangHu的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/507447

相关文章

Rust中的Option枚举快速入门教程

《Rust中的Option枚举快速入门教程》Rust中的Option枚举用于表示可能不存在的值,提供了多种方法来处理这些值,避免了空指针异常,文章介绍了Option的定义、常见方法、使用场景以及注意事... 目录引言Option介绍Option的常见方法Option使用场景场景一:函数返回可能不存在的值场景

IDEA常用插件之代码扫描SonarLint详解

《IDEA常用插件之代码扫描SonarLint详解》SonarLint是一款用于代码扫描的插件,可以帮助查找隐藏的bug,下载并安装插件后,右键点击项目并选择“Analyze”、“Analyzewit... 目录SonajavascriptrLint 查找隐藏的bug下载安装插件扫描代码查看结果总结Sona

Maven(插件配置和生命周期的绑定)

1.这篇文章很好,介绍的maven插件的。 2.maven的source插件为例,可以把源代码打成包。 Goals Overview就可以查看该插件下面所有的目标。 这里我们要使用的是source:jar-no-fork。 3.查看source插件的example,然后配置到riil-collect.xml中。  <build>   <plugins>    <pl

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

eclipse安装subversion(SVN)版本控制插件

陈科肇 查看插件更新站点 网址:http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA 网站截图: 根据自己的eclipse版本,选择需要的更新站点. 使用eclipse集成subservion插件 Help > Install New Software…> 等待下载安装插件…

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

Weex入门教程之3,使用 Vue 开发 Weex 页面

环境安装 在这里简略地介绍下,详细看官方教程 Node.js 环境 Node.js官网 通常,安装了 Node.js 环境,npm 包管理工具也随之安装了。因此,直接使用 npm 来安装 weex-toolkit。 npm 是一个 JavaScript 包管理工具,它可以让开发者轻松共享和重用代码。Weex 很多依赖来自社区,同样,Weex 也将很多工具发布到社区方便开发者使用。

Weex入门教程之2,Android Studio安装Weex插件

插件位置及描述 https://plugins.jetbrains.com/idea/plugin/8460-weex 貌似对windows还不是很支持,先放着吧。 安装 插件功能 先预览下都有什么功能 安装完成Weex插件后,如果在main toolbar找不到这些功能图标,那么就需要手动添加到main toolbar 添加到main toolbar 红框内就是

Weex入门教程之1,了解Weex

【资料合集】Weex Conf回顾集锦:讲义PDF+活动视频! PDF分享:链接:http://pan.baidu.com/s/1hr8RniG 密码:fa3j 官方教程:https://weex-project.io/cn/v-0.10/guide/index.html 用意 主要是介绍Weex,并未涉及开发方面,好让我们开始开发之前充分地了解Weex到底是个什么。 以下描述主要摘取于