首先我发布这个帖子的教程我先说一下
这个帖子简直就是送给开发者的福利,只要你学会了代码,你的词库代码甚至高级的骚操作完全都能解决、
再此首先看此教程前你一定要保存lua的教程
lua教程里面百度也能搜到
不过有些代码是不需要也用不到的,你只需要了解运算符 基础语法 循环 等等 核心代码
下面上链接 https://www.runoob.com/lua/lua-basic-syntax.html
你如果学会了这些,后面的就简单了、
好了不多说开始上教程
第一步词库指令和lua代码
首先如果要写lua代码 词库lua指令内容里面不能掺杂任何其他的词库代码 lua只能执行lua的
下面看参考
你好
哈哈%随机数1-100%
呵呵
lua代码
你很清楚的看到 你好指令 里面是有词库代码的 随机数那个 就属于词库代码
那么如果你要写lua代码的话 就不能掺杂你以前写的任何词库代码在里面 否则就会异常 或者代码不回复
现在开始发lua代码的结构 跟着我写
你好
哈哈%随机数1-100%
呵呵
--lua编程
呵呵下面有一个--lua编程 标识 切记这很重要
这是词库检测这个指令的内容是否为lua代码 你如果不加这个 lua就会被检测为词库 最后无法执行lua代码 切记 每一个指令的第一行 一定要加这个
下面进行下一步
你好
哈哈%随机数1-100%
呵呵
--lua编程
function main(m)
n=m
msg=n.msg--获取机器人的消息
sendid=n.sendid--获取发言人的QQ
groupid=n.groupid--获取机器人的群号
robot=n.robort--获取机器人QQ
nick=n.nick--获取机器人昵称
zhu=n.zhu--获取主人
ATQ=n.ATQ--获取艾特QQ
end
现在这里先不说lua结构 很重要的一点就是会写词库的都发现了 词库指令内容里面不能回车 一旦回车就会变成两个指令 最后无法检测到
那么会lua的对你们说一下 你们如果写过脚本什么的 lua调用方法啥的 或者 回车了 当然没什么事
但是在我这里 词库代码就不一样了 lua代码切记 千万不能有回车 否则就完蛋 轻者代码不回复 重者代码完全废了
那么怎么解决弥补回车呢? 有些人就会问了 那么lua方法函数之间互相调用一定要回车才行啊
那么很容易解决啊 就是回车的地方添加 lua的注释代码不就轻易解决了吗 看代码
注释代码是 --内容 这个既能弥补词库检测的问题又能弥补lua的问题 多好
好了 不多说 你们知道这个就行
现在进入下一个环节
你们看上面的代码 呵呵里面的代码 现在来解说一下 这个结构
function main(m)
end
这个就是lua的函数方法
main是我这边的指令启动入口 main不可改变名字
那么m 是什么呢 对象
你可以改成其他的英文 都行
因为 是赋值 不要紧的
那么
function main(m)
n=m
end
n=m的意思就是 创建一个n对象 获取m的对象变成 n
你们会说这个对象干嘛的呀
这个对象 是调用程序的 java代码的方法接口库 你不需要了解太多 知道一点就行了
--lua编程
function main(m)
n=m
msg=n.msg--获取机器人的消息
sendid=n.sendid--获取发言人的QQ
groupid=n.groupid--获取机器人的群号
robot=n.robort--获取机器人QQ
nick=n.nick--获取机器人昵称
zhu=n.zhu--获取主人
ATQ=n.ATQ--获取艾特QQ
end
msg=n.msg--获取机器人的消息
sendid=n.sendid--获取发言人的QQ
groupid=n.groupid--获取机器人的群号
robort=n.robort--获取机器人QQ
nick=n.nick--获取机器人昵称
zhu=n.zhu--获取主人
ATQ=n.ATQ--获取艾特QQ
这段是赋值
msg这些事全局变量 不知道变量的我就不多解释了
自己百度 lua全局变量即可
那么这些是机器人的参数 会写词库的都知道了吧
旁边用--符号注释的后面的内容解说的很清楚了
好了基本框架写好了
现在如何发送消息呢? 首先 我说一下 发送消息参数部分 跟词库一样 json: 发送json框架 card:1 发送 xml卡片 文本就写字就行了 回车的话就不是词库的\r了 而是 \n 记住了啊
先开开始上 发送代码
--lua编程
function main(m)
n=m
msg=n.msg--获取机器人的消息
sendid=n.sendid--获取发言人的QQ
groupid=n.groupid--获取机器人的群号
robot=n.robort--获取机器人QQ
nick=n.nick--获取机器人昵称
zhu=n.zhu--获取主人
ATQ=n.ATQ--获取艾特QQ
s("你好\nmsg="..msg.."\nsendid="..sendid)
end
--s是发言用的
function s(s)
n:send(s,groupid)
end
下面s这个函数方法就是 发送端口
首先说一下这个代码
s("你好\nmsg="..msg.."\nsendid="..sendid)
s() 括号里面要填写 字符串 "" 这个符号中间写的东西就是字符串
\n 是回车
"你好\nmsg="..
后面 .. 是链接符号 你不懂的话 自己百度 lua链接符号
之后 s() 括号内 就是发送消息端口
那么s是什么呢 是调用的函数名方法
function s(s)
n:send(s,groupid)
end
前面这个说过了 你不懂 自己百度 lua函数调用
s(s) 里面的s就是 接收传递过来的字符串 变量
function s(s) 跟 end 就是开头与结尾 就跟你的词库 如果 返回如果差不多 只不过这个比你那个高级百倍
现在讲里面的这个
n:send(s,groupid)
n前面说了是对象 现在 n: 加这个符号代表通过对象 调用我主程序里面的 java已经写好的方法 意思就是执行我程序里面的 java方法
send() 就是java 发送端口 的方法 第一个参数为字符串类型 第二个参数 都不多说 就是群号参数变量
好了基本代码框架解说好了 你们现在直接把下面的代码复制到词库 然后发送 呵呵 指令 试试看吧
你好
哈哈%随机数1-100%
呵呵
--lua编程
function main(m)
n=m
msg=n.msg--获取机器人的消息
sendid=n.sendid--获取发言人的QQ
groupid=n.groupid--获取机器人的群号
robot=n.robort--获取机器人QQ
nick=n.nick--获取机器人昵称
zhu=n.zhu--获取主人
ATQ=n.ATQ--获取艾特QQ
s("你好\nmsg="..msg.."\nsendid="..sendid)
end
--s是发言用的
function s(s)
n:send(s,groupid)
end
如果你发送成功了 那么你在仔细看看我上面说的吧 其他的不多说了
实在听不懂我说的话 直接百度 lua基础教程
下面送你们一些可以调用的接口把
还有一些基本语法
lua几个基本语法 如下 下面的并不全面哦 不懂得 自己百度去搜
if正则匹配语法
呵呵
--lua编程
function main(m)
n=m
msg=n.msg--获取机器人的消息
sendid=n.sendid--获取发言人的QQ
groupid=n.groupid--获取机器人的群号
robot=n.robort--获取机器人QQ
nick=n.nick--获取机器人昵称
zhu=n.zhu--获取主人
ATQ=n.ATQ--获取艾特QQ
if string.find(msg, '你好') ~= nil then
s("对的")
else
s("不对")
end--if结尾
end
--s是发言用的
function s(s)
n:send(s,groupid)
end
是正则判断 指令的
这个指令大概意思就是如果 msg消息 为你好 就会执行里面的代码
你实在不懂 百度 lua正则匹配
--lua的替换
--x = string.gsub("hello world", "hello", "lua")
大概意思就是 hello world 免得 hello 替换为 lua 跟你那个词库替换差不多
实在不懂 百度 lua替换字符串
举例如下
呵呵
--lua编程
function main(m)
n=m
msg=n.msg--获取机器人的消息
sendid=n.sendid--获取发言人的QQ
groupid=n.groupid--获取机器人的群号
robot=n.robort--获取机器人QQ
nick=n.nick--获取机器人昵称
zhu=n.zhu--获取主人
ATQ=n.ATQ--获取艾特QQ
if string.find(msg, '你好') ~= nil then
x = string.gsub(msg, "你", "我")
s("对的"..x)
else
s("不对")
end--if结尾
end
--s是发言用的
function s(s)
n:send(s,groupid)
end
--lua的循环
--for i=10,1,-1 do
执行内容
--end
具体的意思就是 for里面 循环10次啦 你不懂的话 百度 lua for循环
举例如下
呵呵
--lua编程
function main(m)
n=m
msg=n.msg--获取机器人的消息
sendid=n.sendid--获取发言人的QQ
groupid=n.groupid--获取机器人的群号
robot=n.robort--获取机器人QQ
nick=n.nick--获取机器人昵称
zhu=n.zhu--获取主人
ATQ=n.ATQ--获取艾特QQ
for i=3,1,-1 do
s("对的")
end
end
--s是发言用的
function s(s)
n:send(s,groupid)
end
下面就是随机数代码
local nn= math.random(50,100)
意思就是随机50 到 100 之间 不会的 百度 lua范围随机数
举例如下
呵呵
--lua编程
function main(m)
n=m
msg=n.msg--获取机器人的消息
sendid=n.sendid--获取发言人的QQ
groupid=n.groupid--获取机器人的群号
robot=n.robort--获取机器人QQ
nick=n.nick--获取机器人昵称
zhu=n.zhu--获取主人
ATQ=n.ATQ--获取艾特QQ
for i=3,1,-1 do
local nn= math.random(50,100)
s("对的"..nn)
end
end
--s是发言用的
function s(s)
n:send(s,groupid)
end
还有运算符什么的乱七八糟的就不多说了太多了
下面提供lua调用java的接口代码如下
有些代码太多了
我正好写了一个游戏词库 就是lua的 下载里面大部分接口代码都在里面 导入到x6词库里面去就直接可以用
下面发一些
上面游戏词库没有的代码
n:ban(groupid,sendid,120)
这个是禁言代码 第一个参数是 群号 第二个是qq 第三个是禁言 秒为单位的禁言时间
n:kick(groupid,QQ)
这是踢人代码 第一个是群号参数 第二个是 踢人QQ
n:TH("ma",n.ss.."/Clousx6/配置数据库/代码库/接口.lua")
这个TH是调用外部 lua文本 代码
你如果不了解的话 直接去x6下载 lua群管配置 然后发送下载 你就会知道你怎么用了
n:get("httpxxxxxx")
这是访问网址get代码
2019年11月30日代码更新
新增lua调用词库指令
新增lua json数组解析
新增lua json生成数组
新代码链接:http://clousx6.icu/lapp.zip
还有其他的下次多多更新吧
lua教程到此结束