角色立绘支持随机,用于面板场景

This commit is contained in:
Kokomi 2022-11-30 04:55:50 +08:00
parent 5fb7da70ae
commit 6eabd3f0cb
16 changed files with 214 additions and 200 deletions

3
.gitignore vendored
View File

@ -16,5 +16,4 @@
/config/help.js /config/help.js
/config/cfg.js /config/cfg.js
/resources/profile/super-character/* /resources/profile/super-character/*
/resources/profile/normal-character/* /resources/profile/normal-character/*
!/resources/profile/super-character/达达利亚.webp

View File

@ -1,59 +1,58 @@
# 2.1.3 # 2.1.4
* 角色立绘支持随机,用于面板场景
* 图像支持webp及png格式
* 普通立绘:**resources/profile/normal-character/**
* 彩蛋立绘(满命/ACE/三皇冠)**resources/profile/super-character/**
* 单张立绘请放置在普通&彩蛋目录下,以**角色全名**为**文件名**,例如**刻晴.webp**
* 如需多张随机,请在普通&彩蛋目录下,以**角色全名**为**目录**名,任意文件名为文件名,例如 **刻晴/1.png**
# 2.1.1~2.1.3
* 增加面板替换功能,可通过命令更换面板的圣遗物、武器、天赋命座等,用于伤害计算 * 增加面板替换功能,可通过命令更换面板的圣遗物、武器、天赋命座等,用于伤害计算
* `#雷神面板换稻光换90级满命` / `#刻晴面板换雷神圣遗物` 等命令 * `#雷神面板换稻光换90级满命` / `#刻晴面板换雷神圣遗物` 等命令
* 更多命令参见 `#面板帮助`,请根据需求吟唱。后续会提供更细致的咒语详解 * 更多命令参见 `#面板帮助`,请根据需求吟唱。后续会提供更细致的咒语详解
* 角色立绘支持随机,用于面板、图鉴等场景
* 立绘可放置在 **resources/profile/randomMode-character/角色名/** 目录下webp格式
* 若目录获取到图片则不会使用普通立绘和彩蛋立绘
# 2.1.1~2.1.2
* 角色普通立绘支持自定义,用于面板、图鉴等场景
* 立绘可放置在 **resources/profile/normal-character/** 目录下webp格式
* 由于缓存新增的角色图需要重启bot生效已有图像替换无需重启
* 去除插件内自带的V2/V3兼容逻辑使用runtime进行V2/V3兼容如使用遇到问题请升级至最新版Yunzai * 去除插件内自带的V2/V3兼容逻辑使用runtime进行V2/V3兼容如使用遇到问题请升级至最新版Yunzai
* V3-Yunzai官方Yunzai最新版本 * V3-Yunzai官方Yunzai最新版本
* V2-Yunzai喵版V2-Yunzai2.2.3版本。其余分值维护的V2-Yunzai可合并2.2.3版本 * V2-Yunzai喵版V2-Yunzai2.2.3版本。其余分值维护的V2-Yunzai可合并2.2.3版本
* 较低版本的Yunzai可能无法正常使用miao-plugin * 较低版本的Yunzai可能无法正常使用miao-plugin
* 部分底层结构升级 * 部分底层结构升级
* 底层增加面板计算逻辑 * 底层增加面板计算逻辑
* 圣遗物数据底层存储格式与处理逻辑初步升级 * 圣遗物数据底层存储格式与处理逻辑初步升级
* 圣遗物主词条评分规则微调,可能会影响部分角色评分 * 圣遗物主词条评分规则微调,可能会影响部分角色评分
* 元素杯属性不符会触发主词缀评分惩罚 * 元素杯属性不符会触发主词缀评分惩罚
* 充能主词条不再触发主词缀评分惩罚 * 充能主词条不再触发主词缀评分惩罚
* 一些已知问题修正与样式优化 * 一些已知问题修正与样式优化
# 2.1.0 # 2.1.0
* 增加群内排名功能 * 增加群内排名功能
* 默认关闭,如需启用可通过 `#喵喵设置排名开启`进行打开 * 默认关闭,如需启用可通过 `#喵喵设置排名开启`进行打开
* 统计为bot本地统计只统计在群内主动查看过的面板数据 * 统计为bot本地统计只统计在群内主动查看过的面板数据
* 可通过 `#面板`、`#心海面板`、`#更新面板`等命令来触发排名数据更新 * 可通过 `#面板`、`#心海面板`、`#更新面板`等命令来触发排名数据更新
* 增加命令 `#刷新排名`,获取群成员面板数据,刷新当前排名 **@munnks** * 增加命令 `#刷新排名`,获取群成员面板数据,刷新当前排名 **@munnks**
* `#雷神排名` 使用个人头像作为排行头像展示(首次使用可使用 `#刷新排名`以更新uid信息 * `#雷神排名` 使用个人头像作为排行头像展示(首次使用可使用 `#刷新排名`以更新uid信息
* 增加排名相关命令 * 增加排名相关命令
* 增加 `#最强雷神`、`#最高分甘雨`命令,查看当前统计中最高练度/最高圣遗物评分的面板数据 * 增加 `#最强雷神`、`#最高分甘雨`命令,查看当前统计中最高练度/最高圣遗物评分的面板数据
* 增加 `#雷神排名`、`#甘雨圣遗物排名`命令,查看当前群中角色的排名数据 * 增加 `#雷神排名`、`#甘雨圣遗物排名`命令,查看当前群中角色的排名数据
* 增加 `#重置排名`、`#重置刻晴排名`命令,来重置当前群的排名统计 * 增加 `#重置排名`、`#重置刻晴排名`命令,来重置当前群的排名统计
* 面板及伤害计算升级 * 面板及伤害计算升级
* `#雷神面板`圣遗物支持展示强化次数 * `#雷神面板`圣遗物支持展示强化次数
* `#面板`会展示角色名命座信息 * `#面板`会展示角色名命座信息
* 底层元素反应计算逻辑更新 **@冷落** * 底层元素反应计算逻辑更新 **@冷落**
* 增加纳西妲的伤害计算 * 增加纳西妲的伤害计算
* `#喵喵设置` 部分配置项及功能改进 * `#喵喵设置` 部分配置项及功能改进
* 删除一些无效或暂不支持的配置项 * 删除一些无效或暂不支持的配置项
* 配置存储位置变更为**config/cfg.js**。原设置会自动迁移 * 配置存储位置变更为**config/cfg.js**。原设置会自动迁移
* 喵喵设置中增加排名限制门槛,支持限制 有16个角色数据/包含御三家角色 才能参与排名防止被非群成员uid刷榜 * 喵喵设置中增加排名限制门槛,支持限制 有16个角色数据/包含御三家角色 才能参与排名防止被非群成员uid刷榜
* `#日历` 页面样式微调,功能升级 * `#日历` 页面样式微调,功能升级
* 日历中会展示角色生日 * 日历中会展示角色生日
* 日历会展示本日可刷天赋角色列表 * 日历会展示本日可刷天赋角色列表
* 增加3.3角色信息及图片,可通过 `#散兵天赋`、`#珐露珊命座`查看 * 增加3.3角色信息及图片,可通过 `#散兵天赋`、`#珐露珊命座`查看
* 一些样式及功能点优化 * 一些样式及功能点优化
* 优化character的进入判定逻辑防止一些额外的log触发 * 优化character的进入判定逻辑防止一些额外的log触发
* 角色相关命令在V3下会联合V3的角色别名一同查询 * 角色相关命令在V3下会联合V3的角色别名一同查询
* `#深渊组队`使用新版胡桃API进行组队信息获取 * `#深渊组队`使用新版胡桃API进行组队信息获取
* 角色面板彩蛋图(满命/三皇冠/ACE 任一触发)支持自定义
* 自定义图像可放置在 **resources/profile/super-character/** 目录下
* 增加命令 `#最强排行`、`#最高分排行` 查看群排行 * 增加命令 `#最强排行`、`#最高分排行` 查看群排行
* 增加莱依拉的伤害计算及圣遗物评分权重 * 增加莱依拉的伤害计算及圣遗物评分权重
@ -62,67 +61,67 @@
* 底层架构升级以V3为主要版本V2做兼容处理 * 底层架构升级以V3为主要版本V2做兼容处理
* `#深渊配队`、`#戳一戳` 适配V3 * `#深渊配队`、`#戳一戳` 适配V3
* `#喵喵帮助`配置功能升级 * `#喵喵帮助`配置功能升级
* 支持自定义帮助皮肤包,皮肤目录为**resources/help/theme** * 支持自定义帮助皮肤包,皮肤目录为**resources/help/theme**
* 若有多套皮肤包,默认随机使用,可通过**config/help.js**指定 * 若有多套皮肤包,默认随机使用,可通过**config/help.js**指定
* 支持配帮助文字颜色及容器颜色与透明度 * 支持配帮助文字颜色及容器颜色与透明度
* 支持图片毛玻璃效果,默认开启,可通过配置关闭 * 支持图片毛玻璃效果,默认开启,可通过配置关闭
* `注意1` 如之前更改过底图可能会在更新后失效,可将自定义底图放置在新建的皮肤包目录内 * `注意1` 如之前更改过底图可能会在更新后失效,可将自定义底图放置在新建的皮肤包目录内
* `注意2` 为统一配置目录,帮助配置文件迁移至**config/help.js**如之前自定义过配置文件help-cfg.js仍能够识别但建议移至新配置目录以使用后续更多功能 * `注意2` 为统一配置目录,帮助配置文件迁移至**config/help.js**如之前自定义过配置文件help-cfg.js仍能够识别但建议移至新配置目录以使用后续更多功能
* `#面板练度统计` 功能调整,样式重写 * `#面板练度统计` 功能调整,样式重写
* 样式由深色调整为浅色方案 * 样式由深色调整为浅色方案
* 在未绑定CK时使用本地面板数据展示练度信息 * 在未绑定CK时使用本地面板数据展示练度信息
* 重写 `#刻晴`、`#老婆`的角色卡片 * 重写 `#刻晴`、`#老婆`的角色卡片
* 样式整体升级,展示信息重新排版 * 样式整体升级,展示信息重新排版
* 未绑定CK时会同时使用本地面板数据进行展示 * 未绑定CK时会同时使用本地面板数据进行展示
* `#上传深渊`队伍人数少于4人时展示样式优化 * `#上传深渊`队伍人数少于4人时展示样式优化
* MysApi内部逻辑重写 * MysApi内部逻辑重写
* 在未绑定CK时会使用本地面板数据综合计算以使信息展示更完备 * 在未绑定CK时会使用本地面板数据综合计算以使信息展示更完备
* 优化V3下获取Uid及CK的逻辑防止一些情况下触发报错 * 优化V3下获取Uid及CK的逻辑防止一些情况下触发报错
* 武器、圣遗物 meta数据及图像资源逻辑更新 * 武器、圣遗物 meta数据及图像资源逻辑更新
* 重构武器及圣遗物的底层处理逻辑,重构页面引用图像资源的逻辑 * 重构武器及圣遗物的底层处理逻辑,重构页面引用图像资源的逻辑
* 图像资源更新为webp格式 * 图像资源更新为webp格式
* 增加多莉的伤害计算 * 增加多莉的伤害计算
* 其他已知Bug修复 * 其他已知Bug修复
# 1.11.0 # 1.11.0
* 面板圣遗物评分初步增加流派判定能力 * 面板圣遗物评分初步增加流派判定能力
* 实验性,尚未完全稳定,可能会导致一些角色圣遗物评分变化,如遇问题请反馈 * 实验性,尚未完全稳定,可能会导致一些角色圣遗物评分变化,如遇问题请反馈
* 目前实验暴力芭芭拉、血牛钟离的判定 * 目前实验暴力芭芭拉、血牛钟离的判定
* `#刻晴面板`、`#芭芭拉圣遗物`支持展示角色时装 * `#刻晴面板`、`#芭芭拉圣遗物`支持展示角色时装
* 如果角色装备了时装,面板的角色图会展示时装立绘 * 如果角色装备了时装,面板的角色图会展示时装立绘
* 需要重新 `#更新面板`以获取时装数据 * 需要重新 `#更新面板`以获取时装数据
* 增加赛诺、妮露、坎蒂丝的角色信息,可以通过 `#妮露天赋`、`#妮露命座`查看角色信息了 * 增加赛诺、妮露、坎蒂丝的角色信息,可以通过 `#妮露天赋`、`#妮露命座`查看角色信息了
* 角色面板支持旅行者,暂未支持伤害计算及圣遗物评分 * 角色面板支持旅行者,暂未支持伤害计算及圣遗物评分
* 需要重新更新旅行者的面板数据 * 需要重新更新旅行者的面板数据
* `#雷主天赋`、`#草主命座`功能升级 * `#雷主天赋`、`#草主命座`功能升级
* 页面样式微调,内部处理逻辑升级 * 页面样式微调,内部处理逻辑升级
* 支持旅行者天赋及命座信息查看 * 支持旅行者天赋及命座信息查看
* 增加 `#心海图鉴`功能,可查看突破材料及常用武器 * 增加 `#心海图鉴`功能,可查看突破材料及常用武器
* 功能尚未完全稳定,信息还在继续补全中 * 功能尚未完全稳定,信息还在继续补全中
* 如无需使用master可通过 `#喵喵设置图鉴关闭`关闭,防止覆盖图鉴插件等图鉴功能 * 如无需使用master可通过 `#喵喵设置图鉴关闭`关闭,防止覆盖图鉴插件等图鉴功能
* 框架底层角色相关逻辑重构角色图像资源迁移为webp格式 * 框架底层角色相关逻辑重构角色图像资源迁移为webp格式
* 若遇到图像资源无法正常展示,可联系喵喵反馈 * 若遇到图像资源无法正常展示,可联系喵喵反馈
# 1.10.0 # 1.10.0
* 新增 `#面板练度统计`功能 * 新增 `#面板练度统计`功能
* 可展示当前角色天赋及圣遗物练度信息 * 可展示当前角色天赋及圣遗物练度信息
* 需要用户绑定Cookie圣遗物评分需要本地获取并查看过对应角色面板 * 需要用户绑定Cookie圣遗物评分需要本地获取并查看过对应角色面板
* `#上传深渊`使用图片渲染深渊结果,同时可被 `#喵喵深渊`触发 * `#上传深渊`使用图片渲染深渊结果,同时可被 `#喵喵深渊`触发
* 可展示本期深渊的全部角色信息,包括组队、天赋及圣遗物 * 可展示本期深渊的全部角色信息,包括组队、天赋及圣遗物
* 数据会上传至胡桃Api进行伤害排名并展示在页面内 * 数据会上传至胡桃Api进行伤害排名并展示在页面内
* 可在 `#喵喵设置`中启用 `#喵喵深渊`作为默认 `#深渊`,默认关闭 * 可在 `#喵喵设置`中启用 `#喵喵深渊`作为默认 `#深渊`,默认关闭
* 启用后不会覆盖 `#上期深渊`以及 `#深渊12层`具体楼层的命令 * 启用后不会覆盖 `#上期深渊`以及 `#深渊12层`具体楼层的命令
* `#面板`、`#更新面板`命令使用图片渲染结果 * `#面板`、`#更新面板`命令使用图片渲染结果
* `#雷神面板`展示数据API及更新时间 * `#雷神面板`展示数据API及更新时间
* Enka面板服务支持配置代理 **@永恒的小黑屋** * Enka面板服务支持配置代理 **@永恒的小黑屋**
* 如需配置可在**miao-plugin/config/profile.js**文件中配置 * 如需配置可在**miao-plugin/config/profile.js**文件中配置
* `#更新面板`支持配置更新API适配Enka新校验逻辑 * `#更新面板`支持配置更新API适配Enka新校验逻辑
* B服角色使用Enka服务进行面板信息获取 * B服角色使用Enka服务进行面板信息获取
* 感谢Enka官方 **@Algoinde**的官方授权及UA**校**验 * 感谢Enka官方 **@Algoinde**的官方授权及UA**校**验
* 感谢 **@MiniGrayGay**提供的Enka服务中转若面板更新失败可尝试在**miao-plugin/config/profile.js**文件中配置切换更新API * 感谢 **@MiniGrayGay**提供的Enka服务中转若面板更新失败可尝试在**miao-plugin/config/profile.js**文件中配置切换更新API
* 更新面板增加单用户更新间隔控制默认5分钟 * 更新面板增加单用户更新间隔控制默认5分钟
* `#深渊出场率`、`#角色持有率` 增加样本数量展示,增加数据使用授权提示 * `#深渊出场率`、`#角色持有率` 增加样本数量展示,增加数据使用授权提示
* 部分角色的圣遗物评分增加充能的词条评分权重 * 部分角色的圣遗物评分增加充能的词条评分权重
* 重构部分components、models逻辑重构部分伤害计算逻辑 * 重构部分components、models逻辑重构部分伤害计算逻辑
@ -132,30 +131,30 @@
# 1.9.0 # 1.9.0
* 初步适配Yunzai V3 * 初步适配Yunzai V3
* 部分功能可能无法正常使用,会逐步适配 * 部分功能可能无法正常使用,会逐步适配
* 部分依赖MysApi查询的功能在V3下暂时只支持查自己 * 部分依赖MysApi查询的功能在V3下暂时只支持查自己
* 增加提纳里、柯莱、多莉的资料及角色图像 * 增加提纳里、柯莱、多莉的资料及角色图像
* 可通过 `#柯莱天赋`、`#柯莱命座`查看资料 * 可通过 `#柯莱天赋`、`#柯莱命座`查看资料
* 增加 `#深渊使用率`命令数据源自SG团队胡桃API * 增加 `#深渊使用率`命令数据源自SG团队胡桃API
* 新增 `#上传深渊数据`命令 * 新增 `#上传深渊数据`命令
* 上传自己角色的深渊挑战数据及角色列表,并展示在本期深渊中伤害与承伤排名 * 上传自己角色的深渊挑战数据及角色列表,并展示在本期深渊中伤害与承伤排名
* 上传数据用于 `#角色持有率 #深渊出场率`等统计,可使统计更加及时准确 * 上传数据用于 `#角色持有率 #深渊出场率`等统计,可使统计更加及时准确
* 数据统计及服务来自SG团队胡桃API * 数据统计及服务来自SG团队胡桃API
* 增加 `#添加刻晴图像`命令,感谢 **@叶** * 增加 `#添加刻晴图像`命令,感谢 **@叶**
* 可通过命令上传添加指定角色图片,上传至 **resources/character-img/刻晴/upload** * 可通过命令上传添加指定角色图片,上传至 **resources/character-img/刻晴/upload**
* 请将图像与命令一同发送后续会支持at图像及命令后发送图像 * 请将图像与命令一同发送后续会支持at图像及命令后发送图像
* `#刻晴` 角色卡片功能升级 * `#刻晴` 角色卡片功能升级
* `#老婆设置刻晴,心海`不再检查是否具有角色或展示在米游社展柜 * `#老婆设置刻晴,心海`不再检查是否具有角色或展示在米游社展柜
* `#刻晴` 角色卡片优先使用面板数据进行展示,无面板数据时使用米游社数据 * `#刻晴` 角色卡片优先使用面板数据进行展示,无面板数据时使用米游社数据
* 在未能获取到角色数据时也会展示角色卡片 * 在未能获取到角色数据时也会展示角色卡片
* 支持戳一戳返回喵喵版角色卡片暂不支持V3 Yunzai * 支持戳一戳返回喵喵版角色卡片暂不支持V3 Yunzai
* 需要使用喵喵分支Yunzai以支持此能力如需切换可在Yunzai根目录输入下方命令后更新重启 * 需要使用喵喵分支Yunzai以支持此能力如需切换可在Yunzai根目录输入下方命令后更新重启
* `git remote set-url origin https://gitee.com/yoimiya-kokomi/Yunzai-Bot` * `git remote set-url origin https://gitee.com/yoimiya-kokomi/Yunzai-Bot`
* 可通过 `#喵喵设置` 关闭戳一戳 * 可通过 `#喵喵设置` 关闭戳一戳
* 支持定义新角色及别名 * 支持定义新角色及别名
* 新增角色 派蒙、瑶瑶、白术、伐难、应达、散兵、女士、萍姥姥、仆人、少女、富人、博士、木偶、丑角、队长、妮露、纳西妲 的角色配置及图片 * 新增角色 派蒙、瑶瑶、白术、伐难、应达、散兵、女士、萍姥姥、仆人、少女、富人、博士、木偶、丑角、队长、妮露、纳西妲 的角色配置及图片
* 自定义角色可使用 `#派蒙` `#派蒙图片`触发图片查看,`#女儿设置派蒙`进行设置。后续会支持更多场景 * 自定义角色可使用 `#派蒙` `#派蒙图片`触发图片查看,`#女儿设置派蒙`进行设置。后续会支持更多场景
* 如需扩展可在喵喵config/character.js中定义 * 如需扩展可在喵喵config/character.js中定义
* `#喵喵帮助`增加对自定义配置文件的支持 * `#喵喵帮助`增加对自定义配置文件的支持
* 角色伤害计算增加 鹿野院平藏、烟绯 * 角色伤害计算增加 鹿野院平藏、烟绯
* `#喵喵日历`现在可通过 `#日历 #日历列表`触发 * `#喵喵日历`现在可通过 `#日历 #日历列表`触发
@ -163,111 +162,111 @@
# 1.8.0 # 1.8.0
* `#角色面板`、`#圣遗物列表` 使用新的圣遗物评分逻辑计算评分 * `#角色面板`、`#圣遗物列表` 使用新的圣遗物评分逻辑计算评分
* 新的圣遗物评分规针对不同角色进行了细化,对不同角色的评分进行了拉齐 * 新的圣遗物评分规针对不同角色进行了细化,对不同角色的评分进行了拉齐
* 不同角色基于不同词条权重进行计算。感谢 **@糖炒栗子 @秋声 @49631073**等的权重梳理 * 不同角色基于不同词条权重进行计算。感谢 **@糖炒栗子 @秋声 @49631073**等的权重梳理
* 增加 `#雷神圣遗物`命令 * 增加 `#雷神圣遗物`命令
* 展示指定角色圣遗物及评分计算详情 * 展示指定角色圣遗物及评分计算详情
* 展示新版圣遗物评分逻辑与计算规则 * 展示新版圣遗物评分逻辑与计算规则
* 增加 `#原图`命令,可获取喵喵角色卡片原图,感谢 **@牧星长** 提供功能 * 增加 `#原图`命令,可获取喵喵角色卡片原图,感谢 **@牧星长** 提供功能
* 对由 `#老婆 #刻晴`发出的角色卡片图回复 `#原图`可获取对应图像 * 对由 `#老婆 #刻晴`发出的角色卡片图回复 `#原图`可获取对应图像
* `#角色面板`现在支持B服角色数据获取 * `#角色面板`现在支持B服角色数据获取
* 数据来自喵喵API目前开放调用无需Token仅限喵喵插件用户使用 * 数据来自喵喵API目前开放调用无需Token仅限喵喵插件用户使用
* 已知问题角色天赋的皇冠及命座加成效果显示可能有问题后期fix * 已知问题角色天赋的皇冠及命座加成效果显示可能有问题后期fix
* `#录入角色面板` 功能恢复 * `#录入角色面板` 功能恢复
* 可对已有面板数据的角色手工输入更改面板属性,用于伤害测算 * 可对已有面板数据的角色手工输入更改面板属性,用于伤害测算
* 例如 `#录入雷神面板 暴击80暴伤250` * 例如 `#录入雷神面板 暴击80暴伤250`
* 暂不支持设置武器、圣遗物、命座、天赋。后续会增加支持 * 暂不支持设置武器、圣遗物、命座、天赋。后续会增加支持
* 部分页面样式调整及功能优化 * 部分页面样式调整及功能优化
* `#角色持有率` 等增加提示说明 * `#角色持有率` 等增加提示说明
* `#圣遗物列表` 展示个数提升至28且根据新版圣遗物评分规则进行词条高亮 * `#圣遗物列表` 展示个数提升至28且根据新版圣遗物评分规则进行词条高亮
* `#喵喵更新` 的自动重启功能适配node app方式启动的Yunzai-Bot感谢 **@SirlyDreamer** * `#喵喵更新` 的自动重启功能适配node app方式启动的Yunzai-Bot感谢 **@SirlyDreamer**
* 角色图像增加小清新开关,默认关闭 * 角色图像增加小清新开关,默认关闭
* 对增量包内的角色图像进行分级,较为清凉的图像独立管理 * 对增量包内的角色图像进行分级,较为清凉的图像独立管理
* 勇士们可使用 `#喵喵设置小清新开启` 启用 * 勇士们可使用 `#喵喵设置小清新开启` 启用
* 伤害计算增加扩散、感电的计算逻辑,感谢 **@49631073**的逻辑梳理 * 伤害计算增加扩散、感电的计算逻辑,感谢 **@49631073**的逻辑梳理
* `#角色面板` 伤害计算增加部分角色,目前支持 * `#角色面板` 伤害计算增加部分角色,目前支持
* 长柄武器:雷神、胡桃、魈、钟离、香菱 * 长柄武器:雷神、胡桃、魈、钟离、香菱
* 法器:神子、心海、可莉、凝光、芭芭拉、莫娜 * 法器:神子、心海、可莉、凝光、芭芭拉、莫娜
* 弓:甘雨、宵宫、公子,九条,迪奥娜、安柏、皇女、温迪、夜兰 * 弓:甘雨、宵宫、公子,九条,迪奥娜、安柏、皇女、温迪、夜兰
* 单手剑:绫人、绫华、刻晴、阿贝多、行秋、班尼特、七七、凯亚、琴、万叶ⁿᵉʷ、久岐忍ⁿᵉʷ * 单手剑:绫人、绫华、刻晴、阿贝多、行秋、班尼特、七七、凯亚、琴、万叶ⁿᵉʷ、久岐忍ⁿᵉʷ
* 双手剑:一斗、优菈、迪卢克、诺艾尔、重云 * 双手剑:一斗、优菈、迪卢克、诺艾尔、重云
# 1.7.0 # 1.7.0
* `#更新面板` 功能升级 * `#更新面板` 功能升级
* 该功能可直接使用不再需要token * 该功能可直接使用不再需要token
* 在查询新用户时会自动使用自动使用的CD 12小时 * 在查询新用户时会自动使用自动使用的CD 12小时
* 支持国际服UID目前暂不支持2及5开头的UID * 支持国际服UID目前暂不支持2及5开头的UID
* 服务来自enka api部分网络可能无法请求请科学处理后续会增加转发服务。 * 服务来自enka api部分网络可能无法请求请科学处理后续会增加转发服务。
* 由于服务逻辑与之前数据不一致,部分角色的属性及伤害计算可能会不准确,如有发现请反馈给喵喵 * 由于服务逻辑与之前数据不一致,部分角色的属性及伤害计算可能会不准确,如有发现请反馈给喵喵
* `#面板`、`#更新面板`、`#角色面板`、`#角色伤害`、`#圣遗物列表`不再需要绑定cookie支持查他人 * `#面板`、`#更新面板`、`#角色面板`、`#角色伤害`、`#圣遗物列表`不再需要绑定cookie支持查他人
* 使用 `#面板`命令可查看已获取面板数据的角色列表 * 使用 `#面板`命令可查看已获取面板数据的角色列表
* 默认查询自己UID同时也可通过命令+uid方式指定查询对象 * 默认查询自己UID同时也可通过命令+uid方式指定查询对象
* 由于整体逻辑变化喵喵1.6.0之前更新的面板数据无法查看,需要重新更新数据 * 由于整体逻辑变化喵喵1.6.0之前更新的面板数据无法查看,需要重新更新数据
* 增加 `#喵喵面板设置`命令,可更精细的设置是否允许好友/临时对话/群使用面板功能 * 增加 `#喵喵面板设置`命令,可更精细的设置是否允许好友/临时对话/群使用面板功能
* 由 `#录入xx面板` 录入的数据暂时屏蔽 * 由 `#录入xx面板` 录入的数据暂时屏蔽
* `#角色面板`、`#喵喵日历` 部分细节样式调整 * `#角色面板`、`#喵喵日历` 部分细节样式调整
* `#角色面板` 伤害计算增加部分角色,目前支持 * `#角色面板` 伤害计算增加部分角色,目前支持
* 长柄武器:雷神、胡桃、魈、钟离、香菱 * 长柄武器:雷神、胡桃、魈、钟离、香菱
* 法器:神子、心海、可莉、凝光、芭芭拉、莫娜ⁿᵉʷ * 法器:神子、心海、可莉、凝光、芭芭拉、莫娜ⁿᵉʷ
* 弓:甘雨、宵宫、公子,九条,迪奥娜、安柏、皇女ⁿᵉʷ、温迪ⁿᵉʷ、夜兰ⁿᵉʷ * 弓:甘雨、宵宫、公子,九条,迪奥娜、安柏、皇女ⁿᵉʷ、温迪ⁿᵉʷ、夜兰ⁿᵉʷ
* 单手剑:绫人、绫华、刻晴、阿贝多、行秋、班尼特、七七、凯亚、琴ⁿᵉʷ * 单手剑:绫人、绫华、刻晴、阿贝多、行秋、班尼特、七七、凯亚、琴ⁿᵉʷ
* 双手剑:一斗、优菈、迪卢克、诺艾尔、重云 * 双手剑:一斗、优菈、迪卢克、诺艾尔、重云
# 1.6.0 # 1.6.0
* `#喵喵设置` 支持设置 面板查询 的功能开关 * `#喵喵设置` 支持设置 面板查询 的功能开关
* `#喵喵版本` 使用图片展示更新信息 * `#喵喵版本` 使用图片展示更新信息
* `#喵喵日历` 升级 * `#喵喵日历` 升级
* 增加 `#喵喵日历列表`命令,以列表形式展示活动信息 * 增加 `#喵喵日历列表`命令,以列表形式展示活动信息
* 增加从活动详情信息中解析活动日期的逻辑,使一些活动日期更加准确 * 增加从活动详情信息中解析活动日期的逻辑,使一些活动日期更加准确
* 增加鹿野院平藏的角色信息,可通过 `#平藏天赋`、`#平藏命座`查看信息 * 增加鹿野院平藏的角色信息,可通过 `#平藏天赋`、`#平藏命座`查看信息
* 其他升级调整 * 其他升级调整
* `#深渊出场率`、`#角色持有率` 等页面功能及样式微调 * `#深渊出场率`、`#角色持有率` 等页面功能及样式微调
* `#角色面板` 伤害计算增加双手剑计算逻辑,增加物伤计算逻辑 * `#角色面板` 伤害计算增加双手剑计算逻辑,增加物伤计算逻辑
* 页面版权信息展示Yunzai及喵喵版本号 * 页面版权信息展示Yunzai及喵喵版本号
* `#角色面板` 伤害计算增加部分角色,目前支持 * `#角色面板` 伤害计算增加部分角色,目前支持
* 长柄武器:雷神、胡桃、魈、钟离、香菱 * 长柄武器:雷神、胡桃、魈、钟离、香菱
* 法器:神子、心海、可莉ⁿᵉʷ、凝光ⁿᵉʷ、芭芭拉ⁿᵉʷ * 法器:神子、心海、可莉ⁿᵉʷ、凝光ⁿᵉʷ、芭芭拉ⁿᵉʷ
* 弓:甘雨、宵宫、公子,九条ⁿᵉʷ,迪奥娜ⁿᵉʷ、安柏ⁿᵉʷ * 弓:甘雨、宵宫、公子,九条ⁿᵉʷ,迪奥娜ⁿᵉʷ、安柏ⁿᵉʷ
* 单手剑:绫人、绫华、刻晴、阿贝多、行秋、班尼特、七七ⁿᵉʷ、凯亚ⁿᵉʷ * 单手剑:绫人、绫华、刻晴、阿贝多、行秋、班尼特、七七ⁿᵉʷ、凯亚ⁿᵉʷ
* 双手剑:一斗ⁿᵉʷ、优菈ⁿᵉʷ、迪卢克ⁿᵉʷ、诺艾尔ⁿᵉʷ、重云ⁿᵉʷ * 双手剑:一斗ⁿᵉʷ、优菈ⁿᵉʷ、迪卢克ⁿᵉʷ、诺艾尔ⁿᵉʷ、重云ⁿᵉʷ
# 1.5.0 # 1.5.0
* 增加 `#喵喵日历` 功能 * 增加 `#喵喵日历` 功能
* 【请注意】此功能需要安装moment库请在Yunzai安装目录下运行 `npm install moment`后再进行升级 * 【请注意】此功能需要安装moment库请在Yunzai安装目录下运行 `npm install moment`后再进行升级
* 展示当前进行中及即将开始的活动,包括深境螺旋 * 展示当前进行中及即将开始的活动,包括深境螺旋
* `#角色面板` 伤害计算目前支持 * `#角色面板` 伤害计算目前支持
* 长柄武器:雷神、胡桃、魈、钟离、香菱ⁿᵉʷ * 长柄武器:雷神、胡桃、魈、钟离、香菱ⁿᵉʷ
* 法器:神子、心海 * 法器:神子、心海
* 弓:甘雨、宵宫、公子 * 弓:甘雨、宵宫、公子
* 单手剑:绫人、绫华、刻晴、阿贝多ⁿᵉʷ、行秋ⁿᵉʷ、班尼特ⁿᵉʷ * 单手剑:绫人、绫华、刻晴、阿贝多ⁿᵉʷ、行秋ⁿᵉʷ、班尼特ⁿᵉʷ
* 底层升级抽象了部分公共组件为tpl模板以提高复用度css改为less处理 * 底层升级抽象了部分公共组件为tpl模板以提高复用度css改为less处理
# 1.4.0 # 1.4.0
* 增加 `#深渊配队` 功能 * 增加 `#深渊配队` 功能
* 根据当前账号的角色练度及本期深渊出场数据,推荐较匹配的配队方案 * 根据当前账号的角色练度及本期深渊出场数据,推荐较匹配的配队方案
* 深渊出场数据来自胡桃API为Snap Genshin用户自主上传的深渊挑战记录感谢SG团队 * 深渊出场数据来自胡桃API为Snap Genshin用户自主上传的深渊挑战记录感谢SG团队
* 配队方案仅供参考 * 配队方案仅供参考
* `#角色面板` 伤害计算新增部分角色 * `#角色面板` 伤害计算新增部分角色
* 目前支持:雷神、胡桃、魈、神子、甘雨、宵宫、公子、绫人、绫华、心海、钟离 * 目前支持:雷神、胡桃、魈、神子、甘雨、宵宫、公子、绫人、绫华、心海、钟离
* `#角色面板` 一些功能升级与调整 * `#角色面板` 一些功能升级与调整
* 支持对治疗量、护盾量的计算与展示 * 支持对治疗量、护盾量的计算与展示
* 修复冰融化、少女4等buff等buff遗漏或错误导致的伤害计算偏差 * 修复冰融化、少女4等buff等buff遗漏或错误导致的伤害计算偏差
* `#老婆` 功能支持对jpeg格式的图片格式识别 * `#老婆` 功能支持对jpeg格式的图片格式识别
# 1.3.0 # 1.3.0
* 增加 `#雷神伤害` 功能 * 增加 `#雷神伤害` 功能
* 可计算圣遗物副词条置换带来的伤害变化,可用于圣遗物副词条侧重方向的参考 * 可计算圣遗物副词条置换带来的伤害变化,可用于圣遗物副词条侧重方向的参考
* 可以查看指定角色伤害计算的Buff列表 * 可以查看指定角色伤害计算的Buff列表
* `#角色面板` 伤害计算新增部分角色 * `#角色面板` 伤害计算新增部分角色
* 目前支持:雷神、胡桃、魈、神子、甘雨、宵宫、公子、绫人、绫华 * 目前支持:雷神、胡桃、魈、神子、甘雨、宵宫、公子、绫人、绫华
* `#角色面板` 功能升级 * `#角色面板` 功能升级
* 优化无角色面板数据时的引导 * 优化无角色面板数据时的引导
* 优化返回的图像格式及分辨率,平衡响应速度及显示效果 * 优化返回的图像格式及分辨率,平衡响应速度及显示效果
* 增加 `#圣遗物列表` 功能,对已经获取面板的所有角色圣遗物进行评分,并展示高评分的圣遗物列表 * 增加 `#圣遗物列表` 功能,对已经获取面板的所有角色圣遗物进行评分,并展示高评分的圣遗物列表
* 增加 `#角色面板列表` / `#角色面板帮助` 命令 * 增加 `#角色面板列表` / `#角色面板帮助` 命令
* 增加 `#更新胡桃面板` 命令获取单个角色面板数据每天可更新5次 * 增加 `#更新胡桃面板` 命令获取单个角色面板数据每天可更新5次
@ -276,15 +275,15 @@
# 1.2.0 # 1.2.0
* `#角色面板` 增加伤害计算功能 * `#角色面板` 增加伤害计算功能
* 目前支持角色:雷神、胡桃、魈、神子、甘雨 * 目前支持角色:雷神、胡桃、魈、神子、甘雨
* 可通过 `#怪物等级85` 命令设定怪物等级,以获得更准确的计算结果 * 可通过 `#怪物等级85` 命令设定怪物等级,以获得更准确的计算结果
* 计算伤害为满Buff情况后续会出更详细的Buff及计算展示 * 计算伤害为满Buff情况后续会出更详细的Buff及计算展示
* `#获取游戏角色详情`命令在服务侧增加基于UID的天频度限制 * `#获取游戏角色详情`命令在服务侧增加基于UID的天频度限制
* 增加 `#喵喵更新` 功能 * 增加 `#喵喵更新` 功能
* 感谢 @碎月 @清秋 的代码支持 * 感谢 @碎月 @清秋 的代码支持
* 若更新成功会重启Yunzai需要Yunzai以 npm run start 模式启动 * 若更新成功会重启Yunzai需要Yunzai以 npm run start 模式启动
* 尚未经充分测试,请有一定容错能力的勇士尝试 * 尚未经充分测试,请有一定容错能力的勇士尝试
* 增加 `#喵喵版本`命令查询版本信息 * 增加 `#喵喵版本`命令查询版本信息
# 1.1.0 # 1.1.0

View File

@ -43,7 +43,7 @@ export async function profileArtis (e) {
return await Common.render('character/artis-mark', { return await Common.render('character/artis-mark', {
uid, uid,
elem: char.elem, elem: char.elem,
splash: char.getImgs(profile.costume).splash, splash: char.getImgs(profile.costume).splash0,
data: profile, data: profile,
costume: profile.costume ? '2' : '', costume: profile.costume ? '2' : '',
artisDetail, artisDetail,

View File

@ -96,7 +96,6 @@ export async function renderProfile (e, char, mode = 'profile', params = {}) {
let artisDetail = profile.getArtisMark() let artisDetail = profile.getArtisMark()
let artisKeyTitle = ProfileArtis.getArtisKeyTitle() let artisKeyTitle = ProfileArtis.getArtisKeyTitle()
let imgs = char.getImgs(profile.costume) let imgs = char.getImgs(profile.costume)
imgs.img = imgs.isRandom ? imgs.randomImg.path + imgs.randomImg.urls[lodash.random(0, imgs.randomImg.urls.length - 1)] : imgs.splash
// 渲染图像 // 渲染图像
return await Common.render('character/profile-detail', { return await Common.render('character/profile-detail', {
save_id: uid, save_id: uid,

View File

@ -38,7 +38,7 @@ const ProfileChange = {
return false return false
} }
msg = msg.toLowerCase().replace(/uid ?:? ?/, '') msg = msg.toLowerCase().replace(/uid ?:? ?/, '')
let regRet = /^#*(\d{9})?(.+?)(详细|详情|面板|面版|圣遗物|伤害[1-7]?|换)\s*(\d{9})?(.+)/.exec(msg) let regRet = /^#*(\d{9})?(.+?)(详细|详情|面板|面版|圣遗物|伤害[1-7]?)?\s*(\d{9})?[变换改](.+)/.exec(msg)
if (!regRet || !regRet[2]) { if (!regRet || !regRet[2]) {
return false return false
} }

View File

@ -197,15 +197,28 @@ class Character extends Base {
} }
let costumeCfg = [this.checkCostume(costume[0]) ? '2' : '', costume[1] || 'normal'] let costumeCfg = [this.checkCostume(costume[0]) ? '2' : '', costume[1] || 'normal']
let cacheId = `costume${costumeCfg.join('')}` let cacheId = `costume${costume[0]}`
if (!this._imgs) { if (!this._imgs) {
this._imgs = {} this._imgs = {}
} }
if (this._imgs[cacheId]) { if (!this._imgs[cacheId]) {
return this._imgs[cacheId] this._imgs[cacheId] = CharImg.getImgs(this.name, costumeCfg, this.isTraveler ? this.elem : '', this.source === 'amber' ? 'png' : 'webp')
} }
this._imgs[cacheId] = CharImg.getImgs(this.name, costumeCfg, this.isTraveler ? this.elem : '', this.source === 'amber' ? 'png' : 'webp') let ret = this._imgs[cacheId]
return this._imgs[cacheId] let nPath = `meta/character/${this.name}`
if (costumeCfg[1] === 'super') {
ret.splash0 = CharImg.getRandomImg(
[`profile/super-character/${this.name}`, `profile/normal-character/${this.name}`],
[`${nPath}/imgs/splash0.webp`, `${nPath}/imgs/splash${costumeCfg[0]}.webp`, `/${nPath}/imgs/splash.webp`]
)
} else {
ret.splash0 = CharImg.getRandomImg(
[`profile/normal-character/${this.name}`],
[`${nPath}/imgs/splash${costumeCfg[0]}.webp`, `/${nPath}/imgs/splash.webp`]
)
}
return ret
} }
// 获取详情数据 // 获取详情数据

View File

@ -5,6 +5,7 @@ import fs from 'fs'
import lodash from 'lodash' import lodash from 'lodash'
import sizeOf from 'image-size' import sizeOf from 'image-size'
const rPath = `${process.cwd()}/plugins/miao-plugin/resources`
const CharImg = { const CharImg = {
// 获取角色的插画 // 获取角色的插画
@ -53,6 +54,33 @@ const CharImg = {
return ret return ret
}, },
getRandomImg (imgPaths, defImgs = []) {
for (let imgPath of imgPaths) {
let ret = []
for (let type of ['webp', 'png']) {
if (fs.existsSync(`${rPath}/${imgPath}.${type}`)) {
ret.push(imgPath + '.webp')
}
}
if (fs.existsSync(`${rPath}/${imgPath}`)) {
let imgs = fs.readdirSync(`${rPath}/${imgPath}`).filter((file) => {
return /\.(png|webp)$/.test(file)
})
for (let img of imgs) {
ret.push(`${imgPath}/${img}`)
}
}
if (ret.length > 0) {
return lodash.sample(ret)
}
}
for (let defImg of defImgs) {
if (fs.existsSync(`${rPath}/${defImg}`)) {
return defImg
}
}
},
// 获取角色的图像资源数据 // 获取角色的图像资源数据
getImgs (name, costumeCfg = '', travelerElem = '', fileType = 'webp') { getImgs (name, costumeCfg = '', travelerElem = '', fileType = 'webp') {
if (!lodash.isArray(costumeCfg)) { if (!lodash.isArray(costumeCfg)) {
@ -62,7 +90,6 @@ const CharImg = {
if (!['空', '荧', '旅行者'].includes(name)) { if (!['空', '荧', '旅行者'].includes(name)) {
travelerElem = '' travelerElem = ''
} }
const rPath = `${process.cwd()}/plugins/miao-plugin/resources`
const nPath = `/meta/character/${name}/` const nPath = `/meta/character/${name}/`
const tPath = `/meta/character/旅行者/${travelerElem}/` const tPath = `/meta/character/旅行者/${travelerElem}/`
let add = (key, path, path2) => { let add = (key, path, path2) => {
@ -78,31 +105,8 @@ const CharImg = {
add('face', 'imgs/face', `imgs/face${costumeCfg[0]}`) add('face', 'imgs/face', `imgs/face${costumeCfg[0]}`)
add('side', 'imgs/side', `imgs/side${costumeCfg[0]}`) add('side', 'imgs/side', `imgs/side${costumeCfg[0]}`)
add('gacha', 'imgs/gacha') add('gacha', 'imgs/gacha')
// 随机角色面板图 add('splash', 'imgs/splash', `imgs/splash${costumeCfg[0]}`)
imgs.isRandom = false
let randomMode = true // 随机模式开关
let randomImgPath = `${rPath}/profile/randomMode-character/${name}/`
if (randomMode && fs.existsSync(randomImgPath)) {
let imgUrls = fs.readdirSync(randomImgPath).filter((fileUrl) => {
return fileUrl.includes('.webp')
})
if (imgUrls.length != 0) {
imgs.randomImg = {}
imgs.randomImg.path = `profile/randomMode-character/${name}/`
imgs.randomImg.urls = imgUrls
imgs.isRandom = true
}
}
// 检查彩蛋自定义 // 检查彩蛋自定义
if (costumeCfg[1] === 'super' && fs.existsSync(`${rPath}/profile/super-character/${name}.webp`)) {
imgs.splash = `profile/super-character/${name}.webp`
} else if (costumeCfg[1] === 'super' && fs.existsSync(`${rPath}/${nPath}/imgs/splash0.webp`)) {
imgs.splash = `${nPath}imgs/splash0.webp`
} else if (fs.existsSync(`${rPath}/profile/normal-character/${name}.webp`)) {
imgs.splash = `profile/normal-character/${name}.webp`
} else {
add('splash', 'imgs/splash', `imgs/splash${costumeCfg[0]}`)
}
tAdd('card', 'imgs/card') tAdd('card', 'imgs/card')
tAdd('banner', 'imgs/banner') tAdd('banner', 'imgs/banner')
for (let i = 1; i <= 6; i++) { for (let i = 1; i <= 6; i++) {

View File

@ -14,7 +14,7 @@ const CharArtis = {
let def = function (attrWeight) { let def = function (attrWeight) {
let title = [] let title = []
let weight = lodash.extend({}, attrWeight || usefulAttr[char.name] || { atk: 75, cpct: 100, cdmg: 100 }) let weight = lodash.extend({}, attrWeight || usefulAttr[char.name] || { atk: 75, cpct: 100, cdmg: 100, dmg: 100 })
let check = (key, max = 75, maxPlus = 75, isWeapon = true) => { let check = (key, max = 75, maxPlus = 75, isWeapon = true) => {
let original = weight[key] || 0 let original = weight[key] || 0
if (original < max) { if (original < max) {

View File

@ -11,7 +11,7 @@
{{block 'main'}} {{block 'main'}}
<div class="basic"> <div class="basic">
<div class="main-pic" <div class="main-pic"
style="background-image:url({{_res_path}}{{imgs.img}})"></div> style="background-image:url({{_res_path}}{{imgs.splash0}})"></div>
<div class="detail"> <div class="detail">
<div class="char-name">{{data.name}}</div> <div class="char-name">{{data.name}}</div>
<div class="char-lv">UID {{uid}} - Lv.{{data.level}} <div class="char-lv">UID {{uid}} - Lv.{{data.level}}

View File

@ -9,10 +9,10 @@ body {
color: #1e1f20; color: #1e1f20;
transform: scale(1.3); transform: scale(1.3);
transform-origin: 0 0; transform-origin: 0 0;
width: 520px; width: 600px;
} }
.container { .container {
width: 520px; width: 600px;
padding: 10px 0 10px 0; padding: 10px 0 10px 0;
background-size: 100% 100%; background-size: 100% 100%;
} }

View File

@ -14,11 +14,11 @@ body {
color: #1e1f20; color: #1e1f20;
transform: scale(1.3); transform: scale(1.3);
transform-origin: 0 0; transform-origin: 0 0;
width: 520px; width: 600px;
} }
.container { .container {
width: 520px; width: 600px;
padding: 10px 0 10px 0; padding: 10px 0 10px 0;
background-size: 100% 100%; background-size: 100% 100%;

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 731 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 476 KiB