diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index e9f749f..d2710f6 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -142,8 +142,8 @@ Changelogs - Added Experimental Badge saving support - Added Experimental score import/export - Fixed where plugin may fail to register due to missing types in dev mode (invalid setup for dev, just enough to get around) - - Fixed where pacemaker isn't working as intended due to malformed ghost data on music.appoint response (~ DJ TROOPERS) - Fixed where unable to login after first-play (SPADA, SINOBUZ, Rootage) + - Fixed where pacemaker isn't working as intended due to malformed ghost data on music.appoint response (~ DJ TROOPERS) - Fixed where pacemaker isn't working as intented due to wrong condition check (HEROIC VERSE ~) - Fixed where pacemaker sub-type isn't load correctly (HEROIC VERSE ~) - Fixed where QPRO data doesn't get saved in WebUI @@ -154,7 +154,13 @@ Changelogs - Fixed where lightning settings doesn't get saved on logout - Fixed where Disable Music Preview, Disable HCN Color, VEFX Lock settings doesn't reflect - Fixed where MISS COUNT has 0 as default (including score import) - - Fixed where unable to import DP scores - Fixed where MISS COUNT doesn't get updated when exscore is same - Fixed where lightning model settings saved incorrectly + - Fixed where unable to import score if user has DP scores + - Fixed where unable to achieve dan if you failed once + - Fixed where unable to login (tricoro, CastHour, Rootage) + - Fixed where unable to specify rival in WebUI + - Fixed where music.arenaCPU isn't working as intended due to change of type (EPOLIS ~) + - Added error message for invalid score database entries + - Reverted `v0.1.15` dev mode related code changes (now requires proper dev setup, refer parent README.md) - WebUI is now display values of corresponding version diff --git a/iidx@asphyxia/data/grade.json b/iidx@asphyxia/data/grade.json index e1d24e3..df543f6 100644 --- a/iidx@asphyxia/data/grade.json +++ b/iidx@asphyxia/data/grade.json @@ -1,40 +1,48 @@ -{ - "31": { - "0": { - "15": { - "music_id": [ 25090, 23068, 19004, 29045 ], - "class_id": [ 3, 3, 3, 3 ] - }, - "16": { - "music_id": [ 23005, 27078, 22065, 27060 ], - "class_id": [ 3, 3, 3, 3 ] - }, - "17": { - "music_id": [ 29007, 26108, 19002, 18004 ], - "class_id": [ 3, 3, 3, 3 ] - }, - "18": { - "music_id": [ 25007, 18032, 16020, 12004 ], - "class_id": [ 3, 3, 3, 3 ] - } - }, - "1": { - "15": { - "music_id": [ 15032, 29033, 27092, 30020 ], - "class_id": [ 3, 3, 3, 3 ] - }, - "16": { - "music_id": [ 10028, 26070, 28091, 23075 ], - "class_id": [ 3, 3, 3, 3 ] - }, - "17": { - "music_id": [ 26012, 28002, 17017, 28005 ], - "class_id": [ 3, 3, 3, 3 ] - }, - "18": { - "music_id": [ 28008, 15001, 19002, 9028 ], - "class_id": [ 3, 3, 3, 3 ] - } - } - } -} +{ + "31": { + "0": { + "15": { + "music_id": [ 25090, 23068, 19004, 29045 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + }, + "16": { + "music_id": [ 23005, 27078, 22065, 27060 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + }, + "17": { + "music_id": [ 29007, 26108, 19002, 18004 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + }, + "18": { + "music_id": [ 25007, 18032, 16020, 12004 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + } + }, + "1": { + "15": { + "music_id": [ 15032, 29033, 27092, 30020 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + }, + "16": { + "music_id": [ 10028, 26070, 28091, 23075 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + }, + "17": { + "music_id": [ 26012, 28002, 17017, 28005 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + }, + "18": { + "music_id": [ 28008, 15001, 19002, 9028 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + } + } + } +} diff --git a/iidx@asphyxia/data/music_open.json b/iidx@asphyxia/data/music_open.json index 130943f..b37e248 100644 --- a/iidx@asphyxia/data/music_open.json +++ b/iidx@asphyxia/data/music_open.json @@ -1,60 +1,60 @@ -{ - "26": { - "26002": { "kind": 0 }, - "26006": { "kind": 0 }, - "26022": { "kind": 0 }, - "26045": { "kind": 0 } - }, - "27": { - "27070": { "kind": 0 }, - "27071": { "kind": 0 }, - "27073": { "kind": 0 } - }, - "28": { - "28001": { "kind": 0 }, - "28036": { "kind": 0 }, - "28038": { "kind": 0 }, - "28072": { "kind": 0 }, - "28074": { "kind": 0 } - }, - "29": { - "29071": { "kind": 0 }, - "29072": { "kind": 0 }, - "29075": { "kind": 0 }, - "29081": { "kind": 0 }, - "29082": { "kind": 0 }, - "29085": { "kind": 0 }, - "29101": { "kind": 0 }, - "29102": { "kind": 0 }, - "29103": { "kind": 0 } - }, - "30": { - "30038": { "kind": 0 }, - "30082": { "kind": 0 }, - "30083": { "kind": 0 }, - "30084": { "kind": 0 }, - "30085": { "kind": 0 }, - "30101": { "kind": 0 }, - "30102": { "kind": 0 }, - "30104": { "kind": 0 }, - "30105": { "kind": 0 } - }, - "31": { - "31021": { "kind": 0 }, - "31022": { "kind": 0 }, - "31023": { "kind": 0 }, - "31024": { "kind": 0 }, - "31025": { "kind": 0 }, - "31065": { "kind": 0 }, - "31066": { "kind": 0 }, - "31097": { "kind": 0 }, - "31098": { "kind": 0 }, - "31099": { "kind": 0 }, - "31100": { "kind": 0 }, - "31101": { "kind": 0 }, - "31102": { "kind": 0 }, - "31110": { "kind": 0 }, - "31112": { "kind": 0 }, - "31113": { "kind": 0 } - } -} +{ + "26": { + "26002": { "kind": 0 }, + "26006": { "kind": 0 }, + "26022": { "kind": 0 }, + "26045": { "kind": 0 } + }, + "27": { + "27070": { "kind": 0 }, + "27071": { "kind": 0 }, + "27073": { "kind": 0 } + }, + "28": { + "28001": { "kind": 0 }, + "28036": { "kind": 0 }, + "28038": { "kind": 0 }, + "28072": { "kind": 0 }, + "28074": { "kind": 0 } + }, + "29": { + "29071": { "kind": 0 }, + "29072": { "kind": 0 }, + "29075": { "kind": 0 }, + "29081": { "kind": 0 }, + "29082": { "kind": 0 }, + "29085": { "kind": 0 }, + "29101": { "kind": 0 }, + "29102": { "kind": 0 }, + "29103": { "kind": 0 } + }, + "30": { + "30038": { "kind": 0 }, + "30082": { "kind": 0 }, + "30083": { "kind": 0 }, + "30084": { "kind": 0 }, + "30085": { "kind": 0 }, + "30101": { "kind": 0 }, + "30102": { "kind": 0 }, + "30104": { "kind": 0 }, + "30105": { "kind": 0 } + }, + "31": { + "31021": { "kind": 0 }, + "31022": { "kind": 0 }, + "31023": { "kind": 0 }, + "31024": { "kind": 0 }, + "31025": { "kind": 0 }, + "31065": { "kind": 0 }, + "31066": { "kind": 0 }, + "31097": { "kind": 0 }, + "31098": { "kind": 0 }, + "31099": { "kind": 0 }, + "31100": { "kind": 0 }, + "31101": { "kind": 0 }, + "31102": { "kind": 0 }, + "31110": { "kind": 0 }, + "31112": { "kind": 0 }, + "31113": { "kind": 0 } + } +} diff --git a/iidx@asphyxia/handlers/gamesystem.ts b/iidx@asphyxia/handlers/gamesystem.ts index b8f830f..fa63eaa 100644 --- a/iidx@asphyxia/handlers/gamesystem.ts +++ b/iidx@asphyxia/handlers/gamesystem.ts @@ -17,7 +17,7 @@ export const gssysteminfo: EPR = async (info, data, send) => { } // following datas are made up needs to figure out correct way to do it // - let music_open = JSON.parse(await IO.ReadFile("data/music_open.json")); + let music_open = JSON.parse(await IO.ReadFile("data/music_open.json", "utf-8")); if (!_.isNil(music_open[version])) { result = { ...result, @@ -36,41 +36,45 @@ export const gssysteminfo: EPR = async (info, data, send) => { }); } - if (version >= 31) { - result.arena_schedule = { - ...result.arena_schedule, - rule_type: K.ITEM("u8", 0), - } + switch (version) { + case 31: + result.arena_schedule = { + ...result.arena_schedule, + rule_type: K.ITEM("u8", 0), // arena rule for online // + } - result = { - ...result, - grade_course: [], - } + result = { + ...result, + grade_course: [], + } - // following datas are made up needs to figure out correct way to do it // - let grade = JSON.parse(await IO.ReadFile("data/grade.json")); - if (!_.isNil(grade[version])) { - Object.keys(grade[version]).forEach(s => { - Object.keys(grade[version][s]).forEach(c => { - result.grade_course.push({ - play_style: K.ITEM("s32", parseInt(s)), - grade_id: K.ITEM("s32", parseInt(c)), - is_valid: K.ITEM("bool", true), - music_id_0: K.ITEM("s32", grade[version][s][c].music_id[0]), - class_id_0: K.ITEM("s32", grade[version][s][c].class_id[0]), - music_id_1: K.ITEM("s32", grade[version][s][c].music_id[1]), - class_id_1: K.ITEM("s32", grade[version][s][c].class_id[1]), - music_id_2: K.ITEM("s32", grade[version][s][c].music_id[2]), - class_id_2: K.ITEM("s32", grade[version][s][c].class_id[2]), - music_id_3: K.ITEM("s32", grade[version][s][c].music_id[3]), - class_id_3: K.ITEM("s32", grade[version][s][c].class_id[3]), - index: K.ITEM("s32", result.grade_course.length), - cube_num: K.ITEM("s32", 0), - kind: K.ITEM("s32", 0), + // following datas are made up needs to figure out correct way to do it // + let grade = JSON.parse(await IO.ReadFile("data/grade.json", "utf-8")); + if (!_.isNil(grade[version])) { + Object.keys(grade[version]).forEach(s => { + Object.keys(grade[version][s]).forEach(c => { + result.grade_course.push({ + play_style: K.ITEM("s32", parseInt(s)), + grade_id: K.ITEM("s32", parseInt(c)), + is_valid: K.ITEM("bool", true), + music_id_0: K.ITEM("s32", grade[version][s][c].music_id[0]), + class_id_0: K.ITEM("s32", grade[version][s][c].class_id[0]), + music_id_1: K.ITEM("s32", grade[version][s][c].music_id[1]), + class_id_1: K.ITEM("s32", grade[version][s][c].class_id[1]), + music_id_2: K.ITEM("s32", grade[version][s][c].music_id[2]), + class_id_2: K.ITEM("s32", grade[version][s][c].class_id[2]), + music_id_3: K.ITEM("s32", grade[version][s][c].music_id[3]), + class_id_3: K.ITEM("s32", grade[version][s][c].class_id[3]), + index: K.ITEM("s32", result.grade_course.length), + cube_num: K.ITEM("s32", 0), + kind: K.ITEM("s32", grade[version][s][c].kind), + }); }); }); - }); - } + } + + default: + break; } // arena_music_difficult // diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 1d4cad3..0758e87 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -1,4 +1,4 @@ -import { IDtoRef, Base64toNumArray, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide, ReftoQPRO, NumArrayToString, OldMidToVerMid, HextoBase64, NumArraytoBase64, NumArraytoHex } from "../util"; +import { IDtoRef, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide, ReftoQPRO, NumArrayToString, OldMidToVerMid } from "../util"; import { score, score_top } from "../models/score"; import { profile } from "../models/profile"; import { shop_data } from "../models/shop"; @@ -7,8 +7,8 @@ import { badge } from "../models/badge"; export const musicgetrank: EPR = async (info, data, send) => { const version = GetVersion(info); - const refid = await IDtoRef(parseInt($(data).attr().iidxid)); - const cltype = parseInt($(data).attr().cltype); // 0 -> SP, 1 -> DP // + const refid = await IDtoRef(Number($(data).attr().iidxid)); + const cltype = Number($(data).attr().cltype); // 0 -> SP, 1 -> DP // const music_data: any = ( await DB.Find(refid, { collection: "score", @@ -16,11 +16,11 @@ export const musicgetrank: EPR = async (info, data, send) => { ); const rival_refids = [ - [parseInt($(data).attr().iidxid0), await IDtoRef(parseInt($(data).attr().iidxid0))], - [parseInt($(data).attr().iidxid1), await IDtoRef(parseInt($(data).attr().iidxid1))], - [parseInt($(data).attr().iidxid2), await IDtoRef(parseInt($(data).attr().iidxid2))], - [parseInt($(data).attr().iidxid3), await IDtoRef(parseInt($(data).attr().iidxid3))], - [parseInt($(data).attr().iidxid4), await IDtoRef(parseInt($(data).attr().iidxid4))], + [Number($(data).attr().iidxid0), await IDtoRef(Number($(data).attr().iidxid0))], + [Number($(data).attr().iidxid1), await IDtoRef(Number($(data).attr().iidxid1))], + [Number($(data).attr().iidxid2), await IDtoRef(Number($(data).attr().iidxid2))], + [Number($(data).attr().iidxid3), await IDtoRef(Number($(data).attr().iidxid3))], + [Number($(data).attr().iidxid4), await IDtoRef(Number($(data).attr().iidxid4))], ]; let m = [], top = [], b = [], t = []; @@ -32,6 +32,8 @@ export const musicgetrank: EPR = async (info, data, send) => { }; indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; music_data.forEach((res: score) => { + if (_.isNil(res.cArray)) throw new Error("[music.getrank] There is unsupported entry in Database"); + temp_mid = NewMidToOldMid(res.mid); let verMid = OldMidToVerMid(temp_mid); @@ -45,7 +47,7 @@ export const musicgetrank: EPR = async (info, data, send) => { K.ITEM("str", NumArrayToString( [7, 4, 13, 3, 3], [verMid[1], a, res.esArray[indices[a]], rank_id, res.cArray[indices[a]]] // 4th element is rid (rank_id) // - ), { v: String(verMid[0]) } ) + ), { v: String(verMid[0]) }) ); } @@ -79,6 +81,8 @@ export const musicgetrank: EPR = async (info, data, send) => { else if (version < 20) { indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; music_data.forEach((res: score) => { + if (_.isNil(res.cArray)) throw new Error("[music.getrank] There is unsupported entry in Database"); + temp_mid = NewMidToOldMid(res.mid); let mVersion = Math.floor(temp_mid / 100); if (mVersion > version) return; @@ -124,6 +128,8 @@ export const musicgetrank: EPR = async (info, data, send) => { else indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; music_data.forEach((res: score) => { + if (_.isNil(res.cArray)) throw new Error("[music.getrank] There is unsupported entry in Database"); + let mVersion = Math.floor(res.mid / 1000); if (mVersion > version) return; @@ -190,7 +196,7 @@ export const musicgetrank: EPR = async (info, data, send) => { } return send.object({ - style: K.ATTR({type: String(cltype)}), + style: K.ATTR({ type: String(cltype) }), m, b, top, @@ -209,19 +215,19 @@ export const musicgetrank: EPR = async (info, data, send) => { export const musicgetralive: EPR = async (info, data, send) => { const version = GetVersion(info); - const refid = await IDtoRef(parseInt($(data).attr().iidxid)); - const cltype = parseInt($(data).attr().cltype); // 0 -> SP, 1 -> DP // + const refid = await IDtoRef(Number($(data).attr().iidxid)); + const cltype = Number($(data).attr().cltype); // 0 -> SP, 1 -> DP // const music_data: any = ( await DB.Find(refid, { collection: "score", }) ); const rival_refids = [ - [parseInt($(data).attr().iidxid0), await IDtoRef(parseInt($(data).attr().iidxid0))], - [parseInt($(data).attr().iidxid1), await IDtoRef(parseInt($(data).attr().iidxid1))], - [parseInt($(data).attr().iidxid2), await IDtoRef(parseInt($(data).attr().iidxid2))], - [parseInt($(data).attr().iidxid3), await IDtoRef(parseInt($(data).attr().iidxid3))], - [parseInt($(data).attr().iidxid4), await IDtoRef(parseInt($(data).attr().iidxid4))], + [Number($(data).attr().iidxid0), await IDtoRef(Number($(data).attr().iidxid0))], + [Number($(data).attr().iidxid1), await IDtoRef(Number($(data).attr().iidxid1))], + [Number($(data).attr().iidxid2), await IDtoRef(Number($(data).attr().iidxid2))], + [Number($(data).attr().iidxid3), await IDtoRef(Number($(data).attr().iidxid3))], + [Number($(data).attr().iidxid4), await IDtoRef(Number($(data).attr().iidxid4))], ]; let result = { @@ -232,6 +238,8 @@ export const musicgetralive: EPR = async (info, data, send) => { let indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; music_data.forEach((res: score) => { + if (_.isNil(res.cArray)) throw new Error("[music.getralive] There is unsupported entry in Database"); + myRecord[NewMidToOldMid(res.mid)] = [...res.esArray, ...res.cArray]; }); @@ -287,12 +295,12 @@ export const musicappoint: EPR = async (info, data, send) => { const version = GetVersion(info); // clid, ctype, grd, iidxid, lv, mid, subtype // - const refid = await IDtoRef(parseInt($(data).attr().iidxid)); - const ctype = parseInt($(data).attr().ctype); - const subtype = parseInt($(data).attr().subtype); - let mid = parseInt($(data).attr().mid); - let clid = parseInt($(data).attr().clid); - + const refid = await IDtoRef(Number($(data).attr().iidxid)); + const ctype = Number($(data).attr().ctype); + const subtype = Number($(data).attr().subtype); + let mid = Number($(data).attr().mid); + let clid = Number($(data).attr().clid); + const mapping = [1, 2, 3, 6, 7, 8]; if (version < 20) { mid = OldMidToNewMid(mid); @@ -320,8 +328,8 @@ export const musicappoint: EPR = async (info, data, send) => { } } - if (version < 16) mydata = K.ITEM("str", NumArraytoHex(Base64toNumArray(music_data[clid]))); - else mydata = K.ITEM("bin", Base64toNumArray(music_data[clid])); + if (version < 16) mydata = K.ITEM("str", Buffer.from(music_data[clid], "base64").toString("hex").toUpperCase()); + else mydata = K.ITEM("bin", Buffer.from(music_data[clid], "base64")); } /*** ctype @@ -357,7 +365,7 @@ export const musicappoint: EPR = async (info, data, send) => { if (_.isNaN(other_pcdata) || _.isNil(other_musicdata)) break; if (version < 16) { - sdata = K.ITEM("str", NumArraytoHex(Base64toNumArray(other_musicdata[clid])), { + sdata = K.ITEM("str", Buffer.from(other_musicdata[clid], "base64").toString("hex").toUpperCase(), { score: String(other_musicdata.esArray[clid]), pid: String(other_profile[1]), name: String(other_profile[0]), @@ -365,14 +373,14 @@ export const musicappoint: EPR = async (info, data, send) => { }); } else { - sdata = K.ITEM("bin", Base64toNumArray(other_musicdata[clid]), { + sdata = K.ITEM("bin", Buffer.from(other_musicdata[clid], "base64"), { score: String(other_musicdata.esArray[clid]), pid: String(other_profile[1]), name: String(other_profile[0]), riidxid: String(other_profile[2]) }); } - + break; default: @@ -383,8 +391,8 @@ export const musicappoint: EPR = async (info, data, send) => { if (_.isNil(mydata) && _.isNil(sdata)) return send.success(); if (version >= 27) { - let my_gauge_data = null; - if (!_.isNil(music_data)) my_gauge_data = Base64toNumArray(music_data[clid + 10]); + let my_gauge_data = Buffer.alloc(0), other_gauge_data = Buffer.alloc(0); + if (!_.isNil(music_data[clid + 10])) my_gauge_data = Buffer.from(music_data[clid + 10], "base64"); if (!_.isNil(sdata)) { if (_.isNil(other_musicdata.optArray)) { // migration // @@ -392,7 +400,7 @@ export const musicappoint: EPR = async (info, data, send) => { other_musicdata.opt2Array = Array(10).fill(0); } - let other_data = K.ITEM("bin", Base64toNumArray(other_musicdata[clid]), { + let other_data = K.ITEM("bin", Buffer.from(other_musicdata[clid], "base64"), { score: String(other_musicdata.esArray[clid]), achieve: String(other_pcdata[ClidToPlaySide(clid) + 2]), pid: String(other_profile[1]), @@ -402,9 +410,10 @@ export const musicappoint: EPR = async (info, data, send) => { option2: String(other_musicdata.opt2Array[clid]), }); + if (!_.isNil(other_musicdata[clid + 10])) other_gauge_data = Buffer.from(other_musicdata[clid + 10], "base64"); sdata = { ...other_data, - gauge_data: K.ITEM("bin", Base64toNumArray(other_musicdata[clid + 10])) + gauge_data: K.ITEM("bin", other_gauge_data) }; } @@ -436,7 +445,7 @@ export const musicappoint: EPR = async (info, data, send) => { export const musicreg: EPR = async (info, data, send) => { const version = GetVersion(info); - const refid = await IDtoRef(parseInt($(data).attr().iidxid)); + const refid = await IDtoRef(Number($(data).attr().iidxid)); const shop_data = await DB.FindOne({ collection: "shop_data", @@ -446,12 +455,12 @@ export const musicreg: EPR = async (info, data, send) => { }); // wid, oppid, opname, opt, opt2, pside, nocnt, anum // - const pgnum = parseInt($(data).attr().pgnum); - const gnum = parseInt($(data).attr().gnum); - const mnum = parseInt($(data).attr().mnum); - const cflg = parseInt($(data).attr().cflg); - let mid = parseInt($(data).attr().mid); - let clid = parseInt($(data).attr().clid); + const pgnum = Number($(data).attr().pgnum); + const gnum = Number($(data).attr().gnum); + const mnum = Number($(data).attr().mnum); + const cflg = Number($(data).attr().cflg); + let mid = Number($(data).attr().mid); + let clid = Number($(data).attr().clid); let exscore = (pgnum * 2 + gnum); let ghost = null, ghost_gauge = null; // Heroic Verse // let style = 0, option = 0, option_2 = 0, rid = -1; @@ -487,20 +496,20 @@ export const musicreg: EPR = async (info, data, send) => { let opt2Array = Array(10).fill(0); // USED OPTION (CastHour) // let update = 0; - if (!_.isNil($(data).attr().rid)) rid = parseInt($(data).attr().rid); - else if (!_.isNil($(data).attr().dj_level)) rid = parseInt($(data).attr().dj_level); + if (!_.isNil($(data).attr().rid)) rid = Number($(data).attr().rid); + else if (!_.isNil($(data).attr().dj_level)) rid = Number($(data).attr().dj_level); if (rid > -1) console.log(`[music.reg] rank_id : ${rid}`); - if (version == 14 || version == 15) ghost = HextoBase64($(data).str("ghost")); - else ghost = NumArraytoBase64($(data).buffer("ghost")); - + if (version < 16) ghost = Buffer.from($(data).str("ghost"), "hex").toString("base64"); + else ghost = $(data).buffer("ghost").toString("base64"); + if (version >= 27) { - ghost_gauge = NumArraytoBase64($(data).buffer("ghost_gauge")); - style = parseInt($(data).element("music_play_log").attr().play_style); + ghost_gauge = $(data).buffer("ghost_gauge").toString("base64"); + style = Number($(data).element("music_play_log").attr().play_style); if (version >= 29) { - option = parseInt($(data).element("music_play_log").attr().option1); - option_2 = parseInt($(data).element("music_play_log").attr().option2); + option = Number($(data).element("music_play_log").attr().option1); + option_2 = Number($(data).element("music_play_log").attr().option2); } } @@ -635,11 +644,11 @@ export const musicreg: EPR = async (info, data, send) => { collection: "badge", version: version, category_name: "djLevel", - flg_id: parseInt($(data).attr("badge").djLevel_badge_flg_id), + flg_id: Number($(data).attr("badge").djLevel_badge_flg_id), }, { $set: { - flg: parseInt($(data).attr("badge").djLevel_badge_flg), + flg: Number($(data).attr("badge").djLevel_badge_flg), } } ); @@ -652,11 +661,11 @@ export const musicreg: EPR = async (info, data, send) => { collection: "badge", version: version, category_name: "clear", - flg_id: parseInt($(data).attr("badge").clear_badge_flg_id), + flg_id: Number($(data).attr("badge").clear_badge_flg_id), }, { $set: { - flg: parseInt($(data).attr("badge").clear_badge_flg), + flg: Number($(data).attr("badge").clear_badge_flg), } } ); @@ -673,7 +682,7 @@ export const musicreg: EPR = async (info, data, send) => { }, { $set: { - flg: parseInt($(data).attr("badge").rivalChallenge_badge_flg), + flg: Number($(data).attr("badge").rivalChallenge_badge_flg), } } ); @@ -791,11 +800,11 @@ export const musicbreg: EPR = async (info, data, send) => { const version = GetVersion(info); // mid pgnum gnum cflg // - const refid = await IDtoRef(parseInt($(data).attr().iidxid)); - const pgnum = parseInt($(data).attr().pgnum); - const gnum = parseInt($(data).attr().gnum); - const cflg = parseInt($(data).attr().cflg); - let mid = parseInt($(data).attr().mid); + const refid = await IDtoRef(Number($(data).attr().iidxid)); + const pgnum = Number($(data).attr().pgnum); + const gnum = Number($(data).attr().gnum); + const cflg = Number($(data).attr().cflg); + let mid = Number($(data).attr().mid); let clid = 0; // SP BEGINNER // let exscore = (pgnum * 2 + gnum); @@ -879,7 +888,7 @@ export const musiccrate: EPR = async (info, data, send) => { const scores = await DB.Find(null, { collection: "score", }); - const cltype = parseInt($(data).attr().cltype); + const cltype = Number($(data).attr().cltype); let cFlgs: Record = {}, fcFlgs: Record = {}, @@ -893,6 +902,8 @@ export const musiccrate: EPR = async (info, data, send) => { let cFlgArray = Array(10).fill(0); let fcFlgArray = Array(10).fill(0); + if (_.isNil(res.cArray)) throw new Error("[music.crate] There is unsupported entry in Database"); + for (let a = 0; a < 10; a++) { if (res.cArray[a] != 0) totalArray[a] += 1; if (res.cArray[a] != 1) cFlgArray[a] += 1; @@ -924,10 +935,10 @@ export const musiccrate: EPR = async (info, data, send) => { let indices = [1, 2, 3, 6, 7, 8]; if (version == 14 || version == 15) { - let verMid = OldMidToVerMid(parseInt(key)); + let verMid = OldMidToVerMid(Number(key)); let str = cltype == 0 ? - `${NumArrayToString([7, 7, 7, 7], [verMid[1], cRate[1], cRate[2], cRate[3]])}ZZZZ`: + `${NumArrayToString([7, 7, 7, 7], [verMid[1], cRate[1], cRate[2], cRate[3]])}ZZZZ` : `${NumArrayToString([7, 7, 7, 7], [verMid[1], cRate[6], cRate[7], cRate[8]])}ZZZZ`; cdata.push( diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index da66eec..f077c9d 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -1,7 +1,7 @@ import { pcdata, KDZ_pcdata, IIDX27_pcdata, IIDX28_pcdata, IIDX29_pcdata, IIDX30_pcdata, JDZ_pcdata, LDJ_pcdata, IIDX21_pcdata, IIDX22_pcdata, IIDX23_pcdata, IIDX24_pcdata, IIDX25_pcdata, IIDX26_pcdata, JDJ_pcdata, HDD_pcdata, I00_pcdata, GLD_pcdata, IIDX31_pcdata } from "../models/pcdata"; import { grade } from "../models/grade"; import { custom, default_custom } from "../models/custom"; -import { IDtoCode, IDtoRef, Base64toNumArray, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter, NumArrayToString, NumArraytoHex, NumArraytoBase64 } from "../util"; +import { IDtoCode, IDtoRef, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter, NumArrayToString } from "../util"; import { eisei_grade, eisei_grade_data, lightning_custom, lightning_musicfilter, lightning_musicmemo, lightning_musicmemo_new, lightning_playdata, lightning_settings, lm_customdata, lm_playdata, lm_settings, lm_settings_new, musicfilter_data, musicmemo_data, musicmemo_data_new } from "../models/lightning"; import { profile, default_profile } from "../models/profile"; import { rival, rival_data } from "../models/rival"; @@ -121,7 +121,7 @@ export const pccommon: EPR = async (info, data, send) => { result = { ...result, license: { - string: K.ITEM("bin", [0x00]), // TODO:: figure out what this does (alloc size: 600) // + string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, pre_play: K.ATTR({ phase: String(U.GetConfig("pd_preplay")) }), toho_remix: K.ATTR({ phase: String(U.GetConfig("pd_tohoremix")) }), @@ -144,7 +144,7 @@ export const pccommon: EPR = async (info, data, send) => { result = { ...result, license: { - string: K.ITEM("bin", [0x00]), // TODO:: figure out what this does (alloc size: 600) // + string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, boss: K.ATTR({ phase: String(U.GetConfig("cp_boss")) }), event1_phase: K.ATTR({ phase: String(U.GetConfig("cp_event1")) }), @@ -167,7 +167,7 @@ export const pccommon: EPR = async (info, data, send) => { result = { ...result, license: { - string: K.ITEM("bin", [0x00]), // TODO:: figure out what this does (alloc size: 600) // + string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, boss: K.ATTR({ phase: String(U.GetConfig("sb_boss")) }), extra_boss_event: K.ATTR({ phase: String(U.GetConfig("sb_extraboss")) }), @@ -184,7 +184,7 @@ export const pccommon: EPR = async (info, data, send) => { result = { ...result, license: { - string: K.ITEM("bin", [0x00]), // TODO:: figure out what this does (alloc size: 600) // + string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, boss: K.ATTR({ phase: String(U.GetConfig("cb_boss")) }), event1_phase: K.ATTR({ phase: String(U.GetConfig("cb_event1")) }), @@ -200,7 +200,7 @@ export const pccommon: EPR = async (info, data, send) => { result = { ...result, license: { - string: K.ITEM("bin", [0x00]), // TODO:: figure out what this does (alloc size: 600) // + string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, boss: K.ATTR({ phase: String(U.GetConfig("rt_boss")) }), extra_boss_event: K.ATTR({ phase: String(U.GetConfig("rt_extraboss")) }), @@ -221,7 +221,7 @@ export const pccommon: EPR = async (info, data, send) => { ...result, movie_agreement: K.ATTR({ version: String(1) }), license: { - string: K.ITEM("bin", [0x00]), // TODO:: figure out what this does (alloc size: 600) // + string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, boss: K.ATTR({ phase: String(U.GetConfig("hv_boss")) }), vip_pass_black: {}, @@ -244,7 +244,7 @@ export const pccommon: EPR = async (info, data, send) => { ...result, movie_agreement: K.ATTR({ version: String(1) }), license: { - string: K.ITEM("bin", [0x00]), // TODO:: figure out what this does (alloc size: 600) // + string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), boss: K.ATTR({ phase: String(U.GetConfig("bo_boss")) }), @@ -271,7 +271,7 @@ export const pccommon: EPR = async (info, data, send) => { ...result, movie_agreement: K.ATTR({ version: String(1) }), license: { - string: K.ITEM("bin", [0x00]), // TODO:: figure out what this does (alloc size: 600) // + string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), boss: K.ATTR({ phase: String(1) }), // TODO:: verify // @@ -299,7 +299,7 @@ export const pccommon: EPR = async (info, data, send) => { ...result, movie_agreement: K.ATTR({ version: String(1) }), license: { - string: K.ITEM("bin", [0x00]), // TODO:: figure out what this does (alloc size: 600) // + string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), vip_pass_black: {}, @@ -321,7 +321,7 @@ export const pccommon: EPR = async (info, data, send) => { ...result, movie_agreement: K.ATTR({ version: String(1) }), license: { - string: K.ITEM("bin", [0x00]), // TODO:: figure out what this does (alloc size: 600) // + string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), vip_pass_black: {}, @@ -574,6 +574,12 @@ export const pcget: EPR = async (info, data, send) => { pcdata.dr_dppoint = IIDX29_pcdata.dr_dppoint; } + // temporary solution until figure out why this happening on others // + if (_.isNil(pcdata.orb)) { + pcdata.orb = 0; + pcdata.present_orb = 0; + } + const appendsettings = appendSettingConverter( custom.rank_folder, custom.clear_folder, @@ -589,7 +595,7 @@ export const pcget: EPR = async (info, data, send) => { custom.hide_iidxid, custom.disable_beginner_option, ); - let dArray = [], eArray = [], rArray = [], mArray = [], bArray = [], fArray = []; + let dArray = [], eArray = [], rArray = [], mArray = [], bArray = [], fArray = [], fsArray = []; grade.forEach((res: grade) => { dArray.push([res.style, res.gradeId, res.maxStage, res.archive]); @@ -753,9 +759,9 @@ export const pcget: EPR = async (info, data, send) => { event = await DB.FindOne(refid, { collection: "event_1", version: version }); if (!_.isNil(event)) { - event.cf = NumArraytoHex(Base64toNumArray(event.cf)); - event.pf = NumArraytoHex(Base64toNumArray(event.pf)); - event.mf = NumArraytoHex(Base64toNumArray(event.mf)); + event.cf = Buffer.from(event.cf, "base64").toString("hex"); + event.pf = Buffer.from(event.pf, "base64").toString("hex"); + event.mf = Buffer.from(event.mf, "base64").toString("hex"); } return send.pugFile("pug/JDZ/pcget.pug", { @@ -772,9 +778,9 @@ export const pcget: EPR = async (info, data, send) => { event = await DB.FindOne(refid, { collection: "event_1", version: version }); if (!_.isNil(event)) { - event.cf = NumArraytoHex(Base64toNumArray(event.cf)); - event.qcf = NumArraytoHex(Base64toNumArray(event.qcf)); - event.piece = NumArraytoHex(Base64toNumArray(event.piece)); + event.cf = Buffer.from(event.cf, "base64").toString("hex"); + event.qcf = Buffer.from(event.qcf, "base64").toString("hex"); + event.piece = Buffer.from(event.piece, "base64").toString("hex"); } return send.pugFile("pug/KDZ/pcget.pug", { @@ -788,8 +794,8 @@ export const pcget: EPR = async (info, data, send) => { }); } else if (version == 20) { - pcdata.st_stamp = _.isNil(pcdata.st_stamp) ? "00" : NumArraytoHex(Base64toNumArray(pcdata.st_stamp)); - pcdata.st_help = _.isNil(pcdata.st_help) ? "00" : NumArraytoHex(Base64toNumArray(pcdata.st_help)); + pcdata.st_stamp = _.isNil(pcdata.st_stamp) ? "00" : Buffer.from(pcdata.st_stamp, "base64").toString("hex"); + pcdata.st_help = _.isNil(pcdata.st_help) ? "00" : Buffer.from(pcdata.st_help, "base64").toString("hex"); let link5 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "link5" }); let tricolettepark = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "tricolettepark" }); @@ -797,7 +803,7 @@ export const pcget: EPR = async (info, data, send) => { let blueboss = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "blueboss" }); let yellowboss = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "yellowboss" }); - if (!_.isNil(blueboss)) blueboss.durability = NumArraytoHex(Base64toNumArray(blueboss.durability)); + if (!_.isNil(blueboss)) blueboss.durability = Buffer.from(blueboss.durability, "base64").toString("hex"); return send.pugFile("pug/LDJ/pcget.pug", { profile, @@ -835,6 +841,7 @@ export const pcget: EPR = async (info, data, send) => { mirage_lib_sub = [], delabity_lab = null, delabity_lab_sub = [], + anniv20 = null, epo_res = null, epo_res_sub = [], event_1 = null, @@ -843,16 +850,16 @@ export const pcget: EPR = async (info, data, send) => { switch (version) { case 21: - pcdata.st_album = _.isNil(pcdata.st_album) ? "00" : NumArraytoHex(Base64toNumArray(pcdata.st_album)); + pcdata.st_album = _.isNil(pcdata.st_album) ? "00" : Buffer.from(pcdata.st_album, "base64").toString("hex"); link5 = await DB.FindOne(refid, { collection: "event_1", version: 20, event_name: "link5" }); tricolettepark = await DB.FindOne(refid, { collection: "event_1", version: 20, event_name: "tricolettepark" }); boss1 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "boss1" }); - if (!_.isNil(boss1)) boss1.durability = NumArraytoHex(Base64toNumArray(boss1.durability)); + if (!_.isNil(boss1)) boss1.durability = Buffer.from(boss1.durability, "base64").toString("hex"); break; case 22: - pcdata.st_album = _.isNil(pcdata.st_album) ? "00" : NumArraytoHex(Base64toNumArray(pcdata.st_album)); + pcdata.st_album = _.isNil(pcdata.st_album) ? "00" : Buffer.from(pcdata.st_album, "base64").toString("hex"); chrono_diver = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "chrono_diver" }); pendual_talis = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "boss_event_3" }); @@ -864,7 +871,7 @@ export const pcget: EPR = async (info, data, send) => { qpronicle_phase3 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_phase3" }); break; case 23: - pcdata.st_tokimeki = _.isNil(pcdata.st_tokimeki) ? "00" : NumArraytoHex(Base64toNumArray(pcdata.st_tokimeki)); + pcdata.st_tokimeki = _.isNil(pcdata.st_tokimeki) ? "00" : Buffer.from(pcdata.st_tokimeki, "base64").toString("hex"); open_tokotoko = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); mystery_line = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event2_data" }); @@ -875,16 +882,16 @@ export const pcget: EPR = async (info, data, send) => { siege_sinobuz_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_name: "event1_data" }); siege_sinobuz_sub.forEach((res) => { res.is_clear = Number(res.is_clear); - res.ninjyutsu = NumArraytoHex(Base64toNumArray(res.ninjyutsu)); - res.card_damage = NumArraytoHex(Base64toNumArray(res.card_damage)); - res.card_clear = NumArraytoHex(Base64toNumArray(res.card_clear)); + res.ninjyutsu = Buffer.from(res.ninjyutsu, "base64").toString("hex"); + res.card_damage = Buffer.from(res.card_damage, "base64").toString("hex"); + res.card_clear = Buffer.from(res.card_clear, "base64").toString("hex"); }); ninja_shichikyoden = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event2_data" }); if (!_.isNil(ninja_shichikyoden)) - ninja_shichikyoden.last_select_dojo = NumArraytoHex(Base64toNumArray(ninja_shichikyoden.last_select_dojo)); + ninja_shichikyoden.last_select_dojo = Buffer.from(ninja_shichikyoden.last_select_dojo, "base64").toString("hex"); if (!_.isNil(ninja_shichikyoden)) - ninja_shichikyoden.enemy_damage = NumArraytoHex(Base64toNumArray(ninja_shichikyoden.enemy_damage)); + ninja_shichikyoden.enemy_damage = Buffer.from(ninja_shichikyoden.enemy_damage, "base64").toString("hex"); break; case 25: rush_cannonracer = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); @@ -896,15 +903,17 @@ export const pcget: EPR = async (info, data, send) => { case 26: mirage_lib = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); if (!_.isNil(mirage_lib)) - mirage_lib.quiz_control_list = NumArraytoHex(Base64toNumArray(mirage_lib.quiz_control_list)); + mirage_lib.quiz_control_list = Buffer.from(mirage_lib.quiz_control_list, "base64").toString("hex"); mirage_lib_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_name: "event1_data" }); mirage_lib_sub.forEach((res) => { - res.map_route_damage = NumArraytoHex(Base64toNumArray(res.map_route_damage)); + res.map_route_damage = Buffer.from(res.map_route_damage, "base64").toString("hex"); }); delabity_lab = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event2_data" }); delabity_lab_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_name: "event2_data" }); + + anniv20 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "anniv20_data" }); break; case 31: let myepo_map = await DB.Find(refid, { collection: "event_1", version: version, event_data: "myepo_map" }); @@ -946,10 +955,10 @@ export const pcget: EPR = async (info, data, send) => { } if (!_.isNil(pcdata.sp_mlist)) { - pcdata.sp_mlist = NumArraytoHex(Base64toNumArray(pcdata.sp_mlist)); - pcdata.sp_clist = NumArraytoHex(Base64toNumArray(pcdata.sp_clist)); - pcdata.dp_mlist = NumArraytoHex(Base64toNumArray(pcdata.dp_mlist)); - pcdata.dp_clist = NumArraytoHex(Base64toNumArray(pcdata.dp_clist)); + pcdata.sp_mlist = Buffer.from(pcdata.sp_mlist, "base64").toString("hex"); + pcdata.sp_clist = Buffer.from(pcdata.sp_clist, "base64").toString("hex"); + pcdata.dp_mlist = Buffer.from(pcdata.dp_mlist, "base64").toString("hex"); + pcdata.dp_clist = Buffer.from(pcdata.dp_clist, "base64").toString("hex"); } if (version >= 30) { @@ -1181,48 +1190,113 @@ export const pcget: EPR = async (info, data, send) => { bArray.sort((a, b) => a.id - b.id || a.flg_id - b.flg_id); } - return send.pugFile(`pug/LDJ/${version}pcget.pug`, { + let result: any = { profile, pcdata, - lm_playdata, - lm_settings, - lm_custom, - mArray, dArray, - eArray, - fArray, appendsettings, custom, rArray, - evtArray, - evtArray2, - evtArray3, - boss1, - link5, - tricolettepark, - chrono_diver, - qpronicle_chord, - qpronicle_chord_sub, - qpronicle_phase3, - pendual_talis, - open_tokotoko, - mystery_line, - mystery_line_sub, - siege_sinobuz, - siege_sinobuz_sub, - ninja_shichikyoden, - rush_cannonracer, - rush_cannonracer_sub, - mirage_lib, - mirage_lib_sub, - delabity_lab, - delabity_lab_sub, - epo_res, - epo_res_sub, - wArray, - bArray, shop_data, - }); + }; + + switch (version) { + case 21: + result = { + ...result, + link5, + tricolettepark, + boss1, + }; + break; + case 22: + result = { + ...result, + chrono_diver, + qpronicle_chord, + qpronicle_chord_sub, + qpronicle_phase3, + pendual_talis, + }; + break; + case 23: + result = { + ...result, + open_tokotoko, + mystery_line, + mystery_line_sub, + }; + break; + case 24: + result = { + ...result, + siege_sinobuz, + siege_sinobuz_sub, + ninja_shichikyoden, + }; + break; + case 25: + result = { + ...result, + rush_cannonracer, + rush_cannonracer_sub, + }; + break; + case 26: + result = { + ...result, + mirage_lib, + mirage_lib_sub, + delabity_lab, + delabity_lab_sub, + anniv20, + }; + break; + case 31: + result = { + ...result, + epo_res, + epo_res_sub, + }; + break; + + default: + break; + } + + switch (version) { + case 31: + result = { + ...result, + fArray, + }; + case 30: + result = { + ...result, + bArray, + }; + case 29: + case 28: + result = { + ...result, + mArray, + wArray, + }; + case 27: + result = { + ...result, + lm_playdata, + lm_settings, + lm_custom, + eArray, + evtArray, + evtArray2, + evtArray3, + }; + default: break; + } + + return send.pugFile(`pug/LDJ/${version}pcget.pug`, result); } return send.deny(); @@ -1802,8 +1876,8 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.st_dp_mplay = parseInt($(data).attr("step").dp_mplay); } pcdata.st_review = parseInt($(data).attr("step").review); - pcdata.st_stamp = NumArraytoBase64($(data).buffer("step")); // TODO:: verify // - pcdata.st_help = NumArraytoBase64($(data).element("step").buffer("help")); + pcdata.st_stamp = $(data).buffer("step").toString("base64"); // TODO:: verify // + pcdata.st_help = $(data).element("step").buffer("help").toString("base64"); } if (!_.isNil($(data).element("achievements"))) { @@ -2080,10 +2154,10 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("favorite"))) { - pcdata.sp_mlist = NumArraytoBase64($(data).element("favorite").buffer("sp_mlist")); - pcdata.sp_clist = NumArraytoBase64($(data).element("favorite").buffer("sp_clist")); - pcdata.dp_mlist = NumArraytoBase64($(data).element("favorite").buffer("dp_mlist")); - pcdata.dp_clist = NumArraytoBase64($(data).element("favorite").buffer("dp_clist")); + pcdata.sp_mlist = $(data).element("favorite").buffer("sp_mlist").toString("base64"); + pcdata.sp_clist = $(data).element("favorite").buffer("sp_clist").toString("base64"); + pcdata.dp_mlist = $(data).element("favorite").buffer("dp_mlist").toString("base64"); + pcdata.dp_clist = $(data).element("favorite").buffer("dp_clist").toString("base64"); } if (!_.isNil($(data).element("qpro_secret"))) { @@ -2115,7 +2189,7 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.st_sp_mplay = parseInt($(data).attr("step").sp_mplay); pcdata.st_dp_mplay = parseInt($(data).attr("step").dp_mplay); pcdata.st_last_select = parseInt($(data).attr("step").last_select); - pcdata.st_album = NumArraytoBase64($(data).buffer("step")); // TODO:: verify // + pcdata.st_album = $(data).buffer("step").toString("base64"); // TODO:: verify // } if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); @@ -2345,10 +2419,10 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("favorite"))) { - pcdata.sp_mlist = NumArraytoBase64($(data).element("favorite").buffer("sp_mlist")); - pcdata.sp_clist = NumArraytoBase64($(data).element("favorite").buffer("sp_clist")); - pcdata.dp_mlist = NumArraytoBase64($(data).element("favorite").buffer("dp_mlist")); - pcdata.dp_clist = NumArraytoBase64($(data).element("favorite").buffer("dp_clist")); + pcdata.sp_mlist = $(data).element("favorite").buffer("sp_mlist").toString("base64"); + pcdata.sp_clist = $(data).element("favorite").buffer("sp_clist").toString("base64"); + pcdata.dp_mlist = $(data).element("favorite").buffer("dp_mlist").toString("base64"); + pcdata.dp_clist = $(data).element("favorite").buffer("dp_clist").toString("base64"); } if (!_.isNil($(data).element("qpro_secret"))) { @@ -2388,7 +2462,7 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.st_sp_mplay = parseInt($(data).attr("step").sp_mplay); pcdata.st_dp_mplay = parseInt($(data).attr("step").dp_mplay); pcdata.st_age_list = parseInt($(data).attr("step").age_list); - pcdata.st_album = NumArraytoBase64($(data).buffer("step")); // TODO:: verify // + pcdata.st_album = $(data).buffer("step").toString("base64"); // TODO:: verify // pcdata.st_is_present = parseInt($(data).attr("step").is_present); pcdata.st_is_future = parseInt($(data).attr("step").is_future); } @@ -2581,10 +2655,10 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("favorite"))) { - pcdata.sp_mlist = NumArraytoBase64($(data).element("favorite").buffer("sp_mlist")); - pcdata.sp_clist = NumArraytoBase64($(data).element("favorite").buffer("sp_clist")); - pcdata.dp_mlist = NumArraytoBase64($(data).element("favorite").buffer("dp_mlist")); - pcdata.dp_clist = NumArraytoBase64($(data).element("favorite").buffer("dp_clist")); + pcdata.sp_mlist = $(data).element("favorite").buffer("sp_mlist").toString("base64"); + pcdata.sp_clist = $(data).element("favorite").buffer("sp_clist").toString("base64"); + pcdata.dp_mlist = $(data).element("favorite").buffer("dp_mlist").toString("base64"); + pcdata.dp_clist = $(data).element("favorite").buffer("dp_clist").toString("base64"); } if (!_.isNil($(data).element("qpro_secret"))) { @@ -2624,7 +2698,7 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.st_sp_mplay = parseInt($(data).attr("step").sp_mplay); pcdata.st_dp_mplay = parseInt($(data).attr("step").dp_mplay); pcdata.st_mission_gauge = parseInt($(data).attr("step").mission_gauge); - pcdata.st_tokimeki = NumArraytoBase64($(data).buffer("step")); // TODO:: verify // + pcdata.st_tokimeki = $(data).buffer("step").toString("base64"); // TODO:: verify // } if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); @@ -2751,10 +2825,10 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("favorite"))) { - pcdata.sp_mlist = NumArraytoBase64($(data).element("favorite").buffer("sp_mlist")); - pcdata.sp_clist = NumArraytoBase64($(data).element("favorite").buffer("sp_clist")); - pcdata.dp_mlist = NumArraytoBase64($(data).element("favorite").buffer("dp_mlist")); - pcdata.dp_clist = NumArraytoBase64($(data).element("favorite").buffer("dp_clist")); + pcdata.sp_mlist = $(data).element("favorite").buffer("sp_mlist").toString("base64"); + pcdata.sp_clist = $(data).element("favorite").buffer("sp_clist").toString("base64"); + pcdata.dp_mlist = $(data).element("favorite").buffer("dp_mlist").toString("base64"); + pcdata.dp_clist = $(data).element("favorite").buffer("dp_clist").toString("base64"); } if (!_.isNil($(data).element("qpro_secret"))) { @@ -2938,10 +3012,10 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("favorite"))) { - pcdata.sp_mlist = NumArraytoBase64($(data).element("favorite").buffer("sp_mlist")); - pcdata.sp_clist = NumArraytoBase64($(data).element("favorite").buffer("sp_clist")); - pcdata.dp_mlist = NumArraytoBase64($(data).element("favorite").buffer("dp_mlist")); - pcdata.dp_clist = NumArraytoBase64($(data).element("favorite").buffer("dp_clist")); + pcdata.sp_mlist = $(data).element("favorite").buffer("sp_mlist").toString("base64"); + pcdata.sp_clist = $(data).element("favorite").buffer("sp_clist").toString("base64"); + pcdata.dp_mlist = $(data).element("favorite").buffer("dp_mlist").toString("base64"); + pcdata.dp_clist = $(data).element("favorite").buffer("dp_clist").toString("base64"); } if (!_.isNil($(data).element("qpro_secret"))) { @@ -3109,10 +3183,10 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("favorite"))) { - pcdata.sp_mlist = NumArraytoBase64($(data).element("favorite").buffer("sp_mlist")); - pcdata.sp_clist = NumArraytoBase64($(data).element("favorite").buffer("sp_clist")); - pcdata.dp_mlist = NumArraytoBase64($(data).element("favorite").buffer("dp_mlist")); - pcdata.dp_clist = NumArraytoBase64($(data).element("favorite").buffer("dp_clist")); + pcdata.sp_mlist = $(data).element("favorite").buffer("sp_mlist").toString("base64"); + pcdata.sp_clist = $(data).element("favorite").buffer("sp_clist").toString("base64"); + pcdata.dp_mlist = $(data).element("favorite").buffer("dp_mlist").toString("base64"); + pcdata.dp_clist = $(data).element("favorite").buffer("dp_clist").toString("base64"); } if (!_.isNil($(data).element("qpro_secret"))) { @@ -3143,12 +3217,12 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.st_dp_dj_mission_level = parseInt($(data).attr("step").dp_dj_mission_level); pcdata.st_sp_clear_mission_level = parseInt($(data).attr("step").sp_clear_mission_level); pcdata.st_dp_clear_mission_level = parseInt($(data).attr("step").dp_clear_mission_level); - pcdata.st_sp_dj_mission_clear = parseInt($(data).attr("step").dp_clear_mission_level); - pcdata.st_dp_dj_mission_clear = parseInt($(data).attr("step").dp_clear_mission_level); - pcdata.st_sp_clear_mission_clear = parseInt($(data).attr("step").dp_clear_mission_level); - pcdata.st_dp_clear_mission_clear = parseInt($(data).attr("step").dp_clear_mission_level); - pcdata.st_sp_mplay = parseInt($(data).attr("step").dp_clear_mission_level); - pcdata.st_dp_mplay = parseInt($(data).attr("step").dp_clear_mission_level); + pcdata.st_sp_dj_mission_clear = parseInt($(data).attr("step").sp_dj_mission_clear); + pcdata.st_dp_dj_mission_clear = parseInt($(data).attr("step").dp_dj_mission_clear); + pcdata.st_sp_clear_mission_clear = parseInt($(data).attr("step").sp_clear_mission_clear); + pcdata.st_dp_clear_mission_clear = parseInt($(data).attr("step").dp_clear_mission_clear); + pcdata.st_sp_mplay = parseInt($(data).attr("step").sp_mplay); + pcdata.st_dp_mplay = parseInt($(data).attr("step").dp_mplay); pcdata.st_tips_read_list = parseInt($(data).attr("step").tips_read_list); } @@ -3194,7 +3268,7 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.present_orb += parseInt($(data).attr("orb_data").present_orb); } - // skin_customize_flg (attr: skin_frame_flg, skin_bgm_flg) // + // skin_customize_flg (attr: skin_frame_flg, skin_bgm_flg, ...) // // TODO:: fix event saving, these event savings hasn't fully tested // if (hasEventData) { @@ -3486,10 +3560,11 @@ export const pcsave: EPR = async (info, data, send) => { if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); if (!_.isNil($(data).element("orb_data"))) { - if (version == 31) { + if (version >= 31) { pcdata.orb += parseInt($(data).attr("orb_data").add_orb_normal); pcdata.orb += parseInt($(data).attr("orb_data").add_orb_event); pcdata.present_orb += parseInt($(data).attr("orb_data").rest_orb); + // use_present_orb // } else { pcdata.orb += parseInt($(data).attr("orb_data").add_orb); @@ -3947,217 +4022,222 @@ export const pcsave: EPR = async (info, data, send) => { let badge_data = []; let badge = $(data).element("badge"); - if (version == 30) { - if (!(_.isNil(badge.element("today_recommend")))) { - let badgeInfo = { - category_id: "today_recommend", - flg_id: 0, - flg: parseInt(badge.element("today_recommend").attr().flg), - }; - - badge_data.push(badgeInfo); - } - - if (!(_.isNil(badge.element("weekly_ranking")))) { - let badgeInfo = { - category_id: "weekly_ranking", - flg_id: 0, - flg: parseInt(badge.element("weekly_ranking").attr().flg), - }; - - badge_data.push(badgeInfo); - } - - if (!(_.isNil(badge.element("visitor")))) { - badge.elements("visitor").forEach((res) => { + switch (version) { + case 30: + if (!(_.isNil(badge.element("today_recommend")))) { let badgeInfo = { - category_id: "visitor", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), - }; - - badge_data.push(badgeInfo); - }); - } - - if (!(_.isNil(badge.element("notes_radar")))) { - badge.elements("notes_radar").forEach((res) => { - let badgeInfo = { - category_id: "notes_radar", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), - }; - - badge_data.push(badgeInfo); - }); - } - - if (!(_.isNil(badge.element("world_tourism")))) { - let badgeInfo = { - category_id: "world_tourism", - flg_id: 0, - flg: parseInt(badge.element("world_tourism").attr().flg), - }; - - badge_data.push(badgeInfo); - } - - if (!(_.isNil(badge.element("event1")))) { - badge.elements("event1").forEach((res) => { - let badgeInfo = { - category_id: "event1", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), - }; - - badge_data.push(badgeInfo); - }); - } - - if (!(_.isNil(badge.element("arena")))) { - badge.elements("arena").forEach((res) => { - let badgeInfo = { - category_id: "arena", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), - }; - - badge_data.push(badgeInfo); - }); - } - - if (!(_.isNil(badge.element("iidx_exam")))) { - let badgeInfo = { - category_id: "iidx_exam", - flg_id: 0, - flg: parseInt(badge.element("iidx_exam").attr().flg), - }; - - badge_data.push(badgeInfo); - } - } - else if (version == 31) { - if (!(_.isNil(badge.element("step_up")))) { - badge.elements("step_up").forEach((res) => { - let badgeInfo = { - category_id: "step_up", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), - }; - - badge_data.push(badgeInfo); - }); - } - - if (!(_.isNil(badge.element("today_recommend")))) { - let badgeInfo = { - category_id: "today_recommend", - flg_id: 0, - flg: parseInt(badge.element("today_recommend").attr().flg), - }; - - badge_data.push(badgeInfo); - } - - if (!(_.isNil(badge.element("weekly_ranking")))) { - let badgeInfo = { - category_id: "weekly_ranking", - flg_id: 0, - flg: parseInt(badge.element("weekly_ranking").attr().flg), - }; - - badge_data.push(badgeInfo); - } - - if (!(_.isNil(badge.element("visitor")))) { - badge.elements("visitor").forEach((res) => { - let badgeInfo = { - category_id: "visitor", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), - }; - - badge_data.push(badgeInfo); - }); - } - - if (!(_.isNil(badge.element("notes_radar")))) { - badge.elements("notes_radar").forEach((res) => { - let badgeInfo = { - category_id: "notes_radar", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), - }; - - badge_data.push(badgeInfo); - }); - } - - if (!(_.isNil(badge.element("tsujigiri")))) { - let badgeInfo = { - category_id: "tsujigiri", - flg_id: 0, - flg: parseInt(badge.element("tsujigiri").attr().flg), - }; - - badge_data.push(badgeInfo); - } - - if (!(_.isNil(badge.element("iidx_exam")))) { - let badgeInfo = { - category_id: "iidx_exam", - flg_id: 0, - flg: parseInt(badge.element("iidx_exam").attr().flg), - }; - - badge_data.push(badgeInfo); - } - - if (!(_.isNil(badge.element("world_tourism")))) { - let badgeInfo = { - category_id: "world_tourism", - flg_id: 0, - flg: parseInt(badge.element("world_tourism").attr().flg), - }; - - badge_data.push(badgeInfo); - } - - if (!(_.isNil(badge.element("event1")))) { - badge.elements("event1").forEach((res) => { - let badgeInfo = { - category_id: "event1", + category_id: "today_recommend", flg_id: 0, - flg: parseInt(res.attr().flg), + flg: parseInt(badge.element("today_recommend").attr().flg), }; badge_data.push(badgeInfo); - }); - } + } - if (!(_.isNil(badge.element("arena")))) { - badge.elements("arena").forEach((res) => { + if (!(_.isNil(badge.element("weekly_ranking")))) { let badgeInfo = { - category_id: "arena", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), - }; - - badge_data.push(badgeInfo); - }); - } - - if (!(_.isNil(badge.element("event2")))) { - badge.elements("event2").forEach((res) => { - let badgeInfo = { - category_id: "event2", + category_id: "weekly_ranking", flg_id: 0, - flg: parseInt(res.attr().flg), + flg: parseInt(badge.element("weekly_ranking").attr().flg), }; badge_data.push(badgeInfo); - }); - } + } + + if (!(_.isNil(badge.element("visitor")))) { + badge.elements("visitor").forEach((res) => { + let badgeInfo = { + category_id: "visitor", + flg_id: parseInt(res.attr().flg_id), + flg: parseInt(res.attr().flg), + }; + + badge_data.push(badgeInfo); + }); + } + + if (!(_.isNil(badge.element("notes_radar")))) { + badge.elements("notes_radar").forEach((res) => { + let badgeInfo = { + category_id: "notes_radar", + flg_id: parseInt(res.attr().flg_id), + flg: parseInt(res.attr().flg), + }; + + badge_data.push(badgeInfo); + }); + } + + if (!(_.isNil(badge.element("world_tourism")))) { + let badgeInfo = { + category_id: "world_tourism", + flg_id: 0, + flg: parseInt(badge.element("world_tourism").attr().flg), + }; + + badge_data.push(badgeInfo); + } + + if (!(_.isNil(badge.element("event1")))) { + badge.elements("event1").forEach((res) => { + let badgeInfo = { + category_id: "event1", + flg_id: parseInt(res.attr().flg_id), + flg: parseInt(res.attr().flg), + }; + + badge_data.push(badgeInfo); + }); + } + + if (!(_.isNil(badge.element("arena")))) { + badge.elements("arena").forEach((res) => { + let badgeInfo = { + category_id: "arena", + flg_id: parseInt(res.attr().flg_id), + flg: parseInt(res.attr().flg), + }; + + badge_data.push(badgeInfo); + }); + } + + if (!(_.isNil(badge.element("iidx_exam")))) { + let badgeInfo = { + category_id: "iidx_exam", + flg_id: 0, + flg: parseInt(badge.element("iidx_exam").attr().flg), + }; + + badge_data.push(badgeInfo); + } + break; + case 31: + if (!(_.isNil(badge.element("step_up")))) { + badge.elements("step_up").forEach((res) => { + let badgeInfo = { + category_id: "step_up", + flg_id: parseInt(res.attr().flg_id), + flg: parseInt(res.attr().flg), + }; + + badge_data.push(badgeInfo); + }); + } + + if (!(_.isNil(badge.element("today_recommend")))) { + let badgeInfo = { + category_id: "today_recommend", + flg_id: 0, + flg: parseInt(badge.element("today_recommend").attr().flg), + }; + + badge_data.push(badgeInfo); + } + + if (!(_.isNil(badge.element("weekly_ranking")))) { + let badgeInfo = { + category_id: "weekly_ranking", + flg_id: 0, + flg: parseInt(badge.element("weekly_ranking").attr().flg), + }; + + badge_data.push(badgeInfo); + } + + if (!(_.isNil(badge.element("visitor")))) { + badge.elements("visitor").forEach((res) => { + let badgeInfo = { + category_id: "visitor", + flg_id: parseInt(res.attr().flg_id), + flg: parseInt(res.attr().flg), + }; + + badge_data.push(badgeInfo); + }); + } + + if (!(_.isNil(badge.element("notes_radar")))) { + badge.elements("notes_radar").forEach((res) => { + let badgeInfo = { + category_id: "notes_radar", + flg_id: parseInt(res.attr().flg_id), + flg: parseInt(res.attr().flg), + }; + + badge_data.push(badgeInfo); + }); + } + + if (!(_.isNil(badge.element("tsujigiri")))) { + let badgeInfo = { + category_id: "tsujigiri", + flg_id: 0, + flg: parseInt(badge.element("tsujigiri").attr().flg), + }; + + badge_data.push(badgeInfo); + } + + if (!(_.isNil(badge.element("iidx_exam")))) { + let badgeInfo = { + category_id: "iidx_exam", + flg_id: 0, + flg: parseInt(badge.element("iidx_exam").attr().flg), + }; + + badge_data.push(badgeInfo); + } + + if (!(_.isNil(badge.element("world_tourism")))) { + let badgeInfo = { + category_id: "world_tourism", + flg_id: 0, + flg: parseInt(badge.element("world_tourism").attr().flg), + }; + + badge_data.push(badgeInfo); + } + + if (!(_.isNil(badge.element("event1")))) { + badge.elements("event1").forEach((res) => { + let badgeInfo = { + category_id: "event1", + flg_id: 0, + flg: parseInt(res.attr().flg), + }; + + badge_data.push(badgeInfo); + }); + } + + if (!(_.isNil(badge.element("arena")))) { + badge.elements("arena").forEach((res) => { + let badgeInfo = { + category_id: "arena", + flg_id: parseInt(res.attr().flg_id), + flg: parseInt(res.attr().flg), + }; + + badge_data.push(badgeInfo); + }); + } + + if (!(_.isNil(badge.element("event2")))) { + badge.elements("event2").forEach((res) => { + let badgeInfo = { + category_id: "event2", + flg_id: 0, + flg: parseInt(res.attr().flg), + }; + + badge_data.push(badgeInfo); + }); + } + break; + + default: + break; } badge_data.forEach((res) => { @@ -4345,19 +4425,13 @@ export const pcgetlanegacha: EPR = async (info, data, send) => { ); } + // settings(sp, dp_left, dp_right), info(last_page) // + return send.object({ ticket: tArray, - settings: K.ATTR({ - sp: String(-1), - dp_left: String(-1), - dp_right: String(-1), - }), free: K.ATTR({ num: String(10), }), - info: K.ATTR({ - last_page: String(0), - }), }); }; diff --git a/iidx@asphyxia/models/arena.ts b/iidx@asphyxia/models/arena.ts index e5e7ecd..fcfdc21 100644 --- a/iidx@asphyxia/models/arena.ts +++ b/iidx@asphyxia/models/arena.ts @@ -1,46 +1,46 @@ -export const IIDX_CPUS = [ - [ - [6, 4, 5, 0], - [7, 5, 6, 0], - [8, 6, 6, 0], - [9, 6, 7, 0], - [10, 7, 7, 0], - [10, 7, 8, 0], - [11, 8, 8, 0], - [11, 8, 9, 0], - [12, 9, 9, 0], - [12, 9, 10, 0], - [13, 9, 10, 0], - [13, 10, 10, 0], - [14, 10, 11, 0], - [14, 10, 11, 1], - [15, 11, 11, 1], - [15, 11, 12, 1], - [16, 11, 12, 1], - [16, 11, 12, 1], - [17, 12, 12, 1], - [18, 12, 12, 1], - ], - [ - [6, 3, 5, 0], - [7, 3, 5, 0], - [8, 4, 5, 0], - [8, 4, 5, 0], - [9, 5, 6, 0], - [9, 5, 6, 0], - [10, 6, 6, 0], - [10, 6, 7, 0], - [11, 7, 7, 0], - [11, 7, 8, 0], - [12, 8, 8, 0], - [12, 8, 9, 0], - [13, 9, 9, 0], - [13, 9, 10, 0], - [14, 9, 10, 0], - [15, 10, 10, 0], - [15, 10, 11, 0], - [16, 11, 11, 1], - [17, 11, 12, 1], - [18, 12, 12, 1], - ], +export const IIDX_CPUS = [ + [ + [6, 4, 5, 0], + [7, 5, 6, 0], + [8, 6, 6, 0], + [9, 6, 7, 0], + [10, 7, 7, 0], + [10, 7, 8, 0], + [11, 8, 8, 0], + [11, 8, 9, 0], + [12, 9, 9, 0], + [12, 9, 10, 0], + [13, 9, 10, 0], + [13, 10, 10, 0], + [14, 10, 11, 0], + [14, 10, 11, 1], + [15, 11, 11, 1], + [15, 11, 12, 1], + [16, 11, 12, 1], + [16, 11, 12, 1], + [17, 12, 12, 1], + [18, 12, 12, 1], + ], + [ + [6, 3, 5, 0], + [7, 3, 5, 0], + [8, 4, 5, 0], + [8, 4, 5, 0], + [9, 5, 6, 0], + [9, 5, 6, 0], + [10, 6, 6, 0], + [10, 6, 7, 0], + [11, 7, 7, 0], + [11, 7, 8, 0], + [12, 8, 8, 0], + [12, 8, 9, 0], + [13, 9, 9, 0], + [13, 9, 10, 0], + [14, 9, 10, 0], + [15, 10, 10, 0], + [15, 10, 11, 0], + [16, 11, 11, 1], + [17, 11, 12, 1], + [18, 12, 12, 1], + ], ]; diff --git a/iidx@asphyxia/models/badge.ts b/iidx@asphyxia/models/badge.ts index 2683b26..5082980 100644 --- a/iidx@asphyxia/models/badge.ts +++ b/iidx@asphyxia/models/badge.ts @@ -1,8 +1,8 @@ -export interface badge { - collection: "badge"; - version: number; - - category_name: string; - flg_id: number; - flg: number; -} +export interface badge { + collection: "badge"; + version: number; + + category_name: string; + flg_id: number; + flg: number; +} diff --git a/iidx@asphyxia/models/shop.ts b/iidx@asphyxia/models/shop.ts index afb1320..2d45498 100644 --- a/iidx@asphyxia/models/shop.ts +++ b/iidx@asphyxia/models/shop.ts @@ -1,10 +1,10 @@ -export interface shop_data { - collection: "shop_data"; - +export interface shop_data { + collection: "shop_data"; + opname: string; pid: number; - cls_opt: number; -} + cls_opt: number; +} export interface convention_data { collection: "shop_convention"; diff --git a/iidx@asphyxia/pug/LDJ/31pcget.pug b/iidx@asphyxia/pug/LDJ/31pcget.pug index 350dec5..ff4f999 100644 --- a/iidx@asphyxia/pug/LDJ/31pcget.pug +++ b/iidx@asphyxia/pug/LDJ/31pcget.pug @@ -1,108 +1,108 @@ -IIDX31pc(status="0" qproback=custom.qpro_back) - pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach mode=pcdata.mode pmode=pcdata.pmode ngrade=pcdata.ngrade rtype=pcdata.rtype player_kind=pcdata.player_kind sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 gpos=pcdata.gpos s_sorttype=pcdata.s_sorttype d_sorttype=pcdata.d_sorttype s_pace=pcdata.s_pace d_pace=pcdata.d_pace s_gno=pcdata.s_gno d_gno=pcdata.d_gno s_sub_gno=pcdata.s_sub_gno d_sub_gno=pcdata.d_sub_gno s_gtype=pcdata.s_gtype d_gtype=pcdata.d_gtype s_sdlen=pcdata.s_sdlen d_sdlen=pcdata.d_sdlen s_sdtype=pcdata.s_sdtype d_sdtype=pcdata.d_sdtype s_timing=pcdata.s_timing d_timing=pcdata.d_timing s_notes=pcdata.s_notes d_notes=pcdata.d_notes s_judge=pcdata.s_judge d_judge=pcdata.d_judge s_judgeAdj=pcdata.s_judgeAdj d_judgeAdj=pcdata.d_judgeAdj s_hispeed=pcdata.s_hispeed d_hispeed=pcdata.d_hispeed s_liflen=pcdata.s_liflen d_liflen=pcdata.d_liflen s_disp_judge=pcdata.s_disp_judge d_disp_judge=pcdata.d_disp_judge s_opstyle=pcdata.s_opstyle d_opstyle=pcdata.d_opstyle s_graph_score=pcdata.s_graph_score d_graph_score=pcdata.d_graph_score s_auto_scrach=pcdata.s_auto_scrach d_auto_scrach=pcdata.d_auto_scrach s_gauge_disp=pcdata.s_gauge_disp d_gauge_disp=pcdata.d_gauge_disp s_lane_brignt=pcdata.s_lane_brignt d_lane_brignt=pcdata.d_lane_brignt s_camera_layout=pcdata.s_camera_layout d_camera_layout=pcdata.d_camera_layout s_ghost_score=pcdata.s_ghost_score d_ghost_score=pcdata.d_ghost_score s_tsujigiri_disp=pcdata.s_tsujigiri_disp d_tsujigiri_disp=pcdata.d_tsujigiri_disp s_auto_adjust=pcdata.s_auto_adjust d_auto_adjust=pcdata.d_auto_adjust s_timing_split=pcdata.s_timing_split d_timing_split=pcdata.d_timing_split s_visualization=pcdata.s_visualization d_visualization=pcdata.d_visualization s_classic_hispeed=pcdata.s_classic_hispeed d_classic_hispeed=pcdata.d_classic_hispeed) - lightning_play_data(dpnum=lm_playdata.dp_num spnum=lm_playdata.sp_num) - lightning_setting(headphone_vol=lm_settings.headphone_vol resistance_dp_left=lm_settings.resistance_dp_left resistance_dp_right=lm_settings.resistance_dp_right resistance_sp_left=lm_settings.resistance_sp_left resistance_sp_right=lm_settings.resistance_sp_right keyboard_kind=lm_settings.keyboard_kind brightness=lm_settings.brightness) - slider(__type="s32" __count="7") #{lm_settings.slider[0]} #{lm_settings.slider[1]} #{lm_settings.slider[2]} #{lm_settings.slider[3]} #{lm_settings.slider[4]} #{lm_settings.slider[5]} #{lm_settings.slider[6]} - light(__type="bool" __count="10") #{lm_settings.light[0]} #{lm_settings.light[1]} #{lm_settings.light[2]} #{lm_settings.light[3]} #{lm_settings.light[4]} #{lm_settings.light[5]} #{lm_settings.light[6]} #{lm_settings.light[7]} #{lm_settings.light[8]} #{lm_settings.light[9]} - concentration(__type="bool") #{lm_settings.concentration} - spdp_rival(flg="-1") - bind_eaappli - ea_premium_course - secret - flg1(__type="s64" __count="3") -1 -1 -1 - flg2(__type="s64" __count="3") -1 -1 -1 - flg3(__type="s64" __count="3") -1 -1 -1 - flg4(__type="s64" __count="3") -1 -1 -1 - leggendaria - flg1(__type="s64" __count="3") -1 -1 -1 - music_memo - - for (let m of mArray) - folder(play_style=m.play_style folder_id=m.folder_idx name=m.folder_name) - music_id(__type="s32" __count="10") #{m.music_ids[0]} #{m.music_ids[1]} #{m.music_ids[2]} #{m.music_ids[3]} #{m.music_ids[4]} #{m.music_ids[5]} #{m.music_ids[6]} #{m.music_ids[7]} #{m.music_ids[8]} #{m.music_ids[9]} - music_filter - - for (let f of fArray) - folder(play_style=f.play_style folder_id=f.folder_id filter_id=f.filter_id value0=f.value0 value1=f.value1) - is_valid(__type="bool") #{f.is_valid} - qpro_secret - head(__type="s64" __count="7") #{custom.qpro_secret_head[0]} #{custom.qpro_secret_head[1]} #{custom.qpro_secret_head[2]} #{custom.qpro_secret_head[3]} #{custom.qpro_secret_head[4]} #{custom.qpro_secret_head[5]} #{custom.qpro_secret_head[6]} - hair(__type="s64" __count="7") #{custom.qpro_secret_hair[0]} #{custom.qpro_secret_hair[1]} #{custom.qpro_secret_hair[2]} #{custom.qpro_secret_hair[3]} #{custom.qpro_secret_hair[4]} #{custom.qpro_secret_hair[5]} #{custom.qpro_secret_hair[6]} - face(__type="s64" __count="7") #{custom.qpro_secret_face[0]} #{custom.qpro_secret_face[1]} #{custom.qpro_secret_face[2]} #{custom.qpro_secret_face[3]} #{custom.qpro_secret_face[4]} #{custom.qpro_secret_face[5]} #{custom.qpro_secret_face[6]} - body(__type="s64" __count="7") #{custom.qpro_secret_body[0]} #{custom.qpro_secret_body[1]} #{custom.qpro_secret_body[2]} #{custom.qpro_secret_body[3]} #{custom.qpro_secret_body[4]} #{custom.qpro_secret_body[5]} #{custom.qpro_secret_body[6]} - hand(__type="s64" __count="7") #{custom.qpro_secret_hand[0]} #{custom.qpro_secret_hand[1]} #{custom.qpro_secret_hand[2]} #{custom.qpro_secret_hand[3]} #{custom.qpro_secret_hand[4]} #{custom.qpro_secret_hand[5]} #{custom.qpro_secret_hand[6]} - back(__type="s64" __count="7") #{custom.qpro_secret_back[0]} #{custom.qpro_secret_back[1]} #{custom.qpro_secret_back[2]} #{custom.qpro_secret_back[3]} #{custom.qpro_secret_back[4]} #{custom.qpro_secret_back[5]} #{custom.qpro_secret_back[6]} - grade(sgid=pcdata.sgid dgid=pcdata.dgid) - - for (let d of dArray) - g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]} - kiwami_data - - for (let ed of eArray) - detail(grade_type=ed.grade_type grade_id=ed.grade_id option=ed.option stage_num=ed.stage_num clear_type=ed.clear_type) - past(__type="s32" __count="3") #{ed.past[0]} #{ed.past[1]} #{ed.past[2]} - selected_course(__type="s32" __count="3") #{ed.selected_course[0]} #{ed.selected_course[1]} #{ed.selected_course[2]} - max_past(__type="s32" __count="3") #{ed.max_past[0]} #{ed.max_past[1]} #{ed.max_past[2]} - max_selected_course(__type="s32" __count="3") #{ed.max_selected_course[0]} #{ed.max_selected_course[1]} #{ed.max_selected_course[2]} - skin(__type="s32" __count="20") #{appendsettings} #{custom.note_burst} #{custom.bomb_size} #{custom.turntable} #{custom.judge_font} #{custom.note_skin} #{custom.note_size} #{Number(custom.disable_musicpreview)} #{Number(custom.vefx_lock)} #{custom.effect} #{custom.menu_music} #{Number(custom.disable_hcn_color)} #{custom.first_note_preview} #{custom.lane_cover} #{custom.pacemaker_cover} #{custom.lift_cover} #{custom.note_beam} #{custom.note_beam_size} #{custom.full_combo_splash} #{custom.frame} - tdjskin(__type="s16" __count="4") #{lm_custom.premium_skin} #{lm_custom.premium_bg} 0 0 - qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body} - rlist - - for (let rd of rArray) - rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3]) - is_robo(__type="bool") 0 - qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1] back=rd.qprodata[5]) - shop(name=shop_data.opname) - notes_radar(style="0") - radar_score(__type="s32" __count="6") #{pcdata.nr_spradar[0]} #{pcdata.nr_spradar[1]} #{pcdata.nr_spradar[2]} #{pcdata.nr_spradar[3]} #{pcdata.nr_spradar[4]} #{pcdata.nr_spradar[5]} - notes_radar(style="1") - radar_score(__type="s32" __count="6") #{pcdata.nr_dpradar[0]} #{pcdata.nr_dpradar[1]} #{pcdata.nr_dpradar[2]} #{pcdata.nr_dpradar[3]} #{pcdata.nr_dpradar[4]} #{pcdata.nr_dpradar[5]} - visitor(anum="10" snum="10" pnum="10" vs_flg="1") - step(enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress total_point=pcdata.st_total_point enemy_defeat_flg=pcdata.st_enemy_defeat_flg sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_fluctuation=pcdata.st_sp_fluctuation dp_fluctuation=pcdata.st_dp_fluctuation mission_clear_num=pcdata.st_mission_clear_num sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay tips_read_list=pcdata.st_tips_read_list) - is_track_ticket(__type="bool") #{pcdata.st_is_track_ticket} - packinfo(music_0="-1" music_1="-1" music_2="-1" pack_id="1") - achievements(last_weekly=pcdata.achi_lastweekly pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp rival_crush=pcdata.achi_rivalcrush visit_flg=pcdata.achi_visitflg weekly_num=pcdata.achi_weeklynum) - deller(deller=pcdata.deller rate="1") - orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb) - old_linkage_secret_flg(bemani_mixup="-1" ccj_linkage="-1" triple_tribe="-1") - arena_data(play_num="2" play_num_dp="1" play_num_sp="1" prev_best_class_sp="20" prev_best_class_dp="20") - achieve_data(play_style="0" arena_class="20" rating_value="20" now_top_class_continuing="0" best_top_class_continuing="0" win_count="0" now_winning_streak_count="0" best_winning_streak_count="0" perfect_win_count="0" counterattack_num="0" mission_clear_num="0") - achieve_data(play_style="1" arena_class="20" rating_value="20" now_top_class_continuing="0" best_top_class_continuing="0" win_count="0" now_winning_streak_count="0" best_winning_streak_count="0" perfect_win_count="0" counterattack_num="0" mission_clear_num="0") - cube_data(cube="0" season_id="0") - chat_data(chat_type_0="CHAT CUSTOM 1" chat_type_1="CHAT CUSTOM 2" chat_type_2="CHAT CUSTOM 3" chat_type_3="CHAT CUSTOM 4") - is_chat_0(__type="bool") 1 - is_chat_1(__type="bool") 1 - is_chat_2(__type="bool") 1 - is_chat_3(__type="bool") 1 - skin_customize_flg(skin_frame_flg="-1" skin_turntable_flg="-1" skin_bomb_flg="-1" skin_bgm_flg="-1" skin_lane_flg0="-1" skin_lane_flg1="-1" skin_lane_flg2="-1" skin_lane_flg3="-1" skin_lane_flg4="-1" skin_lane_flg5="-1" skin_notes_flg="-1" skin_fullcombo_flg="-1" skin_keybeam_flg="-1" skin_judgestring_flg="-1") - tdjskin_customize_flg(skin_submonitor_flg="-1" skin_subbg_flg="-1") - event_1(event_play_num=pcdata.event_play_num last_select_map_id=pcdata.event_last_select_id) - if pcdata.event_skip == true - is_skip - - for (let evt of evtArray) - map_data(map_id=evt.map_id play_num=evt.play_num play_num_uc=evt.play_num_uc last_select_pos=evt.last_select_pos map_prog=evt.map_prog gauge=evt.gauge tile_num=evt.tile_num metron_total_get=evt.metron_total_get metron_total_use=evt.metron_total_use bank_date=evt.bank_date grade_bonus=evt.grade_bonus end_bonus=evt.end_bonus carryover_use=evt.carryover_use) - - for (let evt2 of evtArray2) - building_data(map_id=evt2.map_id pos=evt2.pos building=evt2.building use_tile=evt2.use_tile) - - for (let evt3 of evtArray3) - shop_data(map_id=evt3.map_id reward_id=evt3.reward_id prog=evt3.prog) - if epo_res != null - event_2(event_play_num=epo_res.event_play_num after_play_num=epo_res.after_play_num last_select_system_id=epo_res.last_select_system_id gate_key=epo_res.gate_key after_gauge=epo_res.after_gauge last_select_erosion_level=epo_res.last_select_erosion_level pack="-1" erosion_play_num="10" erosion5_clear12_num="10") - - for (let data of epo_res_sub) - system_data(system_id=data.system_id play_num=data.play_num unlock_prog=data.unlock_prog system_prog=data.system_prog gauge=data.gauge) - ultimate_mobile_link(music_list="-1") - link_flag - valkyrie_linkage(music_list_1="-1" music_list_2="-1" music_list_3="-1") - ccj_linkage(music_list="-1") - triple_tribe_2(music_list="-1") - language_setting(language=profile.language) - movie_agreement(agreement_version="1") - movie_setting - hide_name(__type="bool") 0 - world_tourism - - for (let wd of wArray) - tour_data(tour_id=wd.tour_id progress=wd.progress) - world_tourism_secret_flg - flg1(__type="s64" __count="3") -1 -1 -1 - flg2(__type="s64" __count="3") -1 -1 -1 - world_tourism_setting - booster(__type="bool") 1 - bpl_s4_music_unlock - badge - - for (let b of bArray) - badge_data(category_id=b.id badge_flg_id=b.flg_id badge_flg=b.flg) +IIDX31pc(status="0" qproback=custom.qpro_back) + pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach mode=pcdata.mode pmode=pcdata.pmode ngrade=pcdata.ngrade rtype=pcdata.rtype player_kind=pcdata.player_kind sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 gpos=pcdata.gpos s_sorttype=pcdata.s_sorttype d_sorttype=pcdata.d_sorttype s_pace=pcdata.s_pace d_pace=pcdata.d_pace s_gno=pcdata.s_gno d_gno=pcdata.d_gno s_sub_gno=pcdata.s_sub_gno d_sub_gno=pcdata.d_sub_gno s_gtype=pcdata.s_gtype d_gtype=pcdata.d_gtype s_sdlen=pcdata.s_sdlen d_sdlen=pcdata.d_sdlen s_sdtype=pcdata.s_sdtype d_sdtype=pcdata.d_sdtype s_timing=pcdata.s_timing d_timing=pcdata.d_timing s_notes=pcdata.s_notes d_notes=pcdata.d_notes s_judge=pcdata.s_judge d_judge=pcdata.d_judge s_judgeAdj=pcdata.s_judgeAdj d_judgeAdj=pcdata.d_judgeAdj s_hispeed=pcdata.s_hispeed d_hispeed=pcdata.d_hispeed s_liflen=pcdata.s_liflen d_liflen=pcdata.d_liflen s_disp_judge=pcdata.s_disp_judge d_disp_judge=pcdata.d_disp_judge s_opstyle=pcdata.s_opstyle d_opstyle=pcdata.d_opstyle s_graph_score=pcdata.s_graph_score d_graph_score=pcdata.d_graph_score s_auto_scrach=pcdata.s_auto_scrach d_auto_scrach=pcdata.d_auto_scrach s_gauge_disp=pcdata.s_gauge_disp d_gauge_disp=pcdata.d_gauge_disp s_lane_brignt=pcdata.s_lane_brignt d_lane_brignt=pcdata.d_lane_brignt s_camera_layout=pcdata.s_camera_layout d_camera_layout=pcdata.d_camera_layout s_ghost_score=pcdata.s_ghost_score d_ghost_score=pcdata.d_ghost_score s_tsujigiri_disp=pcdata.s_tsujigiri_disp d_tsujigiri_disp=pcdata.d_tsujigiri_disp s_auto_adjust=pcdata.s_auto_adjust d_auto_adjust=pcdata.d_auto_adjust s_timing_split=pcdata.s_timing_split d_timing_split=pcdata.d_timing_split s_visualization=pcdata.s_visualization d_visualization=pcdata.d_visualization s_classic_hispeed=pcdata.s_classic_hispeed d_classic_hispeed=pcdata.d_classic_hispeed) + lightning_play_data(dpnum=lm_playdata.dp_num spnum=lm_playdata.sp_num) + lightning_setting(headphone_vol=lm_settings.headphone_vol resistance_dp_left=lm_settings.resistance_dp_left resistance_dp_right=lm_settings.resistance_dp_right resistance_sp_left=lm_settings.resistance_sp_left resistance_sp_right=lm_settings.resistance_sp_right keyboard_kind=lm_settings.keyboard_kind brightness=lm_settings.brightness) + slider(__type="s32" __count="7") #{lm_settings.slider[0]} #{lm_settings.slider[1]} #{lm_settings.slider[2]} #{lm_settings.slider[3]} #{lm_settings.slider[4]} #{lm_settings.slider[5]} #{lm_settings.slider[6]} + light(__type="bool" __count="10") #{lm_settings.light[0]} #{lm_settings.light[1]} #{lm_settings.light[2]} #{lm_settings.light[3]} #{lm_settings.light[4]} #{lm_settings.light[5]} #{lm_settings.light[6]} #{lm_settings.light[7]} #{lm_settings.light[8]} #{lm_settings.light[9]} + concentration(__type="bool") #{lm_settings.concentration} + spdp_rival(flg="-1") + bind_eaappli + ea_premium_course + secret + flg1(__type="s64" __count="3") -1 -1 -1 + flg2(__type="s64" __count="3") -1 -1 -1 + flg3(__type="s64" __count="3") -1 -1 -1 + flg4(__type="s64" __count="3") -1 -1 -1 + leggendaria + flg1(__type="s64" __count="3") -1 -1 -1 + music_memo + - for (let m of mArray) + folder(play_style=m.play_style folder_id=m.folder_idx name=m.folder_name) + music_id(__type="s32" __count="10") #{m.music_ids[0]} #{m.music_ids[1]} #{m.music_ids[2]} #{m.music_ids[3]} #{m.music_ids[4]} #{m.music_ids[5]} #{m.music_ids[6]} #{m.music_ids[7]} #{m.music_ids[8]} #{m.music_ids[9]} + music_filter + - for (let f of fArray) + folder(play_style=f.play_style folder_id=f.folder_id filter_id=f.filter_id value0=f.value0 value1=f.value1) + is_valid(__type="bool") #{f.is_valid} + qpro_secret + head(__type="s64" __count="7") #{custom.qpro_secret_head[0]} #{custom.qpro_secret_head[1]} #{custom.qpro_secret_head[2]} #{custom.qpro_secret_head[3]} #{custom.qpro_secret_head[4]} #{custom.qpro_secret_head[5]} #{custom.qpro_secret_head[6]} + hair(__type="s64" __count="7") #{custom.qpro_secret_hair[0]} #{custom.qpro_secret_hair[1]} #{custom.qpro_secret_hair[2]} #{custom.qpro_secret_hair[3]} #{custom.qpro_secret_hair[4]} #{custom.qpro_secret_hair[5]} #{custom.qpro_secret_hair[6]} + face(__type="s64" __count="7") #{custom.qpro_secret_face[0]} #{custom.qpro_secret_face[1]} #{custom.qpro_secret_face[2]} #{custom.qpro_secret_face[3]} #{custom.qpro_secret_face[4]} #{custom.qpro_secret_face[5]} #{custom.qpro_secret_face[6]} + body(__type="s64" __count="7") #{custom.qpro_secret_body[0]} #{custom.qpro_secret_body[1]} #{custom.qpro_secret_body[2]} #{custom.qpro_secret_body[3]} #{custom.qpro_secret_body[4]} #{custom.qpro_secret_body[5]} #{custom.qpro_secret_body[6]} + hand(__type="s64" __count="7") #{custom.qpro_secret_hand[0]} #{custom.qpro_secret_hand[1]} #{custom.qpro_secret_hand[2]} #{custom.qpro_secret_hand[3]} #{custom.qpro_secret_hand[4]} #{custom.qpro_secret_hand[5]} #{custom.qpro_secret_hand[6]} + back(__type="s64" __count="7") #{custom.qpro_secret_back[0]} #{custom.qpro_secret_back[1]} #{custom.qpro_secret_back[2]} #{custom.qpro_secret_back[3]} #{custom.qpro_secret_back[4]} #{custom.qpro_secret_back[5]} #{custom.qpro_secret_back[6]} + grade(sgid=pcdata.sgid dgid=pcdata.dgid) + - for (let d of dArray) + g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]} + kiwami_data + - for (let ed of eArray) + detail(grade_type=ed.grade_type grade_id=ed.grade_id option=ed.option stage_num=ed.stage_num clear_type=ed.clear_type) + past(__type="s32" __count="3") #{ed.past[0]} #{ed.past[1]} #{ed.past[2]} + selected_course(__type="s32" __count="3") #{ed.selected_course[0]} #{ed.selected_course[1]} #{ed.selected_course[2]} + max_past(__type="s32" __count="3") #{ed.max_past[0]} #{ed.max_past[1]} #{ed.max_past[2]} + max_selected_course(__type="s32" __count="3") #{ed.max_selected_course[0]} #{ed.max_selected_course[1]} #{ed.max_selected_course[2]} + skin(__type="s32" __count="20") #{appendsettings} #{custom.note_burst} #{custom.bomb_size} #{custom.turntable} #{custom.judge_font} #{custom.note_skin} #{custom.note_size} #{Number(custom.disable_musicpreview)} #{Number(custom.vefx_lock)} #{custom.effect} #{custom.menu_music} #{Number(custom.disable_hcn_color)} #{custom.first_note_preview} #{custom.lane_cover} #{custom.pacemaker_cover} #{custom.lift_cover} #{custom.note_beam} #{custom.note_beam_size} #{custom.full_combo_splash} #{custom.frame} + tdjskin(__type="s16" __count="4") #{lm_custom.premium_skin} #{lm_custom.premium_bg} 0 0 + qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body} + rlist + - for (let rd of rArray) + rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3]) + is_robo(__type="bool") 0 + qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1] back=rd.qprodata[5]) + shop(name=shop_data.opname) + notes_radar(style="0") + radar_score(__type="s32" __count="6") #{pcdata.nr_spradar[0]} #{pcdata.nr_spradar[1]} #{pcdata.nr_spradar[2]} #{pcdata.nr_spradar[3]} #{pcdata.nr_spradar[4]} #{pcdata.nr_spradar[5]} + notes_radar(style="1") + radar_score(__type="s32" __count="6") #{pcdata.nr_dpradar[0]} #{pcdata.nr_dpradar[1]} #{pcdata.nr_dpradar[2]} #{pcdata.nr_dpradar[3]} #{pcdata.nr_dpradar[4]} #{pcdata.nr_dpradar[5]} + visitor(anum="10" snum="10" pnum="10" vs_flg="1") + step(enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress total_point=pcdata.st_total_point enemy_defeat_flg=pcdata.st_enemy_defeat_flg sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_fluctuation=pcdata.st_sp_fluctuation dp_fluctuation=pcdata.st_dp_fluctuation mission_clear_num=pcdata.st_mission_clear_num sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay tips_read_list=pcdata.st_tips_read_list) + is_track_ticket(__type="bool") #{pcdata.st_is_track_ticket} + packinfo(music_0="-1" music_1="-1" music_2="-1" pack_id="1") + achievements(last_weekly=pcdata.achi_lastweekly pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp rival_crush=pcdata.achi_rivalcrush visit_flg=pcdata.achi_visitflg weekly_num=pcdata.achi_weeklynum) + deller(deller=pcdata.deller rate="1") + orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb) + old_linkage_secret_flg(bemani_mixup="-1" ccj_linkage="-1" triple_tribe="-1") + arena_data(play_num="2" play_num_dp="1" play_num_sp="1" prev_best_class_sp="20" prev_best_class_dp="20") + achieve_data(play_style="0" arena_class="20" rating_value="20" now_top_class_continuing="0" best_top_class_continuing="0" win_count="0" now_winning_streak_count="0" best_winning_streak_count="0" perfect_win_count="0" counterattack_num="0" mission_clear_num="0") + achieve_data(play_style="1" arena_class="20" rating_value="20" now_top_class_continuing="0" best_top_class_continuing="0" win_count="0" now_winning_streak_count="0" best_winning_streak_count="0" perfect_win_count="0" counterattack_num="0" mission_clear_num="0") + cube_data(cube="0" season_id="0") + chat_data(chat_type_0="CHAT CUSTOM 1" chat_type_1="CHAT CUSTOM 2" chat_type_2="CHAT CUSTOM 3" chat_type_3="CHAT CUSTOM 4") + is_chat_0(__type="bool") 1 + is_chat_1(__type="bool") 1 + is_chat_2(__type="bool") 1 + is_chat_3(__type="bool") 1 + skin_customize_flg(skin_frame_flg="-1" skin_turntable_flg="-1" skin_bomb_flg="-1" skin_bgm_flg="-1" skin_lane_flg0="-1" skin_lane_flg1="-1" skin_lane_flg2="-1" skin_lane_flg3="-1" skin_lane_flg4="-1" skin_lane_flg5="-1" skin_notes_flg="-1" skin_fullcombo_flg="-1" skin_keybeam_flg="-1" skin_judgestring_flg="-1") + tdjskin_customize_flg(skin_submonitor_flg="-1" skin_subbg_flg="-1") + event_1(event_play_num=pcdata.event_play_num last_select_map_id=pcdata.event_last_select_id) + if pcdata.event_skip == true + is_skip + - for (let evt of evtArray) + map_data(map_id=evt.map_id play_num=evt.play_num play_num_uc=evt.play_num_uc last_select_pos=evt.last_select_pos map_prog=evt.map_prog gauge=evt.gauge tile_num=evt.tile_num metron_total_get=evt.metron_total_get metron_total_use=evt.metron_total_use bank_date=evt.bank_date grade_bonus=evt.grade_bonus end_bonus=evt.end_bonus carryover_use=evt.carryover_use) + - for (let evt2 of evtArray2) + building_data(map_id=evt2.map_id pos=evt2.pos building=evt2.building use_tile=evt2.use_tile) + - for (let evt3 of evtArray3) + shop_data(map_id=evt3.map_id reward_id=evt3.reward_id prog=evt3.prog) + if epo_res != null + event_2(event_play_num=epo_res.event_play_num after_play_num=epo_res.after_play_num last_select_system_id=epo_res.last_select_system_id gate_key=epo_res.gate_key after_gauge=epo_res.after_gauge last_select_erosion_level=epo_res.last_select_erosion_level pack="-1" erosion_play_num="10" erosion5_clear12_num="10") + - for (let data of epo_res_sub) + system_data(system_id=data.system_id play_num=data.play_num unlock_prog=data.unlock_prog system_prog=data.system_prog gauge=data.gauge) + ultimate_mobile_link(music_list="-1") + link_flag + valkyrie_linkage(music_list_1="-1" music_list_2="-1" music_list_3="-1") + ccj_linkage(music_list="-1") + triple_tribe_2(music_list="-1") + language_setting(language=profile.language) + movie_agreement(agreement_version="1") + movie_setting + hide_name(__type="bool") 0 + world_tourism + - for (let wd of wArray) + tour_data(tour_id=wd.tour_id progress=wd.progress) + world_tourism_secret_flg + flg1(__type="s64" __count="3") -1 -1 -1 + flg2(__type="s64" __count="3") -1 -1 -1 + world_tourism_setting + booster(__type="bool") 1 + bpl_s4_music_unlock + badge + - for (let b of bArray) + badge_data(category_id=b.id badge_flg_id=b.flg_id badge_flg=b.flg) diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index eed9388..1d958aa 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -40,97 +40,6 @@ export function ClidToPlaySide(clid: number) { return clid < 5 ? 0 : 1; } -export function NumArraytoBase64(buff: number[]) { - const base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - let result = ""; - - for (let i = 0; i < buff.length; i += 3) { - const chunk = (buff[i] << 16) | (buff[i + 1] << 8) | buff[i + 2]; - result += base64Chars[(chunk >> 18) & 63] + - base64Chars[(chunk >> 12) & 63] + - base64Chars[(chunk >> 6) & 63] + - base64Chars[chunk & 63]; - } - - const padding = buff.length % 3; - if (padding === 1) { - result = result.slice(0, -2) + "=="; - } else if (padding === 2) { - result = result.slice(0, -1) + "="; - } - - return result; -} - -export function Base64toNumArray(s: string) { - const base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - let p = -8, - a = 0, - c: number, - d: number, - buffer: number[] = []; - - if (_.isNil(s)) return buffer; - - for (let i = 0; i < s.length; i++) { - if ((c = base64Chars.indexOf(s.charAt(i))) < 0) continue; - a = (a << 6) | (c & 63); - if ((p += 6) >= 0) { - d = (a >> p) & 255; - if (c !== 64) buffer.push(d); - a &= 63; - p -= 8; - } - } - - return buffer; -} - -export function NumArraytoHex(buff: number[]) { - let hexStr = ""; - for (let i = 0; i < buff.length; i++) { - const hex = buff[i].toString(16); - const paddedHex = hex.length % 2 ? "0" + hex : hex; - - hexStr += paddedHex; - } - - return hexStr; -} - -export function HextoBase64(hex: string) { - const buffer = []; - const base64Chars = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - let base64String = ""; - let i = 0; - - for (let i = 0; i < hex.length; i += 2) { - const hexByte = hex.slice(i, i + 2); - const byteValue = parseInt(hexByte, 16); - buffer.push(byteValue); - } - - while (i < buffer.length) { - const byte1 = buffer[i++] || 0; - const byte2 = buffer[i++] || 0; - const byte3 = buffer[i++] || 0; - - const enc1 = byte1 >> 2; - const enc2 = ((byte1 & 3) << 4) | (byte2 >> 4); - const enc3 = ((byte2 & 15) << 2) | (byte3 >> 6); - const enc4 = byte3 & 63; - - base64String += - base64Chars.charAt(enc1) + - base64Chars.charAt(enc2) + - (i <= buffer.length + 2 ? base64Chars.charAt(enc3) : "=") + - (i <= buffer.length + 1 ? base64Chars.charAt(enc4) : "="); - } - - return base64String; -} - export function NumArrayToString(bits: number[], numArray: number[]): string { const characters = "0123456789:;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; let byteSum = 0; @@ -306,26 +215,24 @@ export async function ReftoQPRO(refid: string, version: number) { let qpro_data = []; try { - switch (version) { - case 31: - qpro_data = [ - custom.qpro_hair, - custom.qpro_head, - custom.qpro_face, - custom.qpro_body, - custom.qpro_hand, - custom.qpro_back, - ]; - break; - default: - qpro_data = [ - custom.qpro_hair, - custom.qpro_head, - custom.qpro_face, - custom.qpro_body, - custom.qpro_hand, - ]; - break; + if (version >= 31) { + qpro_data = [ + custom.qpro_hair, + custom.qpro_head, + custom.qpro_face, + custom.qpro_body, + custom.qpro_hand, + custom.qpro_back, + ]; + } + else { + qpro_data = [ + custom.qpro_hair, + custom.qpro_head, + custom.qpro_face, + custom.qpro_body, + custom.qpro_hand, + ]; } } catch { qpro_data = [0, 0, 0, 0, 0, 0]; diff --git a/iidx@asphyxia/webui/asset/js/detail.js b/iidx@asphyxia/webui/asset/js/detail.js index 72dccb5..a50f9f7 100644 --- a/iidx@asphyxia/webui/asset/js/detail.js +++ b/iidx@asphyxia/webui/asset/js/detail.js @@ -1,31 +1,31 @@ -$("#version").on("change", function () { - $.ajax({ - type: "post", - url: "/emit/iidxGetProfile", - data: { - refid: refid, - version: this.value, - }, - dataType: "text", - success: function (result) { - let data = JSON.parse(result); - - if (data["pcdata"] == null) { - alert("Theres no profile data available on this version!"); - return; - } - - let sp_grade = data["pcdata"].sgid; - let dp_grade = data["pcdata"].dgid; - - if (sp_grade == -1) sp_grade = "----"; - if (dp_grade == -1) dp_grade = "----"; - - $("#sp_grade").text(sp_grade); - $("#dp_grade").text(dp_grade); - }, - error: function () { - alert("Unable to process data"); - } - }); -}); +$("#version").on("change", function () { + $.ajax({ + type: "post", + url: "/emit/iidxGetProfile", + data: { + refid: refid, + version: this.value, + }, + dataType: "text", + success: function (result) { + let data = JSON.parse(result); + + if (data["pcdata"] == null) { + alert("Theres no profile data available on this version!"); + return; + } + + let sp_grade = data["pcdata"].sgid; + let dp_grade = data["pcdata"].dgid; + + if (sp_grade == -1) sp_grade = "----"; + if (dp_grade == -1) dp_grade = "----"; + + $("#sp_grade").text(sp_grade); + $("#dp_grade").text(dp_grade); + }, + error: function () { + alert("Unable to process data"); + } + }); +}); diff --git a/iidx@asphyxia/webui/asset/js/setting.js b/iidx@asphyxia/webui/asset/js/setting.js index 7657171..b1ac8f2 100644 --- a/iidx@asphyxia/webui/asset/js/setting.js +++ b/iidx@asphyxia/webui/asset/js/setting.js @@ -1,80 +1,80 @@ -$("#version").on("change", function () { - $.ajax({ - type: "post", - url: "/emit/iidxGetSetting", - data: { - refid: refid, - version: this.value, - }, - dataType: "text", - success: function (result) { - let data = JSON.parse(result); - - if (data["custom"] == null) { - alert("Theres no customize data available on this version!"); - return; - } - - $("#frame").val(data["custom"].frame); - $("#turntable").val(data["custom"].turntable); - $("#note_burst").val(data["custom"].note_burst); - $("#menu_music").val(data["custom"].menu_music); - $("#lane_cover").val(data["custom"].lane_cover); - $("#category_vox").val(data["custom"].category_vox); - $("#note_skin").val(data["custom"].note_skin); - $("#full_combo_splash").val(data["custom"].full_combo_splash); - $("#note_beam").val(data["custom"].note_beam); - $("#judge_font").val(data["custom"].judge_font); - $("#disable_musicpreview").prop("checked", data["custom"].disable_musicpreview); - $("#pacemaker_cover").val(data["custom"].pacemaker_cover); - $("#vefx_lock").prop("checked", data["custom"].vefx_lock); - $("#effect").val(data["custom"].effect); - $("#bomb_size").val(data["custom"].bomb_size); - $("#disable_hcn_color").prop("checked", data["custom"].disable_hcn_color); - $("#first_note_preview").val(data["custom"].first_note_preview); - - if (data["custom"].note_size == undefined) $("#note_size").val(0); - else $("#note_size").val(data["custom"].note_size); - if (data["custom"].lift_cover == undefined) $("#lift_cover").val(0); - else $("#lift_cover").val(data["custom"].lift_cover); - if (data["custom"].note_beam_size == undefined) $("#note_beam_size").val(0); - else $("#note_beam_size").val(data["custom"].note_beam_size); - - $("#rank_folder").prop("checked", data["custom"].rank_folder); - $("#clear_folder").prop("checked", data["custom"].clear_folder); - $("#diff_folder").prop("checked", data["custom"].diff_folder); - $("#alpha_folder").prop("checked", data["custom"].alpha_folder); - $("#rival_folder").prop("checked", data["custom"].rival_folder); - $("#rival_battle_folder").prop("checked", data["custom"].rival_battle_folder); - $("#rival_info").prop("checked", data["custom"].rival_info); - $("#hide_playcount").prop("checked", data["custom"].hide_playcount); - $("#disable_graph_cutin").prop("checked", data["custom"].disable_graph_cutin); - $("#class_hispeed").prop("checked", data["custom"].class_hispeed); - $("#rival_played_folder").prop("checked", data["custom"].rival_played_folder); - $("#hide_iidxid").prop("checked", data["custom"].hide_iidxid); - - if (data["custom"].disable_beginner_option == undefined) $("#disable_beginner_option").prop("checked", false); - else $("#disable_beginner_option").prop("checked", data["custom"].disable_beginner_option); - - $("#qpro_head").val(data["custom"].qpro_head); - $("#qpro_hair").val(data["custom"].qpro_hair); - $("#qpro_hand").val(data["custom"].qpro_hand); - $("#qpro_face").val(data["custom"].qpro_face); - $("#qpro_body").val(data["custom"].qpro_body); - - if (data["custom"].qpro_back == undefined) $("#qpro_back").val(0); - else $("#qpro_back").val(data["custom"].qpro_back); - - if (data["lm_custom"] == null) { - $("#lm_skin").val(0); - $("#lm_bg").val(0); - } else { - $("#lm_skin").val(data["lm_custom"].premium_skin); - $("#lm_bg").val(data["lm_custom"].premium_bg); - } - }, - error: function () { - alert("Unable to process data"); - } - }); -}); +$("#version").on("change", function () { + $.ajax({ + type: "post", + url: "/emit/iidxGetSetting", + data: { + refid: refid, + version: this.value, + }, + dataType: "text", + success: function (result) { + let data = JSON.parse(result); + + if (data["custom"] == null) { + alert("Theres no customize data available on this version!"); + return; + } + + $("#frame").val(data["custom"].frame); + $("#turntable").val(data["custom"].turntable); + $("#note_burst").val(data["custom"].note_burst); + $("#menu_music").val(data["custom"].menu_music); + $("#lane_cover").val(data["custom"].lane_cover); + $("#category_vox").val(data["custom"].category_vox); + $("#note_skin").val(data["custom"].note_skin); + $("#full_combo_splash").val(data["custom"].full_combo_splash); + $("#note_beam").val(data["custom"].note_beam); + $("#judge_font").val(data["custom"].judge_font); + $("#disable_musicpreview").prop("checked", data["custom"].disable_musicpreview); + $("#pacemaker_cover").val(data["custom"].pacemaker_cover); + $("#vefx_lock").prop("checked", data["custom"].vefx_lock); + $("#effect").val(data["custom"].effect); + $("#bomb_size").val(data["custom"].bomb_size); + $("#disable_hcn_color").prop("checked", data["custom"].disable_hcn_color); + $("#first_note_preview").val(data["custom"].first_note_preview); + + if (data["custom"].note_size == undefined) $("#note_size").val(0); + else $("#note_size").val(data["custom"].note_size); + if (data["custom"].lift_cover == undefined) $("#lift_cover").val(0); + else $("#lift_cover").val(data["custom"].lift_cover); + if (data["custom"].note_beam_size == undefined) $("#note_beam_size").val(0); + else $("#note_beam_size").val(data["custom"].note_beam_size); + + $("#rank_folder").prop("checked", data["custom"].rank_folder); + $("#clear_folder").prop("checked", data["custom"].clear_folder); + $("#diff_folder").prop("checked", data["custom"].diff_folder); + $("#alpha_folder").prop("checked", data["custom"].alpha_folder); + $("#rival_folder").prop("checked", data["custom"].rival_folder); + $("#rival_battle_folder").prop("checked", data["custom"].rival_battle_folder); + $("#rival_info").prop("checked", data["custom"].rival_info); + $("#hide_playcount").prop("checked", data["custom"].hide_playcount); + $("#disable_graph_cutin").prop("checked", data["custom"].disable_graph_cutin); + $("#class_hispeed").prop("checked", data["custom"].class_hispeed); + $("#rival_played_folder").prop("checked", data["custom"].rival_played_folder); + $("#hide_iidxid").prop("checked", data["custom"].hide_iidxid); + + if (data["custom"].disable_beginner_option == undefined) $("#disable_beginner_option").prop("checked", false); + else $("#disable_beginner_option").prop("checked", data["custom"].disable_beginner_option); + + $("#qpro_head").val(data["custom"].qpro_head); + $("#qpro_hair").val(data["custom"].qpro_hair); + $("#qpro_hand").val(data["custom"].qpro_hand); + $("#qpro_face").val(data["custom"].qpro_face); + $("#qpro_body").val(data["custom"].qpro_body); + + if (data["custom"].qpro_back == undefined) $("#qpro_back").val(0); + else $("#qpro_back").val(data["custom"].qpro_back); + + if (data["lm_custom"] == null) { + $("#lm_skin").val(0); + $("#lm_bg").val(0); + } else { + $("#lm_skin").val(data["lm_custom"].premium_skin); + $("#lm_bg").val(data["lm_custom"].premium_bg); + } + }, + error: function () { + alert("Unable to process data"); + } + }); +}); diff --git a/iidx@asphyxia/webui/profile_-----detail.pug b/iidx@asphyxia/webui/profile_-----detail.pug index 80d66df..1a7eb70 100644 --- a/iidx@asphyxia/webui/profile_-----detail.pug +++ b/iidx@asphyxia/webui/profile_-----detail.pug @@ -1,67 +1,67 @@ -//DATA// - profile: DB.FindOne(refid, { collection: 'profile' }) - pcdata: DB.FindOne(refid, { collection: 'pcdata' }) - -- - const version = [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ]; - -div - .card - .card-header - p.card-header-title - span.icon - i.mdi.mdi-account-edit - | Profile - .card-content - .field - label.label Version - .ver-select - .control - .select - select(id="version") - each i in version - option(selected=(i==pcdata.version)) #{i} - .field - label.label Name - .body - p(id="name") #{profile.name} - .field - label.label IIDX ID - .body - p(id="iidxid") #{profile.idstr} - .field - label.label SP Grade - .body - - const a = pcdata.sgid - if a==-1 - p(id="sp_grade") ---- - else - p(id="sp_grade") #{pcdata.sgid} - .field - label.label DP Grade - .body - - const b = pcdata.dgid - if b==-1 - p(id="dp_grade") ---- - else - p(id="dp_grade") #{pcdata.dgid} -script(src="static/asset/js/detail.js") +//DATA// + profile: DB.FindOne(refid, { collection: 'profile' }) + pcdata: DB.FindOne(refid, { collection: 'pcdata' }) + +- + const version = [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ]; + +div + .card + .card-header + p.card-header-title + span.icon + i.mdi.mdi-account-edit + | Profile + .card-content + .field + label.label Version + .ver-select + .control + .select + select(id="version") + each i in version + option(selected=(i==pcdata.version)) #{i} + .field + label.label Name + .body + p(id="name") #{profile.name} + .field + label.label IIDX ID + .body + p(id="iidxid") #{profile.idstr} + .field + label.label SP Grade + .body + - const a = pcdata.sgid + if a==-1 + p(id="sp_grade") ---- + else + p(id="sp_grade") #{pcdata.sgid} + .field + label.label DP Grade + .body + - const b = pcdata.dgid + if b==-1 + p(id="dp_grade") ---- + else + p(id="dp_grade") #{pcdata.dgid} +script(src="static/asset/js/detail.js") diff --git a/iidx@asphyxia/webui/profile_----setting.pug b/iidx@asphyxia/webui/profile_----setting.pug index cd5e56b..6796ad3 100644 --- a/iidx@asphyxia/webui/profile_----setting.pug +++ b/iidx@asphyxia/webui/profile_----setting.pug @@ -1,240 +1,240 @@ -//DATA// - profile: DB.FindOne(refid, { collection: "profile" }) - pcdata: DB.FindOne(refid, { collection: "pcdata" }) - custom: DB.FindOne(refid, { collection: "custom" }) - lm_custom: DB.FindOne(refid, { collection: "lightning_custom" }) - -- - const version = [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31 - ]; - -div - .card - .card-header - p.card-header-title - span.icon - i.mdi.mdi-account-edit - | Settings - .card-content - form(method="post" action="/emit/iidxUpdateCustom") - .field - input(type="text" name="refid", value=refid readonly hidden) - label.label IIDX ID - .control - input.input(type="text" name="iidxid", value=profile.idstr readonly) - .field - label.label Version - .control - .select - select(name="version", id="version") - each i in version - option(selected=(i==pcdata.version)) #{i} - .field - label.label Name - .control - input.input(type="text" name="name", id="name", value=profile.name) - //- SKIN - .field - label.label Frame - .control - input.input(type="number" name="frame", id="frame", value=custom.frame) - .field - label.label Turntable - .control - input.input(type="number" name="turntable", id="turntable", value=custom.turntable) - .field - label.label Note Burst - .control - input.input(type="number" name="note_burst", id="note_burst", value=custom.note_burst) - .field - label.label Menu Music - .control - input.input(type="number" name="menu_music", id="menu_music", value=custom.menu_music) - .field - label.label Lane Cover - .control - input.input(type="number" name="lane_cover", id="lane_cover", value=custom.lane_cover) - .field - label.label Category Voice - .control - input.input(type="number" name="category_vox", id="category_vox", value=custom.category_vox) - .field - label.label Note Skin - .control - input.input(type="number" name="note_skin", id="note_skin", value=custom.note_skin) - .field - label.label Full Combo Splash - .control - input.input(type="number" name="full_combo_splash", id="full_combo_splash", value=custom.full_combo_splash) - .field - label.label Note Beam - .control - input.input(type="number" name="note_beam", id="note_beam", value=custom.note_beam) - .field - label.label Judgement Font - .control - input.input(type="number" name="judge_font", id="judge_font", value=custom.judge_font) - .field - label.label Disable Music Preview - .control - input(type="checkbox" name="disable_musicpreview", id="disable_musicpreview", checked=Boolean(custom.disable_musicpreview)) - .field - label.label Pacemaker Cover - .control - input.input(type="number" name="pacemaker_cover", id="pacemaker_cover", value=custom.pacemaker_cover) - .field - label.label VEFX Lock - .control - input(type="checkbox" name="vefx_lock", id="vefx_lock", checked=Boolean(custom.vefx_lock)) - .field - label.label VEFX Lock (Effector) - .control - input.input(type="number" name="effect", id="effect", value=custom.effect) - .field - label.label Note Burst Size - .control - input.input(type="number" name="bomb_size", id="bomb_size", value=custom.bomb_size) - .field - label.label Disable HCN Color - .control - input(type="checkbox" name="disable_hcn_color", id="disable_hcn_color", checked=Boolean(custom.disable_hcn_color)) - .field - label.label First Note Preview - .control - input.input(type="number" name="first_note_preview", id="first_note_preview", value=custom.first_note_preview) - .field - label.label Note Size - .control - if custom.note_size === undefined - input.input(type="number" name="note_size", id="note_size", value="0") - else - input.input(type="number" name="note_size", id="note_size", value=custom.note_size) - .field - label.label Lift Cover - .control - if custom.lift_cover === undefined - input.input(type="number" name="lift_cover", id="lift_cover", value="0") - else - input.input(type="number" name="lift_cover", id="lift_cover", value=custom.lift_cover) - .field - label.label Note Beam Size - .control - if custom.note_beam_size === undefined - input.input(type="number" name="note_beam_size", id="note_beam_size", value="0") - else - input.input(type="number" name="note_beam_size", id="note_beam_size", value=custom.note_beam_size) - //- APPEND SETTINGS - .field - label.label Rank Folder - .control - input(type="checkbox" name="rank_folder", id="rank_folder", checked=Boolean(custom.rank_folder)) - .field - label.label Clear State Folder - .control - input(type="checkbox" name="clear_folder", id="clear_folder", checked=Boolean(custom.clear_folder)) - .field - label.label Difficulty Folder - .control - input(type="checkbox" name="diff_folder", id="diff_folder", checked=Boolean(custom.diff_folder)) - .field - label.label Alphabet Folder - .control - input(type="checkbox" name="alpha_folder", id="alpha_folder", checked=Boolean(custom.alpha_folder)) - .field - label.label Rival Folder - .control - input(type="checkbox" name="rival_folder", id="rival_folder", checked=Boolean(custom.rival_folder)) - .field - label.label Rival WIN/LOSE Folder - .control - input(type="checkbox" name="rival_battle_folder", id="rival_battle_folder", checked=Boolean(custom.rival_battle_folder)) - .field - label.label Rival Info / Venue Top Display - .control - input(type="checkbox" name="rival_info", id="rival_info", checked=Boolean(custom.rival_info)) - .field - label.label Hide Playcount - .control - input(type="checkbox" name="hide_playcount", id="hide_playcount", checked=Boolean(custom.hide_playcount)) - .field - label.label Disable Pacemaker Cut-In - .control - input(type="checkbox" name="disable_graph_cutin", id="disable_graph_cutin", checked=Boolean(custom.disable_graph_cutin)) - .field - label.label Classic Hi-SPEED - .control - input(type="checkbox" name="class_hispeed", id="class_hispeed", checked=Boolean(custom.class_hispeed)) - .field - label.label Rival Played Folder - .control - input(type="checkbox" name="rival_played_folder", id="rival_played_folder", checked=Boolean(custom.rival_played_folder)) - .field - label.label Hide IIDX ID - .control - input(type="checkbox" name="hide_iidxid", id="hide_iidxid", checked=Boolean(custom.hide_iidxid)) - .field - label.label Disable Beginner Option - .control - if custom.disable_beginner_option === undefined - input(type="checkbox" name="disable_beginner_option", id="disable_beginner_option", checked=Boolean(false)) - else - input(type="checkbox" name="disable_beginner_option", id="disable_beginner_option", checked=Boolean(custom.disable_beginner_option)) - //- QPRO - .field - label.label QPRO Head - .control - input.input(type="number" name="qpro_head", id="qpro_head", value=custom.qpro_head) - .field - label.label QPRO Hair - .control - input.input(type="number" name="qpro_hair", id="qpro_hair", value=custom.qpro_hair) - .field - label.label QPRO Hand - .control - input.input(type="number" name="qpro_hand", id="qpro_hand", value=custom.qpro_hand) - .field - label.label QPRO Face - .control - input.input(type="number" name="qpro_face", id="qpro_face", value=custom.qpro_face) - .field - label.label QPRO Body - .control - input.input(type="number" name="qpro_body", id="qpro_body", value=custom.qpro_body) - .field - label.label QPRO Back - .control - if custom.qpro_back === undefined - input.input(type="number" name="qpro_back", id="qpro_back", value="0") - else - input.input(type="number" name="qpro_back", id="qpro_back", value=custom.qpro_back) - //- LIGHTNING CUSTOM - if lm_custom != null - .field - label.label Premium Area Skin - input.input(type="number" name="lm_skin", id="lm_skin", value=lm_custom.premium_skin) - label.label Premium Area Background - input.input(type="number" name="lm_bg", id="lm_bg", value=lm_custom.premium_bg) - .field - button.button.is-primary(type="submit") - span.icon - i.mdi.mdi-check - span Submit -script(src="static/asset/js/setting.js") +//DATA// + profile: DB.FindOne(refid, { collection: "profile" }) + pcdata: DB.FindOne(refid, { collection: "pcdata" }) + custom: DB.FindOne(refid, { collection: "custom" }) + lm_custom: DB.FindOne(refid, { collection: "lightning_custom" }) + +- + const version = [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ]; + +div + .card + .card-header + p.card-header-title + span.icon + i.mdi.mdi-account-edit + | Settings + .card-content + form(method="post" action="/emit/iidxUpdateCustom") + .field + input(type="text" name="refid", value=refid readonly hidden) + label.label IIDX ID + .control + input.input(type="text" name="iidxid", value=profile.idstr readonly) + .field + label.label Version + .control + .select + select(name="version", id="version") + each i in version + option(selected=(i==pcdata.version)) #{i} + .field + label.label Name + .control + input.input(type="text" name="name", id="name", value=profile.name) + //- SKIN + .field + label.label Frame + .control + input.input(type="number" name="frame", id="frame", value=custom.frame) + .field + label.label Turntable + .control + input.input(type="number" name="turntable", id="turntable", value=custom.turntable) + .field + label.label Note Burst + .control + input.input(type="number" name="note_burst", id="note_burst", value=custom.note_burst) + .field + label.label Menu Music + .control + input.input(type="number" name="menu_music", id="menu_music", value=custom.menu_music) + .field + label.label Lane Cover + .control + input.input(type="number" name="lane_cover", id="lane_cover", value=custom.lane_cover) + .field + label.label Category Voice + .control + input.input(type="number" name="category_vox", id="category_vox", value=custom.category_vox) + .field + label.label Note Skin + .control + input.input(type="number" name="note_skin", id="note_skin", value=custom.note_skin) + .field + label.label Full Combo Splash + .control + input.input(type="number" name="full_combo_splash", id="full_combo_splash", value=custom.full_combo_splash) + .field + label.label Note Beam + .control + input.input(type="number" name="note_beam", id="note_beam", value=custom.note_beam) + .field + label.label Judgement Font + .control + input.input(type="number" name="judge_font", id="judge_font", value=custom.judge_font) + .field + label.label Disable Music Preview + .control + input(type="checkbox" name="disable_musicpreview", id="disable_musicpreview", checked=Boolean(custom.disable_musicpreview)) + .field + label.label Pacemaker Cover + .control + input.input(type="number" name="pacemaker_cover", id="pacemaker_cover", value=custom.pacemaker_cover) + .field + label.label VEFX Lock + .control + input(type="checkbox" name="vefx_lock", id="vefx_lock", checked=Boolean(custom.vefx_lock)) + .field + label.label VEFX Lock (Effector) + .control + input.input(type="number" name="effect", id="effect", value=custom.effect) + .field + label.label Note Burst Size + .control + input.input(type="number" name="bomb_size", id="bomb_size", value=custom.bomb_size) + .field + label.label Disable HCN Color + .control + input(type="checkbox" name="disable_hcn_color", id="disable_hcn_color", checked=Boolean(custom.disable_hcn_color)) + .field + label.label First Note Preview + .control + input.input(type="number" name="first_note_preview", id="first_note_preview", value=custom.first_note_preview) + .field + label.label Note Size + .control + if custom.note_size === undefined + input.input(type="number" name="note_size", id="note_size", value="0") + else + input.input(type="number" name="note_size", id="note_size", value=custom.note_size) + .field + label.label Lift Cover + .control + if custom.lift_cover === undefined + input.input(type="number" name="lift_cover", id="lift_cover", value="0") + else + input.input(type="number" name="lift_cover", id="lift_cover", value=custom.lift_cover) + .field + label.label Note Beam Size + .control + if custom.note_beam_size === undefined + input.input(type="number" name="note_beam_size", id="note_beam_size", value="0") + else + input.input(type="number" name="note_beam_size", id="note_beam_size", value=custom.note_beam_size) + //- APPEND SETTINGS + .field + label.label Rank Folder + .control + input(type="checkbox" name="rank_folder", id="rank_folder", checked=Boolean(custom.rank_folder)) + .field + label.label Clear State Folder + .control + input(type="checkbox" name="clear_folder", id="clear_folder", checked=Boolean(custom.clear_folder)) + .field + label.label Difficulty Folder + .control + input(type="checkbox" name="diff_folder", id="diff_folder", checked=Boolean(custom.diff_folder)) + .field + label.label Alphabet Folder + .control + input(type="checkbox" name="alpha_folder", id="alpha_folder", checked=Boolean(custom.alpha_folder)) + .field + label.label Rival Folder + .control + input(type="checkbox" name="rival_folder", id="rival_folder", checked=Boolean(custom.rival_folder)) + .field + label.label Rival WIN/LOSE Folder + .control + input(type="checkbox" name="rival_battle_folder", id="rival_battle_folder", checked=Boolean(custom.rival_battle_folder)) + .field + label.label Rival Info / Venue Top Display + .control + input(type="checkbox" name="rival_info", id="rival_info", checked=Boolean(custom.rival_info)) + .field + label.label Hide Playcount + .control + input(type="checkbox" name="hide_playcount", id="hide_playcount", checked=Boolean(custom.hide_playcount)) + .field + label.label Disable Pacemaker Cut-In + .control + input(type="checkbox" name="disable_graph_cutin", id="disable_graph_cutin", checked=Boolean(custom.disable_graph_cutin)) + .field + label.label Classic Hi-SPEED + .control + input(type="checkbox" name="class_hispeed", id="class_hispeed", checked=Boolean(custom.class_hispeed)) + .field + label.label Rival Played Folder + .control + input(type="checkbox" name="rival_played_folder", id="rival_played_folder", checked=Boolean(custom.rival_played_folder)) + .field + label.label Hide IIDX ID + .control + input(type="checkbox" name="hide_iidxid", id="hide_iidxid", checked=Boolean(custom.hide_iidxid)) + .field + label.label Disable Beginner Option + .control + if custom.disable_beginner_option === undefined + input(type="checkbox" name="disable_beginner_option", id="disable_beginner_option", checked=Boolean(false)) + else + input(type="checkbox" name="disable_beginner_option", id="disable_beginner_option", checked=Boolean(custom.disable_beginner_option)) + //- QPRO + .field + label.label QPRO Head + .control + input.input(type="number" name="qpro_head", id="qpro_head", value=custom.qpro_head) + .field + label.label QPRO Hair + .control + input.input(type="number" name="qpro_hair", id="qpro_hair", value=custom.qpro_hair) + .field + label.label QPRO Hand + .control + input.input(type="number" name="qpro_hand", id="qpro_hand", value=custom.qpro_hand) + .field + label.label QPRO Face + .control + input.input(type="number" name="qpro_face", id="qpro_face", value=custom.qpro_face) + .field + label.label QPRO Body + .control + input.input(type="number" name="qpro_body", id="qpro_body", value=custom.qpro_body) + .field + label.label QPRO Back + .control + if custom.qpro_back === undefined + input.input(type="number" name="qpro_back", id="qpro_back", value="0") + else + input.input(type="number" name="qpro_back", id="qpro_back", value=custom.qpro_back) + //- LIGHTNING CUSTOM + if lm_custom != null + .field + label.label Premium Area Skin + input.input(type="number" name="lm_skin", id="lm_skin", value=lm_custom.premium_skin) + label.label Premium Area Background + input.input(type="number" name="lm_bg", id="lm_bg", value=lm_custom.premium_bg) + .field + button.button.is-primary(type="submit") + span.icon + i.mdi.mdi-check + span Submit +script(src="static/asset/js/setting.js") diff --git a/iidx@asphyxia/webui/profile_---rival.pug b/iidx@asphyxia/webui/profile_---rival.pug index cd208d8..41c7438 100644 --- a/iidx@asphyxia/webui/profile_---rival.pug +++ b/iidx@asphyxia/webui/profile_---rival.pug @@ -1,118 +1,118 @@ -//DATA// - profile: DB.FindOne(refid, { collection: "profile" }) - profiles: DB.Find(null, { collection: "profile" }) - rival: DB.Find(refid, { collection: "rival" }) - -- - let rival_list=[["", "None", "0000-0000"]]; - profiles.forEach((res) => { - rival_list.push([res.__refid, res.name, res.idstr]) - }); - - let my_sp_rival = [], my_dp_rival = []; - rival.forEach((res) => { - if (res.play_style == 1) my_sp_rival[res.index] = res.rival_refid; - else if (res.play_style == 2) my_dp_rival[res.index] = res.rival_refid; - }); - -div - .card - .card-header - p.card-header-title - span.icon - i.mdi.mdi-account-edit - | Rivals - .card-content - form(method="post" action="/emit/iidxUpdateRival") - .field - input(type="text" name="refid", value=refid readonly hidden) - label.label SP Rivals - .body - .control - .select - select(name="sp_rival1") - each i in rival_list - if my_sp_rival[0] != null - option(selected=i[0]==my_sp_rival[0], value=i[0]) #{i[1]} [#{i[2]}] - else - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="sp_rival2") - each i in rival_list - if my_sp_rival[1] != null - option(selected=i[0]==my_sp_rival[1], value=i[0]) #{i[1]} [#{i[2]}] - else - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="sp_rival3") - each i in rival_list - if my_sp_rival[2] != null - option(selected=i[0]==my_sp_rival[2], value=i[0]) #{i[1]} [#{i[2]}] - else - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="sp_rival4") - each i in rival_list - if my_sp_rival[3] != null - option(selected=i[0]==my_sp_rival[3], value=i[0]) #{i[1]} [#{i[2]}] - else - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="sp_rival5") - each i in rival_list - if my_sp_rival[4] != null - option(selected=i[0]==my_sp_rival[4], value=i[0]) #{i[1]} [#{i[2]}] - else - option(value=i[0]) #{i[1]} [#{i[2]}] - .field - label.label DP Rivals - .body - .control - .select - select(name="dp_rival1") - each i in rival_list - if my_dp_rival[0] != null - option(selected=i[0]==my_dp_rival[0], value=i[0]) #{i[1]} [#{i[2]}] - else - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="dp_rival2") - each i in rival_list - if my_dp_rival[1] != null - option(selected=i[0]==my_dp_rival[1], value=i[0]) #{i[1]} [#{i[2]}] - else - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="dp_rival3") - each i in rival_list - if my_dp_rival[2] != null - option(selected=i[0]==my_dp_rival[2], value=i[0]) #{i[1]} [#{i[2]}] - else - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="dp_rival4") - each i in rival_list - if my_dp_rival[3] != null - option(selected=i[0]==my_dp_rival[3], value=i[0]) #{i[1]} [#{i[2]}] - else - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="dp_rival5") - each i in rival_list - if my_dp_rival[4] != null - option(selected=i[0]==my_dp_rival[4], value=i[0]) #{i[1]} [#{i[2]}] - else - option(value=i[0]) #{i[1]} [#{i[2]}] - .field - button.button.is-primary(type="submit") - span.icon - i.mdi.mdi-check - span Submit +//DATA// + profile: DB.FindOne(refid, { collection: "profile" }) + profiles: DB.Find(null, { collection: "profile" }) + rival: DB.Find(refid, { collection: "rival" }) + +- + let rival_list=[["", "None", "0000-0000"]]; + profiles.forEach((res) => { + rival_list.push([res.__refid, res.name, res.idstr]) + }); + + let my_sp_rival = [], my_dp_rival = []; + rival.forEach((res) => { + if (res.play_style == 1) my_sp_rival[res.index] = res.rival_refid; + else if (res.play_style == 2) my_dp_rival[res.index] = res.rival_refid; + }); + +div + .card + .card-header + p.card-header-title + span.icon + i.mdi.mdi-account-edit + | Rivals + .card-content + form(method="post" action="/emit/iidxUpdateRival") + .field + input(type="text" name="refid", value=refid readonly hidden) + label.label SP Rivals + .body + .control + .select + select(name="sp_rival1") + each i in rival_list + if my_sp_rival[0] != null + option(selected=i[0]==my_sp_rival[0], value=i[0]) #{i[1]} [#{i[2]}] + else + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="sp_rival2") + each i in rival_list + if my_sp_rival[1] != null + option(selected=i[0]==my_sp_rival[1], value=i[0]) #{i[1]} [#{i[2]}] + else + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="sp_rival3") + each i in rival_list + if my_sp_rival[2] != null + option(selected=i[0]==my_sp_rival[2], value=i[0]) #{i[1]} [#{i[2]}] + else + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="sp_rival4") + each i in rival_list + if my_sp_rival[3] != null + option(selected=i[0]==my_sp_rival[3], value=i[0]) #{i[1]} [#{i[2]}] + else + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="sp_rival5") + each i in rival_list + if my_sp_rival[4] != null + option(selected=i[0]==my_sp_rival[4], value=i[0]) #{i[1]} [#{i[2]}] + else + option(value=i[0]) #{i[1]} [#{i[2]}] + .field + label.label DP Rivals + .body + .control + .select + select(name="dp_rival1") + each i in rival_list + if my_dp_rival[0] != null + option(selected=i[0]==my_dp_rival[0], value=i[0]) #{i[1]} [#{i[2]}] + else + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="dp_rival2") + each i in rival_list + if my_dp_rival[1] != null + option(selected=i[0]==my_dp_rival[1], value=i[0]) #{i[1]} [#{i[2]}] + else + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="dp_rival3") + each i in rival_list + if my_dp_rival[2] != null + option(selected=i[0]==my_dp_rival[2], value=i[0]) #{i[1]} [#{i[2]}] + else + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="dp_rival4") + each i in rival_list + if my_dp_rival[3] != null + option(selected=i[0]==my_dp_rival[3], value=i[0]) #{i[1]} [#{i[2]}] + else + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="dp_rival5") + each i in rival_list + if my_dp_rival[4] != null + option(selected=i[0]==my_dp_rival[4], value=i[0]) #{i[1]} [#{i[2]}] + else + option(value=i[0]) #{i[1]} [#{i[2]}] + .field + button.button.is-primary(type="submit") + span.icon + i.mdi.mdi-check + span Submit diff --git a/iidx@asphyxia/webui/profile_--score.pug b/iidx@asphyxia/webui/profile_--score.pug index 44002ee..403e716 100644 --- a/iidx@asphyxia/webui/profile_--score.pug +++ b/iidx@asphyxia/webui/profile_--score.pug @@ -1,25 +1,25 @@ -//DATA// - score: DB.Find(refid, { collection: 'score' }) - -div - .card - .card-header - p.card-header-title - span.icon - i.mdi.mdi-account-edit - | Score - .card-content - table.table - thead - tr - th Music ID - th EXSCORE [SPB~DPL] - th Miss Count [SPB~DPL] - th Clear Lamp [SPB~DPL] - tbody - each i in score - tr - td #{i.mid} - td #{i.esArray} - td #{i.mArray} - td #{i.cArray} +//DATA// + score: DB.Find(refid, { collection: 'score' }) + +div + .card + .card-header + p.card-header-title + span.icon + i.mdi.mdi-account-edit + | Score + .card-content + table.table + thead + tr + th Music ID + th EXSCORE [SPB~DPL] + th Miss Count [SPB~DPL] + th Clear Lamp [SPB~DPL] + tbody + each i in score + tr + td #{i.mid} + td #{i.esArray} + td #{i.mArray} + td #{i.cArray} diff --git a/iidx@asphyxia/webui/profile_-data.pug b/iidx@asphyxia/webui/profile_-data.pug index ab0f3cb..1d3deec 100644 --- a/iidx@asphyxia/webui/profile_-data.pug +++ b/iidx@asphyxia/webui/profile_-data.pug @@ -1,27 +1,27 @@ -div - .card - .card-header - p.card-header-title - span.icon - i.mdi.mdi-account-edit - | Data Management - .card-content - .field - label.label [!] This will overwrite existing scores - form(method="post" action="/emit/iidxImportScoreData") - .field - input(type="text" name="refid", value=refid readonly hidden) - input.input(type="text" name="data" placeholder="Paste score JSON data") - p - button.button.is-primary(type="submit") - span.icon - i.mdi.mdi-check - span Score Import - .field - form(method="post" action="/emit/iidxExportScoreData") - .field - input(type="text" name="refid", value=refid readonly hidden) - button.button.is-primary(type="submit") - span.icon - i.mdi.mdi-check - span Score Export +div + .card + .card-header + p.card-header-title + span.icon + i.mdi.mdi-account-edit + | Data Management + .card-content + .field + label.label [!] This will overwrite existing scores + form(method="post" action="/emit/iidxImportScoreData") + .field + input(type="text" name="refid", value=refid readonly hidden) + input.input(type="text" name="data" placeholder="Paste score JSON data") + p + button.button.is-primary(type="submit") + span.icon + i.mdi.mdi-check + span Score Import + .field + form(method="post" action="/emit/iidxExportScoreData") + .field + input(type="text" name="refid", value=refid readonly hidden) + button.button.is-primary(type="submit") + span.icon + i.mdi.mdi-check + span Score Export