• 技术交流
  • 【功能介绍】Dice!2.6.2的reply触发限制及其应用

触发限制

Dice!2.6.2的新机制,用于在匹配到reply关键词后,在执行前判定本次是否触发回复。不触发的消息不计入刷屏、不进入当日计数、不进入冷却计时
每条回复可以设置零至多条触发条件,只要有一项条件不满足,回复就不触发。
使用reply set指令时,可通过加入Limit=字段设置,多项触发条件时以;分隔。

触发条件

  • 用户名单user_id:
    • 正向名单user_id::只有所列ID中的用户才触发,ID以|分隔
      user_id:触发用户1|触发用户2|...
    • 反向名单user_id:!:只有所列ID中的用户不触发,ID以|分隔
      user_id:!触发用户1|触发用户2|...
  • 群聊名单grp_id:
    所有私聊的id视为0,写入正向名单表示不限制私聊,写入反向名单表示私聊不触发
    • 正向名单grp_id::只有所列ID中的群聊才触发,ID以|分隔,
      grp_id:触发群号1|触发群号2|...
    • 反向名单grp_id:!:只有所列ID中的群聊不触发,ID以|分隔
      grp_id:!触发群号1|触发群号2|...
  • 触发概率prob:百分比概率触发
    prob:概率
  • 冷却计时cd:计时器中有一个正在冷却状态则不触发,若触发则为每个计时器增加冷却时间。每个计时器以&分隔,计时器名称为空时默认取回复关键词。
    计量单位:chat-以聊天窗口为单位;user-以用户为单位;global-全局共享
    cd:[计时器名称]@[计量单位]=[冷却秒数]&...
    [计时器名称]可省略,视为取本回复的关键词;@[计量单位]可省略,视为@chat。特别地,当两者均省略时,cd:秒数表示以聊天窗口为单位,为本回复独立计算特定秒数的冷却。
  • 今日计数today:计数器中有一个达到上限则不触发,若触发则为每个计数器+1。每个计数器以&分隔,计时器名称为空时默认取回复关键词。
    today:[计数器名称]@[计量单位]=[计数上限]&...
    省略机制同cd。
  • 用户阈值user_var:UserConf中变量为特定值或以上或以下触发,每项以&分隔,字段=值表示等于时触发,字段=值+表示大于等于时触发,字段=值-表示小于等于时触发。特别地,trust表示信任等级
    user_var:[变量1]=[阈值1]&[变量2]=[阈值2]+&[变量3]=[阈值3]-
  • 群聊阈值grp_var:群聊时取GroupConf,格式同user_var,使用时推荐搭配grp_id:!0排除私聊
  • 自身阈值self_var:取DiceMaid自身UserConf,格式同user_var
  • 骰娘识别dicemaid:根据对方是否识别为Dice!骰娘判别是否触发,消息来源为自己时不作判别
    • 仅骰娘触发dicemaid:only
    • 骰娘不触发dicemaid:off

指令说明

Dice!2.6.2版本将reply show调整为输出reply条目的说明,改由reply get返回序列化的reply条目

应用实例:每天只早安一次

.reply set Match=早安
Limit=user_var:好感度=0+;today:@user=1;cd:@chat=10
Deck=早上好啊{nick}~|早安{nick}~

注意:用户配置中好感度不存在不代表好感度=0,如果用户没有记录或记录中没有指定字段,自动视为不满足条件
上述Limit表示该条回复只在用户好感度大于等于0时触发;每名用户每日至多触发一次;每个聊天窗口有十秒的触发冷却

应用实例:群管理操作

.reply set Prefix=关小黑屋
Limit=user_var:trust=4+;grp_id:!0
Lua=[略]

用户配置中的trust字段即为信任级别
上述Limit表示该条回复只在用户trust达到4时触发;私聊不触发

说点什么吧...