本篇教程主要介绍了在游戏中运行和调试Lua代码的方法

先说一下关于 Lua 语法的学习
剑三的插件是用LUA 脚本语言编写的,所以想要会写插件,必须要学会Lua 。写插件并不需要用到Lua 的高级技巧,所以只要掌握基本的语法即可,如果你已经有了计算机语言的基础(例如C 、C++ 、Java 、C# ),你会发现 Lua 真的很好学。Lua 的语法讲起来就是长篇大论了,我就不写了(事实上我也写不出),在这里我只能给大家推荐几个教程,如果你想学写插件,最好花时间看看这些资料:
Lua 参考手册   Lua5.1参考手册.chm (74.9 KB, 下载次数: 1489) 这是由云风翻译的Lua 5.1 Reference Manual 中文版,跟其它的许多参考手册一样,这份文档比较枯燥,如果是初学者,建议看下面这本。
lua 程序设计    lua程序设计.doc (991.5 KB, 下载次数: 1216) 权威教程Programming inLua的中文版,网上只能找到这本书的第一版,第二版目前只有实体书,个人建议想学好插件的话还是去当当买一本吧。
魔兽世界编程宝典 这本书目前只能在网上找到英文原版的pdf,想要中文版只能去书店买,100块多一本……不过这确实是一本好书

建议在有了一定Lua基础之后再开始学习插件的编写,当然,边学习边研究也是可以的(就象我一样)

在介绍调试方法之前,先介绍一个很多人不知道的命令:/showerrmsg
在聊天栏输入这条命令以后,聊天窗口中就会以系统信息形式显示Lua脚本的出错提示,有了这个就不用摸黑找脚本错误了。

( 注意 :在最新更新的体服客户端中,Lua 出错提示被和谐掉了,不知道是否是金山故意的,如果真的是和谐了,那就只能用我改写的Cube 来看出错提示了)

1.最简单的脚本执行接口 /script

直接在聊天栏输入/script 要执行的代码 即可执行这一条lua 代码
例如我输入/script Output(0)
聊天窗口显示执行结果:

当然,这样你一次只能执行一条语句,如果想执行多条语句该怎么办呢?这就要用到宏了。
在游戏的宏面板新建一个这样的宏:

  1. /script do
  2. 第一条语句
  3. 第二条语句
  4. End

复制代码

保存并运行,即可执行多条语句了,例如我新建一个这样的宏:

  1. /script do
  2. Output("这是第一条语句")
  3. Output("这是第二条语句")
  4. End

复制代码

执行效果:

/ showerrmsg 和/script 的定义都在客户端的ui\script\macro.lua 脚本中,在学习深入之后你可以自己去看这些命令的运作原理。

上面介绍的这条命令只适用于测试一些简单的语句,如果要编写插件,就需要用到调试器了,下面将介绍Cube 调试器插件。

2. Cube 代码调试器
Cube 是一个相当古老的插件,作者是kurapica ,第一版是09 年发布的。它几乎见证了剑三插件的整个发展史,中间历经几次金山的和谐,经过了很多作者的修改完善,一直用到了现在。前一阵子我学习剑三的窗体结构,用了这个插件练手,把它的窗口整个换了个颜色(某人:你闲得无聊么?),加入了一些新功能,后来我觉得可能有人很需要这个东西,就把它发到了论坛上。在这里,我就以我这个版本为例,介绍一下Cube 的用法。

关于这个插件,可能会有人抱怨:“为什么这个插件编译了呢?你不是支持开源的么?”我编译这个插件并不是为了所谓“技术保密”,而是为了保护一些敏感的接口。由于需要编译、执行代码以及设定环境,这个插件用到了一些反和谐接口。这些接口流传开来的话,会对游戏造成很不好的影响。其实在进一步学习深入之后,你肯定也能掌握一些“ 反和谐”的技术,但是我希望你也能像我一样不要让它们流传开来,为了有一个好的游戏环境,请不要打开这个潘多拉魔盒。

插件下载地址: http://bbs.duowan.com/viewthread.php?tid=19146894
请按照帖子中的使用方法安装插件。

按快捷键打开插件,主界面是这样的:

使用方法见上图,很简单吧~\( ≧▽≦)/~

我在中间编辑区复制进去一段代码:

  1. local nTotal = 6*60*60 -GetLogicFrameCount()/16%(6*60*60)
  2. local nHours = math.floor(nTotal/(60*60))
  3. local nMinutes = math.floor(nTotal/60%60)
  4. local l nSeconds = math.floor(nTotal%60)
  5. OutputMessage("MSG_SYS", "距离下次刷新还有"..nHours.."时"..nMinutes.."分"..nSeconds.."秒\n")

复制代码

点击运行, 看到效果了吧?

如果代码有错误会怎么样呢?我把后面的nSeconds 改成nSecond ,点运行,下面就会输出错误提示啦:

如果你喜欢这段代码,还可以把它保存起来,并且可以让它在每次进入游戏之后自动运行,方法图上都有,我就不详细说明了。

今天就先讲到这里吧,在下一篇教程中,我将指导大家建立第一个属于你自己的插件。
我们下次再见~~

剑网三插件入门教程(2):在游戏中调试Lua代码相关推荐

  1. 剑网三插件入门教程(4):事件

    本篇教程将通过编写一个简单的自动采集插件来介绍剑三的"事件(Event) "这个概念. 自动采集插件的功能就是自动采集身边的矿和草药,当人物停下来的时候,如果身边有可以采集到的矿和 ...

  2. 游戏开发入门(二)游戏中的设计模式

    视频链接:游戏开发入门(二)游戏中的设计模式(3节课 时常:约2小时40分钟) 该视频主要围绕游戏中常见的设计模式展开讲解并实践,需要大家多多实践与理解 笔记与总结(请先学习视频内容): 1.有必要深 ...

  3. 游戏开发入门(八)游戏中的场景管理

    视频链接:游戏开发入门(八)游戏中的场景管理(5节课 时常:约2小时07分钟) 授课者通过2D围棋的例子,逐步拓展成3D的虚拟游戏世界.这个3D游戏世界基本上就可以涵盖市面上所有类型的游戏了,我们通过 ...

  4. 在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)

    对于游戏公司而言,采用游戏脚本lua.python等进行开发也很常见,但是很多童鞋对脚本并没有很熟悉的概念,本篇则向大家简单介绍脚本的用途以及在Cocos2dx基础用法: Lua和python这些详细 ...

  5. lldb 调试php,linux系统下如何在vscode中调试C++代码

    本篇博客以一个简单的hello world程序,介绍在vscode中调试C++代码的配置过程. 1. 安装编译器 vscode是一个轻量的代码编辑器,并不具备代码编译功能,代码编译需要交给编译器完成. ...

  6. Eclipse中调试Python代码--调试FWTools2.4.7中的gdal_retile.py

    Eclipse中调试Python代码 Gdal_retile.py是用于对遥感影像创建金字塔,近期本人想读懂改程序中的代码.读懂代码的较好方式就是单步调试,但是由于之前没有学过Python语言,不但对 ...

  7. Chrome谷歌浏览器在DevTools中调试JS代码格式化

    大家在Chrome浏览器中调试JS代码时经常看到的是被压缩后的JS代码,可读性很差,在DevTools中js页面最下面有个格式化的图标**{}**,如下图所示: 点击格式化后会打开新的视图,新js名称 ...

  8. 如何在浏览器中调试JS代码,debug

    如何在浏览器中调试JS代码,debug 首先需要一段js代码,我将它放进html文件里面: 创建一个html文件,<script>标签里面放入需要调试的js代码,html文件如下: < ...

  9. leafLet入门教程兼leafLet API中文文档参考

    leafLet官方文档链接(英文原版):https://leafletjs.com/reference-1.3.4.html#marker-bindpopup 文章目录 leafLet教程 一.简单入 ...

  10. 可见的轮廓线用虚线绘制_CAD制图初学入门教程:CAD软件中如何绘制轴测图?

    在使用浩辰CAD软件绘制图纸的过程中经常会需要绘制轴测图,但是有些CAD制图初学入门者不知道如何在CAD制图软件中绘制轴测图,下面小编就来给大家分享一下浩辰CAD软件绘制轴测图的CAD制图初学入门教程 ...

