suwuji 发表于 2017-1-28 17:54:51

新年礼物: 神器 通过QQ控制mushclient工具1.0

本帖最后由 suwuji 于 2019-2-17 03:29 AM 编辑

Smart QQ 已于 2019 年 1 月 3 日停止服务,目前已无法使用
感谢 白林枫 提醒,现在有了这个QQ控制mushclient端的工具。
感谢https://github.com/pandolia/qqbot 提供了qqbot库

直接进入使用步骤(windows下):
1、安装python2.7 , 建议百度一下安装python官方版本。
2、按qqbot提示通过pip安装qqbot 。 友情提示:安装好环境后确认控制台下pip执行正确,如果不正确请cd 切换到有pip.exe的目录下再执行pip install qqbot。
3、把mybot.py拷贝到python的scripts目录,并修改内容中qq号为常用QQ号,注意其中的中转文件路径。
4、把qqbot.txt内容全选复制粘帖到游戏的Alias中 ,注意qqbot start这个alias中文件路径。
5、注册一个新的qq号(或不用的号,清空其他好友)作为qqbot号,并用手机登录,加上常用qq号为好友。

6、运行mybot.py并用qqbot号手机扫描登录,然后可以在手机上退出切换到正常使用号。
7、mushclient里命令行指令执行下qqbot start(用来启动mush端接消息服务,对应停止为qqbot stop)。
    若qqbot start启动报错,99%是常用的wait模块没加载,请编辑qqbot start,顶部加上require "wait"这一行。
8、常用QQ发信息给qqbot号,即可控制,而mush发信息给QQ使用qbs这个alias发送qbs hello等等~,mush对接收的消息处理在qqbot_on_msg这个alias中完成
日常就是使用6·8这几步

注意:
我的mushclient放在c:\根目录,所以中转文件使用的是C:\\mushclient\mushclient.txt和qqbot.txt,目录不一致的请自行修改。特别建议用 / 符号在mush中替换\\ \之类表示路径
值得完善的地方,安全处理,以及多world处理(当前只能对一个world进行处理),有能力的可以自行完善。
特别注意:
没有做安全处理,不要泄漏自己的中转号码!!避免被其他人发送的信息干扰!!

更新一下,qqbot更新到2.1.21发现写法变化了,更新一下mybot.py

北大侠客行MUD,中国最好的MUD

github上的 python qqbot 更新啦,只支持python3了,所以上面提到的下python2.x就不用了,直接上active python 3.x吧

支持这个状态的mybot文件

,如果python qqbot更新导致无法运行请跟帖说明。

hypnos 发表于 2017-1-28 19:28:27

本帖最后由 hypnos 于 2017-1-28 08:20 PM 编辑

这个好,以后可以直接躺床上用手机QQ连MUD了,最适合俺这种懒人

suwuji 发表于 2017-1-28 20:15:54

由于一开始只向qq发了英文信息,mush发中文存在错误,请重新下载mybot.py

nrm 发表于 2017-1-30 09:18:42

唉,自动化程度越高,离灭亡就越近。

hypnos 发表于 2017-1-30 10:42:09

回复 4# nrm


    是这样的。

suwuji 发表于 2017-1-31 20:47:05

qbs功能更新了一下,原qbs 作为alias命令行只能支持一行内容输出,有输出多行需求的,请直接调用函数qbs(msg)来实现。请一楼下载qqbot.txt全选复制内容后粘帖(原先已有使用过的,先把mush里已有的qqbot整个Alias组删除了再重新粘帖上去)

suwuji 发表于 2017-2-10 08:02:27

最近出现qqbot.py库(2.0.4版本以下)无法登录的情况,是QQ换协议了
https://github.com/pandolia/qqbot/issues/43 请更新qqbot.py库
通过命令行操作:
先卸载
pip uninstall qqbot
再重装
pip install qqbot

foolenough 发表于 2017-2-15 13:00:49

我的怎么不行?
qq接受到了命令,qqbot中也有内容。
但是没有mushclient.txt文件,也没有回复。

foolenough 发表于 2017-2-15 13:27:10

回复 8# foolenough
我把路径里的\\改成/可以了。

suwuji 发表于 2017-2-28 13:05:13

鉴于有操作后回显需求,为此附上附加的一套方案。这只是我的实现方法,有能力的可以自行完善。
请对应复制粘帖

多加了个触发器:<triggers>
<trigger
   group="qqbot"
   keep_evaluating="y"
   match="(.*)"
   name="qbdo"
   regexp="y"
   send_to="12"
   sequence="100"
>
<send>--
if qbdo_mark==true then
   if qbdo_msg == nil then qbdo_msg = "" end
--简单过滤掉状态信息
   if string.find("%1","#")==nil then
      qbdo_msg = qbdo_msg .. "%1\\n"
   end
end
</send>
</trigger>
</triggers>这个作用是在规定范围内抓去所有行
alias
---------------------------第一个--------------------------------<aliases>
<alias
   match="^qbdo (.*)"
   enabled="y"
   group="qqbot"
   regexp="y"
   send_to="12"
   sequence="100"
>
<send>qbdo_mark = true
qbdo_msg = nil

EnableTrigger("qbdo",true)

Execute("%1")

--这个时间控制了多少时间内的信息被抓取
DoAfterSpecial(0.1,"qb_echo",10)

</send>
</alias>
</aliases>------------------------第二个--------------------------------<aliases>
<alias
   match="qb_echo"
   enabled="y"
   group="qqbot"
   send_to="12"
   sequence="100"
>
<send>EnableTrigger("qbdo",false)
if qbdo_msg~=nil then
   qbdo_msg = string.gsub(qbdo_msg,"&amp;gt;","")
   qbdo_msg = string.gsub(qbdo_msg,"&gt;","")
   qbs(qbdo_msg)
end
qbdo_mark = nil
qbdo_msg = nil
</send>
</alias>
</aliases>好了,这样当你用qq发信息控制时,如果同时想要mush端回显,只需要qbdo hp,qbdo look之类,可以看见回显信息了,如果嫌qbdo 麻烦可以自行修改完善。
页: [1] 2
查看完整版本: 新年礼物: 神器 通过QQ控制mushclient工具1.0