基于Dice!2.5.1的四个新机制,我们可以实现定时任务-调用脚本-广播通知的全流程:
.admin clock
.send notice [通知等级] [通知文本]
因此我们可以如下定义一个定时早安机制:
.admin clock+good_morning=7:30注册一个在7:30执行的定时任务good_morning;
.admin clock+good_morning=7:30
good_morning
在plugin文件夹下新建一个每日问安.lua文件,在里面添加
每日问安.lua
task_call = { good_morning="morning_call", }
将脚本内函数morning_call注册到定时任务good_morning;
morning_call
继续在lua文件内添加函数morning_call。这里我们占用通知窗口6用于早安专用窗口,请注意各个自定义功能的窗口不要起冲突。函数内使用eventMsg构造一条虚拟指令,视为自己私聊对自己发送了.send notice指令。
.send notice
notice_head = ".send notice 6 " function table_draw(tab) if(#tab==0)then return "" end return tab[ranint(1,#tab)] end morning_word = { "早安呐~", "早上好哟~起床了吗?", } function morning_call() eventMsg(notice_head..table_draw(morning_word), 0, getDiceQQ()) end
继续在lua文件内添加两个脚本指令用于用户自由订阅及取消早安,如果希望由自己发放早安资格,可略过此步骤。
msg_order = {} function book_alarm_call(msg) eventMsg(".admin notice "..printChat(msg).." +6", 0, getDiceQQ()) return "已订阅{self}的定时早午晚安服务√" end function unbook_alarm_call(msg) eventMsg(".admin notice "..printChat(msg).." -6", 0, getDiceQQ()) return "已退订{self}的定时早午晚安服务√" end msg_order["订阅问安"]="book_alarm_call" msg_order["退订问安"]="unbook_alarm_call"
以上,一套完整的订阅问安机制就完成了。你也可以下载以下模板文件,安装到Dice存档目录下的plugin文件夹,来代替2-4步。
请问用户订阅问安的指令是什么呢
qaqwu 如果你没有改动上面的脚本的话,订阅和退订的指令分别是订阅问安和退订问安
订阅问安
退订问安
脚本放到文件夹后,设定完定时任务,然后使用订阅指令无法订阅,是需要加载lua文件么?怎么加载?
safeiya 我猜这可能是由于你没有重启Dice!导致的。如果你不希望重启dice!,你也可以通过使用指令让dice!重新读取目录内的文件(详情请看手册)
dmbj1514 对于装载了本帖全部脚本未加修改的骰娘,发送订阅问安即可
更新了最新版本,用帖子里的脚本没有修改过,一到设置定时任务的时候后台程序就会自己闪退这样的情况有出现过吗?
请问admin clock功能可以实现“在某个时间段才可以触发的代码”吗?(比如只有早上七点到九点才对“吃早餐”有回应)
Whaledoll admin clock是定点执行事件,如果想要在某个时间段内可以触发回复,可以用lua写判定,那就与本楼无关啦
想请问一下,附件中的脚本是只能应用于群内发布定时问安么,如果想要实现小窗的定时问安功能,应该怎么改呢?
ray91 我看了一下,私聊群聊都可以用的
Lily Black 糟了,我现在是群订阅正常,小窗订阅有订阅成功的回复,但到了时间没有反应,以为是脚本本身不支持。
ray91 骰主对骰娘发送.admin notice确认一下是不是真的有小窗的通知(应当是6级) 有的话再确认一下骰娘和用户是否为好友
.admin notice
Lily Black 发现两个订阅了的小窗都不在通知等级6里,只有群在的,非常感谢!
如果不在等级6的话要怎么样变成等级6呢
zcy 看手册。 .admin notice this +6
.admin notice this +6