最新文章

  1. Nature调查:6%中国科研人年薪超50万元!
  2. Kafka系列一之架构介绍和安装
  3. 关于dell - R710的磁盘管理
  4. h5支付不能打开支付宝 ios_IOS H5支付调起微信支付宝客户端问题总结
  5. 响应式布局框架 Pure-CSS 5.0 示例中文版-下
  6. 使用LoadRunner-运行负载测试
  7. 编写高质量代码:改善Java的151个建议四(基本类型)21-30
  8. DevOps组织中应用架构师的新定位与实践
  9. 【转】查看linux服务器的系统信息
  10. oracle高性能分页,Oracle中高性能分页包
  11. iphone目录结构
  12. 2020第十一届蓝桥杯省赛python真题详解
  13. 泛微E8使用 xlsx.core.js 导入页面数据
  14. 【C语言】初识C语言(上篇)
  15. 微信支付密码忘了怎么办
  16. C#开发自动照片(图片)裁剪(缩放)工具
  17. php 里面的echo啥意思,echo的含义 echo 有哪些含义,有什么功能
  18. HM编码器代码阅读(15)——帧间预测之AMVP模式(三)xGetBlkBits函数
  19. LZO和MiniLZO编码介绍
  20. 《史蒂夫·乔布斯传》官方正式中文版电子书

热门文章

  1. 红黑树插入修正和删除修正详解
  2. PHP连接数据库——身份验证问题
  3. #NI卸载修复工具,可以解决安装过程中出现“应用程序的安装程序可能已损坏”的问题。
  4. 基于OBD系统的量产车评估测试(PVE),你知多少?
  5. 计算机考研英语一历年国家线,历年考研英语国家线
  6. 概率论复习笔记3.0--假设检验
  7. java毕业生设计学籍管理系统计算机源码+系统+mysql+调试部署+lw
  8. 服务器更新维护公告,10月15日(周四)服务器更新维护公告
  9. java 微信分享朋友圈 链接显示图片_【微信开发】-- 微信分享功能(分享到朋友和朋友圈显示图片和简介)...
  10. 【UiBot干货】UiBot屏幕锁屏常见的7个问题