[toc]
因为8.2开始酷Q平台暂停(停止?)服务, 本项目会迁移至mirai, 迁移之后功能可能极其不稳定, 很多问题我也懒得修了 可能会在下个月开始再进行一波重构ww (其实是docker几天前挂掉我才决心迁移的ww)
Nyabot is not only a dice bot!
Nyabot是一个 (COC7版规则的) TRPG用的 (可是跑团的人都咕了) QQ骰娘
当然还不务正业地添加了一些其他功能 (详情可以看下面的菜单
使用node.js, 基于cqhttp-node-sdk进行开发
后续会看心情不定期进行维护和更新
想要自己搭建一个骰娘嘛~~
- 安装nodejs和npm (存在es6语法, 请安装较新的版本)
- 安装coolq
- 安装cqhttpapi插件并配置
- 安装mongodb
git clone https://github.com/Enzymii/Nyabot.git
npm install
- 按照个人情况修改config_sample.js并重命名为config.js
- 使用
npm run nya
来愉快的使用吧w
(当然这里大概是存在很多坑的.. 消除恐惧最好的办法就是面对恐惧, 加油, 奥利给!)
当@骰娘时, 会回应的..
此功能只生效于群聊
A: 人类的本质是什么?
B: 人类的本质是什么?
nya: 人类的本质是什么?
C: 诶.. 这bot通过了图灵测试?!
为了充分激发人类的本质, 培养优秀的复读姬, tx贴心的提供了+1的功能.. 所以bot也应该充分地利用这个功能..
当前面出现两条相同的消息时, bot会重复这句话..
此功能只生效于群聊
由于技术以及其他原因... 这个功能暂时不会完全开放...
可以联系Master来获取测试资格..
设置一些关键词回复, 当一句话出现某个关键词时, 会触发对应的回复. 当有多个可能的回复时, 会等概率随机选取一个.
指令是bot的核心和灵魂... 每一条指令都是形如下面这样的
.指令名 [参数1] [参数2] [...] #不带[]是必选参数 带[]是可选参数..
也就是由.
开头, 以空格分隔指令名和各参数的一句消息.
下面将详细介绍版本中支持的所有指令及参数信息
.help [指令名]
显示帮助文档. 如果参数是下列指令名之一则会显示对应指令的说明. (当然没有这个README写的详细就是了)
.hitokoto
# 或
.htht
使用一言API提供的API, 生成一句话..
以下是引用API提供者的声明:
动漫也好、小说也好、网络也好,不论在哪里,我们总会看到有那么一两个句子能穿透你的心。我们把这些句子汇聚起来,形成一言网络,以传递更多的感动。如果可以,我们希望我们没有停止服务的那一天。 简单来说,一言指的就是一句话,可以是动漫中的台词,也可以是网络上的各种小段子。 或是感动,或是开心,有或是单纯的回忆。来到这里,留下你所喜欢的那一句句话,与大家分享,这就是一言存在的目的。
.jrrp
使用Dice!提供的API, 计算"今日人品".
数据仅供参考, 实际运势请以个人体验为准..
(P.S. 其实自己写一个会更简单, 使用API的主要目的是和市面上主流骰娘算的结果一致会更有说服力~)
.ohy
.oysm
分别是早安和晚安. 指令名源于日本語中的おはよう和おやすみ. 什么你问为什么会用日语?
.muda [次数]
.ora [次数]
.meow [次数]
输出若干無駄/オラ/喵. 次数不填则默认为1. (P.S. 作者是个云JO) (P.S. .meow最后会有后缀)
.kokodayo
.kkdy
输出こ~こ~だ~よ~☆. (P.S. 作者是个云刀客塔)
.coc [次数]
.coc7 [次数]
进行coc7版人物作成 (具体规则去给我读规则书啊)
次数默认为1.
(P.S. 单次作成与多次作成(只要带参,coc 1
也被视为多次作成)的输出格式是不一样的w)
.r [掷骰表达式] [原因]
.r b奖励骰个数/p惩罚骰个数 [原因] # e.g. .r b1 抵近射击
普通的掷骰..
掷骰表达式支持字符集{+-*/%d()0123456789
}.
d运算不能嵌套..(即不能 2d3d3
这亚子..
默认骰为1d100
. 奖励骰和惩罚骰规则请见规则书.
参数及说明请见.r.
普通的掷骰, 但是输出会对多个骰子/奖励(惩罚)骰的情况进行简化.
在骰神话生物的伤害的时候适合使用..
.rd [骰子面数] [原因]
.rd X
就是.r 1dX
的简化形式. X不填的话就是默认值(100)
由于处理表达式的时候默认1不省略, 就添加了这么一个单骰的功能
.set 属性1 数值1 [属性2] [数值2] [...] # 添加属性
.set del 属性1 [属性2] [属性3] [...] # 删除属性
.set show [属性1] [属性2] [属性3] [...] # 显示属性
# .set clr # 清空属性(这个在最新版本被移除叻)
对人物属性进行相关操作 (会联系数据库) 群属性和全局属性
(P.S. 跟溯洄ver的骰娘存在区别: .st
要修改为.set
, 然后属性和数值之间都要有空格..)
(饼: 希望会在未来的某个版本添加兼容 (咕) )
.en [属性名] [原数值] [原因]
属性增强/技能成长检定.
骰1d100, 如果大于原数值, 则原数值增加1d10.
(P.S. 属性名和原数值请至少填写一项~)
.sc 成功表达式 失败表达式 [当前san值] [原因]
很典型的SAN CHECK. 要不要填写当前SAN值??
(P.S. 和溯洄ver的不同: 成功表达式与失败表达式之间由空格而非**/**分开.. 这个并不想修成兼容的.)
.rc [b奖励骰个数/p惩罚骰个数] [属性名] [属性值] [原因]
按照指定规则(目前只有规则书规则, 未来版本可能会添加自定义规则的资瓷(咕))进行检定.
(P.S. 属性名和原数值请至少填写一项~)
.draw 牌堆名 [次数]
抽卡.. 目前来讲就是从已知的牌池中随机挑一个.. (以后可能会有新的形式(咕))
目前支持的牌堆:
- 硬币
- 性别
- 个人描述
- 思想信念
- 重要之人
- 重要之人理由
- 意义非凡之地
- 宝贵之物
- 特点
- 即时症状
- 总结症状
- 恐惧症
- 狂躁症
- 职业
- 阵营
.sauce 一张图
看到群友发涩图, 但是找不到出处?
这里利用了著名的搜图网站saucenao进行搜图
顺便利用了一下github上的一个开源项目saucenao-node
会返回一个展示链接和相似度的列表, 并自动过滤掉相似度不够高的图片..
(会有些慢就是了www)
(仅用于群聊) (测试功能 目前仅在部分群开放..)
.chat add 关键词 回复 # 添加一条回复
.chat del 关键词 回复 # 删除一条回复
.chat list # 列出所有回复
.chat what # 查看上一条触发的回复
.chat clr # 清空所有回复 (真的会不见的! 请慎重!)
(仅用于群聊)
.bot on
.bot off
bot的控制.. 目前只能控制on和off..
(仅用于私聊)
.gset [群号] ... # 后续参数参见.set
修改指定群里的属性(主要是避免属性多了刷屏..) .set的说明 群属性和全局属性
属性默认会存在数据库中..
bot会保存一套全局的属性, 以及各群会保存一套属性.
(就是每个群用不同的卡.. 然后还有一套私聊的卡..)
在私聊中使用.set会修改全局的属性, 在群聊中使用.set会修改该群的属性.
(P.S. 想在私聊中修改某群的属性请使用 .gset
)
在很多情况下, bot会需要使用用户的名字. 此时的优先级递减如下:
- 群聊中保存的name属性 (如果在群聊中的话)
- 全局的name属性
- 用户昵称
在.sc
.en
.rc
中, 我们说过可以在参数中给出当前的属性值.
- 当给出属性值时, 会使用当前的属性值进行判定. 如果值发生了变化, 也不会保存到数据库.
- 当不给出属性值时, 会使用数据库中保存的属性值进行判定(私聊用全局, 群聊用当前群的属性); 如果发生修改, 会直接将修改后的值保存到数据库.
- 由于chat功能的存在, 不适合和其他有相似功能的骰娘
百合营业一起使用w (可能会导致俩人聊起来滔滔不绝w) - jrrp的结果仅供参考
欢迎一切意见 建议 bug反馈 PR 等..
一定会认真听取, 但不一定会采纳.
可以直接在github提issue.. 或者email: [email protected] (几乎不看) 或者QQ: 974011935 (想获取.chat的使用权限可以联系Master..)