从零开始学习基于易语言的插件编写(QQ框架机器人) 您所在的位置:网站首页 易语言如何调用api 从零开始学习基于易语言的插件编写(QQ框架机器人)

从零开始学习基于易语言的插件编写(QQ框架机器人)

2023-12-22 02:30| 来源: 网络整理| 查看: 265

QQ机器人带给了我们无限的欢乐。我们或许未曾拥有过一个属于自己的机器人、或者拥有过,但是却把核心插件掌握在别人手中。

酷Q沦陷后,无数机器人因为其插件特殊的加密措施停止了使用,如果此时插件的源代码都掌握在自己手中、问题会简单很多。(但是我们不要学习如何破解程序哦)

Event的概念

event,事件。顾名思义,广义上讲就是你在使用QQ时收到的各种事件。狭义上来说是指你收到的 群信息、私聊信息、群临时信息、讨论组信息等等(这类信息通常是由 人 发送的信息)

Event,将是你未来学习的第一个事件。

Notice的概念

notice,通常指一些入群信息、离群信息、加好友、某人被踢出、某人被禁言等的一些事件。

Message的概念

message,信息。即狭义上的event概念。 Message事件和Notice事件共同组成了广义上的event事件。

SDK

SDK是框架(即类似于酷Q、先驱、小栗子、Xyz(才,才没有把自己的框架也写进去))给予插件开发者的一个便于开发的整合包。你可以理解成给了你一堆积木,现在要你来搭了。

API

API是你制作插件必不可少的东西。他可以被封装在一个易模块(包装了数个公开子程序或类方法的模块。在此可以先不做理解。)内,或者直接调用dll写在SDK中。更有甚者使用了一些奇怪的方法把API封装进去,在此不做阐述。

那么现在。你需要找一款你心仪的框架,并且用各种方法找到其SDK。在此使用先驱框架的一版SDK、先驱新版(当前)SDK和某不知名框架的SDK做示范。(不确定会拖多久,可能会很久罢。)

先驱一版SDK示例

首先,我们需要编写一个规范的插件名、作者、说明等。

XQ_Create事件,会在框架尝试读取插件信息时调用。重载执行一次。

在这里尽量不要添加会拖延返回速度的代码,具体如何在这里添加初始化事件以后会讲。

这是广义上的Event事件,文章末尾用狭义上的event做对比。

机器人QQ,即收到这个event的QQ。

消息类型,即收到的event的类型。为整数型是为了便于判断(对程序来说是的)。

消息子类型,这个类型目前不需要管理。未来也不一定会讲。

消息来源,当收到群消息时,该参数为群号。当收到私聊消息时,该参数为好友QQ。

触发对象_主动,当收到群消息时,该参数为发送者QQ。当收到私聊消息时,该参数为好友QQ。

触发对象_被动,当收到消息(message事件)时,该参数为机器人QQ。文章末尾作详细解释。

消息内容,即机器人收到的消息。

消息序号,此参数理论上用于消息回复,消息撤回。

消息ID,此参数理论上用于消息回复,消息撤回。

原始消息,目前用不到。

消息时间戳,收到消息的时间戳。(很大的一个整数)

回传文本指针,目前用不到。

需要载入你的设置窗口,也可以没有。

在这里载入你的设置窗口。(没有设置窗口就弹个信息框,看下面)

信息框 (“这里没有设置窗口哦~嘻嘻”, 0, , )

现在我们真的要开始编写第一个功能了。

复读机

看图、以及图中注释即文字。你需要在未来练习阅读代码和无注释的代码。

这里引入了API的概念

为了让插件对你的账号(做点那啥的事情)做点什么。就需要调用框架提供的API,并且传入相应的参数。

鼠标移动到某个代码上,就会弹出提示。点击右边的加号可以提供更详细的介绍

当然,我们也可以不那么写。比如把下面的程序写成下面这样。

这样并不规范

至此,我们已经学会了如何让机器人发送一条消息。

那么如果我想让机器人收到特定消息后发送消息呢?又或者是在某个人发送消息时发送呢?两个条件组合在一起呢?

这里引入了一个常量 换行符

常量,顾名思义。就是写在程序里不会改变的量。未来要经常使用。

如何是在某个人发送消息时发送呢?上面两个条件组合在一起呢?就留给大家当作业啦~

在简单的学习了关于插件编写的事项后,我们来系统的学习一下关于易语言的知识。

常量(该SDK自带的或是易语言提供的常量,使用前需要在常量名前加 #)

比如常量 换行符 的常量名叫换行符,但是在调用时需要写成 #换行符

变量(程序运行时需要多次变更的量)

变量,在子程序中使用 Ctrl+L 创建。

类型(变量的数据类型)

类型,常用的分为 文本型、整数型、字节集、逻辑型 不常用的不在此列举。以及自定义数据类

文本型存储一段文本

整数型存储一段整数(取值范围在2^31-1~-2^31+1)

字节集通常用来存放一段数据(例如图片数据、语音数据等)

逻辑型是一个 真 / 假 的值。(true和false),也就是布尔值boolean.

自定义数据类型是一个变量集,例如我新建一个类型名为  up主  她拥有的成员为

名字(文本型)、粉丝(整数型 由此可见粉丝少的可怜 )、阅读量(整数型)、影响力(整数型)

那么我在调用时的变量名为 逍遥 数据类型为 up主 时就需要这样调用。

在易语言左边的 自定义数据类型 中创建

调用后返回一个自定义的数据类型,调用方也需要拥有一个相同数据类型的变量来存储该数据。子程序

子程序是一个可以独立执行的代码段。它需要在被调用时才会反应。理论上API也是一个子程序,只不过他们是封装在api的dll里罢了。他们可以有一个返回值,如果返回的是易语言的基本数据类型,便可以直接在其他子程序的参数中传递。

参数

在调用子程序时,我们需要告诉子程序要干什么。这时我们就需要传入参数。

这时我们就传入了参数

那么本次的教学就到这里啦~期待各位的下次光临w



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有