罗技游戏软件 LUA脚本编程 从入门到放弃 篇三:全局变量与伪智能
之前有人调戏微软的人工智能,问说买X1还是PS4?回答:ps4 is cheaper and better。之后,微软修复了此“BUG”……
前一阵子阿尔法狗的连胜众人皆知,并且有过几次离奇下着,当然,最后还是赢了。现场解说纷纷赞叹,这是人工智能越超人类几十步的思考OOXX云云~
最后,黄博士说了,那是我点错了……
至少在目前为止,AI再怎么智能,它也是数据和逻辑的堆积,并且极易受人的干扰。
什么时候能有本质上的突破?恐怕只有量子计算机来干了。
宝宝比较粘人,最近比较忙,再加上前几天感冒,本期更新较慢请见谅。
上一期介绍了LUA里的表。
脚本就是用来实现逻辑,管理数据的。结合表里存储的数据,通过对应的逻辑,实现复杂功能。
实现的多了,屌了,就能称为智能了。
就像手机,早些时候诺基亚的塞班称为智能机。安卓和苹果出来后,诺基亚就变成被人鄙视的功能机了……
这次我们还是用卡尔来举例。
本系列只是授之以渔,不代表你用了范例脚本就能8000分大神~
这里,我们假设一个情景,卡尔因为长得太过娘炮,导致GANK他的大汉很多。我们设置了一个一键逃生键。
按下这个键,瞬间开启幽灵漫步跑路。万一,幽灵漫步在CD,则原地丢个冰墙,双击跳刀跑路。
这就是最基本的“智能”。
表里,记录了逃生键所要做的事情。TYPE为1,就是按下键盘按键,为2则是按下鼠标,为3则是移动鼠标等……根据需求自行扩充。
同时,随机延迟的上下限也写进表内。
逃生的CD,作为全局变量记录下来,并在按键时进行判断和记录。
当然,如果你有第3、第4套逃生方案,则每个表里各自记录一个CD时间为佳。
入口函数。
主要用来判断CD时间,如果技能还在CD,则选用备用方案。
记录CD的核心,在于知道当前的时间。
一般来说,现在的编程语言都会提供一个返回纯数字的函数,这个数字返回当前系统时间,距离1970年1月1日早上8点距离的秒数。
在LUA里,这个函数是os.time()。
但是,这个函数只能精确到秒,也就是说,它不能区分秒头和秒尾,所以可能会有1秒多的误差,这个对逃生来说是不能接受的。
所以作为宿主,LGS的函数数提供了类似功能,GetRunningTime函数返回以毫秒为单位的执行脚本总时间。
这个执行脚本总时间,是以脚本载入为开始计时。也就是说如果你重启电脑啦,重启LGS啦,或者编辑完脚本保存啦,这个时间都会重置。
接下来是主逻辑函数。
table.getn是LUA获取表长度的函数。这个长度仅限于数组模式的长度,所以"CD","BackUp"这种下标不会统计在内,也不会影响下标。
判断TYPE用的是IF,而不是switch,因为:
LUA没有switch。
虽然可以通过变通的方法自写函数实现,但是……和所谓的在LUA里使用面向对象一样,没什么实际意义。
本文里只有1种TYPE,如果你有需要鼠标操作,可以添加TYPE 2。相应的command填写对应鼠标按键的数字。
如果有需要鼠标移动,表内可以增加X、Y等下标参数。
……
类推,将主逻辑函数结合表格式和结构完善之后,以后有类似的需求就只需要简单的编辑一下表即可。
比如,你的第三套备用逃生方案是开BKB再TP等等,只需要花几分钟配置一下表即可。
以上,视频演示效果。
代码和罗技的参考文档都放到度盘里了,车牌号1bp3oOP5。
再次强调,本系列只是授以渔。每个人的需求不同,我只是教你如何运用LGS和LUA的函数,组合逻辑,去实现复杂的功能。
本文脚本并不能让你使用后就变成8000分大神。
感谢收看。
下期预告:鼠标定位与移动
FairyAme
校验提示文案
鸽神
校验提示文案
呈呈
校验提示文案
tingney
校验提示文案
flyperidot
校验提示文案
FairyAme
校验提示文案
flyperidot
校验提示文案
鸽神
校验提示文案
tingney
校验提示文案
呈呈
校验提示文案