增加`星穹铁道记录`获取以及优化ck绑定逻辑支持同时绑定星穹铁道
|
@ -356,6 +356,9 @@ class PluginsLoader {
|
|||
case 'text':
|
||||
/** 中文#转为英文 */
|
||||
val.text = val.text.replace(/#|井/g, '#').trim()
|
||||
if(/星铁|崩坏星穹铁道|铁道|星轨|星穹铁道|\/common\//.test(val.text)){
|
||||
e.isSr = true
|
||||
}
|
||||
if (e.msg) {
|
||||
e.msg += val.text
|
||||
} else {
|
||||
|
|
|
@ -32,7 +32,7 @@ export class gcLog extends plugin {
|
|||
fnc: 'logJson'
|
||||
},
|
||||
{
|
||||
reg: '^#*(抽卡|抽奖|角色|武器|常驻|up)池*(记录|祈愿|分析)$',
|
||||
reg: '^#*(原神|星铁|崩坏星穹铁道|铁道)?(抽卡|抽奖|角色|武器|常驻|up|新手|光锥)池*(记录|祈愿|分析)$',
|
||||
fnc: 'getLog'
|
||||
},
|
||||
{
|
||||
|
@ -48,7 +48,7 @@ export class gcLog extends plugin {
|
|||
fnc: 'helpPort'
|
||||
},
|
||||
{
|
||||
reg: '^#*(抽卡|抽奖|角色|武器|常驻|up)池*统计$',
|
||||
reg: '^#*(原神|星铁|崩坏星穹铁道|铁道)?(抽卡|抽奖|角色|武器|常驻|up|新手|光锥)池*统计$',
|
||||
fnc: 'logCount'
|
||||
}
|
||||
]
|
||||
|
@ -58,9 +58,11 @@ export class gcLog extends plugin {
|
|||
}
|
||||
|
||||
async init () {
|
||||
let file = './data/gachaJson'
|
||||
if (!fs.existsSync(file)) {
|
||||
fs.mkdirSync(file)
|
||||
let file = ['./data/gachaJson','./data/srJson','./temp/html/StarRail']
|
||||
for(let i of file){
|
||||
if (!fs.existsSync(i)) {
|
||||
fs.mkdirSync(i)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -95,8 +97,12 @@ export class gcLog extends plugin {
|
|||
|
||||
let data = await new GachaLog(this.e).logUrl()
|
||||
if (!data) return
|
||||
|
||||
let img = await puppeteer.screenshot('gachaLog', data)
|
||||
let url='gachaLog'
|
||||
if(this.e.isSr){
|
||||
data.tplFile='./plugins/genshin/resources/StarRail/html/gachaLog/gachaLog.html'
|
||||
url='StarRail/gachaLog'
|
||||
}
|
||||
let img = await puppeteer.screenshot(url, data)
|
||||
if (img) await this.reply(img)
|
||||
}
|
||||
|
||||
|
@ -118,8 +124,12 @@ export class gcLog extends plugin {
|
|||
if (!data) return false
|
||||
|
||||
if (typeof data != 'object') return
|
||||
|
||||
let img = await puppeteer.screenshot('gachaLog', data)
|
||||
let url='gachaLog'
|
||||
if(this.e.isSr){
|
||||
data.tplFile='./plugins/genshin/resources/StarRail/html/gachaLog/gachaLog.html'
|
||||
url='StarRail/gachaLog'
|
||||
}
|
||||
let img = await puppeteer.screenshot(url, data)
|
||||
if (img) await this.reply(img)
|
||||
}
|
||||
|
||||
|
@ -127,8 +137,12 @@ export class gcLog extends plugin {
|
|||
async getLog () {
|
||||
let data = await new GachaLog(this.e).getLogData()
|
||||
if (!data) return
|
||||
|
||||
let img = await puppeteer.screenshot('gachaLog', data)
|
||||
let url='gachaLog'
|
||||
if(this.e.isSr){
|
||||
data.tplFile='./plugins/genshin/resources/StarRail/html/gachaLog/gachaLog.html'
|
||||
url='StarRail/gachaLog'
|
||||
}
|
||||
let img = await puppeteer.screenshot(url, data)
|
||||
if (img) await this.reply(img)
|
||||
}
|
||||
|
||||
|
@ -139,7 +153,7 @@ export class gcLog extends plugin {
|
|||
return
|
||||
}
|
||||
|
||||
let friend = this.e.bot.fl.get(Number(this.e.user_id))
|
||||
let friend = Bot.fl.get(Number(this.e.user_id))
|
||||
if (!friend) {
|
||||
await this.reply('无法发送文件,请先添加好友')
|
||||
return
|
||||
|
@ -201,8 +215,12 @@ export class gcLog extends plugin {
|
|||
async logCount () {
|
||||
let data = await new LogCount(this.e).count()
|
||||
if (!data) return
|
||||
|
||||
let img = await puppeteer.screenshot('logCount', data)
|
||||
let url='logCount'
|
||||
if(this.e.isSr){
|
||||
data.tplFile='./plugins/genshin/resources/StarRail/html/logCount/logCount.html'
|
||||
url='StarRail/logCount'
|
||||
}
|
||||
let img = await puppeteer.screenshot(url, data)
|
||||
if (img) await this.reply(img)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
- from: '2020-4-26 08:00:00'
|
||||
to: '2050-09-15 17:59:59'
|
||||
five:
|
||||
- 常驻池
|
||||
four: []
|
||||
name: 常驻池
|
|
@ -0,0 +1,6 @@
|
|||
- from: '2020-09-15 06:00:00'
|
||||
to: '2050-09-15 17:59:59'
|
||||
five:
|
||||
- 新手池
|
||||
four: []
|
||||
name: 新手池
|
|
@ -0,0 +1,9 @@
|
|||
- from: '2023-04-26 08:00:00'
|
||||
to: '2023-05-17 16:00:00'
|
||||
five:
|
||||
- 希儿
|
||||
four:
|
||||
- 娜塔莎
|
||||
- 虎克
|
||||
- 佩拉
|
||||
name: 蝶立锋锷
|
|
@ -0,0 +1,9 @@
|
|||
- from: '2023-04-26 08:00:00'
|
||||
to: '2023-05-17 16:00:00'
|
||||
five:
|
||||
- 于夜色中
|
||||
four:
|
||||
- 一场术后对话
|
||||
- 晚安与睡颜
|
||||
- 鼬鼠党欢迎你
|
||||
name: 流光定影
|
|
@ -0,0 +1,6 @@
|
|||
- from: '2023-04-26 08:00:00'
|
||||
to: '2050-09-15 17:59:59'
|
||||
five:
|
||||
- 新手池
|
||||
four: []
|
||||
name: 新手池
|
|
@ -1,3 +1,13 @@
|
|||
- from: '2023-05-02 18:00:00'
|
||||
to: '2023-05-23 14:59:59'
|
||||
five:
|
||||
- 白术
|
||||
- 甘雨
|
||||
four:
|
||||
- 卡维
|
||||
- 坎蒂丝
|
||||
- 菲谢尔
|
||||
name: 心珠循琅|浮生孰来
|
||||
- from: '2023-04-12 06:00:00'
|
||||
to: '2023-05-02 17:59:59'
|
||||
five:
|
||||
|
|
|
@ -1,3 +1,15 @@
|
|||
- from: '2023-05-02 18:00:00'
|
||||
to: '2023-05-23 14:59:59'
|
||||
five:
|
||||
- 碧落之珑
|
||||
- 阿莫斯之弓
|
||||
four:
|
||||
- 玛海菈的水色
|
||||
- 流浪的晚星
|
||||
- 匣里龙吟
|
||||
- 西风长枪
|
||||
- 祭礼弓
|
||||
name: 神铸赋形
|
||||
- from: '2023-04-12 06:00:00'
|
||||
to: '2023-05-02 17:59:59'
|
||||
five:
|
||||
|
|
|
@ -21,6 +21,18 @@ export default class GachaLog extends base {
|
|||
{ type: 302, typeName: '武器' },
|
||||
{ type: 200, typeName: '常驻' }
|
||||
]
|
||||
if (e.isSr) {
|
||||
/** 绑定的uid */
|
||||
this.uidKey = `Yz:srJson:mys:qq-uid:${this.userId}`
|
||||
|
||||
this.path = `./data/srJson/${this.e.user_id}/`
|
||||
this.pool = [
|
||||
{ type: 11, typeName: '角色' },
|
||||
{ type: 12, typeName: '光锥' },
|
||||
{ type: 1, typeName: '常驻' },
|
||||
{ type: 2, typeName: '新手' }
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
async logUrl() {
|
||||
|
@ -175,12 +187,12 @@ export default class GachaLog extends base {
|
|||
async logApi(param) {
|
||||
// 调用一次接口判断链接是否正确
|
||||
let logUrl = 'https://hk4e-api.mihoyo.com/event/gacha_info/api/getGachaLog?'
|
||||
|
||||
/** 国际服 */
|
||||
if (!['cn_gf01', 'cn_qd01'].includes(param.region)) {
|
||||
logUrl = 'https://hk4e-api-os.mihoyo.com/event/gacha_info/api/getGachaLog?'
|
||||
}
|
||||
|
||||
|
||||
let logParam = new URLSearchParams({
|
||||
authkey_ver: 1,
|
||||
lang: 'zh-cn', // 只支持简体中文
|
||||
|
@ -190,7 +202,22 @@ export default class GachaLog extends base {
|
|||
end_id: 0,
|
||||
...param
|
||||
}).toString()
|
||||
|
||||
if (this.e.isSr) {
|
||||
logUrl = 'https://api-takumi.mihoyo.com/common/gacha_record/api/getGachaLog?'
|
||||
if (!['prod_gf_cn', 'prod_qd_cn'].includes(param.region)) {
|
||||
logUrl = 'https://api-os-takumi.mihoyo.com/common/gacha_record/api/getGachaLog?'
|
||||
}
|
||||
logParam = new URLSearchParams({
|
||||
authkey_ver: 1,
|
||||
lang: 'zh-cn', // 只支持简体中文
|
||||
gacha_type: 11,
|
||||
page: 1,
|
||||
size: 20,
|
||||
game_biz: 'hkrpg_cn',
|
||||
end_id: 0,
|
||||
...param
|
||||
}).toString()
|
||||
}
|
||||
let res = await fetch(logUrl + logParam).catch((err) => {
|
||||
logger.error(`[获取抽卡记录失败] ${err}`)
|
||||
})
|
||||
|
@ -349,24 +376,32 @@ export default class GachaLog extends base {
|
|||
}
|
||||
|
||||
getPool() {
|
||||
let msg = this.e.msg.replace(/#|抽卡|记录|祈愿|分析|池/g, '')
|
||||
this.type = 301
|
||||
let msg = this.e.msg.replace(/#|抽卡|记录|祈愿|分析|池|原神|星铁|崩坏星穹铁道|铁道/g, '')
|
||||
this.type = this.e.isSr ? 11 : 301
|
||||
this.typeName = '角色'
|
||||
switch (msg) {
|
||||
case 'up':
|
||||
case '抽卡':
|
||||
case '角色':
|
||||
case '抽奖':
|
||||
this.type = 301
|
||||
this.type = this.e.isSr ? 11 : 301
|
||||
this.typeName = '角色'
|
||||
break
|
||||
case '常驻':
|
||||
this.type = 200
|
||||
this.type = this.e.isSr ? 1 : 200
|
||||
this.typeName = '常驻'
|
||||
break
|
||||
case '武器':
|
||||
this.type = 302
|
||||
this.typeName = '武器'
|
||||
this.type = this.e.isSr ? 12 : 302
|
||||
this.typeName = this.e.isSr ? '光锥' : '武器'
|
||||
break
|
||||
case "光锥":
|
||||
this.type = 12
|
||||
this.typeName = '光锥'
|
||||
break
|
||||
case "新手":
|
||||
this.type = this.e.isSr ? 2 : 100
|
||||
this.typeName = '新手'
|
||||
break
|
||||
}
|
||||
}
|
||||
|
@ -394,7 +429,7 @@ export default class GachaLog extends base {
|
|||
/** 拿修改时间最后的uid */
|
||||
let uidArr = []
|
||||
for (let uid of logs) {
|
||||
let json = `${this.path}${uid}/301.json`
|
||||
let json = this?.e?.isSr ? `${this.path}${uid}/301.json` : `${this.path}${uid}/11.json`
|
||||
if (!fs.existsSync(json)) {
|
||||
continue
|
||||
}
|
||||
|
@ -450,7 +485,7 @@ export default class GachaLog extends base {
|
|||
} else {
|
||||
fourLog[val.name] = 1
|
||||
}
|
||||
if (val.item_type == '武器') {
|
||||
if (val.item_type == '武器' || val.item_type == '光锥') {
|
||||
weaponFourNum++
|
||||
}
|
||||
}
|
||||
|
@ -558,9 +593,8 @@ export default class GachaLog extends base {
|
|||
noWaiRate = (fiveNum - bigNum - wai) / (fiveNum - bigNum)
|
||||
noWaiRate = (noWaiRate * 100).toFixed(1)
|
||||
}
|
||||
|
||||
let firstTime = this.all[this.all.length - 1].time.substring(0, 16)
|
||||
let lastTime = this.all[0].time.substring(0, 16)
|
||||
let firstTime = this.all[this.all.length - 1]?.time.substring(0, 16)
|
||||
let lastTime = this.all[0]?.time.substring(0, 16)
|
||||
|
||||
return {
|
||||
allNum,
|
||||
|
@ -584,10 +618,9 @@ export default class GachaLog extends base {
|
|||
}
|
||||
|
||||
checkIsUp() {
|
||||
if (['莫娜', '七七', '迪卢克', '琴'].includes(this.role.name)) {
|
||||
if (['莫娜', '七七', '迪卢克', '琴', '姬子', '杰帕德', '彦卿', '白露', '瓦尔特', '克拉拉', '布洛妮娅'].includes(this.role.name)) {
|
||||
return false
|
||||
}
|
||||
|
||||
let role5join = {
|
||||
'刻晴': {
|
||||
start: '2021-02-17 18:00:00',
|
||||
|
@ -602,7 +635,6 @@ export default class GachaLog extends base {
|
|||
end: '2023-03-21 17:59:59'
|
||||
}
|
||||
}
|
||||
|
||||
if (lodash.keys(role5join).includes(this.role.name)) {
|
||||
let start = new Date(role5join[this.role.name].start).getTime()
|
||||
let end = new Date(role5join[this.role.name].end).getTime()
|
||||
|
@ -614,14 +646,14 @@ export default class GachaLog extends base {
|
|||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
/** 渲染数据 */
|
||||
randData(data) {
|
||||
let line = []
|
||||
if (this.type == 301) {
|
||||
let weapon = this.e.isSr ? '光锥' : '武器'
|
||||
if ([301, 11].includes(this.type)) {
|
||||
line = [[
|
||||
{ lable: '未出五星', num: data.noFiveNum, unit: '抽' },
|
||||
{ lable: '五星', num: data.fiveNum, unit: '个' },
|
||||
|
@ -631,16 +663,16 @@ export default class GachaLog extends base {
|
|||
{ lable: '未出四星', num: data.noFourNum, unit: '抽' },
|
||||
{ lable: '五星常驻', num: data.wai, unit: '个' },
|
||||
{ lable: 'UP平均', num: data.isvalidNum, unit: '抽' },
|
||||
{ lable: 'UP花费原石', num: data.upYs, unit: '' }
|
||||
{ lable: `UP花费${this?.e?.isSr ? '星琼' : '原石'}`, num: data.upYs, unit: '' }
|
||||
]]
|
||||
}
|
||||
// 常驻池
|
||||
if (this.type == 200) {
|
||||
if ([200, 1].includes(this.type)) {
|
||||
line = [[
|
||||
{ lable: '未出五星', num: data.noFiveNum, unit: '抽' },
|
||||
{ lable: '五星', num: data.fiveNum, unit: '个' },
|
||||
{ lable: '五星平均', num: data.fiveAvg, unit: '抽', color: data.fiveColor },
|
||||
{ lable: '五星武器', num: data.weaponNum, unit: '个' }
|
||||
{ lable: `五星${weapon}`, num: data.weaponNum, unit: '个' }
|
||||
], [
|
||||
{ lable: '未出四星', num: data.noFourNum, unit: '抽' },
|
||||
{ lable: '四星', num: data.fourNum, unit: '个' },
|
||||
|
@ -649,12 +681,26 @@ export default class GachaLog extends base {
|
|||
]]
|
||||
}
|
||||
// 武器池
|
||||
if (this.type == 302) {
|
||||
if ([302, 12].includes(this.type)) {
|
||||
line = [[
|
||||
{ lable: '未出五星', num: data.noFiveNum, unit: '抽' },
|
||||
{ lable: '五星', num: data.fiveNum, unit: '个' },
|
||||
{ lable: '五星平均', num: data.fiveAvg, unit: '抽', color: data.fiveColor },
|
||||
{ lable: '四星武器', num: data.weaponFourNum, unit: '个' }
|
||||
{ lable: `四星${weapon}`, num: data.weaponFourNum, unit: '个' }
|
||||
], [
|
||||
{ lable: '未出四星', num: data.noFourNum, unit: '抽' },
|
||||
{ lable: '四星', num: data.fourNum, unit: '个' },
|
||||
{ lable: '四星平均', num: data.fourAvg, unit: '抽' },
|
||||
{ lable: '四星最多', num: data.maxFour.num, unit: data.maxFour.name }
|
||||
]]
|
||||
}
|
||||
// 新手池
|
||||
if ([100, 2].includes(this.type)) {
|
||||
line = [[
|
||||
{ lable: '未出五星', num: data.noFiveNum, unit: '抽' },
|
||||
{ lable: '五星', num: data.fiveNum, unit: '个' },
|
||||
{ lable: '五星平均', num: data.fiveAvg, unit: '抽', color: data.fiveColor },
|
||||
{ lable: `五星${weapon}`, num: data.weaponNum, unit: '个' }
|
||||
], [
|
||||
{ lable: '未出四星', num: data.noFourNum, unit: '抽' },
|
||||
{ lable: '四星', num: data.fourNum, unit: '个' },
|
||||
|
@ -662,7 +708,6 @@ export default class GachaLog extends base {
|
|||
{ lable: '四星最多', num: data.maxFour.num, unit: data.maxFour.name }
|
||||
]]
|
||||
}
|
||||
|
||||
let hasMore = false
|
||||
if (this.e.isGroup && data.fiveLog.length > 48) {
|
||||
data.fiveLog = data.fiveLog.slice(0, 48)
|
||||
|
@ -689,17 +734,17 @@ export default class GachaLog extends base {
|
|||
switch (String(uid)[0]) {
|
||||
case '1':
|
||||
case '2':
|
||||
return 'cn_gf01' // 官服
|
||||
return this.e.isSr ? 'prod_gf_cn' : 'cn_gf01' // 官服
|
||||
case '5':
|
||||
return 'cn_qd01' // B服
|
||||
return this.e.isSr ? 'prod_qd_cn' : 'cn_qd01' // B服
|
||||
case '6':
|
||||
return 'os_usa' // 美服
|
||||
return this.e.isSr ? 'prod_official_usa' : 'os_usa' // 美服
|
||||
case '7':
|
||||
return 'os_euro' // 欧服
|
||||
return this.e.isSr ? 'prod_official_euro' : 'os_euro' // 欧服
|
||||
case '8':
|
||||
return 'os_asia' // 亚服
|
||||
return this.e.isSr ? 'prod_official_asia' : 'os_asia' // 亚服
|
||||
case '9':
|
||||
return 'os_cht' // 港澳台服
|
||||
return this.e.isSr ? 'prod_official_cht' : 'os_cht' // 港澳台服
|
||||
}
|
||||
return 'cn_gf01'
|
||||
}
|
||||
|
|
|
@ -25,6 +25,22 @@ export default class LogCount extends base {
|
|||
this.role5 = ['刻晴', '莫娜', '七七', '迪卢克', '琴', '提纳里', '迪希雅']
|
||||
/** 五星武器 */
|
||||
this.weapon5 = ['阿莫斯之弓', '天空之翼', '天空之卷', '天空之脊', '天空之傲', '天空之刃', '四风原典', '和璞鸢', '狼的末路', '风鹰剑']
|
||||
if (e.isSr) {
|
||||
/** 绑定的uid */
|
||||
this.uidKey = `Yz:srJson:mys:qq-uid:${this.userId}`
|
||||
|
||||
this.path = `./data/srJson/${this.e.user_id}/`
|
||||
this.pool = [
|
||||
{ type: 11, typeName: '角色' },
|
||||
{ type: 12, typeName: '光锥' },
|
||||
{ type: 1, typeName: '常驻' },
|
||||
{ type: 2, typeName: '新手' }
|
||||
]
|
||||
/** 五星角色 */
|
||||
this.role5 = ['姬子', '杰帕德', '彦卿', '白露', '瓦尔特', '克拉拉', '布洛妮娅']
|
||||
/** 五星武器 */
|
||||
this.weapon5 = ['银河铁道之夜', '无可取代的东西', '但战斗还未结束', '以世界之名', '制胜的瞬间', '如泥酣眠', '时节不居']
|
||||
}
|
||||
}
|
||||
|
||||
// 读取本地json
|
||||
|
@ -69,24 +85,32 @@ export default class LogCount extends base {
|
|||
}
|
||||
|
||||
getPool() {
|
||||
let msg = this.e.msg.replace(/#|抽卡|统计|池/g, '')
|
||||
this.type = 301
|
||||
let msg = this.e.msg.replace(/#|抽卡|记录|祈愿|分析|池|原神|星铁|崩坏星穹铁道|铁道|抽卡|统计|池/g, '')
|
||||
this.type = this.e.isSr?11:301
|
||||
this.typeName = '角色'
|
||||
switch (msg) {
|
||||
case 'up':
|
||||
case '抽卡':
|
||||
case '角色':
|
||||
case '抽奖':
|
||||
this.type = 301
|
||||
this.type = this.e.isSr ? 11 : 301
|
||||
this.typeName = '角色'
|
||||
break
|
||||
case '常驻':
|
||||
this.type = 200
|
||||
this.type = this.e.isSr ? 1 : 200
|
||||
this.typeName = '常驻'
|
||||
break
|
||||
case '武器':
|
||||
this.type = 302
|
||||
this.typeName = '武器'
|
||||
this.type = this.e.isSr ? 12 : 302
|
||||
this.typeName = this.e.isSr ? '光锥' : '武器'
|
||||
break
|
||||
case "光锥":
|
||||
this.type = 12
|
||||
this.typeName = '光锥'
|
||||
break
|
||||
case "新手":
|
||||
this.type = this.e.isSr? 2:100
|
||||
this.typeName = '新手'
|
||||
break
|
||||
}
|
||||
}
|
||||
|
@ -152,6 +176,7 @@ export default class LogCount extends base {
|
|||
/** 统计计算记录 */
|
||||
analyseHistory() {
|
||||
let all = this.readJson().list
|
||||
|
||||
all = all.reverse()
|
||||
|
||||
let poolCfg = [...this.getPoolCfg()].reverse()
|
||||
|
|
|
@ -15,6 +15,10 @@ export default class User extends base {
|
|||
|
||||
/** 多角色uid */
|
||||
this.allUid = []
|
||||
if (this.e.isSr) {
|
||||
/** 绑定的uid */
|
||||
this.uidKey = `Yz:srJson:mys:qq-uid:${this.userId}`
|
||||
}
|
||||
}
|
||||
|
||||
// 获取当前user实例
|
||||
|
@ -97,8 +101,12 @@ export default class User extends base {
|
|||
})
|
||||
}
|
||||
await this.e.reply(uidMsg.join('\n'))
|
||||
|
||||
let msg = '【#体力】查询当前树脂'
|
||||
let msg = ''
|
||||
this.region_name += lodash.map(this.allUid, 'region_name').join(',')
|
||||
if (/天空岛|世界树/.test(this.region_name)) {
|
||||
msg += '原神模块支持:\n【#体力】查询当前树脂'
|
||||
msg += '\n【#签到】米游社原神自动签到'
|
||||
msg += '\n【#关闭签到】开启或关闭原神自动签到'
|
||||
msg += '\n【#原石】查看原石札记'
|
||||
msg += '\n【#原石统计】原石统计数据'
|
||||
msg += '\n【#练度统计】技能统计列表'
|
||||
|
@ -106,8 +114,11 @@ export default class User extends base {
|
|||
msg += '\n【#ck】检查当前用户ck是否有效'
|
||||
msg += '\n【#我的ck】查看当前绑定ck'
|
||||
msg += '\n【#删除ck】删除当前绑定ck'
|
||||
}
|
||||
if (/星穹列车/.test(this.region_name)) {
|
||||
msg += "\n星穹铁道支持:\n功能还在咕咕咕~"
|
||||
}
|
||||
msg += '\n 支持绑定多个ck'
|
||||
|
||||
msg = await common.makeForwardMsg(this.e, ['使用命令说明', msg], '绑定成功:使用命令说明')
|
||||
|
||||
await this.e.reply(msg)
|
||||
|
@ -135,7 +146,7 @@ export default class User extends base {
|
|||
if (!res) return false
|
||||
|
||||
if (!res.data.list || res.data.list.length <= 0) {
|
||||
this.checkMsg = '该账号尚未绑定原神角色!'
|
||||
this.checkMsg = '该账号尚未绑定原神或星穹角色!'
|
||||
return false
|
||||
}
|
||||
|
||||
|
@ -185,6 +196,7 @@ export default class User extends base {
|
|||
ck: this.ck,
|
||||
ltuid: this.ltuid,
|
||||
login_ticket: this.login_ticket,
|
||||
region_name: this.region_name,
|
||||
device_id: this.getGuid(),
|
||||
isMain: true
|
||||
}
|
||||
|
@ -196,6 +208,7 @@ export default class User extends base {
|
|||
qq: this.e.user_id,
|
||||
ck: this.ck,
|
||||
ltuid: this.ltuid,
|
||||
region_name: v.region_name,
|
||||
device_id: this.getGuid(),
|
||||
isMain: false
|
||||
}
|
||||
|
@ -223,21 +236,33 @@ export default class User extends base {
|
|||
/** #uid */
|
||||
async showUid() {
|
||||
let user = await this.user()
|
||||
|
||||
if (!user.hasCk) {
|
||||
await this.e.reply(`当前绑定uid:${user.uid || '无'}`, false, { at: true })
|
||||
return
|
||||
}
|
||||
let uids = user.ckUids
|
||||
let ckData = user.ckData
|
||||
let uid = user.uid * 1
|
||||
let msg = [`当前uid:${uid}`, '当前绑定cookie Uid列表', '通过【#uid+序号】来切换uid']
|
||||
let region_name = []
|
||||
Object.keys(ckData).forEach((v) => {
|
||||
if (!region_name.includes(ckData[v].region_name)) {
|
||||
region_name.push(ckData[v].region_name)
|
||||
}
|
||||
});
|
||||
let count = 0;
|
||||
for (let n of region_name) {
|
||||
msg.push(n)
|
||||
for (let i in uids) {
|
||||
let tmp = `${Number(i) + 1}: ${uids[i]}`
|
||||
if (ckData[uids[i]].region_name == n) {
|
||||
let tmp = `${++count}: ${uids[i]}`
|
||||
if (uids[i] * 1 === uid) {
|
||||
tmp += ' ☑'
|
||||
}
|
||||
msg.push(tmp)
|
||||
}
|
||||
}
|
||||
}
|
||||
await this.e.reply(msg.join('\n'))
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,351 @@
|
|||
@font-face {
|
||||
font-family: "tttgbnumber";
|
||||
src: url("../../../../../resources/font/tttgbnumber.ttf");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 18px;
|
||||
color: #1e1f20;
|
||||
font-family: PingFangSC-Medium, PingFang SC, sans-serif;
|
||||
transform: scale(1.5);
|
||||
transform-origin: 0 0;
|
||||
width: 465px;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 465px;
|
||||
padding: 20px 15px 10px 15px;
|
||||
background-color: #f5f6fb;
|
||||
}
|
||||
|
||||
.head_box {
|
||||
border-radius: 15px;
|
||||
font-family: tttgbnumber;
|
||||
padding: 10px 20px;
|
||||
position: relative;
|
||||
box-shadow: 0 5px 10px 0 rgb(0 0 0 / 15%);
|
||||
}
|
||||
|
||||
.head_box .id_text {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.head_box .day_text {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.head_box .genshin_logo {
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
right: 15px;
|
||||
width: 97px;
|
||||
}
|
||||
|
||||
.logo {
|
||||
font-size: 12px;
|
||||
font-family: "tttgbnumber";
|
||||
text-align: center;
|
||||
color: #7994a7;
|
||||
position: relative;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
|
||||
.data_box {
|
||||
border-radius: 15px;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 20px;
|
||||
padding: 20px 0px 5px 10px;
|
||||
background: #fff;
|
||||
box-shadow: 0 5px 10px 0 rgb(0 0 0 / 15%);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.tab_lable {
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
left: -8px;
|
||||
background: #d4b98c;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
padding: 3px 10px;
|
||||
border-radius: 15px 0px 15px 15px;
|
||||
z-index: 20;
|
||||
}
|
||||
|
||||
.data_line {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
margin-bottom: 14px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.data_line_item {
|
||||
width: 100px;
|
||||
text-align: center;
|
||||
/*margin: 0 20px;*/
|
||||
}
|
||||
|
||||
.num {
|
||||
font-family: tttgbnumber;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.num .unit {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.data_box .lable {
|
||||
font-size: 14px;
|
||||
color: #7f858a;
|
||||
line-height: 1;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
body {
|
||||
width: 510px;
|
||||
}
|
||||
|
||||
.container {
|
||||
width: 510px;
|
||||
}
|
||||
|
||||
.data_box {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.info_box_border{
|
||||
border-radius: 15px;
|
||||
/* margin-top: 20px; */
|
||||
margin-bottom: 20px;
|
||||
padding: 6px 0px 5px 10px;
|
||||
background: #fff;
|
||||
box-shadow: 0 5px 10px 0 rgb(0 0 0 / 15%);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.card_list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.card_list .item {
|
||||
margin: 0px 8px 10px 0px;
|
||||
border-radius: 7px;
|
||||
box-shadow: 0 2px 6px 0 rgb(132 93 90 / 30%);
|
||||
height: 90px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: #e7e5d9;
|
||||
}
|
||||
|
||||
.card_list .item img {
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
border-radius: 7px 7px 20px 0;
|
||||
}
|
||||
|
||||
.card_list .item.star5 img {
|
||||
background-image: url(../../img/other/bg5.png);
|
||||
width: 100%;
|
||||
height: 70px;
|
||||
/*filter: brightness(1.1);*/
|
||||
background-size: 100%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.card_list .item.star4 img {
|
||||
width: 100%;
|
||||
height: 70px;
|
||||
background-image: url(../../img/other/bg4.png);
|
||||
background-size: 100%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.card_list .item .num {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
z-index: 9;
|
||||
font-size: 18px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
border-radius: 3px;
|
||||
padding: 1px 5px;
|
||||
border-radius: 3px;
|
||||
background: rgb(0 0 0 / 50%);
|
||||
font-family: "tttgbnumber";
|
||||
}
|
||||
|
||||
.card_list .item .name,
|
||||
.card_list .item .num_name {
|
||||
position: absolute;
|
||||
top: 71px;
|
||||
left: 0px;
|
||||
z-index: 9;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
height: 16px;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.card_list .item .num_name {
|
||||
font-family: "tttgbnumber";
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.base_info {
|
||||
position: relative;
|
||||
padding-left: 10px;
|
||||
margin: 5px 10px;
|
||||
}
|
||||
|
||||
.uid:before {
|
||||
content: " ";
|
||||
position: absolute;
|
||||
width: 5px;
|
||||
height: 24px;
|
||||
border-radius: 1px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
background: #d3bc8d;
|
||||
}
|
||||
|
||||
.label_301 {
|
||||
background-color: rgb(235 106 75);
|
||||
}
|
||||
|
||||
.label_302 {
|
||||
background-color: #E69449;
|
||||
}
|
||||
|
||||
.label_200 {
|
||||
background-color: #757CC8;
|
||||
}
|
||||
|
||||
.label {
|
||||
color: #fff;
|
||||
border-radius: 10px;
|
||||
font-size: 12px;
|
||||
padding: 2px 7px;
|
||||
vertical-align: 2px;
|
||||
}
|
||||
|
||||
.ritem {
|
||||
display: flex;
|
||||
font-size: 12px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.info_role {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 0 0px 5px 9px;
|
||||
}
|
||||
|
||||
.ritem .role {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-color: #ffb285;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
.ritem .weapon_box {
|
||||
overflow: hidden;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
.ritem .weapon {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-color: #ffb285;
|
||||
border-radius: 100%;
|
||||
transform: scale(1.5);
|
||||
-webkit-transform: scale(1.5);
|
||||
|
||||
}
|
||||
|
||||
.ritem .role_text {
|
||||
margin: 2px 3px 0 2px;
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
}
|
||||
|
||||
.ritem .role_name {
|
||||
width: 24px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.ritem .role_num {
|
||||
width: 24px;
|
||||
}
|
||||
|
||||
.line_box {
|
||||
height: 32px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
font-size: 12px;
|
||||
color: #7d7d7d;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
.line_box .line {
|
||||
height: 2px;
|
||||
flex-grow: 1;
|
||||
background-color: #ebebeb;
|
||||
margin: 0px 10px;
|
||||
}
|
||||
|
||||
.red {
|
||||
color: #f21000;
|
||||
}
|
||||
|
||||
.orange {
|
||||
color: #ff8d00;
|
||||
}
|
||||
|
||||
.green {
|
||||
color: #12d88c;
|
||||
}
|
||||
|
||||
.blue {
|
||||
color: #4169E1;
|
||||
}
|
||||
|
||||
.purple {
|
||||
color: #7500ff;
|
||||
}
|
||||
.minimum{
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
z-index: 9;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
border-radius: 3px;
|
||||
padding: 1px 3px;
|
||||
background-color: rgb(0 0 0 / 80%);
|
||||
font-family: "tttgbnumber";
|
||||
}
|
||||
.hasMore{
|
||||
font-size: 12px;
|
||||
margin: 6px 0;
|
||||
color: #7f858a;
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
<!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="{{pluResPath}}html/gachaLog/gachaLog.css"/>
|
||||
<link rel="preload" href="{{resPath}}font/tttgbnumber.ttf" as="font">
|
||||
<link rel="preload" href="{{pluResPath}}img/namecard/{{headImg}}.png" as="image">
|
||||
<link rel="preload" href="{{pluResPath}}img/other/bg5.png" as="image">
|
||||
{{@headStyle}}
|
||||
</head>
|
||||
<body id="container" class="body_box">
|
||||
<div class="container">
|
||||
<div class="info_box">
|
||||
|
||||
<div class="head_box">
|
||||
<div class="id_text">
|
||||
ID: {{uid}}
|
||||
</div>
|
||||
<h2 class="day_text">
|
||||
{{allNum}}抽
|
||||
<span class="label label_{{type}}">{{typeName}}池</span>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="data_box">
|
||||
<div class="tab_lable">数据总览</div>
|
||||
{{each line val}}
|
||||
<div class="data_line">
|
||||
{{each val item}}
|
||||
<div class="data_line_item">
|
||||
<div class="num">{{item.num}}<span class="unit">{{item.unit}}</span></div>
|
||||
<div class="lable">{{item.lable}}</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/each}}
|
||||
|
||||
<div class="line_box">
|
||||
<span class="line"></span>
|
||||
<span class="text">五星历史 {{firstTime}} ~ {{lastTime}}</span>
|
||||
<span class="line"></span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card_list">
|
||||
{{each fiveLog val}}
|
||||
<div class="item star5">
|
||||
{{ if val.isUp && typeName == '角色' }}
|
||||
<span class="minimum">UP</span>
|
||||
{{/if}}
|
||||
<img class="role"
|
||||
src="{{pluResPath}}StarRail/img/{{val.item_type=='角色'?'role':'weapon'}}/{{val.name}}.webp"
|
||||
onerror="whenError(this,'{{val.item_type=='角色'?'role':'weapon'}}')"/>
|
||||
<!-- <div class="num">{{val.num}}</div>-->
|
||||
<div class="num_name">{{val.num}}</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{if hasMore }}
|
||||
<div class="hasMore">*完整数据请私聊查看</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="logo"> Created By Yunzai-Bot</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script type="text/javascript">
|
||||
function whenError(a, type) {
|
||||
// a.onerror = null;
|
||||
// if(type=="role"){
|
||||
// a.src = "{{_res_path}}/genshin/logo/role/荧.png";
|
||||
// }else{
|
||||
// a.src = "{{_res_path}}/genshin/logo/weapon/旅行剑.png";
|
||||
// }
|
||||
}
|
||||
</script>
|
||||
</html>
|
|
@ -0,0 +1,184 @@
|
|||
@font-face {
|
||||
font-family: "tttgbnumber";
|
||||
src: url("../../../../../resources/font/tttgbnumber.ttf");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "HYWenHei-55W";
|
||||
src: url("../../../../../resources/font/HYWenHei-55W.ttf");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
user-select: none;
|
||||
}
|
||||
body {
|
||||
font-size: 16px;
|
||||
width: 530px;
|
||||
color: #1e1f20;
|
||||
transform: scale(1.5);
|
||||
transform-origin: 0 0;
|
||||
}
|
||||
.container {
|
||||
width: 530px;
|
||||
padding: 20px 15px 10px 15px;
|
||||
background-color: #f5f6fb;
|
||||
}
|
||||
.head_box {
|
||||
|
||||
border-radius: 15px;
|
||||
font-family: tttgbnumber;
|
||||
padding: 10px 20px;
|
||||
position: relative;
|
||||
box-shadow: 0 5px 10px 0 rgb(0 0 0 / 15%);
|
||||
|
||||
}
|
||||
.head_box .id_text {
|
||||
font-size: 24px;
|
||||
}
|
||||
.head_box .day_text {
|
||||
font-size: 20px;
|
||||
}
|
||||
.head_box .genshin_logo {
|
||||
position: absolute;
|
||||
top: 1px;
|
||||
right: 15px;
|
||||
width: 97px;
|
||||
}
|
||||
.base_info {
|
||||
position: relative;
|
||||
padding-left: 10px;
|
||||
}
|
||||
.uid {
|
||||
font-family: tttgbnumber;
|
||||
}
|
||||
.pool_box {
|
||||
font-family: HYWenHei-55W;
|
||||
border-radius: 12px;
|
||||
margin-top: 20px;
|
||||
margin-bottom: 20px;
|
||||
padding: 10px 5px 5px 5px;
|
||||
background: #fff;
|
||||
box-shadow: 0 5px 10px 0 rgb(0 0 0 / 15%);
|
||||
position: relative;
|
||||
}
|
||||
.title_box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.title{
|
||||
white-space: nowrap;
|
||||
max-width: 210px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.name_box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
}
|
||||
.title_box .date {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.list_box {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.item {
|
||||
margin: 0px 0 10px 10px;
|
||||
border-radius: 7px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 2px 6px 0 rgb(132 93 90 / 30%);
|
||||
height: 70px;
|
||||
width: 70px;
|
||||
background: #e9e5dc;
|
||||
position: relative;
|
||||
}
|
||||
.item .role_img {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
background-size: 100%;
|
||||
background-repeat: no-repeat;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
/*filter: contrast(95%);*/
|
||||
}
|
||||
.item .num {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
z-index: 9;
|
||||
font-size: 18px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
border-radius: 3px;
|
||||
padding: 1px 5px;
|
||||
border-radius: 3px;
|
||||
background: rgb(0 0 0 / 50%);
|
||||
font-family: "tttgbnumber";
|
||||
}
|
||||
.label_301 {
|
||||
background-color: rgb(235 106 75);
|
||||
}
|
||||
.label_302 {
|
||||
background-color: #e69449;
|
||||
}
|
||||
.label_200 {
|
||||
background-color: #757cc8;
|
||||
}
|
||||
|
||||
.label {
|
||||
color: #fff;
|
||||
border-radius: 10px;
|
||||
font-size: 16px;
|
||||
padding: 2px 7px;
|
||||
vertical-align: 2px;
|
||||
}
|
||||
.bg5 {
|
||||
background-image: url(../../img/other/bg5.png);
|
||||
width: 100%;
|
||||
height: 70px;
|
||||
/*filter: brightness(1.1);*/
|
||||
background-size: 100%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.bg4 {
|
||||
width: 100%;
|
||||
height: 70px;
|
||||
background-image: url(../../img/other/bg4.png);
|
||||
background-size: 100%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.list_box .item .life1 {
|
||||
background-color: #62a8ea;
|
||||
}
|
||||
.list_box .item .life2 {
|
||||
background-color: #62a8ea;
|
||||
}
|
||||
.list_box .item .life3 {
|
||||
background-color: #45b97c;
|
||||
}
|
||||
.list_box .item .life4 {
|
||||
background-color: #45b97c;
|
||||
}
|
||||
.list_box .item .life5 {
|
||||
background-color: #ff5722;
|
||||
}
|
||||
.list_box .item .life6 {
|
||||
background-color: #ff5722;
|
||||
}
|
||||
.logo {
|
||||
font-size: 14px;
|
||||
font-family: "tttgbnumber";
|
||||
text-align: center;
|
||||
color: #7994a7;
|
||||
}
|
||||
.hasMore{
|
||||
font-size: 12px;
|
||||
margin: -6px 0 10px 6px;
|
||||
color: #7f858a;
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
<!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="{{pluResPath}}html/logCount/logCount.css"/>
|
||||
<link rel="preload" href="{{resPath}}/font/HYWenHei-55W.ttf" as="font">
|
||||
<link rel="preload" href="{{resPath}}/font/tttgbnumber.ttf" as="font">
|
||||
<link rel="preload" href="{{pluResPath}}img/other/bg5.png" as="image">
|
||||
<link rel="preload" href="{{pluResPath}}img/other/bg4.png" as="image">
|
||||
{{@headStyle}}
|
||||
</head>
|
||||
<body id="container" class="body_box">
|
||||
<div class="container">
|
||||
<div class="head_box">
|
||||
<div class="id_text">ID: {{uid}}</div>
|
||||
<h2 class="day_text">抽卡统计-{{typeName}}</h2>
|
||||
</div>
|
||||
{{each pool val}}
|
||||
{{if val.roleNum > 0}}
|
||||
<div class="pool_box">
|
||||
<div class="title_box">
|
||||
<div class="name_box">
|
||||
<div class="title"><h2>「{{val.five}}」</h2></div>
|
||||
<span class="label label_301">{{val.count}}抽</span>
|
||||
</div>
|
||||
{{if typeName != "常驻"}}
|
||||
<span class="date">{{val.start}} - {{val.end}}</span>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="list_box">
|
||||
{{each val.role v}}
|
||||
<div class="item">
|
||||
<div class="bg{{v.rank_type}}"></div>
|
||||
<span class="num {{if v.count>=5 && v.rank_type ==5}}life5{{/if}}">{{v.count}}</span>
|
||||
{{if v.item_type=='角色'}}
|
||||
<img class="role_img" src="{{pluResPath}}StarRail/img/role/{{v.name}}.webp" onerror="whenError(this,'role')"/>
|
||||
{{/if}}
|
||||
{{if v.item_type=='光锥'}}
|
||||
<img class="role_img" src="{{pluResPath}}StarRail/img/weapon/{{v.name}}.webp" onerror="whenError(this)"/>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
{{if isGroup }}
|
||||
<div class="hasMore">*完整数据请私聊查看</div>
|
||||
{{/if}}
|
||||
<div class="logo">Created By Yunzai-Bot</div>
|
||||
</div>
|
||||
</body>
|
||||
<script type="text/javascript">
|
||||
function whenError(a, type) {
|
||||
// a.onerror = null;
|
||||
// if (type == "role") {
|
||||
// a.src = "{{_res_path}}/genshin/logo/role/荧.png";
|
||||
// } else {
|
||||
// a.src = "{{_res_path}}/genshin/logo/weapon/旅行剑.png";
|
||||
// }
|
||||
}
|
||||
</script>
|
||||
</html>
|
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 994 B |
After Width: | Height: | Size: 994 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 7.5 KiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 7.8 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 7.8 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 7.7 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 8.0 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 7.3 KiB |