diff --git a/languages/en.css b/languages/en.css
index fd8108b2..c17ca4ab 100644
--- a/languages/en.css
+++ b/languages/en.css
@@ -659,6 +659,10 @@ label[for="qr-data-type-pdc"]::before
{
content: "P&D Damage Caculater (PDC)";
}
+label[for="qr-data-type-daddb"]::before
+{
+ content: "DADDB";
+}
label[for="qr-data-type-sanbon-v1"]::before {
content: "Sanbon v1 URL";
}
diff --git a/languages/ja.css b/languages/ja.css
index cc35a2cc..1cada09c 100644
--- a/languages/ja.css
+++ b/languages/ja.css
@@ -617,6 +617,10 @@ label[for="qr-data-type-pdc"]::before
{
content: "パズドラダメージ計算 (PDC)";
}
+label[for="qr-data-type-daddb"]::before
+{
+ content: "DADDB";
+}
label[for="qr-data-type-sanbon-v1"]::before {
content: "Sanbon v1 URL";
}
diff --git a/languages/ko.css b/languages/ko.css
index d65b807b..65a7c01b 100644
--- a/languages/ko.css
+++ b/languages/ko.css
@@ -597,6 +597,10 @@ label[for="qr-data-type-pdc"]::before
{
content: "퍼즐앤드래곤 데미지 카큐라터 (PDC)";
}
+label[for="qr-data-type-daddb"]::before
+{
+ content: "DADDB";
+}
label[for="qr-data-type-sanbon-v1"]::before {
content: "Sanbon v1 URL";
}
diff --git a/languages/zh-TW.css b/languages/zh-TW.css
index 5eff5504..740ce43a 100644
--- a/languages/zh-TW.css
+++ b/languages/zh-TW.css
@@ -609,6 +609,10 @@ label[for="qr-data-type-pdc"]::before
{
content: "龍族拼圖傷害計算器 (PDC)";
}
+label[for="qr-data-type-daddb"]::before
+{
+ content: "DADDB";
+}
label[for="qr-data-type-sanbon-v1"]::before {
content: "Sanbon v1 網址";
}
diff --git a/languages/zh-TW.js b/languages/zh-TW.js
index 28616191..b343581f 100644
--- a/languages/zh-TW.js
+++ b/languages/zh-TW.js
@@ -19,6 +19,7 @@ const _localTranslating = {
"PADDF": "智龍急速陣型",
"PDC": "PDC",
"PADDB": "PADDB",
+ "DADDB": "DADDB",
},
error: {
0: "未知錯誤",
diff --git a/languages/zh.css b/languages/zh.css
index 8893b059..15d8c85f 100644
--- a/languages/zh.css
+++ b/languages/zh.css
@@ -612,6 +612,10 @@ label[for="qr-data-type-pdc"]::before
{
content: "智龙迷城伤害计算器 (PDC)";
}
+label[for="qr-data-type-daddb"]::before
+{
+ content: "DADDB";
+}
label[for="qr-data-type-sanbon-v1"]::before {
content: "Sanbon v1 网址";
}
diff --git a/languages/zh.js b/languages/zh.js
index 8b6ac7f7..6e1e5996 100644
--- a/languages/zh.js
+++ b/languages/zh.js
@@ -19,6 +19,7 @@ const _localTranslating = {
"PADDF": "智龙急速阵型",
"PDC": "PDC",
"PADDB": "PADDB",
+ "DADDB": "DADDB",
},
error: {
0: "未知错误",
diff --git a/multi.html b/multi.html
index 83968a4b..2dad9409 100644
--- a/multi.html
+++ b/multi.html
@@ -1472,8 +1472,9 @@ const teamsCount = 2;
![]()
diff --git a/script-json_data.js b/script-json_data.js
index 37ef445b..8f3d0b2a 100644
--- a/script-json_data.js
+++ b/script-json_data.js
@@ -33,6 +33,7 @@ let localTranslating = {
"PADDF": "PADDF",
"PDC": "PDC",
"PADDB": "PADDB",
+ "DADDB": "DADDB",
},
error: {
0: "Unknown Error",
@@ -492,7 +493,7 @@ const allowable_latent = {
28,29,30,31,32,33,34,35,36,37,38
],
killer: [16,17,18,19,20,21,22,23,24,25,26,27], //杀潜觉
- v120: [42,43,44,45,49], //120才能打的潜觉
+ v120: [42,43,44,45,49], //120才能打的潜觉,3倍上限潜觉需要特殊处理
needAwoken: [ //需要觉醒才能打的潜觉
{latent:39,awoken:62}, //C珠破吸
{latent:40,awoken:20}, //心横解转转
@@ -500,7 +501,7 @@ const allowable_latent = {
{latent:46,awoken:45}, //心追解云封
{latent:47,awoken:59}, //心L大SB
{latent:48,awoken:60}, //L解禁武器
- ]
+ ],
}
//等效觉醒列表
const equivalent_awoken = [
@@ -560,167 +561,6 @@ const official_awoken_sorting = [
];
const PAD_PASS_BADGE = 1<<7 | 1; //本程序的月卡徽章编号,129
-//pdc的徽章对应数字
-const pdcBadgeMap = [
- {pdf:undefined,pdc:0}, //什么都没有
- {pdf:1,pdc:10}, //无限cost
- {pdf:2,pdc:12}, //小手指
- {pdf:3,pdc:9}, //全体攻击
- {pdf:4,pdc:5}, //小回复
- {pdf:5,pdc:1}, //小血量
- {pdf:6,pdc:3}, //小攻击
- {pdf:7,pdc:8}, //SB
- {pdf:8,pdc:18}, //队长防封
- {pdf:9,pdc:19}, //SX
- {pdf:11,pdc:7}, //无天降
- {pdf:17,pdc:6}, //大回复
- {pdf:18,pdc:2}, //大血量
- {pdf:19,pdc:4}, //大攻击
- {pdf:20,pdc:null}, //三维
- {pdf:21,pdc:13}, //大手指
- {pdf:10,pdc:11}, //加经验
- {pdf:12,pdc:15}, //墨镜
- {pdf:13,pdc:17}, //防废
- {pdf:14,pdc:16}, //防毒
- {pdf:PAD_PASS_BADGE,pdc:14}, //月卡
-];
-//pdc的潜觉对应数字
-const pdcLatentMap = [
- {pdf:1,pdc:1}, //HP
- {pdf:2,pdc:0}, //攻击
- {pdf:3,pdc:2}, //回复
- {pdf:4,pdc:19}, //手指
- {pdf:5,pdc:13}, //自回
- {pdf:6,pdc:14}, //火盾
- {pdf:7,pdc:15}, //水盾
- {pdf:8,pdc:16}, //木盾
- {pdf:9,pdc:17}, //光盾
- {pdf:10,pdc:18}, //暗盾
- {pdf:11,pdc:12}, //防坐
- {pdf:12,pdc:3}, //三维
- {pdf:13,pdc:35}, //不被换队长
- {pdf:13,pdc:47}, //不被换队长 ×1.5
- {pdf:14,pdc:37}, //不掉废
- {pdf:15,pdc:36}, //不掉毒
- {pdf:16,pdc:24}, //进化杀
- {pdf:17,pdc:25}, //觉醒杀
- {pdf:18,pdc:26}, //强化杀
- {pdf:19,pdc:27}, //卖钱杀
- {pdf:20,pdc:4}, //神杀
- {pdf:21,pdc:5}, //龙杀
- {pdf:22,pdc:6}, //恶魔杀
- {pdf:23,pdc:7}, //机械杀
- {pdf:24,pdc:8}, //平衡杀
- {pdf:25,pdc:9}, //攻击杀
- {pdf:26,pdc:10}, //体力杀
- {pdf:27,pdc:11}, //回复杀
- {pdf:28,pdc:20}, //大HP
- {pdf:29,pdc:21}, //大攻击
- {pdf:30,pdc:22}, //大回复
- {pdf:31,pdc:23}, //大手指
- {pdf:32,pdc:28}, //大火盾
- {pdf:33,pdc:29}, //大水盾
- {pdf:34,pdc:30}, //大木盾
- {pdf:35,pdc:31}, //大光盾
- {pdf:36,pdc:32}, //大暗盾
- {pdf:37,pdc:33}, //6色破无效
- {pdf:37,pdc:45}, //6色破无效 ×1.5
- {pdf:38,pdc:34}, //3色破属吸
- {pdf:38,pdc:46}, //3色破属吸 ×1.5
- {pdf:39,pdc:40}, //C珠破吸
- {pdf:39,pdc:50}, //C珠破吸 ×1.5
- {pdf:40,pdc:39}, //心横解转转
- {pdf:40,pdc:49}, //心横解转转 ×1.5
- {pdf:41,pdc:38}, //U解禁消
- {pdf:41,pdc:48}, //U解禁消 ×1.5
- {pdf:42,pdc:41}, //伤害上限×2
- {pdf:43,pdc:42}, //HP++
- {pdf:44,pdc:43}, //攻击++
- {pdf:45,pdc:44}, //回复++
- {pdf:46,pdc:51}, //心追解云封
- {pdf:46,pdc:52}, //心追解云封 ×1.5
- {pdf:47,pdc:53}, //心L大SB
- {pdf:47,pdc:54}, //心L大SB ×1.5
- {pdf:48,pdc:55}, //L解禁武器
- {pdf:48,pdc:56}, //L解禁武器 ×1.8
- {pdf:49,pdc:57}, //伤害上限×3
-];
-//paddb的徽章对应数字
-const paddbBadgeMap = [
- {pdf:undefined,paddb:0}, //什么都没有
- {pdf:1,paddb:1}, //无限cost
- {pdf:2,paddb:2}, //小手指
- {pdf:3,paddb:3}, //全体攻击
- {pdf:4,paddb:4}, //小回复
- {pdf:5,paddb:5}, //小血量
- {pdf:6,paddb:6}, //小攻击
- {pdf:7,paddb:7}, //SB
- {pdf:8,paddb:8}, //队长防封
- {pdf:9,paddb:9}, //SX
- {pdf:11,paddb:14}, //无天降
- {pdf:17,paddb:10}, //大回复
- {pdf:18,paddb:11}, //大血量
- {pdf:19,paddb:12}, //大攻击
- {pdf:20,paddb:null}, //三维
- {pdf:21,paddb:13}, //大手指
- {pdf:10,paddb:18}, //加经验
- {pdf:12,paddb:15}, //墨镜
- {pdf:13,paddb:16}, //防废
- {pdf:14,paddb:17}, //防毒
- {pdf:129,paddb:19}, //月卡
-];
-//paddb的潜觉对应数字
-const paddbLatentMap = [
- {pdf:1,paddb:13}, //HP
- {pdf:2,paddb:14}, //攻击
- {pdf:3,paddb:15}, //回复
- {pdf:4,paddb:16}, //手指
- {pdf:5,paddb:17}, //自回
- {pdf:6,paddb:19}, //火盾
- {pdf:7,paddb:20}, //水盾
- {pdf:8,paddb:21}, //木盾
- {pdf:9,paddb:22}, //光盾
- {pdf:10,paddb:23}, //暗盾
- {pdf:11,paddb:18}, //防坐
- {pdf:12,paddb:27}, //三维
- {pdf:13,paddb:38}, //不被换队长
- {pdf:14,paddb:37}, //不掉废
- {pdf:15,paddb:36}, //不掉毒
- {pdf:16,paddb:12}, //进化杀
- {pdf:17,paddb:9}, //觉醒杀
- {pdf:18,paddb:10}, //强化杀
- {pdf:19,paddb:11}, //卖钱杀
- {pdf:20,paddb:2}, //神杀
- {pdf:21,paddb:1}, //龙杀
- {pdf:22,paddb:3}, //恶魔杀
- {pdf:23,paddb:4}, //机械杀
- {pdf:24,paddb:8}, //平衡杀
- {pdf:25,paddb:5}, //攻击杀
- {pdf:26,paddb:6}, //体力杀
- {pdf:27,paddb:7}, //回复杀
- {pdf:28,paddb:24}, //大HP
- {pdf:29,paddb:25}, //大攻击
- {pdf:30,paddb:26}, //大回复
- {pdf:31,paddb:33}, //大手指
- {pdf:32,paddb:28}, //大火盾
- {pdf:33,paddb:29}, //大水盾
- {pdf:34,paddb:30}, //大木盾
- {pdf:35,paddb:31}, //大光盾
- {pdf:36,paddb:32}, //大暗盾
- {pdf:37,paddb:35}, //6色破无效
- {pdf:38,paddb:34}, //3色破属吸
- {pdf:39,paddb:41}, //C珠破吸
- {pdf:40,paddb:40}, //心横解转转
- {pdf:41,paddb:39}, //U解禁消
- {pdf:42,paddb:42}, //伤害上限×2
- {pdf:43,paddb:43}, //HP++
- {pdf:44,paddb:44}, //攻击++
- {pdf:45,paddb:45}, //回复++
- {pdf:46,paddb:46}, //心追解云封
- {pdf:47,paddb:47}, //心L大SB
- {pdf:48,paddb:48}, //L解禁武器
- {pdf:49,paddb:49}, //伤害上限×3
-];
//排序程序列表
const sort_function_list = [
{tag:"sort_none",name:"无",function:()=>0},
diff --git a/script.js b/script.js
index dec59e12..3872d825 100644
--- a/script.js
+++ b/script.js
@@ -477,6 +477,91 @@ Formation.prototype.getPdfQrObj = function(keepDataSource = true)
if (keepDataSource) qrObj.s = currentDataSource.code;
return qrObj;
}
+//pdc的徽章对应数字
+Formation.pdcBadgeMap = [
+ {pdf:undefined,pdc:0}, //什么都没有
+ {pdf:1,pdc:10}, //无限cost
+ {pdf:2,pdc:12}, //小手指
+ {pdf:3,pdc:9}, //全体攻击
+ {pdf:4,pdc:5}, //小回复
+ {pdf:5,pdc:1}, //小血量
+ {pdf:6,pdc:3}, //小攻击
+ {pdf:7,pdc:8}, //SB
+ {pdf:8,pdc:18}, //队长防封
+ {pdf:9,pdc:19}, //SX
+ {pdf:11,pdc:7}, //无天降
+ {pdf:17,pdc:6}, //大回复
+ {pdf:18,pdc:2}, //大血量
+ {pdf:19,pdc:4}, //大攻击
+ {pdf:20,pdc:null}, //三维
+ {pdf:21,pdc:13}, //大手指
+ {pdf:10,pdc:11}, //加经验
+ {pdf:12,pdc:15}, //墨镜
+ {pdf:13,pdc:17}, //防废
+ {pdf:14,pdc:16}, //防毒
+ {pdf:PAD_PASS_BADGE,pdc:14}, //月卡
+];
+//pdc的潜觉对应数字
+Formation.pdcLatentMap = [
+ {pdf:1,pdc:1}, //HP
+ {pdf:2,pdc:0}, //攻击
+ {pdf:3,pdc:2}, //回复
+ {pdf:4,pdc:19}, //手指
+ {pdf:5,pdc:13}, //自回
+ {pdf:6,pdc:14}, //火盾
+ {pdf:7,pdc:15}, //水盾
+ {pdf:8,pdc:16}, //木盾
+ {pdf:9,pdc:17}, //光盾
+ {pdf:10,pdc:18}, //暗盾
+ {pdf:11,pdc:12}, //防坐
+ {pdf:12,pdc:3}, //三维
+ {pdf:13,pdc:35}, //不被换队长
+ {pdf:13,pdc:47}, //不被换队长 ×1.5
+ {pdf:14,pdc:37}, //不掉废
+ {pdf:15,pdc:36}, //不掉毒
+ {pdf:16,pdc:24}, //进化杀
+ {pdf:17,pdc:25}, //觉醒杀
+ {pdf:18,pdc:26}, //强化杀
+ {pdf:19,pdc:27}, //卖钱杀
+ {pdf:20,pdc:4}, //神杀
+ {pdf:21,pdc:5}, //龙杀
+ {pdf:22,pdc:6}, //恶魔杀
+ {pdf:23,pdc:7}, //机械杀
+ {pdf:24,pdc:8}, //平衡杀
+ {pdf:25,pdc:9}, //攻击杀
+ {pdf:26,pdc:10}, //体力杀
+ {pdf:27,pdc:11}, //回复杀
+ {pdf:28,pdc:20}, //大HP
+ {pdf:29,pdc:21}, //大攻击
+ {pdf:30,pdc:22}, //大回复
+ {pdf:31,pdc:23}, //大手指
+ {pdf:32,pdc:28}, //大火盾
+ {pdf:33,pdc:29}, //大水盾
+ {pdf:34,pdc:30}, //大木盾
+ {pdf:35,pdc:31}, //大光盾
+ {pdf:36,pdc:32}, //大暗盾
+ {pdf:37,pdc:33}, //6色破无效
+ {pdf:37,pdc:45}, //6色破无效 ×1.5
+ {pdf:38,pdc:34}, //3色破属吸
+ {pdf:38,pdc:46}, //3色破属吸 ×1.5
+ {pdf:39,pdc:40}, //C珠破吸
+ {pdf:39,pdc:50}, //C珠破吸 ×1.5
+ {pdf:40,pdc:39}, //心横解转转
+ {pdf:40,pdc:49}, //心横解转转 ×1.5
+ {pdf:41,pdc:38}, //U解禁消
+ {pdf:41,pdc:48}, //U解禁消 ×1.5
+ {pdf:42,pdc:41}, //伤害上限×2
+ {pdf:43,pdc:42}, //HP++
+ {pdf:44,pdc:43}, //攻击++
+ {pdf:45,pdc:44}, //回复++
+ {pdf:46,pdc:51}, //心追解云封
+ {pdf:46,pdc:52}, //心追解云封 ×1.5
+ {pdf:47,pdc:53}, //心L大SB
+ {pdf:47,pdc:54}, //心L大SB ×1.5
+ {pdf:48,pdc:55}, //L解禁武器
+ {pdf:48,pdc:56}, //L解禁武器 ×1.8
+ {pdf:49,pdc:57}, //伤害上限×3
+];
Formation.prototype.getPdcQrStr = function()
{
function genMemberMap(m, a, position = 0)
@@ -484,7 +569,7 @@ Formation.prototype.getPdcQrStr = function()
const o = new Map();
o.set(0, m.id);
if (m.latent.length)
- o.set(2, m.latent.map(pdfLtent=>pdcLatentMap.find(latent=>latent.pdf === pdfLtent).pdc.toString(36).padStart(2,'0')).join('')); //潜觉
+ o.set(2, m.latent.map(pdfLtent=> Formation.pdcLatentMap.find(latent=>latent.pdf === pdfLtent).pdc.toString(36).padStart(2,'0')).join('')); //潜觉
o.set(3, m.level);
o.set(4, m.plus[0]);
o.set(5, m.plus[1]);
@@ -517,7 +602,7 @@ Formation.prototype.getPdcQrStr = function()
let pdcTeamsStr = this.teams.map((t,idx,arr)=>{
let teamArr = [
- pdcBadgeMap.find(badge=>badge.pdf === t[2])?.pdc || 0 //徽章
+ Formation.pdcBadgeMap.find(badge=>badge.pdf === t[2])?.pdc || 0 //徽章
];
const membersArr = t[0];
const assistArr = t[1];
@@ -553,6 +638,82 @@ Formation.prototype.getPdcQrStr = function()
outArr = outArr.concat(pdcTeamsStr);
return outArr.join(']');
}
+//paddb的徽章对应数字
+Formation.paddbBadgeMap = [
+ {pdf:undefined,paddb:0}, //什么都没有
+ {pdf:1,paddb:1}, //无限cost
+ {pdf:2,paddb:2}, //小手指
+ {pdf:3,paddb:3}, //全体攻击
+ {pdf:4,paddb:4}, //小回复
+ {pdf:5,paddb:5}, //小血量
+ {pdf:6,paddb:6}, //小攻击
+ {pdf:7,paddb:7}, //SB
+ {pdf:8,paddb:8}, //队长防封
+ {pdf:9,paddb:9}, //SX
+ {pdf:11,paddb:14}, //无天降
+ {pdf:17,paddb:10}, //大回复
+ {pdf:18,paddb:11}, //大血量
+ {pdf:19,paddb:12}, //大攻击
+ {pdf:20,paddb:null}, //三维
+ {pdf:21,paddb:13}, //大手指
+ {pdf:10,paddb:18}, //加经验
+ {pdf:12,paddb:15}, //墨镜
+ {pdf:13,paddb:16}, //防废
+ {pdf:14,paddb:17}, //防毒
+ {pdf:PAD_PASS_BADGE,paddb:19}, //月卡
+];
+//paddb的潜觉对应数字
+Formation.paddbLatentMap = [
+ {pdf:1,paddb:13}, //HP
+ {pdf:2,paddb:14}, //攻击
+ {pdf:3,paddb:15}, //回复
+ {pdf:4,paddb:16}, //手指
+ {pdf:5,paddb:17}, //自回
+ {pdf:6,paddb:19}, //火盾
+ {pdf:7,paddb:20}, //水盾
+ {pdf:8,paddb:21}, //木盾
+ {pdf:9,paddb:22}, //光盾
+ {pdf:10,paddb:23}, //暗盾
+ {pdf:11,paddb:18}, //防坐
+ {pdf:12,paddb:27}, //三维
+ {pdf:13,paddb:38}, //不被换队长
+ {pdf:14,paddb:37}, //不掉废
+ {pdf:15,paddb:36}, //不掉毒
+ {pdf:16,paddb:12}, //进化杀
+ {pdf:17,paddb:9}, //觉醒杀
+ {pdf:18,paddb:10}, //强化杀
+ {pdf:19,paddb:11}, //卖钱杀
+ {pdf:20,paddb:2}, //神杀
+ {pdf:21,paddb:1}, //龙杀
+ {pdf:22,paddb:3}, //恶魔杀
+ {pdf:23,paddb:4}, //机械杀
+ {pdf:24,paddb:8}, //平衡杀
+ {pdf:25,paddb:5}, //攻击杀
+ {pdf:26,paddb:6}, //体力杀
+ {pdf:27,paddb:7}, //回复杀
+ {pdf:28,paddb:24}, //大HP
+ {pdf:29,paddb:25}, //大攻击
+ {pdf:30,paddb:26}, //大回复
+ {pdf:31,paddb:33}, //大手指
+ {pdf:32,paddb:28}, //大火盾
+ {pdf:33,paddb:29}, //大水盾
+ {pdf:34,paddb:30}, //大木盾
+ {pdf:35,paddb:31}, //大光盾
+ {pdf:36,paddb:32}, //大暗盾
+ {pdf:37,paddb:35}, //6色破无效
+ {pdf:38,paddb:34}, //3色破属吸
+ {pdf:39,paddb:41}, //C珠破吸
+ {pdf:40,paddb:40}, //心横解转转
+ {pdf:41,paddb:39}, //U解禁消
+ {pdf:42,paddb:42}, //伤害上限×2
+ {pdf:43,paddb:43}, //HP++
+ {pdf:44,paddb:44}, //攻击++
+ {pdf:45,paddb:45}, //回复++
+ {pdf:46,paddb:46}, //心追解云封
+ {pdf:47,paddb:47}, //心L大SB
+ {pdf:48,paddb:48}, //L解禁武器
+ {pdf:49,paddb:49}, //伤害上限×3
+];
Formation.prototype.getPaddbQrObj = function(keepDataSource = true)
{
//PadDb服务器出现没有的怪物就会崩溃,在这里主动保护一下,转换为 1319
@@ -568,7 +729,7 @@ Formation.prototype.getPaddbQrObj = function(keepDataSource = true)
const t = this.teams[0];
let teamObj = {
name: this.title,
- badge: paddbBadgeMap.find(badge=>badge.pdf === t[2]).paddb,
+ badge: Formation.paddbBadgeMap.find(badge=>badge.pdf === t[2]).paddb,
memo: (this.detail || '') + '\n' + uploadMessage,
monsters: {},
assists: {},
@@ -606,7 +767,7 @@ Formation.prototype.getPaddbQrObj = function(keepDataSource = true)
active_skill_level: m.skilllevel ?? Skills[m.card.activeSkillId].maxLevel,
transform: memberIdChange ? m.level : num,
super_awoken: m.sawoken + 2,
- latent_awokens: m.latent.map(n=>paddbLatentMap.find(latent=>latent.pdf === n).paddb),
+ latent_awokens: m.latent.map(n=>Formation.paddbLatentMap.find(latent=>latent.pdf === n).paddb),
};
let assistIdChange = changePadDbIdLevel(a.id);
teamObj.assists[i] = a.id <= 0 ? null : {
@@ -743,6 +904,103 @@ location.reload();
})();`);
return scriptLines.join('\n');
}
+
+//paddb的徽章对应数字
+Formation.daddbBadgeMap = [
+ {pdf:undefined,daddb:0}, //什么都没有
+ {pdf:1,daddb:0}, //无限cost
+ {pdf:2,daddb:1}, //小手指
+ {pdf:3,daddb:2}, //全体攻击
+ {pdf:4,daddb:3}, //小回复
+ {pdf:5,daddb:4}, //小血量
+ {pdf:6,daddb:5}, //小攻击
+ {pdf:7,daddb:6}, //SB
+ {pdf:8,daddb:7}, //队长防封
+ {pdf:9,daddb:8}, //SX
+ {pdf:11,daddb:13}, //无天降
+ {pdf:17,daddb:9}, //大回复
+ {pdf:18,daddb:10}, //大血量
+ {pdf:19,daddb:11}, //大攻击
+ {pdf:20,daddb:null}, //三维
+ {pdf:21,daddb:12}, //大手指
+ {pdf:10,daddb:17}, //加经验
+ {pdf:12,daddb:14}, //墨镜
+ {pdf:13,daddb:15}, //防废
+ {pdf:14,daddb:16}, //防毒
+ {pdf:PAD_PASS_BADGE,daddb:18}, //月卡
+];
+//paddb的潜觉对应数字
+Formation.daddbLatentMap = [
+ {pdf:1,daddb:[0,1]}, //HP
+ {pdf:2,daddb:[0,2]}, //攻击
+ {pdf:3,daddb:[0,3]}, //回复
+ {pdf:4,daddb:[0,4]}, //手指
+ {pdf:5,daddb:[0,5]}, //自回
+ {pdf:6,daddb:[0,6]}, //火盾
+ {pdf:7,daddb:[0,7]}, //水盾
+ {pdf:8,daddb:[0,8]}, //木盾
+ {pdf:9,daddb:[0,9]}, //光盾
+ {pdf:10,daddb:[0,10]}, //暗盾
+ {pdf:11,daddb:[0,0]}, //防坐
+ {pdf:12,daddb:[1,15]}, //三维
+ {pdf:13,daddb:[2,4]}, //不被换队长
+ {pdf:14,daddb:[2,3]}, //不掉废
+ {pdf:15,daddb:[2,2]}, //不掉毒
+ {pdf:16,daddb:[1,11]}, //进化杀
+ {pdf:17,daddb:[1,8]}, //觉醒杀
+ {pdf:18,daddb:[1,9]}, //强化杀
+ {pdf:19,daddb:[1,10]}, //卖钱杀
+ {pdf:20,daddb:[1,1]}, //神杀
+ {pdf:21,daddb:[1,0]}, //龙杀
+ {pdf:22,daddb:[1,2]}, //恶魔杀
+ {pdf:23,daddb:[1,3]}, //机械杀
+ {pdf:24,daddb:[1,7]}, //平衡杀
+ {pdf:25,daddb:[1,4]}, //攻击杀
+ {pdf:26,daddb:[1,5]}, //体力杀
+ {pdf:27,daddb:[1,6]}, //回复杀
+ {pdf:28,daddb:[1,12]}, //大HP
+ {pdf:29,daddb:[1,13]}, //大攻击
+ {pdf:30,daddb:[1,14]}, //大回复
+ {pdf:31,daddb:[1,21]}, //大手指
+ {pdf:32,daddb:[1,16]}, //大火盾
+ {pdf:33,daddb:[1,17]}, //大水盾
+ {pdf:34,daddb:[1,18]}, //大木盾
+ {pdf:35,daddb:[1,19]}, //大光盾
+ {pdf:36,daddb:[1,20]}, //大暗盾
+ {pdf:37,daddb:[2,1]}, //6色破无效
+ {pdf:38,daddb:[2,0]}, //3色破属吸
+ {pdf:39,daddb:[2,7]}, //C珠破吸
+ {pdf:40,daddb:[2,6]}, //心横解转转
+ {pdf:41,daddb:[2,5]}, //U解禁消
+ {pdf:42,daddb:[2,8]}, //伤害上限×2
+ {pdf:43,daddb:[1,22]}, //HP++
+ {pdf:44,daddb:[1,23]}, //攻击++
+ {pdf:45,daddb:[1,24]}, //回复++
+ {pdf:46,daddb:[2,9]}, //心追解云封
+ {pdf:47,daddb:[2,10]}, //心L大SB
+ {pdf:48,daddb:[2,12]}, //L解禁武器
+ {pdf:49,daddb:[2,11]}, //伤害上限×3
+];
+Formation.prototype.getDaddbQrObj = function()
+{
+ //PADDB目前只支持单人队伍
+ const [members,assists,badge] = this.teams[0];
+ let teamObj = {
+ name: this.title,
+ badge: Formation.daddbBadgeMap.find(_badge=>_badge.pdf === badge).daddb,
+ staffs: [],
+ }
+ for (let i = 0; i < members.length; i++) {
+ const m = members[i], a = assists[i];
+ teamObj.staffs[i] = {
+ staf: m.id || -1,
+ eq: a.id || -1,
+ sawak: m.sawoken || -1,
+ qawak: m.latent.map(n=>Formation.daddbLatentMap.find(latent=>latent.pdf === n).daddb),
+ };
+ }
+ return teamObj;
+}
Formation.prototype.getQrStr = function(type)
{
switch (type) {
@@ -752,6 +1010,9 @@ Formation.prototype.getQrStr = function(type)
case 'paddb': {
return JSON.stringify(this.getPaddbQrObj());
}
+ case 'daddb': {
+ return JSON.stringify(this.getDaddbQrObj());
+ }
case 'sanbon-v1': {
return this.getSanbonV1Url();
}
@@ -1727,6 +1988,11 @@ async function inputFromQrString(string)
re.type = "PADDB";
re.url = paddbObjToURL(obj)
}
+ else if (Array.isArray(obj?.staffs)) { //DADDB的对象格式
+ re.type = "DADDB";
+ const newFotmation = daddbFotmationToPdfFotmation(obj);
+ re.url = qrObjToUrl(newFotmation.getPdfQrObj(false));
+ }
else {
re.error = ERROR_No_formation_data;
//re.message = "无队伍数据 | No formation data";
@@ -1877,7 +2143,7 @@ function pdcFotmationToPdfFotmation(inputString)
const membersArr = t[0];
const assistArr = t[1];
//队伍徽章
- t[2] = pdcTeam.badge === 0 ? 0 : pdcBadgeMap.find(badge=>badge.pdc === pdcTeam.badge).pdf;
+ t[2] = pdcTeam.badge === 0 ? 0 : Formation.pdcBadgeMap.find(badge=>badge.pdc === pdcTeam.badge).pdf;
pdcTeam.members.forEach((member)=>{
const m = membersArr[member.get(15) || 0];
const a = assistArr[member.get(15) || 0];
@@ -1885,7 +2151,7 @@ function pdcFotmationToPdfFotmation(inputString)
a.id = member.get(9) || 0; //延迟是-1刚好一样
if (member.get(2))
{
- m.latent = member.get(2).map(pdcLatent=>pdcLatentMap.find(latent=>latent.pdc === pdcLatent)?.pdf ?? 0);
+ m.latent = member.get(2).map(pdcLatent=> Formation.pdcLatentMap.find(latent=>latent.pdc === pdcLatent)?.pdf ?? 0);
}
m.level = member.get(3) || 1;
a.level = member.get(10) || 1;
@@ -1912,7 +2178,7 @@ function paddbFotmationToPdfFotmation(obj)
f.detail = team.memo.replace(new RegExp('\\n?'+uploadMessage,"i"),"");
const t = f.teams[0];
//队伍徽章
- t[2] = paddbBadgeMap.find(badge=>badge.paddb === team.badge).pdf;
+ t[2] = Formation.paddbBadgeMap.find(badge=>badge.paddb === team.badge).pdf;
const members = t[0], assists = t[1];
for (let i = 0; i< members.length; i++) {
const m = members[i], a = assists[i], dm = team.monsters[i], da = team.assists[i];
@@ -1929,7 +2195,7 @@ function paddbFotmationToPdfFotmation(obj)
? Cards[m.id].awakenings.length //变身后的觉醒全满
: dm.awoken;
m.sawoken = dm.super_awoken - 2;
- m.latent = dm.latent_awokens.map(paddbLatent=>paddbLatentMap.find(latent=>latent.paddb === paddbLatent)?.pdf ?? 0);
+ m.latent = dm.latent_awokens.map(paddbLatent=>Formation.paddbLatentMap.find(latent=>latent.paddb === paddbLatent)?.pdf ?? 0);
m.skilllevel = dm.active_skill_level;
}
if (da) {
@@ -1947,6 +2213,37 @@ function paddbFotmationToPdfFotmation(obj)
}
return f;
}
+//解析DADDB的数据
+function daddbFotmationToPdfFotmation(obj)
+{
+ const team = obj;
+ const f = new Formation(1, 6);
+ f.title = team.name;
+ const t = f.teams[0];
+ //队伍徽章
+ t[2] = Formation.daddbBadgeMap.find(badge=>badge.daddb === team.badge).pdf;
+ const members = t[0], assists = t[1];
+ for (let i = 0; i< members.length; i++) {
+ const m = members[i], a = assists[i], dm = team.staffs[i];
+ if (dm) {
+ m.id = dm.staf > 0 ? dm.staf : 0;
+ a.id = dm.eq > 0 ? dm.eq : 0;
+ const mCard = m.card, aCard = a.card;
+ m.level = mCard.limitBreakIncr ? 120 : mCard.maxLevel;
+ a.level = aCard.limitBreakIncr ? 120 : aCard.maxLevel;
+
+ m.plus = [99,99,99];
+ a.plus = [99,99,99];
+
+ m.awoken = mCard.awakenings.length;
+ a.awoken = aCard.awakenings.length;
+
+ m.sawoken = dm.sawak;
+ m.latent = dm.qawak.map(daddbLatent=>Formation.daddbLatentMap.find(latent=>latent.daddb[0] === daddbLatent[0] && latent.daddb[1] === daddbLatent[1])?.pdf ?? 0);
+ }
+ }
+ return f;
+}
//截图
function captureScreenshot(target, transparent) {
statusLine?.writeText(localTranslating.status_message.prepare_capture);
@@ -2306,7 +2603,7 @@ function initialize() {
}
- if (location.protocol == "http:" && location.host != "localhost" && location.host != "127.0.0.1")
+ if (location.protocol == "http:" && location.hostname != "localhost" && location.hostname != "127.0.0.1")
{ //http不支持攝像頭
//qrReadBox.readQrCamera.classList.add(className_displayNone);
qrReadBox.readQrCamera.onclick = function()
@@ -2643,7 +2940,7 @@ function initialize() {
icon.onclick = insertIconToText;
insertAwokenIconList.appendChild(li);
}
- for (let id of new Set(pdcLatentMap.map(obj=>obj.pdf))) {
+ for (let id of new Set(Formation.pdcLatentMap.map(obj=>obj.pdf))) {
const li = document.createElement("li");
const icon = li.appendChild(createIndexedIcon('latent', id));
icon.onclick = insertIconToText;
diff --git a/solo.html b/solo.html
index f291fc0f..4f3b043d 100644
--- a/solo.html
+++ b/solo.html
@@ -1236,8 +1236,9 @@ const teamsCount = 1;