From 26b6140d2cf2a1b9cf5f0f0e44fc2cb5b7a3b1dd Mon Sep 17 00:00:00 2001 From: duel0213 Date: Wed, 17 Jan 2024 06:36:43 +0900 Subject: [PATCH 01/73] Added Initial support for beatmaniaIIDX --- iidx@asphyxia/README.md | 48 + iidx@asphyxia/handlers/gamesystem.ts | 11 + iidx@asphyxia/handlers/grade.ts | 171 ++++ iidx@asphyxia/handlers/music.ts | 379 ++++++++ iidx@asphyxia/handlers/pc.ts | 1164 ++++++++++++++++++++++++ iidx@asphyxia/handlers/shop.ts | 20 + iidx@asphyxia/handlers/webui.ts | 218 +++++ iidx@asphyxia/index.ts | 64 ++ iidx@asphyxia/models/custom.ts | 99 ++ iidx@asphyxia/models/grade.ts | 10 + iidx@asphyxia/models/lightning.ts | 116 +++ iidx@asphyxia/models/pcdata.ts | 682 ++++++++++++++ iidx@asphyxia/models/profile.ts | 22 + iidx@asphyxia/models/rival.ts | 17 + iidx@asphyxia/models/score.ts | 25 + iidx@asphyxia/models/worldtourism.ts | 7 + iidx@asphyxia/pug/KDZ/pccommon.pug | 7 + iidx@asphyxia/pug/KDZ/pcget.pug | 34 + iidx@asphyxia/pug/LDJ/27pccommon.pug | 20 + iidx@asphyxia/pug/LDJ/27pcget.pug | 78 ++ iidx@asphyxia/pug/LDJ/27systeminfo.pug | 765 ++++++++++++++++ iidx@asphyxia/pug/LDJ/28pccommon.pug | 24 + iidx@asphyxia/pug/LDJ/28pcget.pug | 93 ++ iidx@asphyxia/pug/LDJ/28systeminfo.pug | 765 ++++++++++++++++ iidx@asphyxia/pug/LDJ/29pccommon.pug | 25 + iidx@asphyxia/pug/LDJ/29pcget.pug | 98 ++ iidx@asphyxia/pug/LDJ/29systeminfo.pug | 773 ++++++++++++++++ iidx@asphyxia/pug/LDJ/30pccommon.pug | 18 + iidx@asphyxia/pug/LDJ/30pcget.pug | 100 ++ iidx@asphyxia/pug/LDJ/30systeminfo.pug | 773 ++++++++++++++++ iidx@asphyxia/util.ts | 162 ++++ iidx@asphyxia/webui/profile_rivals.pug | 82 ++ 32 files changed, 6870 insertions(+) create mode 100644 iidx@asphyxia/README.md create mode 100644 iidx@asphyxia/handlers/gamesystem.ts create mode 100644 iidx@asphyxia/handlers/grade.ts create mode 100644 iidx@asphyxia/handlers/music.ts create mode 100644 iidx@asphyxia/handlers/pc.ts create mode 100644 iidx@asphyxia/handlers/shop.ts create mode 100644 iidx@asphyxia/handlers/webui.ts create mode 100644 iidx@asphyxia/index.ts create mode 100644 iidx@asphyxia/models/custom.ts create mode 100644 iidx@asphyxia/models/grade.ts create mode 100644 iidx@asphyxia/models/lightning.ts create mode 100644 iidx@asphyxia/models/pcdata.ts create mode 100644 iidx@asphyxia/models/profile.ts create mode 100644 iidx@asphyxia/models/rival.ts create mode 100644 iidx@asphyxia/models/score.ts create mode 100644 iidx@asphyxia/models/worldtourism.ts create mode 100644 iidx@asphyxia/pug/KDZ/pccommon.pug create mode 100644 iidx@asphyxia/pug/KDZ/pcget.pug create mode 100644 iidx@asphyxia/pug/LDJ/27pccommon.pug create mode 100644 iidx@asphyxia/pug/LDJ/27pcget.pug create mode 100644 iidx@asphyxia/pug/LDJ/27systeminfo.pug create mode 100644 iidx@asphyxia/pug/LDJ/28pccommon.pug create mode 100644 iidx@asphyxia/pug/LDJ/28pcget.pug create mode 100644 iidx@asphyxia/pug/LDJ/28systeminfo.pug create mode 100644 iidx@asphyxia/pug/LDJ/29pccommon.pug create mode 100644 iidx@asphyxia/pug/LDJ/29pcget.pug create mode 100644 iidx@asphyxia/pug/LDJ/29systeminfo.pug create mode 100644 iidx@asphyxia/pug/LDJ/30pccommon.pug create mode 100644 iidx@asphyxia/pug/LDJ/30pcget.pug create mode 100644 iidx@asphyxia/pug/LDJ/30systeminfo.pug create mode 100644 iidx@asphyxia/util.ts create mode 100644 iidx@asphyxia/webui/profile_rivals.pug diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md new file mode 100644 index 0000000..f924e4e --- /dev/null +++ b/iidx@asphyxia/README.md @@ -0,0 +1,48 @@ +# beatmaniaIIDX + +Plugin Version: **v0.1.4** + +--- + +Supported Versions + + - beatmaniaIIDX 19 Lincle + - beatmaniaIIDX 27 HEROIC VERSE + - beatmaniaIIDX 28 BISTROVER + - beatmaniaIIDX 29 CastHour + - beatmaniaIIDX 30 RESIDENT + +--- + +Features + + - STEP UP (Partial) + - SKILL ANALYZER + - EVENT + - ARENA (Local) + - RANDOME LANE TICKET + - SONG SELECTION NOTES + +--- + +Changelogs + +**v0.1.0** + - Added Initial support for Lincle + +**v0.1.1** + - Added Initial support for HEROIC VERSE + - Expanded score array to adapting newer difficulty, (SPN ~ DPA [6] -> SPB ~ DPL [10]) + - This borked previous score datas recorded with v0.1.0 + - All score data now shared with all version. as it doesn't have music_id conversion, it will display incorrect data on certain versions. + - Added Initial customize support (no webui) + +**v0.1.2** + - Added Initial support for BISTROVER + - Added Initial Rival support (partial webui) + +**v0.1.3** + - Added Initial support for CastHour + +**v0.1.4** + - Added Initial support for RESIDENT diff --git a/iidx@asphyxia/handlers/gamesystem.ts b/iidx@asphyxia/handlers/gamesystem.ts new file mode 100644 index 0000000..47e339d --- /dev/null +++ b/iidx@asphyxia/handlers/gamesystem.ts @@ -0,0 +1,11 @@ +import { GetVersion } from "../util"; + +export const gssysteminfo: EPR = async (info, data, send) => { + const version = GetVersion(info); + + if (version >= 27) { + return send.pugFile(`pug/LDJ/${version}systeminfo.pug`); + } + + return send.success(); +}; diff --git a/iidx@asphyxia/handlers/grade.ts b/iidx@asphyxia/handlers/grade.ts new file mode 100644 index 0000000..542b28f --- /dev/null +++ b/iidx@asphyxia/handlers/grade.ts @@ -0,0 +1,171 @@ +import { pcdata } from "../models/pcdata"; +import { grade } from "../models/grade"; +import { IDtoRef, GetVersion } from "../util"; +import { eisei_grade } from "../models/lightning"; + +export const graderaised: EPR = async (info, data, send) => { + const version = GetVersion(info); + const iidxid = parseInt($(data).attr().iidxid); + const refid = await IDtoRef(iidxid); + const gid = parseInt($(data).attr().gid); + const gtype = parseInt($(data).attr().gtype); + + let cflg = parseInt($(data).attr().cflg); + let achi = parseInt($(data).attr().achi); + + let pcdata = await DB.FindOne(refid, { collection: "pcdata", version: version }); + let grade = await DB.FindOne(refid, { + collection: "grade", + version: version, + style: gtype, + gradeId: gid, + }); + + if (version >= 27) cflg = parseInt($(data).attr().cstage); + + const isTDJ = !(_.isNil($(data).element("lightning_play_data"))); // lightning model // + const hasEiseiData = (!(_.isNil($(data).element("eisei_data"))) || !(_.isNil($(data).element("eisei_grade_data"))));; + if (isTDJ && hasEiseiData) { + let eisei_clear_type: number; + let eisei_grade_id: number; + let eisei_grade_type: number; + let eisei_stage_num: number; + let eisei_option: number; + + let eisei_past_achievement: number[]; + let eisei_past_selected_course: number[]; + let eisei_max_past_achievement: number[]; + let eisei_max_past_selected_course: number[]; + + if (version == 27) { + eisei_clear_type = parseInt($(data).attr("eisei_data").clear_type); + eisei_grade_id = parseInt($(data).attr("eisei_data").grade_id); + eisei_grade_type = parseInt($(data).attr("eisei_data").grade_type); + eisei_stage_num = parseInt($(data).attr("eisei_data").stage_num); + + eisei_past_achievement = $(data).element("eisei_data").numbers("past_achievement"); + eisei_max_past_achievement = $(data).element("eisei_data").numbers("max_past_achievement"); + } if (version >= 30) { + eisei_clear_type = parseInt($(data).element("eisei_data").attr().clear_type); + eisei_grade_id = parseInt($(data).element("eisei_data").attr().grade_id); + eisei_grade_type = parseInt($(data).element("eisei_data").attr().grade_type); + eisei_stage_num = parseInt($(data).element("eisei_data").attr().stage_num); + eisei_option = parseInt($(data).element("eisei_data").attr().option); + + eisei_past_achievement = $(data).element("eisei_data").numbers("past_achievement"); + eisei_past_selected_course = $(data).element("eisei_data").numbers("past_selected_course"); + eisei_max_past_achievement = $(data).element("eisei_data").numbers("max_past_achievement"); + eisei_max_past_selected_course = $(data).element("eisei_data").numbers("max_past_selected_course"); + } else { + eisei_clear_type = parseInt($(data).attr("eisei_grade_data").clear_type); + eisei_grade_id = parseInt($(data).attr("eisei_grade_data").grade_id); + eisei_grade_type = parseInt($(data).attr("eisei_grade_data").grade_type); + eisei_stage_num = parseInt($(data).attr("eisei_grade_data").stage_num); + + eisei_past_achievement = $(data).element("eisei_grade_data").numbers("past_achievement"); + eisei_past_selected_course = $(data).element("eisei_grade_data").numbers("past_selected_course"); + eisei_max_past_achievement = $(data).element("eisei_grade_data").numbers("max_past_achievement"); + eisei_max_past_selected_course = $(data).element("eisei_grade_data").numbers("max_past_selected_course"); + } + + await DB.Upsert( + refid, + { + collection: "eisei_grade", + version: version, + grade_type: eisei_grade_type, + grade_id: eisei_grade_id, + }, + { + $set: { + clear_type: eisei_clear_type, + stage_num: eisei_stage_num, + option: eisei_option, + + past_achievement: eisei_past_achievement, + past_selected_course: eisei_past_selected_course, + max_past_achievement: eisei_max_past_achievement, + max_past_selected_course: eisei_max_past_selected_course, + }, + } + ); + + return send.object( + K.ATTR({ + status: "0", + pnum: "1", + }) + ); + } + + let updatePcdata = false; + let updateGrade = false; + if (_.isNil(pcdata)) return send.deny(); + if (_.isNil(grade)) { + if (cflg == 4) { + if (gtype == 0) + pcdata.sgid = Math.max(gid, pcdata.sgid); + else + pcdata.dgid = Math.max(gid, pcdata.dgid); + + updatePcdata = true; + } + + updateGrade = true; + } else { + if (cflg >= grade.maxStage || achi >= grade.archive) { + cflg = Math.max(cflg, grade.maxStage); + achi = Math.max(achi, grade.archive); + + updateGrade = true; + } + + if (cflg == 4) updatePcdata = true; + } + + if (updatePcdata) { + await DB.Upsert( + refid, + { + collection: "pcdata", + version: version, + }, + { + $set: pcdata + } + ); + } + + if (updateGrade) { + await DB.Upsert( + refid, + { + collection: "grade", + version: version, + style: gtype, + gradeId: gid, + }, + { + $set: { + maxStage: cflg, + archive: achi, + } + } + ); + } + + let gradeUser = await DB.Find(null, { + collection: "grade", + version: version, + style: gtype, + gradeId: gid, + maxStage: 4, + }); + + return send.object( + K.ATTR({ + status: "0", + pnum: String(gradeUser.length), + }) + ); +}; diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts new file mode 100644 index 0000000..173deea --- /dev/null +++ b/iidx@asphyxia/handlers/music.ts @@ -0,0 +1,379 @@ +import { IDtoRef, Base64toBuffer, GetVersion, OldMidToNewMid, NewMidToOldMid } from "../util"; +import { score, score_top } from "../models/score"; +import { profile } from "../models/profile"; + +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 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))], + ]; + + let m = [], top = []; + let score_data: number[]; + let indices, temp_mid = 0; + if (version == 19) { + indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; + music_data.forEach((res: score) => { + temp_mid = NewMidToOldMid(res.mid); + if (temp_mid > 1999) return; + + if (cltype == 0) { + score_data = [-1, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; + } else { + score_data = [-1, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; + } + + m.push(K.ARRAY("s16", score_data)); + }); + + for (let i = 0; i < rival_refids.length; i++) { + if (_.isNaN(rival_refids[i][0])) continue; + + const rival_score = await DB.Find(String(rival_refids[i][1]), + { collection: "score", } + ); + + rival_score.forEach((res: score) => { + temp_mid = NewMidToOldMid(res.mid); + if (temp_mid > 1999) return; + + if (cltype == 0) { + score_data = [i, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; + } else { + score_data = [i, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; + } + + m.push(K.ARRAY("s16", score_data)); + }); + } + } else if (version >= 27) { + indices = cltype === 0 ? [0, 1, 2, 3, 4] : [5, 6, 7, 8, 9]; + music_data.forEach((res: score) => { + if (cltype == 0) { + score_data = [-1, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; + } else { + score_data = [-1, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; + } + + m.push(K.ARRAY("s16", score_data)); + }); + + for (let i = 0; i < rival_refids.length; i++) { + if (_.isNaN(rival_refids[i][0])) continue; + + const rival_score = await DB.Find(String(rival_refids[i][1]), + { collection: "score", } + ); + + rival_score.forEach((res: score) => { // rival score // + if (cltype == 0) { + score_data = [i, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; + } else { + score_data = [i, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; + } + + m.push(K.ARRAY("s16", score_data)); + }); + } + + const score_top = await DB.Find({ + collection: "score_top", + play_style: cltype, + }); + + if (score_top.length > 0) { + score_top.forEach((res) => { + top.push({ + "@attr": ({ + name0: res.names[0], + name1: res.names[1], + name2: res.names[2], + name3: res.names[3], + name4: res.names[4], + }), + detail: K.ARRAY("s16", [res.mid, ...res.clflgs, ...res.scores]) + }); + }); + } + + return send.object({ + style: K.ATTR({type: String(cltype)}), + m, + top, + }); + } else { + return send.success(); + } + + return send.object({ + m + }); +} + +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)); + let mid = parseInt($(data).attr().mid); + let clid = parseInt($(data).attr().clid); + + const mapping = [1, 2, 3, 6, 7, 8]; + if (version == 19) { + mid = OldMidToNewMid(mid); + clid = mapping[clid]; + } + + const music_data: score | null = await DB.FindOne(refid, { + collection: "score", + mid: mid, + [clid]: { $exists: true }, + }); + + if (_.isNil(music_data)) return send.success(); + + let mydata, option = 0, option2 = 0; + if (version >= 27) { + if (!_.isNil(music_data.optArray) && version > 27) { + option = music_data.optArray[clid]; + option2 = music_data.opt2Array[clid]; + } + + mydata = Base64toBuffer(music_data[clid]); + } + else mydata = K.ITEM("bin", Base64toBuffer(music_data[clid])); + + if (version >= 27) { + let my_gauge_data = Base64toBuffer(music_data[clid + 10]); + + return send.object({ + "@attr": { my_option: option, my_option2: option2 }, // CastHour // + mydata: K.ITEM("bin", mydata), + my_gauge_data: K.ITEM("bin", my_gauge_data), + }); + } + + return send.object({ + mydata + }); +} + +export const musicreg: EPR = async (info, data, send) => { + const version = GetVersion(info); + + // wid, oppid, opname, opt, opt2, pside, nocnt, anum // + const refid = await IDtoRef(parseInt($(data).attr().iidxid)); + 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); + let exscore = (pgnum * 2 + gnum); + let ghost = null, ghost_gauge = null; // Heroic Verse // + let style = 0, option = 0, option_2 = 0; + + const mapping = [1, 2, 3, 6, 7, 8]; + if (version == -1) return send.deny(); + else if (version == 19) { + mid = OldMidToNewMid(mid); + if (mid == -1) return send.deny(); + + clid = mapping[clid]; + } + + const music_data: score | null = await DB.FindOne(refid, { + collection: "score", + mid: mid, + }); + + const profile = await DB.FindOne(refid, { + collection: "profile", + }); + + // SPN -> DPA [0~5] -> LINCLE // + // SPB -> DPL [0~9] -> Heroic Verse // + let pgArray = Array(10).fill(0); // PGREAT // + let gArray = Array(10).fill(0); // GREAT // + let mArray = Array(10).fill(0); // MISS // + let cArray = Array(10).fill(0); // CLEAR FLAGS // + let esArray = Array(10).fill(0); // EXSCORE // + let optArray = Array(10).fill(0); // USED OPTION (CastHour) // + let opt2Array = Array(10).fill(0); // USED OPTION (CastHour) // + + if (version >= 19) ghost = $(data).buffer("ghost").toString("base64"); + + if (version >= 27) { + ghost_gauge = $(data).buffer("ghost_gauge").toString("base64"); + style = parseInt($(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); + } + } + + if (_.isNil(music_data)) { + pgArray[clid] = pgnum; + gArray[clid] = gnum; + mArray[clid] = mnum; + cArray[clid] = cflg; + esArray[clid] = exscore; + optArray[clid] = option; + opt2Array[clid] = option_2; + } else { + pgArray = music_data.pgArray; + gArray = music_data.gArray; + mArray = music_data.mArray; + cArray = music_data.cArray; + esArray = music_data.esArray; + if (!_.isNil(music_data.optArray)) { // temp // + optArray = music_data.optArray; + opt2Array = music_data.opt2Array; + } + + const pExscore = esArray[clid]; + if (exscore > pExscore) { + pgArray[clid] = Math.max(pgArray[clid], pgnum); + gArray[clid] = Math.max(gArray[clid], gnum); + mArray[clid] = Math.max(mArray[clid], mnum); + esArray[clid] = Math.max(esArray[clid], exscore); + optArray[clid] = option; + opt2Array[clid] = option_2; + } else { + ghost = music_data[clid]; + if (version >= 27) ghost_gauge = music_data[clid + 10]; + } + + cArray[clid] = Math.max(cArray[clid], cflg); + } + + if (version >= 27) { + const score_top: score_top | null = await DB.FindOne(null, { + collection: "score_top", + play_style: style, + mid: mid, + }); + + let names = Array(5).fill(""); + let scores = Array(5).fill(-1); + let clflgs = Array(5).fill(-1); + let tmp_clid = clid; + if (style == 1) tmp_clid -= 5; + + if (_.isNil(score_top)) { + if (esArray[clid] > exscore) { + names[clid] = profile.name; + scores[clid] = esArray[clid]; + clflgs[clid] = cArray[clid]; + } else { + names[clid] = profile.name; + scores[clid] = exscore; + clflgs[clid] = cflg; + } + } else { + names = score_top.names; + scores = score_top.scores; + clflgs = score_top.clflgs; + + if (exscore > scores[clid]) { + names[clid] = profile.name; + scores[clid] = exscore; + clflgs[clid] = cflg; + } + } + + await DB.Upsert( + { + collection: "score_top", + play_style: style, + mid: mid, + }, + { + $set: { + names, + scores, + clflgs, + } + } + ); + } + + + await DB.Upsert( + refid, + { + collection: "score", + mid: mid, + }, + { + $set: { + pgArray, + gArray, + mArray, + cArray, + esArray, + optArray, + opt2Array, + + [clid]: ghost, + [clid + 10]: ghost_gauge, + } + } + ); + + send.object( + K.ATTR({ + status: "0", + mid: String(mid), + clid: String(clid), + crate: "0", + frate: "0", + }) + ); +} + +// this is not valid response // +export const musicarenacpu: EPR = async (info, data, send) => { + const version = GetVersion(info); + if (version == -1) return send.deny(); + + let cpu_score_list = [], total_notes = []; + $(data).elements("music_list").forEach((res) => { + total_notes.push(res.number("total_notes")); + }); + + for (let a = 0; a < $(data).elements("cpu_list").length; a++) { + let score_list = []; + + total_notes.forEach((res) => { + score_list.push({ + score: K.ITEM("s32", _.random(res, res * 2)), + ghost: K.ITEM("u8", 0), + enable_score: K.ITEM("bool", 1), + enable_ghost: K.ITEM("bool", 0), + }); + }) + + cpu_score_list.push({ + index: K.ITEM("s32", a), + score_list, + }); + } + + return send.object({ + cpu_score_list, + }) +} diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts new file mode 100644 index 0000000..674b19d --- /dev/null +++ b/iidx@asphyxia/handlers/pc.ts @@ -0,0 +1,1164 @@ +import { pcdata, KDZ_pcdata, IIDX27_pcdata, IIDX28_pcdata, IIDX29_pcdata, IIDX30_pcdata } from "../models/pcdata"; +import { grade } from "../models/grade"; +import { custom, default_custom } from "../models/custom"; +import { IDtoCode, IDtoRef, Base64toBuffer, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter } from "../util"; +import { eisei_grade, eisei_grade_data, lightning_musicmemo, lightning_musicmemo_new, lightning_playdata, lightning_settings, lm_playdata, lm_settings, lm_settings_new, musicmemo_data, musicmemo_data_new } from "../models/lightning"; +import { profile, default_profile } from "../models/profile"; +import { rival, rival_data } from "../models/rival"; +import { world_tourism } from "../models/worldtourism"; + +export const pccommon: EPR = async (info, data, send) => { + const version = GetVersion(info); + + if (version == 19) { + return send.object({ + "@attr": { + expire: 600, + }, + ir: K.ATTR({ + beat: String(U.GetConfig("BeatPhase")), + }), + lincle: K.ATTR({ + phase: String(2), + }), + boss: K.ATTR({ + phase: String(2), + }), + mr_secret: K.ATTR({ + flg: String(-1), + }), + travel: K.ATTR({ + flg: String(-1), + }), + }); + } else if (version >= 27) { + return send.pugFile(`pug/LDJ/${version}pccommon.pug`, { + beat: U.GetConfig("BeatPhase"), + }); + } else { + return send.deny(); + } +}; + +export const pcreg: EPR = async (info, data, send) => { + const version = GetVersion(info); + const id = _.random(10000000, 99999999); + const idstr = IDtoCode(id); + const refid = $(data).attr().rid; + + let pcdata: object; + let lightning_settings: object; + let lightning_playdata: object; + switch (version) { + case 19: + pcdata = KDZ_pcdata; + break; + case 27: + pcdata = IIDX27_pcdata; + lightning_playdata = lm_playdata; + lightning_settings = lm_settings; + break; + case 28: + pcdata = IIDX28_pcdata; + lightning_playdata = lm_playdata; + lightning_settings = lm_settings; + break; + case 29: + pcdata = IIDX29_pcdata; + lightning_playdata = lm_playdata; + lightning_settings = lm_settings_new; + break; + case 30: + pcdata = IIDX30_pcdata; + lightning_playdata = lm_playdata; + lightning_settings = lm_settings_new; + break; + + default: + return send.deny(); + } + + await DB.Upsert( + refid, + { + collection: "profile", + }, + { + $set: { + name: $(data).attr().name, + pid: parseInt($(data).attr().pid), + id, + idstr, + ...default_profile, + } + } + ); + + await DB.Upsert( + refid, + { + collection: "pcdata", + version: version, + }, + { + $set: pcdata, + } + ); + + await DB.Upsert( + refid, + { + collection: "custom", + version: version, + }, + { + $set: default_custom, + } + ); + + if (version >= 27) { + await DB.Upsert( + refid, + { + collection: "lightning_settings", + version: version, + }, + { + $set: lightning_settings, + } + ); + + await DB.Upsert( + refid, + { + collection: "lightning_playdata", + version: version, + }, + { + $set: lightning_playdata, + } + ); + } + + return send.object( + K.ATTR({ + id: String(id), + id_str: idstr, + }) + ); +}; + +export const pcget: EPR = async (info, data, send) => { + const version = GetVersion(info); + const refid = $(data).attr().rid; + + const profile = await DB.FindOne(refid, { collection: "profile" }); + const pcdata = await DB.FindOne(refid, { collection: "pcdata", version: version }); + const custom = await DB.FindOne(refid, { collection: "custom", version: version }); + const grade = await DB.Find(refid, { collection: "grade", version: version }); + const rivals = await DB.Find(refid, { collection: "rival" }); + const world_tourism = await DB.Find(refid, { collection: "world_tourism", version: version }); + const lm_settings = await DB.FindOne(refid, { collection: "lightning_settings", version: version }); + const lm_playdata = await DB.FindOne(refid, { collection: "lightning_playdata", version: version }); + const lm_eisei_grade = await DB.Find(refid, { collection: "eisei_grade", version: version }); + const lm_music_memo = await DB.Find(refid, { collection: "lightning_musicmemo", version: version }); + const lm_music_memo_new = await DB.Find(refid, { collection: "lightning_musicmemo_new", version: version }); + + if (_.isNil(pcdata)) return send.deny(); + + const appendsettings = appendSettingConverter( + custom.rank_folder, + custom.clear_folder, + custom.diff_folder, + custom.alpha_folder, + custom.rival_folder, + custom.rival_battle_folder, + custom.rival_info, + custom.hide_playcount, + custom.disable_graph_cutin, + custom.classic_hispeed, + custom.rival_played_folder, + custom.hide_iidxid, + ); + let dArray = [], eArray = [], rArray = [], mArray = [], bArray = []; + + grade.forEach((res: grade) => { + dArray.push([res.style, res.gradeId, res.maxStage, res.archive]); + }); + dArray.sort((a: grade, b: grade) => a.style - b.style || a.gradeId - b.gradeId); + + lm_eisei_grade.forEach((res) => { + eArray.push({ + grade_type: res.grade_type, + grade_id: res.grade_id, + stage_num: res.stage_num, + clear_type: res.clear_type, + option: res.option, + + past: res.past_achievement, + selected_course: res.past_selected_course, + max_past: res.max_past_achievement, + max_selected_course: res.max_past_selected_course, + }); + }); + eArray.sort((a: eisei_grade_data, b: eisei_grade_data): number => a.grade_type - b.grade_type || a.grade_id - b.grade_id); + + if (rivals.length > 0) { + for (let a = 0; a < rivals.length; a++) { + let profile = await ReftoProfile(rivals[a].rival_refid); + let pcdata = await ReftoPcdata(rivals[a].rival_refid, version); + let qprodata = await ReftoQPRO(rivals[a].rival_refid); + + let rival_data: rival_data = { + play_style: rivals[a].play_style, + index: rivals[a].index, + + profile: profile, + pcdata: pcdata, + qprodata: qprodata, + } + + rArray.push(rival_data); + } + rArray.sort((a: rival_data, b: rival_data): number => a.play_style - b.play_style || a.index - b.index); + } + + let wArray = []; + if (world_tourism.length > 0) { + for (let wt of world_tourism) { + let world_tourism_data = { + tour_id: wt.tour_id, + progress: wt.progress, + } + + wArray.push(world_tourism_data); + } + wArray.sort((a, b) => a.tour_id - b.tour_id); + } + + let event, event_1, event_1s, evtArray = [], evtArray2 = []; + if (version == 19) { + event = await DB.FindOne(refid, { collection: "event_1", version: version }); + + if (!_.isNil(event)) { + event.cf = Base64toBuffer(event.cf); + event.qcf = Base64toBuffer(event.qcf); + event.piece = Base64toBuffer(event.piece); + } + + return send.pugFile("pug/KDZ/pcget.pug", { + profile, + pcdata, + dArray, + appendsettings, + custom, + rArray, + event, + }); + } else if (version >= 27) { + event_1 = await DB.Find(refid, { collection: "event_1", version: version }); + event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version }); + + if (event_1.length > 0) { + for (let evt of event_1) { + evtArray.push(evt); + } + } + + if (event_1s.length > 0) { + for (let evt of event_1s) { + evtArray2.push(evt); + } + } + + if (lm_music_memo_new.length > 0 && version >= 30) { + lm_music_memo_new.forEach((res) => { + let musicmemo_data: musicmemo_data_new = { + folder_idx: res.folder_idx, + folder_name: res.folder_name, + play_style: res.play_style, + + music_ids: res.music_ids, + } + + mArray.push(musicmemo_data); + }); + mArray.sort((a: musicmemo_data_new, b: musicmemo_data_new): number => a.play_style - b.play_style || a.folder_idx - b.folder_idx); + } else if (lm_music_memo.length > 0 && version >= 27) { + lm_music_memo.forEach((res) => { + let musicmemo_data: musicmemo_data = { + music_idx: res.music_idx, + play_style: res.play_style, + + music_id: res.music_id, + } + + mArray.push(musicmemo_data); + }); + mArray.sort((a: musicmemo_data, b: musicmemo_data): number => a.play_style - b.play_style || a.music_idx - b.music_idx); + } + + /* TODO:: figure out how badges works + [save] - elements are below but get checks for id 0~12 + today_recommend (flg) + weekly_ranking (flg) + visitor (flg_id, flg) + notes_radar (flg_id, flg) [2] + world_tourism (flg) + event1 (flg_id, flg) [10] + arena (flg_id, flg) [2] + iidx_exam (flg) + */ + + /* [get] + category_id - up to 12 + badge_flg_id + - This can be up to 23 + - category_id: 0, 1 -> 23 + - category_id: 9 -> 9 + - category_id: 7, 10 -> 2 + badge_flg + */ + for (let a = 0; a < 13; a++) { + if (a == 0 || a == 1) { + for (let b = 0; b < 24; b++) { + bArray.push({ + id: a, + flg_id: b, + flg: -1, + }); + } + continue; + } else if (a == 9) { + for (let b = 0; b < 10; b++) { + bArray.push({ + id: a, + flg_id: b, + flg: -1, + }); + } + continue; + } else if (a == 7 || a == 10) { + for (let b = 0; b < 2; b++) { + bArray.push({ + id: a, + flg_id: b, + flg: -1, + }); + } + continue; + } + + bArray.push({ + id: a, + flg_id: 0, + flg: -1, + }); + } + + return send.pugFile(`pug/LDJ/${version}pcget.pug`, { + profile, + pcdata, + lm_playdata, + lm_settings, + mArray, + dArray, + eArray, + appendsettings, + custom, + rArray, + evtArray, + evtArray2, + wArray, + bArray, + }); + } else { + return send.deny(); + } +}; + +// TODO:: migration (oldget/getname/takeover) // +export const pcoldget: EPR = async (info, data, send) => { + const version = GetVersion(info) - 1; + const refid = $(data).attr().rid; + const pcdata = await DB.FindOne(refid, { collection: "pcdata", version: version }); + + if (_.isNil(pcdata)) return send.deny(); + + return send.success(); +}; + +export const pcgetname: EPR = async (info, data, send) => { + const refid = $(data).attr().rid; + const profile = await DB.FindOne(refid, { collection: "profile" }); + + if (_.isNil(profile)) return send.deny(); + + return send.object( + K.ATTR({ + name: profile.name, + idstr: profile.idstr, + pid: String(profile.pid), + }) + ); +}; + +export const pctakeover: EPR = async (info, data, send) => { + const version = GetVersion(info); + const refid = $(data).attr().rid; + const profile = await DB.FindOne(refid, { collection: "profile" }); + + // do samething as pcreg // + let pcdata: object; + let lightning_settings: object; + let lightning_playdata: object; + switch (version) { + case 19: + pcdata = KDZ_pcdata; + break; + case 27: + pcdata = IIDX27_pcdata; + lightning_playdata = lm_playdata; + lightning_settings = lm_settings; + break; + case 28: + pcdata = IIDX28_pcdata; + lightning_playdata = lm_playdata; + lightning_settings = lm_settings; + break; + case 29: + pcdata = IIDX29_pcdata; + lightning_playdata = lm_playdata; + lightning_settings = lm_settings_new; + break; + case 30: + pcdata = IIDX30_pcdata; + lightning_playdata = lm_playdata; + lightning_settings = lm_settings_new; + break; + + + default: + return send.deny(); + } + + await DB.Upsert( + refid, + { + collection: "pcdata", + version: version, + }, + { + $set: pcdata, + } + ); + + await DB.Upsert( + refid, + { + collection: "custom", + version: version, + }, + { + $set: default_custom, + } + ); + + if (version >= 27) { + await DB.Upsert( + refid, + { + collection: "lightning_settings", + version: version, + }, + { + $set: lightning_settings, + } + ); + + await DB.Upsert( + refid, + { + collection: "lightning_playdata", + version: version, + }, + { + $set: lightning_playdata, + } + ); + } + + return send.object( + K.ATTR({ + id: String(profile.id), + }) + ); +}; + +export const pcvisit: EPR = async (info, data, send) => { + return send.object( + K.ATTR({ + anum: "0", + snum: "0", + pnum: "0", + aflg: "0", + sflg: "0", + pflg: "0", + }) + ); +}; + +export const pcsave: 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 // + + if (version == -1) return send.deny(); + + let profile = await DB.FindOne(refid, { collection: "profile" }); + let pcdata = await DB.FindOne(refid, { collection: "pcdata", version: version }); + let custom = await DB.FindOne(refid, { collection: "custom", version: version }); + let lm_settings = await DB.FindOne(refid, { collection: "lightning_settings", version: version }); + let lm_playdata = await DB.FindOne(refid, { collection: "lightning_playdata", version: version }); + + if (_.isNil(pcdata)) return send.deny(); + + const isTDJ = !(_.isNil($(data).element("lightning_play_data"))); + const hasStepUpData = !(_.isNil($(data).element("step"))); + const hasEventData = !(_.isNil($(data).element("event1"))) || !(_.isNil($(data).element("event_1"))); + const hasLanguageData = !(_.isNil($(data).element("language_setting"))); + const hasWorldTourism = !(_.isNil($(data).element("world_tourism_data"))); + const hasMusicMemo = !(_.isNil($(data).element("music_memo"))); + const hasTowerData = !(_.isNil($(data).element("tower_data"))); + + if (cltype == 0) pcdata.spnum += 1; + else pcdata.dpnum += 1; + + if (isTDJ) { + if (cltype == 0) lm_playdata.sp_num += 1; + else lm_playdata.dp_num += 1; + + lm_settings.headphone_vol = parseInt($(data).attr("lightning_setting").headphone_vol); + lm_settings.slider = $(data).element("lightning_setting").numbers("slider"); + lm_settings.resistance_sp_left = parseInt($(data).attr("lightning_setting").resistance_sp_left); + lm_settings.resistance_sp_right = parseInt($(data).attr("lightning_setting").resistance_sp_right); + lm_settings.resistance_dp_left = parseInt($(data).attr("lightning_setting").resistance_dp_left); + lm_settings.resistance_dp_right = parseInt($(data).attr("lightning_setting").resistance_dp_right); + lm_settings.light = $(data).element("lightning_setting").numbers("light"); + lm_settings.concentration = $(data).element("lightning_setting").number("concentration"); + } + + profile.total_pc += 1; + + pcdata.mode = parseInt($(data).attr().mode); + pcdata.pmode = parseInt($(data).attr().pmode); + + if (version == 19) { + if (cltype == 0) { + pcdata.sach = parseInt($(data).attr().achi); + pcdata.sp_opt = parseInt($(data).attr().opt); + } else { + pcdata.dach = parseInt($(data).attr().achi); + pcdata.dp_opt = parseInt($(data).attr().opt); + pcdata.dp_opt2 = parseInt($(data).attr().opt2); + } + + pcdata.notes = parseFloat($(data).attr().notes); + pcdata.gno = parseInt($(data).attr().gno); + pcdata.help = parseInt($(data).attr().help); + pcdata.liflen = parseInt($(data).attr().lift); + pcdata.fcombo[cltype] = parseInt($(data).attr().fcombo); + pcdata.pase = parseInt($(data).attr().pase); + pcdata.sdhd = parseInt($(data).attr().sdhd); + pcdata.sdtype = parseInt($(data).attr().sdtype); + pcdata.sflg0 = parseInt($(data).attr().sflg0); + pcdata.sflg1 = parseInt($(data).attr().sflg1); + pcdata.timing = parseInt($(data).attr().timing); + + if (!_.isNil($(data).element("jpoint"))) { + pcdata.jpoint += parseInt($(data).attr("jpoint").point); + } + + // TODO:: parsing (element type is binary) // + if (hasStepUpData) { + // hand0, hand1, hand2, hand3, hand4 (attr) // + // binary (content) // + if (cltype == 0) { + pcdata.st_sp_ach = parseInt($(data).attr("step").sp_ach); + pcdata.st_sp_dif = parseInt($(data).attr("step").sp_dif); + } else { + pcdata.st_dp_ach = parseInt($(data).attr("step").dp_ach); + pcdata.st_dp_dif = parseInt($(data).attr("step").dp_dif); + } + } + + if (!_.isNil($(data).element("kingdom"))) { + let event_data = { + level: parseInt($(data).attr("kingdom").level), + exp: parseInt($(data).attr("kingdom").exp), + deller: parseInt($(data).attr("kingdom").deller), + place: parseInt($(data).attr("kingdom").place), + tower: parseInt($(data).attr("kingdom").tower), + boss: parseInt($(data).attr("kingdom").boss), + combo: parseInt($(data).attr("kingdom").combo), + jewel: parseInt($(data).attr("kingdom").jewel), + generic: parseInt($(data).attr("kingdom").generic), + cf: $(data).element("kingdom").buffer("cf").toString("base64"), + qcf: $(data).element("kingdom").buffer("qcf").toString("base64"), + piece: $(data).element("kingdom").buffer("piece").toString("base64"), + } + + DB.Upsert(refid, + { + collection: "event_1", + version: version, + }, + { + $set: event_data, + } + ); + } + + if (!_.isNil($(data).element("history"))) { + pcdata.type = $(data).element("history").numbers("type"); + pcdata.time = $(data).element("history").numbers("time"); + pcdata.p0 = $(data).element("history").numbers("p0"); + pcdata.p1 = $(data).element("history").numbers("p1"); + pcdata.p2 = $(data).element("history").numbers("p2"); + pcdata.p3 = $(data).element("history").numbers("p3"); + pcdata.p4 = $(data).element("history").numbers("p4"); + } + } else if (version >= 27) { + // lid bookkeep cid ctype ccode + pcdata.rtype = parseInt($(data).attr().d_sdtype); + pcdata.sach = parseInt($(data).attr().s_achi); + pcdata.dach = parseInt($(data).attr().d_achi); + pcdata.sp_opt = parseInt($(data).attr().sp_opt); + pcdata.dp_opt = parseInt($(data).attr().dp_opt); + pcdata.dp_opt2 = parseInt($(data).attr().dp_opt2); + pcdata.gpos = parseInt($(data).attr().gpos); + pcdata.s_sorttype = parseInt($(data).attr().s_sorttype); + pcdata.d_sorttype = parseInt($(data).attr().d_sorttype); + pcdata.s_disp_judge = parseInt($(data).attr().s_disp_judge); + pcdata.d_disp_judge = parseInt($(data).attr().d_disp_judge); + pcdata.s_pace = parseInt($(data).attr().s_pace); + pcdata.d_pace = parseInt($(data).attr().d_pace); + pcdata.s_gno = parseInt($(data).attr().s_gno); + pcdata.d_gno = parseInt($(data).attr().d_gno); + pcdata.s_sub_gno = parseInt($(data).attr().s_sub_gno); + pcdata.d_sub_gno = parseInt($(data).attr().d_sub_gno); + pcdata.s_gtype = parseInt($(data).attr().s_gtype); + pcdata.d_gtype = parseInt($(data).attr().d_gtype); + pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); + pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); + pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); + pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); + pcdata.s_notes = parseFloat($(data).attr().s_notes); + pcdata.d_notes = parseFloat($(data).attr().d_notes); + pcdata.s_judge = parseInt($(data).attr().s_judge); + pcdata.d_judge = parseInt($(data).attr().d_judge); + pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); + pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); + pcdata.s_hispeed = parseInt($(data).attr().s_hispeed); + pcdata.d_hispeed = parseInt($(data).attr().d_hispeed); + pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); + pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); + pcdata.s_graph_score = parseInt($(data).attr().s_graph_score); + pcdata.d_graph_score = parseInt($(data).attr().d_graph_score); + pcdata.s_auto_scrach = parseInt($(data).attr().s_auto_scrach); + pcdata.d_auto_scrach = parseInt($(data).attr().d_auto_scrach); + pcdata.s_gauge_disp = parseInt($(data).attr().s_gauge_disp); + pcdata.d_gauge_disp = parseInt($(data).attr().d_gauge_disp); + pcdata.s_lane_brignt = parseInt($(data).attr().s_lane_brignt); + pcdata.d_lane_brignt = parseInt($(data).attr().d_lane_brignt); + pcdata.s_camera_layout = parseInt($(data).attr().s_camera_layout); + pcdata.d_camera_layout = parseInt($(data).attr().d_camera_layout); + pcdata.s_ghost_score = parseInt($(data).attr().s_ghost_score); + pcdata.d_ghost_score = parseInt($(data).attr().d_ghost_score); + pcdata.s_tsujigiri_disp = parseInt($(data).attr().s_tsujigiri_disp); + pcdata.d_tsujigiri_disp = parseInt($(data).attr().d_tsujigiri_disp); + + if (version >= 28) { + pcdata.ngrade = parseInt($(data).attr().ngrade); + } + if (version >= 29) { + pcdata.s_auto_adjust = parseInt($(data).attr().s_auto_adjust); + pcdata.d_auto_adjust = parseInt($(data).attr().d_auto_adjust); + } + if (version >= 30) { + pcdata.s_timing_split = parseInt($(data).attr().s_timing_split); + pcdata.d_timing_split = parseInt($(data).attr().d_timing_split); + pcdata.s_visualization = parseInt($(data).attr().s_visualization); + pcdata.d_visualization = parseInt($(data).attr().d_visualization); + } + + if (cltype == 0) { + pcdata.s_liflen = parseInt($(data).attr().s_lift); + } else { + pcdata.d_liflen = parseInt($(data).attr().d_lift); + } + + if (!_.isNil($(data).element("secret"))) { + pcdata.secret_flg1 = $(data).element("secret").bigints("flg1").map(String); + pcdata.secret_flg2 = $(data).element("secret").bigints("flg2").map(String); + pcdata.secret_flg3 = $(data).element("secret").bigints("flg3").map(String); + pcdata.secret_flg4 = $(data).element("secret").bigints("flg4").map(String); + } + + // use bigint if type is "s64", number may seems to work // + // but element will be removed when saving into DB once type is exceeded // + // however, bigint is returning convert error on sendPug so mapping as string // + if (!_.isNil($(data).element("qpro_secret"))) { + custom.qpro_secret_head = $(data).element("qpro_secret").bigints("head").map(String); + custom.qpro_secret_hair = $(data).element("qpro_secret").bigints("hair").map(String); + custom.qpro_secret_face = $(data).element("qpro_secret").bigints("face").map(String); + custom.qpro_secret_body = $(data).element("qpro_secret").bigints("body").map(String); + custom.qpro_secret_hand = $(data).element("qpro_secret").bigints("hand").map(String); + } + + if (!_.isNil($(data).element("qpro_equip"))) { + custom.qpro_head = parseInt($(data).attr("qpro_equip").head); + custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); + custom.qpro_face = parseInt($(data).attr("qpro_equip").face); + custom.qpro_body = parseInt($(data).attr("qpro_equip").body); + custom.qpro_hand = parseInt($(data).attr("qpro_equip").head); + } + + if (hasStepUpData) { + pcdata.st_enemy_damage = parseInt($(data).attr("step").enemy_damage); + pcdata.st_progress = parseInt($(data).attr("step").progress); + pcdata.st_is_track_ticket = $(data).element("step").bool("is_track_ticket"); + pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); + pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); + 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); + + if (version >= 29) { + pcdata.st_total_point = parseInt($(data).attr("step").total_point); + pcdata.st_enemy_defeat_flg = parseInt($(data).attr("step").enemy_defeat_flg); + pcdata.st_mission_clear_num = parseInt($(data).attr("step").mission_clear_num); + + if (version >= 30) { + pcdata.st_sp_fluctuation = parseInt($(data).attr("step").sp_fluctuation); + pcdata.st_dp_fluctuation = parseInt($(data).attr("step").dp_fluctuation); + } + } else { + pcdata.st_dp_clear_mission_clear = parseInt($(data).attr("step").dp_clear_mission_clear); + pcdata.st_dp_clear_mission_level = parseInt($(data).attr("step").dp_clear_mission_level); + pcdata.st_dp_dj_mission_clear = parseInt($(data).attr("step").dp_dj_mission_clear); + pcdata.st_dp_dj_mission_level = parseInt($(data).attr("step").dp_dj_mission_level); + pcdata.st_dp_mission_point = parseInt($(data).attr("step").dp_mission_point); + + pcdata.st_sp_clear_mission_clear = parseInt($(data).attr("step").sp_clear_mission_clear); + pcdata.st_sp_clear_mission_level = parseInt($(data).attr("step").sp_clear_mission_level); + pcdata.st_sp_dj_mission_clear = parseInt($(data).attr("step").sp_dj_mission_clear); + pcdata.st_sp_dj_mission_level = parseInt($(data).attr("step").sp_dj_mission_level); + pcdata.st_sp_mission_point = parseInt($(data).attr("step").sp_mission_point); + } + } + + if (!_.isNil($(data).element("achievements"))) { + // TODO:: achi_pack, achi_rivalcrush // + pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); + } + + if ($(data).attr("dj_rank.1").style == "1") { + pcdata.dr_sprank = $(data).element("dj_rank").numbers("rank"); + pcdata.dr_sppoint = $(data).element("dj_rank").numbers("point"); + pcdata.dr_dprank = $(data).element("dj_rank.1").numbers("rank"); + pcdata.dr_dppoint = $(data).element("dj_rank.1").numbers("point"); + } else if ($(data).attr("dj_rank").style == "0") { + pcdata.dr_sprank = $(data).element("dj_rank").numbers("rank"); + pcdata.dr_sppoint = $(data).element("dj_rank").numbers("point"); + } else if ($(data).attr("dj_rank").style == "1") { + pcdata.dr_dprank = $(data).element("dj_rank").numbers("rank"); + pcdata.dr_dppoint = $(data).element("dj_rank").numbers("point"); + } + + if ($(data).attr("notes_radar.1").style == "1") { + pcdata.nr_spradar = $(data).element("notes_radar").numbers("radar_score"); + pcdata.nr_dpradar = $(data).element("notes_radar.1").numbers("radar_score"); + } else if ($(data).attr("notes_radar").style == "0") { + pcdata.nr_spradar = $(data).element("notes_radar").numbers("radar_score"); + } else if ($(data).attr("notes_radar").style == "1") { + pcdata.nr_dpradar = $(data).element("notes_radar").numbers("radar_score"); + } + + if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); + if (!_.isNil($(data).element("orb_data"))) { + pcdata.present_orb += parseInt($(data).attr("orb_data").present_orb); + pcdata.orb += parseInt($(data).attr("orb_data").add_orb); + pcdata.orb += parseInt($(data).attr("orb_data").reward_orb); + } + + if (hasLanguageData) profile.language = parseInt($(data).attr("language_setting").language); + + if (!_.isNil($(data).element("extra_boss_event"))) { + pcdata.eb_keyorb = parseInt($(data).attr("extra_boss_event").key_orb); + pcdata.eb_bossorb0 = parseInt($(data).attr("extra_boss_event").boss_orb_0); + pcdata.eb_bossorb1 = parseInt($(data).attr("extra_boss_event").boss_orb_1); + pcdata.eb_bossorb2 = parseInt($(data).attr("extra_boss_event").boss_orb_2); + pcdata.eb_bossorb3 = parseInt($(data).attr("extra_boss_event").boss_orb_3); + pcdata.eb_bossorb4 = parseInt($(data).attr("extra_boss_event").boss_orb_4); + pcdata.eb_bossorb5 = parseInt($(data).attr("extra_boss_event").boss_orb_5); + pcdata.eb_bossorb6 = parseInt($(data).attr("extra_boss_event").boss_orb_6); + pcdata.eb_bossorb7 = parseInt($(data).attr("extra_boss_event").boss_orb_7); + } + + if (hasEventData) { + if (version == 27) { + pcdata.event_play_num += 1; + pcdata.event_last_select_id = parseInt($(data).attr("event1").last_select_gym_id); + + $(data).element("event1").elements("gym_data").forEach((res) => { + let event_data = { + gym_id: res.attr().gym_id, + play_num: res.attr().play_num, + gauge_spirit: res.attr().gauge_spirit, + gauge_technique: res.attr().gauge_technique, + gauge_body: res.attr().gauge_body, + boss_attack_num: res.attr().boss_attack_num, + boss_damage: res.attr().boss_damage, + disp_lounge_list: res.attr().disp_lounge_list, + stb_type: res.attr().stb_type, + is_complete: res.number("is_complete"), + is_gauge_max: res.number("is_gauge_max"), + } + + DB.Upsert( + refid, + { + collection: "event_1", + version: version, + gym_id: event_data.gym_id + }, + { + $set: event_data, + }); + }); + } else if (version == 28) { + pcdata.event_play_num += 1; + pcdata.event_story_prog = parseInt($(data).attr("event_1").story_prog); + pcdata.event_last_select_id = parseInt($(data).attr("event_1").last_select_area_id); + pcdata.event_failed_num = parseInt($(data).attr("event_1").failed_num); + + $(data).element("event_1").elements("area_data").forEach((res) => { + let event_data = { + area_id: res.attr().area_id, + play_num: res.attr().play_num, + recipe_prog0: res.attr().recipe_prog0, + recipe_prog1: res.attr().recipe_prog1, + recipe_prog2: res.attr().recipe_prog2, + recipe_prog3: res.attr().recipe_prog3, + recipe_prog4: res.attr().recipe_prog4, + operation_num: res.attr().operation_num, + operation_prog: res.attr().operation_prog, + last_select_recipe: res.attr().last_select_recipe, + area_prog: res.attr().area_prog, + is_complete: res.number("is_complete"), + } + + DB.Upsert( + refid, + { + collection: "event_1", + version: version, + area_id: event_data.area_id + }, + { + $set: event_data, + }); + }); + } else if (version == 29) { + pcdata.event_play_num += 1; + pcdata.event_last_select_id = parseInt($(data).attr("event_1").last_select_platform_id); + pcdata.event_last_select_type = parseInt($(data).attr("event_1").last_select_platform_type); + + let event_data, event_sub_data; + $(data).element("event_1").elements("watch_data").forEach((res) => { + if (!(_.isNil(res.element("channel")))) { + event_data = { + last_select_channel: res.attr().last_select_channel, + platform_id: res.attr().platform_id, + platform_prog: res.attr().platform_prog, + play_num: res.attr().play_num, + }; + + event_sub_data = { + platform_id: res.attr().platform_id, + channel_id: res.attr("channel").channel_id, + gauge: res.attr("channel").gauge, + channel_play_num: res.attr("channel").play_num, + is_complete: res.element("channel").number("is_complete"), + } + } else { + event_data = { + last_select_channel: res.attr().last_select_channel, + platform_id: res.attr().platform_id, + platform_prog: res.attr().platform_prog, + play_num: res.attr().play_num, + } + + event_sub_data = { + platform_id: res.attr().platform_id, + channel_id: 0, + gauge: 0, + channel_play_num: 0, + is_complete: 0, + } + } + + DB.Upsert(refid, + { + collection: "event_1", + version: version, + platform_id: event_data.platform_id + }, + { + $set: event_data, + } + ); + + DB.Upsert(refid, + { + collection: "event_1_sub", + version: version, + platform_id: event_sub_data.platform_id, + channel_id: event_sub_data.channel_id, + }, + { + $set: event_sub_data, + } + ); + }); + } else if (version == 30) { + pcdata.event_play_num += 1; + pcdata.event_last_select_id = parseInt($(data).attr("event_1").last_select_flyer_id); + + let event_data, event_sub_data; + $(data).element("event_1").elements("flyer_data").forEach((res) => { + if (!(_.isNil(res.element("genre_data")))) { + event_data = { + last_select_genre: res.attr().last_select_genre, + flyer_id: res.attr().flyer_id, + flyer_prog: res.attr().flyer_prog, + play_num: res.attr().play_num, + skill_param: res.attr().skill_param, + }; + + event_sub_data = { + flyer_id: res.attr().flyer_id, + genre_id: res.element("genre_data").attr().genre_id, + gauge: res.element("genre_data").attr().gauge, + genre_playnum: res.element("genre_data").attr().play_num, + is_complete: res.element("genre_data").number("is_complete"), + } + } else { + event_data = { + last_select_genre: res.attr().last_select_genre, + flyer_id: res.attr().flyer_id, + flyer_prog: res.attr().flyer_prog, + play_num: res.attr().play_num, + skill_param: res.attr().skill_param, + }; + + event_sub_data = { + flyer_id: res.attr().flyer_id, + genre_id: 0, + gauge: 0, + genre_playnum: 0, + is_complete: 0, + } + } + + DB.Upsert(refid, + { + collection: "event_1", + version: version, + flyer_id: event_data.flyer_id + }, + { + $set: event_data, + } + ); + + DB.Upsert(refid, + { + collection: "event_1_sub", + version: version, + flyer_id: event_sub_data.flyer_id, + genre_id: event_sub_data.genre_id, + }, + { + $set: event_sub_data, + } + ); + }); + } + } + + if (hasWorldTourism) { + if (version >= 28) { + $(data).elements("world_tourism_data").forEach((res) => { + let tourInfo = { + tour_id: parseInt(res.attr().tour_id), + progress: parseInt(res.attr().progress), + } + + DB.Upsert( + refid, + { + collection: "world_tourism", + version: version, + tour_id: tourInfo.tour_id + }, + { + $set: { + progress: tourInfo.progress, + } + } + ); + }); + } + } + + if (hasMusicMemo) { + if (version >= 30) { + $(data).element("music_memo").elements("folder").forEach((res) => { + DB.Upsert( + refid, + { + collection: "lightning_musicmemo_new", + version: version, + folder_idx: parseInt(res.attr().folder_id), + play_style: parseInt(res.attr().play_style), + }, + { + $set: { + folder_name: res.attr().name, + music_ids: res.numbers("music_id"), + }, + }); + }); + } else if (version >= 27) { + $(data).element("music_memo").elements("music").forEach((res) => { + DB.Upsert( + refid, + { + collection: "lightning_musicmemo", + version: version, + music_idx: parseInt(res.attr().index), + play_style: parseInt(res.attr().play_style), + }, + { + $set: { + music_id: parseInt(res.attr().music_id), + }, + }); + }); + } + } + + if (hasTowerData) { + profile.total_kbd += parseInt($(data).attr("tower_data").keyboard); + profile.total_scr += parseInt($(data).attr("tower_data").scratch); + } + } + + await DB.Upsert( + refid, + { + collection: "profile", + }, + { + $set: profile + } + ); + + await DB.Upsert( + refid, + { + collection: "pcdata", + version: version, + }, + { + $set: pcdata + } + ); + + await DB.Upsert( + refid, + { + collection: "custom", + version: version, + }, + { + $set: custom + } + ); + + return send.success(); +}; + +export const pcgetlanegacha: EPR = async (info, data, send) => { + let tArray = []; + for (let i = 0; i < 100; i++) { + let random = _.random(0, 5040); + + tArray.push( + K.ATTR({ + ticket_id: String(i), + arrange_id: String(random), + expire_date: String(4102326000), + }) + ); + } + + 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), + }), + }); +}; + +export const pcdrawlanegacha: EPR = async (info, data, send) => { + let drawNum = parseInt($(data).attr().draw_num); + let tArray = []; + + for (let i = 0; i < drawNum; i++) { + let random = _.random(0, 5040); + + tArray.push( + K.ATTR({ + ticket_id: String(i), + arrange_id: String(random), + expire_date: String(4102326000), + }) + ); + } + + return send.object({ + ticket: tArray, + session: K.ATTR({ + session_id: String(0), + }), + }); +}; + +export const pcconsumelanegacha: EPR = async (info, data, send) => { + return send.success(); +}; diff --git a/iidx@asphyxia/handlers/shop.ts b/iidx@asphyxia/handlers/shop.ts new file mode 100644 index 0000000..b944dc2 --- /dev/null +++ b/iidx@asphyxia/handlers/shop.ts @@ -0,0 +1,20 @@ +export const shopgetname: EPR = async (info, data, send) => { + return send.object( + K.ATTR({ + status: "0", + opname: "CORE", + pid: "57", + cls_opt: "0", + hr: "0", + mi: "0", + }) + ); +}; + +export const shopgetconvention: EPR = async (info, data, send) => { + return send.deny(); +}; + +export const shopsetconvention: EPR = async (info, data, send) => { + return send.deny(); +}; diff --git a/iidx@asphyxia/handlers/webui.ts b/iidx@asphyxia/handlers/webui.ts new file mode 100644 index 0000000..7215a1c --- /dev/null +++ b/iidx@asphyxia/handlers/webui.ts @@ -0,0 +1,218 @@ +import { profile } from "../models/profile"; +import { rival } from "../models/rival"; + +export const updateRivalSettings = async (data: { + // All of data sent as string + iidxid: string; + + sp_rival1?: string; + sp_rival2?: string; + sp_rival3?: string; + sp_rival4?: string; + sp_rival5?: string; + + dp_rival1?: string; + dp_rival2?: string; + dp_rival3?: string; + dp_rival4?: string; + dp_rival5?: string; +}) => { + const profile = await DB.FindOne(null, { + collection: "profile", + idstr: data.iidxid, + }); + let update_array = []; + + if (!(_.isEmpty(data.sp_rival1))) { + let update_data = { + play_style: 1, + index: 0, + rival_refid: data.sp_rival1, + }; + + update_array.push(update_data); + } else { + await DB.Remove(profile.refid, + { + collection: 'rival', + play_style: 1, + index: 0, + } + ) + } + + if (!(_.isEmpty(data.sp_rival2))) { + let update_data = { + play_style: 1, + index: 1, + rival_refid: data.sp_rival2, + }; + + update_array.push(update_data); + } else { + await DB.Remove(profile.refid, + { + collection: 'rival', + play_style: 1, + index: 1, + } + ) + } + + if (!(_.isEmpty(data.sp_rival3))) { + let update_data = { + play_style: 1, + index: 2, + rival_refid: data.sp_rival3, + }; + + update_array.push(update_data); + } else { + await DB.Remove(profile.refid, + { + collection: 'rival', + play_style: 1, + index: 2, + } + ) + } + + if (!(_.isEmpty(data.sp_rival4))) { + let update_data = { + play_style: 1, + index: 3, + rival_refid: data.sp_rival4, + }; + + update_array.push(update_data); + } else { + await DB.Remove(profile.refid, + { + collection: 'rival', + play_style: 1, + index: 3, + } + ) + } + + if (!(_.isEmpty(data.sp_rival5))) { + let update_data = { + play_style: 1, + index: 4, + rival_refid: data.sp_rival5, + }; + + update_array.push(update_data); + } else { + await DB.Remove(profile.refid, + { + collection: 'rival', + play_style: 1, + index: 4, + } + ) + } + + if (!(_.isEmpty(data.dp_rival1))) { + let update_data = { + play_style: 2, + index: 0, + rival_refid: data.dp_rival1, + }; + + update_array.push(update_data); + } else { + await DB.Remove(profile.refid, + { + collection: 'rival', + play_style: 2, + index: 0, + } + ) + } + + if (!(_.isEmpty(data.dp_rival2))) { + let update_data = { + play_style: 2, + index: 1, + rival_refid: data.dp_rival2, + }; + + update_array.push(update_data); + } else { + await DB.Remove(profile.refid, + { + collection: 'rival', + play_style: 2, + index: 1, + } + ) + } + + if (!(_.isEmpty(data.dp_rival3))) { + let update_data = { + play_style: 2, + index: 2, + rival_refid: data.dp_rival3, + }; + + update_array.push(update_data); + } else { + await DB.Remove(profile.refid, + { + collection: 'rival', + play_style: 2, + index: 2, + } + ) + } + + if (!(_.isEmpty(data.dp_rival4))) { + let update_data = { + play_style: 2, + index: 3, + rival_refid: data.dp_rival4, + }; + + update_array.push(update_data); + } else { + await DB.Remove(profile.refid, + { + collection: 'rival', + play_style: 2, + index: 3, + } + ) + } + + if (!(_.isEmpty(data.dp_rival5))) { + let update_data = { + play_style: 2, + index: 4, + rival_refid: data.dp_rival5, + }; + + update_array.push(update_data); + } else { + await DB.Remove(profile.refid, + { + collection: 'rival', + play_style: 2, + index: 4, + } + ) + } + + for (let i = 0; i < update_array.length; i++) { + await DB.Upsert(profile.refid, { + collection: "rival", + play_style: update_array[i].play_style, + index: update_array[i].index, + }, { + $set: { + rival_refid: update_array[i].rival_refid, + } + } + ) + } +}; diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts new file mode 100644 index 0000000..807fc3f --- /dev/null +++ b/iidx@asphyxia/index.ts @@ -0,0 +1,64 @@ +import { pccommon, pcreg, pcget, pcgetname, pctakeover, pcvisit, pcsave, pcoldget, pcgetlanegacha, pcconsumelanegacha, pcdrawlanegacha } from "./handlers/pc"; +import { shopgetname, shopgetconvention, shopsetconvention } from "./handlers/shop"; +import { musicreg, musicgetrank, musicappoint, musicarenacpu } from "./handlers/music"; +import { graderaised } from "./handlers/grade"; +import { gssysteminfo } from "./handlers/gamesystem"; +import { updateRivalSettings } from "./handlers/webui"; + +export function register() { + if (CORE_VERSION_MAJOR <= 1 && CORE_VERSION_MINOR < 31) { + console.error("The current version of Asphyxia Core is not supported. Requires version '1.31' or later."); + return; + } + + R.Contributor("duel0213"); + + R.GameCode("KDZ"); + R.GameCode("LDJ"); + + R.Config("BeatPhase", { + name: "Beat #", + type: "integer", + default: 3, + }); + + R.WebUIEvent("updateIIDXRivalSettings", updateRivalSettings); + + const MultiRoute = (method: string, handler: EPR | boolean) => { + R.Route(`${method}`, handler); + R.Route(`IIDX27${method}`, handler); + R.Route(`IIDX28${method}`, handler); + R.Route(`IIDX29${method}`, handler); + R.Route(`IIDX30${method}`, handler); + }; + + MultiRoute("pc.common", pccommon); + MultiRoute("pc.reg", pcreg); + MultiRoute("pc.get", pcget); + MultiRoute("pc.getname", pcgetname); + MultiRoute("pc.oldget", pcoldget); + MultiRoute("pc.takeover", pctakeover); + MultiRoute("pc.visit", pcvisit); + MultiRoute("pc.save", pcsave); + MultiRoute("pc.getLaneGachaTicket", pcgetlanegacha); + MultiRoute("pc.drawLaneGacha", pcdrawlanegacha); + MultiRoute("pc.consumeLaneGachaTicket", pcconsumelanegacha); + + MultiRoute("shop.getname", shopgetname); + MultiRoute("shop.getconvention", shopgetconvention); + MultiRoute("shop.setconvention", shopsetconvention); + + MultiRoute("music.getrank", musicgetrank); + MultiRoute("music.appoint", musicappoint); + MultiRoute("music.reg", musicreg); + MultiRoute("music.arenaCPU", musicarenacpu); + + MultiRoute("grade.raised", graderaised); + + MultiRoute("gameSystem.systemInfo", gssysteminfo); + + R.Unhandled((req: EamuseInfo, data: any, send: EamuseSend) => { + console.warn(`Unhandled Request : ${req.module}.${req.method}`); + return send.success(); + }); +} diff --git a/iidx@asphyxia/models/custom.ts b/iidx@asphyxia/models/custom.ts new file mode 100644 index 0000000..c4704a7 --- /dev/null +++ b/iidx@asphyxia/models/custom.ts @@ -0,0 +1,99 @@ +export interface custom { + collection: "custom"; + + version: number; + + // skin // + frame: number; + turntable: number; + note_burst: number; + menu_music: number; + lane_cover: number; + category_vox: number; + note_skin: number; + full_combo_splash: number; + disable_musicpreview: boolean; + + note_beam: number; + judge_font: number; + pacemaker_cover: number; + vefx_lock: boolean; + effect: number; + bomb_size: number; + disable_hcn_color: boolean; + first_note_preview: boolean; + + // appendsettings + rank_folder: boolean; + clear_folder: boolean; + diff_folder: boolean; + alpha_folder: boolean; + rival_folder: boolean; + rival_battle_folder: boolean; + rival_info: boolean; + hide_playcount: boolean; + disable_graph_cutin: boolean; + classic_hispeed: boolean; + rival_played_folder: boolean; + hide_iidxid: boolean; + + // qpro // + qpro_head: number; + qpro_hair: number; + qpro_face: number; + qpro_hand: number; + qpro_body: number; + + // qpro_secret (heroic verse) // + qpro_secret_head: string[]; + qpro_secret_hair: string[]; + qpro_secret_face: string[]; + qpro_secret_hand: string[]; + qpro_secret_body: string[]; +} + +export const default_custom = { + frame: 0, + turntable: 0, + note_burst: 0, + menu_music: 0, + lane_cover: 0, + category_vox: 0, + note_skin: 0, + full_combo_splash: 0, + disable_musicpreview: false, + + note_beam: 0, + judge_font: 0, + pacemaker_cover: 0, + vefx_lock: false, + effect: 0, + bomb_size: 0, + disable_hcn_color: false, + first_note_preview: false, + + rank_folder: true, + clear_folder: true, + diff_folder: true, + alpha_folder: true, + rival_folder: true, + rival_battle_folder: true, + rival_info: true, + hide_playcount: false, + disable_graph_cutin: false, + classic_hispeed: false, + rival_played_folder: true, + hide_iidxid: false, + + qpro_head: 0, + qpro_hair: 0, + qpro_face: 0, + qpro_hand: 0, + qpro_body: 0, + + qpro_secret_head: Array(7).fill("-1"), + qpro_secret_hair: Array(7).fill("-1"), + qpro_secret_face: Array(7).fill("-1"), + qpro_secret_hand: Array(7).fill("-1"), + qpro_secret_body: Array(7).fill("-1"), +} diff --git a/iidx@asphyxia/models/grade.ts b/iidx@asphyxia/models/grade.ts new file mode 100644 index 0000000..fa04537 --- /dev/null +++ b/iidx@asphyxia/models/grade.ts @@ -0,0 +1,10 @@ +export interface grade { + collection: "grade"; + version: number; + + style: number; + gradeId: number; + + maxStage: number; + archive: number; +} diff --git a/iidx@asphyxia/models/lightning.ts b/iidx@asphyxia/models/lightning.ts new file mode 100644 index 0000000..83c7832 --- /dev/null +++ b/iidx@asphyxia/models/lightning.ts @@ -0,0 +1,116 @@ +export interface lightning_settings { + collection: "lightning_settings"; + version: number; + + headphone_vol: number; + + resistance_sp_left: number; + resistance_sp_right: number; + resistance_dp_left: number; + resistance_dp_right: number; + + slider: number[]; + light: number[]; + concentration: number; +}; + +export interface lightning_playdata { + collection: "lightning_playdata"; + + version: number; + + sp_num: number; + dp_num: number; +}; + +export interface eisei_grade { + collection: "eisei_grade"; + version: number; + + clear_type: number; + grade_id: number; + grade_type: number; + stage_num: number; + option: number; + + past_achievement: number[]; + past_selected_course: number[]; + max_past_achievement: number[]; + max_past_selected_course: number[]; +} + +export interface eisei_grade_data { + clear_type: number; + grade_id: number; + grade_type: number; + stage_num: number; + option: number; + + past: number[]; + selected_course: number[]; + max_past: number[]; + max_selected_course: number[]; +} + +export interface lightning_musicmemo { + collection: "lightning_musicmemo"; + version: number; + + music_idx: number; + play_style: number; + music_id: number; +} + +export interface musicmemo_data { + music_idx: number; + play_style: number; + music_id: number; +} + +export interface lightning_musicmemo_new { + collection: "lightning_musicmemo_new"; + version: number; + + folder_idx: number; + folder_name: string; + play_style: number; + music_ids: number[]; +} + +export interface musicmemo_data_new { + folder_idx: number; + folder_name: string; + play_style: number; + music_ids: number[]; +} + +export const lm_playdata = { + sp_num: 0, + dp_num: 0, +}; + +export const lm_settings = { + headphone_vol: 10, + + resistance_sp_left: 4, + resistance_sp_right: 4, + resistance_dp_left: 4, + resistance_dp_right: 4, + + slider: [7, 7, 7, 7, 7, 15, 15], + light: [1, 1, 1, 1, 1, 1], + concentration: 0, +}; + +export const lm_settings_new = { + headphone_vol: 10, + + resistance_sp_left: 4, + resistance_sp_right: 4, + resistance_dp_left: 4, + resistance_dp_right: 4, + + slider: [7, 7, 7, 7, 7, 15, 15], + light: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + concentration: 0, +} diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts new file mode 100644 index 0000000..7138861 --- /dev/null +++ b/iidx@asphyxia/models/pcdata.ts @@ -0,0 +1,682 @@ +export interface pcdata { + collection: "pcdata"; + + version: number; + + spnum: number; // attributes (Lincle) // + dpnum: number; + sach: number; + dach: number; + sflg0: number; + sflg1: number; + help: number; + gno: number; + timing: number; + sdhd: number; + sdtype: number; + notes: number; + pase: number; + sp_opt: number; + dp_opt: number; + dp_opt2: number; + mode: number; + pmode: number; + ngrade: number; // <- attribute (BISTROVER) // + fcombo: number[]; + liflen: number; + + rtype: number; // attributes (Heroic Verse) // + gpos: number; + s_sorttype: number; + d_sorttype: number; + s_pace: number; + d_pace: number; + s_gno: number; + d_gno: number; + s_sub_gno: number; + d_sub_gno: number; + s_gtype: number; + d_gtype: number; + s_sdlen: number; + d_sdlen: number; + s_sdtype: number; + d_sdtype: number; + s_timing: number; + d_timing: number; + s_notes: number; + d_notes: number; + s_judge: number; + d_judge: number; + s_judgeAdj: number; + d_judgeAdj: number; + s_hispeed: number; + d_hispeed: number; + s_liflen: number; + d_liflen: number; + s_disp_judge: number; + d_disp_judge: number; + s_opstyle: number; + d_opstyle: number; + s_graph_score: number; + d_graph_score: number; + s_auto_scrach: number; + d_auto_scrach: number; + s_gauge_disp: number; + d_gauge_disp: number; + s_lane_brignt: number; + d_lane_brignt: number; + s_camera_layout: number; + d_camera_layout: number; + s_ghost_score: number; + d_ghost_score: number; + s_tsujigiri_disp: number; + d_tsujigiri_disp: number; + s_auto_adjust: number; // CastHour // + d_auto_adjust: number; + s_timing_split: number; // RESIDENT // + d_timing_split: number; + s_visualization: number; + d_visualization: number; + + secret_flg1: string[]; // secret (Heroic Verse) // + secret_flg2: string[]; + secret_flg3: string[]; + secret_flg4: string[]; + + leggendaria_flg1: string[]; // leggendaria (bistrover) // + + dr_sprank: number[]; // djrank (Heroic Verse) // + dr_sppoint: number[]; + dr_dprank: number[]; + dr_dppoint: number[]; + + nr_spradar: number[]; // notes_radar (Heroic Verse) // + nr_dpradar: number[]; + + achi_lastweekly: number; // achievement (Heroic Verse) // + achi_pack: number; + achi_packcomp: number; + achi_rivalcrush: number; + achi_visitflg: number; + achi_weeklynum: number; + achi_trophy: string[]; // for somewhat reason save throws 160 elements but anything above 20 will rejected // + + deller: number; // in-game currency (heroic verse) // + orb: number; + present_orb: number; + + sgid: number; // grade // + dgid: number; + + jpoint: number; // jpoint (lincle) // + + st_sp_ach: number; // step (lincle) // + st_sp_dif: number; + st_dp_ach: number; + st_dp_dif: number; + + st_enemy_damage: number; // step (Heroic Verse) // + st_progress: number; + st_is_track_ticket: boolean; + st_sp_level: number; + st_dp_level: number; + st_sp_mission_point: number; + st_dp_mission_point: number; + st_sp_dj_mission_level: number; + st_dp_dj_mission_level: number; + st_sp_clear_mission_level: number; + st_dp_clear_mission_level: number; + st_sp_dj_mission_clear: number; + st_dp_dj_mission_clear: number; + st_sp_clear_mission_clear: number; + st_dp_clear_mission_clear: number; + st_sp_mplay: number; + st_dp_mplay: number; + st_tips_read_list: number; + st_total_point: number; // CastHour // + st_enemy_defeat_flg: number; + st_mission_clear_num: number; + st_sp_fluctuation: number; // RESIDENT // + st_dp_fluctuation: number; + + event_play_num: number; // event (Heroic Verse) / / + event_last_select_id: number; + event_last_select_type: number; // CastHour // + event_story_prog: number; // BISTROVER // + event_failed_num: number; + + type: number[]; // history (Lincle) // + time: number[]; + p0: number[]; + p1: number[]; + p2: number[]; + p3: number[]; + p4: number[]; + + eb_keyorb: number; // extra boss (Heroic Verse) // + eb_bossorb0: number; + eb_bossorb1: number; + eb_bossorb2: number; + eb_bossorb3: number; + eb_bossorb4: number; + eb_bossorb5: number; + eb_bossorb6: number; + eb_bossorb7: number; + + tourism_secret_flg1: string[]; + tourism_secret_flg2: string[]; +} + +export const KDZ_pcdata = { + version: 19, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + sflg0: 0, + sflg1: 0, + help: 1, + gno: 0, + timing: 0, + sdhd: 0, + sdtype: 0, + notes: 0, + pase: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + mode: 0, + pmode: 0, + fcombo: Array(2).fill(0), + liflen: 0, + + sgid: -1, + dgid: -1, + + jpoint: 0, + + st_sp_ach: -1, + st_sp_dif: -1, + st_dp_ach: -1, + st_dp_dif: -1, + + type: Array(30).fill(255), + time: Array(30).fill(0), + p0: Array(30).fill(-1), + p1: Array(30).fill(-1), + p2: Array(30).fill(-1), + p3: Array(30).fill(-1), + p4: Array(30).fill(-1), +} + +export const IIDX27_pcdata = { + version: 27, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + mode: 0, + pmode: 0, + rtype: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + gpos: 0, + s_sorttype: 0, + d_sorttype: 0, + s_pace: 0, + d_pace: 0, + s_gno: 0, + d_gno: 0, + s_sub_gno: 0, + d_sub_gno: 0, + s_gtype: 0, + d_gtype: 0, + s_sdlen: 0, + d_sdlen: 0, + s_sdtype: 0, + d_sdtype: 0, + s_timing: 0, + d_timing: 0, + s_notes: 0, + d_notes: 0, + s_judge: 0, + d_judge: 0, + s_judgeAdj: 0, + d_judgeAdj: 0, + s_hispeed: 0, + d_hispeed: 0, + s_liflen: 0, + d_liflen: 0, + s_disp_judge: 0, + d_disp_judge: 0, + s_opstyle: 0, + d_opstyle: 0, + s_graph_score: 0, + d_graph_score: 0, + s_auto_scrach: 0, + d_auto_scrach: 0, + s_gauge_disp: 0, + d_gauge_disp: 0, + s_lane_brignt: 0, + d_lane_brignt: 0, + s_camera_layout: 0, + d_camera_layout: 0, + s_ghost_score: 0, + d_ghost_score: 0, + s_tsujigiri_disp: 0, + d_tsujigiri_disp: 0, + + secret_flg1: Array(3).fill("-1"), + secret_flg2: Array(3).fill("-1"), + secret_flg3: Array(3).fill("-1"), + secret_flg4: Array(3).fill("-1"), + + dr_sprank: Array(15).fill(0), + dr_sppoint: Array(15).fill(0), + dr_dprank: Array(15).fill(0), + dr_dppoint: Array(15).fill(0), + + nr_spradar: Array(6).fill(0), + nr_dpradar: Array(6).fill(0), + + st_enemy_damage: 0, + st_progress: 0, + st_is_track_ticket: false, + st_sp_level: 0, + st_dp_level: 0, + st_sp_mission_point: 0, + st_dp_mission_point: 0, + st_sp_dj_mission_level: 0, + st_dp_dj_mission_level: 0, + st_sp_clear_mission_level: 0, + st_dp_clear_mission_level: 0, + st_sp_dj_mission_clear: 0, + st_dp_dj_mission_clear: 0, + st_sp_clear_mission_clear: 0, + st_dp_clear_mission_clear: 0, + st_sp_mplay: 0, + st_dp_mplay: 0, + st_tips_read_list: 0, + + sgid: -1, + dgid: -1, + + achi_lastweekly: 0, + achi_pack: 0, + achi_packcomp: 0, + achi_rivalcrush: 0, + achi_visitflg: 0, + achi_weeklynum: 0, + achi_trophy: Array(20).fill("0"), + + deller: 0, + orb: 0, + present_orb: 0, + + event_play_num: 0, + event_last_select_id: -1, + + eb_keyorb: 0, + eb_bossorb0: 0, + eb_bossorb1: 0, + eb_bossorb2: 0, + eb_bossorb3: 0, + eb_bossorb4: 0, + eb_bossorb5: 0, + eb_bossorb6: 0, + eb_bossorb7: 0, +} + +export const IIDX28_pcdata = { + version: 28, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + mode: 0, + pmode: 0, + ngrade: 0, + rtype: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + gpos: 0, + s_sorttype: 0, + d_sorttype: 0, + s_pace: 0, + d_pace: 0, + s_gno: 0, + d_gno: 0, + s_sub_gno: 0, + d_sub_gno: 0, + s_gtype: 0, + d_gtype: 0, + s_sdlen: 0, + d_sdlen: 0, + s_sdtype: 0, + d_sdtype: 0, + s_timing: 0, + d_timing: 0, + s_notes: 0, + d_notes: 0, + s_judge: 0, + d_judge: 0, + s_judgeAdj: 0, + d_judgeAdj: 0, + s_hispeed: 0, + d_hispeed: 0, + s_liflen: 0, + d_liflen: 0, + s_disp_judge: 0, + d_disp_judge: 0, + s_opstyle: 0, + d_opstyle: 0, + s_graph_score: 0, + d_graph_score: 0, + s_auto_scrach: 0, + d_auto_scrach: 0, + s_gauge_disp: 0, + d_gauge_disp: 0, + s_lane_brignt: 0, + d_lane_brignt: 0, + s_camera_layout: 0, + d_camera_layout: 0, + s_ghost_score: 0, + d_ghost_score: 0, + s_tsujigiri_disp: 0, + d_tsujigiri_disp: 0, + + secret_flg1: Array(3).fill("-1"), + secret_flg2: Array(3).fill("-1"), + secret_flg3: Array(3).fill("-1"), + secret_flg4: Array(3).fill("-1"), + + leggendaria_flg1: Array(3).fill("-1"), + + dr_sprank: Array(15).fill(0), + dr_sppoint: Array(15).fill(0), + dr_dprank: Array(15).fill(0), + dr_dppoint: Array(15).fill(0), + + nr_spradar: Array(6).fill(0), + nr_dpradar: Array(6).fill(0), + + st_enemy_damage: 0, + st_progress: 0, + st_is_track_ticket: false, + st_sp_level: 0, + st_dp_level: 0, + st_sp_mission_point: 0, + st_dp_mission_point: 0, + st_sp_dj_mission_level: 0, + st_dp_dj_mission_level: 0, + st_sp_clear_mission_level: 0, + st_dp_clear_mission_level: 0, + st_sp_dj_mission_clear: 0, + st_dp_dj_mission_clear: 0, + st_sp_clear_mission_clear: 0, + st_dp_clear_mission_clear: 0, + st_sp_mplay: 0, + st_dp_mplay: 0, + st_tips_read_list: 0, + + sgid: -1, + dgid: -1, + + achi_lastweekly: 0, + achi_pack: 0, + achi_packcomp: 0, + achi_rivalcrush: 0, + achi_visitflg: 0, + achi_weeklynum: 0, + achi_trophy: Array(20).fill("0"), + + deller: 0, + orb: 0, + present_orb: 0, + + event_play_num: 0, + event_last_select_id: -1, + event_story_prog: 0, + event_failed_num: 0, + + eb_keyorb: 0, + eb_bossorb0: 0, + eb_bossorb1: 0, + eb_bossorb2: 0, + eb_bossorb3: 0, + eb_bossorb4: 0, + eb_bossorb5: 0, + eb_bossorb6: 0, + eb_bossorb7: 0, +} + +export const IIDX29_pcdata = { + version: 29, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + mode: 0, + pmode: 0, + ngrade: 0, + rtype: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + gpos: 0, + s_sorttype: 0, + d_sorttype: 0, + s_pace: 0, + d_pace: 0, + s_gno: 0, + d_gno: 0, + s_sub_gno: 0, + d_sub_gno: 0, + s_gtype: 0, + d_gtype: 0, + s_sdlen: 0, + d_sdlen: 0, + s_sdtype: 0, + d_sdtype: 0, + s_timing: 0, + d_timing: 0, + s_notes: 0, + d_notes: 0, + s_judge: 0, + d_judge: 0, + s_judgeAdj: 0, + d_judgeAdj: 0, + s_hispeed: 0, + d_hispeed: 0, + s_liflen: 0, + d_liflen: 0, + s_disp_judge: 0, + d_disp_judge: 0, + s_opstyle: 0, + d_opstyle: 0, + s_graph_score: 0, + d_graph_score: 0, + s_auto_scrach: 0, + d_auto_scrach: 0, + s_gauge_disp: 0, + d_gauge_disp: 0, + s_lane_brignt: 0, + d_lane_brignt: 0, + s_camera_layout: 0, + d_camera_layout: 0, + s_ghost_score: 0, + d_ghost_score: 0, + s_tsujigiri_disp: 0, + d_tsujigiri_disp: 0, + s_auto_adjust: 0, + d_auto_adjust: 0, + + secret_flg1: Array(3).fill("-1"), + secret_flg2: Array(3).fill("-1"), + secret_flg3: Array(3).fill("-1"), + secret_flg4: Array(3).fill("-1"), + + leggendaria_flg1: Array(3).fill("-1"), + + dr_sprank: Array(15).fill(0), + dr_sppoint: Array(15).fill(0), + dr_dprank: Array(15).fill(0), + dr_dppoint: Array(15).fill(0), + + nr_spradar: Array(6).fill(0), + nr_dpradar: Array(6).fill(0), + + st_enemy_damage: 0, + st_progress: 0, + st_total_point: 0, + st_enemy_defeat_flg: 0, + st_is_track_ticket: false, + st_sp_level: 0, + st_dp_level: 0, + st_sp_mplay: 0, + st_dp_mplay: 0, + st_tips_read_list: 0, + st_mission_clear_num: 0, + + sgid: -1, + dgid: -1, + + achi_lastweekly: 0, + achi_pack: 0, + achi_packcomp: 0, + achi_rivalcrush: 0, + achi_visitflg: 0, + achi_weeklynum: 0, + achi_trophy: Array(20).fill("0"), + + deller: 0, + orb: 0, + present_orb: 0, + + event_play_num: 0, + event_last_select_id: -1, + event_last_select_type: -1, +} + +export const IIDX30_pcdata = { + version: 30, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + mode: 0, + pmode: 0, + ngrade: 0, + rtype: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + gpos: 0, + s_sorttype: 0, + d_sorttype: 0, + s_pace: 0, + d_pace: 0, + s_gno: 0, + d_gno: 0, + s_sub_gno: 0, + d_sub_gno: 0, + s_gtype: 0, + d_gtype: 0, + s_sdlen: 0, + d_sdlen: 0, + s_sdtype: 0, + d_sdtype: 0, + s_timing: 0, + d_timing: 0, + s_notes: 0, + d_notes: 0, + s_judge: 0, + d_judge: 0, + s_judgeAdj: 0, + d_judgeAdj: 0, + s_hispeed: 0, + d_hispeed: 0, + s_liflen: 0, + d_liflen: 0, + s_disp_judge: 0, + d_disp_judge: 0, + s_opstyle: 0, + d_opstyle: 0, + s_graph_score: 0, + d_graph_score: 0, + s_auto_scrach: 0, + d_auto_scrach: 0, + s_gauge_disp: 0, + d_gauge_disp: 0, + s_lane_brignt: 0, + d_lane_brignt: 0, + s_camera_layout: 0, + d_camera_layout: 0, + s_ghost_score: 0, + d_ghost_score: 0, + s_tsujigiri_disp: 0, + d_tsujigiri_disp: 0, + s_auto_adjust: 0, + d_auto_adjust: 0, + s_timing_split: 0, + d_timing_split: 0, + s_visualization: 0, + d_visualization: 0, + + secret_flg1: Array(3).fill("-1"), + secret_flg2: Array(3).fill("-1"), + secret_flg3: Array(3).fill("-1"), + secret_flg4: Array(3).fill("-1"), + + leggendaria_flg1: Array(3).fill("-1"), + + tourism_secret_flg1: Array(3).fill("-1"), + tourism_secret_flg2: Array(3).fill("-1"), + + dr_sprank: Array(15).fill(0), + dr_sppoint: Array(15).fill(0), + dr_dprank: Array(15).fill(0), + dr_dppoint: Array(15).fill(0), + + nr_spradar: Array(6).fill(0), + nr_dpradar: Array(6).fill(0), + + st_enemy_damage: 0, + st_progress: 0, + st_total_point: 0, + st_enemy_defeat_flg: 0, + st_is_track_ticket: false, + st_sp_level: 0, + st_dp_level: 0, + st_sp_fluctuation: 0, + st_dp_fluctuation: 0, + st_mission_clear_num: 0, + st_sp_mplay: 0, + st_dp_mplay: 0, + st_tips_read_list: 0, + + sgid: -1, + dgid: -1, + + achi_lastweekly: 0, + achi_pack: 0, + achi_packcomp: 0, + achi_rivalcrush: 0, + achi_visitflg: 0, + achi_weeklynum: 0, + achi_trophy: Array(20).fill("0"), + + deller: 0, + orb: 0, + present_orb: 0, + + event_play_num: 0, + event_last_select_id: -1, +} diff --git a/iidx@asphyxia/models/profile.ts b/iidx@asphyxia/models/profile.ts new file mode 100644 index 0000000..6150363 --- /dev/null +++ b/iidx@asphyxia/models/profile.ts @@ -0,0 +1,22 @@ +export interface profile { + collection: "profile"; + + refid: string; + id: number; + idstr: string; + name: string; + pid: number; + + language: number; + total_pc: number; + total_kbd: number; + total_scr: number; +} + +export const default_profile = { + language: -1, + + total_pc: 0, + total_kbd: 0, + total_scr: 0, +} diff --git a/iidx@asphyxia/models/rival.ts b/iidx@asphyxia/models/rival.ts new file mode 100644 index 0000000..d3f5ac9 --- /dev/null +++ b/iidx@asphyxia/models/rival.ts @@ -0,0 +1,17 @@ +export interface rival { + collection: "rival"; + + play_style: number; + + index: number; + rival_refid: string; +}; + +export interface rival_data { + play_style: number; + index: number; + + qprodata: number[]; + profile: (string | number)[]; + pcdata: number[]; +} diff --git a/iidx@asphyxia/models/score.ts b/iidx@asphyxia/models/score.ts new file mode 100644 index 0000000..72f2286 --- /dev/null +++ b/iidx@asphyxia/models/score.ts @@ -0,0 +1,25 @@ +export interface score { + collection: "score"; + + mid: number; + + pgArray: number[]; + gArray: number[]; + mArray: number[]; + cArray: number[]; + esArray: number[]; + + optArray: number[]; + opt2Array: number[]; +} + +export interface score_top { + collection: "score_top"; + + play_style: number; + mid: number; + + names: string[]; + scores: number[]; + clflgs: number[]; +} diff --git a/iidx@asphyxia/models/worldtourism.ts b/iidx@asphyxia/models/worldtourism.ts new file mode 100644 index 0000000..81902a3 --- /dev/null +++ b/iidx@asphyxia/models/worldtourism.ts @@ -0,0 +1,7 @@ +export interface world_tourism { + collection: "world_tourism"; + version: number; + + tour_id: number; + progress: number; +} diff --git a/iidx@asphyxia/pug/KDZ/pccommon.pug b/iidx@asphyxia/pug/KDZ/pccommon.pug new file mode 100644 index 0000000..5629157 --- /dev/null +++ b/iidx@asphyxia/pug/KDZ/pccommon.pug @@ -0,0 +1,7 @@ +pc(status="0" expire="600") + ir(beat=beat) + //- cm(id="" folder="" compo="") + lincle(phase="2") + boss(phase="2") + mr_secret(flg="-1") + travel(flg="-1") diff --git a/iidx@asphyxia/pug/KDZ/pcget.pug b/iidx@asphyxia/pug/KDZ/pcget.pug new file mode 100644 index 0000000..56385f7 --- /dev/null +++ b/iidx@asphyxia/pug/KDZ/pcget.pug @@ -0,0 +1,34 @@ +pc(status="0") + 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 sflg0=pcdata.sflg0 sflg1=pcdata.sflg1 help=pcdata.help gno=pcdata.gno timing=pcdata.timing sdhd=pcdata.sdhd sdtype=pcdata.sdtype notes=pcdata.notes pase=pcdata.pase sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 mode=pcdata.mode pmode=pcdata.pmode liflen=pcdata.liflen) + 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]} + ex + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 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]) + qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) + ocrs + weekly(wid="-1" mid="-1") + visitor(anum="0" snum="0" pnum="0" vs_flg="1") + attack(a0="0" a1="0" a2="0" a3="0" a4="0" a5="0") + fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]} + step(sp_ach=pcdata.st_sp_ach dp_ach=pcdata.st_dp_ach sp_dif=pcdata.st_sp_dif dp_dif=pcdata.st_dp_dif) + lincle(comflg="1" flg1="1" flg2="1" flg3="1" flg4="1" flg5="1" flg6="1" flg7="1") + reflec(tf="1" br="1" ssc="1" sr="1" wu="1" sg="1" tb="1") + jubeat(point="0" bonus="0" jbonus=pcdata.jpoint open="1") + if event != null + kingdom(level=event.level exp=event.exp deller=event.deller place=event.place tower=event.tower boss=event.boss combo=event.combo jewel=event.jewel generic=event.generic) + cf(__type="bin") #{event.cf} + qcf(__type="bin") #{event.qcf} + piece(__type="bin") #{event.piece} + history + type(__type="u8" __count="30") #{pcdata.type[0]} #{pcdata.type[1]} #{pcdata.type[2]} #{pcdata.type[3]} #{pcdata.type[4]} #{pcdata.type[5]} #{pcdata.type[6]} #{pcdata.type[7]} #{pcdata.type[8]} #{pcdata.type[9]} #{pcdata.type[10]} #{pcdata.type[11]} #{pcdata.type[12]} #{pcdata.type[13]} #{pcdata.type[14]} #{pcdata.type[15]} #{pcdata.type[16]} #{pcdata.type[17]} #{pcdata.type[18]} #{pcdata.type[19]} #{pcdata.type[20]} #{pcdata.type[21]} #{pcdata.type[22]} #{pcdata.type[23]} #{pcdata.type[24]} #{pcdata.type[25]} #{pcdata.type[26]} #{pcdata.type[27]} #{pcdata.type[28]} #{pcdata.type[29]} + time(__type="time" __count="30") #{pcdata.time[0]} #{pcdata.time[1]} #{pcdata.time[2]} #{pcdata.time[3]} #{pcdata.time[4]} #{pcdata.time[5]} #{pcdata.time[6]} #{pcdata.time[7]} #{pcdata.time[8]} #{pcdata.time[9]} #{pcdata.time[10]} #{pcdata.time[11]} #{pcdata.time[12]} #{pcdata.time[13]} #{pcdata.time[14]} #{pcdata.time[15]} #{pcdata.time[16]} #{pcdata.time[17]} #{pcdata.time[18]} #{pcdata.time[19]} #{pcdata.time[20]} #{pcdata.time[21]} #{pcdata.time[22]} #{pcdata.time[23]} #{pcdata.time[24]} #{pcdata.time[25]} #{pcdata.time[26]} #{pcdata.time[27]} #{pcdata.time[28]} #{pcdata.time[29]} + param0(__type="s32" __count="30") #{pcdata.p0[0]} #{pcdata.p0[1]} #{pcdata.p0[2]} #{pcdata.p0[3]} #{pcdata.p0[4]} #{pcdata.p0[5]} #{pcdata.p0[6]} #{pcdata.p0[7]} #{pcdata.p0[8]} #{pcdata.p0[9]} #{pcdata.p0[10]} #{pcdata.p0[11]} #{pcdata.p0[12]} #{pcdata.p0[13]} #{pcdata.p0[14]} #{pcdata.p0[15]} #{pcdata.p0[16]} #{pcdata.p0[17]} #{pcdata.p0[18]} #{pcdata.p0[19]} #{pcdata.p0[20]} #{pcdata.p0[21]} #{pcdata.p0[22]} #{pcdata.p0[23]} #{pcdata.p0[24]} #{pcdata.p0[25]} #{pcdata.p0[26]} #{pcdata.p0[27]} #{pcdata.p0[28]} #{pcdata.p0[29]} + param1(__type="s32" __count="30") #{pcdata.p1[0]} #{pcdata.p1[1]} #{pcdata.p1[2]} #{pcdata.p1[3]} #{pcdata.p1[4]} #{pcdata.p1[5]} #{pcdata.p1[6]} #{pcdata.p1[7]} #{pcdata.p1[8]} #{pcdata.p1[9]} #{pcdata.p1[10]} #{pcdata.p1[11]} #{pcdata.p1[12]} #{pcdata.p1[13]} #{pcdata.p1[14]} #{pcdata.p1[15]} #{pcdata.p1[16]} #{pcdata.p1[17]} #{pcdata.p1[18]} #{pcdata.p1[19]} #{pcdata.p1[20]} #{pcdata.p1[21]} #{pcdata.p1[22]} #{pcdata.p1[23]} #{pcdata.p1[24]} #{pcdata.p1[25]} #{pcdata.p1[26]} #{pcdata.p1[27]} #{pcdata.p1[28]} #{pcdata.p1[29]} + param2(__type="s32" __count="30") #{pcdata.p2[0]} #{pcdata.p2[1]} #{pcdata.p2[2]} #{pcdata.p2[3]} #{pcdata.p2[4]} #{pcdata.p2[5]} #{pcdata.p2[6]} #{pcdata.p2[7]} #{pcdata.p2[8]} #{pcdata.p2[9]} #{pcdata.p2[10]} #{pcdata.p2[11]} #{pcdata.p2[12]} #{pcdata.p2[13]} #{pcdata.p2[14]} #{pcdata.p2[15]} #{pcdata.p2[16]} #{pcdata.p2[17]} #{pcdata.p2[18]} #{pcdata.p2[19]} #{pcdata.p2[20]} #{pcdata.p2[21]} #{pcdata.p2[22]} #{pcdata.p2[23]} #{pcdata.p2[24]} #{pcdata.p2[25]} #{pcdata.p2[26]} #{pcdata.p2[27]} #{pcdata.p2[28]} #{pcdata.p2[29]} + param3(__type="s32" __count="30") #{pcdata.p3[0]} #{pcdata.p3[1]} #{pcdata.p3[2]} #{pcdata.p3[3]} #{pcdata.p3[4]} #{pcdata.p3[5]} #{pcdata.p3[6]} #{pcdata.p3[7]} #{pcdata.p3[8]} #{pcdata.p3[9]} #{pcdata.p3[10]} #{pcdata.p3[11]} #{pcdata.p3[12]} #{pcdata.p3[13]} #{pcdata.p3[14]} #{pcdata.p3[15]} #{pcdata.p3[16]} #{pcdata.p3[17]} #{pcdata.p3[18]} #{pcdata.p3[19]} #{pcdata.p3[20]} #{pcdata.p3[21]} #{pcdata.p3[22]} #{pcdata.p3[23]} #{pcdata.p3[24]} #{pcdata.p3[25]} #{pcdata.p3[26]} #{pcdata.p3[27]} #{pcdata.p3[28]} #{pcdata.p3[29]} + param4(__type="s32" __count="30") #{pcdata.p4[0]} #{pcdata.p4[1]} #{pcdata.p4[2]} #{pcdata.p4[3]} #{pcdata.p4[4]} #{pcdata.p4[5]} #{pcdata.p4[6]} #{pcdata.p4[7]} #{pcdata.p4[8]} #{pcdata.p4[9]} #{pcdata.p4[10]} #{pcdata.p4[11]} #{pcdata.p4[12]} #{pcdata.p4[13]} #{pcdata.p4[14]} #{pcdata.p4[15]} #{pcdata.p4[16]} #{pcdata.p4[17]} #{pcdata.p4[18]} #{pcdata.p4[19]} #{pcdata.p4[20]} #{pcdata.p4[21]} #{pcdata.p4[22]} #{pcdata.p4[23]} #{pcdata.p4[24]} #{pcdata.p4[25]} #{pcdata.p4[26]} #{pcdata.p4[27]} #{pcdata.p4[28]} #{pcdata.p4[29]} diff --git a/iidx@asphyxia/pug/LDJ/27pccommon.pug b/iidx@asphyxia/pug/LDJ/27pccommon.pug new file mode 100644 index 0000000..65de30f --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/27pccommon.pug @@ -0,0 +1,20 @@ +IIDX27pc(status="0" expire="600") + ir(beat=beat) + //- + cm(id="" folder="" compo="") + tdj_cm + cm(id="" filename="") + expert(phase="1") + expert_random_secert(phase="1") + boss(phase="1") + vip_pass_black + deller_bonus(open="1") + newsong_another(open="1") + secret_full_open + system_voice_phase(phase="1") + extra_boss_event(phase="1") + event1_phase(phase="4") + premium_area_news(open="1") + premium_area_qpro(open="1") + play_video + display_asio_logo diff --git a/iidx@asphyxia/pug/LDJ/27pcget.pug b/iidx@asphyxia/pug/LDJ/27pcget.pug new file mode 100644 index 0000000..12b860d --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/27pcget.pug @@ -0,0 +1,78 @@ +IIDX27pc(status="0") + 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 rtype=pcdata.rtype 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.d_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) + 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) + 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="6") #{lm_settings.light[0]} #{lm_settings.light[1]} #{lm_settings.light[2]} #{lm_settings.light[3]} #{lm_settings.light[4]} #{lm_settings.light[5]} + concentration(__type="bool") #{lm_settings.concentration} + bind_eaappli + ea_premium_course + enable_qr_reward + leggendaria_open + 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]} + 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 + 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]} + eisei_grade + - for (let ed of eArray) + detail(grade_type=ed.grade_type grade_id=ed.grade_id stage_num=ed.stage_num clear_type=ed.clear_type) + past(__type="s32" __count="5") #{ed.past[0]} #{ed.past[1]} #{ed.past[2]} #{ed.past[3]} #{ed.past[4]} + max_past(__type="s32" __count="5") #{ed.max_past[0]} #{ed.max_past[1]} #{ed.max_past[2]} #{ed.max_past[3]} #{ed.max_past[4]} + skin(__type="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{custom.disable_musicpreview} #{custom.pacemaker_cover} #{custom.vefx_lock} #{custom.effect} #{custom.bomb_size} #{custom.disable_hcn_color} #{custom.first_note_preview} + 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]) + shop(name="CORE") + dj_rank(style="0") + rank(__type="s32" __count="15") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]} #{pcdata.dr_sprank[13]} #{pcdata.dr_sprank[14]} + point(__type="s32" __count="15") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]} #{pcdata.dr_sppoint[13]} #{pcdata.dr_sppoint[14]} + dj_rank(style="1") + rank(__type="s32" __count="15") #{pcdata.dr_dprank[0]} #{pcdata.dr_dprank[1]} #{pcdata.dr_dprank[2]} #{pcdata.dr_dprank[3]} #{pcdata.dr_dprank[4]} #{pcdata.dr_dprank[5]} #{pcdata.dr_dprank[6]} #{pcdata.dr_dprank[7]} #{pcdata.dr_dprank[8]} #{pcdata.dr_dprank[9]} #{pcdata.dr_dprank[10]} #{pcdata.dr_dprank[11]} #{pcdata.dr_dprank[12]} #{pcdata.dr_dprank[13]} #{pcdata.dr_dprank[14]} + point(__type="s32" __count="15") #{pcdata.dr_dppoint[0]} #{pcdata.dr_dppoint[1]} #{pcdata.dr_dppoint[2]} #{pcdata.dr_dppoint[3]} #{pcdata.dr_dppoint[4]} #{pcdata.dr_dppoint[5]} #{pcdata.dr_dppoint[6]} #{pcdata.dr_dppoint[7]} #{pcdata.dr_dppoint[8]} #{pcdata.dr_dppoint[9]} #{pcdata.dr_dppoint[10]} #{pcdata.dr_dppoint[11]} #{pcdata.dr_dppoint[12]} #{pcdata.dr_dppoint[13]} #{pcdata.dr_dppoint[14]} + 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]} + step(dp_clear_mission_clear=pcdata.st_dp_clear_mission_clear dp_clear_mission_level=pcdata.st_dp_clear_mission_level dp_dj_mission_clear=pcdata.st_dp_dj_mission_clear dp_dj_mission_level=pcdata.st_dp_dj_mission_level dp_level=pcdata.st_dp_level dp_mission_point=pcdata.st_dp_mission_point dp_mplay=pcdata.st_dp_mplay enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress sp_clear_mission_clear=pcdata.st_sp_clear_mission_clear sp_clear_mission_level=pcdata.st_sp_clear_mission_level sp_dj_mission_clear=pcdata.st_sp_dj_mission_clear sp_dj_mission_level=pcdata.st_sp_dj_mission_level sp_level=pcdata.st_sp_level sp_mission_point=pcdata.st_sp_mission_point sp_mplay=pcdata.st_sp_mplay tips_read_list=pcdata.st_tips_read_list) + is_track_ticket(__type="bool") #{pcdata.st_is_track_ticket} + 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) + trophy(__type="s64" __count="20") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]} #{pcdata.achi_trophy[10]} #{pcdata.achi_trophy[11]} #{pcdata.achi_trophy[12]} #{pcdata.achi_trophy[13]} #{pcdata.achi_trophy[14]} #{pcdata.achi_trophy[15]} #{pcdata.achi_trophy[16]} #{pcdata.achi_trophy[17]} #{pcdata.achi_trophy[18]} #{pcdata.achi_trophy[19]} + deller(deller=pcdata.deller rate="1") + orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb) + leggendaria_semi_open(flg="-1") + arena_data(play_num="2" play_num_dp="1" play_num_sp="1") + achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="0" rating_value="20") + achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="1" rating_value="20") + 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_bgm_flg="-1") + event1(event_play_num=pcdata.event_play_num last_select_gym_id=pcdata.event_last_select_id) + - for (let evt of evtArray) + gym_data(gym_id=evt.gym_id play_num=evt.play_num gauge_spirit=evt.gauge_spirit gauge_technique=evt.gauge_technique gauge_body=evt.gauge_body boss_attack_num=evt.boss_attack_num boss_damage=evt.boss_damage disp_lounge_list=evt.disp_lounge_list stb_type=evt.stb_type) + is_complete(__type="bool") #{evt.is_complete} + is_gauge_max(__type="bool") #{evt.is_gauge_max} + floor_infection4(music_list="-1") + bemani_vote(music_list="-1") + bemani_janken_meeting(music_list="-1") + bemani_rush(music_list_ichika="-1" music_list_nono="-1") + ultimate_mobile_link(music_list="-1") + language_setting(language=profile.language) + movie_agreement(agreement_version="1") + extra_boss_event(key_orb="0" boss_orb_0="0" boss_orb_1="0" boss_orb_2="0" boss_orb_3="0" boss_orb_4="0" boss_orb_5="0" boss_orb_6="0" boss_orb_7="0") diff --git a/iidx@asphyxia/pug/LDJ/27systeminfo.pug b/iidx@asphyxia/pug/LDJ/27systeminfo.pug new file mode 100644 index 0000000..f2d55a7 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/27systeminfo.pug @@ -0,0 +1,765 @@ +IIDX27gameSystem(status="0") + arena_schedule + phase(__type="u8") 2 + start(__type="u32") 1605784800 + end(__type="u32") 4102326000 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 0 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 1 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 2 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 3 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 4 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 5 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 6 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 7 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 8 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 9 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 10 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 11 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 12 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 13 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 14 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 15 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 16 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 17 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 18 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 19 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 0 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 1 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 2 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 3 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 4 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 5 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 6 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 7 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 8 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 9 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 10 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 11 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 12 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 13 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 14 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 15 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 16 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 17 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 18 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 19 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 0 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 1 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 2 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 3 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 4 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 5 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 6 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 7 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 8 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 9 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 10 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 11 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 12 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 13 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 14 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 15 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 16 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 17 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 18 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 19 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 0 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 1 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 2 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 3 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 4 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 5 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 6 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 7 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 8 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 9 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 10 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 11 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 12 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 13 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 14 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 15 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 16 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 17 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 18 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 19 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 0 + grade_id(__type="s32") 6 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 1 + grade_id(__type="s32") 7 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 2 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 3 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 4 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 5 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 6 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 7 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 8 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 9 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 10 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 11 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 12 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 13 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 14 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 15 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 16 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 17 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 18 + grade_id(__type="s32") 17 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 19 + grade_id(__type="s32") 18 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 0 + grade_id(__type="s32") 6 + low_music_difficult(__type="s32") 3 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 1 + grade_id(__type="s32") 7 + low_music_difficult(__type="s32") 3 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 2 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 3 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 4 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 5 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 6 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 7 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 8 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 9 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 10 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 11 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 12 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 13 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 14 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 15 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 16 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 17 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 18 + grade_id(__type="s32") 17 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 19 + grade_id(__type="s32") 18 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 diff --git a/iidx@asphyxia/pug/LDJ/28pccommon.pug b/iidx@asphyxia/pug/LDJ/28pccommon.pug new file mode 100644 index 0000000..70ee954 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/28pccommon.pug @@ -0,0 +1,24 @@ +IIDX28pc(status="0" expire="600") + ir(beat=beat) + //- + cm(id="" folder="" compo="") + tdj_cm + cm(id="" filename="") + movie_agreement(version="1") + expert(phase="1") + expert_random_secert(phase="1") + boss(phase="1") + vip_pass_black + eisei(open="1") + deller_bonus(open="1") + newsong_another(open="1") + expert_secret_full_open + system_voice_phase(phase="1") + extra_boss_event(phase="1") + event1_phase(phase="4") + premium_area_news(open="1") + premium_area_qpro(open="1") + play_video + world_tourism(open_list="-1") + bpl_battle(phase="1") + display_asio_logo diff --git a/iidx@asphyxia/pug/LDJ/28pcget.pug b/iidx@asphyxia/pug/LDJ/28pcget.pug new file mode 100644 index 0000000..95c8433 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/28pcget.pug @@ -0,0 +1,93 @@ +IIDX28pc(status="0") + 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 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.d_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) + 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 skin_0="0" flg_skin_0="-1") + 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="6") #{lm_settings.light[0]} #{lm_settings.light[1]} #{lm_settings.light[2]} #{lm_settings.light[3]} #{lm_settings.light[4]} #{lm_settings.light[5]} + concentration(__type="bool") #{lm_settings.concentration} + spdp_rival(flg="-1") + bind_eaappli + ea_premium_course + enable_qr_reward + 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) + music(index=m.music_idx play_style=m.play_style music_id=m.music_id) + 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]} + 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]} + eisei_grade_data + - for (let ed of eArray) + detail(grade_type=ed.grade_type grade_id=ed.grade_id stage_num=ed.stage_num clear_type=ed.clear_type) + past(__type="s32" __count="5") #{ed.past[0]} #{ed.past[1]} #{ed.past[2]} #{ed.past[3]} #{ed.past[4]} + selected_course(__type="s32" __count="5") #{ed.selected_course[0]} #{ed.selected_course[1]} #{ed.selected_course[2]} #{ed.selected_course[3]} #{ed.selected_course[4]} + max_past(__type="s32" __count="5") #{ed.max_past[0]} #{ed.max_past[1]} #{ed.max_past[2]} #{ed.max_past[3]} #{ed.max_past[4]} + max_selected_course(__type="s32" __count="5") #{ed.max_selected_course[0]} #{ed.max_selected_course[1]} #{ed.max_selected_course[2]} #{ed.max_selected_course[3]} #{ed.max_selected_course[4]} + skin(__type="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{custom.disable_musicpreview} #{custom.pacemaker_cover} #{custom.vefx_lock} #{custom.effect} #{custom.bomb_size} #{custom.disable_hcn_color} #{custom.first_note_preview} + 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]) + shop(name="CORE") + dj_rank(style="0") + rank(__type="s32" __count="15") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]} #{pcdata.dr_sprank[13]} #{pcdata.dr_sprank[14]} + point(__type="s32" __count="15") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]} #{pcdata.dr_sppoint[13]} #{pcdata.dr_sppoint[14]} + dj_rank(style="1") + rank(__type="s32" __count="15") #{pcdata.dr_dprank[0]} #{pcdata.dr_dprank[1]} #{pcdata.dr_dprank[2]} #{pcdata.dr_dprank[3]} #{pcdata.dr_dprank[4]} #{pcdata.dr_dprank[5]} #{pcdata.dr_dprank[6]} #{pcdata.dr_dprank[7]} #{pcdata.dr_dprank[8]} #{pcdata.dr_dprank[9]} #{pcdata.dr_dprank[10]} #{pcdata.dr_dprank[11]} #{pcdata.dr_dprank[12]} #{pcdata.dr_dprank[13]} #{pcdata.dr_dprank[14]} + point(__type="s32" __count="15") #{pcdata.dr_dppoint[0]} #{pcdata.dr_dppoint[1]} #{pcdata.dr_dppoint[2]} #{pcdata.dr_dppoint[3]} #{pcdata.dr_dppoint[4]} #{pcdata.dr_dppoint[5]} #{pcdata.dr_dppoint[6]} #{pcdata.dr_dppoint[7]} #{pcdata.dr_dppoint[8]} #{pcdata.dr_dppoint[9]} #{pcdata.dr_dppoint[10]} #{pcdata.dr_dppoint[11]} #{pcdata.dr_dppoint[12]} #{pcdata.dr_dppoint[13]} #{pcdata.dr_dppoint[14]} + 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]} + step(dp_clear_mission_clear=pcdata.st_dp_clear_mission_clear dp_clear_mission_level=pcdata.st_dp_clear_mission_level dp_dj_mission_clear=pcdata.st_dp_dj_mission_clear dp_dj_mission_level=pcdata.st_dp_dj_mission_level dp_level=pcdata.st_dp_level dp_mission_point=pcdata.st_dp_mission_point dp_mplay=pcdata.st_dp_mplay enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress sp_clear_mission_clear=pcdata.st_sp_clear_mission_clear sp_clear_mission_level=pcdata.st_sp_clear_mission_level sp_dj_mission_clear=pcdata.st_sp_dj_mission_clear sp_dj_mission_level=pcdata.st_sp_dj_mission_level sp_level=pcdata.st_sp_level sp_mission_point=pcdata.st_sp_mission_point sp_mplay=pcdata.st_sp_mplay tips_read_list=pcdata.st_tips_read_list) + is_track_ticket(__type="bool") #{pcdata.st_is_track_ticket} + 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) + trophy(__type="s64" __count="20") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]} #{pcdata.achi_trophy[10]} #{pcdata.achi_trophy[11]} #{pcdata.achi_trophy[12]} #{pcdata.achi_trophy[13]} #{pcdata.achi_trophy[14]} #{pcdata.achi_trophy[15]} #{pcdata.achi_trophy[16]} #{pcdata.achi_trophy[17]} #{pcdata.achi_trophy[18]} #{pcdata.achi_trophy[19]} + deller(deller=pcdata.deller rate="1") + orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb) + 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(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" counterattack_num="0" play_style="0" rating_value="20") + achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" counterattack_num="0" play_style="1" rating_value="20") + 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_bgm_flg="-1") + event_1(event_play_num=pcdata.event_play_num story_prog=pcdata.event_story_prog last_select_area_id=pcdata.event_last_select_id failed_num=pcdata.event_failed_num) + - for (let evt of evtArray) + area_data(area_id=evt.area_id play_num=evt.play_num recipe_prog0=evt.recipe_prog0 recipe_prog1=evt.recipe_prog1 recipe_prog2=evt.recipe_prog2 recipe_prog3=evt.recipe_prog3 recipe_prog4=evt.recipe_prog4 operation_num=evt.operation_num operation_prog=evt.operation_prog last_select_recipe=evt.last_select_recipe area_prog=evt.area_prog) + is_complete(__type="bool") #{evt.is_complete} + floor_infection4(music_list="-1") + bemani_vote(music_list="-1") + bemani_janken_meeting(music_list="-1") + bemani_rush(music_list_ichika="-1" music_list_nono="-1") + ultimate_mobile_link(music_list="-1") + link_flag + bemani_musiq_fes(music_list="-1") + busou_linkage(music_list="-1") + busou_linkage_2(music_list="-1") + valkyrie_linkage_data(progress="100") + bemani_song_battle(music_list="-1") + language_setting(language=profile.language) + movie_agreement(agreement_version="1") + extra_boss_event(key_orb="0" boss_orb_0="0" boss_orb_1="0" boss_orb_2="0" boss_orb_3="0" boss_orb_4="0" boss_orb_5="0" boss_orb_6="0" boss_orb_7="0") + world_tourism + - for (let wd of wArray) + tour_data(tour_id=wd.tour_id progress=wd.progress) + world_tourism_secret(music_list="-1") diff --git a/iidx@asphyxia/pug/LDJ/28systeminfo.pug b/iidx@asphyxia/pug/LDJ/28systeminfo.pug new file mode 100644 index 0000000..faac1ee --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/28systeminfo.pug @@ -0,0 +1,765 @@ +IIDX28gameSystem(status="0") + arena_schedule + phase(__type="u8") 2 + start(__type="u32") 1605784800 + end(__type="u32") 4102326000 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 0 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 1 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 2 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 3 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 4 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 5 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 6 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 7 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 8 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 9 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 10 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 11 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 12 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 13 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 14 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 15 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 16 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 17 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 18 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 19 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 0 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 1 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 2 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 3 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 4 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 5 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 6 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 7 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 8 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 9 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 10 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 11 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 12 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 13 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 14 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 15 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 16 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 17 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 18 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 19 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 0 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 1 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 2 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 3 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 4 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 5 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 6 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 7 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 8 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 9 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 10 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 11 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 12 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 13 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 14 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 15 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 16 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 17 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 18 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 19 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 0 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 1 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 2 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 3 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 4 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 5 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 6 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 7 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 8 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 9 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 10 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 11 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 12 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 13 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 14 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 15 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 16 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 17 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 18 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 19 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 0 + grade_id(__type="s32") 6 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 1 + grade_id(__type="s32") 7 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 2 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 3 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 4 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 5 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 6 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 7 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 8 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 9 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 10 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 11 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 12 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 13 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 14 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 15 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 16 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 17 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 18 + grade_id(__type="s32") 17 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 19 + grade_id(__type="s32") 18 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 0 + grade_id(__type="s32") 6 + low_music_difficult(__type="s32") 3 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 1 + grade_id(__type="s32") 7 + low_music_difficult(__type="s32") 3 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 2 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 3 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 4 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 5 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 6 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 7 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 8 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 9 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 10 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 11 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 12 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 13 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 14 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 15 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 16 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 17 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 18 + grade_id(__type="s32") 17 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 19 + grade_id(__type="s32") 18 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 diff --git a/iidx@asphyxia/pug/LDJ/29pccommon.pug b/iidx@asphyxia/pug/LDJ/29pccommon.pug new file mode 100644 index 0000000..1197b56 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/29pccommon.pug @@ -0,0 +1,25 @@ +IIDX29pc(status="0" expire="600") + ir(beat=beat) + //- + cm(id="" folder="" compo="") + tdj_cm + cm(id="" filename="") + movie_agreement(version="1") + expert(phase="1") + expert_random_secert(phase="1") + boss(phase="1") + vip_pass_black + eisei(open="1") + deller_bonus(open="1") + newsong_another(open="1") + expert_secret_full_open + system_voice_phase(phase="1") + extra_boss_event(phase="1") + event1_phase(phase="4") + premium_area_news(open="1") + premium_area_qpro(open="1") + play_video + world_tourism(open_list="-1") + bpl_battle(phase="1") + display_asio_logo + lane_gacha diff --git a/iidx@asphyxia/pug/LDJ/29pcget.pug b/iidx@asphyxia/pug/LDJ/29pcget.pug new file mode 100644 index 0000000..7a2e44a --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/29pcget.pug @@ -0,0 +1,98 @@ +IIDX29pc(status="0") + 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 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.d_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) + 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 skin_0="0" flg_skin_0="-1") + 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 + enable_qr_reward + 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) + music(index=m.music_idx play_style=m.play_style music_id=m.music_id) + 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]} + 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]} + eisei_grade_data + - for (let ed of eArray) + detail(grade_type=ed.grade_type grade_id=ed.grade_id 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="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{custom.disable_musicpreview} #{custom.pacemaker_cover} #{custom.vefx_lock} #{custom.effect} #{custom.bomb_size} #{custom.disable_hcn_color} #{custom.first_note_preview} + 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]) + shop(name="CORE") + dj_rank(style="0") + rank(__type="s32" __count="15") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]} #{pcdata.dr_sprank[13]} #{pcdata.dr_sprank[14]} + point(__type="s32" __count="15") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]} #{pcdata.dr_sppoint[13]} #{pcdata.dr_sppoint[14]} + dj_rank(style="1") + rank(__type="s32" __count="15") #{pcdata.dr_dprank[0]} #{pcdata.dr_dprank[1]} #{pcdata.dr_dprank[2]} #{pcdata.dr_dprank[3]} #{pcdata.dr_dprank[4]} #{pcdata.dr_dprank[5]} #{pcdata.dr_dprank[6]} #{pcdata.dr_dprank[7]} #{pcdata.dr_dprank[8]} #{pcdata.dr_dprank[9]} #{pcdata.dr_dprank[10]} #{pcdata.dr_dprank[11]} #{pcdata.dr_dprank[12]} #{pcdata.dr_dprank[13]} #{pcdata.dr_dprank[14]} + point(__type="s32" __count="15") #{pcdata.dr_dppoint[0]} #{pcdata.dr_dppoint[1]} #{pcdata.dr_dppoint[2]} #{pcdata.dr_dppoint[3]} #{pcdata.dr_dppoint[4]} #{pcdata.dr_dppoint[5]} #{pcdata.dr_dppoint[6]} #{pcdata.dr_dppoint[7]} #{pcdata.dr_dppoint[8]} #{pcdata.dr_dppoint[9]} #{pcdata.dr_dppoint[10]} #{pcdata.dr_dppoint[11]} #{pcdata.dr_dppoint[12]} #{pcdata.dr_dppoint[13]} #{pcdata.dr_dppoint[14]} + 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]} + 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 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} + 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) + trophy(__type="s64" __count="20") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]} #{pcdata.achi_trophy[10]} #{pcdata.achi_trophy[11]} #{pcdata.achi_trophy[12]} #{pcdata.achi_trophy[13]} #{pcdata.achi_trophy[14]} #{pcdata.achi_trophy[15]} #{pcdata.achi_trophy[16]} #{pcdata.achi_trophy[17]} #{pcdata.achi_trophy[18]} #{pcdata.achi_trophy[19]} + deller(deller=pcdata.deller rate="1") + orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb) + 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(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" counterattack_num="0" play_style="0" rating_value="20") + achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" counterattack_num="0" play_style="1" rating_value="20") + 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_bgm_flg="-1" skin_lane_flg3="-1") + event_1(event_play_num=pcdata.event_play_num last_select_platform_type=pcdata.event_last_select_type last_select_platform_id=pcdata.event_last_select_id) + - for (let evt of evtArray) + plat_watch_data(platform_id=evt.platform_id play_num=evt.play_num last_select_channel=evt.last_select_channel platform_prog=evt.platform_prog) + - for (let evt2 of evtArray2) + ch_watch_data(platform_id=evt2.platform_id channel_id=evt2.channel_id play_num=evt2.channel_play_num gauge=evt2.gauge) + is_complete(__type="bool") #{evt2.is_complete} + floor_infection4(music_list="-1") + bemani_vote(music_list="-1") + bemani_janken_meeting(music_list="-1") + bemani_rush(music_list_ichika="-1" music_list_nono="-1") + ultimate_mobile_link(music_list="-1") + link_flag + bemani_musiq_fes(music_list="-1") + busou_linkage(music_list="-1") + busou_linkage_2(music_list="-1") + valkyrie_linkage_2_data(progress="100") + bemani_song_battle(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_secrfet_flg + flg1(__type="s64" __count="3") -1 -1 -1 + flg2(__type="s64" __count="3") -1 -1 -1 diff --git a/iidx@asphyxia/pug/LDJ/29systeminfo.pug b/iidx@asphyxia/pug/LDJ/29systeminfo.pug new file mode 100644 index 0000000..d3869eb --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/29systeminfo.pug @@ -0,0 +1,773 @@ +IIDX29gameSystem(status="0") + arena_schedule + phase(__type="u8") 2 + start(__type="u32") 1605784800 + end(__type="u32") 4102326000 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 0 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 1 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 2 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 3 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 4 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 5 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 6 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 7 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 8 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 9 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 10 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 11 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 12 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 13 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 14 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 15 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 16 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 17 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 18 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 19 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 0 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 1 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 2 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 3 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 4 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 5 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 6 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 7 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 8 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 9 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 10 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 11 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 12 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 13 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 14 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 15 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 16 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 17 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 18 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 19 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 0 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 1 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 2 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 3 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 4 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 5 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 6 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 7 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 8 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 9 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 10 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 11 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 12 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 13 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 14 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 15 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 16 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 17 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 18 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 19 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 0 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 1 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 2 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 3 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 4 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 5 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 6 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 7 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 8 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 9 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 10 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 11 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 12 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 13 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 14 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 15 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 16 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 17 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 18 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 19 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 0 + grade_id(__type="s32") 6 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 1 + grade_id(__type="s32") 7 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 2 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 3 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 4 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 5 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 6 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 7 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 8 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 9 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 10 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 11 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 12 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 13 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 14 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 15 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 16 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 17 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 18 + grade_id(__type="s32") 17 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 19 + grade_id(__type="s32") 18 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 0 + grade_id(__type="s32") 6 + low_music_difficult(__type="s32") 3 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 1 + grade_id(__type="s32") 7 + low_music_difficult(__type="s32") 3 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 2 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 3 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 4 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 5 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 6 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 7 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 8 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 9 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 10 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 11 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 12 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 13 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 14 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 15 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 16 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 17 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 18 + grade_id(__type="s32") 17 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 19 + grade_id(__type="s32") 18 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + CommonBossPhase(val="1") + Event1InternalPhase(val="4") + ExtraBossEventPhase(val="1") + isNewSongAnother12OpenFlg(val="1") + gradeOpenPhase(val="2") + isEiseiOpenFlg(val="1") + WorldTourismOpenList(val="-1") + BPLBattleOpenPhase(val="1") diff --git a/iidx@asphyxia/pug/LDJ/30pccommon.pug b/iidx@asphyxia/pug/LDJ/30pccommon.pug new file mode 100644 index 0000000..6d4d096 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/30pccommon.pug @@ -0,0 +1,18 @@ +IIDX30pc(status="0" expire="600") + ir(beat=beat) + //- + cm(id="" folder="" compo="") + tdj_cm + cm(id="" filename="") + movie_agreement(version="1") + vip_pass_black + deller_bonus(open="1") + newsong_another(open="1") + system_voice_phase(phase="1") + premium_area_news(open="1") + premium_area_qpro(open="1") + play_video + display_asio_logo + lane_gacha + tourism_booster + ameto_event diff --git a/iidx@asphyxia/pug/LDJ/30pcget.pug b/iidx@asphyxia/pug/LDJ/30pcget.pug new file mode 100644 index 0000000..1d016b2 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/30pcget.pug @@ -0,0 +1,100 @@ +IIDX30pc(status="0") + 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 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.d_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) + 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 skin_0="0" flg_skin_0="-1") + 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 + enable_qr_reward + 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]} + 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]} + 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]} + eisei_data + - for (let ed of eArray) + detail(grade_type=ed.grade_type grade_id=ed.grade_id stage_num=ed.stage_num clear_type=ed.clear_type option=ed.option) + 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="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{custom.disable_musicpreview} #{custom.pacemaker_cover} #{custom.vefx_lock} #{custom.effect} #{custom.bomb_size} #{custom.disable_hcn_color} #{custom.first_note_preview} + 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]) + shop(name="CORE") + 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]} + 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} + 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) + //- i have no idea why this now needs to be 10 instead of 20 + trophy(__type="s64" __count="10") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]} + deller(deller=pcdata.deller rate="1") + orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb) + 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" 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" 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_bgm_flg="-1" skin_lane_flg3="-1") + event_1(event_play_num=pcdata.event_play_num last_select_flyer_id=pcdata.event_last_select_id) + - for (let evt of evtArray) + flyer_data(flyer_id=evt.flyer_id play_num=evt.play_num last_select_genre=evt.last_select_genre flyer_prog=evt.flyer_prog skill_param=evt.skill_param) + - for (let evt2 of evtArray2) + genre_data(flyer_id=evt2.flyer_id genre_id=evt2.genre_id play_num=evt2.genre_playnum gauge=evt2.gauge) + is_complete(__type="bool") #{evt2.is_complete} + floor_infection4(music_list="-1") + bemani_vote(music_list="-1") + bemani_janken_meeting(music_list="-1") + bemani_rush(music_list_ichika="-1" music_list_nono="-1") + ultimate_mobile_link(music_list="-1") + link_flag + bemani_musiq_fes(music_list="-1") + busou_linkage(music_list="-1") + busou_linkage_2(music_list="-1") + valkyrie_linkage(music_list_1="-1" music_list_2="-1" music_list_3="-1") + bemani_song_battle(music_list="-1") + bemani_mixup(music_list="-1") + ccj_linkage(music_list="-1") + triple_tribe(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 + 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/pug/LDJ/30systeminfo.pug b/iidx@asphyxia/pug/LDJ/30systeminfo.pug new file mode 100644 index 0000000..e598776 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/30systeminfo.pug @@ -0,0 +1,773 @@ +IIDX30gameSystem(status="0") + arena_schedule + phase(__type="u8") 2 + start(__type="u32") 1605784800 + end(__type="u32") 4102326000 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 0 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 1 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 2 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 3 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 4 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 5 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 6 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 7 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 8 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 9 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 10 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 11 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 12 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 13 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 14 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 15 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 16 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 17 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 18 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 19 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 0 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 1 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 2 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 3 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 4 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 5 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 6 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 7 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 8 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 9 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 10 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 11 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 12 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 13 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 14 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 15 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 16 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 17 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 18 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 19 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 0 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 1 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 2 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 3 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 4 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 5 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 6 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 7 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 8 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 9 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 10 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 11 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 12 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 13 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 14 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 15 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 16 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 17 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 18 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 19 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 0 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 1 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 2 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 3 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 4 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 5 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 6 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 7 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 8 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 9 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 10 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 11 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 12 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 13 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 14 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 15 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 16 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 17 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 18 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 19 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 0 + grade_id(__type="s32") 6 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 1 + grade_id(__type="s32") 7 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 2 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 3 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 4 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 5 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 6 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 7 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 8 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 9 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 10 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 11 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 12 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 13 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 14 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 15 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 16 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 17 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 18 + grade_id(__type="s32") 17 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 19 + grade_id(__type="s32") 18 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 0 + grade_id(__type="s32") 6 + low_music_difficult(__type="s32") 3 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 1 + grade_id(__type="s32") 7 + low_music_difficult(__type="s32") 3 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 2 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 3 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 4 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 5 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 6 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 7 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 8 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 9 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 10 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 11 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 12 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 13 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 14 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 15 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 16 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 17 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 18 + grade_id(__type="s32") 17 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 19 + grade_id(__type="s32") 18 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + CommonBossPhase(val="1") + Event1InternalPhase(val="4") + ExtraBossEventPhase(val="1") + isNewSongAnother12OpenFlg(val="1") + gradeOpenPhase(val="2") + isEiseiOpenFlg(val="1") + WorldTourismOpenList(val="-1") + BPLBattleOpenPhase(val="1") diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts new file mode 100644 index 0000000..a7c92f1 --- /dev/null +++ b/iidx@asphyxia/util.ts @@ -0,0 +1,162 @@ +import { custom } from "./models/custom"; +import { pcdata } from "./models/pcdata"; +import { profile } from "./models/profile"; + +export function IDtoCode(id: number) { + const padded = _.padStart(String(id), 8); + return `${padded.slice(0, 4)}-${padded.slice(4)}`; +} + +export async function IDtoRef(iidxid: number) { + const profile = await DB.FindOne(null, { + collection: "profile", + id: iidxid, + }); + + if (_.isNil(profile)) return null; + + return profile.__refid; +} + +export function OldMidToNewMid(mid: number) { + const numberString = String(mid); + + return Number(`${numberString.slice(0, -2)}0${numberString.slice(-2)}`); +} + +export function NewMidToOldMid(mid: number) { + const numberString = String(mid); + if (numberString.length == 4) return Number(`${numberString.slice(0, 1)}${numberString.slice(-2)}`); + + return Number(`${numberString.slice(0, 2)}${numberString.slice(3)}`); +} + +export function Base64toBuffer(s: string) { + const base64list = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + let t = "", + p = -8, + a = 0, + c: number, + d: number; + + if (s == null) return Buffer.from([0x00]); + + for (let i = 0; i < s.length; i++) { + if ((c = base64list.indexOf(s.charAt(i))) < 0) continue; + a = (a << 6) | (c & 63); + if ((p += 6) >= 0) { + d = (a >> p) & 255; + if (c != 64) t += String.fromCharCode(d); + a &= 63; + p -= 8; + } + } + + return Buffer.from(t); +} + +export function GetVersion(info: EamuseInfo) { + let version = -1; + switch (info.model.substring(0, 3)) { + case "KDZ": return 19; + case "LDJ": return parseInt(info.module.substring(4, 6)); + } + + return version; +} + +export function appendSettingConverter( + rf: boolean, + cf: boolean, + df: boolean, + af: boolean, + rsf: boolean, + rbf: boolean, + ri: boolean, + hpc: boolean, + dgc: boolean, + chs: boolean, + rpf: boolean, + hii: boolean, +) { + const result = + Number(rf) << 0 | + Number(cf) << 1 | + Number(df) << 2 | + Number(af) << 3 | + Number(rsf) << 4 | + Number(rbf) << 6 | + Number(ri) << 7 | + Number(hpc) << 8 | + Number(dgc) << 9 | + Number(chs) << 10 | + Number(rpf) << 11 | + Number(hii) << 12; + + return result; +} + +export async function ReftoProfile(refid: string) { + const profile = await DB.FindOne(refid, { + collection: "profile", + }); + + let profile_data = []; + + try { + profile_data = [ + profile.name, + profile.pid, + profile.id, + profile.idstr, + ]; + } catch { + profile_data = ["", 0, 0, ""]; + } + + return profile_data; +} + +export async function ReftoPcdata(refid: string, version: number) { + const pcdata = await DB.FindOne(refid, { + collection: "pcdata", + version: version, + }); + + let p_data = []; + + try { + p_data = [ + pcdata.sgid, + pcdata.dgid, + pcdata.sach, + pcdata.dach, + ]; + } catch { + p_data = [0, 0, 0, 0]; + } + + return p_data; +} +export async function ReftoQPRO(refid: string) { + const custom = await DB.FindOne(refid, { + collection: "custom", + }); + + let qpro_data = []; + + try { + 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]; + } + + return qpro_data; +} diff --git a/iidx@asphyxia/webui/profile_rivals.pug b/iidx@asphyxia/webui/profile_rivals.pug new file mode 100644 index 0000000..853094d --- /dev/null +++ b/iidx@asphyxia/webui/profile_rivals.pug @@ -0,0 +1,82 @@ +//DATA// + profile: DB.FindOne(refid, { collection: "profile" }) + profiles: DB.Find(null, { collection: "profile" }) + rival: DB.Find(refid, { collection: "rival" }) + +- + const rival_list=[["", "None", "0000-0000"]] + profiles.forEach((res) => { + rival_list.push([res.refid, res.name, res.idstr]) + }) + +div + .card + .card-header + p.card-header-title + span.icon + i.mdi.mdi-account-edit + | Rivals + .card-content + form(method="post" action="/emit/updateIIDXRivalSettings") + .field + input(type="text" name="iidxid", value=profile.idstr readonly hidden) + label.label SP Rivals + .body + .control + .select + select(name="sp_rival1") + each i in rival_list + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="sp_rival2") + each i in rival_list + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="sp_rival3") + each i in rival_list + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="sp_rival4") + each i in rival_list + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="sp_rival5") + each i in rival_list + 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 + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="dp_rival2") + each i in rival_list + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="dp_rival3") + each i in rival_list + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="dp_rival4") + each i in rival_list + option(value=i[0]) #{i[1]} [#{i[2]}] + .control + .select + select(name="dp_rival5") + each i in rival_list + option(value=i[0]) #{i[1]} [#{i[2]}] + .field + button.button.is-primary(type="submit") + span.icon + i.mdi.mdi-check + span Submit From b9bedd6d1f70311f382fff4fa2b799c92ffd764c Mon Sep 17 00:00:00 2001 From: duel0213 Date: Mon, 22 Jan 2024 16:49:57 +0900 Subject: [PATCH 02/73] IIDX: Initial support added for Resort Anthem --- iidx@asphyxia/README.md | 8 +- iidx@asphyxia/handlers/music.ts | 11 ++- iidx@asphyxia/handlers/pc.ts | 125 +++++++++++++++++++++++++++++--- iidx@asphyxia/handlers/shop.ts | 2 +- iidx@asphyxia/index.ts | 1 + iidx@asphyxia/models/pcdata.ts | 44 +++++++++-- iidx@asphyxia/pug/JDZ/pcget.pug | 18 +++++ iidx@asphyxia/util.ts | 1 + 8 files changed, 185 insertions(+), 25 deletions(-) create mode 100644 iidx@asphyxia/pug/JDZ/pcget.pug diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index f924e4e..637d943 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -1,11 +1,12 @@ # beatmaniaIIDX -Plugin Version: **v0.1.4** +Plugin Version: **v0.1.5** --- Supported Versions + - beatmaniaIIDX 18 Resort Anthem - beatmaniaIIDX 19 Lincle - beatmaniaIIDX 27 HEROIC VERSE - beatmaniaIIDX 28 BISTROVER @@ -46,3 +47,8 @@ Changelogs **v0.1.4** - Added Initial support for RESIDENT + +**v0.1.5** + - Added Initial support for Resort Anthem + - BEGINNER, LEAGUE, STORY does not work yet. + - Fixed s_hispeed/d_hispeed doesn't save correctly. diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 173deea..401403c 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -23,7 +23,7 @@ export const musicgetrank: EPR = async (info, data, send) => { let m = [], top = []; let score_data: number[]; let indices, temp_mid = 0; - if (version == 19) { + if (version == 18 || version == 19) { indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; music_data.forEach((res: score) => { temp_mid = NewMidToOldMid(res.mid); @@ -131,7 +131,7 @@ export const musicappoint: EPR = async (info, data, send) => { let clid = parseInt($(data).attr().clid); const mapping = [1, 2, 3, 6, 7, 8]; - if (version == 19) { + if (version == 18 || version == 19) { mid = OldMidToNewMid(mid); clid = mapping[clid]; } @@ -187,7 +187,7 @@ export const musicreg: EPR = async (info, data, send) => { const mapping = [1, 2, 3, 6, 7, 8]; if (version == -1) return send.deny(); - else if (version == 19) { + else if (version == 18 || version == 19) { mid = OldMidToNewMid(mid); if (mid == -1) return send.deny(); @@ -213,7 +213,7 @@ export const musicreg: EPR = async (info, data, send) => { let optArray = Array(10).fill(0); // USED OPTION (CastHour) // let opt2Array = Array(10).fill(0); // USED OPTION (CastHour) // - if (version >= 19) ghost = $(data).buffer("ghost").toString("base64"); + if (version >= 18) ghost = $(data).buffer("ghost").toString("base64"); if (version >= 27) { ghost_gauge = $(data).buffer("ghost_gauge").toString("base64"); @@ -260,7 +260,7 @@ export const musicreg: EPR = async (info, data, send) => { cArray[clid] = Math.max(cArray[clid], cflg); } - if (version >= 27) { + if (version >= 27) { // TODO:: support old version // const score_top: score_top | null = await DB.FindOne(null, { collection: "score_top", play_style: style, @@ -310,7 +310,6 @@ export const musicreg: EPR = async (info, data, send) => { } ); } - await DB.Upsert( refid, diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 674b19d..2f16089 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -1,4 +1,4 @@ -import { pcdata, KDZ_pcdata, IIDX27_pcdata, IIDX28_pcdata, IIDX29_pcdata, IIDX30_pcdata } from "../models/pcdata"; +import { pcdata, KDZ_pcdata, IIDX27_pcdata, IIDX28_pcdata, IIDX29_pcdata, IIDX30_pcdata, JDZ_pcdata } from "../models/pcdata"; import { grade } from "../models/grade"; import { custom, default_custom } from "../models/custom"; import { IDtoCode, IDtoRef, Base64toBuffer, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter } from "../util"; @@ -10,7 +10,37 @@ import { world_tourism } from "../models/worldtourism"; export const pccommon: EPR = async (info, data, send) => { const version = GetVersion(info); - if (version == 19) { + if (version == 18) { + return send.object({ + "@attr": { + expire: 600, + }, + ir: K.ATTR({ + beat: String(U.GetConfig("BeatPhase")), + }), + cmd: K.ATTR({ + gmbl: "1", + gmbla: "1", + regl: "1", + rndp: "1", + hrnd: "1", + alls: "1", + }), + lg: K.ATTR({ + lea: "0", + }), + lf: K.ATTR({ + life: "0", + }), + ev: K.ATTR({ + pha: "3", + }), + lincle: K.ATTR({ + phase: "1", + }) + }); + } + else if (version == 19) { return send.object({ "@attr": { expire: 600, @@ -31,11 +61,13 @@ export const pccommon: EPR = async (info, data, send) => { flg: String(-1), }), }); - } else if (version >= 27) { + } + else if (version >= 27) { return send.pugFile(`pug/LDJ/${version}pccommon.pug`, { beat: U.GetConfig("BeatPhase"), }); - } else { + } + else { return send.deny(); } }; @@ -50,6 +82,9 @@ export const pcreg: EPR = async (info, data, send) => { let lightning_settings: object; let lightning_playdata: object; switch (version) { + case 18: + pcdata = JDZ_pcdata; + break; case 19: pcdata = KDZ_pcdata; break; @@ -237,7 +272,26 @@ export const pcget: EPR = async (info, data, send) => { } let event, event_1, event_1s, evtArray = [], evtArray2 = []; - if (version == 19) { + if (version == 18) { + event = await DB.FindOne(refid, { collection: "event_1", version: version }); + + if (!_.isNil(event)) { + event.cf = Base64toBuffer(event.cf); + event.pf = Base64toBuffer(event.pf); + event.mf = Base64toBuffer(event.mf); + } + + return send.pugFile("pug/JDZ/pcget.pug", { + profile, + pcdata, + dArray, + appendsettings, + custom, + rArray, + event, + }); + } + else if (version == 19) { event = await DB.FindOne(refid, { collection: "event_1", version: version }); if (!_.isNil(event)) { @@ -413,6 +467,9 @@ export const pctakeover: EPR = async (info, data, send) => { let lightning_settings: object; let lightning_playdata: object; switch (version) { + case 18: + pcdata = JDZ_pcdata; + break; case 19: pcdata = KDZ_pcdata; break; @@ -553,7 +610,56 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.mode = parseInt($(data).attr().mode); pcdata.pmode = parseInt($(data).attr().pmode); - if (version == 19) { + if (version == 18) { + if (cltype == 0) { + pcdata.sach = parseInt($(data).attr().achi); + pcdata.sp_opt = parseInt($(data).attr().opt); + } else { + pcdata.dach = parseInt($(data).attr().achi); + pcdata.dp_opt = parseInt($(data).attr().opt); + pcdata.dp_opt2 = parseInt($(data).attr().opt2); + } + + pcdata.gno = parseInt($(data).attr().gno); + pcdata.timing = parseInt($(data).attr().timing); + pcdata.sflg0 = parseInt($(data).attr().sflg0); + pcdata.sflg1 = parseInt($(data).attr().sflg1); + pcdata.sdhd = parseInt($(data).attr().sdhd); + pcdata.ncomb = parseInt($(data).attr().ncomb); + pcdata.mcomb = parseInt($(data).attr().mcomb); + pcdata.liflen = parseInt($(data).attr().lift); + + // TODO:: STORY/LEAGUE // + + if (!_.isNil($(data).element("tour"))) { + let event_data = { + cf: $(data).element("tour").buffer("cf").toString("base64"), + pf: $(data).element("tour").buffer("pf").toString("base64"), + mf: $(data).element("tour").buffer("mf").toString("base64"), + pt: parseInt($(data).attr("tour").pt), + rsv: parseInt($(data).attr("tour").rsv), + r0: parseInt($(data).attr("tour").r0), + r1: parseInt($(data).attr("tour").r1), + r2: parseInt($(data).attr("tour").r2), + r3: parseInt($(data).attr("tour").r3), + r4: parseInt($(data).attr("tour").r4), + r5: parseInt($(data).attr("tour").r5), + r6: parseInt($(data).attr("tour").r6), + r7: parseInt($(data).attr("tour").r7), + } + + DB.Upsert(refid, + { + collection: "event_1", + version: version, + }, + { + $set: event_data, + } + ); + } + } + else if (version == 19) { if (cltype == 0) { pcdata.sach = parseInt($(data).attr().achi); pcdata.sp_opt = parseInt($(data).attr().opt); @@ -628,7 +734,8 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.p3 = $(data).element("history").numbers("p3"); pcdata.p4 = $(data).element("history").numbers("p4"); } - } else if (version >= 27) { + } + else if (version >= 27) { // lid bookkeep cid ctype ccode pcdata.rtype = parseInt($(data).attr().d_sdtype); pcdata.sach = parseInt($(data).attr().s_achi); @@ -659,8 +766,8 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.d_judge = parseInt($(data).attr().d_judge); pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); - pcdata.s_hispeed = parseInt($(data).attr().s_hispeed); - pcdata.d_hispeed = parseInt($(data).attr().d_hispeed); + pcdata.s_hispeed = parseFloat($(data).attr().s_hispeed); + pcdata.d_hispeed = parseFloat($(data).attr().d_hispeed); pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); pcdata.s_graph_score = parseInt($(data).attr().s_graph_score); diff --git a/iidx@asphyxia/handlers/shop.ts b/iidx@asphyxia/handlers/shop.ts index b944dc2..7928a78 100644 --- a/iidx@asphyxia/handlers/shop.ts +++ b/iidx@asphyxia/handlers/shop.ts @@ -2,7 +2,7 @@ return send.object( K.ATTR({ status: "0", - opname: "CORE", + opname: "CORE", pid: "57", cls_opt: "0", hr: "0", diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 807fc3f..07e8ff1 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -13,6 +13,7 @@ export function register() { R.Contributor("duel0213"); + R.GameCode("JDZ"); R.GameCode("KDZ"); R.GameCode("LDJ"); diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 7138861..17de194 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -3,30 +3,33 @@ export interface pcdata { version: number; - spnum: number; // attributes (Lincle) // + spnum: number; dpnum: number; sach: number; dach: number; sflg0: number; sflg1: number; - help: number; gno: number; timing: number; sdhd: number; - sdtype: number; - notes: number; - pase: number; sp_opt: number; dp_opt: number; dp_opt2: number; + mcomb: number; + ncomb: number; mode: number; pmode: number; - ngrade: number; // <- attribute (BISTROVER) // - fcombo: number[]; liflen: number; - rtype: number; // attributes (Heroic Verse) // + notes: number; // attribute (Lincle) // + pase: number; + sdtype: number; + help: number; + fcombo: number[]; + ngrade: number; // attribute (BISTROVER) // + rtype: number; // attribute (Heroic Verse) // gpos: number; + s_sorttype: number; d_sorttype: number; s_pace: number; @@ -167,6 +170,31 @@ export interface pcdata { tourism_secret_flg2: string[]; } +export const JDZ_pcdata = { + version: 18, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + sflg0: 0, + sflg1: 0, + gno: 0, + timing: 0, + sdhd: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + mcomb: 0, + ncomb: 0, + mode: 0, + pmode: 0, + liflen: 0, + + sgid: -1, + dgid: -1, +} + export const KDZ_pcdata = { version: 19, diff --git a/iidx@asphyxia/pug/JDZ/pcget.pug b/iidx@asphyxia/pug/JDZ/pcget.pug new file mode 100644 index 0000000..5b3889a --- /dev/null +++ b/iidx@asphyxia/pug/JDZ/pcget.pug @@ -0,0 +1,18 @@ +pc(status="0") + 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 sflg0=pcdata.sflg0 sflg1=pcdata.sflg1 gno=pcdata.gno timing=pcdata.timing sdhd=pcdata.sdhd sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 mcomb=pcdata.mcomb ncomb=pcdata.ncomb mode=pcdata.mode pmode=pcdata.pmode liflen=pcdata.liflen) + 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]} + ex + skin(__type="u16" __count="12") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} 0 0 0 + 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]) + lincle(comflg="1" flg1="-1" flg2="-1" flg3="-1" flg4="-1" flg5="-1" flg6="-1" flg7="-1" refcomp="1") + reflec(tf="1" br="1" ssc="1" sr="1" wu="1" sg="1" tb="1") + jubeat(jflg_0="-1" jflg_1="-1" jflg_2="-1" jflg_3="-1") + if event != null + tour(pt=event.pt rsv=event.rsv r0=event.r0 r1=event.r1 r2=event.r2 r3=event.r3 r4=event.r4 r5=event.r5 r6=event.r6 r7=event.r7) + cf(__type="bin") #{event.cf} + pf(__type="bin") #{event.pf} + mf(__type="bin") #{event.mf} diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index a7c92f1..295db4d 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -59,6 +59,7 @@ export function Base64toBuffer(s: string) { export function GetVersion(info: EamuseInfo) { let version = -1; switch (info.model.substring(0, 3)) { + case "JDZ": return 18; case "KDZ": return 19; case "LDJ": return parseInt(info.module.substring(4, 6)); } From 386c4ccb7b53ee88885c8ad81428787944ce63ea Mon Sep 17 00:00:00 2001 From: duel0213 Date: Wed, 31 Jan 2024 13:00:05 +0900 Subject: [PATCH 03/73] IIDX: Initial support added for tricoro IIDX: Added movie_upload url setting on plugin settings --- iidx@asphyxia/README.md | 14 +- iidx@asphyxia/handlers/music.ts | 45 +++- iidx@asphyxia/handlers/pc.ts | 336 ++++++++++++++++++++++++++- iidx@asphyxia/index.ts | 12 +- iidx@asphyxia/models/pcdata.ts | 68 +++++- iidx@asphyxia/pug/KDZ/pccommon.pug | 7 - iidx@asphyxia/pug/LDJ/28pccommon.pug | 1 + iidx@asphyxia/pug/LDJ/29pccommon.pug | 1 + iidx@asphyxia/pug/LDJ/30pccommon.pug | 1 + iidx@asphyxia/pug/LDJ/pcget.pug | 48 ++++ iidx@asphyxia/util.ts | 5 +- 11 files changed, 516 insertions(+), 22 deletions(-) delete mode 100644 iidx@asphyxia/pug/KDZ/pccommon.pug create mode 100644 iidx@asphyxia/pug/LDJ/pcget.pug diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 637d943..258e409 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -1,6 +1,6 @@ # beatmaniaIIDX -Plugin Version: **v0.1.5** +Plugin Version: **v0.1.6** --- @@ -8,6 +8,7 @@ Supported Versions - beatmaniaIIDX 18 Resort Anthem - beatmaniaIIDX 19 Lincle + - beatmaniaIIDX 20 tricoro - beatmaniaIIDX 27 HEROIC VERSE - beatmaniaIIDX 28 BISTROVER - beatmaniaIIDX 29 CastHour @@ -33,9 +34,10 @@ Changelogs **v0.1.1** - Added Initial support for HEROIC VERSE - - Expanded score array to adapting newer difficulty, (SPN ~ DPA [6] -> SPB ~ DPL [10]) + - Expanded score array to adapting newer difficulty (SPN ~ DPA [6] -> SPB ~ DPL [10]) - This borked previous score datas recorded with v0.1.0 - - All score data now shared with all version. as it doesn't have music_id conversion, it will display incorrect data on certain versions. + - All score data now shared with all version. + - as it doesn't have music_id conversion, it will display incorrect data on certain versions. - Added Initial customize support (no webui) **v0.1.2** @@ -52,3 +54,9 @@ Changelogs - Added Initial support for Resort Anthem - BEGINNER, LEAGUE, STORY does not work yet. - Fixed s_hispeed/d_hispeed doesn't save correctly. + +**v0.1.6** + - Added Initial support for tricoro + - Event savings are broken + - Added movie_upload url setting on plugin setting (BISTROVER ~) + - This uses JSON instead of XML and this requires additional setup. (can't test or implement this as I don't own NVIDIA GPU) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 401403c..8f9379a 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -23,7 +23,7 @@ export const musicgetrank: EPR = async (info, data, send) => { let m = [], top = []; let score_data: number[]; let indices, temp_mid = 0; - if (version == 18 || version == 19) { + if (version < 20) { indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; music_data.forEach((res: score) => { temp_mid = NewMidToOldMid(res.mid); @@ -58,7 +58,38 @@ export const musicgetrank: EPR = async (info, data, send) => { m.push(K.ARRAY("s16", score_data)); }); } - } else if (version >= 27) { + } + else if (version > 19 && version < 27) { + indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; + music_data.forEach((res: score) => { + if (cltype == 0) { + score_data = [-1, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; + } else { + score_data = [-1, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; + } + + m.push(K.ARRAY("s16", score_data)); + }); + + for (let i = 0; i < rival_refids.length; i++) { + if (_.isNaN(rival_refids[i][0])) continue; + + const rival_score = await DB.Find(String(rival_refids[i][1]), + { collection: "score", } + ); + + rival_score.forEach((res: score) => { + if (cltype == 0) { + score_data = [i, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; + } else { + score_data = [i, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; + } + + m.push(K.ARRAY("s16", score_data)); + }); + } + } + else if (version >= 27) { indices = cltype === 0 ? [0, 1, 2, 3, 4] : [5, 6, 7, 8, 9]; music_data.forEach((res: score) => { if (cltype == 0) { @@ -131,10 +162,13 @@ export const musicappoint: EPR = async (info, data, send) => { let clid = parseInt($(data).attr().clid); const mapping = [1, 2, 3, 6, 7, 8]; - if (version == 18 || version == 19) { + if (version < 20) { mid = OldMidToNewMid(mid); clid = mapping[clid]; } + else if (version < 27) { + clid = mapping[clid]; + } const music_data: score | null = await DB.FindOne(refid, { collection: "score", @@ -187,12 +221,15 @@ export const musicreg: EPR = async (info, data, send) => { const mapping = [1, 2, 3, 6, 7, 8]; if (version == -1) return send.deny(); - else if (version == 18 || version == 19) { + else if (version < 20) { mid = OldMidToNewMid(mid); if (mid == -1) return send.deny(); clid = mapping[clid]; } + else if (version < 27) { + clid = mapping[clid]; + } const music_data: score | null = await DB.FindOne(refid, { collection: "score", diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 2f16089..ef5f0cb 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -1,4 +1,4 @@ -import { pcdata, KDZ_pcdata, IIDX27_pcdata, IIDX28_pcdata, IIDX29_pcdata, IIDX30_pcdata, JDZ_pcdata } from "../models/pcdata"; +import { pcdata, KDZ_pcdata, IIDX27_pcdata, IIDX28_pcdata, IIDX29_pcdata, IIDX30_pcdata, JDZ_pcdata, LDJ_pcdata } from "../models/pcdata"; import { grade } from "../models/grade"; import { custom, default_custom } from "../models/custom"; import { IDtoCode, IDtoRef, Base64toBuffer, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter } from "../util"; @@ -61,10 +61,42 @@ export const pccommon: EPR = async (info, data, send) => { flg: String(-1), }), }); + } else if (version == 20) { + return send.object({ + "@attr": { + expire: 600, + }, + ir: K.ATTR({ + beat: String(U.GetConfig("BeatPhase")), + }), + limit: K.ATTR({ + phase: String(3), + }), + boss: K.ATTR({ + phase: String(3), + }), + red: K.ATTR({ + phase: String(3), + }), + yellow: K.ATTR({ + phase: String(3), + }), + medal: K.ATTR({ + phase: String(3), + }), + cafe: K.ATTR({ + open: String(1), + }), + tricolettepark: K.ATTR({ + open: String(1), + }), + + }); } else if (version >= 27) { return send.pugFile(`pug/LDJ/${version}pccommon.pug`, { beat: U.GetConfig("BeatPhase"), + movie_upload: U.GetConfig("MovieUpload"), }); } else { @@ -88,6 +120,9 @@ export const pcreg: EPR = async (info, data, send) => { case 19: pcdata = KDZ_pcdata; break; + case 20: + pcdata = LDJ_pcdata; + break; case 27: pcdata = IIDX27_pcdata; lightning_playdata = lm_playdata; @@ -309,7 +344,29 @@ export const pcget: EPR = async (info, data, send) => { rArray, event, }); - } else if (version >= 27) { + } + else if (version == 20) { + if (!_.isNil(pcdata.st_help)) pcdata.st_help = Base64toBuffer(pcdata.st_help); + + 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" }); + let redboss = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "redboss" }); + let yellowboss = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "yellowboss" }); + + return send.pugFile("pug/LDJ/pcget.pug", { + profile, + pcdata, + dArray, + appendsettings, + custom, + rArray, + link5, + tricolettepark, + redboss, + yellowboss, + }); + } + else if (version >= 27) { event_1 = await DB.Find(refid, { collection: "event_1", version: version }); event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version }); @@ -473,6 +530,9 @@ export const pctakeover: EPR = async (info, data, send) => { case 19: pcdata = KDZ_pcdata; break; + case 20: + pcdata = LDJ_pcdata; + break; case 27: pcdata = IIDX27_pcdata; lightning_playdata = lm_playdata; @@ -648,7 +708,7 @@ export const pcsave: EPR = async (info, data, send) => { r7: parseInt($(data).attr("tour").r7), } - DB.Upsert(refid, + await DB.Upsert(refid, { collection: "event_1", version: version, @@ -714,7 +774,7 @@ export const pcsave: EPR = async (info, data, send) => { piece: $(data).element("kingdom").buffer("piece").toString("base64"), } - DB.Upsert(refid, + await DB.Upsert(refid, { collection: "event_1", version: version, @@ -735,6 +795,265 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.p4 = $(data).element("history").numbers("p4"); } } + else if (version == 20) { + if (cltype == 0) { + pcdata.sach = parseInt($(data).attr().achi); + pcdata.sp_opt = parseInt($(data).attr().opt); + } else { + pcdata.dach = parseInt($(data).attr().achi); + pcdata.dp_opt = parseInt($(data).attr().opt); + pcdata.dp_opt2 = parseInt($(data).attr().opt2); + } + + pcdata.gno = parseInt($(data).attr().gno); + pcdata.gpos = parseInt($(data).attr().gpos); + pcdata.timing = parseInt($(data).attr().timing); + pcdata.help = parseInt($(data).attr().help); + pcdata.sdhd = parseInt($(data).attr().sdhd); + pcdata.sdtype = parseInt($(data).attr().sdtype); + pcdata.notes = parseFloat($(data).attr().notes); + pcdata.pase = parseInt($(data).attr().pase); + pcdata.judge = parseInt($(data).attr().judge); + pcdata.opstyle = parseInt($(data).attr().opstyle); + pcdata.hispeed = parseFloat($(data).attr().hispeed); + pcdata.judgeAdj = parseInt($(data).attr().judgeAdj); + pcdata.liflen = parseInt($(data).attr().lift); + pcdata.fcombo[cltype] = parseInt($(data).attr().fcombo); + + if (!_.isNil($(data).element("secret"))) { + pcdata.secret_flg1 = $(data).element("secret").bigints("flg1").map(String); + pcdata.secret_flg2 = $(data).element("secret").bigints("flg2").map(String); + pcdata.secret_flg3 = $(data).element("secret").bigints("flg3").map(String); + } + + if (!_.isNil($(data).element("qpro_secret"))) { + custom.qpro_secret_head = $(data).element("qpro_secret").bigints("head").map(String); + custom.qpro_secret_hair = $(data).element("qpro_secret").bigints("hair").map(String); + custom.qpro_secret_face = $(data).element("qpro_secret").bigints("face").map(String); + custom.qpro_secret_body = $(data).element("qpro_secret").bigints("body").map(String); + custom.qpro_secret_hand = $(data).element("qpro_secret").bigints("hand").map(String); + } + + if (hasStepUpData) { + if (cltype == 0) { + pcdata.st_sp_ach = parseInt($(data).attr("step").sp_ach); + pcdata.st_sp_hdpt = parseInt($(data).attr("step").sp_hdpt); + pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); + pcdata.st_sp_round = parseInt($(data).attr("step").sp_round); + pcdata.st_sp_mplay = parseInt($(data).attr("step").sp_mplay); + + } else { + pcdata.st_dp_ach = parseInt($(data).attr("step").dp_ach); + pcdata.st_dp_hdpt = parseInt($(data).attr("step").dp_hdpt); + pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); + pcdata.st_dp_round = parseInt($(data).attr("step").dp_round); + pcdata.st_dp_mplay = parseInt($(data).attr("step").dp_mplay); + } + pcdata.st_review = parseInt($(data).attr("step").review); + pcdata.st_help = $(data).element("step").buffer("help").toString("base64"); + } + + if (!_.isNil($(data).element("achievements"))) { + // TODO:: achi_packflg, achi_packid, achi_playpack // + pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); + } + + // TODO:: fix event saving, these event savings are broken. // + if (!_.isNil($(data).element("link5"))) { + let link5 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "link5" }); + let event_data; + + if (_.isNil(link5)) { + event_data = { + qpro: parseInt($(data).attr("link5").qpro), // add + glass: parseInt($(data).attr("link5").glass), // add + beautiful: parseInt($(data).attr("link5").beautiful), + quaver: parseInt($(data).attr("link5").quaver), + castle: parseInt($(data).attr("link5").castle), + flip: parseInt($(data).attr("link5").flip), + titans: parseInt($(data).attr("link5").titans), + exusia: parseInt($(data).attr("link5").exusia), + waxing: parseInt($(data).attr("link5").waxing), + sampling: parseInt($(data).attr("link5").sampling), + beachside: parseInt($(data).attr("link5").beachside), + cuvelia: parseInt($(data).attr("link5").cuvelia), + reunion: parseInt($(data).attr("link5").reunion), + bad: parseInt($(data).attr("link5").bad), + turii: parseInt($(data).attr("link5").turii), + anisakis: parseInt($(data).attr("link5").anisakis), + second: parseInt($(data).attr("link5").second), + whydidyou: parseInt($(data).attr("link5").whydidyou), + china: parseInt($(data).attr("link5").china), + fallen: parseInt($(data).attr("link5").fallen), + broken: parseInt($(data).attr("link5").broken), + summer: parseInt($(data).attr("link5").summer), + sakura: parseInt($(data).attr("link5").sakura), + wuv: parseInt($(data).attr("link5").wuv), + survival: parseInt($(data).attr("link5").survival), + thunder: parseInt($(data).attr("link5").thunder), + } + } + else { + event_data = link5; + + event_data.qpro += parseInt($(data).attr("link5").qpro); + event_data.glass += parseInt($(data).attr("link5").glass); + event_data.beautiful = parseInt($(data).attr("link5").beautiful); + event_data.quaver = parseInt($(data).attr("link5").quaver); + event_data.castle = parseInt($(data).attr("link5").castle); + event_data.flip = parseInt($(data).attr("link5").flip); + event_data.titans = parseInt($(data).attr("link5").titans); + event_data.exusia = parseInt($(data).attr("link5").exusia); + event_data.waxing = parseInt($(data).attr("link5").waxing); + event_data.sampling = parseInt($(data).attr("link5").sampling); + event_data.beachside = parseInt($(data).attr("link5").beachside); + event_data.cuvelia = parseInt($(data).attr("link5").cuvelia); + event_data.reunion = parseInt($(data).attr("link5").reunion); + event_data.bad = parseInt($(data).attr("link5").bad); + event_data.turii = parseInt($(data).attr("link5").turii); + event_data.anisakis = parseInt($(data).attr("link5").anisakis); + event_data.second = parseInt($(data).attr("link5").second); + event_data.whydidyou = parseInt($(data).attr("link5").whydidyou); + event_data.china = parseInt($(data).attr("link5").china); + event_data.fallen = parseInt($(data).attr("link5").fallen); + event_data.broken = parseInt($(data).attr("link5").broken); + event_data.summer = parseInt($(data).attr("link5").summer); + event_data.sakura = parseInt($(data).attr("link5").sakura); + event_data.wuv = parseInt($(data).attr("link5").wuv); + event_data.survival = parseInt($(data).attr("link5").survival); + event_data.thunder = parseInt($(data).attr("link5").thunder); + } + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "link5", + }, + { + $set: event_data, + } + ); + } + + if (!_.isNil($(data).element("tricolettepark"))) { + let tricolettepark = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "tricolettepark" }); + let event_data; + + if (_.isNil(tricolettepark)) { + event_data = { + open_music: parseInt($(data).attr("tricolettepark").open_music), + boss0_damage: parseInt($(data).attr("tricolettepark").boss0_damage), // add + boss1_damage: parseInt($(data).attr("tricolettepark").boss1_damage), + boss2_damage: parseInt($(data).attr("tricolettepark").boss2_damage), + boss3_damage: parseInt($(data).attr("tricolettepark").boss3_damage), + boss0_stun: parseInt($(data).attr("tricolettepark").boss0_stun), + boss1_stun: parseInt($(data).attr("tricolettepark").boss1_stun), + boss2_stun: parseInt($(data).attr("tricolettepark").boss2_stun), + boss3_stun: parseInt($(data).attr("tricolettepark").boss3_stun), + union_magic_used: parseInt($(data).attr("tricolettepark").union_magic_used), + } + } + else { + event_data = tricolettepark; + + event_data.open_music = parseInt($(data).attr("tricolettepark").open_music), + event_data.boss0_damage += parseInt($(data).attr("tricolettepark").boss0_damage); + event_data.boss1_damage += parseInt($(data).attr("tricolettepark").boss1_damage); + event_data.boss2_damage += parseInt($(data).attr("tricolettepark").boss2_damage); + event_data.boss3_damage += parseInt($(data).attr("tricolettepark").boss3_damage); + event_data.boss0_stun = parseInt($(data).attr("tricolettepark").boss0_stun); + event_data.boss1_stun = parseInt($(data).attr("tricolettepark").boss1_stun); + event_data.boss2_stun = parseInt($(data).attr("tricolettepark").boss2_stun); + event_data.boss3_stun = parseInt($(data).attr("tricolettepark").boss3_stun); + event_data.union_magic_used = parseInt($(data).attr("tricolettepark").union_magic_used); + } + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "tricolettepark", + }, + { + $set: event_data, + } + ); + } + + if (!_.isNil($(data).element("commonboss"))) { + pcdata.deller += parseInt($(data).attr("commonboss").deller); + pcdata.orb += parseInt($(data).attr("commonboss").orb); + } + + if (!_.isNil($(data).element("yellowboss"))) { + let yellowboss = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "yellowboss" }); + let event_data; + + if (_.isNil(yellowboss)) { + event_data = { + level: parseInt($(data).attr("yellowboss").level), + heroic0: parseInt($(data).attr("yellowboss").heroic0), + heroic1: parseInt($(data).attr("yellowboss").heroic1), + critical: parseInt($(data).attr("yellowboss").critical), + last_select: parseInt($(data).attr("yellowboss").last_select), + p_attack: $(data).element("yellowboss").numbers("p_attack"), + pbest_attack: $(data).element("yellowboss").numbers("pbest_attack"), + defeat: $(data).element("yellowboss").numbers("defeat"), // <- bools // + first_flg: 0, // <- bool // + } + } else { + event_data = yellowboss; + + event_data.level = parseInt($(data).attr("yellowboss").level); + event_data.heroic0 = parseInt($(data).attr("yellowboss").heroic0); + event_data.heroic1 = parseInt($(data).attr("yellowboss").heroic1); + event_data.critical = parseInt($(data).attr("yellowboss").critical); + event_data.last_select = parseInt($(data).attr("yellowboss").last_select); + + let p_attack = $(data).element("yellowboss").numbers("p_attack"); + for (let a = 0; a < 7; a++) { + event_data.p_attack[a] += p_attack[a]; + event_data.pbest_attack[a] = Math.max(event_data.pbest_attack[a], p_attack[a]); + } + } + + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "yellowboss", + }, + { + $set: event_data, + } + ); + } + + if (!_.isNil($(data).element("redboss"))) { + let event_data = { + progress: parseInt($(data).attr("redboss").progress), + crush: parseInt($(data).attr("redboss").crush), + open: parseInt($(data).attr("redboss").open), + } + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "redboss", + }, + { + $set: event_data, + } + ); + } + } else if (version >= 27) { // lid bookkeep cid ctype ccode pcdata.rtype = parseInt($(data).attr().d_sdtype); @@ -1242,6 +1561,15 @@ export const pcgetlanegacha: EPR = async (info, data, send) => { }); }; +export const pcshopregister: EPR = async (info, data, send) => { + let refid = IDtoRef(parseInt($(data).str("iidx_id"))); + let lid = $(data).str("location_id"); + + // TODO // + + return send.success(); +}; + export const pcdrawlanegacha: EPR = async (info, data, send) => { let drawNum = parseInt($(data).attr().draw_num); let tArray = []; diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 07e8ff1..8d9ef4e 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -1,9 +1,10 @@ -import { pccommon, pcreg, pcget, pcgetname, pctakeover, pcvisit, pcsave, pcoldget, pcgetlanegacha, pcconsumelanegacha, pcdrawlanegacha } from "./handlers/pc"; +import { pccommon, pcreg, pcget, pcgetname, pctakeover, pcvisit, pcsave, pcoldget, pcgetlanegacha, pcconsumelanegacha, pcdrawlanegacha, pcshopregister } from "./handlers/pc"; import { shopgetname, shopgetconvention, shopsetconvention } from "./handlers/shop"; import { musicreg, musicgetrank, musicappoint, musicarenacpu } from "./handlers/music"; import { graderaised } from "./handlers/grade"; import { gssysteminfo } from "./handlers/gamesystem"; import { updateRivalSettings } from "./handlers/webui"; +import { GetVersion } from "./util"; export function register() { if (CORE_VERSION_MAJOR <= 1 && CORE_VERSION_MINOR < 31) { @@ -23,6 +24,12 @@ export function register() { default: 3, }); + R.Config("MovieUpload", { + name: "Movie Upload URL", + type: "string", + default: "http://localhost/" + }); + R.WebUIEvent("updateIIDXRivalSettings", updateRivalSettings); const MultiRoute = (method: string, handler: EPR | boolean) => { @@ -41,6 +48,7 @@ export function register() { MultiRoute("pc.takeover", pctakeover); MultiRoute("pc.visit", pcvisit); MultiRoute("pc.save", pcsave); + MultiRoute("pc.shopregister", pcshopregister); MultiRoute("pc.getLaneGachaTicket", pcgetlanegacha); MultiRoute("pc.drawLaneGacha", pcdrawlanegacha); MultiRoute("pc.consumeLaneGachaTicket", pcconsumelanegacha); @@ -59,7 +67,7 @@ export function register() { MultiRoute("gameSystem.systemInfo", gssysteminfo); R.Unhandled((req: EamuseInfo, data: any, send: EamuseSend) => { - console.warn(`Unhandled Request : ${req.module}.${req.method}`); + console.warn(`Unhandled Request : ${req.module}.${req.method} , [${GetVersion(req)}]`); return send.success(); }); } diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 17de194..3ed1ce5 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -20,6 +20,10 @@ export interface pcdata { mode: number; pmode: number; liflen: number; + judge: number; // attribute (tricoro) // + opstyle: number; + hispeed: number; + judgeAdj: number; notes: number; // attribute (Lincle) // pase: number; @@ -102,7 +106,7 @@ export interface pcdata { achi_rivalcrush: number; achi_visitflg: number; achi_weeklynum: number; - achi_trophy: string[]; // for somewhat reason save throws 160 elements but anything above 20 will rejected // + achi_trophy: string[]; // for somewhat reason save throws lots of elements but sending it as-is throws error // deller: number; // in-game currency (heroic verse) // orb: number; @@ -118,6 +122,13 @@ export interface pcdata { st_dp_ach: number; st_dp_dif: number; + st_sp_hdpt: number; // step (tricoro) // + st_dp_hdpt: number; + st_sp_round: number; + st_dp_round: number; + st_review: number; + st_help: any; // save as base64 string, sent as buffer // + st_enemy_damage: number; // step (Heroic Verse) // st_progress: number; st_is_track_ticket: boolean; @@ -238,6 +249,61 @@ export const KDZ_pcdata = { p4: Array(30).fill(-1), } +export const LDJ_pcdata = { + version: 20, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + help: 0, + gno: 0, + gpos: 0, + timing: 0, + sdhd: 0, + sdtype: 0, + notes: 0, + pase: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + mode: 0, + pmode: 0, + liflen: 0, + judge: 0, + opstyle: 0, + hispeed: 0, + judgeAdj: 0, + fcombo: Array(2).fill(0), + + sgid: -1, + dgid: -1, + + st_sp_ach: 0, + st_sp_hdpt: 0, + st_sp_level: 0, + st_sp_round: 0, + st_sp_mplay: 0, + st_dp_ach: 0, + st_dp_hdpt: 0, + st_dp_level: 0, + st_dp_round: 0, + st_dp_mplay: 0, + st_review: 0, + st_help: "", + + achi_lastweekly: 0, + achi_pack: 0, + achi_packcomp: 0, + achi_rivalcrush: 0, + achi_visitflg: 0, + achi_weeklynum: 0, + achi_trophy: Array(20).fill("0"), + + deller: 0, + orb: 0, +} + export const IIDX27_pcdata = { version: 27, diff --git a/iidx@asphyxia/pug/KDZ/pccommon.pug b/iidx@asphyxia/pug/KDZ/pccommon.pug deleted file mode 100644 index 5629157..0000000 --- a/iidx@asphyxia/pug/KDZ/pccommon.pug +++ /dev/null @@ -1,7 +0,0 @@ -pc(status="0" expire="600") - ir(beat=beat) - //- cm(id="" folder="" compo="") - lincle(phase="2") - boss(phase="2") - mr_secret(flg="-1") - travel(flg="-1") diff --git a/iidx@asphyxia/pug/LDJ/28pccommon.pug b/iidx@asphyxia/pug/LDJ/28pccommon.pug index 70ee954..cb91e0a 100644 --- a/iidx@asphyxia/pug/LDJ/28pccommon.pug +++ b/iidx@asphyxia/pug/LDJ/28pccommon.pug @@ -5,6 +5,7 @@ IIDX28pc(status="0" expire="600") tdj_cm cm(id="" filename="") movie_agreement(version="1") + movie_upload(url=movie_upload) expert(phase="1") expert_random_secert(phase="1") boss(phase="1") diff --git a/iidx@asphyxia/pug/LDJ/29pccommon.pug b/iidx@asphyxia/pug/LDJ/29pccommon.pug index 1197b56..d4028cf 100644 --- a/iidx@asphyxia/pug/LDJ/29pccommon.pug +++ b/iidx@asphyxia/pug/LDJ/29pccommon.pug @@ -5,6 +5,7 @@ IIDX29pc(status="0" expire="600") tdj_cm cm(id="" filename="") movie_agreement(version="1") + movie_upload(url=movie_upload) expert(phase="1") expert_random_secert(phase="1") boss(phase="1") diff --git a/iidx@asphyxia/pug/LDJ/30pccommon.pug b/iidx@asphyxia/pug/LDJ/30pccommon.pug index 6d4d096..3a353b5 100644 --- a/iidx@asphyxia/pug/LDJ/30pccommon.pug +++ b/iidx@asphyxia/pug/LDJ/30pccommon.pug @@ -5,6 +5,7 @@ IIDX30pc(status="0" expire="600") tdj_cm cm(id="" filename="") movie_agreement(version="1") + movie_upload(url=movie_upload) vip_pass_black deller_bonus(open="1") newsong_another(open="1") diff --git a/iidx@asphyxia/pug/LDJ/pcget.pug b/iidx@asphyxia/pug/LDJ/pcget.pug new file mode 100644 index 0000000..6f7f707 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/pcget.pug @@ -0,0 +1,48 @@ +pc(status="0") + 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 help=pcdata.help gno=pcdata.gno gpos=pcdata.gpos timing=pcdata.timing sdhd=pcdata.sdhd sdtype=pcdata.sdtype notes=pcdata.notes pase=pcdata.pase sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 mode=pcdata.mode pmode=pcdata.pmode liflen=pcdata.liflen judge=pcdata.judge opstyle=pcdata.opstyle hispeed=pcdata.hispeed judgeAdj=pcdata.judgeAdj) + secret + flg1(__type="s64" __count="1") -1 + flg2(__type="s64" __count="1") -1 + flg3(__type="s64" __count="1") -1 + qpro_secret + head(__type="s64" __count="2") -1 -1 + hair(__type="s64" __count="2") -1 -1 + face(__type="s64" __count="2") -1 -1 + body(__type="s64" __count="2") -1 -1 + hand(__type="s64" __count="2") -1 -1 + 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]} + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 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]) + stepdata(step_sach="-1" step_dach="-1") + qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) + shop(name="CORE") + join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") + fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]} + step(sp_ach=pcdata.st_sp_ach dp_ach=pcdata.st_dp_ach sp_hdpt=pcdata.st_sp_hdpt dp_hdpt=pcdata.st_dp_hdpt sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_round=pcdata.st_sp_round dp_round=pcdata.st_dp_round sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay review=pcdata.st_review) + //-stamp(__type="bin") + help(__type="bin") #{pcdata.st_help} + 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) + trophy(__type="s64" __count="10") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]} + if link5 != null + link5(qpro=link5.qpro glass=link5.glass treasure="0" beautiful=link5.beautiful quaver=link5.quaver castle=link5.castle flip=link5.flip titans=link5.titans exusia=link5.exusia waxing=link5.waxing sampling=link5.sampling beachside=link5.beachside cuvelia=link5.cuvelia reunion=link5.reunion bad=link5.bad turii=link5.turii anisakis=link5.anisakis second=link5.second whydidyou=link5.whydidyou china=link5.china fallen=link5.fallen broken=link5.broken summer=link5.summer sakura=link5.sakura wuv=link5.wuv survival=link5.survival thunder=link5.thunder qproflg="0" glassflg="0" reflec_data="0") + //-cafe(food pastry rainbow beastie astraia beachimp holysnow trueblue ledvsscu service is_first) + gakuen(music_list="-1") + if tricolettepark != null + tricolettepark(open_music=tricolettepark.open_music boss0_damage=tricolettepark.boss0_damage boss1_damage=tricolettepark.boss1_damage boss2_damage=tricolettepark.boss2_damage boss3_damage=tricolettepark.boss3_damage boss0_stun=tricolettepark.boss0_stun boss1_stun=tricolettepark.boss1_stun boss2_stun=tricolettepark.boss2_stun boss3_stun=tricolettepark.boss3_stun magic_gauge="0" party="0" is_union="0" attack_rate="1") + commonboss(deller=pcdata.deller orb=pcdata.orb baron="0") + if redboss != null + redboss(progress=redboss.progress crush=redboss.crush open=redboss.open) + //-blueboss(level gauge item item_flg column0 column1 sector first_flg general) + if yellowboss != null + yellowboss(join_num="1" first_flg=yellowboss.first_flg level=yellowboss.level heroic0=yellowboss.heroic0 heroic1=yellowboss.heroic1 critical=yellowboss.critical destiny="0" last_select=yellowboss.last_select shop_message="SHOP MESSAGE" special_move="SPECIAL MOVE") + //-shop_damage(__type="s32" __count="7") + p_attack(__type="s32" __count="7") #{yellowboss.p_attack[0]} #{yellowboss.p_attack[1]} #{yellowboss.p_attack[2]} #{yellowboss.p_attack[3]} #{yellowboss.p_attack[4]} #{yellowboss.p_attack[5]} #{yellowboss.p_attack[6]} + pbest_attack(__type="s32" __count="7") #{yellowboss.pbest_attack[0]} #{yellowboss.pbest_attack[1]} #{yellowboss.pbest_attack[2]} #{yellowboss.pbest_attack[3]} #{yellowboss.pbest_attack[4]} #{yellowboss.pbest_attack[5]} #{yellowboss.pbest_attack[6]} + defeat(__type="bool" __count="7") #{yellowboss.defeat[0]} #{yellowboss.defeat[1]} #{yellowboss.defeat[2]} #{yellowboss.defeat[3]} #{yellowboss.defeat[4]} #{yellowboss.defeat[5]} #{yellowboss.defeat[6]} + //-contribution(bno rank contribution head_parts hair_parts face_parts body_parts hand_parts myflg message name) (loop) + //-random_qpro(head_parts hair_parts face_parts body_parts hand_parts) (loop) diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index 295db4d..d767dff 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -61,7 +61,10 @@ export function GetVersion(info: EamuseInfo) { switch (info.model.substring(0, 3)) { case "JDZ": return 18; case "KDZ": return 19; - case "LDJ": return parseInt(info.module.substring(4, 6)); + case "LDJ": + version = parseInt(info.module.substring(4, 6)); + if (_.isNaN(version)) version = 20; + break; } return version; From 0b44be36402e4c1088e5a7b2d1ede8dd893d38ac Mon Sep 17 00:00:00 2001 From: duel0213 Date: Tue, 13 Feb 2024 02:54:42 +0900 Subject: [PATCH 04/73] IIDX: Initial support added for SPADA --- iidx@asphyxia/README.md | 6 + iidx@asphyxia/handlers/music.ts | 9 +- iidx@asphyxia/handlers/pc.ts | 432 ++++++++++++++++++++++----- iidx@asphyxia/index.ts | 3 +- iidx@asphyxia/models/pcdata.ts | 98 +++++- iidx@asphyxia/pug/LDJ/21pccommon.pug | 14 + iidx@asphyxia/pug/LDJ/21pcget.pug | 55 ++++ 7 files changed, 539 insertions(+), 78 deletions(-) create mode 100644 iidx@asphyxia/pug/LDJ/21pccommon.pug create mode 100644 iidx@asphyxia/pug/LDJ/21pcget.pug diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 258e409..045954c 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -9,6 +9,7 @@ Supported Versions - beatmaniaIIDX 18 Resort Anthem - beatmaniaIIDX 19 Lincle - beatmaniaIIDX 20 tricoro + - beatmaniaIIDX 21 SPADA - beatmaniaIIDX 27 HEROIC VERSE - beatmaniaIIDX 28 BISTROVER - beatmaniaIIDX 29 CastHour @@ -60,3 +61,8 @@ Changelogs - Event savings are broken - Added movie_upload url setting on plugin setting (BISTROVER ~) - This uses JSON instead of XML and this requires additional setup. (can't test or implement this as I don't own NVIDIA GPU) + +**v0.1.7** + - Added Initial support for SPADA + - Event savings are broken + - Fixed rtype didn't save correctly. (BISTROVER ~) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 8f9379a..f1eb814 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -59,7 +59,7 @@ export const musicgetrank: EPR = async (info, data, send) => { }); } } - else if (version > 19 && version < 27) { + else if (version > 19 && version < 21) { indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; music_data.forEach((res: score) => { if (cltype == 0) { @@ -89,8 +89,10 @@ export const musicgetrank: EPR = async (info, data, send) => { }); } } - else if (version >= 27) { - indices = cltype === 0 ? [0, 1, 2, 3, 4] : [5, 6, 7, 8, 9]; + else if (version >= 21) { + if (version >= 27) indices = cltype === 0 ? [0, 1, 2, 3, 4] : [5, 6, 7, 8, 9]; + else indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; + music_data.forEach((res: score) => { if (cltype == 0) { score_data = [-1, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; @@ -219,6 +221,7 @@ export const musicreg: EPR = async (info, data, send) => { let ghost = null, ghost_gauge = null; // Heroic Verse // let style = 0, option = 0, option_2 = 0; + // TODO:: SPADA Leggendaria has seperate music_id // const mapping = [1, 2, 3, 6, 7, 8]; if (version == -1) return send.deny(); else if (version < 20) { diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index ef5f0cb..9e309e8 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -1,4 +1,4 @@ -import { pcdata, KDZ_pcdata, IIDX27_pcdata, IIDX28_pcdata, IIDX29_pcdata, IIDX30_pcdata, JDZ_pcdata, LDJ_pcdata } from "../models/pcdata"; +import { pcdata, KDZ_pcdata, IIDX27_pcdata, IIDX28_pcdata, IIDX29_pcdata, IIDX30_pcdata, JDZ_pcdata, LDJ_pcdata, IIDX21_pcdata } from "../models/pcdata"; import { grade } from "../models/grade"; import { custom, default_custom } from "../models/custom"; import { IDtoCode, IDtoRef, Base64toBuffer, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter } from "../util"; @@ -61,7 +61,8 @@ export const pccommon: EPR = async (info, data, send) => { flg: String(-1), }), }); - } else if (version == 20) { + } + else if (version == 20) { return send.object({ "@attr": { expire: 600, @@ -90,10 +91,9 @@ export const pccommon: EPR = async (info, data, send) => { tricolettepark: K.ATTR({ open: String(1), }), - }); } - else if (version >= 27) { + else if (version >= 21) { return send.pugFile(`pug/LDJ/${version}pccommon.pug`, { beat: U.GetConfig("BeatPhase"), movie_upload: U.GetConfig("MovieUpload"), @@ -123,6 +123,9 @@ export const pcreg: EPR = async (info, data, send) => { case 20: pcdata = LDJ_pcdata; break; + case 21: + pcdata = IIDX21_pcdata; + break; case 27: pcdata = IIDX27_pcdata; lightning_playdata = lm_playdata; @@ -306,14 +309,14 @@ export const pcget: EPR = async (info, data, send) => { wArray.sort((a, b) => a.tour_id - b.tour_id); } - let event, event_1, event_1s, evtArray = [], evtArray2 = []; + let event; if (version == 18) { event = await DB.FindOne(refid, { collection: "event_1", version: version }); if (!_.isNil(event)) { - event.cf = Base64toBuffer(event.cf); - event.pf = Base64toBuffer(event.pf); - event.mf = Base64toBuffer(event.mf); + event.cf = Base64toBuffer(event.cf).toString("hex"); + event.pf = Base64toBuffer(event.pf).toString("hex"); + event.mf = Base64toBuffer(event.mf).toString("hex"); } return send.pugFile("pug/JDZ/pcget.pug", { @@ -330,9 +333,9 @@ export const pcget: EPR = async (info, data, send) => { event = await DB.FindOne(refid, { collection: "event_1", version: version }); if (!_.isNil(event)) { - event.cf = Base64toBuffer(event.cf); - event.qcf = Base64toBuffer(event.qcf); - event.piece = Base64toBuffer(event.piece); + event.cf = Base64toBuffer(event.cf).toString("hex"); + event.qcf = Base64toBuffer(event.qcf).toString("hex"); + event.piece = Base64toBuffer(event.piece).toString("hex"); } return send.pugFile("pug/KDZ/pcget.pug", { @@ -346,7 +349,7 @@ export const pcget: EPR = async (info, data, send) => { }); } else if (version == 20) { - if (!_.isNil(pcdata.st_help)) pcdata.st_help = Base64toBuffer(pcdata.st_help); + if (!_.isNil(pcdata.st_help)) pcdata.st_help = Base64toBuffer(pcdata.st_help).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" }); @@ -366,23 +369,44 @@ export const pcget: EPR = async (info, data, send) => { yellowboss, }); } - else if (version >= 27) { - event_1 = await DB.Find(refid, { collection: "event_1", version: version }); - event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version }); + else if (version >= 21) { + let link5 = null, tricolettepark = null, boss1 = null, evtArray = [], evtArray2 = []; + if (version == 20 || version == 21) { + 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" }); - if (event_1.length > 0) { - for (let evt of event_1) { - evtArray.push(evt); + if (version == 21) { + if (!_.isNil(pcdata.sp_mlist)) { + pcdata.sp_mlist = Base64toBuffer(pcdata.sp_mlist).toString("hex"); + pcdata.sp_clist = Base64toBuffer(pcdata.sp_clist).toString("hex"); + pcdata.dp_mlist = Base64toBuffer(pcdata.dp_mlist).toString("hex"); + pcdata.dp_clist = Base64toBuffer(pcdata.dp_clist).toString("hex"); + } + + if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).toString("hex"); + + boss1 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "boss1" }); + if (!_.isNil(boss1.durability)) boss1.durability = Base64toBuffer(boss1.durability).toString("hex"); + } + } + else { + let event_1 = await DB.Find(refid, { collection: "event_1", version: version }); + let event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version }); + + if (event_1.length > 0) { + for (let evt of event_1) { + evtArray.push(evt); + } + } + + if (event_1s.length > 0) { + for (let evt of event_1s) { + evtArray2.push(evt); + } } } - if (event_1s.length > 0) { - for (let evt of event_1s) { - evtArray2.push(evt); - } - } - - if (lm_music_memo_new.length > 0 && version >= 30) { + if (version >= 30 && lm_music_memo_new.length > 0) { lm_music_memo_new.forEach((res) => { let musicmemo_data: musicmemo_data_new = { folder_idx: res.folder_idx, @@ -395,7 +419,8 @@ export const pcget: EPR = async (info, data, send) => { mArray.push(musicmemo_data); }); mArray.sort((a: musicmemo_data_new, b: musicmemo_data_new): number => a.play_style - b.play_style || a.folder_idx - b.folder_idx); - } else if (lm_music_memo.length > 0 && version >= 27) { + } + else if (version >= 27 && lm_music_memo.length > 0) { lm_music_memo.forEach((res) => { let musicmemo_data: musicmemo_data = { music_idx: res.music_idx, @@ -409,7 +434,7 @@ export const pcget: EPR = async (info, data, send) => { mArray.sort((a: musicmemo_data, b: musicmemo_data): number => a.play_style - b.play_style || a.music_idx - b.music_idx); } - /* TODO:: figure out how badges works + /*** TODO:: figure out how badges works [save] - elements are below but get checks for id 0~12 today_recommend (flg) weekly_ranking (flg) @@ -419,9 +444,8 @@ export const pcget: EPR = async (info, data, send) => { event1 (flg_id, flg) [10] arena (flg_id, flg) [2] iidx_exam (flg) - */ - /* [get] + [get] category_id - up to 12 badge_flg_id - This can be up to 23 @@ -429,42 +453,45 @@ export const pcget: EPR = async (info, data, send) => { - category_id: 9 -> 9 - category_id: 7, 10 -> 2 badge_flg - */ - for (let a = 0; a < 13; a++) { - if (a == 0 || a == 1) { - for (let b = 0; b < 24; b++) { - bArray.push({ - id: a, - flg_id: b, - flg: -1, - }); - } - continue; - } else if (a == 9) { - for (let b = 0; b < 10; b++) { - bArray.push({ - id: a, - flg_id: b, - flg: -1, - }); - } - continue; - } else if (a == 7 || a == 10) { - for (let b = 0; b < 2; b++) { - bArray.push({ - id: a, - flg_id: b, - flg: -1, - }); - } - continue; - } + ***/ - bArray.push({ - id: a, - flg_id: 0, - flg: -1, - }); + if (version >= 30) { + for (let a = 0; a < 13; a++) { + if (a == 0 || a == 1) { + for (let b = 0; b < 24; b++) { + bArray.push({ + id: a, + flg_id: b, + flg: -1, + }); + } + continue; + } else if (a == 9) { + for (let b = 0; b < 10; b++) { + bArray.push({ + id: a, + flg_id: b, + flg: -1, + }); + } + continue; + } else if (a == 7 || a == 10) { + for (let b = 0; b < 2; b++) { + bArray.push({ + id: a, + flg_id: b, + flg: -1, + }); + } + continue; + } + + bArray.push({ + id: a, + flg_id: 0, + flg: -1, + }); + } } return send.pugFile(`pug/LDJ/${version}pcget.pug`, { @@ -480,12 +507,15 @@ export const pcget: EPR = async (info, data, send) => { rArray, evtArray, evtArray2, + boss1, + link5, + tricolettepark, wArray, bArray, }); - } else { - return send.deny(); } + + return send.deny(); }; // TODO:: migration (oldget/getname/takeover) // @@ -533,6 +563,9 @@ export const pctakeover: EPR = async (info, data, send) => { case 20: pcdata = LDJ_pcdata; break; + case 21: + pcdata = IIDX21_pcdata; + break; case 27: pcdata = IIDX27_pcdata; lightning_playdata = lm_playdata; @@ -674,7 +707,8 @@ export const pcsave: EPR = async (info, data, send) => { if (cltype == 0) { pcdata.sach = parseInt($(data).attr().achi); pcdata.sp_opt = parseInt($(data).attr().opt); - } else { + } + else { pcdata.dach = parseInt($(data).attr().achi); pcdata.dp_opt = parseInt($(data).attr().opt); pcdata.dp_opt2 = parseInt($(data).attr().opt2); @@ -723,7 +757,8 @@ export const pcsave: EPR = async (info, data, send) => { if (cltype == 0) { pcdata.sach = parseInt($(data).attr().achi); pcdata.sp_opt = parseInt($(data).attr().opt); - } else { + } + else { pcdata.dach = parseInt($(data).attr().achi); pcdata.dp_opt = parseInt($(data).attr().opt); pcdata.dp_opt2 = parseInt($(data).attr().opt2); @@ -799,7 +834,8 @@ export const pcsave: EPR = async (info, data, send) => { if (cltype == 0) { pcdata.sach = parseInt($(data).attr().achi); pcdata.sp_opt = parseInt($(data).attr().opt); - } else { + } + else { pcdata.dach = parseInt($(data).attr().achi); pcdata.dp_opt = parseInt($(data).attr().opt); pcdata.dp_opt2 = parseInt($(data).attr().opt2); @@ -1054,9 +1090,265 @@ export const pcsave: EPR = async (info, data, send) => { ); } } + else if (version == 21) { + pcdata.rtype = parseInt($(data).attr().rtype); + pcdata.sach = parseInt($(data).attr().s_achi); + pcdata.dach = parseInt($(data).attr().d_achi); + pcdata.sp_opt = parseInt($(data).attr().sp_opt); + pcdata.dp_opt = parseInt($(data).attr().dp_opt); + pcdata.dp_opt2 = parseInt($(data).attr().dp_opt2); + pcdata.gpos = parseInt($(data).attr().gpos); + pcdata.s_sorttype = parseInt($(data).attr().s_sorttype); + pcdata.d_sorttype = parseInt($(data).attr().d_sorttype); + pcdata.s_disp_judge = parseInt($(data).attr().s_disp_judge); + pcdata.d_disp_judge = parseInt($(data).attr().d_disp_judge); + pcdata.s_pace = parseInt($(data).attr().s_pace); + pcdata.d_pace = parseInt($(data).attr().d_pace); + pcdata.s_gno = parseInt($(data).attr().s_gno); + pcdata.d_gno = parseInt($(data).attr().d_gno); + pcdata.s_gtype = parseInt($(data).attr().s_gtype); + pcdata.d_gtype = parseInt($(data).attr().d_gtype); + pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); + pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); + pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); + pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); + pcdata.s_notes = parseFloat($(data).attr().s_notes); + pcdata.d_notes = parseFloat($(data).attr().d_notes); + pcdata.s_judge = parseInt($(data).attr().s_judge); + pcdata.d_judge = parseInt($(data).attr().d_judge); + pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); + pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); + pcdata.s_hispeed = parseFloat($(data).attr().s_hispeed); + pcdata.d_hispeed = parseFloat($(data).attr().d_hispeed); + pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); + pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); + + if (!_.isNil($(data).element("secret"))) { + pcdata.secret_flg1 = $(data).element("secret").bigints("flg1").map(String); + pcdata.secret_flg2 = $(data).element("secret").bigints("flg2").map(String); + pcdata.secret_flg3 = $(data).element("secret").bigints("flg3").map(String); + } + + if (!_.isNil($(data).element("favorite"))) { + 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"))) { + custom.qpro_secret_head = $(data).element("qpro_secret").bigints("head").map(String); + custom.qpro_secret_hair = $(data).element("qpro_secret").bigints("hair").map(String); + custom.qpro_secret_face = $(data).element("qpro_secret").bigints("face").map(String); + custom.qpro_secret_body = $(data).element("qpro_secret").bigints("body").map(String); + custom.qpro_secret_hand = $(data).element("qpro_secret").bigints("hand").map(String); + } + + if (!_.isNil($(data).element("achievements"))) { + // TODO:: achi_packflg, achi_packid, achi_playpack // + pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); + } + + if (hasStepUpData) { + pcdata.st_damage = parseInt($(data).attr("step").damage); + pcdata.st_defeat = parseInt($(data).attr("step").defeat); + pcdata.st_progress = parseInt($(data).attr("step").progress); + pcdata.st_round = parseInt($(data).attr("step").round); + pcdata.st_sp_mission = parseInt($(data).attr("step").sp_mission); + pcdata.st_dp_mission = parseInt($(data).attr("step").dp_mission); + pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); + pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); + 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 = $(data).buffer("step").toString("base64"); // TODO:: verify // + } + + if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); + if (!_.isNil($(data).element("orb_data"))) pcdata.orb += parseInt($(data).attr("orb_data").add_orb); + + // TODO:: fix event saving, these event savings are broken. // + if (!_.isNil($(data).element("boss1"))) { + let event_data = { + stamina: parseInt($(data).attr("boss1").stamina), + attack: parseInt($(data).attr("boss1").attack), + item_flg: parseInt($(data).attr("boss1").item_flg), + item_flg2: parseInt($(data).attr("boss1").item_flg2), + pick: parseInt($(data).attr("boss1").pick), + row0: parseInt($(data).attr("boss1").row0), + row1: parseInt($(data).attr("boss1").row1), + row2: parseInt($(data).attr("boss1").row2), + row3: parseInt($(data).attr("boss1").row3), + column0: parseInt($(data).attr("boss1").column0), + column1: parseInt($(data).attr("boss1").column1), + column2: parseInt($(data).attr("boss1").column2), + column3: parseInt($(data).attr("boss1").column3), + map: parseInt($(data).attr("boss1").map), + job: parseInt($(data).attr("boss1").job), + general: parseInt($(data).attr("boss1").general), + battle: parseInt($(data).attr("boss1").battle), + boss0_n: parseInt($(data).attr("boss1").boss0_n), + boss0_h: parseInt($(data).attr("boss1").boss0_h), + boss0_a: parseInt($(data).attr("boss1").boss0_a), + boss1_n: parseInt($(data).attr("boss1").boss1_n), + boss1_h: parseInt($(data).attr("boss1").boss1_h), + boss1_a: parseInt($(data).attr("boss1").boss1_a), + boss2_n: parseInt($(data).attr("boss1").boss2_n), + boss2_h: parseInt($(data).attr("boss1").boss2_h), + boss2_a: parseInt($(data).attr("boss1").boss2_a), + boss_scene: parseInt($(data).attr("boss1").boss_scene), + boss0_damage: parseInt($(data).attr("boss1").boss0_damage), + boss1_damage: parseInt($(data).attr("boss1").boss1_damage), + boss2_damage: parseInt($(data).attr("boss1").boss2_damage), + boss3_damage: parseInt($(data).attr("boss1").boss3_damage), + boss4_damage: parseInt($(data).attr("boss1").boss4_damage), + boss5_damage: parseInt($(data).attr("boss1").boss5_damage), + boss6_damage: parseInt($(data).attr("boss1").boss6_damage), + level: $(data).element("boss1").numbers("level"), + durability: $(data).element("boss1").buffer("durability").toString("base64"), + }; + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "boss1", + }, + { + $set: event_data, + } + ); + } + + if (!_.isNil($(data).element("link5"))) { + let link5 = await DB.FindOne(refid, { collection: "event_1", version: 20, event_name: "link5" }); + let event_data; + + if (_.isNil(link5)) { + event_data = { + qpro: parseInt($(data).attr("link5").qpro), // add + glass: parseInt($(data).attr("link5").glass), // add + beautiful: parseInt($(data).attr("link5").beautiful), + quaver: parseInt($(data).attr("link5").quaver), + castle: parseInt($(data).attr("link5").castle), + flip: parseInt($(data).attr("link5").flip), + titans: parseInt($(data).attr("link5").titans), + exusia: parseInt($(data).attr("link5").exusia), + waxing: parseInt($(data).attr("link5").waxing), + sampling: parseInt($(data).attr("link5").sampling), + beachside: parseInt($(data).attr("link5").beachside), + cuvelia: parseInt($(data).attr("link5").cuvelia), + reunion: parseInt($(data).attr("link5").reunion), + bad: parseInt($(data).attr("link5").bad), + turii: parseInt($(data).attr("link5").turii), + anisakis: parseInt($(data).attr("link5").anisakis), + second: parseInt($(data).attr("link5").second), + whydidyou: parseInt($(data).attr("link5").whydidyou), + china: parseInt($(data).attr("link5").china), + fallen: parseInt($(data).attr("link5").fallen), + broken: parseInt($(data).attr("link5").broken), + summer: parseInt($(data).attr("link5").summer), + sakura: parseInt($(data).attr("link5").sakura), + wuv: parseInt($(data).attr("link5").wuv), + survival: parseInt($(data).attr("link5").survival), + thunder: parseInt($(data).attr("link5").thunder), + } + } + else { + event_data = link5; + + event_data.qpro += parseInt($(data).attr("link5").qpro); + event_data.glass += parseInt($(data).attr("link5").glass); + event_data.beautiful = parseInt($(data).attr("link5").beautiful); + event_data.quaver = parseInt($(data).attr("link5").quaver); + event_data.castle = parseInt($(data).attr("link5").castle); + event_data.flip = parseInt($(data).attr("link5").flip); + event_data.titans = parseInt($(data).attr("link5").titans); + event_data.exusia = parseInt($(data).attr("link5").exusia); + event_data.waxing = parseInt($(data).attr("link5").waxing); + event_data.sampling = parseInt($(data).attr("link5").sampling); + event_data.beachside = parseInt($(data).attr("link5").beachside); + event_data.cuvelia = parseInt($(data).attr("link5").cuvelia); + event_data.reunion = parseInt($(data).attr("link5").reunion); + event_data.bad = parseInt($(data).attr("link5").bad); + event_data.turii = parseInt($(data).attr("link5").turii); + event_data.anisakis = parseInt($(data).attr("link5").anisakis); + event_data.second = parseInt($(data).attr("link5").second); + event_data.whydidyou = parseInt($(data).attr("link5").whydidyou); + event_data.china = parseInt($(data).attr("link5").china); + event_data.fallen = parseInt($(data).attr("link5").fallen); + event_data.broken = parseInt($(data).attr("link5").broken); + event_data.summer = parseInt($(data).attr("link5").summer); + event_data.sakura = parseInt($(data).attr("link5").sakura); + event_data.wuv = parseInt($(data).attr("link5").wuv); + event_data.survival = parseInt($(data).attr("link5").survival); + event_data.thunder = parseInt($(data).attr("link5").thunder); + } + + await DB.Upsert(refid, + { + collection: "event_1", + version: 20, + event_name: "link5", + }, + { + $set: event_data, + } + ); + } + + if (!_.isNil($(data).element("tricolettepark"))) { + let tricolettepark = await DB.FindOne(refid, { collection: "event_1", version: 20, event_name: "tricolettepark" }); + let event_data; + + if (_.isNil(tricolettepark)) { + event_data = { + open_music: parseInt($(data).attr("tricolettepark").open_music), + boss0_damage: parseInt($(data).attr("tricolettepark").boss0_damage), // add + boss1_damage: parseInt($(data).attr("tricolettepark").boss1_damage), + boss2_damage: parseInt($(data).attr("tricolettepark").boss2_damage), + boss3_damage: parseInt($(data).attr("tricolettepark").boss3_damage), + boss0_stun: parseInt($(data).attr("tricolettepark").boss0_stun), + boss1_stun: parseInt($(data).attr("tricolettepark").boss1_stun), + boss2_stun: parseInt($(data).attr("tricolettepark").boss2_stun), + boss3_stun: parseInt($(data).attr("tricolettepark").boss3_stun), + union_magic_used: parseInt($(data).attr("tricolettepark").union_magic_used), + } + } + else { + event_data = tricolettepark; + + event_data.open_music = parseInt($(data).attr("tricolettepark").open_music), + event_data.boss0_damage += parseInt($(data).attr("tricolettepark").boss0_damage); + event_data.boss1_damage += parseInt($(data).attr("tricolettepark").boss1_damage); + event_data.boss2_damage += parseInt($(data).attr("tricolettepark").boss2_damage); + event_data.boss3_damage += parseInt($(data).attr("tricolettepark").boss3_damage); + event_data.boss0_stun = parseInt($(data).attr("tricolettepark").boss0_stun); + event_data.boss1_stun = parseInt($(data).attr("tricolettepark").boss1_stun); + event_data.boss2_stun = parseInt($(data).attr("tricolettepark").boss2_stun); + event_data.boss3_stun = parseInt($(data).attr("tricolettepark").boss3_stun); + event_data.union_magic_used = parseInt($(data).attr("tricolettepark").union_magic_used); + } + + await DB.Upsert(refid, + { + collection: "event_1", + version: 20, + event_name: "tricolettepark", + }, + { + $set: event_data, + } + ); + } + } else if (version >= 27) { // lid bookkeep cid ctype ccode - pcdata.rtype = parseInt($(data).attr().d_sdtype); + pcdata.rtype = parseInt($(data).attr().rtype); pcdata.sach = parseInt($(data).attr().s_achi); pcdata.dach = parseInt($(data).attr().d_achi); pcdata.sp_opt = parseInt($(data).attr().sp_opt); diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 8d9ef4e..046f36f 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -34,6 +34,7 @@ export function register() { const MultiRoute = (method: string, handler: EPR | boolean) => { R.Route(`${method}`, handler); + R.Route(`IIDX21${method}`, handler); R.Route(`IIDX27${method}`, handler); R.Route(`IIDX28${method}`, handler); R.Route(`IIDX29${method}`, handler); @@ -67,7 +68,7 @@ export function register() { MultiRoute("gameSystem.systemInfo", gssysteminfo); R.Unhandled((req: EamuseInfo, data: any, send: EamuseSend) => { - console.warn(`Unhandled Request : ${req.module}.${req.method} , [${GetVersion(req)}]`); + console.warn(`Unhandled Request : [${GetVersion(req)}], ${req.module}.${req.method}, ${JSON.stringify(data)}`); return send.success(); }); } diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 3ed1ce5..dac1271 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -129,11 +129,21 @@ export interface pcdata { st_review: number; st_help: any; // save as base64 string, sent as buffer // + st_damage: number; // step (spada) // + st_defeat: number; + st_round: number; + st_sp_mission: number; + st_dp_mission: number; + st_sp_level: number; + st_dp_level: number; + st_sp_mplay: number; + st_dp_mplay: number; + st_last_select: number; + st_album: any; + st_enemy_damage: number; // step (Heroic Verse) // st_progress: number; st_is_track_ticket: boolean; - st_sp_level: number; - st_dp_level: number; st_sp_mission_point: number; st_dp_mission_point: number; st_sp_dj_mission_level: number; @@ -144,8 +154,6 @@ export interface pcdata { st_dp_dj_mission_clear: number; st_sp_clear_mission_clear: number; st_dp_clear_mission_clear: number; - st_sp_mplay: number; - st_dp_mplay: number; st_tips_read_list: number; st_total_point: number; // CastHour // st_enemy_defeat_flg: number; @@ -167,6 +175,11 @@ export interface pcdata { p3: number[]; p4: number[]; + sp_mlist: any; // favorite (SPADA), save as base64 string, sent as buffer // + sp_clist: any; + dp_mlist: any; + dp_clist: any; + eb_keyorb: number; // extra boss (Heroic Verse) // eb_bossorb0: number; eb_bossorb1: number; @@ -304,6 +317,83 @@ export const LDJ_pcdata = { orb: 0, } +export const IIDX21_pcdata = { + version: 21, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + mode: 0, + pmode: 0, + rtype: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + gpos: 0, + s_sorttype: 0, + d_sorttype: 0, + s_pace: 0, + d_pace: 0, + s_gno: 0, + d_gno: 0, + s_sub_gno: 0, + d_sub_gno: 0, + s_gtype: 0, + d_gtype: 0, + s_sdlen: 0, + d_sdlen: 0, + s_sdtype: 0, + d_sdtype: 0, + s_timing: 0, + d_timing: 0, + s_notes: 0, + d_notes: 0, + s_judge: 0, + d_judge: 0, + s_judgeAdj: 0, + d_judgeAdj: 0, + s_hispeed: 0, + d_hispeed: 0, + s_liflen: 0, + d_liflen: 0, + s_disp_judge: 0, + d_disp_judge: 0, + s_opstyle: 0, + d_opstyle: 0, + + secret_flg1: Array(3).fill("-1"), + secret_flg2: Array(3).fill("-1"), + secret_flg3: Array(3).fill("-1"), + + sgid: -1, + dgid: -1, + + st_damage: 0, + st_defeat: 0, + st_progress: 0, + st_round: 0, + st_sp_mission: 0, + st_dp_mission: 0, + st_sp_level: 0, + st_dp_level: 0, + st_sp_mplay: 0, + st_dp_mplay: 0, + st_last_select: 0, + st_album: "", + + achi_pack: 0, + achi_packcomp: 0, + achi_lastweekly: 0, + achi_weeklynum: 0, + achi_visitflg: 0, + achi_rivalcrush: 0, + achi_trophy: Array(20).fill("0"), + + deller: 0, + orb: 0, +} + export const IIDX27_pcdata = { version: 27, diff --git a/iidx@asphyxia/pug/LDJ/21pccommon.pug b/iidx@asphyxia/pug/LDJ/21pccommon.pug new file mode 100644 index 0000000..e3545f1 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/21pccommon.pug @@ -0,0 +1,14 @@ +IIDX21pc(status="0" expire="600") + ir(beat=beat) + limit(phase="1") + boss(phase="1") + boss1(phase="1") + medal(phase="1") + vip_pass_black + cafe(open="1") + tricolettepark(open="1") + tricolettepark_skip(phase="1") + deller_bonus(open="1") + gumi_event + newsong_another(open="1") + superstar(phase="1") diff --git a/iidx@asphyxia/pug/LDJ/21pcget.pug b/iidx@asphyxia/pug/LDJ/21pcget.pug new file mode 100644 index 0000000..b542189 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/21pcget.pug @@ -0,0 +1,55 @@ +IIDX21pc(status="0") + 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 rtype=pcdata.rtype 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_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) + spdp_rival(flg="-1") + bind_eaappli + secret + flg1(__type="s64" __count="2") -1 -1 + flg2(__type="s64" __count="2") -1 -1 + flg3(__type="s64" __count="2") -1 -1 + if pcdata.sp_mlist != null + favorite + sp_mlist(__type="bin") #{pcdata.sp_mlist} + sp_clist(__type="bin") #{pcdata.sp_clist} + dp_mlist(__type="bin") #{pcdata.dp_mlist} + dp_clist(__type="bin") #{pcdata.dp_clist} + qpro_secret + head(__type="s64" __count="3") -1 -1 -1 + hair(__type="s64" __count="3") -1 -1 -1 + face(__type="s64" __count="3") -1 -1 -1 + body(__type="s64" __count="3") -1 -1 -1 + hand(__type="s64" __count="3") -1 -1 -1 + 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]} + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 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]) + stepdata(step_sach="-1" step_dach="-1") + qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) + shop(name="CORE") + join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") + if pcdata.st_album != null + step(damage=pcdata.st_damage defeat=pcdata.st_defeat progress=pcdata.st_progress round=pcdata.st_round sp_mission=pcdata.st_sp_mission dp_mission=pcdata.st_dp_mission sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay last_select=pcdata.st_last_select) + album(__type="bin") #{pcdata.st_album} + //-step_assist(iidx_id iidx_id_str name hair head face body hand) + achievements(pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp last_weekly=pcdata.achi_lastweekly weekly_num=pcdata.achi_weeklynum visit_flg=pcdata.achi_visitflg rival_crush=pcdata.achi_rivalcrush) + trophy(__type="s64" __count="10") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]} + if link5 != null + link5(qpro=link5.qpro glass=link5.glass treasure="0" beautiful=link5.beautiful quaver=link5.quaver castle=link5.castle flip=link5.flip titans=link5.titans exusia=link5.exusia waxing=link5.waxing sampling=link5.sampling beachside=link5.beachside cuvelia=link5.cuvelia reunion=link5.reunion bad=link5.bad turii=link5.turii anisakis=link5.anisakis second=link5.second whydidyou=link5.whydidyou china=link5.china fallen=link5.fallen broken=link5.broken summer=link5.summer sakura=link5.sakura wuv=link5.wuv survival=link5.survival thunder=link5.thunder qproflg="0" glassflg="0" reflec_data="0") + //-cafe(food pastry rainbow beastie astraia beachimp holysnow trueblue ledvsscu service is_first) + gakuen(music_list="-1") + baseball(music_list="-1") + if tricolettepark != null + tricolettepark(open_music=tricolettepark.open_music boss0_damage=tricolettepark.boss0_damage boss1_damage=tricolettepark.boss1_damage boss2_damage=tricolettepark.boss2_damage boss3_damage=tricolettepark.boss3_damage boss0_stun=tricolettepark.boss0_stun boss1_stun=tricolettepark.boss1_stun boss2_stun=tricolettepark.boss2_stun boss3_stun=tricolettepark.boss3_stun magic_gauge="0" party="0" is_union="0" attack_rate="1") + pyramid(music_list="-1" item_list="-1" statue_0="0" statue_1="0" statue_2="0") + deller(deller=pcdata.deller rate="1") + orb_data(rest_orb=pcdata.orb) + if boss1 != null + boss1(stamina=boss1.stamina attack=boss1.attack item_flg=boss1.item_flg item_flg2=boss1.item_flg2 pick=boss1.pick row0=boss1.row0 row1=boss1.row1 row2=boss1.row2 row3=boss1.row3 column0=boss1.column0 column1=boss1.column1 column2=boss1.column2 column3=boss1.column3 map=boss1.map job=boss1.job general=boss1.general battle=boss1.battle boss0_n=boss1.boss0_n boss0_h=boss1.boss0_h boss0_a=boss1.boss0_a boss1_n=boss1.boss1_n boss1_h=boss1.boss1_h boss1_a=boss1.boss1_a boss2_n=boss1.boss2_n boss2_h=boss1.boss2_h boss2_a=boss1.boss2_a item1="0" item2="0" item3="0" boss_scene=boss1.boss_scene boss0_damage=boss1.boss0_damage boss1_damage=boss1.boss1_damage boss2_damage=boss1.boss2_damage boss3_damage=boss1.boss3_damage boss4_damage=boss1.boss4_damage boss5_damage=boss1.boss5_damage boss6_damage=boss1.boss6_damage) + durability(__type="bin") #{boss1.durability} + level(__type="s32" __count="28") #{boss1.level[0]} #{boss1.level[1]} #{boss1.level[2]} #{boss1.level[3]} #{boss1.level[4]} #{boss1.level[5]} #{boss1.level[6]} + //-boss1_phase4(map_clear_flg) + new_durability + //-superstar(achieve_flg) From 1f4f881545ead2758967aa9848eb2284330979f8 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Wed, 14 Feb 2024 05:14:20 +0900 Subject: [PATCH 05/73] IIDX: Initial support added for PENDUAL --- iidx@asphyxia/README.md | 15 +- iidx@asphyxia/handlers/music.ts | 90 +++++++++++- iidx@asphyxia/handlers/pc.ts | 204 ++++++++++++++++++++++++--- iidx@asphyxia/index.ts | 1 + iidx@asphyxia/models/pcdata.ts | 91 +++++++++++- iidx@asphyxia/pug/LDJ/21pccommon.pug | 10 +- iidx@asphyxia/pug/LDJ/22pccommon.pug | 21 +++ iidx@asphyxia/pug/LDJ/22pcget.pug | 63 +++++++++ iidx@asphyxia/pug/LDJ/30pcget.pug | 1 + iidx@asphyxia/util.ts | 19 ++- 10 files changed, 486 insertions(+), 29 deletions(-) create mode 100644 iidx@asphyxia/pug/LDJ/22pccommon.pug create mode 100644 iidx@asphyxia/pug/LDJ/22pcget.pug diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 045954c..24b59be 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -1,6 +1,6 @@ # beatmaniaIIDX -Plugin Version: **v0.1.6** +Plugin Version: **v0.1.8** --- @@ -10,6 +10,7 @@ Supported Versions - beatmaniaIIDX 19 Lincle - beatmaniaIIDX 20 tricoro - beatmaniaIIDX 21 SPADA + - beatmaniaIIDX 22 PENDUAL - beatmaniaIIDX 27 HEROIC VERSE - beatmaniaIIDX 28 BISTROVER - beatmaniaIIDX 29 CastHour @@ -54,7 +55,7 @@ Changelogs **v0.1.5** - Added Initial support for Resort Anthem - BEGINNER, LEAGUE, STORY does not work yet. - - Fixed s_hispeed/d_hispeed doesn't save correctly. + - Fixed where s_hispeed/d_hispeed doesn't save correctly. **v0.1.6** - Added Initial support for tricoro @@ -65,4 +66,12 @@ Changelogs **v0.1.7** - Added Initial support for SPADA - Event savings are broken - - Fixed rtype didn't save correctly. (BISTROVER ~) + - Fixed where rtype didn't save correctly. (BISTROVER ~) + +**v0.1.8** + - Added RIVAL pacemaker support + - Added Initial support for PENDUAL + - Event savings are broken + - Fixed where old_linkage_secret_flg is missing on pc.get response (RESIDENT) + - Fixed where game could crash due to invalid rival qprodata + - Fixed where lift isn't saving (SPADA) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index f1eb814..fe020c1 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -1,4 +1,4 @@ -import { IDtoRef, Base64toBuffer, GetVersion, OldMidToNewMid, NewMidToOldMid } from "../util"; +import { IDtoRef, Base64toBuffer, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide } from "../util"; import { score, score_top } from "../models/score"; import { profile } from "../models/profile"; @@ -160,6 +160,8 @@ export const musicappoint: EPR = async (info, data, send) => { // 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); @@ -171,7 +173,8 @@ export const musicappoint: EPR = async (info, data, send) => { else if (version < 27) { clid = mapping[clid]; } - + + // MINE // const music_data: score | null = await DB.FindOne(refid, { collection: "score", mid: mid, @@ -191,9 +194,83 @@ export const musicappoint: EPR = async (info, data, send) => { } else mydata = K.ITEM("bin", Base64toBuffer(music_data[clid])); + /*** ctype + [-1] - DEFAULT + [1] - RIVAL + [2] - ALL TOP + [3] - ALL AVG. + [4] - LOCATION TOP + [5] - LOCATION AVG. + [6] - SAME DAN TOP + [7] - SAME DAN AVG. + [8] - RIVAL TOP + [9] - RIVAL AVG. + [10] - STORE TOP + [13] - RIVAL NEXT + [14] - STORE ROTATE + [15] - RIVAL ROTATE + ***/ + + // OTHERS // + let other_refid, other_musicdata: score | null, other_pcdata, other_profile, sdata = null; + switch (ctype) { + case 1: + if (_.isNaN(subtype)) break; + + other_refid = await IDtoRef(subtype); + other_profile = await ReftoProfile(other_refid); + other_pcdata = await ReftoPcdata(other_refid, version); + other_musicdata = await DB.FindOne(other_refid, { + collection: "score", + mid: mid, + [clid]: { $exists: true }, + }); + if (_.isNaN(other_pcdata) || _.isNil(other_musicdata)) break; + + sdata = K.ITEM("bin", Base64toBuffer(other_musicdata[clid]), { + score: other_musicdata.esArray[clid].toString(), + pid: other_profile[1].toString(), + name: other_profile[0].toString(), + riidxid: other_profile[2].toString() + }); + break; + + default: + break; + } + if (version >= 27) { let my_gauge_data = Base64toBuffer(music_data[clid + 10]); + if (!_.isNil(sdata)) { + if (_.isNil(other_musicdata.optArray)) { // temp // + other_musicdata.optArray = Array(10).fill(0); + other_musicdata.opt2Array = Array(10).fill(0); + } + + let other_data = K.ITEM("bin", Base64toBuffer(other_musicdata[clid]), { + score: other_musicdata.esArray[clid].toString(), + achieve: other_pcdata[ClidToPlaySide(clid) + 2].toString(), + pid: other_profile[1].toString(), + name: other_profile[0].toString(), + riidxid: other_profile[2].toString(), + option: other_musicdata.optArray[clid].toString(), // CastHour // + option2: other_musicdata.opt2Array[clid].toString(), + }); + + sdata = { + ...other_data, + gauge_data: K.ITEM("bin", Base64toBuffer(other_musicdata[clid + 10])) + }; + + return send.object({ + "@attr": { my_option: option, my_option2: option2 }, // CastHour // + mydata: K.ITEM("bin", mydata), + my_gauge_data: K.ITEM("bin", my_gauge_data), + sdata, + }); + } + return send.object({ "@attr": { my_option: option, my_option2: option2 }, // CastHour // mydata: K.ITEM("bin", mydata), @@ -201,8 +278,15 @@ export const musicappoint: EPR = async (info, data, send) => { }); } + if (!_.isNil(sdata)) { + return send.object({ + mydata, + sdata, + }); + } + return send.object({ - mydata + mydata, }); } diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 9e309e8..3bd48d5 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -1,4 +1,4 @@ -import { pcdata, KDZ_pcdata, IIDX27_pcdata, IIDX28_pcdata, IIDX29_pcdata, IIDX30_pcdata, JDZ_pcdata, LDJ_pcdata, IIDX21_pcdata } from "../models/pcdata"; +import { pcdata, KDZ_pcdata, IIDX27_pcdata, IIDX28_pcdata, IIDX29_pcdata, IIDX30_pcdata, JDZ_pcdata, LDJ_pcdata, IIDX21_pcdata, IIDX22_pcdata } from "../models/pcdata"; import { grade } from "../models/grade"; import { custom, default_custom } from "../models/custom"; import { IDtoCode, IDtoRef, Base64toBuffer, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter } from "../util"; @@ -71,7 +71,7 @@ export const pccommon: EPR = async (info, data, send) => { beat: String(U.GetConfig("BeatPhase")), }), limit: K.ATTR({ - phase: String(3), + phase: String(4), }), boss: K.ATTR({ phase: String(3), @@ -126,6 +126,9 @@ export const pcreg: EPR = async (info, data, send) => { case 21: pcdata = IIDX21_pcdata; break; + case 22: + pcdata = IIDX22_pcdata; + break; case 27: pcdata = IIDX27_pcdata; lightning_playdata = lm_playdata; @@ -280,7 +283,7 @@ export const pcget: EPR = async (info, data, send) => { for (let a = 0; a < rivals.length; a++) { let profile = await ReftoProfile(rivals[a].rival_refid); let pcdata = await ReftoPcdata(rivals[a].rival_refid, version); - let qprodata = await ReftoQPRO(rivals[a].rival_refid); + let qprodata = await ReftoQPRO(rivals[a].rival_refid, version); let rival_data: rival_data = { play_style: rivals[a].play_style, @@ -370,23 +373,29 @@ export const pcget: EPR = async (info, data, send) => { }); } else if (version >= 21) { - let link5 = null, tricolettepark = null, boss1 = null, evtArray = [], evtArray2 = []; - if (version == 20 || version == 21) { - 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" }); + let link5 = null, + tricolettepark = null, + boss1 = null, + chrono_diver = null, + evtArray = [], evtArray2 = []; + if (version == 21 || version == 22) { + if (!_.isNil(pcdata.sp_mlist)) { + pcdata.sp_mlist = Base64toBuffer(pcdata.sp_mlist).toString("hex"); + pcdata.sp_clist = Base64toBuffer(pcdata.sp_clist).toString("hex"); + pcdata.dp_mlist = Base64toBuffer(pcdata.dp_mlist).toString("hex"); + pcdata.dp_clist = Base64toBuffer(pcdata.dp_clist).toString("hex"); + } + + if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).toString("hex"); if (version == 21) { - if (!_.isNil(pcdata.sp_mlist)) { - pcdata.sp_mlist = Base64toBuffer(pcdata.sp_mlist).toString("hex"); - pcdata.sp_clist = Base64toBuffer(pcdata.sp_clist).toString("hex"); - pcdata.dp_mlist = Base64toBuffer(pcdata.dp_mlist).toString("hex"); - pcdata.dp_clist = Base64toBuffer(pcdata.dp_clist).toString("hex"); - } - - if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).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.durability)) boss1.durability = Base64toBuffer(boss1.durability).toString("hex"); + } else if (version == 22) { + chrono_diver = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "chrono_diver" }); } } else { @@ -510,6 +519,7 @@ export const pcget: EPR = async (info, data, send) => { boss1, link5, tricolettepark, + chrono_diver, wArray, bArray, }); @@ -566,6 +576,9 @@ export const pctakeover: EPR = async (info, data, send) => { case 21: pcdata = IIDX21_pcdata; break; + case 22: + pcdata = IIDX22_pcdata; + break; case 27: pcdata = IIDX27_pcdata; lightning_playdata = lm_playdata; @@ -587,7 +600,6 @@ export const pctakeover: EPR = async (info, data, send) => { lightning_settings = lm_settings_new; break; - default: return send.deny(); } @@ -1123,6 +1135,9 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); + if (!_.isNil($(data).attr().s_lift)) pcdata.s_liflen = parseInt($(data).attr().s_lift); + if (!_.isNil($(data).attr().d_lift)) pcdata.s_liflen = parseInt($(data).attr().d_lift); + if (!_.isNil($(data).element("secret"))) { pcdata.secret_flg1 = $(data).element("secret").bigints("flg1").map(String); pcdata.secret_flg2 = $(data).element("secret").bigints("flg2").map(String); @@ -1346,6 +1361,163 @@ export const pcsave: EPR = async (info, data, send) => { ); } } + else if (version == 22) { + pcdata.rtype = parseInt($(data).attr().rtype); + pcdata.sach = parseInt($(data).attr().s_achi); + pcdata.dach = parseInt($(data).attr().d_achi); + pcdata.sp_opt = parseInt($(data).attr().sp_opt); + pcdata.dp_opt = parseInt($(data).attr().dp_opt); + pcdata.dp_opt2 = parseInt($(data).attr().dp_opt2); + pcdata.gpos = parseInt($(data).attr().gpos); + pcdata.s_sorttype = parseInt($(data).attr().s_sorttype); + pcdata.d_sorttype = parseInt($(data).attr().d_sorttype); + pcdata.s_disp_judge = parseInt($(data).attr().s_disp_judge); + pcdata.d_disp_judge = parseInt($(data).attr().d_disp_judge); + pcdata.s_pace = parseInt($(data).attr().s_pace); + pcdata.d_pace = parseInt($(data).attr().d_pace); + pcdata.s_gno = parseInt($(data).attr().s_gno); + pcdata.d_gno = parseInt($(data).attr().d_gno); + pcdata.s_gtype = parseInt($(data).attr().s_gtype); + pcdata.d_gtype = parseInt($(data).attr().d_gtype); + pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); + pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); + pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); + pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); + pcdata.s_notes = parseFloat($(data).attr().s_notes); + pcdata.d_notes = parseFloat($(data).attr().d_notes); + pcdata.s_judge = parseInt($(data).attr().s_judge); + pcdata.d_judge = parseInt($(data).attr().d_judge); + pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); + pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); + pcdata.s_hispeed = parseFloat($(data).attr().s_hispeed); + pcdata.d_hispeed = parseFloat($(data).attr().d_hispeed); + pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); + pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); + pcdata.s_exscore = parseInt($(data).attr().s_exscore); + pcdata.d_exscore = parseInt($(data).attr().d_exscore); + pcdata.s_largejudge = parseInt($(data).attr().s_largejudge); + pcdata.d_largejudge = parseInt($(data).attr().d_largejudge); + + if (!_.isNil($(data).attr().s_lift)) pcdata.s_liflen = parseInt($(data).attr().s_lift); + if (!_.isNil($(data).attr().d_lift)) pcdata.s_liflen = parseInt($(data).attr().d_lift); + + if (!_.isNil($(data).element("secret"))) { + pcdata.secret_flg1 = $(data).element("secret").bigints("flg1").map(String); + pcdata.secret_flg2 = $(data).element("secret").bigints("flg2").map(String); + pcdata.secret_flg3 = $(data).element("secret").bigints("flg3").map(String); + } + + if (!_.isNil($(data).element("favorite"))) { + 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"))) { + custom.qpro_secret_head = $(data).element("qpro_secret").bigints("head").map(String); + custom.qpro_secret_hair = $(data).element("qpro_secret").bigints("hair").map(String); + custom.qpro_secret_face = $(data).element("qpro_secret").bigints("face").map(String); + custom.qpro_secret_body = $(data).element("qpro_secret").bigints("body").map(String); + custom.qpro_secret_hand = $(data).element("qpro_secret").bigints("hand").map(String); + } + + if (!_.isNil($(data).element("qpro_equip"))) { + custom.qpro_head = parseInt($(data).attr("qpro_equip").head); + custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); + custom.qpro_face = parseInt($(data).attr("qpro_equip").face); + custom.qpro_body = parseInt($(data).attr("qpro_equip").body); + custom.qpro_hand = parseInt($(data).attr("qpro_equip").head); + } + + if (!_.isNil($(data).element("achievements"))) { + // TODO:: achi_packflg, achi_packid, achi_playpack // + pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); + } + + if (hasStepUpData) { + pcdata.st_damage = parseInt($(data).attr("step").damage); + pcdata.st_defeat = parseInt($(data).attr("step").defeat); + pcdata.st_progress = parseInt($(data).attr("step").progress); + pcdata.st_is_secret = parseInt($(data).attr("step").is_secret); + pcdata.st_sp_mission = parseInt($(data).attr("step").sp_mission); + pcdata.st_dp_mission = parseInt($(data).attr("step").dp_mission); + pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); + pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); + 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 = $(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); + } + + if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); + if (!_.isNil($(data).element("orb_data"))) pcdata.orb += parseInt($(data).attr("orb_data").add_orb); + + // TODO:: fix event saving, these event savings are broken. // + if (!_.isNil($(data).element("chrono_diver"))) { + let event_data = { + play_count: parseInt($(data).attr("chrono_diver").play_count), + present_unlock: parseInt($(data).attr("chrono_diver").present_unlock), + future_unlock: parseInt($(data).attr("chrono_diver").future_unlock), + success_count_0_n: parseInt($(data).attr("chrono_diver").success_count_0_n), + success_count_0_h: parseInt($(data).attr("chrono_diver").success_count_0_h), + success_count_0_a: parseInt($(data).attr("chrono_diver").success_count_0_a), + success_count_1_n: parseInt($(data).attr("chrono_diver").success_count_1_n), + success_count_1_h: parseInt($(data).attr("chrono_diver").success_count_1_h), + success_count_1_a: parseInt($(data).attr("chrono_diver").success_count_1_a), + success_count_2_n: parseInt($(data).attr("chrono_diver").success_count_2_n), + success_count_2_h: parseInt($(data).attr("chrono_diver").success_count_2_h), + success_count_2_a: parseInt($(data).attr("chrono_diver").success_count_2_a), + success_count_3_n: parseInt($(data).attr("chrono_diver").success_count_3_n), + success_count_3_h: parseInt($(data).attr("chrono_diver").success_count_3_h), + success_count_3_a: parseInt($(data).attr("chrono_diver").success_count_3_a), + story_list: parseInt($(data).attr("chrono_diver").story_list) + }; + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "chrono_diver", + }, + { + $set: event_data, + } + ); + } + + if (!_.isNil($(data).element("boss_event_3"))) { + let boss_event_3 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "boss_event_3" }); + let event_data; + + if (_.isNil(boss_event_3)) { + event_data = { + point: parseInt($(data).attr().add_bonus_point) + } + } + else { + event_data = boss_event_3; + event_data.point += parseInt($(data).attr("boss_event_3").add_bonus_point); + } + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "boss_event_3", + }, + { + $set: event_data, + } + ); + } + } else if (version >= 27) { // lid bookkeep cid ctype ccode pcdata.rtype = parseInt($(data).attr().rtype); diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 046f36f..6d6d7d0 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -35,6 +35,7 @@ export function register() { const MultiRoute = (method: string, handler: EPR | boolean) => { R.Route(`${method}`, handler); R.Route(`IIDX21${method}`, handler); + R.Route(`IIDX22${method}`, handler); R.Route(`IIDX27${method}`, handler); R.Route(`IIDX28${method}`, handler); R.Route(`IIDX29${method}`, handler); diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index dac1271..47c1ff8 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -64,6 +64,10 @@ export interface pcdata { d_disp_judge: number; s_opstyle: number; d_opstyle: number; + s_exscore: number; // PENDUAL // + d_exscore: number; + s_largejudge: number; + d_largejudge: number; s_graph_score: number; d_graph_score: number; s_auto_scrach: number; @@ -140,6 +144,10 @@ export interface pcdata { st_dp_mplay: number; st_last_select: number; st_album: any; + st_is_secret: number; // step (PENDUAL) // + st_age_list: number; + st_is_present: number; + st_is_future: number; st_enemy_damage: number; // step (Heroic Verse) // st_progress: number; @@ -380,7 +388,88 @@ export const IIDX21_pcdata = { st_sp_mplay: 0, st_dp_mplay: 0, st_last_select: 0, - st_album: "", + st_album: null, + + achi_pack: 0, + achi_packcomp: 0, + achi_lastweekly: 0, + achi_weeklynum: 0, + achi_visitflg: 0, + achi_rivalcrush: 0, + achi_trophy: Array(20).fill("0"), + + deller: 0, + orb: 0, +} + +export const IIDX22_pcdata = { + version: 22, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + mode: 0, + pmode: 0, + rtype: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + gpos: 0, + s_sorttype: 0, + d_sorttype: 0, + s_pace: 0, + d_pace: 0, + s_gno: 0, + d_gno: 0, + s_gtype: 0, + d_gtype: 0, + s_sdlen: 0, + d_sdlen: 0, + s_sdtype: 0, + d_sdtype: 0, + s_timing: 0, + d_timing: 0, + s_notes: 0, + d_notes: 0, + s_judge: 0, + d_judge: 0, + s_judgeAdj: 0, + d_judgeAdj: 0, + s_hispeed: 0, + d_hispeed: 0, + s_liflen: 0, + d_liflen: 0, + s_disp_judge: 0, + d_disp_judge: 0, + s_opstyle: 0, + d_opstyle: 0, + s_exscore: 0, + d_exscore: 0, + s_largejudge: 0, + d_largejudge: 0, + + secret_flg1: Array(3).fill("-1"), + secret_flg2: Array(3).fill("-1"), + secret_flg3: Array(3).fill("-1"), + + sgid: -1, + dgid: -1, + + st_damage: 0, + st_defeat: 0, + st_progress: 0, + st_sp_mission: 0, + st_dp_mission: 0, + st_sp_level: 0, + st_dp_level: 0, + st_sp_mplay: 0, + st_dp_mplay: 0, + st_age_list: 0, + st_is_secret: 0, + st_is_present: 0, + st_is_future: 0, + st_album: null, achi_pack: 0, achi_packcomp: 0, diff --git a/iidx@asphyxia/pug/LDJ/21pccommon.pug b/iidx@asphyxia/pug/LDJ/21pccommon.pug index e3545f1..b76d976 100644 --- a/iidx@asphyxia/pug/LDJ/21pccommon.pug +++ b/iidx@asphyxia/pug/LDJ/21pccommon.pug @@ -1,14 +1,14 @@ IIDX21pc(status="0" expire="600") ir(beat=beat) - limit(phase="1") - boss(phase="1") - boss1(phase="1") + limit(phase="4") + boss(phase="3") + boss1(phase="4") medal(phase="1") vip_pass_black cafe(open="1") tricolettepark(open="1") - tricolettepark_skip(phase="1") + tricolettepark_skip(phase="2") deller_bonus(open="1") gumi_event newsong_another(open="1") - superstar(phase="1") + superstar(phase="2") diff --git a/iidx@asphyxia/pug/LDJ/22pccommon.pug b/iidx@asphyxia/pug/LDJ/22pccommon.pug new file mode 100644 index 0000000..a7a7949 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/22pccommon.pug @@ -0,0 +1,21 @@ +IIDX22pc(status="0" expire="600") + ir(beat=beat) + //- + cm(id="" folder="" compo="") + pre_play(phase="2") + expert(phase="2") + toho_remix(phase="2") + expert_random_secret(phase="2") + limit(phase="9") + boss(phase="3") + chrono_diver(phase="4") + qpronicle_chord(phase="3") + vip_pass_black + cc_collabo_event(phase="3") + cc_collabo_license + deller_bonus(open="1") + newsong_another(open="1") + common_timeshift_phase(phase="1") + expert_secret_full_open + eaappli_expert + eaorder diff --git a/iidx@asphyxia/pug/LDJ/22pcget.pug b/iidx@asphyxia/pug/LDJ/22pcget.pug new file mode 100644 index 0000000..74bac33 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/22pcget.pug @@ -0,0 +1,63 @@ +IIDX22pc(status="0") + 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 rtype=pcdata.rtype 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_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_exscore=pcdata.s_exscore d_exscore=pcdata.d_exscore s_largejudge=pcdata.s_largejudge d_largejudge=pcdata.d_largejudge) + spdp_rival(flg="-1") + bind_eaappli + 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 + if pcdata.sp_mlist != null + favorite + sp_mlist(__type="bin") #{pcdata.sp_mlist} + sp_clist(__type="bin") #{pcdata.sp_clist} + dp_mlist(__type="bin") #{pcdata.dp_mlist} + dp_clist(__type="bin") #{pcdata.dp_clist} + qpro_secret + head(__type="s64" __count="4") -1 -1 -1 -1 + hair(__type="s64" __count="4") -1 -1 -1 -1 + face(__type="s64" __count="4") -1 -1 -1 -1 + body(__type="s64" __count="4") -1 -1 -1 -1 + hand(__type="s64" __count="4") -1 -1 -1 -1 + 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]} + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 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]) + stepdata(step_sach="-1" step_dach="-1") + qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) + shop(name="CORE") + join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") + if pcdata.st_album != null + step(damage=pcdata.st_damage defeat=pcdata.st_defeat progress=pcdata.st_progress round=pcdata.st_round sp_mission=pcdata.st_sp_mission dp_mission=pcdata.st_dp_mission sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay age_list=pcdata.st_age_list is_secret=pcdata.st_is_secret is_present=pcdata.st_is_present is_future=pcdata.st_is_future) + album(__type="bin") #{pcdata.st_album} + //-step_assist(iidx_id iidx_id_str name hair head face body hand) + if chrono_diver != null + chrono_diver(play_count=chrono_diver.play_count present_unlock=chrono_diver.present_unlock future_unlock=chrono_diver.future_unlock success_count_0_n=chrono_diver.success_count_0_n success_count_0_h=chrono_diver.success_count_0_h success_count_0_a=chrono_diver.success_count_0_a success_count_1_n=chrono_diver.success_count_1_n success_count_1_h=chrono_diver.success_count_1_h success_count_1_a=chrono_diver.success_count_1_a success_count_2_n=chrono_diver.success_count_2_n success_count_2_h=chrono_diver.success_count_2_h success_count_2_a=chrono_diver.success_count_2_a success_count_3_n=chrono_diver.success_count_3_n success_count_3_h=chrono_diver.success_count_3_h success_count_3_a=chrono_diver.success_count_3_a story_list=chrono_diver.story_list) + //-qpronicle_chord(is_first_select_map last_select_map story_view_list is_login_bonus patona_leader patona_sub_1 patona_sub_2 rare_enemy_damage1 rare_enemy_damage2 rare_enemy_damage3 rare_enemy_damage4 rare_enemy_damage5) + patona_data(patona_no level exp affection dissatisfaction) + //-qpronicle_phase3(stairs_num flame_list lane_list map0_select map1_select map2_select map3_select map5_select map6_select is_love_scene_skip) + qpronicle_love(music_list="-1") + boss_event_3(music_list="-1" bonus_point="0") + //-chaser(phase attack exist_age summon_gate success failed damage_point boss_hp) + ues_music(__type="u32" __count="40") + achievements(pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp last_weekly=pcdata.achi_lastweekly weekly_num=pcdata.achi_weeklynum visit_flg=pcdata.achi_visitflg rival_crush=pcdata.achi_rivalcrush) + trophy(__type="s64" __count="10") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]} + old_linked_event(gakuen_list="-1" baseball_list="-1" tricolette_list="-1" cafedetran_list="-1") + pyramid(music_list="-1" item_list="-1" statue_0="0" statue_1="0" statue_2="0") + reflec_collabo(collabo_phase="2" phase1_iidx_play="10" phase2_iidx_play="10" phase1_reflec_play="10" phase2_reflec_play="10" phase1_music_list="-1" phase2_music_list="-1" phase1_iidx_item="-1" phase2_iidx_item="-1" phase1_reflec_item="-1" phase2_reflec_item="-1") + destiny_catharsis(music_bit="-1") + bemani_summer_collabo(music_bit="-1") + deller(deller=pcdata.deller rate="1") + orb_data(rest_orb=pcdata.orb) + time_sandglass(item_num="10") + present_time_sandglass(item_num="10") + sound_holic(music_list="-1" announce_list="-1") + cc_collabo_music(music_list="-1") + cc_collabo_data(customize_list="-1" new_get_customize="1" new_open_music="1" new_consume_drink="1") + beatstream_collabo(music_list="-1") + konami_stytle + is_skip(__type="bool") 1 + floor_infection(music_list="-1") diff --git a/iidx@asphyxia/pug/LDJ/30pcget.pug b/iidx@asphyxia/pug/LDJ/30pcget.pug index 1d016b2..558eee5 100644 --- a/iidx@asphyxia/pug/LDJ/30pcget.pug +++ b/iidx@asphyxia/pug/LDJ/30pcget.pug @@ -55,6 +55,7 @@ IIDX30pc(status="0") trophy(__type="s64" __count="10") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]} deller(deller=pcdata.deller rate="1") orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb) + old_linkage_secret_flg(song_battle="-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" 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" win_count="0" now_winning_streak_count="0" best_winning_streak_count="0" perfect_win_count="0" counterattack_num="0" mission_clear_num="0") diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index d767dff..a61af63 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -31,6 +31,22 @@ export function NewMidToOldMid(mid: number) { return Number(`${numberString.slice(0, 2)}${numberString.slice(3)}`); } +export function ClidToPlaySide(clid: number) { + switch (clid) { + case 0: // SPB // + case 1: + case 2: + case 3: + case 4: + return 0; // SPA // + + default: + break; + } + + return 1; +} + export function Base64toBuffer(s: string) { const base64list = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; @@ -143,9 +159,10 @@ export async function ReftoPcdata(refid: string, version: number) { return p_data; } -export async function ReftoQPRO(refid: string) { +export async function ReftoQPRO(refid: string, version: number) { const custom = await DB.FindOne(refid, { collection: "custom", + version: version, }); let qpro_data = []; From 6e8c8017e5b10c0b4f8a78cd1934108c4d8bfe9f Mon Sep 17 00:00:00 2001 From: duel0213 Date: Wed, 14 Feb 2024 08:37:31 +0900 Subject: [PATCH 06/73] IIDX: Initial support added for copula --- iidx@asphyxia/README.md | 8 +- iidx@asphyxia/handlers/grade.ts | 2 +- iidx@asphyxia/handlers/music.ts | 22 ++-- iidx@asphyxia/handlers/pc.ts | 184 +++++++++++++++++++++------ iidx@asphyxia/handlers/shop.ts | 85 ++++++++++++- iidx@asphyxia/index.ts | 8 +- iidx@asphyxia/models/pcdata.ts | 84 ++++++++++++ iidx@asphyxia/models/shop.ts | 19 +++ iidx@asphyxia/pug/LDJ/23pccommon.pug | 21 +++ iidx@asphyxia/pug/LDJ/23pcget.pug | 55 ++++++++ 10 files changed, 427 insertions(+), 61 deletions(-) create mode 100644 iidx@asphyxia/models/shop.ts create mode 100644 iidx@asphyxia/pug/LDJ/23pccommon.pug create mode 100644 iidx@asphyxia/pug/LDJ/23pcget.pug diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 24b59be..e34660f 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -1,6 +1,6 @@ # beatmaniaIIDX -Plugin Version: **v0.1.8** +Plugin Version: **v0.1.9** --- @@ -11,6 +11,7 @@ Supported Versions - beatmaniaIIDX 20 tricoro - beatmaniaIIDX 21 SPADA - beatmaniaIIDX 22 PENDUAL + - beatmaniaIIDX 23 copula - beatmaniaIIDX 27 HEROIC VERSE - beatmaniaIIDX 28 BISTROVER - beatmaniaIIDX 29 CastHour @@ -75,3 +76,8 @@ Changelogs - Fixed where old_linkage_secret_flg is missing on pc.get response (RESIDENT) - Fixed where game could crash due to invalid rival qprodata - Fixed where lift isn't saving (SPADA) + +**v0.1.9** + - Added Initial support for copula + - Event savings are broken + - Added shop.getconvention/shop.setconvention/shop.getname/shop.savename response diff --git a/iidx@asphyxia/handlers/grade.ts b/iidx@asphyxia/handlers/grade.ts index 542b28f..bc81a1f 100644 --- a/iidx@asphyxia/handlers/grade.ts +++ b/iidx@asphyxia/handlers/grade.ts @@ -21,7 +21,7 @@ export const graderaised: EPR = async (info, data, send) => { gradeId: gid, }); - if (version >= 27) cflg = parseInt($(data).attr().cstage); + if (version >= 23) cflg = parseInt($(data).attr().cstage); const isTDJ = !(_.isNil($(data).element("lightning_play_data"))); // lightning model // const hasEiseiData = (!(_.isNil($(data).element("eisei_data"))) || !(_.isNil($(data).element("eisei_grade_data"))));; diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index fe020c1..89d7834 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -228,10 +228,10 @@ export const musicappoint: EPR = async (info, data, send) => { if (_.isNaN(other_pcdata) || _.isNil(other_musicdata)) break; sdata = K.ITEM("bin", Base64toBuffer(other_musicdata[clid]), { - score: other_musicdata.esArray[clid].toString(), - pid: other_profile[1].toString(), - name: other_profile[0].toString(), - riidxid: other_profile[2].toString() + score: String(other_musicdata.esArray[clid]), + pid: String(other_profile[1]), + name: String(other_profile[0]), + riidxid: String(other_profile[2]) }); break; @@ -249,13 +249,13 @@ export const musicappoint: EPR = async (info, data, send) => { } let other_data = K.ITEM("bin", Base64toBuffer(other_musicdata[clid]), { - score: other_musicdata.esArray[clid].toString(), - achieve: other_pcdata[ClidToPlaySide(clid) + 2].toString(), - pid: other_profile[1].toString(), - name: other_profile[0].toString(), - riidxid: other_profile[2].toString(), - option: other_musicdata.optArray[clid].toString(), // CastHour // - option2: other_musicdata.opt2Array[clid].toString(), + score: String(other_musicdata.esArray[clid]), + achieve: String(other_pcdata[ClidToPlaySide(clid) + 2]), + pid: String(other_profile[1]), + name: String(other_profile[0]), + riidxid: String(other_profile[2]), + option: String(other_musicdata.optArray[clid]), // CastHour // + option2: String(other_musicdata.opt2Array[clid]), }); sdata = { diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 3bd48d5..372032d 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -1,4 +1,4 @@ -import { pcdata, KDZ_pcdata, IIDX27_pcdata, IIDX28_pcdata, IIDX29_pcdata, IIDX30_pcdata, JDZ_pcdata, LDJ_pcdata, IIDX21_pcdata, IIDX22_pcdata } from "../models/pcdata"; +import { pcdata, KDZ_pcdata, IIDX27_pcdata, IIDX28_pcdata, IIDX29_pcdata, IIDX30_pcdata, JDZ_pcdata, LDJ_pcdata, IIDX21_pcdata, IIDX22_pcdata, IIDX23_pcdata } from "../models/pcdata"; import { grade } from "../models/grade"; import { custom, default_custom } from "../models/custom"; import { IDtoCode, IDtoRef, Base64toBuffer, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter } from "../util"; @@ -99,9 +99,8 @@ export const pccommon: EPR = async (info, data, send) => { movie_upload: U.GetConfig("MovieUpload"), }); } - else { - return send.deny(); - } + + return send.deny(); }; export const pcreg: EPR = async (info, data, send) => { @@ -129,6 +128,9 @@ export const pcreg: EPR = async (info, data, send) => { case 22: pcdata = IIDX22_pcdata; break; + case 23: + pcdata = IIDX23_pcdata; + break; case 27: pcdata = IIDX27_pcdata; lightning_playdata = lm_playdata; @@ -378,41 +380,48 @@ export const pcget: EPR = async (info, data, send) => { boss1 = null, chrono_diver = null, evtArray = [], evtArray2 = []; - if (version == 21 || version == 22) { - if (!_.isNil(pcdata.sp_mlist)) { - pcdata.sp_mlist = Base64toBuffer(pcdata.sp_mlist).toString("hex"); - pcdata.sp_clist = Base64toBuffer(pcdata.sp_clist).toString("hex"); - pcdata.dp_mlist = Base64toBuffer(pcdata.dp_mlist).toString("hex"); - pcdata.dp_clist = Base64toBuffer(pcdata.dp_clist).toString("hex"); - } - if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).toString("hex"); - - if (version == 21) { - 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.durability)) boss1.durability = Base64toBuffer(boss1.durability).toString("hex"); - } else if (version == 22) { - chrono_diver = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "chrono_diver" }); - } - } - else { - let event_1 = await DB.Find(refid, { collection: "event_1", version: version }); - let event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version }); - - if (event_1.length > 0) { - for (let evt of event_1) { - evtArray.push(evt); + switch (version) { + case 21: + case 22: + case 23: + if (!_.isNil(pcdata.sp_mlist)) { + pcdata.sp_mlist = Base64toBuffer(pcdata.sp_mlist).toString("hex"); + pcdata.sp_clist = Base64toBuffer(pcdata.sp_clist).toString("hex"); + pcdata.dp_mlist = Base64toBuffer(pcdata.dp_mlist).toString("hex"); + pcdata.dp_clist = Base64toBuffer(pcdata.dp_clist).toString("hex"); } - } - if (event_1s.length > 0) { - for (let evt of event_1s) { - evtArray2.push(evt); + if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).toString("hex"); + else if (!_.isNil(pcdata.st_tokimeki)) pcdata.st_tokimeki = Base64toBuffer(pcdata.st_tokimeki).toString("hex"); + + if (version == 21) { + 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.durability)) boss1.durability = Base64toBuffer(boss1.durability).toString("hex"); + } else if (version == 22) { + chrono_diver = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "chrono_diver" }); } - } + break; + + default: + let event_1 = await DB.Find(refid, { collection: "event_1", version: version }); + let event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version }); + + if (event_1.length > 0) { + for (let evt of event_1) { + evtArray.push(evt); + } + } + + if (event_1s.length > 0) { + for (let evt of event_1s) { + evtArray2.push(evt); + } + } + break; } if (version >= 30 && lm_music_memo_new.length > 0) { @@ -579,6 +588,9 @@ export const pctakeover: EPR = async (info, data, send) => { case 22: pcdata = IIDX22_pcdata; break; + case 23: + pcdata = IIDX23_pcdata; + break; case 27: pcdata = IIDX27_pcdata; lightning_playdata = lm_playdata; @@ -1518,6 +1530,104 @@ export const pcsave: EPR = async (info, data, send) => { ); } } + else if (version == 23) { + pcdata.rtype = parseInt($(data).attr().rtype); + pcdata.sach = parseInt($(data).attr().s_achi); + pcdata.dach = parseInt($(data).attr().d_achi); + pcdata.sp_opt = parseInt($(data).attr().sp_opt); + pcdata.dp_opt = parseInt($(data).attr().dp_opt); + pcdata.dp_opt2 = parseInt($(data).attr().dp_opt2); + pcdata.gpos = parseInt($(data).attr().gpos); + pcdata.s_sorttype = parseInt($(data).attr().s_sorttype); + pcdata.d_sorttype = parseInt($(data).attr().d_sorttype); + pcdata.s_disp_judge = parseInt($(data).attr().s_disp_judge); + pcdata.d_disp_judge = parseInt($(data).attr().d_disp_judge); + pcdata.s_pace = parseInt($(data).attr().s_pace); + pcdata.d_pace = parseInt($(data).attr().d_pace); + pcdata.s_gno = parseInt($(data).attr().s_gno); + pcdata.d_gno = parseInt($(data).attr().d_gno); + pcdata.s_gtype = parseInt($(data).attr().s_gtype); + pcdata.d_gtype = parseInt($(data).attr().d_gtype); + pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); + pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); + pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); + pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); + pcdata.s_notes = parseFloat($(data).attr().s_notes); + pcdata.d_notes = parseFloat($(data).attr().d_notes); + pcdata.s_judge = parseInt($(data).attr().s_judge); + pcdata.d_judge = parseInt($(data).attr().d_judge); + pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); + pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); + pcdata.s_hispeed = parseFloat($(data).attr().s_hispeed); + pcdata.d_hispeed = parseFloat($(data).attr().d_hispeed); + pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); + pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); + pcdata.s_exscore = parseInt($(data).attr().s_exscore); + pcdata.d_exscore = parseInt($(data).attr().d_exscore); + pcdata.s_largejudge = parseInt($(data).attr().s_largejudge); + pcdata.d_largejudge = parseInt($(data).attr().d_largejudge); + + if (!_.isNil($(data).attr().s_lift)) pcdata.s_liflen = parseInt($(data).attr().s_lift); + if (!_.isNil($(data).attr().d_lift)) pcdata.s_liflen = parseInt($(data).attr().d_lift); + + if (!_.isNil($(data).element("secret"))) { + pcdata.secret_flg1 = $(data).element("secret").bigints("flg1").map(String); + pcdata.secret_flg2 = $(data).element("secret").bigints("flg2").map(String); + pcdata.secret_flg3 = $(data).element("secret").bigints("flg3").map(String); + } + + if (!_.isNil($(data).element("favorite"))) { + 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"))) { + custom.qpro_secret_head = $(data).element("qpro_secret").bigints("head").map(String); + custom.qpro_secret_hair = $(data).element("qpro_secret").bigints("hair").map(String); + custom.qpro_secret_face = $(data).element("qpro_secret").bigints("face").map(String); + custom.qpro_secret_body = $(data).element("qpro_secret").bigints("body").map(String); + custom.qpro_secret_hand = $(data).element("qpro_secret").bigints("hand").map(String); + } + + if (!_.isNil($(data).element("qpro_equip"))) { + custom.qpro_head = parseInt($(data).attr("qpro_equip").head); + custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); + custom.qpro_face = parseInt($(data).attr("qpro_equip").face); + custom.qpro_body = parseInt($(data).attr("qpro_equip").body); + custom.qpro_hand = parseInt($(data).attr("qpro_equip").head); + } + + if (!_.isNil($(data).element("achievements"))) { + // TODO:: achi_packflg, achi_packid, achi_playpack // + pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); + } + + if (hasStepUpData) { + pcdata.st_friendship = parseInt($(data).attr("step").friendship); + pcdata.st_progress = parseInt($(data).attr("step").progress); + pcdata.st_station_clear = parseInt($(data).attr("step").station_clear); + pcdata.st_station_play = parseInt($(data).attr("step").station_play); + pcdata.st_sp_mission = parseInt($(data).attr("step").sp_mission); + pcdata.st_dp_mission = parseInt($(data).attr("step").dp_mission); + pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); + pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); + 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 = $(data).buffer("step").toString("base64"); // TODO:: verify // + } + + if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); + if (!_.isNil($(data).element("orb_data"))) pcdata.orb += parseInt($(data).attr("orb_data").add_orb); + + // TODO:: fix event saving, these event savings are broken. // + } else if (version >= 27) { // lid bookkeep cid ctype ccode pcdata.rtype = parseInt($(data).attr().rtype); @@ -2057,7 +2167,3 @@ export const pcdrawlanegacha: EPR = async (info, data, send) => { }), }); }; - -export const pcconsumelanegacha: EPR = async (info, data, send) => { - return send.success(); -}; diff --git a/iidx@asphyxia/handlers/shop.ts b/iidx@asphyxia/handlers/shop.ts index 7928a78..fa4c869 100644 --- a/iidx@asphyxia/handlers/shop.ts +++ b/iidx@asphyxia/handlers/shop.ts @@ -1,20 +1,93 @@ -export const shopgetname: EPR = async (info, data, send) => { +import { convention_data, shop_data } from "../models/shop"; +import { GetVersion } from "../util"; + +export const shopgetname: EPR = async (info, data, send) => { + const shop_data = await DB.FindOne({ + collection: "shop_data", + }); + + if (_.isNil(shop_data)) { + return send.object( + K.ATTR({ + status: "0", + opname: "CORE", + pid: "57", + cls_opt: "0", + hr: "0", + mi: "0", + }) + ); + } + return send.object( K.ATTR({ status: "0", - opname: "CORE", - pid: "57", - cls_opt: "0", + opname: shop_data.opname, + pid: String(shop_data.pid), + cls_opt: String(shop_data.cls_opt), hr: "0", mi: "0", }) ); }; +export const shopsavename: EPR = async (info, data, send) => { + await DB.Upsert( + { + collection: "shop_data", + }, + { + $set: { + opname: $(data).attr().opname, + pid: parseInt($(data).attr().pid), + cls_opt: parseInt($(data).attr().cls_opt), + }, + } + ); + + return send.success(); +}; + export const shopgetconvention: EPR = async (info, data, send) => { - return send.deny(); + const version = GetVersion(info); + + const convention_data = await DB.FindOne({ + collection: "shop_convention", + version: version, + }); + if (_.isNil(convention_data)) return send.deny(); + + return send.object( + K.ATTR({ + music_0: String(convention_data.music_0), + music_1: String(convention_data.music_1), + music_2: String(convention_data.music_2), + music_3: String(convention_data.music_3), + }, + { + valid: K.ITEM("bool", convention_data.valid), + }) + ); }; export const shopsetconvention: EPR = async (info, data, send) => { - return send.deny(); + const version = GetVersion(info); + + await DB.Upsert( + { + collection: "shop_convention", + version: version, + }, + { + $set: { + music_0: $(data).number("music_0"), + music_1: $(data).number("music_1"), + music_2: $(data).number("music_2"), + music_3: $(data).number("music_3"), + valid: $(data).bool("valid"), + }, + } + ); + + return send.success(); }; diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 6d6d7d0..eacee3e 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -1,5 +1,5 @@ -import { pccommon, pcreg, pcget, pcgetname, pctakeover, pcvisit, pcsave, pcoldget, pcgetlanegacha, pcconsumelanegacha, pcdrawlanegacha, pcshopregister } from "./handlers/pc"; -import { shopgetname, shopgetconvention, shopsetconvention } from "./handlers/shop"; +import { pccommon, pcreg, pcget, pcgetname, pctakeover, pcvisit, pcsave, pcoldget, pcgetlanegacha, pcdrawlanegacha, pcshopregister } from "./handlers/pc"; +import { shopgetname, shopsavename, shopgetconvention, shopsetconvention } from "./handlers/shop"; import { musicreg, musicgetrank, musicappoint, musicarenacpu } from "./handlers/music"; import { graderaised } from "./handlers/grade"; import { gssysteminfo } from "./handlers/gamesystem"; @@ -36,6 +36,7 @@ export function register() { R.Route(`${method}`, handler); R.Route(`IIDX21${method}`, handler); R.Route(`IIDX22${method}`, handler); + R.Route(`IIDX23${method}`, handler); R.Route(`IIDX27${method}`, handler); R.Route(`IIDX28${method}`, handler); R.Route(`IIDX29${method}`, handler); @@ -53,9 +54,10 @@ export function register() { MultiRoute("pc.shopregister", pcshopregister); MultiRoute("pc.getLaneGachaTicket", pcgetlanegacha); MultiRoute("pc.drawLaneGacha", pcdrawlanegacha); - MultiRoute("pc.consumeLaneGachaTicket", pcconsumelanegacha); + MultiRoute("pc.consumeLaneGachaTicket", true); MultiRoute("shop.getname", shopgetname); + MultiRoute("shop.savename", shopsavename); MultiRoute("shop.getconvention", shopgetconvention); MultiRoute("shop.setconvention", shopsetconvention); diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 47c1ff8..091a460 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -148,6 +148,11 @@ export interface pcdata { st_age_list: number; st_is_present: number; st_is_future: number; + st_friendship: number; // step (copula) // + st_station_clear: number; + st_station_play: number; + st_mission_gauge: number; + st_tokimeki: any; st_enemy_damage: number; // step (Heroic Verse) // st_progress: number; @@ -483,6 +488,85 @@ export const IIDX22_pcdata = { orb: 0, } +export const IIDX23_pcdata = { + version: 23, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + mode: 0, + pmode: 0, + rtype: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + gpos: 0, + s_sorttype: 0, + d_sorttype: 0, + s_pace: 0, + d_pace: 0, + s_gno: 0, + d_gno: 0, + s_gtype: 0, + d_gtype: 0, + s_sdlen: 0, + d_sdlen: 0, + s_sdtype: 0, + d_sdtype: 0, + s_timing: 0, + d_timing: 0, + s_notes: 0, + d_notes: 0, + s_judge: 0, + d_judge: 0, + s_judgeAdj: 0, + d_judgeAdj: 0, + s_hispeed: 0, + d_hispeed: 0, + s_liflen: 0, + d_liflen: 0, + s_disp_judge: 0, + d_disp_judge: 0, + s_opstyle: 0, + d_opstyle: 0, + s_exscore: 0, + d_exscore: 0, + s_largejudge: 0, + d_largejudge: 0, + + secret_flg1: Array(3).fill("-1"), + secret_flg2: Array(3).fill("-1"), + secret_flg3: Array(3).fill("-1"), + + sgid: -1, + dgid: -1, + + st_friendship: 0, + st_progress: 0, + st_station_clear: 0, + st_station_play: 0, + st_sp_mission: 0, + st_dp_mission: 0, + st_sp_level: 0, + st_dp_level: 0, + st_sp_mplay: 0, + st_dp_mplay: 0, + st_mission_gauge: 0, + st_tokimeki: null, + + achi_pack: 0, + achi_packcomp: 0, + achi_lastweekly: 0, + achi_weeklynum: 0, + achi_visitflg: 0, + achi_rivalcrush: 0, + achi_trophy: Array(20).fill("0"), + + deller: 0, + orb: 0, +} + export const IIDX27_pcdata = { version: 27, diff --git a/iidx@asphyxia/models/shop.ts b/iidx@asphyxia/models/shop.ts new file mode 100644 index 0000000..afb1320 --- /dev/null +++ b/iidx@asphyxia/models/shop.ts @@ -0,0 +1,19 @@ +export interface shop_data { + collection: "shop_data"; + + opname: string; + pid: number; + cls_opt: number; +} + +export interface convention_data { + collection: "shop_convention"; + + version: number; + + music_0: number; + music_1: number; + music_2: number; + music_3: number; + valid: boolean; +} diff --git a/iidx@asphyxia/pug/LDJ/23pccommon.pug b/iidx@asphyxia/pug/LDJ/23pccommon.pug new file mode 100644 index 0000000..51cdafd --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/23pccommon.pug @@ -0,0 +1,21 @@ +IIDX23pc(status="0" expire="600") + ir(beat=beat) + //- + cm(id="" folder="" compo="") + expert(phase="1") + expert_random_secret(phase="2") + boss(phase="3") + event1_phase(phase="1") + event2_phase(phase="2") + extra_boss_event(phase="30") + vip_pass_black + event1_rainbow_ticket + deller_bonus(open="1") + newsong_another(open="1") + expert_secret_full_open + remocon_collabo + ravemania_collabo + djlevel_result + virtual_coin(phase="1") + reflec_volzza_collabo + bemani_summer2016(phase="2") diff --git a/iidx@asphyxia/pug/LDJ/23pcget.pug b/iidx@asphyxia/pug/LDJ/23pcget.pug new file mode 100644 index 0000000..e83b729 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/23pcget.pug @@ -0,0 +1,55 @@ +IIDX23pc(status="0") + 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 rtype=pcdata.rtype 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_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_exscore=pcdata.s_exscore d_exscore=pcdata.d_exscore s_largejudge=pcdata.s_largejudge d_largejudge=pcdata.d_largejudge) + 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 + if pcdata.sp_mlist != null + favorite + sp_mlist(__type="bin") #{pcdata.sp_mlist} + sp_clist(__type="bin") #{pcdata.sp_clist} + dp_mlist(__type="bin") #{pcdata.dp_mlist} + dp_clist(__type="bin") #{pcdata.dp_clist} + qpro_secret + head(__type="s64" __count="4") -1 -1 -1 -1 + hair(__type="s64" __count="4") -1 -1 -1 -1 + face(__type="s64" __count="4") -1 -1 -1 -1 + body(__type="s64" __count="4") -1 -1 -1 -1 + hand(__type="s64" __count="4") -1 -1 -1 -1 + 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]} + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 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]) + stepdata(step_sach="-1" step_dach="-1") + qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) + shop(name="CORE") + join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") + if pcdata.st_tokimeki != null + step(friendship=pcdata.st_friendship progress=pcdata.st_progress station_clear=pcdata.st_station_clear station_play=pcdata.st_station_play sp_mission=pcdata.st_sp_mission dp_mission=pcdata.st_dp_mission sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay mission_gauge=pcdata.st_mission_gauge) + tokimeki(__type="bin") #{pcdata.st_tokimeki} + //-step_assist(iidx_id iidx_id_str name hair head face body hand) + qpronicle_love(music_list="-1") + achievements(pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp last_weekly=pcdata.achi_lastweekly weekly_num=pcdata.achi_weeklynum visit_flg=pcdata.achi_visitflg rival_crush=pcdata.achi_rivalcrush) + trophy(__type="s64" __count="10") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]} + //- + event1_data(point_map_0 point_map_1 point_map_2 point_map_3 point_map_4 last_map hold_point rank_point tips_list gift_point) + event1_assist(iidx_id iidx_id_str name hair head face body hand) + event2_data(play_num now_area now_note_grade stop_area_time) + event2_area_data(area_no area_play normal_point hyper_point another_point) + onemore_data(defeat_0 defeat_1 defeat_2 defeat_3 defeat_4 defeat_5 challenge_num_n challenge_num_h challenge_num_a) + reflec_collabo(phase1_music_list="-1" phase2_music_list="-1") + destiny_catharsis(music_bit="-1") + bemani_summer_collabo(music_bit="-1") + deller(deller=pcdata.deller rate="1") + orb_data(rest_orb=pcdata.orb) + rainbow_ticket(item_num="10") + beatstream_collabo(music_list="-1") + floor_infection(music_list="-1") + reflec_volzza_collabo(iidx_music_list="-1" reflec_music_list="-1") From 998589c21b2f3505c60b633dc12866e2b25162a0 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Wed, 14 Feb 2024 11:11:49 +0900 Subject: [PATCH 07/73] IIDX: Initial support added for SINOBUZ ~ Rootage - Converted from asphyxia_route_public --- iidx@asphyxia/README.md | 9 +- iidx@asphyxia/handlers/gamesystem.ts | 6 +- iidx@asphyxia/handlers/music.ts | 35 +- iidx@asphyxia/handlers/pc.ts | 189 +++++- iidx@asphyxia/index.ts | 3 + iidx@asphyxia/models/pcdata.ts | 292 +++++++++- iidx@asphyxia/pug/LDJ/24pccommon.pug | 6 + iidx@asphyxia/pug/LDJ/24pcget.pug | 75 +++ iidx@asphyxia/pug/LDJ/24systeminfo.pug | 765 +++++++++++++++++++++++++ iidx@asphyxia/pug/LDJ/25pccommon.pug | 6 + iidx@asphyxia/pug/LDJ/25pcget.pug | 75 +++ iidx@asphyxia/pug/LDJ/25systeminfo.pug | 765 +++++++++++++++++++++++++ iidx@asphyxia/pug/LDJ/26pccommon.pug | 6 + iidx@asphyxia/pug/LDJ/26pcget.pug | 80 +++ iidx@asphyxia/pug/LDJ/26systeminfo.pug | 765 +++++++++++++++++++++++++ iidx@asphyxia/pug/LDJ/27pccommon.pug | 2 +- iidx@asphyxia/pug/LDJ/28pccommon.pug | 2 +- iidx@asphyxia/pug/LDJ/29pccommon.pug | 2 +- iidx@asphyxia/pug/LDJ/30pccommon.pug | 2 +- 19 files changed, 3056 insertions(+), 29 deletions(-) create mode 100644 iidx@asphyxia/pug/LDJ/24pccommon.pug create mode 100644 iidx@asphyxia/pug/LDJ/24pcget.pug create mode 100644 iidx@asphyxia/pug/LDJ/24systeminfo.pug create mode 100644 iidx@asphyxia/pug/LDJ/25pccommon.pug create mode 100644 iidx@asphyxia/pug/LDJ/25pcget.pug create mode 100644 iidx@asphyxia/pug/LDJ/25systeminfo.pug create mode 100644 iidx@asphyxia/pug/LDJ/26pccommon.pug create mode 100644 iidx@asphyxia/pug/LDJ/26pcget.pug create mode 100644 iidx@asphyxia/pug/LDJ/26systeminfo.pug diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index e34660f..7ac9fe4 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -1,6 +1,6 @@ # beatmaniaIIDX -Plugin Version: **v0.1.9** +Plugin Version: **v0.1.10** --- @@ -12,6 +12,9 @@ Supported Versions - beatmaniaIIDX 21 SPADA - beatmaniaIIDX 22 PENDUAL - beatmaniaIIDX 23 copula + - beatmaniaIIDX 24 SINOBUZ + - beatmaniaIIDX 25 CANNON BALLERS + - beatmaniaIIDX 26 Rootage - beatmaniaIIDX 27 HEROIC VERSE - beatmaniaIIDX 28 BISTROVER - beatmaniaIIDX 29 CastHour @@ -81,3 +84,7 @@ Changelogs - Added Initial support for copula - Event savings are broken - Added shop.getconvention/shop.setconvention/shop.getname/shop.savename response + +**v0.1.10** + - Added Initial support for SINOBUZ ~ Rootage + - Converted from asphyxia_route_public diff --git a/iidx@asphyxia/handlers/gamesystem.ts b/iidx@asphyxia/handlers/gamesystem.ts index 47e339d..73658f5 100644 --- a/iidx@asphyxia/handlers/gamesystem.ts +++ b/iidx@asphyxia/handlers/gamesystem.ts @@ -3,9 +3,7 @@ import { GetVersion } from "../util"; export const gssysteminfo: EPR = async (info, data, send) => { const version = GetVersion(info); - if (version >= 27) { - return send.pugFile(`pug/LDJ/${version}systeminfo.pug`); - } + if (version < 24) return send.success(); - return send.success(); + return send.pugFile(`pug/LDJ/${version}systeminfo.pug`); }; diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 89d7834..fae6da0 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -127,18 +127,31 @@ export const musicgetrank: EPR = async (info, data, send) => { }); if (score_top.length > 0) { - score_top.forEach((res) => { - top.push({ - "@attr": ({ - name0: res.names[0], - name1: res.names[1], - name2: res.names[2], - name3: res.names[3], - name4: res.names[4], - }), - detail: K.ARRAY("s16", [res.mid, ...res.clflgs, ...res.scores]) + if (version >= 27) { + score_top.forEach((res) => { + top.push({ + "@attr": ({ + name0: res.names[0], + name1: res.names[1], + name2: res.names[2], + name3: res.names[3], + name4: res.names[4], + }), + detail: K.ARRAY("s16", [res.mid, ...res.clflgs, ...res.scores]) + }); }); - }); + } else { + score_top.forEach((res) => { + top.push({ + "@attr": ({ + name0: res.names[1], + name1: res.names[2], + name2: res.names[3], + }), + detail: K.ARRAY("s16", [res.mid, ...indices.map(i => res.clflgs[i]), ...indices.map(i => res.scores[i])]) + }); + }); + } } return send.object({ diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 372032d..375310e 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -1,4 +1,4 @@ -import { pcdata, KDZ_pcdata, IIDX27_pcdata, IIDX28_pcdata, IIDX29_pcdata, IIDX30_pcdata, JDZ_pcdata, LDJ_pcdata, IIDX21_pcdata, IIDX22_pcdata, IIDX23_pcdata } from "../models/pcdata"; +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 } from "../models/pcdata"; import { grade } from "../models/grade"; import { custom, default_custom } from "../models/custom"; import { IDtoCode, IDtoRef, Base64toBuffer, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter } from "../util"; @@ -97,6 +97,7 @@ export const pccommon: EPR = async (info, data, send) => { return send.pugFile(`pug/LDJ/${version}pccommon.pug`, { beat: U.GetConfig("BeatPhase"), movie_upload: U.GetConfig("MovieUpload"), + system_voice_phase: Math.floor(Math.random() * 8), }); } @@ -131,6 +132,15 @@ export const pcreg: EPR = async (info, data, send) => { case 23: pcdata = IIDX23_pcdata; break; + case 24: + pcdata = IIDX24_pcdata; + break; + case 25: + pcdata = IIDX25_pcdata; + break; + case 26: + pcdata = IIDX26_pcdata; + break; case 27: pcdata = IIDX27_pcdata; lightning_playdata = lm_playdata; @@ -539,9 +549,8 @@ export const pcget: EPR = async (info, data, send) => { // TODO:: migration (oldget/getname/takeover) // export const pcoldget: EPR = async (info, data, send) => { - const version = GetVersion(info) - 1; const refid = $(data).attr().rid; - const pcdata = await DB.FindOne(refid, { collection: "pcdata", version: version }); + const pcdata = await DB.FindOne(refid, { collection: "pcdata" }); // version check removed // if (_.isNil(pcdata)) return send.deny(); @@ -591,6 +600,15 @@ export const pctakeover: EPR = async (info, data, send) => { case 23: pcdata = IIDX23_pcdata; break; + case 24: + pcdata = IIDX24_pcdata; + break; + case 25: + pcdata = IIDX25_pcdata; + break; + case 26: + pcdata = IIDX26_pcdata; + break; case 27: pcdata = IIDX27_pcdata; lightning_playdata = lm_playdata; @@ -1628,6 +1646,171 @@ export const pcsave: EPR = async (info, data, send) => { // TODO:: fix event saving, these event savings are broken. // } + else if (version == 24) { + pcdata.sach = parseInt($(data).attr().s_achi); + pcdata.dach = parseInt($(data).attr().d_achi); + + pcdata.d_disp_judge = parseInt($(data).attr().d_disp_judge); + pcdata.d_exscore = parseInt($(data).attr().d_exscore); + pcdata.d_gno = parseInt($(data).attr().d_gno); + pcdata.d_graph_score = parseInt($(data).attr().d_graph_score); + pcdata.d_gtype = parseInt($(data).attr().d_gtype); + pcdata.d_hispeed = parseFloat($(data).attr().d_hispeed); + pcdata.d_judge = parseInt($(data).attr().d_judge); + pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); + pcdata.d_notes = parseFloat($(data).attr().d_notes); + pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); + pcdata.d_pace = parseInt($(data).attr().d_pace); + pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); + pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); + pcdata.d_sorttype = parseInt($(data).attr().d_sorttype); + pcdata.d_timing = parseInt($(data).attr().d_timing); + pcdata.dp_opt = parseInt($(data).attr().dp_opt); + pcdata.dp_opt2 = parseInt($(data).attr().dp_opt2); + pcdata.gpos = parseInt($(data).attr().gpos); + pcdata.mode = parseInt($(data).attr().mode); + pcdata.pmode = parseInt($(data).attr().pmode); + pcdata.rtype = parseInt($(data).attr().rtype); + pcdata.s_disp_judge = parseInt($(data).attr().s_disp_judge); + pcdata.s_exscore = parseInt($(data).attr().s_exscore); + pcdata.s_gno = parseInt($(data).attr().s_gno); + pcdata.s_graph_score = parseInt($(data).attr().s_graph_score); + pcdata.s_gtype = parseInt($(data).attr().s_gtype); + pcdata.s_hispeed = parseFloat($(data).attr().s_hispeed); + pcdata.s_judge = parseInt($(data).attr().s_judge); + pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); + pcdata.s_notes = parseFloat($(data).attr().s_notes); + pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); + pcdata.s_pace = parseInt($(data).attr().s_pace); + pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); + pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); + pcdata.s_sorttype = parseInt($(data).attr().s_sorttype); + pcdata.s_timing = parseInt($(data).attr().s_timing); + pcdata.sp_opt = parseInt($(data).attr().sp_opt); + + if (cltype == 0) { + pcdata.s_liflen = parseInt($(data).attr().s_lift); + } else { + pcdata.d_liflen = parseInt($(data).attr().d_lift); + } + + if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); + } + else if (version == 25) { + pcdata.sach = parseInt($(data).attr().s_achi); + pcdata.dach = parseInt($(data).attr().d_achi); + + pcdata.d_auto_scrach = parseInt($(data).attr().d_auto_scrach); + pcdata.d_camera_layout = parseInt($(data).attr().d_camera_layout); + pcdata.d_disp_judge = parseInt($(data).attr().d_disp_judge); + pcdata.d_exscore = parseInt($(data).attr().d_exscore); + pcdata.d_gauge_disp = parseInt($(data).attr().d_gauge_disp); + pcdata.d_gno = parseInt($(data).attr().d_gno); + pcdata.d_graph_score = parseInt($(data).attr().d_graph_score); + pcdata.d_gtype = parseInt($(data).attr().d_gtype); + pcdata.d_hispeed = parseFloat($(data).attr().d_hispeed); + pcdata.d_judge = parseInt($(data).attr().d_judge); + pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); + pcdata.d_lane_brignt = parseInt($(data).attr().d_lane_brignt); + pcdata.d_notes = parseFloat($(data).attr().d_notes); + pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); + pcdata.d_pace = parseInt($(data).attr().d_pace); + pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); + pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); + pcdata.d_sorttype = parseInt($(data).attr().d_sorttype); + pcdata.d_timing = parseInt($(data).attr().d_timing); + pcdata.dp_opt = parseInt($(data).attr().dp_opt); + pcdata.dp_opt2 = parseInt($(data).attr().dp_opt2); + pcdata.gpos = parseInt($(data).attr().gpos); + pcdata.mode = parseInt($(data).attr().mode); + pcdata.pmode = parseInt($(data).attr().pmode); + pcdata.rtype = parseInt($(data).attr().rtype); + pcdata.s_auto_scrach = parseInt($(data).attr().s_auto_scrach); + pcdata.s_camera_layout = parseInt($(data).attr().s_camera_layout); + pcdata.s_disp_judge = parseInt($(data).attr().s_disp_judge); + pcdata.s_exscore = parseInt($(data).attr().s_exscore); + pcdata.s_gauge_disp = parseInt($(data).attr().s_gauge_disp); + pcdata.s_gno = parseInt($(data).attr().s_gno); + pcdata.s_graph_score = parseInt($(data).attr().s_graph_score); + pcdata.s_gtype = parseInt($(data).attr().s_gtype); + pcdata.s_hispeed = parseFloat($(data).attr().s_hispeed); + pcdata.s_judge = parseInt($(data).attr().s_judge); + pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); + pcdata.s_lane_brignt = parseInt($(data).attr().s_lane_brignt); + pcdata.s_notes = parseFloat($(data).attr().s_notes); + pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); + pcdata.s_pace = parseInt($(data).attr().s_pace); + pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); + pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); + pcdata.s_sorttype = parseInt($(data).attr().s_sorttype); + pcdata.s_timing = parseInt($(data).attr().s_timing); + pcdata.sp_opt = parseInt($(data).attr().sp_opt); + + if (cltype == 0) { + pcdata.s_liflen = parseInt($(data).attr().s_lift); + } else { + pcdata.d_liflen = parseInt($(data).attr().d_lift); + } + + if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); + } + else if (version == 26) { + pcdata.rtype = parseInt($(data).attr().rtype); + pcdata.sach = parseInt($(data).attr().s_achi); + pcdata.dach = parseInt($(data).attr().d_achi); + pcdata.sp_opt = parseInt($(data).attr().sp_opt); + pcdata.dp_opt = parseInt($(data).attr().dp_opt); + pcdata.dp_opt2 = parseInt($(data).attr().dp_opt2); + pcdata.gpos = parseInt($(data).attr().gpos); + pcdata.s_sorttype = parseInt($(data).attr().s_sorttype); + pcdata.d_sorttype = parseInt($(data).attr().d_sorttype); + pcdata.s_disp_judge = parseInt($(data).attr().s_disp_judge); + pcdata.d_disp_judge = parseInt($(data).attr().d_disp_judge); + pcdata.s_pace = parseInt($(data).attr().s_pace); + pcdata.d_pace = parseInt($(data).attr().d_pace); + pcdata.s_gno = parseInt($(data).attr().s_gno); + pcdata.d_gno = parseInt($(data).attr().d_gno); + pcdata.s_sub_gno = parseInt($(data).attr().s_sub_gno); + pcdata.d_sub_gno = parseInt($(data).attr().d_sub_gno); + pcdata.s_gtype = parseInt($(data).attr().s_gtype); + pcdata.d_gtype = parseInt($(data).attr().d_gtype); + pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); + pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); + pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); + pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); + pcdata.s_notes = parseFloat($(data).attr().s_notes); + pcdata.d_notes = parseFloat($(data).attr().d_notes); + pcdata.s_judge = parseInt($(data).attr().s_judge); + pcdata.d_judge = parseInt($(data).attr().d_judge); + pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); + pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); + pcdata.s_hispeed = parseFloat($(data).attr().s_hispeed); + pcdata.d_hispeed = parseFloat($(data).attr().d_hispeed); + pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); + pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); + pcdata.s_graph_score = parseInt($(data).attr().s_graph_score); + pcdata.d_graph_score = parseInt($(data).attr().d_graph_score); + pcdata.s_auto_scrach = parseInt($(data).attr().s_auto_scrach); + pcdata.d_auto_scrach = parseInt($(data).attr().d_auto_scrach); + pcdata.s_gauge_disp = parseInt($(data).attr().s_gauge_disp); + pcdata.d_gauge_disp = parseInt($(data).attr().d_gauge_disp); + pcdata.s_lane_brignt = parseInt($(data).attr().s_lane_brignt); + pcdata.d_lane_brignt = parseInt($(data).attr().d_lane_brignt); + pcdata.s_camera_layout = parseInt($(data).attr().s_camera_layout); + pcdata.d_camera_layout = parseInt($(data).attr().d_camera_layout); + pcdata.s_ghost_score = parseInt($(data).attr().s_ghost_score); + pcdata.d_ghost_score = parseInt($(data).attr().d_ghost_score); + pcdata.s_tsujigiri_disp = parseInt($(data).attr().s_tsujigiri_disp); + pcdata.d_tsujigiri_disp = parseInt($(data).attr().d_tsujigiri_disp); + + if (cltype == 0) { + pcdata.s_liflen = parseInt($(data).attr().s_lift); + } else { + pcdata.d_liflen = parseInt($(data).attr().d_lift); + } + + if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); + } else if (version >= 27) { // lid bookkeep cid ctype ccode pcdata.rtype = parseInt($(data).attr().rtype); diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index eacee3e..122b592 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -37,6 +37,9 @@ export function register() { R.Route(`IIDX21${method}`, handler); R.Route(`IIDX22${method}`, handler); R.Route(`IIDX23${method}`, handler); + R.Route(`IIDX24${method}`, handler); + R.Route(`IIDX25${method}`, handler); + R.Route(`IIDX26${method}`, handler); R.Route(`IIDX27${method}`, handler); R.Route(`IIDX28${method}`, handler); R.Route(`IIDX29${method}`, handler); diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 091a460..6090029 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -126,14 +126,14 @@ export interface pcdata { st_dp_ach: number; st_dp_dif: number; - st_sp_hdpt: number; // step (tricoro) // + st_sp_hdpt: number; // tricoro // st_dp_hdpt: number; st_sp_round: number; st_dp_round: number; st_review: number; st_help: any; // save as base64 string, sent as buffer // - st_damage: number; // step (spada) // + st_damage: number; // spada // st_defeat: number; st_round: number; st_sp_mission: number; @@ -144,17 +144,19 @@ export interface pcdata { st_dp_mplay: number; st_last_select: number; st_album: any; - st_is_secret: number; // step (PENDUAL) // + + st_is_secret: number; // PENDUAL // st_age_list: number; st_is_present: number; st_is_future: number; - st_friendship: number; // step (copula) // + + st_friendship: number; // copula // st_station_clear: number; st_station_play: number; st_mission_gauge: number; st_tokimeki: any; - st_enemy_damage: number; // step (Heroic Verse) // + st_enemy_damage: number; // Heroic Verse // st_progress: number; st_is_track_ticket: boolean; st_sp_mission_point: number; @@ -167,10 +169,12 @@ export interface pcdata { st_dp_dj_mission_clear: number; st_sp_clear_mission_clear: number; st_dp_clear_mission_clear: number; - st_tips_read_list: number; + st_tips_read_list: number; + st_total_point: number; // CastHour // st_enemy_defeat_flg: number; st_mission_clear_num: number; + st_sp_fluctuation: number; // RESIDENT // st_dp_fluctuation: number; @@ -567,6 +571,282 @@ export const IIDX23_pcdata = { orb: 0, } +export const IIDX24_pcdata = { + version: 24, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + + d_disp_judge: 0, + d_exscore: 0, + d_gno: 0, + d_graph_score: 0, + d_gtype: 0, + d_hispeed: 0, + d_judge: 0, + d_judgeAdj: 0, + d_liflen: 0, + d_notes: 0, + d_opstyle: 0, + d_pace: 0, + d_sdlen: 0, + d_sdtype: 0, + d_sorttype: 0, + d_timing: 0, + dp_opt: 0, + dp_opt2: 0, + gpos: 0, + mode: 0, + pmode: 0, + rtype: 0, + s_disp_judge: 0, + s_exscore: 0, + s_gno: 0, + s_graph_score: 0, + s_gtype: 0, + s_hispeed: 0, + s_judge: 0, + s_judgeAdj: 0, + s_liflen: 0, + s_notes: 0, + s_opstyle: 0, + s_pace: 0, + s_sdlen: 0, + s_sdtype: 0, + s_sorttype: 0, + s_timing: 0, + sp_opt: 0, + + secret_flg1: Array(3).fill("-1"), + secret_flg2: Array(3).fill("-1"), + secret_flg3: Array(3).fill("-1"), + + sgid: -1, + dgid: -1, + + event_play_num: 0, + event_last_select_id: -1, + event2_play_num: 0, + event2_last_select_id: -1, + + st_enemy_damage: 0, + st_progress: 0, + st_enemy_defeat_flg: 0, + st_sp_level: 0, + st_dp_level: 0, + st_sp_mplay: 0, + st_dp_mplay: 0, + + achi_pack: 0, + achi_packcomp: 0, + achi_lastweekly: 0, + achi_weeklynum: 0, + achi_visitflg: 0, + achi_rivalcrush: 0, + achi_trophy: Array(20).fill("0"), + + deller: 0, + orb: 0, +} + +export const IIDX25_pcdata = { + version: 25, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + + d_auto_scrach: 0, + d_camera_layout: 0, + d_disp_judge: 0, + d_exscore: 0, + d_gauge_disp: 0, + d_gno: 0, + d_graph_score: 0, + d_gtype: 0, + d_hispeed: 0, + d_judge: 0, + d_judgeAdj: 0, + d_lane_brignt: 0, + d_liflen: 0, + d_notes: 0, + d_opstyle: 0, + d_pace: 0, + d_sdlen: 0, + d_sdtype: 0, + d_sorttype: 0, + d_timing: 0, + dp_opt: 0, + dp_opt2: 0, + gpos: 0, + mode: 0, + pmode: 0, + rtype: 0, + s_auto_scrach: 0, + s_camera_layout: 0, + s_disp_judge: 0, + s_exscore: 0, + s_gauge_disp: 0, + s_gno: 0, + s_graph_score: 0, + s_gtype: 0, + s_hispeed: 0, + s_judge: 0, + s_judgeAdj: 0, + s_lane_brignt: 0, + s_liflen: 0, + s_notes: 0, + s_opstyle: 0, + s_pace: 0, + s_sdlen: 0, + s_sdtype: 0, + s_sorttype: 0, + s_timing: 0, + sp_opt: 0, + + secret_flg1: Array(3).fill("-1"), + secret_flg2: Array(3).fill("-1"), + secret_flg3: Array(3).fill("-1"), + + sgid: -1, + dgid: -1, + + dr_sprank: Array(15).fill(0), + dr_sppoint: Array(15).fill(0), + dr_dprank: Array(15).fill(0), + dr_dppoint: Array(15).fill(0), + + st_enemy_damage: 0, + st_progress: 0, + st_point: 0, + st_enemy_defeat_flg: 0, + st_sp_level: 0, + st_dp_level: 0, + st_sp_mplay: 0, + st_dp_mplay: 0, + + achi_lastweekly: 0, + achi_pack: 0, + achi_packcomp: 0, + achi_rivalcrush: 0, + achi_visitflg: 0, + achi_weeklynum: 0, + achi_trophy: Array(20).fill("0"), + + deller: 0, + orb: 0, +} + +export const IIDX26_pcdata = { + version: 26, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + + d_auto_scrach: 0, + d_camera_layout: 0, + d_disp_judge: 0, + d_gauge_disp: 0, + d_ghost_score: 0, + d_gno: 0, + d_graph_score: 0, + d_gtype: 0, + d_hispeed: 0, + d_judge: 0, + d_judgeAdj: 0, + d_lane_brignt: 0, + d_liflen: 0, + d_notes: 0, + d_opstyle: 0, + d_pace: 0, + d_sdlen: 0, + d_sdtype: 0, + d_sorttype: 0, + d_timing: 0, + d_tsujigiri_disp: 0, + dp_opt: 0, + dp_opt2: 0, + gpos: 0, + mode: 0, + pmode: 0, + rtype: 0, + s_auto_scrach: 0, + s_camera_layout: 0, + s_disp_judge: 0, + s_gauge_disp: 0, + s_ghost_score: 0, + s_gno: 0, + s_graph_score: 0, + s_gtype: 0, + s_hispeed: 0, + s_judge: 0, + s_judgeAdj: 0, + s_lane_brignt: 0, + s_liflen: 0, + s_notes: 0, + s_opstyle: 0, + s_pace: 0, + s_sdlen: 0, + s_sdtype: 0, + s_sorttype: 0, + s_timing: 0, + s_tsujigiri_disp: 0, + sp_opt: 0, + + secret_flg1: Array(3).fill("-1"), + secret_flg2: Array(3).fill("-1"), + secret_flg3: Array(3).fill("-1"), + + sgid: -1, + dgid: -1, + + dr_sprank: Array(15).fill(0), + dr_sppoint: Array(15).fill(0), + dr_dprank: Array(15).fill(0), + dr_dppoint: Array(15).fill(0), + + st_enemy_damage: 0, + st_progress: 0, + st_is_track_ticket: false, + st_sp_level: 0, + st_dp_level: 0, + st_sp_mission_point: 0, + st_dp_mission_point: 0, + st_sp_dj_mission_level: 0, + st_dp_dj_mission_level: 0, + st_sp_clear_mission_level: 0, + st_dp_clear_mission_level: 0, + st_sp_dj_mission_clear: 0, + st_dp_dj_mission_clear: 0, + st_sp_clear_mission_clear: 0, + st_dp_clear_mission_clear: 0, + st_sp_mplay: 0, + st_dp_mplay: 0, + st_tips_read_list: 0, + + achi_lastweekly: 0, + achi_pack: 0, + achi_packcomp: 0, + achi_rivalcrush: 0, + achi_visitflg: 0, + achi_weeklynum: 0, + achi_trophy: Array(20).fill("0"), + + deller: 0, + orb: 0, + present_orb: 0, + + event_play_num: 0, + event_last_select_id: -1, + event2_play_num: 0, + event2_last_select_id: -1, +} + export const IIDX27_pcdata = { version: 27, diff --git a/iidx@asphyxia/pug/LDJ/24pccommon.pug b/iidx@asphyxia/pug/LDJ/24pccommon.pug new file mode 100644 index 0000000..2ddd25a --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/24pccommon.pug @@ -0,0 +1,6 @@ +IIDX24pc(status="0" expire="600") + ir(beat=beat) + newsong_another(open="1") + expert_secret_full_open + system_voice_phase(phase=system_voice_phase) + expert(phase="1") diff --git a/iidx@asphyxia/pug/LDJ/24pcget.pug b/iidx@asphyxia/pug/LDJ/24pcget.pug new file mode 100644 index 0000000..9c14578 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/24pcget.pug @@ -0,0 +1,75 @@ +IIDX24pc(status="0") + 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 rtype=pcdata.rtype 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_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_exscore=pcdata.s_exscore d_exscore=pcdata.d_exscore 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) + join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") + 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]} + deller(deller=pcdata.deller rate="1") + 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]) + stepdata(step_sach="-1" step_dach="-1") + qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) + shop(name="CORE") + is_robo(__type="bool") 0 + ir_data + secret_course_data + 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 + expert_point + classic_course_data + qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body} + dj_rank_ranking(style="0") + detail(bronze_point="0" bronze_rank="0" category="0" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="1" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="2" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="3" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="4" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="5" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="6" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="7" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="8" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="9" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="10" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="11" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="12" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="13" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="14" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + dj_rank_ranking(style="1") + detail(bronze_point="0" bronze_rank="0" category="0" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="1" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="2" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="3" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="4" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="5" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="6" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="7" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="8" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="9" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="10" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="11" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="12" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="13" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="14" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + arena_data(play_num="2" play_num_dp="1" play_num_sp="1") + achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="0" rating_value="20") + achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="1" rating_value="20") + 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 + ea_premium_course + bind_eaappli + leggendaria_open + pay_per_use(item_num="99") + skin(__type="s16" __count="17") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 0 0 0 + nostalgia_open + konami_style(skip_flg="0") + orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb) + tonjyutsu(black_pass="99" platinum_pass="99") + ninja_rank(style="5") diff --git a/iidx@asphyxia/pug/LDJ/24systeminfo.pug b/iidx@asphyxia/pug/LDJ/24systeminfo.pug new file mode 100644 index 0000000..96a0d8d --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/24systeminfo.pug @@ -0,0 +1,765 @@ +IIDX24gameSystem(status="0") + arena_schedule + phase(__type="u8") 2 + start(__type="u32") 1605784800 + end(__type="u32") 4102326000 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 0 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 1 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 2 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 3 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 4 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 5 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 6 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 7 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 8 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 9 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 10 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 11 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 12 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 13 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 14 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 15 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 16 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 17 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 18 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 19 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 0 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 1 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 2 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 3 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 4 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 5 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 6 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 7 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 8 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 9 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 10 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 11 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 12 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 13 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 14 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 15 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 16 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 17 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 18 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 19 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 0 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 1 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 2 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 3 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 4 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 5 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 6 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 7 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 8 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 9 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 10 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 11 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 12 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 13 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 14 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 15 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 16 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 17 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 18 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 19 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 0 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 1 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 2 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 3 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 4 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 5 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 6 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 7 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 8 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 9 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 10 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 11 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 12 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 13 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 14 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 15 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 16 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 17 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 18 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 19 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 0 + grade_id(__type="s32") 6 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 1 + grade_id(__type="s32") 7 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 2 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 3 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 4 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 5 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 6 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 7 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 8 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 9 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 10 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 11 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 12 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 13 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 14 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 15 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 16 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 17 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 18 + grade_id(__type="s32") 17 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 19 + grade_id(__type="s32") 18 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 0 + grade_id(__type="s32") 6 + low_music_difficult(__type="s32") 3 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 1 + grade_id(__type="s32") 7 + low_music_difficult(__type="s32") 3 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 2 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 3 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 4 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 5 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 6 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 7 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 8 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 9 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 10 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 11 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 12 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 13 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 14 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 15 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 16 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 17 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 18 + grade_id(__type="s32") 17 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 19 + grade_id(__type="s32") 18 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 diff --git a/iidx@asphyxia/pug/LDJ/25pccommon.pug b/iidx@asphyxia/pug/LDJ/25pccommon.pug new file mode 100644 index 0000000..c15c4a6 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/25pccommon.pug @@ -0,0 +1,6 @@ +IIDX25pc(status="0" expire="600") + ir(beat=beat) + newsong_another(open="1") + expert_secret_full_open + system_voice_phase(phase=system_voice_phase) + expert(phase="1") diff --git a/iidx@asphyxia/pug/LDJ/25pcget.pug b/iidx@asphyxia/pug/LDJ/25pcget.pug new file mode 100644 index 0000000..656001a --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/25pcget.pug @@ -0,0 +1,75 @@ +IIDX25pc(status="0") + 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 rtype=pcdata.rtype 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_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_exscore=pcdata.s_exscore d_exscore=pcdata.d_exscore 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) + join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") + 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]} + deller(deller=pcdata.deller rate="1") + 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]) + stepdata(step_sach="-1" step_dach="-1") + qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) + shop(name="CORE") + is_robo(__type="bool") 0 + ir_data + secret_course_data + 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 + expert_point + classic_course_data + qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body} + dj_rank_ranking(style="0") + detail(bronze_point="0" bronze_rank="0" category="0" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="1" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="2" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="3" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="4" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="5" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="6" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="7" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="8" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="9" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="10" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="11" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="12" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="13" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="14" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + dj_rank_ranking(style="1") + detail(bronze_point="0" bronze_rank="0" category="0" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="1" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="2" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="3" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="4" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="5" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="6" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="7" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="8" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="9" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="10" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="11" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="12" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="13" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="14" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + arena_data(play_num="2" play_num_dp="1" play_num_sp="1") + achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="0" rating_value="20") + achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="1" rating_value="20") + 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 + ea_premium_course + bind_eaappli + leggendaria_open + pay_per_use(item_num="99") + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 + nostalgia_open + floor_infection(music_list="3") + qma_collabo(music_list="7") + old_linkage_secret_flg(floor_infection="-1" link_track="-1") + event1_rival_car(body="0" face="0" hair="0" hand="0" head="0" iidx_id="00000000" name="ASYX") diff --git a/iidx@asphyxia/pug/LDJ/25systeminfo.pug b/iidx@asphyxia/pug/LDJ/25systeminfo.pug new file mode 100644 index 0000000..6f1841a --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/25systeminfo.pug @@ -0,0 +1,765 @@ +IIDX25gameSystem(status="0") + arena_schedule + phase(__type="u8") 2 + start(__type="u32") 1605784800 + end(__type="u32") 4102326000 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 0 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 1 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 2 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 3 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 4 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 5 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 6 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 7 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 8 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 9 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 10 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 11 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 12 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 13 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 14 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 15 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 16 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 17 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 18 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 19 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 0 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 1 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 2 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 3 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 4 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 5 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 6 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 7 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 8 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 9 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 10 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 11 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 12 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 13 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 14 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 15 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 16 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 17 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 18 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 19 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 0 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 1 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 2 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 3 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 4 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 5 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 6 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 7 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 8 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 9 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 10 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 11 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 12 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 13 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 14 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 15 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 16 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 17 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 18 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 19 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 0 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 1 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 2 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 3 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 4 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 5 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 6 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 7 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 8 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 9 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 10 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 11 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 12 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 13 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 14 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 15 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 16 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 17 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 18 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 19 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 0 + grade_id(__type="s32") 6 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 1 + grade_id(__type="s32") 7 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 2 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 3 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 4 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 5 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 6 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 7 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 8 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 9 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 10 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 11 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 12 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 13 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 14 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 15 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 16 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 17 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 18 + grade_id(__type="s32") 17 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 19 + grade_id(__type="s32") 18 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 0 + grade_id(__type="s32") 6 + low_music_difficult(__type="s32") 3 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 1 + grade_id(__type="s32") 7 + low_music_difficult(__type="s32") 3 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 2 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 3 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 4 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 5 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 6 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 7 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 8 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 9 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 10 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 11 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 12 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 13 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 14 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 15 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 16 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 17 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 18 + grade_id(__type="s32") 17 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 19 + grade_id(__type="s32") 18 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 diff --git a/iidx@asphyxia/pug/LDJ/26pccommon.pug b/iidx@asphyxia/pug/LDJ/26pccommon.pug new file mode 100644 index 0000000..08c78b8 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/26pccommon.pug @@ -0,0 +1,6 @@ +IIDX26pc(status="0" expire="600") + ir(beat=beat) + newsong_another(open="1") + expert_secret_full_open + system_voice_phase(phase=system_voice_phase) + expert(phase="1") diff --git a/iidx@asphyxia/pug/LDJ/26pcget.pug b/iidx@asphyxia/pug/LDJ/26pcget.pug new file mode 100644 index 0000000..def0929 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/26pcget.pug @@ -0,0 +1,80 @@ +IIDX26pc(status="0") + 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 rtype=pcdata.rtype 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_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) + join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") + 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]} + deller(deller=pcdata.deller rate="1") + 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]) + stepdata(step_sach="-1" step_dach="-1") + qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) + shop(name="CORE") + is_robo(__type="bool") 0 + ir_data + secret_course_data + 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 + expert_point + classic_course_data + qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body} + dj_rank_ranking(style="0") + detail(bronze_point="0" bronze_rank="0" category="0" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="1" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="2" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="3" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="4" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="5" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="6" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="7" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="8" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="9" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="10" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="11" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="12" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="13" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="14" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + dj_rank_ranking(style="1") + detail(bronze_point="0" bronze_rank="0" category="0" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="1" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="2" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="3" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="4" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="5" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="6" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="7" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="8" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="9" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="10" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="11" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="12" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="13" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + detail(bronze_point="0" bronze_rank="0" category="14" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + arena_data(play_num="2" play_num_dp="1" play_num_sp="1") + achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="0" rating_value="20") + achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="1" rating_value="20") + 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 + ea_premium_course + bind_eaappli + leggendaria_open + pay_per_use(item_num="99") + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 + floor_infection3(music_list="1") + bemani_vote(music_list="511") + old_linkage_secret_flg(floor_infection="3" floor_infection2="3" qma_collabo_music="7") + is_nostalgia(__type="bool") 1 + is_kac(__type="bool") 1 + kac_entry_info + is_kac_entry + kac_secret_music + music_info(index="0" music_id="26033") + music_info(index="1" music_id="26001") diff --git a/iidx@asphyxia/pug/LDJ/26systeminfo.pug b/iidx@asphyxia/pug/LDJ/26systeminfo.pug new file mode 100644 index 0000000..c0e1e67 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/26systeminfo.pug @@ -0,0 +1,765 @@ +IIDX26gameSystem(status="0") + arena_schedule + phase(__type="u8") 2 + start(__type="u32") 1605784800 + end(__type="u32") 4102326000 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 0 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 1 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 2 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 3 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 4 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 5 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 6 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 7 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 8 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 9 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 10 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 11 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 12 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 13 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 14 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 15 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 16 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 17 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 18 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 0 + arena_class(__type="s32") 19 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 0 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 1 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 2 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 3 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 4 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 5 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 6 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 7 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 8 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 9 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 10 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 11 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 12 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 13 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 14 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 15 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 16 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 17 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 18 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + arena_music_difficult + play_style(__type="s32") 1 + arena_class(__type="s32") 19 + low_difficult(__type="s32") 1 + high_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + force_music_list_id(__type="s32") -1 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 0 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 1 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 2 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 3 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 4 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 5 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 6 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 7 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 8 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 9 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 10 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 11 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 12 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 13 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 14 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 15 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 16 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 17 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 18 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 0 + matching_class(__type="s32") 19 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 0 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 1 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 2 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 3 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 4 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 5 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 6 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 7 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 8 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 9 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 10 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 11 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 12 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 13 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 14 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 15 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 16 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 17 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 18 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + maching_class_range + play_style(__type="s32") 1 + matching_class(__type="s32") 19 + low_arena_class(__type="s32") 1 + high_arena_class(__type="s32") 20 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 0 + grade_id(__type="s32") 6 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 1 + grade_id(__type="s32") 7 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 2 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 3 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 4 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 5 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 6 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 7 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 8 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 9 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 10 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 11 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 12 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 13 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 14 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 15 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 16 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 17 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 18 + grade_id(__type="s32") 17 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 0 + arena_class(__type="s32") 19 + grade_id(__type="s32") 18 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 0 + grade_id(__type="s32") 6 + low_music_difficult(__type="s32") 3 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 1 + grade_id(__type="s32") 7 + low_music_difficult(__type="s32") 3 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 2 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 3 + grade_id(__type="s32") 8 + low_music_difficult(__type="s32") 4 + high_music_difficult(__type="s32") 5 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 4 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 5 + grade_id(__type="s32") 9 + low_music_difficult(__type="s32") 5 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 6 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 6 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 7 + grade_id(__type="s32") 10 + low_music_difficult(__type="s32") 6 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 8 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 7 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 9 + grade_id(__type="s32") 11 + low_music_difficult(__type="s32") 7 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 10 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 8 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 11 + grade_id(__type="s32") 12 + low_music_difficult(__type="s32") 8 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 12 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 9 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 13 + grade_id(__type="s32") 13 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 14 + grade_id(__type="s32") 14 + low_music_difficult(__type="s32") 9 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 15 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 10 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 16 + grade_id(__type="s32") 15 + low_music_difficult(__type="s32") 10 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 0 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 17 + grade_id(__type="s32") 16 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 11 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 18 + grade_id(__type="s32") 17 + low_music_difficult(__type="s32") 11 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 + arena_cpu_define + play_style(__type="s32") 1 + arena_class(__type="s32") 19 + grade_id(__type="s32") 18 + low_music_difficult(__type="s32") 12 + high_music_difficult(__type="s32") 12 + is_leggendaria(__type="bool") 1 diff --git a/iidx@asphyxia/pug/LDJ/27pccommon.pug b/iidx@asphyxia/pug/LDJ/27pccommon.pug index 65de30f..e95c24d 100644 --- a/iidx@asphyxia/pug/LDJ/27pccommon.pug +++ b/iidx@asphyxia/pug/LDJ/27pccommon.pug @@ -11,7 +11,7 @@ IIDX27pc(status="0" expire="600") deller_bonus(open="1") newsong_another(open="1") secret_full_open - system_voice_phase(phase="1") + system_voice_phase(phase=system_voice_phase) extra_boss_event(phase="1") event1_phase(phase="4") premium_area_news(open="1") diff --git a/iidx@asphyxia/pug/LDJ/28pccommon.pug b/iidx@asphyxia/pug/LDJ/28pccommon.pug index cb91e0a..d639c74 100644 --- a/iidx@asphyxia/pug/LDJ/28pccommon.pug +++ b/iidx@asphyxia/pug/LDJ/28pccommon.pug @@ -14,7 +14,7 @@ IIDX28pc(status="0" expire="600") deller_bonus(open="1") newsong_another(open="1") expert_secret_full_open - system_voice_phase(phase="1") + system_voice_phase(phase=system_voice_phase) extra_boss_event(phase="1") event1_phase(phase="4") premium_area_news(open="1") diff --git a/iidx@asphyxia/pug/LDJ/29pccommon.pug b/iidx@asphyxia/pug/LDJ/29pccommon.pug index d4028cf..f7f29cb 100644 --- a/iidx@asphyxia/pug/LDJ/29pccommon.pug +++ b/iidx@asphyxia/pug/LDJ/29pccommon.pug @@ -14,7 +14,7 @@ IIDX29pc(status="0" expire="600") deller_bonus(open="1") newsong_another(open="1") expert_secret_full_open - system_voice_phase(phase="1") + system_voice_phase(phase=system_voice_phase) extra_boss_event(phase="1") event1_phase(phase="4") premium_area_news(open="1") diff --git a/iidx@asphyxia/pug/LDJ/30pccommon.pug b/iidx@asphyxia/pug/LDJ/30pccommon.pug index 3a353b5..38350a9 100644 --- a/iidx@asphyxia/pug/LDJ/30pccommon.pug +++ b/iidx@asphyxia/pug/LDJ/30pccommon.pug @@ -9,7 +9,7 @@ IIDX30pc(status="0" expire="600") vip_pass_black deller_bonus(open="1") newsong_another(open="1") - system_voice_phase(phase="1") + system_voice_phase(phase=system_voice_phase) premium_area_news(open="1") premium_area_qpro(open="1") play_video From 05a500f6c261aafd24303392eb268452e791bd4f Mon Sep 17 00:00:00 2001 From: duel0213 Date: Thu, 15 Feb 2024 02:30:06 +0900 Subject: [PATCH 08/73] IIDX: Added Shop Ranking support --- iidx@asphyxia/README.md | 13 +- iidx@asphyxia/handlers/gamesystem.ts | 76 ++++++- iidx@asphyxia/handlers/music.ts | 104 ++++++++- iidx@asphyxia/handlers/pc.ts | 305 +++++++++++++++++++-------- iidx@asphyxia/models/arena.ts | 46 ++++ iidx@asphyxia/models/pcdata.ts | 4 +- iidx@asphyxia/pug/LDJ/pcget.pug | 2 +- iidx@asphyxia/util.ts | 16 +- 8 files changed, 447 insertions(+), 119 deletions(-) create mode 100644 iidx@asphyxia/models/arena.ts diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 7ac9fe4..4dafa06 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -1,6 +1,6 @@ # beatmaniaIIDX -Plugin Version: **v0.1.10** +Plugin Version: **v0.1.11** --- @@ -26,10 +26,10 @@ Features - STEP UP (Partial) - SKILL ANALYZER - - EVENT - - ARENA (Local) + - EVENT (Partial) + - ARENA (Partial) - RANDOME LANE TICKET - - SONG SELECTION NOTES + - FAVORITE/SONG SELECTION NOTES (Partial) --- @@ -88,3 +88,8 @@ Changelogs **v0.1.10** - Added Initial support for SINOBUZ ~ Rootage - Converted from asphyxia_route_public + +**v0.1.11** + - Added Shop Ranking support + - Changed pc.common/gameSystem.systemInfo response not to use pugFile. + - IIDX_CPUS on models/arena.ts came from asphyxia_route_public diff --git a/iidx@asphyxia/handlers/gamesystem.ts b/iidx@asphyxia/handlers/gamesystem.ts index 73658f5..566a5fd 100644 --- a/iidx@asphyxia/handlers/gamesystem.ts +++ b/iidx@asphyxia/handlers/gamesystem.ts @@ -1,9 +1,81 @@ +import { IIDX_CPUS } from "../models/arena"; import { GetVersion } from "../util"; export const gssysteminfo: EPR = async (info, data, send) => { const version = GetVersion(info); - if (version < 24) return send.success(); - return send.pugFile(`pug/LDJ/${version}systeminfo.pug`); + let result: any = { + arena_schedule: { + phase: K.ITEM("u8", 2), + start: K.ITEM("u32", 1605784800), + end: K.ITEM("u32", 4102326000) + }, + arena_music_difficult: [], + maching_class_range: [], + arena_cpu_define: [], + } + + for (let s = 0; s < 2; ++s) { + for (let c = 0; c < 20; ++c) { + result.arena_music_difficult.push({ + play_style: K.ITEM("s32", s), + arena_class: K.ITEM("s32", c), + low_difficult: K.ITEM("s32", 1), + high_difficult: K.ITEM("s32", 12), + is_leggendaria: K.ITEM("bool", 1), + force_music_list_id: K.ITEM("s32", 0), + }); + + result.maching_class_range.push({ + play_style: K.ITEM("s32", s), + matching_class: K.ITEM("s32", c), + low_arena_class: K.ITEM("s32", 1), + high_arena_class: K.ITEM("s32", 20), + }); + + result.arena_cpu_define.push({ + play_style: K.ITEM("s32", s), + arena_class: K.ITEM("s32", c), + grade_id: K.ITEM("s32", IIDX_CPUS[s][c][0]), + low_music_difficult: K.ITEM("s32", IIDX_CPUS[s][c][1]), + high_music_difficult: K.ITEM("s32", IIDX_CPUS[s][c][2]), + is_leggendaria: K.ITEM("bool", IIDX_CPUS[s][c][3]), + }); + } + } + + switch (version) { + case 29: + result = { + ...result, + CommonBossPhase: K.ATTR({ val: String(3) }), + Event1InternalPhase: K.ATTR({ val: String(5) }), + ExtraBossEventPhase: K.ATTR({ val: String(3) }), + isNewSongAnother12OpenFlg: K.ATTR({ val: String(1) }), + gradeOpenPhase: K.ATTR({ val: String(2) }), + isEiseiOpenFlg: K.ATTR({ val: String(1) }), + WorldTourismOpenList: K.ATTR({ val: String(-1) }), + BPLBattleOpenPhase: K.ATTR({ val: String(2) }), + } + break; + case 30: + result = { + ...result, + CommonBossPhase: K.ATTR({ val: String(3) }), + Event1InternalPhase: K.ATTR({ val: String(5) }), + ExtraBossEventPhase: K.ATTR({ val: String(3) }), + isNewSongAnother12OpenFlg: K.ATTR({ val: String(1) }), + gradeOpenPhase: K.ATTR({ val: String(2) }), + isEiseiOpenFlg: K.ATTR({ val: String(1) }), + WorldTourismOpenList: K.ATTR({ val: String(-1) }), + BPLBattleOpenPhase: K.ATTR({ val: String(2) }), + } + break; + + default: + break; + } + + return send.object(result); }; diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index fae6da0..bcf1032 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -1,6 +1,7 @@ -import { IDtoRef, Base64toBuffer, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide } from "../util"; +import { IDtoRef, Base64toBuffer, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide, ReftoQPRO } from "../util"; import { score, score_top } from "../models/score"; import { profile } from "../models/profile"; +import { shop_data } from "../models/shop"; export const musicgetrank: EPR = async (info, data, send) => { const version = GetVersion(info); @@ -305,6 +306,9 @@ export const musicappoint: EPR = async (info, data, send) => { export const musicreg: EPR = async (info, data, send) => { const version = GetVersion(info); + const shop_data = await DB.FindOne({ + collection: "shop_data", + }); // wid, oppid, opname, opt, opt2, pside, nocnt, anum // const refid = await IDtoRef(parseInt($(data).attr().iidxid)); @@ -318,7 +322,8 @@ export const musicreg: EPR = async (info, data, send) => { let ghost = null, ghost_gauge = null; // Heroic Verse // let style = 0, option = 0, option_2 = 0; - // TODO:: SPADA Leggendaria has seperate music_id // + // TODO:: Leggendaria until HEROIC VERSE has seperate music_id // + // TODO:: SUPER FUTURE 2323 has seperate music_id // const mapping = [1, 2, 3, 6, 7, 8]; if (version == -1) return send.deny(); else if (version < 20) { @@ -349,6 +354,7 @@ export const musicreg: EPR = async (info, data, send) => { let esArray = Array(10).fill(0); // EXSCORE // let optArray = Array(10).fill(0); // USED OPTION (CastHour) // let opt2Array = Array(10).fill(0); // USED OPTION (CastHour) // + let update = 0; if (version >= 18) ghost = $(data).buffer("ghost").toString("base64"); @@ -389,6 +395,7 @@ export const musicreg: EPR = async (info, data, send) => { esArray[clid] = Math.max(esArray[clid], exscore); optArray[clid] = option; opt2Array[clid] = option_2; + update = 1; } else { ghost = music_data[clid]; if (version >= 27) ghost_gauge = music_data[clid + 10]; @@ -470,15 +477,98 @@ export const musicreg: EPR = async (info, data, send) => { } ); - send.object( - K.ATTR({ - status: "0", + let shop_rank = -1, shop_rank_data = []; + let scores: any[][]; + scores = ( + await DB.Find(null, { + collection: "score", + mid: mid, + cArray: { $exists: true }, + esArray: { $exists: true }, + }) + ).map((r) => [r.esArray[clid], r.cArray[clid], r.__refid]); + scores.sort((a, b) => b[0] - a[0]); + shop_rank = scores.findIndex((a) => a[2] == refid); + + scores = await Promise.all( + scores.map(async (r) => [ + r[0], + r[1], + await ReftoProfile(r[2]), + await ReftoQPRO(r[2], version), + await ReftoPcdata(r[2], version), + ]) + ); + + scores.forEach((rankscore, index) => { + if (index == shop_rank) { + shop_rank_data.push( + K.ATTR({ + iidx_id: String(rankscore[2][2]), + name: String(rankscore[2][0]), + opname: shop_data.opname, + rnum: String(index + 1), + score: String(rankscore[0]), + clflg: String(rankscore[1]), + pid: String(rankscore[2][1]), + sgrade: String(rankscore[4][0]), + dgrade: String(rankscore[4][1]), + head: String(rankscore[3][1]), + hair: String(rankscore[3][0]), + face: String(rankscore[3][2]), + body: String(rankscore[3][3]), + hand: String(rankscore[3][4]), + myFlg: String(1), + s_baron: String(0), + p_baron: String(0), + achieve: String(0), + update: String(update), + }) + ); + } + else if (rankscore[0] != 0 || rankscore[1] != 0) { + shop_rank_data.push( + K.ATTR({ + iidx_id: String(rankscore[2][2]), + name: String(rankscore[2][0]), + opname: shop_data.opname, + rnum: String(index + 1), + score: String(rankscore[0]), + clflg: String(rankscore[1]), + pid: String(rankscore[2][1]), + sgrade: String(rankscore[4][0]), + dgrade: String(rankscore[4][1]), + head: String(rankscore[3][1]), + hair: String(rankscore[3][0]), + face: String(rankscore[3][2]), + body: String(rankscore[3][3]), + hand: String(rankscore[3][4]), + myFlg: String(0), + s_baron: String(0), + p_baron: String(0), + achieve: String(0), + update: String(0), + }) + ); + } + }); + + let result: any = { + "@attr": { mid: String(mid), clid: String(clid), crate: "0", frate: "0", - }) - ); + rankside: String(style), + }, + ranklist: { + "@attr": { total_user_num: String(shop_rank_data.length) }, + data: shop_rank_data, + }, + shopdata: K.ATTR({ rank: String(shop_rank) }), + } + + return send.object(result); } // this is not valid response // diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 375310e..ac21c3d 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -10,98 +10,218 @@ import { world_tourism } from "../models/worldtourism"; export const pccommon: EPR = async (info, data, send) => { const version = GetVersion(info); - if (version == 18) { - return send.object({ - "@attr": { - expire: 600, - }, - ir: K.ATTR({ - beat: String(U.GetConfig("BeatPhase")), - }), - cmd: K.ATTR({ - gmbl: "1", - gmbla: "1", - regl: "1", - rndp: "1", - hrnd: "1", - alls: "1", - }), - lg: K.ATTR({ - lea: "0", - }), - lf: K.ATTR({ - life: "0", - }), - ev: K.ATTR({ - pha: "3", - }), - lincle: K.ATTR({ - phase: "1", - }) - }); - } - else if (version == 19) { - return send.object({ - "@attr": { - expire: 600, - }, - ir: K.ATTR({ - beat: String(U.GetConfig("BeatPhase")), - }), - lincle: K.ATTR({ - phase: String(2), - }), - boss: K.ATTR({ - phase: String(2), - }), - mr_secret: K.ATTR({ - flg: String(-1), - }), - travel: K.ATTR({ - flg: String(-1), - }), - }); - } - else if (version == 20) { - return send.object({ - "@attr": { - expire: 600, - }, - ir: K.ATTR({ - beat: String(U.GetConfig("BeatPhase")), - }), - limit: K.ATTR({ - phase: String(4), - }), - boss: K.ATTR({ - phase: String(3), - }), - red: K.ATTR({ - phase: String(3), - }), - yellow: K.ATTR({ - phase: String(3), - }), - medal: K.ATTR({ - phase: String(3), - }), - cafe: K.ATTR({ - open: String(1), - }), - tricolettepark: K.ATTR({ - open: String(1), - }), - }); - } - else if (version >= 21) { - return send.pugFile(`pug/LDJ/${version}pccommon.pug`, { - beat: U.GetConfig("BeatPhase"), - movie_upload: U.GetConfig("MovieUpload"), - system_voice_phase: Math.floor(Math.random() * 8), - }); + let result: any = { + "@attr": { + expire: 300, + }, + ir: K.ATTR({ + beat: String(U.GetConfig("BeatPhase")), + }), } - return send.deny(); + switch (version) { + case 18: + result = { + ...result, + cmd: K.ATTR({ + gmbl: String(1), + gmbla: String(1), + regl: String(1), + rndp: String(1), + hrnd: String(1), + alls: String(1), + }), + lg: K.ATTR({ lea: String(0) }), + lf: K.ATTR({ life: String(0) }), + ev: K.ATTR({ pha: String(3) }), + lincle: K.ATTR({ phase: String(1) }) + } + break; + case 19: + result = { + ...result, + lincle: K.ATTR({ phase: String(2) }), + boss: K.ATTR({ phase: String(2) }), + mr_secret: K.ATTR({ flg: String(-1) }), + travel: K.ATTR({ flg: String(-1) }), + } + break; + case 20: + result = { + ...result, + limit: K.ATTR({ phase: String(4) }), + boss: K.ATTR({ phase: String(3) }), + red: K.ATTR({ phase: String(3) }), + yellow: K.ATTR({ phase: String(3) }), + medal: K.ATTR({ phase: String(3) }), + cafe: K.ATTR({ open: String(1) }), + tricolettepark: K.ATTR({ open: String(1) }), + } + break; + case 21: + result = { + ...result, + limit: K.ATTR({ phase: String(4) }), + boss: K.ATTR({ phase: String(3) }), + boss1: K.ATTR({ phase: String(4) }), + medal: K.ATTR({ phase: String(1) }), + vip_pass_black: {}, + cafe: K.ATTR({ open: String(1) }), + tricolettepark: K.ATTR({ open: String(1) }), + tricolettepark_skip: K.ATTR({ phase: String(2) }), + deller_bonus: K.ATTR({ open: String(1) }), + gumi_event: {}, + newsong_another: K.ATTR({ open: String(1) }), + superstar: K.ATTR({ phase: String(2) }), + } + break; + case 22: + result = { + ...result, + pre_play: K.ATTR({ phase: String(2) }), + expert: K.ATTR({ phase: String(2) }), + toho_remix: K.ATTR({ phase: String(2) }), + expert_random_secret: K.ATTR({ phase: String(2) }), + limit: K.ATTR({ phase: String(9) }), + boss: K.ATTR({ phase: String(3) }), + chrono_diver: K.ATTR({ phase: String(3) }), + qpronicle_chord: K.ATTR({ phase: String(2) }), + vip_pass_black: {}, + cc_collabo_event: K.ATTR({ phase: String(3) }), + cc_collabo_license: {}, + deller_bonus: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(1) }), + common_timeshift_phase: K.ATTR({ phase: String(0) }), + expert_secret_full_open: {}, + eappli_expert: {}, + eaorder: {}, + } + break; + case 23: + result = { + ...result, + expert: K.ATTR({ phase: String(1) }), + expert_random_secret: K.ATTR({ phase: String(2) }), + boss: K.ATTR({ phase: String(3) }), + event1_phase: K.ATTR({ phase: String(1) }), + event2_phase: K.ATTR({ phase: String(2) }), + extra_boss_event: K.ATTR({ phase: String(30) }), + vip_pass_black: {}, + event1_ranbow_ticket: {}, + deller_bonus: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(1) }), + expert_secret_full_open: {}, + remocon_collabo: {}, + ravemania_collabo: {}, + djlevel_result: {}, + virtual_coin: K.ATTR({ phase: String(1) }), + reflec_volzza_collabo: {}, + bemani_summer2016: K.ATTR({ phase: String(2) }), + } + break; + case 24: // asphyix_route_public // + case 25: + case 26: + result = { + ...result, + newsong_another: K.ATTR({ open: String(1) }), + expert_secret_full_open: {}, + system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), + expert: K.ATTR({ phase: String(1) }) + } + break; + case 27: + result = { + ...result, + expert: K.ATTR({ phase: String(1) }), + expert_random_secret: K.ATTR({ phase: String(1) }), + boss: K.ATTR({ phase: String(1) }), + vip_pass_black: {}, + deller_bonus: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(1) }), + expert_secret_full_open: {}, + system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), + extra_boss_event: K.ATTR({ phase: String(1) }), + event1_phase: K.ATTR({ phase: String(4) }), + premium_area_news: K.ATTR({ open: String(1) }), + premium_area_qpro: K.ATTR({ open: String(1) }), + play_video: {}, + display_asio_logo: {}, + } + break; + case 28: + result = { + ...result, + movie_agreement: K.ATTR({ version: String(1) }), + movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), + expert: K.ATTR({ phase: String(1) }), + expert_random_secret: K.ATTR({ phase: String(1) }), + boss: K.ATTR({ phase: String(1) }), + vip_pass_black: {}, + eisei: K.ATTR({ open: String(1) }), + deller_bonus: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(1) }), + expert_secret_full_open: {}, + system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), + extra_boss_event: K.ATTR({ phase: String(1) }), + event1_phase: K.ATTR({ phase: String(4) }), + premium_area_news: K.ATTR({ open: String(1) }), + premium_area_qpro: K.ATTR({ open: String(1) }), + play_video: {}, + world_tourism: K.ATTR({ open_list: String(-1) }), + bpl_battle: K.ATTR({ phase: String(1) }), + display_asio_logo: {}, + } + break; + case 29: + result = { + ...result, + movie_agreement: K.ATTR({ version: String(1) }), + movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), + expert: K.ATTR({ phase: String(1) }), + expert_random_secret: K.ATTR({ phase: String(1) }), + boss: K.ATTR({ phase: String(1) }), + vip_pass_black: {}, + eisei: K.ATTR({ open: String(1) }), + deller_bonus: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(1) }), + expert_secret_full_open: {}, + system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), + extra_boss_event: K.ATTR({ phase: String(1) }), + event1_phase: K.ATTR({ phase: String(4) }), + premium_area_news: K.ATTR({ open: String(1) }), + premium_area_qpro: K.ATTR({ open: String(1) }), + play_video: {}, + world_tourism: K.ATTR({ open_list: String(-1) }), + bpl_battle: K.ATTR({ phase: String(1) }), + display_asio_logo: {}, + lane_gacha: {}, + } + break; + case 30: + result = { + ...result, + movie_agreement: K.ATTR({ version: String(1) }), + movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), + vip_pass_black: {}, + deller_bonus: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(1) }), + system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), + premium_area_news: K.ATTR({ open: String(1) }), + premium_area_qpro: K.ATTR({ open: String(1) }), + play_video: {}, + display_asio_logo: {}, + lane_gacha: {}, + tourism_booster: {}, + ameto_event: {}, + } + break; + + default: + return send.deny(); + } + + return send.object(result); }; export const pcreg: EPR = async (info, data, send) => { @@ -364,8 +484,11 @@ export const pcget: EPR = async (info, data, send) => { }); } else if (version == 20) { + if (!_.isNil(pcdata.st_stamp)) pcdata.st_stamp = Base64toBuffer(pcdata.st_stamp).toString("hex"); if (!_.isNil(pcdata.st_help)) pcdata.st_help = Base64toBuffer(pcdata.st_help).toString("hex"); + if (_.isNil(pcdata.st_stamp)) pcdata.st_stamp = ""; // temp // + 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" }); let redboss = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "redboss" }); @@ -547,7 +670,6 @@ export const pcget: EPR = async (info, data, send) => { return send.deny(); }; -// TODO:: migration (oldget/getname/takeover) // export const pcoldget: EPR = async (info, data, send) => { const refid = $(data).attr().rid; const pcdata = await DB.FindOne(refid, { collection: "pcdata" }); // version check removed // @@ -928,6 +1050,7 @@ 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 = $(data).buffer("step").toString("base64"); // TODO:: verify // pcdata.st_help = $(data).element("step").buffer("help").toString("base64"); } diff --git a/iidx@asphyxia/models/arena.ts b/iidx@asphyxia/models/arena.ts new file mode 100644 index 0000000..e5e7ecd --- /dev/null +++ b/iidx@asphyxia/models/arena.ts @@ -0,0 +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], + ], +]; diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 6090029..6558220 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -131,6 +131,7 @@ export interface pcdata { st_sp_round: number; st_dp_round: number; st_review: number; + st_stamp: any; st_help: any; // save as base64 string, sent as buffer // st_damage: number; // spada // @@ -320,7 +321,8 @@ export const LDJ_pcdata = { st_dp_round: 0, st_dp_mplay: 0, st_review: 0, - st_help: "", + st_stamp: null, + st_help: null, achi_lastweekly: 0, achi_pack: 0, diff --git a/iidx@asphyxia/pug/LDJ/pcget.pug b/iidx@asphyxia/pug/LDJ/pcget.pug index 6f7f707..b5504b0 100644 --- a/iidx@asphyxia/pug/LDJ/pcget.pug +++ b/iidx@asphyxia/pug/LDJ/pcget.pug @@ -24,7 +24,7 @@ pc(status="0") join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]} step(sp_ach=pcdata.st_sp_ach dp_ach=pcdata.st_dp_ach sp_hdpt=pcdata.st_sp_hdpt dp_hdpt=pcdata.st_dp_hdpt sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_round=pcdata.st_sp_round dp_round=pcdata.st_dp_round sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay review=pcdata.st_review) - //-stamp(__type="bin") + stamp(__type="bin") #{pcdata.st_stamp} help(__type="bin") #{pcdata.st_help} 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) trophy(__type="s64" __count="10") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]} diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index a61af63..7f53fa3 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -4,6 +4,7 @@ import { profile } from "./models/profile"; export function IDtoCode(id: number) { const padded = _.padStart(String(id), 8); + return `${padded.slice(0, 4)}-${padded.slice(4)}`; } @@ -32,19 +33,7 @@ export function NewMidToOldMid(mid: number) { } export function ClidToPlaySide(clid: number) { - switch (clid) { - case 0: // SPB // - case 1: - case 2: - case 3: - case 4: - return 0; // SPA // - - default: - break; - } - - return 1; + return clid < 5 ? 0 : 1; } export function Base64toBuffer(s: string) { @@ -159,6 +148,7 @@ export async function ReftoPcdata(refid: string, version: number) { return p_data; } + export async function ReftoQPRO(refid: string, version: number) { const custom = await DB.FindOne(refid, { collection: "custom", From 6902182a8da6247ef9aebeffb4dd07c022f3aa71 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Fri, 16 Feb 2024 10:00:04 +0900 Subject: [PATCH 09/73] IIDX: Added Experimental WebUI / Plugin Settings IIDX: Removed pugFile that no longer being used --- iidx@asphyxia/README.md | 6 +- iidx@asphyxia/handlers/pc.ts | 48 +- iidx@asphyxia/handlers/webui.ts | 126 ++-- iidx@asphyxia/index.ts | 124 +++- iidx@asphyxia/models/custom.ts | 4 +- iidx@asphyxia/pug/LDJ/21pccommon.pug | 14 - iidx@asphyxia/pug/LDJ/22pccommon.pug | 21 - iidx@asphyxia/pug/LDJ/23pccommon.pug | 21 - iidx@asphyxia/pug/LDJ/24pccommon.pug | 6 - iidx@asphyxia/pug/LDJ/24systeminfo.pug | 765 -------------------- iidx@asphyxia/pug/LDJ/25pccommon.pug | 6 - iidx@asphyxia/pug/LDJ/25systeminfo.pug | 765 -------------------- iidx@asphyxia/pug/LDJ/26pccommon.pug | 6 - iidx@asphyxia/pug/LDJ/26systeminfo.pug | 765 -------------------- iidx@asphyxia/pug/LDJ/27pccommon.pug | 20 - iidx@asphyxia/pug/LDJ/27systeminfo.pug | 765 -------------------- iidx@asphyxia/pug/LDJ/28pccommon.pug | 25 - iidx@asphyxia/pug/LDJ/28systeminfo.pug | 765 -------------------- iidx@asphyxia/pug/LDJ/29pccommon.pug | 26 - iidx@asphyxia/pug/LDJ/29systeminfo.pug | 773 --------------------- iidx@asphyxia/pug/LDJ/30pccommon.pug | 19 - iidx@asphyxia/pug/LDJ/30systeminfo.pug | 773 --------------------- iidx@asphyxia/webui/profile_----detail.pug | 60 ++ iidx@asphyxia/webui/profile_---setting.pug | 190 +++++ iidx@asphyxia/webui/profile_--rival.pug | 118 ++++ iidx@asphyxia/webui/profile_-score.pug | 25 + iidx@asphyxia/webui/profile_rivals.pug | 82 --- 27 files changed, 630 insertions(+), 5688 deletions(-) delete mode 100644 iidx@asphyxia/pug/LDJ/21pccommon.pug delete mode 100644 iidx@asphyxia/pug/LDJ/22pccommon.pug delete mode 100644 iidx@asphyxia/pug/LDJ/23pccommon.pug delete mode 100644 iidx@asphyxia/pug/LDJ/24pccommon.pug delete mode 100644 iidx@asphyxia/pug/LDJ/24systeminfo.pug delete mode 100644 iidx@asphyxia/pug/LDJ/25pccommon.pug delete mode 100644 iidx@asphyxia/pug/LDJ/25systeminfo.pug delete mode 100644 iidx@asphyxia/pug/LDJ/26pccommon.pug delete mode 100644 iidx@asphyxia/pug/LDJ/26systeminfo.pug delete mode 100644 iidx@asphyxia/pug/LDJ/27pccommon.pug delete mode 100644 iidx@asphyxia/pug/LDJ/27systeminfo.pug delete mode 100644 iidx@asphyxia/pug/LDJ/28pccommon.pug delete mode 100644 iidx@asphyxia/pug/LDJ/28systeminfo.pug delete mode 100644 iidx@asphyxia/pug/LDJ/29pccommon.pug delete mode 100644 iidx@asphyxia/pug/LDJ/29systeminfo.pug delete mode 100644 iidx@asphyxia/pug/LDJ/30pccommon.pug delete mode 100644 iidx@asphyxia/pug/LDJ/30systeminfo.pug create mode 100644 iidx@asphyxia/webui/profile_----detail.pug create mode 100644 iidx@asphyxia/webui/profile_---setting.pug create mode 100644 iidx@asphyxia/webui/profile_--rival.pug create mode 100644 iidx@asphyxia/webui/profile_-score.pug delete mode 100644 iidx@asphyxia/webui/profile_rivals.pug diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 4dafa06..de0134c 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -1,6 +1,6 @@ # beatmaniaIIDX -Plugin Version: **v0.1.11** +Plugin Version: **v0.1.12** --- @@ -93,3 +93,7 @@ Changelogs - Added Shop Ranking support - Changed pc.common/gameSystem.systemInfo response not to use pugFile. - IIDX_CPUS on models/arena.ts came from asphyxia_route_public + +**v0.1.12** + - Exposed some of pc.common attributes to plugin settings (WIP) + - Added Experimental WebUI (WIP) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index ac21c3d..766fec0 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -19,29 +19,31 @@ export const pccommon: EPR = async (info, data, send) => { }), } + // have no idea what some of attribute or value does // + // exposing these to plugin setting or use static value // switch (version) { case 18: result = { ...result, cmd: K.ATTR({ - gmbl: String(1), - gmbla: String(1), - regl: String(1), - rndp: String(1), - hrnd: String(1), - alls: String(1), + gmbl: String(Number(U.GetConfig("ra_cmd_gmbl"))), + gmbla: String(Number(U.GetConfig("ra_cmd_gmbla"))), + regl: String(Number(U.GetConfig("ra_cmd_regl"))), + rndp: String(Number(U.GetConfig("ra_cmd_rndp"))), + hrnd: String(Number(U.GetConfig("ra_cmd_hrnd"))), + alls: String(Number(U.GetConfig("ra_cmd_alls"))), }), - lg: K.ATTR({ lea: String(0) }), - lf: K.ATTR({ life: String(0) }), - ev: K.ATTR({ pha: String(3) }), - lincle: K.ATTR({ phase: String(1) }) + lg: K.ATTR({ lea: String(U.GetConfig("ra_league")) }), + lf: K.ATTR({ life: String(U.GetConfig("ra_story")) }), + ev: K.ATTR({ pha: String(U.GetConfig("ra_event")) }), + lincle: K.ATTR({ phase: String(U.GetConfig("ra_lincle")) }) } break; case 19: result = { ...result, - lincle: K.ATTR({ phase: String(2) }), - boss: K.ATTR({ phase: String(2) }), + lincle: K.ATTR({ phase: String(U.GetConfig("lc_lincle")) }), + boss: K.ATTR({ phase: String(U.GetConfig("lc_boss")) }), mr_secret: K.ATTR({ flg: String(-1) }), travel: K.ATTR({ flg: String(-1) }), } @@ -49,13 +51,13 @@ export const pccommon: EPR = async (info, data, send) => { case 20: result = { ...result, - limit: K.ATTR({ phase: String(4) }), - boss: K.ATTR({ phase: String(3) }), - red: K.ATTR({ phase: String(3) }), - yellow: K.ATTR({ phase: String(3) }), - medal: K.ATTR({ phase: String(3) }), - cafe: K.ATTR({ open: String(1) }), - tricolettepark: K.ATTR({ open: String(1) }), + limit: K.ATTR({ phase: String(U.GetConfig("tr_limit")) }), + boss: K.ATTR({ phase: String(U.GetConfig("tr_boss")) }), + red: K.ATTR({ phase: String(U.GetConfig("tr_red")) }), + yellow: K.ATTR({ phase: String(U.GetConfig("tr_yellow")) }), + medal: K.ATTR({ phase: String(U.GetConfig("tr_medal")) }), + cafe: K.ATTR({ open: String(Number(U.GetConfig("tr_cafe"))) }), + tricolettepark: K.ATTR({ open: String(Number(U.GetConfig("tr_tripark"))) }), } break; case 21: @@ -119,7 +121,7 @@ export const pccommon: EPR = async (info, data, send) => { bemani_summer2016: K.ATTR({ phase: String(2) }), } break; - case 24: // asphyix_route_public // + case 24: // asphyxia_route_public // case 25: case 26: result = { @@ -153,7 +155,7 @@ export const pccommon: EPR = async (info, data, send) => { result = { ...result, movie_agreement: K.ATTR({ version: String(1) }), - movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), + movie_upload: K.ATTR({ url: String(U.GetConfig("bo_movieupload")) }), expert: K.ATTR({ phase: String(1) }), expert_random_secret: K.ATTR({ phase: String(1) }), boss: K.ATTR({ phase: String(1) }), @@ -177,7 +179,7 @@ export const pccommon: EPR = async (info, data, send) => { result = { ...result, movie_agreement: K.ATTR({ version: String(1) }), - movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), + movie_upload: K.ATTR({ url: String(U.GetConfig("bo_movieupload")) }), expert: K.ATTR({ phase: String(1) }), expert_random_secret: K.ATTR({ phase: String(1) }), boss: K.ATTR({ phase: String(1) }), @@ -202,7 +204,7 @@ export const pccommon: EPR = async (info, data, send) => { result = { ...result, movie_agreement: K.ATTR({ version: String(1) }), - movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), + movie_upload: K.ATTR({ url: String(U.GetConfig("bo_movieupload")) }), vip_pass_black: {}, deller_bonus: K.ATTR({ open: String(1) }), newsong_another: K.ATTR({ open: String(1) }), diff --git a/iidx@asphyxia/handlers/webui.ts b/iidx@asphyxia/handlers/webui.ts index 7215a1c..b7c8945 100644 --- a/iidx@asphyxia/handlers/webui.ts +++ b/iidx@asphyxia/handlers/webui.ts @@ -1,26 +1,8 @@ import { profile } from "../models/profile"; import { rival } from "../models/rival"; +import { custom } from "../models/custom"; -export const updateRivalSettings = async (data: { - // All of data sent as string - iidxid: string; - - sp_rival1?: string; - sp_rival2?: string; - sp_rival3?: string; - sp_rival4?: string; - sp_rival5?: string; - - dp_rival1?: string; - dp_rival2?: string; - dp_rival3?: string; - dp_rival4?: string; - dp_rival5?: string; -}) => { - const profile = await DB.FindOne(null, { - collection: "profile", - idstr: data.iidxid, - }); +export const updateRivalSettings = async (data) => { let update_array = []; if (!(_.isEmpty(data.sp_rival1))) { @@ -32,9 +14,9 @@ export const updateRivalSettings = async (data: { update_array.push(update_data); } else { - await DB.Remove(profile.refid, + await DB.Remove(data.refid, { - collection: 'rival', + collection: "rival", play_style: 1, index: 0, } @@ -50,9 +32,9 @@ export const updateRivalSettings = async (data: { update_array.push(update_data); } else { - await DB.Remove(profile.refid, + await DB.Remove(data.refid, { - collection: 'rival', + collection: "rival", play_style: 1, index: 1, } @@ -68,9 +50,9 @@ export const updateRivalSettings = async (data: { update_array.push(update_data); } else { - await DB.Remove(profile.refid, + await DB.Remove(data.refid, { - collection: 'rival', + collection: "rival", play_style: 1, index: 2, } @@ -86,9 +68,9 @@ export const updateRivalSettings = async (data: { update_array.push(update_data); } else { - await DB.Remove(profile.refid, + await DB.Remove(data.refid, { - collection: 'rival', + collection: "rival", play_style: 1, index: 3, } @@ -104,9 +86,9 @@ export const updateRivalSettings = async (data: { update_array.push(update_data); } else { - await DB.Remove(profile.refid, + await DB.Remove(data.refid, { - collection: 'rival', + collection: "rival", play_style: 1, index: 4, } @@ -122,9 +104,9 @@ export const updateRivalSettings = async (data: { update_array.push(update_data); } else { - await DB.Remove(profile.refid, + await DB.Remove(data.refid, { - collection: 'rival', + collection: "rival", play_style: 2, index: 0, } @@ -140,9 +122,9 @@ export const updateRivalSettings = async (data: { update_array.push(update_data); } else { - await DB.Remove(profile.refid, + await DB.Remove(data.refid, { - collection: 'rival', + collection: "rival", play_style: 2, index: 1, } @@ -158,9 +140,9 @@ export const updateRivalSettings = async (data: { update_array.push(update_data); } else { - await DB.Remove(profile.refid, + await DB.Remove(data.refid, { - collection: 'rival', + collection: "rival", play_style: 2, index: 2, } @@ -176,9 +158,9 @@ export const updateRivalSettings = async (data: { update_array.push(update_data); } else { - await DB.Remove(profile.refid, + await DB.Remove(data.refid, { - collection: 'rival', + collection: "rival", play_style: 2, index: 3, } @@ -194,9 +176,9 @@ export const updateRivalSettings = async (data: { update_array.push(update_data); } else { - await DB.Remove(profile.refid, + await DB.Remove(data.refid, { - collection: 'rival', + collection: "rival", play_style: 2, index: 4, } @@ -204,7 +186,7 @@ export const updateRivalSettings = async (data: { } for (let i = 0; i < update_array.length; i++) { - await DB.Upsert(profile.refid, { + await DB.Upsert(data.refid, { collection: "rival", play_style: update_array[i].play_style, index: update_array[i].index, @@ -216,3 +198,65 @@ export const updateRivalSettings = async (data: { ) } }; + +export const updateCustomSettings = async (data) => { + const profile = await DB.FindOne(data.refid, { + collection: "profile", + }); + + let customize = { + frame: parseInt(data.frame), + turntable: parseInt(data.turntable), + note_burst: parseInt(data.note_burst), + menu_music: parseInt(data.menu_music), + lane_cover: parseInt(data.lane_cover), + category_vox: parseInt(data.category_vox), + note_skin: parseInt(data.note_skin), + full_combo_splash: parseInt(data.full_combo_splash), + disable_musicpreview: StoB(data.disable_musicpreview), + + note_beam: parseInt(data.note_beam), + judge_font: parseInt(data.judge_font), + pacemaker_cover: parseInt(data.pacemaker_cover), + vefx_lock: StoB(data.vefx_lock), + effect: parseInt(data.effect), + bomb_size: parseInt(data.bomb_size), + disable_hcn_color: StoB(data.disable_hcn_color), + first_note_preview: parseInt(data.first_note_preview), + + rank_folder: StoB(data.rank_folder), + clear_folder: StoB(data.clear_folder), + diff_folder: StoB(data.diff_folder), + alpha_folder: StoB(data.alpha_folder), + rival_folder: StoB(data.rival_folder), + rival_battle_folder: StoB(data.rival_battle_folder), + rival_info: StoB(data.rival_info), + hide_playcount: StoB(data.hide_playcount), + disable_graph_cutin: StoB(data.disable_graph_cutin), + classic_hispeed: StoB(data.classic_hispeed), + rival_played_folder: StoB(data.rival_played_folder), + hide_iidxid: StoB(data.hide_iidxid), + } + + await DB.Upsert(data.refid, { + collection: "custom", + version: parseInt(data.version) + }, { + $set: customize + }); + + if (!_.isEmpty(data.name) && data.name != profile.name) { + // TODO:: check name is in valid format // + await DB.Upsert(data.refid, { + collection: "profile", + }, { + $set: { + name: data.name + } + }); + } +}; + +function StoB(value: string) { + return value == "on" ? true : false; +}; diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 122b592..5ca53cb 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -1,9 +1,9 @@ -import { pccommon, pcreg, pcget, pcgetname, pctakeover, pcvisit, pcsave, pcoldget, pcgetlanegacha, pcdrawlanegacha, pcshopregister } from "./handlers/pc"; +import { pccommon, pcreg, pcget, pcgetname, pctakeover, pcvisit, pcsave, pcoldget, pcgetlanegacha, pcdrawlanegacha, pcshopregister } from "./handlers/pc"; import { shopgetname, shopsavename, shopgetconvention, shopsetconvention } from "./handlers/shop"; import { musicreg, musicgetrank, musicappoint, musicarenacpu } from "./handlers/music"; import { graderaised } from "./handlers/grade"; import { gssysteminfo } from "./handlers/gamesystem"; -import { updateRivalSettings } from "./handlers/webui"; +import { updateRivalSettings, updateCustomSettings } from "./handlers/webui"; import { GetVersion } from "./util"; export function register() { @@ -18,19 +18,135 @@ export function register() { R.GameCode("KDZ"); R.GameCode("LDJ"); + // common // R.Config("BeatPhase", { name: "Beat #", type: "integer", default: 3, }); - R.Config("MovieUpload", { + // Resort Anthem // + R.Config("ra_cmd_gmbl", { + name: "G.JUDGE", + desc: "Enable G.JUDGE Command (Resort Anthem)", + type: "boolean", + default: true, + }); + R.Config("ra_cmd_gmbla", { + name: "G.JUDGE-A", + desc: "Enable G.JUDGE-A Command (Resort Anthem)", + type: "boolean", + default: true, + }); + R.Config("ra_cmd_regl", { + name: "REGUL-SPEED", + desc: "Enable REGUL-SPEED Command (Resort Anthem)", + type: "boolean", + default: true, + }); + R.Config("ra_cmd_rndp", { + name: "RANDOM+", + desc: "Enable RANDOM+ Command (Resort Anthem)", + type: "boolean", + default: true, + }); + R.Config("ra_cmd_hrnd", { + name: "H-RANDOM", + desc: "Enable H-RANDOM Command (Resort Anthem)", + type: "boolean", + default: true, + }); + R.Config("ra_cmd_alls", { + name: "ALL-SCRATCH", + desc: "Enable ALL-SCRATCH Command (Resort Anthem)", + type: "boolean", + default: true, + }); + R.Config("ra_league", { + name: "League Phase (RA)", + type: "integer", + default: 0, + }); + R.Config("ra_story", { + name: "Story Phase (RA)", + type: "integer", + default: 0, + }); + R.Config("ra_event", { + name: "Tour Phase (RA)", + type: "integer", + default: 3, + }); + R.Config("ra_lincle", { + name: "Lincle LINK Phase (RA)", + type: "integer", + default: 1, + }); + + // Lincle // + R.Config("lc_lincle", { + name: "Lincle LINK Phase (LC)", + type: "integer", + default: 2, + }); + R.Config("lc_boss", { + name: "Lincle Kingdom Phase", + type: "integer", + default: 2, + }); + + // tricoro // + R.Config("tr_limit", { + name: "Limit Burst Phase", + type: "integer", + default: 4, + }); + R.Config("tr_boss", { + name: "Event Phase (TR)", + desc: "RED/BLUE/YELLOW", + type: "integer", + default: 3, + }); + R.Config("tr_red", { + name: "RED Phase", + desc: "LEGEND CROSS Phase", + type: "integer", + default: 3, + }); + R.Config("tr_yellow", { + name: "YELLOW Phase", + desc: "ぼくらの宇宙戦争 Phase", + type: "integer", + default: 3, + }); + R.Config("tr_medal", { + name: "Medal Phase (TR)", + type: "integer", + default: 3, + }); + R.Config("tr_cafe", { + name: "Café de Tran", + desc: "Enable Café de Tran Event (tricoro)", + type: "boolean", + default: true, + }); + R.Config("tr_tripark", { + name: "Everyone's SPACEWAR!!", + desc: "Enable クプロ・ミミニャミ・パステルくんのみんなで宇宙戦争!! Event (tricoro)", + type: "boolean", + default: true, + }); + + // BISTROVER ~ (common) // + R.Config("bo_movieupload", { name: "Movie Upload URL", type: "string", default: "http://localhost/" }); - R.WebUIEvent("updateIIDXRivalSettings", updateRivalSettings); + // TODO:: Reflect data when version dropdown menu has been changed + R.WebUIEvent("updateIIDXRival", updateRivalSettings); + R.WebUIEvent("updateIIDXCustom", updateCustomSettings); const MultiRoute = (method: string, handler: EPR | boolean) => { R.Route(`${method}`, handler); diff --git a/iidx@asphyxia/models/custom.ts b/iidx@asphyxia/models/custom.ts index c4704a7..73da240 100644 --- a/iidx@asphyxia/models/custom.ts +++ b/iidx@asphyxia/models/custom.ts @@ -21,7 +21,7 @@ export interface custom { effect: number; bomb_size: number; disable_hcn_color: boolean; - first_note_preview: boolean; + first_note_preview: number; // appendsettings rank_folder: boolean; @@ -70,7 +70,7 @@ export const default_custom = { effect: 0, bomb_size: 0, disable_hcn_color: false, - first_note_preview: false, + first_note_preview: 0, rank_folder: true, clear_folder: true, diff --git a/iidx@asphyxia/pug/LDJ/21pccommon.pug b/iidx@asphyxia/pug/LDJ/21pccommon.pug deleted file mode 100644 index b76d976..0000000 --- a/iidx@asphyxia/pug/LDJ/21pccommon.pug +++ /dev/null @@ -1,14 +0,0 @@ -IIDX21pc(status="0" expire="600") - ir(beat=beat) - limit(phase="4") - boss(phase="3") - boss1(phase="4") - medal(phase="1") - vip_pass_black - cafe(open="1") - tricolettepark(open="1") - tricolettepark_skip(phase="2") - deller_bonus(open="1") - gumi_event - newsong_another(open="1") - superstar(phase="2") diff --git a/iidx@asphyxia/pug/LDJ/22pccommon.pug b/iidx@asphyxia/pug/LDJ/22pccommon.pug deleted file mode 100644 index a7a7949..0000000 --- a/iidx@asphyxia/pug/LDJ/22pccommon.pug +++ /dev/null @@ -1,21 +0,0 @@ -IIDX22pc(status="0" expire="600") - ir(beat=beat) - //- - cm(id="" folder="" compo="") - pre_play(phase="2") - expert(phase="2") - toho_remix(phase="2") - expert_random_secret(phase="2") - limit(phase="9") - boss(phase="3") - chrono_diver(phase="4") - qpronicle_chord(phase="3") - vip_pass_black - cc_collabo_event(phase="3") - cc_collabo_license - deller_bonus(open="1") - newsong_another(open="1") - common_timeshift_phase(phase="1") - expert_secret_full_open - eaappli_expert - eaorder diff --git a/iidx@asphyxia/pug/LDJ/23pccommon.pug b/iidx@asphyxia/pug/LDJ/23pccommon.pug deleted file mode 100644 index 51cdafd..0000000 --- a/iidx@asphyxia/pug/LDJ/23pccommon.pug +++ /dev/null @@ -1,21 +0,0 @@ -IIDX23pc(status="0" expire="600") - ir(beat=beat) - //- - cm(id="" folder="" compo="") - expert(phase="1") - expert_random_secret(phase="2") - boss(phase="3") - event1_phase(phase="1") - event2_phase(phase="2") - extra_boss_event(phase="30") - vip_pass_black - event1_rainbow_ticket - deller_bonus(open="1") - newsong_another(open="1") - expert_secret_full_open - remocon_collabo - ravemania_collabo - djlevel_result - virtual_coin(phase="1") - reflec_volzza_collabo - bemani_summer2016(phase="2") diff --git a/iidx@asphyxia/pug/LDJ/24pccommon.pug b/iidx@asphyxia/pug/LDJ/24pccommon.pug deleted file mode 100644 index 2ddd25a..0000000 --- a/iidx@asphyxia/pug/LDJ/24pccommon.pug +++ /dev/null @@ -1,6 +0,0 @@ -IIDX24pc(status="0" expire="600") - ir(beat=beat) - newsong_another(open="1") - expert_secret_full_open - system_voice_phase(phase=system_voice_phase) - expert(phase="1") diff --git a/iidx@asphyxia/pug/LDJ/24systeminfo.pug b/iidx@asphyxia/pug/LDJ/24systeminfo.pug deleted file mode 100644 index 96a0d8d..0000000 --- a/iidx@asphyxia/pug/LDJ/24systeminfo.pug +++ /dev/null @@ -1,765 +0,0 @@ -IIDX24gameSystem(status="0") - arena_schedule - phase(__type="u8") 2 - start(__type="u32") 1605784800 - end(__type="u32") 4102326000 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 0 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 1 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 2 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 3 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 4 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 5 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 6 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 7 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 8 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 9 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 10 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 11 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 12 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 13 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 14 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 15 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 16 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 17 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 18 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 19 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 0 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 1 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 2 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 3 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 4 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 5 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 6 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 7 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 8 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 9 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 10 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 11 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 12 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 13 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 14 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 15 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 16 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 17 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 18 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 19 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 0 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 1 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 2 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 3 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 4 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 5 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 6 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 7 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 8 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 9 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 10 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 11 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 12 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 13 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 14 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 15 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 16 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 17 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 18 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 19 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 0 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 1 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 2 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 3 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 4 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 5 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 6 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 7 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 8 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 9 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 10 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 11 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 12 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 13 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 14 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 15 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 16 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 17 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 18 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 19 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 0 - grade_id(__type="s32") 6 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 1 - grade_id(__type="s32") 7 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 2 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 3 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 4 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 5 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 6 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 7 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 8 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 9 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 10 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 11 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 12 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 13 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 14 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 15 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 16 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 17 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 18 - grade_id(__type="s32") 17 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 19 - grade_id(__type="s32") 18 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 0 - grade_id(__type="s32") 6 - low_music_difficult(__type="s32") 3 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 1 - grade_id(__type="s32") 7 - low_music_difficult(__type="s32") 3 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 2 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 3 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 4 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 5 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 6 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 7 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 8 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 9 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 10 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 11 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 12 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 13 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 14 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 15 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 16 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 17 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 18 - grade_id(__type="s32") 17 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 19 - grade_id(__type="s32") 18 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 diff --git a/iidx@asphyxia/pug/LDJ/25pccommon.pug b/iidx@asphyxia/pug/LDJ/25pccommon.pug deleted file mode 100644 index c15c4a6..0000000 --- a/iidx@asphyxia/pug/LDJ/25pccommon.pug +++ /dev/null @@ -1,6 +0,0 @@ -IIDX25pc(status="0" expire="600") - ir(beat=beat) - newsong_another(open="1") - expert_secret_full_open - system_voice_phase(phase=system_voice_phase) - expert(phase="1") diff --git a/iidx@asphyxia/pug/LDJ/25systeminfo.pug b/iidx@asphyxia/pug/LDJ/25systeminfo.pug deleted file mode 100644 index 6f1841a..0000000 --- a/iidx@asphyxia/pug/LDJ/25systeminfo.pug +++ /dev/null @@ -1,765 +0,0 @@ -IIDX25gameSystem(status="0") - arena_schedule - phase(__type="u8") 2 - start(__type="u32") 1605784800 - end(__type="u32") 4102326000 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 0 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 1 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 2 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 3 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 4 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 5 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 6 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 7 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 8 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 9 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 10 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 11 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 12 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 13 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 14 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 15 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 16 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 17 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 18 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 19 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 0 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 1 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 2 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 3 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 4 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 5 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 6 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 7 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 8 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 9 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 10 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 11 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 12 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 13 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 14 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 15 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 16 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 17 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 18 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 19 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 0 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 1 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 2 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 3 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 4 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 5 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 6 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 7 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 8 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 9 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 10 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 11 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 12 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 13 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 14 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 15 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 16 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 17 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 18 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 19 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 0 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 1 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 2 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 3 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 4 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 5 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 6 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 7 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 8 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 9 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 10 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 11 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 12 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 13 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 14 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 15 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 16 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 17 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 18 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 19 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 0 - grade_id(__type="s32") 6 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 1 - grade_id(__type="s32") 7 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 2 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 3 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 4 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 5 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 6 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 7 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 8 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 9 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 10 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 11 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 12 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 13 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 14 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 15 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 16 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 17 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 18 - grade_id(__type="s32") 17 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 19 - grade_id(__type="s32") 18 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 0 - grade_id(__type="s32") 6 - low_music_difficult(__type="s32") 3 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 1 - grade_id(__type="s32") 7 - low_music_difficult(__type="s32") 3 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 2 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 3 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 4 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 5 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 6 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 7 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 8 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 9 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 10 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 11 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 12 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 13 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 14 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 15 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 16 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 17 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 18 - grade_id(__type="s32") 17 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 19 - grade_id(__type="s32") 18 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 diff --git a/iidx@asphyxia/pug/LDJ/26pccommon.pug b/iidx@asphyxia/pug/LDJ/26pccommon.pug deleted file mode 100644 index 08c78b8..0000000 --- a/iidx@asphyxia/pug/LDJ/26pccommon.pug +++ /dev/null @@ -1,6 +0,0 @@ -IIDX26pc(status="0" expire="600") - ir(beat=beat) - newsong_another(open="1") - expert_secret_full_open - system_voice_phase(phase=system_voice_phase) - expert(phase="1") diff --git a/iidx@asphyxia/pug/LDJ/26systeminfo.pug b/iidx@asphyxia/pug/LDJ/26systeminfo.pug deleted file mode 100644 index c0e1e67..0000000 --- a/iidx@asphyxia/pug/LDJ/26systeminfo.pug +++ /dev/null @@ -1,765 +0,0 @@ -IIDX26gameSystem(status="0") - arena_schedule - phase(__type="u8") 2 - start(__type="u32") 1605784800 - end(__type="u32") 4102326000 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 0 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 1 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 2 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 3 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 4 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 5 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 6 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 7 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 8 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 9 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 10 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 11 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 12 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 13 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 14 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 15 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 16 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 17 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 18 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 19 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 0 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 1 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 2 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 3 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 4 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 5 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 6 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 7 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 8 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 9 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 10 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 11 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 12 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 13 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 14 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 15 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 16 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 17 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 18 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 19 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 0 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 1 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 2 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 3 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 4 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 5 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 6 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 7 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 8 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 9 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 10 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 11 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 12 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 13 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 14 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 15 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 16 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 17 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 18 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 19 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 0 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 1 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 2 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 3 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 4 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 5 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 6 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 7 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 8 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 9 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 10 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 11 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 12 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 13 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 14 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 15 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 16 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 17 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 18 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 19 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 0 - grade_id(__type="s32") 6 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 1 - grade_id(__type="s32") 7 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 2 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 3 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 4 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 5 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 6 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 7 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 8 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 9 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 10 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 11 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 12 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 13 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 14 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 15 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 16 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 17 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 18 - grade_id(__type="s32") 17 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 19 - grade_id(__type="s32") 18 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 0 - grade_id(__type="s32") 6 - low_music_difficult(__type="s32") 3 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 1 - grade_id(__type="s32") 7 - low_music_difficult(__type="s32") 3 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 2 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 3 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 4 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 5 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 6 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 7 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 8 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 9 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 10 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 11 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 12 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 13 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 14 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 15 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 16 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 17 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 18 - grade_id(__type="s32") 17 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 19 - grade_id(__type="s32") 18 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 diff --git a/iidx@asphyxia/pug/LDJ/27pccommon.pug b/iidx@asphyxia/pug/LDJ/27pccommon.pug deleted file mode 100644 index e95c24d..0000000 --- a/iidx@asphyxia/pug/LDJ/27pccommon.pug +++ /dev/null @@ -1,20 +0,0 @@ -IIDX27pc(status="0" expire="600") - ir(beat=beat) - //- - cm(id="" folder="" compo="") - tdj_cm - cm(id="" filename="") - expert(phase="1") - expert_random_secert(phase="1") - boss(phase="1") - vip_pass_black - deller_bonus(open="1") - newsong_another(open="1") - secret_full_open - system_voice_phase(phase=system_voice_phase) - extra_boss_event(phase="1") - event1_phase(phase="4") - premium_area_news(open="1") - premium_area_qpro(open="1") - play_video - display_asio_logo diff --git a/iidx@asphyxia/pug/LDJ/27systeminfo.pug b/iidx@asphyxia/pug/LDJ/27systeminfo.pug deleted file mode 100644 index f2d55a7..0000000 --- a/iidx@asphyxia/pug/LDJ/27systeminfo.pug +++ /dev/null @@ -1,765 +0,0 @@ -IIDX27gameSystem(status="0") - arena_schedule - phase(__type="u8") 2 - start(__type="u32") 1605784800 - end(__type="u32") 4102326000 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 0 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 1 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 2 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 3 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 4 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 5 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 6 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 7 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 8 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 9 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 10 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 11 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 12 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 13 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 14 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 15 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 16 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 17 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 18 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 19 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 0 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 1 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 2 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 3 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 4 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 5 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 6 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 7 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 8 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 9 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 10 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 11 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 12 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 13 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 14 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 15 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 16 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 17 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 18 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 19 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 0 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 1 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 2 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 3 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 4 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 5 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 6 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 7 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 8 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 9 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 10 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 11 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 12 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 13 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 14 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 15 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 16 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 17 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 18 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 19 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 0 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 1 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 2 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 3 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 4 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 5 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 6 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 7 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 8 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 9 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 10 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 11 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 12 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 13 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 14 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 15 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 16 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 17 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 18 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 19 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 0 - grade_id(__type="s32") 6 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 1 - grade_id(__type="s32") 7 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 2 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 3 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 4 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 5 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 6 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 7 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 8 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 9 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 10 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 11 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 12 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 13 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 14 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 15 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 16 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 17 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 18 - grade_id(__type="s32") 17 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 19 - grade_id(__type="s32") 18 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 0 - grade_id(__type="s32") 6 - low_music_difficult(__type="s32") 3 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 1 - grade_id(__type="s32") 7 - low_music_difficult(__type="s32") 3 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 2 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 3 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 4 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 5 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 6 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 7 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 8 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 9 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 10 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 11 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 12 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 13 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 14 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 15 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 16 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 17 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 18 - grade_id(__type="s32") 17 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 19 - grade_id(__type="s32") 18 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 diff --git a/iidx@asphyxia/pug/LDJ/28pccommon.pug b/iidx@asphyxia/pug/LDJ/28pccommon.pug deleted file mode 100644 index d639c74..0000000 --- a/iidx@asphyxia/pug/LDJ/28pccommon.pug +++ /dev/null @@ -1,25 +0,0 @@ -IIDX28pc(status="0" expire="600") - ir(beat=beat) - //- - cm(id="" folder="" compo="") - tdj_cm - cm(id="" filename="") - movie_agreement(version="1") - movie_upload(url=movie_upload) - expert(phase="1") - expert_random_secert(phase="1") - boss(phase="1") - vip_pass_black - eisei(open="1") - deller_bonus(open="1") - newsong_another(open="1") - expert_secret_full_open - system_voice_phase(phase=system_voice_phase) - extra_boss_event(phase="1") - event1_phase(phase="4") - premium_area_news(open="1") - premium_area_qpro(open="1") - play_video - world_tourism(open_list="-1") - bpl_battle(phase="1") - display_asio_logo diff --git a/iidx@asphyxia/pug/LDJ/28systeminfo.pug b/iidx@asphyxia/pug/LDJ/28systeminfo.pug deleted file mode 100644 index faac1ee..0000000 --- a/iidx@asphyxia/pug/LDJ/28systeminfo.pug +++ /dev/null @@ -1,765 +0,0 @@ -IIDX28gameSystem(status="0") - arena_schedule - phase(__type="u8") 2 - start(__type="u32") 1605784800 - end(__type="u32") 4102326000 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 0 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 1 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 2 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 3 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 4 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 5 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 6 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 7 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 8 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 9 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 10 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 11 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 12 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 13 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 14 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 15 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 16 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 17 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 18 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 19 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 0 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 1 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 2 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 3 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 4 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 5 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 6 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 7 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 8 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 9 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 10 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 11 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 12 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 13 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 14 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 15 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 16 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 17 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 18 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 19 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 0 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 1 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 2 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 3 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 4 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 5 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 6 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 7 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 8 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 9 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 10 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 11 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 12 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 13 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 14 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 15 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 16 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 17 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 18 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 19 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 0 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 1 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 2 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 3 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 4 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 5 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 6 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 7 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 8 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 9 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 10 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 11 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 12 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 13 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 14 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 15 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 16 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 17 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 18 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 19 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 0 - grade_id(__type="s32") 6 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 1 - grade_id(__type="s32") 7 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 2 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 3 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 4 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 5 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 6 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 7 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 8 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 9 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 10 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 11 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 12 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 13 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 14 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 15 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 16 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 17 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 18 - grade_id(__type="s32") 17 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 19 - grade_id(__type="s32") 18 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 0 - grade_id(__type="s32") 6 - low_music_difficult(__type="s32") 3 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 1 - grade_id(__type="s32") 7 - low_music_difficult(__type="s32") 3 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 2 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 3 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 4 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 5 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 6 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 7 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 8 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 9 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 10 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 11 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 12 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 13 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 14 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 15 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 16 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 17 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 18 - grade_id(__type="s32") 17 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 19 - grade_id(__type="s32") 18 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 diff --git a/iidx@asphyxia/pug/LDJ/29pccommon.pug b/iidx@asphyxia/pug/LDJ/29pccommon.pug deleted file mode 100644 index f7f29cb..0000000 --- a/iidx@asphyxia/pug/LDJ/29pccommon.pug +++ /dev/null @@ -1,26 +0,0 @@ -IIDX29pc(status="0" expire="600") - ir(beat=beat) - //- - cm(id="" folder="" compo="") - tdj_cm - cm(id="" filename="") - movie_agreement(version="1") - movie_upload(url=movie_upload) - expert(phase="1") - expert_random_secert(phase="1") - boss(phase="1") - vip_pass_black - eisei(open="1") - deller_bonus(open="1") - newsong_another(open="1") - expert_secret_full_open - system_voice_phase(phase=system_voice_phase) - extra_boss_event(phase="1") - event1_phase(phase="4") - premium_area_news(open="1") - premium_area_qpro(open="1") - play_video - world_tourism(open_list="-1") - bpl_battle(phase="1") - display_asio_logo - lane_gacha diff --git a/iidx@asphyxia/pug/LDJ/29systeminfo.pug b/iidx@asphyxia/pug/LDJ/29systeminfo.pug deleted file mode 100644 index d3869eb..0000000 --- a/iidx@asphyxia/pug/LDJ/29systeminfo.pug +++ /dev/null @@ -1,773 +0,0 @@ -IIDX29gameSystem(status="0") - arena_schedule - phase(__type="u8") 2 - start(__type="u32") 1605784800 - end(__type="u32") 4102326000 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 0 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 1 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 2 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 3 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 4 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 5 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 6 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 7 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 8 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 9 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 10 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 11 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 12 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 13 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 14 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 15 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 16 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 17 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 18 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 19 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 0 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 1 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 2 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 3 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 4 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 5 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 6 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 7 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 8 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 9 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 10 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 11 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 12 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 13 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 14 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 15 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 16 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 17 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 18 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 19 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 0 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 1 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 2 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 3 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 4 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 5 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 6 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 7 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 8 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 9 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 10 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 11 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 12 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 13 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 14 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 15 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 16 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 17 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 18 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 19 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 0 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 1 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 2 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 3 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 4 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 5 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 6 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 7 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 8 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 9 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 10 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 11 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 12 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 13 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 14 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 15 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 16 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 17 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 18 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 19 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 0 - grade_id(__type="s32") 6 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 1 - grade_id(__type="s32") 7 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 2 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 3 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 4 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 5 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 6 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 7 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 8 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 9 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 10 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 11 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 12 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 13 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 14 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 15 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 16 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 17 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 18 - grade_id(__type="s32") 17 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 19 - grade_id(__type="s32") 18 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 0 - grade_id(__type="s32") 6 - low_music_difficult(__type="s32") 3 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 1 - grade_id(__type="s32") 7 - low_music_difficult(__type="s32") 3 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 2 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 3 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 4 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 5 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 6 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 7 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 8 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 9 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 10 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 11 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 12 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 13 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 14 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 15 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 16 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 17 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 18 - grade_id(__type="s32") 17 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 19 - grade_id(__type="s32") 18 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - CommonBossPhase(val="1") - Event1InternalPhase(val="4") - ExtraBossEventPhase(val="1") - isNewSongAnother12OpenFlg(val="1") - gradeOpenPhase(val="2") - isEiseiOpenFlg(val="1") - WorldTourismOpenList(val="-1") - BPLBattleOpenPhase(val="1") diff --git a/iidx@asphyxia/pug/LDJ/30pccommon.pug b/iidx@asphyxia/pug/LDJ/30pccommon.pug deleted file mode 100644 index 38350a9..0000000 --- a/iidx@asphyxia/pug/LDJ/30pccommon.pug +++ /dev/null @@ -1,19 +0,0 @@ -IIDX30pc(status="0" expire="600") - ir(beat=beat) - //- - cm(id="" folder="" compo="") - tdj_cm - cm(id="" filename="") - movie_agreement(version="1") - movie_upload(url=movie_upload) - vip_pass_black - deller_bonus(open="1") - newsong_another(open="1") - system_voice_phase(phase=system_voice_phase) - premium_area_news(open="1") - premium_area_qpro(open="1") - play_video - display_asio_logo - lane_gacha - tourism_booster - ameto_event diff --git a/iidx@asphyxia/pug/LDJ/30systeminfo.pug b/iidx@asphyxia/pug/LDJ/30systeminfo.pug deleted file mode 100644 index e598776..0000000 --- a/iidx@asphyxia/pug/LDJ/30systeminfo.pug +++ /dev/null @@ -1,773 +0,0 @@ -IIDX30gameSystem(status="0") - arena_schedule - phase(__type="u8") 2 - start(__type="u32") 1605784800 - end(__type="u32") 4102326000 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 0 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 1 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 2 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 3 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 4 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 5 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 6 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 7 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 8 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 9 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 10 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 11 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 12 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 13 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 14 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 15 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 16 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 17 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 18 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 0 - arena_class(__type="s32") 19 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 0 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 1 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 2 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 3 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 4 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 5 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 6 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 7 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 8 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 9 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 10 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 11 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 12 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 13 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 14 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 15 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 16 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 17 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 18 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - arena_music_difficult - play_style(__type="s32") 1 - arena_class(__type="s32") 19 - low_difficult(__type="s32") 1 - high_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - force_music_list_id(__type="s32") -1 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 0 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 1 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 2 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 3 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 4 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 5 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 6 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 7 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 8 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 9 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 10 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 11 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 12 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 13 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 14 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 15 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 16 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 17 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 18 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 0 - matching_class(__type="s32") 19 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 0 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 1 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 2 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 3 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 4 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 5 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 6 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 7 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 8 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 9 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 10 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 11 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 12 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 13 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 14 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 15 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 16 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 17 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 18 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - maching_class_range - play_style(__type="s32") 1 - matching_class(__type="s32") 19 - low_arena_class(__type="s32") 1 - high_arena_class(__type="s32") 20 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 0 - grade_id(__type="s32") 6 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 1 - grade_id(__type="s32") 7 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 2 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 3 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 4 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 5 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 6 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 7 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 8 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 9 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 10 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 11 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 12 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 13 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 14 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 15 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 16 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 17 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 18 - grade_id(__type="s32") 17 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 0 - arena_class(__type="s32") 19 - grade_id(__type="s32") 18 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 0 - grade_id(__type="s32") 6 - low_music_difficult(__type="s32") 3 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 1 - grade_id(__type="s32") 7 - low_music_difficult(__type="s32") 3 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 2 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 3 - grade_id(__type="s32") 8 - low_music_difficult(__type="s32") 4 - high_music_difficult(__type="s32") 5 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 4 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 5 - grade_id(__type="s32") 9 - low_music_difficult(__type="s32") 5 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 6 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 6 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 7 - grade_id(__type="s32") 10 - low_music_difficult(__type="s32") 6 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 8 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 7 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 9 - grade_id(__type="s32") 11 - low_music_difficult(__type="s32") 7 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 10 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 8 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 11 - grade_id(__type="s32") 12 - low_music_difficult(__type="s32") 8 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 12 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 9 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 13 - grade_id(__type="s32") 13 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 14 - grade_id(__type="s32") 14 - low_music_difficult(__type="s32") 9 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 15 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 10 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 16 - grade_id(__type="s32") 15 - low_music_difficult(__type="s32") 10 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 0 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 17 - grade_id(__type="s32") 16 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 11 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 18 - grade_id(__type="s32") 17 - low_music_difficult(__type="s32") 11 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - arena_cpu_define - play_style(__type="s32") 1 - arena_class(__type="s32") 19 - grade_id(__type="s32") 18 - low_music_difficult(__type="s32") 12 - high_music_difficult(__type="s32") 12 - is_leggendaria(__type="bool") 1 - CommonBossPhase(val="1") - Event1InternalPhase(val="4") - ExtraBossEventPhase(val="1") - isNewSongAnother12OpenFlg(val="1") - gradeOpenPhase(val="2") - isEiseiOpenFlg(val="1") - WorldTourismOpenList(val="-1") - BPLBattleOpenPhase(val="1") diff --git a/iidx@asphyxia/webui/profile_----detail.pug b/iidx@asphyxia/webui/profile_----detail.pug new file mode 100644 index 0000000..49b2964 --- /dev/null +++ b/iidx@asphyxia/webui/profile_----detail.pug @@ -0,0 +1,60 @@ +//DATA// + profile: DB.FindOne(refid, { collection: 'profile' }) + pcdata: DB.FindOne(refid, { collection: 'pcdata' }) + +- + const version = [ + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ]; + +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(name="version") + each i in version + option(selected=(i==pcdata.version)) #{i} + .field + label.label Name + .body + body #{profile.name} + .field + label.label IIDX ID + .body + body #{profile.idstr} + .field + label.label SP Grade + .body + - const a = pcdata.sgid + if a==-1 + body ---- + else + body #{pcdata.sgid} + .field + label.label DP Grade + .body + - const b = pcdata.dgid + if b==-1 + body ---- + else + body #{pcdata.dgid} diff --git a/iidx@asphyxia/webui/profile_---setting.pug b/iidx@asphyxia/webui/profile_---setting.pug new file mode 100644 index 0000000..289c928 --- /dev/null +++ b/iidx@asphyxia/webui/profile_---setting.pug @@ -0,0 +1,190 @@ +//DATA// + profile: DB.FindOne(refid, { collection: "profile" }) + pcdata: DB.FindOne(refid, { collection: "pcdata" }) + custom: DB.FindOne(refid, { collection: "custom" }) + +- + const version = [ + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ]; + +div + .card + .card-header + p.card-header-title + span.icon + i.mdi.mdi-account-edit + | Settings + .card-content + form(method="post" action="/emit/updateIIDXCustom") + .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") + each i in version + option(selected=(i==pcdata.version)) #{i} + .field + label.label Name + .control + input.input(type="text" name="name", value=profile.name) + //- SKIN + .field + label.label Frame + .control + input.input(type="number" name="frame", value=custom.frame) + .field + label.label Turntable + .control + input.input(type="number" name="turntable", value=custom.turntable) + .field + label.label Note Burst + .control + input.input(type="number" name="note_burst", value=custom.note_burst) + .field + label.label Menu Music + .control + input.input(type="number" name="menu_music", value=custom.menu_music) + .field + label.label Lane Cover + .control + input.input(type="number" name="lane_cover", value=custom.lane_cover) + .field + label.label Category Voice + .control + input.input(type="number" name="category_vox", value=custom.category_vox) + .field + label.label Note Skin + .control + input.input(type="number" name="note_skin", value=custom.note_skin) + .field + label.label Full Combo Splash + .control + input.input(type="number" name="full_combo_splash", value=custom.full_combo_splash) + .field + label.label Note Beam + .control + input.input(type="number" name="note_beam", value=custom.note_beam) + .field + label.label Judgement Font + .control + input.input(type="number" name="judge_font", value=custom.judge_font) + .field + label.label Disable Music Preview + .control + input(type="checkbox" name="disable_musicpreview", checked=Boolean(custom.disable_musicpreview)) + .field + label.label Pacemaker Cover + .control + input.input(type="number" name="pacemaker_cover", value=custom.pacemaker_cover) + .field + label.label VEFX Lock + .control + input(type="checkbox" name="vefx_lock", checked=Boolean(custom.vefx_lock)) + .field + label.label VEFX Lock (Effector) + .control + input.input(type="number" name="effect", value=custom.effect) + .field + label.label Note Burst Size + .control + input.input(type="number" name="bomb_size", value=custom.bomb_size) + .field + label.label Disable HCN Color + .control + input(type="checkbox" name="disable_hcn_color", checked=Boolean(custom.disable_hcn_color)) + .field + label.label First Note Preview + .control + input.input(type="number" name="first_note_preview", value=custom.first_note_preview) + //- APPEND SETTINGS + .field + label.label Rank Folder + .control + input(type="checkbox" name="rank_folder", checked=Boolean(custom.rank_folder)) + .field + label.label Clear State Folder + .control + input(type="checkbox" name="clear_folder", checked=Boolean(custom.clear_folder)) + .field + label.label Difficulty Folder + .control + input(type="checkbox" name="diff_folder", checked=Boolean(custom.diff_folder)) + .field + label.label Alphabet Folder + .control + input(type="checkbox" name="alpha_folder", checked=Boolean(custom.alpha_folder)) + .field + label.label Rival Folder + .control + input(type="checkbox" name="rival_folder", checked=Boolean(custom.rival_folder)) + .field + label.label Rival WIN/LOSE Folder + .control + input(type="checkbox" name="rival_battle_folder", checked=Boolean(custom.rival_battle_folder)) + .field + label.label Rival Info / Venue Top Display + .control + input(type="checkbox" name="rival_info", checked=Boolean(custom.rival_info)) + .field + label.label Hide Playcount + .control + input(type="checkbox" name="hide_playcount", checked=Boolean(custom.hide_playcount)) + .field + label.label Disable Pacemaker Cut-In + .control + input(type="checkbox" name="disable_graph_cutin", checked=Boolean(custom.disable_graph_cutin)) + .field + label.label Classic Hi-SPEED + .control + input(type="checkbox" name="class_hispeed", checked=Boolean(custom.class_hispeed)) + .field + label.label Rival Played Folder + .control + input(type="checkbox" name="rival_played_folder", checked=Boolean(custom.rival_played_folder)) + .field + label.label Hide IIDX ID + .control + input(type="checkbox" name="hide_iidxid", checked=Boolean(custom.hide_iidxid)) + //- QPRO + .field + label.label QPRO Head + .control + input.input(type="number" name="qpro_head", value=custom.qpro_head) + .field + label.label QPRO Hair + .control + input.input(type="number" name="qpro_hair", value=custom.qpro_hair) + .field + label.label QPRO Hand + .control + input.input(type="number" name="qpro_hand", value=custom.qpro_hand) + .field + label.label QPRO Face + .control + input.input(type="number" name="qpro_face", value=custom.qpro_face) + .field + label.label QPRO Body + .control + input.input(type="number" name="qpro_body", value=custom.qpro_body) + .field + button.button.is-primary(type="submit") + span.icon + i.mdi.mdi-check + span Submit diff --git a/iidx@asphyxia/webui/profile_--rival.pug b/iidx@asphyxia/webui/profile_--rival.pug new file mode 100644 index 0000000..fe0d812 --- /dev/null +++ b/iidx@asphyxia/webui/profile_--rival.pug @@ -0,0 +1,118 @@ +//DATA// + profile: DB.FindOne(refid, { collection: "profile" }) + profiles: DB.Find(null, { collection: "profile" }) + rival: DB.Find(refid, { collection: "rival" }) + +- + const rival_list=[["", "None", "0000-0000"]]; + profiles.forEach((res) => { + rival_list.push([res.refid, res.name, res.idstr]) + }); + + const 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/updateIIDXRival") + .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 new file mode 100644 index 0000000..403e716 --- /dev/null +++ b/iidx@asphyxia/webui/profile_-score.pug @@ -0,0 +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} diff --git a/iidx@asphyxia/webui/profile_rivals.pug b/iidx@asphyxia/webui/profile_rivals.pug deleted file mode 100644 index 853094d..0000000 --- a/iidx@asphyxia/webui/profile_rivals.pug +++ /dev/null @@ -1,82 +0,0 @@ -//DATA// - profile: DB.FindOne(refid, { collection: "profile" }) - profiles: DB.Find(null, { collection: "profile" }) - rival: DB.Find(refid, { collection: "rival" }) - -- - const rival_list=[["", "None", "0000-0000"]] - profiles.forEach((res) => { - rival_list.push([res.refid, res.name, res.idstr]) - }) - -div - .card - .card-header - p.card-header-title - span.icon - i.mdi.mdi-account-edit - | Rivals - .card-content - form(method="post" action="/emit/updateIIDXRivalSettings") - .field - input(type="text" name="iidxid", value=profile.idstr readonly hidden) - label.label SP Rivals - .body - .control - .select - select(name="sp_rival1") - each i in rival_list - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="sp_rival2") - each i in rival_list - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="sp_rival3") - each i in rival_list - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="sp_rival4") - each i in rival_list - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="sp_rival5") - each i in rival_list - 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 - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="dp_rival2") - each i in rival_list - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="dp_rival3") - each i in rival_list - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="dp_rival4") - each i in rival_list - option(value=i[0]) #{i[1]} [#{i[2]}] - .control - .select - select(name="dp_rival5") - each i in rival_list - option(value=i[0]) #{i[1]} [#{i[2]}] - .field - button.button.is-primary(type="submit") - span.icon - i.mdi.mdi-check - span Submit From 8fa3349b889e42d312ab99ff4aa5221b42fa45e4 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sat, 17 Feb 2024 15:20:59 +0900 Subject: [PATCH 10/73] IIDX: Added clear/full combo rate, BEGINNER mode clear lamp support --- iidx@asphyxia/README.md | 23 ++- iidx@asphyxia/handlers/music.ts | 222 +++++++++++++++++++----- iidx@asphyxia/index.ts | 4 +- iidx@asphyxia/webui/profile_--rival.pug | 4 +- 4 files changed, 197 insertions(+), 56 deletions(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index de0134c..826ead1 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -33,6 +33,13 @@ Features --- +Known Issues + + - Clear Lamps may display invalid lamps due to missing conversion code + - LEGGENDARIA play records before HEROIC VERSE may not display on higher version due missing conversion code + +--- + Changelogs **v0.1.0** @@ -42,8 +49,8 @@ Changelogs - Added Initial support for HEROIC VERSE - Expanded score array to adapting newer difficulty (SPN ~ DPA [6] -> SPB ~ DPL [10]) - This borked previous score datas recorded with v0.1.0 - - All score data now shared with all version. - - as it doesn't have music_id conversion, it will display incorrect data on certain versions. + - All score data now shared with all version + - as it doesn't have music_id conversion, it will display incorrect data on certain versions - Added Initial customize support (no webui) **v0.1.2** @@ -58,19 +65,19 @@ Changelogs **v0.1.5** - Added Initial support for Resort Anthem - - BEGINNER, LEAGUE, STORY does not work yet. - - Fixed where s_hispeed/d_hispeed doesn't save correctly. + - BEGINNER, LEAGUE, STORY does not work yet + - Fixed where s_hispeed/d_hispeed doesn't save correctly **v0.1.6** - Added Initial support for tricoro - Event savings are broken - Added movie_upload url setting on plugin setting (BISTROVER ~) - - This uses JSON instead of XML and this requires additional setup. (can't test or implement this as I don't own NVIDIA GPU) + - This uses JSON instead of XML and this requires additional setup (can't test or implement this as I don't own NVIDIA GPU) **v0.1.7** - Added Initial support for SPADA - Event savings are broken - - Fixed where rtype didn't save correctly. (BISTROVER ~) + - Fixed where rtype didn't save correctly (BISTROVER ~) **v0.1.8** - Added RIVAL pacemaker support @@ -91,9 +98,11 @@ Changelogs **v0.1.11** - Added Shop Ranking support - - Changed pc.common/gameSystem.systemInfo response not to use pugFile. + - Changed pc.common/gameSystem.systemInfo response not to use pugFile - IIDX_CPUS on models/arena.ts came from asphyxia_route_public **v0.1.12** - Exposed some of pc.common attributes to plugin settings (WIP) - Added Experimental WebUI (WIP) + - Added music.crate/music.breg response + - Fixed Venue Top didn't save correctly (BISTROVER ~) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index bcf1032..53f436a 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -21,7 +21,7 @@ export const musicgetrank: EPR = async (info, data, send) => { [parseInt($(data).attr().iidxid4), await IDtoRef(parseInt($(data).attr().iidxid4))], ]; - let m = [], top = []; + let m = [], top = [], b = []; let score_data: number[]; let indices, temp_mid = 0; if (version < 20) { @@ -37,6 +37,7 @@ export const musicgetrank: EPR = async (info, data, send) => { } m.push(K.ARRAY("s16", score_data)); + if (res.cArray[0] != 0) b.push(K.ARRAY("u16", [temp_mid, res.cArray[0]])); }); for (let i = 0; i < rival_refids.length; i++) { @@ -60,37 +61,7 @@ export const musicgetrank: EPR = async (info, data, send) => { }); } } - else if (version > 19 && version < 21) { - indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; - music_data.forEach((res: score) => { - if (cltype == 0) { - score_data = [-1, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; - } else { - score_data = [-1, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; - } - - m.push(K.ARRAY("s16", score_data)); - }); - - for (let i = 0; i < rival_refids.length; i++) { - if (_.isNaN(rival_refids[i][0])) continue; - - const rival_score = await DB.Find(String(rival_refids[i][1]), - { collection: "score", } - ); - - rival_score.forEach((res: score) => { - if (cltype == 0) { - score_data = [i, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; - } else { - score_data = [i, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; - } - - m.push(K.ARRAY("s16", score_data)); - }); - } - } - else if (version >= 21) { + else if (version >= 20) { if (version >= 27) indices = cltype === 0 ? [0, 1, 2, 3, 4] : [5, 6, 7, 8, 9]; else indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; @@ -102,6 +73,7 @@ export const musicgetrank: EPR = async (info, data, send) => { } m.push(K.ARRAY("s16", score_data)); + if (res.cArray[0] != 0) b.push(K.ARRAY("u16", [res.mid, res.cArray[0]])); }); for (let i = 0; i < rival_refids.length; i++) { @@ -158,14 +130,17 @@ export const musicgetrank: EPR = async (info, data, send) => { return send.object({ style: K.ATTR({type: String(cltype)}), m, + b, top, }); - } else { + } + else { return send.success(); } return send.object({ - m + m, + b }); } @@ -419,23 +394,23 @@ export const musicreg: EPR = async (info, data, send) => { if (_.isNil(score_top)) { if (esArray[clid] > exscore) { - names[clid] = profile.name; - scores[clid] = esArray[clid]; - clflgs[clid] = cArray[clid]; + names[tmp_clid] = profile.name; + scores[tmp_clid] = esArray[clid]; + clflgs[tmp_clid] = cArray[clid]; } else { - names[clid] = profile.name; - scores[clid] = exscore; - clflgs[clid] = cflg; + names[tmp_clid] = profile.name; + scores[tmp_clid] = exscore; + clflgs[tmp_clid] = cflg; } } else { names = score_top.names; scores = score_top.scores; clflgs = score_top.clflgs; - if (exscore > scores[clid]) { - names[clid] = profile.name; - scores[clid] = exscore; - clflgs[clid] = cflg; + if (exscore > scores[tmp_clid]) { + names[tmp_clid] = profile.name; + scores[tmp_clid] = exscore; + clflgs[tmp_clid] = cflg; } } @@ -500,7 +475,11 @@ export const musicreg: EPR = async (info, data, send) => { ]) ); + let crate = 0, frate = 0, cflgs = 0, fcflgs = 0; scores.forEach((rankscore, index) => { + if (rankscore[1] != 1) cflgs += 1; + if (rankscore[1] == 7) fcflgs += 1; + if (index == shop_rank) { shop_rank_data.push( K.ATTR({ @@ -553,12 +532,21 @@ export const musicreg: EPR = async (info, data, send) => { } }); + if (version > 23) { + crate = Math.round((cflgs / shop_rank_data.length) * 1000); + frate = Math.round((fcflgs / shop_rank_data.length) * 1000); + } + else { + crate = Math.round((cflgs / shop_rank_data.length) * 100); + frate = Math.round((fcflgs / shop_rank_data.length) * 100); + } + let result: any = { "@attr": { mid: String(mid), clid: String(clid), - crate: "0", - frate: "0", + crate: String(crate), + frate: String(frate), rankside: String(style), }, ranklist: { @@ -571,6 +559,148 @@ export const musicreg: EPR = async (info, data, send) => { return send.object(result); } +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); + let clid = 0; // SP BEGINNER // + let exscore = (pgnum * 2 + gnum); + + if (version < 20) mid = OldMidToNewMid(mid); + + const music_data: score | null = await DB.FindOne(refid, { + collection: "score", + mid: mid, + }); + + let pgArray = Array(10).fill(0); // PGREAT // + let gArray = Array(10).fill(0); // GREAT // + let mArray = Array(10).fill(0); // MISS // + let cArray = Array(10).fill(0); // CLEAR FLAGS // + let esArray = Array(10).fill(0); // EXSCORE // + let optArray = Array(10).fill(0); // USED OPTION (CastHour) // + let opt2Array = Array(10).fill(0); // USED OPTION (CastHour) // + + if (_.isNil(music_data)) { + pgArray[clid] = pgnum; + gArray[clid] = gnum; + mArray[clid] = -1; + cArray[clid] = cflg; + esArray[clid] = exscore; + } else { + pgArray = music_data.pgArray; + gArray = music_data.gArray; + mArray = music_data.mArray; + cArray = music_data.cArray; + esArray = music_data.esArray; + optArray = music_data.optArray; + opt2Array = music_data.opt2Array; + + const pExscore = esArray[clid]; + if (exscore > pExscore) { + pgArray[clid] = Math.max(pgArray[clid], pgnum); + gArray[clid] = Math.max(gArray[clid], gnum); + esArray[clid] = Math.max(esArray[clid], exscore); + } + + cArray[clid] = Math.max(cArray[clid], cflg); + } + + await DB.Upsert( + refid, + { + collection: "score", + mid: mid, + }, + { + $set: { + pgArray, + gArray, + mArray, + cArray, + esArray, + optArray, + opt2Array, + + [clid]: null, + [clid + 10]: null, + } + } + ); + + return send.success(); +}; + +export const musiccrate: EPR = async (info, data, send) => { + const version = GetVersion(info); + const scores = await DB.Find(null, { + collection: "score", + }); + + let cFlgs: Record = {}, + fcFlgs: Record = {}, + totalFlgs: Record = {}, + cFlgArray: number[], fcFlgArray: number[], totalArray: number[]; + + scores.forEach((res) => { + totalArray = Array(10).fill(0); + cFlgArray = Array(10).fill(0); + fcFlgArray = Array(10).fill(0); + + for (let a = 0; a < 10; a++) { + if (res.cArray[a] != 0) totalArray[a] += 1; + if (res.cArray[a] != 1) cFlgArray[a] += 1; + if (res.cArray[a] == 7) fcFlgArray[a] += 1; + } + + totalFlgs[res.mid] = totalArray; + cFlgs[res.mid] = cFlgArray; + fcFlgs[res.mid] = fcFlgArray; + }); + + let c = []; + let indices = [1, 2, 3, 6, 7, 8]; + for (const key in totalFlgs) { + let cRate = Array(10).fill(-1); + let fcRate = Array(10).fill(-1); + + for (let a = 0; a < cRate.length; a++) { + if (version > 23) { + cRate[a] = Math.round((cFlgs[key][a] / totalFlgs[key][a]) * 1000); + fcRate[a] = Math.round((fcFlgs[key][a] / totalFlgs[key][a]) * 1000); + } else { + cRate[a] = Math.round((cFlgs[key][a] / totalFlgs[key][a]) * 100); + fcRate[a] = Math.round((fcFlgs[key][a] / totalFlgs[key][a]) * 100); + } + } + + if (version > 26) { + c.push( + K.ARRAY("s32", [...cRate, ...fcRate], { mid: key }), + ); + } else { + if (version < 20) { // TODO:: figure out why this doesn't work in Resort Anthem // + c.push( + K.ARRAY("u8", [...indices.map(i => cRate[i])], { mid: String(NewMidToOldMid(Number(key))) }), + ); + } else { + c.push( + K.ARRAY("u8", [...indices.map(i => cRate[i]), ...indices.map(i => fcRate[i])], { mid: key }), + ); + } + } + } + + return send.object({ + c + }) +} + // this is not valid response // export const musicarenacpu: EPR = async (info, data, send) => { const version = GetVersion(info); diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 5ca53cb..ea16ce4 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -1,6 +1,6 @@ import { pccommon, pcreg, pcget, pcgetname, pctakeover, pcvisit, pcsave, pcoldget, pcgetlanegacha, pcdrawlanegacha, pcshopregister } from "./handlers/pc"; import { shopgetname, shopsavename, shopgetconvention, shopsetconvention } from "./handlers/shop"; -import { musicreg, musicgetrank, musicappoint, musicarenacpu } from "./handlers/music"; +import { musicreg, musicgetrank, musicappoint, musicarenacpu, musiccrate, musicbreg } from "./handlers/music"; import { graderaised } from "./handlers/grade"; import { gssysteminfo } from "./handlers/gamesystem"; import { updateRivalSettings, updateCustomSettings } from "./handlers/webui"; @@ -180,9 +180,11 @@ export function register() { MultiRoute("shop.getconvention", shopgetconvention); MultiRoute("shop.setconvention", shopsetconvention); + MultiRoute("music.crate", musiccrate); MultiRoute("music.getrank", musicgetrank); MultiRoute("music.appoint", musicappoint); MultiRoute("music.reg", musicreg); + MultiRoute("music.breg", musicbreg); MultiRoute("music.arenaCPU", musicarenacpu); MultiRoute("grade.raised", graderaised); diff --git a/iidx@asphyxia/webui/profile_--rival.pug b/iidx@asphyxia/webui/profile_--rival.pug index fe0d812..ee524f9 100644 --- a/iidx@asphyxia/webui/profile_--rival.pug +++ b/iidx@asphyxia/webui/profile_--rival.pug @@ -4,12 +4,12 @@ rival: DB.Find(refid, { collection: "rival" }) - - const rival_list=[["", "None", "0000-0000"]]; + let rival_list=[["", "None", "0000-0000"]]; profiles.forEach((res) => { rival_list.push([res.refid, res.name, res.idstr]) }); - const my_sp_rival = [], my_dp_rival = []; + 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; From 28538c17dd197ad6e0eb58711868d35a307fa41d Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sun, 18 Feb 2024 19:03:26 +0900 Subject: [PATCH 11/73] IIDX: Exposed more pc.common attributes to plugin settings IIDX: Fixed couple of events saving --- iidx@asphyxia/handlers/pc.ts | 202 +++++++++++++++++++++++------- iidx@asphyxia/index.ts | 132 ++++++++++++++++++- iidx@asphyxia/models/pcdata.ts | 4 +- iidx@asphyxia/pug/LDJ/22pcget.pug | 10 +- iidx@asphyxia/pug/LDJ/23pcget.pug | 13 +- 5 files changed, 297 insertions(+), 64 deletions(-) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 766fec0..272da90 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -11,12 +11,10 @@ export const pccommon: EPR = async (info, data, send) => { const version = GetVersion(info); let result: any = { - "@attr": { - expire: 300, - }, - ir: K.ATTR({ - beat: String(U.GetConfig("BeatPhase")), - }), + "@attr": { expire: 300 }, + ir: K.ATTR({ beat: String(U.GetConfig("BeatPhase")) }), + expert: K.ATTR({ phase: String(U.GetConfig("ExpertPhase")) }), + expert_random_secret: K.ATTR({ phase: String(U.GetConfig("ExpertRandomPhase")) }), } // have no idea what some of attribute or value does // @@ -63,37 +61,35 @@ export const pccommon: EPR = async (info, data, send) => { case 21: result = { ...result, - limit: K.ATTR({ phase: String(4) }), - boss: K.ATTR({ phase: String(3) }), - boss1: K.ATTR({ phase: String(4) }), + limit: K.ATTR({ phase: String(U.GetConfig("sp_limit")) }), + boss: K.ATTR({ phase: String(U.GetConfig("sp_boss")) }), + boss1: K.ATTR({ phase: String(U.GetConfig("sp_boss1")) }), medal: K.ATTR({ phase: String(1) }), vip_pass_black: {}, - cafe: K.ATTR({ open: String(1) }), - tricolettepark: K.ATTR({ open: String(1) }), - tricolettepark_skip: K.ATTR({ phase: String(2) }), + cafe: K.ATTR({ open: String(Number(U.GetConfig("sp_cafe"))) }), + tricolettepark: K.ATTR({ open: String(Number(U.GetConfig("sp_tripark"))) }), + tricolettepark_skip: K.ATTR({ phase: String(U.GetConfig("sp_triparkskip")) }), deller_bonus: K.ATTR({ open: String(1) }), gumi_event: {}, newsong_another: K.ATTR({ open: String(1) }), - superstar: K.ATTR({ phase: String(2) }), + superstar: K.ATTR({ phase: String(U.GetConfig("sp_superstar")) }), } break; case 22: result = { ...result, - pre_play: K.ATTR({ phase: String(2) }), - expert: K.ATTR({ phase: String(2) }), - toho_remix: K.ATTR({ phase: String(2) }), - expert_random_secret: K.ATTR({ phase: String(2) }), - limit: K.ATTR({ phase: String(9) }), - boss: K.ATTR({ phase: String(3) }), - chrono_diver: K.ATTR({ phase: String(3) }), - qpronicle_chord: K.ATTR({ phase: String(2) }), + pre_play: K.ATTR({ phase: String(U.GetConfig("pd_preplay")) }), + toho_remix: K.ATTR({ phase: String(U.GetConfig("pd_tohoremix")) }), + limit: K.ATTR({ phase: String(U.GetConfig("pd_limit")) }), + boss: K.ATTR({ phase: String(U.GetConfig("pd_boss")) }), + chrono_diver: K.ATTR({ phase: String(U.GetConfig("pd_chronodiver")) }), + qpronicle_chord: K.ATTR({ phase: String(U.GetConfig("pd_qproniclechord")) }), vip_pass_black: {}, - cc_collabo_event: K.ATTR({ phase: String(3) }), + cc_collabo_event: K.ATTR({ phase: String(U.GetConfig("pd_cccollabo")) }), cc_collabo_license: {}, deller_bonus: K.ATTR({ open: String(1) }), newsong_another: K.ATTR({ open: String(1) }), - common_timeshift_phase: K.ATTR({ phase: String(0) }), + common_timeshift_phase: K.ATTR({ phase: String(U.GetConfig("pd_timephase")) }), expert_secret_full_open: {}, eappli_expert: {}, eaorder: {}, @@ -102,12 +98,10 @@ export const pccommon: EPR = async (info, data, send) => { case 23: result = { ...result, - expert: K.ATTR({ phase: String(1) }), - expert_random_secret: K.ATTR({ phase: String(2) }), - boss: K.ATTR({ phase: String(3) }), - event1_phase: K.ATTR({ phase: String(1) }), - event2_phase: K.ATTR({ phase: String(2) }), - extra_boss_event: K.ATTR({ phase: String(30) }), + boss: K.ATTR({ phase: String(U.GetConfig("cp_boss")) }), + event1_phase: K.ATTR({ phase: String(U.GetConfig("cp_event1")) }), + event2_phase: K.ATTR({ phase: String(U.GetConfig("cp_event2")) }), + extra_boss_event: K.ATTR({ phase: String(30) }), // TODO:: verify // vip_pass_black: {}, event1_ranbow_ticket: {}, deller_bonus: K.ATTR({ open: String(1) }), @@ -118,7 +112,7 @@ export const pccommon: EPR = async (info, data, send) => { djlevel_result: {}, virtual_coin: K.ATTR({ phase: String(1) }), reflec_volzza_collabo: {}, - bemani_summer2016: K.ATTR({ phase: String(2) }), + bemani_summer2016: K.ATTR({ phase: String(U.GetConfig("cp_bemanisummer")) }), } break; case 24: // asphyxia_route_public // @@ -129,14 +123,11 @@ export const pccommon: EPR = async (info, data, send) => { newsong_another: K.ATTR({ open: String(1) }), expert_secret_full_open: {}, system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), - expert: K.ATTR({ phase: String(1) }) } break; case 27: result = { ...result, - expert: K.ATTR({ phase: String(1) }), - expert_random_secret: K.ATTR({ phase: String(1) }), boss: K.ATTR({ phase: String(1) }), vip_pass_black: {}, deller_bonus: K.ATTR({ open: String(1) }), @@ -156,8 +147,6 @@ export const pccommon: EPR = async (info, data, send) => { ...result, movie_agreement: K.ATTR({ version: String(1) }), movie_upload: K.ATTR({ url: String(U.GetConfig("bo_movieupload")) }), - expert: K.ATTR({ phase: String(1) }), - expert_random_secret: K.ATTR({ phase: String(1) }), boss: K.ATTR({ phase: String(1) }), vip_pass_black: {}, eisei: K.ATTR({ open: String(1) }), @@ -180,8 +169,6 @@ export const pccommon: EPR = async (info, data, send) => { ...result, movie_agreement: K.ATTR({ version: String(1) }), movie_upload: K.ATTR({ url: String(U.GetConfig("bo_movieupload")) }), - expert: K.ATTR({ phase: String(1) }), - expert_random_secret: K.ATTR({ phase: String(1) }), boss: K.ATTR({ phase: String(1) }), vip_pass_black: {}, eisei: K.ATTR({ open: String(1) }), @@ -514,11 +501,29 @@ export const pcget: EPR = async (info, data, send) => { tricolettepark = null, boss1 = null, chrono_diver = null, + qpronicle_chord = null, + qpronicle_phase3 = null, + pendual_talis = null, + open_tokotoko = null, + mystery_line = null, + event_1 = null, + event_1s = null, evtArray = [], evtArray2 = []; switch (version) { case 21: + 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.durability)) boss1.durability = Base64toBuffer(boss1.durability).toString("hex"); case 22: + 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" }); + if (_.isNil(pendual_talis)) pendual_talis = { point: 0 }; + + qpronicle_chord = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_chord" }); + qpronicle_phase3 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_phase3" }); case 23: if (!_.isNil(pcdata.sp_mlist)) { pcdata.sp_mlist = Base64toBuffer(pcdata.sp_mlist).toString("hex"); @@ -530,20 +535,13 @@ export const pcget: EPR = async (info, data, send) => { if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).toString("hex"); else if (!_.isNil(pcdata.st_tokimeki)) pcdata.st_tokimeki = Base64toBuffer(pcdata.st_tokimeki).toString("hex"); - if (version == 21) { - 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.durability)) boss1.durability = Base64toBuffer(boss1.durability).toString("hex"); - } else if (version == 22) { - chrono_diver = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "chrono_diver" }); - } + 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" }); break; default: - let event_1 = await DB.Find(refid, { collection: "event_1", version: version }); - let event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version }); + event_1 = await DB.Find(refid, { collection: "event_1", version: version }); + event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version }); if (event_1.length > 0) { for (let evt of event_1) { @@ -664,6 +662,11 @@ export const pcget: EPR = async (info, data, send) => { link5, tricolettepark, chrono_diver, + qpronicle_chord, + qpronicle_phase3, + pendual_talis, + open_tokotoko, + mystery_line, wArray, bArray, }); @@ -1647,6 +1650,62 @@ export const pcsave: EPR = async (info, data, send) => { ); } + if (!_.isNil($(data).element("qpronicle_chord"))) { + let event_data = { + is_first_select_map: parseInt($(data).attr("qpronicle_chord").is_first_select_map), + last_select_map: parseInt($(data).attr("qpronicle_chord").last_select_map), + story_view_list: parseInt($(data).attr("qpronicle_chord").story_view_list), + is_use_login_bonus: parseInt($(data).attr("qpronicle_chord").is_use_login_bonus), + patona_leader: parseInt($(data).attr("qpronicle_chord").patona_leader), + patona_sub_1: parseInt($(data).attr("qpronicle_chord").patona_sub_1), + patona_sub_2: parseInt($(data).attr("qpronicle_chord").patona_sub_2), + rare_enemy_damage1: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage1), + rare_enemy_damage2: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage2), + rare_enemy_damage3: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage3), + rare_enemy_damage4: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage4), + rare_enemy_damage5: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage5), + }; + + // TODO:: patona_data // + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "qpronicle_chord", + }, + { + $set: event_data, + } + ); + } + + if (!_.isNil($(data).element("qpronicle_phase3"))) { + let event_data = { + stairs_num: parseInt($(data).attr("qpronicle_phase3").stairs_num), + flame_list: parseInt($(data).attr("qpronicle_phase3").flame_list), + lane_list: parseInt($(data).attr("qpronicle_phase3").lane_list), + map0_select: parseInt($(data).attr("qpronicle_phase3").map0_select), + map1_select: parseInt($(data).attr("qpronicle_phase3").map1_select), + map2_select: parseInt($(data).attr("qpronicle_phase3").map2_select), + map3_select: parseInt($(data).attr("qpronicle_phase3").map3_select), + map4_select: parseInt($(data).attr("qpronicle_phase3").map4_select), + map5_select: parseInt($(data).attr("qpronicle_phase3").map5_select), + map6_select: parseInt($(data).attr("qpronicle_phase3").map6_select), + }; + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "qpronicle_phase3", + }, + { + $set: event_data, + } + ); + } + if (!_.isNil($(data).element("boss_event_3"))) { let boss_event_3 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "boss_event_3" }); let event_data; @@ -1770,6 +1829,53 @@ export const pcsave: EPR = async (info, data, send) => { if (!_.isNil($(data).element("orb_data"))) pcdata.orb += parseInt($(data).attr("orb_data").add_orb); // TODO:: fix event saving, these event savings are broken. // + if (!_.isNil($(data).element("event1_data"))) { + let event_data = { + point_map_0: parseInt($(data).attr("event1_data").point_map_0), + point_map_1: parseInt($(data).attr("event1_data").point_map_1), + point_map_2: parseInt($(data).attr("event1_data").point_map_2), + point_map_3: parseInt($(data).attr("event1_data").point_map_3), + point_map_4: parseInt($(data).attr("event1_data").point_map_4), + last_map: parseInt($(data).attr("event1_data").last_map), + hold_point: parseInt($(data).attr("event1_data").hold_point), + rank_point: parseInt($(data).attr("event1_data").rank_point), + tips_list: parseInt($(data).attr("event1_data").tips_list), + use_gift_point: $(data).element("event1_data").bool("use_gift_point"), + }; + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "event1_data", + }, + { + $set: event_data, + } + ); + } + + if (!_.isNil($(data).element("event2_data"))) { + let event_data = { + now_stay_area: parseInt($(data).attr("event2_data").now_stay_area), + now_stay_note_grade: parseInt($(data).attr("event2_data").now_stay_note_grade), + play_num: parseInt($(data).attr("event2_data").play_num), + stop_area_time: parseInt($(data).attr("event2_data").stop_area_time), + }; + + // TODO:: event2_area_data // + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "event2_data", + }, + { + $set: event_data, + } + ); + } } else if (version == 24) { pcdata.sach = parseInt($(data).attr().s_achi); diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index ea16ce4..5f6f847 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -24,6 +24,16 @@ export function register() { type: "integer", default: 3, }); + R.Config("ExpertPhase", { + name: "Expert Phase", + type: "integer", + default: 2, + }); + R.Config("ExpertRandomPhase", { + name: "Expert Random Phase", + type: "integer", + default: 2, + }); // Resort Anthem // R.Config("ra_cmd_gmbl", { @@ -97,13 +107,13 @@ export function register() { // tricoro // R.Config("tr_limit", { - name: "Limit Burst Phase", + name: "Limit Burst Phase (TR)", type: "integer", - default: 4, + default: 24, // TODO:: verify // }); R.Config("tr_boss", { name: "Event Phase (TR)", - desc: "RED/BLUE/YELLOW", + desc: "RED / BLUE / YELLOW", type: "integer", default: 3, }); @@ -137,6 +147,120 @@ export function register() { default: true, }); + // SPADA // + R.Config("sp_limit", { + name: "Limit Burst Phase (SP)", + type: "integer", + default: 24, + }); + R.Config("sp_boss", { + name: "Event Phase (SP)", + desc: "Spada†leggendaria Phase", + type: "integer", + default: 3, + }); + R.Config("sp_boss1", { + name: "Qprogue Phase (SP)", + type: "integer", + default: 4, + }); + R.Config("sp_cafe", { + name: "Café de Tran", + desc: "Enable Café de Tran Event (SPADA)", + type: "boolean", + default: true, + }); + R.Config("sp_tripark", { + name: "Everyone's SPACEWAR!!", + desc: "Enable クプロ・ミミニャミ・パステルくんのみんなで宇宙戦争!! Event (SPADA)", + type: "boolean", + default: true, + }); + R.Config("sp_triparkskip", { + name: "Everyone's SPACEWAR!! Skip", + desc: "Skips クプロ・ミミニャミ・パステルくんのみんなで宇宙戦争!! Event Scenes", + type: "integer", + default: 2, + }); + R.Config("sp_superstar", { + name: "SUPER STAR -MITSURU-", + desc: "SUPER STAR 満 -MITSURU- 完全復活祭 Phase", + type: "integer", + default: 2, + }); + + // PENDUAL // + R.Config("pd_preplay", { + name: "SUPER FUTURE 2323 Phase", + type: "integer", + default: 2, + }); + R.Config("pd_tohoremix", { + name: "BEMANI X TOHO", + desc: "BEMANI×TOHO REITAISAI 2015 project Phase", + type: "integer", + default: 2, + }); + R.Config("pd_limit", { + name: "Chrono Chaser Phase", + type: "integer", + default: 9, + }); + R.Config("pd_boss", { + name: "Event Phase (SP)", + desc: "Chrono Seeker / Qpronicle Chord / PENDUAL TALISMAN", + type: "integer", + default: 3, + }); + R.Config("pd_chronodiver", { + name: "Chrono Seeker", + type: "integer", + default: 3, + }); + R.Config("pd_qproniclechord", { + name: "Qpronicle Chord", + type: "integer", + default: 2, + }); + R.Config("pd_cccollabo", { + name: "Coca-Cola×BEMANI", + desc: "Coca-Cola×BEMANI 店舗限定ロケテスト Phase", + type: "integer", + default: 3, + }); + R.Config("pd_timephase", { + name: "Time Phase", + type: "integer", + desc: "Default / Present / Future", + default: 0, + }); + + // copula // + R.Config("cp_boss", { + name: "Event Phase (CP)", + desc: "開通!とことこライン / Mystery Line", + type: "integer", + default: 2, + }); + R.Config("cp_event1", { + name: "開通!とことこライン", + desc: "開通!とことこライン Phase", + type: "integer", + default: 1, + }); + R.Config("cp_event2", { + name: "Mystery Line", + desc: "Mystery Line Phase", + type: "integer", + default: 2, + }); + R.Config("cp_bemanisummer", { + name: "BEMANI Summer 2016", + desc: "NEW Generation 夏の流星フェスタ2016 Phase", + type: "integer", + default: 2, + }); + // BISTROVER ~ (common) // R.Config("bo_movieupload", { name: "Movie Upload URL", @@ -144,7 +268,7 @@ export function register() { default: "http://localhost/" }); - // TODO:: Reflect data when version dropdown menu has been changed + // TODO:: Reflect data when version dropdown menu has been changed // R.WebUIEvent("updateIIDXRival", updateRivalSettings); R.WebUIEvent("updateIIDXCustom", updateCustomSettings); diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 6558220..1935b62 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -178,8 +178,8 @@ export interface pcdata { st_sp_fluctuation: number; // RESIDENT // st_dp_fluctuation: number; - - event_play_num: number; // event (Heroic Verse) / / + + event_play_num: number; // event (HEROIC VERSE) // event_last_select_id: number; event_last_select_type: number; // CastHour // event_story_prog: number; // BISTROVER // diff --git a/iidx@asphyxia/pug/LDJ/22pcget.pug b/iidx@asphyxia/pug/LDJ/22pcget.pug index 74bac33..8d7dd67 100644 --- a/iidx@asphyxia/pug/LDJ/22pcget.pug +++ b/iidx@asphyxia/pug/LDJ/22pcget.pug @@ -36,11 +36,13 @@ IIDX22pc(status="0") //-step_assist(iidx_id iidx_id_str name hair head face body hand) if chrono_diver != null chrono_diver(play_count=chrono_diver.play_count present_unlock=chrono_diver.present_unlock future_unlock=chrono_diver.future_unlock success_count_0_n=chrono_diver.success_count_0_n success_count_0_h=chrono_diver.success_count_0_h success_count_0_a=chrono_diver.success_count_0_a success_count_1_n=chrono_diver.success_count_1_n success_count_1_h=chrono_diver.success_count_1_h success_count_1_a=chrono_diver.success_count_1_a success_count_2_n=chrono_diver.success_count_2_n success_count_2_h=chrono_diver.success_count_2_h success_count_2_a=chrono_diver.success_count_2_a success_count_3_n=chrono_diver.success_count_3_n success_count_3_h=chrono_diver.success_count_3_h success_count_3_a=chrono_diver.success_count_3_a story_list=chrono_diver.story_list) - //-qpronicle_chord(is_first_select_map last_select_map story_view_list is_login_bonus patona_leader patona_sub_1 patona_sub_2 rare_enemy_damage1 rare_enemy_damage2 rare_enemy_damage3 rare_enemy_damage4 rare_enemy_damage5) - patona_data(patona_no level exp affection dissatisfaction) - //-qpronicle_phase3(stairs_num flame_list lane_list map0_select map1_select map2_select map3_select map5_select map6_select is_love_scene_skip) + if qpronicle_chord != null + qpronicle_chord(is_first_select_map=qpronicle_chord.is_first_select_map last_select_map=qpronicle_chord.last_select_map story_view_list=qpronicle_chord.story_view_list is_login_bonus=qpronicle_chord.is_use_login_bonus patona_leader=qpronicle_chord.patona_leader patona_sub_1=qpronicle_chord.patona_sub_1 patona_sub_2=qpronicle_chord.patona_sub_2 rare_enemy_damage1=qpronicle_chord.rare_enemy_damage1 rare_enemy_damage2=qpronicle_chord.rare_enemy_damage2 rare_enemy_damage3=qpronicle_chord.rare_enemy_damage3 rare_enemy_damage4=qpronicle_chord.rare_enemy_damage4 rare_enemy_damage5=qpronicle_chord.rare_enemy_damage5) + //-patona_data(patona_no level exp affection dissatisfaction) + if qpronicle_phase3 != null + qpronicle_phase3(stairs_num=qpronicle_phase3.stairs_num flame_list=qpronicle_phase3.flame_list lane_list=qpronicle_phase3.lane_list map0_select=qpronicle_phase3.map0_select map1_select=qpronicle_phase3.map1_select map2_select=qpronicle_phase3.map2_select map3_select=qpronicle_phase3.map3_select map4_select=qpronicle_phase3.map4_select map5_select=qpronicle_phase3.map5_select map6_select=qpronicle_phase3.map6_select is_love_scene_skip="1") qpronicle_love(music_list="-1") - boss_event_3(music_list="-1" bonus_point="0") + boss_event_3(music_list="-1" bonus_point=pendual_talis.point) //-chaser(phase attack exist_age summon_gate success failed damage_point boss_hp) ues_music(__type="u32" __count="40") achievements(pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp last_weekly=pcdata.achi_lastweekly weekly_num=pcdata.achi_weeklynum visit_flg=pcdata.achi_visitflg rival_crush=pcdata.achi_rivalcrush) diff --git a/iidx@asphyxia/pug/LDJ/23pcget.pug b/iidx@asphyxia/pug/LDJ/23pcget.pug index e83b729..7d1aec6 100644 --- a/iidx@asphyxia/pug/LDJ/23pcget.pug +++ b/iidx@asphyxia/pug/LDJ/23pcget.pug @@ -38,12 +38,13 @@ IIDX23pc(status="0") qpronicle_love(music_list="-1") achievements(pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp last_weekly=pcdata.achi_lastweekly weekly_num=pcdata.achi_weeklynum visit_flg=pcdata.achi_visitflg rival_crush=pcdata.achi_rivalcrush) trophy(__type="s64" __count="10") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]} - //- - event1_data(point_map_0 point_map_1 point_map_2 point_map_3 point_map_4 last_map hold_point rank_point tips_list gift_point) - event1_assist(iidx_id iidx_id_str name hair head face body hand) - event2_data(play_num now_area now_note_grade stop_area_time) - event2_area_data(area_no area_play normal_point hyper_point another_point) - onemore_data(defeat_0 defeat_1 defeat_2 defeat_3 defeat_4 defeat_5 challenge_num_n challenge_num_h challenge_num_a) + if open_tokotoko != null + event1_data(point_map_0=open_tokotoko.point_map_0 point_map_1=open_tokotoko.point_map_1 point_map_2=open_tokotoko.point_map_2 point_map_3=open_tokotoko.point_map_3 point_map_4=open_tokotoko.point_map_4 last_map=open_tokotoko.last_map hold_point=open_tokotoko.hold_point rank_point=open_tokotoko.rank_point tips_list=open_tokotoko.tips_list gift_point="0") + //-event1_assist(iidx_id iidx_id_str name hair head face body hand) + if mystery_line != null + event2_data(play_num=mystery_line.play_num now_area=mystery_line.now_stay_area now_note_grade=mystery_line.now_stay_note_grade stop_area_time=mystery_line.stop_area_time) + //-event2_area_data(area_no area_play normal_point hyper_point another_point) + //-onemore_data(defeat_0 defeat_1 defeat_2 defeat_3 defeat_4 defeat_5 challenge_num_n challenge_num_h challenge_num_a) reflec_collabo(phase1_music_list="-1" phase2_music_list="-1") destiny_catharsis(music_bit="-1") bemani_summer_collabo(music_bit="-1") From c180ee208fbe14f73b7e05b87015f2cda5392391 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Mon, 19 Feb 2024 04:14:33 +0900 Subject: [PATCH 12/73] IIDX: Exposed more pc.common/gameSystem.systemInfo attributes to plugin settings - 2 --- iidx@asphyxia/README.md | 3 +- iidx@asphyxia/handlers/gamesystem.ts | 22 +++--- iidx@asphyxia/handlers/music.ts | 77 +++++++++++-------- iidx@asphyxia/handlers/pc.ts | 44 +++++------ iidx@asphyxia/index.ts | 107 +++++++++++++++++++++++++-- 5 files changed, 181 insertions(+), 72 deletions(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 826ead1..00b01f8 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -105,4 +105,5 @@ Changelogs - Exposed some of pc.common attributes to plugin settings (WIP) - Added Experimental WebUI (WIP) - Added music.crate/music.breg response - - Fixed Venue Top didn't save correctly (BISTROVER ~) + - Fixed where Venue Top didn't save correctly (BISTROVER ~) + - Fixed where music.appoint send empty response even rival has score data when player doesn't have score data diff --git a/iidx@asphyxia/handlers/gamesystem.ts b/iidx@asphyxia/handlers/gamesystem.ts index 566a5fd..4e5bf7b 100644 --- a/iidx@asphyxia/handlers/gamesystem.ts +++ b/iidx@asphyxia/handlers/gamesystem.ts @@ -7,7 +7,7 @@ export const gssysteminfo: EPR = async (info, data, send) => { let result: any = { arena_schedule: { - phase: K.ITEM("u8", 2), + phase: K.ITEM("u8", U.GetConfig("ArenaPhase")), start: K.ITEM("u32", 1605784800), end: K.ITEM("u32", 4102326000) }, @@ -50,11 +50,11 @@ export const gssysteminfo: EPR = async (info, data, send) => { result = { ...result, CommonBossPhase: K.ATTR({ val: String(3) }), - Event1InternalPhase: K.ATTR({ val: String(5) }), - ExtraBossEventPhase: K.ATTR({ val: String(3) }), - isNewSongAnother12OpenFlg: K.ATTR({ val: String(1) }), - gradeOpenPhase: K.ATTR({ val: String(2) }), - isEiseiOpenFlg: K.ATTR({ val: String(1) }), + Event1InternalPhase: K.ATTR({ val: String(U.GetConfig("ch_event")) }), + ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("ch_extraboss")) }), + isNewSongAnother12OpenFlg: K.ATTR({ val: String(Number(U.GetConfig("NewSongAnother12"))) }), + gradeOpenPhase: K.ATTR({ val: String(U.GetConfig("Grade")) }), + isEiseiOpenFlg: K.ATTR({ val: String(Number(U.GetConfig("Eisei"))) }), WorldTourismOpenList: K.ATTR({ val: String(-1) }), BPLBattleOpenPhase: K.ATTR({ val: String(2) }), } @@ -63,11 +63,11 @@ export const gssysteminfo: EPR = async (info, data, send) => { result = { ...result, CommonBossPhase: K.ATTR({ val: String(3) }), - Event1InternalPhase: K.ATTR({ val: String(5) }), - ExtraBossEventPhase: K.ATTR({ val: String(3) }), - isNewSongAnother12OpenFlg: K.ATTR({ val: String(1) }), - gradeOpenPhase: K.ATTR({ val: String(2) }), - isEiseiOpenFlg: K.ATTR({ val: String(1) }), + Event1InternalPhase: K.ATTR({ val: String(U.GetConfig("rs_event")) }), + ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("rs_extraboss")) }), + isNewSongAnother12OpenFlg: K.ATTR({ val: String(Number(U.GetConfig("NewSongAnother12"))) }), + gradeOpenPhase: K.ATTR({ val: String(U.GetConfig("Grade")) }), + isEiseiOpenFlg: K.ATTR({ val: String(Number(U.GetConfig("Eisei"))) }), WorldTourismOpenList: K.ATTR({ val: String(-1) }), BPLBattleOpenPhase: K.ATTR({ val: String(2) }), } diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 53f436a..ee17b81 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -170,18 +170,18 @@ export const musicappoint: EPR = async (info, data, send) => { [clid]: { $exists: true }, }); - if (_.isNil(music_data)) return send.success(); - let mydata, option = 0, option2 = 0; - if (version >= 27) { - if (!_.isNil(music_data.optArray) && version > 27) { - option = music_data.optArray[clid]; - option2 = music_data.opt2Array[clid]; - } + if (!_.isNil(music_data)) { + if (version >= 27) { + if (!_.isNil(music_data.optArray) && version > 27) { + option = music_data.optArray[clid]; + option2 = music_data.opt2Array[clid]; + } - mydata = Base64toBuffer(music_data[clid]); + mydata = Base64toBuffer(music_data[clid]); + } + else mydata = K.ITEM("bin", Base64toBuffer(music_data[clid])); } - else mydata = K.ITEM("bin", Base64toBuffer(music_data[clid])); /*** ctype [-1] - DEFAULT @@ -202,34 +202,35 @@ export const musicappoint: EPR = async (info, data, send) => { // OTHERS // let other_refid, other_musicdata: score | null, other_pcdata, other_profile, sdata = null; - switch (ctype) { - case 1: - if (_.isNaN(subtype)) break; + if (!_.isNaN(subtype)) { + switch (ctype) { + case 1: + other_refid = await IDtoRef(subtype); + other_profile = await ReftoProfile(other_refid); + other_pcdata = await ReftoPcdata(other_refid, version); + other_musicdata = await DB.FindOne(other_refid, { + collection: "score", + mid: mid, + [clid]: { $exists: true }, + }); + if (_.isNaN(other_pcdata) || _.isNil(other_musicdata)) break; - other_refid = await IDtoRef(subtype); - other_profile = await ReftoProfile(other_refid); - other_pcdata = await ReftoPcdata(other_refid, version); - other_musicdata = await DB.FindOne(other_refid, { - collection: "score", - mid: mid, - [clid]: { $exists: true }, - }); - if (_.isNaN(other_pcdata) || _.isNil(other_musicdata)) break; + sdata = K.ITEM("bin", Base64toBuffer(other_musicdata[clid]), { + score: String(other_musicdata.esArray[clid]), + pid: String(other_profile[1]), + name: String(other_profile[0]), + riidxid: String(other_profile[2]) + }); + break; - sdata = K.ITEM("bin", Base64toBuffer(other_musicdata[clid]), { - score: String(other_musicdata.esArray[clid]), - pid: String(other_profile[1]), - name: String(other_profile[0]), - riidxid: String(other_profile[2]) - }); - break; - - default: - break; + default: + break; + } } if (version >= 27) { - let my_gauge_data = Base64toBuffer(music_data[clid + 10]); + let my_gauge_data = null; + if (!_.isNil(music_data)) my_gauge_data = Base64toBuffer(music_data[clid + 10]); if (!_.isNil(sdata)) { if (_.isNil(other_musicdata.optArray)) { // temp // @@ -252,6 +253,14 @@ export const musicappoint: EPR = async (info, data, send) => { gauge_data: K.ITEM("bin", Base64toBuffer(other_musicdata[clid + 10])) }; + if (_.isNil(mydata) && _.isNil(sdata)) return send.success(); + + if (_.isNil(mydata)) { + return send.object({ + sdata, + }); + } + return send.object({ "@attr": { my_option: option, my_option2: option2 }, // CastHour // mydata: K.ITEM("bin", mydata), @@ -260,6 +269,8 @@ export const musicappoint: EPR = async (info, data, send) => { }); } + if (_.isNil(mydata) && _.isNil(sdata)) return send.success(); + return send.object({ "@attr": { my_option: option, my_option2: option2 }, // CastHour // mydata: K.ITEM("bin", mydata), @@ -267,6 +278,8 @@ export const musicappoint: EPR = async (info, data, send) => { }); } + if (_.isNil(mydata) && _.isNil(sdata)) return send.success(); + if (!_.isNil(sdata)) { return send.object({ mydata, diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 272da90..d8912ec 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -71,7 +71,7 @@ export const pccommon: EPR = async (info, data, send) => { tricolettepark_skip: K.ATTR({ phase: String(U.GetConfig("sp_triparkskip")) }), deller_bonus: K.ATTR({ open: String(1) }), gumi_event: {}, - newsong_another: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), superstar: K.ATTR({ phase: String(U.GetConfig("sp_superstar")) }), } break; @@ -88,7 +88,7 @@ export const pccommon: EPR = async (info, data, send) => { cc_collabo_event: K.ATTR({ phase: String(U.GetConfig("pd_cccollabo")) }), cc_collabo_license: {}, deller_bonus: K.ATTR({ open: String(1) }), - newsong_another: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), common_timeshift_phase: K.ATTR({ phase: String(U.GetConfig("pd_timephase")) }), expert_secret_full_open: {}, eappli_expert: {}, @@ -105,7 +105,7 @@ export const pccommon: EPR = async (info, data, send) => { vip_pass_black: {}, event1_ranbow_ticket: {}, deller_bonus: K.ATTR({ open: String(1) }), - newsong_another: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), expert_secret_full_open: {}, remocon_collabo: {}, ravemania_collabo: {}, @@ -120,7 +120,7 @@ export const pccommon: EPR = async (info, data, send) => { case 26: result = { ...result, - newsong_another: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), expert_secret_full_open: {}, system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), } @@ -128,14 +128,14 @@ export const pccommon: EPR = async (info, data, send) => { case 27: result = { ...result, - boss: K.ATTR({ phase: String(1) }), + boss: K.ATTR({ phase: String(U.GetConfig("hv_boss")) }), vip_pass_black: {}, deller_bonus: K.ATTR({ open: String(1) }), - newsong_another: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), expert_secret_full_open: {}, system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), - extra_boss_event: K.ATTR({ phase: String(1) }), - event1_phase: K.ATTR({ phase: String(4) }), + extra_boss_event: K.ATTR({ phase: String(U.GetConfig("hv_extraboss")) }), + event1_phase: K.ATTR({ phase: String(U.GetConfig("hv_event")) }), premium_area_news: K.ATTR({ open: String(1) }), premium_area_qpro: K.ATTR({ open: String(1) }), play_video: {}, @@ -146,16 +146,16 @@ export const pccommon: EPR = async (info, data, send) => { result = { ...result, movie_agreement: K.ATTR({ version: String(1) }), - movie_upload: K.ATTR({ url: String(U.GetConfig("bo_movieupload")) }), - boss: K.ATTR({ phase: String(1) }), + movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), + boss: K.ATTR({ phase: String(U.GetConfig("bo_boss")) }), vip_pass_black: {}, - eisei: K.ATTR({ open: String(1) }), + eisei: K.ATTR({ open: String(Number(U.GetConfig("Eisei"))) }), deller_bonus: K.ATTR({ open: String(1) }), - newsong_another: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), expert_secret_full_open: {}, system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), - extra_boss_event: K.ATTR({ phase: String(1) }), - event1_phase: K.ATTR({ phase: String(4) }), + extra_boss_event: K.ATTR({ phase: String(U.GetConfig("bo_extraboss")) }), + event1_phase: K.ATTR({ phase: String(U.GetConfig("bo_event")) }), premium_area_news: K.ATTR({ open: String(1) }), premium_area_qpro: K.ATTR({ open: String(1) }), play_video: {}, @@ -168,16 +168,16 @@ export const pccommon: EPR = async (info, data, send) => { result = { ...result, movie_agreement: K.ATTR({ version: String(1) }), - movie_upload: K.ATTR({ url: String(U.GetConfig("bo_movieupload")) }), - boss: K.ATTR({ phase: String(1) }), + movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), + boss: K.ATTR({ phase: String(1) }), // TODO:: verify // vip_pass_black: {}, - eisei: K.ATTR({ open: String(1) }), + eisei: K.ATTR({ open: String(Number(U.GetConfig("Eisei"))) }), // TODO:: verify // deller_bonus: K.ATTR({ open: String(1) }), - newsong_another: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), // TODO:: verify // expert_secret_full_open: {}, system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), - extra_boss_event: K.ATTR({ phase: String(1) }), - event1_phase: K.ATTR({ phase: String(4) }), + extra_boss_event: K.ATTR({ phase: String(1) }), // TODO:: verify // + event1_phase: K.ATTR({ phase: String(4) }), // TODO:: verify // premium_area_news: K.ATTR({ open: String(1) }), premium_area_qpro: K.ATTR({ open: String(1) }), play_video: {}, @@ -191,10 +191,10 @@ export const pccommon: EPR = async (info, data, send) => { result = { ...result, movie_agreement: K.ATTR({ version: String(1) }), - movie_upload: K.ATTR({ url: String(U.GetConfig("bo_movieupload")) }), + movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), vip_pass_black: {}, deller_bonus: K.ATTR({ open: String(1) }), - newsong_another: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), premium_area_news: K.ATTR({ open: String(1) }), premium_area_qpro: K.ATTR({ open: String(1) }), diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 5f6f847..e99dfbb 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -21,9 +21,18 @@ export function register() { // common // R.Config("BeatPhase", { name: "Beat #", + desc: "1 / 2 / 3 / FREE", type: "integer", - default: 3, + default: 3, // BEAT FREE // }); + // SPADA ~ (common) // + R.Config("NewSongAnother12", { + name: "New Song Another", + desc: "Enables ANOTHER difficulty of current version's new songs that has Level 12", + type: "boolean", + default: true, + }); + // PENDUAL ~ (common) // R.Config("ExpertPhase", { name: "Expert Phase", type: "integer", @@ -34,6 +43,32 @@ export function register() { type: "integer", default: 2, }); + // HEROIC VERSE ~ (common) // + R.Config("ArenaPhase", { + name: "ARENA Phase", + type: "integer", + default: 2, // ADVERTISE // + }); + // BISTROVER ~ (common) // + R.Config("MovieUpload", { + name: "Movie Upload URL", + type: "string", + desc: "API address for play video uploading feature (JSON)", + default: "http://localhost/" + }); + R.Config("Eisei", { + name: "Eisei Dan Courses", + desc: "Enable EISEI DAN Courses", + type: "boolean", + default: true, + }); + // CastHour ~ RESIDENT (common) // + R.Config("Grade", { + name: "Grade Open Phase", + desc: "RED / KAIDEN", + type: "integer", + default: 2, + }) // Resort Anthem // R.Config("ra_cmd_gmbl", { @@ -261,11 +296,71 @@ export function register() { default: 2, }); - // BISTROVER ~ (common) // - R.Config("bo_movieupload", { - name: "Movie Upload URL", - type: "string", - default: "http://localhost/" + // HEROIC VERSE // + R.Config("hv_boss", { + name: "Event Phase (HV)", + desc: "HEROIC WORKOUT!!", + type: "integer", + default: 1, + }); + R.Config("hv_event", { + name: "HEROIC WORKOUT!!", + desc: "HEROIC WORKOUT!! Phase", + type: "integer", + default: 4 + }); + R.Config("hv_extraboss", + { + name: "SHADOW REBELLION", + desc: "SHADOW REBELLION Phase", + type: "integer", + default: 1 + }); + + // BISTROVER // + R.Config("bo_boss", { + name: "Event Phase (BO)", + desc: "召しませ!BISTROVER", + type: "integer", + default: 1 + }); + R.Config("bo_extraboss", { + name: "BISTRO LANDING", + desc: "BISTRO LANDING Phase", + type: "integer", + default: 1 + }); + R.Config("bo_event", { + name: "召しませ!BISTROVER", + desc: "召しませ!BISTROVER Phase", + type: "integer", + default: 1 + }); + + // CastHour // + R.Config("ch_event", { + name: "CastHour Space", + desc: "CastHour Space Phase", + type: "integer", + default: 5, + }); + R.Config("ch_extraboss", { + name: "Extra Boss Phase (CH)", + type: "integer", + default: 3, + }); + + // RESIDENT // + R.Config("rs_event", { + name: "RESIDENT PARTY", + desc: "RESIDENT PARTY Phase", + type: "integer", + default: 5, + }); + R.Config("rs_extraboss", { + name: "Extra Boss Phase (RS)", + type: "integer", + default: 3, }); // TODO:: Reflect data when version dropdown menu has been changed // From 4168a54bd368989c2e4a9c9e1d62f2c6c9c1ba97 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Tue, 20 Feb 2024 09:22:14 +0900 Subject: [PATCH 13/73] IIDX: refactor music.appoint response to look somewhat cleaner --- iidx@asphyxia/handlers/music.ts | 58 ++++++++++++++------------------- 1 file changed, 25 insertions(+), 33 deletions(-) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index ee17b81..2d41267 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -163,6 +163,8 @@ export const musicappoint: EPR = async (info, data, send) => { clid = mapping[clid]; } + let result: any = {}; + // MINE // const music_data: score | null = await DB.FindOne(refid, { collection: "score", @@ -228,6 +230,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 = Base64toBuffer(music_data[clid + 10]); @@ -253,43 +257,31 @@ export const musicappoint: EPR = async (info, data, send) => { gauge_data: K.ITEM("bin", Base64toBuffer(other_musicdata[clid + 10])) }; - if (_.isNil(mydata) && _.isNil(sdata)) return send.success(); - - if (_.isNil(mydata)) { - return send.object({ - sdata, - }); + if (_.isNil(sdata) && !_.isNil(mydata)) { + result = { + "@attr": { my_option: option, my_option2: option2 }, + mydata, + my_gauge_data: K.ITEM("bin", my_gauge_data), + }; + } + if (_.isNil(mydata) && !_.isNil(sdata)) result = { sdata }; + if (!_.isNil(mydata) && !_.isNil(sdata)) { + result = { + "@attr": { my_option: option, my_option2: option2 }, // CastHour // + mydata, + my_gauge_data: K.ITEM("bin", my_gauge_data), + sdata, + }; } - - return send.object({ - "@attr": { my_option: option, my_option2: option2 }, // CastHour // - mydata: K.ITEM("bin", mydata), - my_gauge_data: K.ITEM("bin", my_gauge_data), - sdata, - }); } - - if (_.isNil(mydata) && _.isNil(sdata)) return send.success(); - - return send.object({ - "@attr": { my_option: option, my_option2: option2 }, // CastHour // - mydata: K.ITEM("bin", mydata), - my_gauge_data: K.ITEM("bin", my_gauge_data), - }); + } + else { + if (_.isNil(sdata) && !_.isNil(mydata)) result = { mydata }; + if (_.isNil(mydata) && !_.isNil(sdata)) result = { sdata }; + if (!_.isNil(mydata) && !_.isNil(sdata)) result = { mydata, sdata }; } - if (_.isNil(mydata) && _.isNil(sdata)) return send.success(); - - if (!_.isNil(sdata)) { - return send.object({ - mydata, - sdata, - }); - } - - return send.object({ - mydata, - }); + return send.object(result); } export const musicreg: EPR = async (info, data, send) => { From c2412571c6f6e109d18a5c8703c298639de1e2cb Mon Sep 17 00:00:00 2001 From: duel0213 Date: Wed, 21 Feb 2024 00:59:21 +0900 Subject: [PATCH 14/73] IIDX: Reflect shop name, step up achieve on responses --- iidx@asphyxia/README.md | 14 +++-- iidx@asphyxia/handlers/pc.ts | 86 +++++++++++++++++-------------- iidx@asphyxia/handlers/shop.ts | 8 +++ iidx@asphyxia/pug/LDJ/21pcget.pug | 6 +-- iidx@asphyxia/pug/LDJ/22pcget.pug | 6 +-- iidx@asphyxia/pug/LDJ/23pcget.pug | 6 +-- iidx@asphyxia/pug/LDJ/24pcget.pug | 6 +-- iidx@asphyxia/pug/LDJ/25pcget.pug | 6 +-- iidx@asphyxia/pug/LDJ/26pcget.pug | 6 +-- iidx@asphyxia/pug/LDJ/27pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/28pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/29pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/30pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/pcget.pug | 6 +-- iidx@asphyxia/util.ts | 41 ++++++++++++--- 15 files changed, 122 insertions(+), 77 deletions(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 00b01f8..4b89587 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -36,7 +36,7 @@ Features Known Issues - Clear Lamps may display invalid lamps due to missing conversion code - - LEGGENDARIA play records before HEROIC VERSE may not display on higher version due missing conversion code + - LEGGENDARIA play records before HEROIC VERSE may not display on higher version due to missing conversion code --- @@ -70,26 +70,26 @@ Changelogs **v0.1.6** - Added Initial support for tricoro - - Event savings are broken + - Some of event savings are broken - Added movie_upload url setting on plugin setting (BISTROVER ~) - This uses JSON instead of XML and this requires additional setup (can't test or implement this as I don't own NVIDIA GPU) **v0.1.7** - Added Initial support for SPADA - - Event savings are broken + - Some of event savings are broken - Fixed where rtype didn't save correctly (BISTROVER ~) **v0.1.8** - Added RIVAL pacemaker support - Added Initial support for PENDUAL - - Event savings are broken + - Some of event savings are broken - Fixed where old_linkage_secret_flg is missing on pc.get response (RESIDENT) - Fixed where game could crash due to invalid rival qprodata - Fixed where lift isn't saving (SPADA) **v0.1.9** - Added Initial support for copula - - Event savings are broken + - Some of event savings are broken - Added shop.getconvention/shop.setconvention/shop.getname/shop.savename response **v0.1.10** @@ -105,5 +105,9 @@ Changelogs - Exposed some of pc.common attributes to plugin settings (WIP) - Added Experimental WebUI (WIP) - Added music.crate/music.breg response + - CLEAR RATE and BEGINNER clear lamp may not work on certain versions - Fixed where Venue Top didn't save correctly (BISTROVER ~) - Fixed where music.appoint send empty response even rival has score data when player doesn't have score data + - Fixed where FAVORITE may work only on specific version + - Fixed where shop name always displayed as "CORE" instead of saved one + - Fixed where rlist STEP UP achieve value was fixed value instead of saved one diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index d8912ec..c380a27 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -6,6 +6,7 @@ import { eisei_grade, eisei_grade_data, lightning_musicmemo, lightning_musicmemo import { profile, default_profile } from "../models/profile"; import { rival, rival_data } from "../models/rival"; import { world_tourism } from "../models/worldtourism"; +import { shop_data } from "../models/shop"; export const pccommon: EPR = async (info, data, send) => { const version = GetVersion(info); @@ -360,6 +361,7 @@ export const pcget: EPR = async (info, data, send) => { const lm_eisei_grade = await DB.Find(refid, { collection: "eisei_grade", version: version }); const lm_music_memo = await DB.Find(refid, { collection: "lightning_musicmemo", version: version }); const lm_music_memo_new = await DB.Find(refid, { collection: "lightning_musicmemo_new", version: version }); + const shop_data = await DB.FindOne({ collection: "shop_data" }); if (_.isNil(pcdata)) return send.deny(); @@ -494,6 +496,7 @@ export const pcget: EPR = async (info, data, send) => { tricolettepark, redboss, yellowboss, + shop_data, }); } else if (version >= 21) { @@ -510,51 +513,55 @@ export const pcget: EPR = async (info, data, send) => { event_1s = null, evtArray = [], evtArray2 = []; - switch (version) { - case 21: - 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" }); + if (version == 23) { + if (!_.isNil(pcdata.st_tokimeki)) pcdata.st_tokimeki = Base64toBuffer(pcdata.st_tokimeki).toString("hex"); - boss1 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "boss1" }); - if (!_.isNil(boss1.durability)) boss1.durability = Base64toBuffer(boss1.durability).toString("hex"); - case 22: - 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" }); - if (_.isNil(pendual_talis)) pendual_talis = { point: 0 }; + 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" }); + } + else if (version == 22) { + if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).toString("hex"); - qpronicle_chord = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_chord" }); - qpronicle_phase3 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_phase3" }); - case 23: - if (!_.isNil(pcdata.sp_mlist)) { - pcdata.sp_mlist = Base64toBuffer(pcdata.sp_mlist).toString("hex"); - pcdata.sp_clist = Base64toBuffer(pcdata.sp_clist).toString("hex"); - pcdata.dp_mlist = Base64toBuffer(pcdata.dp_mlist).toString("hex"); - pcdata.dp_clist = Base64toBuffer(pcdata.dp_clist).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" }); + if (_.isNil(pendual_talis)) pendual_talis = { point: 0 }; + + qpronicle_chord = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_chord" }); + qpronicle_phase3 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_phase3" }); + } + else if (version == 21) { + if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).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.durability)) boss1.durability = Base64toBuffer(boss1.durability).toString("hex"); + } + else { + event_1 = await DB.Find(refid, { collection: "event_1", version: version }); + event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version }); + + if (event_1.length > 0) { + for (let evt of event_1) { + evtArray.push(evt); } + } - if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).toString("hex"); - else if (!_.isNil(pcdata.st_tokimeki)) pcdata.st_tokimeki = Base64toBuffer(pcdata.st_tokimeki).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" }); - break; - - default: - event_1 = await DB.Find(refid, { collection: "event_1", version: version }); - event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version }); - - if (event_1.length > 0) { - for (let evt of event_1) { - evtArray.push(evt); - } + if (event_1s.length > 0) { + for (let evt of event_1s) { + evtArray2.push(evt); } + } + } - if (event_1s.length > 0) { - for (let evt of event_1s) { - evtArray2.push(evt); - } - } - break; + if (version == 21 || version == 22 || version == 23) { + if (!_.isNil(pcdata.sp_mlist)) { + pcdata.sp_mlist = Base64toBuffer(pcdata.sp_mlist).toString("hex"); + pcdata.sp_clist = Base64toBuffer(pcdata.sp_clist).toString("hex"); + pcdata.dp_mlist = Base64toBuffer(pcdata.dp_mlist).toString("hex"); + pcdata.dp_clist = Base64toBuffer(pcdata.dp_clist).toString("hex"); + } } if (version >= 30 && lm_music_memo_new.length > 0) { @@ -669,6 +676,7 @@ export const pcget: EPR = async (info, data, send) => { mystery_line, wArray, bArray, + shop_data, }); } diff --git a/iidx@asphyxia/handlers/shop.ts b/iidx@asphyxia/handlers/shop.ts index fa4c869..d06be13 100644 --- a/iidx@asphyxia/handlers/shop.ts +++ b/iidx@asphyxia/handlers/shop.ts @@ -7,6 +7,14 @@ export const shopgetname: EPR = async (info, data, send) => { }); if (_.isNil(shop_data)) { + await DB.Insert({ + collection: "shop_data", + + opname: "CORE", + pid: 57, + cls_opt: 0, + }); + return send.object( K.ATTR({ status: "0", diff --git a/iidx@asphyxia/pug/LDJ/21pcget.pug b/iidx@asphyxia/pug/LDJ/21pcget.pug index b542189..db17095 100644 --- a/iidx@asphyxia/pug/LDJ/21pcget.pug +++ b/iidx@asphyxia/pug/LDJ/21pcget.pug @@ -26,10 +26,10 @@ IIDX21pc(status="0") 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]) - stepdata(step_sach="-1" step_dach="-1") + stepdata(step_sach=rd.pcdata[4] step_dach=rd.pcdata[5]) qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) - shop(name="CORE") - join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") + shop(name=shop_data.opname) + join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) if pcdata.st_album != null step(damage=pcdata.st_damage defeat=pcdata.st_defeat progress=pcdata.st_progress round=pcdata.st_round sp_mission=pcdata.st_sp_mission dp_mission=pcdata.st_dp_mission sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay last_select=pcdata.st_last_select) album(__type="bin") #{pcdata.st_album} diff --git a/iidx@asphyxia/pug/LDJ/22pcget.pug b/iidx@asphyxia/pug/LDJ/22pcget.pug index 8d7dd67..24357f4 100644 --- a/iidx@asphyxia/pug/LDJ/22pcget.pug +++ b/iidx@asphyxia/pug/LDJ/22pcget.pug @@ -26,10 +26,10 @@ IIDX22pc(status="0") 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]) - stepdata(step_sach="-1" step_dach="-1") + stepdata(step_sach=rd.pcdata[4] step_dach=rd.pcdata[5]) qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) - shop(name="CORE") - join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") + shop(name=shop_data.opname) + join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) if pcdata.st_album != null step(damage=pcdata.st_damage defeat=pcdata.st_defeat progress=pcdata.st_progress round=pcdata.st_round sp_mission=pcdata.st_sp_mission dp_mission=pcdata.st_dp_mission sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay age_list=pcdata.st_age_list is_secret=pcdata.st_is_secret is_present=pcdata.st_is_present is_future=pcdata.st_is_future) album(__type="bin") #{pcdata.st_album} diff --git a/iidx@asphyxia/pug/LDJ/23pcget.pug b/iidx@asphyxia/pug/LDJ/23pcget.pug index 7d1aec6..d18010d 100644 --- a/iidx@asphyxia/pug/LDJ/23pcget.pug +++ b/iidx@asphyxia/pug/LDJ/23pcget.pug @@ -27,10 +27,10 @@ IIDX23pc(status="0") 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]) - stepdata(step_sach="-1" step_dach="-1") + stepdata(step_sach=rd.pcdata[4] step_dach=rd.pcdata[5]) qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) - shop(name="CORE") - join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") + shop(name=shop_data.opname) + join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) if pcdata.st_tokimeki != null step(friendship=pcdata.st_friendship progress=pcdata.st_progress station_clear=pcdata.st_station_clear station_play=pcdata.st_station_play sp_mission=pcdata.st_sp_mission dp_mission=pcdata.st_dp_mission sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay mission_gauge=pcdata.st_mission_gauge) tokimeki(__type="bin") #{pcdata.st_tokimeki} diff --git a/iidx@asphyxia/pug/LDJ/24pcget.pug b/iidx@asphyxia/pug/LDJ/24pcget.pug index 9c14578..08a3e7f 100644 --- a/iidx@asphyxia/pug/LDJ/24pcget.pug +++ b/iidx@asphyxia/pug/LDJ/24pcget.pug @@ -1,6 +1,6 @@ IIDX24pc(status="0") 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 rtype=pcdata.rtype 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_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_exscore=pcdata.s_exscore d_exscore=pcdata.d_exscore 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) - join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") + join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) 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]} @@ -8,9 +8,9 @@ IIDX24pc(status="0") 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]) - stepdata(step_sach="-1" step_dach="-1") + stepdata(step_sach=rd.pcdata[4] step_dach=rd.pcdata[5]) qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) - shop(name="CORE") + shop(name=shop_data.opname) is_robo(__type="bool") 0 ir_data secret_course_data diff --git a/iidx@asphyxia/pug/LDJ/25pcget.pug b/iidx@asphyxia/pug/LDJ/25pcget.pug index 656001a..1b07128 100644 --- a/iidx@asphyxia/pug/LDJ/25pcget.pug +++ b/iidx@asphyxia/pug/LDJ/25pcget.pug @@ -1,6 +1,6 @@ IIDX25pc(status="0") 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 rtype=pcdata.rtype 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_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_exscore=pcdata.s_exscore d_exscore=pcdata.d_exscore 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) - join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") + join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) 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]} @@ -8,9 +8,9 @@ IIDX25pc(status="0") 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]) - stepdata(step_sach="-1" step_dach="-1") + stepdata(step_sach=rd.pcdata[4] step_dach=rd.pcdata[5]) qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) - shop(name="CORE") + shop(name=shop_data.opname) is_robo(__type="bool") 0 ir_data secret_course_data diff --git a/iidx@asphyxia/pug/LDJ/26pcget.pug b/iidx@asphyxia/pug/LDJ/26pcget.pug index def0929..9e605d1 100644 --- a/iidx@asphyxia/pug/LDJ/26pcget.pug +++ b/iidx@asphyxia/pug/LDJ/26pcget.pug @@ -1,6 +1,6 @@ IIDX26pc(status="0") 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 rtype=pcdata.rtype 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_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) - join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") + join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) 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]} @@ -8,9 +8,9 @@ IIDX26pc(status="0") 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]) - stepdata(step_sach="-1" step_dach="-1") + stepdata(step_sach=rd.pcdata[4] step_dach=rd.pcdata[5]) qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) - shop(name="CORE") + shop(name=shop_data.opname) is_robo(__type="bool") 0 ir_data secret_course_data diff --git a/iidx@asphyxia/pug/LDJ/27pcget.pug b/iidx@asphyxia/pug/LDJ/27pcget.pug index 12b860d..e72d3b9 100644 --- a/iidx@asphyxia/pug/LDJ/27pcget.pug +++ b/iidx@asphyxia/pug/LDJ/27pcget.pug @@ -35,7 +35,7 @@ IIDX27pc(status="0") 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]) - shop(name="CORE") + shop(name=shop_data.opname) dj_rank(style="0") rank(__type="s32" __count="15") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]} #{pcdata.dr_sprank[13]} #{pcdata.dr_sprank[14]} point(__type="s32" __count="15") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]} #{pcdata.dr_sppoint[13]} #{pcdata.dr_sppoint[14]} diff --git a/iidx@asphyxia/pug/LDJ/28pcget.pug b/iidx@asphyxia/pug/LDJ/28pcget.pug index 95c8433..2b2cd26 100644 --- a/iidx@asphyxia/pug/LDJ/28pcget.pug +++ b/iidx@asphyxia/pug/LDJ/28pcget.pug @@ -42,7 +42,7 @@ IIDX28pc(status="0") 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]) - shop(name="CORE") + shop(name=shop_data.opname) dj_rank(style="0") rank(__type="s32" __count="15") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]} #{pcdata.dr_sprank[13]} #{pcdata.dr_sprank[14]} point(__type="s32" __count="15") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]} #{pcdata.dr_sppoint[13]} #{pcdata.dr_sppoint[14]} diff --git a/iidx@asphyxia/pug/LDJ/29pcget.pug b/iidx@asphyxia/pug/LDJ/29pcget.pug index 7a2e44a..688debd 100644 --- a/iidx@asphyxia/pug/LDJ/29pcget.pug +++ b/iidx@asphyxia/pug/LDJ/29pcget.pug @@ -42,7 +42,7 @@ IIDX29pc(status="0") 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]) - shop(name="CORE") + shop(name=shop_data.opname) dj_rank(style="0") rank(__type="s32" __count="15") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]} #{pcdata.dr_sprank[13]} #{pcdata.dr_sprank[14]} point(__type="s32" __count="15") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]} #{pcdata.dr_sppoint[13]} #{pcdata.dr_sppoint[14]} diff --git a/iidx@asphyxia/pug/LDJ/30pcget.pug b/iidx@asphyxia/pug/LDJ/30pcget.pug index 558eee5..6ed8c77 100644 --- a/iidx@asphyxia/pug/LDJ/30pcget.pug +++ b/iidx@asphyxia/pug/LDJ/30pcget.pug @@ -43,7 +43,7 @@ IIDX30pc(status="0") 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]) - shop(name="CORE") + 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") diff --git a/iidx@asphyxia/pug/LDJ/pcget.pug b/iidx@asphyxia/pug/LDJ/pcget.pug index b5504b0..b9b907b 100644 --- a/iidx@asphyxia/pug/LDJ/pcget.pug +++ b/iidx@asphyxia/pug/LDJ/pcget.pug @@ -18,10 +18,10 @@ pc(status="0") 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]) - stepdata(step_sach="-1" step_dach="-1") + stepdata(step_sach=rd.pcdata[4] step_dach=rd.pcdata[5]) qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) - shop(name="CORE") - join_shop(joinflg="1" join_cflg="1" join_id="0" join_name="CORE") + shop(name=shop_data.opname) + join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]} step(sp_ach=pcdata.st_sp_ach dp_ach=pcdata.st_dp_ach sp_hdpt=pcdata.st_sp_hdpt dp_hdpt=pcdata.st_dp_hdpt sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_round=pcdata.st_sp_round dp_round=pcdata.st_dp_round sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay review=pcdata.st_review) stamp(__type="bin") #{pcdata.st_stamp} diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index 7f53fa3..3920fa3 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -134,16 +134,41 @@ export async function ReftoPcdata(refid: string, version: number) { }); let p_data = []; - try { - p_data = [ - pcdata.sgid, - pcdata.dgid, - pcdata.sach, - pcdata.dach, - ]; + switch (version) { + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + p_data = [ + pcdata.sgid, + pcdata.dgid, + pcdata.sach, + pcdata.dach, + pcdata.st_sp_ach, + pcdata.st_dp_ach, + ]; + break; + default: + p_data = [ + pcdata.sgid, + pcdata.dgid, + pcdata.sach, + pcdata.dach, + ]; + break; + } + + // this seems leftover from tricoro but still being referenced until HEROIC VERSE [st_sp_ach/st_dp_ach] // + for (let a = 0; a < p_data.length; a++) { + if (_.isNil(p_data[a])) p_data[a] = 0; + } + } catch { - p_data = [0, 0, 0, 0]; + p_data = [0, 0, 0, 0, 0, 0]; } return p_data; From 927030100adfbed29e7d1c2783c57dce67e96686 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Fri, 23 Feb 2024 11:39:06 +0900 Subject: [PATCH 15/73] IIDX: Initial support added for SIRIUS --- iidx@asphyxia/README.md | 3 ++ iidx@asphyxia/handlers/music.ts | 2 +- iidx@asphyxia/handlers/pc.ts | 89 +++++++++++++++++++++++++++---- iidx@asphyxia/index.ts | 83 +++++++++++++++------------- iidx@asphyxia/models/pcdata.ts | 32 +++++++++++ iidx@asphyxia/pug/JDJ/pcget.pug | 15 ++++++ iidx@asphyxia/pug/JDZ/pcget.pug | 2 + iidx@asphyxia/pug/KDZ/pcget.pug | 7 ++- iidx@asphyxia/pug/LDJ/21pcget.pug | 1 + iidx@asphyxia/pug/LDJ/22pcget.pug | 1 + iidx@asphyxia/pug/LDJ/23pcget.pug | 1 + iidx@asphyxia/pug/LDJ/27pcget.pug | 1 + iidx@asphyxia/pug/LDJ/28pcget.pug | 1 + iidx@asphyxia/pug/LDJ/29pcget.pug | 1 + iidx@asphyxia/pug/LDJ/30pcget.pug | 1 + iidx@asphyxia/pug/LDJ/pcget.pug | 1 + iidx@asphyxia/util.ts | 1 + 17 files changed, 190 insertions(+), 52 deletions(-) create mode 100644 iidx@asphyxia/pug/JDJ/pcget.pug diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 4b89587..6f8b8dd 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -6,6 +6,7 @@ Plugin Version: **v0.1.12** Supported Versions + - beatmaniaIIDX 17 SIRIUS - beatmaniaIIDX 18 Resort Anthem - beatmaniaIIDX 19 Lincle - beatmaniaIIDX 20 tricoro @@ -106,8 +107,10 @@ Changelogs - Added Experimental WebUI (WIP) - Added music.crate/music.breg response - CLEAR RATE and BEGINNER clear lamp may not work on certain versions + - Added Initial support for SIRIUS (profile only) - Fixed where Venue Top didn't save correctly (BISTROVER ~) - Fixed where music.appoint send empty response even rival has score data when player doesn't have score data - Fixed where FAVORITE may work only on specific version - Fixed where shop name always displayed as "CORE" instead of saved one - Fixed where rlist STEP UP achieve value was fixed value instead of saved one + - Fixed where fcombo isn't saving (Resort Anthem) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 2d41267..482fec2 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -689,7 +689,7 @@ export const musiccrate: EPR = async (info, data, send) => { K.ARRAY("s32", [...cRate, ...fcRate], { mid: key }), ); } else { - if (version < 20) { // TODO:: figure out why this doesn't work in Resort Anthem // + if (version < 20) { // TODO:: figure out why this doesn't work in older than Lincle // c.push( K.ARRAY("u8", [...indices.map(i => cRate[i])], { mid: String(NewMidToOldMid(Number(key))) }), ); diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index c380a27..3f1bf02 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -1,4 +1,4 @@ -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 } from "../models/pcdata"; +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 } from "../models/pcdata"; import { grade } from "../models/grade"; import { custom, default_custom } from "../models/custom"; import { IDtoCode, IDtoRef, Base64toBuffer, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter } from "../util"; @@ -21,16 +21,29 @@ export const pccommon: EPR = async (info, data, send) => { // have no idea what some of attribute or value does // // exposing these to plugin setting or use static value // switch (version) { + case 17: + result = { + ...result, + cmd: K.ATTR({ + gmbl: String(Number(U.GetConfig("cmd_gmbl"))), + gmbla: String(Number(U.GetConfig("cmd_gmbla"))), + regl: String(Number(U.GetConfig("cmd_regl"))), + rndp: String(Number(U.GetConfig("cmd_rndp"))), + hrnd: String(Number(U.GetConfig("cmd_hrnd"))), + alls: String(Number(U.GetConfig("cmd_alls"))), + }), + lg: K.ATTR({ lea: String(U.GetConfig("sr_league")) }), + } case 18: result = { ...result, cmd: K.ATTR({ - gmbl: String(Number(U.GetConfig("ra_cmd_gmbl"))), - gmbla: String(Number(U.GetConfig("ra_cmd_gmbla"))), - regl: String(Number(U.GetConfig("ra_cmd_regl"))), - rndp: String(Number(U.GetConfig("ra_cmd_rndp"))), - hrnd: String(Number(U.GetConfig("ra_cmd_hrnd"))), - alls: String(Number(U.GetConfig("ra_cmd_alls"))), + gmbl: String(Number(U.GetConfig("cmd_gmbl"))), + gmbla: String(Number(U.GetConfig("cmd_gmbla"))), + regl: String(Number(U.GetConfig("cmd_regl"))), + rndp: String(Number(U.GetConfig("cmd_rndp"))), + hrnd: String(Number(U.GetConfig("cmd_hrnd"))), + alls: String(Number(U.GetConfig("cmd_alls"))), }), lg: K.ATTR({ lea: String(U.GetConfig("ra_league")) }), lf: K.ATTR({ life: String(U.GetConfig("ra_story")) }), @@ -224,6 +237,9 @@ export const pcreg: EPR = async (info, data, send) => { let lightning_settings: object; let lightning_playdata: object; switch (version) { + case 17: + pcdata = JDJ_pcdata; + break; case 18: pcdata = JDZ_pcdata; break; @@ -436,9 +452,35 @@ export const pcget: EPR = async (info, data, send) => { } let event; - if (version == 18) { - event = await DB.FindOne(refid, { collection: "event_1", version: version }); + if (version == 17) { + return send.pugFile("pug/JDJ/pcget.pug", { + profile, + pcdata, + dArray, + appendsettings, + custom, + rArray, + }); + } + else if (version == 18) { + if (_.isNil(pcdata.fcombo)) { // temp // + pcdata.fcombo = Array(2).fill(0); + await DB.Upsert( + refid, + { + collection: "pcdata", + version: version, + }, + { + $set: { + fcombo: Array(2).fill(0), + } + } + ); + } + + event = await DB.FindOne(refid, { collection: "event_1", version: version }); if (!_.isNil(event)) { event.cf = Base64toBuffer(event.cf).toString("hex"); event.pf = Base64toBuffer(event.pf).toString("hex"); @@ -717,6 +759,9 @@ export const pctakeover: EPR = async (info, data, send) => { let lightning_settings: object; let lightning_playdata: object; switch (version) { + case 17: + pcdata = JDJ_pcdata; + break; case 18: pcdata = JDZ_pcdata; break; @@ -880,7 +925,7 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.mode = parseInt($(data).attr().mode); pcdata.pmode = parseInt($(data).attr().pmode); - if (version == 18) { + if (version == 17) { if (cltype == 0) { pcdata.sach = parseInt($(data).attr().achi); pcdata.sp_opt = parseInt($(data).attr().opt); @@ -899,6 +944,30 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.ncomb = parseInt($(data).attr().ncomb); pcdata.mcomb = parseInt($(data).attr().mcomb); pcdata.liflen = parseInt($(data).attr().lift); + pcdata.fcombo[cltype] = parseInt($(data).attr().fcombo); + + if (!_.isNil($(data).element("party"))) pcdata.party = $(data).element("party").numbers("fnum"); + } + else if (version == 18) { + if (cltype == 0) { + pcdata.sach = parseInt($(data).attr().achi); + pcdata.sp_opt = parseInt($(data).attr().opt); + } + else { + pcdata.dach = parseInt($(data).attr().achi); + pcdata.dp_opt = parseInt($(data).attr().opt); + pcdata.dp_opt2 = parseInt($(data).attr().opt2); + } + + pcdata.gno = parseInt($(data).attr().gno); + pcdata.timing = parseInt($(data).attr().timing); + pcdata.sflg0 = parseInt($(data).attr().sflg0); + pcdata.sflg1 = parseInt($(data).attr().sflg1); + pcdata.sdhd = parseInt($(data).attr().sdhd); + pcdata.ncomb = parseInt($(data).attr().ncomb); + pcdata.mcomb = parseInt($(data).attr().mcomb); + pcdata.liflen = parseInt($(data).attr().lift); + pcdata.fcombo[cltype] = parseInt($(data).attr().fcombo); // TODO:: STORY/LEAGUE // diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index e99dfbb..d871386 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -14,6 +14,7 @@ export function register() { R.Contributor("duel0213"); + R.GameCode("JDJ"); R.GameCode("JDZ"); R.GameCode("KDZ"); R.GameCode("LDJ"); @@ -21,10 +22,47 @@ export function register() { // common // R.Config("BeatPhase", { name: "Beat #", - desc: "1 / 2 / 3 / FREE", + desc: "1 / 2 / 3 / FREE", // This can be event phase on old versions // type: "integer", default: 3, // BEAT FREE // }); + // ~ Resort Anthem (common) / / + R.Config("cmd_gmbl", { + name: "G.JUDGE", + desc: "Enable G.JUDGE Command (~ Resort Anthem)", + type: "boolean", + default: true, + }); + R.Config("cmd_gmbla", { + name: "G.JUDGE-A", + desc: "Enable G.JUDGE-A Command (~ Resort Anthem)", + type: "boolean", + default: true, + }); + R.Config("cmd_regl", { + name: "REGUL-SPEED", + desc: "Enable REGUL-SPEED Command (~ Resort Anthem)", + type: "boolean", + default: true, + }); + R.Config("cmd_rndp", { + name: "RANDOM+", + desc: "Enable RANDOM+ Command (~ Resort Anthem)", + type: "boolean", + default: true, + }); + R.Config("cmd_hrnd", { + name: "H-RANDOM", + desc: "Enable H-RANDOM Command (~ Resort Anthem)", + type: "boolean", + default: true, + }); + R.Config("cmd_alls", { + name: "ALL-SCRATCH", + desc: "Enable ALL-SCRATCH Command (~ Resort Anthem)", + type: "boolean", + default: true, + }); // SPADA ~ (common) // R.Config("NewSongAnother12", { name: "New Song Another", @@ -70,43 +108,14 @@ export function register() { default: 2, }) + // SIRIUS // + R.Config("sr_league", { + name: "League Phase (SR)", + type: "integer", + default: 0, + }); + // Resort Anthem // - R.Config("ra_cmd_gmbl", { - name: "G.JUDGE", - desc: "Enable G.JUDGE Command (Resort Anthem)", - type: "boolean", - default: true, - }); - R.Config("ra_cmd_gmbla", { - name: "G.JUDGE-A", - desc: "Enable G.JUDGE-A Command (Resort Anthem)", - type: "boolean", - default: true, - }); - R.Config("ra_cmd_regl", { - name: "REGUL-SPEED", - desc: "Enable REGUL-SPEED Command (Resort Anthem)", - type: "boolean", - default: true, - }); - R.Config("ra_cmd_rndp", { - name: "RANDOM+", - desc: "Enable RANDOM+ Command (Resort Anthem)", - type: "boolean", - default: true, - }); - R.Config("ra_cmd_hrnd", { - name: "H-RANDOM", - desc: "Enable H-RANDOM Command (Resort Anthem)", - type: "boolean", - default: true, - }); - R.Config("ra_cmd_alls", { - name: "ALL-SCRATCH", - desc: "Enable ALL-SCRATCH Command (Resort Anthem)", - type: "boolean", - default: true, - }); R.Config("ra_league", { name: "League Phase (RA)", type: "integer", diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 1935b62..ed6592b 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -119,6 +119,8 @@ export interface pcdata { sgid: number; // grade // dgid: number; + party: number[]; + jpoint: number; // jpoint (lincle) // st_sp_ach: number; // step (lincle) // @@ -212,6 +214,34 @@ export interface pcdata { tourism_secret_flg2: string[]; } +export const JDJ_pcdata = { + version: 17, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + sflg0: 0, + sflg1: 0, + gno: 0, + timing: 0, + sdhd: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + mcomb: 0, + ncomb: 0, + mode: 0, + pmode: 0, + liflen: 0, + + fcombo: Array(2).fill(0), + party: Array(24).fill(0), + + sgid: -1, + dgid: -1, +} + export const JDZ_pcdata = { version: 18, @@ -233,6 +263,8 @@ export const JDZ_pcdata = { pmode: 0, liflen: 0, + fcombo: Array(2).fill(0), + sgid: -1, dgid: -1, } diff --git a/iidx@asphyxia/pug/JDJ/pcget.pug b/iidx@asphyxia/pug/JDJ/pcget.pug new file mode 100644 index 0000000..aaea59c --- /dev/null +++ b/iidx@asphyxia/pug/JDJ/pcget.pug @@ -0,0 +1,15 @@ +pc(status="0") + 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 sflg0=pcdata.sflg0 sflg1=pcdata.sflg1 gno=pcdata.gno timing=pcdata.timing sdhd=pcdata.sdhd sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 mcomb=pcdata.mcomb ncomb=pcdata.ncomb mode=pcdata.mode pmode=pcdata.pmode liflen=pcdata.liflen) + 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]} + ex + skin(__type="u16" __count="12") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} 0 0 0 + 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]) + visitor(anum="10" snum="10" pnum="10" vs_flg="1") + fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]} + party + fnum(__type="s32" __count="24") #{pcdata.party[0]} #{pcdata.party[1]} #{pcdata.party[2]} #{pcdata.party[3]} #{pcdata.party[4]} #{pcdata.party[5]} #{pcdata.party[6]} #{pcdata.party[7]} #{pcdata.party[8]} #{pcdata.party[9]} #{pcdata.party[10]} #{pcdata.party[11]} #{pcdata.party[12]} #{pcdata.party[13]} #{pcdata.party[14]} #{pcdata.party[15]} #{pcdata.party[16]} #{pcdata.party[17]} #{pcdata.party[18]} #{pcdata.party[19]} #{pcdata.party[20]} #{pcdata.party[21]} #{pcdata.party[22]} #{pcdata.party[23]} + jubeat(jflg_0="-1" jflg_1="-1" jflg_2="-1" jflg_3="-1") diff --git a/iidx@asphyxia/pug/JDZ/pcget.pug b/iidx@asphyxia/pug/JDZ/pcget.pug index 5b3889a..884f44f 100644 --- a/iidx@asphyxia/pug/JDZ/pcget.pug +++ b/iidx@asphyxia/pug/JDZ/pcget.pug @@ -8,6 +8,8 @@ pc(status="0") 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]) + visitor(anum="10" snum="10" pnum="10" vs_flg="1") + fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]} lincle(comflg="1" flg1="-1" flg2="-1" flg3="-1" flg4="-1" flg5="-1" flg6="-1" flg7="-1" refcomp="1") reflec(tf="1" br="1" ssc="1" sr="1" wu="1" sg="1" tb="1") jubeat(jflg_0="-1" jflg_1="-1" jflg_2="-1" jflg_3="-1") diff --git a/iidx@asphyxia/pug/KDZ/pcget.pug b/iidx@asphyxia/pug/KDZ/pcget.pug index 56385f7..0bef298 100644 --- a/iidx@asphyxia/pug/KDZ/pcget.pug +++ b/iidx@asphyxia/pug/KDZ/pcget.pug @@ -11,12 +11,11 @@ pc(status="0") 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]) qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) ocrs - weekly(wid="-1" mid="-1") - visitor(anum="0" snum="0" pnum="0" vs_flg="1") - attack(a0="0" a1="0" a2="0" a3="0" a4="0" a5="0") + //-weekly(wid="-1" mid="-1") + visitor(anum="10" snum="10" pnum="10" vs_flg="1") fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]} step(sp_ach=pcdata.st_sp_ach dp_ach=pcdata.st_dp_ach sp_dif=pcdata.st_sp_dif dp_dif=pcdata.st_dp_dif) - lincle(comflg="1" flg1="1" flg2="1" flg3="1" flg4="1" flg5="1" flg6="1" flg7="1") + lincle(comflg="1" flg1="-1" flg2="-1" flg3="-1" flg4="-1" flg5="-1" flg6="-1" flg7="-1") reflec(tf="1" br="1" ssc="1" sr="1" wu="1" sg="1" tb="1") jubeat(point="0" bonus="0" jbonus=pcdata.jpoint open="1") if event != null diff --git a/iidx@asphyxia/pug/LDJ/21pcget.pug b/iidx@asphyxia/pug/LDJ/21pcget.pug index db17095..55c74aa 100644 --- a/iidx@asphyxia/pug/LDJ/21pcget.pug +++ b/iidx@asphyxia/pug/LDJ/21pcget.pug @@ -30,6 +30,7 @@ IIDX21pc(status="0") qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) shop(name=shop_data.opname) join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) + visitor(anum="10" snum="10" pnum="10" vs_flg="1") if pcdata.st_album != null step(damage=pcdata.st_damage defeat=pcdata.st_defeat progress=pcdata.st_progress round=pcdata.st_round sp_mission=pcdata.st_sp_mission dp_mission=pcdata.st_dp_mission sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay last_select=pcdata.st_last_select) album(__type="bin") #{pcdata.st_album} diff --git a/iidx@asphyxia/pug/LDJ/22pcget.pug b/iidx@asphyxia/pug/LDJ/22pcget.pug index 24357f4..93c0767 100644 --- a/iidx@asphyxia/pug/LDJ/22pcget.pug +++ b/iidx@asphyxia/pug/LDJ/22pcget.pug @@ -30,6 +30,7 @@ IIDX22pc(status="0") qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) shop(name=shop_data.opname) join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) + visitor(anum="10" snum="10" pnum="10" vs_flg="1") if pcdata.st_album != null step(damage=pcdata.st_damage defeat=pcdata.st_defeat progress=pcdata.st_progress round=pcdata.st_round sp_mission=pcdata.st_sp_mission dp_mission=pcdata.st_dp_mission sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay age_list=pcdata.st_age_list is_secret=pcdata.st_is_secret is_present=pcdata.st_is_present is_future=pcdata.st_is_future) album(__type="bin") #{pcdata.st_album} diff --git a/iidx@asphyxia/pug/LDJ/23pcget.pug b/iidx@asphyxia/pug/LDJ/23pcget.pug index d18010d..629d558 100644 --- a/iidx@asphyxia/pug/LDJ/23pcget.pug +++ b/iidx@asphyxia/pug/LDJ/23pcget.pug @@ -31,6 +31,7 @@ IIDX23pc(status="0") qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) shop(name=shop_data.opname) join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) + visitor(anum="10" snum="10" pnum="10" vs_flg="1") if pcdata.st_tokimeki != null step(friendship=pcdata.st_friendship progress=pcdata.st_progress station_clear=pcdata.st_station_clear station_play=pcdata.st_station_play sp_mission=pcdata.st_sp_mission dp_mission=pcdata.st_dp_mission sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay mission_gauge=pcdata.st_mission_gauge) tokimeki(__type="bin") #{pcdata.st_tokimeki} diff --git a/iidx@asphyxia/pug/LDJ/27pcget.pug b/iidx@asphyxia/pug/LDJ/27pcget.pug index e72d3b9..5349b2e 100644 --- a/iidx@asphyxia/pug/LDJ/27pcget.pug +++ b/iidx@asphyxia/pug/LDJ/27pcget.pug @@ -46,6 +46,7 @@ IIDX27pc(status="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(dp_clear_mission_clear=pcdata.st_dp_clear_mission_clear dp_clear_mission_level=pcdata.st_dp_clear_mission_level dp_dj_mission_clear=pcdata.st_dp_dj_mission_clear dp_dj_mission_level=pcdata.st_dp_dj_mission_level dp_level=pcdata.st_dp_level dp_mission_point=pcdata.st_dp_mission_point dp_mplay=pcdata.st_dp_mplay enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress sp_clear_mission_clear=pcdata.st_sp_clear_mission_clear sp_clear_mission_level=pcdata.st_sp_clear_mission_level sp_dj_mission_clear=pcdata.st_sp_dj_mission_clear sp_dj_mission_level=pcdata.st_sp_dj_mission_level sp_level=pcdata.st_sp_level sp_mission_point=pcdata.st_sp_mission_point sp_mplay=pcdata.st_sp_mplay tips_read_list=pcdata.st_tips_read_list) is_track_ticket(__type="bool") #{pcdata.st_is_track_ticket} 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) diff --git a/iidx@asphyxia/pug/LDJ/28pcget.pug b/iidx@asphyxia/pug/LDJ/28pcget.pug index 2b2cd26..b2e9531 100644 --- a/iidx@asphyxia/pug/LDJ/28pcget.pug +++ b/iidx@asphyxia/pug/LDJ/28pcget.pug @@ -53,6 +53,7 @@ IIDX28pc(status="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(dp_clear_mission_clear=pcdata.st_dp_clear_mission_clear dp_clear_mission_level=pcdata.st_dp_clear_mission_level dp_dj_mission_clear=pcdata.st_dp_dj_mission_clear dp_dj_mission_level=pcdata.st_dp_dj_mission_level dp_level=pcdata.st_dp_level dp_mission_point=pcdata.st_dp_mission_point dp_mplay=pcdata.st_dp_mplay enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress sp_clear_mission_clear=pcdata.st_sp_clear_mission_clear sp_clear_mission_level=pcdata.st_sp_clear_mission_level sp_dj_mission_clear=pcdata.st_sp_dj_mission_clear sp_dj_mission_level=pcdata.st_sp_dj_mission_level sp_level=pcdata.st_sp_level sp_mission_point=pcdata.st_sp_mission_point sp_mplay=pcdata.st_sp_mplay tips_read_list=pcdata.st_tips_read_list) is_track_ticket(__type="bool") #{pcdata.st_is_track_ticket} 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) diff --git a/iidx@asphyxia/pug/LDJ/29pcget.pug b/iidx@asphyxia/pug/LDJ/29pcget.pug index 688debd..6ef3bd9 100644 --- a/iidx@asphyxia/pug/LDJ/29pcget.pug +++ b/iidx@asphyxia/pug/LDJ/29pcget.pug @@ -53,6 +53,7 @@ IIDX29pc(status="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 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} 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) diff --git a/iidx@asphyxia/pug/LDJ/30pcget.pug b/iidx@asphyxia/pug/LDJ/30pcget.pug index 6ed8c77..fc21e32 100644 --- a/iidx@asphyxia/pug/LDJ/30pcget.pug +++ b/iidx@asphyxia/pug/LDJ/30pcget.pug @@ -48,6 +48,7 @@ IIDX30pc(status="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} 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) diff --git a/iidx@asphyxia/pug/LDJ/pcget.pug b/iidx@asphyxia/pug/LDJ/pcget.pug index b9b907b..0ba682b 100644 --- a/iidx@asphyxia/pug/LDJ/pcget.pug +++ b/iidx@asphyxia/pug/LDJ/pcget.pug @@ -22,6 +22,7 @@ pc(status="0") qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) shop(name=shop_data.opname) join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) + visitor(anum="10" snum="10" pnum="10" vs_flg="1") fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]} step(sp_ach=pcdata.st_sp_ach dp_ach=pcdata.st_dp_ach sp_hdpt=pcdata.st_sp_hdpt dp_hdpt=pcdata.st_dp_hdpt sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_round=pcdata.st_sp_round dp_round=pcdata.st_dp_round sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay review=pcdata.st_review) stamp(__type="bin") #{pcdata.st_stamp} diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index 3920fa3..d638ada 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -64,6 +64,7 @@ export function Base64toBuffer(s: string) { export function GetVersion(info: EamuseInfo) { let version = -1; switch (info.model.substring(0, 3)) { + case "JDJ": return 17; case "JDZ": return 18; case "KDZ": return 19; case "LDJ": From 50f54ee2bb494d59248862225bfeabec2684f52a Mon Sep 17 00:00:00 2001 From: duel0213 Date: Fri, 23 Feb 2024 18:48:43 +0900 Subject: [PATCH 16/73] IIDX: Added ranking responses IIDX: Added EXPERT/TUTORIAL records support on SIRIUS --- iidx@asphyxia/handlers/music.ts | 70 ++++++------ iidx@asphyxia/handlers/pc.ts | 32 +++++- iidx@asphyxia/handlers/ranking.ts | 172 ++++++++++++++++++++++++++++++ iidx@asphyxia/index.ts | 5 + iidx@asphyxia/models/ranking.ts | 29 +++++ iidx@asphyxia/models/tutorial.ts | 7 ++ iidx@asphyxia/pug/JDJ/pcget.pug | 2 + 7 files changed, 284 insertions(+), 33 deletions(-) create mode 100644 iidx@asphyxia/handlers/ranking.ts create mode 100644 iidx@asphyxia/models/ranking.ts create mode 100644 iidx@asphyxia/models/tutorial.ts diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 482fec2..5dfb152 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -2,6 +2,7 @@ import { IDtoRef, Base64toBuffer, GetVersion, OldMidToNewMid, NewMidToOldMid, Re import { score, score_top } from "../models/score"; import { profile } from "../models/profile"; import { shop_data } from "../models/shop"; +import { tutorial } from "../models/tutorial"; export const musicgetrank: EPR = async (info, data, send) => { const version = GetVersion(info); @@ -21,20 +22,17 @@ export const musicgetrank: EPR = async (info, data, send) => { [parseInt($(data).attr().iidxid4), await IDtoRef(parseInt($(data).attr().iidxid4))], ]; - let m = [], top = [], b = []; + let m = [], top = [], b = [], t = []; let score_data: number[]; let indices, temp_mid = 0; if (version < 20) { indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; music_data.forEach((res: score) => { temp_mid = NewMidToOldMid(res.mid); - if (temp_mid > 1999) return; + let mVersion = Math.floor(temp_mid / 100); + if (mVersion > version) return; - if (cltype == 0) { - score_data = [-1, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; - } else { - score_data = [-1, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; - } + score_data = [-1, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; m.push(K.ARRAY("s16", score_data)); if (res.cArray[0] != 0) b.push(K.ARRAY("u16", [temp_mid, res.cArray[0]])); @@ -49,28 +47,34 @@ export const musicgetrank: EPR = async (info, data, send) => { rival_score.forEach((res: score) => { temp_mid = NewMidToOldMid(res.mid); - if (temp_mid > 1999) return; + let mVersion = Math.floor(temp_mid / 100); + if (mVersion > version) return; - if (cltype == 0) { - score_data = [i, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; - } else { - score_data = [i, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; - } + score_data = [i, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; m.push(K.ARRAY("s16", score_data)); }); } + + // tutorial // + const tutorial = await DB.Find(refid, { + collection: "tutorial", + version: version + }); + tutorial.sort((a: tutorial, b: tutorial) => a.tid - b.tid); + tutorial.forEach((res) => { + t.push(K.ARRAY("u16", [res.tid, res.clr])); + }); } else if (version >= 20) { if (version >= 27) indices = cltype === 0 ? [0, 1, 2, 3, 4] : [5, 6, 7, 8, 9]; else indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; music_data.forEach((res: score) => { - if (cltype == 0) { - score_data = [-1, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; - } else { - score_data = [-1, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; - } + let mVersion = Math.floor(res.mid / 1000); + if (mVersion > version) return; + + score_data = [-1, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; m.push(K.ARRAY("s16", score_data)); if (res.cArray[0] != 0) b.push(K.ARRAY("u16", [res.mid, res.cArray[0]])); @@ -84,11 +88,10 @@ export const musicgetrank: EPR = async (info, data, send) => { ); rival_score.forEach((res: score) => { // rival score // - if (cltype == 0) { - score_data = [i, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; - } else { - score_data = [i, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; - } + let mVersion = Math.floor(res.mid / 1000); + if (mVersion > version) return; + + score_data = [i, res.mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; m.push(K.ARRAY("s16", score_data)); }); @@ -100,8 +103,11 @@ export const musicgetrank: EPR = async (info, data, send) => { }); if (score_top.length > 0) { - if (version >= 27) { + if (version >= 27) { score_top.forEach((res) => { + let mVersion = Math.floor(res.mid / 1000); + if (mVersion > version) return; + top.push({ "@attr": ({ name0: res.names[0], @@ -115,6 +121,9 @@ export const musicgetrank: EPR = async (info, data, send) => { }); } else { score_top.forEach((res) => { + let mVersion = Math.floor(res.mid / 1000); + if (mVersion > version) return; + top.push({ "@attr": ({ name0: res.names[1], @@ -140,7 +149,8 @@ export const musicgetrank: EPR = async (info, data, send) => { return send.object({ m, - b + b, + t }); } @@ -336,7 +346,7 @@ export const musicreg: EPR = async (info, data, send) => { let opt2Array = Array(10).fill(0); // USED OPTION (CastHour) // let update = 0; - if (version >= 18) ghost = $(data).buffer("ghost").toString("base64"); + if (version >= 17) ghost = $(data).buffer("ghost").toString("base64"); if (version >= 27) { ghost_gauge = $(data).buffer("ghost_gauge").toString("base64"); @@ -369,10 +379,10 @@ export const musicreg: EPR = async (info, data, send) => { const pExscore = esArray[clid]; if (exscore > pExscore) { - pgArray[clid] = Math.max(pgArray[clid], pgnum); - gArray[clid] = Math.max(gArray[clid], gnum); - mArray[clid] = Math.max(mArray[clid], mnum); - esArray[clid] = Math.max(esArray[clid], exscore); + pgArray[clid] = pgnum; + gArray[clid] = gnum; + mArray[clid] = mnum; + esArray[clid] = exscore; optArray[clid] = option; opt2Array[clid] = option_2; update = 1; diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 3f1bf02..2820164 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -7,6 +7,8 @@ import { profile, default_profile } from "../models/profile"; import { rival, rival_data } from "../models/rival"; import { world_tourism } from "../models/worldtourism"; import { shop_data } from "../models/shop"; +import { tutorial } from "../models/tutorial"; +import { expert } from "../models/ranking"; export const pccommon: EPR = async (info, data, send) => { const version = GetVersion(info); @@ -378,6 +380,7 @@ export const pcget: EPR = async (info, data, send) => { const lm_music_memo = await DB.Find(refid, { collection: "lightning_musicmemo", version: version }); const lm_music_memo_new = await DB.Find(refid, { collection: "lightning_musicmemo_new", version: version }); const shop_data = await DB.FindOne({ collection: "shop_data" }); + const expert = await DB.Find(refid, { collection: "expert", version: version }); if (_.isNil(pcdata)) return send.deny(); @@ -453,10 +456,18 @@ export const pcget: EPR = async (info, data, send) => { let event; if (version == 17) { + expert.sort((a: expert, b: expert) => a.coid - b.coid); + expert.forEach((res) => { + for (let a = 0; a < 6; a++) { + eArray.push([res.coid, a, res.cArray[a], res.pgArray[a], res.gArray[a]]); + } + }); + return send.pugFile("pug/JDJ/pcget.pug", { profile, pcdata, dArray, + eArray, appendsettings, custom, rArray, @@ -870,9 +881,9 @@ export const pctakeover: EPR = async (info, data, send) => { export const pcvisit: EPR = async (info, data, send) => { return send.object( K.ATTR({ - anum: "0", - snum: "0", - pnum: "0", + anum: "10", + snum: "10", + pnum: "10", aflg: "0", sflg: "0", pflg: "0", @@ -946,6 +957,21 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.liflen = parseInt($(data).attr().lift); pcdata.fcombo[cltype] = parseInt($(data).attr().fcombo); + if (!_.isNil($(data).element("tutorial"))) { + let clr = parseInt($(data).attr("tutorial").clr); + await DB.Upsert(refid, + { + collection: "tutorial", + version: version, + tid: parseInt($(data).attr("tutorial").tid), + }, + { + $set: { + clr + } + } + ); + } if (!_.isNil($(data).element("party"))) pcdata.party = $(data).element("party").numbers("fnum"); } else if (version == 18) { diff --git a/iidx@asphyxia/handlers/ranking.ts b/iidx@asphyxia/handlers/ranking.ts new file mode 100644 index 0000000..ceb6265 --- /dev/null +++ b/iidx@asphyxia/handlers/ranking.ts @@ -0,0 +1,172 @@ +import { expert, ranking } from "../models/ranking"; +import { profile } from "../models/profile"; +import { GetVersion, IDtoRef } from "../util"; + +export const rankingentry: EPR = async (info, data, send) => { + // pside // + const version = GetVersion(info); + const refid = await IDtoRef(parseInt($(data).attr().iidxid)); + + const coid = parseInt($(data).attr().coid); + const clid = parseInt($(data).attr().clid); + + const opname = $(data).attr().opname; + const oppid = parseInt($(data).attr().oppid); + const pgnum = parseInt($(data).attr().pgnum); + const gnum = parseInt($(data).attr().gnum); + const opt = parseInt($(data).attr().opt); + const opt2 = parseInt($(data).attr().opt2); + const clr = parseInt($(data).attr().clr); + + const exscore = (pgnum * 2 + gnum); + const cstage = parseInt($(data).attr().cstage); + + const expert_data = await DB.FindOne(refid, { + collection: "expert", + version: version, + coid: coid, + }); + + let pgArray = Array(6).fill(0); // PGREAT // + let gArray = Array(6).fill(0); // GREAT // + let cArray = Array(6).fill(0); // CLEAR FLAGS // + let optArray = Array(6).fill(0); // USED OPTION (SP/DP) // + let opt2Array = Array(6).fill(0); // USED OPTION (DP) // + let esArray = Array(6).fill(0); // EXSCORE // + if (_.isNil(expert_data)) { + cArray[clid] = clr; + pgArray[clid] = pgnum; + gArray[clid] = gnum; + optArray[clid] = opt; + opt2Array[clid] = opt2; + esArray[clid] = exscore; + } + else { + cArray = expert_data.cArray; + pgArray = expert_data.pgArray; + gArray = expert_data.gArray; + optArray = expert_data.optArray; + opt2Array = expert_data.opt2Array; + esArray = expert_data.esArray; + + const pExscore = esArray[clid]; + if (exscore > pExscore) { + pgArray[clid] = pgnum; + gArray[clid] = gnum; + optArray[clid] = opt; + opt2Array[clid] = opt2; + esArray[clid] = exscore; + } + + cArray[clid] = Math.max(cArray[clid], clr); + } + + await DB.Upsert( + refid, + { + collection: "expert", + version: version, + coid: coid, + }, + { + $set: { + cArray, + pgArray, + gArray, + optArray, + opt2Array, + esArray, + } + } + ); + + const profile = await DB.FindOne(refid, { + collection: "profile", + }); + const name = profile.name; + await DB.Upsert( + { + collection: "ranking", + version: version, + coid: coid, + clid: clid, + }, + { + $set: { + pgnum: pgnum, + gnum: gnum, + name: name, + opname: opname, + pid: oppid, + udate: 0, + + exscore: exscore, + maxStage: cstage, + } + } + ); + + let expertUser = await DB.Find(null, { + collection: "expert", + version: version, + coid: coid, + clid: clid, + maxStage: 5, + }); + + return send.object(K.ATTR({ + anum: String(expertUser.length), + jun: "1", + })); +}; + +export const rankingoentry: EPR = async (info, data, send) => { + const version = GetVersion(info); + const refid = await IDtoRef(parseInt($(data).attr().iidxid)); + + const coid = parseInt($(data).attr().coid); + const clid = parseInt($(data).attr().clid); + + const pgnum = parseInt($(data).attr().pgnum); + const gnum = parseInt($(data).attr().gnum); + const opt = parseInt($(data).attr().opt); + const opt2 = parseInt($(data).attr().opt2); + const clr = parseInt($(data).attr().clr); + + const exscore = (pgnum * 2 + gnum); + + // TODO:: figure out what this does // + + return send.success(); +}; + +export const rankinggetranker: EPR = async (info, data, send) => { + const version = GetVersion(info); + const ranking = await DB.Find(null, { + collection: "ranking", + version: version, + coid: parseInt($(data).attr().coid), + clid: parseInt($(data).attr().clid), + }); + let result = { + ranker: [], + } + + if (_.isNil(ranking)) return send.success(); + + ranking.sort((a: ranking, b: ranking) => b.exscore - a.exscore); + ranking.forEach((res) => { + result.ranker.push( + K.ATTR({ + gnum: String(res.gnum), + pgnum: String(res.pgnum), + name: res.name, + opname: res.opname, + pid: String(res.pid), + udate: String(res.udate), + }) + ); + }); + + return send.object(result); +}; diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index d871386..883372f 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -5,6 +5,7 @@ import { graderaised } from "./handlers/grade"; import { gssysteminfo } from "./handlers/gamesystem"; import { updateRivalSettings, updateCustomSettings } from "./handlers/webui"; import { GetVersion } from "./util"; +import { rankingentry, rankinggetranker, rankingoentry } from "./handlers/ranking"; export function register() { if (CORE_VERSION_MAJOR <= 1 && CORE_VERSION_MINOR < 31) { @@ -417,6 +418,10 @@ export function register() { MultiRoute("grade.raised", graderaised); + MultiRoute("ranking.entry", rankingentry); + MultiRoute("ranking.oentry", rankingoentry); + MultiRoute("ranking.getranker", rankinggetranker); + MultiRoute("gameSystem.systemInfo", gssysteminfo); R.Unhandled((req: EamuseInfo, data: any, send: EamuseSend) => { diff --git a/iidx@asphyxia/models/ranking.ts b/iidx@asphyxia/models/ranking.ts new file mode 100644 index 0000000..0dbd7af --- /dev/null +++ b/iidx@asphyxia/models/ranking.ts @@ -0,0 +1,29 @@ +export interface expert { + collection: "expert"; + version: number; + coid: number; + + cArray: number[]; + pgArray: number[]; + gArray: number[]; + optArray: number[]; + opt2Array: number[]; + esArray: number[]; +} + +export interface ranking { + collection: "ranking"; + version: number; + clid: number; + coid: number; + + gnum: number; + pgnum: number; + name: string; + opname: string; + pid: number; + udate: number; + + exscore: number; // <- for sort // + maxStage: number; +} diff --git a/iidx@asphyxia/models/tutorial.ts b/iidx@asphyxia/models/tutorial.ts new file mode 100644 index 0000000..4fdc40e --- /dev/null +++ b/iidx@asphyxia/models/tutorial.ts @@ -0,0 +1,7 @@ +export interface tutorial { + collection: "tutorial"; + version: number; + tid: number; + + clr: number; +} diff --git a/iidx@asphyxia/pug/JDJ/pcget.pug b/iidx@asphyxia/pug/JDJ/pcget.pug index aaea59c..61089af 100644 --- a/iidx@asphyxia/pug/JDJ/pcget.pug +++ b/iidx@asphyxia/pug/JDJ/pcget.pug @@ -4,6 +4,8 @@ pc(status="0") - for (let d of dArray) g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]} ex + - for (let e of eArray) + e(__type="u32" __count="5") #{e[0]} #{e[1]} #{e[2]} #{e[3]} #{e[4]} skin(__type="u16" __count="12") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} 0 0 0 rlist - for (let rd of rArray) From f4d2a81f072f0f1bf31ab9c08b190b0fc0b4c84a Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sun, 25 Feb 2024 19:20:56 +0900 Subject: [PATCH 17/73] IIDX: Initial support added for DJ TROOPERS --- iidx@asphyxia/README.md | 6 ++- iidx@asphyxia/handlers/music.ts | 54 ++++++++++++++++++++++--- iidx@asphyxia/handlers/pc.ts | 70 ++++++++++++++++++++++++++++++--- iidx@asphyxia/index.ts | 1 + iidx@asphyxia/models/pcdata.ts | 25 ++++++++++++ iidx@asphyxia/pug/HDD/pcget.pug | 9 +++++ iidx@asphyxia/util.ts | 49 +++++++++++++++++++++++ 7 files changed, 202 insertions(+), 12 deletions(-) create mode 100644 iidx@asphyxia/pug/HDD/pcget.pug diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 6f8b8dd..8cda96e 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -6,6 +6,7 @@ Plugin Version: **v0.1.12** Supported Versions + - beatmaniaIIDX 15 DJ TROOPERS - beatmaniaIIDX 17 SIRIUS - beatmaniaIIDX 18 Resort Anthem - beatmaniaIIDX 19 Lincle @@ -107,10 +108,13 @@ Changelogs - Added Experimental WebUI (WIP) - Added music.crate/music.breg response - CLEAR RATE and BEGINNER clear lamp may not work on certain versions - - Added Initial support for SIRIUS (profile only) + - Added Initial support for SIRIUS - Fixed where Venue Top didn't save correctly (BISTROVER ~) - Fixed where music.appoint send empty response even rival has score data when player doesn't have score data - Fixed where FAVORITE may work only on specific version - Fixed where shop name always displayed as "CORE" instead of saved one - Fixed where rlist STEP UP achieve value was fixed value instead of saved one - Fixed where fcombo isn't saving (Resort Anthem) + +**v0.1.13** + - Added Initial support for DJ TROOPERS (WIP) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 5dfb152..05a1dc1 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -1,4 +1,4 @@ -import { IDtoRef, Base64toBuffer, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide, ReftoQPRO } from "../util"; +import { IDtoRef, Base64toBuffer, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide, ReftoQPRO, NumArrayToString } from "../util"; import { score, score_top } from "../models/score"; import { profile } from "../models/profile"; import { shop_data } from "../models/shop"; @@ -25,7 +25,48 @@ export const musicgetrank: EPR = async (info, data, send) => { let m = [], top = [], b = [], t = []; let score_data: number[]; let indices, temp_mid = 0; - if (version < 20) { + if (version == 15) { // TODO:: Debug NumArrayToString, theres weird records (invalid exscore) // + let result = { + r: [], // v - (-1, beginner/-2, tutorial) // + }; + indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; + music_data.forEach((res: score) => { + temp_mid = NewMidToOldMid(res.mid); + let mVersion = Math.floor(temp_mid / 100); + let mMid = temp_mid % 100; + + if (mVersion > version) return; + for (let a = 0; a < 3; a++) { + if (res.esArray[indices[a]] == 0) continue; + result.r.push( + K.ITEM("str", NumArrayToString( + [7, 4, 13, 3, 3], + [mMid, a, res.esArray[indices[a]], -1, res.cArray[indices[a]]] // mid , diff , score , rid (rank_id) , flg // + ), { v: String(mVersion) } ) + ); + } + }); + + // rival data seems to be retrieve from getralive // + + // tutorial // + const tutorial = await DB.Find(refid, { + collection: "tutorial", + version: version + }); + tutorial.sort((a: tutorial, b: tutorial) => a.tid - b.tid); + tutorial.forEach((res) => { + result.r.push( + K.ITEM("str", NumArrayToString( + [5, 1], + [res.tid, res.clr] + ), { v: String("-2") }) + ); + }); + + return send.object(result); + } + else if (version < 20) { indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; music_data.forEach((res: score) => { temp_mid = NewMidToOldMid(res.mid); @@ -103,11 +144,11 @@ export const musicgetrank: EPR = async (info, data, send) => { }); if (score_top.length > 0) { - if (version >= 27) { + if (version >= 27) { score_top.forEach((res) => { let mVersion = Math.floor(res.mid / 1000); if (mVersion > version) return; - + top.push({ "@attr": ({ name0: res.names[0], @@ -123,7 +164,7 @@ export const musicgetrank: EPR = async (info, data, send) => { score_top.forEach((res) => { let mVersion = Math.floor(res.mid / 1000); if (mVersion > version) return; - + top.push({ "@attr": ({ name0: res.names[1], @@ -346,7 +387,8 @@ export const musicreg: EPR = async (info, data, send) => { let opt2Array = Array(10).fill(0); // USED OPTION (CastHour) // let update = 0; - if (version >= 17) ghost = $(data).buffer("ghost").toString("base64"); + if (version == 15) ghost = Buffer.from($(data).str("ghost"), "hex").toString("base64"); + else ghost = $(data).buffer("ghost").toString("base64"); if (version >= 27) { ghost_gauge = $(data).buffer("ghost_gauge").toString("base64"); diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 2820164..dade5ed 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 } from "../models/pcdata"; +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 } from "../models/pcdata"; import { grade } from "../models/grade"; import { custom, default_custom } from "../models/custom"; -import { IDtoCode, IDtoRef, Base64toBuffer, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter } from "../util"; +import { IDtoCode, IDtoRef, Base64toBuffer, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter, NumArrayToString } from "../util"; import { eisei_grade, eisei_grade_data, lightning_musicmemo, lightning_musicmemo_new, lightning_playdata, lightning_settings, lm_playdata, lm_settings, lm_settings_new, musicmemo_data, musicmemo_data_new } from "../models/lightning"; import { profile, default_profile } from "../models/profile"; import { rival, rival_data } from "../models/rival"; @@ -23,6 +23,8 @@ export const pccommon: EPR = async (info, data, send) => { // have no idea what some of attribute or value does // // exposing these to plugin setting or use static value // switch (version) { + case 15: + break; case 17: result = { ...result, @@ -239,6 +241,9 @@ export const pcreg: EPR = async (info, data, send) => { let lightning_settings: object; let lightning_playdata: object; switch (version) { + case 15: + pcdata = HDD_pcdata; + break; case 17: pcdata = JDJ_pcdata; break; @@ -398,7 +403,7 @@ export const pcget: EPR = async (info, data, send) => { custom.rival_played_folder, custom.hide_iidxid, ); - let dArray = [], eArray = [], rArray = [], mArray = [], bArray = []; + let dArray = [], eArray = [], rArray = [], mArray = [], bArray = [], gArray = []; grade.forEach((res: grade) => { dArray.push([res.style, res.gradeId, res.maxStage, res.archive]); @@ -454,7 +459,24 @@ export const pcget: EPR = async (info, data, send) => { wArray.sort((a, b) => a.tour_id - b.tour_id); } - let event; + let event, gradeStr, exStr, skinStr; + if (version == 15) { + dArray.forEach((res: grade) => { + gArray.concat([res.gradeId, res.maxStage, res.style, res.archive]); + }); + gradeStr = NumArrayToString([6, 3, 2, 7], gArray); + exStr = ""; // TODO:: // + skinStr = NumArrayToString([12], [custom.frame, custom.turntable, custom.note_burst, custom.menu_music, appendsettings, custom.lane_cover, 0, custom.category_vox]); + + return send.pugFile("pug/HDD/pcget.pug", { + profile, + pcdata, + gradeStr, + exStr, + skinStr, + rArray, + }); + } if (version == 17) { expert.sort((a: expert, b: expert) => a.coid - b.coid); expert.forEach((res) => { @@ -770,6 +792,9 @@ export const pctakeover: EPR = async (info, data, send) => { let lightning_settings: object; let lightning_playdata: object; switch (version) { + case 15: + pcdata = HDD_pcdata; + break; case 17: pcdata = JDJ_pcdata; break; @@ -936,7 +961,42 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.mode = parseInt($(data).attr().mode); pcdata.pmode = parseInt($(data).attr().pmode); - if (version == 17) { + if (version == 15) { + if (cltype == 0) { + pcdata.sach = parseInt($(data).attr().achi); + pcdata.sp_opt = parseInt($(data).attr().opt); + } + else { + pcdata.dach = parseInt($(data).attr().achi); + pcdata.dp_opt = parseInt($(data).attr().opt); + pcdata.dp_opt2 = parseInt($(data).attr().opt2); + } + + pcdata.gno = parseInt($(data).attr().gno); + pcdata.sflg0 = parseInt($(data).attr().sflg0); + pcdata.sflg1 = parseInt($(data).attr().sflg1); + pcdata.sflg2 = parseInt($(data).attr().sflg2); + pcdata.sdhd = parseInt($(data).attr().sdhd); + pcdata.ncomb = parseInt($(data).attr().ncomb); + pcdata.mcomb = parseInt($(data).attr().mcomb); + + if (!_.isNil($(data).element("tutorial"))) { + let clr = parseInt($(data).attr("tutorial").clr); + await DB.Upsert(refid, + { + collection: "tutorial", + version: version, + tid: parseInt($(data).attr("tutorial").tid), + }, + { + $set: { + clr + } + } + ); + } + } + else if (version == 17) { if (cltype == 0) { pcdata.sach = parseInt($(data).attr().achi); pcdata.sp_opt = parseInt($(data).attr().opt); diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 883372f..98f40e8 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -15,6 +15,7 @@ export function register() { R.Contributor("duel0213"); + R.GameCode("HDD"); R.GameCode("JDJ"); R.GameCode("JDZ"); R.GameCode("KDZ"); diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index ed6592b..612813c 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -9,6 +9,7 @@ export interface pcdata { dach: number; sflg0: number; sflg1: number; + sflg2: number; gno: number; timing: number; sdhd: number; @@ -214,6 +215,30 @@ export interface pcdata { tourism_secret_flg2: string[]; } +export const HDD_pcdata = { + version: 15, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + sflg0: 0, + sflg1: 0, + sflg2: 0, + gno: 0, + sdhd: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + mcomb: 0, + ncomb: 0, + mode: 0, + pmode: 0, + + sgid: -1, + dgid: -1, +} + export const JDJ_pcdata = { version: 17, diff --git a/iidx@asphyxia/pug/HDD/pcget.pug b/iidx@asphyxia/pug/HDD/pcget.pug new file mode 100644 index 0000000..98623be --- /dev/null +++ b/iidx@asphyxia/pug/HDD/pcget.pug @@ -0,0 +1,9 @@ +pc(status="0") + 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 sflg0=pcdata.sflg0 sflg1=pcdata.sflg1 sflg2=pcdata.sflg2 gno=pcdata.gno sdhd=pcdata.sdhd sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 mcomb=pcdata.mcomb ncomb=pcdata.ncomb mode=pcdata.mode pmode=pcdata.pmode) + grade(sgid=pcdata.sgid dgid=pcdata.dgid __type="str") #{gradeStr} + ex(__type="str") #{exStr} + skin(__type="str") #{skinStr} + 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]) + visitor(anum="10" snum="10" pnum="10" vs_flg="1") diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index d638ada..2c03c26 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -61,9 +61,58 @@ export function Base64toBuffer(s: string) { return Buffer.from(t); } +export function NumArrayToString(bits: number[], numArray: number[]): string { + const characters = "0123456789:;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + let byteSum = 0; + let byteIndex = 0; + if (bits.length > 0) { + do { + byteSum = bits[byteIndex] + byteSum; + byteIndex++; + } while (byteIndex < bits.length); + } + + let result = ""; + let numIdx = 0; + if (numArray != null && !_.isNaN(numArray[0])) { + let numArrayIdx = 0; + if (numArray.length > 0) { + let combined = 0; + do { + if (numIdx == 0) combined = 0; + + const b = bits[numArrayIdx]; + combined = ((numArray[numIdx] & (1 << b) - 1) | combined << b); + numArrayIdx++; + if (numArrayIdx == bits.length) { + combined <<= 32 - byteSum; + + const characterCount = Math.floor((byteSum + 5) / 6); + if (characterCount > 0) { + let charaIdx = 26; + let charaLoopCnt = characterCount; + do { + const character = (combined >> charaIdx) & 63; + result += characters.charAt(character); + + charaIdx -= 6; + charaLoopCnt--; + } while (charaLoopCnt > 0); + } + numArrayIdx = 0; + } + numIdx++; + } while (numIdx < numArray.length); + } + } + + return result; +} + export function GetVersion(info: EamuseInfo) { let version = -1; switch (info.model.substring(0, 3)) { + case "HDD": return 15; case "JDJ": return 17; case "JDZ": return 18; case "KDZ": return 19; From 7f6836d1d8c80e75f894f09897809c33840bfd31 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Mon, 26 Feb 2024 00:14:11 +0900 Subject: [PATCH 18/73] IIDX: Changed music.crate response to comply with Resort Anthem --- iidx@asphyxia/handlers/music.ts | 46 ++++++++++++++++----------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 5dfb152..5042b41 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -659,13 +659,15 @@ export const musiccrate: EPR = async (info, data, send) => { let cFlgs: Record = {}, fcFlgs: Record = {}, - totalFlgs: Record = {}, - cFlgArray: number[], fcFlgArray: number[], totalArray: number[]; + totalFlgs: Record = {}; scores.forEach((res) => { - totalArray = Array(10).fill(0); - cFlgArray = Array(10).fill(0); - fcFlgArray = Array(10).fill(0); + let mVersion = Math.floor(res.mid / 1000); + if (mVersion > version) return; + + let totalArray = Array(10).fill(0); + let cFlgArray = Array(10).fill(0); + let fcFlgArray = Array(10).fill(0); for (let a = 0; a < 10; a++) { if (res.cArray[a] != 0) totalArray[a] += 1; @@ -673,18 +675,20 @@ export const musiccrate: EPR = async (info, data, send) => { if (res.cArray[a] == 7) fcFlgArray[a] += 1; } - totalFlgs[res.mid] = totalArray; - cFlgs[res.mid] = cFlgArray; - fcFlgs[res.mid] = fcFlgArray; + let temp_mid = version < 20 ? NewMidToOldMid(res.mid) : res.mid; + totalFlgs[temp_mid] = totalArray; + cFlgs[temp_mid] = cFlgArray; + fcFlgs[temp_mid] = fcFlgArray; }); let c = []; - let indices = [1, 2, 3, 6, 7, 8]; for (const key in totalFlgs) { - let cRate = Array(10).fill(-1); - let fcRate = Array(10).fill(-1); + let cRate = Array(10).fill(0); + let fcRate = Array(10).fill(0); + + for (let a = 0; a < 10; a++) { + if (totalFlgs[key][a] == 0) continue; - for (let a = 0; a < cRate.length; a++) { if (version > 23) { cRate[a] = Math.round((cFlgs[key][a] / totalFlgs[key][a]) * 1000); fcRate[a] = Math.round((fcFlgs[key][a] / totalFlgs[key][a]) * 1000); @@ -694,20 +698,16 @@ export const musiccrate: EPR = async (info, data, send) => { } } - if (version > 26) { + let indices = [1, 2, 3, 6, 7, 8]; + if (version < 27) { + c.push( + K.ARRAY("u8", [...indices.map(i => cRate[i]), ...indices.map(i => fcRate[i])], { mid: key }), + ); + } + else { c.push( K.ARRAY("s32", [...cRate, ...fcRate], { mid: key }), ); - } else { - if (version < 20) { // TODO:: figure out why this doesn't work in older than Lincle // - c.push( - K.ARRAY("u8", [...indices.map(i => cRate[i])], { mid: String(NewMidToOldMid(Number(key))) }), - ); - } else { - c.push( - K.ARRAY("u8", [...indices.map(i => cRate[i]), ...indices.map(i => fcRate[i])], { mid: key }), - ); - } } } From 1d1e4575fe87d86f83b81366a6e5b9709d1db2b9 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Mon, 26 Feb 2024 09:29:20 +0900 Subject: [PATCH 19/73] IIDX: Changed music.crate response to comply DJ TROOPERS --- iidx@asphyxia/handlers/music.ts | 43 +++++++++++++++++++++++---------- iidx@asphyxia/util.ts | 4 +++ 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 3a87799..fabdadb 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -1,4 +1,4 @@ -import { IDtoRef, Base64toBuffer, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide, ReftoQPRO, NumArrayToString } from "../util"; +import { IDtoRef, Base64toBuffer, 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"; @@ -25,24 +25,24 @@ export const musicgetrank: EPR = async (info, data, send) => { let m = [], top = [], b = [], t = []; let score_data: number[]; let indices, temp_mid = 0; - if (version == 15) { // TODO:: Debug NumArrayToString, theres weird records (invalid exscore) // + if (version == 15) { let result = { r: [], // v - (-1, beginner/-2, tutorial) // }; indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; music_data.forEach((res: score) => { temp_mid = NewMidToOldMid(res.mid); - let mVersion = Math.floor(temp_mid / 100); - let mMid = temp_mid % 100; + let verMid = OldMidToVerMid(temp_mid); - if (mVersion > version) return; + // TODO:: determine whether use rid,dj_level from music.reg or make a database that has max exscore of all songs for rid // + if (verMid[0] > version) return; for (let a = 0; a < 3; a++) { if (res.esArray[indices[a]] == 0) continue; result.r.push( K.ITEM("str", NumArrayToString( [7, 4, 13, 3, 3], - [mMid, a, res.esArray[indices[a]], -1, res.cArray[indices[a]]] // mid , diff , score , rid (rank_id) , flg // - ), { v: String(mVersion) } ) + [verMid[1], a, res.esArray[indices[a]], -1, res.cArray[indices[a]]] // 4th attribute is rid (rank_id) // + ), { v: String(verMid[0]) } ) ); } }); @@ -351,7 +351,7 @@ export const musicreg: EPR = async (info, data, send) => { let clid = parseInt($(data).attr().clid); let exscore = (pgnum * 2 + gnum); let ghost = null, ghost_gauge = null; // Heroic Verse // - let style = 0, option = 0, option_2 = 0; + let style = 0, option = 0, option_2 = 0, rid = -1; // TODO:: Leggendaria until HEROIC VERSE has seperate music_id // // TODO:: SUPER FUTURE 2323 has seperate music_id // @@ -387,6 +387,10 @@ 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); + console.log(rid); + if (version == 15) ghost = Buffer.from($(data).str("ghost"), "hex").toString("base64"); else ghost = $(data).buffer("ghost").toString("base64"); @@ -698,6 +702,7 @@ export const musiccrate: EPR = async (info, data, send) => { const scores = await DB.Find(null, { collection: "score", }); + const cltype = parseInt($(data).attr().cltype); let cFlgs: Record = {}, fcFlgs: Record = {}, @@ -723,7 +728,7 @@ export const musiccrate: EPR = async (info, data, send) => { fcFlgs[temp_mid] = fcFlgArray; }); - let c = []; + let result = {}, c = [], cdata = []; for (const key in totalFlgs) { let cRate = Array(10).fill(0); let fcRate = Array(10).fill(0); @@ -741,7 +746,18 @@ export const musiccrate: EPR = async (info, data, send) => { } let indices = [1, 2, 3, 6, 7, 8]; - if (version < 27) { + if (version == 15) { + let verMid = OldMidToVerMid(parseInt(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[6], cRate[7], cRate[8]])}ZZZZ`; + + cdata.push( + K.ITEM("str", str, { ver: String(verMid[0]) }) + ); + } + else if (version < 27) { c.push( K.ARRAY("u8", [...indices.map(i => cRate[i]), ...indices.map(i => fcRate[i])], { mid: key }), ); @@ -753,9 +769,10 @@ export const musiccrate: EPR = async (info, data, send) => { } } - return send.object({ - c - }) + if (version == 15) result = { cdata }; + else result = { c }; + + return send.object(result); } // this is not valid response // diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index 2c03c26..160ac11 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -19,6 +19,10 @@ export async function IDtoRef(iidxid: number) { return profile.__refid; } +export function OldMidToVerMid(mid: number) { + return [Math.floor(mid / 100), mid % 100]; +} + export function OldMidToNewMid(mid: number) { const numberString = String(mid); From 6244f376879f545d844f5aecedd8e8729213e551 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Mon, 26 Feb 2024 12:45:21 +0900 Subject: [PATCH 20/73] IIDX: Added music.getralive for DJ TROOPERS --- iidx@asphyxia/handlers/music.ts | 78 ++++++++++++++++++++++++++++++++- iidx@asphyxia/index.ts | 3 +- 2 files changed, 79 insertions(+), 2 deletions(-) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index fabdadb..0375507 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -41,7 +41,7 @@ export const musicgetrank: EPR = async (info, data, send) => { result.r.push( K.ITEM("str", NumArrayToString( [7, 4, 13, 3, 3], - [verMid[1], a, res.esArray[indices[a]], -1, res.cArray[indices[a]]] // 4th attribute is rid (rank_id) // + [verMid[1], a, res.esArray[indices[a]], -1, res.cArray[indices[a]]] // 4th element is rid (rank_id) // ), { v: String(verMid[0]) } ) ); } @@ -195,6 +195,82 @@ 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 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))], + ]; + + let result = { + d: [] + }; + let myRecord: Record = {}; + let rRecord: Record = {}; + let indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8]; + + music_data.forEach((res: score) => { + myRecord[NewMidToOldMid(res.mid)] = [...res.esArray, ...res.cArray]; + }); + + for (let i = 0; i < rival_refids.length; i++) { + if (_.isNaN(rival_refids[i][0])) continue; + + const rival_score = await DB.Find(String(rival_refids[i][1]), + { collection: "score", } + ); + + // [0~2] - NOPLAY/WIN/LOSE (ANOTHER/HYPER/NORMAL), // + // consider same score as LOSE, tho theres seems DRAW state but game render as LOSE // + // TODO:: figure out what other elements does // + rival_score.forEach((res: score) => { + let mid = NewMidToOldMid(res.mid); + let verMid = OldMidToVerMid(mid); + if (verMid[0] > version) return; + + let scoreArray = Array(15).fill(0); + if (!_.isNil(myRecord[mid])) { + for (let a = 0; a < 3; a++) { + let myExscore = myRecord[mid][indices[a]]; + let rvExscore = res.esArray[indices[a]]; + let mycFlg = myRecord[mid][indices[a] + 10]; + let rvcFlg = res.cArray[indices[a]]; + + if (mycFlg == 0 || rvcFlg == 0) continue; + scoreArray[2 - a] = myExscore > rvExscore ? 1 : 2; + } + } + + let strResult = NumArrayToString([6], [verMid[1]]); + strResult += NumArrayToString(Array(15).fill(2), scoreArray); + + if (verMid[0] in rRecord) { + rRecord[verMid[0]] += strResult; + } else { + rRecord[verMid[0]] = strResult; + } + }); + } + + for (const key in rRecord) { + result.d.push( + K.ITEM("str", rRecord[key], { v: key }) + ); + } + + return send.object(result); +} + export const musicappoint: EPR = async (info, data, send) => { const version = GetVersion(info); diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 98f40e8..fc6d142 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -1,6 +1,6 @@ import { pccommon, pcreg, pcget, pcgetname, pctakeover, pcvisit, pcsave, pcoldget, pcgetlanegacha, pcdrawlanegacha, pcshopregister } from "./handlers/pc"; import { shopgetname, shopsavename, shopgetconvention, shopsetconvention } from "./handlers/shop"; -import { musicreg, musicgetrank, musicappoint, musicarenacpu, musiccrate, musicbreg } from "./handlers/music"; +import { musicreg, musicgetrank, musicappoint, musicarenacpu, musiccrate, musicbreg, musicgetralive } from "./handlers/music"; import { graderaised } from "./handlers/grade"; import { gssysteminfo } from "./handlers/gamesystem"; import { updateRivalSettings, updateCustomSettings } from "./handlers/webui"; @@ -412,6 +412,7 @@ export function register() { MultiRoute("music.crate", musiccrate); MultiRoute("music.getrank", musicgetrank); + MultiRoute("music.getralive", musicgetralive); MultiRoute("music.appoint", musicappoint); MultiRoute("music.reg", musicreg); MultiRoute("music.breg", musicbreg); From ad074e5380ee8af7b066619b391586e98cd26581 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Tue, 27 Feb 2024 11:03:36 +0900 Subject: [PATCH 21/73] IIDX: Added BEGINNER/EXPERT play record support for DJ TROOPERS --- iidx@asphyxia/handlers/grade.ts | 4 +--- iidx@asphyxia/handlers/music.ts | 18 +++++++++++++----- iidx@asphyxia/handlers/pc.ts | 22 +++++++++++++++------- iidx@asphyxia/handlers/ranking.ts | 11 ++++++----- iidx@asphyxia/handlers/shop.ts | 2 -- iidx@asphyxia/models/grade.ts | 2 +- 6 files changed, 36 insertions(+), 23 deletions(-) diff --git a/iidx@asphyxia/handlers/grade.ts b/iidx@asphyxia/handlers/grade.ts index bc81a1f..f5716f8 100644 --- a/iidx@asphyxia/handlers/grade.ts +++ b/iidx@asphyxia/handlers/grade.ts @@ -92,8 +92,7 @@ export const graderaised: EPR = async (info, data, send) => { return send.object( K.ATTR({ - status: "0", - pnum: "1", + pnum: "1", // This isn't visible to user and seems leftover // }) ); } @@ -164,7 +163,6 @@ export const graderaised: EPR = async (info, data, send) => { return send.object( K.ATTR({ - status: "0", pnum: String(gradeUser.length), }) ); diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 0375507..9262645 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -33,6 +33,7 @@ export const musicgetrank: EPR = async (info, data, send) => { music_data.forEach((res: score) => { temp_mid = NewMidToOldMid(res.mid); let verMid = OldMidToVerMid(temp_mid); + let rank_id = -1; // TODO:: determine whether use rid,dj_level from music.reg or make a database that has max exscore of all songs for rid // if (verMid[0] > version) return; @@ -41,15 +42,22 @@ export const musicgetrank: EPR = async (info, data, send) => { result.r.push( K.ITEM("str", NumArrayToString( [7, 4, 13, 3, 3], - [verMid[1], a, res.esArray[indices[a]], -1, res.cArray[indices[a]]] // 4th element is rid (rank_id) // + [verMid[1], a, res.esArray[indices[a]], rank_id, res.cArray[indices[a]]] // 4th element is rid (rank_id) // ), { v: String(verMid[0]) } ) ); } + + // BEGINNER // + if (res.cArray[0] == 0) return; + result.r.push( + K.ITEM("str", NumArrayToString( + [12, 6], + [temp_mid, res.cArray[0]] + ), { v: String("-1") }) + ); }); - // rival data seems to be retrieve from getralive // - - // tutorial // + // TUTORIAL // const tutorial = await DB.Find(refid, { collection: "tutorial", version: version @@ -465,7 +473,7 @@ export const musicreg: EPR = async (info, data, send) => { if (!_.isNil($(data).attr().rid)) rid = parseInt($(data).attr().rid); else if (!_.isNil($(data).attr().dj_level)) rid = parseInt($(data).attr().dj_level); - console.log(rid); + if (rid > -1) console.log(`[music.reg] rank_id : ${rid}`); if (version == 15) ghost = Buffer.from($(data).str("ghost"), "hex").toString("base64"); else ghost = $(data).buffer("ghost").toString("base64"); diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index dade5ed..e825258 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -403,7 +403,7 @@ export const pcget: EPR = async (info, data, send) => { custom.rival_played_folder, custom.hide_iidxid, ); - let dArray = [], eArray = [], rArray = [], mArray = [], bArray = [], gArray = []; + let dArray = [], eArray = [], rArray = [], mArray = [], bArray = []; grade.forEach((res: grade) => { dArray.push([res.style, res.gradeId, res.maxStage, res.archive]); @@ -459,14 +459,22 @@ export const pcget: EPR = async (info, data, send) => { wArray.sort((a, b) => a.tour_id - b.tour_id); } - let event, gradeStr, exStr, skinStr; + let event, gradeStr = "", exStr = "", skinStr = ""; if (version == 15) { - dArray.forEach((res: grade) => { - gArray.concat([res.gradeId, res.maxStage, res.style, res.archive]); + dArray.forEach((res) => { + gradeStr += NumArrayToString([6, 3, 2, 7], [res[1], res[2], res[0], res[3]]); }); - gradeStr = NumArrayToString([6, 3, 2, 7], gArray); - exStr = ""; // TODO:: // - skinStr = NumArrayToString([12], [custom.frame, custom.turntable, custom.note_burst, custom.menu_music, appendsettings, custom.lane_cover, 0, custom.category_vox]); + + expert.sort((a: expert, b: expert) => a.coid - b.coid); + expert.forEach((res) => { + for (let a = 0; a < 6; a++) { + exStr += NumArrayToString([6, 3, 3], [res.coid, a, res.cArray[a]]); + exStr += NumArrayToString([18], [res.pgArray[a]]); + exStr += NumArrayToString([18], [res.gArray[a]]); + } + }); + + skinStr += NumArrayToString([12], [custom.frame, custom.turntable, custom.note_burst, custom.menu_music, appendsettings, custom.lane_cover, 0, custom.category_vox]); return send.pugFile("pug/HDD/pcget.pug", { profile, diff --git a/iidx@asphyxia/handlers/ranking.ts b/iidx@asphyxia/handlers/ranking.ts index ceb6265..b97bc5b 100644 --- a/iidx@asphyxia/handlers/ranking.ts +++ b/iidx@asphyxia/handlers/ranking.ts @@ -106,17 +106,18 @@ export const rankingentry: EPR = async (info, data, send) => { } ); - let expertUser = await DB.Find(null, { - collection: "expert", + let expertUser = await DB.Find(null, { + collection: "ranking", version: version, coid: coid, clid: clid, - maxStage: 5, }); + expertUser.sort((a: ranking, b: ranking) => b.exscore - a.exscore); + let rankPos = expertUser.findIndex((a: ranking) => a.name == name); return send.object(K.ATTR({ - anum: String(expertUser.length), - jun: "1", + anum: String(expertUser.length), + jun: String(rankPos + 1), })); }; diff --git a/iidx@asphyxia/handlers/shop.ts b/iidx@asphyxia/handlers/shop.ts index d06be13..76cd9ce 100644 --- a/iidx@asphyxia/handlers/shop.ts +++ b/iidx@asphyxia/handlers/shop.ts @@ -17,7 +17,6 @@ export const shopgetname: EPR = async (info, data, send) => { return send.object( K.ATTR({ - status: "0", opname: "CORE", pid: "57", cls_opt: "0", @@ -29,7 +28,6 @@ export const shopgetname: EPR = async (info, data, send) => { return send.object( K.ATTR({ - status: "0", opname: shop_data.opname, pid: String(shop_data.pid), cls_opt: String(shop_data.cls_opt), diff --git a/iidx@asphyxia/models/grade.ts b/iidx@asphyxia/models/grade.ts index fa04537..442de49 100644 --- a/iidx@asphyxia/models/grade.ts +++ b/iidx@asphyxia/models/grade.ts @@ -6,5 +6,5 @@ export interface grade { gradeId: number; maxStage: number; - archive: number; + archive: number; // typo: achieve // } From b7df5d1c64e810153df88b151dcef0f4de2d6a55 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Tue, 27 Feb 2024 12:27:03 +0900 Subject: [PATCH 22/73] IIDX: Removed shop.savename as not working as intented --- iidx@asphyxia/README.md | 1 + iidx@asphyxia/handlers/shop.ts | 24 +++++++----------------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 6f8b8dd..c2ec707 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -114,3 +114,4 @@ Changelogs - Fixed where shop name always displayed as "CORE" instead of saved one - Fixed where rlist STEP UP achieve value was fixed value instead of saved one - Fixed where fcombo isn't saving (Resort Anthem) + - Removed shop.savename as not working as intented. \ No newline at end of file diff --git a/iidx@asphyxia/handlers/shop.ts b/iidx@asphyxia/handlers/shop.ts index d06be13..6393346 100644 --- a/iidx@asphyxia/handlers/shop.ts +++ b/iidx@asphyxia/handlers/shop.ts @@ -10,7 +10,7 @@ export const shopgetname: EPR = async (info, data, send) => { await DB.Insert({ collection: "shop_data", - opname: "CORE", + opname: "CORE", pid: 57, cls_opt: 0, }); @@ -18,12 +18,13 @@ export const shopgetname: EPR = async (info, data, send) => { return send.object( K.ATTR({ status: "0", - opname: "CORE", + opname: "CORE", pid: "57", cls_opt: "0", hr: "0", mi: "0", - }) + }), + { encoding: "shift_jis" } ); } @@ -35,24 +36,13 @@ export const shopgetname: EPR = async (info, data, send) => { cls_opt: String(shop_data.cls_opt), hr: "0", mi: "0", - }) + }), + { encoding: "shift_jis" } ); }; export const shopsavename: EPR = async (info, data, send) => { - await DB.Upsert( - { - collection: "shop_data", - }, - { - $set: { - opname: $(data).attr().opname, - pid: parseInt($(data).attr().pid), - cls_opt: parseInt($(data).attr().cls_opt), - }, - } - ); - + // removed saving code as opname attribute being sent as shift_jis but KDataReader read as utf-8 // return send.success(); }; From 8a9683589b1e186febb88cdf5ed26f03a4afb945 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Wed, 28 Feb 2024 09:15:46 +0900 Subject: [PATCH 23/73] IIDX: Initial support added for EMPRESS --- iidx@asphyxia/README.md | 5 +- iidx@asphyxia/handlers/music.ts | 6 ++- iidx@asphyxia/handlers/pc.ts | 83 ++++++++++++++++++++++++++++++- iidx@asphyxia/handlers/ranking.ts | 4 +- iidx@asphyxia/handlers/shop.ts | 4 +- iidx@asphyxia/index.ts | 1 + iidx@asphyxia/models/pcdata.ts | 31 ++++++++++++ iidx@asphyxia/pug/I00/pcget.pug | 17 +++++++ iidx@asphyxia/util.ts | 1 + 9 files changed, 143 insertions(+), 9 deletions(-) create mode 100644 iidx@asphyxia/pug/I00/pcget.pug diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index c592811..b237c1e 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -7,6 +7,7 @@ Plugin Version: **v0.1.13** Supported Versions - beatmaniaIIDX 15 DJ TROOPERS + - beatmaniaIIDX 16 EMPRESS - beatmaniaIIDX 17 SIRIUS - beatmaniaIIDX 18 Resort Anthem - beatmaniaIIDX 19 Lincle @@ -36,8 +37,8 @@ Features --- Known Issues - - Clear Lamps may display invalid lamps due to missing conversion code + - DJ LEVEL folders are broken in ~ DJ TROOPERS due to missing rank_id - LEGGENDARIA play records before HEROIC VERSE may not display on higher version due to missing conversion code --- @@ -119,3 +120,5 @@ Changelogs **v0.1.13** - Added Initial support for DJ TROOPERS + - Added Initial support for EMPRESS + - Fixed where EXPERT result does not display total cleared users and ranking position diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 9262645..fe82e10 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -81,7 +81,8 @@ export const musicgetrank: EPR = async (info, data, send) => { let mVersion = Math.floor(temp_mid / 100); if (mVersion > version) return; - score_data = [-1, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; + if (version == 16) score_data = [-1, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i])]; + else score_data = [-1, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; m.push(K.ARRAY("s16", score_data)); if (res.cArray[0] != 0) b.push(K.ARRAY("u16", [temp_mid, res.cArray[0]])); @@ -99,7 +100,8 @@ export const musicgetrank: EPR = async (info, data, send) => { let mVersion = Math.floor(temp_mid / 100); if (mVersion > version) return; - score_data = [i, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; + if (version == 16) score_data = [i, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i])]; + else score_data = [i, temp_mid, ...indices.map(i => res.cArray[i]), ...indices.map(i => res.esArray[i]), ...indices.map(i => res.mArray[i])]; m.push(K.ARRAY("s16", score_data)); }); diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index e825258..1c897e8 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -1,4 +1,4 @@ -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 } from "../models/pcdata"; +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 } from "../models/pcdata"; import { grade } from "../models/grade"; import { custom, default_custom } from "../models/custom"; import { IDtoCode, IDtoRef, Base64toBuffer, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter, NumArrayToString } from "../util"; @@ -24,6 +24,18 @@ export const pccommon: EPR = async (info, data, send) => { // exposing these to plugin setting or use static value // switch (version) { case 15: + case 16: + result = { + ...result, + cmd: K.ATTR({ + gmbl: String(Number(U.GetConfig("cmd_gmbl"))), + gmbla: String(Number(U.GetConfig("cmd_gmbla"))), + regl: String(Number(U.GetConfig("cmd_regl"))), + rndp: String(Number(U.GetConfig("cmd_rndp"))), + hrnd: String(Number(U.GetConfig("cmd_hrnd"))), + alls: String(Number(U.GetConfig("cmd_alls"))), + }), + } break; case 17: result = { @@ -244,6 +256,9 @@ export const pcreg: EPR = async (info, data, send) => { case 15: pcdata = HDD_pcdata; break; + case 16: + pcdata = I00_pcdata; + break; case 17: pcdata = JDJ_pcdata; break; @@ -485,7 +500,25 @@ export const pcget: EPR = async (info, data, send) => { rArray, }); } - if (version == 17) { + else if (version == 16) { + expert.sort((a: expert, b: expert) => a.coid - b.coid); + expert.forEach((res) => { + for (let a = 0; a < 6; a++) { + eArray.push([res.coid, a, res.cArray[a], res.pgArray[a], res.gArray[a]]); + } + }); + + return send.pugFile("pug/I00/pcget.pug", { + profile, + pcdata, + dArray, + eArray, + appendsettings, + custom, + rArray, + }); + } + else if (version == 17) { expert.sort((a: expert, b: expert) => a.coid - b.coid); expert.forEach((res) => { for (let a = 0; a < 6; a++) { @@ -803,6 +836,9 @@ export const pctakeover: EPR = async (info, data, send) => { case 15: pcdata = HDD_pcdata; break; + case 16: + pcdata = I00_pcdata; + break; case 17: pcdata = JDJ_pcdata; break; @@ -1004,6 +1040,49 @@ export const pcsave: EPR = async (info, data, send) => { ); } } + else if (version == 16) { + if (cltype == 0) { + pcdata.sach = parseInt($(data).attr().achi); + pcdata.sp_opt = parseInt($(data).attr().opt); + } + else { + pcdata.dach = parseInt($(data).attr().achi); + pcdata.dp_opt = parseInt($(data).attr().opt); + pcdata.dp_opt2 = parseInt($(data).attr().opt2); + } + + pcdata.gno = parseInt($(data).attr().gno); + pcdata.sflg0 = parseInt($(data).attr().sflg0); + pcdata.sflg1 = parseInt($(data).attr().sflg1); + pcdata.sflg2 = parseInt($(data).attr().sflg2); + pcdata.sdhd = parseInt($(data).attr().sdhd); + pcdata.ncomb = parseInt($(data).attr().ncomb); + pcdata.mcomb = parseInt($(data).attr().mcomb); + pcdata.liflen = parseInt($(data).attr().lift); + pcdata.fcombo[cltype] = parseInt($(data).attr().fcombo); + + if (!_.isNil($(data).element("tutorial"))) { + let clr = parseInt($(data).attr("tutorial").clr); + await DB.Upsert(refid, + { + collection: "tutorial", + version: version, + tid: parseInt($(data).attr("tutorial").tid), + }, + { + $set: { + clr + } + } + ); + } + + // bigint is returning convert error on sendPug so save as string // + if (!_.isNil($(data).element("jewel"))) { + pcdata.jewel_num = String($(data).element("jewel").bigint("jnum")); + pcdata.jewel_bnum = $(data).element("jewel").numbers("bjnum"); + } + } else if (version == 17) { if (cltype == 0) { pcdata.sach = parseInt($(data).attr().achi); diff --git a/iidx@asphyxia/handlers/ranking.ts b/iidx@asphyxia/handlers/ranking.ts index b97bc5b..46748c9 100644 --- a/iidx@asphyxia/handlers/ranking.ts +++ b/iidx@asphyxia/handlers/ranking.ts @@ -106,7 +106,7 @@ export const rankingentry: EPR = async (info, data, send) => { } ); - let expertUser = await DB.Find(null, { + let expertUser = await DB.Find({ collection: "ranking", version: version, coid: coid, @@ -143,7 +143,7 @@ export const rankingoentry: EPR = async (info, data, send) => { export const rankinggetranker: EPR = async (info, data, send) => { const version = GetVersion(info); - const ranking = await DB.Find(null, { + const ranking = await DB.Find({ collection: "ranking", version: version, coid: parseInt($(data).attr().coid), diff --git a/iidx@asphyxia/handlers/shop.ts b/iidx@asphyxia/handlers/shop.ts index 615024e..7388272 100644 --- a/iidx@asphyxia/handlers/shop.ts +++ b/iidx@asphyxia/handlers/shop.ts @@ -11,14 +11,14 @@ export const shopgetname: EPR = async (info, data, send) => { collection: "shop_data", opname: "CORE", - pid: 57, + pid: 53, cls_opt: 0, }); return send.object( K.ATTR({ opname: "CORE", - pid: "57", + pid: "53", cls_opt: "0", hr: "0", mi: "0", diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index fc6d142..a2b846e 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -16,6 +16,7 @@ export function register() { R.Contributor("duel0213"); R.GameCode("HDD"); + R.GameCode("I00"); R.GameCode("JDJ"); R.GameCode("JDZ"); R.GameCode("KDZ"); diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 612813c..064c11c 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -120,6 +120,8 @@ export interface pcdata { sgid: number; // grade // dgid: number; + jewel_num: string; + jewel_bnum: number[]; party: number[]; jpoint: number; // jpoint (lincle) // @@ -239,6 +241,35 @@ export const HDD_pcdata = { dgid: -1, } +export const I00_pcdata = { + version: 16, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + sflg0: 0, + sflg1: 0, + sflg2: 0, + gno: 0, + sdhd: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + mcomb: 0, + ncomb: 0, + mode: 0, + pmode: 0, + liflen: 0, + + jewel_num: "0", + jewel_bnum: Array(18).fill(0), + fcombo: Array(2).fill(0), + + sgid: -1, + dgid: -1, +} + export const JDJ_pcdata = { version: 17, diff --git a/iidx@asphyxia/pug/I00/pcget.pug b/iidx@asphyxia/pug/I00/pcget.pug new file mode 100644 index 0000000..8f19393 --- /dev/null +++ b/iidx@asphyxia/pug/I00/pcget.pug @@ -0,0 +1,17 @@ +pc(status="0") + 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 sflg0=pcdata.sflg0 sflg1=pcdata.sflg1 sflg2=pcdata.sflg2 gno=pcdata.gno sdhd=pcdata.sdhd sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 mcomb=pcdata.mcomb ncomb=pcdata.ncomb mode=pcdata.mode pmode=pcdata.pmode lift_len=pcdata.liflen) + 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]} + ex + - for (let e of eArray) + e(__type="u32" __count="5") #{e[0]} #{e[1]} #{e[2]} #{e[3]} #{e[4]} + skin(__type="u16" __count="12") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} 0 0 0 + 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]) + visitor(anum="10" snum="10" pnum="10" vs_flg="1") + fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]} + jewel(rate="1") + jnum(__type="s64") #{pcdata.jewel_num} + bjnum(__type="s32" __count="18") #{pcdata.jewel_bnum[0]} #{pcdata.jewel_bnum[1]} #{pcdata.jewel_bnum[2]} #{pcdata.jewel_bnum[3]} #{pcdata.jewel_bnum[4]} #{pcdata.jewel_bnum[5]} #{pcdata.jewel_bnum[6]} #{pcdata.jewel_bnum[7]} #{pcdata.jewel_bnum[8]} #{pcdata.jewel_bnum[9]} #{pcdata.jewel_bnum[10]} #{pcdata.jewel_bnum[11]} #{pcdata.jewel_bnum[12]} #{pcdata.jewel_bnum[13]} #{pcdata.jewel_bnum[14]} #{pcdata.jewel_bnum[15]} #{pcdata.jewel_bnum[16]} #{pcdata.jewel_bnum[17]} diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index 160ac11..1447863 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -117,6 +117,7 @@ export function GetVersion(info: EamuseInfo) { let version = -1; switch (info.model.substring(0, 3)) { case "HDD": return 15; + case "I00": return 16; case "JDJ": return 17; case "JDZ": return 18; case "KDZ": return 19; From bb3333152f90d6fa0748563692de093c645ffdce Mon Sep 17 00:00:00 2001 From: duel0213 Date: Thu, 29 Feb 2024 18:24:13 +0900 Subject: [PATCH 24/73] IIDX: Fixed Base64toBuffer --- iidx@asphyxia/util.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index 1447863..41e56f7 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -43,26 +43,25 @@ export function ClidToPlaySide(clid: number) { export function Base64toBuffer(s: string) { const base64list = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - let t = "", + let buffer = Buffer.alloc(0), p = -8, a = 0, - c: number, - d: number; + c: number; - if (s == null) return Buffer.from([0x00]); + if (_.isNil(s)) return Buffer.alloc(0); for (let i = 0; i < s.length; i++) { if ((c = base64list.indexOf(s.charAt(i))) < 0) continue; + if (c == 64) break; a = (a << 6) | (c & 63); if ((p += 6) >= 0) { - d = (a >> p) & 255; - if (c != 64) t += String.fromCharCode(d); + buffer = Buffer.concat([buffer, Buffer.from([((a >> p) & 255)])]); a &= 63; p -= 8; } } - return Buffer.from(t); + return buffer; } export function NumArrayToString(bits: number[], numArray: number[]): string { From e55e659b3bda81eca99a28e78370559931ef742d Mon Sep 17 00:00:00 2001 From: duel0213 Date: Thu, 29 Feb 2024 18:24:46 +0900 Subject: [PATCH 25/73] IIDX: Added OMEGA-Attack saving support --- iidx@asphyxia/handlers/pc.ts | 75 ++++++++++++++++++++++++--------- iidx@asphyxia/models/event.ts | 14 ++++++ iidx@asphyxia/pug/LDJ/pcget.pug | 4 +- 3 files changed, 71 insertions(+), 22 deletions(-) create mode 100644 iidx@asphyxia/models/event.ts diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 1c897e8..351e055 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -9,6 +9,7 @@ import { world_tourism } from "../models/worldtourism"; import { shop_data } from "../models/shop"; import { tutorial } from "../models/tutorial"; import { expert } from "../models/ranking"; +import { blueboss } from "../models/event"; export const pccommon: EPR = async (info, data, send) => { const version = GetVersion(info); @@ -24,6 +25,7 @@ export const pccommon: EPR = async (info, data, send) => { // exposing these to plugin setting or use static value // switch (version) { case 15: + break; case 16: result = { ...result, @@ -593,14 +595,16 @@ export const pcget: EPR = async (info, data, send) => { else if (version == 20) { if (!_.isNil(pcdata.st_stamp)) pcdata.st_stamp = Base64toBuffer(pcdata.st_stamp).toString("hex"); if (!_.isNil(pcdata.st_help)) pcdata.st_help = Base64toBuffer(pcdata.st_help).toString("hex"); - if (_.isNil(pcdata.st_stamp)) pcdata.st_stamp = ""; // temp // 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" }); let redboss = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "redboss" }); + 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 = Base64toBuffer(blueboss.durability).toString("hex"); + return send.pugFile("pug/LDJ/pcget.pug", { profile, pcdata, @@ -611,6 +615,7 @@ export const pcget: EPR = async (info, data, send) => { link5, tricolettepark, redboss, + blueboss, yellowboss, shop_data, }); @@ -1446,6 +1451,53 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.orb += parseInt($(data).attr("commonboss").orb); } + if (!_.isNil($(data).element("redboss"))) { + let event_data = { + progress: parseInt($(data).attr("redboss").progress), + crush: parseInt($(data).attr("redboss").crush), + open: parseInt($(data).attr("redboss").open), + } + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "redboss", + }, + { + $set: event_data, + } + ); + } + + if (!_.isNil($(data).element("blueboss"))) { + let event_data: blueboss = { + level: Number($(data).attr("blueboss").level), + gauge: Number($(data).attr("blueboss").gauge), + item: Number($(data).attr("blueboss").item), + item_flg: Number($(data).attr("blueboss").item_flg), + row0: Number($(data).attr("blueboss").row0), + row1: Number($(data).attr("blueboss").row1), + column0: Number($(data).attr("blueboss").column0), + column1: Number($(data).attr("blueboss").column1), + general: Number($(data).attr("blueboss").general), + first_flg: Number($(data).element("blueboss").bool("first_flg")), + sector: Number($(data).element("blueboss").bool("sector")), + durability: $(data).element("blueboss").buffer("durability").toString("base64"), + } + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "blueboss", + }, + { + $set: event_data, + } + ); + } + if (!_.isNil($(data).element("yellowboss"))) { let yellowboss = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "yellowboss" }); let event_data; @@ -1477,7 +1529,7 @@ export const pcsave: EPR = async (info, data, send) => { event_data.pbest_attack[a] = Math.max(event_data.pbest_attack[a], p_attack[a]); } } - + await DB.Upsert(refid, { @@ -1490,25 +1542,6 @@ export const pcsave: EPR = async (info, data, send) => { } ); } - - if (!_.isNil($(data).element("redboss"))) { - let event_data = { - progress: parseInt($(data).attr("redboss").progress), - crush: parseInt($(data).attr("redboss").crush), - open: parseInt($(data).attr("redboss").open), - } - - await DB.Upsert(refid, - { - collection: "event_1", - version: version, - event_name: "redboss", - }, - { - $set: event_data, - } - ); - } } else if (version == 21) { pcdata.rtype = parseInt($(data).attr().rtype); diff --git a/iidx@asphyxia/models/event.ts b/iidx@asphyxia/models/event.ts new file mode 100644 index 0000000..784db38 --- /dev/null +++ b/iidx@asphyxia/models/event.ts @@ -0,0 +1,14 @@ +export interface blueboss { + level: number; + gauge: number; + item: number; + item_flg: number; + row0: number; + row1: number; + column0: number; + column1: number; + general: number; + first_flg: number; + sector: number; + durability: string; +} diff --git a/iidx@asphyxia/pug/LDJ/pcget.pug b/iidx@asphyxia/pug/LDJ/pcget.pug index 0ba682b..f3a3269 100644 --- a/iidx@asphyxia/pug/LDJ/pcget.pug +++ b/iidx@asphyxia/pug/LDJ/pcget.pug @@ -38,7 +38,9 @@ pc(status="0") commonboss(deller=pcdata.deller orb=pcdata.orb baron="0") if redboss != null redboss(progress=redboss.progress crush=redboss.crush open=redboss.open) - //-blueboss(level gauge item item_flg column0 column1 sector first_flg general) + if blueboss != null + blueboss(level=blueboss.level gauge=blueboss.gauge item=blueboss.item item_flg=blueboss.item_flg row0=blueboss.row0 row1=blueboss.row1 column0=blueboss.column0 column1=blueboss.column1 sector=blueboss.sector first_flg=blueboss.first_flg general=blueboss.general) + durability(__type="bin") #{blueboss.durability} if yellowboss != null yellowboss(join_num="1" first_flg=yellowboss.first_flg level=yellowboss.level heroic0=yellowboss.heroic0 heroic1=yellowboss.heroic1 critical=yellowboss.critical destiny="0" last_select=yellowboss.last_select shop_message="SHOP MESSAGE" special_move="SPECIAL MOVE") //-shop_damage(__type="s32" __count="7") From e1155c7a669454a67462dedaef4d72628e0336d7 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sun, 17 Mar 2024 00:04:26 +0900 Subject: [PATCH 26/73] IIDX: Added events saving on Rootage and misc --- iidx@asphyxia/handlers/music.ts | 4 +- iidx@asphyxia/handlers/pc.ts | 278 +++++++++++++++++++++++++++++- iidx@asphyxia/index.ts | 27 +++ iidx@asphyxia/models/custom.ts | 4 + iidx@asphyxia/models/pcdata.ts | 11 ++ iidx@asphyxia/pug/I00/pcget.pug | 4 +- iidx@asphyxia/pug/JDJ/pcget.pug | 2 +- iidx@asphyxia/pug/JDZ/pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/26pcget.pug | 121 ++++++------- 9 files changed, 384 insertions(+), 69 deletions(-) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index fe82e10..ab33bfa 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -374,7 +374,7 @@ export const musicappoint: EPR = async (info, data, send) => { if (!_.isNil(music_data)) my_gauge_data = Base64toBuffer(music_data[clid + 10]); if (!_.isNil(sdata)) { - if (_.isNil(other_musicdata.optArray)) { // temp // + if (_.isNil(other_musicdata.optArray)) { // migration // other_musicdata.optArray = Array(10).fill(0); other_musicdata.opt2Array = Array(10).fill(0); } @@ -504,7 +504,7 @@ export const musicreg: EPR = async (info, data, send) => { mArray = music_data.mArray; cArray = music_data.cArray; esArray = music_data.esArray; - if (!_.isNil(music_data.optArray)) { // temp // + if (!_.isNil(music_data.optArray)) { // migration // optArray = music_data.optArray; opt2Array = music_data.opt2Array; } diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 351e055..d78e018 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -19,6 +19,7 @@ export const pccommon: EPR = async (info, data, send) => { ir: K.ATTR({ beat: String(U.GetConfig("BeatPhase")) }), expert: K.ATTR({ phase: String(U.GetConfig("ExpertPhase")) }), expert_random_secret: K.ATTR({ phase: String(U.GetConfig("ExpertRandomPhase")) }), + expert_secret_full_open: {}, } // have no idea what some of attribute or value does // @@ -149,7 +150,6 @@ export const pccommon: EPR = async (info, data, send) => { break; case 24: // asphyxia_route_public // case 25: - case 26: result = { ...result, newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), @@ -157,6 +157,23 @@ export const pccommon: EPR = async (info, data, send) => { system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), } break; + case 26: + result = { + ...result, + boss: K.ATTR({ phase: String(U.GetConfig("rt_boss")) }), + extra_boss_event: K.ATTR({ phase: String(U.GetConfig("rt_extraboss")) }), + vip_pass_black: {}, + deller_bonus: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), + expert_secret_full_open: {}, + eaorder_phase: K.ATTR({ phase: String(2) }), // TODO:: figure out what this does // + common_evnet: K.ATTR({ flg: String(-1) }), // TODO:: figure out what this does // + event1_phase: K.ATTR({ phase: String(U.GetConfig("rt_event1")) }), + event2_phase: K.ATTR({ phase: String(U.GetConfig("rt_event2")) }), + system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), + anniv20_phase: K.ATTR({ phase: String(8) }), // TODO:: figure out what this does // + } + break; case 27: result = { ...result, @@ -539,7 +556,7 @@ export const pcget: EPR = async (info, data, send) => { }); } else if (version == 18) { - if (_.isNil(pcdata.fcombo)) { // temp // + if (_.isNil(pcdata.fcombo)) { // migration // pcdata.fcombo = Array(2).fill(0); await DB.Upsert( @@ -595,7 +612,7 @@ export const pcget: EPR = async (info, data, send) => { else if (version == 20) { if (!_.isNil(pcdata.st_stamp)) pcdata.st_stamp = Base64toBuffer(pcdata.st_stamp).toString("hex"); if (!_.isNil(pcdata.st_help)) pcdata.st_help = Base64toBuffer(pcdata.st_help).toString("hex"); - if (_.isNil(pcdata.st_stamp)) pcdata.st_stamp = ""; // temp // + if (_.isNil(pcdata.st_stamp)) pcdata.st_stamp = ""; // migration // 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" }); @@ -630,6 +647,10 @@ export const pcget: EPR = async (info, data, send) => { pendual_talis = null, open_tokotoko = null, mystery_line = null, + mirage_lib = null, + mirage_lib_sub = [], + delabity_lab = null, + delabity_lab_sub = [], event_1 = null, event_1s = null, evtArray = [], evtArray2 = []; @@ -676,7 +697,7 @@ export const pcget: EPR = async (info, data, send) => { } } - if (version == 21 || version == 22 || version == 23) { + if (version == 21 || version == 22 || version == 23 || version == 26) { if (!_.isNil(pcdata.sp_mlist)) { pcdata.sp_mlist = Base64toBuffer(pcdata.sp_mlist).toString("hex"); pcdata.sp_clist = Base64toBuffer(pcdata.sp_clist).toString("hex"); @@ -685,6 +706,41 @@ export const pcget: EPR = async (info, data, send) => { } } + if (version == 26) { // migration // + if (_.isNil(pcdata.eb_bossorb0)) { + pcdata.eb_bossorb0 = 0; + pcdata.eb_bossorb1 = 0; + pcdata.eb_bossorb2 = 0; + pcdata.eb_bossorb3 = 0; + pcdata.eb_bossorb4 = 0; + pcdata.eb_bossorb5 = 0; + pcdata.eb_bossorb6 = 0; + pcdata.eb_bossorb7 = 0; + pcdata.eb_bossorb8 = 0; + + await DB.Upsert( + refid, + { + collection: "pcdata", + version: version, + }, + { + $set: pcdata, + } + ); + } + + mirage_lib = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); + if (!_.isNil(mirage_lib.quiz_control_list)) mirage_lib.quiz_control_list = Base64toBuffer(mirage_lib.quiz_control_list).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 = Base64toBuffer(res.map_route_damage).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" }); + } + if (version >= 30 && lm_music_memo_new.length > 0) { lm_music_memo_new.forEach((res) => { let musicmemo_data: musicmemo_data_new = { @@ -795,6 +851,10 @@ export const pcget: EPR = async (info, data, send) => { pendual_talis, open_tokotoko, mystery_line, + mirage_lib, + mirage_lib_sub, + delabity_lab, + delabity_lab_sub, wArray, bArray, shop_data, @@ -2323,7 +2383,217 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.d_liflen = parseInt($(data).attr().d_lift); } + if (!_.isNil($(data).element("secret"))) { + pcdata.secret_flg1 = $(data).element("secret").bigints("flg1").map(String); + pcdata.secret_flg2 = $(data).element("secret").bigints("flg2").map(String); + pcdata.secret_flg3 = $(data).element("secret").bigints("flg3").map(String); + } + + if (!_.isNil($(data).element("favorite"))) { + 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"))) { + custom.qpro_secret_head = $(data).element("qpro_secret").bigints("head").map(String); + custom.qpro_secret_hair = $(data).element("qpro_secret").bigints("hair").map(String); + custom.qpro_secret_face = $(data).element("qpro_secret").bigints("face").map(String); + custom.qpro_secret_body = $(data).element("qpro_secret").bigints("body").map(String); + custom.qpro_secret_hand = $(data).element("qpro_secret").bigints("hand").map(String); + } + + if (!_.isNil($(data).element("qpro_equip"))) { + custom.qpro_head = parseInt($(data).attr("qpro_equip").head); + custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); + custom.qpro_face = parseInt($(data).attr("qpro_equip").face); + custom.qpro_body = parseInt($(data).attr("qpro_equip").body); + custom.qpro_hand = parseInt($(data).attr("qpro_equip").head); + } + + if (hasStepUpData) { + pcdata.st_enemy_damage = parseInt($(data).attr("step").enemy_damage); + pcdata.st_progress = parseInt($(data).attr("step").progress); + pcdata.st_is_track_ticket = $(data).element("step").bool("is_track_ticket"); + pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); + pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); + pcdata.st_sp_mission_point = parseInt($(data).attr("step").sp_mission_point); + pcdata.st_dp_mission_point = parseInt($(data).attr("step").dp_mission_point); + pcdata.st_sp_dj_mission_level = parseInt($(data).attr("step").sp_dj_mission_level); + 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_tips_read_list = parseInt($(data).attr("step").tips_read_list); + } + + if (!_.isNil($(data).element("achievements"))) { + // TODO:: achi_packflg, achi_packid, achi_playpack // + pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); + } + + if ($(data).attr("dj_rank.1").style == "1") { + pcdata.dr_sprank = $(data).element("dj_rank").numbers("rank"); + pcdata.dr_sppoint = $(data).element("dj_rank").numbers("point"); + pcdata.dr_dprank = $(data).element("dj_rank.1").numbers("rank"); + pcdata.dr_dppoint = $(data).element("dj_rank.1").numbers("point"); + } else if ($(data).attr("dj_rank").style == "0") { + pcdata.dr_sprank = $(data).element("dj_rank").numbers("rank"); + pcdata.dr_sppoint = $(data).element("dj_rank").numbers("point"); + } else if ($(data).attr("dj_rank").style == "1") { + pcdata.dr_dprank = $(data).element("dj_rank").numbers("rank"); + pcdata.dr_dppoint = $(data).element("dj_rank").numbers("point"); + } + + if (!_.isNil($(data).element("extra_boss_event"))) { + pcdata.eb_bossorb0 = parseInt($(data).attr("extra_boss_event").orb_0); + pcdata.eb_bossorb1 = parseInt($(data).attr("extra_boss_event").orb_1); + pcdata.eb_bossorb2 = parseInt($(data).attr("extra_boss_event").orb_2); + pcdata.eb_bossorb3 = parseInt($(data).attr("extra_boss_event").orb_3); + pcdata.eb_bossorb4 = parseInt($(data).attr("extra_boss_event").orb_4); + pcdata.eb_bossorb5 = parseInt($(data).attr("extra_boss_event").orb_5); + pcdata.eb_bossorb6 = parseInt($(data).attr("extra_boss_event").orb_6); + pcdata.eb_bossorb7 = parseInt($(data).attr("extra_boss_event").orb_7); + pcdata.eb_bossorb8 = parseInt($(data).attr("extra_boss_event").orb_8); + } + if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); + if (!_.isNil($(data).element("orb_data"))) { + pcdata.present_orb += parseInt($(data).attr("orb_data").present_orb); + pcdata.orb += parseInt($(data).attr("orb_data").add_orb); + } + + // skin_customize_flg (attr: skin_frame_flg, skin_bgm_flg) // + + // TODO:: fix event saving, these event savings hasn't fully tested // + if (!_.isNil($(data).element("event1"))) { + pcdata.event_play_num += 1; + + let event_data = { + fragment_num: parseInt($(data).attr("event1").fragment_num), + last_select_map_id: parseInt($(data).attr("event1").last_select_map_id), + read_tips_list: parseInt($(data).attr("event1").read_tips_list), + continuous_correct: parseInt($(data).attr("event1").continuous_correct), + bookshelf_release_num: parseInt($(data).attr("event1").bookshelf_release_num), + play_gift: parseInt($(data).attr("event1").play_gift), + quiz_control_list: $(data).element("event1").buffer("quiz_control_list").toString("base64"), + }; + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "event1_data", + }, + { + $set: event_data, + } + ); + + $(data).element("event1").elements("map_data").forEach((res) => { + DB.Upsert(refid, + { + collection: "event_1_sub", + version: version, + event_name: "event1_data", + map_id: parseInt(res.attr().map_id), + }, + { + $set: { + play_num: parseInt(res.attr().play_num), + last_select_route_id: parseInt(res.attr().last_select_route_id), + bookshelf_release_num: parseInt(res.attr().bookshelf_release_num), + is_clear: res.bool("is_clear"), + map_route_damage: res.buffer("map_route_damage").toString("base64"), + } + } + ); + }); + + // skipping quiz_log as it doesn't display anywhere // + } + + if (!_.isNil($(data).element("event2"))) { + let event_data = { + play_num: parseInt($(data).attr("event2").play_num), + last_select_floor: parseInt($(data).attr("event2").last_select_floor), + delabity: parseInt($(data).attr("event2").delabity), + tips_list: parseInt($(data).attr("event2").tips_list), + floor_clear_flg_list: parseInt($(data).attr("event2").floor_clear_flg_list), + floor_0_last_area: parseInt($(data).attr("event2").floor_0_last_area), + floor_1_last_area: parseInt($(data).attr("event2").floor_1_last_area), + floor_2_last_area: parseInt($(data).attr("event2").floor_2_last_area), + floor_3_last_area: parseInt($(data).attr("event2").floor_3_last_area), + floor_4_last_area: parseInt($(data).attr("event2").floor_4_last_area), + }; + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "event2_data", + }, + { + $set: event_data, + } + ); + + $(data).element("event2").elements("area_data").forEach((res) => { + DB.Upsert(refid, + { + collection: "event_1_sub", + version: version, + event_name: "event2_data", + floor_id: parseInt(res.attr().floor_id), + area_id: parseInt(res.attr().area_id), + }, + { + $set: { + last_select_note: parseInt(res.attr().last_select_note), + normal_play_num: parseInt(res.attr().normal_play_num), + hyper_play_num: parseInt(res.attr().hyper_play_num), + another_play_num: parseInt(res.attr().another_play_num), + area_clear_flg_list: parseInt(res.attr().area_clear_flg_list), + normal_grade_point: parseInt(res.attr().normal_grade_point), + hyper_grade_point: parseInt(res.attr().hyper_grade_point), + another_grade_point: parseInt(res.attr().another_grade_point), + } + } + ); + }); + } + + if (!_.isNil($(data).element("anniv20_event"))) { + let event_data = { + damage_0: parseInt($(data).attr("anniv20_event").damage_0), + damage_1: parseInt($(data).attr("anniv20_event").damage_1), + damage_2: parseInt($(data).attr("anniv20_event").damage_2), + challenge_0: parseInt($(data).attr("anniv20_event").challenge_0), + challenge_1: parseInt($(data).attr("anniv20_event").challenge_1), + challenge_2: parseInt($(data).attr("anniv20_event").challenge_2) + }; + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "anniv20_data", + }, + { + $set: event_data, + } + ); + } } else if (version >= 27) { // lid bookkeep cid ctype ccode diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index a2b846e..912076c 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -308,6 +308,33 @@ export function register() { default: 2, }); + // Rootage // + R.Config("rt_boss", { + name: "Event Phase (RT)", + desc: "蜃気楼の図書館 / DELABITY LABORATORY", + type: "integer", + default: 2, + }); + R.Config("rt_event1", { + name: "蜃気楼の図書館", + desc: "蜃気楼の図書館 Phase", + type: "integer", + default: 3 + }); + R.Config("rt_event2", { + name: "DELABITY LABORATORY", + desc: "DELABITY LABORATORY Phase", + type: "integer", + default: 2 + }); + R.Config("rt_extraboss", + { + name: "ARC SCORE", + desc: "ARC SCORE Phase", + type: "integer", + default: 3 + }); + // HEROIC VERSE // R.Config("hv_boss", { name: "Event Phase (HV)", diff --git a/iidx@asphyxia/models/custom.ts b/iidx@asphyxia/models/custom.ts index 73da240..0d793c3 100644 --- a/iidx@asphyxia/models/custom.ts +++ b/iidx@asphyxia/models/custom.ts @@ -23,6 +23,8 @@ export interface custom { disable_hcn_color: boolean; first_note_preview: number; + skin_customize_flg: number[]; + // appendsettings rank_folder: boolean; clear_folder: boolean; @@ -72,6 +74,8 @@ export const default_custom = { disable_hcn_color: false, first_note_preview: 0, + skin_customize_flg: Array(3).fill(-1), + rank_folder: true, clear_folder: true, diff_folder: true, diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 064c11c..d14edc2 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -212,6 +212,7 @@ export interface pcdata { eb_bossorb5: number; eb_bossorb6: number; eb_bossorb7: number; + eb_bossorb8: number; tourism_secret_flg1: string[]; tourism_secret_flg2: string[]; @@ -931,6 +932,16 @@ export const IIDX26_pcdata = { orb: 0, present_orb: 0, + eb_bossorb0: 0, + eb_bossorb1: 0, + eb_bossorb2: 0, + eb_bossorb3: 0, + eb_bossorb4: 0, + eb_bossorb5: 0, + eb_bossorb6: 0, + eb_bossorb7: 0, + eb_bossorb8: 0, + event_play_num: 0, event_last_select_id: -1, event2_play_num: 0, diff --git a/iidx@asphyxia/pug/I00/pcget.pug b/iidx@asphyxia/pug/I00/pcget.pug index 8f19393..b005f96 100644 --- a/iidx@asphyxia/pug/I00/pcget.pug +++ b/iidx@asphyxia/pug/I00/pcget.pug @@ -6,12 +6,12 @@ pc(status="0") ex - for (let e of eArray) e(__type="u32" __count="5") #{e[0]} #{e[1]} #{e[2]} #{e[3]} #{e[4]} - skin(__type="u16" __count="12") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} 0 0 0 + skin(__type="u16" __count="12") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} 0 0 0 0 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]) visitor(anum="10" snum="10" pnum="10" vs_flg="1") fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]} - jewel(rate="1") + jewel(rate="100") jnum(__type="s64") #{pcdata.jewel_num} bjnum(__type="s32" __count="18") #{pcdata.jewel_bnum[0]} #{pcdata.jewel_bnum[1]} #{pcdata.jewel_bnum[2]} #{pcdata.jewel_bnum[3]} #{pcdata.jewel_bnum[4]} #{pcdata.jewel_bnum[5]} #{pcdata.jewel_bnum[6]} #{pcdata.jewel_bnum[7]} #{pcdata.jewel_bnum[8]} #{pcdata.jewel_bnum[9]} #{pcdata.jewel_bnum[10]} #{pcdata.jewel_bnum[11]} #{pcdata.jewel_bnum[12]} #{pcdata.jewel_bnum[13]} #{pcdata.jewel_bnum[14]} #{pcdata.jewel_bnum[15]} #{pcdata.jewel_bnum[16]} #{pcdata.jewel_bnum[17]} diff --git a/iidx@asphyxia/pug/JDJ/pcget.pug b/iidx@asphyxia/pug/JDJ/pcget.pug index 61089af..acda4f0 100644 --- a/iidx@asphyxia/pug/JDJ/pcget.pug +++ b/iidx@asphyxia/pug/JDJ/pcget.pug @@ -6,7 +6,7 @@ pc(status="0") ex - for (let e of eArray) e(__type="u32" __count="5") #{e[0]} #{e[1]} #{e[2]} #{e[3]} #{e[4]} - skin(__type="u16" __count="12") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} 0 0 0 + skin(__type="u16" __count="12") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} 0 0 0 0 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]) diff --git a/iidx@asphyxia/pug/JDZ/pcget.pug b/iidx@asphyxia/pug/JDZ/pcget.pug index 884f44f..68446e8 100644 --- a/iidx@asphyxia/pug/JDZ/pcget.pug +++ b/iidx@asphyxia/pug/JDZ/pcget.pug @@ -4,7 +4,7 @@ pc(status="0") - for (let d of dArray) g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]} ex - skin(__type="u16" __count="12") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} 0 0 0 + skin(__type="u16" __count="12") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} 0 0 0 0 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]) diff --git a/iidx@asphyxia/pug/LDJ/26pcget.pug b/iidx@asphyxia/pug/LDJ/26pcget.pug index 9e605d1..dcf322f 100644 --- a/iidx@asphyxia/pug/LDJ/26pcget.pug +++ b/iidx@asphyxia/pug/LDJ/26pcget.pug @@ -1,10 +1,31 @@ IIDX26pc(status="0") 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 rtype=pcdata.rtype 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_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) - join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) + bind_eaappli + ea_premium_course + enable_qr_reward + leggendaria_open + 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 + if pcdata.sp_mlist != null + favorite + sp_mlist(__type="bin") #{pcdata.sp_mlist} + sp_clist(__type="bin") #{pcdata.sp_clist} + dp_mlist(__type="bin") #{pcdata.dp_mlist} + dp_clist(__type="bin") #{pcdata.dp_clist} + qpro_secret + head(__type="s64" __count="4") -1 -1 -1 -1 + hair(__type="s64" __count="4") -1 -1 -1 -1 + face(__type="s64" __count="4") -1 -1 -1 -1 + body(__type="s64" __count="4") -1 -1 -1 -1 + hand(__type="s64" __count="4") -1 -1 -1 -1 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]} - deller(deller=pcdata.deller rate="1") + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 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]) @@ -12,48 +33,29 @@ IIDX26pc(status="0") qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) shop(name=shop_data.opname) is_robo(__type="bool") 0 - ir_data - secret_course_data - 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 - expert_point - classic_course_data - qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body} - dj_rank_ranking(style="0") - detail(bronze_point="0" bronze_rank="0" category="0" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="1" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="2" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="3" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="4" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="5" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="6" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="7" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="8" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="9" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="10" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="11" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="12" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="13" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="14" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - dj_rank_ranking(style="1") - detail(bronze_point="0" bronze_rank="0" category="0" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="1" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="2" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="3" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="4" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="5" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="6" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="7" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="8" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="9" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="10" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="11" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="12" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="13" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="14" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + dj_rank(style="0") + rank(__type="s32" __count="15") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]} #{pcdata.dr_sprank[13]} #{pcdata.dr_sprank[14]} + point(__type="s32" __count="15") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]} #{pcdata.dr_sppoint[13]} #{pcdata.dr_sppoint[14]} + dj_rank(style="1") + rank(__type="s32" __count="15") #{pcdata.dr_dprank[0]} #{pcdata.dr_dprank[1]} #{pcdata.dr_dprank[2]} #{pcdata.dr_dprank[3]} #{pcdata.dr_dprank[4]} #{pcdata.dr_dprank[5]} #{pcdata.dr_dprank[6]} #{pcdata.dr_dprank[7]} #{pcdata.dr_dprank[8]} #{pcdata.dr_dprank[9]} #{pcdata.dr_dprank[10]} #{pcdata.dr_dprank[11]} #{pcdata.dr_dprank[12]} #{pcdata.dr_dprank[13]} #{pcdata.dr_dprank[14]} + point(__type="s32" __count="15") #{pcdata.dr_dppoint[0]} #{pcdata.dr_dppoint[1]} #{pcdata.dr_dppoint[2]} #{pcdata.dr_dppoint[3]} #{pcdata.dr_dppoint[4]} #{pcdata.dr_dppoint[5]} #{pcdata.dr_dppoint[6]} #{pcdata.dr_dppoint[7]} #{pcdata.dr_dppoint[8]} #{pcdata.dr_dppoint[9]} #{pcdata.dr_dppoint[10]} #{pcdata.dr_dppoint[11]} #{pcdata.dr_dppoint[12]} #{pcdata.dr_dppoint[13]} #{pcdata.dr_dppoint[14]} + extra_boss_event(orb_0=pcdata.eb_bossorb0 orb_1=pcdata.eb_bossorb1 orb_2=pcdata.eb_bossorb2 orb_3=pcdata.eb_bossorb3 orb_4=pcdata.eb_bossorb4 orb_5=pcdata.eb_bossorb5 orb_6=pcdata.eb_bossorb6 orb_7=pcdata.eb_bossorb7 orb_8=pcdata.eb_bossorb8) + join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) + visitor(anum="10" snum="10" pnum="10" vs_flg="1") + step(enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mission_point=pcdata.st_sp_mission_point dp_mission_point=pcdata.st_dp_mission_point sp_dj_mission_level=pcdata.st_sp_dj_mission_level dp_dj_mission_level=pcdata.st_dp_dj_mission_level sp_clear_mission_level=pcdata.st_sp_clear_mission_level dp_clear_mission_level=pcdata.st_dp_clear_mission_level sp_dj_mission_clear=pcdata.st_sp_dj_mission_clear dp_dj_mission_clear=pcdata.st_dp_dj_mission_clear sp_clear_mission_clear=pcdata.st_sp_clear_mission_clear dp_clear_mission_clear=pcdata.st_dp_clear_mission_clear 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} + achievements(pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp last_weekly=pcdata.achi_lastweekly weekly_num=pcdata.achi_weeklynum visit_flg=pcdata.achi_visitflg rival_crush=pcdata.achi_rivalcrush) + trophy(__type="s64" __count="20") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]} #{pcdata.achi_trophy[10]} #{pcdata.achi_trophy[11]} #{pcdata.achi_trophy[12]} #{pcdata.achi_trophy[13]} #{pcdata.achi_trophy[14]} #{pcdata.achi_trophy[15]} #{pcdata.achi_trophy[16]} #{pcdata.achi_trophy[17]} #{pcdata.achi_trophy[18]} #{pcdata.achi_trophy[19]} + deller(deller=pcdata.deller rate="1") + orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb) + pay_per_use_item(item_num="5") + present_pay_per_use_item(item_num="5") + qpro_ticket(ticket_num="10" total_ticket_num="10") + old_linkage_secret_flg(floor_infection="-1" floor_infection2="-1" qma_collabo_music="-1") + is_nostalgia(__type="bool") 1 + is_kac(__type="bool") 1 + leggendaria_semi_open(flg="-1") + konami_stytle(skip_flg="0") arena_data(play_num="2" play_num_dp="1" play_num_sp="1") achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="0" rating_value="20") achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="1" rating_value="20") @@ -63,18 +65,19 @@ IIDX26pc(status="0") is_chat_1(__type="bool") 1 is_chat_2(__type="bool") 1 is_chat_3(__type="bool") 1 - ea_premium_course - bind_eaappli - leggendaria_open - pay_per_use(item_num="99") - skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 - floor_infection3(music_list="1") - bemani_vote(music_list="511") - old_linkage_secret_flg(floor_infection="3" floor_infection2="3" qma_collabo_music="7") - is_nostalgia(__type="bool") 1 - is_kac(__type="bool") 1 - kac_entry_info - is_kac_entry - kac_secret_music - music_info(index="0" music_id="26033") - music_info(index="1" music_id="26001") + skin_customize_flg(skin_frame_flg="-1" skin_bgm_flg="-1") + if mirage_lib != null + event1(event_play_num=pcdata.event_play_num fragment_num=mirage_lib.fragment_num last_select_map_id=mirage_lib.last_select_map_id read_tips_list=mirage_lib.read_tips_list continuous_correct=mirage_lib.continuous_correct bookshelf_release_num=mirage_lib.bookshelf_release_num) + quiz_control_list(__type="bin") #{mirage_lib.quiz_control_list} + - for (let evt of mirage_lib_sub) + map_data(map_id=evt.map_id play_num=evt.play_num last_select_route_id=evt.last_select_route_id bookshelf_release_num=evt.bookshelf_release_num) + map_route_damage(__type="bin") #{evt.map_route_damage} + is_clear(__type="bool") #{evt.is_clear} + if delabity_lab != null + event2(play_num=delabity_lab.play_num last_select_floor=delabity_lab.last_select_floor delabity=delabity_lab.delabity tips_list=delabity_lab.tips_list floor_clear_flg_list=delabity_lab.floor_clear_flg_list floor_0_last_area=delabity_lab.floor_0_last_area floor_1_last_area=delabity_lab.floor_1_last_area floor_2_last_area=delabity_lab.floor_2_last_area floor_3_last_area=delabity_lab.floor_3_last_area floor_4_last_area=delabity_lab.floor_4_last_area) + - for (let evt of delabity_lab_sub) + area_data(floor_id=evt.floor_id area_id=evt.area_id last_select_note=evt.last_select_note normal_play_num=evt.normal_play_num hyper_play_num=evt.hyper_play_num another_play_num=evt.another_play_num area_clear_flg_list=evt.area_clear_flg_list normal_grade_point=evt.normal_grade_point hyper_grade_point=evt.hyper_grade_point another_grade_point=evt.another_grade_point) + floor_infection3(music_list="-1") + if anniv20 != null + anniv20_event(damage_0 damage_1 damage_2 challenge_0 challenge_1 challenge_2) + bemani_vote(music_list="-1") From 17e67042d6b3984ee4b41d7d8d95713eaed04a83 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Mon, 18 Mar 2024 18:57:02 +0900 Subject: [PATCH 27/73] IIDX: Added events saving on SINOBUZ and misc --- iidx@asphyxia/handlers/pc.ts | 271 +++++++++++++++++++++++++----- iidx@asphyxia/index.ts | 27 +++ iidx@asphyxia/models/pcdata.ts | 5 + iidx@asphyxia/pug/LDJ/24pcget.pug | 115 ++++++------- 4 files changed, 311 insertions(+), 107 deletions(-) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index d78e018..ed10c12 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -148,8 +148,21 @@ export const pccommon: EPR = async (info, data, send) => { bemani_summer2016: K.ATTR({ phase: String(U.GetConfig("cp_bemanisummer")) }), } break; - case 24: // asphyxia_route_public // - case 25: + case 24: + result = { + ...result, + boss: K.ATTR({ phase: String(U.GetConfig("sb_boss")) }), + extra_boss_event: K.ATTR({ phase: String(U.GetConfig("sb_extraboss")) }), + vip_pass_black: {}, + deller_bonus: K.ATTR({ open: String(1) }), + newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), + event1_phase: K.ATTR({ phase: String(U.GetConfig("sb_event1")) }), + event2_phase: K.ATTR({ phase: String(U.GetConfig("sb_event2")) }), + eaorder_phase: K.ATTR({ phase: String(2) }), // TODO:: figure out what this does // + common_evnet: K.ATTR({ flg: String(-1) }), // TODO:: figure out what this does // + } + break; + case 25:// asphyxia_route_public // result = { ...result, newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), @@ -647,6 +660,9 @@ export const pcget: EPR = async (info, data, send) => { pendual_talis = null, open_tokotoko = null, mystery_line = null, + siege_sinobuz = null, + siege_sinobuz_sub = null, + ninja_shichikyoden = null, mirage_lib = null, mirage_lib_sub = [], delabity_lab = null, @@ -680,6 +696,34 @@ export const pcget: EPR = async (info, data, send) => { boss1 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "boss1" }); if (!_.isNil(boss1.durability)) boss1.durability = Base64toBuffer(boss1.durability).toString("hex"); } + else if (version == 24) { + siege_sinobuz = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); + 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 = Base64toBuffer(res.ninjyutsu).toString("hex"); + res.card_damage = Base64toBuffer(res.card_damage).toString("hex"); + res.card_clear = Base64toBuffer(res.card_clear).toString("hex"); + }); + + ninja_shichikyoden = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event2_data" }); + if (!_.isNil(ninja_shichikyoden.last_select_dojo)) + ninja_shichikyoden.last_select_dojo = Base64toBuffer(ninja_shichikyoden.last_select_dojo).toString("hex"); + if (!_.isNil(ninja_shichikyoden.enemy_damage)) + ninja_shichikyoden.enemy_damage = Base64toBuffer(ninja_shichikyoden.enemy_damage).toString("hex"); + } + else if (version == 26) { + mirage_lib = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); + if (!_.isNil(mirage_lib.quiz_control_list)) + mirage_lib.quiz_control_list = Base64toBuffer(mirage_lib.quiz_control_list).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 = Base64toBuffer(res.map_route_damage).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" }); + } else { event_1 = await DB.Find(refid, { collection: "event_1", version: version }); event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version }); @@ -697,48 +741,11 @@ export const pcget: EPR = async (info, data, send) => { } } - if (version == 21 || version == 22 || version == 23 || version == 26) { - if (!_.isNil(pcdata.sp_mlist)) { - pcdata.sp_mlist = Base64toBuffer(pcdata.sp_mlist).toString("hex"); - pcdata.sp_clist = Base64toBuffer(pcdata.sp_clist).toString("hex"); - pcdata.dp_mlist = Base64toBuffer(pcdata.dp_mlist).toString("hex"); - pcdata.dp_clist = Base64toBuffer(pcdata.dp_clist).toString("hex"); - } - } - - if (version == 26) { // migration // - if (_.isNil(pcdata.eb_bossorb0)) { - pcdata.eb_bossorb0 = 0; - pcdata.eb_bossorb1 = 0; - pcdata.eb_bossorb2 = 0; - pcdata.eb_bossorb3 = 0; - pcdata.eb_bossorb4 = 0; - pcdata.eb_bossorb5 = 0; - pcdata.eb_bossorb6 = 0; - pcdata.eb_bossorb7 = 0; - pcdata.eb_bossorb8 = 0; - - await DB.Upsert( - refid, - { - collection: "pcdata", - version: version, - }, - { - $set: pcdata, - } - ); - } - - mirage_lib = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); - if (!_.isNil(mirage_lib.quiz_control_list)) mirage_lib.quiz_control_list = Base64toBuffer(mirage_lib.quiz_control_list).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 = Base64toBuffer(res.map_route_damage).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" }); + if (!_.isNil(pcdata.sp_mlist)) { + pcdata.sp_mlist = Base64toBuffer(pcdata.sp_mlist).toString("hex"); + pcdata.sp_clist = Base64toBuffer(pcdata.sp_clist).toString("hex"); + pcdata.dp_mlist = Base64toBuffer(pcdata.dp_mlist).toString("hex"); + pcdata.dp_clist = Base64toBuffer(pcdata.dp_clist).toString("hex"); } if (version >= 30 && lm_music_memo_new.length > 0) { @@ -829,6 +836,50 @@ export const pcget: EPR = async (info, data, send) => { } } + if (version == 24) { // migration // + if (_.isNil(pcdata.dr_sprank)) { + pcdata.dr_sprank = Array(15).fill(0); + pcdata.dr_sppoint = Array(15).fill(0); + pcdata.dr_dprank = Array(15).fill(0); + pcdata.dr_dppoint = Array(15).fill(0); + + await DB.Upsert( + refid, + { + collection: "pcdata", + version: version, + }, + { + $set: pcdata, + } + ); + } + } + if (version == 26) { // migration // + if (_.isNil(pcdata.eb_bossorb0)) { + pcdata.eb_bossorb0 = 0; + pcdata.eb_bossorb1 = 0; + pcdata.eb_bossorb2 = 0; + pcdata.eb_bossorb3 = 0; + pcdata.eb_bossorb4 = 0; + pcdata.eb_bossorb5 = 0; + pcdata.eb_bossorb6 = 0; + pcdata.eb_bossorb7 = 0; + pcdata.eb_bossorb8 = 0; + + await DB.Upsert( + refid, + { + collection: "pcdata", + version: version, + }, + { + $set: pcdata, + } + ); + } + } + return send.pugFile(`pug/LDJ/${version}pcget.pug`, { profile, pcdata, @@ -851,6 +902,9 @@ export const pcget: EPR = async (info, data, send) => { pendual_talis, open_tokotoko, mystery_line, + siege_sinobuz, + siege_sinobuz_sub, + ninja_shichikyoden, mirage_lib, mirage_lib_sub, delabity_lab, @@ -2268,7 +2322,136 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.d_liflen = parseInt($(data).attr().d_lift); } + if (!_.isNil($(data).element("secret"))) { + pcdata.secret_flg1 = $(data).element("secret").bigints("flg1").map(String); + pcdata.secret_flg2 = $(data).element("secret").bigints("flg2").map(String); + pcdata.secret_flg3 = $(data).element("secret").bigints("flg3").map(String); + } + + if (!_.isNil($(data).element("favorite"))) { + 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"))) { + custom.qpro_secret_head = $(data).element("qpro_secret").bigints("head").map(String); + custom.qpro_secret_hair = $(data).element("qpro_secret").bigints("hair").map(String); + custom.qpro_secret_face = $(data).element("qpro_secret").bigints("face").map(String); + custom.qpro_secret_body = $(data).element("qpro_secret").bigints("body").map(String); + custom.qpro_secret_hand = $(data).element("qpro_secret").bigints("hand").map(String); + } + + if (!_.isNil($(data).element("qpro_equip"))) { + custom.qpro_head = parseInt($(data).attr("qpro_equip").head); + custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); + custom.qpro_face = parseInt($(data).attr("qpro_equip").face); + custom.qpro_body = parseInt($(data).attr("qpro_equip").body); + custom.qpro_hand = parseInt($(data).attr("qpro_equip").head); + } + + if (hasStepUpData) { + pcdata.st_enemy_damage = parseInt($(data).attr("step").enemy_damage); + pcdata.st_progress = parseInt($(data).attr("step").progress); + pcdata.st_enemy_defeat_flg = parseInt($(data).attr("step").enemy_defeat_flg); + pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); + pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); + pcdata.st_sp_mplay = parseInt($(data).attr("step").sp_mplay); + pcdata.st_dp_mplay = parseInt($(data).attr("step").dp_mplay); + } + + if (!_.isNil($(data).element("achievements"))) { + // TODO:: achi_packflg, achi_packid, achi_playpack // + pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); + } + + if ($(data).attr("ninja_rank.1").style == "1") { + pcdata.dr_sprank = $(data).element("ninja_rank").numbers("rank"); + pcdata.dr_sppoint = $(data).element("ninja_rank").numbers("point"); + pcdata.dr_dprank = $(data).element("ninja_rank.1").numbers("rank"); + pcdata.dr_dppoint = $(data).element("ninja_rank.1").numbers("point"); + } else if ($(data).attr("ninja_rank").style == "0") { + pcdata.dr_sprank = $(data).element("ninja_rank").numbers("rank"); + pcdata.dr_sppoint = $(data).element("ninja_rank").numbers("point"); + } else if ($(data).attr("ninja_rank").style == "1") { + pcdata.dr_dprank = $(data).element("ninja_rank").numbers("rank"); + pcdata.dr_dppoint = $(data).element("ninja_rank").numbers("point"); + } + + // TODO:: fix event saving, these event savings hasn't fully tested // + if (!_.isNil($(data).element("event1"))) { + let event_data = { + last_select_map: parseInt($(data).attr("event1").last_select_map), + hold_rice: parseInt($(data).attr("event1").hold_rice), + tax_rice: parseInt($(data).attr("event1").tax_rice), + tipls_read: parseInt($(data).attr("event1").tipls_read), + play_gift: parseInt($(data).attr("event1").play_gift) + }; + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "event1_data", + }, + { + $set: event_data, + } + ); + + $(data).element("event1").elements("map_data").forEach((res) => { + DB.Upsert(refid, + { + collection: "event_1_sub", + version: version, + event_name: "event1_data", + map_id: parseInt(res.attr().map_id), + }, + { + $set: { + play_num: parseInt(res.attr().play_num), + progress: parseInt(res.attr().progress), + battle_point: parseInt(res.attr().battle_point), + rice_point: parseInt(res.attr().rice_point), + is_clear: res.bool("is_clear"), + ninjyutsu: res.buffer("ninjyutsu").toString("base64"), + card_damage: res.buffer("card_damage").toString("base64"), + card_clear: res.buffer("card_clear").toString("base64"), + } + } + ); + }); + } + + if (!_.isNil($(data).element("event2"))) { + let event_data = { + play_num: parseInt($(data).attr("event2").play_num), + chakra_point: parseInt($(data).attr("event2").chakra_point), + last_select_ryuha: parseInt($(data).attr("event2").last_select_ryuha), + last_select_dojo: $(data).element("event2").buffer("last_select_dojo").toString("base64"), + enemy_damage: $(data).element("event2").buffer("enemy_damage").toString("base64"), + }; + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "event2_data", + }, + { + $set: event_data, + } + ); + } + // onemore // + if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); + if (!_.isNil($(data).element("orb_data"))) pcdata.orb += parseInt($(data).attr("orb_data").add_orb); } else if (version == 25) { pcdata.sach = parseInt($(data).attr().s_achi); diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 912076c..fe37812 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -308,6 +308,33 @@ export function register() { default: 2, }); + // SINOBUZ // + R.Config("sb_boss", { + name: "Event Phase (SB)", + desc: "攻城シノバズ伝 / 忍々七鍵伝", + type: "integer", + default: 2, + }); + R.Config("sb_event1", { + name: "攻城シノバズ伝", + desc: "攻城シノバズ伝 Phase", + type: "integer", + default: 2 + }); + R.Config("sb_event2", { + name: "忍々七鍵伝", + desc: "忍々七鍵伝 Phase", + type: "integer", + default: 3 + }); + R.Config("sb_extraboss", + { + name: "BUZRA ARTS", + desc: "BUZRA ARTS Phase", + type: "integer", + default: 5 + }); + // Rootage // R.Config("rt_boss", { name: "Event Phase (RT)", diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index d14edc2..cc58556 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -717,6 +717,11 @@ export const IIDX24_pcdata = { sgid: -1, dgid: -1, + dr_sprank: Array(15).fill(0), + dr_sppoint: Array(15).fill(0), + dr_dprank: Array(15).fill(0), + dr_dppoint: Array(15).fill(0), + event_play_num: 0, event_last_select_id: -1, event2_play_num: 0, diff --git a/iidx@asphyxia/pug/LDJ/24pcget.pug b/iidx@asphyxia/pug/LDJ/24pcget.pug index 08a3e7f..20a6438 100644 --- a/iidx@asphyxia/pug/LDJ/24pcget.pug +++ b/iidx@asphyxia/pug/LDJ/24pcget.pug @@ -1,10 +1,30 @@ IIDX24pc(status="0") - 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 rtype=pcdata.rtype 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_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_exscore=pcdata.s_exscore d_exscore=pcdata.d_exscore 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) - join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) + 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 rtype=pcdata.rtype 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_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_exscore=pcdata.s_exscore d_exscore=pcdata.d_exscore s_graph_score=pcdata.s_graph_score d_graph_score=pcdata.d_graph_score) + spdp_rival(flg="0") + bind_eaappli + ea_premium_course + leggendaria_open + 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 + if pcdata.sp_mlist != null + favorite + sp_mlist(__type="bin") #{pcdata.sp_mlist} + sp_clist(__type="bin") #{pcdata.sp_clist} + dp_mlist(__type="bin") #{pcdata.dp_mlist} + dp_clist(__type="bin") #{pcdata.dp_clist} + qpro_secret + head(__type="s64" __count="4") -1 -1 -1 -1 + hair(__type="s64" __count="4") -1 -1 -1 -1 + face(__type="s64" __count="4") -1 -1 -1 -1 + body(__type="s64" __count="4") -1 -1 -1 -1 + hand(__type="s64" __count="4") -1 -1 -1 -1 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]} - deller(deller=pcdata.deller rate="1") + skin(__type="s16" __count="17") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 0 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]) @@ -12,64 +32,33 @@ IIDX24pc(status="0") qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) shop(name=shop_data.opname) is_robo(__type="bool") 0 - ir_data - secret_course_data - 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 - expert_point - classic_course_data - qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body} - dj_rank_ranking(style="0") - detail(bronze_point="0" bronze_rank="0" category="0" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="1" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="2" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="3" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="4" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="5" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="6" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="7" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="8" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="9" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="10" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="11" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="12" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="13" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="14" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - dj_rank_ranking(style="1") - detail(bronze_point="0" bronze_rank="0" category="0" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="1" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="2" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="3" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="4" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="5" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="6" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="7" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="8" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="9" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="10" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="11" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="12" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="13" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="14" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - arena_data(play_num="2" play_num_dp="1" play_num_sp="1") - achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="0" rating_value="20") - achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="1" rating_value="20") - 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 - ea_premium_course - bind_eaappli - leggendaria_open - pay_per_use(item_num="99") - skin(__type="s16" __count="17") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 0 0 0 + ninja_rank(style="0") + rank(__type="s32" __count="13") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]} + point(__type="s32" __count="13") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]} + ninja_rank(style="1") + rank(__type="s32" __count="13") #{pcdata.dr_dprank[0]} #{pcdata.dr_dprank[1]} #{pcdata.dr_dprank[2]} #{pcdata.dr_dprank[3]} #{pcdata.dr_dprank[4]} #{pcdata.dr_dprank[5]} #{pcdata.dr_dprank[6]} #{pcdata.dr_dprank[7]} #{pcdata.dr_dprank[8]} #{pcdata.dr_dprank[9]} #{pcdata.dr_dprank[10]} #{pcdata.dr_dprank[11]} #{pcdata.dr_dprank[12]} + point(__type="s32" __count="13") #{pcdata.dr_dppoint[0]} #{pcdata.dr_dppoint[1]} #{pcdata.dr_dppoint[2]} #{pcdata.dr_dppoint[3]} #{pcdata.dr_dppoint[4]} #{pcdata.dr_dppoint[5]} #{pcdata.dr_dppoint[6]} #{pcdata.dr_dppoint[7]} #{pcdata.dr_dppoint[8]} #{pcdata.dr_dppoint[9]} #{pcdata.dr_dppoint[10]} #{pcdata.dr_dppoint[11]} #{pcdata.dr_dppoint[12]} + if siege_sinobuz != null + event1(last_select_map=siege_sinobuz.last_select_map hold_rice=siege_sinobuz.hold_rice tax_rice=siege_sinobuz.tax_rice tips_list=siege_sinobuz.tipls_read) + - for (let evt of siege_sinobuz_sub) + map_data(map_id=evt.map_id play_num=evt.play_num progress=evt.progress battle_point=evt.battle_point rice_point=evt.rice_point is_clear=evt.is_clear) + ninjyutsu(__type="bin") #{evt.ninjyutsu} + map_card_damage(__type="bin") #{evt.card_damage} + map_card_clear(__type="bin") #{evt.card_clear} + if ninja_shichikyoden != null + event2(play_num=ninja_shichikyoden.play_num chakra_point=ninja_shichikyoden.chakra_point last_select_ryuha=ninja_shichikyoden.last_select_ryuha) + last_select_dojo(__type="bin") #{ninja_shichikyoden.last_select_dojo} + enemy_damage(__type="bin") #{ninja_shichikyoden.enemy_damage} + //-onemore_data(defeat_0 defeat_1 defeat_2 defeat_3 defeat_4 defeat_5 defeat_6 challenge_num_n challenge_num_h challenge_num_a) + join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) + visitor(anum="10" snum="10" pnum="10" vs_flg="1") + step(enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress enemy_defeat_flg=pcdata.st_enemy_defeat_flg sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay) + achievements(pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp last_weekly=pcdata.achi_lastweekly weekly_num=pcdata.achi_weeklynum visit_flg=pcdata.achi_visitflg rival_crush=pcdata.achi_rivalcrush) + trophy(__type="s64" __count="10") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]} + deller(deller=pcdata.deller rate="1") + orb_data(rest_orb=pcdata.orb) + pay_per_use(item_num="5") + present_pay_per_use(item_num="5") + old_linkage_secret_flg(bemani_diary="-1" floor_infection="-1" beatstream="-1" destiny_catharsis="-1" reflec_gw="-1" link_track="-1" qpronicle_love="-1") nostalgia_open - konami_style(skip_flg="0") - orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb) - tonjyutsu(black_pass="99" platinum_pass="99") - ninja_rank(style="5") + konami_stytle(skip_flg="0") From e04588e9429ac2fa03698506e6e76a7932d80a3b Mon Sep 17 00:00:00 2001 From: duel0213 Date: Tue, 19 Mar 2024 15:27:07 +0900 Subject: [PATCH 28/73] IIDX: Added events saving on CANNON BALLERS and misc --- iidx@asphyxia/README.md | 25 ++++-- iidx@asphyxia/handlers/pc.ts | 141 ++++++++++++++++++++++++++++-- iidx@asphyxia/index.ts | 50 ++++++++--- iidx@asphyxia/models/pcdata.ts | 4 +- iidx@asphyxia/pug/LDJ/25pcget.pug | 107 ++++++++++------------- 5 files changed, 241 insertions(+), 86 deletions(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index b237c1e..81f2c20 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -1,6 +1,6 @@ # beatmaniaIIDX -Plugin Version: **v0.1.13** +Plugin Version: **v0.1.14** --- @@ -33,13 +33,15 @@ Features - ARENA (Partial) - RANDOME LANE TICKET - FAVORITE/SONG SELECTION NOTES (Partial) + - EXTRA FAVORITE does not support yet --- Known Issues - Clear Lamps may display invalid lamps due to missing conversion code - - DJ LEVEL folders are broken in ~ DJ TROOPERS due to missing rank_id + - DJ LEVEL folders are broken in ~ DJ TROOPERS due to missing rank\_id - LEGGENDARIA play records before HEROIC VERSE may not display on higher version due to missing conversion code + - ONE MORE EXTRA STAGE progress won't save (can't test this due to skill issue) --- @@ -53,7 +55,7 @@ Changelogs - Expanded score array to adapting newer difficulty (SPN ~ DPA [6] -> SPB ~ DPL [10]) - This borked previous score datas recorded with v0.1.0 - All score data now shared with all version - - as it doesn't have music_id conversion, it will display incorrect data on certain versions + - as it doesn't have music\_id conversion, it will display incorrect data on certain versions - Added Initial customize support (no webui) **v0.1.2** @@ -68,13 +70,13 @@ Changelogs **v0.1.5** - Added Initial support for Resort Anthem - - BEGINNER, LEAGUE, STORY does not work yet - - Fixed where s_hispeed/d_hispeed doesn't save correctly + - LEAGUE, STORY does not work yet + - Fixed where s\_hispeed/d\_hispeed doesn't save correctly **v0.1.6** - Added Initial support for tricoro - Some of event savings are broken - - Added movie_upload url setting on plugin setting (BISTROVER ~) + - Added movie\_upload url setting on plugin setting (BISTROVER ~) - This uses JSON instead of XML and this requires additional setup (can't test or implement this as I don't own NVIDIA GPU) **v0.1.7** @@ -86,7 +88,7 @@ Changelogs - Added RIVAL pacemaker support - Added Initial support for PENDUAL - Some of event savings are broken - - Fixed where old_linkage_secret_flg is missing on pc.get response (RESIDENT) + - Fixed where old\_linkage\_secret\_flg is missing on pc.get response (RESIDENT) - Fixed where game could crash due to invalid rival qprodata - Fixed where lift isn't saving (SPADA) @@ -97,12 +99,12 @@ Changelogs **v0.1.10** - Added Initial support for SINOBUZ ~ Rootage - - Converted from asphyxia_route_public + - Converted from asphyxia\_route\_public **v0.1.11** - Added Shop Ranking support - Changed pc.common/gameSystem.systemInfo response not to use pugFile - - IIDX_CPUS on models/arena.ts came from asphyxia_route_public + - IIDX\_CPUS on models/arena.ts came from asphyxia\_route\_public **v0.1.12** - Exposed some of pc.common attributes to plugin settings (WIP) @@ -122,3 +124,8 @@ Changelogs - Added Initial support for DJ TROOPERS - Added Initial support for EMPRESS - Fixed where EXPERT result does not display total cleared users and ranking position + +**v0.1.14** + - Added Experimental OMEGA-Attack event saving support on tricoro + - Reworked on SINOBUZ ~ Rootage responses + - Fixed where Base64toBuffer returns invalid value sometimes diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index ed10c12..7c6143a 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -134,7 +134,7 @@ export const pccommon: EPR = async (info, data, send) => { boss: K.ATTR({ phase: String(U.GetConfig("cp_boss")) }), event1_phase: K.ATTR({ phase: String(U.GetConfig("cp_event1")) }), event2_phase: K.ATTR({ phase: String(U.GetConfig("cp_event2")) }), - extra_boss_event: K.ATTR({ phase: String(30) }), // TODO:: verify // + extra_boss_event: K.ATTR({ phase: String(U.GetConfig("cp_extraboss")) }), // TODO:: verify // vip_pass_black: {}, event1_ranbow_ticket: {}, deller_bonus: K.ATTR({ open: String(1) }), @@ -162,12 +162,17 @@ export const pccommon: EPR = async (info, data, send) => { common_evnet: K.ATTR({ flg: String(-1) }), // TODO:: figure out what this does // } break; - case 25:// asphyxia_route_public // + case 25: result = { ...result, + boss: K.ATTR({ phase: String(U.GetConfig("cb_boss")) }), + event1_phase: K.ATTR({ phase: String(U.GetConfig("cb_event1")) }), + extra_boss_event: K.ATTR({ phase: String(U.GetConfig("cb_extraboss")) }), + vip_pass_black: {}, + deller_bonus: K.ATTR({ open: String(1) }), newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), - expert_secret_full_open: {}, - system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), + eaorder_phase: K.ATTR({ phase: String(2) }), // TODO:: figure out what this does // + common_evnet: K.ATTR({ flg: String(-1) }), // TODO:: figure out what this does // } break; case 26: @@ -661,8 +666,10 @@ export const pcget: EPR = async (info, data, send) => { open_tokotoko = null, mystery_line = null, siege_sinobuz = null, - siege_sinobuz_sub = null, + siege_sinobuz_sub = [], ninja_shichikyoden = null, + rush_cannonracer = null, + rush_cannonracer_sub = [], mirage_lib = null, mirage_lib_sub = [], delabity_lab = null, @@ -712,6 +719,13 @@ export const pcget: EPR = async (info, data, send) => { if (!_.isNil(ninja_shichikyoden.enemy_damage)) ninja_shichikyoden.enemy_damage = Base64toBuffer(ninja_shichikyoden.enemy_damage).toString("hex"); } + else if (version == 25) { + rush_cannonracer = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); + rush_cannonracer_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_name: "event1_data" }); + rush_cannonracer_sub.forEach((res) => { + res.is_clear = Number(res.is_clear); + }); + } else if (version == 26) { mirage_lib = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); if (!_.isNil(mirage_lib.quiz_control_list)) @@ -905,6 +919,8 @@ export const pcget: EPR = async (info, data, send) => { siege_sinobuz, siege_sinobuz_sub, ninja_shichikyoden, + rush_cannonracer, + rush_cannonracer_sub, mirage_lib, mirage_lib_sub, delabity_lab, @@ -2237,7 +2253,6 @@ export const pcsave: EPR = async (info, data, send) => { hold_point: parseInt($(data).attr("event1_data").hold_point), rank_point: parseInt($(data).attr("event1_data").rank_point), tips_list: parseInt($(data).attr("event1_data").tips_list), - use_gift_point: $(data).element("event1_data").bool("use_gift_point"), }; await DB.Upsert(refid, @@ -2509,7 +2524,121 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.d_liflen = parseInt($(data).attr().d_lift); } + if (!_.isNil($(data).element("secret"))) { + pcdata.secret_flg1 = $(data).element("secret").bigints("flg1").map(String); + pcdata.secret_flg2 = $(data).element("secret").bigints("flg2").map(String); + pcdata.secret_flg3 = $(data).element("secret").bigints("flg3").map(String); + } + + if (!_.isNil($(data).element("favorite"))) { + 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"))) { + custom.qpro_secret_head = $(data).element("qpro_secret").bigints("head").map(String); + custom.qpro_secret_hair = $(data).element("qpro_secret").bigints("hair").map(String); + custom.qpro_secret_face = $(data).element("qpro_secret").bigints("face").map(String); + custom.qpro_secret_body = $(data).element("qpro_secret").bigints("body").map(String); + custom.qpro_secret_hand = $(data).element("qpro_secret").bigints("hand").map(String); + } + + if (!_.isNil($(data).element("qpro_equip"))) { + custom.qpro_head = parseInt($(data).attr("qpro_equip").head); + custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); + custom.qpro_face = parseInt($(data).attr("qpro_equip").face); + custom.qpro_body = parseInt($(data).attr("qpro_equip").body); + custom.qpro_hand = parseInt($(data).attr("qpro_equip").head); + } + + if (hasStepUpData) { + pcdata.st_enemy_damage = parseInt($(data).attr("step").enemy_damage); + pcdata.st_progress = parseInt($(data).attr("step").progress); + pcdata.st_point = parseInt($(data).attr("step").point); + pcdata.st_enemy_defeat_flg = parseInt($(data).attr("step").enemy_defeat_flg); + pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); + pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); + pcdata.st_sp_mplay = parseInt($(data).attr("step").sp_mplay); + pcdata.st_dp_mplay = parseInt($(data).attr("step").dp_mplay); + } + + if (!_.isNil($(data).element("achievements"))) { + // TODO:: achi_packflg, achi_packid, achi_playpack // + pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); + } + + if ($(data).attr("dj_rank.1").style == "1") { + pcdata.dr_sprank = $(data).element("dj_rank").numbers("rank"); + pcdata.dr_sppoint = $(data).element("dj_rank").numbers("point"); + pcdata.dr_dprank = $(data).element("dj_rank.1").numbers("rank"); + pcdata.dr_dppoint = $(data).element("dj_rank.1").numbers("point"); + } else if ($(data).attr("dj_rank").style == "0") { + pcdata.dr_sprank = $(data).element("dj_rank").numbers("rank"); + pcdata.dr_sppoint = $(data).element("dj_rank").numbers("point"); + } else if ($(data).attr("dj_rank").style == "1") { + pcdata.dr_dprank = $(data).element("dj_rank").numbers("rank"); + pcdata.dr_dppoint = $(data).element("dj_rank").numbers("point"); + } + if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); + if (!_.isNil($(data).element("orb_data"))) pcdata.orb += parseInt($(data).attr("orb_data").add_orb); + + // TODO:: fix event saving, these event savings hasn't fully tested // + if (!_.isNil($(data).element("event1"))) { + let event_data = { + tuneup_point: parseInt($(data).attr("event1").tuneup_point), + body_parts_list: parseInt($(data).attr("event1").body_parts_list), + engine_parts_list: parseInt($(data).attr("event1").engine_parts_list), + tire_parts_list: parseInt($(data).attr("event1").tire_parts_list), + body_equip_parts: parseInt($(data).attr("event1").body_equip_parts), + engine_equip_parts: parseInt($(data).attr("event1").engine_equip_parts), + tire_equip_parts: parseInt($(data).attr("event1").tire_equip_parts), + play_gift: parseInt($(data).attr("event1").play_gift) + }; + + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_name: "event1_data", + }, + { + $set: event_data, + } + ); + + $(data).element("event1").elements("map_data").forEach((res) => { + DB.Upsert(refid, + { + collection: "event_1_sub", + version: version, + event_name: "event1_data", + map_id: parseInt(res.attr().map_id), + }, + { + $set: { + play_num: parseInt(res.attr().play_num), + progress: parseInt(res.attr().progress), + boost_fuel: parseInt(res.attr().boost_fuel), + rare1_appearance: parseInt(res.attr().rare1_appearance), + rare2_appearance: parseInt(res.attr().rare2_appearance), + rare3_appearance: parseInt(res.attr().rare3_appearance), + rare4_appearance: parseInt(res.attr().rare4_appearance), + rare5_appearance: parseInt(res.attr().rare5_appearance), + rare6_appearance: parseInt(res.attr().rare6_appearance), + rare_defeat_list: parseInt(res.attr().rare_defeat_list), + is_clear: res.bool("is_clear"), + } + } + ); + }); + } } else if (version == 26) { pcdata.rtype = parseInt($(data).attr().rtype); diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index fe37812..847b2b9 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -301,6 +301,13 @@ export function register() { type: "integer", default: 2, }); + R.Config("cp_extraboss", + { + name: "Extra Boss Phase (CP)", + desc: "Extra Boss Phase", + type: "integer", + default: 30, + }); R.Config("cp_bemanisummer", { name: "BEMANI Summer 2016", desc: "NEW Generation 夏の流星フェスタ2016 Phase", @@ -319,20 +326,41 @@ export function register() { name: "攻城シノバズ伝", desc: "攻城シノバズ伝 Phase", type: "integer", - default: 2 + default: 2, }); R.Config("sb_event2", { name: "忍々七鍵伝", desc: "忍々七鍵伝 Phase", type: "integer", - default: 3 + default: 2, }); R.Config("sb_extraboss", { name: "BUZRA ARTS", desc: "BUZRA ARTS Phase", type: "integer", - default: 5 + default: 35, + }); + + // CANNON BALLERS // + R.Config("cb_boss", { + name: "Event Phase (SB)", + desc: "激走!キャノンレーサー", + type: "integer", + default: 1, + }); + R.Config("cb_event1", { + name: "激走!キャノンレーサー", + desc: "激走!キャノンレーサー Phase", + type: "integer", + default: 3, + }); + R.Config("cb_extraboss", + { + name: "IIDX AIR RACE", + desc: "IIDX AIR RACE Phase", + type: "integer", + default: 35, }); // Rootage // @@ -346,20 +374,20 @@ export function register() { name: "蜃気楼の図書館", desc: "蜃気楼の図書館 Phase", type: "integer", - default: 3 + default: 3, }); R.Config("rt_event2", { name: "DELABITY LABORATORY", desc: "DELABITY LABORATORY Phase", type: "integer", - default: 2 + default: 2, }); R.Config("rt_extraboss", { name: "ARC SCORE", desc: "ARC SCORE Phase", type: "integer", - default: 3 + default: 3, }); // HEROIC VERSE // @@ -373,14 +401,14 @@ export function register() { name: "HEROIC WORKOUT!!", desc: "HEROIC WORKOUT!! Phase", type: "integer", - default: 4 + default: 4, }); R.Config("hv_extraboss", { name: "SHADOW REBELLION", desc: "SHADOW REBELLION Phase", type: "integer", - default: 1 + default: 1, }); // BISTROVER // @@ -388,19 +416,19 @@ export function register() { name: "Event Phase (BO)", desc: "召しませ!BISTROVER", type: "integer", - default: 1 + default: 1, }); R.Config("bo_extraboss", { name: "BISTRO LANDING", desc: "BISTRO LANDING Phase", type: "integer", - default: 1 + default: 1, }); R.Config("bo_event", { name: "召しませ!BISTROVER", desc: "召しませ!BISTROVER Phase", type: "integer", - default: 1 + default: 1, }); // CastHour // diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index cc58556..59633bf 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -139,7 +139,7 @@ export interface pcdata { st_stamp: any; st_help: any; // save as base64 string, sent as buffer // - st_damage: number; // spada // + st_damage: number; // SPADA // st_defeat: number; st_round: number; st_sp_mission: number; @@ -162,6 +162,8 @@ export interface pcdata { st_mission_gauge: number; st_tokimeki: any; + st_point: number; // Cannon Ballers // + st_enemy_damage: number; // Heroic Verse // st_progress: number; st_is_track_ticket: boolean; diff --git a/iidx@asphyxia/pug/LDJ/25pcget.pug b/iidx@asphyxia/pug/LDJ/25pcget.pug index 1b07128..9003963 100644 --- a/iidx@asphyxia/pug/LDJ/25pcget.pug +++ b/iidx@asphyxia/pug/LDJ/25pcget.pug @@ -1,10 +1,30 @@ IIDX25pc(status="0") 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 rtype=pcdata.rtype 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_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_exscore=pcdata.s_exscore d_exscore=pcdata.d_exscore 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) - join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) + spdp_rival(flg="0") + bind_eaappli + ea_premium_course + leggendaria_open + 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 + if pcdata.sp_mlist != null + favorite + sp_mlist(__type="bin") #{pcdata.sp_mlist} + sp_clist(__type="bin") #{pcdata.sp_clist} + dp_mlist(__type="bin") #{pcdata.dp_mlist} + dp_clist(__type="bin") #{pcdata.dp_clist} + qpro_secret + head(__type="s64" __count="4") -1 -1 -1 -1 + hair(__type="s64" __count="4") -1 -1 -1 -1 + face(__type="s64" __count="4") -1 -1 -1 -1 + body(__type="s64" __count="4") -1 -1 -1 -1 + hand(__type="s64" __count="4") -1 -1 -1 -1 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]} - deller(deller=pcdata.deller rate="1") + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 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]) @@ -12,64 +32,33 @@ IIDX25pc(status="0") qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) shop(name=shop_data.opname) is_robo(__type="bool") 0 - ir_data - secret_course_data - 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 - expert_point - classic_course_data - qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body} - dj_rank_ranking(style="0") - detail(bronze_point="0" bronze_rank="0" category="0" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="1" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="2" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="3" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="4" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="5" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="6" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="7" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="8" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="9" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="10" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="11" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="12" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="13" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="14" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - dj_rank_ranking(style="1") - detail(bronze_point="0" bronze_rank="0" category="0" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="1" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="2" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="3" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="4" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="5" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="6" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="7" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="8" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="9" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="10" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="11" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="12" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="13" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") - detail(bronze_point="0" bronze_rank="0" category="14" gold_point="0" gold_rank="0" platinum_point="0" platinum_rank="0" rank="0" silver_point="0" silver_rank="0" total_user="0" white_point="0" white_rank="0") + dj_rank(style="0") + rank(__type="s32" __count="15") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]} #{pcdata.dr_sprank[13]} #{pcdata.dr_sprank[14]} + point(__type="s32" __count="15") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]} #{pcdata.dr_sppoint[13]} #{pcdata.dr_sppoint[14]} + dj_rank(style="1") + rank(__type="s32" __count="15") #{pcdata.dr_dprank[0]} #{pcdata.dr_dprank[1]} #{pcdata.dr_dprank[2]} #{pcdata.dr_dprank[3]} #{pcdata.dr_dprank[4]} #{pcdata.dr_dprank[5]} #{pcdata.dr_dprank[6]} #{pcdata.dr_dprank[7]} #{pcdata.dr_dprank[8]} #{pcdata.dr_dprank[9]} #{pcdata.dr_dprank[10]} #{pcdata.dr_dprank[11]} #{pcdata.dr_dprank[12]} #{pcdata.dr_dprank[13]} #{pcdata.dr_dprank[14]} + point(__type="s32" __count="15") #{pcdata.dr_dppoint[0]} #{pcdata.dr_dppoint[1]} #{pcdata.dr_dppoint[2]} #{pcdata.dr_dppoint[3]} #{pcdata.dr_dppoint[4]} #{pcdata.dr_dppoint[5]} #{pcdata.dr_dppoint[6]} #{pcdata.dr_dppoint[7]} #{pcdata.dr_dppoint[8]} #{pcdata.dr_dppoint[9]} #{pcdata.dr_dppoint[10]} #{pcdata.dr_dppoint[11]} #{pcdata.dr_dppoint[12]} #{pcdata.dr_dppoint[13]} #{pcdata.dr_dppoint[14]} + //-onemore_event(defeat_0-5 channelge_num_1-3_n-a) + join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname) + visitor(anum="10" snum="10" pnum="10" vs_flg="1") + step(enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress point=pcdata.st_point enemy_defeat_flg=pcdata.st_enemy_defeat_flg sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay) + achievements(pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp last_weekly=pcdata.achi_lastweekly weekly_num=pcdata.achi_weeklynum visit_flg=pcdata.achi_visitflg rival_crush=pcdata.achi_rivalcrush) + trophy(__type="s64" __count="10") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]} + deller(deller=pcdata.deller rate="1") + orb_data(rest_orb=pcdata.orb) + pay_per_use(item_num="5") + present_pay_per_use(item_num="5") + old_linkage_secret_flg(floor_infection="-1" link_track="-1") + nostalgia_open + leggendaria_semi_open(flg="-1") + konami_stytle(skip_flg="0") + if rush_cannonracer != null + event1(tuneup_point=rush_cannonracer.tuneup_point body_parts_list=rush_cannonracer.body_parts_list engine_parts_list=rush_cannonracer.engine_parts_list tire_parts_list=rush_cannonracer.tire_parts_list body_equip_parts=rush_cannonracer.body_equip_parts engine_equip_parts=rush_cannonracer.engine_equip_parts tire_equip_parts=rush_cannonracer.tire_equip_parts gift_point="0") + - for (let evt of rush_cannonracer_sub) + map_data(map_id=evt.map_id play_num=evt.play_num progress=evt.progress boost_fuel=evt.boost_fuel is_clear=evt.is_clear rare1_appearance=evt.rare1_appearance rare2_appearance=evt.rare2_appearance rare3_appearance=evt.rare3_appearance rare4_appearance=evt.rare4_appearance rare5_appearance=evt.rare5_appearance rare6_appearance=evt.rare6_appearance rare_defeat_list=evt.rare_defeat_list) arena_data(play_num="2" play_num_dp="1" play_num_sp="1") achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="0" rating_value="20") achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="1" rating_value="20") 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 - ea_premium_course - bind_eaappli - leggendaria_open - pay_per_use(item_num="99") - skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 - nostalgia_open - floor_infection(music_list="3") - qma_collabo(music_list="7") - old_linkage_secret_flg(floor_infection="-1" link_track="-1") - event1_rival_car(body="0" face="0" hair="0" hand="0" head="0" iidx_id="00000000" name="ASYX") + floor_infection(music_list="-1") + qma_collabo(music_list="-1") From 9a48fadde0276cc05836220746833ddfc685b358 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Tue, 19 Mar 2024 17:18:59 +0900 Subject: [PATCH 29/73] IIDX: Fixed timing display option isn't saving on certain version --- iidx@asphyxia/README.md | 1 + iidx@asphyxia/handlers/pc.ts | 87 +++++++++++++++++++++++++------ iidx@asphyxia/pug/LDJ/22pcget.pug | 3 +- iidx@asphyxia/pug/LDJ/23pcget.pug | 3 +- 4 files changed, 76 insertions(+), 18 deletions(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 81f2c20..25c214b 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -129,3 +129,4 @@ Changelogs - Added Experimental OMEGA-Attack event saving support on tricoro - Reworked on SINOBUZ ~ Rootage responses - Fixed where Base64toBuffer returns invalid value sometimes + - Fixed where timing display option isn't saving on certain versions diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 7c6143a..94b2c0d 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -661,10 +661,12 @@ export const pcget: EPR = async (info, data, send) => { boss1 = null, chrono_diver = null, qpronicle_chord = null, + qpronicle_chord_sub = [], qpronicle_phase3 = null, pendual_talis = null, open_tokotoko = null, mystery_line = null, + mystery_line_sub = [], siege_sinobuz = null, siege_sinobuz_sub = [], ninja_shichikyoden = null, @@ -678,11 +680,14 @@ export const pcget: EPR = async (info, data, send) => { event_1s = null, evtArray = [], evtArray2 = []; - if (version == 23) { - if (!_.isNil(pcdata.st_tokimeki)) pcdata.st_tokimeki = Base64toBuffer(pcdata.st_tokimeki).toString("hex"); + if (version == 21) { + if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).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" }); + 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.durability)) boss1.durability = Base64toBuffer(boss1.durability).toString("hex"); } else if (version == 22) { if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).toString("hex"); @@ -692,16 +697,15 @@ export const pcget: EPR = async (info, data, send) => { if (_.isNil(pendual_talis)) pendual_talis = { point: 0 }; qpronicle_chord = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_chord" }); + qpronicle_chord_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_name: "qpronicle_chord" }); qpronicle_phase3 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_phase3" }); } - else if (version == 21) { - if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).toString("hex"); + else if (version == 23) { + if (!_.isNil(pcdata.st_tokimeki)) pcdata.st_tokimeki = Base64toBuffer(pcdata.st_tokimeki).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.durability)) boss1.durability = Base64toBuffer(boss1.durability).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" }); + mystery_line_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_name: "event2_data" }); } else if (version == 24) { siege_sinobuz = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); @@ -730,6 +734,7 @@ export const pcget: EPR = async (info, data, send) => { mirage_lib = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); if (!_.isNil(mirage_lib.quiz_control_list)) mirage_lib.quiz_control_list = Base64toBuffer(mirage_lib.quiz_control_list).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 = Base64toBuffer(res.map_route_damage).toString("hex"); @@ -912,10 +917,12 @@ export const pcget: EPR = async (info, data, send) => { 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, @@ -1553,7 +1560,7 @@ export const pcsave: EPR = async (info, data, send) => { event_data = tricolettepark; event_data.open_music = parseInt($(data).attr("tricolettepark").open_music), - event_data.boss0_damage += parseInt($(data).attr("tricolettepark").boss0_damage); + event_data.boss0_damage += parseInt($(data).attr("tricolettepark").boss0_damage); event_data.boss1_damage += parseInt($(data).attr("tricolettepark").boss1_damage); event_data.boss2_damage += parseInt($(data).attr("tricolettepark").boss2_damage); event_data.boss3_damage += parseInt($(data).attr("tricolettepark").boss3_damage); @@ -1695,6 +1702,8 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); + pcdata.s_timing = parseInt($(data).attr().s_timing); + pcdata.d_timing = parseInt($(data).attr().d_timing); pcdata.s_notes = parseFloat($(data).attr().s_notes); pcdata.d_notes = parseFloat($(data).attr().d_notes); pcdata.s_judge = parseInt($(data).attr().s_judge); @@ -1954,6 +1963,8 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); + pcdata.s_timing = parseInt($(data).attr().s_timing); + pcdata.d_timing = parseInt($(data).attr().d_timing); pcdata.s_notes = parseFloat($(data).attr().s_notes); pcdata.d_notes = parseFloat($(data).attr().d_notes); pcdata.s_judge = parseInt($(data).attr().s_judge); @@ -2079,8 +2090,6 @@ export const pcsave: EPR = async (info, data, send) => { rare_enemy_damage5: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage5), }; - // TODO:: patona_data // - await DB.Upsert(refid, { collection: "event_1", @@ -2091,6 +2100,26 @@ export const pcsave: EPR = async (info, data, send) => { $set: event_data, } ); + + // TODO:: verify // + $(data).element("qpronicle_chord").elements("patona_data").forEach((res) => { + DB.Upsert(refid, + { + collection: "event_1_sub", + version: version, + event_name: "qpronicle_chord", + patona_id: parseInt(res.attr().patona_id), + }, + { + $set: { + level: parseInt(res.attr().level), + exp: parseInt(res.attr().exp), + affection: parseInt(res.attr().affection), + dissatisfaction: parseInt(res.attr().dissatisfaction), + } + } + ); + }); } if (!_.isNil($(data).element("qpronicle_phase3"))) { @@ -2144,6 +2173,8 @@ export const pcsave: EPR = async (info, data, send) => { } ); } + + // chaser // } else if (version == 23) { pcdata.rtype = parseInt($(data).attr().rtype); @@ -2169,6 +2200,8 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); pcdata.s_notes = parseFloat($(data).attr().s_notes); pcdata.d_notes = parseFloat($(data).attr().d_notes); + pcdata.s_timing = parseInt($(data).attr().s_timing); + pcdata.d_timing = parseInt($(data).attr().d_timing); pcdata.s_judge = parseInt($(data).attr().s_judge); pcdata.d_judge = parseInt($(data).attr().d_judge); pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); @@ -2275,8 +2308,6 @@ export const pcsave: EPR = async (info, data, send) => { stop_area_time: parseInt($(data).attr("event2_data").stop_area_time), }; - // TODO:: event2_area_data // - await DB.Upsert(refid, { collection: "event_1", @@ -2287,6 +2318,26 @@ export const pcsave: EPR = async (info, data, send) => { $set: event_data, } ); + + // TODO:: verify // + $(data).element("event2_data").elements("event2_area_data").forEach((res) => { + DB.Upsert(refid, + { + collection: "event_1_sub", + version: version, + event_name: "event2_data", + area_no: parseInt(res.attr().area_no), + }, + { + $set: { + area_play_num: parseInt(res.attr().area_play_num), + normal_point: parseInt(res.attr().normal_point), + hyper_point: parseInt(res.attr().hyper_point), + another_point: parseInt(res.attr().another_point), + } + } + ); + }); } } else if (version == 24) { @@ -2664,6 +2715,8 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); + pcdata.s_timing = parseInt($(data).attr().s_timing); + pcdata.d_timing = parseInt($(data).attr().d_timing); pcdata.s_notes = parseFloat($(data).attr().s_notes); pcdata.d_notes = parseFloat($(data).attr().d_notes); pcdata.s_judge = parseInt($(data).attr().s_judge); @@ -2932,6 +2985,8 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); + pcdata.s_timing = parseInt($(data).attr().s_timing); + pcdata.d_timing = parseInt($(data).attr().d_timing); pcdata.s_notes = parseFloat($(data).attr().s_notes); pcdata.d_notes = parseFloat($(data).attr().d_notes); pcdata.s_judge = parseInt($(data).attr().s_judge); diff --git a/iidx@asphyxia/pug/LDJ/22pcget.pug b/iidx@asphyxia/pug/LDJ/22pcget.pug index 93c0767..761237a 100644 --- a/iidx@asphyxia/pug/LDJ/22pcget.pug +++ b/iidx@asphyxia/pug/LDJ/22pcget.pug @@ -39,7 +39,8 @@ IIDX22pc(status="0") chrono_diver(play_count=chrono_diver.play_count present_unlock=chrono_diver.present_unlock future_unlock=chrono_diver.future_unlock success_count_0_n=chrono_diver.success_count_0_n success_count_0_h=chrono_diver.success_count_0_h success_count_0_a=chrono_diver.success_count_0_a success_count_1_n=chrono_diver.success_count_1_n success_count_1_h=chrono_diver.success_count_1_h success_count_1_a=chrono_diver.success_count_1_a success_count_2_n=chrono_diver.success_count_2_n success_count_2_h=chrono_diver.success_count_2_h success_count_2_a=chrono_diver.success_count_2_a success_count_3_n=chrono_diver.success_count_3_n success_count_3_h=chrono_diver.success_count_3_h success_count_3_a=chrono_diver.success_count_3_a story_list=chrono_diver.story_list) if qpronicle_chord != null qpronicle_chord(is_first_select_map=qpronicle_chord.is_first_select_map last_select_map=qpronicle_chord.last_select_map story_view_list=qpronicle_chord.story_view_list is_login_bonus=qpronicle_chord.is_use_login_bonus patona_leader=qpronicle_chord.patona_leader patona_sub_1=qpronicle_chord.patona_sub_1 patona_sub_2=qpronicle_chord.patona_sub_2 rare_enemy_damage1=qpronicle_chord.rare_enemy_damage1 rare_enemy_damage2=qpronicle_chord.rare_enemy_damage2 rare_enemy_damage3=qpronicle_chord.rare_enemy_damage3 rare_enemy_damage4=qpronicle_chord.rare_enemy_damage4 rare_enemy_damage5=qpronicle_chord.rare_enemy_damage5) - //-patona_data(patona_no level exp affection dissatisfaction) + - for (let evt of qpronicle_chord_sub) + patona_data(patona_no=evt.patona_id level=evt.level exp=evt.exp affection=evt.affection dissatisfaction=evt.dissatisfaction) if qpronicle_phase3 != null qpronicle_phase3(stairs_num=qpronicle_phase3.stairs_num flame_list=qpronicle_phase3.flame_list lane_list=qpronicle_phase3.lane_list map0_select=qpronicle_phase3.map0_select map1_select=qpronicle_phase3.map1_select map2_select=qpronicle_phase3.map2_select map3_select=qpronicle_phase3.map3_select map4_select=qpronicle_phase3.map4_select map5_select=qpronicle_phase3.map5_select map6_select=qpronicle_phase3.map6_select is_love_scene_skip="1") qpronicle_love(music_list="-1") diff --git a/iidx@asphyxia/pug/LDJ/23pcget.pug b/iidx@asphyxia/pug/LDJ/23pcget.pug index 629d558..2be7c0e 100644 --- a/iidx@asphyxia/pug/LDJ/23pcget.pug +++ b/iidx@asphyxia/pug/LDJ/23pcget.pug @@ -44,7 +44,8 @@ IIDX23pc(status="0") //-event1_assist(iidx_id iidx_id_str name hair head face body hand) if mystery_line != null event2_data(play_num=mystery_line.play_num now_area=mystery_line.now_stay_area now_note_grade=mystery_line.now_stay_note_grade stop_area_time=mystery_line.stop_area_time) - //-event2_area_data(area_no area_play normal_point hyper_point another_point) + - for (let evt of mystery_line_sub) + event2_area_data(area_no=evt.area_no area_play=evt.area_play normal_point=evt.normal_point hyper_point=evt.hyper_point another_point=evt.another_point) //-onemore_data(defeat_0 defeat_1 defeat_2 defeat_3 defeat_4 defeat_5 challenge_num_n challenge_num_h challenge_num_a) reflec_collabo(phase1_music_list="-1" phase2_music_list="-1") destiny_catharsis(music_bit="-1") From 20c2d7b83e03721bf79321863d329de32b1c9b12 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Tue, 2 Apr 2024 13:22:06 +0900 Subject: [PATCH 30/73] IIDX: Fixed where plugin cannot be compiled (Buffer type) --- iidx@asphyxia/handlers/music.ts | 25 +++++++++---- iidx@asphyxia/handlers/pc.ts | 50 ++++++++++++------------- iidx@asphyxia/models/score.ts | 1 + iidx@asphyxia/util.ts | 65 +++++++++++++++++++++++++++------ 4 files changed, 97 insertions(+), 44 deletions(-) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index ab33bfa..a532c5c 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -1,4 +1,4 @@ -import { IDtoRef, Base64toBuffer, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide, ReftoQPRO, NumArrayToString, OldMidToVerMid } from "../util"; +import { IDtoRef, Base64toNumArray, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide, ReftoQPRO, NumArrayToString, OldMidToVerMid, HextoBase64 } from "../util"; import { score, score_top } from "../models/score"; import { profile } from "../models/profile"; import { shop_data } from "../models/shop"; @@ -317,9 +317,9 @@ export const musicappoint: EPR = async (info, data, send) => { option2 = music_data.opt2Array[clid]; } - mydata = Base64toBuffer(music_data[clid]); + mydata = Base64toNumArray(music_data[clid]); } - else mydata = K.ITEM("bin", Base64toBuffer(music_data[clid])); + else mydata = K.ITEM("bin", Base64toNumArray(music_data[clid])); } /*** ctype @@ -354,7 +354,7 @@ export const musicappoint: EPR = async (info, data, send) => { }); if (_.isNaN(other_pcdata) || _.isNil(other_musicdata)) break; - sdata = K.ITEM("bin", Base64toBuffer(other_musicdata[clid]), { + sdata = K.ITEM("bin", Base64toNumArray(other_musicdata[clid]), { score: String(other_musicdata.esArray[clid]), pid: String(other_profile[1]), name: String(other_profile[0]), @@ -371,7 +371,7 @@ export const musicappoint: EPR = async (info, data, send) => { if (version >= 27) { let my_gauge_data = null; - if (!_.isNil(music_data)) my_gauge_data = Base64toBuffer(music_data[clid + 10]); + if (!_.isNil(music_data)) my_gauge_data = Base64toNumArray(music_data[clid + 10]); if (!_.isNil(sdata)) { if (_.isNil(other_musicdata.optArray)) { // migration // @@ -379,7 +379,7 @@ export const musicappoint: EPR = async (info, data, send) => { other_musicdata.opt2Array = Array(10).fill(0); } - let other_data = K.ITEM("bin", Base64toBuffer(other_musicdata[clid]), { + let other_data = K.ITEM("bin", Base64toNumArray(other_musicdata[clid]), { score: String(other_musicdata.esArray[clid]), achieve: String(other_pcdata[ClidToPlaySide(clid) + 2]), pid: String(other_profile[1]), @@ -391,7 +391,7 @@ export const musicappoint: EPR = async (info, data, send) => { sdata = { ...other_data, - gauge_data: K.ITEM("bin", Base64toBuffer(other_musicdata[clid + 10])) + gauge_data: K.ITEM("bin", Base64toNumArray(other_musicdata[clid + 10])) }; if (_.isNil(sdata) && !_.isNil(mydata)) { @@ -468,6 +468,7 @@ export const musicreg: EPR = async (info, data, send) => { let gArray = Array(10).fill(0); // GREAT // let mArray = Array(10).fill(0); // MISS // let cArray = Array(10).fill(0); // CLEAR FLAGS // + let rArray = Array(10).fill(0); // RANK ID // let esArray = Array(10).fill(0); // EXSCORE // let optArray = Array(10).fill(0); // USED OPTION (CastHour) // let opt2Array = Array(10).fill(0); // USED OPTION (CastHour) // @@ -477,8 +478,10 @@ export const musicreg: EPR = async (info, data, send) => { else if (!_.isNil($(data).attr().dj_level)) rid = parseInt($(data).attr().dj_level); if (rid > -1) console.log(`[music.reg] rank_id : ${rid}`); - if (version == 15) ghost = Buffer.from($(data).str("ghost"), "hex").toString("base64"); + if (version == 15) ghost = HextoBase64($(data).str("ghost")); else ghost = $(data).buffer("ghost").toString("base64"); + + console.log(ghost); if (version >= 27) { ghost_gauge = $(data).buffer("ghost_gauge").toString("base64"); @@ -495,6 +498,7 @@ export const musicreg: EPR = async (info, data, send) => { gArray[clid] = gnum; mArray[clid] = mnum; cArray[clid] = cflg; + rArray[clid] = rid; esArray[clid] = exscore; optArray[clid] = option; opt2Array[clid] = option_2; @@ -508,12 +512,16 @@ export const musicreg: EPR = async (info, data, send) => { optArray = music_data.optArray; opt2Array = music_data.opt2Array; } + if (!_.isNil(music_data.rArray)) { + rArray = music_data.rArray; + } const pExscore = esArray[clid]; if (exscore > pExscore) { pgArray[clid] = pgnum; gArray[clid] = gnum; mArray[clid] = mnum; + rArray[clid] = rid; esArray[clid] = exscore; optArray[clid] = option; opt2Array[clid] = option_2; @@ -589,6 +597,7 @@ export const musicreg: EPR = async (info, data, send) => { gArray, mArray, cArray, + rArray, esArray, optArray, opt2Array, diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 94b2c0d..dc38987 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 } from "../models/pcdata"; import { grade } from "../models/grade"; import { custom, default_custom } from "../models/custom"; -import { IDtoCode, IDtoRef, Base64toBuffer, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter, NumArrayToString } from "../util"; +import { IDtoCode, IDtoRef, Base64toNumArray, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter, NumArrayToString, NumArraytoHex } from "../util"; import { eisei_grade, eisei_grade_data, lightning_musicmemo, lightning_musicmemo_new, lightning_playdata, lightning_settings, lm_playdata, lm_settings, lm_settings_new, musicmemo_data, musicmemo_data_new } from "../models/lightning"; import { profile, default_profile } from "../models/profile"; import { rival, rival_data } from "../models/rival"; @@ -593,9 +593,9 @@ export const pcget: EPR = async (info, data, send) => { event = await DB.FindOne(refid, { collection: "event_1", version: version }); if (!_.isNil(event)) { - event.cf = Base64toBuffer(event.cf).toString("hex"); - event.pf = Base64toBuffer(event.pf).toString("hex"); - event.mf = Base64toBuffer(event.mf).toString("hex"); + event.cf = NumArraytoHex(Base64toNumArray(event.cf)); + event.pf = NumArraytoHex(Base64toNumArray(event.pf)); + event.mf = NumArraytoHex(Base64toNumArray(event.mf)); } return send.pugFile("pug/JDZ/pcget.pug", { @@ -612,9 +612,9 @@ export const pcget: EPR = async (info, data, send) => { event = await DB.FindOne(refid, { collection: "event_1", version: version }); if (!_.isNil(event)) { - event.cf = Base64toBuffer(event.cf).toString("hex"); - event.qcf = Base64toBuffer(event.qcf).toString("hex"); - event.piece = Base64toBuffer(event.piece).toString("hex"); + event.cf = NumArraytoHex(Base64toNumArray(event.cf)); + event.qcf = NumArraytoHex(Base64toNumArray(event.qcf)); + event.piece = NumArraytoHex(Base64toNumArray(event.piece)); } return send.pugFile("pug/KDZ/pcget.pug", { @@ -628,8 +628,8 @@ export const pcget: EPR = async (info, data, send) => { }); } else if (version == 20) { - if (!_.isNil(pcdata.st_stamp)) pcdata.st_stamp = Base64toBuffer(pcdata.st_stamp).toString("hex"); - if (!_.isNil(pcdata.st_help)) pcdata.st_help = Base64toBuffer(pcdata.st_help).toString("hex"); + if (!_.isNil(pcdata.st_stamp)) pcdata.st_stamp = NumArraytoHex(Base64toNumArray(pcdata.st_stamp)); + if (!_.isNil(pcdata.st_help)) pcdata.st_help = NumArraytoHex(Base64toNumArray(pcdata.st_help)); if (_.isNil(pcdata.st_stamp)) pcdata.st_stamp = ""; // migration // let link5 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "link5" }); @@ -638,7 +638,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 = Base64toBuffer(blueboss.durability).toString("hex"); + if (!_.isNil(blueboss)) blueboss.durability = NumArraytoHex(Base64toNumArray(blueboss.durability)); return send.pugFile("pug/LDJ/pcget.pug", { profile, @@ -681,16 +681,16 @@ export const pcget: EPR = async (info, data, send) => { evtArray = [], evtArray2 = []; if (version == 21) { - if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).toString("hex"); + if (!_.isNil(pcdata.st_album)) pcdata.st_album = NumArraytoHex(Base64toNumArray(pcdata.st_album)); 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.durability)) boss1.durability = Base64toBuffer(boss1.durability).toString("hex"); + if (!_.isNil(boss1.durability)) boss1.durability = NumArraytoHex(Base64toNumArray(boss1.durability)); } else if (version == 22) { - if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).toString("hex"); + if (!_.isNil(pcdata.st_album)) pcdata.st_album = NumArraytoHex(Base64toNumArray(pcdata.st_album)); 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" }); @@ -701,7 +701,7 @@ export const pcget: EPR = async (info, data, send) => { qpronicle_phase3 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_phase3" }); } else if (version == 23) { - if (!_.isNil(pcdata.st_tokimeki)) pcdata.st_tokimeki = Base64toBuffer(pcdata.st_tokimeki).toString("hex"); + if (!_.isNil(pcdata.st_tokimeki)) pcdata.st_tokimeki = NumArraytoHex(Base64toNumArray(pcdata.st_tokimeki)); 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" }); @@ -712,16 +712,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 = Base64toBuffer(res.ninjyutsu).toString("hex"); - res.card_damage = Base64toBuffer(res.card_damage).toString("hex"); - res.card_clear = Base64toBuffer(res.card_clear).toString("hex"); + res.ninjyutsu = NumArraytoHex(Base64toNumArray(res.ninjyutsu)); + res.card_damage = NumArraytoHex(Base64toNumArray(res.card_damage)); + res.card_clear = NumArraytoHex(Base64toNumArray(res.card_clear)); }); ninja_shichikyoden = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event2_data" }); if (!_.isNil(ninja_shichikyoden.last_select_dojo)) - ninja_shichikyoden.last_select_dojo = Base64toBuffer(ninja_shichikyoden.last_select_dojo).toString("hex"); + ninja_shichikyoden.last_select_dojo = NumArraytoHex(Base64toNumArray(ninja_shichikyoden.last_select_dojo)); if (!_.isNil(ninja_shichikyoden.enemy_damage)) - ninja_shichikyoden.enemy_damage = Base64toBuffer(ninja_shichikyoden.enemy_damage).toString("hex"); + ninja_shichikyoden.enemy_damage = NumArraytoHex(Base64toNumArray(ninja_shichikyoden.enemy_damage)); } else if (version == 25) { rush_cannonracer = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); @@ -733,11 +733,11 @@ export const pcget: EPR = async (info, data, send) => { else if (version == 26) { mirage_lib = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); if (!_.isNil(mirage_lib.quiz_control_list)) - mirage_lib.quiz_control_list = Base64toBuffer(mirage_lib.quiz_control_list).toString("hex"); + mirage_lib.quiz_control_list = NumArraytoHex(Base64toNumArray(mirage_lib.quiz_control_list)); 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 = Base64toBuffer(res.map_route_damage).toString("hex"); + res.map_route_damage = NumArraytoHex(Base64toNumArray(res.map_route_damage)); }); delabity_lab = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event2_data" }); @@ -761,10 +761,10 @@ export const pcget: EPR = async (info, data, send) => { } if (!_.isNil(pcdata.sp_mlist)) { - pcdata.sp_mlist = Base64toBuffer(pcdata.sp_mlist).toString("hex"); - pcdata.sp_clist = Base64toBuffer(pcdata.sp_clist).toString("hex"); - pcdata.dp_mlist = Base64toBuffer(pcdata.dp_mlist).toString("hex"); - pcdata.dp_clist = Base64toBuffer(pcdata.dp_clist).toString("hex"); + 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)); } if (version >= 30 && lm_music_memo_new.length > 0) { diff --git a/iidx@asphyxia/models/score.ts b/iidx@asphyxia/models/score.ts index 72f2286..3f546ba 100644 --- a/iidx@asphyxia/models/score.ts +++ b/iidx@asphyxia/models/score.ts @@ -7,6 +7,7 @@ export interface score { gArray: number[]; mArray: number[]; cArray: number[]; + rArray: number[]; esArray: number[]; optArray: number[]; diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index 41e56f7..b5e73f5 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -40,22 +40,20 @@ export function ClidToPlaySide(clid: number) { return clid < 5 ? 0 : 1; } -export function Base64toBuffer(s: string) { - const base64list = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - let buffer = Buffer.alloc(0), - p = -8, +export function Base64toNumArray(s: string) { + const base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + let p = -8, a = 0, - c: number; - - if (_.isNil(s)) return Buffer.alloc(0); + c: number, + d: number, + buffer: number[] = []; for (let i = 0; i < s.length; i++) { - if ((c = base64list.indexOf(s.charAt(i))) < 0) continue; - if (c == 64) break; + if ((c = base64Chars.indexOf(s.charAt(i))) < 0) continue; a = (a << 6) | (c & 63); if ((p += 6) >= 0) { - buffer = Buffer.concat([buffer, Buffer.from([((a >> p) & 255)])]); + d = (a >> p) & 255; + if (c !== 64) buffer.push(d); a &= 63; p -= 8; } @@ -64,6 +62,51 @@ export function Base64toBuffer(s: string) { 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.substr(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; From 9c1bc88f966477c4cde5875218bfade1547aeafa Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sat, 6 Apr 2024 00:59:27 +0900 Subject: [PATCH 31/73] IIDX: Initial support added for GOLD IIDX: Fixed where plugin cannot be compiled (Buffer type) - 2 --- iidx@asphyxia/README.md | 8 ++- iidx@asphyxia/handlers/music.ts | 26 ++++--- iidx@asphyxia/handlers/pc.ts | 123 +++++++++++++++++++++++--------- iidx@asphyxia/index.ts | 1 + iidx@asphyxia/models/pcdata.ts | 32 +++++++++ iidx@asphyxia/pug/GLD/pcget.pug | 9 +++ iidx@asphyxia/util.ts | 25 +++++++ 7 files changed, 175 insertions(+), 49 deletions(-) create mode 100644 iidx@asphyxia/pug/GLD/pcget.pug diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 25c214b..af0d1be 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -1,11 +1,11 @@ # beatmaniaIIDX -Plugin Version: **v0.1.14** +Plugin Version: **v0.1.15** --- Supported Versions - + - beatmaniaIIDX 14 GOLD - beatmaniaIIDX 15 DJ TROOPERS - beatmaniaIIDX 16 EMPRESS - beatmaniaIIDX 17 SIRIUS @@ -130,3 +130,7 @@ Changelogs - Reworked on SINOBUZ ~ Rootage responses - Fixed where Base64toBuffer returns invalid value sometimes - Fixed where timing display option isn't saving on certain versions + +**v0.1.15** + - Added Initial support for GOLD + - Fixed where plugin may fail to register due to missing types in dev mode diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index a532c5c..39a3979 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 } from "../util"; +import { IDtoRef, Base64toNumArray, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide, ReftoQPRO, NumArrayToString, OldMidToVerMid, HextoBase64, NumArraytoBase64 } from "../util"; import { score, score_top } from "../models/score"; import { profile } from "../models/profile"; import { shop_data } from "../models/shop"; @@ -25,7 +25,7 @@ export const musicgetrank: EPR = async (info, data, send) => { let m = [], top = [], b = [], t = []; let score_data: number[]; let indices, temp_mid = 0; - if (version == 15) { + if (version == 14 || version == 15) { let result = { r: [], // v - (-1, beginner/-2, tutorial) // }; @@ -33,12 +33,13 @@ export const musicgetrank: EPR = async (info, data, send) => { music_data.forEach((res: score) => { temp_mid = NewMidToOldMid(res.mid); let verMid = OldMidToVerMid(temp_mid); - let rank_id = -1; // TODO:: determine whether use rid,dj_level from music.reg or make a database that has max exscore of all songs for rid // if (verMid[0] > version) return; for (let a = 0; a < 3; a++) { if (res.esArray[indices[a]] == 0) continue; + let rank_id = _.isNil(res.rArray) ? -1 : res.rArray[indices[a]]; + result.r.push( K.ITEM("str", NumArrayToString( [7, 4, 13, 3, 3], @@ -316,10 +317,9 @@ export const musicappoint: EPR = async (info, data, send) => { option = music_data.optArray[clid]; option2 = music_data.opt2Array[clid]; } - - mydata = Base64toNumArray(music_data[clid]); } - else mydata = K.ITEM("bin", Base64toNumArray(music_data[clid])); + + mydata = K.ITEM("bin", Base64toNumArray(music_data[clid])); } /*** ctype @@ -468,7 +468,7 @@ export const musicreg: EPR = async (info, data, send) => { let gArray = Array(10).fill(0); // GREAT // let mArray = Array(10).fill(0); // MISS // let cArray = Array(10).fill(0); // CLEAR FLAGS // - let rArray = Array(10).fill(0); // RANK ID // + let rArray = Array(10).fill(-1); // RANK ID // let esArray = Array(10).fill(0); // EXSCORE // let optArray = Array(10).fill(0); // USED OPTION (CastHour) // let opt2Array = Array(10).fill(0); // USED OPTION (CastHour) // @@ -478,13 +478,11 @@ export const musicreg: EPR = async (info, data, send) => { else if (!_.isNil($(data).attr().dj_level)) rid = parseInt($(data).attr().dj_level); if (rid > -1) console.log(`[music.reg] rank_id : ${rid}`); - if (version == 15) ghost = HextoBase64($(data).str("ghost")); - else ghost = $(data).buffer("ghost").toString("base64"); - - console.log(ghost); + if (version == 14 || version == 15) ghost = HextoBase64($(data).str("ghost")); + else ghost = NumArraytoBase64($(data).buffer("ghost")); if (version >= 27) { - ghost_gauge = $(data).buffer("ghost_gauge").toString("base64"); + ghost_gauge = NumArraytoBase64($(data).buffer("ghost_gauge")); style = parseInt($(data).element("music_play_log").attr().play_style); if (version >= 29) { @@ -841,7 +839,7 @@ export const musiccrate: EPR = async (info, data, send) => { } let indices = [1, 2, 3, 6, 7, 8]; - if (version == 15) { + if (version == 14 || version == 15) { let verMid = OldMidToVerMid(parseInt(key)); let str = cltype == 0 ? @@ -864,7 +862,7 @@ export const musiccrate: EPR = async (info, data, send) => { } } - if (version == 15) result = { cdata }; + if (version == 14 || version == 15) result = { cdata }; else result = { c }; return send.object(result); diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index dc38987..2669464 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 } from "../models/pcdata"; +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 } 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 } from "../util"; +import { IDtoCode, IDtoRef, Base64toNumArray, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter, NumArrayToString, NumArraytoHex, NumArraytoBase64 } from "../util"; import { eisei_grade, eisei_grade_data, lightning_musicmemo, lightning_musicmemo_new, lightning_playdata, lightning_settings, lm_playdata, lm_settings, lm_settings_new, musicmemo_data, musicmemo_data_new } from "../models/lightning"; import { profile, default_profile } from "../models/profile"; import { rival, rival_data } from "../models/rival"; @@ -290,6 +290,9 @@ export const pcreg: EPR = async (info, data, send) => { let lightning_settings: object; let lightning_playdata: object; switch (version) { + case 14: + pcdata = GLD_pcdata; + break; case 15: pcdata = HDD_pcdata; break; @@ -495,6 +498,7 @@ export const pcget: EPR = async (info, data, send) => { rArray.push(rival_data); } + rArray.sort((a: rival_data, b: rival_data): number => a.play_style - b.play_style || a.index - b.index); } @@ -512,7 +516,32 @@ export const pcget: EPR = async (info, data, send) => { } let event, gradeStr = "", exStr = "", skinStr = ""; - if (version == 15) { + if (version == 14) { + dArray.forEach((res) => { + gradeStr += NumArrayToString([6, 3, 2, 7], [res[1], res[2], res[0], res[3]]); + }); + + expert.sort((a: expert, b: expert) => a.coid - b.coid); + expert.forEach((res) => { + for (let a = 0; a < 6; a++) { + exStr += NumArrayToString([6, 5, 1], [res.coid, a, res.cArray[a]]); + exStr += NumArrayToString([18], [res.pgArray[a]]); + exStr += NumArrayToString([18], [res.gArray[a]]); + } + }); + + skinStr += NumArrayToString([12], [custom.frame, custom.turntable, custom.note_burst, custom.menu_music, appendsettings, custom.lane_cover, 0, custom.category_vox]); + + return send.pugFile("pug/GLD/pcget.pug", { + profile, + pcdata, + gradeStr, + exStr, + skinStr, + rArray, + }); + } + else if (version == 15) { dArray.forEach((res) => { gradeStr += NumArrayToString([6, 3, 2, 7], [res[1], res[2], res[0], res[3]]); }); @@ -975,6 +1004,9 @@ export const pctakeover: EPR = async (info, data, send) => { let lightning_settings: object; let lightning_playdata: object; switch (version) { + case 14: + pcdata = GLD_pcdata; + break; case 15: pcdata = HDD_pcdata; break; @@ -1147,7 +1179,32 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.mode = parseInt($(data).attr().mode); pcdata.pmode = parseInt($(data).attr().pmode); - if (version == 15) { + if (version == 14) { + if (cltype == 0) { + pcdata.sach = parseInt($(data).attr().achi); + pcdata.sp_opt = parseInt($(data).attr().opt); + } + else { + pcdata.dach = parseInt($(data).attr().achi); + pcdata.dp_opt = parseInt($(data).attr().opt); + pcdata.dp_opt2 = parseInt($(data).attr().opt2); + } + + pcdata.gno = parseInt($(data).attr().gno); + pcdata.sflg0 = parseInt($(data).attr().sflg0); + pcdata.sflg1 = parseInt($(data).attr().sflg1); + pcdata.sflg2 = parseInt($(data).attr().sflg2); + pcdata.sdhd = parseInt($(data).attr().sdhd); + pcdata.ncomb = parseInt($(data).attr().ncomb); + pcdata.mcomb = parseInt($(data).attr().mcomb); + + if (!_.isNil($(data).attr().now_g)) { + pcdata.gold_now = parseInt($(data).attr().now_g); + pcdata.gold_all = parseInt($(data).attr().all_g); + pcdata.gold_use = parseInt($(data).attr().use_g); + } + } + else if (version == 15) { if (cltype == 0) { pcdata.sach = parseInt($(data).attr().achi); pcdata.sp_opt = parseInt($(data).attr().opt); @@ -1447,8 +1504,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 = $(data).buffer("step").toString("base64"); // TODO:: verify // - pcdata.st_help = $(data).element("step").buffer("help").toString("base64"); + pcdata.st_stamp = NumArraytoBase64($(data).buffer("step")); // TODO:: verify // + pcdata.st_help = NumArraytoBase64($(data).element("step").buffer("help")); } if (!_.isNil($(data).element("achievements"))) { @@ -1725,10 +1782,10 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("favorite"))) { - 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"); + 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")); } if (!_.isNil($(data).element("qpro_secret"))) { @@ -1760,7 +1817,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 = $(data).buffer("step").toString("base64"); // TODO:: verify // + pcdata.st_album = NumArraytoBase64($(data).buffer("step")); // TODO:: verify // } if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); @@ -1990,10 +2047,10 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("favorite"))) { - 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"); + 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")); } if (!_.isNil($(data).element("qpro_secret"))) { @@ -2033,7 +2090,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 = $(data).buffer("step").toString("base64"); // TODO:: verify // + pcdata.st_album = NumArraytoBase64($(data).buffer("step")); // TODO:: verify // pcdata.st_is_present = parseInt($(data).attr("step").is_present); pcdata.st_is_future = parseInt($(data).attr("step").is_future); } @@ -2225,10 +2282,10 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("favorite"))) { - 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"); + 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")); } if (!_.isNil($(data).element("qpro_secret"))) { @@ -2268,7 +2325,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 = $(data).buffer("step").toString("base64"); // TODO:: verify // + pcdata.st_tokimeki = NumArraytoBase64($(data).buffer("step")); // TODO:: verify // } if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); @@ -2395,10 +2452,10 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("favorite"))) { - 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"); + 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")); } if (!_.isNil($(data).element("qpro_secret"))) { @@ -2582,10 +2639,10 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("favorite"))) { - 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"); + 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")); } if (!_.isNil($(data).element("qpro_secret"))) { @@ -2755,10 +2812,10 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("favorite"))) { - 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"); + 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")); } if (!_.isNil($(data).element("qpro_secret"))) { diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 847b2b9..e517015 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -15,6 +15,7 @@ export function register() { R.Contributor("duel0213"); + R.GameCode("GLD"); R.GameCode("HDD"); R.GameCode("I00"); R.GameCode("JDJ"); diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 59633bf..6fd3a10 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -120,6 +120,10 @@ export interface pcdata { sgid: number; // grade // dgid: number; + gold_now: number; + gold_all: number; + gold_use: number; + jewel_num: string; jewel_bnum: number[]; party: number[]; @@ -220,6 +224,34 @@ export interface pcdata { tourism_secret_flg2: string[]; } +export const GLD_pcdata = { + version: 14, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + sflg0: 0, + sflg1: 0, + sflg2: 0, + gno: 0, + sdhd: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + mcomb: 0, + ncomb: 0, + mode: 0, + pmode: 0, + + sgid: -1, + dgid: -1, + + gold_now: 0, + gold_all: 0, + gold_use: 0, +} + export const HDD_pcdata = { version: 15, diff --git a/iidx@asphyxia/pug/GLD/pcget.pug b/iidx@asphyxia/pug/GLD/pcget.pug new file mode 100644 index 0000000..01ace8d --- /dev/null +++ b/iidx@asphyxia/pug/GLD/pcget.pug @@ -0,0 +1,9 @@ +pc(status="0") + 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 sflg0=pcdata.sflg0 sflg1=pcdata.sflg1 sflg2=pcdata.sflg2 gno=pcdata.gno sdhd=pcdata.sdhd sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 mcomb=pcdata.mcomb ncomb=pcdata.ncomb mode=pcdata.mode pmode=pcdata.pmode) + grade(sgid=pcdata.sgid dgid=pcdata.dgid __type="str") #{gradeStr} + ex(__type="str") #{exStr} + skin(__type="str") #{skinStr} + rlist + - for (let rd of rArray) + rival(rno=rd.index 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]) + gold(now_g=pcdata.gold_now all_g=pcdata.gold_all use_g=pcdata.gold_use) diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index b5e73f5..ee8df6f 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -40,6 +40,28 @@ 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, @@ -48,6 +70,8 @@ export function Base64toNumArray(s: string) { 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); @@ -158,6 +182,7 @@ export function NumArrayToString(bits: number[], numArray: number[]): string { export function GetVersion(info: EamuseInfo) { let version = -1; switch (info.model.substring(0, 3)) { + case "GLD": return 14; case "HDD": return 15; case "I00": return 16; case "JDJ": return 17; From 851618de7f4d9a964bb8a42e41e9affa76d9fcf7 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sat, 6 Apr 2024 11:36:29 +0900 Subject: [PATCH 32/73] IIDX: Update README.md --- iidx@asphyxia/README.md | 37 ++++++++++++++++++------------------ iidx@asphyxia/handlers/pc.ts | 8 ++++++++ 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index af0d1be..423a6b1 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -5,28 +5,27 @@ Plugin Version: **v0.1.15** --- Supported Versions - - beatmaniaIIDX 14 GOLD - - beatmaniaIIDX 15 DJ TROOPERS - - beatmaniaIIDX 16 EMPRESS - - beatmaniaIIDX 17 SIRIUS - - beatmaniaIIDX 18 Resort Anthem - - beatmaniaIIDX 19 Lincle - - beatmaniaIIDX 20 tricoro - - beatmaniaIIDX 21 SPADA - - beatmaniaIIDX 22 PENDUAL - - beatmaniaIIDX 23 copula - - beatmaniaIIDX 24 SINOBUZ - - beatmaniaIIDX 25 CANNON BALLERS - - beatmaniaIIDX 26 Rootage - - beatmaniaIIDX 27 HEROIC VERSE - - beatmaniaIIDX 28 BISTROVER - - beatmaniaIIDX 29 CastHour - - beatmaniaIIDX 30 RESIDENT + - beatmaniaIIDX 14 GOLD (2007072301) + - beatmaniaIIDX 15 DJ TROOPERS (2008031100) + - beatmaniaIIDX 16 EMPRESS (2009072200) + - beatmaniaIIDX 17 SIRIUS (2010071200) + - beatmaniaIIDX 18 Resort Anthem (2011071200) + - beatmaniaIIDX 19 Lincle (2012090300) + - beatmaniaIIDX 20 tricoro (2013090900) + - beatmaniaIIDX 21 SPADA (2014071600) + - beatmaniaIIDX 22 PENDUAL (2015080500) + - beatmaniaIIDX 23 copula (2016083100) + - beatmaniaIIDX 24 SINOBUZ (2017082800) + - beatmaniaIIDX 25 CANNON BALLERS (2018012300) + - beatmaniaIIDX 26 Rootage (2019090200) + - beatmaniaIIDX 27 HEROIC VERSE (2020092900) + - beatmaniaIIDX 28 BISTROVER (2021091500) + - beatmaniaIIDX 29 CastHour (2022082400) + - beatmaniaIIDX 30 RESIDENT (2023090500) --- Features - - STEP UP (Partial) - SKILL ANALYZER - EVENT (Partial) @@ -42,11 +41,11 @@ Known Issues - DJ LEVEL folders are broken in ~ DJ TROOPERS due to missing rank\_id - LEGGENDARIA play records before HEROIC VERSE may not display on higher version due to missing conversion code - ONE MORE EXTRA STAGE progress won't save (can't test this due to skill issue) + - Some of licensed songs are locked behind due to missing license element (needs to be verified) --- Changelogs - **v0.1.0** - Added Initial support for Lincle diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 2669464..da53886 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -25,6 +25,14 @@ export const pccommon: EPR = async (info, data, send) => { // have no idea what some of attribute or value does // // exposing these to plugin setting or use static value // switch (version) { + case 14: + result = { + ...result, + gshop: { + "@attr": { vipg: "0" } // TODO:: verify // + } + } + break; case 15: break; case 16: From 4a0e97106ad1c3f28c7f45ceb8312c15b6f9603d Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sat, 6 Apr 2024 20:48:42 +0900 Subject: [PATCH 33/73] IIDX: Changed music.appoint response to comply with old games (~ DJ TROOPERS) --- iidx@asphyxia/README.md | 1 + iidx@asphyxia/handlers/music.ts | 28 ++++++++++++++++++++-------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 423a6b1..1f91114 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -133,3 +133,4 @@ Changelogs **v0.1.15** - Added Initial support for GOLD - Fixed where plugin may fail to register due to missing types in dev mode + - Fixed where pacemaker isn't working as intended due to malformed ghost data on music.appoint response (~ DJ TROOPERS) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 39a3979..c584776 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 } from "../util"; +import { IDtoRef, Base64toNumArray, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide, ReftoQPRO, NumArrayToString, OldMidToVerMid, HextoBase64, NumArraytoBase64, NumArraytoHex } from "../util"; import { score, score_top } from "../models/score"; import { profile } from "../models/profile"; import { shop_data } from "../models/shop"; @@ -319,7 +319,8 @@ export const musicappoint: EPR = async (info, data, send) => { } } - mydata = K.ITEM("bin", Base64toNumArray(music_data[clid])); + if (version < 16) mydata = K.ITEM("str", NumArraytoHex(Base64toNumArray(music_data[clid]))); + else mydata = K.ITEM("bin", Base64toNumArray(music_data[clid])); } /*** ctype @@ -354,12 +355,23 @@ export const musicappoint: EPR = async (info, data, send) => { }); if (_.isNaN(other_pcdata) || _.isNil(other_musicdata)) break; - sdata = K.ITEM("bin", Base64toNumArray(other_musicdata[clid]), { - score: String(other_musicdata.esArray[clid]), - pid: String(other_profile[1]), - name: String(other_profile[0]), - riidxid: String(other_profile[2]) - }); + if (version < 16) { + sdata = K.ITEM("str", NumArraytoHex(Base64toNumArray(other_musicdata[clid])), { + score: String(other_musicdata.esArray[clid]), + pid: String(other_profile[1]), + name: String(other_profile[0]), + riidxid: String(other_profile[2]) + }); + } + else { + sdata = K.ITEM("bin", Base64toNumArray(other_musicdata[clid]), { + score: String(other_musicdata.esArray[clid]), + pid: String(other_profile[1]), + name: String(other_profile[0]), + riidxid: String(other_profile[2]) + }); + } + break; default: From d490c5342585dcd0acc355883b14291e01dfe4d2 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Fri, 3 May 2024 20:53:15 +0900 Subject: [PATCH 34/73] IIDX: Update README.md --- iidx@asphyxia/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 1f91114..74b5743 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -42,6 +42,7 @@ Known Issues - LEGGENDARIA play records before HEROIC VERSE may not display on higher version due to missing conversion code - ONE MORE EXTRA STAGE progress won't save (can't test this due to skill issue) - Some of licensed songs are locked behind due to missing license element (needs to be verified) + - Badges aren't saving in RESIDENT ~ (needs to figure out name to id) --- From 1bb944e27456adfaaa096ab28fda221d96226b0b Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sat, 4 May 2024 00:22:08 +0900 Subject: [PATCH 35/73] IIDX: Added Disable Beginner Option, misc --- iidx@asphyxia/README.md | 2 +- iidx@asphyxia/handlers/pc.ts | 18 ++++++++++++++++++ iidx@asphyxia/handlers/webui.ts | 1 + iidx@asphyxia/models/custom.ts | 2 ++ iidx@asphyxia/util.ts | 4 +++- iidx@asphyxia/webui/profile_----detail.pug | 5 +++++ iidx@asphyxia/webui/profile_---setting.pug | 9 +++++++++ 7 files changed, 39 insertions(+), 2 deletions(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 74b5743..2134f45 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -16,7 +16,7 @@ Supported Versions - beatmaniaIIDX 22 PENDUAL (2015080500) - beatmaniaIIDX 23 copula (2016083100) - beatmaniaIIDX 24 SINOBUZ (2017082800) - - beatmaniaIIDX 25 CANNON BALLERS (2018012300) + - beatmaniaIIDX 25 CANNON BALLERS (2018091900) - beatmaniaIIDX 26 Rootage (2019090200) - beatmaniaIIDX 27 HEROIC VERSE (2020092900) - beatmaniaIIDX 28 BISTROVER (2021091500) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index da53886..a182a11 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -452,6 +452,23 @@ export const pcget: EPR = async (info, data, send) => { if (_.isNil(pcdata)) return send.deny(); + // migration // + if (_.isNil(custom.disable_beginner_option)) { + await DB.Upsert(refid, + { + collection: "custom", + version: version, + }, + { + $set: { + disable_beginner_option: false, + } + } + ); + + custom.disable_beginner_option = false; + } + const appendsettings = appendSettingConverter( custom.rank_folder, custom.clear_folder, @@ -465,6 +482,7 @@ export const pcget: EPR = async (info, data, send) => { custom.classic_hispeed, custom.rival_played_folder, custom.hide_iidxid, + custom.disable_beginner_option, ); let dArray = [], eArray = [], rArray = [], mArray = [], bArray = []; diff --git a/iidx@asphyxia/handlers/webui.ts b/iidx@asphyxia/handlers/webui.ts index b7c8945..967bb33 100644 --- a/iidx@asphyxia/handlers/webui.ts +++ b/iidx@asphyxia/handlers/webui.ts @@ -236,6 +236,7 @@ export const updateCustomSettings = async (data) => { classic_hispeed: StoB(data.classic_hispeed), rival_played_folder: StoB(data.rival_played_folder), hide_iidxid: StoB(data.hide_iidxid), + disable_beginner_option: StoB(data.disable_beginner_option), } await DB.Upsert(data.refid, { diff --git a/iidx@asphyxia/models/custom.ts b/iidx@asphyxia/models/custom.ts index 0d793c3..7e6feb3 100644 --- a/iidx@asphyxia/models/custom.ts +++ b/iidx@asphyxia/models/custom.ts @@ -38,6 +38,7 @@ export interface custom { classic_hispeed: boolean; rival_played_folder: boolean; hide_iidxid: boolean; + disable_beginner_option: boolean; // qpro // qpro_head: number; @@ -88,6 +89,7 @@ export const default_custom = { classic_hispeed: false, rival_played_folder: true, hide_iidxid: false, + disable_beginner_option: false, qpro_head: 0, qpro_hair: 0, diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index ee8df6f..c9604e4 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -210,6 +210,7 @@ export function appendSettingConverter( chs: boolean, rpf: boolean, hii: boolean, + dbo: boolean, ) { const result = Number(rf) << 0 | @@ -223,7 +224,8 @@ export function appendSettingConverter( Number(dgc) << 9 | Number(chs) << 10 | Number(rpf) << 11 | - Number(hii) << 12; + Number(hii) << 12 | + Number(dbo) << 14; return result; } diff --git a/iidx@asphyxia/webui/profile_----detail.pug b/iidx@asphyxia/webui/profile_----detail.pug index 49b2964..ff2c45d 100644 --- a/iidx@asphyxia/webui/profile_----detail.pug +++ b/iidx@asphyxia/webui/profile_----detail.pug @@ -4,6 +4,11 @@ - const version = [ + 14, + 15, + 16, + 17, + 18, 19, 20, 21, diff --git a/iidx@asphyxia/webui/profile_---setting.pug b/iidx@asphyxia/webui/profile_---setting.pug index 289c928..95a540d 100644 --- a/iidx@asphyxia/webui/profile_---setting.pug +++ b/iidx@asphyxia/webui/profile_---setting.pug @@ -5,6 +5,11 @@ - const version = [ + 14, + 15, + 16, + 17, + 18, 19, 20, 21, @@ -162,6 +167,10 @@ div label.label Hide IIDX ID .control input(type="checkbox" name="hide_iidxid", checked=Boolean(custom.hide_iidxid)) + .field + label.label Disable Beginner Option + .control + input(type="checkbox" name="disable_beginner_option", checked=Boolean(custom.disable_beginner_option)) //- QPRO .field label.label QPRO Head From 156d76dda31e7719491e4199af2d0b0fcdbc2dd0 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Tue, 11 Jun 2024 14:59:53 +0900 Subject: [PATCH 36/73] IIDX: misc --- iidx@asphyxia/handlers/pc.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index a182a11..b0ffe3b 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -750,6 +750,7 @@ export const pcget: EPR = async (info, data, send) => { 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" }); if (_.isNil(pendual_talis)) pendual_talis = { point: 0 }; + else if (pendual_talis.point == "null" || _.isNil(pendual_talis.point)) pendual_talis = { point: 0 }; qpronicle_chord = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_chord" }); qpronicle_chord_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_name: "qpronicle_chord" }); @@ -2233,16 +2234,17 @@ export const pcsave: EPR = async (info, data, send) => { if (!_.isNil($(data).element("boss_event_3"))) { let boss_event_3 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "boss_event_3" }); - let event_data; + let event_data = null; + let point = parseInt($(data).attr("boss_event_3").add_bonus_point); if (_.isNil(boss_event_3)) { event_data = { - point: parseInt($(data).attr().add_bonus_point) + point: point, } } else { event_data = boss_event_3; - event_data.point += parseInt($(data).attr("boss_event_3").add_bonus_point); + event_data.point += point; } await DB.Upsert(refid, From d8d2e59818ac85bd2249822f604bdd3908678caf Mon Sep 17 00:00:00 2001 From: duel0213 Date: Wed, 10 Jul 2024 04:51:38 +0900 Subject: [PATCH 37/73] IIDX: misc 2 --- iidx@asphyxia/handlers/pc.ts | 8 ++++---- iidx@asphyxia/pug/LDJ/26pcget.pug | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index b0ffe3b..b5c4a07 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -742,7 +742,7 @@ export const pcget: EPR = async (info, data, send) => { 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.durability)) boss1.durability = NumArraytoHex(Base64toNumArray(boss1.durability)); + if (!_.isNil(boss1)) boss1.durability = NumArraytoHex(Base64toNumArray(boss1.durability)); } else if (version == 22) { if (!_.isNil(pcdata.st_album)) pcdata.st_album = NumArraytoHex(Base64toNumArray(pcdata.st_album)); @@ -774,9 +774,9 @@ export const pcget: EPR = async (info, data, send) => { }); ninja_shichikyoden = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event2_data" }); - if (!_.isNil(ninja_shichikyoden.last_select_dojo)) + if (!_.isNil(ninja_shichikyoden)) ninja_shichikyoden.last_select_dojo = NumArraytoHex(Base64toNumArray(ninja_shichikyoden.last_select_dojo)); - if (!_.isNil(ninja_shichikyoden.enemy_damage)) + if (!_.isNil(ninja_shichikyoden)) ninja_shichikyoden.enemy_damage = NumArraytoHex(Base64toNumArray(ninja_shichikyoden.enemy_damage)); } else if (version == 25) { @@ -788,7 +788,7 @@ export const pcget: EPR = async (info, data, send) => { } else if (version == 26) { mirage_lib = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); - if (!_.isNil(mirage_lib.quiz_control_list)) + if (!_.isNil(mirage_lib)) mirage_lib.quiz_control_list = NumArraytoHex(Base64toNumArray(mirage_lib.quiz_control_list)); mirage_lib_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_name: "event1_data" }); diff --git a/iidx@asphyxia/pug/LDJ/26pcget.pug b/iidx@asphyxia/pug/LDJ/26pcget.pug index dcf322f..d2cd3ff 100644 --- a/iidx@asphyxia/pug/LDJ/26pcget.pug +++ b/iidx@asphyxia/pug/LDJ/26pcget.pug @@ -79,5 +79,5 @@ IIDX26pc(status="0") area_data(floor_id=evt.floor_id area_id=evt.area_id last_select_note=evt.last_select_note normal_play_num=evt.normal_play_num hyper_play_num=evt.hyper_play_num another_play_num=evt.another_play_num area_clear_flg_list=evt.area_clear_flg_list normal_grade_point=evt.normal_grade_point hyper_grade_point=evt.hyper_grade_point another_grade_point=evt.another_grade_point) floor_infection3(music_list="-1") if anniv20 != null - anniv20_event(damage_0 damage_1 damage_2 challenge_0 challenge_1 challenge_2) + anniv20_event(damage_0=anniv20.damage_0 damage_1=anniv20.damage_1 damage_2=anniv20.damage_2 challenge_0=anniv20.challenge_0 challenge_1=anniv20.challenge_1 challenge_2=anniv20.challenge_2) bemani_vote(music_list="-1") From a2e387d636e9bb64a98fd083ac131b4afb6a9bf0 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Wed, 17 Jul 2024 01:41:11 +0900 Subject: [PATCH 38/73] IIDX: Fixed where mydata not being sent on certain versions --- iidx@asphyxia/README.md | 1 + iidx@asphyxia/handlers/music.ts | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 2134f45..b430848 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -47,6 +47,7 @@ Known Issues --- Changelogs + **v0.1.0** - Added Initial support for Lincle diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index c584776..c27371d 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -405,23 +405,23 @@ export const musicappoint: EPR = async (info, data, send) => { ...other_data, gauge_data: K.ITEM("bin", Base64toNumArray(other_musicdata[clid + 10])) }; + } - if (_.isNil(sdata) && !_.isNil(mydata)) { - result = { - "@attr": { my_option: option, my_option2: option2 }, - mydata, - my_gauge_data: K.ITEM("bin", my_gauge_data), - }; - } - if (_.isNil(mydata) && !_.isNil(sdata)) result = { sdata }; - if (!_.isNil(mydata) && !_.isNil(sdata)) { - result = { - "@attr": { my_option: option, my_option2: option2 }, // CastHour // - mydata, - my_gauge_data: K.ITEM("bin", my_gauge_data), - sdata, - }; - } + if (_.isNil(sdata) && !_.isNil(mydata)) { + result = { + "@attr": { my_option: option, my_option2: option2 }, + mydata, + my_gauge_data: K.ITEM("bin", my_gauge_data), + }; + } + if (_.isNil(mydata) && !_.isNil(sdata)) result = { sdata }; + if (!_.isNil(mydata) && !_.isNil(sdata)) { + result = { + "@attr": { my_option: option, my_option2: option2 }, // CastHour // + mydata, + my_gauge_data: K.ITEM("bin", my_gauge_data), + sdata, + }; } } else { From 4330b65ade6dd7e06f7add21b0defbffadd58151 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Thu, 18 Jul 2024 06:52:17 +0900 Subject: [PATCH 39/73] IIDX: Fixed where s_sub_type reference d_sub_type on pc.get response IIDX: Update README.md --- iidx@asphyxia/README.md | 8 ++++++-- iidx@asphyxia/pug/LDJ/27pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/28pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/29pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/30pcget.pug | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index b430848..324e812 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -114,12 +114,12 @@ Changelogs - CLEAR RATE and BEGINNER clear lamp may not work on certain versions - Added Initial support for SIRIUS - Fixed where Venue Top didn't save correctly (BISTROVER ~) - - Fixed where music.appoint send empty response even rival has score data when player doesn't have score data + - Fixed where music.appoint send empty response even rival has score data but player doesn't have score data - Fixed where FAVORITE may work only on specific version - Fixed where shop name always displayed as "CORE" instead of saved one - Fixed where rlist STEP UP achieve value was fixed value instead of saved one - Fixed where fcombo isn't saving (Resort Anthem) - - Removed shop.savename as not working as intented. + - Removed shop.savename as not working as intented **v0.1.13** - Added Initial support for DJ TROOPERS @@ -134,5 +134,9 @@ Changelogs **v0.1.15** - Added Initial support for GOLD + - Added Disable Beginner Option - Fixed where plugin may fail to register due to missing types in dev mode - 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 intented due to wrong condition check (HEROIC VERSE ~) + - Fixed where pacemaker sub-type isn't load correctly (HEROIC VERSE ~) diff --git a/iidx@asphyxia/pug/LDJ/27pcget.pug b/iidx@asphyxia/pug/LDJ/27pcget.pug index 5349b2e..7474f4e 100644 --- a/iidx@asphyxia/pug/LDJ/27pcget.pug +++ b/iidx@asphyxia/pug/LDJ/27pcget.pug @@ -1,5 +1,5 @@ IIDX27pc(status="0") - 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 rtype=pcdata.rtype 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.d_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) + 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 rtype=pcdata.rtype 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) 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) 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]} diff --git a/iidx@asphyxia/pug/LDJ/28pcget.pug b/iidx@asphyxia/pug/LDJ/28pcget.pug index b2e9531..ffb1bd4 100644 --- a/iidx@asphyxia/pug/LDJ/28pcget.pug +++ b/iidx@asphyxia/pug/LDJ/28pcget.pug @@ -1,5 +1,5 @@ IIDX28pc(status="0") - 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 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.d_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) + 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 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) 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 skin_0="0" flg_skin_0="-1") 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]} diff --git a/iidx@asphyxia/pug/LDJ/29pcget.pug b/iidx@asphyxia/pug/LDJ/29pcget.pug index 6ef3bd9..0bf2a58 100644 --- a/iidx@asphyxia/pug/LDJ/29pcget.pug +++ b/iidx@asphyxia/pug/LDJ/29pcget.pug @@ -1,5 +1,5 @@ IIDX29pc(status="0") - 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 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.d_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) + 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 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) 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 skin_0="0" flg_skin_0="-1") 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]} diff --git a/iidx@asphyxia/pug/LDJ/30pcget.pug b/iidx@asphyxia/pug/LDJ/30pcget.pug index fc21e32..534ced8 100644 --- a/iidx@asphyxia/pug/LDJ/30pcget.pug +++ b/iidx@asphyxia/pug/LDJ/30pcget.pug @@ -1,5 +1,5 @@ IIDX30pc(status="0") - 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 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.d_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) + 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 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) 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 skin_0="0" flg_skin_0="-1") 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]} From 6853773a41333412503ba6800bff814a8c6938c5 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Fri, 26 Jul 2024 12:41:06 +0900 Subject: [PATCH 40/73] IIDX: Added dummy license element on pc.common response --- iidx@asphyxia/handlers/pc.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index b5c4a07..942ae0c 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -119,6 +119,9 @@ export const pccommon: EPR = async (info, data, send) => { case 22: result = { ...result, + license: { + string: K.ITEM("bin", [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")) }), limit: K.ATTR({ phase: String(U.GetConfig("pd_limit")) }), @@ -139,6 +142,9 @@ export const pccommon: EPR = async (info, data, send) => { case 23: result = { ...result, + license: { + string: K.ITEM("bin", [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")) }), event2_phase: K.ATTR({ phase: String(U.GetConfig("cp_event2")) }), @@ -159,6 +165,9 @@ export const pccommon: EPR = async (info, data, send) => { case 24: result = { ...result, + license: { + string: K.ITEM("bin", [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")) }), vip_pass_black: {}, @@ -173,6 +182,9 @@ export const pccommon: EPR = async (info, data, send) => { case 25: result = { ...result, + license: { + string: K.ITEM("bin", [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")) }), extra_boss_event: K.ATTR({ phase: String(U.GetConfig("cb_extraboss")) }), @@ -186,6 +198,9 @@ export const pccommon: EPR = async (info, data, send) => { case 26: result = { ...result, + license: { + string: K.ITEM("bin", [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")) }), vip_pass_black: {}, @@ -203,6 +218,10 @@ export const pccommon: EPR = async (info, data, send) => { case 27: result = { ...result, + movie_agreement: K.ATTR({ version: String(1) }), + license: { + string: K.ITEM("bin", [0x00]), // TODO:: figure out what this does (alloc size: 600) // + }, boss: K.ATTR({ phase: String(U.GetConfig("hv_boss")) }), vip_pass_black: {}, deller_bonus: K.ATTR({ open: String(1) }), @@ -221,6 +240,9 @@ export const pccommon: EPR = async (info, data, send) => { result = { ...result, movie_agreement: K.ATTR({ version: String(1) }), + license: { + string: K.ITEM("bin", [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")) }), vip_pass_black: {}, @@ -243,6 +265,9 @@ export const pccommon: EPR = async (info, data, send) => { result = { ...result, movie_agreement: K.ATTR({ version: String(1) }), + license: { + string: K.ITEM("bin", [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 // vip_pass_black: {}, @@ -266,6 +291,9 @@ export const pccommon: EPR = async (info, data, send) => { result = { ...result, movie_agreement: K.ATTR({ version: String(1) }), + license: { + string: K.ITEM("bin", [0x00]), // TODO:: figure out what this does (alloc size: 600) // + }, movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), vip_pass_black: {}, deller_bonus: K.ATTR({ open: String(1) }), From 432cd116c1c3b627e0480370a910b6149c4203e3 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Mon, 29 Jul 2024 12:13:33 +0900 Subject: [PATCH 41/73] IIDX: Added missing qpro saving code (WebUI) --- iidx@asphyxia/README.md | 1 + iidx@asphyxia/handlers/webui.ts | 6 ++++++ iidx@asphyxia/webui/profile_---setting.pug | 5 ++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 324e812..64c51ee 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -140,3 +140,4 @@ Changelogs - Fixed where unable to login after first-play (SPADA, SINOBUZ, Rootage) - 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 doesn't get saved in WebUI \ No newline at end of file diff --git a/iidx@asphyxia/handlers/webui.ts b/iidx@asphyxia/handlers/webui.ts index 967bb33..cc23509 100644 --- a/iidx@asphyxia/handlers/webui.ts +++ b/iidx@asphyxia/handlers/webui.ts @@ -237,6 +237,12 @@ export const updateCustomSettings = async (data) => { rival_played_folder: StoB(data.rival_played_folder), hide_iidxid: StoB(data.hide_iidxid), disable_beginner_option: StoB(data.disable_beginner_option), + + qpro_head: parseInt(data.qpro_head), + qpro_hair: parseInt(data.qpro_hair), + qpro_face: parseInt(data.qpro_face), + qpro_hand: parseInt(data.qpro_hand), + qpro_body: parseInt(data.qpro_body), } await DB.Upsert(data.refid, { diff --git a/iidx@asphyxia/webui/profile_---setting.pug b/iidx@asphyxia/webui/profile_---setting.pug index 95a540d..22979ad 100644 --- a/iidx@asphyxia/webui/profile_---setting.pug +++ b/iidx@asphyxia/webui/profile_---setting.pug @@ -170,7 +170,10 @@ div .field label.label Disable Beginner Option .control - input(type="checkbox" name="disable_beginner_option", checked=Boolean(custom.disable_beginner_option)) + if custom.disable_beginner_option === undefined + input(type="checkbox" name="disable_beginner_option", checked=Boolean(false)) + else + input(type="checkbox" name="disable_beginner_option", checked=Boolean(custom.disable_beginner_option)) //- QPRO .field label.label QPRO Head From 064838bca92a38f7c431e0934ca48364cf7f2abf Mon Sep 17 00:00:00 2001 From: duel0213 Date: Wed, 31 Jul 2024 06:40:27 +0900 Subject: [PATCH 42/73] IIDX: Added experimental badge save/load support --- iidx@asphyxia/README.md | 1 + iidx@asphyxia/handlers/grade.ts | 18 +++ iidx@asphyxia/handlers/music.ts | 64 +++++++++- iidx@asphyxia/handlers/pc.ts | 199 ++++++++++++++++++++++++++------ iidx@asphyxia/models/badge.ts | 8 ++ 5 files changed, 248 insertions(+), 42 deletions(-) create mode 100644 iidx@asphyxia/models/badge.ts diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 64c51ee..44fe8a2 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -135,6 +135,7 @@ Changelogs **v0.1.15** - Added Initial support for GOLD - Added Disable Beginner Option + - Added Experimental Badge saving support - Fixed where plugin may fail to register due to missing types in dev mode - 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) diff --git a/iidx@asphyxia/handlers/grade.ts b/iidx@asphyxia/handlers/grade.ts index f5716f8..563f97d 100644 --- a/iidx@asphyxia/handlers/grade.ts +++ b/iidx@asphyxia/handlers/grade.ts @@ -2,6 +2,7 @@ import { pcdata } from "../models/pcdata"; import { grade } from "../models/grade"; import { IDtoRef, GetVersion } from "../util"; import { eisei_grade } from "../models/lightning"; +import { badge } from "../models/badge"; export const graderaised: EPR = async (info, data, send) => { const version = GetVersion(info); @@ -153,6 +154,23 @@ export const graderaised: EPR = async (info, data, send) => { ); } + if (!_.isNil($(data).element("badge"))) { + await DB.Upsert( + refid, + { + collection: "badge", + version: version, + category_name: "grade", + flg_id: parseInt($(data).attr("badge").badge_flg_id), + }, + { + $set: { + flg: parseInt($(data).attr("badge").badge_flg), + } + } + ); + } + let gradeUser = await DB.Find(null, { collection: "grade", version: version, diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index c27371d..4c8bc07 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -3,6 +3,7 @@ import { score, score_top } from "../models/score"; import { profile } from "../models/profile"; import { shop_data } from "../models/shop"; import { tutorial } from "../models/tutorial"; +import { badge } from "../models/badge"; export const musicgetrank: EPR = async (info, data, send) => { const version = GetVersion(info); @@ -435,12 +436,16 @@ 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 shop_data = await DB.FindOne({ collection: "shop_data", }); + const profile = await DB.FindOne(refid, { + collection: "profile", + }); // wid, oppid, opname, opt, opt2, pside, nocnt, anum // - const refid = await IDtoRef(parseInt($(data).attr().iidxid)); const pgnum = parseInt($(data).attr().pgnum); const gnum = parseInt($(data).attr().gnum); const mnum = parseInt($(data).attr().mnum); @@ -470,10 +475,6 @@ export const musicreg: EPR = async (info, data, send) => { mid: mid, }); - const profile = await DB.FindOne(refid, { - collection: "profile", - }); - // SPN -> DPA [0~5] -> LINCLE // // SPB -> DPL [0~9] -> Heroic Verse // let pgArray = Array(10).fill(0); // PGREAT // @@ -618,6 +619,59 @@ export const musicreg: EPR = async (info, data, send) => { } ); + if (!_.isNil($(data).element("badge"))) { + if (!_.isNil($(data).attr("badge").djLevel_badge_flg_id)) { + await DB.Upsert( + refid, + { + collection: "badge", + version: version, + category_name: "djLevel", + flg_id: parseInt($(data).attr("badge").djLevel_badge_flg_id), + }, + { + $set: { + flg: parseInt($(data).attr("badge").djLevel_badge_flg), + } + } + ); + } + + if (!_.isNil($(data).attr("badge").clear_badge_flg_id)) { + await DB.Upsert( + refid, + { + collection: "badge", + version: version, + category_name: "clear", + flg_id: parseInt($(data).attr("badge").clear_badge_flg_id), + }, + { + $set: { + flg: parseInt($(data).attr("badge").clear_badge_flg), + } + } + ); + } + + if (!_.isNil($(data).attr("badge").rivalChallenge_badge_flg)) { + await DB.Upsert( + refid, + { + collection: "badge", + version: version, + category_name: "rivalChallenge", + flg_id: 0, + }, + { + $set: { + flg: parseInt($(data).attr("badge").rivalChallenge_badge_flg), + } + } + ); + } + } + let shop_rank = -1, shop_rank_data = []; let scores: any[][]; scores = ( diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 942ae0c..e5d2745 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -10,6 +10,7 @@ import { shop_data } from "../models/shop"; import { tutorial } from "../models/tutorial"; import { expert } from "../models/ranking"; import { blueboss } from "../models/event"; +import { badge } from "../models/badge"; export const pccommon: EPR = async (info, data, send) => { const version = GetVersion(info); @@ -469,14 +470,16 @@ export const pcget: EPR = async (info, data, send) => { const custom = await DB.FindOne(refid, { collection: "custom", version: version }); const grade = await DB.Find(refid, { collection: "grade", version: version }); const rivals = await DB.Find(refid, { collection: "rival" }); + const shop_data = await DB.FindOne({ collection: "shop_data" }); + const expert = await DB.Find(refid, { collection: "expert", version: version }); const world_tourism = await DB.Find(refid, { collection: "world_tourism", version: version }); + const badge = await DB.Find(refid, { collection: "badge", version: version }); + const lm_settings = await DB.FindOne(refid, { collection: "lightning_settings", version: version }); const lm_playdata = await DB.FindOne(refid, { collection: "lightning_playdata", version: version }); const lm_eisei_grade = await DB.Find(refid, { collection: "eisei_grade", version: version }); const lm_music_memo = await DB.Find(refid, { collection: "lightning_musicmemo", version: version }); const lm_music_memo_new = await DB.Find(refid, { collection: "lightning_musicmemo_new", version: version }); - const shop_data = await DB.FindOne({ collection: "shop_data" }); - const expert = await DB.Find(refid, { collection: "expert", version: version }); if (_.isNil(pcdata)) return send.deny(); @@ -900,43 +903,54 @@ export const pcget: EPR = async (info, data, send) => { badge_flg ***/ - if (version >= 30) { - for (let a = 0; a < 13; a++) { - if (a == 0 || a == 1) { - for (let b = 0; b < 24; b++) { - bArray.push({ - id: a, - flg_id: b, - flg: -1, - }); - } - continue; - } else if (a == 9) { - for (let b = 0; b < 10; b++) { - bArray.push({ - id: a, - flg_id: b, - flg: -1, - }); - } - continue; - } else if (a == 7 || a == 10) { - for (let b = 0; b < 2; b++) { - bArray.push({ - id: a, - flg_id: b, - flg: -1, - }); - } - continue; - } - + if (version >= 30 && badge.length > 0) { + let djLevel, clear, visitor, notes_radar, event1; + djLevel = badge.filter((res) => res.category_name === "djLevel"); + djLevel.forEach((res) => { bArray.push({ - id: a, - flg_id: 0, - flg: -1, + id: 0, + flg_id: res.flg_id, + flg: res.flg, }); - } + }); + + clear = badge.filter((res) => res.category_name === "clear"); + clear.forEach((res) => { + bArray.push({ + id: 1, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + // this keep sending back on save // + // possibly wrong category_id but at least doesn't show as new badges // + visitor = badge.filter((res) => res.category_name === "visitor"); + visitor.forEach((res) => { + bArray.push({ + id: 6, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + notes_radar = badge.filter((res) => res.category_name === "notes_radar"); + notes_radar.forEach((res) => { + bArray.push({ + id: 7, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + event1 = badge.filter((res) => res.category_name === "event1"); + event1.forEach((res) => { + bArray.push({ + id: 9, + flg_id: res.flg_id, + flg: res.flg, + }); + }); } if (version == 24) { // migration // @@ -1211,6 +1225,7 @@ export const pcsave: EPR = async (info, data, send) => { const hasWorldTourism = !(_.isNil($(data).element("world_tourism_data"))); const hasMusicMemo = !(_.isNil($(data).element("music_memo"))); const hasTowerData = !(_.isNil($(data).element("tower_data"))); + const hasBadgeData = !(_.isNil($(data).element("badge"))); if (cltype == 0) pcdata.spnum += 1; else pcdata.dpnum += 1; @@ -3515,6 +3530,116 @@ export const pcsave: EPR = async (info, data, send) => { profile.total_kbd += parseInt($(data).attr("tower_data").keyboard); profile.total_scr += parseInt($(data).attr("tower_data").scratch); } + + // saving for future purpose // + if (hasBadgeData) { + let badge_data = []; + let badge = $(data).element("badge"); + + 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("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); + } + + badge_data.forEach((res) => { + DB.Upsert( + refid, + { + collection: "badge", + version: version, + category_name: res.category_id, + flg_id: res.flg_id, + }, + { + $set: { + flg: res.flg, + } + }); + }); + } } await DB.Upsert( diff --git a/iidx@asphyxia/models/badge.ts b/iidx@asphyxia/models/badge.ts new file mode 100644 index 0000000..2683b26 --- /dev/null +++ b/iidx@asphyxia/models/badge.ts @@ -0,0 +1,8 @@ +export interface badge { + collection: "badge"; + version: number; + + category_name: string; + flg_id: number; + flg: number; +} From 425b8962ee6f7aa0624cf36ce7dbb2864927c0b0 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Thu, 1 Aug 2024 18:48:18 +0900 Subject: [PATCH 43/73] IIDX: Added grade badge save --- iidx@asphyxia/handlers/pc.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index e5d2745..48dc19d 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -904,7 +904,7 @@ export const pcget: EPR = async (info, data, send) => { ***/ if (version >= 30 && badge.length > 0) { - let djLevel, clear, visitor, notes_radar, event1; + let djLevel, clear, grade, visitor, notes_radar, event1; djLevel = badge.filter((res) => res.category_name === "djLevel"); djLevel.forEach((res) => { bArray.push({ @@ -922,6 +922,15 @@ export const pcget: EPR = async (info, data, send) => { flg: res.flg, }); }); + + grade = badge.filter((res) => res.category_name === "grade"); + grade.forEach((res) => { + bArray.push({ + id: 2, + flg_id: res.flg_id, + flg: res.flg, + }); + }); // this keep sending back on save // // possibly wrong category_id but at least doesn't show as new badges // From 5750f8f46424ab3c50f8d89c78906c73da026217 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Thu, 1 Aug 2024 18:56:35 +0900 Subject: [PATCH 44/73] IIDX: Added score import/export --- iidx@asphyxia/README.md | 1 + iidx@asphyxia/handlers/webui.ts | 108 +++++ iidx@asphyxia/index.ts | 4 +- iidx@asphyxia/models/score.ts | 13 + ...----detail.pug => profile_-----detail.pug} | 130 +++--- ...---setting.pug => profile_----setting.pug} | 404 +++++++++--------- ...ofile_--rival.pug => profile_---rival.pug} | 236 +++++----- ...profile_-score.pug => profile_--score.pug} | 50 +-- iidx@asphyxia/webui/profile_-data.pug | 27 ++ 9 files changed, 562 insertions(+), 411 deletions(-) rename iidx@asphyxia/webui/{profile_----detail.pug => profile_-----detail.pug} (94%) rename iidx@asphyxia/webui/{profile_---setting.pug => profile_----setting.pug} (97%) rename iidx@asphyxia/webui/{profile_--rival.pug => profile_---rival.pug} (97%) rename iidx@asphyxia/webui/{profile_-score.pug => profile_--score.pug} (95%) create mode 100644 iidx@asphyxia/webui/profile_-data.pug diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 44fe8a2..6ca9104 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -136,6 +136,7 @@ Changelogs - Added Initial support for GOLD - Added Disable Beginner Option - Added Experimental Badge saving support + - Added Experimental score Import/Export - Fixed where plugin may fail to register due to missing types in dev mode - 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) diff --git a/iidx@asphyxia/handlers/webui.ts b/iidx@asphyxia/handlers/webui.ts index cc23509..37217b8 100644 --- a/iidx@asphyxia/handlers/webui.ts +++ b/iidx@asphyxia/handlers/webui.ts @@ -1,6 +1,7 @@ import { profile } from "../models/profile"; import { rival } from "../models/rival"; import { custom } from "../models/custom"; +import { score, old_score } from "../models/score"; export const updateRivalSettings = async (data) => { let update_array = []; @@ -264,6 +265,113 @@ export const updateCustomSettings = async (data) => { } }; +export const importScoreData = async (data) => { + if (_.isEmpty(data.data)) return; + + let content = JSON.parse(data.data); + let version = content.version; + let count = content.count; + + switch (version) { + case 1: + let sd_ver1: old_score[] = content.data; + for (let a = 0; a < count; a++) { + let result = { + pgArray: Array(10).fill(0), + gArray: Array(10).fill(0), + mArray: Array(10).fill(0), + cArray: Array(10).fill(0), + rArray: Array(10).fill(-1), + esArray: Array(10).fill(0), + + optArray: Array(10).fill(0), + opt2Array: Array(10).fill(0), + } + + if (!_.isNil(sd_ver1[a].spmArray)) { + for (let b = 0; b < 5; b++) { + result.cArray[b] = sd_ver1[a].spmArray[2 + b]; + result.esArray[b] = sd_ver1[a].spmArray[7 + b]; + if (sd_ver1[a].spmArray[12 + b] != -1) result.mArray[b] = sd_ver1[a].spmArray[12 + b]; + } + } + + if (!_.isNil(sd_ver1[a].dpmArray)) { + for (let b = 5; b < 10; b++) { + result.cArray[b] = sd_ver1[a].dpmArray[2 + b]; + result.esArray[b] = sd_ver1[a].dpmArray[7 + b]; + if (sd_ver1[a].dpmArray[12 + b] != -1) result.mArray[b] = sd_ver1[a].dpmArray[12 + b]; + } + } + + if (!_.isNil(sd_ver1[a].optArray)) { + result.optArray = sd_ver1[a].optArray; + } + + if (!_.isNil(sd_ver1[a].opt2Array)) { + result.opt2Array = sd_ver1[a].opt2Array; + } + + for (let b = 0; b < 10; b++) { + if (_.isNil(sd_ver1[a][b])) continue; + result[b] = sd_ver1[a][b]; + + if (!_.isNil(sd_ver1[a][b + 10])) { + result[b + 10] = sd_ver1[a][b + 10]; + } + } + + await DB.Upsert(data.refid, + { + collection: "score", + mid: sd_ver1[a].music_id + }, + { + $set: { + ...result + } + } + ); + } + break; + case 2: + let sd_ver2: score[] = content.data; + for (let a = 0; a < count; a++) { + await DB.Upsert(data.refid, + { + collection: "score", + mid: sd_ver2[a].mid + }, + { + $set: { + ...sd_ver2[a] + } + } + ); + } + break; + + default: + break; + } +} + +export const exportScoreData = async (data, send: WebUISend) => { + const score = await DB.Find(data.refid, { + collection: "score" + }); + + let result = { + version: 2, + count: score.length, + data: { + ...score, + } + } + + send.json(result); +} + function StoB(value: string) { return value == "on" ? true : false; }; diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index e517015..022b752 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -3,7 +3,7 @@ import { shopgetname, shopsavename, shopgetconvention, shopsetconvention } from import { musicreg, musicgetrank, musicappoint, musicarenacpu, musiccrate, musicbreg, musicgetralive } from "./handlers/music"; import { graderaised } from "./handlers/grade"; import { gssysteminfo } from "./handlers/gamesystem"; -import { updateRivalSettings, updateCustomSettings } from "./handlers/webui"; +import { updateRivalSettings, updateCustomSettings, importScoreData, exportScoreData } from "./handlers/webui"; import { GetVersion } from "./util"; import { rankingentry, rankinggetranker, rankingoentry } from "./handlers/ranking"; @@ -461,6 +461,8 @@ export function register() { // TODO:: Reflect data when version dropdown menu has been changed // R.WebUIEvent("updateIIDXRival", updateRivalSettings); R.WebUIEvent("updateIIDXCustom", updateCustomSettings); + R.WebUIEvent("importScoreData", importScoreData); + R.WebUIEvent("exportScoreData", exportScoreData); const MultiRoute = (method: string, handler: EPR | boolean) => { R.Route(`${method}`, handler); diff --git a/iidx@asphyxia/models/score.ts b/iidx@asphyxia/models/score.ts index 3f546ba..3b08c9d 100644 --- a/iidx@asphyxia/models/score.ts +++ b/iidx@asphyxia/models/score.ts @@ -24,3 +24,16 @@ export interface score_top { scores: number[]; clflgs: number[]; } + +export interface old_score { + music_id: number; + + spmArray: number[]; + dpmArray: number[]; + + optArray: number[]; + opt2Array: number[]; + + option_1: number; + option_2: number; +} \ No newline at end of file diff --git a/iidx@asphyxia/webui/profile_----detail.pug b/iidx@asphyxia/webui/profile_-----detail.pug similarity index 94% rename from iidx@asphyxia/webui/profile_----detail.pug rename to iidx@asphyxia/webui/profile_-----detail.pug index ff2c45d..601157a 100644 --- a/iidx@asphyxia/webui/profile_----detail.pug +++ b/iidx@asphyxia/webui/profile_-----detail.pug @@ -1,65 +1,65 @@ -//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 - ]; - -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(name="version") - each i in version - option(selected=(i==pcdata.version)) #{i} - .field - label.label Name - .body - body #{profile.name} - .field - label.label IIDX ID - .body - body #{profile.idstr} - .field - label.label SP Grade - .body - - const a = pcdata.sgid - if a==-1 - body ---- - else - body #{pcdata.sgid} - .field - label.label DP Grade - .body - - const b = pcdata.dgid - if b==-1 - body ---- - else - body #{pcdata.dgid} +//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 + ]; + +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(name="version") + each i in version + option(selected=(i==pcdata.version)) #{i} + .field + label.label Name + .body + body #{profile.name} + .field + label.label IIDX ID + .body + body #{profile.idstr} + .field + label.label SP Grade + .body + - const a = pcdata.sgid + if a==-1 + body ---- + else + body #{pcdata.sgid} + .field + label.label DP Grade + .body + - const b = pcdata.dgid + if b==-1 + body ---- + else + body #{pcdata.dgid} diff --git a/iidx@asphyxia/webui/profile_---setting.pug b/iidx@asphyxia/webui/profile_----setting.pug similarity index 97% rename from iidx@asphyxia/webui/profile_---setting.pug rename to iidx@asphyxia/webui/profile_----setting.pug index 22979ad..e373c70 100644 --- a/iidx@asphyxia/webui/profile_---setting.pug +++ b/iidx@asphyxia/webui/profile_----setting.pug @@ -1,202 +1,202 @@ -//DATA// - profile: DB.FindOne(refid, { collection: "profile" }) - pcdata: DB.FindOne(refid, { collection: "pcdata" }) - custom: DB.FindOne(refid, { collection: "custom" }) - -- - const version = [ - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30 - ]; - -div - .card - .card-header - p.card-header-title - span.icon - i.mdi.mdi-account-edit - | Settings - .card-content - form(method="post" action="/emit/updateIIDXCustom") - .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") - each i in version - option(selected=(i==pcdata.version)) #{i} - .field - label.label Name - .control - input.input(type="text" name="name", value=profile.name) - //- SKIN - .field - label.label Frame - .control - input.input(type="number" name="frame", value=custom.frame) - .field - label.label Turntable - .control - input.input(type="number" name="turntable", value=custom.turntable) - .field - label.label Note Burst - .control - input.input(type="number" name="note_burst", value=custom.note_burst) - .field - label.label Menu Music - .control - input.input(type="number" name="menu_music", value=custom.menu_music) - .field - label.label Lane Cover - .control - input.input(type="number" name="lane_cover", value=custom.lane_cover) - .field - label.label Category Voice - .control - input.input(type="number" name="category_vox", value=custom.category_vox) - .field - label.label Note Skin - .control - input.input(type="number" name="note_skin", value=custom.note_skin) - .field - label.label Full Combo Splash - .control - input.input(type="number" name="full_combo_splash", value=custom.full_combo_splash) - .field - label.label Note Beam - .control - input.input(type="number" name="note_beam", value=custom.note_beam) - .field - label.label Judgement Font - .control - input.input(type="number" name="judge_font", value=custom.judge_font) - .field - label.label Disable Music Preview - .control - input(type="checkbox" name="disable_musicpreview", checked=Boolean(custom.disable_musicpreview)) - .field - label.label Pacemaker Cover - .control - input.input(type="number" name="pacemaker_cover", value=custom.pacemaker_cover) - .field - label.label VEFX Lock - .control - input(type="checkbox" name="vefx_lock", checked=Boolean(custom.vefx_lock)) - .field - label.label VEFX Lock (Effector) - .control - input.input(type="number" name="effect", value=custom.effect) - .field - label.label Note Burst Size - .control - input.input(type="number" name="bomb_size", value=custom.bomb_size) - .field - label.label Disable HCN Color - .control - input(type="checkbox" name="disable_hcn_color", checked=Boolean(custom.disable_hcn_color)) - .field - label.label First Note Preview - .control - input.input(type="number" name="first_note_preview", value=custom.first_note_preview) - //- APPEND SETTINGS - .field - label.label Rank Folder - .control - input(type="checkbox" name="rank_folder", checked=Boolean(custom.rank_folder)) - .field - label.label Clear State Folder - .control - input(type="checkbox" name="clear_folder", checked=Boolean(custom.clear_folder)) - .field - label.label Difficulty Folder - .control - input(type="checkbox" name="diff_folder", checked=Boolean(custom.diff_folder)) - .field - label.label Alphabet Folder - .control - input(type="checkbox" name="alpha_folder", checked=Boolean(custom.alpha_folder)) - .field - label.label Rival Folder - .control - input(type="checkbox" name="rival_folder", checked=Boolean(custom.rival_folder)) - .field - label.label Rival WIN/LOSE Folder - .control - input(type="checkbox" name="rival_battle_folder", checked=Boolean(custom.rival_battle_folder)) - .field - label.label Rival Info / Venue Top Display - .control - input(type="checkbox" name="rival_info", checked=Boolean(custom.rival_info)) - .field - label.label Hide Playcount - .control - input(type="checkbox" name="hide_playcount", checked=Boolean(custom.hide_playcount)) - .field - label.label Disable Pacemaker Cut-In - .control - input(type="checkbox" name="disable_graph_cutin", checked=Boolean(custom.disable_graph_cutin)) - .field - label.label Classic Hi-SPEED - .control - input(type="checkbox" name="class_hispeed", checked=Boolean(custom.class_hispeed)) - .field - label.label Rival Played Folder - .control - input(type="checkbox" name="rival_played_folder", checked=Boolean(custom.rival_played_folder)) - .field - label.label Hide IIDX ID - .control - input(type="checkbox" name="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", checked=Boolean(false)) - else - input(type="checkbox" name="disable_beginner_option", checked=Boolean(custom.disable_beginner_option)) - //- QPRO - .field - label.label QPRO Head - .control - input.input(type="number" name="qpro_head", value=custom.qpro_head) - .field - label.label QPRO Hair - .control - input.input(type="number" name="qpro_hair", value=custom.qpro_hair) - .field - label.label QPRO Hand - .control - input.input(type="number" name="qpro_hand", value=custom.qpro_hand) - .field - label.label QPRO Face - .control - input.input(type="number" name="qpro_face", value=custom.qpro_face) - .field - label.label QPRO Body - .control - input.input(type="number" name="qpro_body", value=custom.qpro_body) - .field - button.button.is-primary(type="submit") - span.icon - i.mdi.mdi-check - span Submit +//DATA// + profile: DB.FindOne(refid, { collection: "profile" }) + pcdata: DB.FindOne(refid, { collection: "pcdata" }) + custom: DB.FindOne(refid, { collection: "custom" }) + +- + const version = [ + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30 + ]; + +div + .card + .card-header + p.card-header-title + span.icon + i.mdi.mdi-account-edit + | Settings + .card-content + form(method="post" action="/emit/updateIIDXCustom") + .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") + each i in version + option(selected=(i==pcdata.version)) #{i} + .field + label.label Name + .control + input.input(type="text" name="name", value=profile.name) + //- SKIN + .field + label.label Frame + .control + input.input(type="number" name="frame", value=custom.frame) + .field + label.label Turntable + .control + input.input(type="number" name="turntable", value=custom.turntable) + .field + label.label Note Burst + .control + input.input(type="number" name="note_burst", value=custom.note_burst) + .field + label.label Menu Music + .control + input.input(type="number" name="menu_music", value=custom.menu_music) + .field + label.label Lane Cover + .control + input.input(type="number" name="lane_cover", value=custom.lane_cover) + .field + label.label Category Voice + .control + input.input(type="number" name="category_vox", value=custom.category_vox) + .field + label.label Note Skin + .control + input.input(type="number" name="note_skin", value=custom.note_skin) + .field + label.label Full Combo Splash + .control + input.input(type="number" name="full_combo_splash", value=custom.full_combo_splash) + .field + label.label Note Beam + .control + input.input(type="number" name="note_beam", value=custom.note_beam) + .field + label.label Judgement Font + .control + input.input(type="number" name="judge_font", value=custom.judge_font) + .field + label.label Disable Music Preview + .control + input(type="checkbox" name="disable_musicpreview", checked=Boolean(custom.disable_musicpreview)) + .field + label.label Pacemaker Cover + .control + input.input(type="number" name="pacemaker_cover", value=custom.pacemaker_cover) + .field + label.label VEFX Lock + .control + input(type="checkbox" name="vefx_lock", checked=Boolean(custom.vefx_lock)) + .field + label.label VEFX Lock (Effector) + .control + input.input(type="number" name="effect", value=custom.effect) + .field + label.label Note Burst Size + .control + input.input(type="number" name="bomb_size", value=custom.bomb_size) + .field + label.label Disable HCN Color + .control + input(type="checkbox" name="disable_hcn_color", checked=Boolean(custom.disable_hcn_color)) + .field + label.label First Note Preview + .control + input.input(type="number" name="first_note_preview", value=custom.first_note_preview) + //- APPEND SETTINGS + .field + label.label Rank Folder + .control + input(type="checkbox" name="rank_folder", checked=Boolean(custom.rank_folder)) + .field + label.label Clear State Folder + .control + input(type="checkbox" name="clear_folder", checked=Boolean(custom.clear_folder)) + .field + label.label Difficulty Folder + .control + input(type="checkbox" name="diff_folder", checked=Boolean(custom.diff_folder)) + .field + label.label Alphabet Folder + .control + input(type="checkbox" name="alpha_folder", checked=Boolean(custom.alpha_folder)) + .field + label.label Rival Folder + .control + input(type="checkbox" name="rival_folder", checked=Boolean(custom.rival_folder)) + .field + label.label Rival WIN/LOSE Folder + .control + input(type="checkbox" name="rival_battle_folder", checked=Boolean(custom.rival_battle_folder)) + .field + label.label Rival Info / Venue Top Display + .control + input(type="checkbox" name="rival_info", checked=Boolean(custom.rival_info)) + .field + label.label Hide Playcount + .control + input(type="checkbox" name="hide_playcount", checked=Boolean(custom.hide_playcount)) + .field + label.label Disable Pacemaker Cut-In + .control + input(type="checkbox" name="disable_graph_cutin", checked=Boolean(custom.disable_graph_cutin)) + .field + label.label Classic Hi-SPEED + .control + input(type="checkbox" name="class_hispeed", checked=Boolean(custom.class_hispeed)) + .field + label.label Rival Played Folder + .control + input(type="checkbox" name="rival_played_folder", checked=Boolean(custom.rival_played_folder)) + .field + label.label Hide IIDX ID + .control + input(type="checkbox" name="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", checked=Boolean(false)) + else + input(type="checkbox" name="disable_beginner_option", checked=Boolean(custom.disable_beginner_option)) + //- QPRO + .field + label.label QPRO Head + .control + input.input(type="number" name="qpro_head", value=custom.qpro_head) + .field + label.label QPRO Hair + .control + input.input(type="number" name="qpro_hair", value=custom.qpro_hair) + .field + label.label QPRO Hand + .control + input.input(type="number" name="qpro_hand", value=custom.qpro_hand) + .field + label.label QPRO Face + .control + input.input(type="number" name="qpro_face", value=custom.qpro_face) + .field + label.label QPRO Body + .control + input.input(type="number" name="qpro_body", value=custom.qpro_body) + .field + button.button.is-primary(type="submit") + span.icon + i.mdi.mdi-check + span Submit diff --git a/iidx@asphyxia/webui/profile_--rival.pug b/iidx@asphyxia/webui/profile_---rival.pug similarity index 97% rename from iidx@asphyxia/webui/profile_--rival.pug rename to iidx@asphyxia/webui/profile_---rival.pug index ee524f9..c236238 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/updateIIDXRival") - .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/updateIIDXRival") + .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 similarity index 95% rename from iidx@asphyxia/webui/profile_-score.pug rename to iidx@asphyxia/webui/profile_--score.pug index 403e716..44002ee 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 new file mode 100644 index 0000000..8b870ac --- /dev/null +++ b/iidx@asphyxia/webui/profile_-data.pug @@ -0,0 +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 exsiting scores + form(method="post" action="/emit/importScoreData") + .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/exportScoreData") + .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 From 844dd6c4d121761781efd72945421c98c470cfc8 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Wed, 9 Oct 2024 11:23:39 +0900 Subject: [PATCH 45/73] IIDX: Initial support added for EPOLIS IIDX: Bug fixes and Enhancements --- iidx@asphyxia/README.md | 23 +- iidx@asphyxia/data/grade.json | 40 + iidx@asphyxia/data/music_open.json | 60 + iidx@asphyxia/handlers/gamesystem.ts | 75 + iidx@asphyxia/handlers/grade.ts | 73 +- iidx@asphyxia/handlers/music.ts | 3 +- iidx@asphyxia/handlers/pc.ts | 1551 +++++++++++++------ iidx@asphyxia/handlers/webui.ts | 47 +- iidx@asphyxia/index.ts | 67 +- iidx@asphyxia/models/custom.ts | 12 + iidx@asphyxia/models/lightning.ts | 44 +- iidx@asphyxia/models/pcdata.ts | 136 +- iidx@asphyxia/models/score.ts | 2 +- iidx@asphyxia/pug/KDZ/pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/21pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/22pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/23pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/24pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/25pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/26pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/27pcget.pug | 2 +- iidx@asphyxia/pug/LDJ/28pcget.pug | 4 +- iidx@asphyxia/pug/LDJ/29pcget.pug | 4 +- iidx@asphyxia/pug/LDJ/30pcget.pug | 5 +- iidx@asphyxia/pug/LDJ/31pcget.pug | 108 ++ iidx@asphyxia/pug/LDJ/pcget.pug | 2 +- iidx@asphyxia/util.ts | 39 +- iidx@asphyxia/webui/asset/js/detail.js | 31 + iidx@asphyxia/webui/asset/js/setting.js | 80 + iidx@asphyxia/webui/profile_-----detail.pug | 18 +- iidx@asphyxia/webui/profile_----setting.pug | 118 +- iidx@asphyxia/webui/profile_---rival.pug | 2 +- iidx@asphyxia/webui/profile_-data.pug | 4 +- 33 files changed, 1966 insertions(+), 598 deletions(-) create mode 100644 iidx@asphyxia/data/grade.json create mode 100644 iidx@asphyxia/data/music_open.json create mode 100644 iidx@asphyxia/pug/LDJ/31pcget.pug create mode 100644 iidx@asphyxia/webui/asset/js/detail.js create mode 100644 iidx@asphyxia/webui/asset/js/setting.js diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 6ca9104..94b850f 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -1,6 +1,6 @@ # beatmaniaIIDX -Plugin Version: **v0.1.15** +Plugin Version: **v0.1.16** --- @@ -22,6 +22,7 @@ Supported Versions - beatmaniaIIDX 28 BISTROVER (2021091500) - beatmaniaIIDX 29 CastHour (2022082400) - beatmaniaIIDX 30 RESIDENT (2023090500) + - beatmaniaIIDX 31 EPOLIS (2024082600) --- @@ -29,10 +30,11 @@ Features - STEP UP (Partial) - SKILL ANALYZER - EVENT (Partial) - - ARENA (Partial) + - ARENA (LOCAL only) - RANDOME LANE TICKET - FAVORITE/SONG SELECTION NOTES (Partial) - EXTRA FAVORITE does not support yet + - ORIGINAL FILTER --- @@ -40,9 +42,11 @@ Known Issues - Clear Lamps may display invalid lamps due to missing conversion code - DJ LEVEL folders are broken in ~ DJ TROOPERS due to missing rank\_id - LEGGENDARIA play records before HEROIC VERSE may not display on higher version due to missing conversion code + - SUPER FUTURE 2323 play records doesn't display on other version due to missing conversion code - ONE MORE EXTRA STAGE progress won't save (can't test this due to skill issue) - Some of licensed songs are locked behind due to missing license element (needs to be verified) - - Badges aren't saving in RESIDENT ~ (needs to figure out name to id) + - Some of badges aren't saving in RESIDENT ~ (needs to figure out name to id) + - QPRO may have wrong item if you equipped item from STEP UP result (this probably caused by qpro\_secret\_flg being -1) --- @@ -136,10 +140,17 @@ Changelogs - Added Initial support for GOLD - Added Disable Beginner Option - Added Experimental Badge saving support - - Added Experimental score Import/Export - - Fixed where plugin may fail to register due to missing types in dev mode + - 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 intented due to wrong condition check (HEROIC VERSE ~) - Fixed where pacemaker sub-type isn't load correctly (HEROIC VERSE ~) - - Fixed where QPRO doesn't get saved in WebUI \ No newline at end of file + - Fixed where QPRO data doesn't get saved in WebUI + +**v0.1.16** + - Added Initial support for EPOLIS + - Added music\_open on gameSystem.systemInfo response + - Fixed where lightning settings doesn't get saved on logout + - Fixed where Disable Music Preview, Disable HCN Color, VEFX Lock settings doesn't reflect + - WebUI is now display values of corresponding version diff --git a/iidx@asphyxia/data/grade.json b/iidx@asphyxia/data/grade.json new file mode 100644 index 0000000..e1d24e3 --- /dev/null +++ b/iidx@asphyxia/data/grade.json @@ -0,0 +1,40 @@ +{ + "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 ] + } + } + } +} diff --git a/iidx@asphyxia/data/music_open.json b/iidx@asphyxia/data/music_open.json new file mode 100644 index 0000000..130943f --- /dev/null +++ b/iidx@asphyxia/data/music_open.json @@ -0,0 +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 } + } +} diff --git a/iidx@asphyxia/handlers/gamesystem.ts b/iidx@asphyxia/handlers/gamesystem.ts index 4e5bf7b..ceb0694 100644 --- a/iidx@asphyxia/handlers/gamesystem.ts +++ b/iidx@asphyxia/handlers/gamesystem.ts @@ -16,6 +16,64 @@ export const gssysteminfo: EPR = async (info, data, send) => { arena_cpu_define: [], } + // 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")); + if (!_.isNil(music_open[version])) { + result = { + ...result, + music_open: [], + } + + Object.keys(music_open).forEach(v => { + Object.keys(music_open[v]).forEach(m => { + if (parseInt(v) > version) return; + + result.music_open.push({ + music_id: K.ITEM("s32", parseInt(m)), + kind: K.ITEM("s32", music_open[v][m].kind), + }); + }); + }); + } + + if (version >= 31) { + result.arena_schedule = { + ...result.arena_schedule, + rule_type: K.ITEM("u8", 0), + } + + 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), + }); + }); + }); + } + } + + // arena_music_difficult // for (let s = 0; s < 2; ++s) { for (let c = 0; c < 20; ++c) { result.arena_music_difficult.push({ @@ -72,6 +130,23 @@ export const gssysteminfo: EPR = async (info, data, send) => { BPLBattleOpenPhase: K.ATTR({ val: String(2) }), } break; + case 31: + result = { + ...result, + CommonBossPhase: K.ATTR({ val: String(3) }), + Event1Value: K.ATTR({ val: String(U.GetConfig("ep_event")) }), + Event1Phase: K.ATTR({ val: String(U.GetConfig("ep_event1")) }), + Event2Phase: K.ATTR({ val: String(U.GetConfig("ep_event2")) }), + ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("ep_extraboss")) }), + isNewSongAnother12OpenFlg: K.ATTR({ val: String(Number(U.GetConfig("NewSongAnother12"))) }), + isKiwamiOpenFlg: K.ATTR({ val: String(Number(U.GetConfig("Eisei"))) }), + WorldTourismOpenList: K.ATTR({ val: String(-1) }), + BPLBattleOpenPhase: K.ATTR({ val: String(2) }), + UnlockLeggendaria: K.ATTR({ val: String(1) }), + BPLSerialCodePhase: K.ATTR({ val: String(0) }), + Event1AllPlayerTotalGetMetron: K.ATTR({ val: String(2500) }), + } + break; default: break; diff --git a/iidx@asphyxia/handlers/grade.ts b/iidx@asphyxia/handlers/grade.ts index 563f97d..7ec26e1 100644 --- a/iidx@asphyxia/handlers/grade.ts +++ b/iidx@asphyxia/handlers/grade.ts @@ -24,8 +24,8 @@ export const graderaised: EPR = async (info, data, send) => { if (version >= 23) cflg = parseInt($(data).attr().cstage); - const isTDJ = !(_.isNil($(data).element("lightning_play_data"))); // lightning model // - const hasEiseiData = (!(_.isNil($(data).element("eisei_data"))) || !(_.isNil($(data).element("eisei_grade_data"))));; + const isTDJ = !_.isNil($(data).element("lightning_play_data")); // lightning model // + const hasEiseiData = (!_.isNil($(data).element("eisei_data")) || !_.isNil($(data).element("eisei_grade_data")) || !_.isNil($(data).element("kiwami_data"))); if (isTDJ && hasEiseiData) { let eisei_clear_type: number; let eisei_grade_id: number; @@ -38,35 +38,52 @@ export const graderaised: EPR = async (info, data, send) => { let eisei_max_past_achievement: number[]; let eisei_max_past_selected_course: number[]; - if (version == 27) { - eisei_clear_type = parseInt($(data).attr("eisei_data").clear_type); - eisei_grade_id = parseInt($(data).attr("eisei_data").grade_id); - eisei_grade_type = parseInt($(data).attr("eisei_data").grade_type); - eisei_stage_num = parseInt($(data).attr("eisei_data").stage_num); + switch (version) { + case 27: + eisei_clear_type = parseInt($(data).attr("eisei_data").clear_type); + eisei_grade_id = parseInt($(data).attr("eisei_data").grade_id); + eisei_grade_type = parseInt($(data).attr("eisei_data").grade_type); + eisei_stage_num = parseInt($(data).attr("eisei_data").stage_num); - eisei_past_achievement = $(data).element("eisei_data").numbers("past_achievement"); - eisei_max_past_achievement = $(data).element("eisei_data").numbers("max_past_achievement"); - } if (version >= 30) { - eisei_clear_type = parseInt($(data).element("eisei_data").attr().clear_type); - eisei_grade_id = parseInt($(data).element("eisei_data").attr().grade_id); - eisei_grade_type = parseInt($(data).element("eisei_data").attr().grade_type); - eisei_stage_num = parseInt($(data).element("eisei_data").attr().stage_num); - eisei_option = parseInt($(data).element("eisei_data").attr().option); + eisei_past_achievement = $(data).element("eisei_data").numbers("past_achievement"); + eisei_max_past_achievement = $(data).element("eisei_data").numbers("max_past_achievement"); + break; + case 30: + eisei_clear_type = parseInt($(data).element("eisei_data").attr().clear_type); + eisei_grade_id = parseInt($(data).element("eisei_data").attr().grade_id); + eisei_grade_type = parseInt($(data).element("eisei_data").attr().grade_type); + eisei_stage_num = parseInt($(data).element("eisei_data").attr().stage_num); + eisei_option = parseInt($(data).element("eisei_data").attr().option); - eisei_past_achievement = $(data).element("eisei_data").numbers("past_achievement"); - eisei_past_selected_course = $(data).element("eisei_data").numbers("past_selected_course"); - eisei_max_past_achievement = $(data).element("eisei_data").numbers("max_past_achievement"); - eisei_max_past_selected_course = $(data).element("eisei_data").numbers("max_past_selected_course"); - } else { - eisei_clear_type = parseInt($(data).attr("eisei_grade_data").clear_type); - eisei_grade_id = parseInt($(data).attr("eisei_grade_data").grade_id); - eisei_grade_type = parseInt($(data).attr("eisei_grade_data").grade_type); - eisei_stage_num = parseInt($(data).attr("eisei_grade_data").stage_num); + eisei_past_achievement = $(data).element("eisei_data").numbers("past_achievement"); + eisei_past_selected_course = $(data).element("eisei_data").numbers("past_selected_course"); + eisei_max_past_achievement = $(data).element("eisei_data").numbers("max_past_achievement"); + eisei_max_past_selected_course = $(data).element("eisei_data").numbers("max_past_selected_course"); + break; + case 31: + eisei_clear_type = parseInt($(data).attr("kiwami_data").clear_type); + eisei_grade_id = parseInt($(data).attr("kiwami_data").grade_id); + eisei_grade_type = parseInt($(data).attr("kiwami_data").grade_type); + eisei_stage_num = parseInt($(data).attr("kiwami_data").stage_num); + eisei_option = parseInt($(data).attr("kiwami_data").option); - eisei_past_achievement = $(data).element("eisei_grade_data").numbers("past_achievement"); - eisei_past_selected_course = $(data).element("eisei_grade_data").numbers("past_selected_course"); - eisei_max_past_achievement = $(data).element("eisei_grade_data").numbers("max_past_achievement"); - eisei_max_past_selected_course = $(data).element("eisei_grade_data").numbers("max_past_selected_course"); + eisei_past_achievement = $(data).element("kiwami_data").numbers("past_achievement"); + eisei_past_selected_course = $(data).element("kiwami_data").numbers("past_selected_course"); + eisei_max_past_achievement = $(data).element("kiwami_data").numbers("max_past_achievement"); + eisei_max_past_selected_course = $(data).element("kiwami_data").numbers("max_past_selected_course"); + break; + + default: + eisei_clear_type = parseInt($(data).attr("eisei_grade_data").clear_type); + eisei_grade_id = parseInt($(data).attr("eisei_grade_data").grade_id); + eisei_grade_type = parseInt($(data).attr("eisei_grade_data").grade_type); + eisei_stage_num = parseInt($(data).attr("eisei_grade_data").stage_num); + + eisei_past_achievement = $(data).element("eisei_grade_data").numbers("past_achievement"); + eisei_past_selected_course = $(data).element("eisei_grade_data").numbers("past_selected_course"); + eisei_max_past_achievement = $(data).element("eisei_grade_data").numbers("max_past_achievement"); + eisei_max_past_selected_course = $(data).element("eisei_grade_data").numbers("max_past_selected_course"); + break; } await DB.Upsert( diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 4c8bc07..3515c56 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -568,7 +568,8 @@ export const musicreg: EPR = async (info, data, send) => { scores[tmp_clid] = exscore; clflgs[tmp_clid] = cflg; } - } else { + } + else { names = score_top.names; scores = score_top.scores; clflgs = score_top.clflgs; diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 48dc19d..bbfefbf 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -1,8 +1,8 @@ -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 } from "../models/pcdata"; +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 { eisei_grade, eisei_grade_data, lightning_musicmemo, lightning_musicmemo_new, lightning_playdata, lightning_settings, lm_playdata, lm_settings, lm_settings_new, musicmemo_data, musicmemo_data_new } from "../models/lightning"; +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"; import { world_tourism } from "../models/worldtourism"; @@ -228,6 +228,8 @@ export const pccommon: EPR = async (info, data, send) => { deller_bonus: K.ATTR({ open: String(1) }), newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), expert_secret_full_open: {}, + eaorder_phase: K.ATTR({ phase: String(2) }), // TODO:: figure out what this does // + common_evnet: K.ATTR({ flg: String(-1) }), // TODO:: figure out what this does // system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), extra_boss_event: K.ATTR({ phase: String(U.GetConfig("hv_extraboss")) }), event1_phase: K.ATTR({ phase: String(U.GetConfig("hv_event")) }), @@ -251,6 +253,8 @@ export const pccommon: EPR = async (info, data, send) => { deller_bonus: K.ATTR({ open: String(1) }), newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), expert_secret_full_open: {}, + eaorder_phase: K.ATTR({ phase: String(2) }), // TODO:: figure out what this does // + common_evnet: K.ATTR({ flg: String(-1) }), // TODO:: figure out what this does // system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), extra_boss_event: K.ATTR({ phase: String(U.GetConfig("bo_extraboss")) }), event1_phase: K.ATTR({ phase: String(U.GetConfig("bo_event")) }), @@ -276,6 +280,8 @@ export const pccommon: EPR = async (info, data, send) => { deller_bonus: K.ATTR({ open: String(1) }), newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), // TODO:: verify // expert_secret_full_open: {}, + eaorder_phase: K.ATTR({ phase: String(2) }), // TODO:: figure out what this does // + common_evnet: K.ATTR({ flg: String(-1) }), // TODO:: figure out what this does // system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), extra_boss_event: K.ATTR({ phase: String(1) }), // TODO:: verify // event1_phase: K.ATTR({ phase: String(4) }), // TODO:: verify // @@ -298,17 +304,39 @@ export const pccommon: EPR = async (info, data, send) => { movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), vip_pass_black: {}, deller_bonus: K.ATTR({ open: String(1) }), - newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), + common_evnet: K.ATTR({ flg: String(-1) }), // TODO:: figure out what this does // system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), premium_area_news: K.ATTR({ open: String(1) }), premium_area_qpro: K.ATTR({ open: String(1) }), play_video: {}, + music_retry: {}, display_asio_logo: {}, lane_gacha: {}, tourism_booster: {}, ameto_event: {}, } break; + case 31: + result = { + ...result, + movie_agreement: K.ATTR({ version: String(1) }), + license: { + string: K.ITEM("bin", [0x00]), // TODO:: figure out what this does (alloc size: 600) // + }, + movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), + vip_pass_black: {}, + deller_bonus: K.ATTR({ open: String(1) }), + common_evnet: K.ATTR({ flg: String(-1) }), + system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), + premium_area_news: K.ATTR({ open: String(1) }), + premium_area_qpro: K.ATTR({ open: String(1) }), + play_video: {}, + music_retry: {}, + display_asio_logo: {}, + lane_gacha: {}, + tourism_booster: {}, + } + break; default: return send.deny(); @@ -326,6 +354,7 @@ export const pcreg: EPR = async (info, data, send) => { let pcdata: object; let lightning_settings: object; let lightning_playdata: object; + let lightning_custom: object; switch (version) { case 14: pcdata = GLD_pcdata; @@ -375,16 +404,25 @@ export const pcreg: EPR = async (info, data, send) => { pcdata = IIDX28_pcdata; lightning_playdata = lm_playdata; lightning_settings = lm_settings; + lightning_custom = lm_customdata; break; case 29: pcdata = IIDX29_pcdata; lightning_playdata = lm_playdata; lightning_settings = lm_settings_new; + lightning_custom = lm_customdata; break; case 30: pcdata = IIDX30_pcdata; lightning_playdata = lm_playdata; lightning_settings = lm_settings_new; + lightning_custom = lm_customdata; + break; + case 31: + pcdata = IIDX31_pcdata; + lightning_playdata = lm_playdata; + lightning_settings = lm_settings_new; + lightning_custom = lm_customdata; break; default: @@ -451,6 +489,17 @@ export const pcreg: EPR = async (info, data, send) => { $set: lightning_playdata, } ); + + await DB.Upsert( + refid, + { + collection: "lightning_custom", + version: version, + }, + { + $set: lightning_custom, + } + ); } return send.object( @@ -480,6 +529,8 @@ export const pcget: EPR = async (info, data, send) => { const lm_eisei_grade = await DB.Find(refid, { collection: "eisei_grade", version: version }); const lm_music_memo = await DB.Find(refid, { collection: "lightning_musicmemo", version: version }); const lm_music_memo_new = await DB.Find(refid, { collection: "lightning_musicmemo_new", version: version }); + const lm_music_filter = await DB.Find(refid, { collection: "lightning_musicfilter", version: version }); + let lm_custom: any = await DB.FindOne(refid, { collection: "lightning_custom", version: version }); if (_.isNil(pcdata)) return send.deny(); @@ -500,6 +551,21 @@ export const pcget: EPR = async (info, data, send) => { custom.disable_beginner_option = false; } + // migration // + if (version >= 28 && _.isNil(lm_custom)) { + await DB.Upsert(refid, + { + collection: "lightning_custom", + version: version, + }, + { + $set: lm_customdata, + } + ); + + lm_custom = lm_customdata; + } + const appendsettings = appendSettingConverter( custom.rank_folder, custom.clear_folder, @@ -515,7 +581,7 @@ export const pcget: EPR = async (info, data, send) => { custom.hide_iidxid, custom.disable_beginner_option, ); - let dArray = [], eArray = [], rArray = [], mArray = [], bArray = []; + let dArray = [], eArray = [], rArray = [], mArray = [], bArray = [], fArray = []; grade.forEach((res: grade) => { dArray.push([res.style, res.gradeId, res.maxStage, res.archive]); @@ -762,89 +828,114 @@ export const pcget: EPR = async (info, data, send) => { mirage_lib_sub = [], delabity_lab = null, delabity_lab_sub = [], + epo_res = null, + epo_res_sub = [], event_1 = null, event_1s = null, - evtArray = [], evtArray2 = []; + evtArray = [], evtArray2 = [], evtArray3 = []; - if (version == 21) { - if (!_.isNil(pcdata.st_album)) pcdata.st_album = NumArraytoHex(Base64toNumArray(pcdata.st_album)); + switch (version) { + case 21: + if (!_.isNil(pcdata.st_album)) pcdata.st_album = NumArraytoHex(Base64toNumArray(pcdata.st_album)); - 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" }); + 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)); - } - else if (version == 22) { - if (!_.isNil(pcdata.st_album)) pcdata.st_album = NumArraytoHex(Base64toNumArray(pcdata.st_album)); + boss1 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "boss1" }); + if (!_.isNil(boss1)) boss1.durability = NumArraytoHex(Base64toNumArray(boss1.durability)); + break; + case 22: + if (!_.isNil(pcdata.st_album)) pcdata.st_album = NumArraytoHex(Base64toNumArray(pcdata.st_album)); - 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" }); - if (_.isNil(pendual_talis)) pendual_talis = { point: 0 }; - else if (pendual_talis.point == "null" || _.isNil(pendual_talis.point)) pendual_talis = { point: 0 }; + 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" }); + if (_.isNil(pendual_talis)) pendual_talis = { point: 0 }; + else if (pendual_talis.point == "null" || _.isNil(pendual_talis.point)) pendual_talis = { point: 0 }; - qpronicle_chord = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_chord" }); - qpronicle_chord_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_name: "qpronicle_chord" }); - qpronicle_phase3 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_phase3" }); - } - else if (version == 23) { - if (!_.isNil(pcdata.st_tokimeki)) pcdata.st_tokimeki = NumArraytoHex(Base64toNumArray(pcdata.st_tokimeki)); + qpronicle_chord = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_chord" }); + qpronicle_chord_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_name: "qpronicle_chord" }); + qpronicle_phase3 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_phase3" }); + break; + case 23: + if (!_.isNil(pcdata.st_tokimeki)) pcdata.st_tokimeki = NumArraytoHex(Base64toNumArray(pcdata.st_tokimeki)); - 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" }); - mystery_line_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_name: "event2_data" }); - } - else if (version == 24) { - siege_sinobuz = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); - 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)); - }); + 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" }); + mystery_line_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_name: "event2_data" }); + break; + case 24: + siege_sinobuz = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); + 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)); + }); - 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)); - if (!_.isNil(ninja_shichikyoden)) - ninja_shichikyoden.enemy_damage = NumArraytoHex(Base64toNumArray(ninja_shichikyoden.enemy_damage)); - } - else if (version == 25) { - rush_cannonracer = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); - rush_cannonracer_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_name: "event1_data" }); - rush_cannonracer_sub.forEach((res) => { - res.is_clear = Number(res.is_clear); - }); - } - else if (version == 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)); + 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)); + if (!_.isNil(ninja_shichikyoden)) + ninja_shichikyoden.enemy_damage = NumArraytoHex(Base64toNumArray(ninja_shichikyoden.enemy_damage)); + break; + case 25: + rush_cannonracer = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" }); + rush_cannonracer_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_name: "event1_data" }); + rush_cannonracer_sub.forEach((res) => { + res.is_clear = Number(res.is_clear); + }); + break; + 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_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)); - }); + 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)); + }); - 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" }); - } - else { - event_1 = await DB.Find(refid, { collection: "event_1", version: version }); - event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version }); + 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" }); + break; + case 31: + let myepo_map = await DB.Find(refid, { collection: "event_1", version: version, event_data: "myepo_map" }); + let myepo_building = await DB.Find(refid, { collection: "event_1_sub", version: version, event_data: "myepo_building" }); + let myepo_shop = await DB.Find(refid, { collection: "event_1_sub", version: version, event_data: "myepo_shop" }); - if (event_1.length > 0) { - for (let evt of event_1) { - evtArray.push(evt); + myepo_map.forEach((res: any) => { + let data = { + ...res, + carryover_use: 0, + }; + + evtArray.push(data); + }); + + evtArray2 = myepo_building; + evtArray3 = myepo_shop; + + epo_res = await DB.FindOne(refid, { collection: "event_1", version: version, event_data: "epores" }); + epo_res_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_data: "epores_system" }); + break; + + default: + event_1 = await DB.Find(refid, { collection: "event_1", version: version }); + event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version }); + + if (event_1.length > 0) { + for (let evt of event_1) { + evtArray.push(evt); + } } - } - if (event_1s.length > 0) { - for (let evt of event_1s) { - evtArray2.push(evt); + if (event_1s.length > 0) { + for (let evt of event_1s) { + evtArray2.push(evt); + } } - } + break; } if (!_.isNil(pcdata.sp_mlist)) { @@ -854,155 +945,233 @@ export const pcget: EPR = async (info, data, send) => { pcdata.dp_clist = NumArraytoHex(Base64toNumArray(pcdata.dp_clist)); } - if (version >= 30 && lm_music_memo_new.length > 0) { - lm_music_memo_new.forEach((res) => { - let musicmemo_data: musicmemo_data_new = { - folder_idx: res.folder_idx, - folder_name: res.folder_name, - play_style: res.play_style, + if (version >= 30) { + if (lm_music_memo_new.length > 0) { + lm_music_memo_new.forEach((res) => { + let musicmemo_data: musicmemo_data_new = { + folder_idx: res.folder_idx, + folder_name: res.folder_name, + play_style: res.play_style, - music_ids: res.music_ids, - } + music_ids: res.music_ids, + } - mArray.push(musicmemo_data); - }); - mArray.sort((a: musicmemo_data_new, b: musicmemo_data_new): number => a.play_style - b.play_style || a.folder_idx - b.folder_idx); + mArray.push(musicmemo_data); + }); + mArray.sort((a: musicmemo_data_new, b: musicmemo_data_new): number => a.play_style - b.play_style || a.folder_idx - b.folder_idx); + } + + if (lm_music_filter.length > 0) { + lm_music_filter.forEach((res) => { + let musicfilter_data: musicfilter_data = { + play_style: res.play_style, + folder_id: res.folder_id, + filter_id: res.filter_id, + + is_valid: res.is_valid, + value0: res.value0, + value1: res.value1, + } + + fArray.push(musicfilter_data); + }); + fArray.sort((a: musicfilter_data, b: musicfilter_data): number => a.play_style - b.play_style || a.folder_id - b.folder_id); + } } - else if (version >= 27 && lm_music_memo.length > 0) { - lm_music_memo.forEach((res) => { - let musicmemo_data: musicmemo_data = { - music_idx: res.music_idx, - play_style: res.play_style, + else if (version >= 27) { + if (lm_music_memo.length > 0) { + lm_music_memo.forEach((res) => { + let musicmemo_data: musicmemo_data = { + music_idx: res.music_idx, + play_style: res.play_style, - music_id: res.music_id, - } + music_id: res.music_id, + } - mArray.push(musicmemo_data); - }); - mArray.sort((a: musicmemo_data, b: musicmemo_data): number => a.play_style - b.play_style || a.music_idx - b.music_idx); + mArray.push(musicmemo_data); + }); + mArray.sort((a: musicmemo_data, b: musicmemo_data): number => a.play_style - b.play_style || a.music_idx - b.music_idx); + } } - /*** TODO:: figure out how badges works - [save] - elements are below but get checks for id 0~12 - today_recommend (flg) - weekly_ranking (flg) - visitor (flg_id, flg) - notes_radar (flg_id, flg) [2] - world_tourism (flg) - event1 (flg_id, flg) [10] - arena (flg_id, flg) [2] - iidx_exam (flg) + /*** TODO:: figure out how badges works (following table is for EPOLIS) + [save] - element names are following below but get checks for id 0 ~ 16 + step_up [2] + today_recommend + weekly_ranking + visitor [2] + notes_radar [2] + tsujigiri + iidx_exam + world_tourism + event1 + arena [2] + event2 - [get] - category_id - up to 12 + [get] (starts from zero) + category_id - up to 16 badge_flg_id - - This can be up to 23 - - category_id: 0, 1 -> 23 - - category_id: 9 -> 9 - - category_id: 7, 10 -> 2 - badge_flg + - This can be up to 23 [category_id, badge_flg_id] + - 0 - 23 [djLevel] + - 1 - 23 [clear] + - 2 - 1 [grade] + - 3 - 1 [step_up] + - 4 - (none) + - 5 - (none) + - 6 - (none) + - 7 - 1 [visitor] + - 8 - 1 [notes_radar] + - 10 - (none) + - 11 - 1 + - 12 - (none) + - 13 - (none) [event] + - 14 - 1 + - 15 - (none) + - 16 - (none) [event2] + - 3001 - 9 + badge_flg (these are s64 - this may exceed max int value) + + - following codes are dummy code ***/ if (version >= 30 && badge.length > 0) { - let djLevel, clear, grade, visitor, notes_radar, event1; - djLevel = badge.filter((res) => res.category_name === "djLevel"); - djLevel.forEach((res) => { - bArray.push({ - id: 0, - flg_id: res.flg_id, - flg: res.flg, - }); - }); + let djLevel, clear, grade, step_up, visitor, notes_radar, event1, event2; + switch (version) { + case 30: + djLevel = badge.filter((res) => res.category_name === "djLevel"); + djLevel.forEach((res) => { + bArray.push({ + id: 0, + flg_id: res.flg_id, + flg: res.flg, + }); + }); - clear = badge.filter((res) => res.category_name === "clear"); - clear.forEach((res) => { - bArray.push({ - id: 1, - flg_id: res.flg_id, - flg: res.flg, - }); - }); - - grade = badge.filter((res) => res.category_name === "grade"); - grade.forEach((res) => { - bArray.push({ - id: 2, - flg_id: res.flg_id, - flg: res.flg, - }); - }); + clear = badge.filter((res) => res.category_name === "clear"); + clear.forEach((res) => { + bArray.push({ + id: 1, + flg_id: res.flg_id, + flg: res.flg, + }); + }); - // this keep sending back on save // - // possibly wrong category_id but at least doesn't show as new badges // - visitor = badge.filter((res) => res.category_name === "visitor"); - visitor.forEach((res) => { - bArray.push({ - id: 6, - flg_id: res.flg_id, - flg: res.flg, - }); - }); + grade = badge.filter((res) => res.category_name === "grade"); + grade.forEach((res) => { + bArray.push({ + id: 2, + flg_id: res.flg_id, + flg: res.flg, + }); + }); - notes_radar = badge.filter((res) => res.category_name === "notes_radar"); - notes_radar.forEach((res) => { - bArray.push({ - id: 7, - flg_id: res.flg_id, - flg: res.flg, - }); - }); + // this keep sending back on save // + // possibly wrong category_id but at least doesn't show as new badges // + visitor = badge.filter((res) => res.category_name === "visitor"); + visitor.forEach((res) => { + bArray.push({ + id: 6, + flg_id: res.flg_id, + flg: res.flg, + }); + }); - event1 = badge.filter((res) => res.category_name === "event1"); - event1.forEach((res) => { - bArray.push({ - id: 9, - flg_id: res.flg_id, - flg: res.flg, - }); - }); - } + notes_radar = badge.filter((res) => res.category_name === "notes_radar"); + notes_radar.forEach((res) => { + bArray.push({ + id: 7, + flg_id: res.flg_id, + flg: res.flg, + }); + }); - if (version == 24) { // migration // - if (_.isNil(pcdata.dr_sprank)) { - pcdata.dr_sprank = Array(15).fill(0); - pcdata.dr_sppoint = Array(15).fill(0); - pcdata.dr_dprank = Array(15).fill(0); - pcdata.dr_dppoint = Array(15).fill(0); + event1 = badge.filter((res) => res.category_name === "event1"); + event1.forEach((res) => { + bArray.push({ + id: 9, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + break; + case 31: + djLevel = badge.filter((res) => res.category_name === "djLevel"); + djLevel.forEach((res) => { + bArray.push({ + id: 0, + flg_id: res.flg_id, + flg: res.flg, + }); + }); - await DB.Upsert( - refid, - { - collection: "pcdata", - version: version, - }, - { - $set: pcdata, - } - ); - } - } - if (version == 26) { // migration // - if (_.isNil(pcdata.eb_bossorb0)) { - pcdata.eb_bossorb0 = 0; - pcdata.eb_bossorb1 = 0; - pcdata.eb_bossorb2 = 0; - pcdata.eb_bossorb3 = 0; - pcdata.eb_bossorb4 = 0; - pcdata.eb_bossorb5 = 0; - pcdata.eb_bossorb6 = 0; - pcdata.eb_bossorb7 = 0; - pcdata.eb_bossorb8 = 0; + clear = badge.filter((res) => res.category_name === "clear"); + clear.forEach((res) => { + bArray.push({ + id: 1, + flg_id: res.flg_id, + flg: res.flg, + }); + }); - await DB.Upsert( - refid, - { - collection: "pcdata", - version: version, - }, - { - $set: pcdata, - } - ); + grade = badge.filter((res) => res.category_name === "grade"); + grade.forEach((res) => { + bArray.push({ + id: 2, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + step_up = badge.filter((res) => res.category_name === "step_up"); + step_up.forEach((res) => { + bArray.push({ + id: 3, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + // this keep sending back on save // + // possibly wrong category_id but at least doesn't show as new badges // + visitor = badge.filter((res) => res.category_name === "visitor"); + visitor.forEach((res) => { + bArray.push({ + id: 7, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + notes_radar = badge.filter((res) => res.category_name === "notes_radar"); + notes_radar.forEach((res) => { + bArray.push({ + id: 8, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + event1 = badge.filter((res) => res.category_name === "event1"); + event1.forEach((res) => { + bArray.push({ + id: 13, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + event2 = badge.filter((res) => res.category_name === "event2"); + event2.forEach((res) => { + bArray.push({ + id: 16, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + break; + + default: + break; } } @@ -1011,14 +1180,17 @@ export const pcget: EPR = async (info, data, send) => { pcdata, lm_playdata, lm_settings, + lm_custom, mArray, dArray, eArray, + fArray, appendsettings, custom, rArray, evtArray, evtArray2, + evtArray3, boss1, link5, tricolettepark, @@ -1039,6 +1211,8 @@ export const pcget: EPR = async (info, data, send) => { mirage_lib_sub, delabity_lab, delabity_lab_sub, + epo_res, + epo_res_sub, wArray, bArray, shop_data, @@ -1081,6 +1255,7 @@ export const pctakeover: EPR = async (info, data, send) => { let pcdata: object; let lightning_settings: object; let lightning_playdata: object; + let lightning_custom: object; switch (version) { case 14: pcdata = GLD_pcdata; @@ -1130,16 +1305,25 @@ export const pctakeover: EPR = async (info, data, send) => { pcdata = IIDX28_pcdata; lightning_playdata = lm_playdata; lightning_settings = lm_settings; + lightning_custom = lm_customdata; break; case 29: pcdata = IIDX29_pcdata; lightning_playdata = lm_playdata; lightning_settings = lm_settings_new; + lightning_custom = lm_customdata; break; case 30: pcdata = IIDX30_pcdata; lightning_playdata = lm_playdata; lightning_settings = lm_settings_new; + lightning_custom = lm_customdata; + break; + case 31: + pcdata = IIDX31_pcdata; + lightning_playdata = lm_playdata; + lightning_settings = lm_settings_new; + lightning_custom = lm_customdata; break; default: @@ -1190,6 +1374,17 @@ export const pctakeover: EPR = async (info, data, send) => { $set: lightning_playdata, } ); + + await DB.Upsert( + refid, + { + collection: "lightning_custom", + version: version, + }, + { + $set: lightning_custom, + } + ); } return send.object( @@ -1230,10 +1425,15 @@ export const pcsave: EPR = async (info, data, send) => { const isTDJ = !(_.isNil($(data).element("lightning_play_data"))); const hasStepUpData = !(_.isNil($(data).element("step"))); const hasEventData = !(_.isNil($(data).element("event1"))) || !(_.isNil($(data).element("event_1"))); + const hasEvent2Data = !(_.isNil($(data).element("event2"))) || !(_.isNil($(data).element("event_2"))); const hasLanguageData = !(_.isNil($(data).element("language_setting"))); const hasWorldTourism = !(_.isNil($(data).element("world_tourism_data"))); + const hasTDJSettings = !(_.isNil($(data).element("lightning_setting"))); const hasMusicMemo = !(_.isNil($(data).element("music_memo"))); const hasTowerData = !(_.isNil($(data).element("tower_data"))); + const hasSkinData = !(_.isNil($(data).element("skin_equip"))); + const hasTDJSkinData = !(_.isNil($(data).element("tdjskin_equip"))); + const hasMusicFilter = !(_.isNil($(data).element("music_filter"))); const hasBadgeData = !(_.isNil($(data).element("badge"))); if (cltype == 0) pcdata.spnum += 1; @@ -1243,14 +1443,29 @@ export const pcsave: EPR = async (info, data, send) => { if (cltype == 0) lm_playdata.sp_num += 1; else lm_playdata.dp_num += 1; - lm_settings.headphone_vol = parseInt($(data).attr("lightning_setting").headphone_vol); - lm_settings.slider = $(data).element("lightning_setting").numbers("slider"); - lm_settings.resistance_sp_left = parseInt($(data).attr("lightning_setting").resistance_sp_left); - lm_settings.resistance_sp_right = parseInt($(data).attr("lightning_setting").resistance_sp_right); - lm_settings.resistance_dp_left = parseInt($(data).attr("lightning_setting").resistance_dp_left); - lm_settings.resistance_dp_right = parseInt($(data).attr("lightning_setting").resistance_dp_right); - lm_settings.light = $(data).element("lightning_setting").numbers("light"); - lm_settings.concentration = $(data).element("lightning_setting").number("concentration"); + if (hasTDJSettings) { + lm_settings.headphone_vol = parseInt($(data).attr("lightning_setting").headphone_vol); + lm_settings.slider = $(data).element("lightning_setting").numbers("slider"); + lm_settings.resistance_sp_left = parseInt($(data).attr("lightning_setting").resistance_sp_left); + lm_settings.resistance_sp_right = parseInt($(data).attr("lightning_setting").resistance_sp_right); + lm_settings.resistance_dp_left = parseInt($(data).attr("lightning_setting").resistance_dp_left); + lm_settings.resistance_dp_right = parseInt($(data).attr("lightning_setting").resistance_dp_right); + lm_settings.light = $(data).element("lightning_setting").numbers("light"); + lm_settings.concentration = $(data).element("lightning_setting").number("concentration"); + + await DB.Upsert( + refid, + { + collection: "lightning_settings", + version: version, + }, + { + $set: { + lm_settings, + } + } + ); + } } profile.total_pc += 1; @@ -2587,7 +2802,7 @@ export const pcsave: EPR = async (info, data, send) => { } // TODO:: fix event saving, these event savings hasn't fully tested // - if (!_.isNil($(data).element("event1"))) { + if (hasEventData) { let event_data = { last_select_map: parseInt($(data).attr("event1").last_select_map), hold_rice: parseInt($(data).attr("event1").hold_rice), @@ -2631,7 +2846,7 @@ export const pcsave: EPR = async (info, data, send) => { }); } - if (!_.isNil($(data).element("event2"))) { + if (hasEvent2Data) { let event_data = { play_num: parseInt($(data).attr("event2").play_num), chakra_point: parseInt($(data).attr("event2").chakra_point), @@ -2949,10 +3164,12 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.dr_sppoint = $(data).element("dj_rank").numbers("point"); pcdata.dr_dprank = $(data).element("dj_rank.1").numbers("rank"); pcdata.dr_dppoint = $(data).element("dj_rank.1").numbers("point"); - } else if ($(data).attr("dj_rank").style == "0") { + } + else if ($(data).attr("dj_rank").style == "0") { pcdata.dr_sprank = $(data).element("dj_rank").numbers("rank"); pcdata.dr_sppoint = $(data).element("dj_rank").numbers("point"); - } else if ($(data).attr("dj_rank").style == "1") { + } + else if ($(data).attr("dj_rank").style == "1") { pcdata.dr_dprank = $(data).element("dj_rank").numbers("rank"); pcdata.dr_dppoint = $(data).element("dj_rank").numbers("point"); } @@ -2971,14 +3188,14 @@ 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"))) { - pcdata.present_orb += parseInt($(data).attr("orb_data").present_orb); pcdata.orb += parseInt($(data).attr("orb_data").add_orb); + pcdata.present_orb += parseInt($(data).attr("orb_data").present_orb); } // skin_customize_flg (attr: skin_frame_flg, skin_bgm_flg) // // TODO:: fix event saving, these event savings hasn't fully tested // - if (!_.isNil($(data).element("event1"))) { + if (hasEventData) { pcdata.event_play_num += 1; let event_data = { @@ -3025,7 +3242,7 @@ export const pcsave: EPR = async (info, data, send) => { // skipping quiz_log as it doesn't display anywhere // } - if (!_.isNil($(data).element("event2"))) { + if (hasEvent2Data) { let event_data = { play_num: parseInt($(data).attr("event2").play_num), last_select_floor: parseInt($(data).attr("event2").last_select_floor), @@ -3162,6 +3379,10 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.s_visualization = parseInt($(data).attr().s_visualization); pcdata.d_visualization = parseInt($(data).attr().d_visualization); } + if (version >= 31) { + pcdata.s_classic_hispeed = parseInt($(data).attr().s_classic_hispeed); + pcdata.d_classic_hispeed = parseInt($(data).attr().d_classic_hispeed); + } if (cltype == 0) { pcdata.s_liflen = parseInt($(data).attr().s_lift); @@ -3235,7 +3456,8 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); - pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); + if (!_.isNil($(data).element("achievements").bigints("trophy"))) // unavailable since epolis // + pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); } if ($(data).attr("dj_rank.1").style == "1") { @@ -3262,9 +3484,16 @@ 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"))) { - pcdata.present_orb += parseInt($(data).attr("orb_data").present_orb); - pcdata.orb += parseInt($(data).attr("orb_data").add_orb); - pcdata.orb += parseInt($(data).attr("orb_data").reward_orb); + 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); + } + else { + pcdata.orb += parseInt($(data).attr("orb_data").add_orb); + pcdata.orb += parseInt($(data).attr("orb_data").reward_orb); + pcdata.present_orb += parseInt($(data).attr("orb_data").present_orb); + } } if (hasLanguageData) profile.language = parseInt($(data).attr("language_setting").language); @@ -3282,194 +3511,364 @@ export const pcsave: EPR = async (info, data, send) => { } if (hasEventData) { - if (version == 27) { - pcdata.event_play_num += 1; - pcdata.event_last_select_id = parseInt($(data).attr("event1").last_select_gym_id); + let event_data, event_sub_data; + switch (version) { + case 27: + pcdata.event_play_num += 1; + pcdata.event_last_select_id = parseInt($(data).attr("event1").last_select_gym_id); - $(data).element("event1").elements("gym_data").forEach((res) => { - let event_data = { - gym_id: res.attr().gym_id, - play_num: res.attr().play_num, - gauge_spirit: res.attr().gauge_spirit, - gauge_technique: res.attr().gauge_technique, - gauge_body: res.attr().gauge_body, - boss_attack_num: res.attr().boss_attack_num, - boss_damage: res.attr().boss_damage, - disp_lounge_list: res.attr().disp_lounge_list, - stb_type: res.attr().stb_type, - is_complete: res.number("is_complete"), - is_gauge_max: res.number("is_gauge_max"), - } - - DB.Upsert( - refid, - { - collection: "event_1", - version: version, - gym_id: event_data.gym_id - }, - { - $set: event_data, - }); - }); - } else if (version == 28) { - pcdata.event_play_num += 1; - pcdata.event_story_prog = parseInt($(data).attr("event_1").story_prog); - pcdata.event_last_select_id = parseInt($(data).attr("event_1").last_select_area_id); - pcdata.event_failed_num = parseInt($(data).attr("event_1").failed_num); - - $(data).element("event_1").elements("area_data").forEach((res) => { - let event_data = { - area_id: res.attr().area_id, - play_num: res.attr().play_num, - recipe_prog0: res.attr().recipe_prog0, - recipe_prog1: res.attr().recipe_prog1, - recipe_prog2: res.attr().recipe_prog2, - recipe_prog3: res.attr().recipe_prog3, - recipe_prog4: res.attr().recipe_prog4, - operation_num: res.attr().operation_num, - operation_prog: res.attr().operation_prog, - last_select_recipe: res.attr().last_select_recipe, - area_prog: res.attr().area_prog, - is_complete: res.number("is_complete"), - } - - DB.Upsert( - refid, - { - collection: "event_1", - version: version, - area_id: event_data.area_id - }, - { - $set: event_data, - }); - }); - } else if (version == 29) { - pcdata.event_play_num += 1; - pcdata.event_last_select_id = parseInt($(data).attr("event_1").last_select_platform_id); - pcdata.event_last_select_type = parseInt($(data).attr("event_1").last_select_platform_type); - - let event_data, event_sub_data; - $(data).element("event_1").elements("watch_data").forEach((res) => { - if (!(_.isNil(res.element("channel")))) { + $(data).element("event1").elements("gym_data").forEach((res) => { event_data = { - last_select_channel: res.attr().last_select_channel, - platform_id: res.attr().platform_id, - platform_prog: res.attr().platform_prog, + gym_id: res.attr().gym_id, play_num: res.attr().play_num, + gauge_spirit: res.attr().gauge_spirit, + gauge_technique: res.attr().gauge_technique, + gauge_body: res.attr().gauge_body, + boss_attack_num: res.attr().boss_attack_num, + boss_damage: res.attr().boss_damage, + disp_lounge_list: res.attr().disp_lounge_list, + stb_type: res.attr().stb_type, + is_complete: res.number("is_complete"), + is_gauge_max: res.number("is_gauge_max"), + } + + DB.Upsert( + refid, + { + collection: "event_1", + version: version, + gym_id: event_data.gym_id + }, + { + $set: event_data, + }); + }); + break; + case 28: + pcdata.event_play_num += 1; + pcdata.event_story_prog = parseInt($(data).attr("event_1").story_prog); + pcdata.event_last_select_id = parseInt($(data).attr("event_1").last_select_area_id); + pcdata.event_failed_num = parseInt($(data).attr("event_1").failed_num); + + $(data).element("event_1").elements("area_data").forEach((res) => { + event_data = { + area_id: res.attr().area_id, + play_num: res.attr().play_num, + recipe_prog0: res.attr().recipe_prog0, + recipe_prog1: res.attr().recipe_prog1, + recipe_prog2: res.attr().recipe_prog2, + recipe_prog3: res.attr().recipe_prog3, + recipe_prog4: res.attr().recipe_prog4, + operation_num: res.attr().operation_num, + operation_prog: res.attr().operation_prog, + last_select_recipe: res.attr().last_select_recipe, + area_prog: res.attr().area_prog, + is_complete: res.number("is_complete"), + } + + DB.Upsert( + refid, + { + collection: "event_1", + version: version, + area_id: event_data.area_id + }, + { + $set: event_data, + }); + }); + break; + case 29: + pcdata.event_play_num += 1; + pcdata.event_last_select_id = parseInt($(data).attr("event_1").last_select_platform_id); + pcdata.event_last_select_type = parseInt($(data).attr("event_1").last_select_platform_type); + + $(data).element("event_1").elements("watch_data").forEach((res) => { + if (!(_.isNil(res.element("channel")))) { + event_data = { + last_select_channel: res.attr().last_select_channel, + platform_id: res.attr().platform_id, + platform_prog: res.attr().platform_prog, + play_num: res.attr().play_num, + }; + + event_sub_data = { + platform_id: res.attr().platform_id, + channel_id: res.attr("channel").channel_id, + gauge: res.attr("channel").gauge, + channel_play_num: res.attr("channel").play_num, + is_complete: res.element("channel").number("is_complete"), + } + } else { + event_data = { + last_select_channel: res.attr().last_select_channel, + platform_id: res.attr().platform_id, + platform_prog: res.attr().platform_prog, + play_num: res.attr().play_num, + } + + event_sub_data = { + platform_id: res.attr().platform_id, + channel_id: 0, + gauge: 0, + channel_play_num: 0, + is_complete: 0, + } + } + + DB.Upsert(refid, + { + collection: "event_1", + version: version, + platform_id: event_data.platform_id + }, + { + $set: event_data, + } + ); + + DB.Upsert(refid, + { + collection: "event_1_sub", + version: version, + platform_id: event_sub_data.platform_id, + channel_id: event_sub_data.channel_id, + }, + { + $set: event_sub_data, + } + ); + }); + break; + case 30: + pcdata.event_play_num += 1; + pcdata.event_last_select_id = parseInt($(data).attr("event_1").last_select_flyer_id); + + $(data).element("event_1").elements("flyer_data").forEach((res) => { + if (!(_.isNil(res.element("genre_data")))) { + event_data = { + last_select_genre: res.attr().last_select_genre, + flyer_id: res.attr().flyer_id, + flyer_prog: res.attr().flyer_prog, + play_num: res.attr().play_num, + skill_param: res.attr().skill_param, + }; + + event_sub_data = { + flyer_id: res.attr().flyer_id, + genre_id: res.element("genre_data").attr().genre_id, + gauge: res.element("genre_data").attr().gauge, + genre_playnum: res.element("genre_data").attr().play_num, + is_complete: res.element("genre_data").number("is_complete"), + } + } else { + event_data = { + last_select_genre: res.attr().last_select_genre, + flyer_id: res.attr().flyer_id, + flyer_prog: res.attr().flyer_prog, + play_num: res.attr().play_num, + skill_param: res.attr().skill_param, + }; + + event_sub_data = { + flyer_id: res.attr().flyer_id, + genre_id: 0, + gauge: 0, + genre_playnum: 0, + is_complete: 0, + } + } + + DB.Upsert(refid, + { + collection: "event_1", + version: version, + flyer_id: event_data.flyer_id + }, + { + $set: event_data, + } + ); + + DB.Upsert(refid, + { + collection: "event_1_sub", + version: version, + flyer_id: event_sub_data.flyer_id, + genre_id: event_sub_data.genre_id, + }, + { + $set: event_sub_data, + } + ); + }); + break; + case 31: + pcdata.event_play_num += 1; + pcdata.event_last_select_id = parseInt($(data).attr("event_1").last_select_map_id); + pcdata.event_skip = false; + + if (!_.isNil($(data).element("event_1").element("is_skip"))) { + pcdata.event_skip = true; + } + + let mapArray = []; + $(data).element("event_1").elements("map_data").forEach((res) => { + let map_id = res.attr().map_id; + + let buildingArray = []; + res.elements("building_data").forEach((res) => { + let building_data = { + map_id, + + pos: res.attr().pos, + building: res.attr().building, + use_tile: res.attr().use_tile, + } + + buildingArray.push(building_data); + }); + + let shopArray = []; + res.elements("shop_data").forEach((res) => { + let shop_data = { + map_id, + + reward_id: res.attr().reward_id, + prog: res.attr().prog, + } + + shopArray.push(shop_data); + }); + + let musicArray = []; + res.elements("music").forEach((res) => { + let music_data = { + music_id: res.attr().music_id, + note_id: res.attr().note_id, + } + + musicArray.push(music_data); + }); // these are saved but will not used for now // + + let map_data = { + map_id, + + play_num: res.attr().play_num, + play_num_uc: res.attr().play_num_uc, + last_select_pos: res.attr().last_select_pos, + map_prog: res.attr().map_prog, + gauge: res.attr().gauge, + tile_num: res.attr().tile_num, + metron_total_get: res.attr().metron_total_get, + metron_total_use: res.attr().metron_total_use, + bank_date: res.attr().bank_date, + grade_bonus: res.attr().grade_bonus, + end_bonus: res.attr().end_bonus, + fbonus: res.attr().fbonus, }; - event_sub_data = { - platform_id: res.attr().platform_id, - channel_id: res.attr("channel").channel_id, - gauge: res.attr("channel").gauge, - channel_play_num: res.attr("channel").play_num, - is_complete: res.element("channel").number("is_complete"), - } - } else { - event_data = { - last_select_channel: res.attr().last_select_channel, - platform_id: res.attr().platform_id, - platform_prog: res.attr().platform_prog, - play_num: res.attr().play_num, - } + mapArray.push([map_data, buildingArray, shopArray, musicArray]); + }); - event_sub_data = { - platform_id: res.attr().platform_id, - channel_id: 0, - gauge: 0, - channel_play_num: 0, - is_complete: 0, - } - } + mapArray.forEach((res) => { + // map_data // + DB.Upsert(refid, { + collection: "event_1", + version: version, + event_data: "myepo_map", + map_id: res[0].map_id, + }, + { + $set: res[0], + }); - DB.Upsert(refid, + // building_data // + res[1].forEach((res) => { + DB.Upsert(refid, { + collection: "event_1_sub", + version: version, + event_data: "myepo_building", + map_id: res.map_id, + pos: res.pos, + }, + { + $set: res, + }); + }); + + // shop_data // + res[2].forEach((res) => { + DB.Upsert(refid, { + collection: "event_1_sub", + version: version, + event_data: "myepo_shop", + map_id: res.map_id, + reward_id: res.reward_id, + }, + { + $set: res, + }); + }); + + // music // + res[3].forEach((res) => { + DB.Upsert(refid, { + collection: "event_1_sub", + version: version, + event_data: "myepo_music", + }, + { + $set: res, + }); + }); + }); + break; + + default: + break; + } + } + + if (hasEvent2Data) { + switch (version) { + case 31: + // TODO:: figure out pack_id, pack_flg, play_pack, erosion_play_num, erosion5_clear12_num // + await DB.Upsert(refid, { collection: "event_1", version: version, - platform_id: event_data.platform_id + event_data: "epores", }, { - $set: event_data, + $set: { + event_play_num: $(data).attr("event_2").event_play_num, + after_play_num: $(data).attr("event_2").after_play_num, + last_select_system_id: $(data).attr("event_2").last_select_system_id, + gate_key: $(data).attr("event_2").gate_key, + after_gauge: $(data).attr("event_2").after_gauge, + last_select_erosion_level: $(data).attr("event_2").last_select_erosion_level, + } } ); - DB.Upsert(refid, - { + $(data).element("event_2").elements("system_data").forEach((res) => { + DB.Upsert(refid, { collection: "event_1_sub", version: version, - platform_id: event_sub_data.platform_id, - channel_id: event_sub_data.channel_id, + event_data: "epores_system", + system_id: res.attr().system_id, }, - { - $set: event_sub_data, - } - ); - }); - } else if (version == 30) { - pcdata.event_play_num += 1; - pcdata.event_last_select_id = parseInt($(data).attr("event_1").last_select_flyer_id); - - let event_data, event_sub_data; - $(data).element("event_1").elements("flyer_data").forEach((res) => { - if (!(_.isNil(res.element("genre_data")))) { - event_data = { - last_select_genre: res.attr().last_select_genre, - flyer_id: res.attr().flyer_id, - flyer_prog: res.attr().flyer_prog, - play_num: res.attr().play_num, - skill_param: res.attr().skill_param, - }; - - event_sub_data = { - flyer_id: res.attr().flyer_id, - genre_id: res.element("genre_data").attr().genre_id, - gauge: res.element("genre_data").attr().gauge, - genre_playnum: res.element("genre_data").attr().play_num, - is_complete: res.element("genre_data").number("is_complete"), - } - } else { - event_data = { - last_select_genre: res.attr().last_select_genre, - flyer_id: res.attr().flyer_id, - flyer_prog: res.attr().flyer_prog, - play_num: res.attr().play_num, - skill_param: res.attr().skill_param, - }; - - event_sub_data = { - flyer_id: res.attr().flyer_id, - genre_id: 0, - gauge: 0, - genre_playnum: 0, - is_complete: 0, - } - } - - DB.Upsert(refid, - { - collection: "event_1", - version: version, - flyer_id: event_data.flyer_id - }, - { - $set: event_data, - } - ); - - DB.Upsert(refid, - { - collection: "event_1_sub", - version: version, - flyer_id: event_sub_data.flyer_id, - genre_id: event_sub_data.genre_id, - }, - { - $set: event_sub_data, - } - ); - }); + { + $set: { + play_num: res.attr().play_num, + unlock_prog: res.attr().unlock_prog, + system_prog: res.attr().system_prog, + gauge: res.attr().gauge, + }, + }); + }); + break; } } @@ -3516,7 +3915,8 @@ export const pcsave: EPR = async (info, data, send) => { }, }); }); - } else if (version >= 27) { + } + else if (version >= 27) { $(data).element("music_memo").elements("music").forEach((res) => { DB.Upsert( refid, @@ -3545,92 +3945,217 @@ export const pcsave: EPR = async (info, data, send) => { let badge_data = []; let badge = $(data).element("badge"); - 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) => { + if (version == 30) { + if (!(_.isNil(badge.element("today_recommend")))) { let badgeInfo = { - category_id: "visitor", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), + category_id: "today_recommend", + flg_id: 0, + flg: parseInt(badge.element("today_recommend").attr().flg), }; badge_data.push(badgeInfo); - }); - } + } - if (!(_.isNil(badge.element("notes_radar")))) { - badge.elements("notes_radar").forEach((res) => { + if (!(_.isNil(badge.element("weekly_ranking")))) { let badgeInfo = { - category_id: "notes_radar", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), + category_id: "weekly_ranking", + flg_id: 0, + flg: parseInt(badge.element("weekly_ranking").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), - }; + 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); - } + badge_data.push(badgeInfo); + }); + } - if (!(_.isNil(badge.element("event1")))) { - badge.elements("event1").forEach((res) => { + 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: "event1", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), + category_id: "world_tourism", + flg_id: 0, + flg: parseInt(badge.element("world_tourism").attr().flg), }; badge_data.push(badgeInfo); - }); - } + } - if (!(_.isNil(badge.element("arena")))) { - badge.elements("arena").forEach((res) => { + 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: "arena", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), + 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), + }; - 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); + }); + } - 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); + }); + } } badge_data.forEach((res) => { @@ -3649,6 +4174,124 @@ export const pcsave: EPR = async (info, data, send) => { }); }); } + + if (hasMusicFilter) { + $(data).element("music_filter").elements("folder").forEach((res) => { + DB.Upsert( + refid, + { + collection: "lightning_musicmemo", + version: version, + play_style: parseInt(res.attr().play_style), + folder_id: parseInt(res.attr().folder_id), + filter_id: parseInt(res.attr().filter_id), + }, + { + $set: { + is_valid: res.bool("is_valid"), + value0: parseInt(res.attr().value0), + value1: parseInt(res.attr().value1), + }, + }); + }); + } + + if (hasSkinData) { + let skinData = $(data).elements("skin_equip"); + let note_burst, bomb_size, turntable, judge_font, + note_skin, note_size, lane_cover, pacemaker_cover, + lift_cover, note_beam, note_beam_size, full_combo_splash, frame; + + skinData.forEach((res) => { + switch (parseInt(res.attr().skin_id)) { + case 1: + note_burst = parseInt(res.attr().skin_no); + break; + case 2: + bomb_size = parseInt(res.attr().skin_no); + break; + case 3: + turntable = parseInt(res.attr().skin_no); + break; + case 4: + judge_font = parseInt(res.attr().skin_no); + break; + case 5: + note_skin = parseInt(res.attr().skin_no); + break; + case 6: + note_size = parseInt(res.attr().skin_no); + break; + + case 13: + lane_cover = parseInt(res.attr().skin_no); + break; + case 14: + pacemaker_cover = parseInt(res.attr().skin_no); + break; + case 15: + lift_cover = parseInt(res.attr().skin_no); + break; + case 16: + note_beam = parseInt(res.attr().skin_no); + break; + case 17: + note_beam_size = parseInt(res.attr().skin_no); + break; + case 18: + full_combo_splash = parseInt(res.attr().skin_no); + break; + case 19: + frame = parseInt(res.attr().skin_no); + break; + } + }); + + custom.note_burst = note_burst; + custom.bomb_size = bomb_size; + custom.turntable = turntable; + custom.judge_font = judge_font; + custom.note_skin = note_skin; + custom.note_size = note_size; + + custom.lane_cover = lane_cover; + custom.pacemaker_cover = pacemaker_cover; + custom.lift_cover = lift_cover; + custom.note_beam = note_beam; + custom.note_beam_size = note_beam_size; + custom.full_combo_splash = full_combo_splash; + custom.frame = frame; + } + + if (isTDJ && hasTDJSkinData) { + let skinData = $(data).elements("tdjskin_equip"); + let premium_skin; + let premium_bg; + + skinData.forEach((res) => { + switch (parseInt(res.attr().skin_id)) { + case 0: + premium_skin = parseInt(res.attr().skin_no); + break; + case 1: + premium_bg = parseInt(res.attr().skin_no); + break; + } + }); + + await DB.Upsert( + refid, + { + collection: "lightning_custom", + version: version, + }, + { + $set: { + premium_skin, + premium_bg, + } + }); + } } await DB.Upsert( diff --git a/iidx@asphyxia/handlers/webui.ts b/iidx@asphyxia/handlers/webui.ts index 37217b8..71e3d71 100644 --- a/iidx@asphyxia/handlers/webui.ts +++ b/iidx@asphyxia/handlers/webui.ts @@ -2,6 +2,7 @@ import { profile } from "../models/profile"; import { rival } from "../models/rival"; import { custom } from "../models/custom"; import { score, old_score } from "../models/score"; +import { lightning_custom } from "../models/lightning"; export const updateRivalSettings = async (data) => { let update_array = []; @@ -238,18 +239,20 @@ export const updateCustomSettings = async (data) => { rival_played_folder: StoB(data.rival_played_folder), hide_iidxid: StoB(data.hide_iidxid), disable_beginner_option: StoB(data.disable_beginner_option), - + qpro_head: parseInt(data.qpro_head), qpro_hair: parseInt(data.qpro_hair), qpro_face: parseInt(data.qpro_face), qpro_hand: parseInt(data.qpro_hand), qpro_body: parseInt(data.qpro_body), + qpro_back: parseInt(data.qpro_back), } await DB.Upsert(data.refid, { collection: "custom", version: parseInt(data.version) - }, { + }, + { $set: customize }); @@ -263,14 +266,39 @@ export const updateCustomSettings = async (data) => { } }); } + + if (data.version > 27) { + await DB.Upsert(data.refid, { + collection: "lightning_custom", + version: parseInt(data.version) + }, + { + $set: { + premium_skin: parseInt(data.lm_skin), + premium_bg: parseInt(data.lm_bg), + } + }); + } }; -export const importScoreData = async (data) => { - if (_.isEmpty(data.data)) return; +export const importScoreData = async (data, send: WebUISend) => { + if (_.isEmpty(data.data)) { + console.error("[Score Importer] Supplied data is empty"); + return send.error(400, "Empty data"); + } - let content = JSON.parse(data.data); - let version = content.version; - let count = content.count; + let content = null; + let version = 0; + let count = 0; + try { + content = JSON.parse(data.data); + version = content.version; + count = content.count; + } + catch { + console.error("[Score Importer] Invaild data has been supplied"); + return send.error(400, "Invalid data"); + } switch (version) { case 1: @@ -352,7 +380,8 @@ export const importScoreData = async (data) => { break; default: - break; + console.error("[Score Importer] Unregistered score data version"); + return send.error(400, "Invalid data version"); } } @@ -361,6 +390,8 @@ export const exportScoreData = async (data, send: WebUISend) => { collection: "score" }); + if (score == null) return send.error(400, "No data"); + let result = { version: 2, count: score.length, diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 022b752..3e67f21 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -99,8 +99,8 @@ export function register() { default: "http://localhost/" }); R.Config("Eisei", { - name: "Eisei Dan Courses", - desc: "Enable EISEI DAN Courses", + name: "Eisei Grade Courses", + desc: "Enable EISEI/KIWAMI Grade Courses", type: "boolean", default: true, }); @@ -458,11 +458,63 @@ export function register() { default: 3, }); - // TODO:: Reflect data when version dropdown menu has been changed // - R.WebUIEvent("updateIIDXRival", updateRivalSettings); - R.WebUIEvent("updateIIDXCustom", updateCustomSettings); - R.WebUIEvent("importScoreData", importScoreData); - R.WebUIEvent("exportScoreData", exportScoreData); + // EPOLIS // + R.Config("ep_event", { + name: "Event Phase (EP)", + desc: "MY POLIS DESIGNER / EPOLIS RESTORATION", + type: "integer", + default: 2, + }); + R.Config("ep_event1", { + name: "MY POLIS DESIGNER", + desc: "MY POLIS DESIGNER Phase", + type: "integer", + default: 3, + }); + R.Config("ep_event2", { + name: "EPOLIS RESTORATION", + desc: "EPOLIS RESTORATION Phase", + type: "integer", + default: 3, + }); + R.Config("ep_extraboss", { + name: "EPOLIS SINGULARITY", + desc: "EPOLIS SINGULARITY Phase", + type: "integer", + default: 3, + }); + + // TODO:: Make a list of customize items // + R.WebUIEvent("iidxGetProfile", async (data, send: WebUISend) => { + const pcdata = await DB.FindOne(data.refid, { + collection: "pcdata", + version: parseInt(data.version), + }); + + return send.json({ + pcdata, + }); + }); + R.WebUIEvent("iidxGetSetting", async (data, send: WebUISend) => { + const custom = await DB.FindOne(data.refid, { + collection: "custom", + version: parseInt(data.version), + }); + + const lm_custom = await DB.FindOne(data.refid, { + collection: "lightning_custom", + version: parseInt(data.version), + }); + + return send.json({ + custom, + lm_custom, + }); + }); + R.WebUIEvent("iidxUpdateRival", updateRivalSettings); + R.WebUIEvent("iidxUpdateCustom", updateCustomSettings); + R.WebUIEvent("iidxImportScoreData", importScoreData); + R.WebUIEvent("iidxExportScoreData", exportScoreData); const MultiRoute = (method: string, handler: EPR | boolean) => { R.Route(`${method}`, handler); @@ -476,6 +528,7 @@ export function register() { R.Route(`IIDX28${method}`, handler); R.Route(`IIDX29${method}`, handler); R.Route(`IIDX30${method}`, handler); + R.Route(`IIDX31${method}`, handler); }; MultiRoute("pc.common", pccommon); diff --git a/iidx@asphyxia/models/custom.ts b/iidx@asphyxia/models/custom.ts index 7e6feb3..a0fd75c 100644 --- a/iidx@asphyxia/models/custom.ts +++ b/iidx@asphyxia/models/custom.ts @@ -25,6 +25,10 @@ export interface custom { skin_customize_flg: number[]; + note_size: number; // epolis // + lift_cover: number; + note_beam_size: number; + // appendsettings rank_folder: boolean; clear_folder: boolean; @@ -46,6 +50,7 @@ export interface custom { qpro_face: number; qpro_hand: number; qpro_body: number; + qpro_back: number; // epolis // // qpro_secret (heroic verse) // qpro_secret_head: string[]; @@ -53,6 +58,7 @@ export interface custom { qpro_secret_face: string[]; qpro_secret_hand: string[]; qpro_secret_body: string[]; + qpro_secret_back: string[]; // epolis // } export const default_custom = { @@ -77,6 +83,10 @@ export const default_custom = { skin_customize_flg: Array(3).fill(-1), + note_size: 0, + lift_cover: 0, + note_beam_size: 0, + rank_folder: true, clear_folder: true, diff_folder: true, @@ -96,10 +106,12 @@ export const default_custom = { qpro_face: 0, qpro_hand: 0, qpro_body: 0, + qpro_back: 0, qpro_secret_head: Array(7).fill("-1"), qpro_secret_hair: Array(7).fill("-1"), qpro_secret_face: Array(7).fill("-1"), qpro_secret_hand: Array(7).fill("-1"), qpro_secret_body: Array(7).fill("-1"), + qpro_secret_back: Array(7).fill("-1"), } diff --git a/iidx@asphyxia/models/lightning.ts b/iidx@asphyxia/models/lightning.ts index 83c7832..0c7a134 100644 --- a/iidx@asphyxia/models/lightning.ts +++ b/iidx@asphyxia/models/lightning.ts @@ -12,7 +12,10 @@ export interface lightning_settings { slider: number[]; light: number[]; concentration: number; -}; + + keyboard_kind: number; // epolis // + brightness: number; +} export interface lightning_playdata { collection: "lightning_playdata"; @@ -21,7 +24,15 @@ export interface lightning_playdata { sp_num: number; dp_num: number; -}; +} + +export interface lightning_custom { + collection: "lightning_custom"; + version: number; + + premium_skin: number; + premium_bg: number; +} export interface eisei_grade { collection: "eisei_grade"; @@ -84,6 +95,27 @@ export interface musicmemo_data_new { music_ids: number[]; } +export interface lightning_musicfilter { + collection: "lightning_musicfilter"; + version: number; + + play_style: number; + folder_id: number; + filter_id: number; + is_valid: boolean; + value0: number; + value1: number; +} + +export interface musicfilter_data { + play_style: number; + folder_id: number; + filter_id: number; + is_valid: boolean; + value0: number; + value1: number; +} + export const lm_playdata = { sp_num: 0, dp_num: 0, @@ -113,4 +145,12 @@ export const lm_settings_new = { slider: [7, 7, 7, 7, 7, 15, 15], light: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], concentration: 0, + + keyboard_kind: 10, // epolis // + brightness: 2, +} + +export const lm_customdata = { + premium_skin: 0, // Icons // + premium_bg: 0, // Background (epolis) // } diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 6fd3a10..325c158 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -33,6 +33,7 @@ export interface pcdata { fcombo: number[]; ngrade: number; // attribute (BISTROVER) // rtype: number; // attribute (Heroic Verse) // + player_kind: number; // attribute (EPOLIS) // gpos: number; s_sorttype: number; @@ -89,13 +90,15 @@ export interface pcdata { d_timing_split: number; s_visualization: number; d_visualization: number; + s_classic_hispeed: number; // EPOLIS // + d_classic_hispeed: number; secret_flg1: string[]; // secret (Heroic Verse) // secret_flg2: string[]; secret_flg3: string[]; secret_flg4: string[]; - leggendaria_flg1: string[]; // leggendaria (bistrover) // + leggendaria_flg1: string[]; // leggendaria (BISTROVER) // dr_sprank: number[]; // djrank (Heroic Verse) // dr_sppoint: number[]; @@ -113,9 +116,9 @@ export interface pcdata { achi_weeklynum: number; achi_trophy: string[]; // for somewhat reason save throws lots of elements but sending it as-is throws error // - deller: number; // in-game currency (heroic verse) // - orb: number; - present_orb: number; + deller: number; // in-game currency (Lincle) // + orb: number; // v-disc (SPADA) // + present_orb: number; // v-disc but not sure what it does (Rootage) // sgid: number; // grade // dgid: number; @@ -128,9 +131,9 @@ export interface pcdata { jewel_bnum: number[]; party: number[]; - jpoint: number; // jpoint (lincle) // + jpoint: number; // jpoint (Lincle) // - st_sp_ach: number; // step (lincle) // + st_sp_ach: number; // step (Lincle) // st_sp_dif: number; st_dp_ach: number; st_dp_dif: number; @@ -195,6 +198,7 @@ export interface pcdata { event_last_select_type: number; // CastHour // event_story_prog: number; // BISTROVER // event_failed_num: number; + event_skip: boolean; type: number[]; // history (Lincle) // time: number[]; @@ -1301,11 +1305,6 @@ export const IIDX29_pcdata = { leggendaria_flg1: Array(3).fill("-1"), - dr_sprank: Array(15).fill(0), - dr_sppoint: Array(15).fill(0), - dr_dprank: Array(15).fill(0), - dr_dppoint: Array(15).fill(0), - nr_spradar: Array(6).fill(0), nr_dpradar: Array(6).fill(0), @@ -1457,3 +1456,118 @@ export const IIDX30_pcdata = { event_play_num: 0, event_last_select_id: -1, } + +export const IIDX31_pcdata = { + version: 31, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + mode: 0, + pmode: 0, + ngrade: 0, + rtype: 0, + player_kind: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + gpos: 0, + s_sorttype: 0, + d_sorttype: 0, + s_pace: 0, + d_pace: 0, + s_gno: 0, + d_gno: 0, + s_sub_gno: 0, + d_sub_gno: 0, + s_gtype: 0, + d_gtype: 0, + s_sdlen: 0, + d_sdlen: 0, + s_sdtype: 0, + d_sdtype: 0, + s_timing: 0, + d_timing: 0, + s_notes: 0, + d_notes: 0, + s_judge: 0, + d_judge: 0, + s_judgeAdj: 0, + d_judgeAdj: 0, + s_hispeed: 0, + d_hispeed: 0, + s_liflen: 0, + d_liflen: 0, + s_disp_judge: 0, + d_disp_judge: 0, + s_opstyle: 0, + d_opstyle: 0, + s_graph_score: 0, + d_graph_score: 0, + s_auto_scrach: 0, + d_auto_scrach: 0, + s_gauge_disp: 0, + d_gauge_disp: 0, + s_lane_brignt: 0, + d_lane_brignt: 0, + s_camera_layout: 0, + d_camera_layout: 0, + s_ghost_score: 0, + d_ghost_score: 0, + s_tsujigiri_disp: 0, + d_tsujigiri_disp: 0, + s_auto_adjust: 0, + d_auto_adjust: 0, + s_timing_split: 0, + d_timing_split: 0, + s_visualization: 0, + d_visualization: 0, + s_classic_hispeed: 0, + d_classic_hispeed: 0, + + secret_flg1: Array(3).fill("-1"), + secret_flg2: Array(3).fill("-1"), + secret_flg3: Array(3).fill("-1"), + secret_flg4: Array(3).fill("-1"), + + leggendaria_flg1: Array(3).fill("-1"), + + tourism_secret_flg1: Array(3).fill("-1"), + tourism_secret_flg2: Array(3).fill("-1"), + + nr_spradar: Array(6).fill(0), + nr_dpradar: Array(6).fill(0), + + st_enemy_damage: 0, + st_progress: 0, + st_total_point: 0, + st_enemy_defeat_flg: 0, + st_is_track_ticket: false, + st_sp_level: 0, + st_dp_level: 0, + st_sp_fluctuation: 0, + st_dp_fluctuation: 0, + st_mission_clear_num: 0, + st_sp_mplay: 0, + st_dp_mplay: 0, + st_tips_read_list: 0, + + sgid: -1, + dgid: -1, + + achi_lastweekly: 0, + achi_pack: 0, + achi_packcomp: 0, + achi_rivalcrush: 0, + achi_visitflg: 0, + achi_weeklynum: 0, + + deller: 0, + orb: 0, + present_orb: 0, + + event_play_num: 0, + event_last_select_id: -1, + event_skip: false, +} diff --git a/iidx@asphyxia/models/score.ts b/iidx@asphyxia/models/score.ts index 3b08c9d..6f51f58 100644 --- a/iidx@asphyxia/models/score.ts +++ b/iidx@asphyxia/models/score.ts @@ -36,4 +36,4 @@ export interface old_score { option_1: number; option_2: number; -} \ No newline at end of file +} diff --git a/iidx@asphyxia/pug/KDZ/pcget.pug b/iidx@asphyxia/pug/KDZ/pcget.pug index 0bef298..820e22d 100644 --- a/iidx@asphyxia/pug/KDZ/pcget.pug +++ b/iidx@asphyxia/pug/KDZ/pcget.pug @@ -4,7 +4,7 @@ pc(status="0") - for (let d of dArray) g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]} ex - skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 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) diff --git a/iidx@asphyxia/pug/LDJ/21pcget.pug b/iidx@asphyxia/pug/LDJ/21pcget.pug index 55c74aa..2037923 100644 --- a/iidx@asphyxia/pug/LDJ/21pcget.pug +++ b/iidx@asphyxia/pug/LDJ/21pcget.pug @@ -21,7 +21,7 @@ IIDX21pc(status="0") 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]} - skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 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) diff --git a/iidx@asphyxia/pug/LDJ/22pcget.pug b/iidx@asphyxia/pug/LDJ/22pcget.pug index 761237a..75531ff 100644 --- a/iidx@asphyxia/pug/LDJ/22pcget.pug +++ b/iidx@asphyxia/pug/LDJ/22pcget.pug @@ -21,7 +21,7 @@ IIDX22pc(status="0") 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]} - skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 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) diff --git a/iidx@asphyxia/pug/LDJ/23pcget.pug b/iidx@asphyxia/pug/LDJ/23pcget.pug index 2be7c0e..ae1a311 100644 --- a/iidx@asphyxia/pug/LDJ/23pcget.pug +++ b/iidx@asphyxia/pug/LDJ/23pcget.pug @@ -22,7 +22,7 @@ IIDX23pc(status="0") 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]} - skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 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) diff --git a/iidx@asphyxia/pug/LDJ/24pcget.pug b/iidx@asphyxia/pug/LDJ/24pcget.pug index 20a6438..42e7828 100644 --- a/iidx@asphyxia/pug/LDJ/24pcget.pug +++ b/iidx@asphyxia/pug/LDJ/24pcget.pug @@ -23,7 +23,7 @@ IIDX24pc(status="0") 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]} - skin(__type="s16" __count="17") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 0 0 0 + skin(__type="s16" __count="17") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 0 0 0 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) diff --git a/iidx@asphyxia/pug/LDJ/25pcget.pug b/iidx@asphyxia/pug/LDJ/25pcget.pug index 9003963..769253c 100644 --- a/iidx@asphyxia/pug/LDJ/25pcget.pug +++ b/iidx@asphyxia/pug/LDJ/25pcget.pug @@ -23,7 +23,7 @@ IIDX25pc(status="0") 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]} - skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 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) diff --git a/iidx@asphyxia/pug/LDJ/26pcget.pug b/iidx@asphyxia/pug/LDJ/26pcget.pug index d2cd3ff..3764f7b 100644 --- a/iidx@asphyxia/pug/LDJ/26pcget.pug +++ b/iidx@asphyxia/pug/LDJ/26pcget.pug @@ -24,7 +24,7 @@ IIDX26pc(status="0") 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]} - skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 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) diff --git a/iidx@asphyxia/pug/LDJ/27pcget.pug b/iidx@asphyxia/pug/LDJ/27pcget.pug index 7474f4e..fe85483 100644 --- a/iidx@asphyxia/pug/LDJ/27pcget.pug +++ b/iidx@asphyxia/pug/LDJ/27pcget.pug @@ -28,7 +28,7 @@ IIDX27pc(status="0") detail(grade_type=ed.grade_type grade_id=ed.grade_id stage_num=ed.stage_num clear_type=ed.clear_type) past(__type="s32" __count="5") #{ed.past[0]} #{ed.past[1]} #{ed.past[2]} #{ed.past[3]} #{ed.past[4]} max_past(__type="s32" __count="5") #{ed.max_past[0]} #{ed.max_past[1]} #{ed.max_past[2]} #{ed.max_past[3]} #{ed.max_past[4]} - skin(__type="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{custom.disable_musicpreview} #{custom.pacemaker_cover} #{custom.vefx_lock} #{custom.effect} #{custom.bomb_size} #{custom.disable_hcn_color} #{custom.first_note_preview} + skin(__type="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{Number(custom.disable_musicpreview)} #{custom.pacemaker_cover} #{Number(custom.vefx_lock)} #{custom.effect} #{custom.bomb_size} #{Number(custom.disable_hcn_color)} #{custom.first_note_preview} 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) diff --git a/iidx@asphyxia/pug/LDJ/28pcget.pug b/iidx@asphyxia/pug/LDJ/28pcget.pug index ffb1bd4..cbc055d 100644 --- a/iidx@asphyxia/pug/LDJ/28pcget.pug +++ b/iidx@asphyxia/pug/LDJ/28pcget.pug @@ -1,7 +1,7 @@ IIDX28pc(status="0") 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 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) 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 skin_0="0" flg_skin_0="-1") + 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 skin_0=lm_custom.premium_skin flg_skin_0="-1") 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="6") #{lm_settings.light[0]} #{lm_settings.light[1]} #{lm_settings.light[2]} #{lm_settings.light[3]} #{lm_settings.light[4]} #{lm_settings.light[5]} concentration(__type="bool") #{lm_settings.concentration} @@ -35,7 +35,7 @@ IIDX28pc(status="0") selected_course(__type="s32" __count="5") #{ed.selected_course[0]} #{ed.selected_course[1]} #{ed.selected_course[2]} #{ed.selected_course[3]} #{ed.selected_course[4]} max_past(__type="s32" __count="5") #{ed.max_past[0]} #{ed.max_past[1]} #{ed.max_past[2]} #{ed.max_past[3]} #{ed.max_past[4]} max_selected_course(__type="s32" __count="5") #{ed.max_selected_course[0]} #{ed.max_selected_course[1]} #{ed.max_selected_course[2]} #{ed.max_selected_course[3]} #{ed.max_selected_course[4]} - skin(__type="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{custom.disable_musicpreview} #{custom.pacemaker_cover} #{custom.vefx_lock} #{custom.effect} #{custom.bomb_size} #{custom.disable_hcn_color} #{custom.first_note_preview} + skin(__type="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{Number(custom.disable_musicpreview)} #{custom.pacemaker_cover} #{Number(custom.vefx_lock)} #{custom.effect} #{custom.bomb_size} #{Number(custom.disable_hcn_color)} #{custom.first_note_preview} 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) diff --git a/iidx@asphyxia/pug/LDJ/29pcget.pug b/iidx@asphyxia/pug/LDJ/29pcget.pug index 0bf2a58..539b6aa 100644 --- a/iidx@asphyxia/pug/LDJ/29pcget.pug +++ b/iidx@asphyxia/pug/LDJ/29pcget.pug @@ -1,7 +1,7 @@ IIDX29pc(status="0") 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 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) 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 skin_0="0" flg_skin_0="-1") + 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 skin_0=lm_custom.premium_skin flg_skin_0="-1") 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} @@ -35,7 +35,7 @@ IIDX29pc(status="0") 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="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{custom.disable_musicpreview} #{custom.pacemaker_cover} #{custom.vefx_lock} #{custom.effect} #{custom.bomb_size} #{custom.disable_hcn_color} #{custom.first_note_preview} + skin(__type="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{Number(custom.disable_musicpreview)} #{custom.pacemaker_cover} #{Number(custom.vefx_lock)} #{custom.effect} #{custom.bomb_size} #{Number(custom.disable_hcn_color)} #{custom.first_note_preview} 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) diff --git a/iidx@asphyxia/pug/LDJ/30pcget.pug b/iidx@asphyxia/pug/LDJ/30pcget.pug index 534ced8..6e00673 100644 --- a/iidx@asphyxia/pug/LDJ/30pcget.pug +++ b/iidx@asphyxia/pug/LDJ/30pcget.pug @@ -1,14 +1,13 @@ IIDX30pc(status="0") 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 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) 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 skin_0="0" flg_skin_0="-1") + 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 skin_0=lm_custom.premium_skin flg_skin_0="-1") 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 - enable_qr_reward secret flg1(__type="s64" __count="3") -1 -1 -1 flg2(__type="s64" __count="3") -1 -1 -1 @@ -36,7 +35,7 @@ IIDX30pc(status="0") 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="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{custom.disable_musicpreview} #{custom.pacemaker_cover} #{custom.vefx_lock} #{custom.effect} #{custom.bomb_size} #{custom.disable_hcn_color} #{custom.first_note_preview} + skin(__type="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{Number(custom.disable_musicpreview)} #{custom.pacemaker_cover} #{Number(custom.vefx_lock)} #{custom.effect} #{custom.bomb_size} #{Number(custom.disable_hcn_color)} #{custom.first_note_preview} 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) diff --git a/iidx@asphyxia/pug/LDJ/31pcget.pug b/iidx@asphyxia/pug/LDJ/31pcget.pug new file mode 100644 index 0000000..350dec5 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/31pcget.pug @@ -0,0 +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) diff --git a/iidx@asphyxia/pug/LDJ/pcget.pug b/iidx@asphyxia/pug/LDJ/pcget.pug index f3a3269..3a1d916 100644 --- a/iidx@asphyxia/pug/LDJ/pcget.pug +++ b/iidx@asphyxia/pug/LDJ/pcget.pug @@ -13,7 +13,7 @@ pc(status="0") 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]} - skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{custom.disable_musicpreview} 0 0 + skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 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) diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index c9604e4..eed9388 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -106,7 +106,7 @@ export function HextoBase64(hex: string) { let i = 0; for (let i = 0; i < hex.length; i += 2) { - const hexByte = hex.substr(i, 2); + const hexByte = hex.slice(i, i + 2); const byteValue = parseInt(hexByte, 16); buffer.push(byteValue); } @@ -144,7 +144,7 @@ export function NumArrayToString(bits: number[], numArray: number[]): string { let result = ""; let numIdx = 0; - if (numArray != null && !_.isNaN(numArray[0])) { + if (!_.isNil(numArray) && !_.isNaN(numArray[0])) { let numArrayIdx = 0; if (numArray.length > 0) { let combined = 0; @@ -181,7 +181,7 @@ export function NumArrayToString(bits: number[], numArray: number[]): string { export function GetVersion(info: EamuseInfo) { let version = -1; - switch (info.model.substring(0, 3)) { + switch (info.model.slice(0, 3)) { case "GLD": return 14; case "HDD": return 15; case "I00": return 16; @@ -189,7 +189,7 @@ export function GetVersion(info: EamuseInfo) { case "JDZ": return 18; case "KDZ": return 19; case "LDJ": - version = parseInt(info.module.substring(4, 6)); + version = parseInt(info.module.slice(4, 6)); if (_.isNaN(version)) version = 20; break; } @@ -305,17 +305,30 @@ export async function ReftoQPRO(refid: string, version: number) { }); let qpro_data = []; - try { - qpro_data = [ - custom.qpro_hair, - custom.qpro_head, - custom.qpro_face, - custom.qpro_body, - custom.qpro_hand, - ]; + 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; + } } catch { - qpro_data = [0, 0, 0, 0, 0]; + qpro_data = [0, 0, 0, 0, 0, 0]; } return qpro_data; diff --git a/iidx@asphyxia/webui/asset/js/detail.js b/iidx@asphyxia/webui/asset/js/detail.js new file mode 100644 index 0000000..72dccb5 --- /dev/null +++ b/iidx@asphyxia/webui/asset/js/detail.js @@ -0,0 +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"); + } + }); +}); diff --git a/iidx@asphyxia/webui/asset/js/setting.js b/iidx@asphyxia/webui/asset/js/setting.js new file mode 100644 index 0000000..7657171 --- /dev/null +++ b/iidx@asphyxia/webui/asset/js/setting.js @@ -0,0 +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"); + } + }); +}); diff --git a/iidx@asphyxia/webui/profile_-----detail.pug b/iidx@asphyxia/webui/profile_-----detail.pug index 601157a..80d66df 100644 --- a/iidx@asphyxia/webui/profile_-----detail.pug +++ b/iidx@asphyxia/webui/profile_-----detail.pug @@ -20,7 +20,8 @@ 27, 28, 29, - 30 + 30, + 31 ]; div @@ -36,30 +37,31 @@ div .ver-select .control .select - select(name="version") + select(id="version") each i in version option(selected=(i==pcdata.version)) #{i} .field label.label Name .body - body #{profile.name} + p(id="name") #{profile.name} .field label.label IIDX ID .body - body #{profile.idstr} + p(id="iidxid") #{profile.idstr} .field label.label SP Grade .body - const a = pcdata.sgid if a==-1 - body ---- + p(id="sp_grade") ---- else - body #{pcdata.sgid} + p(id="sp_grade") #{pcdata.sgid} .field label.label DP Grade .body - const b = pcdata.dgid if b==-1 - body ---- + p(id="dp_grade") ---- else - body #{pcdata.dgid} + 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 e373c70..cd5e56b 100644 --- a/iidx@asphyxia/webui/profile_----setting.pug +++ b/iidx@asphyxia/webui/profile_----setting.pug @@ -2,6 +2,7 @@ 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 = [ @@ -21,7 +22,8 @@ 27, 28, 29, - 30 + 30, + 31 ]; div @@ -32,7 +34,7 @@ div i.mdi.mdi-account-edit | Settings .card-content - form(method="post" action="/emit/updateIIDXCustom") + form(method="post" action="/emit/iidxUpdateCustom") .field input(type="text" name="refid", value=refid readonly hidden) label.label IIDX ID @@ -42,161 +44,197 @@ div label.label Version .control .select - select(name="version") + 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", value=profile.name) + input.input(type="text" name="name", id="name", value=profile.name) //- SKIN .field label.label Frame .control - input.input(type="number" name="frame", value=custom.frame) + input.input(type="number" name="frame", id="frame", value=custom.frame) .field label.label Turntable .control - input.input(type="number" name="turntable", value=custom.turntable) + input.input(type="number" name="turntable", id="turntable", value=custom.turntable) .field label.label Note Burst .control - input.input(type="number" name="note_burst", value=custom.note_burst) + 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", value=custom.menu_music) + 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", value=custom.lane_cover) + 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", value=custom.category_vox) + 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", value=custom.note_skin) + 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", value=custom.full_combo_splash) + 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", value=custom.note_beam) + 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", value=custom.judge_font) + 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", checked=Boolean(custom.disable_musicpreview)) + 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", value=custom.pacemaker_cover) + 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", checked=Boolean(custom.vefx_lock)) + 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", value=custom.effect) + 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", value=custom.bomb_size) + 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", checked=Boolean(custom.disable_hcn_color)) + 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", value=custom.first_note_preview) + 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", checked=Boolean(custom.rank_folder)) + 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", checked=Boolean(custom.clear_folder)) + 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", checked=Boolean(custom.diff_folder)) + 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", checked=Boolean(custom.alpha_folder)) + 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", checked=Boolean(custom.rival_folder)) + 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", checked=Boolean(custom.rival_battle_folder)) + 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", checked=Boolean(custom.rival_info)) + 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", checked=Boolean(custom.hide_playcount)) + 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", checked=Boolean(custom.disable_graph_cutin)) + 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", checked=Boolean(custom.class_hispeed)) + 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", checked=Boolean(custom.rival_played_folder)) + 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", checked=Boolean(custom.hide_iidxid)) + 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", checked=Boolean(false)) + input(type="checkbox" name="disable_beginner_option", id="disable_beginner_option", checked=Boolean(false)) else - input(type="checkbox" name="disable_beginner_option", checked=Boolean(custom.disable_beginner_option)) + 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", value=custom.qpro_head) + 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", value=custom.qpro_hair) + 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", value=custom.qpro_hand) + 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", value=custom.qpro_face) + 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", value=custom.qpro_body) + 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 c236238..dd796cb 100644 --- a/iidx@asphyxia/webui/profile_---rival.pug +++ b/iidx@asphyxia/webui/profile_---rival.pug @@ -23,7 +23,7 @@ div i.mdi.mdi-account-edit | Rivals .card-content - form(method="post" action="/emit/updateIIDXRival") + form(method="post" action="/emit/iidxUpdateRival") .field input(type="text" name="refid", value=refid readonly hidden) label.label SP Rivals diff --git a/iidx@asphyxia/webui/profile_-data.pug b/iidx@asphyxia/webui/profile_-data.pug index 8b870ac..d7a7ff4 100644 --- a/iidx@asphyxia/webui/profile_-data.pug +++ b/iidx@asphyxia/webui/profile_-data.pug @@ -8,7 +8,7 @@ div .card-content .field label.label [!] This will overwrite exsiting scores - form(method="post" action="/emit/importScoreData") + 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") @@ -18,7 +18,7 @@ div i.mdi.mdi-check span Score Import .field - form(method="post" action="/emit/exportScoreData") + form(method="post" action="/emit/iidxExportScoreData") .field input(type="text" name="refid", value=refid readonly hidden) button.button.is-primary(type="submit") From 1f05cef58bb179ec6e49b6f557a0ff9954b678aa Mon Sep 17 00:00:00 2001 From: duel0213 Date: Mon, 14 Oct 2024 22:14:42 +0900 Subject: [PATCH 46/73] IIDX: Fixed where MISS COUNT has 0 as default --- iidx@asphyxia/README.md | 1 + iidx@asphyxia/handlers/music.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 94b850f..9a5f55d 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -153,4 +153,5 @@ Changelogs - Added music\_open on gameSystem.systemInfo response - 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 - WebUI is now display values of corresponding version diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 3515c56..5a01ab5 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -479,7 +479,7 @@ export const musicreg: EPR = async (info, data, send) => { // SPB -> DPL [0~9] -> Heroic Verse // let pgArray = Array(10).fill(0); // PGREAT // let gArray = Array(10).fill(0); // GREAT // - let mArray = Array(10).fill(0); // MISS // + let mArray = Array(10).fill(-1); // MISS // let cArray = Array(10).fill(0); // CLEAR FLAGS // let rArray = Array(10).fill(-1); // RANK ID // let esArray = Array(10).fill(0); // EXSCORE // From 993595ff99be324388b51f9f8e7f844d892df28f Mon Sep 17 00:00:00 2001 From: duel0213 Date: Thu, 17 Oct 2024 19:47:22 +0900 Subject: [PATCH 47/73] IIDX: Fixed score import (DP/WebUI typo) --- iidx@asphyxia/README.md | 3 ++- iidx@asphyxia/handlers/webui.ts | 8 ++++---- iidx@asphyxia/webui/profile_-data.pug | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 9a5f55d..9bc131e 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -153,5 +153,6 @@ Changelogs - Added music\_open on gameSystem.systemInfo response - 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 + - Fixed where MISS COUNT has 0 as default (including score import) + - Fixed where unable to import DP scores - WebUI is now display values of corresponding version diff --git a/iidx@asphyxia/handlers/webui.ts b/iidx@asphyxia/handlers/webui.ts index 71e3d71..39f2fe3 100644 --- a/iidx@asphyxia/handlers/webui.ts +++ b/iidx@asphyxia/handlers/webui.ts @@ -307,7 +307,7 @@ export const importScoreData = async (data, send: WebUISend) => { let result = { pgArray: Array(10).fill(0), gArray: Array(10).fill(0), - mArray: Array(10).fill(0), + mArray: Array(10).fill(-1), cArray: Array(10).fill(0), rArray: Array(10).fill(-1), esArray: Array(10).fill(0), @@ -326,9 +326,9 @@ export const importScoreData = async (data, send: WebUISend) => { if (!_.isNil(sd_ver1[a].dpmArray)) { for (let b = 5; b < 10; b++) { - result.cArray[b] = sd_ver1[a].dpmArray[2 + b]; - result.esArray[b] = sd_ver1[a].dpmArray[7 + b]; - if (sd_ver1[a].dpmArray[12 + b] != -1) result.mArray[b] = sd_ver1[a].dpmArray[12 + b]; + result.cArray[b] = sd_ver1[a].dpmArray[2 + (b - 5)]; + result.esArray[b] = sd_ver1[a].dpmArray[7 + (b - 5)]; + if (sd_ver1[a].dpmArray[12 + (b - 5)] != -1) result.mArray[b] = sd_ver1[a].dpmArray[12 + (b - 5)]; } } diff --git a/iidx@asphyxia/webui/profile_-data.pug b/iidx@asphyxia/webui/profile_-data.pug index d7a7ff4..ab0f3cb 100644 --- a/iidx@asphyxia/webui/profile_-data.pug +++ b/iidx@asphyxia/webui/profile_-data.pug @@ -7,7 +7,7 @@ div | Data Management .card-content .field - label.label [!] This will overwrite exsiting scores + label.label [!] This will overwrite existing scores form(method="post" action="/emit/iidxImportScoreData") .field input(type="text" name="refid", value=refid readonly hidden) From 3a73379fb923376f07b992e5c30e97d43f786b7f Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sat, 19 Oct 2024 23:08:29 +0900 Subject: [PATCH 48/73] IIDX: Fixed miss count issue --- iidx@asphyxia/README.md | 1 + iidx@asphyxia/handlers/music.ts | 2 ++ 2 files changed, 3 insertions(+) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 9bc131e..cf18f0a 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -155,4 +155,5 @@ Changelogs - 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 - WebUI is now display values of corresponding version diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 5a01ab5..1039fae 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -538,6 +538,8 @@ export const musicreg: EPR = async (info, data, send) => { opt2Array[clid] = option_2; update = 1; } else { + if (exscore == pExscore && mnum < mArray[clid]) mArray[clid] = mnum; + ghost = music_data[clid]; if (version >= 27) ghost_gauge = music_data[clid + 10]; } From 8d06dcf25b7c574437bc1e36f0de59f1f81155c4 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sun, 20 Oct 2024 01:46:33 +0900 Subject: [PATCH 49/73] IIDX: misc --- iidx@asphyxia/handlers/music.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 1039fae..aa7774c 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -538,7 +538,12 @@ export const musicreg: EPR = async (info, data, send) => { opt2Array[clid] = option_2; update = 1; } else { - if (exscore == pExscore && mnum < mArray[clid]) mArray[clid] = mnum; + // im not sure these are correct needs to be verify by others // + // lower MISS COUNT when EXSCORE is same and current MISS COUNT is lower than saved one // + // lower MISS COUNT when current lamp is FULL COMBO and current MISS COUNT is lower than saved one // + if (exscore == pExscore && mnum < mArray[clid] || + cflg == 7 && mnum < mArray[clid]) + mArray[clid] = Math.min(mArray[clid], mnum); ghost = music_data[clid]; if (version >= 27) ghost_gauge = music_data[clid + 10]; From 44458a1a75a81f08cdbdc53fc46a46e9ee2cd77f Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sun, 20 Oct 2024 03:02:38 +0900 Subject: [PATCH 50/73] IIDX: Fixed MUSIC FILTER --- iidx@asphyxia/handlers/pc.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index bbfefbf..57b07a6 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -4177,10 +4177,10 @@ export const pcsave: EPR = async (info, data, send) => { if (hasMusicFilter) { $(data).element("music_filter").elements("folder").forEach((res) => { - DB.Upsert( + DB.Upsert( refid, { - collection: "lightning_musicmemo", + collection: "lightning_musicfilter", version: version, play_style: parseInt(res.attr().play_style), folder_id: parseInt(res.attr().folder_id), From ad36c48bc662185d3cdebfe1fe448a0c68d275ff Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sun, 20 Oct 2024 03:33:13 +0900 Subject: [PATCH 51/73] IIDX: misc --- iidx@asphyxia/handlers/pc.ts | 2 +- iidx@asphyxia/models/lightning.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 57b07a6..6a9aca6 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -968,7 +968,7 @@ export const pcget: EPR = async (info, data, send) => { folder_id: res.folder_id, filter_id: res.filter_id, - is_valid: res.is_valid, + is_valid: Number(res.is_valid), value0: res.value0, value1: res.value1, } diff --git a/iidx@asphyxia/models/lightning.ts b/iidx@asphyxia/models/lightning.ts index 0c7a134..09aeeb1 100644 --- a/iidx@asphyxia/models/lightning.ts +++ b/iidx@asphyxia/models/lightning.ts @@ -111,7 +111,7 @@ export interface musicfilter_data { play_style: number; folder_id: number; filter_id: number; - is_valid: boolean; + is_valid: number; value0: number; value1: number; } From c3b2fab90c2ac407e9d6e6d966ae86b33cf7157b Mon Sep 17 00:00:00 2001 From: duel0213 Date: Wed, 23 Oct 2024 21:34:13 +0900 Subject: [PATCH 52/73] IIDX: Added migration code for invalid miss count records --- iidx@asphyxia/handlers/music.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index aa7774c..ef95ea1 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -552,6 +552,12 @@ export const musicreg: EPR = async (info, data, send) => { cArray[clid] = Math.max(cArray[clid], cflg); } + // migration for invalid miss count // + // if EXSCORE/MISS COUNT is 0 and CLEAR FLAG is NO PLAY then set MISS COUNT to -1 // + for (let a = 0; a < mArray.length; a++) { + if (esArray[a] == 0 && cArray[a] == 0 && mArray[a] == 0) mArray[a] = -1; + } + if (version >= 27) { // TODO:: support old version // const score_top: score_top | null = await DB.FindOne(null, { collection: "score_top", From 863fa7a410f12fccfc6f3a7c6dcb3f6600787c98 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sat, 9 Nov 2024 10:05:15 +0900 Subject: [PATCH 53/73] IIDX: Fixed lightning model settings save --- iidx@asphyxia/README.md | 1 + iidx@asphyxia/handlers/pc.ts | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index cf18f0a..e9f749f 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -156,4 +156,5 @@ Changelogs - 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 - WebUI is now display values of corresponding version diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 6a9aca6..75aafe4 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -1460,9 +1460,7 @@ export const pcsave: EPR = async (info, data, send) => { version: version, }, { - $set: { - lm_settings, - } + $set: lm_settings, } ); } From 2159989026427bb93c8fde2fc8c4749147c0516e Mon Sep 17 00:00:00 2001 From: duel0213 Date: Tue, 26 Nov 2024 19:21:43 +0900 Subject: [PATCH 54/73] IIDX: Fixed score import (data version 2) --- iidx@asphyxia/handlers/webui.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/iidx@asphyxia/handlers/webui.ts b/iidx@asphyxia/handlers/webui.ts index 39f2fe3..5a67149 100644 --- a/iidx@asphyxia/handlers/webui.ts +++ b/iidx@asphyxia/handlers/webui.ts @@ -372,7 +372,15 @@ export const importScoreData = async (data, send: WebUISend) => { }, { $set: { - ...sd_ver2[a] + pgArray: sd_ver2[a].pgArray, + gArray: sd_ver2[a].gArray, + mArray: sd_ver2[a].mArray, + cArray: sd_ver2[a].cArray, + rArray: sd_ver2[a].rArray, + esArray: sd_ver2[a].esArray, + + optArray: sd_ver2[a].optArray, + opt2Array: sd_ver2[a].opt2Array, } } ); From f2319322899fc75a92e1e93818bfbf768e002fc7 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Tue, 26 Nov 2024 19:27:45 +0900 Subject: [PATCH 55/73] IIDX: Changed pc.lanegacha response to not use lane gacha ticket by default --- iidx@asphyxia/handlers/pc.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 75aafe4..12e71c3 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -4334,7 +4334,7 @@ export const pcgetlanegacha: EPR = async (info, data, send) => { tArray.push( K.ATTR({ - ticket_id: String(i), + ticket_id: String(i + 1), arrange_id: String(random), expire_date: String(4102326000), }) @@ -4375,7 +4375,7 @@ export const pcdrawlanegacha: EPR = async (info, data, send) => { tArray.push( K.ATTR({ - ticket_id: String(i), + ticket_id: String(_.random(101, 10000)), arrange_id: String(random), expire_date: String(4102326000), }) From 09407661ef8eccf0d7bdc39547a1de43d799ec86 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Tue, 26 Nov 2024 20:59:52 +0900 Subject: [PATCH 56/73] IIDX: misc --- iidx@asphyxia/handlers/webui.ts | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/iidx@asphyxia/handlers/webui.ts b/iidx@asphyxia/handlers/webui.ts index 5a67149..ba72629 100644 --- a/iidx@asphyxia/handlers/webui.ts +++ b/iidx@asphyxia/handlers/webui.ts @@ -365,6 +365,27 @@ export const importScoreData = async (data, send: WebUISend) => { case 2: let sd_ver2: score[] = content.data; for (let a = 0; a < count; a++) { + let result = { + pgArray: sd_ver2[a].pgArray, + gArray: sd_ver2[a].gArray, + mArray: sd_ver2[a].mArray, + cArray: sd_ver2[a].cArray, + rArray: sd_ver2[a].rArray, + esArray: sd_ver2[a].esArray, + + optArray: sd_ver2[a].optArray, + opt2Array: sd_ver2[a].opt2Array, + }; + + for (let b = 0; b < 10; b++) { + if (_.isNil(sd_ver2[a][b])) continue; + result[b] = sd_ver2[a][b]; + + if (!_.isNil(sd_ver2[a][b + 10])) { + result[b + 10] = sd_ver2[a][b + 10]; + } + } + await DB.Upsert(data.refid, { collection: "score", @@ -372,15 +393,7 @@ export const importScoreData = async (data, send: WebUISend) => { }, { $set: { - pgArray: sd_ver2[a].pgArray, - gArray: sd_ver2[a].gArray, - mArray: sd_ver2[a].mArray, - cArray: sd_ver2[a].cArray, - rArray: sd_ver2[a].rArray, - esArray: sd_ver2[a].esArray, - - optArray: sd_ver2[a].optArray, - opt2Array: sd_ver2[a].opt2Array, + ...result, } } ); From 27de09dae2de9cf8b7731e34d4919af5afbe1384 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sat, 30 Nov 2024 13:07:20 +0900 Subject: [PATCH 57/73] IIDX: Added missing default elements on IIDX29 pcdata --- iidx@asphyxia/models/pcdata.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 325c158..61f8018 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -1305,6 +1305,11 @@ export const IIDX29_pcdata = { leggendaria_flg1: Array(3).fill("-1"), + dr_sprank: Array(15).fill(0), + dr_sppoint: Array(15).fill(0), + dr_dprank: Array(15).fill(0), + dr_dppoint: Array(15).fill(0), + nr_spradar: Array(6).fill(0), nr_dpradar: Array(6).fill(0), From a0f9167bfcb5d57b2ae4aed4a41580dbd54829e3 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sat, 30 Nov 2024 17:40:29 +0900 Subject: [PATCH 58/73] IIDX: misc --- iidx@asphyxia/handlers/music.ts | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index ef95ea1..be7aaf5 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -531,24 +531,17 @@ export const musicreg: EPR = async (info, data, send) => { if (exscore > pExscore) { pgArray[clid] = pgnum; gArray[clid] = gnum; - mArray[clid] = mnum; rArray[clid] = rid; esArray[clid] = exscore; optArray[clid] = option; opt2Array[clid] = option_2; update = 1; } else { - // im not sure these are correct needs to be verify by others // - // lower MISS COUNT when EXSCORE is same and current MISS COUNT is lower than saved one // - // lower MISS COUNT when current lamp is FULL COMBO and current MISS COUNT is lower than saved one // - if (exscore == pExscore && mnum < mArray[clid] || - cflg == 7 && mnum < mArray[clid]) - mArray[clid] = Math.min(mArray[clid], mnum); - ghost = music_data[clid]; if (version >= 27) ghost_gauge = music_data[clid + 10]; } + mArray[clid] = mArray[clid] == -1 ? mnum : Math.min(mArray[clid], mnum); cArray[clid] = Math.max(cArray[clid], cflg); } From 6b5a90b05ed816223317cfbe7c763fb8ca2419a5 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Wed, 22 Jan 2025 01:14:06 +0900 Subject: [PATCH 59/73] IIDX: Fixed grade achieve and miss count --- iidx@asphyxia/handlers/grade.ts | 13 ++++++++----- iidx@asphyxia/handlers/music.ts | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/iidx@asphyxia/handlers/grade.ts b/iidx@asphyxia/handlers/grade.ts index 7ec26e1..5266212 100644 --- a/iidx@asphyxia/handlers/grade.ts +++ b/iidx@asphyxia/handlers/grade.ts @@ -120,10 +120,8 @@ export const graderaised: EPR = async (info, data, send) => { if (_.isNil(pcdata)) return send.deny(); if (_.isNil(grade)) { if (cflg == 4) { - if (gtype == 0) - pcdata.sgid = Math.max(gid, pcdata.sgid); - else - pcdata.dgid = Math.max(gid, pcdata.dgid); + if (gtype == 0) pcdata.sgid = Math.max(gid, pcdata.sgid); + else pcdata.dgid = Math.max(gid, pcdata.dgid); updatePcdata = true; } @@ -137,7 +135,12 @@ export const graderaised: EPR = async (info, data, send) => { updateGrade = true; } - if (cflg == 4) updatePcdata = true; + if (cflg == 4) { + if (gtype == 0) pcdata.sgid = Math.max(gid, pcdata.sgid); + else pcdata.dgid = Math.max(gid, pcdata.dgid); + + updatePcdata = true; + } } if (updatePcdata) { diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index be7aaf5..03171f0 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -541,7 +541,7 @@ export const musicreg: EPR = async (info, data, send) => { if (version >= 27) ghost_gauge = music_data[clid + 10]; } - mArray[clid] = mArray[clid] == -1 ? mnum : Math.min(mArray[clid], mnum); + if (mnum != -1) mArray[clid] = mArray[clid] == -1 ? mnum : Math.min(mArray[clid], mnum); cArray[clid] = Math.max(cArray[clid], cflg); } From 14d3452fc80574b43b9d1e4d5abf51848434a6ee Mon Sep 17 00:00:00 2001 From: duel0213 Date: Thu, 23 Jan 2025 22:44:54 +0900 Subject: [PATCH 60/73] IIDX: misc --- iidx@asphyxia/handlers/gamesystem.ts | 15 +- iidx@asphyxia/handlers/pc.ts | 209 +++++++++++++-------------- 2 files changed, 118 insertions(+), 106 deletions(-) diff --git a/iidx@asphyxia/handlers/gamesystem.ts b/iidx@asphyxia/handlers/gamesystem.ts index ceb0694..b8f830f 100644 --- a/iidx@asphyxia/handlers/gamesystem.ts +++ b/iidx@asphyxia/handlers/gamesystem.ts @@ -131,6 +131,19 @@ export const gssysteminfo: EPR = async (info, data, send) => { } break; case 31: + let totalMetron = 0; + let eventData = await DB.Find(null, { + collection: "event_1", + version: version, + event_data: "myepo_map", + }); + + if (!_.isNil(eventData)) { + eventData.forEach((res: any) => { + totalMetron += Number(res.metron_total_get); + }); + } + result = { ...result, CommonBossPhase: K.ATTR({ val: String(3) }), @@ -144,7 +157,7 @@ export const gssysteminfo: EPR = async (info, data, send) => { BPLBattleOpenPhase: K.ATTR({ val: String(2) }), UnlockLeggendaria: K.ATTR({ val: String(1) }), BPLSerialCodePhase: K.ATTR({ val: String(0) }), - Event1AllPlayerTotalGetMetron: K.ATTR({ val: String(2500) }), + Event1AllPlayerTotalGetMetron: K.ATTR({ val: String(totalMetron) }), // total amount of all users metron // } break; diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 12e71c3..86150e5 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -1023,7 +1023,7 @@ export const pcget: EPR = async (info, data, send) => { - 8 - 1 [notes_radar] - 10 - (none) - 11 - 1 - - 12 - (none) + - 12 - (none) [tourism?] - 13 - (none) [event] - 14 - 1 - 15 - (none) @@ -1035,56 +1035,81 @@ export const pcget: EPR = async (info, data, send) => { ***/ if (version >= 30 && badge.length > 0) { - let djLevel, clear, grade, step_up, visitor, notes_radar, event1, event2; + let djLevel, clear, grade, step_up, visitor, notes_radar, world_tourism, event1, event2; + + // visitor, notes_radar, world_tourism, step_up // + if (version == 30) { + // this keep sending back on save // + // possibly wrong category_id but at least doesn't show as new badges // + visitor = badge.filter((res) => res.category_name === "visitor"); + visitor.forEach((res) => { + bArray.push({ + id: 6, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + notes_radar = badge.filter((res) => res.category_name === "notes_radar"); + notes_radar.forEach((res) => { + bArray.push({ + id: 7, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + world_tourism = badge.filter((res) => res.category_name === "world_tourism"); + world_tourism.forEach((res) => { + bArray.push({ + id: 8, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + } else { + step_up = badge.filter((res) => res.category_name === "step_up"); + step_up.forEach((res) => { + bArray.push({ + id: 3, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + // this keep sending back on save // + // possibly wrong category_id but at least doesn't show as new badges // + visitor = badge.filter((res) => res.category_name === "visitor"); + visitor.forEach((res) => { + bArray.push({ + id: 7, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + notes_radar = badge.filter((res) => res.category_name === "notes_radar"); + notes_radar.forEach((res) => { + bArray.push({ + id: 8, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + world_tourism = badge.filter((res) => res.category_name === "world_tourism"); + world_tourism.forEach((res) => { + bArray.push({ + id: 12, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + } + + // event // switch (version) { case 30: - djLevel = badge.filter((res) => res.category_name === "djLevel"); - djLevel.forEach((res) => { - bArray.push({ - id: 0, - flg_id: res.flg_id, - flg: res.flg, - }); - }); - - clear = badge.filter((res) => res.category_name === "clear"); - clear.forEach((res) => { - bArray.push({ - id: 1, - flg_id: res.flg_id, - flg: res.flg, - }); - }); - - grade = badge.filter((res) => res.category_name === "grade"); - grade.forEach((res) => { - bArray.push({ - id: 2, - flg_id: res.flg_id, - flg: res.flg, - }); - }); - - // this keep sending back on save // - // possibly wrong category_id but at least doesn't show as new badges // - visitor = badge.filter((res) => res.category_name === "visitor"); - visitor.forEach((res) => { - bArray.push({ - id: 6, - flg_id: res.flg_id, - flg: res.flg, - }); - }); - - notes_radar = badge.filter((res) => res.category_name === "notes_radar"); - notes_radar.forEach((res) => { - bArray.push({ - id: 7, - flg_id: res.flg_id, - flg: res.flg, - }); - }); - event1 = badge.filter((res) => res.category_name === "event1"); event1.forEach((res) => { bArray.push({ @@ -1095,62 +1120,6 @@ export const pcget: EPR = async (info, data, send) => { }); break; case 31: - djLevel = badge.filter((res) => res.category_name === "djLevel"); - djLevel.forEach((res) => { - bArray.push({ - id: 0, - flg_id: res.flg_id, - flg: res.flg, - }); - }); - - clear = badge.filter((res) => res.category_name === "clear"); - clear.forEach((res) => { - bArray.push({ - id: 1, - flg_id: res.flg_id, - flg: res.flg, - }); - }); - - grade = badge.filter((res) => res.category_name === "grade"); - grade.forEach((res) => { - bArray.push({ - id: 2, - flg_id: res.flg_id, - flg: res.flg, - }); - }); - - step_up = badge.filter((res) => res.category_name === "step_up"); - step_up.forEach((res) => { - bArray.push({ - id: 3, - flg_id: res.flg_id, - flg: res.flg, - }); - }); - - // this keep sending back on save // - // possibly wrong category_id but at least doesn't show as new badges // - visitor = badge.filter((res) => res.category_name === "visitor"); - visitor.forEach((res) => { - bArray.push({ - id: 7, - flg_id: res.flg_id, - flg: res.flg, - }); - }); - - notes_radar = badge.filter((res) => res.category_name === "notes_radar"); - notes_radar.forEach((res) => { - bArray.push({ - id: 8, - flg_id: res.flg_id, - flg: res.flg, - }); - }); - event1 = badge.filter((res) => res.category_name === "event1"); event1.forEach((res) => { bArray.push({ @@ -1173,6 +1142,36 @@ export const pcget: EPR = async (info, data, send) => { default: break; } + + // default // + djLevel = badge.filter((res) => res.category_name === "djLevel"); + djLevel.forEach((res) => { + bArray.push({ + id: 0, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + clear = badge.filter((res) => res.category_name === "clear"); + clear.forEach((res) => { + bArray.push({ + id: 1, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + grade = badge.filter((res) => res.category_name === "grade"); + grade.forEach((res) => { + bArray.push({ + id: 2, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + + bArray.sort((a, b) => a.id - b.id || a.flg_id - b.flg_id); } return send.pugFile(`pug/LDJ/${version}pcget.pug`, { From 1a027d86e5e7a4af713aed5ed2dee5b7d7c73ec4 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Fri, 24 Jan 2025 21:12:26 +0900 Subject: [PATCH 61/73] IIDX: Added migration for existing IIDX29 pcdata --- iidx@asphyxia/handlers/pc.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 86150e5..f40c86e 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -566,6 +566,14 @@ export const pcget: EPR = async (info, data, send) => { lm_custom = lm_customdata; } + // migration // + if (version == 29 && _.isNil(pcdata.dr_sprank)) { + pcdata.dr_sprank = IIDX29_pcdata.dr_sprank; + pcdata.dr_sppoint = IIDX29_pcdata.dr_sppoint; + pcdata.dr_dprank = IIDX29_pcdata.dr_dprank; + pcdata.dr_dppoint = IIDX29_pcdata.dr_dppoint; + } + const appendsettings = appendSettingConverter( custom.rank_folder, custom.clear_folder, From 6783f0d13f7d6e799235cba8ca7dd2d4ed9d17f5 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Fri, 24 Jan 2025 23:14:38 +0900 Subject: [PATCH 62/73] IIDX: Fixed rival webui --- iidx@asphyxia/webui/profile_---rival.pug | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/iidx@asphyxia/webui/profile_---rival.pug b/iidx@asphyxia/webui/profile_---rival.pug index dd796cb..cd208d8 100644 --- a/iidx@asphyxia/webui/profile_---rival.pug +++ b/iidx@asphyxia/webui/profile_---rival.pug @@ -6,7 +6,7 @@ - let rival_list=[["", "None", "0000-0000"]]; profiles.forEach((res) => { - rival_list.push([res.refid, res.name, res.idstr]) + rival_list.push([res.__refid, res.name, res.idstr]) }); let my_sp_rival = [], my_dp_rival = []; @@ -33,7 +33,7 @@ div 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]}] + 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 @@ -41,7 +41,7 @@ div 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]}] + 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 @@ -49,7 +49,7 @@ div 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]}] + 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 @@ -57,7 +57,7 @@ div 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]}] + 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 @@ -65,7 +65,7 @@ div 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]}] + 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 @@ -76,7 +76,7 @@ div 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]}] + 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 @@ -84,7 +84,7 @@ div 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]}] + 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 @@ -92,7 +92,7 @@ div 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]}] + 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 @@ -100,7 +100,7 @@ div 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]}] + 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 @@ -108,7 +108,7 @@ div 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]}] + 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 From 1b9afb648678ac6697af9f640b902a61b766859f Mon Sep 17 00:00:00 2001 From: duel0213 Date: Fri, 24 Jan 2025 23:47:59 +0900 Subject: [PATCH 63/73] IIDX: misc --- iidx@asphyxia/handlers/pc.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index f40c86e..d98557f 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -788,9 +788,8 @@ export const pcget: EPR = async (info, data, send) => { }); } else if (version == 20) { - if (!_.isNil(pcdata.st_stamp)) pcdata.st_stamp = NumArraytoHex(Base64toNumArray(pcdata.st_stamp)); - if (!_.isNil(pcdata.st_help)) pcdata.st_help = NumArraytoHex(Base64toNumArray(pcdata.st_help)); - if (_.isNil(pcdata.st_stamp)) pcdata.st_stamp = ""; // migration // + 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)); 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" }); @@ -844,7 +843,7 @@ export const pcget: EPR = async (info, data, send) => { switch (version) { case 21: - if (!_.isNil(pcdata.st_album)) pcdata.st_album = NumArraytoHex(Base64toNumArray(pcdata.st_album)); + pcdata.st_album = _.isNil(pcdata.st_album) ? "00" : NumArraytoHex(Base64toNumArray(pcdata.st_album)); 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" }); @@ -853,7 +852,7 @@ export const pcget: EPR = async (info, data, send) => { if (!_.isNil(boss1)) boss1.durability = NumArraytoHex(Base64toNumArray(boss1.durability)); break; case 22: - if (!_.isNil(pcdata.st_album)) pcdata.st_album = NumArraytoHex(Base64toNumArray(pcdata.st_album)); + pcdata.st_album = _.isNil(pcdata.st_album) ? "00" : NumArraytoHex(Base64toNumArray(pcdata.st_album)); 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" }); @@ -865,7 +864,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: - if (!_.isNil(pcdata.st_tokimeki)) pcdata.st_tokimeki = NumArraytoHex(Base64toNumArray(pcdata.st_tokimeki)); + pcdata.st_tokimeki = _.isNil(pcdata.st_tokimeki) ? "00" : NumArraytoHex(Base64toNumArray(pcdata.st_tokimeki)); 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" }); From 1ee57ffa6e4c64cd7dab497a52463021a76e121b Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sat, 25 Jan 2025 11:25:09 +0900 Subject: [PATCH 64/73] IIDX: misc 2 --- iidx@asphyxia/handlers/music.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 03171f0..2889dc3 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -807,8 +807,9 @@ export const musicbreg: EPR = async (info, data, send) => { let pgArray = Array(10).fill(0); // PGREAT // let gArray = Array(10).fill(0); // GREAT // - let mArray = Array(10).fill(0); // MISS // + let mArray = Array(10).fill(-1); // MISS // let cArray = Array(10).fill(0); // CLEAR FLAGS // + let rArray = Array(10).fill(-1); // RANK ID // let esArray = Array(10).fill(0); // EXSCORE // let optArray = Array(10).fill(0); // USED OPTION (CastHour) // let opt2Array = Array(10).fill(0); // USED OPTION (CastHour) // @@ -816,17 +817,25 @@ export const musicbreg: EPR = async (info, data, send) => { if (_.isNil(music_data)) { pgArray[clid] = pgnum; gArray[clid] = gnum; - mArray[clid] = -1; + mArray[clid] = -1; // this is not being sent // cArray[clid] = cflg; + rArray[clid] = -1; // this is not being sent // esArray[clid] = exscore; + optArray[clid] = 0; // this is not being sent // + opt2Array[clid] = 0; // this is not being sent // } else { pgArray = music_data.pgArray; gArray = music_data.gArray; mArray = music_data.mArray; cArray = music_data.cArray; esArray = music_data.esArray; - optArray = music_data.optArray; - opt2Array = music_data.opt2Array; + if (!_.isNil(music_data.optArray)) { // migration // + optArray = music_data.optArray; + opt2Array = music_data.opt2Array; + } + if (!_.isNil(music_data.rArray)) { + rArray = music_data.rArray; + } const pExscore = esArray[clid]; if (exscore > pExscore) { @@ -850,6 +859,7 @@ export const musicbreg: EPR = async (info, data, send) => { gArray, mArray, cArray, + rArray, esArray, optArray, opt2Array, From bc4b54dfd8a45a881ed398f79d6085edf549a09f Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sat, 25 Jan 2025 12:07:38 +0900 Subject: [PATCH 65/73] IIDX: Changed music.arenaCPU to make compatible with newer version --- iidx@asphyxia/handlers/music.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 2889dc3..23a207a 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -967,7 +967,7 @@ export const musicarenacpu: EPR = async (info, data, send) => { total_notes.forEach((res) => { score_list.push({ score: K.ITEM("s32", _.random(res, res * 2)), - ghost: K.ITEM("u8", 0), + ghost: version > 30 ? K.ITEM("s8", 0) : K.ITEM("u8", 0), enable_score: K.ITEM("bool", 1), enable_ghost: K.ITEM("bool", 0), }); From 1b277d768c518dec0e21a4059c3f6eadc99f844e Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sat, 25 Jan 2025 17:37:04 +0900 Subject: [PATCH 66/73] IIDX: misc --- iidx@asphyxia/handlers/music.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 23a207a..b4a460d 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -541,7 +541,8 @@ export const musicreg: EPR = async (info, data, send) => { if (version >= 27) ghost_gauge = music_data[clid + 10]; } - if (mnum != -1) mArray[clid] = mArray[clid] == -1 ? mnum : Math.min(mArray[clid], mnum); + if (mnum == -1) mArray[clid] = Math.max(mArray[clid], mnum); // this seems asking for not updating miss count // + else mArray[clid] = mArray[clid] == -1 ? mnum : Math.min(mArray[clid], mnum); cArray[clid] = Math.max(cArray[clid], cflg); } From 7aff5879280989a3f607c44093d94b00f241bb6f Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sun, 26 Jan 2025 16:04:40 +0900 Subject: [PATCH 67/73] IIDX: Moved invalid miss count migration code position --- iidx@asphyxia/handlers/music.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index b4a460d..fa81070 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -527,6 +527,12 @@ export const musicreg: EPR = async (info, data, send) => { rArray = music_data.rArray; } + // migration for invalid miss count // + // if EXSCORE/MISS COUNT is 0 and CLEAR FLAG is NO PLAY then set MISS COUNT to -1 // + for (let a = 0; a < mArray.length; a++) { + if (esArray[a] == 0 && cArray[a] == 0 && mArray[a] == 0) mArray[a] = -1; + } + const pExscore = esArray[clid]; if (exscore > pExscore) { pgArray[clid] = pgnum; @@ -546,12 +552,6 @@ export const musicreg: EPR = async (info, data, send) => { cArray[clid] = Math.max(cArray[clid], cflg); } - // migration for invalid miss count // - // if EXSCORE/MISS COUNT is 0 and CLEAR FLAG is NO PLAY then set MISS COUNT to -1 // - for (let a = 0; a < mArray.length; a++) { - if (esArray[a] == 0 && cArray[a] == 0 && mArray[a] == 0) mArray[a] = -1; - } - if (version >= 27) { // TODO:: support old version // const score_top: score_top | null = await DB.FindOne(null, { collection: "score_top", From 5821ea8b95210c2f353938d0200e9f43b00275ab Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sat, 8 Feb 2025 19:15:59 +0900 Subject: [PATCH 68/73] IIDX: Fixed where music.crate response may not compatible with certain versions --- iidx@asphyxia/handlers/music.ts | 15 +++++---------- iidx@asphyxia/handlers/pc.ts | 2 -- iidx@asphyxia/index.ts | 2 +- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index fa81070..1d4cad3 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -934,20 +934,15 @@ export const musiccrate: EPR = async (info, data, send) => { K.ITEM("str", str, { ver: String(verMid[0]) }) ); } - else if (version < 27) { - c.push( - K.ARRAY("u8", [...indices.map(i => cRate[i]), ...indices.map(i => fcRate[i])], { mid: key }), - ); - } else { - c.push( - K.ARRAY("s32", [...cRate, ...fcRate], { mid: key }), - ); + let rateArray = version < 27 ? [...indices.map(i => cRate[i]), ...indices.map(i => fcRate[i])] : [...cRate, ...fcRate]; + let rateResult = version < 24 ? K.ARRAY("u8", rateArray, { mid: key }) : K.ARRAY("s32", rateArray, { mid: key }); + + c.push(rateResult); } } - if (version == 14 || version == 15) result = { cdata }; - else result = { c }; + result = (version == 14 || version == 15) ? { cdata } : { c }; return send.object(result); } diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index d98557f..da66eec 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -3063,8 +3063,6 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.d_pace = parseInt($(data).attr().d_pace); pcdata.s_gno = parseInt($(data).attr().s_gno); pcdata.d_gno = parseInt($(data).attr().d_gno); - pcdata.s_sub_gno = parseInt($(data).attr().s_sub_gno); - pcdata.d_sub_gno = parseInt($(data).attr().d_sub_gno); pcdata.s_gtype = parseInt($(data).attr().s_gtype); pcdata.d_gtype = parseInt($(data).attr().d_gtype); pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 3e67f21..617ba9f 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -333,7 +333,7 @@ export function register() { name: "忍々七鍵伝", desc: "忍々七鍵伝 Phase", type: "integer", - default: 2, + default: 1, }); R.Config("sb_extraboss", { From 11cbbb9e7ac05467d1d88af575fa2b3c40e39606 Mon Sep 17 00:00:00 2001 From: duel0213 Date: Sat, 8 Feb 2025 20:10:21 +0900 Subject: [PATCH 69/73] IIDX: Fixed where unable to login after event play (copula) --- iidx@asphyxia/index.ts | 2 +- iidx@asphyxia/pug/LDJ/23pcget.pug | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index 617ba9f..e305c54 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -255,7 +255,7 @@ export function register() { default: 9, }); R.Config("pd_boss", { - name: "Event Phase (SP)", + name: "Event Phase (PD)", desc: "Chrono Seeker / Qpronicle Chord / PENDUAL TALISMAN", type: "integer", default: 3, diff --git a/iidx@asphyxia/pug/LDJ/23pcget.pug b/iidx@asphyxia/pug/LDJ/23pcget.pug index ae1a311..1552783 100644 --- a/iidx@asphyxia/pug/LDJ/23pcget.pug +++ b/iidx@asphyxia/pug/LDJ/23pcget.pug @@ -45,7 +45,7 @@ IIDX23pc(status="0") if mystery_line != null event2_data(play_num=mystery_line.play_num now_area=mystery_line.now_stay_area now_note_grade=mystery_line.now_stay_note_grade stop_area_time=mystery_line.stop_area_time) - for (let evt of mystery_line_sub) - event2_area_data(area_no=evt.area_no area_play=evt.area_play normal_point=evt.normal_point hyper_point=evt.hyper_point another_point=evt.another_point) + event2_area_data(area_no=evt.area_no area_play=evt.area_play_num normal_point=evt.normal_point hyper_point=evt.hyper_point another_point=evt.another_point) //-onemore_data(defeat_0 defeat_1 defeat_2 defeat_3 defeat_4 defeat_5 challenge_num_n challenge_num_h challenge_num_a) reflec_collabo(phase1_music_list="-1" phase2_music_list="-1") destiny_catharsis(music_bit="-1") From 8bbe8390eb95c241acfa2b943cae5b3e667dde0c Mon Sep 17 00:00:00 2001 From: duel0213 Date: Fri, 21 Mar 2025 21:04:13 +0900 Subject: [PATCH 70/73] IIDX: Added error message for incompatible score database IIDX: Fixed where unable to login after step up (rootage) IIDX: Reverted `v0.1.15` dev mode hackjob codes IIDX: Line Encoding changes, misc --- iidx@asphyxia/README.md | 10 +- iidx@asphyxia/data/grade.json | 88 +-- iidx@asphyxia/data/music_open.json | 120 ++-- iidx@asphyxia/handlers/gamesystem.ts | 68 +- iidx@asphyxia/handlers/music.ts | 133 ++-- iidx@asphyxia/handlers/pc.ts | 706 +++++++++++--------- iidx@asphyxia/models/arena.ts | 90 +-- iidx@asphyxia/models/badge.ts | 16 +- iidx@asphyxia/models/shop.ts | 10 +- iidx@asphyxia/pug/LDJ/31pcget.pug | 216 +++--- iidx@asphyxia/util.ts | 129 +--- iidx@asphyxia/webui/asset/js/detail.js | 62 +- iidx@asphyxia/webui/asset/js/setting.js | 160 ++--- iidx@asphyxia/webui/profile_-----detail.pug | 134 ++-- iidx@asphyxia/webui/profile_----setting.pug | 480 ++++++------- iidx@asphyxia/webui/profile_---rival.pug | 236 +++---- iidx@asphyxia/webui/profile_--score.pug | 50 +- iidx@asphyxia/webui/profile_-data.pug | 54 +- 18 files changed, 1386 insertions(+), 1376 deletions(-) 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 From d66f9e10856e063e0cd92132856e495a18e9f7fd Mon Sep 17 00:00:00 2001 From: duel0213 Date: Wed, 26 Mar 2025 21:57:20 +0900 Subject: [PATCH 71/73] IIDX: Implemented EXTRA FAVORITE --- iidx@asphyxia/README.md | 4 +- iidx@asphyxia/handlers/pc.ts | 108 +++++++++++++++++++++++++----- iidx@asphyxia/models/favorite.ts | 10 +++ iidx@asphyxia/models/pcdata.ts | 16 ++--- iidx@asphyxia/pug/LDJ/23pcget.pug | 6 ++ iidx@asphyxia/pug/LDJ/24pcget.pug | 6 ++ iidx@asphyxia/pug/LDJ/25pcget.pug | 6 ++ 7 files changed, 129 insertions(+), 27 deletions(-) create mode 100644 iidx@asphyxia/models/favorite.ts diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index d2710f6..13bb41a 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -32,8 +32,7 @@ Features - EVENT (Partial) - ARENA (LOCAL only) - RANDOME LANE TICKET - - FAVORITE/SONG SELECTION NOTES (Partial) - - EXTRA FAVORITE does not support yet + - FAVORITE/SONG SELECTION NOTES - ORIGINAL FILTER --- @@ -151,6 +150,7 @@ Changelogs **v0.1.16** - Added Initial support for EPOLIS - Added music\_open on gameSystem.systemInfo response + - Added EXTRA FAVORITE support - 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) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index f077c9d..02be8d1 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -11,6 +11,7 @@ import { tutorial } from "../models/tutorial"; import { expert } from "../models/ranking"; import { blueboss } from "../models/event"; import { badge } from "../models/badge"; +import { extra_favorite } from "../models/favorite"; export const pccommon: EPR = async (info, data, send) => { const version = GetVersion(info); @@ -523,6 +524,7 @@ export const pcget: EPR = async (info, data, send) => { const expert = await DB.Find(refid, { collection: "expert", version: version }); const world_tourism = await DB.Find(refid, { collection: "world_tourism", version: version }); const badge = await DB.Find(refid, { collection: "badge", version: version }); + const extra_favorite = await DB.Find(refid, { collection: "extra_favorite", version: version }); const lm_settings = await DB.FindOne(refid, { collection: "lightning_settings", version: version }); const lm_playdata = await DB.FindOne(refid, { collection: "lightning_playdata", version: version }); @@ -595,7 +597,7 @@ export const pcget: EPR = async (info, data, send) => { custom.hide_iidxid, custom.disable_beginner_option, ); - let dArray = [], eArray = [], rArray = [], mArray = [], bArray = [], fArray = [], fsArray = []; + let dArray = [], eArray = [], rArray = [], mArray = [], bArray = [], fArray = [], fsArray = [], efArray = []; grade.forEach((res: grade) => { dArray.push([res.style, res.gradeId, res.maxStage, res.archive]); @@ -794,8 +796,8 @@ export const pcget: EPR = async (info, data, send) => { }); } else if (version == 20) { - 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"); + pcdata.st_stamp = _.isNil(pcdata.st_stamp) ? "00" : Buffer.from(pcdata.st_stamp as string, "base64").toString("hex"); + pcdata.st_help = _.isNil(pcdata.st_help) ? "00" : Buffer.from(pcdata.st_help as string, "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" }); @@ -850,7 +852,7 @@ export const pcget: EPR = async (info, data, send) => { switch (version) { case 21: - pcdata.st_album = _.isNil(pcdata.st_album) ? "00" : Buffer.from(pcdata.st_album, "base64").toString("hex"); + pcdata.st_album = _.isNil(pcdata.st_album) ? "00" : Buffer.from(pcdata.st_album as string, "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" }); @@ -859,7 +861,7 @@ export const pcget: EPR = async (info, data, send) => { if (!_.isNil(boss1)) boss1.durability = Buffer.from(boss1.durability, "base64").toString("hex"); break; case 22: - pcdata.st_album = _.isNil(pcdata.st_album) ? "00" : Buffer.from(pcdata.st_album, "base64").toString("hex"); + pcdata.st_album = _.isNil(pcdata.st_album) ? "00" : Buffer.from(pcdata.st_album as string, "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" }); @@ -871,7 +873,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" : Buffer.from(pcdata.st_tokimeki, "base64").toString("hex"); + pcdata.st_tokimeki = _.isNil(pcdata.st_tokimeki) ? "00" : Buffer.from(pcdata.st_tokimeki as string, "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" }); @@ -955,10 +957,23 @@ export const pcget: EPR = async (info, data, send) => { } if (!_.isNil(pcdata.sp_mlist)) { - 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"); + pcdata.sp_mlist = Buffer.from(pcdata.sp_mlist as string, "base64").toString("hex"); + pcdata.sp_clist = Buffer.from(pcdata.sp_clist as string, "base64").toString("hex"); + pcdata.dp_mlist = Buffer.from(pcdata.dp_mlist as string, "base64").toString("hex"); + pcdata.dp_clist = Buffer.from(pcdata.dp_clist as string, "base64").toString("hex"); + } + + if (extra_favorite.length > 0) { + extra_favorite.forEach((res) => { + efArray.push({ + folder_id: res.folder_id, + + sp_mlist: Buffer.from(res.sp_mlist as string, "base64").toString("hex"), + sp_clist: Buffer.from(res.sp_clist as string, "base64").toString("hex"), + dp_mlist: Buffer.from(res.dp_mlist as string, "base64").toString("hex"), + dp_clist: Buffer.from(res.dp_clist as string, "base64").toString("hex") + }); + }); } if (version >= 30) { @@ -1222,6 +1237,7 @@ export const pcget: EPR = async (info, data, send) => { case 23: result = { ...result, + efArray, open_tokotoko, mystery_line, mystery_line_sub, @@ -1230,6 +1246,7 @@ export const pcget: EPR = async (info, data, send) => { case 24: result = { ...result, + efArray, siege_sinobuz, siege_sinobuz_sub, ninja_shichikyoden, @@ -1238,6 +1255,7 @@ export const pcget: EPR = async (info, data, send) => { case 25: result = { ...result, + efArray, rush_cannonracer, rush_cannonracer_sub, }; @@ -2661,6 +2679,27 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.dp_clist = $(data).element("favorite").buffer("dp_clist").toString("base64"); } + let extra_favorite = $(data).elements("extra_favorite"); + if (extra_favorite.length > 0) { + extra_favorite.forEach((res) => { + DB.Upsert(refid, + { + collection: "extra_favorite", + version: version, + folder_id: Number(res.attr().folder_id), + }, + { + $set: { + sp_mlist: res.buffer("sp_mlist").toString("base64"), + sp_clist: res.buffer("sp_clist").toString("base64"), + dp_mlist: res.buffer("dp_mlist").toString("base64"), + dp_clist: res.buffer("dp_clist").toString("base64") + }, + } + ); + }); + } + if (!_.isNil($(data).element("qpro_secret"))) { custom.qpro_secret_head = $(data).element("qpro_secret").bigints("head").map(String); custom.qpro_secret_hair = $(data).element("qpro_secret").bigints("hair").map(String); @@ -2831,6 +2870,27 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.dp_clist = $(data).element("favorite").buffer("dp_clist").toString("base64"); } + let extra_favorite = $(data).elements("extra_favorite"); + if (extra_favorite.length > 0) { + extra_favorite.forEach((res) => { + DB.Upsert(refid, + { + collection: "extra_favorite", + version: version, + folder_id: Number(res.attr().folder_id), + }, + { + $set: { + sp_mlist: res.buffer("sp_mlist").toString("base64"), + sp_clist: res.buffer("sp_clist").toString("base64"), + dp_mlist: res.buffer("dp_mlist").toString("base64"), + dp_clist: res.buffer("dp_clist").toString("base64") + }, + } + ); + }); + } + if (!_.isNil($(data).element("qpro_secret"))) { custom.qpro_secret_head = $(data).element("qpro_secret").bigints("head").map(String); custom.qpro_secret_hair = $(data).element("qpro_secret").bigints("hair").map(String); @@ -3018,6 +3078,27 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.dp_clist = $(data).element("favorite").buffer("dp_clist").toString("base64"); } + let extra_favorite = $(data).elements("extra_favorite"); + if (extra_favorite.length > 0) { + extra_favorite.forEach((res) => { + DB.Upsert(refid, + { + collection: "extra_favorite", + version: version, + folder_id: Number(res.attr().folder_id), + }, + { + $set: { + sp_mlist: res.buffer("sp_mlist").toString("base64"), + sp_clist: res.buffer("sp_clist").toString("base64"), + dp_mlist: res.buffer("dp_mlist").toString("base64"), + dp_clist: res.buffer("dp_clist").toString("base64") + }, + } + ); + }); + } + if (!_.isNil($(data).element("qpro_secret"))) { custom.qpro_secret_head = $(data).element("qpro_secret").bigints("head").map(String); custom.qpro_secret_hair = $(data).element("qpro_secret").bigints("hair").map(String); @@ -3182,13 +3263,6 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.secret_flg3 = $(data).element("secret").bigints("flg3").map(String); } - if (!_.isNil($(data).element("favorite"))) { - 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"))) { custom.qpro_secret_head = $(data).element("qpro_secret").bigints("head").map(String); custom.qpro_secret_hair = $(data).element("qpro_secret").bigints("hair").map(String); diff --git a/iidx@asphyxia/models/favorite.ts b/iidx@asphyxia/models/favorite.ts new file mode 100644 index 0000000..0837c26 --- /dev/null +++ b/iidx@asphyxia/models/favorite.ts @@ -0,0 +1,10 @@ +export interface extra_favorite { + collection: "extra_favorite"; + version: number; + folder_id: number; + + sp_mlist: string | Buffer; + sp_clist: string | Buffer; + dp_mlist: string | Buffer; + dp_clist: string | Buffer; +} diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 61f8018..78dab35 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -143,8 +143,8 @@ export interface pcdata { st_sp_round: number; st_dp_round: number; st_review: number; - st_stamp: any; - st_help: any; // save as base64 string, sent as buffer // + st_stamp: string | Buffer; // save as base64 string, sent as buffer // + st_help: string | Buffer; st_damage: number; // SPADA // st_defeat: number; @@ -156,7 +156,7 @@ export interface pcdata { st_sp_mplay: number; st_dp_mplay: number; st_last_select: number; - st_album: any; + st_album: string | Buffer; // save as base64 string, sent as buffer // st_is_secret: number; // PENDUAL // st_age_list: number; @@ -167,7 +167,7 @@ export interface pcdata { st_station_clear: number; st_station_play: number; st_mission_gauge: number; - st_tokimeki: any; + st_tokimeki: string | Buffer; // save as base64 string, sent as buffer // st_point: number; // Cannon Ballers // @@ -208,10 +208,10 @@ export interface pcdata { p3: number[]; p4: number[]; - sp_mlist: any; // favorite (SPADA), save as base64 string, sent as buffer // - sp_clist: any; - dp_mlist: any; - dp_clist: any; + sp_mlist: string | Buffer; // favorite (SPADA), save as base64 string, sent as buffer // + sp_clist: string | Buffer; + dp_mlist: string | Buffer; + dp_clist: string | Buffer; eb_keyorb: number; // extra boss (Heroic Verse) // eb_bossorb0: number; diff --git a/iidx@asphyxia/pug/LDJ/23pcget.pug b/iidx@asphyxia/pug/LDJ/23pcget.pug index 1552783..55210e4 100644 --- a/iidx@asphyxia/pug/LDJ/23pcget.pug +++ b/iidx@asphyxia/pug/LDJ/23pcget.pug @@ -13,6 +13,12 @@ IIDX23pc(status="0") sp_clist(__type="bin") #{pcdata.sp_clist} dp_mlist(__type="bin") #{pcdata.dp_mlist} dp_clist(__type="bin") #{pcdata.dp_clist} + - for (let ef of efArray) + extra_favorite(folder_id=ef.folder_id) + sp_mlist(__type="bin") #{ef.sp_mlist} + sp_clist(__type="bin") #{ef.sp_clist} + dp_mlist(__type="bin") #{ef.dp_mlist} + dp_clist(__type="bin") #{ef.dp_clist} qpro_secret head(__type="s64" __count="4") -1 -1 -1 -1 hair(__type="s64" __count="4") -1 -1 -1 -1 diff --git a/iidx@asphyxia/pug/LDJ/24pcget.pug b/iidx@asphyxia/pug/LDJ/24pcget.pug index 42e7828..b4d6889 100644 --- a/iidx@asphyxia/pug/LDJ/24pcget.pug +++ b/iidx@asphyxia/pug/LDJ/24pcget.pug @@ -14,6 +14,12 @@ IIDX24pc(status="0") sp_clist(__type="bin") #{pcdata.sp_clist} dp_mlist(__type="bin") #{pcdata.dp_mlist} dp_clist(__type="bin") #{pcdata.dp_clist} + - for (let ef of efArray) + extra_favorite(folder_id=ef.folder_id) + sp_mlist(__type="bin") #{ef.sp_mlist} + sp_clist(__type="bin") #{ef.sp_clist} + dp_mlist(__type="bin") #{ef.dp_mlist} + dp_clist(__type="bin") #{ef.dp_clist} qpro_secret head(__type="s64" __count="4") -1 -1 -1 -1 hair(__type="s64" __count="4") -1 -1 -1 -1 diff --git a/iidx@asphyxia/pug/LDJ/25pcget.pug b/iidx@asphyxia/pug/LDJ/25pcget.pug index 769253c..8c6bf22 100644 --- a/iidx@asphyxia/pug/LDJ/25pcget.pug +++ b/iidx@asphyxia/pug/LDJ/25pcget.pug @@ -14,6 +14,12 @@ IIDX25pc(status="0") sp_clist(__type="bin") #{pcdata.sp_clist} dp_mlist(__type="bin") #{pcdata.dp_mlist} dp_clist(__type="bin") #{pcdata.dp_clist} + - for (let ef of efArray) + extra_favorite(folder_id=ef.folder_id) + sp_mlist(__type="bin") #{ef.sp_mlist} + sp_clist(__type="bin") #{ef.sp_clist} + dp_mlist(__type="bin") #{ef.dp_mlist} + dp_clist(__type="bin") #{ef.dp_clist} qpro_secret head(__type="s64" __count="4") -1 -1 -1 -1 hair(__type="s64" __count="4") -1 -1 -1 -1 From 3bad80d50455f7e4472dafd143576aaad784f73b Mon Sep 17 00:00:00 2001 From: duel0213 <156279499+duel0213@users.noreply.github.com> Date: Thu, 21 Aug 2025 17:29:51 +0900 Subject: [PATCH 72/73] Merge pull request #2 from anzuwork/patch-5 IIDX: Fixed treating head equip as hand equip --- iidx@asphyxia/handlers/pc.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index 02be8d1..bf5979d 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -2456,7 +2456,7 @@ export const pcsave: EPR = async (info, data, send) => { custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); custom.qpro_face = parseInt($(data).attr("qpro_equip").face); custom.qpro_body = parseInt($(data).attr("qpro_equip").body); - custom.qpro_hand = parseInt($(data).attr("qpro_equip").head); + custom.qpro_hand = parseInt($(data).attr("qpro_equip").hand); } if (!_.isNil($(data).element("achievements"))) { @@ -2713,7 +2713,7 @@ export const pcsave: EPR = async (info, data, send) => { custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); custom.qpro_face = parseInt($(data).attr("qpro_equip").face); custom.qpro_body = parseInt($(data).attr("qpro_equip").body); - custom.qpro_hand = parseInt($(data).attr("qpro_equip").head); + custom.qpro_hand = parseInt($(data).attr("qpro_equip").hand); } if (!_.isNil($(data).element("achievements"))) { @@ -2904,7 +2904,7 @@ export const pcsave: EPR = async (info, data, send) => { custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); custom.qpro_face = parseInt($(data).attr("qpro_equip").face); custom.qpro_body = parseInt($(data).attr("qpro_equip").body); - custom.qpro_hand = parseInt($(data).attr("qpro_equip").head); + custom.qpro_hand = parseInt($(data).attr("qpro_equip").hand); } if (hasStepUpData) { @@ -3112,7 +3112,7 @@ export const pcsave: EPR = async (info, data, send) => { custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); custom.qpro_face = parseInt($(data).attr("qpro_equip").face); custom.qpro_body = parseInt($(data).attr("qpro_equip").body); - custom.qpro_hand = parseInt($(data).attr("qpro_equip").head); + custom.qpro_hand = parseInt($(data).attr("qpro_equip").hand); } if (hasStepUpData) { @@ -3276,7 +3276,7 @@ export const pcsave: EPR = async (info, data, send) => { custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); custom.qpro_face = parseInt($(data).attr("qpro_equip").face); custom.qpro_body = parseInt($(data).attr("qpro_equip").body); - custom.qpro_hand = parseInt($(data).attr("qpro_equip").head); + custom.qpro_hand = parseInt($(data).attr("qpro_equip").hand); } if (hasStepUpData) { @@ -3563,7 +3563,7 @@ export const pcsave: EPR = async (info, data, send) => { custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); custom.qpro_face = parseInt($(data).attr("qpro_equip").face); custom.qpro_body = parseInt($(data).attr("qpro_equip").body); - custom.qpro_hand = parseInt($(data).attr("qpro_equip").head); + custom.qpro_hand = parseInt($(data).attr("qpro_equip").hand); } if (hasStepUpData) { From 4427834df4a224f938732f50da5556c9a02cf313 Mon Sep 17 00:00:00 2001 From: duel0213 <156279499+duel0213@users.noreply.github.com> Date: Sat, 27 Sep 2025 12:32:00 +0900 Subject: [PATCH 73/73] IIDX: Initial support added for Pinky Crush --- iidx@asphyxia/README.md | 10 +- iidx@asphyxia/data/grade.json | 48 +- iidx@asphyxia/data/music_open.json | 22 + iidx@asphyxia/handlers/gamesystem.ts | 56 +- iidx@asphyxia/handlers/grade.ts | 53 +- iidx@asphyxia/handlers/music.ts | 59 +- iidx@asphyxia/handlers/pc.ts | 3017 ++++++++++++------- iidx@asphyxia/handlers/ranking.ts | 40 +- iidx@asphyxia/handlers/webui.ts | 48 +- iidx@asphyxia/index.ts | 32 +- iidx@asphyxia/models/activity.ts | 50 + iidx@asphyxia/models/extraboss.ts | 10 + iidx@asphyxia/models/lightning.ts | 15 + iidx@asphyxia/models/pcdata.ts | 132 + iidx@asphyxia/pug/LDJ/32pcget.pug | 155 + iidx@asphyxia/util.ts | 6 +- iidx@asphyxia/webui/profile_-----detail.pug | 3 +- iidx@asphyxia/webui/profile_----setting.pug | 3 +- 18 files changed, 2539 insertions(+), 1220 deletions(-) create mode 100644 iidx@asphyxia/models/activity.ts create mode 100644 iidx@asphyxia/models/extraboss.ts create mode 100644 iidx@asphyxia/pug/LDJ/32pcget.pug diff --git a/iidx@asphyxia/README.md b/iidx@asphyxia/README.md index 13bb41a..56d6bd8 100644 --- a/iidx@asphyxia/README.md +++ b/iidx@asphyxia/README.md @@ -1,6 +1,6 @@ # beatmaniaIIDX -Plugin Version: **v0.1.16** +Plugin Version: **v0.1.17** --- @@ -23,6 +23,7 @@ Supported Versions - beatmaniaIIDX 29 CastHour (2022082400) - beatmaniaIIDX 30 RESIDENT (2023090500) - beatmaniaIIDX 31 EPOLIS (2024082600) + - beatmaniaIIDX 32 Pinky Crush (2025082500) --- @@ -43,9 +44,8 @@ Known Issues - LEGGENDARIA play records before HEROIC VERSE may not display on higher version due to missing conversion code - SUPER FUTURE 2323 play records doesn't display on other version due to missing conversion code - ONE MORE EXTRA STAGE progress won't save (can't test this due to skill issue) - - Some of licensed songs are locked behind due to missing license element (needs to be verified) + - Some of licensed songs are locked behind (kinda solved with music\_open but needs to be verified) - Some of badges aren't saving in RESIDENT ~ (needs to figure out name to id) - - QPRO may have wrong item if you equipped item from STEP UP result (this probably caused by qpro\_secret\_flg being -1) --- @@ -161,6 +161,10 @@ Changelogs - 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 ~) + - Fixed where qpro head equip request handle as hand equip (@anzuwork) - 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 + +**v0.1.17** + - Added Initial support for Pinky Crush diff --git a/iidx@asphyxia/data/grade.json b/iidx@asphyxia/data/grade.json index df543f6..970189b 100644 --- a/iidx@asphyxia/data/grade.json +++ b/iidx@asphyxia/data/grade.json @@ -4,7 +4,7 @@ "15": { "music_id": [ 25090, 23068, 19004, 29045 ], "class_id": [ 3, 3, 3, 3 ], - "kind": 0 + "kind": 0 }, "16": { "music_id": [ 23005, 27078, 22065, 27060 ], @@ -44,5 +44,51 @@ "kind": 0 } } + }, + "32": { + "0": { + "15": { + "music_id": [ 19022, 30033, 27013, 29045 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + }, + "16": { + "music_id": [ 27034, 24023, 16009, 25085 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + }, + "17": { + "music_id": [ 26087, 19002, 29050, 30024 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + }, + "18": { + "music_id": [ 30052, 18032, 16020, 12004 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + } + }, + "1": { + "15": { + "music_id": [ 12002, 31063, 23046, 30020 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + }, + "16": { + "music_id": [ 26106, 14021, 29052, 23075 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + }, + "17": { + "music_id": [ 29042, 26043, 17017, 28005 ], + "class_id": [ 3, 3, 3, 3 ], + "kind": 0 + }, + "18": { + "music_id": [ 25007, 29017, 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 b37e248..0da4f89 100644 --- a/iidx@asphyxia/data/music_open.json +++ b/iidx@asphyxia/data/music_open.json @@ -56,5 +56,27 @@ "31110": { "kind": 0 }, "31112": { "kind": 0 }, "31113": { "kind": 0 } + }, + "32": { + "32022": { "kind": 0 }, + "32049": { "kind": 0 }, + "32078": { "kind": 0 }, + "32079": { "kind": 0 }, + "32080": { "kind": 0 }, + "32081": { "kind": 0 }, + "32082": { "kind": 0 }, + "32083": { "kind": 0 }, + "32084": { "kind": 0 }, + "32085": { "kind": 0 }, + "32096": { "kind": 0 }, + "32097": { "kind": 0 }, + "32098": { "kind": 0 }, + "32019": { "kind": 0 }, + "32101": { "kind": 0 }, + "32102": { "kind": 0 }, + "32103": { "kind": 0 }, + "32104": { "kind": 0 }, + "32110": { "kind": 0 }, + "32111": { "kind": 0 } } } diff --git a/iidx@asphyxia/handlers/gamesystem.ts b/iidx@asphyxia/handlers/gamesystem.ts index fa63eaa..e67e939 100644 --- a/iidx@asphyxia/handlers/gamesystem.ts +++ b/iidx@asphyxia/handlers/gamesystem.ts @@ -19,17 +19,14 @@ 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", "utf-8")); if (!_.isNil(music_open[version])) { - result = { - ...result, - music_open: [], - } + result = Object.assign(result, { music_open: [] }); Object.keys(music_open).forEach(v => { Object.keys(music_open[v]).forEach(m => { - if (parseInt(v) > version) return; + if (Number(v) > version) return; result.music_open.push({ - music_id: K.ITEM("s32", parseInt(m)), + music_id: K.ITEM("s32", Number(m)), kind: K.ITEM("s32", music_open[v][m].kind), }); }); @@ -37,16 +34,14 @@ export const gssysteminfo: EPR = async (info, data, send) => { } switch (version) { - case 31: - result.arena_schedule = { - ...result.arena_schedule, - rule_type: K.ITEM("u8", 0), // arena rule for online // - } + case 32: + result.arena_schedule.phase = K.ITEM("u8", 3); + result.arena_schedult = Object.assign(result.arena_schedule, { season: K.ITEM("u8", 0) }); // arena season for online // - result = { - ...result, - grade_course: [], - } + case 31: + result.arena_schedult = Object.assign(result.arena_schedule, { rule_type: K.ITEM("u8", 0) }); // arena rule for online // + + result = Object.assign(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", "utf-8")); @@ -54,8 +49,8 @@ export const gssysteminfo: EPR = async (info, data, send) => { 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)), + play_style: K.ITEM("s32", Number(s)), + grade_id: K.ITEM("s32", Number(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]), @@ -109,8 +104,7 @@ export const gssysteminfo: EPR = async (info, data, send) => { switch (version) { case 29: - result = { - ...result, + result = Object.assign(result, { CommonBossPhase: K.ATTR({ val: String(3) }), Event1InternalPhase: K.ATTR({ val: String(U.GetConfig("ch_event")) }), ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("ch_extraboss")) }), @@ -119,11 +113,10 @@ export const gssysteminfo: EPR = async (info, data, send) => { isEiseiOpenFlg: K.ATTR({ val: String(Number(U.GetConfig("Eisei"))) }), WorldTourismOpenList: K.ATTR({ val: String(-1) }), BPLBattleOpenPhase: K.ATTR({ val: String(2) }), - } + }); break; case 30: - result = { - ...result, + result = Object.assign(result, { CommonBossPhase: K.ATTR({ val: String(3) }), Event1InternalPhase: K.ATTR({ val: String(U.GetConfig("rs_event")) }), ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("rs_extraboss")) }), @@ -132,7 +125,7 @@ export const gssysteminfo: EPR = async (info, data, send) => { isEiseiOpenFlg: K.ATTR({ val: String(Number(U.GetConfig("Eisei"))) }), WorldTourismOpenList: K.ATTR({ val: String(-1) }), BPLBattleOpenPhase: K.ATTR({ val: String(2) }), - } + }) break; case 31: let totalMetron = 0; @@ -148,8 +141,7 @@ export const gssysteminfo: EPR = async (info, data, send) => { }); } - result = { - ...result, + Object.assign(result, { CommonBossPhase: K.ATTR({ val: String(3) }), Event1Value: K.ATTR({ val: String(U.GetConfig("ep_event")) }), Event1Phase: K.ATTR({ val: String(U.GetConfig("ep_event1")) }), @@ -162,7 +154,19 @@ export const gssysteminfo: EPR = async (info, data, send) => { UnlockLeggendaria: K.ATTR({ val: String(1) }), BPLSerialCodePhase: K.ATTR({ val: String(0) }), Event1AllPlayerTotalGetMetron: K.ATTR({ val: String(totalMetron) }), // total amount of all users metron // - } + }); + break; + case 32: + result = Object.assign(result, { + Event1Value: K.ATTR({ val: String(U.GetConfig("pc_event")) }), // TEST // + Event1Phase: K.ATTR({ val: String(U.GetConfig("pc_event1")) }), // TEST // + Event2Phase: K.ATTR({ val: String(U.GetConfig("pc_event2")) }), // TEST // + ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("pc_extraboss")) }), // TEST // + isNewSongAnother12OpenFlg: K.ATTR({ val: String(Number(U.GetConfig("NewSongAnother12"))) }), + isKiwamiOpenFlg: K.ATTR({ val: String(Number(U.GetConfig("Eisei"))) }), + WorldTourismOpenList: K.ATTR({ val: String(-1) }), + OldBPLBattleOpenPhase: K.ATTR({ val: String(3) }), + }); break; default: diff --git a/iidx@asphyxia/handlers/grade.ts b/iidx@asphyxia/handlers/grade.ts index 5266212..fec600e 100644 --- a/iidx@asphyxia/handlers/grade.ts +++ b/iidx@asphyxia/handlers/grade.ts @@ -6,13 +6,13 @@ import { badge } from "../models/badge"; export const graderaised: EPR = async (info, data, send) => { const version = GetVersion(info); - const iidxid = parseInt($(data).attr().iidxid); + const iidxid = Number($(data).attr().iidxid); const refid = await IDtoRef(iidxid); - const gid = parseInt($(data).attr().gid); - const gtype = parseInt($(data).attr().gtype); + const gid = Number($(data).attr().gid); + const gtype = Number($(data).attr().gtype); - let cflg = parseInt($(data).attr().cflg); - let achi = parseInt($(data).attr().achi); + let cflg = Number($(data).attr().cflg); + let achi = Number($(data).attr().achi); let pcdata = await DB.FindOne(refid, { collection: "pcdata", version: version }); let grade = await DB.FindOne(refid, { @@ -22,7 +22,7 @@ export const graderaised: EPR = async (info, data, send) => { gradeId: gid, }); - if (version >= 23) cflg = parseInt($(data).attr().cstage); + if (version >= 23) cflg = Number($(data).attr().cstage); const isTDJ = !_.isNil($(data).element("lightning_play_data")); // lightning model // const hasEiseiData = (!_.isNil($(data).element("eisei_data")) || !_.isNil($(data).element("eisei_grade_data")) || !_.isNil($(data).element("kiwami_data"))); @@ -40,20 +40,20 @@ export const graderaised: EPR = async (info, data, send) => { switch (version) { case 27: - eisei_clear_type = parseInt($(data).attr("eisei_data").clear_type); - eisei_grade_id = parseInt($(data).attr("eisei_data").grade_id); - eisei_grade_type = parseInt($(data).attr("eisei_data").grade_type); - eisei_stage_num = parseInt($(data).attr("eisei_data").stage_num); + eisei_clear_type = Number($(data).attr("eisei_data").clear_type); + eisei_grade_id = Number($(data).attr("eisei_data").grade_id); + eisei_grade_type = Number($(data).attr("eisei_data").grade_type); + eisei_stage_num = Number($(data).attr("eisei_data").stage_num); eisei_past_achievement = $(data).element("eisei_data").numbers("past_achievement"); eisei_max_past_achievement = $(data).element("eisei_data").numbers("max_past_achievement"); break; case 30: - eisei_clear_type = parseInt($(data).element("eisei_data").attr().clear_type); - eisei_grade_id = parseInt($(data).element("eisei_data").attr().grade_id); - eisei_grade_type = parseInt($(data).element("eisei_data").attr().grade_type); - eisei_stage_num = parseInt($(data).element("eisei_data").attr().stage_num); - eisei_option = parseInt($(data).element("eisei_data").attr().option); + eisei_clear_type = Number($(data).element("eisei_data").attr().clear_type); + eisei_grade_id = Number($(data).element("eisei_data").attr().grade_id); + eisei_grade_type = Number($(data).element("eisei_data").attr().grade_type); + eisei_stage_num = Number($(data).element("eisei_data").attr().stage_num); + eisei_option = Number($(data).element("eisei_data").attr().option); eisei_past_achievement = $(data).element("eisei_data").numbers("past_achievement"); eisei_past_selected_course = $(data).element("eisei_data").numbers("past_selected_course"); @@ -61,11 +61,12 @@ export const graderaised: EPR = async (info, data, send) => { eisei_max_past_selected_course = $(data).element("eisei_data").numbers("max_past_selected_course"); break; case 31: - eisei_clear_type = parseInt($(data).attr("kiwami_data").clear_type); - eisei_grade_id = parseInt($(data).attr("kiwami_data").grade_id); - eisei_grade_type = parseInt($(data).attr("kiwami_data").grade_type); - eisei_stage_num = parseInt($(data).attr("kiwami_data").stage_num); - eisei_option = parseInt($(data).attr("kiwami_data").option); + case 32: + eisei_clear_type = Number($(data).attr("kiwami_data").clear_type); + eisei_grade_id = Number($(data).attr("kiwami_data").grade_id); + eisei_grade_type = Number($(data).attr("kiwami_data").grade_type); + eisei_stage_num = Number($(data).attr("kiwami_data").stage_num); + eisei_option = Number($(data).attr("kiwami_data").option); eisei_past_achievement = $(data).element("kiwami_data").numbers("past_achievement"); eisei_past_selected_course = $(data).element("kiwami_data").numbers("past_selected_course"); @@ -74,10 +75,10 @@ export const graderaised: EPR = async (info, data, send) => { break; default: - eisei_clear_type = parseInt($(data).attr("eisei_grade_data").clear_type); - eisei_grade_id = parseInt($(data).attr("eisei_grade_data").grade_id); - eisei_grade_type = parseInt($(data).attr("eisei_grade_data").grade_type); - eisei_stage_num = parseInt($(data).attr("eisei_grade_data").stage_num); + eisei_clear_type = Number($(data).attr("eisei_grade_data").clear_type); + eisei_grade_id = Number($(data).attr("eisei_grade_data").grade_id); + eisei_grade_type = Number($(data).attr("eisei_grade_data").grade_type); + eisei_stage_num = Number($(data).attr("eisei_grade_data").stage_num); eisei_past_achievement = $(data).element("eisei_grade_data").numbers("past_achievement"); eisei_past_selected_course = $(data).element("eisei_grade_data").numbers("past_selected_course"); @@ -181,11 +182,11 @@ export const graderaised: EPR = async (info, data, send) => { collection: "badge", version: version, category_name: "grade", - flg_id: parseInt($(data).attr("badge").badge_flg_id), + flg_id: Number($(data).attr("badge").badge_flg_id), }, { $set: { - flg: parseInt($(data).attr("badge").badge_flg), + flg: Number($(data).attr("badge").badge_flg), } } ); diff --git a/iidx@asphyxia/handlers/music.ts b/iidx@asphyxia/handlers/music.ts index 0758e87..931dc8f 100644 --- a/iidx@asphyxia/handlers/music.ts +++ b/iidx@asphyxia/handlers/music.ts @@ -1,9 +1,10 @@ -import { IDtoRef, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide, ReftoQPRO, NumArrayToString, OldMidToVerMid } from "../util"; +import { IDtoRef, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide, ReftoQPRO, NumArrayToString, OldMidToVerMid, GetWeekId } from "../util"; import { score, score_top } from "../models/score"; import { profile } from "../models/profile"; import { shop_data } from "../models/shop"; import { tutorial } from "../models/tutorial"; import { badge } from "../models/badge"; +import { activity_mybest } from "../models/activity"; export const musicgetrank: EPR = async (info, data, send) => { const version = GetVersion(info); @@ -689,6 +690,51 @@ export const musicreg: EPR = async (info, data, send) => { } } + let date = new Date(); + if (!_.isNil($(data).element("best_result"))) { + await DB.Upsert( + refid, + { + collection: "activity_mybest", + version: version, + + play_style: Number($(data).attr("best_result").play_style), + play_side: Number($(data).attr("best_result").play_side), + music_id: Number($(data).attr("best_result").music_id), + note_id: Number($(data).attr("best_result").note_id), + }, + { + $set: { + target_graph: Number($(data).attr("best_result").target_graph), + target_score: Number($(data).attr("best_result").target_score), + pacemaker: Number($(data).attr("best_result").pacemaker), + best_clear: Number($(data).attr("best_result").best_clear), + best_score: Number($(data).attr("best_result").best_score), + best_misscount: Number($(data).attr("best_result").best_misscount), + now_clear: Number($(data).attr("best_result").now_clear), + now_score: Number($(data).attr("best_result").now_score), + now_misscount: Number($(data).attr("best_result").now_misscount), + now_pgreat: Number($(data).attr("best_result").now_pgreat), + now_great: Number($(data).attr("best_result").now_great), + now_good: Number($(data).attr("best_result").now_good), + now_bad: Number($(data).attr("best_result").now_bad), + now_poor: Number($(data).attr("best_result").now_poor), + now_combo: Number($(data).attr("best_result").now_combo), + now_fast: Number($(data).attr("best_result").now_fast), + now_slow: Number($(data).attr("best_result").now_slow), + option: Number($(data).attr("best_result").option), + option_2: Number($(data).attr("best_result").option2), + ghost_gauge_data: $(data).element("best_result").buffer("ghost_gauge_data").toString("base64"), + gauge_type: Number($(data).attr("best_result").gauge_type), + result_type: Number($(data).attr("best_result").result_type), + is_special_result: Number($(data).element("best_result").bool("is_special_result")), + + update_date: Math.floor(date.valueOf() / 1000), + } + } + ); + } + let shop_rank = -1, shop_rank_data = []; let scores: any[][]; scores = ( @@ -769,14 +815,9 @@ export const musicreg: EPR = async (info, data, send) => { } }); - if (version > 23) { - crate = Math.round((cflgs / shop_rank_data.length) * 1000); - frate = Math.round((fcflgs / shop_rank_data.length) * 1000); - } - else { - crate = Math.round((cflgs / shop_rank_data.length) * 100); - frate = Math.round((fcflgs / shop_rank_data.length) * 100); - } + let rate = version > 23 ? 1000 : 100; + crate = Math.round((cflgs / shop_rank_data.length) * rate); + frate = Math.round((fcflgs / shop_rank_data.length) * rate); let result: any = { "@attr": { diff --git a/iidx@asphyxia/handlers/pc.ts b/iidx@asphyxia/handlers/pc.ts index bf5979d..b20f6c1 100644 --- a/iidx@asphyxia/handlers/pc.ts +++ b/iidx@asphyxia/handlers/pc.ts @@ -1,8 +1,8 @@ -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 { 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, IIDX32_pcdata } from "../models/pcdata"; import { grade } from "../models/grade"; import { custom, default_custom } from "../models/custom"; -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 { IDtoCode, IDtoRef, GetVersion, ReftoProfile, ReftoPcdata, ReftoQPRO, appendSettingConverter, NumArrayToString, GetWeekId } from "../util"; +import { eisei_grade, eisei_grade_data, lightning_custom, lightning_musicfilter, lightning_musicfilter_sort, lightning_musicmemo, lightning_musicmemo_new, lightning_playdata, lightning_settings, lm_customdata, lm_playdata, lm_settings, lm_settings_new, musicfilter_data, musicfilter_sort_data, musicmemo_data, musicmemo_data_new } from "../models/lightning"; import { profile, default_profile } from "../models/profile"; import { rival, rival_data } from "../models/rival"; import { world_tourism } from "../models/worldtourism"; @@ -12,6 +12,8 @@ import { expert } from "../models/ranking"; import { blueboss } from "../models/event"; import { badge } from "../models/badge"; import { extra_favorite } from "../models/favorite"; +import { activity, activity_mybest } from "../models/activity"; +import { extra_boss } from "../models/extraboss"; export const pccommon: EPR = async (info, data, send) => { const version = GetVersion(info); @@ -28,18 +30,16 @@ export const pccommon: EPR = async (info, data, send) => { // exposing these to plugin setting or use static value // switch (version) { case 14: - result = { - ...result, + result = Object.assign(result, { gshop: { "@attr": { vipg: "0" } // TODO:: verify // } - } + }); break; case 15: break; case 16: - result = { - ...result, + result = Object.assign(result, { cmd: K.ATTR({ gmbl: String(Number(U.GetConfig("cmd_gmbl"))), gmbla: String(Number(U.GetConfig("cmd_gmbla"))), @@ -48,11 +48,10 @@ export const pccommon: EPR = async (info, data, send) => { hrnd: String(Number(U.GetConfig("cmd_hrnd"))), alls: String(Number(U.GetConfig("cmd_alls"))), }), - } + }); break; case 17: - result = { - ...result, + result = Object.assign(result, { cmd: K.ATTR({ gmbl: String(Number(U.GetConfig("cmd_gmbl"))), gmbla: String(Number(U.GetConfig("cmd_gmbla"))), @@ -62,10 +61,9 @@ export const pccommon: EPR = async (info, data, send) => { alls: String(Number(U.GetConfig("cmd_alls"))), }), lg: K.ATTR({ lea: String(U.GetConfig("sr_league")) }), - } + }); case 18: - result = { - ...result, + result = Object.assign(result, { cmd: K.ATTR({ gmbl: String(Number(U.GetConfig("cmd_gmbl"))), gmbla: String(Number(U.GetConfig("cmd_gmbla"))), @@ -78,20 +76,18 @@ export const pccommon: EPR = async (info, data, send) => { lf: K.ATTR({ life: String(U.GetConfig("ra_story")) }), ev: K.ATTR({ pha: String(U.GetConfig("ra_event")) }), lincle: K.ATTR({ phase: String(U.GetConfig("ra_lincle")) }) - } + }); break; case 19: - result = { - ...result, + result = Object.assign(result, { lincle: K.ATTR({ phase: String(U.GetConfig("lc_lincle")) }), boss: K.ATTR({ phase: String(U.GetConfig("lc_boss")) }), mr_secret: K.ATTR({ flg: String(-1) }), travel: K.ATTR({ flg: String(-1) }), - } + }); break; case 20: - result = { - ...result, + result = Object.assign(result, { limit: K.ATTR({ phase: String(U.GetConfig("tr_limit")) }), boss: K.ATTR({ phase: String(U.GetConfig("tr_boss")) }), red: K.ATTR({ phase: String(U.GetConfig("tr_red")) }), @@ -99,11 +95,10 @@ export const pccommon: EPR = async (info, data, send) => { medal: K.ATTR({ phase: String(U.GetConfig("tr_medal")) }), cafe: K.ATTR({ open: String(Number(U.GetConfig("tr_cafe"))) }), tricolettepark: K.ATTR({ open: String(Number(U.GetConfig("tr_tripark"))) }), - } + }); break; case 21: - result = { - ...result, + result = Object.assign(result, { limit: K.ATTR({ phase: String(U.GetConfig("sp_limit")) }), boss: K.ATTR({ phase: String(U.GetConfig("sp_boss")) }), boss1: K.ATTR({ phase: String(U.GetConfig("sp_boss1")) }), @@ -116,11 +111,10 @@ export const pccommon: EPR = async (info, data, send) => { gumi_event: {}, newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), superstar: K.ATTR({ phase: String(U.GetConfig("sp_superstar")) }), - } + }); break; case 22: - result = { - ...result, + result = Object.assign(result, { license: { string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, @@ -139,11 +133,10 @@ export const pccommon: EPR = async (info, data, send) => { expert_secret_full_open: {}, eappli_expert: {}, eaorder: {}, - } + }); break; case 23: - result = { - ...result, + result = Object.assign(result, { license: { string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, @@ -162,11 +155,10 @@ export const pccommon: EPR = async (info, data, send) => { virtual_coin: K.ATTR({ phase: String(1) }), reflec_volzza_collabo: {}, bemani_summer2016: K.ATTR({ phase: String(U.GetConfig("cp_bemanisummer")) }), - } + }); break; case 24: - result = { - ...result, + result = Object.assign(result, { license: { string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, @@ -179,11 +171,10 @@ export const pccommon: EPR = async (info, data, send) => { event2_phase: K.ATTR({ phase: String(U.GetConfig("sb_event2")) }), eaorder_phase: K.ATTR({ phase: String(2) }), // TODO:: figure out what this does // common_evnet: K.ATTR({ flg: String(-1) }), // TODO:: figure out what this does // - } + }); break; case 25: - result = { - ...result, + result = Object.assign(result, { license: { string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, @@ -195,11 +186,10 @@ export const pccommon: EPR = async (info, data, send) => { newsong_another: K.ATTR({ open: String(Number(U.GetConfig("NewSongAnother12"))) }), eaorder_phase: K.ATTR({ phase: String(2) }), // TODO:: figure out what this does // common_evnet: K.ATTR({ flg: String(-1) }), // TODO:: figure out what this does // - } + }); break; case 26: - result = { - ...result, + result = Object.assign(result, { license: { string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // }, @@ -215,11 +205,10 @@ export const pccommon: EPR = async (info, data, send) => { event2_phase: K.ATTR({ phase: String(U.GetConfig("rt_event2")) }), system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }), anniv20_phase: K.ATTR({ phase: String(8) }), // TODO:: figure out what this does // - } + }); break; case 27: - result = { - ...result, + result = Object.assign(result, { movie_agreement: K.ATTR({ version: String(1) }), license: { string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // @@ -238,11 +227,10 @@ export const pccommon: EPR = async (info, data, send) => { premium_area_qpro: K.ATTR({ open: String(1) }), play_video: {}, display_asio_logo: {}, - } + }); break; case 28: - result = { - ...result, + result = Object.assign(result, { movie_agreement: K.ATTR({ version: String(1) }), license: { string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // @@ -265,11 +253,10 @@ export const pccommon: EPR = async (info, data, send) => { world_tourism: K.ATTR({ open_list: String(-1) }), bpl_battle: K.ATTR({ phase: String(1) }), display_asio_logo: {}, - } + }); break; case 29: - result = { - ...result, + result = Object.assign(result, { movie_agreement: K.ATTR({ version: String(1) }), license: { string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // @@ -293,11 +280,10 @@ export const pccommon: EPR = async (info, data, send) => { bpl_battle: K.ATTR({ phase: String(1) }), display_asio_logo: {}, lane_gacha: {}, - } + }); break; case 30: - result = { - ...result, + result = Object.assign(result, { movie_agreement: K.ATTR({ version: String(1) }), license: { string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // @@ -315,11 +301,10 @@ export const pccommon: EPR = async (info, data, send) => { lane_gacha: {}, tourism_booster: {}, ameto_event: {}, - } + }); break; case 31: - result = { - ...result, + result = Object.assign(result, { movie_agreement: K.ATTR({ version: String(1) }), license: { string: K.ITEM("bin", Buffer.from([0x00])), // TODO:: figure out what this does (alloc size: 600) // @@ -336,7 +321,77 @@ export const pccommon: EPR = async (info, data, send) => { display_asio_logo: {}, lane_gacha: {}, tourism_booster: {}, - } + }); + break; + case 32: + result = Object.assign(result, { + movie_agreement: K.ATTR({ version: String(1) }), + license: { + string: K.ITEM("bin", Buffer.alloc(0)), // TODO:: figure out what this does (alloc size: 600) // + }, + movie_upload: K.ATTR({ url: String(U.GetConfig("MovieUpload")) }), + vip_pass_black: {}, + deller_bonus: K.ATTR({ open: String(1) }), + common_evnet: K.ATTR({ flg: String(-1) }), + /*system_voice: { + season: [ + { + "@attr": { + season: String(0), + s_m: String(0), + s_f: String(0), + e_m: String(0), + e_f: String(0), + } + }, + { + "@attr": { + season: String(1), + s_m: String(1), + s_f: String(0), + e_m: String(0), + e_f: String(0), + } + }, + { + "@attr": { + season: String(2), + s_m: String(1), + s_f: String(1), + e_m: String(0), + e_f: String(0), + } + }, + { + "@attr": { + season: String(3), + s_m: String(1), + s_f: String(1), + e_m: String(1), + e_f: String(0), + } + }, + { + "@attr": { + season: String(4), + s_m: String(1), + s_f: String(1), + e_m: String(1), + e_f: String(1), + } + } + ] + },*/ + play_video: {}, + music_retry: {}, + display_asio_logo: {}, + lane_gacha: {}, + tourism_booster: {}, + disable_same_triger: K.ATTR({ frame: String(0) }), + //fps_fix: {}, + //fix_framerate: {}, + fix_real: {}, + }); break; default: @@ -425,6 +480,12 @@ export const pcreg: EPR = async (info, data, send) => { lightning_settings = lm_settings_new; lightning_custom = lm_customdata; break; + case 32: + pcdata = IIDX32_pcdata; + lightning_playdata = lm_playdata; + lightning_settings = lm_settings_new; + lightning_custom = lm_customdata; + break; default: return send.deny(); @@ -438,7 +499,7 @@ export const pcreg: EPR = async (info, data, send) => { { $set: { name: $(data).attr().name, - pid: parseInt($(data).attr().pid), + pid: Number($(data).attr().pid), id, idstr, ...default_profile, @@ -532,6 +593,7 @@ export const pcget: EPR = async (info, data, send) => { const lm_music_memo = await DB.Find(refid, { collection: "lightning_musicmemo", version: version }); const lm_music_memo_new = await DB.Find(refid, { collection: "lightning_musicmemo_new", version: version }); const lm_music_filter = await DB.Find(refid, { collection: "lightning_musicfilter", version: version }); + const lm_music_filter_sort = await DB.Find(refid, { collection: "lightning_musicfilter_sort", version: version }); let lm_custom: any = await DB.FindOne(refid, { collection: "lightning_custom", version: version }); if (_.isNil(pcdata)) return send.deny(); @@ -846,9 +908,13 @@ export const pcget: EPR = async (info, data, send) => { anniv20 = null, epo_res = null, epo_res_sub = [], + pinky_ug = null, + pinky_ug_hall = [], + pinky_ug_qpro = [], event_1 = null, event_1s = null, - evtArray = [], evtArray2 = [], evtArray3 = []; + evtArray = [], evtArray2 = [], evtArray3 = [], + ebeArray = []; switch (version) { case 21: @@ -937,6 +1003,45 @@ export const pcget: EPR = async (info, data, send) => { epo_res = await DB.FindOne(refid, { collection: "event_1", version: version, event_data: "epores" }); epo_res_sub = await DB.Find(refid, { collection: "event_1_sub", version: version, event_data: "epores_system" }); break; + case 32: + event_1 = await DB.Find(refid, { collection: "event_1", version: version }); + event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version }); + + if (event_1.length > 0) { + for (let evt of event_1) { + evt.hire_num = _.isNil(evt.hire_num) ? 0 : evt.hire_num; + evt.flg_l = _.isNil(evt.flg_l) ? 0 : Number(evt.flg_l); + + if (_.isNil(evt.event_data)) evtArray.push(evt); + } + } + + if (event_1s.length > 0) { + for (let evt of event_1s) { + if (_.isNil(evt.event_data)) evtArray2.push(evt); + } + } + + rArray.forEach((res, idx) => { + evtArray3.push({ + index: idx, + + iidx_id: res.profile[2], + name: res.profile[0], + + head: res.qprodata[1], + hair: res.qprodata[0], + face: res.qprodata[2], + body: res.qprodata[3], + hand: res.qprodata[4], + back: res.qprodata[5], + }); + }); + + pinky_ug = await DB.FindOne(refid, { collection: "event_1", version: version, event_data: "pinkyunderground" }); + pinky_ug_hall = await DB.Find(refid, { collection: "event_1_sub", version: version, event_data: "pinkyunderground_hall" }); + pinky_ug_qpro = await DB.Find(refid, { collection: "event_1_sub", version: version, event_data: "pinkyunderground_hall_qpro" }); + break; default: event_1 = await DB.Find(refid, { collection: "event_1", version: version }); @@ -1008,6 +1113,19 @@ export const pcget: EPR = async (info, data, send) => { }); fArray.sort((a: musicfilter_data, b: musicfilter_data): number => a.play_style - b.play_style || a.folder_id - b.folder_id); } + + if (lm_music_filter_sort.length > 0) { + lm_music_filter_sort.forEach((res) => { + let musicfiltersort_data: musicfilter_sort_data = { + play_style: res.play_style, + folder_id: res.folder_id, + sort: res.sort + }; + + fsArray.push(musicfiltersort_data); + }); + fsArray.sort((a: musicfilter_sort_data, b: musicfilter_sort_data): number => a.play_style - b.play_style || a.folder_id - b.folder_id); + } } else if (version >= 27) { if (lm_music_memo.length > 0) { @@ -1169,6 +1287,16 @@ export const pcget: EPR = async (info, data, send) => { }); }); break; + case 32: + event1 = badge.filter((res) => res.category_name === "event1"); + event1.forEach((res) => { + bArray.push({ + id: 13, + flg_id: res.flg_id, + flg: res.flg, + }); + }); + break; default: break; @@ -1205,6 +1333,302 @@ export const pcget: EPR = async (info, data, send) => { bArray.sort((a, b) => a.id - b.id || a.flg_id - b.flg_id); } + // theres must be better way to do this but hey it works // + const date = new Date(); + const monthStr = `${date.getMonth() + 1}`.padStart(2, "0"); + const dayStr = `${date.getDate()}`.padStart(2, "0"); + const activityDayId = date.getDay(); + const activityTimestamp = Math.floor(date.valueOf() / 1000); // unix timestamp (seconds) // + const activityDateStr = Number(`${date.getFullYear()}${monthStr}${dayStr}`); + const activity = await DB.Find(refid, { + collection: "activity", + version: version, + }); + const activityTodaySP = activity.find((res) => res.play_style == 0 && res.date == activityDateStr); + const activityTodayDP = activity.find((res) => res.play_style == 1 && res.date == activityDateStr); + + let activityWeekSP = []; + let activityWeekDP = []; + let weekDates = []; + let weekDays = [Math.floor(date.valueOf() / 1000)]; + for (let a = 1; a < 6; a++) { + weekDays.push(new Date(weekDays[a - 1]).getTime() - 7 * 24 * 60 * 60); + } + weekDays = weekDays.reverse(); + + weekDays.forEach((res) => { + let weekDate = new Date(Math.floor(res * 1000)); + let weekDateMonthStr = `${weekDate.getMonth() + 1}`.padStart(2, "0"); + let weekDateDayStr = `${weekDate.getDate()}`.padStart(2, "0"); + weekDates.push(Number(`${weekDate.getFullYear()}${weekDateMonthStr}${weekDateDayStr}`)); + }); + + for (let b = 0; b < 5; b++) { + activityWeekSP.push({ + week_index: b, + week_id: b, + date: weekDays[b], + + music_num: 0, + play_time: 0, + keyboard_num: 0, + scratch_num: 0, + + clear_update_num: Array(13).fill(0), + score_update_num: Array(13).fill(0), + }); + + let activityWeekDataSP = activity.filter((res) => res.play_style == 0 && (res.date >= weekDates[b] && res.date < weekDates[b + 1])); + activityWeekDataSP.forEach((res) => { + activityWeekSP[b].music_num += res.music_num; + activityWeekSP[b].play_time += res.play_time; + activityWeekSP[b].keyboard_num += res.keyboard_num; + activityWeekSP[b].scratch_num += res.scratch_num; + + for (let c = 0; c < 13; c++) { + activityWeekSP[b].clear_update_num[c] += res.clear_update_num[c]; + activityWeekSP[b].score_update_num[c] += res.score_update_num[c]; + } + }); + + activityWeekDP.push({ + week_index: b, + week_id: b, + date: weekDays[b], + + music_num: 0, + play_time: 0, + keyboard_num: 0, + scratch_num: 0, + + clear_update_num: Array(13).fill(0), + score_update_num: Array(13).fill(0), + }); + + let activityWeekDataDP = activity.filter((res) => res.play_style == 1 && (res.date >= weekDates[b] && res.date < weekDates[b + 1])); + activityWeekDataDP.forEach((res) => { + activityWeekDP[b].music_num += res.music_num; + activityWeekDP[b].play_time += res.play_time; + activityWeekDP[b].keyboard_num += res.keyboard_num; + activityWeekDP[b].scratch_num += res.scratch_num; + + for (let c = 0; c < 13; c++) { + activityWeekDP[b].clear_update_num[c] += res.clear_update_num[c]; + activityWeekDP[b].score_update_num[c] += res.score_update_num[c]; + } + }); + } + + const activity_mybest_sp = await DB.Find(refid, { + collection: "activity_mybest", + version: version, + play_style: 0, + }); + const activity_mybest_dp = await DB.Find(refid, { + collection: "activity_mybest", + version: version, + play_style: 1, + }); + + // TODO:: actually sort by today's gameplay // + let activityMybest = [], activityMynews = []; + if (activity_mybest_sp.length > 0) { + activity_mybest_sp.sort((a, b) => b.now_clear - a.now_clear); + activityMybest.push({ + play_style: activity_mybest_sp[0].play_style, + play_side: activity_mybest_sp[0].play_side, + music_id: activity_mybest_sp[0].music_id, + note_id: activity_mybest_sp[0].note_id, + + kind: 0, + + target_graph: activity_mybest_sp[0].target_graph, + target_score: activity_mybest_sp[0].target_score, + pacemaker: activity_mybest_sp[0].pacemaker, + best_clear: activity_mybest_sp[0].best_clear, + best_score: activity_mybest_sp[0].best_score, + best_misscount: activity_mybest_sp[0].best_misscount, + now_clear: activity_mybest_sp[0].now_clear, + now_score: activity_mybest_sp[0].now_score, + now_misscount: activity_mybest_sp[0].now_misscount, + now_pgreat: activity_mybest_sp[0].now_pgreat, + now_great: activity_mybest_sp[0].now_great, + now_good: activity_mybest_sp[0].now_good, + now_bad: activity_mybest_sp[0].now_bad, + now_poor: activity_mybest_sp[0].now_poor, + now_combo: activity_mybest_sp[0].now_combo, + now_fast: activity_mybest_sp[0].now_fast, + now_slow: activity_mybest_sp[0].now_slow, + option: activity_mybest_sp[0].option, + option_2: activity_mybest_sp[0].option_2, + ghost_gauge_data: Buffer.from(activity_mybest_sp[0].ghost_gauge_data, "base64").toString("hex"), + gauge_type: activity_mybest_sp[0].gauge_type, + result_type: activity_mybest_sp[0].result_type, + is_special_result: activity_mybest_sp[0].is_special_result, + + update_date: activity_mybest_sp[0].update_date, + }); + + activity_mybest_sp.sort((a, b) =>b.now_score - a.now_score); + activityMybest.push({ + play_style: activity_mybest_sp[0].play_style, + play_side: activity_mybest_sp[0].play_side, + music_id: activity_mybest_sp[0].music_id, + note_id: activity_mybest_sp[0].note_id, + + kind: 1, + + target_graph: activity_mybest_sp[0].target_graph, + target_score: activity_mybest_sp[0].target_score, + pacemaker: activity_mybest_sp[0].pacemaker, + best_clear: activity_mybest_sp[0].best_clear, + best_score: activity_mybest_sp[0].best_score, + best_misscount: activity_mybest_sp[0].best_misscount, + now_clear: activity_mybest_sp[0].now_clear, + now_score: activity_mybest_sp[0].now_score, + now_misscount: activity_mybest_sp[0].now_misscount, + now_pgreat: activity_mybest_sp[0].now_pgreat, + now_great: activity_mybest_sp[0].now_great, + now_good: activity_mybest_sp[0].now_good, + now_bad: activity_mybest_sp[0].now_bad, + now_poor: activity_mybest_sp[0].now_poor, + now_combo: activity_mybest_sp[0].now_combo, + now_fast: activity_mybest_sp[0].now_fast, + now_slow: activity_mybest_sp[0].now_slow, + option: activity_mybest_sp[0].option, + option_2: activity_mybest_sp[0].option_2, + ghost_gauge_data: Buffer.from(activity_mybest_sp[0].ghost_gauge_data, "base64").toString("hex"), + gauge_type: activity_mybest_sp[0].gauge_type, + result_type: activity_mybest_sp[0].result_type, + is_special_result: activity_mybest_sp[0].is_special_result, + + update_date: activity_mybest_sp[0].update_date, + }); + + activity_mybest_sp.sort((a, b) => b.update_date - a.update_date); + activity_mybest_sp.forEach((res, idx) => { + activityMynews.push({ + play_style: res.play_style, + kind: 0, // unknown // + news_no: idx, + index: idx, + day_id: new Date(res.update_date * 1000).getDay(), + music_id: res.music_id, + note_id: res.note_id, + best_score: res.best_score, + now_score: res.now_score, + now_clear: res.now_clear, + news_time: res.update_date, + }); + }); + } + + if (activity_mybest_dp.length > 0) { + activity_mybest_dp.sort((a, b) => b.now_clear - a.now_clear); + activityMybest.push({ + play_style: activity_mybest_dp[0].play_style, + play_side: activity_mybest_dp[0].play_side, + music_id: activity_mybest_dp[0].music_id, + note_id: activity_mybest_dp[0].note_id, + + kind: 0, + + target_graph: activity_mybest_dp[0].target_graph, + target_score: activity_mybest_dp[0].target_score, + pacemaker: activity_mybest_dp[0].pacemaker, + best_clear: activity_mybest_dp[0].best_clear, + best_score: activity_mybest_dp[0].best_score, + best_misscount: activity_mybest_dp[0].best_misscount, + now_clear: activity_mybest_dp[0].now_clear, + now_score: activity_mybest_dp[0].now_score, + now_misscount: activity_mybest_dp[0].now_misscount, + now_pgreat: activity_mybest_dp[0].now_pgreat, + now_great: activity_mybest_dp[0].now_great, + now_good: activity_mybest_dp[0].now_good, + now_bad: activity_mybest_dp[0].now_bad, + now_poor: activity_mybest_dp[0].now_poor, + now_combo: activity_mybest_dp[0].now_combo, + now_fast: activity_mybest_dp[0].now_fast, + now_slow: activity_mybest_dp[0].now_slow, + option: activity_mybest_dp[0].option, + option_2: activity_mybest_dp[0].option_2, + ghost_gauge_data: Buffer.from(activity_mybest_dp[0].ghost_gauge_data, "base64").toString("hex"), + gauge_type: activity_mybest_dp[0].gauge_type, + result_type: activity_mybest_dp[0].result_type, + is_special_result: activity_mybest_dp[0].is_special_result, + + update_date: activity_mybest_dp[0].update_date, + }); + + activity_mybest_dp.sort((a, b) => b.now_score - a.now_score); + activityMybest.push({ + play_style: activity_mybest_dp[0].play_style, + play_side: activity_mybest_dp[0].play_side, + music_id: activity_mybest_dp[0].music_id, + note_id: activity_mybest_dp[0].note_id, + + kind: 1, + + target_graph: activity_mybest_dp[0].target_graph, + target_score: activity_mybest_dp[0].target_score, + pacemaker: activity_mybest_dp[0].pacemaker, + best_clear: activity_mybest_dp[0].best_clear, + best_score: activity_mybest_dp[0].best_score, + best_misscount: activity_mybest_dp[0].best_misscount, + now_clear: activity_mybest_dp[0].now_clear, + now_score: activity_mybest_dp[0].now_score, + now_misscount: activity_mybest_dp[0].now_misscount, + now_pgreat: activity_mybest_dp[0].now_pgreat, + now_great: activity_mybest_dp[0].now_great, + now_good: activity_mybest_dp[0].now_good, + now_bad: activity_mybest_dp[0].now_bad, + now_poor: activity_mybest_dp[0].now_poor, + now_combo: activity_mybest_dp[0].now_combo, + now_fast: activity_mybest_dp[0].now_fast, + now_slow: activity_mybest_dp[0].now_slow, + option: activity_mybest_dp[0].option, + option_2: activity_mybest_dp[0].option_2, + ghost_gauge_data: Buffer.from(activity_mybest_dp[0].ghost_gauge_data, "base64").toString("hex"), + gauge_type: activity_mybest_dp[0].gauge_type, + result_type: activity_mybest_dp[0].result_type, + is_special_result: activity_mybest_dp[0].is_special_result, + + update_date: activity_mybest_dp[0].update_date, + }); + + activity_mybest_dp.sort((a, b) => b.update_date - a.update_date); + activity_mybest_dp.forEach((res, idx) => { + activityMynews.push({ + play_style: res.play_style, + kind: 0, // unknown // + news_no: idx, + index: idx, + day_id: new Date(res.update_date * 1000).getDay(), + music_id: res.music_id, + note_id: res.note_id, + best_score: res.best_score, + now_score: res.now_score, + now_clear: res.now_clear, + news_time: res.update_date, + }); + }); + } + + const extra_boss_event = await DB.Find(refid, { + collection: "extra_boss", + version: version, + }); + extra_boss_event.forEach((res) => { + ebeArray.push({ + phase: res.phase, + + extra: res.extra, + extra_b: res.extra_b, + onemore: res.onemore, + onemore_b: res.onemore_b, + }); + }); + let result: any = { profile, pcdata, @@ -1217,65 +1641,65 @@ export const pcget: EPR = async (info, data, send) => { switch (version) { case 21: - result = { - ...result, + result = Object.assign(result, { link5, tricolettepark, boss1, - }; + }); break; case 22: - result = { - ...result, + result = Object.assign(result, { chrono_diver, qpronicle_chord, qpronicle_chord_sub, qpronicle_phase3, pendual_talis, - }; + }); break; case 23: - result = { - ...result, + result = Object.assign(result, { efArray, open_tokotoko, mystery_line, mystery_line_sub, - }; + }); break; case 24: - result = { - ...result, + result = Object.assign(result, { efArray, siege_sinobuz, siege_sinobuz_sub, ninja_shichikyoden, - }; + }); break; case 25: - result = { - ...result, + result = Object.assign(result, { efArray, rush_cannonracer, rush_cannonracer_sub, - }; + }); break; case 26: - result = { - ...result, + result = Object.assign(result, { mirage_lib, mirage_lib_sub, delabity_lab, delabity_lab_sub, anniv20, - }; + }); break; case 31: - result = { - ...result, + result = Object.assign(result, { epo_res, epo_res_sub, - }; + }); + break; + case 32: + result = Object.assign(result, { + pinky_ug, + pinky_ug_hall, + pinky_ug_qpro, + }); break; default: @@ -1283,26 +1707,35 @@ export const pcget: EPR = async (info, data, send) => { } switch (version) { + case 32: + result = Object.assign(result, { + fsArray, + activityDayId, + activityTimestamp, + activityTodaySP, + activityTodayDP, + activityWeekSP, + activityWeekDP, + activityMynews, + activityMybest, + ebeArray, + }); case 31: - result = { - ...result, + result = Object.assign(result, { fArray, - }; + }); case 30: - result = { - ...result, + result = Object.assign(result, { bArray, - }; + }); case 29: case 28: - result = { - ...result, + result = Object.assign(result, { mArray, wArray, - }; + }); case 27: - result = { - ...result, + result = Object.assign(result, { lm_playdata, lm_settings, lm_custom, @@ -1310,7 +1743,7 @@ export const pcget: EPR = async (info, data, send) => { evtArray, evtArray2, evtArray3, - }; + }); default: break; } @@ -1423,6 +1856,12 @@ export const pctakeover: EPR = async (info, data, send) => { lightning_settings = lm_settings_new; lightning_custom = lm_customdata; break; + case 32: + pcdata = IIDX32_pcdata; + lightning_playdata = lm_playdata; + lightning_settings = lm_settings_new; + lightning_custom = lm_customdata; + break; default: return send.deny(); @@ -1507,8 +1946,8 @@ export const pcvisit: EPR = async (info, data, send) => { export const pcsave: 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 // if (version == -1) return send.deny(); @@ -1533,6 +1972,7 @@ export const pcsave: EPR = async (info, data, send) => { const hasTDJSkinData = !(_.isNil($(data).element("tdjskin_equip"))); const hasMusicFilter = !(_.isNil($(data).element("music_filter"))); const hasBadgeData = !(_.isNil($(data).element("badge"))); + const hasActivityData = !(_.isNil($(data).element("activity_data"))); if (cltype == 0) pcdata.spnum += 1; else pcdata.dpnum += 1; @@ -1542,12 +1982,12 @@ export const pcsave: EPR = async (info, data, send) => { else lm_playdata.dp_num += 1; if (hasTDJSettings) { - lm_settings.headphone_vol = parseInt($(data).attr("lightning_setting").headphone_vol); + lm_settings.headphone_vol = Number($(data).attr("lightning_setting").headphone_vol); lm_settings.slider = $(data).element("lightning_setting").numbers("slider"); - lm_settings.resistance_sp_left = parseInt($(data).attr("lightning_setting").resistance_sp_left); - lm_settings.resistance_sp_right = parseInt($(data).attr("lightning_setting").resistance_sp_right); - lm_settings.resistance_dp_left = parseInt($(data).attr("lightning_setting").resistance_dp_left); - lm_settings.resistance_dp_right = parseInt($(data).attr("lightning_setting").resistance_dp_right); + lm_settings.resistance_sp_left = Number($(data).attr("lightning_setting").resistance_sp_left); + lm_settings.resistance_sp_right = Number($(data).attr("lightning_setting").resistance_sp_right); + lm_settings.resistance_dp_left = Number($(data).attr("lightning_setting").resistance_dp_left); + lm_settings.resistance_dp_right = Number($(data).attr("lightning_setting").resistance_dp_right); lm_settings.light = $(data).element("lightning_setting").numbers("light"); lm_settings.concentration = $(data).element("lightning_setting").number("concentration"); @@ -1566,60 +2006,60 @@ export const pcsave: EPR = async (info, data, send) => { profile.total_pc += 1; - pcdata.mode = parseInt($(data).attr().mode); - pcdata.pmode = parseInt($(data).attr().pmode); + pcdata.mode = Number($(data).attr().mode); + pcdata.pmode = Number($(data).attr().pmode); if (version == 14) { if (cltype == 0) { - pcdata.sach = parseInt($(data).attr().achi); - pcdata.sp_opt = parseInt($(data).attr().opt); + pcdata.sach = Number($(data).attr().achi); + pcdata.sp_opt = Number($(data).attr().opt); } else { - pcdata.dach = parseInt($(data).attr().achi); - pcdata.dp_opt = parseInt($(data).attr().opt); - pcdata.dp_opt2 = parseInt($(data).attr().opt2); + pcdata.dach = Number($(data).attr().achi); + pcdata.dp_opt = Number($(data).attr().opt); + pcdata.dp_opt2 = Number($(data).attr().opt2); } - pcdata.gno = parseInt($(data).attr().gno); - pcdata.sflg0 = parseInt($(data).attr().sflg0); - pcdata.sflg1 = parseInt($(data).attr().sflg1); - pcdata.sflg2 = parseInt($(data).attr().sflg2); - pcdata.sdhd = parseInt($(data).attr().sdhd); - pcdata.ncomb = parseInt($(data).attr().ncomb); - pcdata.mcomb = parseInt($(data).attr().mcomb); + pcdata.gno = Number($(data).attr().gno); + pcdata.sflg0 = Number($(data).attr().sflg0); + pcdata.sflg1 = Number($(data).attr().sflg1); + pcdata.sflg2 = Number($(data).attr().sflg2); + pcdata.sdhd = Number($(data).attr().sdhd); + pcdata.ncomb = Number($(data).attr().ncomb); + pcdata.mcomb = Number($(data).attr().mcomb); if (!_.isNil($(data).attr().now_g)) { - pcdata.gold_now = parseInt($(data).attr().now_g); - pcdata.gold_all = parseInt($(data).attr().all_g); - pcdata.gold_use = parseInt($(data).attr().use_g); + pcdata.gold_now = Number($(data).attr().now_g); + pcdata.gold_all = Number($(data).attr().all_g); + pcdata.gold_use = Number($(data).attr().use_g); } } else if (version == 15) { if (cltype == 0) { - pcdata.sach = parseInt($(data).attr().achi); - pcdata.sp_opt = parseInt($(data).attr().opt); + pcdata.sach = Number($(data).attr().achi); + pcdata.sp_opt = Number($(data).attr().opt); } else { - pcdata.dach = parseInt($(data).attr().achi); - pcdata.dp_opt = parseInt($(data).attr().opt); - pcdata.dp_opt2 = parseInt($(data).attr().opt2); + pcdata.dach = Number($(data).attr().achi); + pcdata.dp_opt = Number($(data).attr().opt); + pcdata.dp_opt2 = Number($(data).attr().opt2); } - pcdata.gno = parseInt($(data).attr().gno); - pcdata.sflg0 = parseInt($(data).attr().sflg0); - pcdata.sflg1 = parseInt($(data).attr().sflg1); - pcdata.sflg2 = parseInt($(data).attr().sflg2); - pcdata.sdhd = parseInt($(data).attr().sdhd); - pcdata.ncomb = parseInt($(data).attr().ncomb); - pcdata.mcomb = parseInt($(data).attr().mcomb); + pcdata.gno = Number($(data).attr().gno); + pcdata.sflg0 = Number($(data).attr().sflg0); + pcdata.sflg1 = Number($(data).attr().sflg1); + pcdata.sflg2 = Number($(data).attr().sflg2); + pcdata.sdhd = Number($(data).attr().sdhd); + pcdata.ncomb = Number($(data).attr().ncomb); + pcdata.mcomb = Number($(data).attr().mcomb); if (!_.isNil($(data).element("tutorial"))) { - let clr = parseInt($(data).attr("tutorial").clr); + let clr = Number($(data).attr("tutorial").clr); await DB.Upsert(refid, { collection: "tutorial", version: version, - tid: parseInt($(data).attr("tutorial").tid), + tid: Number($(data).attr("tutorial").tid), }, { $set: { @@ -1631,32 +2071,32 @@ export const pcsave: EPR = async (info, data, send) => { } else if (version == 16) { if (cltype == 0) { - pcdata.sach = parseInt($(data).attr().achi); - pcdata.sp_opt = parseInt($(data).attr().opt); + pcdata.sach = Number($(data).attr().achi); + pcdata.sp_opt = Number($(data).attr().opt); } else { - pcdata.dach = parseInt($(data).attr().achi); - pcdata.dp_opt = parseInt($(data).attr().opt); - pcdata.dp_opt2 = parseInt($(data).attr().opt2); + pcdata.dach = Number($(data).attr().achi); + pcdata.dp_opt = Number($(data).attr().opt); + pcdata.dp_opt2 = Number($(data).attr().opt2); } - pcdata.gno = parseInt($(data).attr().gno); - pcdata.sflg0 = parseInt($(data).attr().sflg0); - pcdata.sflg1 = parseInt($(data).attr().sflg1); - pcdata.sflg2 = parseInt($(data).attr().sflg2); - pcdata.sdhd = parseInt($(data).attr().sdhd); - pcdata.ncomb = parseInt($(data).attr().ncomb); - pcdata.mcomb = parseInt($(data).attr().mcomb); - pcdata.liflen = parseInt($(data).attr().lift); - pcdata.fcombo[cltype] = parseInt($(data).attr().fcombo); + pcdata.gno = Number($(data).attr().gno); + pcdata.sflg0 = Number($(data).attr().sflg0); + pcdata.sflg1 = Number($(data).attr().sflg1); + pcdata.sflg2 = Number($(data).attr().sflg2); + pcdata.sdhd = Number($(data).attr().sdhd); + pcdata.ncomb = Number($(data).attr().ncomb); + pcdata.mcomb = Number($(data).attr().mcomb); + pcdata.liflen = Number($(data).attr().lift); + pcdata.fcombo[cltype] = Number($(data).attr().fcombo); if (!_.isNil($(data).element("tutorial"))) { - let clr = parseInt($(data).attr("tutorial").clr); + let clr = Number($(data).attr("tutorial").clr); await DB.Upsert(refid, { collection: "tutorial", version: version, - tid: parseInt($(data).attr("tutorial").tid), + tid: Number($(data).attr("tutorial").tid), }, { $set: { @@ -1674,32 +2114,32 @@ export const pcsave: EPR = async (info, data, send) => { } else if (version == 17) { if (cltype == 0) { - pcdata.sach = parseInt($(data).attr().achi); - pcdata.sp_opt = parseInt($(data).attr().opt); + pcdata.sach = Number($(data).attr().achi); + pcdata.sp_opt = Number($(data).attr().opt); } else { - pcdata.dach = parseInt($(data).attr().achi); - pcdata.dp_opt = parseInt($(data).attr().opt); - pcdata.dp_opt2 = parseInt($(data).attr().opt2); + pcdata.dach = Number($(data).attr().achi); + pcdata.dp_opt = Number($(data).attr().opt); + pcdata.dp_opt2 = Number($(data).attr().opt2); } - pcdata.gno = parseInt($(data).attr().gno); - pcdata.timing = parseInt($(data).attr().timing); - pcdata.sflg0 = parseInt($(data).attr().sflg0); - pcdata.sflg1 = parseInt($(data).attr().sflg1); - pcdata.sdhd = parseInt($(data).attr().sdhd); - pcdata.ncomb = parseInt($(data).attr().ncomb); - pcdata.mcomb = parseInt($(data).attr().mcomb); - pcdata.liflen = parseInt($(data).attr().lift); - pcdata.fcombo[cltype] = parseInt($(data).attr().fcombo); + pcdata.gno = Number($(data).attr().gno); + pcdata.timing = Number($(data).attr().timing); + pcdata.sflg0 = Number($(data).attr().sflg0); + pcdata.sflg1 = Number($(data).attr().sflg1); + pcdata.sdhd = Number($(data).attr().sdhd); + pcdata.ncomb = Number($(data).attr().ncomb); + pcdata.mcomb = Number($(data).attr().mcomb); + pcdata.liflen = Number($(data).attr().lift); + pcdata.fcombo[cltype] = Number($(data).attr().fcombo); if (!_.isNil($(data).element("tutorial"))) { - let clr = parseInt($(data).attr("tutorial").clr); + let clr = Number($(data).attr("tutorial").clr); await DB.Upsert(refid, { collection: "tutorial", version: version, - tid: parseInt($(data).attr("tutorial").tid), + tid: Number($(data).attr("tutorial").tid), }, { $set: { @@ -1712,24 +2152,24 @@ export const pcsave: EPR = async (info, data, send) => { } else if (version == 18) { if (cltype == 0) { - pcdata.sach = parseInt($(data).attr().achi); - pcdata.sp_opt = parseInt($(data).attr().opt); + pcdata.sach = Number($(data).attr().achi); + pcdata.sp_opt = Number($(data).attr().opt); } else { - pcdata.dach = parseInt($(data).attr().achi); - pcdata.dp_opt = parseInt($(data).attr().opt); - pcdata.dp_opt2 = parseInt($(data).attr().opt2); + pcdata.dach = Number($(data).attr().achi); + pcdata.dp_opt = Number($(data).attr().opt); + pcdata.dp_opt2 = Number($(data).attr().opt2); } - pcdata.gno = parseInt($(data).attr().gno); - pcdata.timing = parseInt($(data).attr().timing); - pcdata.sflg0 = parseInt($(data).attr().sflg0); - pcdata.sflg1 = parseInt($(data).attr().sflg1); - pcdata.sdhd = parseInt($(data).attr().sdhd); - pcdata.ncomb = parseInt($(data).attr().ncomb); - pcdata.mcomb = parseInt($(data).attr().mcomb); - pcdata.liflen = parseInt($(data).attr().lift); - pcdata.fcombo[cltype] = parseInt($(data).attr().fcombo); + pcdata.gno = Number($(data).attr().gno); + pcdata.timing = Number($(data).attr().timing); + pcdata.sflg0 = Number($(data).attr().sflg0); + pcdata.sflg1 = Number($(data).attr().sflg1); + pcdata.sdhd = Number($(data).attr().sdhd); + pcdata.ncomb = Number($(data).attr().ncomb); + pcdata.mcomb = Number($(data).attr().mcomb); + pcdata.liflen = Number($(data).attr().lift); + pcdata.fcombo[cltype] = Number($(data).attr().fcombo); // TODO:: STORY/LEAGUE // @@ -1738,16 +2178,16 @@ export const pcsave: EPR = async (info, data, send) => { cf: $(data).element("tour").buffer("cf").toString("base64"), pf: $(data).element("tour").buffer("pf").toString("base64"), mf: $(data).element("tour").buffer("mf").toString("base64"), - pt: parseInt($(data).attr("tour").pt), - rsv: parseInt($(data).attr("tour").rsv), - r0: parseInt($(data).attr("tour").r0), - r1: parseInt($(data).attr("tour").r1), - r2: parseInt($(data).attr("tour").r2), - r3: parseInt($(data).attr("tour").r3), - r4: parseInt($(data).attr("tour").r4), - r5: parseInt($(data).attr("tour").r5), - r6: parseInt($(data).attr("tour").r6), - r7: parseInt($(data).attr("tour").r7), + pt: Number($(data).attr("tour").pt), + rsv: Number($(data).attr("tour").rsv), + r0: Number($(data).attr("tour").r0), + r1: Number($(data).attr("tour").r1), + r2: Number($(data).attr("tour").r2), + r3: Number($(data).attr("tour").r3), + r4: Number($(data).attr("tour").r4), + r5: Number($(data).attr("tour").r5), + r6: Number($(data).attr("tour").r6), + r7: Number($(data).attr("tour").r7), } await DB.Upsert(refid, @@ -1763,29 +2203,29 @@ export const pcsave: EPR = async (info, data, send) => { } else if (version == 19) { if (cltype == 0) { - pcdata.sach = parseInt($(data).attr().achi); - pcdata.sp_opt = parseInt($(data).attr().opt); + pcdata.sach = Number($(data).attr().achi); + pcdata.sp_opt = Number($(data).attr().opt); } else { - pcdata.dach = parseInt($(data).attr().achi); - pcdata.dp_opt = parseInt($(data).attr().opt); - pcdata.dp_opt2 = parseInt($(data).attr().opt2); + pcdata.dach = Number($(data).attr().achi); + pcdata.dp_opt = Number($(data).attr().opt); + pcdata.dp_opt2 = Number($(data).attr().opt2); } pcdata.notes = parseFloat($(data).attr().notes); - pcdata.gno = parseInt($(data).attr().gno); - pcdata.help = parseInt($(data).attr().help); - pcdata.liflen = parseInt($(data).attr().lift); - pcdata.fcombo[cltype] = parseInt($(data).attr().fcombo); - pcdata.pase = parseInt($(data).attr().pase); - pcdata.sdhd = parseInt($(data).attr().sdhd); - pcdata.sdtype = parseInt($(data).attr().sdtype); - pcdata.sflg0 = parseInt($(data).attr().sflg0); - pcdata.sflg1 = parseInt($(data).attr().sflg1); - pcdata.timing = parseInt($(data).attr().timing); + pcdata.gno = Number($(data).attr().gno); + pcdata.help = Number($(data).attr().help); + pcdata.liflen = Number($(data).attr().lift); + pcdata.fcombo[cltype] = Number($(data).attr().fcombo); + pcdata.pase = Number($(data).attr().pase); + pcdata.sdhd = Number($(data).attr().sdhd); + pcdata.sdtype = Number($(data).attr().sdtype); + pcdata.sflg0 = Number($(data).attr().sflg0); + pcdata.sflg1 = Number($(data).attr().sflg1); + pcdata.timing = Number($(data).attr().timing); if (!_.isNil($(data).element("jpoint"))) { - pcdata.jpoint += parseInt($(data).attr("jpoint").point); + pcdata.jpoint += Number($(data).attr("jpoint").point); } // TODO:: parsing (element type is binary) // @@ -1793,25 +2233,25 @@ export const pcsave: EPR = async (info, data, send) => { // hand0, hand1, hand2, hand3, hand4 (attr) // // binary (content) // if (cltype == 0) { - pcdata.st_sp_ach = parseInt($(data).attr("step").sp_ach); - pcdata.st_sp_dif = parseInt($(data).attr("step").sp_dif); + pcdata.st_sp_ach = Number($(data).attr("step").sp_ach); + pcdata.st_sp_dif = Number($(data).attr("step").sp_dif); } else { - pcdata.st_dp_ach = parseInt($(data).attr("step").dp_ach); - pcdata.st_dp_dif = parseInt($(data).attr("step").dp_dif); + pcdata.st_dp_ach = Number($(data).attr("step").dp_ach); + pcdata.st_dp_dif = Number($(data).attr("step").dp_dif); } } if (!_.isNil($(data).element("kingdom"))) { let event_data = { - level: parseInt($(data).attr("kingdom").level), - exp: parseInt($(data).attr("kingdom").exp), - deller: parseInt($(data).attr("kingdom").deller), - place: parseInt($(data).attr("kingdom").place), - tower: parseInt($(data).attr("kingdom").tower), - boss: parseInt($(data).attr("kingdom").boss), - combo: parseInt($(data).attr("kingdom").combo), - jewel: parseInt($(data).attr("kingdom").jewel), - generic: parseInt($(data).attr("kingdom").generic), + level: Number($(data).attr("kingdom").level), + exp: Number($(data).attr("kingdom").exp), + deller: Number($(data).attr("kingdom").deller), + place: Number($(data).attr("kingdom").place), + tower: Number($(data).attr("kingdom").tower), + boss: Number($(data).attr("kingdom").boss), + combo: Number($(data).attr("kingdom").combo), + jewel: Number($(data).attr("kingdom").jewel), + generic: Number($(data).attr("kingdom").generic), cf: $(data).element("kingdom").buffer("cf").toString("base64"), qcf: $(data).element("kingdom").buffer("qcf").toString("base64"), piece: $(data).element("kingdom").buffer("piece").toString("base64"), @@ -1840,29 +2280,29 @@ export const pcsave: EPR = async (info, data, send) => { } else if (version == 20) { if (cltype == 0) { - pcdata.sach = parseInt($(data).attr().achi); - pcdata.sp_opt = parseInt($(data).attr().opt); + pcdata.sach = Number($(data).attr().achi); + pcdata.sp_opt = Number($(data).attr().opt); } else { - pcdata.dach = parseInt($(data).attr().achi); - pcdata.dp_opt = parseInt($(data).attr().opt); - pcdata.dp_opt2 = parseInt($(data).attr().opt2); + pcdata.dach = Number($(data).attr().achi); + pcdata.dp_opt = Number($(data).attr().opt); + pcdata.dp_opt2 = Number($(data).attr().opt2); } - pcdata.gno = parseInt($(data).attr().gno); - pcdata.gpos = parseInt($(data).attr().gpos); - pcdata.timing = parseInt($(data).attr().timing); - pcdata.help = parseInt($(data).attr().help); - pcdata.sdhd = parseInt($(data).attr().sdhd); - pcdata.sdtype = parseInt($(data).attr().sdtype); + pcdata.gno = Number($(data).attr().gno); + pcdata.gpos = Number($(data).attr().gpos); + pcdata.timing = Number($(data).attr().timing); + pcdata.help = Number($(data).attr().help); + pcdata.sdhd = Number($(data).attr().sdhd); + pcdata.sdtype = Number($(data).attr().sdtype); pcdata.notes = parseFloat($(data).attr().notes); - pcdata.pase = parseInt($(data).attr().pase); - pcdata.judge = parseInt($(data).attr().judge); - pcdata.opstyle = parseInt($(data).attr().opstyle); + pcdata.pase = Number($(data).attr().pase); + pcdata.judge = Number($(data).attr().judge); + pcdata.opstyle = Number($(data).attr().opstyle); pcdata.hispeed = parseFloat($(data).attr().hispeed); - pcdata.judgeAdj = parseInt($(data).attr().judgeAdj); - pcdata.liflen = parseInt($(data).attr().lift); - pcdata.fcombo[cltype] = parseInt($(data).attr().fcombo); + pcdata.judgeAdj = Number($(data).attr().judgeAdj); + pcdata.liflen = Number($(data).attr().lift); + pcdata.fcombo[cltype] = Number($(data).attr().fcombo); if (!_.isNil($(data).element("secret"))) { pcdata.secret_flg1 = $(data).element("secret").bigints("flg1").map(String); @@ -1880,30 +2320,30 @@ export const pcsave: EPR = async (info, data, send) => { if (hasStepUpData) { if (cltype == 0) { - pcdata.st_sp_ach = parseInt($(data).attr("step").sp_ach); - pcdata.st_sp_hdpt = parseInt($(data).attr("step").sp_hdpt); - pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); - pcdata.st_sp_round = parseInt($(data).attr("step").sp_round); - pcdata.st_sp_mplay = parseInt($(data).attr("step").sp_mplay); + pcdata.st_sp_ach = Number($(data).attr("step").sp_ach); + pcdata.st_sp_hdpt = Number($(data).attr("step").sp_hdpt); + pcdata.st_sp_level = Number($(data).attr("step").sp_level); + pcdata.st_sp_round = Number($(data).attr("step").sp_round); + pcdata.st_sp_mplay = Number($(data).attr("step").sp_mplay); } else { - pcdata.st_dp_ach = parseInt($(data).attr("step").dp_ach); - pcdata.st_dp_hdpt = parseInt($(data).attr("step").dp_hdpt); - pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); - pcdata.st_dp_round = parseInt($(data).attr("step").dp_round); - pcdata.st_dp_mplay = parseInt($(data).attr("step").dp_mplay); + pcdata.st_dp_ach = Number($(data).attr("step").dp_ach); + pcdata.st_dp_hdpt = Number($(data).attr("step").dp_hdpt); + pcdata.st_dp_level = Number($(data).attr("step").dp_level); + pcdata.st_dp_round = Number($(data).attr("step").dp_round); + pcdata.st_dp_mplay = Number($(data).attr("step").dp_mplay); } - pcdata.st_review = parseInt($(data).attr("step").review); + pcdata.st_review = Number($(data).attr("step").review); 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"))) { // TODO:: achi_packflg, achi_packid, achi_playpack // - pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); - pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); - pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); - pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_lastweekly = Number($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = Number($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = Number($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = Number($(data).attr("achievements").weekly_num); pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); } @@ -1914,63 +2354,63 @@ export const pcsave: EPR = async (info, data, send) => { if (_.isNil(link5)) { event_data = { - qpro: parseInt($(data).attr("link5").qpro), // add - glass: parseInt($(data).attr("link5").glass), // add - beautiful: parseInt($(data).attr("link5").beautiful), - quaver: parseInt($(data).attr("link5").quaver), - castle: parseInt($(data).attr("link5").castle), - flip: parseInt($(data).attr("link5").flip), - titans: parseInt($(data).attr("link5").titans), - exusia: parseInt($(data).attr("link5").exusia), - waxing: parseInt($(data).attr("link5").waxing), - sampling: parseInt($(data).attr("link5").sampling), - beachside: parseInt($(data).attr("link5").beachside), - cuvelia: parseInt($(data).attr("link5").cuvelia), - reunion: parseInt($(data).attr("link5").reunion), - bad: parseInt($(data).attr("link5").bad), - turii: parseInt($(data).attr("link5").turii), - anisakis: parseInt($(data).attr("link5").anisakis), - second: parseInt($(data).attr("link5").second), - whydidyou: parseInt($(data).attr("link5").whydidyou), - china: parseInt($(data).attr("link5").china), - fallen: parseInt($(data).attr("link5").fallen), - broken: parseInt($(data).attr("link5").broken), - summer: parseInt($(data).attr("link5").summer), - sakura: parseInt($(data).attr("link5").sakura), - wuv: parseInt($(data).attr("link5").wuv), - survival: parseInt($(data).attr("link5").survival), - thunder: parseInt($(data).attr("link5").thunder), + qpro: Number($(data).attr("link5").qpro), // add + glass: Number($(data).attr("link5").glass), // add + beautiful: Number($(data).attr("link5").beautiful), + quaver: Number($(data).attr("link5").quaver), + castle: Number($(data).attr("link5").castle), + flip: Number($(data).attr("link5").flip), + titans: Number($(data).attr("link5").titans), + exusia: Number($(data).attr("link5").exusia), + waxing: Number($(data).attr("link5").waxing), + sampling: Number($(data).attr("link5").sampling), + beachside: Number($(data).attr("link5").beachside), + cuvelia: Number($(data).attr("link5").cuvelia), + reunion: Number($(data).attr("link5").reunion), + bad: Number($(data).attr("link5").bad), + turii: Number($(data).attr("link5").turii), + anisakis: Number($(data).attr("link5").anisakis), + second: Number($(data).attr("link5").second), + whydidyou: Number($(data).attr("link5").whydidyou), + china: Number($(data).attr("link5").china), + fallen: Number($(data).attr("link5").fallen), + broken: Number($(data).attr("link5").broken), + summer: Number($(data).attr("link5").summer), + sakura: Number($(data).attr("link5").sakura), + wuv: Number($(data).attr("link5").wuv), + survival: Number($(data).attr("link5").survival), + thunder: Number($(data).attr("link5").thunder), } } else { event_data = link5; - event_data.qpro += parseInt($(data).attr("link5").qpro); - event_data.glass += parseInt($(data).attr("link5").glass); - event_data.beautiful = parseInt($(data).attr("link5").beautiful); - event_data.quaver = parseInt($(data).attr("link5").quaver); - event_data.castle = parseInt($(data).attr("link5").castle); - event_data.flip = parseInt($(data).attr("link5").flip); - event_data.titans = parseInt($(data).attr("link5").titans); - event_data.exusia = parseInt($(data).attr("link5").exusia); - event_data.waxing = parseInt($(data).attr("link5").waxing); - event_data.sampling = parseInt($(data).attr("link5").sampling); - event_data.beachside = parseInt($(data).attr("link5").beachside); - event_data.cuvelia = parseInt($(data).attr("link5").cuvelia); - event_data.reunion = parseInt($(data).attr("link5").reunion); - event_data.bad = parseInt($(data).attr("link5").bad); - event_data.turii = parseInt($(data).attr("link5").turii); - event_data.anisakis = parseInt($(data).attr("link5").anisakis); - event_data.second = parseInt($(data).attr("link5").second); - event_data.whydidyou = parseInt($(data).attr("link5").whydidyou); - event_data.china = parseInt($(data).attr("link5").china); - event_data.fallen = parseInt($(data).attr("link5").fallen); - event_data.broken = parseInt($(data).attr("link5").broken); - event_data.summer = parseInt($(data).attr("link5").summer); - event_data.sakura = parseInt($(data).attr("link5").sakura); - event_data.wuv = parseInt($(data).attr("link5").wuv); - event_data.survival = parseInt($(data).attr("link5").survival); - event_data.thunder = parseInt($(data).attr("link5").thunder); + event_data.qpro += Number($(data).attr("link5").qpro); + event_data.glass += Number($(data).attr("link5").glass); + event_data.beautiful = Number($(data).attr("link5").beautiful); + event_data.quaver = Number($(data).attr("link5").quaver); + event_data.castle = Number($(data).attr("link5").castle); + event_data.flip = Number($(data).attr("link5").flip); + event_data.titans = Number($(data).attr("link5").titans); + event_data.exusia = Number($(data).attr("link5").exusia); + event_data.waxing = Number($(data).attr("link5").waxing); + event_data.sampling = Number($(data).attr("link5").sampling); + event_data.beachside = Number($(data).attr("link5").beachside); + event_data.cuvelia = Number($(data).attr("link5").cuvelia); + event_data.reunion = Number($(data).attr("link5").reunion); + event_data.bad = Number($(data).attr("link5").bad); + event_data.turii = Number($(data).attr("link5").turii); + event_data.anisakis = Number($(data).attr("link5").anisakis); + event_data.second = Number($(data).attr("link5").second); + event_data.whydidyou = Number($(data).attr("link5").whydidyou); + event_data.china = Number($(data).attr("link5").china); + event_data.fallen = Number($(data).attr("link5").fallen); + event_data.broken = Number($(data).attr("link5").broken); + event_data.summer = Number($(data).attr("link5").summer); + event_data.sakura = Number($(data).attr("link5").sakura); + event_data.wuv = Number($(data).attr("link5").wuv); + event_data.survival = Number($(data).attr("link5").survival); + event_data.thunder = Number($(data).attr("link5").thunder); } await DB.Upsert(refid, @@ -1991,31 +2431,31 @@ export const pcsave: EPR = async (info, data, send) => { if (_.isNil(tricolettepark)) { event_data = { - open_music: parseInt($(data).attr("tricolettepark").open_music), - boss0_damage: parseInt($(data).attr("tricolettepark").boss0_damage), // add - boss1_damage: parseInt($(data).attr("tricolettepark").boss1_damage), - boss2_damage: parseInt($(data).attr("tricolettepark").boss2_damage), - boss3_damage: parseInt($(data).attr("tricolettepark").boss3_damage), - boss0_stun: parseInt($(data).attr("tricolettepark").boss0_stun), - boss1_stun: parseInt($(data).attr("tricolettepark").boss1_stun), - boss2_stun: parseInt($(data).attr("tricolettepark").boss2_stun), - boss3_stun: parseInt($(data).attr("tricolettepark").boss3_stun), - union_magic_used: parseInt($(data).attr("tricolettepark").union_magic_used), + open_music: Number($(data).attr("tricolettepark").open_music), + boss0_damage: Number($(data).attr("tricolettepark").boss0_damage), // add + boss1_damage: Number($(data).attr("tricolettepark").boss1_damage), + boss2_damage: Number($(data).attr("tricolettepark").boss2_damage), + boss3_damage: Number($(data).attr("tricolettepark").boss3_damage), + boss0_stun: Number($(data).attr("tricolettepark").boss0_stun), + boss1_stun: Number($(data).attr("tricolettepark").boss1_stun), + boss2_stun: Number($(data).attr("tricolettepark").boss2_stun), + boss3_stun: Number($(data).attr("tricolettepark").boss3_stun), + union_magic_used: Number($(data).attr("tricolettepark").union_magic_used), } } else { event_data = tricolettepark; - event_data.open_music = parseInt($(data).attr("tricolettepark").open_music), - event_data.boss0_damage += parseInt($(data).attr("tricolettepark").boss0_damage); - event_data.boss1_damage += parseInt($(data).attr("tricolettepark").boss1_damage); - event_data.boss2_damage += parseInt($(data).attr("tricolettepark").boss2_damage); - event_data.boss3_damage += parseInt($(data).attr("tricolettepark").boss3_damage); - event_data.boss0_stun = parseInt($(data).attr("tricolettepark").boss0_stun); - event_data.boss1_stun = parseInt($(data).attr("tricolettepark").boss1_stun); - event_data.boss2_stun = parseInt($(data).attr("tricolettepark").boss2_stun); - event_data.boss3_stun = parseInt($(data).attr("tricolettepark").boss3_stun); - event_data.union_magic_used = parseInt($(data).attr("tricolettepark").union_magic_used); + event_data.open_music = Number($(data).attr("tricolettepark").open_music), + event_data.boss0_damage += Number($(data).attr("tricolettepark").boss0_damage); + event_data.boss1_damage += Number($(data).attr("tricolettepark").boss1_damage); + event_data.boss2_damage += Number($(data).attr("tricolettepark").boss2_damage); + event_data.boss3_damage += Number($(data).attr("tricolettepark").boss3_damage); + event_data.boss0_stun = Number($(data).attr("tricolettepark").boss0_stun); + event_data.boss1_stun = Number($(data).attr("tricolettepark").boss1_stun); + event_data.boss2_stun = Number($(data).attr("tricolettepark").boss2_stun); + event_data.boss3_stun = Number($(data).attr("tricolettepark").boss3_stun); + event_data.union_magic_used = Number($(data).attr("tricolettepark").union_magic_used); } await DB.Upsert(refid, @@ -2031,15 +2471,15 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("commonboss"))) { - pcdata.deller += parseInt($(data).attr("commonboss").deller); - pcdata.orb += parseInt($(data).attr("commonboss").orb); + pcdata.deller += Number($(data).attr("commonboss").deller); + pcdata.orb += Number($(data).attr("commonboss").orb); } if (!_.isNil($(data).element("redboss"))) { let event_data = { - progress: parseInt($(data).attr("redboss").progress), - crush: parseInt($(data).attr("redboss").crush), - open: parseInt($(data).attr("redboss").open), + progress: Number($(data).attr("redboss").progress), + crush: Number($(data).attr("redboss").crush), + open: Number($(data).attr("redboss").open), } await DB.Upsert(refid, @@ -2088,11 +2528,11 @@ export const pcsave: EPR = async (info, data, send) => { if (_.isNil(yellowboss)) { event_data = { - level: parseInt($(data).attr("yellowboss").level), - heroic0: parseInt($(data).attr("yellowboss").heroic0), - heroic1: parseInt($(data).attr("yellowboss").heroic1), - critical: parseInt($(data).attr("yellowboss").critical), - last_select: parseInt($(data).attr("yellowboss").last_select), + level: Number($(data).attr("yellowboss").level), + heroic0: Number($(data).attr("yellowboss").heroic0), + heroic1: Number($(data).attr("yellowboss").heroic1), + critical: Number($(data).attr("yellowboss").critical), + last_select: Number($(data).attr("yellowboss").last_select), p_attack: $(data).element("yellowboss").numbers("p_attack"), pbest_attack: $(data).element("yellowboss").numbers("pbest_attack"), defeat: $(data).element("yellowboss").numbers("defeat"), // <- bools // @@ -2101,11 +2541,11 @@ export const pcsave: EPR = async (info, data, send) => { } else { event_data = yellowboss; - event_data.level = parseInt($(data).attr("yellowboss").level); - event_data.heroic0 = parseInt($(data).attr("yellowboss").heroic0); - event_data.heroic1 = parseInt($(data).attr("yellowboss").heroic1); - event_data.critical = parseInt($(data).attr("yellowboss").critical); - event_data.last_select = parseInt($(data).attr("yellowboss").last_select); + event_data.level = Number($(data).attr("yellowboss").level); + event_data.heroic0 = Number($(data).attr("yellowboss").heroic0); + event_data.heroic1 = Number($(data).attr("yellowboss").heroic1); + event_data.critical = Number($(data).attr("yellowboss").critical); + event_data.last_select = Number($(data).attr("yellowboss").last_select); let p_attack = $(data).element("yellowboss").numbers("p_attack"); for (let a = 0; a < 7; a++) { @@ -2128,42 +2568,42 @@ export const pcsave: EPR = async (info, data, send) => { } } else if (version == 21) { - pcdata.rtype = parseInt($(data).attr().rtype); - pcdata.sach = parseInt($(data).attr().s_achi); - pcdata.dach = parseInt($(data).attr().d_achi); - pcdata.sp_opt = parseInt($(data).attr().sp_opt); - pcdata.dp_opt = parseInt($(data).attr().dp_opt); - pcdata.dp_opt2 = parseInt($(data).attr().dp_opt2); - pcdata.gpos = parseInt($(data).attr().gpos); - pcdata.s_sorttype = parseInt($(data).attr().s_sorttype); - pcdata.d_sorttype = parseInt($(data).attr().d_sorttype); - pcdata.s_disp_judge = parseInt($(data).attr().s_disp_judge); - pcdata.d_disp_judge = parseInt($(data).attr().d_disp_judge); - pcdata.s_pace = parseInt($(data).attr().s_pace); - pcdata.d_pace = parseInt($(data).attr().d_pace); - pcdata.s_gno = parseInt($(data).attr().s_gno); - pcdata.d_gno = parseInt($(data).attr().d_gno); - pcdata.s_gtype = parseInt($(data).attr().s_gtype); - pcdata.d_gtype = parseInt($(data).attr().d_gtype); - pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); - pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); - pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); - pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); - pcdata.s_timing = parseInt($(data).attr().s_timing); - pcdata.d_timing = parseInt($(data).attr().d_timing); + pcdata.rtype = Number($(data).attr().rtype); + pcdata.sach = Number($(data).attr().s_achi); + pcdata.dach = Number($(data).attr().d_achi); + pcdata.sp_opt = Number($(data).attr().sp_opt); + pcdata.dp_opt = Number($(data).attr().dp_opt); + pcdata.dp_opt2 = Number($(data).attr().dp_opt2); + pcdata.gpos = Number($(data).attr().gpos); + pcdata.s_sorttype = Number($(data).attr().s_sorttype); + pcdata.d_sorttype = Number($(data).attr().d_sorttype); + pcdata.s_disp_judge = Number($(data).attr().s_disp_judge); + pcdata.d_disp_judge = Number($(data).attr().d_disp_judge); + pcdata.s_pace = Number($(data).attr().s_pace); + pcdata.d_pace = Number($(data).attr().d_pace); + pcdata.s_gno = Number($(data).attr().s_gno); + pcdata.d_gno = Number($(data).attr().d_gno); + pcdata.s_gtype = Number($(data).attr().s_gtype); + pcdata.d_gtype = Number($(data).attr().d_gtype); + pcdata.s_sdlen = Number($(data).attr().s_sdlen); + pcdata.d_sdlen = Number($(data).attr().d_sdlen); + pcdata.s_sdtype = Number($(data).attr().s_sdtype); + pcdata.d_sdtype = Number($(data).attr().d_sdtype); + pcdata.s_timing = Number($(data).attr().s_timing); + pcdata.d_timing = Number($(data).attr().d_timing); pcdata.s_notes = parseFloat($(data).attr().s_notes); pcdata.d_notes = parseFloat($(data).attr().d_notes); - pcdata.s_judge = parseInt($(data).attr().s_judge); - pcdata.d_judge = parseInt($(data).attr().d_judge); - pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); - pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); + pcdata.s_judge = Number($(data).attr().s_judge); + pcdata.d_judge = Number($(data).attr().d_judge); + pcdata.s_judgeAdj = Number($(data).attr().s_judgeAdj); + pcdata.d_judgeAdj = Number($(data).attr().d_judgeAdj); pcdata.s_hispeed = parseFloat($(data).attr().s_hispeed); pcdata.d_hispeed = parseFloat($(data).attr().d_hispeed); - pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); - pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); + pcdata.s_opstyle = Number($(data).attr().s_opstyle); + pcdata.d_opstyle = Number($(data).attr().d_opstyle); - if (!_.isNil($(data).attr().s_lift)) pcdata.s_liflen = parseInt($(data).attr().s_lift); - if (!_.isNil($(data).attr().d_lift)) pcdata.s_liflen = parseInt($(data).attr().d_lift); + if (!_.isNil($(data).attr().s_lift)) pcdata.s_liflen = Number($(data).attr().s_lift); + if (!_.isNil($(data).attr().d_lift)) pcdata.s_liflen = Number($(data).attr().d_lift); if (!_.isNil($(data).element("secret"))) { pcdata.secret_flg1 = $(data).element("secret").bigints("flg1").map(String); @@ -2188,68 +2628,68 @@ export const pcsave: EPR = async (info, data, send) => { if (!_.isNil($(data).element("achievements"))) { // TODO:: achi_packflg, achi_packid, achi_playpack // - pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); - pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); - pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); - pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_lastweekly = Number($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = Number($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = Number($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = Number($(data).attr("achievements").weekly_num); pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); } if (hasStepUpData) { - pcdata.st_damage = parseInt($(data).attr("step").damage); - pcdata.st_defeat = parseInt($(data).attr("step").defeat); - pcdata.st_progress = parseInt($(data).attr("step").progress); - pcdata.st_round = parseInt($(data).attr("step").round); - pcdata.st_sp_mission = parseInt($(data).attr("step").sp_mission); - pcdata.st_dp_mission = parseInt($(data).attr("step").dp_mission); - pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); - pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); - 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_damage = Number($(data).attr("step").damage); + pcdata.st_defeat = Number($(data).attr("step").defeat); + pcdata.st_progress = Number($(data).attr("step").progress); + pcdata.st_round = Number($(data).attr("step").round); + pcdata.st_sp_mission = Number($(data).attr("step").sp_mission); + pcdata.st_dp_mission = Number($(data).attr("step").dp_mission); + pcdata.st_sp_level = Number($(data).attr("step").sp_level); + pcdata.st_dp_level = Number($(data).attr("step").dp_level); + pcdata.st_sp_mplay = Number($(data).attr("step").sp_mplay); + pcdata.st_dp_mplay = Number($(data).attr("step").dp_mplay); + pcdata.st_last_select = Number($(data).attr("step").last_select); pcdata.st_album = $(data).buffer("step").toString("base64"); // TODO:: verify // } - if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); - if (!_.isNil($(data).element("orb_data"))) pcdata.orb += parseInt($(data).attr("orb_data").add_orb); + if (!_.isNil($(data).element("deller"))) pcdata.deller += Number($(data).attr("deller").deller); + if (!_.isNil($(data).element("orb_data"))) pcdata.orb += Number($(data).attr("orb_data").add_orb); // TODO:: fix event saving, these event savings are broken. // if (!_.isNil($(data).element("boss1"))) { let event_data = { - stamina: parseInt($(data).attr("boss1").stamina), - attack: parseInt($(data).attr("boss1").attack), - item_flg: parseInt($(data).attr("boss1").item_flg), - item_flg2: parseInt($(data).attr("boss1").item_flg2), - pick: parseInt($(data).attr("boss1").pick), - row0: parseInt($(data).attr("boss1").row0), - row1: parseInt($(data).attr("boss1").row1), - row2: parseInt($(data).attr("boss1").row2), - row3: parseInt($(data).attr("boss1").row3), - column0: parseInt($(data).attr("boss1").column0), - column1: parseInt($(data).attr("boss1").column1), - column2: parseInt($(data).attr("boss1").column2), - column3: parseInt($(data).attr("boss1").column3), - map: parseInt($(data).attr("boss1").map), - job: parseInt($(data).attr("boss1").job), - general: parseInt($(data).attr("boss1").general), - battle: parseInt($(data).attr("boss1").battle), - boss0_n: parseInt($(data).attr("boss1").boss0_n), - boss0_h: parseInt($(data).attr("boss1").boss0_h), - boss0_a: parseInt($(data).attr("boss1").boss0_a), - boss1_n: parseInt($(data).attr("boss1").boss1_n), - boss1_h: parseInt($(data).attr("boss1").boss1_h), - boss1_a: parseInt($(data).attr("boss1").boss1_a), - boss2_n: parseInt($(data).attr("boss1").boss2_n), - boss2_h: parseInt($(data).attr("boss1").boss2_h), - boss2_a: parseInt($(data).attr("boss1").boss2_a), - boss_scene: parseInt($(data).attr("boss1").boss_scene), - boss0_damage: parseInt($(data).attr("boss1").boss0_damage), - boss1_damage: parseInt($(data).attr("boss1").boss1_damage), - boss2_damage: parseInt($(data).attr("boss1").boss2_damage), - boss3_damage: parseInt($(data).attr("boss1").boss3_damage), - boss4_damage: parseInt($(data).attr("boss1").boss4_damage), - boss5_damage: parseInt($(data).attr("boss1").boss5_damage), - boss6_damage: parseInt($(data).attr("boss1").boss6_damage), + stamina: Number($(data).attr("boss1").stamina), + attack: Number($(data).attr("boss1").attack), + item_flg: Number($(data).attr("boss1").item_flg), + item_flg2: Number($(data).attr("boss1").item_flg2), + pick: Number($(data).attr("boss1").pick), + row0: Number($(data).attr("boss1").row0), + row1: Number($(data).attr("boss1").row1), + row2: Number($(data).attr("boss1").row2), + row3: Number($(data).attr("boss1").row3), + column0: Number($(data).attr("boss1").column0), + column1: Number($(data).attr("boss1").column1), + column2: Number($(data).attr("boss1").column2), + column3: Number($(data).attr("boss1").column3), + map: Number($(data).attr("boss1").map), + job: Number($(data).attr("boss1").job), + general: Number($(data).attr("boss1").general), + battle: Number($(data).attr("boss1").battle), + boss0_n: Number($(data).attr("boss1").boss0_n), + boss0_h: Number($(data).attr("boss1").boss0_h), + boss0_a: Number($(data).attr("boss1").boss0_a), + boss1_n: Number($(data).attr("boss1").boss1_n), + boss1_h: Number($(data).attr("boss1").boss1_h), + boss1_a: Number($(data).attr("boss1").boss1_a), + boss2_n: Number($(data).attr("boss1").boss2_n), + boss2_h: Number($(data).attr("boss1").boss2_h), + boss2_a: Number($(data).attr("boss1").boss2_a), + boss_scene: Number($(data).attr("boss1").boss_scene), + boss0_damage: Number($(data).attr("boss1").boss0_damage), + boss1_damage: Number($(data).attr("boss1").boss1_damage), + boss2_damage: Number($(data).attr("boss1").boss2_damage), + boss3_damage: Number($(data).attr("boss1").boss3_damage), + boss4_damage: Number($(data).attr("boss1").boss4_damage), + boss5_damage: Number($(data).attr("boss1").boss5_damage), + boss6_damage: Number($(data).attr("boss1").boss6_damage), level: $(data).element("boss1").numbers("level"), durability: $(data).element("boss1").buffer("durability").toString("base64"), }; @@ -2272,63 +2712,63 @@ export const pcsave: EPR = async (info, data, send) => { if (_.isNil(link5)) { event_data = { - qpro: parseInt($(data).attr("link5").qpro), // add - glass: parseInt($(data).attr("link5").glass), // add - beautiful: parseInt($(data).attr("link5").beautiful), - quaver: parseInt($(data).attr("link5").quaver), - castle: parseInt($(data).attr("link5").castle), - flip: parseInt($(data).attr("link5").flip), - titans: parseInt($(data).attr("link5").titans), - exusia: parseInt($(data).attr("link5").exusia), - waxing: parseInt($(data).attr("link5").waxing), - sampling: parseInt($(data).attr("link5").sampling), - beachside: parseInt($(data).attr("link5").beachside), - cuvelia: parseInt($(data).attr("link5").cuvelia), - reunion: parseInt($(data).attr("link5").reunion), - bad: parseInt($(data).attr("link5").bad), - turii: parseInt($(data).attr("link5").turii), - anisakis: parseInt($(data).attr("link5").anisakis), - second: parseInt($(data).attr("link5").second), - whydidyou: parseInt($(data).attr("link5").whydidyou), - china: parseInt($(data).attr("link5").china), - fallen: parseInt($(data).attr("link5").fallen), - broken: parseInt($(data).attr("link5").broken), - summer: parseInt($(data).attr("link5").summer), - sakura: parseInt($(data).attr("link5").sakura), - wuv: parseInt($(data).attr("link5").wuv), - survival: parseInt($(data).attr("link5").survival), - thunder: parseInt($(data).attr("link5").thunder), + qpro: Number($(data).attr("link5").qpro), // add + glass: Number($(data).attr("link5").glass), // add + beautiful: Number($(data).attr("link5").beautiful), + quaver: Number($(data).attr("link5").quaver), + castle: Number($(data).attr("link5").castle), + flip: Number($(data).attr("link5").flip), + titans: Number($(data).attr("link5").titans), + exusia: Number($(data).attr("link5").exusia), + waxing: Number($(data).attr("link5").waxing), + sampling: Number($(data).attr("link5").sampling), + beachside: Number($(data).attr("link5").beachside), + cuvelia: Number($(data).attr("link5").cuvelia), + reunion: Number($(data).attr("link5").reunion), + bad: Number($(data).attr("link5").bad), + turii: Number($(data).attr("link5").turii), + anisakis: Number($(data).attr("link5").anisakis), + second: Number($(data).attr("link5").second), + whydidyou: Number($(data).attr("link5").whydidyou), + china: Number($(data).attr("link5").china), + fallen: Number($(data).attr("link5").fallen), + broken: Number($(data).attr("link5").broken), + summer: Number($(data).attr("link5").summer), + sakura: Number($(data).attr("link5").sakura), + wuv: Number($(data).attr("link5").wuv), + survival: Number($(data).attr("link5").survival), + thunder: Number($(data).attr("link5").thunder), } } else { event_data = link5; - event_data.qpro += parseInt($(data).attr("link5").qpro); - event_data.glass += parseInt($(data).attr("link5").glass); - event_data.beautiful = parseInt($(data).attr("link5").beautiful); - event_data.quaver = parseInt($(data).attr("link5").quaver); - event_data.castle = parseInt($(data).attr("link5").castle); - event_data.flip = parseInt($(data).attr("link5").flip); - event_data.titans = parseInt($(data).attr("link5").titans); - event_data.exusia = parseInt($(data).attr("link5").exusia); - event_data.waxing = parseInt($(data).attr("link5").waxing); - event_data.sampling = parseInt($(data).attr("link5").sampling); - event_data.beachside = parseInt($(data).attr("link5").beachside); - event_data.cuvelia = parseInt($(data).attr("link5").cuvelia); - event_data.reunion = parseInt($(data).attr("link5").reunion); - event_data.bad = parseInt($(data).attr("link5").bad); - event_data.turii = parseInt($(data).attr("link5").turii); - event_data.anisakis = parseInt($(data).attr("link5").anisakis); - event_data.second = parseInt($(data).attr("link5").second); - event_data.whydidyou = parseInt($(data).attr("link5").whydidyou); - event_data.china = parseInt($(data).attr("link5").china); - event_data.fallen = parseInt($(data).attr("link5").fallen); - event_data.broken = parseInt($(data).attr("link5").broken); - event_data.summer = parseInt($(data).attr("link5").summer); - event_data.sakura = parseInt($(data).attr("link5").sakura); - event_data.wuv = parseInt($(data).attr("link5").wuv); - event_data.survival = parseInt($(data).attr("link5").survival); - event_data.thunder = parseInt($(data).attr("link5").thunder); + event_data.qpro += Number($(data).attr("link5").qpro); + event_data.glass += Number($(data).attr("link5").glass); + event_data.beautiful = Number($(data).attr("link5").beautiful); + event_data.quaver = Number($(data).attr("link5").quaver); + event_data.castle = Number($(data).attr("link5").castle); + event_data.flip = Number($(data).attr("link5").flip); + event_data.titans = Number($(data).attr("link5").titans); + event_data.exusia = Number($(data).attr("link5").exusia); + event_data.waxing = Number($(data).attr("link5").waxing); + event_data.sampling = Number($(data).attr("link5").sampling); + event_data.beachside = Number($(data).attr("link5").beachside); + event_data.cuvelia = Number($(data).attr("link5").cuvelia); + event_data.reunion = Number($(data).attr("link5").reunion); + event_data.bad = Number($(data).attr("link5").bad); + event_data.turii = Number($(data).attr("link5").turii); + event_data.anisakis = Number($(data).attr("link5").anisakis); + event_data.second = Number($(data).attr("link5").second); + event_data.whydidyou = Number($(data).attr("link5").whydidyou); + event_data.china = Number($(data).attr("link5").china); + event_data.fallen = Number($(data).attr("link5").fallen); + event_data.broken = Number($(data).attr("link5").broken); + event_data.summer = Number($(data).attr("link5").summer); + event_data.sakura = Number($(data).attr("link5").sakura); + event_data.wuv = Number($(data).attr("link5").wuv); + event_data.survival = Number($(data).attr("link5").survival); + event_data.thunder = Number($(data).attr("link5").thunder); } await DB.Upsert(refid, @@ -2349,31 +2789,31 @@ export const pcsave: EPR = async (info, data, send) => { if (_.isNil(tricolettepark)) { event_data = { - open_music: parseInt($(data).attr("tricolettepark").open_music), - boss0_damage: parseInt($(data).attr("tricolettepark").boss0_damage), // add - boss1_damage: parseInt($(data).attr("tricolettepark").boss1_damage), - boss2_damage: parseInt($(data).attr("tricolettepark").boss2_damage), - boss3_damage: parseInt($(data).attr("tricolettepark").boss3_damage), - boss0_stun: parseInt($(data).attr("tricolettepark").boss0_stun), - boss1_stun: parseInt($(data).attr("tricolettepark").boss1_stun), - boss2_stun: parseInt($(data).attr("tricolettepark").boss2_stun), - boss3_stun: parseInt($(data).attr("tricolettepark").boss3_stun), - union_magic_used: parseInt($(data).attr("tricolettepark").union_magic_used), + open_music: Number($(data).attr("tricolettepark").open_music), + boss0_damage: Number($(data).attr("tricolettepark").boss0_damage), // add + boss1_damage: Number($(data).attr("tricolettepark").boss1_damage), + boss2_damage: Number($(data).attr("tricolettepark").boss2_damage), + boss3_damage: Number($(data).attr("tricolettepark").boss3_damage), + boss0_stun: Number($(data).attr("tricolettepark").boss0_stun), + boss1_stun: Number($(data).attr("tricolettepark").boss1_stun), + boss2_stun: Number($(data).attr("tricolettepark").boss2_stun), + boss3_stun: Number($(data).attr("tricolettepark").boss3_stun), + union_magic_used: Number($(data).attr("tricolettepark").union_magic_used), } } else { event_data = tricolettepark; - event_data.open_music = parseInt($(data).attr("tricolettepark").open_music), - event_data.boss0_damage += parseInt($(data).attr("tricolettepark").boss0_damage); - event_data.boss1_damage += parseInt($(data).attr("tricolettepark").boss1_damage); - event_data.boss2_damage += parseInt($(data).attr("tricolettepark").boss2_damage); - event_data.boss3_damage += parseInt($(data).attr("tricolettepark").boss3_damage); - event_data.boss0_stun = parseInt($(data).attr("tricolettepark").boss0_stun); - event_data.boss1_stun = parseInt($(data).attr("tricolettepark").boss1_stun); - event_data.boss2_stun = parseInt($(data).attr("tricolettepark").boss2_stun); - event_data.boss3_stun = parseInt($(data).attr("tricolettepark").boss3_stun); - event_data.union_magic_used = parseInt($(data).attr("tricolettepark").union_magic_used); + event_data.open_music = Number($(data).attr("tricolettepark").open_music), + event_data.boss0_damage += Number($(data).attr("tricolettepark").boss0_damage); + event_data.boss1_damage += Number($(data).attr("tricolettepark").boss1_damage); + event_data.boss2_damage += Number($(data).attr("tricolettepark").boss2_damage); + event_data.boss3_damage += Number($(data).attr("tricolettepark").boss3_damage); + event_data.boss0_stun = Number($(data).attr("tricolettepark").boss0_stun); + event_data.boss1_stun = Number($(data).attr("tricolettepark").boss1_stun); + event_data.boss2_stun = Number($(data).attr("tricolettepark").boss2_stun); + event_data.boss3_stun = Number($(data).attr("tricolettepark").boss3_stun); + event_data.union_magic_used = Number($(data).attr("tricolettepark").union_magic_used); } await DB.Upsert(refid, @@ -2389,46 +2829,46 @@ export const pcsave: EPR = async (info, data, send) => { } } else if (version == 22) { - pcdata.rtype = parseInt($(data).attr().rtype); - pcdata.sach = parseInt($(data).attr().s_achi); - pcdata.dach = parseInt($(data).attr().d_achi); - pcdata.sp_opt = parseInt($(data).attr().sp_opt); - pcdata.dp_opt = parseInt($(data).attr().dp_opt); - pcdata.dp_opt2 = parseInt($(data).attr().dp_opt2); - pcdata.gpos = parseInt($(data).attr().gpos); - pcdata.s_sorttype = parseInt($(data).attr().s_sorttype); - pcdata.d_sorttype = parseInt($(data).attr().d_sorttype); - pcdata.s_disp_judge = parseInt($(data).attr().s_disp_judge); - pcdata.d_disp_judge = parseInt($(data).attr().d_disp_judge); - pcdata.s_pace = parseInt($(data).attr().s_pace); - pcdata.d_pace = parseInt($(data).attr().d_pace); - pcdata.s_gno = parseInt($(data).attr().s_gno); - pcdata.d_gno = parseInt($(data).attr().d_gno); - pcdata.s_gtype = parseInt($(data).attr().s_gtype); - pcdata.d_gtype = parseInt($(data).attr().d_gtype); - pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); - pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); - pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); - pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); - pcdata.s_timing = parseInt($(data).attr().s_timing); - pcdata.d_timing = parseInt($(data).attr().d_timing); + pcdata.rtype = Number($(data).attr().rtype); + pcdata.sach = Number($(data).attr().s_achi); + pcdata.dach = Number($(data).attr().d_achi); + pcdata.sp_opt = Number($(data).attr().sp_opt); + pcdata.dp_opt = Number($(data).attr().dp_opt); + pcdata.dp_opt2 = Number($(data).attr().dp_opt2); + pcdata.gpos = Number($(data).attr().gpos); + pcdata.s_sorttype = Number($(data).attr().s_sorttype); + pcdata.d_sorttype = Number($(data).attr().d_sorttype); + pcdata.s_disp_judge = Number($(data).attr().s_disp_judge); + pcdata.d_disp_judge = Number($(data).attr().d_disp_judge); + pcdata.s_pace = Number($(data).attr().s_pace); + pcdata.d_pace = Number($(data).attr().d_pace); + pcdata.s_gno = Number($(data).attr().s_gno); + pcdata.d_gno = Number($(data).attr().d_gno); + pcdata.s_gtype = Number($(data).attr().s_gtype); + pcdata.d_gtype = Number($(data).attr().d_gtype); + pcdata.s_sdlen = Number($(data).attr().s_sdlen); + pcdata.d_sdlen = Number($(data).attr().d_sdlen); + pcdata.s_sdtype = Number($(data).attr().s_sdtype); + pcdata.d_sdtype = Number($(data).attr().d_sdtype); + pcdata.s_timing = Number($(data).attr().s_timing); + pcdata.d_timing = Number($(data).attr().d_timing); pcdata.s_notes = parseFloat($(data).attr().s_notes); pcdata.d_notes = parseFloat($(data).attr().d_notes); - pcdata.s_judge = parseInt($(data).attr().s_judge); - pcdata.d_judge = parseInt($(data).attr().d_judge); - pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); - pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); + pcdata.s_judge = Number($(data).attr().s_judge); + pcdata.d_judge = Number($(data).attr().d_judge); + pcdata.s_judgeAdj = Number($(data).attr().s_judgeAdj); + pcdata.d_judgeAdj = Number($(data).attr().d_judgeAdj); pcdata.s_hispeed = parseFloat($(data).attr().s_hispeed); pcdata.d_hispeed = parseFloat($(data).attr().d_hispeed); - pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); - pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); - pcdata.s_exscore = parseInt($(data).attr().s_exscore); - pcdata.d_exscore = parseInt($(data).attr().d_exscore); - pcdata.s_largejudge = parseInt($(data).attr().s_largejudge); - pcdata.d_largejudge = parseInt($(data).attr().d_largejudge); + pcdata.s_opstyle = Number($(data).attr().s_opstyle); + pcdata.d_opstyle = Number($(data).attr().d_opstyle); + pcdata.s_exscore = Number($(data).attr().s_exscore); + pcdata.d_exscore = Number($(data).attr().d_exscore); + pcdata.s_largejudge = Number($(data).attr().s_largejudge); + pcdata.d_largejudge = Number($(data).attr().d_largejudge); - if (!_.isNil($(data).attr().s_lift)) pcdata.s_liflen = parseInt($(data).attr().s_lift); - if (!_.isNil($(data).attr().d_lift)) pcdata.s_liflen = parseInt($(data).attr().d_lift); + if (!_.isNil($(data).attr().s_lift)) pcdata.s_liflen = Number($(data).attr().s_lift); + if (!_.isNil($(data).attr().d_lift)) pcdata.s_liflen = Number($(data).attr().d_lift); if (!_.isNil($(data).element("secret"))) { pcdata.secret_flg1 = $(data).element("secret").bigints("flg1").map(String); @@ -2452,61 +2892,61 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("qpro_equip"))) { - custom.qpro_head = parseInt($(data).attr("qpro_equip").head); - custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); - custom.qpro_face = parseInt($(data).attr("qpro_equip").face); - custom.qpro_body = parseInt($(data).attr("qpro_equip").body); - custom.qpro_hand = parseInt($(data).attr("qpro_equip").hand); + custom.qpro_head = Number($(data).attr("qpro_equip").head); + custom.qpro_hair = Number($(data).attr("qpro_equip").hair); + custom.qpro_face = Number($(data).attr("qpro_equip").face); + custom.qpro_body = Number($(data).attr("qpro_equip").body); + custom.qpro_hand = Number($(data).attr("qpro_equip").hand); } if (!_.isNil($(data).element("achievements"))) { // TODO:: achi_packflg, achi_packid, achi_playpack // - pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); - pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); - pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); - pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_lastweekly = Number($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = Number($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = Number($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = Number($(data).attr("achievements").weekly_num); pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); } if (hasStepUpData) { - pcdata.st_damage = parseInt($(data).attr("step").damage); - pcdata.st_defeat = parseInt($(data).attr("step").defeat); - pcdata.st_progress = parseInt($(data).attr("step").progress); - pcdata.st_is_secret = parseInt($(data).attr("step").is_secret); - pcdata.st_sp_mission = parseInt($(data).attr("step").sp_mission); - pcdata.st_dp_mission = parseInt($(data).attr("step").dp_mission); - pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); - pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); - 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_damage = Number($(data).attr("step").damage); + pcdata.st_defeat = Number($(data).attr("step").defeat); + pcdata.st_progress = Number($(data).attr("step").progress); + pcdata.st_is_secret = Number($(data).attr("step").is_secret); + pcdata.st_sp_mission = Number($(data).attr("step").sp_mission); + pcdata.st_dp_mission = Number($(data).attr("step").dp_mission); + pcdata.st_sp_level = Number($(data).attr("step").sp_level); + pcdata.st_dp_level = Number($(data).attr("step").dp_level); + pcdata.st_sp_mplay = Number($(data).attr("step").sp_mplay); + pcdata.st_dp_mplay = Number($(data).attr("step").dp_mplay); + pcdata.st_age_list = Number($(data).attr("step").age_list); 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); + pcdata.st_is_present = Number($(data).attr("step").is_present); + pcdata.st_is_future = Number($(data).attr("step").is_future); } - if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); - if (!_.isNil($(data).element("orb_data"))) pcdata.orb += parseInt($(data).attr("orb_data").add_orb); + if (!_.isNil($(data).element("deller"))) pcdata.deller += Number($(data).attr("deller").deller); + if (!_.isNil($(data).element("orb_data"))) pcdata.orb += Number($(data).attr("orb_data").add_orb); // TODO:: fix event saving, these event savings are broken. // if (!_.isNil($(data).element("chrono_diver"))) { let event_data = { - play_count: parseInt($(data).attr("chrono_diver").play_count), - present_unlock: parseInt($(data).attr("chrono_diver").present_unlock), - future_unlock: parseInt($(data).attr("chrono_diver").future_unlock), - success_count_0_n: parseInt($(data).attr("chrono_diver").success_count_0_n), - success_count_0_h: parseInt($(data).attr("chrono_diver").success_count_0_h), - success_count_0_a: parseInt($(data).attr("chrono_diver").success_count_0_a), - success_count_1_n: parseInt($(data).attr("chrono_diver").success_count_1_n), - success_count_1_h: parseInt($(data).attr("chrono_diver").success_count_1_h), - success_count_1_a: parseInt($(data).attr("chrono_diver").success_count_1_a), - success_count_2_n: parseInt($(data).attr("chrono_diver").success_count_2_n), - success_count_2_h: parseInt($(data).attr("chrono_diver").success_count_2_h), - success_count_2_a: parseInt($(data).attr("chrono_diver").success_count_2_a), - success_count_3_n: parseInt($(data).attr("chrono_diver").success_count_3_n), - success_count_3_h: parseInt($(data).attr("chrono_diver").success_count_3_h), - success_count_3_a: parseInt($(data).attr("chrono_diver").success_count_3_a), - story_list: parseInt($(data).attr("chrono_diver").story_list) + play_count: Number($(data).attr("chrono_diver").play_count), + present_unlock: Number($(data).attr("chrono_diver").present_unlock), + future_unlock: Number($(data).attr("chrono_diver").future_unlock), + success_count_0_n: Number($(data).attr("chrono_diver").success_count_0_n), + success_count_0_h: Number($(data).attr("chrono_diver").success_count_0_h), + success_count_0_a: Number($(data).attr("chrono_diver").success_count_0_a), + success_count_1_n: Number($(data).attr("chrono_diver").success_count_1_n), + success_count_1_h: Number($(data).attr("chrono_diver").success_count_1_h), + success_count_1_a: Number($(data).attr("chrono_diver").success_count_1_a), + success_count_2_n: Number($(data).attr("chrono_diver").success_count_2_n), + success_count_2_h: Number($(data).attr("chrono_diver").success_count_2_h), + success_count_2_a: Number($(data).attr("chrono_diver").success_count_2_a), + success_count_3_n: Number($(data).attr("chrono_diver").success_count_3_n), + success_count_3_h: Number($(data).attr("chrono_diver").success_count_3_h), + success_count_3_a: Number($(data).attr("chrono_diver").success_count_3_a), + story_list: Number($(data).attr("chrono_diver").story_list) }; await DB.Upsert(refid, @@ -2523,18 +2963,18 @@ export const pcsave: EPR = async (info, data, send) => { if (!_.isNil($(data).element("qpronicle_chord"))) { let event_data = { - is_first_select_map: parseInt($(data).attr("qpronicle_chord").is_first_select_map), - last_select_map: parseInt($(data).attr("qpronicle_chord").last_select_map), - story_view_list: parseInt($(data).attr("qpronicle_chord").story_view_list), - is_use_login_bonus: parseInt($(data).attr("qpronicle_chord").is_use_login_bonus), - patona_leader: parseInt($(data).attr("qpronicle_chord").patona_leader), - patona_sub_1: parseInt($(data).attr("qpronicle_chord").patona_sub_1), - patona_sub_2: parseInt($(data).attr("qpronicle_chord").patona_sub_2), - rare_enemy_damage1: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage1), - rare_enemy_damage2: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage2), - rare_enemy_damage3: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage3), - rare_enemy_damage4: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage4), - rare_enemy_damage5: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage5), + is_first_select_map: Number($(data).attr("qpronicle_chord").is_first_select_map), + last_select_map: Number($(data).attr("qpronicle_chord").last_select_map), + story_view_list: Number($(data).attr("qpronicle_chord").story_view_list), + is_use_login_bonus: Number($(data).attr("qpronicle_chord").is_use_login_bonus), + patona_leader: Number($(data).attr("qpronicle_chord").patona_leader), + patona_sub_1: Number($(data).attr("qpronicle_chord").patona_sub_1), + patona_sub_2: Number($(data).attr("qpronicle_chord").patona_sub_2), + rare_enemy_damage1: Number($(data).attr("qpronicle_chord").rare_enemy_damage1), + rare_enemy_damage2: Number($(data).attr("qpronicle_chord").rare_enemy_damage2), + rare_enemy_damage3: Number($(data).attr("qpronicle_chord").rare_enemy_damage3), + rare_enemy_damage4: Number($(data).attr("qpronicle_chord").rare_enemy_damage4), + rare_enemy_damage5: Number($(data).attr("qpronicle_chord").rare_enemy_damage5), }; await DB.Upsert(refid, @@ -2555,14 +2995,14 @@ export const pcsave: EPR = async (info, data, send) => { collection: "event_1_sub", version: version, event_name: "qpronicle_chord", - patona_id: parseInt(res.attr().patona_id), + patona_id: Number(res.attr().patona_id), }, { $set: { - level: parseInt(res.attr().level), - exp: parseInt(res.attr().exp), - affection: parseInt(res.attr().affection), - dissatisfaction: parseInt(res.attr().dissatisfaction), + level: Number(res.attr().level), + exp: Number(res.attr().exp), + affection: Number(res.attr().affection), + dissatisfaction: Number(res.attr().dissatisfaction), } } ); @@ -2571,16 +3011,16 @@ export const pcsave: EPR = async (info, data, send) => { if (!_.isNil($(data).element("qpronicle_phase3"))) { let event_data = { - stairs_num: parseInt($(data).attr("qpronicle_phase3").stairs_num), - flame_list: parseInt($(data).attr("qpronicle_phase3").flame_list), - lane_list: parseInt($(data).attr("qpronicle_phase3").lane_list), - map0_select: parseInt($(data).attr("qpronicle_phase3").map0_select), - map1_select: parseInt($(data).attr("qpronicle_phase3").map1_select), - map2_select: parseInt($(data).attr("qpronicle_phase3").map2_select), - map3_select: parseInt($(data).attr("qpronicle_phase3").map3_select), - map4_select: parseInt($(data).attr("qpronicle_phase3").map4_select), - map5_select: parseInt($(data).attr("qpronicle_phase3").map5_select), - map6_select: parseInt($(data).attr("qpronicle_phase3").map6_select), + stairs_num: Number($(data).attr("qpronicle_phase3").stairs_num), + flame_list: Number($(data).attr("qpronicle_phase3").flame_list), + lane_list: Number($(data).attr("qpronicle_phase3").lane_list), + map0_select: Number($(data).attr("qpronicle_phase3").map0_select), + map1_select: Number($(data).attr("qpronicle_phase3").map1_select), + map2_select: Number($(data).attr("qpronicle_phase3").map2_select), + map3_select: Number($(data).attr("qpronicle_phase3").map3_select), + map4_select: Number($(data).attr("qpronicle_phase3").map4_select), + map5_select: Number($(data).attr("qpronicle_phase3").map5_select), + map6_select: Number($(data).attr("qpronicle_phase3").map6_select), }; await DB.Upsert(refid, @@ -2598,7 +3038,7 @@ export const pcsave: EPR = async (info, data, send) => { if (!_.isNil($(data).element("boss_event_3"))) { let boss_event_3 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "boss_event_3" }); let event_data = null; - let point = parseInt($(data).attr("boss_event_3").add_bonus_point); + let point = Number($(data).attr("boss_event_3").add_bonus_point); if (_.isNil(boss_event_3)) { event_data = { @@ -2625,46 +3065,46 @@ export const pcsave: EPR = async (info, data, send) => { // chaser // } else if (version == 23) { - pcdata.rtype = parseInt($(data).attr().rtype); - pcdata.sach = parseInt($(data).attr().s_achi); - pcdata.dach = parseInt($(data).attr().d_achi); - pcdata.sp_opt = parseInt($(data).attr().sp_opt); - pcdata.dp_opt = parseInt($(data).attr().dp_opt); - pcdata.dp_opt2 = parseInt($(data).attr().dp_opt2); - pcdata.gpos = parseInt($(data).attr().gpos); - pcdata.s_sorttype = parseInt($(data).attr().s_sorttype); - pcdata.d_sorttype = parseInt($(data).attr().d_sorttype); - pcdata.s_disp_judge = parseInt($(data).attr().s_disp_judge); - pcdata.d_disp_judge = parseInt($(data).attr().d_disp_judge); - pcdata.s_pace = parseInt($(data).attr().s_pace); - pcdata.d_pace = parseInt($(data).attr().d_pace); - pcdata.s_gno = parseInt($(data).attr().s_gno); - pcdata.d_gno = parseInt($(data).attr().d_gno); - pcdata.s_gtype = parseInt($(data).attr().s_gtype); - pcdata.d_gtype = parseInt($(data).attr().d_gtype); - pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); - pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); - pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); - pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); + pcdata.rtype = Number($(data).attr().rtype); + pcdata.sach = Number($(data).attr().s_achi); + pcdata.dach = Number($(data).attr().d_achi); + pcdata.sp_opt = Number($(data).attr().sp_opt); + pcdata.dp_opt = Number($(data).attr().dp_opt); + pcdata.dp_opt2 = Number($(data).attr().dp_opt2); + pcdata.gpos = Number($(data).attr().gpos); + pcdata.s_sorttype = Number($(data).attr().s_sorttype); + pcdata.d_sorttype = Number($(data).attr().d_sorttype); + pcdata.s_disp_judge = Number($(data).attr().s_disp_judge); + pcdata.d_disp_judge = Number($(data).attr().d_disp_judge); + pcdata.s_pace = Number($(data).attr().s_pace); + pcdata.d_pace = Number($(data).attr().d_pace); + pcdata.s_gno = Number($(data).attr().s_gno); + pcdata.d_gno = Number($(data).attr().d_gno); + pcdata.s_gtype = Number($(data).attr().s_gtype); + pcdata.d_gtype = Number($(data).attr().d_gtype); + pcdata.s_sdlen = Number($(data).attr().s_sdlen); + pcdata.d_sdlen = Number($(data).attr().d_sdlen); + pcdata.s_sdtype = Number($(data).attr().s_sdtype); + pcdata.d_sdtype = Number($(data).attr().d_sdtype); pcdata.s_notes = parseFloat($(data).attr().s_notes); pcdata.d_notes = parseFloat($(data).attr().d_notes); - pcdata.s_timing = parseInt($(data).attr().s_timing); - pcdata.d_timing = parseInt($(data).attr().d_timing); - pcdata.s_judge = parseInt($(data).attr().s_judge); - pcdata.d_judge = parseInt($(data).attr().d_judge); - pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); - pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); + pcdata.s_timing = Number($(data).attr().s_timing); + pcdata.d_timing = Number($(data).attr().d_timing); + pcdata.s_judge = Number($(data).attr().s_judge); + pcdata.d_judge = Number($(data).attr().d_judge); + pcdata.s_judgeAdj = Number($(data).attr().s_judgeAdj); + pcdata.d_judgeAdj = Number($(data).attr().d_judgeAdj); pcdata.s_hispeed = parseFloat($(data).attr().s_hispeed); pcdata.d_hispeed = parseFloat($(data).attr().d_hispeed); - pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); - pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); - pcdata.s_exscore = parseInt($(data).attr().s_exscore); - pcdata.d_exscore = parseInt($(data).attr().d_exscore); - pcdata.s_largejudge = parseInt($(data).attr().s_largejudge); - pcdata.d_largejudge = parseInt($(data).attr().d_largejudge); + pcdata.s_opstyle = Number($(data).attr().s_opstyle); + pcdata.d_opstyle = Number($(data).attr().d_opstyle); + pcdata.s_exscore = Number($(data).attr().s_exscore); + pcdata.d_exscore = Number($(data).attr().d_exscore); + pcdata.s_largejudge = Number($(data).attr().s_largejudge); + pcdata.d_largejudge = Number($(data).attr().d_largejudge); - if (!_.isNil($(data).attr().s_lift)) pcdata.s_liflen = parseInt($(data).attr().s_lift); - if (!_.isNil($(data).attr().d_lift)) pcdata.s_liflen = parseInt($(data).attr().d_lift); + if (!_.isNil($(data).attr().s_lift)) pcdata.s_liflen = Number($(data).attr().s_lift); + if (!_.isNil($(data).attr().d_lift)) pcdata.s_liflen = Number($(data).attr().d_lift); if (!_.isNil($(data).element("secret"))) { pcdata.secret_flg1 = $(data).element("secret").bigints("flg1").map(String); @@ -2709,52 +3149,52 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("qpro_equip"))) { - custom.qpro_head = parseInt($(data).attr("qpro_equip").head); - custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); - custom.qpro_face = parseInt($(data).attr("qpro_equip").face); - custom.qpro_body = parseInt($(data).attr("qpro_equip").body); - custom.qpro_hand = parseInt($(data).attr("qpro_equip").hand); + custom.qpro_head = Number($(data).attr("qpro_equip").head); + custom.qpro_hair = Number($(data).attr("qpro_equip").hair); + custom.qpro_face = Number($(data).attr("qpro_equip").face); + custom.qpro_body = Number($(data).attr("qpro_equip").body); + custom.qpro_hand = Number($(data).attr("qpro_equip").hand); } if (!_.isNil($(data).element("achievements"))) { // TODO:: achi_packflg, achi_packid, achi_playpack // - pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); - pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); - pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); - pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_lastweekly = Number($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = Number($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = Number($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = Number($(data).attr("achievements").weekly_num); pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); } if (hasStepUpData) { - pcdata.st_friendship = parseInt($(data).attr("step").friendship); - pcdata.st_progress = parseInt($(data).attr("step").progress); - pcdata.st_station_clear = parseInt($(data).attr("step").station_clear); - pcdata.st_station_play = parseInt($(data).attr("step").station_play); - pcdata.st_sp_mission = parseInt($(data).attr("step").sp_mission); - pcdata.st_dp_mission = parseInt($(data).attr("step").dp_mission); - pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); - pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); - 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_friendship = Number($(data).attr("step").friendship); + pcdata.st_progress = Number($(data).attr("step").progress); + pcdata.st_station_clear = Number($(data).attr("step").station_clear); + pcdata.st_station_play = Number($(data).attr("step").station_play); + pcdata.st_sp_mission = Number($(data).attr("step").sp_mission); + pcdata.st_dp_mission = Number($(data).attr("step").dp_mission); + pcdata.st_sp_level = Number($(data).attr("step").sp_level); + pcdata.st_dp_level = Number($(data).attr("step").dp_level); + pcdata.st_sp_mplay = Number($(data).attr("step").sp_mplay); + pcdata.st_dp_mplay = Number($(data).attr("step").dp_mplay); + pcdata.st_mission_gauge = Number($(data).attr("step").mission_gauge); pcdata.st_tokimeki = $(data).buffer("step").toString("base64"); // TODO:: verify // } - if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); - if (!_.isNil($(data).element("orb_data"))) pcdata.orb += parseInt($(data).attr("orb_data").add_orb); + if (!_.isNil($(data).element("deller"))) pcdata.deller += Number($(data).attr("deller").deller); + if (!_.isNil($(data).element("orb_data"))) pcdata.orb += Number($(data).attr("orb_data").add_orb); // TODO:: fix event saving, these event savings are broken. // if (!_.isNil($(data).element("event1_data"))) { let event_data = { - point_map_0: parseInt($(data).attr("event1_data").point_map_0), - point_map_1: parseInt($(data).attr("event1_data").point_map_1), - point_map_2: parseInt($(data).attr("event1_data").point_map_2), - point_map_3: parseInt($(data).attr("event1_data").point_map_3), - point_map_4: parseInt($(data).attr("event1_data").point_map_4), - last_map: parseInt($(data).attr("event1_data").last_map), - hold_point: parseInt($(data).attr("event1_data").hold_point), - rank_point: parseInt($(data).attr("event1_data").rank_point), - tips_list: parseInt($(data).attr("event1_data").tips_list), + point_map_0: Number($(data).attr("event1_data").point_map_0), + point_map_1: Number($(data).attr("event1_data").point_map_1), + point_map_2: Number($(data).attr("event1_data").point_map_2), + point_map_3: Number($(data).attr("event1_data").point_map_3), + point_map_4: Number($(data).attr("event1_data").point_map_4), + last_map: Number($(data).attr("event1_data").last_map), + hold_point: Number($(data).attr("event1_data").hold_point), + rank_point: Number($(data).attr("event1_data").rank_point), + tips_list: Number($(data).attr("event1_data").tips_list), }; await DB.Upsert(refid, @@ -2771,10 +3211,10 @@ export const pcsave: EPR = async (info, data, send) => { if (!_.isNil($(data).element("event2_data"))) { let event_data = { - now_stay_area: parseInt($(data).attr("event2_data").now_stay_area), - now_stay_note_grade: parseInt($(data).attr("event2_data").now_stay_note_grade), - play_num: parseInt($(data).attr("event2_data").play_num), - stop_area_time: parseInt($(data).attr("event2_data").stop_area_time), + now_stay_area: Number($(data).attr("event2_data").now_stay_area), + now_stay_note_grade: Number($(data).attr("event2_data").now_stay_note_grade), + play_num: Number($(data).attr("event2_data").play_num), + stop_area_time: Number($(data).attr("event2_data").stop_area_time), }; await DB.Upsert(refid, @@ -2795,14 +3235,14 @@ export const pcsave: EPR = async (info, data, send) => { collection: "event_1_sub", version: version, event_name: "event2_data", - area_no: parseInt(res.attr().area_no), + area_no: Number(res.attr().area_no), }, { $set: { - area_play_num: parseInt(res.attr().area_play_num), - normal_point: parseInt(res.attr().normal_point), - hyper_point: parseInt(res.attr().hyper_point), - another_point: parseInt(res.attr().another_point), + area_play_num: Number(res.attr().area_play_num), + normal_point: Number(res.attr().normal_point), + hyper_point: Number(res.attr().hyper_point), + another_point: Number(res.attr().another_point), } } ); @@ -2810,51 +3250,51 @@ export const pcsave: EPR = async (info, data, send) => { } } else if (version == 24) { - pcdata.sach = parseInt($(data).attr().s_achi); - pcdata.dach = parseInt($(data).attr().d_achi); + pcdata.sach = Number($(data).attr().s_achi); + pcdata.dach = Number($(data).attr().d_achi); - pcdata.d_disp_judge = parseInt($(data).attr().d_disp_judge); - pcdata.d_exscore = parseInt($(data).attr().d_exscore); - pcdata.d_gno = parseInt($(data).attr().d_gno); - pcdata.d_graph_score = parseInt($(data).attr().d_graph_score); - pcdata.d_gtype = parseInt($(data).attr().d_gtype); + pcdata.d_disp_judge = Number($(data).attr().d_disp_judge); + pcdata.d_exscore = Number($(data).attr().d_exscore); + pcdata.d_gno = Number($(data).attr().d_gno); + pcdata.d_graph_score = Number($(data).attr().d_graph_score); + pcdata.d_gtype = Number($(data).attr().d_gtype); pcdata.d_hispeed = parseFloat($(data).attr().d_hispeed); - pcdata.d_judge = parseInt($(data).attr().d_judge); - pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); + pcdata.d_judge = Number($(data).attr().d_judge); + pcdata.d_judgeAdj = Number($(data).attr().d_judgeAdj); pcdata.d_notes = parseFloat($(data).attr().d_notes); - pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); - pcdata.d_pace = parseInt($(data).attr().d_pace); - pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); - pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); - pcdata.d_sorttype = parseInt($(data).attr().d_sorttype); - pcdata.d_timing = parseInt($(data).attr().d_timing); - pcdata.dp_opt = parseInt($(data).attr().dp_opt); - pcdata.dp_opt2 = parseInt($(data).attr().dp_opt2); - pcdata.gpos = parseInt($(data).attr().gpos); - pcdata.mode = parseInt($(data).attr().mode); - pcdata.pmode = parseInt($(data).attr().pmode); - pcdata.rtype = parseInt($(data).attr().rtype); - pcdata.s_disp_judge = parseInt($(data).attr().s_disp_judge); - pcdata.s_exscore = parseInt($(data).attr().s_exscore); - pcdata.s_gno = parseInt($(data).attr().s_gno); - pcdata.s_graph_score = parseInt($(data).attr().s_graph_score); - pcdata.s_gtype = parseInt($(data).attr().s_gtype); + pcdata.d_opstyle = Number($(data).attr().d_opstyle); + pcdata.d_pace = Number($(data).attr().d_pace); + pcdata.d_sdlen = Number($(data).attr().d_sdlen); + pcdata.d_sdtype = Number($(data).attr().d_sdtype); + pcdata.d_sorttype = Number($(data).attr().d_sorttype); + pcdata.d_timing = Number($(data).attr().d_timing); + pcdata.dp_opt = Number($(data).attr().dp_opt); + pcdata.dp_opt2 = Number($(data).attr().dp_opt2); + pcdata.gpos = Number($(data).attr().gpos); + pcdata.mode = Number($(data).attr().mode); + pcdata.pmode = Number($(data).attr().pmode); + pcdata.rtype = Number($(data).attr().rtype); + pcdata.s_disp_judge = Number($(data).attr().s_disp_judge); + pcdata.s_exscore = Number($(data).attr().s_exscore); + pcdata.s_gno = Number($(data).attr().s_gno); + pcdata.s_graph_score = Number($(data).attr().s_graph_score); + pcdata.s_gtype = Number($(data).attr().s_gtype); pcdata.s_hispeed = parseFloat($(data).attr().s_hispeed); - pcdata.s_judge = parseInt($(data).attr().s_judge); - pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); + pcdata.s_judge = Number($(data).attr().s_judge); + pcdata.s_judgeAdj = Number($(data).attr().s_judgeAdj); pcdata.s_notes = parseFloat($(data).attr().s_notes); - pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); - pcdata.s_pace = parseInt($(data).attr().s_pace); - pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); - pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); - pcdata.s_sorttype = parseInt($(data).attr().s_sorttype); - pcdata.s_timing = parseInt($(data).attr().s_timing); - pcdata.sp_opt = parseInt($(data).attr().sp_opt); + pcdata.s_opstyle = Number($(data).attr().s_opstyle); + pcdata.s_pace = Number($(data).attr().s_pace); + pcdata.s_sdlen = Number($(data).attr().s_sdlen); + pcdata.s_sdtype = Number($(data).attr().s_sdtype); + pcdata.s_sorttype = Number($(data).attr().s_sorttype); + pcdata.s_timing = Number($(data).attr().s_timing); + pcdata.sp_opt = Number($(data).attr().sp_opt); if (cltype == 0) { - pcdata.s_liflen = parseInt($(data).attr().s_lift); + pcdata.s_liflen = Number($(data).attr().s_lift); } else { - pcdata.d_liflen = parseInt($(data).attr().d_lift); + pcdata.d_liflen = Number($(data).attr().d_lift); } if (!_.isNil($(data).element("secret"))) { @@ -2900,29 +3340,29 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("qpro_equip"))) { - custom.qpro_head = parseInt($(data).attr("qpro_equip").head); - custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); - custom.qpro_face = parseInt($(data).attr("qpro_equip").face); - custom.qpro_body = parseInt($(data).attr("qpro_equip").body); - custom.qpro_hand = parseInt($(data).attr("qpro_equip").hand); + custom.qpro_head = Number($(data).attr("qpro_equip").head); + custom.qpro_hair = Number($(data).attr("qpro_equip").hair); + custom.qpro_face = Number($(data).attr("qpro_equip").face); + custom.qpro_body = Number($(data).attr("qpro_equip").body); + custom.qpro_hand = Number($(data).attr("qpro_equip").hand); } if (hasStepUpData) { - pcdata.st_enemy_damage = parseInt($(data).attr("step").enemy_damage); - pcdata.st_progress = parseInt($(data).attr("step").progress); - pcdata.st_enemy_defeat_flg = parseInt($(data).attr("step").enemy_defeat_flg); - pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); - pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); - pcdata.st_sp_mplay = parseInt($(data).attr("step").sp_mplay); - pcdata.st_dp_mplay = parseInt($(data).attr("step").dp_mplay); + pcdata.st_enemy_damage = Number($(data).attr("step").enemy_damage); + pcdata.st_progress = Number($(data).attr("step").progress); + pcdata.st_enemy_defeat_flg = Number($(data).attr("step").enemy_defeat_flg); + pcdata.st_sp_level = Number($(data).attr("step").sp_level); + pcdata.st_dp_level = Number($(data).attr("step").dp_level); + pcdata.st_sp_mplay = Number($(data).attr("step").sp_mplay); + pcdata.st_dp_mplay = Number($(data).attr("step").dp_mplay); } if (!_.isNil($(data).element("achievements"))) { // TODO:: achi_packflg, achi_packid, achi_playpack // - pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); - pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); - pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); - pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_lastweekly = Number($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = Number($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = Number($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = Number($(data).attr("achievements").weekly_num); pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); } @@ -2942,11 +3382,11 @@ export const pcsave: EPR = async (info, data, send) => { // TODO:: fix event saving, these event savings hasn't fully tested // if (hasEventData) { let event_data = { - last_select_map: parseInt($(data).attr("event1").last_select_map), - hold_rice: parseInt($(data).attr("event1").hold_rice), - tax_rice: parseInt($(data).attr("event1").tax_rice), - tipls_read: parseInt($(data).attr("event1").tipls_read), - play_gift: parseInt($(data).attr("event1").play_gift) + last_select_map: Number($(data).attr("event1").last_select_map), + hold_rice: Number($(data).attr("event1").hold_rice), + tax_rice: Number($(data).attr("event1").tax_rice), + tipls_read: Number($(data).attr("event1").tipls_read), + play_gift: Number($(data).attr("event1").play_gift) }; await DB.Upsert(refid, @@ -2966,14 +3406,14 @@ export const pcsave: EPR = async (info, data, send) => { collection: "event_1_sub", version: version, event_name: "event1_data", - map_id: parseInt(res.attr().map_id), + map_id: Number(res.attr().map_id), }, { $set: { - play_num: parseInt(res.attr().play_num), - progress: parseInt(res.attr().progress), - battle_point: parseInt(res.attr().battle_point), - rice_point: parseInt(res.attr().rice_point), + play_num: Number(res.attr().play_num), + progress: Number(res.attr().progress), + battle_point: Number(res.attr().battle_point), + rice_point: Number(res.attr().rice_point), is_clear: res.bool("is_clear"), ninjyutsu: res.buffer("ninjyutsu").toString("base64"), card_damage: res.buffer("card_damage").toString("base64"), @@ -2986,9 +3426,9 @@ export const pcsave: EPR = async (info, data, send) => { if (hasEvent2Data) { let event_data = { - play_num: parseInt($(data).attr("event2").play_num), - chakra_point: parseInt($(data).attr("event2").chakra_point), - last_select_ryuha: parseInt($(data).attr("event2").last_select_ryuha), + play_num: Number($(data).attr("event2").play_num), + chakra_point: Number($(data).attr("event2").chakra_point), + last_select_ryuha: Number($(data).attr("event2").last_select_ryuha), last_select_dojo: $(data).element("event2").buffer("last_select_dojo").toString("base64"), enemy_damage: $(data).element("event2").buffer("enemy_damage").toString("base64"), }; @@ -3006,63 +3446,63 @@ export const pcsave: EPR = async (info, data, send) => { } // onemore // - if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); - if (!_.isNil($(data).element("orb_data"))) pcdata.orb += parseInt($(data).attr("orb_data").add_orb); + if (!_.isNil($(data).element("deller"))) pcdata.deller += Number($(data).attr("deller").deller); + if (!_.isNil($(data).element("orb_data"))) pcdata.orb += Number($(data).attr("orb_data").add_orb); } else if (version == 25) { - pcdata.sach = parseInt($(data).attr().s_achi); - pcdata.dach = parseInt($(data).attr().d_achi); + pcdata.sach = Number($(data).attr().s_achi); + pcdata.dach = Number($(data).attr().d_achi); - pcdata.d_auto_scrach = parseInt($(data).attr().d_auto_scrach); - pcdata.d_camera_layout = parseInt($(data).attr().d_camera_layout); - pcdata.d_disp_judge = parseInt($(data).attr().d_disp_judge); - pcdata.d_exscore = parseInt($(data).attr().d_exscore); - pcdata.d_gauge_disp = parseInt($(data).attr().d_gauge_disp); - pcdata.d_gno = parseInt($(data).attr().d_gno); - pcdata.d_graph_score = parseInt($(data).attr().d_graph_score); - pcdata.d_gtype = parseInt($(data).attr().d_gtype); + pcdata.d_auto_scrach = Number($(data).attr().d_auto_scrach); + pcdata.d_camera_layout = Number($(data).attr().d_camera_layout); + pcdata.d_disp_judge = Number($(data).attr().d_disp_judge); + pcdata.d_exscore = Number($(data).attr().d_exscore); + pcdata.d_gauge_disp = Number($(data).attr().d_gauge_disp); + pcdata.d_gno = Number($(data).attr().d_gno); + pcdata.d_graph_score = Number($(data).attr().d_graph_score); + pcdata.d_gtype = Number($(data).attr().d_gtype); pcdata.d_hispeed = parseFloat($(data).attr().d_hispeed); - pcdata.d_judge = parseInt($(data).attr().d_judge); - pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); - pcdata.d_lane_brignt = parseInt($(data).attr().d_lane_brignt); + pcdata.d_judge = Number($(data).attr().d_judge); + pcdata.d_judgeAdj = Number($(data).attr().d_judgeAdj); + pcdata.d_lane_brignt = Number($(data).attr().d_lane_brignt); pcdata.d_notes = parseFloat($(data).attr().d_notes); - pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); - pcdata.d_pace = parseInt($(data).attr().d_pace); - pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); - pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); - pcdata.d_sorttype = parseInt($(data).attr().d_sorttype); - pcdata.d_timing = parseInt($(data).attr().d_timing); - pcdata.dp_opt = parseInt($(data).attr().dp_opt); - pcdata.dp_opt2 = parseInt($(data).attr().dp_opt2); - pcdata.gpos = parseInt($(data).attr().gpos); - pcdata.mode = parseInt($(data).attr().mode); - pcdata.pmode = parseInt($(data).attr().pmode); - pcdata.rtype = parseInt($(data).attr().rtype); - pcdata.s_auto_scrach = parseInt($(data).attr().s_auto_scrach); - pcdata.s_camera_layout = parseInt($(data).attr().s_camera_layout); - pcdata.s_disp_judge = parseInt($(data).attr().s_disp_judge); - pcdata.s_exscore = parseInt($(data).attr().s_exscore); - pcdata.s_gauge_disp = parseInt($(data).attr().s_gauge_disp); - pcdata.s_gno = parseInt($(data).attr().s_gno); - pcdata.s_graph_score = parseInt($(data).attr().s_graph_score); - pcdata.s_gtype = parseInt($(data).attr().s_gtype); + pcdata.d_opstyle = Number($(data).attr().d_opstyle); + pcdata.d_pace = Number($(data).attr().d_pace); + pcdata.d_sdlen = Number($(data).attr().d_sdlen); + pcdata.d_sdtype = Number($(data).attr().d_sdtype); + pcdata.d_sorttype = Number($(data).attr().d_sorttype); + pcdata.d_timing = Number($(data).attr().d_timing); + pcdata.dp_opt = Number($(data).attr().dp_opt); + pcdata.dp_opt2 = Number($(data).attr().dp_opt2); + pcdata.gpos = Number($(data).attr().gpos); + pcdata.mode = Number($(data).attr().mode); + pcdata.pmode = Number($(data).attr().pmode); + pcdata.rtype = Number($(data).attr().rtype); + pcdata.s_auto_scrach = Number($(data).attr().s_auto_scrach); + pcdata.s_camera_layout = Number($(data).attr().s_camera_layout); + pcdata.s_disp_judge = Number($(data).attr().s_disp_judge); + pcdata.s_exscore = Number($(data).attr().s_exscore); + pcdata.s_gauge_disp = Number($(data).attr().s_gauge_disp); + pcdata.s_gno = Number($(data).attr().s_gno); + pcdata.s_graph_score = Number($(data).attr().s_graph_score); + pcdata.s_gtype = Number($(data).attr().s_gtype); pcdata.s_hispeed = parseFloat($(data).attr().s_hispeed); - pcdata.s_judge = parseInt($(data).attr().s_judge); - pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); - pcdata.s_lane_brignt = parseInt($(data).attr().s_lane_brignt); + pcdata.s_judge = Number($(data).attr().s_judge); + pcdata.s_judgeAdj = Number($(data).attr().s_judgeAdj); + pcdata.s_lane_brignt = Number($(data).attr().s_lane_brignt); pcdata.s_notes = parseFloat($(data).attr().s_notes); - pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); - pcdata.s_pace = parseInt($(data).attr().s_pace); - pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); - pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); - pcdata.s_sorttype = parseInt($(data).attr().s_sorttype); - pcdata.s_timing = parseInt($(data).attr().s_timing); - pcdata.sp_opt = parseInt($(data).attr().sp_opt); + pcdata.s_opstyle = Number($(data).attr().s_opstyle); + pcdata.s_pace = Number($(data).attr().s_pace); + pcdata.s_sdlen = Number($(data).attr().s_sdlen); + pcdata.s_sdtype = Number($(data).attr().s_sdtype); + pcdata.s_sorttype = Number($(data).attr().s_sorttype); + pcdata.s_timing = Number($(data).attr().s_timing); + pcdata.sp_opt = Number($(data).attr().sp_opt); if (cltype == 0) { - pcdata.s_liflen = parseInt($(data).attr().s_lift); + pcdata.s_liflen = Number($(data).attr().s_lift); } else { - pcdata.d_liflen = parseInt($(data).attr().d_lift); + pcdata.d_liflen = Number($(data).attr().d_lift); } if (!_.isNil($(data).element("secret"))) { @@ -3108,30 +3548,30 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("qpro_equip"))) { - custom.qpro_head = parseInt($(data).attr("qpro_equip").head); - custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); - custom.qpro_face = parseInt($(data).attr("qpro_equip").face); - custom.qpro_body = parseInt($(data).attr("qpro_equip").body); - custom.qpro_hand = parseInt($(data).attr("qpro_equip").hand); + custom.qpro_head = Number($(data).attr("qpro_equip").head); + custom.qpro_hair = Number($(data).attr("qpro_equip").hair); + custom.qpro_face = Number($(data).attr("qpro_equip").face); + custom.qpro_body = Number($(data).attr("qpro_equip").body); + custom.qpro_hand = Number($(data).attr("qpro_equip").hand); } if (hasStepUpData) { - pcdata.st_enemy_damage = parseInt($(data).attr("step").enemy_damage); - pcdata.st_progress = parseInt($(data).attr("step").progress); - pcdata.st_point = parseInt($(data).attr("step").point); - pcdata.st_enemy_defeat_flg = parseInt($(data).attr("step").enemy_defeat_flg); - pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); - pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); - pcdata.st_sp_mplay = parseInt($(data).attr("step").sp_mplay); - pcdata.st_dp_mplay = parseInt($(data).attr("step").dp_mplay); + pcdata.st_enemy_damage = Number($(data).attr("step").enemy_damage); + pcdata.st_progress = Number($(data).attr("step").progress); + pcdata.st_point = Number($(data).attr("step").point); + pcdata.st_enemy_defeat_flg = Number($(data).attr("step").enemy_defeat_flg); + pcdata.st_sp_level = Number($(data).attr("step").sp_level); + pcdata.st_dp_level = Number($(data).attr("step").dp_level); + pcdata.st_sp_mplay = Number($(data).attr("step").sp_mplay); + pcdata.st_dp_mplay = Number($(data).attr("step").dp_mplay); } if (!_.isNil($(data).element("achievements"))) { // TODO:: achi_packflg, achi_packid, achi_playpack // - pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); - pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); - pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); - pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_lastweekly = Number($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = Number($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = Number($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = Number($(data).attr("achievements").weekly_num); pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); } @@ -3148,20 +3588,20 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.dr_dppoint = $(data).element("dj_rank").numbers("point"); } - if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); - if (!_.isNil($(data).element("orb_data"))) pcdata.orb += parseInt($(data).attr("orb_data").add_orb); + if (!_.isNil($(data).element("deller"))) pcdata.deller += Number($(data).attr("deller").deller); + if (!_.isNil($(data).element("orb_data"))) pcdata.orb += Number($(data).attr("orb_data").add_orb); // TODO:: fix event saving, these event savings hasn't fully tested // if (!_.isNil($(data).element("event1"))) { let event_data = { - tuneup_point: parseInt($(data).attr("event1").tuneup_point), - body_parts_list: parseInt($(data).attr("event1").body_parts_list), - engine_parts_list: parseInt($(data).attr("event1").engine_parts_list), - tire_parts_list: parseInt($(data).attr("event1").tire_parts_list), - body_equip_parts: parseInt($(data).attr("event1").body_equip_parts), - engine_equip_parts: parseInt($(data).attr("event1").engine_equip_parts), - tire_equip_parts: parseInt($(data).attr("event1").tire_equip_parts), - play_gift: parseInt($(data).attr("event1").play_gift) + tuneup_point: Number($(data).attr("event1").tuneup_point), + body_parts_list: Number($(data).attr("event1").body_parts_list), + engine_parts_list: Number($(data).attr("event1").engine_parts_list), + tire_parts_list: Number($(data).attr("event1").tire_parts_list), + body_equip_parts: Number($(data).attr("event1").body_equip_parts), + engine_equip_parts: Number($(data).attr("event1").engine_equip_parts), + tire_equip_parts: Number($(data).attr("event1").tire_equip_parts), + play_gift: Number($(data).attr("event1").play_gift) }; await DB.Upsert(refid, @@ -3181,20 +3621,20 @@ export const pcsave: EPR = async (info, data, send) => { collection: "event_1_sub", version: version, event_name: "event1_data", - map_id: parseInt(res.attr().map_id), + map_id: Number(res.attr().map_id), }, { $set: { - play_num: parseInt(res.attr().play_num), - progress: parseInt(res.attr().progress), - boost_fuel: parseInt(res.attr().boost_fuel), - rare1_appearance: parseInt(res.attr().rare1_appearance), - rare2_appearance: parseInt(res.attr().rare2_appearance), - rare3_appearance: parseInt(res.attr().rare3_appearance), - rare4_appearance: parseInt(res.attr().rare4_appearance), - rare5_appearance: parseInt(res.attr().rare5_appearance), - rare6_appearance: parseInt(res.attr().rare6_appearance), - rare_defeat_list: parseInt(res.attr().rare_defeat_list), + play_num: Number(res.attr().play_num), + progress: Number(res.attr().progress), + boost_fuel: Number(res.attr().boost_fuel), + rare1_appearance: Number(res.attr().rare1_appearance), + rare2_appearance: Number(res.attr().rare2_appearance), + rare3_appearance: Number(res.attr().rare3_appearance), + rare4_appearance: Number(res.attr().rare4_appearance), + rare5_appearance: Number(res.attr().rare5_appearance), + rare6_appearance: Number(res.attr().rare6_appearance), + rare_defeat_list: Number(res.attr().rare_defeat_list), is_clear: res.bool("is_clear"), } } @@ -3203,58 +3643,58 @@ export const pcsave: EPR = async (info, data, send) => { } } else if (version == 26) { - pcdata.rtype = parseInt($(data).attr().rtype); - pcdata.sach = parseInt($(data).attr().s_achi); - pcdata.dach = parseInt($(data).attr().d_achi); - pcdata.sp_opt = parseInt($(data).attr().sp_opt); - pcdata.dp_opt = parseInt($(data).attr().dp_opt); - pcdata.dp_opt2 = parseInt($(data).attr().dp_opt2); - pcdata.gpos = parseInt($(data).attr().gpos); - pcdata.s_sorttype = parseInt($(data).attr().s_sorttype); - pcdata.d_sorttype = parseInt($(data).attr().d_sorttype); - pcdata.s_disp_judge = parseInt($(data).attr().s_disp_judge); - pcdata.d_disp_judge = parseInt($(data).attr().d_disp_judge); - pcdata.s_pace = parseInt($(data).attr().s_pace); - pcdata.d_pace = parseInt($(data).attr().d_pace); - pcdata.s_gno = parseInt($(data).attr().s_gno); - pcdata.d_gno = parseInt($(data).attr().d_gno); - pcdata.s_gtype = parseInt($(data).attr().s_gtype); - pcdata.d_gtype = parseInt($(data).attr().d_gtype); - pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); - pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); - pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); - pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); - pcdata.s_timing = parseInt($(data).attr().s_timing); - pcdata.d_timing = parseInt($(data).attr().d_timing); + pcdata.rtype = Number($(data).attr().rtype); + pcdata.sach = Number($(data).attr().s_achi); + pcdata.dach = Number($(data).attr().d_achi); + pcdata.sp_opt = Number($(data).attr().sp_opt); + pcdata.dp_opt = Number($(data).attr().dp_opt); + pcdata.dp_opt2 = Number($(data).attr().dp_opt2); + pcdata.gpos = Number($(data).attr().gpos); + pcdata.s_sorttype = Number($(data).attr().s_sorttype); + pcdata.d_sorttype = Number($(data).attr().d_sorttype); + pcdata.s_disp_judge = Number($(data).attr().s_disp_judge); + pcdata.d_disp_judge = Number($(data).attr().d_disp_judge); + pcdata.s_pace = Number($(data).attr().s_pace); + pcdata.d_pace = Number($(data).attr().d_pace); + pcdata.s_gno = Number($(data).attr().s_gno); + pcdata.d_gno = Number($(data).attr().d_gno); + pcdata.s_gtype = Number($(data).attr().s_gtype); + pcdata.d_gtype = Number($(data).attr().d_gtype); + pcdata.s_sdlen = Number($(data).attr().s_sdlen); + pcdata.d_sdlen = Number($(data).attr().d_sdlen); + pcdata.s_sdtype = Number($(data).attr().s_sdtype); + pcdata.d_sdtype = Number($(data).attr().d_sdtype); + pcdata.s_timing = Number($(data).attr().s_timing); + pcdata.d_timing = Number($(data).attr().d_timing); pcdata.s_notes = parseFloat($(data).attr().s_notes); pcdata.d_notes = parseFloat($(data).attr().d_notes); - pcdata.s_judge = parseInt($(data).attr().s_judge); - pcdata.d_judge = parseInt($(data).attr().d_judge); - pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); - pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); + pcdata.s_judge = Number($(data).attr().s_judge); + pcdata.d_judge = Number($(data).attr().d_judge); + pcdata.s_judgeAdj = Number($(data).attr().s_judgeAdj); + pcdata.d_judgeAdj = Number($(data).attr().d_judgeAdj); pcdata.s_hispeed = parseFloat($(data).attr().s_hispeed); pcdata.d_hispeed = parseFloat($(data).attr().d_hispeed); - pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); - pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); - pcdata.s_graph_score = parseInt($(data).attr().s_graph_score); - pcdata.d_graph_score = parseInt($(data).attr().d_graph_score); - pcdata.s_auto_scrach = parseInt($(data).attr().s_auto_scrach); - pcdata.d_auto_scrach = parseInt($(data).attr().d_auto_scrach); - pcdata.s_gauge_disp = parseInt($(data).attr().s_gauge_disp); - pcdata.d_gauge_disp = parseInt($(data).attr().d_gauge_disp); - pcdata.s_lane_brignt = parseInt($(data).attr().s_lane_brignt); - pcdata.d_lane_brignt = parseInt($(data).attr().d_lane_brignt); - pcdata.s_camera_layout = parseInt($(data).attr().s_camera_layout); - pcdata.d_camera_layout = parseInt($(data).attr().d_camera_layout); - pcdata.s_ghost_score = parseInt($(data).attr().s_ghost_score); - pcdata.d_ghost_score = parseInt($(data).attr().d_ghost_score); - pcdata.s_tsujigiri_disp = parseInt($(data).attr().s_tsujigiri_disp); - pcdata.d_tsujigiri_disp = parseInt($(data).attr().d_tsujigiri_disp); + pcdata.s_opstyle = Number($(data).attr().s_opstyle); + pcdata.d_opstyle = Number($(data).attr().d_opstyle); + pcdata.s_graph_score = Number($(data).attr().s_graph_score); + pcdata.d_graph_score = Number($(data).attr().d_graph_score); + pcdata.s_auto_scrach = Number($(data).attr().s_auto_scrach); + pcdata.d_auto_scrach = Number($(data).attr().d_auto_scrach); + pcdata.s_gauge_disp = Number($(data).attr().s_gauge_disp); + pcdata.d_gauge_disp = Number($(data).attr().d_gauge_disp); + pcdata.s_lane_brignt = Number($(data).attr().s_lane_brignt); + pcdata.d_lane_brignt = Number($(data).attr().d_lane_brignt); + pcdata.s_camera_layout = Number($(data).attr().s_camera_layout); + pcdata.d_camera_layout = Number($(data).attr().d_camera_layout); + pcdata.s_ghost_score = Number($(data).attr().s_ghost_score); + pcdata.d_ghost_score = Number($(data).attr().d_ghost_score); + pcdata.s_tsujigiri_disp = Number($(data).attr().s_tsujigiri_disp); + pcdata.d_tsujigiri_disp = Number($(data).attr().d_tsujigiri_disp); if (cltype == 0) { - pcdata.s_liflen = parseInt($(data).attr().s_lift); + pcdata.s_liflen = Number($(data).attr().s_lift); } else { - pcdata.d_liflen = parseInt($(data).attr().d_lift); + pcdata.d_liflen = Number($(data).attr().d_lift); } if (!_.isNil($(data).element("secret"))) { @@ -3272,40 +3712,40 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("qpro_equip"))) { - custom.qpro_head = parseInt($(data).attr("qpro_equip").head); - custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); - custom.qpro_face = parseInt($(data).attr("qpro_equip").face); - custom.qpro_body = parseInt($(data).attr("qpro_equip").body); - custom.qpro_hand = parseInt($(data).attr("qpro_equip").hand); + custom.qpro_head = Number($(data).attr("qpro_equip").head); + custom.qpro_hair = Number($(data).attr("qpro_equip").hair); + custom.qpro_face = Number($(data).attr("qpro_equip").face); + custom.qpro_body = Number($(data).attr("qpro_equip").body); + custom.qpro_hand = Number($(data).attr("qpro_equip").hand); } if (hasStepUpData) { - pcdata.st_enemy_damage = parseInt($(data).attr("step").enemy_damage); - pcdata.st_progress = parseInt($(data).attr("step").progress); + pcdata.st_enemy_damage = Number($(data).attr("step").enemy_damage); + pcdata.st_progress = Number($(data).attr("step").progress); pcdata.st_is_track_ticket = $(data).element("step").bool("is_track_ticket"); - pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); - pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); - pcdata.st_sp_mission_point = parseInt($(data).attr("step").sp_mission_point); - pcdata.st_dp_mission_point = parseInt($(data).attr("step").dp_mission_point); - pcdata.st_sp_dj_mission_level = parseInt($(data).attr("step").sp_dj_mission_level); - 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").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); + pcdata.st_sp_level = Number($(data).attr("step").sp_level); + pcdata.st_dp_level = Number($(data).attr("step").dp_level); + pcdata.st_sp_mission_point = Number($(data).attr("step").sp_mission_point); + pcdata.st_dp_mission_point = Number($(data).attr("step").dp_mission_point); + pcdata.st_sp_dj_mission_level = Number($(data).attr("step").sp_dj_mission_level); + pcdata.st_dp_dj_mission_level = Number($(data).attr("step").dp_dj_mission_level); + pcdata.st_sp_clear_mission_level = Number($(data).attr("step").sp_clear_mission_level); + pcdata.st_dp_clear_mission_level = Number($(data).attr("step").dp_clear_mission_level); + pcdata.st_sp_dj_mission_clear = Number($(data).attr("step").sp_dj_mission_clear); + pcdata.st_dp_dj_mission_clear = Number($(data).attr("step").dp_dj_mission_clear); + pcdata.st_sp_clear_mission_clear = Number($(data).attr("step").sp_clear_mission_clear); + pcdata.st_dp_clear_mission_clear = Number($(data).attr("step").dp_clear_mission_clear); + pcdata.st_sp_mplay = Number($(data).attr("step").sp_mplay); + pcdata.st_dp_mplay = Number($(data).attr("step").dp_mplay); + pcdata.st_tips_read_list = Number($(data).attr("step").tips_read_list); } if (!_.isNil($(data).element("achievements"))) { // TODO:: achi_packflg, achi_packid, achi_playpack // - pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); - pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); - pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); - pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_lastweekly = Number($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = Number($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = Number($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = Number($(data).attr("achievements").weekly_num); pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); } @@ -3325,21 +3765,21 @@ export const pcsave: EPR = async (info, data, send) => { } if (!_.isNil($(data).element("extra_boss_event"))) { - pcdata.eb_bossorb0 = parseInt($(data).attr("extra_boss_event").orb_0); - pcdata.eb_bossorb1 = parseInt($(data).attr("extra_boss_event").orb_1); - pcdata.eb_bossorb2 = parseInt($(data).attr("extra_boss_event").orb_2); - pcdata.eb_bossorb3 = parseInt($(data).attr("extra_boss_event").orb_3); - pcdata.eb_bossorb4 = parseInt($(data).attr("extra_boss_event").orb_4); - pcdata.eb_bossorb5 = parseInt($(data).attr("extra_boss_event").orb_5); - pcdata.eb_bossorb6 = parseInt($(data).attr("extra_boss_event").orb_6); - pcdata.eb_bossorb7 = parseInt($(data).attr("extra_boss_event").orb_7); - pcdata.eb_bossorb8 = parseInt($(data).attr("extra_boss_event").orb_8); + pcdata.eb_bossorb0 = Number($(data).attr("extra_boss_event").orb_0); + pcdata.eb_bossorb1 = Number($(data).attr("extra_boss_event").orb_1); + pcdata.eb_bossorb2 = Number($(data).attr("extra_boss_event").orb_2); + pcdata.eb_bossorb3 = Number($(data).attr("extra_boss_event").orb_3); + pcdata.eb_bossorb4 = Number($(data).attr("extra_boss_event").orb_4); + pcdata.eb_bossorb5 = Number($(data).attr("extra_boss_event").orb_5); + pcdata.eb_bossorb6 = Number($(data).attr("extra_boss_event").orb_6); + pcdata.eb_bossorb7 = Number($(data).attr("extra_boss_event").orb_7); + pcdata.eb_bossorb8 = Number($(data).attr("extra_boss_event").orb_8); } - if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); + if (!_.isNil($(data).element("deller"))) pcdata.deller += Number($(data).attr("deller").deller); if (!_.isNil($(data).element("orb_data"))) { - pcdata.orb += parseInt($(data).attr("orb_data").add_orb); - pcdata.present_orb += parseInt($(data).attr("orb_data").present_orb); + pcdata.orb += Number($(data).attr("orb_data").add_orb); + pcdata.present_orb += Number($(data).attr("orb_data").present_orb); } // skin_customize_flg (attr: skin_frame_flg, skin_bgm_flg, ...) // @@ -3349,12 +3789,12 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.event_play_num += 1; let event_data = { - fragment_num: parseInt($(data).attr("event1").fragment_num), - last_select_map_id: parseInt($(data).attr("event1").last_select_map_id), - read_tips_list: parseInt($(data).attr("event1").read_tips_list), - continuous_correct: parseInt($(data).attr("event1").continuous_correct), - bookshelf_release_num: parseInt($(data).attr("event1").bookshelf_release_num), - play_gift: parseInt($(data).attr("event1").play_gift), + fragment_num: Number($(data).attr("event1").fragment_num), + last_select_map_id: Number($(data).attr("event1").last_select_map_id), + read_tips_list: Number($(data).attr("event1").read_tips_list), + continuous_correct: Number($(data).attr("event1").continuous_correct), + bookshelf_release_num: Number($(data).attr("event1").bookshelf_release_num), + play_gift: Number($(data).attr("event1").play_gift), quiz_control_list: $(data).element("event1").buffer("quiz_control_list").toString("base64"), }; @@ -3375,13 +3815,13 @@ export const pcsave: EPR = async (info, data, send) => { collection: "event_1_sub", version: version, event_name: "event1_data", - map_id: parseInt(res.attr().map_id), + map_id: Number(res.attr().map_id), }, { $set: { - play_num: parseInt(res.attr().play_num), - last_select_route_id: parseInt(res.attr().last_select_route_id), - bookshelf_release_num: parseInt(res.attr().bookshelf_release_num), + play_num: Number(res.attr().play_num), + last_select_route_id: Number(res.attr().last_select_route_id), + bookshelf_release_num: Number(res.attr().bookshelf_release_num), is_clear: res.bool("is_clear"), map_route_damage: res.buffer("map_route_damage").toString("base64"), } @@ -3394,16 +3834,16 @@ export const pcsave: EPR = async (info, data, send) => { if (hasEvent2Data) { let event_data = { - play_num: parseInt($(data).attr("event2").play_num), - last_select_floor: parseInt($(data).attr("event2").last_select_floor), - delabity: parseInt($(data).attr("event2").delabity), - tips_list: parseInt($(data).attr("event2").tips_list), - floor_clear_flg_list: parseInt($(data).attr("event2").floor_clear_flg_list), - floor_0_last_area: parseInt($(data).attr("event2").floor_0_last_area), - floor_1_last_area: parseInt($(data).attr("event2").floor_1_last_area), - floor_2_last_area: parseInt($(data).attr("event2").floor_2_last_area), - floor_3_last_area: parseInt($(data).attr("event2").floor_3_last_area), - floor_4_last_area: parseInt($(data).attr("event2").floor_4_last_area), + play_num: Number($(data).attr("event2").play_num), + last_select_floor: Number($(data).attr("event2").last_select_floor), + delabity: Number($(data).attr("event2").delabity), + tips_list: Number($(data).attr("event2").tips_list), + floor_clear_flg_list: Number($(data).attr("event2").floor_clear_flg_list), + floor_0_last_area: Number($(data).attr("event2").floor_0_last_area), + floor_1_last_area: Number($(data).attr("event2").floor_1_last_area), + floor_2_last_area: Number($(data).attr("event2").floor_2_last_area), + floor_3_last_area: Number($(data).attr("event2").floor_3_last_area), + floor_4_last_area: Number($(data).attr("event2").floor_4_last_area), }; await DB.Upsert(refid, @@ -3423,19 +3863,19 @@ export const pcsave: EPR = async (info, data, send) => { collection: "event_1_sub", version: version, event_name: "event2_data", - floor_id: parseInt(res.attr().floor_id), - area_id: parseInt(res.attr().area_id), + floor_id: Number(res.attr().floor_id), + area_id: Number(res.attr().area_id), }, { $set: { - last_select_note: parseInt(res.attr().last_select_note), - normal_play_num: parseInt(res.attr().normal_play_num), - hyper_play_num: parseInt(res.attr().hyper_play_num), - another_play_num: parseInt(res.attr().another_play_num), - area_clear_flg_list: parseInt(res.attr().area_clear_flg_list), - normal_grade_point: parseInt(res.attr().normal_grade_point), - hyper_grade_point: parseInt(res.attr().hyper_grade_point), - another_grade_point: parseInt(res.attr().another_grade_point), + last_select_note: Number(res.attr().last_select_note), + normal_play_num: Number(res.attr().normal_play_num), + hyper_play_num: Number(res.attr().hyper_play_num), + another_play_num: Number(res.attr().another_play_num), + area_clear_flg_list: Number(res.attr().area_clear_flg_list), + normal_grade_point: Number(res.attr().normal_grade_point), + hyper_grade_point: Number(res.attr().hyper_grade_point), + another_grade_point: Number(res.attr().another_grade_point), } } ); @@ -3444,12 +3884,12 @@ export const pcsave: EPR = async (info, data, send) => { if (!_.isNil($(data).element("anniv20_event"))) { let event_data = { - damage_0: parseInt($(data).attr("anniv20_event").damage_0), - damage_1: parseInt($(data).attr("anniv20_event").damage_1), - damage_2: parseInt($(data).attr("anniv20_event").damage_2), - challenge_0: parseInt($(data).attr("anniv20_event").challenge_0), - challenge_1: parseInt($(data).attr("anniv20_event").challenge_1), - challenge_2: parseInt($(data).attr("anniv20_event").challenge_2) + damage_0: Number($(data).attr("anniv20_event").damage_0), + damage_1: Number($(data).attr("anniv20_event").damage_1), + damage_2: Number($(data).attr("anniv20_event").damage_2), + challenge_0: Number($(data).attr("anniv20_event").challenge_0), + challenge_1: Number($(data).attr("anniv20_event").challenge_1), + challenge_2: Number($(data).attr("anniv20_event").challenge_2) }; await DB.Upsert(refid, @@ -3466,78 +3906,83 @@ export const pcsave: EPR = async (info, data, send) => { } else if (version >= 27) { // lid bookkeep cid ctype ccode - pcdata.rtype = parseInt($(data).attr().rtype); - pcdata.sach = parseInt($(data).attr().s_achi); - pcdata.dach = parseInt($(data).attr().d_achi); - pcdata.sp_opt = parseInt($(data).attr().sp_opt); - pcdata.dp_opt = parseInt($(data).attr().dp_opt); - pcdata.dp_opt2 = parseInt($(data).attr().dp_opt2); - pcdata.gpos = parseInt($(data).attr().gpos); - pcdata.s_sorttype = parseInt($(data).attr().s_sorttype); - pcdata.d_sorttype = parseInt($(data).attr().d_sorttype); - pcdata.s_disp_judge = parseInt($(data).attr().s_disp_judge); - pcdata.d_disp_judge = parseInt($(data).attr().d_disp_judge); - pcdata.s_pace = parseInt($(data).attr().s_pace); - pcdata.d_pace = parseInt($(data).attr().d_pace); - pcdata.s_gno = parseInt($(data).attr().s_gno); - pcdata.d_gno = parseInt($(data).attr().d_gno); - pcdata.s_sub_gno = parseInt($(data).attr().s_sub_gno); - pcdata.d_sub_gno = parseInt($(data).attr().d_sub_gno); - pcdata.s_gtype = parseInt($(data).attr().s_gtype); - pcdata.d_gtype = parseInt($(data).attr().d_gtype); - pcdata.s_sdlen = parseInt($(data).attr().s_sdlen); - pcdata.d_sdlen = parseInt($(data).attr().d_sdlen); - pcdata.s_sdtype = parseInt($(data).attr().s_sdtype); - pcdata.d_sdtype = parseInt($(data).attr().d_sdtype); - pcdata.s_timing = parseInt($(data).attr().s_timing); - pcdata.d_timing = parseInt($(data).attr().d_timing); + pcdata.rtype = Number($(data).attr().rtype); + pcdata.sach = Number($(data).attr().s_achi); + pcdata.dach = Number($(data).attr().d_achi); + pcdata.sp_opt = Number($(data).attr().sp_opt); + pcdata.dp_opt = Number($(data).attr().dp_opt); + pcdata.dp_opt2 = Number($(data).attr().dp_opt2); + pcdata.gpos = Number($(data).attr().gpos); + pcdata.s_sorttype = Number($(data).attr().s_sorttype); + pcdata.d_sorttype = Number($(data).attr().d_sorttype); + pcdata.s_disp_judge = Number($(data).attr().s_disp_judge); + pcdata.d_disp_judge = Number($(data).attr().d_disp_judge); + pcdata.s_pace = Number($(data).attr().s_pace); + pcdata.d_pace = Number($(data).attr().d_pace); + pcdata.s_gno = Number($(data).attr().s_gno); + pcdata.d_gno = Number($(data).attr().d_gno); + pcdata.s_sub_gno = Number($(data).attr().s_sub_gno); + pcdata.d_sub_gno = Number($(data).attr().d_sub_gno); + pcdata.s_gtype = Number($(data).attr().s_gtype); + pcdata.d_gtype = Number($(data).attr().d_gtype); + pcdata.s_sdlen = Number($(data).attr().s_sdlen); + pcdata.d_sdlen = Number($(data).attr().d_sdlen); + pcdata.s_sdtype = Number($(data).attr().s_sdtype); + pcdata.d_sdtype = Number($(data).attr().d_sdtype); + pcdata.s_timing = Number($(data).attr().s_timing); + pcdata.d_timing = Number($(data).attr().d_timing); pcdata.s_notes = parseFloat($(data).attr().s_notes); pcdata.d_notes = parseFloat($(data).attr().d_notes); - pcdata.s_judge = parseInt($(data).attr().s_judge); - pcdata.d_judge = parseInt($(data).attr().d_judge); - pcdata.s_judgeAdj = parseInt($(data).attr().s_judgeAdj); - pcdata.d_judgeAdj = parseInt($(data).attr().d_judgeAdj); + pcdata.s_judge = Number($(data).attr().s_judge); + pcdata.d_judge = Number($(data).attr().d_judge); + pcdata.s_judgeAdj = Number($(data).attr().s_judgeAdj); + pcdata.d_judgeAdj = Number($(data).attr().d_judgeAdj); pcdata.s_hispeed = parseFloat($(data).attr().s_hispeed); pcdata.d_hispeed = parseFloat($(data).attr().d_hispeed); - pcdata.s_opstyle = parseInt($(data).attr().s_opstyle); - pcdata.d_opstyle = parseInt($(data).attr().d_opstyle); - pcdata.s_graph_score = parseInt($(data).attr().s_graph_score); - pcdata.d_graph_score = parseInt($(data).attr().d_graph_score); - pcdata.s_auto_scrach = parseInt($(data).attr().s_auto_scrach); - pcdata.d_auto_scrach = parseInt($(data).attr().d_auto_scrach); - pcdata.s_gauge_disp = parseInt($(data).attr().s_gauge_disp); - pcdata.d_gauge_disp = parseInt($(data).attr().d_gauge_disp); - pcdata.s_lane_brignt = parseInt($(data).attr().s_lane_brignt); - pcdata.d_lane_brignt = parseInt($(data).attr().d_lane_brignt); - pcdata.s_camera_layout = parseInt($(data).attr().s_camera_layout); - pcdata.d_camera_layout = parseInt($(data).attr().d_camera_layout); - pcdata.s_ghost_score = parseInt($(data).attr().s_ghost_score); - pcdata.d_ghost_score = parseInt($(data).attr().d_ghost_score); - pcdata.s_tsujigiri_disp = parseInt($(data).attr().s_tsujigiri_disp); - pcdata.d_tsujigiri_disp = parseInt($(data).attr().d_tsujigiri_disp); + pcdata.s_opstyle = Number($(data).attr().s_opstyle); + pcdata.d_opstyle = Number($(data).attr().d_opstyle); + pcdata.s_graph_score = Number($(data).attr().s_graph_score); + pcdata.d_graph_score = Number($(data).attr().d_graph_score); + pcdata.s_auto_scrach = Number($(data).attr().s_auto_scrach); + pcdata.d_auto_scrach = Number($(data).attr().d_auto_scrach); + pcdata.s_gauge_disp = Number($(data).attr().s_gauge_disp); + pcdata.d_gauge_disp = Number($(data).attr().d_gauge_disp); + pcdata.s_lane_brignt = Number($(data).attr().s_lane_brignt); + pcdata.d_lane_brignt = Number($(data).attr().d_lane_brignt); + pcdata.s_camera_layout = Number($(data).attr().s_camera_layout); + pcdata.d_camera_layout = Number($(data).attr().d_camera_layout); + pcdata.s_ghost_score = Number($(data).attr().s_ghost_score); + pcdata.d_ghost_score = Number($(data).attr().d_ghost_score); + pcdata.s_tsujigiri_disp = Number($(data).attr().s_tsujigiri_disp); + pcdata.d_tsujigiri_disp = Number($(data).attr().d_tsujigiri_disp); if (version >= 28) { - pcdata.ngrade = parseInt($(data).attr().ngrade); + pcdata.ngrade = Number($(data).attr().ngrade); } if (version >= 29) { - pcdata.s_auto_adjust = parseInt($(data).attr().s_auto_adjust); - pcdata.d_auto_adjust = parseInt($(data).attr().d_auto_adjust); + pcdata.s_auto_adjust = Number($(data).attr().s_auto_adjust); + pcdata.d_auto_adjust = Number($(data).attr().d_auto_adjust); } if (version >= 30) { - pcdata.s_timing_split = parseInt($(data).attr().s_timing_split); - pcdata.d_timing_split = parseInt($(data).attr().d_timing_split); - pcdata.s_visualization = parseInt($(data).attr().s_visualization); - pcdata.d_visualization = parseInt($(data).attr().d_visualization); + pcdata.s_timing_split = Number($(data).attr().s_timing_split); + pcdata.d_timing_split = Number($(data).attr().d_timing_split); + pcdata.s_visualization = Number($(data).attr().s_visualization); + pcdata.d_visualization = Number($(data).attr().d_visualization); } if (version >= 31) { - pcdata.s_classic_hispeed = parseInt($(data).attr().s_classic_hispeed); - pcdata.d_classic_hispeed = parseInt($(data).attr().d_classic_hispeed); + pcdata.s_classic_hispeed = Number($(data).attr().s_classic_hispeed); + pcdata.d_classic_hispeed = Number($(data).attr().d_classic_hispeed); + } + if (version >= 32) { + pcdata.category = Number($(data).attr().category); + pcdata.bgnflg = Number($(data).attr().bgnflg); + pcdata.movie_thumbnail = Number($(data).attr().movie_thumbnail); } if (cltype == 0) { - pcdata.s_liflen = parseInt($(data).attr().s_lift); + pcdata.s_liflen = Number($(data).attr().s_lift); } else { - pcdata.d_liflen = parseInt($(data).attr().d_lift); + pcdata.d_liflen = Number($(data).attr().d_lift); } if (!_.isNil($(data).element("secret"))) { @@ -3545,6 +3990,10 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.secret_flg2 = $(data).element("secret").bigints("flg2").map(String); pcdata.secret_flg3 = $(data).element("secret").bigints("flg3").map(String); pcdata.secret_flg4 = $(data).element("secret").bigints("flg4").map(String); + + if (version >= 32) { + pcdata.secret_flg5 = $(data).element("secret").bigints("flg5").map(String); + } } // use bigint if type is "s64", number may seems to work // @@ -3556,56 +4005,71 @@ export const pcsave: EPR = async (info, data, send) => { custom.qpro_secret_face = $(data).element("qpro_secret").bigints("face").map(String); custom.qpro_secret_body = $(data).element("qpro_secret").bigints("body").map(String); custom.qpro_secret_hand = $(data).element("qpro_secret").bigints("hand").map(String); + + if (version >= 32) { + custom.qpro_secret_back = $(data).element("qpro_secret").bigints("back").map(String); + } } if (!_.isNil($(data).element("qpro_equip"))) { - custom.qpro_head = parseInt($(data).attr("qpro_equip").head); - custom.qpro_hair = parseInt($(data).attr("qpro_equip").hair); - custom.qpro_face = parseInt($(data).attr("qpro_equip").face); - custom.qpro_body = parseInt($(data).attr("qpro_equip").body); - custom.qpro_hand = parseInt($(data).attr("qpro_equip").hand); + custom.qpro_head = Number($(data).attr("qpro_equip").head); + custom.qpro_hair = Number($(data).attr("qpro_equip").hair); + custom.qpro_face = Number($(data).attr("qpro_equip").face); + custom.qpro_body = Number($(data).attr("qpro_equip").body); + custom.qpro_hand = Number($(data).attr("qpro_equip").hand); + + if (version >= 32) { + custom.qpro_back = Number($(data).attr("qpro_equip").back); + } } if (hasStepUpData) { - pcdata.st_enemy_damage = parseInt($(data).attr("step").enemy_damage); - pcdata.st_progress = parseInt($(data).attr("step").progress); + pcdata.st_enemy_damage = Number($(data).attr("step").enemy_damage); + pcdata.st_progress = Number($(data).attr("step").progress); pcdata.st_is_track_ticket = $(data).element("step").bool("is_track_ticket"); - pcdata.st_sp_level = parseInt($(data).attr("step").sp_level); - pcdata.st_dp_level = parseInt($(data).attr("step").dp_level); - 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); + pcdata.st_sp_level = Number($(data).attr("step").sp_level); + pcdata.st_dp_level = Number($(data).attr("step").dp_level); + pcdata.st_sp_mplay = Number($(data).attr("step").sp_mplay); + pcdata.st_dp_mplay = Number($(data).attr("step").dp_mplay); + pcdata.st_tips_read_list = Number($(data).attr("step").tips_read_list); if (version >= 29) { - pcdata.st_total_point = parseInt($(data).attr("step").total_point); - pcdata.st_enemy_defeat_flg = parseInt($(data).attr("step").enemy_defeat_flg); - pcdata.st_mission_clear_num = parseInt($(data).attr("step").mission_clear_num); + pcdata.st_total_point = Number($(data).attr("step").total_point); + pcdata.st_enemy_defeat_flg = Number($(data).attr("step").enemy_defeat_flg); + pcdata.st_mission_clear_num = Number($(data).attr("step").mission_clear_num); if (version >= 30) { - pcdata.st_sp_fluctuation = parseInt($(data).attr("step").sp_fluctuation); - pcdata.st_dp_fluctuation = parseInt($(data).attr("step").dp_fluctuation); + pcdata.st_sp_fluctuation = Number($(data).attr("step").sp_fluctuation); + pcdata.st_dp_fluctuation = Number($(data).attr("step").dp_fluctuation); + } + + if (version >= 32) { + pcdata.st_sp_level_h = Number($(data).attr("step").sp_level_h); + pcdata.st_dp_level_h = Number($(data).attr("step").dp_level_h); + pcdata.st_sp_level_exh = Number($(data).attr("step").sp_level_exh); + pcdata.st_dp_level_exh = Number($(data).attr("step").dp_level_exh); } } else { - pcdata.st_dp_clear_mission_clear = parseInt($(data).attr("step").dp_clear_mission_clear); - pcdata.st_dp_clear_mission_level = parseInt($(data).attr("step").dp_clear_mission_level); - pcdata.st_dp_dj_mission_clear = parseInt($(data).attr("step").dp_dj_mission_clear); - pcdata.st_dp_dj_mission_level = parseInt($(data).attr("step").dp_dj_mission_level); - pcdata.st_dp_mission_point = parseInt($(data).attr("step").dp_mission_point); + pcdata.st_dp_clear_mission_clear = Number($(data).attr("step").dp_clear_mission_clear); + pcdata.st_dp_clear_mission_level = Number($(data).attr("step").dp_clear_mission_level); + pcdata.st_dp_dj_mission_clear = Number($(data).attr("step").dp_dj_mission_clear); + pcdata.st_dp_dj_mission_level = Number($(data).attr("step").dp_dj_mission_level); + pcdata.st_dp_mission_point = Number($(data).attr("step").dp_mission_point); - pcdata.st_sp_clear_mission_clear = parseInt($(data).attr("step").sp_clear_mission_clear); - pcdata.st_sp_clear_mission_level = parseInt($(data).attr("step").sp_clear_mission_level); - pcdata.st_sp_dj_mission_clear = parseInt($(data).attr("step").sp_dj_mission_clear); - pcdata.st_sp_dj_mission_level = parseInt($(data).attr("step").sp_dj_mission_level); - pcdata.st_sp_mission_point = parseInt($(data).attr("step").sp_mission_point); + pcdata.st_sp_clear_mission_clear = Number($(data).attr("step").sp_clear_mission_clear); + pcdata.st_sp_clear_mission_level = Number($(data).attr("step").sp_clear_mission_level); + pcdata.st_sp_dj_mission_clear = Number($(data).attr("step").sp_dj_mission_clear); + pcdata.st_sp_dj_mission_level = Number($(data).attr("step").sp_dj_mission_level); + pcdata.st_sp_mission_point = Number($(data).attr("step").sp_mission_point); } } if (!_.isNil($(data).element("achievements"))) { // TODO:: achi_pack, achi_rivalcrush // - pcdata.achi_lastweekly = parseInt($(data).attr("achievements").last_weekly); - pcdata.achi_packcomp = parseInt($(data).attr("achievements").pack_comp); - pcdata.achi_visitflg = parseInt($(data).attr("achievements").visit_flg); - pcdata.achi_weeklynum = parseInt($(data).attr("achievements").weekly_num); + pcdata.achi_lastweekly = Number($(data).attr("achievements").last_weekly); + pcdata.achi_packcomp = Number($(data).attr("achievements").pack_comp); + pcdata.achi_visitflg = Number($(data).attr("achievements").visit_flg); + pcdata.achi_weeklynum = Number($(data).attr("achievements").weekly_num); if (!_.isNil($(data).element("achievements").bigints("trophy"))) // unavailable since epolis // pcdata.achi_trophy = $(data).element("achievements").bigints("trophy").map(String); } @@ -3632,33 +4096,53 @@ export const pcsave: EPR = async (info, data, send) => { pcdata.nr_dpradar = $(data).element("notes_radar").numbers("radar_score"); } - if (!_.isNil($(data).element("deller"))) pcdata.deller += parseInt($(data).attr("deller").deller); + if (!_.isNil($(data).element("deller"))) pcdata.deller += Number($(data).attr("deller").deller); if (!_.isNil($(data).element("orb_data"))) { 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); + pcdata.orb += Number($(data).attr("orb_data").add_orb_normal); + pcdata.orb += Number($(data).attr("orb_data").add_orb_event); + pcdata.present_orb += Number($(data).attr("orb_data").rest_orb); // use_present_orb // } else { - pcdata.orb += parseInt($(data).attr("orb_data").add_orb); - pcdata.orb += parseInt($(data).attr("orb_data").reward_orb); - pcdata.present_orb += parseInt($(data).attr("orb_data").present_orb); + pcdata.orb += Number($(data).attr("orb_data").add_orb); + pcdata.orb += Number($(data).attr("orb_data").reward_orb); + pcdata.present_orb += Number($(data).attr("orb_data").present_orb); } } - if (hasLanguageData) profile.language = parseInt($(data).attr("language_setting").language); + if (hasLanguageData) profile.language = Number($(data).attr("language_setting").language); if (!_.isNil($(data).element("extra_boss_event"))) { - pcdata.eb_keyorb = parseInt($(data).attr("extra_boss_event").key_orb); - pcdata.eb_bossorb0 = parseInt($(data).attr("extra_boss_event").boss_orb_0); - pcdata.eb_bossorb1 = parseInt($(data).attr("extra_boss_event").boss_orb_1); - pcdata.eb_bossorb2 = parseInt($(data).attr("extra_boss_event").boss_orb_2); - pcdata.eb_bossorb3 = parseInt($(data).attr("extra_boss_event").boss_orb_3); - pcdata.eb_bossorb4 = parseInt($(data).attr("extra_boss_event").boss_orb_4); - pcdata.eb_bossorb5 = parseInt($(data).attr("extra_boss_event").boss_orb_5); - pcdata.eb_bossorb6 = parseInt($(data).attr("extra_boss_event").boss_orb_6); - pcdata.eb_bossorb7 = parseInt($(data).attr("extra_boss_event").boss_orb_7); + pcdata.eb_keyorb = Number($(data).attr("extra_boss_event").key_orb); + pcdata.eb_bossorb0 = Number($(data).attr("extra_boss_event").boss_orb_0); + pcdata.eb_bossorb1 = Number($(data).attr("extra_boss_event").boss_orb_1); + pcdata.eb_bossorb2 = Number($(data).attr("extra_boss_event").boss_orb_2); + pcdata.eb_bossorb3 = Number($(data).attr("extra_boss_event").boss_orb_3); + pcdata.eb_bossorb4 = Number($(data).attr("extra_boss_event").boss_orb_4); + pcdata.eb_bossorb5 = Number($(data).attr("extra_boss_event").boss_orb_5); + pcdata.eb_bossorb6 = Number($(data).attr("extra_boss_event").boss_orb_6); + pcdata.eb_bossorb7 = Number($(data).attr("extra_boss_event").boss_orb_7); + } + + if (!_.isNil($(data).elements("extra_boss_event"))) { + $(data).elements("extra_boss_event").forEach((res) => { + DB.Upsert( + refid, + { + collection: "extra_boss", + version: version, + phase: Number(res.attr().phase) + }, + { + $set: { + extra: Number(res.attr().extra), + extra_b: Number(res.attr().extra_b), + onemore: Number(res.attr().onemore), + onemore_b: Number(res.attr().onemore_b), + }, + }); + }); } if (hasEventData) { @@ -3666,7 +4150,7 @@ export const pcsave: EPR = async (info, data, send) => { switch (version) { case 27: pcdata.event_play_num += 1; - pcdata.event_last_select_id = parseInt($(data).attr("event1").last_select_gym_id); + pcdata.event_last_select_id = Number($(data).attr("event1").last_select_gym_id); $(data).element("event1").elements("gym_data").forEach((res) => { event_data = { @@ -3697,9 +4181,9 @@ export const pcsave: EPR = async (info, data, send) => { break; case 28: pcdata.event_play_num += 1; - pcdata.event_story_prog = parseInt($(data).attr("event_1").story_prog); - pcdata.event_last_select_id = parseInt($(data).attr("event_1").last_select_area_id); - pcdata.event_failed_num = parseInt($(data).attr("event_1").failed_num); + pcdata.event_story_prog = Number($(data).attr("event_1").story_prog); + pcdata.event_last_select_id = Number($(data).attr("event_1").last_select_area_id); + pcdata.event_failed_num = Number($(data).attr("event_1").failed_num); $(data).element("event_1").elements("area_data").forEach((res) => { event_data = { @@ -3731,8 +4215,8 @@ export const pcsave: EPR = async (info, data, send) => { break; case 29: pcdata.event_play_num += 1; - pcdata.event_last_select_id = parseInt($(data).attr("event_1").last_select_platform_id); - pcdata.event_last_select_type = parseInt($(data).attr("event_1").last_select_platform_type); + pcdata.event_last_select_id = Number($(data).attr("event_1").last_select_platform_id); + pcdata.event_last_select_type = Number($(data).attr("event_1").last_select_platform_type); $(data).element("event_1").elements("watch_data").forEach((res) => { if (!(_.isNil(res.element("channel")))) { @@ -3793,7 +4277,7 @@ export const pcsave: EPR = async (info, data, send) => { break; case 30: pcdata.event_play_num += 1; - pcdata.event_last_select_id = parseInt($(data).attr("event_1").last_select_flyer_id); + pcdata.event_last_select_id = Number($(data).attr("event_1").last_select_flyer_id); $(data).element("event_1").elements("flyer_data").forEach((res) => { if (!(_.isNil(res.element("genre_data")))) { @@ -3856,7 +4340,7 @@ export const pcsave: EPR = async (info, data, send) => { break; case 31: pcdata.event_play_num += 1; - pcdata.event_last_select_id = parseInt($(data).attr("event_1").last_select_map_id); + pcdata.event_last_select_id = Number($(data).attr("event_1").last_select_map_id); pcdata.event_skip = false; if (!_.isNil($(data).element("event_1").element("is_skip"))) { @@ -3976,6 +4460,78 @@ export const pcsave: EPR = async (info, data, send) => { }); break; + case 32: + pcdata.event_play_num += 1; + pcdata.event_last_select_id = Number($(data).attr("event_1").last_select_booth_id); + pcdata.event_skip = false; + + if (!_.isNil($(data).element("event_1").element("is_skip"))) { + pcdata.event_skip = true; + } + + $(data).element("event_1").elements("booth_data").forEach((res) => { + event_data = { + booth_id: res.attr().booth_id, + play_num: res.attr().play_num, + play_num_uc: res.attr().play_num_uc, + success_num: res.attr().success_num, + last_select_qpro_index: res.attr().last_select_qpro_index, + booth_prog: res.attr().booth_prog, + customer_n: res.attr().customer_n, + customer_h: res.attr().customer_h, + customer_a: res.attr().customer_a, + customer_l: res.attr().customer_l, + } + + if (!_.isNil(res.attr().hire_num)) { + event_data = { + ...event_data, + hire_num: res.attr().hire_num, + flg_l: res.bool("flg_l"), + } + } + + res.elements("booth_qpro_data").forEach((res) => { + DB.Upsert( + refid, + { + collection: "event_1_sub", + version: version, + booth_id: event_data.booth_id, + index: res.attr().index, + }, + { + $set: { + head_parts: res.attr().head_parts, + hair_parts: res.attr().hair_parts, + face_parts: res.attr().face_parts, + body_parts: res.attr().body_parts, + hand_parts: res.attr().hand_parts, + param_n: res.attr().param_n, + param_h: res.attr().param_h, + param_a: res.attr().param_a, + param_l: res.attr().param_l, + level: res.attr().level, + exp: res.attr().exp, + performance_date: res.attr().performance_date, + // new_hire seems not referenced // + }, + }); + }); + + DB.Upsert( + refid, + { + collection: "event_1", + version: version, + booth_id: event_data.booth_id + }, + { + $set: event_data, + }); + }); + break; + default: break; } @@ -4020,6 +4576,75 @@ export const pcsave: EPR = async (info, data, send) => { }); }); break; + + case 32: + await DB.Upsert(refid, + { + collection: "event_1", + version: version, + event_data: "pinkyunderground", + }, + { + $set: { + event_play_num: pcdata.event_play_num, // just use pcdata event play num // + last_select_hall_id: $(data).attr("event_2").last_select_hall_id, + } + } + ); + + $(data).element("event_2").elements("hall_data").forEach((res) => { + DB.Upsert(refid, { + collection: "event_1_sub", + version: version, + event_data: "pinkyunderground_hall", + hall_id: res.attr().hall_id, + }, + { + $set: { + play_num: res.attr().play_num, + last_select_skill_index: res.attr().last_select_skill_index, + hall_prog: res.attr().hall_prog, + defeat_num: res.attr().defeat_num, + pp_0: res.attr().pp_0, + pp_1: res.attr().pp_1, + pp_2: res.attr().pp_2, + pp_3: res.attr().pp_3, + pp_4: res.attr().pp_4, + pp_5: res.attr().pp_5, + skill_1: res.attr().skill_1, + skill_2: res.attr().skill_2, + skill_3: res.attr().skill_3, + cool_1: res.attr().cool_1, + cool_2: res.attr().cool_2, + cool_3: res.attr().cool_3, + param_1: res.attr().param_1, + param_2: res.attr().param_2, + param_3: res.attr().param_3, + }, + }); + + res.elements("hall_qpro_data").forEach((res2) => { + DB.Upsert( + refid, + { + collection: "event_1_sub", + version: version, + event_data: "pinkyunderground_hall_qpro", + hall_id: res.attr().hall_id, + index: res2.attr().index, + }, + { + $set: { + head_parts: res2.attr().head_parts, + hair_parts: res2.attr().hair_parts, + face_parts: res2.attr().face_parts, + body_parts: res2.attr().body_parts, + hand_parts: res2.attr().hand_parts, + }, + }); + }); + }); + break; } } @@ -4027,8 +4652,8 @@ export const pcsave: EPR = async (info, data, send) => { if (version >= 28) { $(data).elements("world_tourism_data").forEach((res) => { let tourInfo = { - tour_id: parseInt(res.attr().tour_id), - progress: parseInt(res.attr().progress), + tour_id: Number(res.attr().tour_id), + progress: Number(res.attr().progress), } DB.Upsert( @@ -4056,8 +4681,8 @@ export const pcsave: EPR = async (info, data, send) => { { collection: "lightning_musicmemo_new", version: version, - folder_idx: parseInt(res.attr().folder_id), - play_style: parseInt(res.attr().play_style), + folder_idx: Number(res.attr().folder_id), + play_style: Number(res.attr().play_style), }, { $set: { @@ -4074,12 +4699,12 @@ export const pcsave: EPR = async (info, data, send) => { { collection: "lightning_musicmemo", version: version, - music_idx: parseInt(res.attr().index), - play_style: parseInt(res.attr().play_style), + music_idx: Number(res.attr().index), + play_style: Number(res.attr().play_style), }, { $set: { - music_id: parseInt(res.attr().music_id), + music_id: Number(res.attr().music_id), }, }); }); @@ -4087,8 +4712,8 @@ export const pcsave: EPR = async (info, data, send) => { } if (hasTowerData) { - profile.total_kbd += parseInt($(data).attr("tower_data").keyboard); - profile.total_scr += parseInt($(data).attr("tower_data").scratch); + profile.total_kbd += Number($(data).attr("tower_data").keyboard); + profile.total_scr += Number($(data).attr("tower_data").scratch); } // saving for future purpose // @@ -4102,7 +4727,7 @@ export const pcsave: EPR = async (info, data, send) => { let badgeInfo = { category_id: "today_recommend", flg_id: 0, - flg: parseInt(badge.element("today_recommend").attr().flg), + flg: Number(badge.element("today_recommend").attr().flg), }; badge_data.push(badgeInfo); @@ -4112,7 +4737,7 @@ export const pcsave: EPR = async (info, data, send) => { let badgeInfo = { category_id: "weekly_ranking", flg_id: 0, - flg: parseInt(badge.element("weekly_ranking").attr().flg), + flg: Number(badge.element("weekly_ranking").attr().flg), }; badge_data.push(badgeInfo); @@ -4122,8 +4747,8 @@ export const pcsave: EPR = async (info, data, send) => { badge.elements("visitor").forEach((res) => { let badgeInfo = { category_id: "visitor", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), + flg_id: Number(res.attr().flg_id), + flg: Number(res.attr().flg), }; badge_data.push(badgeInfo); @@ -4134,8 +4759,8 @@ export const pcsave: EPR = async (info, data, send) => { badge.elements("notes_radar").forEach((res) => { let badgeInfo = { category_id: "notes_radar", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), + flg_id: Number(res.attr().flg_id), + flg: Number(res.attr().flg), }; badge_data.push(badgeInfo); @@ -4146,7 +4771,7 @@ export const pcsave: EPR = async (info, data, send) => { let badgeInfo = { category_id: "world_tourism", flg_id: 0, - flg: parseInt(badge.element("world_tourism").attr().flg), + flg: Number(badge.element("world_tourism").attr().flg), }; badge_data.push(badgeInfo); @@ -4156,8 +4781,8 @@ export const pcsave: EPR = async (info, data, send) => { badge.elements("event1").forEach((res) => { let badgeInfo = { category_id: "event1", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), + flg_id: Number(res.attr().flg_id), + flg: Number(res.attr().flg), }; badge_data.push(badgeInfo); @@ -4168,8 +4793,8 @@ export const pcsave: EPR = async (info, data, send) => { badge.elements("arena").forEach((res) => { let badgeInfo = { category_id: "arena", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), + flg_id: Number(res.attr().flg_id), + flg: Number(res.attr().flg), }; badge_data.push(badgeInfo); @@ -4180,7 +4805,7 @@ export const pcsave: EPR = async (info, data, send) => { let badgeInfo = { category_id: "iidx_exam", flg_id: 0, - flg: parseInt(badge.element("iidx_exam").attr().flg), + flg: Number(badge.element("iidx_exam").attr().flg), }; badge_data.push(badgeInfo); @@ -4191,8 +4816,8 @@ export const pcsave: EPR = async (info, data, send) => { badge.elements("step_up").forEach((res) => { let badgeInfo = { category_id: "step_up", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), + flg_id: Number(res.attr().flg_id), + flg: Number(res.attr().flg), }; badge_data.push(badgeInfo); @@ -4203,7 +4828,7 @@ export const pcsave: EPR = async (info, data, send) => { let badgeInfo = { category_id: "today_recommend", flg_id: 0, - flg: parseInt(badge.element("today_recommend").attr().flg), + flg: Number(badge.element("today_recommend").attr().flg), }; badge_data.push(badgeInfo); @@ -4213,7 +4838,7 @@ export const pcsave: EPR = async (info, data, send) => { let badgeInfo = { category_id: "weekly_ranking", flg_id: 0, - flg: parseInt(badge.element("weekly_ranking").attr().flg), + flg: Number(badge.element("weekly_ranking").attr().flg), }; badge_data.push(badgeInfo); @@ -4223,8 +4848,8 @@ export const pcsave: EPR = async (info, data, send) => { badge.elements("visitor").forEach((res) => { let badgeInfo = { category_id: "visitor", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), + flg_id: Number(res.attr().flg_id), + flg: Number(res.attr().flg), }; badge_data.push(badgeInfo); @@ -4235,8 +4860,8 @@ export const pcsave: EPR = async (info, data, send) => { badge.elements("notes_radar").forEach((res) => { let badgeInfo = { category_id: "notes_radar", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), + flg_id: Number(res.attr().flg_id), + flg: Number(res.attr().flg), }; badge_data.push(badgeInfo); @@ -4247,7 +4872,7 @@ export const pcsave: EPR = async (info, data, send) => { let badgeInfo = { category_id: "tsujigiri", flg_id: 0, - flg: parseInt(badge.element("tsujigiri").attr().flg), + flg: Number(badge.element("tsujigiri").attr().flg), }; badge_data.push(badgeInfo); @@ -4257,7 +4882,7 @@ export const pcsave: EPR = async (info, data, send) => { let badgeInfo = { category_id: "iidx_exam", flg_id: 0, - flg: parseInt(badge.element("iidx_exam").attr().flg), + flg: Number(badge.element("iidx_exam").attr().flg), }; badge_data.push(badgeInfo); @@ -4267,7 +4892,7 @@ export const pcsave: EPR = async (info, data, send) => { let badgeInfo = { category_id: "world_tourism", flg_id: 0, - flg: parseInt(badge.element("world_tourism").attr().flg), + flg: Number(badge.element("world_tourism").attr().flg), }; badge_data.push(badgeInfo); @@ -4278,7 +4903,7 @@ export const pcsave: EPR = async (info, data, send) => { let badgeInfo = { category_id: "event1", flg_id: 0, - flg: parseInt(res.attr().flg), + flg: Number(res.attr().flg), }; badge_data.push(badgeInfo); @@ -4289,8 +4914,8 @@ export const pcsave: EPR = async (info, data, send) => { badge.elements("arena").forEach((res) => { let badgeInfo = { category_id: "arena", - flg_id: parseInt(res.attr().flg_id), - flg: parseInt(res.attr().flg), + flg_id: Number(res.attr().flg_id), + flg: Number(res.attr().flg), }; badge_data.push(badgeInfo); @@ -4302,7 +4927,118 @@ export const pcsave: EPR = async (info, data, send) => { let badgeInfo = { category_id: "event2", flg_id: 0, - flg: parseInt(res.attr().flg), + flg: Number(res.attr().flg), + }; + + badge_data.push(badgeInfo); + }); + } + break; + case 32: + if (!(_.isNil(badge.element("step_up")))) { + badge.elements("step_up").forEach((res) => { + let badgeInfo = { + category_id: "step_up", + flg_id: Number(res.attr().flg_id), + flg: Number(res.attr().flg), + }; + + badge_data.push(badgeInfo); + }); + } + + if (!(_.isNil(badge.element("today_recommend")))) { + let badgeInfo = { + category_id: "today_recommend", + flg_id: 0, + flg: Number(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: Number(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: Number(res.attr().flg_id), + flg: Number(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: Number(res.attr().flg_id), + flg: Number(res.attr().flg), + }; + + badge_data.push(badgeInfo); + }); + } + + if (!(_.isNil(badge.element("tsujigiri")))) { + let badgeInfo = { + category_id: "tsujigiri", + flg_id: 0, + flg: Number(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: Number(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: Number(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: Number(res.attr().flg), + }; + + badge_data.push(badgeInfo); + }); + } + + if (!(_.isNil(badge.element("arena")))) { + badge.elements("arena").forEach((res) => { + let badgeInfo = { + category_id: "arena", + flg_id: Number(res.attr().flg_id), + flg: Number(res.attr().flg), }; badge_data.push(badgeInfo); @@ -4338,18 +5074,89 @@ export const pcsave: EPR = async (info, data, send) => { { collection: "lightning_musicfilter", version: version, - play_style: parseInt(res.attr().play_style), - folder_id: parseInt(res.attr().folder_id), - filter_id: parseInt(res.attr().filter_id), + play_style: Number(res.attr().play_style), + folder_id: Number(res.attr().folder_id), + filter_id: Number(res.attr().filter_id), }, { $set: { is_valid: res.bool("is_valid"), - value0: parseInt(res.attr().value0), - value1: parseInt(res.attr().value1), + value0: Number(res.attr().value0), + value1: Number(res.attr().value1), }, }); }); + + let sort = $(data).element("music_filter").element("sort"); // Pinky Crush // + if (!_.isNil(sort)) { + DB.Upsert( + refid, + { + collection: "lightning_musicfilter_sort", + version: version, + play_style: Number(sort.attr().play_style), + folder_id: Number(sort.attr().folder_id), + }, + { + $set: { + sort: Number(sort.attr().sort) + }, + }); + } + } + + if (hasActivityData) { + const activityData = $(data).element("activity_data"); + const play_style = Number($(data).attr("activity_data").play_style); + let music_num = Number($(data).attr("activity_data").music_num); + let play_time = Number($(data).attr("activity_data").play_time); + let keyboard_num = Number($(data).attr("activity_data").keyboard_num); + let scratch_num = Number($(data).attr("activity_data").scratch_num); + let clear_update_num = $(data).numbers("activity_data.clear_update_num"); + let score_update_num = $(data).numbers("activity_data.score_update_num"); + + const date = new Date(); + const monthStr = `${date.getMonth() + 1}`.padStart(2, "0"); + const dayStr = `${date.getDate()}`.padStart(2, "0"); + const dateStr = `${date.getFullYear()}${monthStr}${dayStr}`; + + const dbData = await DB.FindOne(refid, { + collection: "activity", + version: version, + date: Number(dateStr), + play_style: play_style, + }); + + if (!_.isNil(dbData)) { + music_num += dbData.music_num; + play_time += dbData.play_time; + keyboard_num += dbData.keyboard_num; + scratch_num += dbData.scratch_num; + + for (let a = 0; a < 13; a++) { // TODO:: verify // + clear_update_num[a] += dbData.clear_update_num[a]; + score_update_num[a] += dbData.score_update_num[a]; + } + } + + await DB.Upsert( + refid, + { + collection: "activity", + version: version, + date: Number(dateStr), + play_style: play_style, + }, + { + $set: { + music_num, + play_time, + keyboard_num, + scratch_num, + clear_update_num, + score_update_num, + } + }); } if (hasSkinData) { @@ -4359,46 +5166,46 @@ export const pcsave: EPR = async (info, data, send) => { lift_cover, note_beam, note_beam_size, full_combo_splash, frame; skinData.forEach((res) => { - switch (parseInt(res.attr().skin_id)) { + switch (Number(res.attr().skin_id)) { case 1: - note_burst = parseInt(res.attr().skin_no); + note_burst = Number(res.attr().skin_no); break; case 2: - bomb_size = parseInt(res.attr().skin_no); + bomb_size = Number(res.attr().skin_no); break; case 3: - turntable = parseInt(res.attr().skin_no); + turntable = Number(res.attr().skin_no); break; case 4: - judge_font = parseInt(res.attr().skin_no); + judge_font = Number(res.attr().skin_no); break; case 5: - note_skin = parseInt(res.attr().skin_no); + note_skin = Number(res.attr().skin_no); break; case 6: - note_size = parseInt(res.attr().skin_no); + note_size = Number(res.attr().skin_no); break; case 13: - lane_cover = parseInt(res.attr().skin_no); + lane_cover = Number(res.attr().skin_no); break; case 14: - pacemaker_cover = parseInt(res.attr().skin_no); + pacemaker_cover = Number(res.attr().skin_no); break; case 15: - lift_cover = parseInt(res.attr().skin_no); + lift_cover = Number(res.attr().skin_no); break; case 16: - note_beam = parseInt(res.attr().skin_no); + note_beam = Number(res.attr().skin_no); break; case 17: - note_beam_size = parseInt(res.attr().skin_no); + note_beam_size = Number(res.attr().skin_no); break; case 18: - full_combo_splash = parseInt(res.attr().skin_no); + full_combo_splash = Number(res.attr().skin_no); break; case 19: - frame = parseInt(res.attr().skin_no); + frame = Number(res.attr().skin_no); break; } }); @@ -4425,12 +5232,12 @@ export const pcsave: EPR = async (info, data, send) => { let premium_bg; skinData.forEach((res) => { - switch (parseInt(res.attr().skin_id)) { + switch (Number(res.attr().skin_id)) { case 0: - premium_skin = parseInt(res.attr().skin_no); + premium_skin = Number(res.attr().skin_no); break; case 1: - premium_bg = parseInt(res.attr().skin_no); + premium_bg = Number(res.attr().skin_no); break; } }); @@ -4510,7 +5317,7 @@ export const pcgetlanegacha: EPR = async (info, data, send) => { }; export const pcshopregister: EPR = async (info, data, send) => { - let refid = IDtoRef(parseInt($(data).str("iidx_id"))); + let refid = IDtoRef(Number($(data).str("iidx_id"))); let lid = $(data).str("location_id"); // TODO // @@ -4519,7 +5326,7 @@ export const pcshopregister: EPR = async (info, data, send) => { }; export const pcdrawlanegacha: EPR = async (info, data, send) => { - let drawNum = parseInt($(data).attr().draw_num); + let drawNum = Number($(data).attr().draw_num); let tArray = []; for (let i = 0; i < drawNum; i++) { diff --git a/iidx@asphyxia/handlers/ranking.ts b/iidx@asphyxia/handlers/ranking.ts index 46748c9..ffe3faa 100644 --- a/iidx@asphyxia/handlers/ranking.ts +++ b/iidx@asphyxia/handlers/ranking.ts @@ -5,21 +5,21 @@ import { GetVersion, IDtoRef } from "../util"; export const rankingentry: EPR = async (info, data, send) => { // pside // const version = GetVersion(info); - const refid = await IDtoRef(parseInt($(data).attr().iidxid)); + const refid = await IDtoRef(Number($(data).attr().iidxid)); - const coid = parseInt($(data).attr().coid); - const clid = parseInt($(data).attr().clid); + const coid = Number($(data).attr().coid); + const clid = Number($(data).attr().clid); const opname = $(data).attr().opname; - const oppid = parseInt($(data).attr().oppid); - const pgnum = parseInt($(data).attr().pgnum); - const gnum = parseInt($(data).attr().gnum); - const opt = parseInt($(data).attr().opt); - const opt2 = parseInt($(data).attr().opt2); - const clr = parseInt($(data).attr().clr); + const oppid = Number($(data).attr().oppid); + const pgnum = Number($(data).attr().pgnum); + const gnum = Number($(data).attr().gnum); + const opt = Number($(data).attr().opt); + const opt2 = Number($(data).attr().opt2); + const clr = Number($(data).attr().clr); const exscore = (pgnum * 2 + gnum); - const cstage = parseInt($(data).attr().cstage); + const cstage = Number($(data).attr().cstage); const expert_data = await DB.FindOne(refid, { collection: "expert", @@ -123,16 +123,16 @@ export const rankingentry: EPR = async (info, data, send) => { export const rankingoentry: 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 coid = parseInt($(data).attr().coid); - const clid = parseInt($(data).attr().clid); + const coid = Number($(data).attr().coid); + const clid = Number($(data).attr().clid); - const pgnum = parseInt($(data).attr().pgnum); - const gnum = parseInt($(data).attr().gnum); - const opt = parseInt($(data).attr().opt); - const opt2 = parseInt($(data).attr().opt2); - const clr = parseInt($(data).attr().clr); + const pgnum = Number($(data).attr().pgnum); + const gnum = Number($(data).attr().gnum); + const opt = Number($(data).attr().opt); + const opt2 = Number($(data).attr().opt2); + const clr = Number($(data).attr().clr); const exscore = (pgnum * 2 + gnum); @@ -146,8 +146,8 @@ export const rankinggetranker: EPR = async (info, data, send) => { const ranking = await DB.Find({ collection: "ranking", version: version, - coid: parseInt($(data).attr().coid), - clid: parseInt($(data).attr().clid), + coid: Number($(data).attr().coid), + clid: Number($(data).attr().clid), }); let result = { ranker: [], diff --git a/iidx@asphyxia/handlers/webui.ts b/iidx@asphyxia/handlers/webui.ts index ba72629..f0bf83a 100644 --- a/iidx@asphyxia/handlers/webui.ts +++ b/iidx@asphyxia/handlers/webui.ts @@ -207,24 +207,24 @@ export const updateCustomSettings = async (data) => { }); let customize = { - frame: parseInt(data.frame), - turntable: parseInt(data.turntable), - note_burst: parseInt(data.note_burst), - menu_music: parseInt(data.menu_music), - lane_cover: parseInt(data.lane_cover), - category_vox: parseInt(data.category_vox), - note_skin: parseInt(data.note_skin), - full_combo_splash: parseInt(data.full_combo_splash), + frame: Number(data.frame), + turntable: Number(data.turntable), + note_burst: Number(data.note_burst), + menu_music: Number(data.menu_music), + lane_cover: Number(data.lane_cover), + category_vox: Number(data.category_vox), + note_skin: Number(data.note_skin), + full_combo_splash: Number(data.full_combo_splash), disable_musicpreview: StoB(data.disable_musicpreview), - note_beam: parseInt(data.note_beam), - judge_font: parseInt(data.judge_font), - pacemaker_cover: parseInt(data.pacemaker_cover), + note_beam: Number(data.note_beam), + judge_font: Number(data.judge_font), + pacemaker_cover: Number(data.pacemaker_cover), vefx_lock: StoB(data.vefx_lock), - effect: parseInt(data.effect), - bomb_size: parseInt(data.bomb_size), + effect: Number(data.effect), + bomb_size: Number(data.bomb_size), disable_hcn_color: StoB(data.disable_hcn_color), - first_note_preview: parseInt(data.first_note_preview), + first_note_preview: Number(data.first_note_preview), rank_folder: StoB(data.rank_folder), clear_folder: StoB(data.clear_folder), @@ -240,17 +240,17 @@ export const updateCustomSettings = async (data) => { hide_iidxid: StoB(data.hide_iidxid), disable_beginner_option: StoB(data.disable_beginner_option), - qpro_head: parseInt(data.qpro_head), - qpro_hair: parseInt(data.qpro_hair), - qpro_face: parseInt(data.qpro_face), - qpro_hand: parseInt(data.qpro_hand), - qpro_body: parseInt(data.qpro_body), - qpro_back: parseInt(data.qpro_back), + qpro_head: Number(data.qpro_head), + qpro_hair: Number(data.qpro_hair), + qpro_face: Number(data.qpro_face), + qpro_hand: Number(data.qpro_hand), + qpro_body: Number(data.qpro_body), + qpro_back: Number(data.qpro_back), } await DB.Upsert(data.refid, { collection: "custom", - version: parseInt(data.version) + version: Number(data.version) }, { $set: customize @@ -270,12 +270,12 @@ export const updateCustomSettings = async (data) => { if (data.version > 27) { await DB.Upsert(data.refid, { collection: "lightning_custom", - version: parseInt(data.version) + version: Number(data.version) }, { $set: { - premium_skin: parseInt(data.lm_skin), - premium_bg: parseInt(data.lm_bg), + premium_skin: Number(data.lm_skin), + premium_bg: Number(data.lm_bg), } }); } diff --git a/iidx@asphyxia/index.ts b/iidx@asphyxia/index.ts index e305c54..77b9ec0 100644 --- a/iidx@asphyxia/index.ts +++ b/iidx@asphyxia/index.ts @@ -484,11 +484,36 @@ export function register() { default: 3, }); + // Pinky Crush // + R.Config("pc_event", { + name: "Event Phase (PC)", + desc: "ピンキージャンプアップ! / ピンキーアンダーグラウンド", + type: "integer", + default: 2, + }); + R.Config("pc_event1", { + name: "ピンキージャンプアップ!", + desc: "ピンキージャンプアップ! Phase", + type: "integer", + default: 3, + }); + R.Config("pc_event2", { + name: "ピンキーアンダーグラウンド", + desc: "ピンキーアンダーグラウンド Phase", + type: "integer", + default: 3, + }); + R.Config("pc_extraboss", { + name: "Extra Boss Phase (PC)", + type: "integer", + default: 3, + }); + // TODO:: Make a list of customize items // R.WebUIEvent("iidxGetProfile", async (data, send: WebUISend) => { const pcdata = await DB.FindOne(data.refid, { collection: "pcdata", - version: parseInt(data.version), + version: Number(data.version), }); return send.json({ @@ -498,12 +523,12 @@ export function register() { R.WebUIEvent("iidxGetSetting", async (data, send: WebUISend) => { const custom = await DB.FindOne(data.refid, { collection: "custom", - version: parseInt(data.version), + version: Number(data.version), }); const lm_custom = await DB.FindOne(data.refid, { collection: "lightning_custom", - version: parseInt(data.version), + version: Number(data.version), }); return send.json({ @@ -529,6 +554,7 @@ export function register() { R.Route(`IIDX29${method}`, handler); R.Route(`IIDX30${method}`, handler); R.Route(`IIDX31${method}`, handler); + R.Route(`IIDX32${method}`, handler); }; MultiRoute("pc.common", pccommon); diff --git a/iidx@asphyxia/models/activity.ts b/iidx@asphyxia/models/activity.ts new file mode 100644 index 0000000..a754ae3 --- /dev/null +++ b/iidx@asphyxia/models/activity.ts @@ -0,0 +1,50 @@ +export interface activity { + collection: "activity"; + version: number; + + date: number; + play_style: number; + + music_num: number; + play_time: number; + keyboard_num: number; + scratch_num: number; + clear_update_num: number[]; + score_update_num: number[]; +} + +export interface activity_mybest { + collection: "activity_mybest"; + version: number; + + play_style: number; + play_side: number; + music_id: number; + note_id: number; + + target_graph: number; + target_score: number; + pacemaker: number; + best_clear: number; + best_score: number; + best_misscount: number; + now_clear: number; + now_score: number; + now_misscount: number; + now_pgreat: number; + now_great: number; + now_good: number; + now_bad: number; + now_poor: number; + now_combo: number; + now_fast: number; + now_slow: number; + option: number; + option_2: number; + ghost_gauge_data: string; + gauge_type: number; + result_type: number; + is_special_result: number; + + update_date: number; +} diff --git a/iidx@asphyxia/models/extraboss.ts b/iidx@asphyxia/models/extraboss.ts new file mode 100644 index 0000000..bf3e7cc --- /dev/null +++ b/iidx@asphyxia/models/extraboss.ts @@ -0,0 +1,10 @@ +export interface extra_boss { + collection: "extra_boss"; + version: number; + phase: number; + + extra: number; + extra_b: number; + onemore: number; + onemore_b: number; +} diff --git a/iidx@asphyxia/models/lightning.ts b/iidx@asphyxia/models/lightning.ts index 09aeeb1..19f39df 100644 --- a/iidx@asphyxia/models/lightning.ts +++ b/iidx@asphyxia/models/lightning.ts @@ -107,6 +107,15 @@ export interface lightning_musicfilter { value1: number; } +export interface lightning_musicfilter_sort { + collection: "lightning_musicfilter_sort"; + version: number; + + play_style: number; + folder_id: number; + sort: number; +} + export interface musicfilter_data { play_style: number; folder_id: number; @@ -116,6 +125,12 @@ export interface musicfilter_data { value1: number; } +export interface musicfilter_sort_data { + play_style: number; + folder_id: number; + sort: number; +} + export const lm_playdata = { sp_num: 0, dp_num: 0, diff --git a/iidx@asphyxia/models/pcdata.ts b/iidx@asphyxia/models/pcdata.ts index 78dab35..3118ab2 100644 --- a/iidx@asphyxia/models/pcdata.ts +++ b/iidx@asphyxia/models/pcdata.ts @@ -19,6 +19,7 @@ export interface pcdata { mcomb: number; ncomb: number; mode: number; + category: number; // attribute (Pinky Crush) // pmode: number; liflen: number; judge: number; // attribute (tricoro) // @@ -33,6 +34,7 @@ export interface pcdata { fcombo: number[]; ngrade: number; // attribute (BISTROVER) // rtype: number; // attribute (Heroic Verse) // + bgnflg: number; // attribute (Pinky Crush) // player_kind: number; // attribute (EPOLIS) // gpos: number; @@ -92,13 +94,16 @@ export interface pcdata { d_visualization: number; s_classic_hispeed: number; // EPOLIS // d_classic_hispeed: number; + movie_thumbnail: number; // Pinky Crush // secret_flg1: string[]; // secret (Heroic Verse) // secret_flg2: string[]; secret_flg3: string[]; secret_flg4: string[]; + secret_flg5: string[]; // secret (Pinky Crush) // leggendaria_flg1: string[]; // leggendaria (BISTROVER) // + leggendaria_flg2: string[]; // leggendaria (Pinky Crush) // dr_sprank: number[]; // djrank (Heroic Verse) // dr_sppoint: number[]; @@ -153,6 +158,10 @@ export interface pcdata { st_dp_mission: number; st_sp_level: number; st_dp_level: number; + st_sp_level_h: number; // Pinky Crush // + st_dp_level_h: number; + st_sp_level_exh: number; // Pinky Crush // + st_dp_level_exh: number; st_sp_mplay: number; st_dp_mplay: number; st_last_select: number; @@ -1576,3 +1585,126 @@ export const IIDX31_pcdata = { event_last_select_id: -1, event_skip: false, } + +export const IIDX32_pcdata = { + version: 32, + + spnum: 0, + dpnum: 0, + sach: 0, + dach: 0, + mode: 0, + category: 0, + pmode: 0, + ngrade: 0, + rtype: 0, + bgnflg: 0, + player_kind: 0, + sp_opt: 0, + dp_opt: 0, + dp_opt2: 0, + gpos: 0, + s_sorttype: 0, + d_sorttype: 0, + s_pace: 0, + d_pace: 0, + s_gno: 0, + d_gno: 0, + s_sub_gno: 0, + d_sub_gno: 0, + s_gtype: 0, + d_gtype: 0, + s_sdlen: 0, + d_sdlen: 0, + s_sdtype: 0, + d_sdtype: 0, + s_timing: 0, + d_timing: 0, + s_notes: 0, + d_notes: 0, + s_judge: 0, + d_judge: 0, + s_judgeAdj: 0, + d_judgeAdj: 0, + s_hispeed: 0, + d_hispeed: 0, + s_liflen: 0, + d_liflen: 0, + s_disp_judge: 0, + d_disp_judge: 0, + s_opstyle: 0, + d_opstyle: 0, + s_graph_score: 0, + d_graph_score: 0, + s_auto_scrach: 0, + d_auto_scrach: 0, + s_gauge_disp: 0, + d_gauge_disp: 0, + s_lane_brignt: 0, + d_lane_brignt: 0, + s_camera_layout: 0, + d_camera_layout: 0, + s_ghost_score: 0, + d_ghost_score: 0, + s_tsujigiri_disp: 0, + d_tsujigiri_disp: 0, + s_auto_adjust: 0, + d_auto_adjust: 0, + s_timing_split: 0, + d_timing_split: 0, + s_visualization: 0, + d_visualization: 0, + s_classic_hispeed: 0, + d_classic_hispeed: 0, + movie_thumbnail: 0, + + secret_flg1: Array(3).fill("-1"), + secret_flg2: Array(3).fill("-1"), + secret_flg3: Array(3).fill("-1"), + secret_flg4: Array(3).fill("-1"), + secret_flg5: Array(3).fill("-1"), + + leggendaria_flg1: Array(3).fill("-1"), + leggendaria_flg2: Array(3).fill("-1"), + + tourism_secret_flg1: Array(3).fill("-1"), + tourism_secret_flg2: Array(3).fill("-1"), + + nr_spradar: Array(6).fill(0), + nr_dpradar: Array(6).fill(0), + + st_enemy_damage: 0, + st_progress: 0, + st_total_point: 0, + st_enemy_defeat_flg: 0, + st_is_track_ticket: false, + st_sp_level: 0, + st_dp_level: 0, + st_sp_level_h: 0, + st_dp_level_h: 0, + st_sp_level_exh: 0, + st_dp_level_exh: 0, + st_sp_fluctuation: 0, + st_dp_fluctuation: 0, + st_mission_clear_num: 0, + st_sp_mplay: 0, + st_dp_mplay: 0, + st_tips_read_list: 0, + + sgid: -1, + dgid: -1, + + achi_lastweekly: 0, + achi_pack: 0, + achi_packcomp: 0, + achi_rivalcrush: 0, + achi_visitflg: 0, + achi_weeklynum: 0, + + deller: 0, + orb: 0, + present_orb: 0, + + event_play_num: 0, + event_last_select_id: -1, +} diff --git a/iidx@asphyxia/pug/LDJ/32pcget.pug b/iidx@asphyxia/pug/LDJ/32pcget.pug new file mode 100644 index 0000000..05c4af4 --- /dev/null +++ b/iidx@asphyxia/pug/LDJ/32pcget.pug @@ -0,0 +1,155 @@ +IIDX32pc(status="0") + 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 category=pcdata.category pmode=pcdata.pmode ngrade=pcdata.ngrade rtype=pcdata.rtype bgnflg=pcdata.bgnflg 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 movie_thumbnail=pcdata.movie_thumbnail) + 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 + dellar_bonus(rate="100") + 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 + flg5(__type="s64" __count="3") -1 -1 -1 + leggendaria + flg1(__type="s64" __count="3") -1 -1 -1 + flg2(__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} + - for (let fs of fsArray) + sort(play_style=fs.play_style folder_id=fs.folder_id sort=fs.sort) + 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="s32" __count="4") #{lm_custom.premium_skin} #{lm_custom.premium_bg} 0 0 + qprodata(__type="u32" __count="6") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body} #{custom.qpro_back} + 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) + rlist_sub + 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_level_h=pcdata.st_sp_level_h dp_level_h=pcdata.st_dp_level_h sp_level_exh=pcdata.st_sp_level_exh dp_level_exh=pcdata.st_dp_level_exh 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(pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp last_weekly=pcdata.achi_lastweekly weekly_num=pcdata.achi_weeklynum visit_flg=pcdata.achi_visitflg rival_crush=pcdata.achi_rivalcrush) + deller(deller=pcdata.deller) + orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb) + old_linkage_secret_flg(triple_tribe="-1" triple_tribe_2="-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 + default_chat + 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_booth_id=pcdata.event_last_select_id) + if pcdata.event_skip == true + is_skip + - for (let evt of evtArray) + booth_data(booth_id=evt.booth_id play_num=evt.play_num play_num_uc=evt.play_num_uc success_num=evt.success_num last_select_qpro_index=evt.last_select_qpro_index booth_prog=evt.booth_prog customer_n=evt.customer_n customer_h=evt.customer_h customer_a=evt.customer_a customer_l=evt.customer_l hire_num=evt.hire_num) + flg_l(__type="bool") #{evt.flg_l} + - for (let evt2 of evtArray2) + booth_qpro_data(booth_id=evt2.booth_id index=evt2.index head_parts=evt2.head_parts hair_parts=evt2.hair_parts face_parts=evt2.face_parts body_parts=evt2.body_parts hand_parts=evt2.hand_parts param_n=evt2.param_n param_h=evt2.param_h param_a=evt2.param_a param_l=evt2.param_l exp=evt2.exp performance_date=evt2.performance_date) + - for (let evtRival of evtArray3) + rival(index=evtRival.index name=evtRival.name iidx_id=evtRival.iidx_id head=evtRival.head hair=evtRival.hair face=evtRival.face body=evtRival.body hand=evtRival.hand back=evtRival.back) + if pinky_ug != null + event_2(event_play_num=pinky_ug.event_play_num last_select_hall_id=pinky_ug.last_select_hall_id) + - for (let evt4 of pinky_ug_hall) + hall_data(hall_id=evt4.hall_id play_num=evt4.play_num last_select_skill_index=evt4.last_select_skill_index hall_prog=evt4.hall_prog defeat_num=evt4.defeat_num pp_0=evt4.pp_0 pp_1=evt4.pp_1 pp_2=evt4.pp_2 pp_3=evt4.pp_3 pp_4=evt4.pp_4 pp_5=evt4.pp_5 skill_1=evt4.skill_1 skill_2=evt4.skill_2 skill_3=evt4.skill_3 cool_1=evt4.cool_1 cool_2=evt4.cool_2 cool_3=evt4.cool_3 param_1=evt4.param_1 param_2=evt4.param_2 param_3=evt4.param_3) + - for (let evt5 of pinky_ug_qpro) + hall_qpro_data(hall_id=evt5.hall_id index=evt5.index head_parts=evt5.head_parts hair_parts=evt5.hair_parts face_parts=evt5.face_parts body_parts=evt5.body_parts hand_parts=evt5.hand_parts) + - for (let evtRival of evtArray3) + rival(index=evtRival.index name=evtRival.name iidx_id=evtRival.iidx_id head=evtRival.head hair=evtRival.hair face=evtRival.face body=evtRival.body hand=evtRival.hand back=evtRival.back) + 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_3(music_list="-1") + triple_tribe_4(music_list="-1") + //-reflecbeat_event(music_list="-1") + //-beatstream_event(music_list="-1") + //-museca_event(music_list="-1") + //-pawapuro(prog="" power="") + language_setting(language=profile.language) + movie_agreement(agreement_version="1") + movie_setting + hide_name(__type="bool") 0 + - for (let ebe of ebeArray) + extra_boss_event(phase=ebe.phase extra=ebe.extra extra_b=ebe.extra_b onemore=ebe.onemore onemore_b=ebe.onemore_b) + 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 + badge + - for (let b of bArray) + badge_data(category_id=b.id badge_flg_id=b.flg_id badge_flg=b.flg) + activity + today(day_id=activityDayId date=activityTimestamp) + if activityTodaySP != null + today_data(play_style=activityTodaySP.play_style music_num=activityTodaySP.music_num play_time=activityTodaySP.play_time keyboard_num=activityTodaySP.keyboard_num scratch_num=activityTodaySP.scratch_num) + clear_update_num(__type="s32" __count="13") #{activityTodaySP.clear_update_num[0]} #{activityTodaySP.clear_update_num[1]} #{activityTodaySP.clear_update_num[2]} #{activityTodaySP.clear_update_num[3]} #{activityTodaySP.clear_update_num[4]} #{activityTodaySP.clear_update_num[5]} #{activityTodaySP.clear_update_num[6]} #{activityTodaySP.clear_update_num[7]} #{activityTodaySP.clear_update_num[8]} #{activityTodaySP.clear_update_num[9]} #{activityTodaySP.clear_update_num[10]} #{activityTodaySP.clear_update_num[11]} #{activityTodaySP.clear_update_num[12]} + score_update_num(__type="s32" __count="13") #{activityTodaySP.score_update_num[0]} #{activityTodaySP.score_update_num[1]} #{activityTodaySP.score_update_num[2]} #{activityTodaySP.score_update_num[3]} #{activityTodaySP.score_update_num[4]} #{activityTodaySP.score_update_num[5]} #{activityTodaySP.score_update_num[6]} #{activityTodaySP.score_update_num[7]} #{activityTodaySP.score_update_num[8]} #{activityTodaySP.score_update_num[9]} #{activityTodaySP.score_update_num[10]} #{activityTodaySP.score_update_num[11]} #{activityTodaySP.score_update_num[12]} + if activityTodayDP != null + today_data(play_style=activityTodayDP.play_style music_num=activityTodayDP.music_num play_time=activityTodayDP.play_time keyboard_num=activityTodayDP.keyboard_num scratch_num=activityTodayDP.scratch_num) + clear_update_num(__type="s32" __count="13") #{activityTodayDP.clear_update_num[0]} #{activityTodayDP.clear_update_num[1]} #{activityTodayDP.clear_update_num[2]} #{activityTodayDP.clear_update_num[3]} #{activityTodayDP.clear_update_num[4]} #{activityTodayDP.clear_update_num[5]} #{activityTodayDP.clear_update_num[6]} #{activityTodayDP.clear_update_num[7]} #{activityTodayDP.clear_update_num[8]} #{activityTodayDP.clear_update_num[9]} #{activityTodayDP.clear_update_num[10]} #{activityTodayDP.clear_update_num[11]} #{activityTodayDP.clear_update_num[12]} + score_update_num(__type="s32" __count="13") #{activityTodayDP.score_update_num[0]} #{activityTodayDP.score_update_num[1]} #{activityTodayDP.score_update_num[2]} #{activityTodayDP.score_update_num[3]} #{activityTodayDP.score_update_num[4]} #{activityTodayDP.score_update_num[5]} #{activityTodayDP.score_update_num[6]} #{activityTodayDP.score_update_num[7]} #{activityTodayDP.score_update_num[8]} #{activityTodayDP.score_update_num[9]} #{activityTodayDP.score_update_num[10]} #{activityTodayDP.score_update_num[11]} #{activityTodayDP.score_update_num[12]} + weekly + week_data(play_style="0") + - for (let a of activityWeekSP) + week(week_index=a.week_index week_id=a.week_id date=a.date music_num=a.music_num play_time=a.play_time keyboard_num=a.keyboard_num scratch_num=a.scratch_num) + clear_update_num(__type="s32" __count="13") #{a.clear_update_num[0]} #{a.clear_update_num[1]} #{a.clear_update_num[2]} #{a.clear_update_num[3]} #{a.clear_update_num[4]} #{a.clear_update_num[5]} #{a.clear_update_num[6]} #{a.clear_update_num[7]} #{a.clear_update_num[8]} #{a.clear_update_num[9]} #{a.clear_update_num[10]} #{a.clear_update_num[11]} #{a.clear_update_num[12]} + score_update_num(__type="s32" __count="13") #{a.score_update_num[0]} #{a.score_update_num[1]} #{a.score_update_num[2]} #{a.score_update_num[3]} #{a.score_update_num[4]} #{a.score_update_num[5]} #{a.score_update_num[6]} #{a.score_update_num[7]} #{a.score_update_num[8]} #{a.score_update_num[9]} #{a.score_update_num[10]} #{a.score_update_num[11]} #{a.score_update_num[12]} + week_data(play_style="1") + - for (let b of activityWeekDP) + week(week_index=b.week_index week_id=b.week_id date=b.date music_num=b.music_num play_time=b.play_time keyboard_num=b.keyboard_num scratch_num=b.scratch_num) + clear_update_num(__type="s32" __count="13") #{b.clear_update_num[0]} #{b.clear_update_num[1]} #{b.clear_update_num[2]} #{b.clear_update_num[3]} #{b.clear_update_num[4]} #{b.clear_update_num[5]} #{b.clear_update_num[6]} #{b.clear_update_num[7]} #{b.clear_update_num[8]} #{b.clear_update_num[9]} #{b.clear_update_num[10]} #{b.clear_update_num[11]} #{b.clear_update_num[12]} + score_update_num(__type="s32" __count="13") #{b.score_update_num[0]} #{b.score_update_num[1]} #{b.score_update_num[2]} #{b.score_update_num[3]} #{b.score_update_num[4]} #{b.score_update_num[5]} #{b.score_update_num[6]} #{b.score_update_num[7]} #{b.score_update_num[8]} #{b.score_update_num[9]} #{b.score_update_num[10]} #{b.score_update_num[11]} #{b.score_update_num[12]} + mynews + - for (let a of activityMynews) + detail(play_style=a.play_style kind=a.kind news_no=a.news_no index=a.index day_id=a.day_id music_id=a.music_id note_id=a.note_id best_score=a.best_score now_score=a.now_score now_clear=a.now_clear news_time=a.news_time) + best_result + - for (let a of activityMybest) + best_data(play_style=a.play_style kind=a.kind play_side=a.play_side music_id=a.music_id note_id=a.note_id target_graph=a.target_graph target_score=a.target_score pacemaker=a.pacemaker best_clear=a.best_clear best_score=a.best_score best_misscount=a.best_misscount now_clear=a.now_clear now_score=a.now_score now_misscount=a.now_misscount now_pgreat=a.now_pgreat now_great=a.now_great now_good=a.now_good now_bad=a.now_bad now_poor=a.now_poor now_combo=a.now_combo now_fast=a.now_fast now_slow=a.now_slow option=a.option option2=a.option_2 gauge_type=a.gauge_type result_type=a.result_type update_date=a.update_date) + ghost_gauge_data(__type="bin") #{a.ghost_gauge_data} + is_special_result(__type="bool") #{a.is_special_result} diff --git a/iidx@asphyxia/util.ts b/iidx@asphyxia/util.ts index 1d958aa..3e1898b 100644 --- a/iidx@asphyxia/util.ts +++ b/iidx@asphyxia/util.ts @@ -98,7 +98,7 @@ export function GetVersion(info: EamuseInfo) { case "JDZ": return 18; case "KDZ": return 19; case "LDJ": - version = parseInt(info.module.slice(4, 6)); + version = Number(info.module.slice(4, 6)); if (_.isNaN(version)) version = 20; break; } @@ -240,3 +240,7 @@ export async function ReftoQPRO(refid: string, version: number) { return qpro_data; } + +export function GetWeekId(date: Date) { + return Math.ceil((((date.getTime() - Date.UTC(date.getFullYear(), 0, 1)) / 86400000) + new Date(date.getFullYear(), 0, 1).getDay()) / 7); +} diff --git a/iidx@asphyxia/webui/profile_-----detail.pug b/iidx@asphyxia/webui/profile_-----detail.pug index 1a7eb70..945e645 100644 --- a/iidx@asphyxia/webui/profile_-----detail.pug +++ b/iidx@asphyxia/webui/profile_-----detail.pug @@ -21,7 +21,8 @@ 28, 29, 30, - 31 + 31, + 32 ]; div diff --git a/iidx@asphyxia/webui/profile_----setting.pug b/iidx@asphyxia/webui/profile_----setting.pug index 6796ad3..a962e28 100644 --- a/iidx@asphyxia/webui/profile_----setting.pug +++ b/iidx@asphyxia/webui/profile_----setting.pug @@ -23,7 +23,8 @@ 28, 29, 30, - 31 + 31, + 32 ]; div