跳转至

词库

词库默认位于 Answer 文件夹。 可以是: - 符合格式的 json 文件 - 从 v25.200 能够返回等效格式的 table 的 lua 脚本 这里应当是若干个标准的 json 文件。每个 json 文件的数据结构应当包含一个键为 Answer,值为符合应答组结构的数组。即:

{
    "Answer":[应答组0, 应答组1, ...]
}
所有在这个文件夹中的 Answer 数组最后将会在运行时被合并到一起。

  • Lua 格式:执行该 Lua 表的结果要保证可以使用 lua2json 转换为等效的 json,因而不可包含无效字段
  • 执行该表使用的是完全独立的 lua 环境,没有额外的绑定函数。

逻辑

  • 所有应答组按优先级由大至小排序。
  • 收到消息后按顺序检查是否匹配应答组条件。
  • 触发应答组后,执行对应的应答元素操作
  • 匹配到后,不继续进行后续匹配,除非执行的应答操作中包含了 ignore 指令

应答组对象

字段 类型 描述
regex string or array 匹配规则。
anss array 应答
level integer 生效等级,用于权限控制
grps string[]
user string[]
pri integer 指定应答组的优先级

regex 字段

从实例入手来看:

实例 1

"regex": "早"
消息内容 匹配结果
true
早上好 true
你走的真早 true
晚上好 false

实例 2

"regex": ["早", {"not": "真早"}]
消息内容 匹配结果 说明
true 逻辑或,两个子判断均为true(含有早,不含有真早)
早上好 true 两个子判断均为true
你走的真早 true true, false, 逻辑或结果为true
晚上好 true false, true, 逻辑或结果为true

anss 字段

应答元素

说明

操作

操作名 说明
message 发送消息
order 指令
lua_call 以当前信息为参数在主 lua 环境中调用指定 lua 函数
lua_call1 以当前信息为参数在一次性 lua 环境中调用指定 lua 函数
lua_exec 在主 lua 环境中执行代码
lua_exec1 在一次性 lua 环境中执行代码
state_call 在指定的 lua 环境中以当前信息调用函数
state_exec 在指定的 lua 环境中执行代码
ignore 忽略本次匹配(保留产生的操作列表)继续进行后续匹配
sleep 执行本操作时 sleep 指定的毫秒数
draw_deck 抽取牌堆
clear 发送并清空当前累积的文本消息