# QQRoleGame **Repository Path**: catchcode/qq-role-game ## Basic Information - **Project Name**: QQRoleGame - **Description**: 角色扮演游戏框架。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-14 - **Last Updated**: 2021-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 改动情况 ### 2021.9.21 日 1. 下降抽中`学习`卡的概率 2. 修复`成长`卡无法增加生命值上限的问题。 3. `小执(默认角色)`添加被动,每次能拿两张牌(相同的) 4. 加强`金刚狼`的输出能力。 5. `小舞`添加新技能`魅惑`(目前无法通过`学习卡`学习)。 6. `收割`造成的真实伤害由 10% -> 20%。 7. 新卡牌`一牌三连`,`控制` ### 2021.8.19 日 晚9点 1. 拿牌间隔由 20S 调整到 5S。 2. 大幅度增加拿到`攻击卡`的概率。 3. 添加新卡牌`学习卡`,可以获得学习任意一项技能。 4. 精简伤害说明,精简血量播报。 5. 大幅度降低角色技能CD。 6. 优化`我`命令,可以显示技能`CD` 7. 新命令`查看游戏时间`、`查看所有玩家`。 8. 修复`释放`命令,技能释放失败不扣除`CD` 9. 当游戏玩家只剩余1人时,游戏自动结束。 ## 游戏介绍 这是一款适基于 `miraiQQ` 的角色扮演游戏。可以有效的提高QQ群的友谊度。 暂时还没有好的游戏名字,如果你有很好的建议,可以给我留言。 每个玩家都是一个群员,当游戏处于准备阶段的时候,可以发送`[选择 (?角色名)]`来选择自己使用的角色。 > 未选择角色的群员**不属于**玩家 每个群都是一个战场,所有的玩家可以在游戏开始后在战场进行战斗。 当玩家死亡时,将变的不可操作。 当游戏结束时,还没有阵亡的玩家获得游戏的胜利,之后进入准备阶段。 当游戏准备人数为 0 的时候,游戏将自动结束。 ## 玩法介绍 **为了方便命令的描述,使用`[]`内部的才是命令(`[]`不是),内部嵌套的`()`属于描述信息,其内容是不确定的,按实际内容来。带`?`的是可选的。** ### 两大命令 `[开始游戏]`:游戏开始,会反复经历游戏的三个阶段`准备`、`开始`、`结束`,就像回合制那样。玩家们主要在`开始`阶段操作。 > 任何人都能执行。且不可会重复执行 `[结束游戏]`:游戏结束,立刻停止游戏。 > 只有群主才能执行。且不可重复执行。 `[帮助]`:查看游戏使用说明,也就是这篇文档。 ### 命令是什么? 游戏命令就是**普通的文本消息**,当你打算发送游戏命令给机器人的时候,建议不要携带表情、图片等其他内容,虽然内置了过滤程序,但任然可能会造成命令的解析错误。 所有的命令**必须**使用`空白符`分割,推荐使用`空格`,比如`[选择 唐三]` 比较常见的几种命令: `[选择 (?角色名)]`: 在游戏准备阶段,可以由这个命令选择使用的角色。 `[释放 (技能名称)]`: 在游戏开始阶段,可以释放自己所用角色的技能。 `[查看技能 (技能名称)]`:在游戏开始阶段,可以查看技能的说明。 `[拿牌]`:获得一张手牌。 `[出牌 (卡牌名称)]`: 将自己角色所拥有的一张牌使用,具体效果更具牌的种类有所不同。 `[我]`:查询自己的状态。 如果你想了解的更详细,或者设计一款命令,可以查阅`./src/commands/`目录下的文件。 ### 角色是什么? 角色是玩家操作的对象。它承载了游戏的玩法,是整个游戏最复杂,最核心的东西。 目前实现的角色有`唐三`,`无名刺客`,`金刚狼`,`猪能吃`,`马红俊`。 如果你想了解的更详细,或者设计一款角色,可以查阅`./src/roles/`目录下的文件。 ### 卡牌是什么? 卡牌是游戏玩法的一种扩展。目前包括的卡牌有`攻击`,`物抗`,`法抗`,`物攻`,`法攻`,`治疗`,处理`攻击`,后面的卡牌都是对角色的一种增益能力,后续也会增加其他功能卡牌。 如果你想了解的更详细,或者设计一款卡牌,可以查阅`./src/cards/`目录下的文件。 ### 技能是什么? 技能是角色的一种能力。目前包括的技能有`治愈`、`吃`、`凤凰火线`、`激怒`、`收割`、`蓝银霸王枪`。 技能通过`[释放 (技能名称)]`命令来触发,受`CD`影响。 后续会添加更多技能。 如果你想了解的更详细,或者设计一款技能,可以查阅`./src/methods/`目录下的文件。 ### 如果指定目标? 在使用`技能`,`卡牌`,`命令`等等的时候,可能遇到指定目标的情况,比如卡牌的攻击目标,在发送命令时,应该使用`@QQ`代替 一个很好的例子: `[出牌 攻击 @执子之手]` 再比如: `[释放 蓝银霸王枪 @执子之手]` ## 发展和规划 这款游戏或者这个项目,其实现的不是游戏设计,而是游戏逻辑。 设计之初,已经规划了可扩展性,也就`命令`,`技能`,`角色`,`卡牌`都是可以扩展的,这样设计的后果就是这4样东西决定了游戏的可玩性。 也就是说扩展越强,游戏的可玩性越高。 如果你觉得这款游戏还不错,且拥有开发能力,希望你能加入到这款游戏的开发中来,为这款游戏添砖加瓦。 如果你很喜欢玩这款游戏,但是不具备开发能力,你可以将你的想法给我留言,我会倾听你的建议,并作出改善。 ## 体验群 * **639777356** > 机器人是:`2634342610`(执子之手) ## 怎么安装这个游戏? 1. 将 `miraiQQ`中的安装文件`mcl-installer-1.0.3-windows-amd64.exe`执行,会安装`miraiQQ`。 2. 将 `mirai-api-http-v2.2.0.mirai.jar` 放到 `plugins` 目录下。 > 运行`mcl.cmd`之后会创建`plugins`目录 3. 请在 `mirai-http-api` 的配置文件中开启 `ws` 适配器,可以参考下面的配置。 > 大概路径在 `./miraiQQ/config/...` > 请注意 `verifyKey` 4. 启动`miraiQQ`并登录账号(这一步请关注官方说明)。 5. 安装依赖`npm i`。 > 需要 node 环境,开发版本是 14.14.0 6. 启动根目录下的`启动.bat`或者`npx ts-node index.ts`。 > 请根据`env.ts.example`文件在更目录下配置`env.ts`文件,这是必须的。 **如果你在安装这款游戏的时候遇到任何问题,都可以给我留言。(mirarQQ部分请留意官网)** ## mirai-http-api配置文件参考 ```yml ## 配置文件中的值,全为默认值 ## 启用的 adapter, 内置有 http, ws, reverse-ws, webhook adapters: - ws ## 是否开启认证流程, 若为 true 则建立连接时需要验证 verifyKey ## 建议公网连接时开启 enableVerify: true verifyKey: 2634342610 ## 开启一些调式信息 debug: false ## 是否开启单 session 模式, 若为 true,则自动创建 session 绑定 console 中登录的 bot ## 开启后,接口中任何 sessionKey 不需要传递参数 ## 若 console 中有多个 bot 登录,则行为未定义 ## 确保 console 中只有一个 bot 登陆时启用 singleMode: false ## 历史消息的缓存大小 ## 同时,也是 http adapter 的消息队列容量 cacheSize: 4096 ## adapter 的单独配置,键名与 adapters 项配置相同 adapterSettings: ## 详情看 websocket adapter 使用说明 配置 ws: host: 0.0.0.0 port: 30888 reservedSyncId: -1 ```