如何记录机器人某条回复的消息ID
本帖最后由 魔装型绫月 于 2020-7-2 19:34 编辑需要一个机器人发言后自主撤回的功能,但必须撤回某条指定的消息
这条消息的内容较为普通,机器人经常会回复这类消息,所以难以用关键字来定位,想尝试一下以消息ID进行撤回的功能
该如何确定消息ID?
如果以上描述不够详细可以看下面的例子
例如:
添加这样一个语句
测试* $数字2$
实际测试的话需要同时符合以下两种情况:
——
1.发送"测试0"后,每隔5秒发送一条消息,分别是"测试1" "测试2" "测试3" "测试4"
机器人则在收到消息后分别作出回复(0 1 2 3 4)用时25秒
这个撤回功能需要在机器人收到"测试4"后5秒撤回"0"(也就是收到"测试0"后30秒),再过5秒撤回"1"(也就是收到"测试1"后30秒)……在撤回"4"后,总共用时55秒
——
2.发送"测试1",机器人回复"1",30秒后机器人撤回"1" 我只是路过打酱油的。 强烈支持楼主ing…… 你需要的内容,晨风都给你案例了:
====================================================================================
3.增加一个$消息ID 5$、$消息ID13402429 1$、$消息ID$QQ$ 2$、$消息ID$数字1$ 3$这种类型的变量,分别用作显示当前qq号或者指定的qq号在当前群的倒数5条消息的消息ID,第1条消息的消息ID、以及倒数第2条和倒数第3条消息ID。
如果机器人要发出一个消息,再10秒后撤回,可以如下设置一条自定义游戏:
测试自动撤回 你好啊,这一对消息10秒后会自动撤回$发消息延迟10秒#撤回消息000$机器人本身当前消息ID$隐藏##撤回消息$消息ID$QQ$ 1$隐藏#$
000$机器人本身当前消息ID$是针对机器人自己即将发出的消息算出来的消息ID,$机器人本身当前消息ID$前面加上000三个数字,可以确保准确,如果不加000三个字,效率会更高,但少数情况下这个消息ID会不准确。其它需要撤回消息而又未用到$机器人本身当前消息ID$这个变量的前面,切勿添加3个0,以免降低效率。这个是专门为了方便撤回机器人本身发出的消息而设的,机器人撤回自己的消息,必须是2分钟之内的消息。批量撤回某个qq号的消息时,如果撤回一次失败了,下次再批量撤回时就会跳过那条之前撤回失败的消息,但是如果用$撤回消息5768685940345$这种精确撤回的方式,则不会跳过之前撤回失败的消息。
而针对撤回那个触发此自定义游戏的群友的最后一条消息,因为在这条自定义游戏语句被发出前,就已经收到了那个群友发的消息,所以在那个$发消息$中需要用$消息ID$QQ$ 1$,而不是#消息ID$QQ$ 1#,否则如果在这10秒钟那个群友又发了别的消息,则那个#消息ID#会变成最后新的消息ID,而不是当初触发那个自定义游戏语句的消息ID。
记得要测试这个自动撤回一问一答两条消息,机器人除了要是管理员权限外,触发自定义游戏的群友的群内身份必须低于机器人的身份,如果触发者也是管理员或者群主,则机器人无法撤回他发出的消息。机器人撤回自己的消息,必须是2分钟以内的消息,撤销群友的消息则没有时间限制。
4.增加一个$签到地点$、$签到地点13402429$之类的变量,用于获取用户通过qq群本身的签到功能签到时标记的地点。机器人软件重启之后,信息将会丢失,所以需要自己想办法保存到虚拟宝物中以备后用。
比如可以把输出替换里对应的词条更改如下:
完成了QQ群的签到操作 完成了QQ群的签到操作$添加宝物20003456$QQ$ $签到地点$隐藏$ 一个是撤回QQ信息,一个撤回机器人信息。都已经有案例,自行举一反三。 wtoangel 发表于 2020-6-4 00:08
你需要的内容,晨风都给你案例了:
=================================================================== ...
啊… 还真有,谢谢大佬了!
页:
[1]