免责声明
本项目禁止用于包括但不限于:违法犯罪、灰色地带等一切有背于社会主义核心价值观的行为。
下载本插件或源码则默认同意以上内容
鸣谢
- YiriMirai一个轻量级、低耦合的基于 mirai-api-http 的 Python SDK。
- mirai——高效率 QQ 机器人支持库
- mirai-api-http——提供HTTP API供所有语言使用mirai。
项目简介
LoveYou是一个可高度自定义的词库+好感度系统插件
运行本项目,你需要确保你拥有至少300MB的空闲内存
以下三点是本插件的开发宗旨
- 词库的编辑是简易、高效且可视化的
- 好感度系统是完全兼容词库且高效的
- 项目是灵动的,而非死气沉沉的
项目指令
斜体为需输入的变量
用户指令
群聊
- 我的好感、我的好感度
- 好感排行
- 本群好感排行
- /code alias YourCode :设置QQ别名。使用被记录在./data/code_users.txt
- /code love YourCode :设置文本好感。使用被记录在./data/code_users.txt
主人指令
群聊
- /set(del) senior QQ:设置(取消)本群词库高管,其中QQ为高管QQ号
- /set(del) admin QQ:设置(取消)本群词库管理,其中QQ为管理QQ号
私聊
- /encode alias int_number:生成QQ别名的code,其中int_number为生成数量。可在./data/alias_code.txt查看code
- /encode love int_number:生成文本好感的code,其中int_number为生成数量。可在./data/love_code.txt查看code
词库指令
高管指令
- /set(del) admin QQ:设置(取消)本群词库管理,其中QQ为管理QQ号
管理指令
- 精确问 Question Answer:为本群添加一组回复,请注意整个指令中第二个空格是Question和Answer的切分点
- 删除 Question:删除对应Question,其中Question的所有对应项均会被删除
词库编辑
reply.csv
不支持热重载
按照下表格式填写reply.csv,它是全局生效的
消息 | 回复 | 好感范围 | 触发范围 |
---|---|---|---|
test | 123[pic=atri.jpg][cut]456[pic=v.jpg] | (-10,10) | (-10,10) |
quick_RL | RL%apple%R:0.2,L:5!%banana%L:-4,R:0.4!%monkey%R:2.0! | (-10,10) | (-10,10) |
对于该表的解释
- 好感范围:本行触发时,从随机范围内随机取一个整数值作为好感变化量。默认值为config.ini下common_love所对应的区间。特别地,你可以在回复中使用<mark>[vary]</mark>来指代好感变化量,这将使得变化量可见
- 触发范围:只有当触发者的好感在本范围内,本行才会触发。默认无范围
- [pic=' ']:发送图片。请将要发送的图片置于 ./data/pic/ 下。每条消息仅支持一张图片。只要填入文件名即可,包括后缀
- [cut]:回复切割。将一次回复切分为多次回复。使用本方法可实现一次触发可发送多张图片
- quick_RL行:本行可实现权重选择,使用较为复杂,详见进阶使用
此外,在消息和回复列中,你可以使用如下变量:
- \n:换行
- [qq]:触发者QQ号
- [sender]:触发者群名片
- [love]:触发者好感度
- [intlove]:触发者好感度(不包括文本好感)
- [bot]:bot名称,在config.ini中编辑
上述变量([vary]除外)在好感回复中也适用;全部变量在群聊词库中适用
实例:效果同test行
![test](https://img2.imgtp.com/2024/05/25/S0QryhTK.PNG "test示例" =1100x)
群聊词库
群聊词库是全局词库的阉割
- 好感范围默认值为0,而非common_love
- 不支持指令设置 好感范围 和 触发范围,尽管代码支持读取与运算
- 不支持指令添加[pic=' '],尽管代码支持发送
- 通过quick_RL方法设置的L值强制变更为0
如果你真的需要以上功能:
- 在./data/group/下找到对应csv,手动编辑
- 将图片放置于./data/pic/group/下
- 无论如何,quick_RL的L值无法恢复
好感度系统
好感度来源
- 词库
- 消息中包含bot_name或@bot时,程序会分析情感偏向并给出一个[-10,10]之间的整数值作为好感变化量
CG
这是一个真正可高度自定义的模块
仅当消息包含bot_name时进行判断
每个QQ每日最多触发一次判断,早上9点重置
- 仅支持发送图片,请将图片放置于./data/CG/下(.jpg or .png)
- baseline:触发CG回复所要求的最低好感度
- rate:CG发送概率
详见config.ini
好感度等级
如要启用本功能,请设置config.ini中enable=True
共分为5个等级
在config.ini设置每级所囊括的好感区间(例:lv1=-999,-50)
在config.ini设置每级查询好感度时所回复的特殊回复
变量支持:见词库编辑
进阶使用
quick_RL方法
这是一个略显繁琐的回复方法,但它在某种意义上是简洁的
以下表为例
消息 | 回复 | 好感范围 | 触发范围 |
---|---|---|---|
quick_RL | RL%apple%R:0.2,L:5!%banana%L:-4,R:0.4!%monkey%R:2.0! | (-99,9999) | (114514,1919810) |
!重要!你需要在回复的最开头用RL声明你将要使用quick_RL方法,用于声明的RL将在随后的处理中被抛弃
它可以被这么解读:
%这里是每一条回复%R:这里是本回复权重;L:这里是本回复对应的好感度变化
在quick_RL方法中,R和L均为可选项,R默认为1.0,L默认为0。R和L的顺序是不严格的
当quick_RL行被触发时,会在回复中进行新一轮的加权随机选择
只有% %之间的内容会被认为是回复
每一条回复和它的参数与后一条回复应当存在!作为分割,!的全半角输入是不严格的
被随机中的回复所携带的L会被认为是好感变化值,这意味着整个语句的 好感范围 是没有意义的,而 触发范围 仍然具有意义