python开发酷q插件gui_酷Q机器人插件开发笔记

webchat.jpg

酷Q机器人是一个免费的QQ机器人框架,开发者提供了很多种SDK,让其他人能快速上手并开发出各种有意思功能的插件

本篇笔记以我个人角度,用我编写的第一个“井字棋”插件作为例子,从零开始解析酷Q机器人插件 C++ 开发流程。当然,本文并不会涉及井字棋的功能实现,有好奇的同志请直接下载源码进行研究酷Q井字棋

SDK构成

dcfc9dbaly1frmh0r90plj209m0b3jrh.jpg

下载完C++版的SDK,打开项目文件,我们会在解决方案管理器里看到以上几个文件。当然,我将项目名称和.json文件的重命名过,所以会有所不同。其中会在我们的开发中经常用到的,有以下几个:

Header Filseappmain.h

cqp.h

Source Filesappmain.cpp

com.example.democ.json

分别介绍一下:

appmain.h

这个头文件的内容是这样的:

dcfc9dbaly1frmhz20fpaj216b03x3yo.jpg

主要用于酷Q加载插件时对插件的识别,开发者在第一次用的时候需要把CQAPPID之后的内容改为自己的内容,作为此插件的唯一ID

cqp.h

这个头文件很重要,具体的内容是这样的:

dcfc9dbaly1frmifirr5gj21690jpdh1.jpg

文件中列出了酷Q目前能提供的所有功能函数,以及使用方法,例如:1CQAPI(int32_t) CQ_sendPrivateMsg(int32_t AuthCode, int64_t QQID, const char *msg);

指的是发送私聊消息功能的函数,可以这样调用CQ_sendGroupMsg(ac, fromGroup, GameTitle);“ac”为固定语法,没有理由;“fromGroup”为int64格式的数字,储存着发送目标的QQ号,“GameTitle”为char *格式的字符或字符数组,如果你用char[]或string格式储存字符,需要在调用此函数前转换成char *格式

函数的返回值可以在酷Q的Debug窗口里看到

appmain.cpp

这个文件相当重要,也是开发者主要修改的文件,具体的内容是这样的:

dcfc9dbaly1frmiflzfj4j21660jsgn6.jpg

文件中列出了酷Q目前能提供的全部事件监视函数,也就是酷Q机器人的实现原理:利用事件监视回调函数在获知相应事件发生后,调用其中的方法,实现各种自定义功能

例如下面这个函数:1

2

3

4

5

6CQEVENT(int32_t, __eventPrivateMsg, 24)(int32_t subType, int32_t msgId, int64_t fromQQ, const char *msg, int32_t font) {

//如果要回复消息,请调用酷Q方法发送,并且这里 return EVENT_BLOCK - 截断本条消息,不再继续处理 注意:应用优先级设置为"最高"(10000)时,不得使用本返回值

//如果不回复消息,交由之后的应用/过滤器处理,这里 return EVENT_IGNORE - 忽略本条消息

return EVENT_IGNORE;

}

当酷Q获知“有人发送私聊消息”这个事件时,执行此函数,调用其中的各种开发者编写的内容,例如发送回发私聊消息之类。每个函数接受的形参均有不同,基本足够开发者使用,例如“fromQQ”,储存着对方的QQ号,如果想要回发消息,直接将此形参传入CQ_sendPrivateMsg(ac, fromQQ, msg);即可

com.example.democ.json

这个文件的内容是这样的:

dcfc9dbaly1frmifo0x6bj21670jsta3.jpg

开发者需要将自己插件的信息写进去,并且删除一些没有用到的权限

酷Q原理

插件生成

插件开发完成后,编译,自动生成dll文件,将dll和json放入酷Q根目录app文件夹内,即可进行插件测试。功能正常后即可打包上线发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值