各位好,这里是唯。
这是Lua脚本的第二期,我依旧会谈一些理论,不过不要心急,只要你能够认真学习,离编写Lua脚本就不远了。
反之,基础不牢,地动山摇。好的,话不多说,我们开始第二期。
一、Lua脚本的创建方式
创建一个记事本,名字改为你想取的脚本名字,后缀改为.lua。
恭喜你,lua脚本创建成功。
二、Lua脚本的编写方式
1、无编程基础,懒:直接用记事本编写。
2、有编程基础,有强迫症:用一些代码编写软件,比如VSCode(全称:Visual Studio Code),等等。
注:我本人主要是写代码的,因此我使用VSCode来编写代码,所以教程截图看起来五颜六色的,实际上效果和你们用记事本编写是一致的,之后不再解释。
三、Lua脚本的基础概念
很多人学习Lua只是为了快速上手,并不想深入了解,我也如此。那么,我们就怎么快怎么来,什么必须掌握就只讲什么(挑重点,笑)
1、变量:变量的概念源于数学,是用于存储值的抽象概念。
变量有两部分组成:变量名,变量值,此外还有一个变量的属性,Lua脚本编写通常使用局部变量。Lua的数据类型不是很重要,变量不需要声明数据类型,这里暂且略过。给变量赋予值的过程称为赋值。
示例:
(1)创建一个局部变量a,赋值为字符串 Hello World,创建一个字符串变量b,赋值为字符串 你好:
(2)创建一个局部变量a,赋值为5:
2、函数:函数的概念也源于数学,我们可以简单的把函数看成一个装东西的小盒子。这个小盒子内部能实现一些功能。
函数体示例:
3、算术运算符:Lua常用的算术运算符有:
加:+ 减:- 乘:* 除:/
大于:> 小于:< 等于:==
不等于:~= 大于等于:>= 小于等于:<=
赋值:=
4、逻辑运算符:Lua常用的逻辑运算符有:
与,二者都是的意思:and
或,二选一的意思:or
非,不是的意思:not
5、逻辑判断:Lua常用的逻辑判断有:
示例:
5、循环:当一件事要 重复做n次的时候,我们使用for循环
示例:
Lua的基本语法就到这里了。到此为止,你已经懂了Lua脚本的一些基本语法规范和含义,那么,我们现在可以打开第一期的Lua控制台脚本看看它是什么意思了。
我们来读一读:
首先,LuaScript.dll要识别脚本,需要脚本有个函数。所以我们创建了一个叫run的函数,这个小盒子里我们想要实现调出Lua控制台。
本来呼出控制台的话,我们只要调用LuaScript里的
System_DeBug_OpenDeBugConsole()
函数就可以了,但是只要游戏开着,脚本是循环一直在跑的。为了让控制台只被调出1次,就不再卡bug,像愚公移山一样,子子孙孙无穷尽的不断跑出来,我们需要一个判断让操作只做一次,怎么办呢?需要一个逻辑判断。
Lua_Variable_ReadIntVariable('init') 是LuaScript里的一个函数,用来读取一个整型变量的值。这里读取了一个名叫init的整型变量的值。第一次读取的时候它是没有值的,默认初始值是0,所以我们开启了Lua控制台。开启完毕之后,我们使用LuaScript里的另一个函数 Lua_Variable_SaveIntVariable('init', 1)
有读取就有存入,init变量的初始值是0,第一次开启控制台之后,我们不想再开第二次,就把init变量的值改为1,那么下一次脚本跑的时候,因为判断里
if Lua_Variable_ReadIntVariable('init') == 0 的判断不成立,现在init的值是1了,就不会重复打开控制台。
是不是很有趣呢?
这是LuaScript函数库的函数介绍网页,你可以看到各式各样的函数,这些就是我们写MHWI的Lua脚本所依赖的工具,就好像流水线组装,把小部件一个个拼凑起来拼成高达一样。
那么,留一个小作业。
这个网页里,游戏系统→信息发送里有一个可以向游戏里聊天窗口发消息的函数,它叫 System_Message_ShowMessage(Message)
试着参照Lua控制台的写法,写一个Lua脚本,向游戏里发送一条:
Hello World 吧!
(注:只发一条,不许发多条。括号里的Message是个变量,变量名字不一定要是Message,什么都可以)
好的,那我们下期见。