mirror of
https://github.com/yoimiya-kokomi/miao-plugin.git
synced 2024-11-16 04:35:42 +00:00
* 增加 #圣遗物列表
命令,对已经获取面板的所有角色圣遗物进行评分,并展示高评分的圣遗物列表
* 增加 `#面板角色列表` 命令,查看已经获取面板的角色列表 * 公子面板增加EQ蒸发伤害计算 * 一些bugfix
This commit is contained in:
parent
3597ac5277
commit
23f14b028f
@ -5,7 +5,9 @@
|
|||||||
* `#角色面板` 功能升级
|
* `#角色面板` 功能升级
|
||||||
* 优化无角色面板数据时的引导
|
* 优化无角色面板数据时的引导
|
||||||
* 优化返回的图像格式及分辨率,平衡响应速度及显示效果
|
* 优化返回的图像格式及分辨率,平衡响应速度及显示效果
|
||||||
* 添加 `#胡桃面板更新` 命令,获取单个角色面板数据,每天可更新5次
|
* 增加 `#圣遗物列表` 命令,对已经获取面板的所有角色圣遗物进行评分,并展示高评分的圣遗物列表
|
||||||
|
* 增加 `#面板角色列表` 命令,查看已经获取面板的角色列表
|
||||||
|
* 增加 `#胡桃面板更新` 命令,获取单个角色面板数据,每天可更新5次
|
||||||
* 更改 `#全部面板更新` 命令,获取角色展柜全部8个角色,每天可更新3次
|
* 更改 `#全部面板更新` 命令,获取角色展柜全部8个角色,每天可更新3次
|
||||||
|
|
||||||
|
|
||||||
|
@ -63,13 +63,15 @@ export async function character(e, { render, User }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let mode = 'card';
|
let mode = 'card';
|
||||||
|
let name = msg.replace(/#|老婆|老公|[1|2|5][0-9]{8}/g, "").trim();
|
||||||
|
|
||||||
if (/(详情|详细|面板|面版)$/.test(msg)) {
|
if (/(详情|详细|面板|面版)$/.test(msg)) {
|
||||||
mode = 'profile';
|
mode = 'profile';
|
||||||
} else if (/(详情|详细|面板|面版)更新$/.test(msg)) {
|
name = name.replace(/(详情|详细|面板|面版)/, "").trim();
|
||||||
|
} else if (/(详情|详细|面板|面版)更新/.test(msg)) {
|
||||||
mode = "refresh";
|
mode = "refresh";
|
||||||
|
name = name.replace(/(详情|详细|面板|面版)更新/, "").trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
let name = msg.replace(/#|老婆|老公|详情|详细|面板|面版|更新|[1|2|5][0-9]{8}/g, "").trim();
|
|
||||||
let char = Character.get(name);
|
let char = Character.get(name);
|
||||||
|
|
||||||
if (!char) {
|
if (!char) {
|
||||||
@ -713,4 +715,93 @@ export async function enemyLv(e) {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getArtis(e, { render }) {
|
||||||
|
let MysApi = await e.getMysApi({
|
||||||
|
auth: "cookie",
|
||||||
|
targetType: "self",
|
||||||
|
cookieType: "self",
|
||||||
|
actionName: "查询角色天赋命座等信息"
|
||||||
|
});
|
||||||
|
if (!MysApi) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
let selfUser = e.selfUser,
|
||||||
|
uid = selfUser.uid;
|
||||||
|
|
||||||
|
let artis = [],
|
||||||
|
profiles = Profile.getAll(uid) || {};
|
||||||
|
|
||||||
|
if (!profiles || profiles.length === 0) {
|
||||||
|
e.reply("暂无角色圣遗物详情");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
lodash.forEach(profiles || [], (ds) => {
|
||||||
|
let name = ds.name;
|
||||||
|
if (!name) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let { mark: usefulMark } = Reliquaries.getUseful(name);
|
||||||
|
/* 处理圣遗物 */
|
||||||
|
if (ds.artis) {
|
||||||
|
lodash.forEach(ds.artis, (arti) => {
|
||||||
|
let mark = Reliquaries.getMark(name, arti.attrs);
|
||||||
|
let maxMark = Reliquaries.getMaxMark(name, arti.main[0] || "");
|
||||||
|
arti.mark = Format.comma(mark, 1);
|
||||||
|
arti._mark = mark;
|
||||||
|
arti.markType = Reliquaries.getMarkScore(mark, maxMark);
|
||||||
|
arti.main = Profile.formatArti(arti.main);
|
||||||
|
arti.attrs = Profile.formatArti(arti.attrs);
|
||||||
|
arti.usefulMark = usefulMark;
|
||||||
|
arti.avatar = name;
|
||||||
|
artis.push(arti);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
artis = lodash.sortBy(artis, "_mark");
|
||||||
|
artis = artis.reverse();
|
||||||
|
artis = artis.slice(0, 20);
|
||||||
|
|
||||||
|
|
||||||
|
let base64 = await render("character", "artis", {
|
||||||
|
save_id: uid,
|
||||||
|
uid: uid,
|
||||||
|
artis,
|
||||||
|
cfgScale: Cfg.scale(1.4)
|
||||||
|
});
|
||||||
|
if (base64) {
|
||||||
|
e.reply(segment.image(`base64://${base64}`));
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getProfileAll(e) {
|
||||||
|
let MysApi = await e.getMysApi({
|
||||||
|
auth: "cookie",
|
||||||
|
targetType: "self",
|
||||||
|
cookieType: "self",
|
||||||
|
actionName: "查询角色天赋命座等信息"
|
||||||
|
});
|
||||||
|
if (!MysApi) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
let uid = MysApi.selfUser.uid;
|
||||||
|
|
||||||
|
let profiles = Profile.getAll(uid) || {};
|
||||||
|
if (profiles.length === 0) {
|
||||||
|
e.reply("尚未获取任何角色数据");
|
||||||
|
} else {
|
||||||
|
let chars = [];
|
||||||
|
lodash.forEach(profiles, (ds) => {
|
||||||
|
ds.name && chars.push(ds.name)
|
||||||
|
});
|
||||||
|
e.reply("当前已获取面板角色: " + chars.join(", "));
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
|
||||||
}
|
}
|
@ -381,7 +381,8 @@ let Calc = {
|
|||||||
// 反应区
|
// 反应区
|
||||||
let eleNum = 1;
|
let eleNum = 1;
|
||||||
if (ele) {
|
if (ele) {
|
||||||
eleNum = { zf: 1.5, rh: 2 }[ele] || 1;
|
// todo 更详细
|
||||||
|
eleNum = (attr.element === "水" ? { zf: 2 } : { zf: 1.5, rh: 2 })[ele] || 1;
|
||||||
if (attr[ele]) {
|
if (attr[ele]) {
|
||||||
eleNum = eleNum * (1 + attr[ele] / 100);
|
eleNum = eleNum * (1 + attr[ele] / 100);
|
||||||
}
|
}
|
||||||
|
14
index.js
14
index.js
@ -1,4 +1,4 @@
|
|||||||
import { character, getProfile, wife, wifeReg, enemyLv } from "./apps/character.js";
|
import { character, getProfile, wife, wifeReg, enemyLv, getArtis, getProfileAll } from "./apps/character.js";
|
||||||
import { consStat, abyssPct } from "./apps/stat.js";
|
import { consStat, abyssPct } from "./apps/stat.js";
|
||||||
import { wiki } from "./apps/wiki.js";
|
import { wiki } from "./apps/wiki.js";
|
||||||
import { help, versionInfo } from "./apps/help.js";
|
import { help, versionInfo } from "./apps/help.js";
|
||||||
@ -19,7 +19,9 @@ export {
|
|||||||
help,
|
help,
|
||||||
versionInfo,
|
versionInfo,
|
||||||
getProfile,
|
getProfile,
|
||||||
enemyLv
|
enemyLv,
|
||||||
|
getArtis,
|
||||||
|
getProfileAll
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -28,6 +30,14 @@ let rule = {
|
|||||||
reg: "^#(喵喵)?(.*)(详情|详细|面板|面版)?(更新)?$",
|
reg: "^#(喵喵)?(.*)(详情|详细|面板|面版)?(更新)?$",
|
||||||
describe: "【#角色】角色详情",
|
describe: "【#角色】角色详情",
|
||||||
},
|
},
|
||||||
|
getArtis: {
|
||||||
|
reg: "#圣遗物列表",
|
||||||
|
describe: "【#角色】圣遗物列表",
|
||||||
|
},
|
||||||
|
getProfileAll: {
|
||||||
|
reg: "#面板角色列表",
|
||||||
|
describe: "【#角色】查看当前已获取面板数据的角色列表",
|
||||||
|
},
|
||||||
wife: {
|
wife: {
|
||||||
reg: wifeReg,
|
reg: wifeReg,
|
||||||
describe: "【#角色】#老公 #老婆 查询",
|
describe: "【#角色】#老公 #老婆 查询",
|
||||||
|
33
resources/character/artis.css
Normal file
33
resources/character/artis.css
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
.container {
|
||||||
|
width: 790px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis {
|
||||||
|
width: 790px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .item {
|
||||||
|
height: 205px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .item .avatar {
|
||||||
|
position: absolute;
|
||||||
|
left: 32px;
|
||||||
|
top: 26px;
|
||||||
|
width: 38px;
|
||||||
|
height: 38px;
|
||||||
|
border-radius: 50%;
|
||||||
|
overflow: hidden;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .item .arti-icon img {
|
||||||
|
width: 52px;
|
||||||
|
height: 52px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.artis .item .avatar img {
|
||||||
|
max-width: 100%;
|
||||||
|
max-height: 100%;
|
||||||
|
}
|
43
resources/character/artis.html
Normal file
43
resources/character/artis.html
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
|
||||||
|
<link rel="shortcut icon" href="#"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/common/common.css"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/character/detail.css"/>
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{_res_path}}/character/artis.css"/>
|
||||||
|
</head>
|
||||||
|
<body {{cfgScale}} class="elem_geo char-{{name}}">
|
||||||
|
<div class="container" id="container">
|
||||||
|
<div class="artis">
|
||||||
|
{{each artis ds}}
|
||||||
|
<div class="item arti">
|
||||||
|
{{if ds.name && ds.main && ds.main[0] && ds.main[0]!="undefined"}}
|
||||||
|
<div class="avatar">
|
||||||
|
<img src="{{_res_path}}meta/character/{{ds.avatar}}/side.png" onerror="whenError(this)"/>
|
||||||
|
</div>
|
||||||
|
<div class="arti-icon">
|
||||||
|
<img src="{{_sys_res_path}}/genshin/logo/reliquaries/{{ds.name}}.png"/>
|
||||||
|
</div>
|
||||||
|
<div class="head">
|
||||||
|
<strong>{{ds.name}}</strong>
|
||||||
|
<span class="mark mark-{{ds.markType}}"><span>{{ds.mark}}分</span> - {{ds.markType}}</span>
|
||||||
|
</div>
|
||||||
|
<ul class="detail">
|
||||||
|
<li class="arti-main"><span class="title">{{ds.main[0]}}</span><span class="val">+{{ds.main[1]}}</span></li>
|
||||||
|
{{each ds.attrs attr}}
|
||||||
|
{{if attr[0]}}
|
||||||
|
<li class="{{ds.usefulMark[attr[0]] ? `useful`:`nouse`}}"><span class="title">{{attr[0]}}</span><span
|
||||||
|
class="val">+{{attr[1]}}</span></li>
|
||||||
|
{{/if}}
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
{{/each}}
|
||||||
|
</div>
|
||||||
|
<div class="copyright">Created By Yunzai-Bot & Miao-Plugin</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
<script type="text/javascript"></script>
|
||||||
|
</html>
|
@ -420,7 +420,7 @@ body {
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.artis .item img {
|
.artis .item .arti-icon img {
|
||||||
width: 60px;
|
width: 60px;
|
||||||
height: 60px;
|
height: 60px;
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,12 @@ export const details = [{
|
|||||||
},{
|
},{
|
||||||
title: "开E后Q伤害",
|
title: "开E后Q伤害",
|
||||||
dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害·近战'], 'q')
|
dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害·近战'], 'q')
|
||||||
|
},{
|
||||||
|
title: "开E后Q蒸发",
|
||||||
|
dmg: ({ talent }, dmg) => dmg(talent.q['技能伤害·近战'], 'q','zf')
|
||||||
}];
|
}];
|
||||||
|
|
||||||
export const buffs = [];
|
export const buffs = [{
|
||||||
|
title: "元素精通:蒸发伤害提高[zf]%",
|
||||||
|
mastery: "zf"
|
||||||
|
}];
|
Loading…
Reference in New Issue
Block a user