契约机器人插件教程-综合引流插件

契约机器人开发教程|窗体和契约SDK交互|良心人开发工作室

学习内容简介

本教程主要实现:

契约sdk窗体的使用
窗体和sdk交互注意事项

详细内容:
契约SDK和窗体交互方法

说明:
本课程源代码支持契约单Q版和多Q版框架

联系我们

如果你有机器人开发问题或有需求不会开发,可与我们进行联系
QQ机器人开发交流群

声明

本教程非契约官方教程,为作者学习易语言过程的知识总结,将主要内容整理、汇总后,形成本教程。

致力于进行技术交流,协助新人快速入门,少走弯路。

请在遵守中华人民共和国法律、腾讯相关规定和契约框架相关说明下进行使用

如您使用本技术,进行包括但不限于如下行为,软件作者并不知情,不承担任何法律风险
1.违法行为
2.违法腾讯规定
3.违法契约框架规定

教程内容

对于开发新人往往搞不懂,窗体和SDK之间怎样进行交互,这个问题也困扰了作者很久,走了许多弯路,因此将这部分内容单独整理出来 与大家进行分享

打开窗体

契约SDK的_menuA 和_menuB两个函数对应可以打开窗体,具体代码是调用 载入函数,如下图所示:

契约机器人插件教程-综合引流插件

这样在加载插件后,界面上的菜单 就会显示菜单,点击对应表项就可以打开窗体

契约机器人插件教程-综合引流插件

修改菜单文本

如果想修改菜单项显示文本,可以在插件配置(常量表->应用配置)最下方看到配置信息,修改对应文字即可

契约机器人插件教程-综合引流插件

如果你对json比较熟悉,也可以删除一个菜单 只保留一个菜单项

窗体设置群监控关键字进行动态回复

一般窗体中提供配置信息,让机器人主人动态配置,实现动态化,我们来实现一个简单例子:
窗口中配置问题,同时配置问题答案,当有好友发的消息和问题一样,则机器人自动回复问题答案。
通过这个小功能,来学习窗体和契约SDK进行交互

新建窗体

右侧->窗口鼠标右键->插入新窗口

契约机器人插件教程-综合引流插件

打开窗口界面,窗口的名称超级重大,常常需要用到

契约机器人插件教程-综合引流插件

设置窗体

在窗体中增加两个文本框,一个接收输入的问题,一个接收输入的答案,如下图所示:

契约机器人插件教程-综合引流插件

功能实现

如果机器人好友私聊消息,匹配到窗体上设置的问题,则机器人发送窗体上设置的答案

还记得 在哪里开始编写代码么? 在函数 _eventPrivateMsg 中

代码超级简单,主要在 _eventPrivateMsg 中 主要获得窗体上配置的问题和答案?

第一 窗口名称为 窗口2,文本框的名称为 编辑框1,取用户输入的内容 最终是
窗口2.编辑框1.内容,完整的路径

完整代码如下:

.版本 2

.判断开始 (subType = 11)  ' /来自好友
    .如果真 (msg = 窗口2.编辑框1.内容)
        QY.发送好友消息 (QQID, fromQQ, 窗口2.编辑框2.内容)

    .如果真结束

如果发送的内容,与窗口设置内容一样,则发送设置的答案

为了能打开窗口,还需要在菜单函数中载入窗口2,代码如下

.版本 2

.子程序 _menuA, 整数型, 公开

' 本子程序会在【主线程】中被调用。
载入 (窗口2, , 假)
返回 (0)

编译插件,加载

测试如下:

契约机器人插件教程-综合引流插件

使用全局变量 保存窗体设置

如上代码 正常使用没有问题,但如果窗口被关闭,我们在给机器人发消息 良心在么,会发现插件会报如下错误

契约机器人插件教程-综合引流插件

这是由于使用 窗口2.编辑框1.内容 读取内容时,必须窗口时打开状态,否则会由于找不到窗体进行报错

怎样解决这个问题? 可以将问题和答案保存到全局变量中这样就可以正常使用,为窗体编辑框 设置全局变量:

契约机器人插件教程-综合引流插件

代码如下:

.版本 2

.子程序 _编辑框1_内容被改变

global_question = 编辑框1.内容


.子程序 _编辑框2_内容被改变
.局部变量 global_answer, 文本型

global_answer = 编辑框2.内容

对应的 _eventPrivateMsg 中的代码修改如下:

.版本 2

.判断开始 (subType = 11)  ' /来自好友
    .如果真 (msg = global_question)
        QY.发送好友消息 (QQID, fromQQ, global_answer)

编译后 加载插件 在执行,发现关闭窗口 也不会报错,完美解决了问题

使用配置文件 保存窗体设置

还有一种保存 窗体配置的方法,将窗体设置保存到 配置文件中 ,代码如下:

在窗口关闭时,将在窗体上 配置的信息保存到配置文件中

.版本 2

.子程序 _窗口2_窗口可否被关闭, 逻辑型


写配置项 (应用目录 + “config.txt”, “config”, “question”, 编辑框1.内容)
写配置项 (应用目录 + “config.txt”, “config”, “answer”, 编辑框2.内容)


然后在好友消息处理函数中修改为如下代码:

.版本 2

.判断开始 (subType = 11)  ' /来自好友
    .如果真 (msg = 读配置项 (应用目录 + “config.txt”, “config”, “question”, ))

        QY.发送好友消息 (QQID, fromQQ, 读配置项 (应用目录 + “config.txt”, “config”, “answer”, ))

这样在窗体被关闭后,机器人功能依旧可以使用,通过配置文件,可以设置多个变量 ,比全局变量的方法 更通用

总结

今天的内容就到这里,欢迎大家持续关注 良心工作室开发教程

完整代码下载地址(售价5元):
契约机器人窗体和SDK交互

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容