diff --git a/README.md b/README.md index b29090b..a0e9e04 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,21 @@ # IIDX -Plugin Version: **v1.4.4_a4** +Plugin Version: **v1.4.4_a8** -Asphyxia CORE IIDX Plugin. - -## Supported Version - - Bistrover - - CastHour - - RESIDENT - - EPOLIS +This is A Core IIDX Plugin. ## Before Upgrade - [!!] Your customize settings which were configurable in the Plugin Settings section will be reset. - You must play once after applying this update, otherwise profile customize setting page will not render. - Customize settings page is moved to Profiles -> (each profile) Detail -> Settings. +## Supported Versions + - HEROIC VERSE + - BISTROVER + - CastHour + - RESIDENT + - EPOLIS + ## Features - STEP UP - DAN COURSES (EISEI/KIWAMI) diff --git a/data/customlist.ts b/data/customlist.ts index 7afe338..f6c1e4b 100644 --- a/data/customlist.ts +++ b/data/customlist.ts @@ -35,7 +35,8 @@ export const noteburst_list: string[] = [ "HEROIC VERSE", "BISTROVERボム", "いいねフラッシュ", - "RESIDENT" + "RESIDENT", + "EPOLIS", ]; export const turntable_list: string[] = [ @@ -82,6 +83,7 @@ export const turntable_list: string[] = [ "BPLS2 レジャーランド", "RESIDENT", "BEMANI PRO LEAGUE SEASON 3", + "EPOLIS", ]; export const lanecover_list: string[] = [ @@ -371,6 +373,29 @@ export const lanecover_list: string[] = [ "BPLS3 TAITO STATION Tradz", "BPLS3 ROUND1", "BPLS3 レジャーランド", + "Beyond Evolution", + "AWA AWA", + "BIGWAVERS", + "ONE AND ONLY", + "■□模様", + "ちょえちょえまぎか", + "栄冠のカンパネラ", + "Xerulean", + "STRAIGHT TO THE STARS", + "JUSTICE/GUILTY", + "EPOLIS UI", + "Dahlia", + "シンデレラ", + "れとりば!", + "夢縁", + "SOLAR ECLIPSE", + "Ghost Pulse", + "Iris", + "Get Higher", + "アタシ完全絶対正義ちゃん!", + "dj CELICA (IIDX31)", + "dj SHEM (IIDX31)", + "dj AMETO (IIDX30)", ]; export const notes_list: string[] = [ @@ -408,7 +433,8 @@ export const fullcombo_list: string[] = [ "HEROIC VERSE", "BISTROVER SLASH", "CastHour", - "RESIDENT" + "RESIDENT", + "EPOLIS", ]; export const keybeam_list: string[] = [ @@ -424,6 +450,7 @@ export const keybeam_list: string[] = [ "BISTROVER BURNER", "フレネルビーム", "RESIDENT", + "EPOLIS", ]; export const judge_list: string[] = [ @@ -445,6 +472,7 @@ export const judge_list: string[] = [ "BISTROVER JUDGE", "CastHour", "RESIDENT", + "EPOLIS", ]; export const premium_skin_list: string[] = [ @@ -461,6 +489,25 @@ export const premium_skin_list: string[] = [ "BPLS3 レジャーランド", ]; +export const premium_bg_list: string[] = [ + "デフォルト", + "EPOLIS", + "エポリスシティへようこそ!", + "Ghost Pulse", + "Glitch N Ride", + "JUSTICE/GUILTY", + "シンデレラ", + "Iris", + "SOLAR ECLIPSE", + "TECHNOPHOBIA", + "CUE CUE RESCUE", + "STRAIGHT TO THE STARS", + "AWA AWA", + "ちょえちょえまぎか", + "ONE AND ONLY", + "クプロがたくさん", +]; + export const effect_list: string[] = [ "OFF", "ECHO / REVERB", @@ -482,15 +529,15 @@ export const bombsize_list: string[] = [ export const notesize_list = [ "通常", - "極細", "細", + "極細", "太", ]; export const notebeamsize_list = [ "通常", - "ベリーショート", "ショート", + "ベリーショート", "ロング", ]; @@ -503,3 +550,10 @@ export const first_note_preview_list: string[] = [ export const category_vox_list: string[] = [ "デフォルト" ]; + +export const premiumbg_bright_list: string[] = [ + "暗い", + "やや暗い", + "やや明るい", + "明るい", +]; diff --git a/handlers/IIDXgamesystem.ts b/handlers/IIDXgamesystem.ts index e4e2155..32be862 100644 --- a/handlers/IIDXgamesystem.ts +++ b/handlers/IIDXgamesystem.ts @@ -22,6 +22,9 @@ export const systeminfo: EPR = async (info, data, send) => { } else if (version == 31) { send.pugFile("pug/31systeminfo.pug", { boss: U.GetConfig("BossPhase"), + event_1: U.GetConfig("Event1Phase"), + event_1_internal: U.GetConfig("Event1InternalPhase"), + extra_boss: U.GetConfig("ExtraBossPhase"), }); } else { send.success(); } diff --git a/handlers/IIDXgrade.ts b/handlers/IIDXgrade.ts index 9304393..2c51bbe 100644 --- a/handlers/IIDXgrade.ts +++ b/handlers/IIDXgrade.ts @@ -26,7 +26,7 @@ export const graderaised: EPR = async (info, data, send) => { }); const isTDJ = !(_.isNil($(data).element("lightning_play_data"))); // use this element to determine [TDJ] instead of info.model // - const hasEiseiData = (!(_.isNil($(data).element("eisei_data"))) || !(_.isNil($(data).element("eisei_grade_data"))));; + 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; @@ -40,15 +40,19 @@ 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).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); + if (version == 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_data").numbers("past_achievement"); - eisei_max_past_achievement = $(data).element("eisei_data").numbers("max_past_achievement"); - } if (version == 30) { + 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"); + } + else 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); @@ -59,7 +63,17 @@ export const graderaised: EPR = async (info, data, send) => { 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 { + } + else if (version == 27) { + 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_past_achievement = $(data).element("eisei_data").numbers("past_achievement"); + eisei_max_past_achievement = $(data).element("eisei_data").numbers("max_past_achievement"); + } + else { eisei_clear_type = parseInt($(data).element("eisei_grade_data").attr().clear_type); eisei_grade_id = parseInt($(data).element("eisei_grade_data").attr().grade_id); eisei_grade_type = parseInt($(data).element("eisei_grade_data").attr().grade_type); diff --git a/handlers/IIDXmusic.ts b/handlers/IIDXmusic.ts index ee4f09f..9f4e920 100644 --- a/handlers/IIDXmusic.ts +++ b/handlers/IIDXmusic.ts @@ -435,11 +435,11 @@ export const musicreg: EPR = async (info, data, send) => { } ); } else { - if (score_top.scores[tmp_clid] < mArray[rank + 7]) { // migration // + if (mArray[rank + 7] > score_top.scores[tmp_clid]) { // migration // score_top.names[tmp_clid] = profile.name; score_top.scores[tmp_clid] = mArray[rank + 7]; score_top.clflgs[tmp_clid] = mArray[rank + 2]; - } else if (score_top.scores[tmp_clid] < exscore) { + } else if (exscore > score_top.scores[tmp_clid]) { score_top.names[tmp_clid] = profile.name; score_top.scores[tmp_clid] = Number(exscore); score_top.clflgs[tmp_clid] = Number(clear); @@ -624,20 +624,20 @@ export const musicappoint: EPR = async (info, data, send) => { oGhost = null; /* 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 + * [-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 // @@ -1098,3 +1098,36 @@ export const musicretry: EPR = async (info, data, send) => { send.pugFile("pug/musicretry.pug", { version }); }; + +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, index) => { + score_list.push({ + index: K.ITEM("s32", index), + score: K.ITEM("s32", _.random(res, res * 2)), + ghost: K.ARRAY("s8", [0]), // u8 - older , s8 - epolis // + 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/handlers/IIDXpc.ts b/handlers/IIDXpc.ts index 14bb680..5f920a6 100644 --- a/handlers/IIDXpc.ts +++ b/handlers/IIDXpc.ts @@ -297,6 +297,31 @@ export const pcget: EPR = async (info, data, send) => { settings.skin_frame_flg = 0; settings.skin_lane_flg = 0; } + if (_.isNil(settings.qpro_back)) { // settings migration #5 // + await DB.Upsert(refid, { collection: "settings" }, { + $set: { + qpro_back: 0, + premium_bg: 0, + } + }); + + settings.qpro_back = 0; + settings.premium_bg = 0; + } + + if (!(_.isNil(settings.note_beam_size)) && version < 31) { // note beam size before 31 // + switch (settings.note_beam_size) { + case 1: // short // + settings.note_beam = 1; + break; + case 2: // very short // + settings.note_beam = 6; + break; + case 3: // long // + settings.note_beam = 2; + break; + } + } const appendsetting = AppendSettingConverter( settings.score_folders, settings.clear_folders, @@ -363,6 +388,16 @@ export const pcget: EPR = async (info, data, send) => { lightning_settings = await DB.FindOne(refid, { collection: "lightning_settings", version: version }); lightning_playdata = await DB.FindOne(refid, { collection: "lightning_playdata", version: version }); } + if (_.isNil(lightning_settings.brightness)) { // lightning_settings migration #1 // + await DB.Upsert(refid, { collection: "lightning_settings" }, { + $set: { + brightness: 2, + } + }); + + lightning_settings.brightness = 2; + } + if (_.isNil(profile.language)) { // language save support // await DB.Upsert( refid, @@ -496,6 +531,24 @@ export const pcget: EPR = async (info, data, send) => { pc_data.event_play_num = 0; pc_data.event_last_select_flyer_id = 0; } + if (_.isNil(pc_data.event_last_select_map_id) && version == 31) { // EPOLIS event_1 // + await DB.Upsert( + refid, + { + collection: "pc_data", + version: version, + }, + { + $set: { + event_play_num: 0, + event_last_select_map_id: 0, + } + } + ); + + pc_data.event_play_num = 0; + pc_data.event_last_select_map_id = 0; + } // music_memo // let mArray = []; @@ -607,15 +660,56 @@ export const pcget: EPR = async (info, data, send) => { } // event_1 // - let evtArray = [], evtArray2 = []; - if (event_1.length > 0) { - for (let evt of event_1) { - evtArray.push(evt); + let evtArray = [], evtArray2 = [], evtArray3 = []; + if (version == 31) { + event_1.forEach((evt: any) => { + evtArray.push({ + 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: 0, + }); + + evt.buildingArray.forEach((res) => { + evtArray2.push({ + map_id: evt.map_id, + + pos: res.pos, + building: res.building, + use_tile: res.use_tile, + }); + }); + + evt.shopArray.forEach((res) => { + evtArray3.push({ + map_id: evt.map_id, + + reward_id: res.reward_id, + prog: res.prog, + }); + }); + }); + } else { + 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); + } } } @@ -700,6 +794,7 @@ export const pcget: EPR = async (info, data, send) => { wArray, evtArray, evtArray2, + evtArray3, }); } } @@ -783,7 +878,8 @@ export const pcsave: EPR = async (info, data, send) => { lightning_vefx = lightning_settings.vefx, lightning_light = lightning_settings.light, lightning_concentration = lightning_settings.concentration, - lightning_keyboard_kind = lightning_settings.keyboard_kind; + lightning_keyboard_kind = lightning_settings.keyboard_kind, + lightning_brightness = lightning_settings.brightness; // IIDX Tower // let tower_kbd = profile.tower_kbd, @@ -919,6 +1015,7 @@ export const pcsave: EPR = async (info, data, send) => { lightning_concentration = $(data).element("lightning_setting").number("concentration"); lightning_keyboard_kind = parseInt($(data).element("lightning_setting").attr().keyboard_kind); + lightning_brightness = parseInt($(data).element("lightning_setting").attr().brightness); if (hasMusicMemo) { if (version >= 30) { @@ -1111,27 +1208,103 @@ export const pcsave: EPR = async (info, data, send) => { eArray.push([event_data, event_sub_data]); }); } + else if (version == 31) { + $(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 = { + 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 = { + 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); + }); + + event_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, + + buildingArray, + shopArray, + musicArray, + }; + + eArray.push(event_data); + }); + } } let badge_data = []; if (hasBadgeData) { // possible multiple data if flg_id exists // - /* [save (total : 6) ] + // flg_id usually means play_style) // + /* [save (total : 10) ] + step_up [2] (flg_id, flg) today_recommend (flg) - weekly_recommend (flg) - visitor (flg_id, flg) [1] - notes_rader (flg_id, flg) [2] + weekly_ranking (flg) + visitor (flg_id, flg) [2] + notes_radar (flg_id, flg) [2] world_tourism (flg) event1 (flg_id, flg) [10] + arena (flg_id, flg) [2] + iidx_exam (flg) + tsujigiri (flg) */ /* [get] - category_id // 0~9 + category_id // 0~11 badge_flg_id badge_flg */ let badge = $(data).element("badge"); + 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", @@ -1141,10 +1314,10 @@ export const pcsave: EPR = async (info, data, send) => { badge_data.push(badgeInfo); } - if (!(_.isNil(badge.element("weekly_recommend")))) { + if (!(_.isNil(badge.element("weekly_ranking")))) { let badgeInfo = { - category_id: "weekly_recommend", - flg: parseInt(badge.element("weekly_recommend").attr().flg), + category_id: "weekly_ranking", + flg: parseInt(badge.element("weekly_ranking").attr().flg), }; badge_data.push(badgeInfo); @@ -1195,7 +1368,35 @@ export const pcsave: EPR = async (info, data, send) => { }); } - // TODO:: Figure category_name to category_id // + 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: parseInt(badge.element("iidx_exam").attr().flg), + }; + + badge_data.push(badgeInfo); + } + + if (!(_.isNil(badge.element("tsujigiri")))) { + let badgeInfo = { + category_id: "tsujigiri", + flg: parseInt(badge.element("tsujigiri").attr().flg), + }; + + badge_data.push(badgeInfo); + } } // cursed // @@ -1247,10 +1448,16 @@ export const pcsave: EPR = async (info, data, send) => { if (isTDJ && hasTDJSkinData) { let skinData = $(data).elements("tdjskin_equip"); - let premium_area; + let premium_skin; + let premium_bg; skinData.forEach((res) => { - if (parseInt(res.attr().skin_id) == 0) { premium_area = parseInt(res.attr().skin_no); } + switch (parseInt(res.attr().skin_id)) { + case 0: + premium_skin = parseInt(res.attr().skin_no); + case 1: + premium_bg = parseInt(res.attr().skin_no); + } }); await DB.Upsert( @@ -1260,7 +1467,8 @@ export const pcsave: EPR = async (info, data, send) => { }, { $set: { - premium_area, + premium_skin, + premium_bg, } }); } @@ -1995,8 +2203,8 @@ export const pcsave: EPR = async (info, data, send) => { sach: parseInt($(data).attr().s_achi), sp_opt: $(data).attr().sp_opt, s_sub_gno: parseInt($(data).attr().s_sub_gno), - s_auto_adjust: parseInt($(data).attr().s_auto_adjust), - d_auto_adjust: parseInt($(data).attr().d_auto_adjust), + s_auto_adjust: parseInt($(data).attr().s_auto_adjust), + d_auto_adjust: parseInt($(data).attr().d_auto_adjust), }, } ); @@ -2260,6 +2468,7 @@ export const pcsave: EPR = async (info, data, send) => { headphone_vol: lightning_headphone_vol, keyboard_kind: lightning_keyboard_kind, + brightness: lightning_brightness, resistance_sp_left: lightning_resistance_sp_1, resistance_sp_right: lightning_resistance_sp_2, @@ -2344,6 +2553,31 @@ export const pcsave: EPR = async (info, data, send) => { } ); } + + // event_1 // + if (hasEventData) { + await DB.Upsert(refid, { + collection: "pc_data", + version: version, + }, + { + $set: { + event_play_num: event_play_num, + event_last_select_map_id: parseInt($(data).element("event_1").attr().last_select_map_id), + } + }); + + eArray.forEach((res) => { + DB.Upsert(refid, { + collection: "event_1", + version: version, + map_id: res.map_id, + }, + { + $set: res, + }); + }); + } } send.success(); @@ -2369,7 +2603,7 @@ export const pcgetlanegacha: EPR = async (info, data, send) => { let tArray = []; let fArray = []; for (let i = 0; i < 100; i++) { - let random = randomIntRange(0, (7 * 6 * 5 * 4 * 3 * 2)); + let random = randomIntRange(0, 5040); let ticket = { id: i, @@ -2418,11 +2652,3 @@ export const pcgetlanegacha: EPR = async (info, data, send) => { fArray, }); }; - -export const pcgetcompeinfo: EPR = async (info, data, send) => { - send.object({ - compe_status: K.ATTR({ - compe_status: "0", - }) - }); -}; diff --git a/handlers/webui.ts b/handlers/webui.ts index a0319d2..580bce4 100644 --- a/handlers/webui.ts +++ b/handlers/webui.ts @@ -1,6 +1,7 @@ import { settings } from "../models/settings"; import { profile } from "../models/profile"; import { rival } from "../models/rival"; +import { lightning_settings } from "../models/lightning"; import { effect_list, frame_list, @@ -18,6 +19,8 @@ import { category_vox_list, notebeamsize_list, notesize_list, + premium_bg_list, + premiumbg_bright_list, } from "../data/customlist"; export const updateProfileSettings = async (data: { @@ -55,6 +58,8 @@ export const updateProfileSettings = async (data: { first_note_preview?: string; premium_skin?: string; + premium_bg?: string; + premium_bg_brightness?: string; judge_pos?: string; category_vox?: string; @@ -67,6 +72,7 @@ export const updateProfileSettings = async (data: { qpro_hand?: string; qpro_face?: string; qpro_body?: string; + qpro_back?: string; random_lane_ticket?: string; random_lane_ticket_search?: string; @@ -195,10 +201,18 @@ export const updateProfileSettings = async (data: { update.qpro_body = parseInt(data.qpro_body) || 0 } + if (data.qpro_back && data.qpro_back.length > 0) { + update.qpro_back = parseInt(data.qpro_back) || 0 + } + if (data.premium_skin && data.premium_skin.length > 0) { update.premium_skin = premium_skin_list.indexOf(data.premium_skin) } + if (data.premium_bg && data.premium_bg.length > 0) { + update.premium_bg = premium_bg_list.indexOf(data.premium_bg) + } + if (data.category_vox && data.category_vox.length > 0) { update.category_vox = category_vox_list.indexOf(data.category_vox) } @@ -241,6 +255,20 @@ export const updateProfileSettings = async (data: { update.random_lane_ticket_search = []; } + if (data.premium_bg_brightness && data.premium_bg_brightness.length > 0) { + await DB.Update( + profile.refid, + { + collection: 'lightning_settings' + }, + { + $set: { + brightness: premiumbg_bright_list.indexOf(data.premium_bg_brightness) + } + } + ); + } + if (data.name !== profile.name && (data.name.length > 0 && data.name.length < 7)) { await DB.Update( diff --git a/index.ts b/index.ts index a90f6e8..6db5ace 100644 --- a/index.ts +++ b/index.ts @@ -13,7 +13,6 @@ import { pcgetname, pcvisit, pcgetlanegacha, - pcgetcompeinfo, } from "./handlers/IIDXpc"; import { musicreg, @@ -21,6 +20,7 @@ import { musicappoint, musiccrate, musicretry, + musicarenacpu, } from "./handlers/IIDXmusic"; import { systeminfo } from "./handlers/IIDXgamesystem"; import { graderaised } from "./handlers/IIDXgrade"; @@ -135,7 +135,6 @@ export function register() { MultiRoute("pc.consumeLaneGachaTicket", true); MultiRoute("pc.drawLaneGacha", true); MultiRoute("pc.getLaneGachaTicket", pcgetlanegacha); - MultiRoute("pc.getCompeInfo", pcgetcompeinfo) //music MultiRoute("music.getrank", musicgetrank); @@ -145,7 +144,7 @@ export function register() { MultiRoute("music.crate", musiccrate); MultiRoute("music.appoint", musicappoint); MultiRoute("music.nosave", true); - //MultiRoute("music.arenaCPU", true); + MultiRoute("music.arenaCPU", musicarenacpu); //MultiRoute("music.movieinfo", true); MultiRoute("music.retry", musicretry); diff --git a/models/lightning.ts b/models/lightning.ts index b00bdd7..7818ad8 100644 --- a/models/lightning.ts +++ b/models/lightning.ts @@ -8,6 +8,7 @@ export interface lightning_settings { headphone_vol: number; keyboard_kind: number; + brightness: number; resistance_sp_left: number; resistance_sp_right: number; @@ -34,6 +35,7 @@ export const TDJ_settings = { headphone_vol: 10, keyboard_kind: 10, // default to qwerty // + brightness: 2, resistance_sp_left: 4, resistance_sp_right: 4, diff --git a/models/pc_data.ts b/models/pc_data.ts index 930cd1a..64f0e15 100644 --- a/models/pc_data.ts +++ b/models/pc_data.ts @@ -117,6 +117,7 @@ export interface pc_data { event_last_platform_id: number; // 29 // event_last_platform_type: number; event_last_select_flyer_id: number; // 30 // + event_last_select_map_id: number; // 31 // } export const IIDX27_pc_data = { @@ -621,7 +622,7 @@ export const IIDX31_pc_data = { d_auto_adjust: 0, event_play_num: 0, - event_last_select_flyer_id: 0, + event_last_select_map_id: 0, player_kind: 0, s_classic_hispeed: 0, diff --git a/models/settings.ts b/models/settings.ts index 67d23c7..2468e3a 100644 --- a/models/settings.ts +++ b/models/settings.ts @@ -36,12 +36,14 @@ export interface settings { category_vox: number; judge_pos: number; premium_skin: number; + premium_bg: number; qpro_head: number; qpro_hair: number; qpro_hand: number; qpro_face: number; qpro_body: number; + qpro_back: number; random_lane_ticket: number[]; random_lane_ticket_search: number[]; @@ -87,12 +89,14 @@ export const settings_data = { category_vox: 0, judge_pos: 0, premium_skin: 0, + premium_bg: 0, qpro_head: 0, qpro_hair: 0, qpro_hand: 0, qpro_face: 0, qpro_body: 0, + qpro_back: 0, random_lane_ticket: [], random_lane_ticket_search: [], diff --git a/pug/27pccommon.pug b/pug/27pccommon.pug index 6312f33..801ba0c 100644 --- a/pug/27pccommon.pug +++ b/pug/27pccommon.pug @@ -19,8 +19,6 @@ IIDX27pc(status="0" expire="600") cm(id="8" filename="year_bn_006_2") cm(id="9" filename="year_bn_007") movie_agreement(version="1") - license - string(__type="str") Asphyxia button_release_frame(frame="0") escape_package_info expert(phase=expert) diff --git a/pug/28get.pug b/pug/28get.pug index c44b147..0beb144 100644 --- a/pug/28get.pug +++ b/pug/28get.pug @@ -90,7 +90,7 @@ IIDX28pc(status="0") bemani_musiq_fes(music_list="-1") busou_linkage(music_list="-1") busou_linkage_2(music_list="-1") - valkyrie_linkage_data(progress="-1") + valkyrie_linkage_data(progress="100") bemani_song_battle(music_list="-1") language_setting(language=profile.language) movie_agreement(agreement_version="1") diff --git a/pug/28pccommon.pug b/pug/28pccommon.pug index eaa0013..e518a9e 100644 --- a/pug/28pccommon.pug +++ b/pug/28pccommon.pug @@ -19,8 +19,6 @@ IIDX28pc(status="0" expire="600") cm(id="8" filename="year_bn_006_2") cm(id="9" filename="year_bn_007") movie_agreement(version="1") - license - string(__type="str") Asphyxia movie_upload(url=movie_upload) button_release_frame(frame="0") escape_package_info diff --git a/pug/29get.pug b/pug/29get.pug index 1b31418..acaaaf4 100644 --- a/pug/29get.pug +++ b/pug/29get.pug @@ -86,8 +86,8 @@ IIDX29pc(status="0") bemani_musiq_fes(music_list="-1") busou_linkage(music_list="-1") busou_linkage_2(music_list="-1") - valkyrie_linkage_data(progress="-1") - valkyrie_linkage_2_data(progress="-1") + valkyrie_linkage_data(progress="100") + valkyrie_linkage_2_data(progress="100") bemani_song_battle(music_list="-1") language_setting(language=profile.language) movie_agreement(agreement_version="1") diff --git a/pug/29pccommon.pug b/pug/29pccommon.pug index 7de7966..8736a18 100644 --- a/pug/29pccommon.pug +++ b/pug/29pccommon.pug @@ -19,8 +19,6 @@ IIDX29pc(status="0" expire="600") cm(id="8" filename="year_bn_006_2") cm(id="9" filename="year_bn_007") movie_agreement(version="1") - license - string(__type="str") Asphyxia movie_upload(url=movie_upload) escape_package_info expert(phase=expert) diff --git a/pug/29systeminfo.pug b/pug/29systeminfo.pug index 579368a..d7237a4 100644 --- a/pug/29systeminfo.pug +++ b/pug/29systeminfo.pug @@ -71,5 +71,5 @@ IIDX29gameSystem(status="0") isNewSongAnother12OpenFlg(val="1") gradeOpenPhase(val="2") isEiseiOpenFlg(val="1") - WorldTourismOpenList(val="1") + WorldTourismOpenList(val="-1") BPLBattleOpenPhase(val="2") diff --git a/pug/30pccommon.pug b/pug/30pccommon.pug index c76d6c6..72da78a 100644 --- a/pug/30pccommon.pug +++ b/pug/30pccommon.pug @@ -15,8 +15,6 @@ IIDX30pc(status="0" expire="600") cm(id="8" filename="year_bn_006_2") cm(id="9" filename="year_bn_007") movie_agreement(version="1") - license - string(__type="str") Asphyxia movie_upload(url=movie_upload) escape_package_info vip_pass_black diff --git a/pug/30systeminfo.pug b/pug/30systeminfo.pug index f7563ac..7743f3a 100644 --- a/pug/30systeminfo.pug +++ b/pug/30systeminfo.pug @@ -71,5 +71,5 @@ IIDX30gameSystem(status="0") isNewSongAnother12OpenFlg(val="1") gradeOpenPhase(val="2") isEiseiOpenFlg(val="1") - WorldTourismOpenList(val="255") + WorldTourismOpenList(val="-1") BPLBattleOpenPhase(val="3") diff --git a/pug/31get.pug b/pug/31get.pug index a58d5ee..40ac5eb 100644 --- a/pug/31get.pug +++ b/pug/31get.pug @@ -1,7 +1,7 @@ -IIDX31pc(status="0") +IIDX31pc(status="0" qproback=settings.qpro_back) pcdata(d_auto_scrach=pc_data.d_auto_scrach d_camera_layout=pc_data.d_camera_layout d_disp_judge=pc_data.d_disp_judge d_exscore=pc_data.d_exscore d_gauge_disp=pc_data.d_gauge_disp d_ghost_score=pc_data.d_ghost_score d_gno=pc_data.d_gno d_graph_score=pc_data.d_graph_score d_gtype=pc_data.d_gtype d_hispeed=pc_data.d_hispeed d_judge=pc_data.d_judge d_judgeAdj=pc_data.d_judgeAdj d_lane_brignt=pc_data.d_lane_brignt d_liflen=pc_data.d_liflen d_notes=pc_data.d_notes d_opstyle=pc_data.d_opstyle d_pace=pc_data.d_pace d_sdlen=pc_data.d_sdlen d_sdtype=pc_data.d_sdtype d_sorttype=pc_data.d_sorttype d_sub_gno=pc_data.d_sub_gno d_timing=pc_data.d_timing d_timing_split=pc_data.d_timing_split d_tsujigiri_disp=pc_data.d_tsujigiri_disp d_tune=pc_data.d_tune d_visualization=pc_data.d_visualization dach=pc_data.dach dp_opt=pc_data.dp_opt dp_opt2=pc_data.dp_opt2 dpnum=0 gpos=pc_data.gpos id=profile.iidxid idstr=profile.iidxidstr mode=pc_data.mode name=profile.name pid=profile.pid pmode=pc_data.pmode rtype=pc_data.rtype s_auto_scrach=pc_data.s_auto_scrach s_camera_layout=pc_data.s_camera_layout s_disp_judge=pc_data.s_disp_judge s_exscore=pc_data.s_exscore s_gauge_disp=pc_data.s_gauge_disp s_ghost_score=pc_data.s_ghost_score s_gno=pc_data.s_gno s_graph_score=pc_data.s_graph_score s_gtype=pc_data.s_gtype s_hispeed=pc_data.s_hispeed s_judge=pc_data.s_judge s_judgeAdj=pc_data.s_judgeAdj s_lane_brignt=pc_data.s_lane_brignt s_liflen=pc_data.s_liflen s_notes=pc_data.s_notes s_opstyle=pc_data.s_opstyle s_pace=pc_data.s_pace s_sdlen=pc_data.s_sdlen s_sdtype=pc_data.s_sdtype s_sorttype=pc_data.s_sorttype s_sub_gno=pc_data.s_sub_gno s_timing=pc_data.s_timing s_timing_split=pc_data.s_timing_split s_tsujigiri_disp=pc_data.s_tsujigiri_disp s_tune=pc_data.s_tune s_visualization=pc_data.s_visualization sach=pc_data.sach sp_opt=pc_data.sp_opt spnum=pc_data.spnum ngrade=pc_data.ngrade s_auto_adjust=pc_data.s_auto_adjust d_auto_adjust=pc_data.d_auto_adjust player_kind=pc_data.player_kind s_classic_hispeed=pc_data.s_classic_hispeed d_classic_hispeed=pc_data.d_classic_hispeed) lightning_play_data(dpnum=lightning_playdata.dp_num spnum=lightning_playdata.sp_num) - lightning_setting(headphone_vol=lightning_settings.headphone_vol resistance_dp_left=lightning_settings.resistance_dp_left resistance_dp_right=lightning_settings.resistance_dp_right resistance_sp_left=lightning_settings.resistance_sp_left resistance_sp_right=lightning_settings.resistance_sp_right skin_0=settings.premium_skin flg_skin_0=lightning_settings.skin keyboard_kind=lightning_settings.keyboard_kind) + lightning_setting(headphone_vol=lightning_settings.headphone_vol resistance_dp_left=lightning_settings.resistance_dp_left resistance_dp_right=lightning_settings.resistance_dp_right resistance_sp_left=lightning_settings.resistance_sp_left resistance_sp_right=lightning_settings.resistance_sp_right keyboard_kind=lightning_settings.keyboard_kind brightness=lightning_settings.brightness) slider(__type="s32" __count="7") #{lightning_settings.vefx[0]} #{lightning_settings.vefx[1]} #{lightning_settings.vefx[2]} #{lightning_settings.vefx[3]} #{lightning_settings.vefx[4]} #{lightning_settings.vefx[5]} #{lightning_settings.vefx[6]} light(__type="bool" __count="10") #{lightning_settings.light[0]} #{lightning_settings.light[1]} #{lightning_settings.light[2]} #{lightning_settings.light[3]} #{lightning_settings.light[4]} #{lightning_settings.light[5]} #{lightning_settings.light[6]} #{lightning_settings.light[7]} #{lightning_settings.light[8]} #{lightning_settings.light[9]} concentration(__type="bool") #{lightning_settings.concentration} @@ -28,24 +28,31 @@ IIDX31pc(status="0") - 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") -1 -1 -1 -1 -1 -1 -1 + hair(__type="s64" __count="7") -1 -1 -1 -1 -1 -1 -1 + face(__type="s64" __count="7") -1 -1 -1 -1 -1 -1 -1 + body(__type="s64" __count="7") -1 -1 -1 -1 -1 -1 -1 + hand(__type="s64" __count="7") -1 -1 -1 -1 -1 -1 -1 + back(__type="s64" __count="7") -1 -1 -1 -1 -1 -1 -1 grade(sgid=pc_data.sgid dgid=pc_data.dgid) - for (let d of dArray) g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]} - eisei_data + kiwami_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) + 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="s16" __count="20") #{appendsetting} #{settings.note_burst} #{settings.bomb_size} #{settings.turntable} #{settings.judge_font} #{settings.note_skin} #{settings.note_size} #{settings.disable_musicpreview} #{settings.vefx_lock} #{settings.effect} #{settings.menu_music} #{settings.disable_hcn_color} #{settings.first_note_preview} #{settings.lane_cover} #{settings.pacemaker_cover} #{settings.lift_cover} #{settings.note_beam} #{settings.note_beam_size} #{settings.full_combo_splash} 0 - tdjskin(__type="s16" __count="4") ${settings.premium_area} 0 0 0 - qprodata(__type="u32" __count="5") #{settings.qpro_head} #{settings.qpro_hair} #{settings.qpro_face} #{settings.qpro_hand} #{settings.qpro_body} + skin(__type="s32" __count="20") #{appendsetting} #{settings.note_burst} #{settings.bomb_size} #{settings.turntable} #{settings.judge_font} #{settings.note_skin} #{settings.note_size} #{settings.disable_musicpreview} #{settings.vefx_lock} #{settings.effect} #{settings.menu_music} #{settings.disable_hcn_color} #{settings.first_note_preview} #{settings.lane_cover} #{settings.pacemaker_cover} #{settings.lift_cover} #{settings.note_beam} #{settings.note_beam_size} #{settings.full_combo_splash} 0 + tdjskin(__type="s16" __count="4") #{settings.premium_skin} #{settings.premium_bg} 0 0 + qprodata(__type="u32" __count="6") #{settings.qpro_head} #{settings.qpro_hair} #{settings.qpro_face} #{settings.qpro_hand} #{settings.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.pc_data[0] dg=rd.pc_data[1] sa=rd.pc_data[2] da=rd.pc_data[3]) is_robo(__type="bool") rd.is_robo - qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1]) + 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.shop_name) notes_radar(style="0") radar_score(__type="s32" __count="6") #{pc_data.spradar[0]} #{pc_data.spradar[1]} #{pc_data.spradar[2]} #{pc_data.spradar[3]} #{pc_data.spradar[4]} #{pc_data.spradar[5]} @@ -61,31 +68,41 @@ IIDX31pc(status="0") orb_data(present_orb="100" rest_orb="100") qpro_ticket(ticket_num="100" total_ticket_num="100") old_linkage_secret_flg(song_battle="-1" bemani_mixup="-1" ccj_linkage="-1" triple_tribe="-1") - arena_data(play_num="6" play_num_dp="3" play_num_sp="3" prev_best_class_dp="18" prev_best_class_sp="18") - achieve_data(play_style="0" arena_class="0" rating_value="90" 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="0" rating_value="90" 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="200" season_id="0") - skin_customize_flg(skin_frame_flg="2147483647" skin_turntable_flg="2147483647" skin_bomb_flg="2147483647" skin_bgm_flg="2147483647" skin_lane_flg0="2147483647" skin_lane_flg1="2147483647" skin_lane_flg2="2147483647" skin_lane_flg3="2147483647" skin_lane_flg4="2147483647" skin_lane_flg5="2147483647" skin_notes_flg="2147483647" skin_fullcombo_flg="2147483647" skin_keybeam_flg="2147483647" skin_judgestring_flg="2147483647") - tdjskin_customize_flg(skin_submonitor_flg="2147483647") - event_1(event_play_num=pc_data.event_play_num last_select_flyer_id=pc_data.event_last_select_flyer_id) + 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=pc_data.event_play_num last_select_map_id=pc_data.event_last_select_map_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) + 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) - 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} + 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) 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(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 badge badge_data(category_id="0" badge_flg_id="0" badge_flg="0") badge_equip(category_id="0" badge_flg="0" badge_flg_id="0" index="0" slot="0") diff --git a/pug/31pccommon.pug b/pug/31pccommon.pug index 19d9134..afbed49 100644 --- a/pug/31pccommon.pug +++ b/pug/31pccommon.pug @@ -3,8 +3,6 @@ IIDX31pc(status="0" expire="600") kac_clid(__type="s32" __count="5") -1 -1 -1 -1 -1 ir(beat=beat) movie_agreement(version="1") - license - string(__type="str") Asphyxia movie_upload(url=movie_upload) escape_package_info vip_pass_black @@ -17,3 +15,4 @@ IIDX31pc(status="0" expire="600") music_retry display_asio_logo lane_gacha + tourism_booster diff --git a/pug/31systeminfo.pug b/pug/31systeminfo.pug index 6824593..2342848 100644 --- a/pug/31systeminfo.pug +++ b/pug/31systeminfo.pug @@ -1,4 +1,896 @@ IIDX31gameSystem(status="0") + grade_course + play_style(__type="s32") 0 + grade_id(__type="s32") 15 + music_id_0(__type="s32") 25090 + class_id_0(__type="s32") 3 + music_id_1(__type="s32") 23068 + class_id_1(__type="s32") 3 + music_id_2(__type="s32") 19004 + class_id_2(__type="s32") 3 + music_id_3(__type="s32") 29045 + class_id_3(__type="s32") 3 + is_valid(__type="bool") 1 + index(__type="s32") 0 + cube_num(__type="s32") 0 + kind(__type="s32") 0 + grade_course + play_style(__type="s32") 0 + grade_id(__type="s32") 16 + music_id_0(__type="s32") 23005 + class_id_0(__type="s32") 3 + music_id_1(__type="s32") 27078 + class_id_1(__type="s32") 3 + music_id_2(__type="s32") 22065 + class_id_2(__type="s32") 3 + music_id_3(__type="s32") 27060 + class_id_3(__type="s32") 3 + is_valid(__type="bool") 1 + index(__type="s32") 1 + cube_num(__type="s32") 0 + kind(__type="s32") 0 + grade_course + play_style(__type="s32") 0 + grade_id(__type="s32") 17 + music_id_0(__type="s32") 29007 + class_id_0(__type="s32") 3 + music_id_1(__type="s32") 26108 + class_id_1(__type="s32") 3 + music_id_2(__type="s32") 19002 + class_id_2(__type="s32") 3 + music_id_3(__type="s32") 18004 + class_id_3(__type="s32") 3 + is_valid(__type="bool") 1 + index(__type="s32") 2 + cube_num(__type="s32") 0 + kind(__type="s32") 0 + grade_course + play_style(__type="s32") 0 + grade_id(__type="s32") 18 + music_id_0(__type="s32") 25007 + class_id_0(__type="s32") 3 + music_id_1(__type="s32") 18032 + class_id_1(__type="s32") 3 + music_id_2(__type="s32") 16020 + class_id_2(__type="s32") 3 + music_id_3(__type="s32") 12004 + class_id_3(__type="s32") 3 + is_valid(__type="bool") 1 + index(__type="s32") 3 + cube_num(__type="s32") 0 + kind(__type="s32") 0 + grade_course + play_style(__type="s32") 1 + grade_id(__type="s32") 15 + music_id_0(__type="s32") 15032 + class_id_0(__type="s32") 3 + music_id_1(__type="s32") 29033 + class_id_1(__type="s32") 3 + music_id_2(__type="s32") 27092 + class_id_2(__type="s32") 3 + music_id_3(__type="s32") 30020 + class_id_3(__type="s32") 3 + is_valid(__type="bool") 1 + index(__type="s32") 4 + cube_num(__type="s32") 0 + kind(__type="s32") 0 + grade_course + play_style(__type="s32") 1 + grade_id(__type="s32") 16 + music_id_0(__type="s32") 10028 + class_id_0(__type="s32") 3 + music_id_1(__type="s32") 26070 + class_id_1(__type="s32") 3 + music_id_2(__type="s32") 28091 + class_id_2(__type="s32") 3 + music_id_3(__type="s32") 23075 + class_id_3(__type="s32") 3 + is_valid(__type="bool") 1 + index(__type="s32") 5 + cube_num(__type="s32") 0 + kind(__type="s32") 0 + grade_course + play_style(__type="s32") 1 + grade_id(__type="s32") 17 + music_id_0(__type="s32") 26012 + class_id_0(__type="s32") 3 + music_id_1(__type="s32") 28002 + class_id_1(__type="s32") 3 + music_id_2(__type="s32") 17017 + class_id_2(__type="s32") 3 + music_id_3(__type="s32") 28005 + class_id_3(__type="s32") 3 + is_valid(__type="bool") 1 + index(__type="s32") 6 + cube_num(__type="s32") 0 + kind(__type="s32") 0 + grade_course + play_style(__type="s32") 1 + grade_id(__type="s32") 18 + music_id_0(__type="s32") 28008 + class_id_0(__type="s32") 3 + music_id_1(__type="s32") 15001 + class_id_1(__type="s32") 3 + music_id_2(__type="s32") 19002 + class_id_2(__type="s32") 3 + music_id_3(__type="s32") 09028 + class_id_3(__type="s32") 3 + is_valid(__type="bool") 1 + index(__type="s32") 7 + cube_num(__type="s32") 0 + kind(__type="s32") 0 + arena_schedule + phase(__type="u8") 2 + rule_type(__type="u8") 0 + 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=boss) + Event1Phase(val=event_1) + Event1Value(val=event_1_internal) + ExtraBossEventPhase(val=extra_boss) isNewSongAnother12OpenFlg(val="1") - OldBPLBattleOpenPhase(val="1") + isKiwamiOpenFlg(val="1") + WorldTourismOpenList(val="-1") + OldBPLBattleOpenPhase(val="2") + UnlockLeggendaria(val="1") + Event1AllPlayerTotalGetMetron(val="0") diff --git a/util.ts b/util.ts index c9b5f14..1b90816 100644 --- a/util.ts +++ b/util.ts @@ -8,25 +8,25 @@ export function IDToCode(id: number) { } export function base64decode(s: string) { - const base64list = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - let t = "", - p = -8, + const base64list = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + let p = -8, a = 0, c: number, - d: number; + d: number, + buffer: number[] = []; 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); + if (c !== 64) buffer.push(d); a &= 63; p -= 8; } } - return t; + + return buffer; } export function GetVersion(info: EamuseInfo) { @@ -115,8 +115,16 @@ export function DateToName(now: number, score_time: number) { } } -export function buffToHex(buff) { - return Buffer.from(buff).toString("hex"); +export function buffToHex(buff: number[]) { + let hexString = ""; + for (let i = 0; i < buff.length; i++) { + const hex = buff[i].toString(16); + const paddedHex = hex.length % 2 ? "0" + hex : hex; + + hexString += paddedHex; + } + + return hexString; } export function randomIntRange(min, max) { @@ -158,9 +166,10 @@ export async function refidToQpro(refid: string) { setting.qpro_face, setting.qpro_body, setting.qpro_hand, + setting.qpro_back, ]; } catch { - qpro_data = [0, 0, 0, 0, 0]; + qpro_data = [0, 0, 0, 0, 0, 0]; } return qpro_data; diff --git a/webui/profile_settings.pug b/webui/profile_settings.pug index f9149cc..71104f8 100644 --- a/webui/profile_settings.pug +++ b/webui/profile_settings.pug @@ -1,6 +1,7 @@ //DATA// profile: DB.FindOne(refid, { collection: "profile" }) setting: DB.FindOne(refid, { collection: "settings" }) + lightning_settings: DB.FindOne(refid, { collection: "lightning_settings" }) // TODO(FIXME): Well, This is too hardcoded. - @@ -36,7 +37,8 @@ "HEROIC VERSE", "BISTROVERボム", "いいねフラッシュ", - "RESIDENT" + "RESIDENT", + "EPOLIS", ]; const turntable_list = [ @@ -83,6 +85,7 @@ "BPLS2 レジャーランド", "RESIDENT", "BEMANI PRO LEAGUE SEASON 3", + "EPOLIS", ]; const lanecover_list = [ @@ -372,6 +375,29 @@ "BPLS3 TAITO STATION Tradz", "BPLS3 ROUND1", "BPLS3 レジャーランド", + "Beyond Evolution", + "AWA AWA", + "BIGWAVERS", + "ONE AND ONLY", + "■□模様", + "ちょえちょえまぎか", + "栄冠のカンパネラ", + "Xerulean", + "STRAIGHT TO THE STARS", + "JUSTICE/GUILTY", + "EPOLIS UI", + "Dahlia", + "シンデレラ", + "れとりば!", + "夢縁", + "SOLAR ECLIPSE", + "Ghost Pulse", + "Iris", + "Get Higher", + "アタシ完全絶対正義ちゃん!", + "dj CELICA (IIDX31)", + "dj SHEM (IIDX31)", + "dj AMETO (IIDX30)", ]; const notes_list = [ @@ -410,6 +436,7 @@ "BISTROVER SLASH", "CastHour", "RESIDENT", + "EPOLIS", ]; const keybeam_list = [ @@ -425,6 +452,7 @@ "BISTROVER BURNER", "フレネルビーム", "RESIDENT", + "EPOLIS", ]; const judge_list = [ @@ -446,6 +474,7 @@ "BISTROVER JUDGE", "CastHour", "RESIDENT", + "EPOLIS", ]; const premium_skin_list = [ @@ -462,6 +491,25 @@ "BPLS3 レジャーランド", ]; + const premium_bg_list = [ + "デフォルト", + "EPOLIS", + "エポリスシティへようこそ!", + "Ghost Pulse", + "Glitch N Ride", + "JUSTICE/GUILTY", + "シンデレラ", + "Iris", + "SOLAR ECLIPSE", + "TECHNOPHOBIA", + "CUE CUE RESCUE", + "STRAIGHT TO THE STARS", + "AWA AWA", + "ちょえちょえまぎか", + "ONE AND ONLY", + "クプロがたくさん", + ] + const effect_list = [ "OFF", "ECHO / REVERB", @@ -483,15 +531,15 @@ const notesize_list = [ "通常", - "極細", "細", + "極細", "太", ]; const notebeamsize_list = [ "通常", - "ベリーショート", "ショート", + "ベリーショート", "ロング", ]; @@ -505,6 +553,13 @@ "デフォルト" ]; + const premiumbg_bright_list = [ + "暗い", + "やや暗い", + "やや明るい", + "明るい", + ]; + div .card .card-header @@ -544,12 +599,26 @@ div each i in category_vox_list option(selected=(i==category_vox_list[setting.category_vox])) #{i} .field - label.label Premium Skin + label.label Premium Area Skin .control .select select(name="premium_skin") each i in premium_skin_list option(selected=(i==premium_skin_list[setting.premium_skin])) #{i} + .field + label.label Premium Area Background + .control + .select + select(name="premium_bg") + each i in premium_bg_list + option(selected=(i==premium_bg_list[setting.premium_skin])) #{i} + .field + label.label Premium Area Background Brightness + .control + .select + select(name="premium_bg_brightness") + each i in premiumbg_bright_list + option(selected=(i==premiumbg_bright_list[lightning_settings.brightness])) #{i} .field label.label Note Burst .control @@ -756,6 +825,10 @@ div label.label QPRO Body .control input.input(type="number" name="qpro_body", value=setting.qpro_body) + .field + label.label QPRO Back + .control + input.input(type="number" name="qpro_back", value=setting.qpro_back) .field label.label Random Lane Ticket .control