mirror of
https://github.com/asphyxia-core/plugins.git
synced 2026-09-22 22:27:56 +03:00
Merge pull request #94 from duel0213/iidx
IIDX: Added Initial support for Sparkle Shower, DistorteD ~ 9th Style
This commit is contained in:
+36
-3
@@ -1,10 +1,15 @@
|
||||
# beatmaniaIIDX
|
||||
|
||||
Plugin Version: **v0.1.17**
|
||||
Plugin Version: **v0.1.18**
|
||||
|
||||
---
|
||||
|
||||
Supported Versions
|
||||
- beatmaniaIIDX 9th Style (JAH)
|
||||
- beatmaniaIIDX 10th Style (JAE)
|
||||
- beatmaniaIIDX 11 IIDXRED (JAB)
|
||||
- beatmaniaIIDX 12 HAPPY SKY (JAC)
|
||||
- beatmaniaIIDX 13 DistorteD (JAC)
|
||||
- beatmaniaIIDX 14 GOLD (2007072301)
|
||||
- beatmaniaIIDX 15 DJ TROOPERS (2008031100)
|
||||
- beatmaniaIIDX 16 EMPRESS (2009072200)
|
||||
@@ -24,6 +29,7 @@ Supported Versions
|
||||
- beatmaniaIIDX 30 RESIDENT (2023090500)
|
||||
- beatmaniaIIDX 31 EPOLIS (2024082600)
|
||||
- beatmaniaIIDX 32 Pinky Crush (2025082500)
|
||||
- beatmaniaIIDX 33 Sparkle Shower (2026081900)
|
||||
|
||||
---
|
||||
|
||||
@@ -40,12 +46,15 @@ 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
|
||||
- DJ LEVEL folders are broken before EMPRESS 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)
|
||||
- DOUBLE PLAY or two persons play may not work properly (can't test this due to skill issue)
|
||||
- New card cannot be registered before DistorteD (this is due to those games uses magnetic card)
|
||||
- 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)
|
||||
- Some of badges aren't saving in RESIDENT and above (needs to figure out name to id)
|
||||
- Some of records may have invalid MISS COUNT
|
||||
|
||||
---
|
||||
|
||||
@@ -168,3 +177,27 @@ Changelogs
|
||||
|
||||
**v0.1.17**
|
||||
- Added Initial support for Pinky Crush
|
||||
- Fixed where note\_size, lift\_cover, note\_beam\_size doesn't get saved in WebUI (EPOLIS ~)
|
||||
- Fixed STEP UP related issues
|
||||
- Unable to use STEP UP ticket
|
||||
- HARD / EX HARD folder display low level charts regardless player skill
|
||||
- Fixed HEROIC VERSE issues
|
||||
- Unable to complete registration
|
||||
- Crash after Event room choose
|
||||
- Fixed where unable to complete registration or login (tricoro)
|
||||
|
||||
**v0.1.18**
|
||||
- Added Initial support for Sparkle Shower
|
||||
- Added Initial support for DistorteD, HAPPY SKY, IIDXRED, 10th Style, 9th Style
|
||||
- Requires updated version of asphyxia-core otherwise plugin won't register [v1.70b]
|
||||
- Migration from (previous version) menu will not work
|
||||
- Existing card with no current version user data will treat as new card on registration but it will use existing profile data
|
||||
- New card cannot be registered (~ HAPPY SKY)
|
||||
- Need to invoke new card registration to core.
|
||||
- 9th Style will use seperate user data database as its using raw blob
|
||||
- Added ALL/STORE/RIVAL TOP pacemaker support
|
||||
- Added basic save support of STORY mode (Resort Anthem)
|
||||
- Fixed where tricoro does not work after Asphyxia Core update
|
||||
- Fixed where unable to login after playing a while on old versions
|
||||
- Improved WebUI customization settings with descriptive dropdown menus (@COLV9)
|
||||
- Improved WebUI score viewer with song title mapping, detailed difficulty breakdown and sorting (@COLV9)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -90,5 +90,51 @@
|
||||
"kind": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"33": {
|
||||
"0": {
|
||||
"15": {
|
||||
"music_id": [ 30068, 24057, 27033, 29045 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"16": {
|
||||
"music_id": [ 14029, 18001, 16003, 27060 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"17": {
|
||||
"music_id": [ 27000, 25004, 28084, 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": [ 30032, 26049, 19038, 16016 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"16": {
|
||||
"music_id": [ 21073, 14021, 29049, 25017 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"17": {
|
||||
"music_id": [ 31059, 17017, 24014, 28005 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"18": {
|
||||
"music_id": [ 25007, 29017, 19002, 9028 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"33": {
|
||||
"26069": { "kind": 0 },
|
||||
"24026": { "kind": 0 },
|
||||
"8023": { "kind": 0 },
|
||||
"28050": { "kind": 0 },
|
||||
"30029": { "kind": 0 },
|
||||
"31049": { "kind": 0 },
|
||||
"15025": { "kind": 0 },
|
||||
"20064": { "kind": 0 },
|
||||
"18008": { "kind": 0 },
|
||||
"30100": { "kind": 0 },
|
||||
"33058": { "kind": 0 },
|
||||
"12012": { "kind": 0 },
|
||||
"24009": { "kind": 0 },
|
||||
"23087": { "kind": 0 },
|
||||
"28039": { "kind": 0 },
|
||||
"26055": { "kind": 0 },
|
||||
"25006": { "kind": 0 },
|
||||
"22016": { "kind": 0 },
|
||||
"27075": { "kind": 0 },
|
||||
"18006": { "kind": 0 },
|
||||
"17058": { "kind": 0 },
|
||||
"31050": { "kind": 0 },
|
||||
"20082": { "kind": 0 },
|
||||
"32084": { "kind": 0 },
|
||||
"32110": { "kind": 0 },
|
||||
"32081": { "kind": 0 },
|
||||
"31025": { "kind": 0 },
|
||||
"32085": { "kind": 0 },
|
||||
"33001": { "kind": 0 }
|
||||
}
|
||||
}
|
||||
@@ -1,82 +1,105 @@
|
||||
{
|
||||
"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 }
|
||||
},
|
||||
"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 }
|
||||
}
|
||||
}
|
||||
{
|
||||
"24": {
|
||||
"24061": { "kind": 0 }
|
||||
},
|
||||
"26": {
|
||||
"26002": { "kind": 0 },
|
||||
"26006": { "kind": 0 },
|
||||
"26022": { "kind": 0 },
|
||||
"26045": { "kind": 0 }
|
||||
},
|
||||
"27": {
|
||||
"27071": { "kind": 0 },
|
||||
"27073": { "kind": 0 }
|
||||
},
|
||||
"28": {
|
||||
"28001": { "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 },
|
||||
"31023": { "kind": 0 },
|
||||
"31024": { "kind": 0 },
|
||||
"31025": { "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 }
|
||||
},
|
||||
"32": {
|
||||
"32019": { "kind": 0 },
|
||||
"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 },
|
||||
"32101": { "kind": 0 },
|
||||
"32102": { "kind": 0 },
|
||||
"32103": { "kind": 0 },
|
||||
"32104": { "kind": 0 },
|
||||
"32110": { "kind": 0 },
|
||||
"32111": { "kind": 0 }
|
||||
},
|
||||
"33": {
|
||||
"33001": { "kind": 0 },
|
||||
"33007": { "kind": 0 },
|
||||
"33049": { "kind": 0 },
|
||||
"33078": { "kind": 0 },
|
||||
"33081": { "kind": 0 },
|
||||
"33082": { "kind": 0 },
|
||||
"33083": { "kind": 0 },
|
||||
"33084": { "kind": 0 },
|
||||
"33085": { "kind": 0 },
|
||||
"33095": { "kind": 0 },
|
||||
"33096": { "kind": 0 },
|
||||
"33105": { "kind": 0 },
|
||||
"33106": { "kind": 0 },
|
||||
"33115": { "kind": 0 },
|
||||
"33116": { "kind": 0 },
|
||||
"33117": { "kind": 0 },
|
||||
"33118": { "kind": 0 },
|
||||
"33119": { "kind": 0 },
|
||||
"33120": { "kind": 0 },
|
||||
"33121": { "kind": 0 },
|
||||
"33129": { "kind": 0 },
|
||||
"33130": { "kind": 0 },
|
||||
"33131": { "kind": 0 },
|
||||
"33132": { "kind": 0 },
|
||||
"33133": { "kind": 0 }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,51 @@ export const gssysteminfo: EPR = async (info, data, send) => {
|
||||
arena_cpu_define: [],
|
||||
}
|
||||
|
||||
switch (version) {
|
||||
case 33:
|
||||
case 32:
|
||||
result.arena_schedule.phase = K.ITEM("u8", 3);
|
||||
result.arena_schedule = Object.assign(result.arena_schedule, { season: K.ITEM("u8", 0) }); // arena season for online //
|
||||
|
||||
case 31:
|
||||
result.arena_schedule = Object.assign(result.arena_schedule, { rule_type: K.ITEM("u8", 0) }); // arena rule for online //
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
for (let s = 0; s < 2; ++s) {
|
||||
for (let c = 0; c < 20; ++c) {
|
||||
// arena_music_difficult //
|
||||
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),
|
||||
});
|
||||
|
||||
// arena_cpu_define //
|
||||
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]),
|
||||
});
|
||||
|
||||
// maching_class_range //
|
||||
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),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 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])) {
|
||||
@@ -33,75 +78,53 @@ export const gssysteminfo: EPR = async (info, data, send) => {
|
||||
});
|
||||
}
|
||||
|
||||
switch (version) {
|
||||
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 //
|
||||
|
||||
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"));
|
||||
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", 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]),
|
||||
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),
|
||||
});
|
||||
if (version >= 31) {
|
||||
result = Object.assign(result, { grade_course: [] });
|
||||
let grade = JSON.parse(await IO.ReadFile("data/grade.json", "utf-8")); // following datas are made up needs to figure out correct way to do it //
|
||||
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", 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]),
|
||||
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 //
|
||||
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]),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// following datas are made up needs to figure out correct way to do it //
|
||||
if (version >= 33) {
|
||||
let legg_open = JSON.parse(await IO.ReadFile("data/legg_open.json", "utf-8"));
|
||||
if (!_.isNil(legg_open[version])) {
|
||||
result = Object.assign(result, { leggendaria_open: [] });
|
||||
|
||||
Object.keys(legg_open).forEach(v => {
|
||||
Object.keys(legg_open[v]).forEach(m => {
|
||||
if (Number(v) > version) return;
|
||||
|
||||
result.leggendaria_open.push({
|
||||
music_id: K.ITEM("s32", Number(m)),
|
||||
kind: K.ITEM("s32", legg_open[v][m].kind),
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
let eventData = null;
|
||||
switch (version) {
|
||||
case 29:
|
||||
result = Object.assign(result, {
|
||||
@@ -129,7 +152,7 @@ export const gssysteminfo: EPR = async (info, data, send) => {
|
||||
break;
|
||||
case 31:
|
||||
let totalMetron = 0;
|
||||
let eventData = await DB.Find(null, {
|
||||
eventData = await DB.Find(null, {
|
||||
collection: "event_1",
|
||||
version: version,
|
||||
event_data: "myepo_map",
|
||||
@@ -158,14 +181,57 @@ export const gssysteminfo: EPR = async (info, data, send) => {
|
||||
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 //
|
||||
Event1Value: K.ATTR({ val: String(U.GetConfig("pc_event")) }),
|
||||
Event1Phase: K.ATTR({ val: String(U.GetConfig("pc_event1")) }),
|
||||
Event2Phase: K.ATTR({ val: String(U.GetConfig("pc_event2")) }),
|
||||
ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("pc_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) }),
|
||||
OldBPLBattleOpenPhase: K.ATTR({ val: String(3) }),
|
||||
BPLBattleOpenPhase: K.ATTR({ val: String(2) }),
|
||||
});
|
||||
break;
|
||||
case 33:
|
||||
let totalScorePoint = 0, totalMissPoint = 0;
|
||||
let extra_boss = await DB.Find(null, {
|
||||
collection: "extra_boss",
|
||||
version: version,
|
||||
});
|
||||
|
||||
if (!_.isNil(extra_boss)) {
|
||||
extra_boss.forEach((res: any) => {
|
||||
totalScorePoint += Number(res.progress_point_score);
|
||||
totalMissPoint += Number(res.progress_point_miss);
|
||||
});
|
||||
}
|
||||
|
||||
result = Object.assign(result, {
|
||||
Event1Phase: K.ATTR({ val: String(U.GetConfig("ss_event1")) }),
|
||||
ExtraBossEvent: K.ATTR({ val: String(U.GetConfig("ss_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) }),
|
||||
VocaloidEvent: K.ATTR({ val: String(U.GetConfig("ss_cyber")) }),
|
||||
KrankAppendSeason: K.ATTR({ val: String(0) }),
|
||||
the4thEvent: K.ATTR({ val: String(1)} ),
|
||||
beat: K.ATTR({ val: String(5293) }), // It wasn't. TODO:: Figure out what this value does //
|
||||
extraevent_2: {
|
||||
"@attr": {
|
||||
all_point_score: String(totalScorePoint),
|
||||
all_point_miss: String(totalMissPoint),
|
||||
season: String(Number(U.GetConfig("ss_extraboss_season"))),
|
||||
},
|
||||
/* up to 32 entries
|
||||
info: K.ATTR({
|
||||
gauge_level: String(),
|
||||
class_id: String(),
|
||||
score_extra: String(),
|
||||
miss_extra: String(),
|
||||
score_onemore: String(),
|
||||
miss_onemore: String()
|
||||
}),*/
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
||||
|
||||
@@ -1,18 +1,37 @@
|
||||
import { pcdata } from "../models/pcdata";
|
||||
import { grade } from "../models/grade";
|
||||
import { IDtoRef, GetVersion } from "../util";
|
||||
import { IDtoRef, GetVersion, GetModel, GetCommand } from "../util";
|
||||
import { eisei_grade } from "../models/lightning";
|
||||
import { badge } from "../models/badge";
|
||||
|
||||
export const grademethod: EPR = async (info, data, send) => {
|
||||
const command = GetCommand(data);
|
||||
switch (command[0]) {
|
||||
case "raised":
|
||||
return await graderaised(info, data, send);
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return send.deny({ format: false, header: false });
|
||||
}
|
||||
|
||||
export const graderaised: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
const iidxid = Number($(data).attr().iidxid);
|
||||
const refid = await IDtoRef(iidxid);
|
||||
const gid = Number($(data).attr().gid);
|
||||
const gtype = Number($(data).attr().gtype);
|
||||
const command = GetCommand(data);
|
||||
|
||||
let cflg = Number($(data).attr().cflg);
|
||||
let achi = Number($(data).attr().achi);
|
||||
let refid = null;
|
||||
if (version < 11) refid = command[1].split('|')[0];
|
||||
else if (version < 13) refid = await IDtoRef(Number(command[1]));
|
||||
else refid = await IDtoRef(Number($(data).attr().iidxid));
|
||||
|
||||
const gid = version < 13 ? Number(command[3]) : Number($(data).attr().gid);
|
||||
const gtype = version < 13 ? Number(command[2]) : Number($(data).attr().gtype);
|
||||
|
||||
let cflg = version < 13 ? Number(command[4]) : Number($(data).attr().cflg);
|
||||
if (version >= 23) cflg = Number($(data).attr().cstage);
|
||||
let achi = version < 13 ? Number(command[5]) : Number($(data).attr().achi);
|
||||
|
||||
let pcdata = await DB.FindOne<pcdata>(refid, { collection: "pcdata", version: version });
|
||||
let grade = await DB.FindOne<grade>(refid, {
|
||||
@@ -22,8 +41,6 @@ export const graderaised: EPR = async (info, data, send) => {
|
||||
gradeId: gid,
|
||||
});
|
||||
|
||||
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")));
|
||||
if (isTDJ && hasEiseiData) {
|
||||
@@ -62,6 +79,7 @@ export const graderaised: EPR = async (info, data, send) => {
|
||||
break;
|
||||
case 31:
|
||||
case 32:
|
||||
case 33:
|
||||
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);
|
||||
@@ -118,13 +136,20 @@ export const graderaised: EPR = async (info, data, send) => {
|
||||
|
||||
let updatePcdata = false;
|
||||
let updateGrade = false;
|
||||
if (_.isNil(pcdata)) return send.deny();
|
||||
if (version > 9) {
|
||||
if (version < 23) {
|
||||
if (gtype == 0 && cflg == 4) updatePcdata = true;
|
||||
else if (gtype == 1 && cflg == 3) updatePcdata = true;
|
||||
} else {
|
||||
if (cflg == 4) updatePcdata = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (version > 9 && _.isNil(pcdata)) return send.deny();
|
||||
if (_.isNil(grade)) {
|
||||
if (cflg == 4) {
|
||||
if (updatePcdata) {
|
||||
if (gtype == 0) pcdata.sgid = Math.max(gid, pcdata.sgid);
|
||||
else pcdata.dgid = Math.max(gid, pcdata.dgid);
|
||||
|
||||
updatePcdata = true;
|
||||
}
|
||||
|
||||
updateGrade = true;
|
||||
@@ -136,11 +161,9 @@ export const graderaised: EPR = async (info, data, send) => {
|
||||
updateGrade = true;
|
||||
}
|
||||
|
||||
if (cflg == 4) {
|
||||
if (updatePcdata) {
|
||||
if (gtype == 0) pcdata.sgid = Math.max(gid, pcdata.sgid);
|
||||
else pcdata.dgid = Math.max(gid, pcdata.dgid);
|
||||
|
||||
updatePcdata = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -192,17 +215,31 @@ export const graderaised: EPR = async (info, data, send) => {
|
||||
);
|
||||
}
|
||||
|
||||
const maxStage = version < 23 ? (gtype == 0 ? 4 : 3) : 4;
|
||||
let gradeUser = await DB.Find<grade>(null, {
|
||||
collection: "grade",
|
||||
version: version,
|
||||
style: gtype,
|
||||
gradeId: gid,
|
||||
maxStage: 4,
|
||||
maxStage,
|
||||
});
|
||||
|
||||
return send.object(
|
||||
K.ATTR({
|
||||
let result = {
|
||||
"@attr": {
|
||||
pnum: String(gradeUser.length),
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
let sendOption: EamuseSendOption = {};
|
||||
if (version < 14) {
|
||||
result["@attr"]["method"] = "graderaised";
|
||||
sendOption = {
|
||||
rootName: GetModel(info),
|
||||
status: version < 13 ? "SOK" : 0,
|
||||
format: false,
|
||||
header: false,
|
||||
}
|
||||
}
|
||||
|
||||
return send.object(result, sendOption);
|
||||
};
|
||||
|
||||
+526
-140
@@ -1,15 +1,48 @@
|
||||
import { IDtoRef, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide, ReftoQPRO, NumArrayToString, OldMidToVerMid, GetWeekId } from "../util";
|
||||
import { IDtoRef, GetVersion, OldMidToNewMid, NewMidToOldMid, ReftoProfile, ReftoPcdata, ClidToPlaySide, ReftoQPRO, NumArrayToString, OldMidToVerMid, GetModel, GetCommand, NumArrayToHex } 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";
|
||||
import { djtraining } from "../models/djtraining";
|
||||
import { rival } from "../models/rival";
|
||||
|
||||
export const musicmethod: EPR = async (info, data, send) => {
|
||||
const command = GetCommand(data);
|
||||
switch (command[0]) {
|
||||
case "getrank":
|
||||
return await musicgetrank(info, data, send);
|
||||
case "getralive":
|
||||
return await musicgetralive(info, data, send);
|
||||
case "appoint":
|
||||
return await musicappoint(info, data, send);
|
||||
case "reg":
|
||||
return await musicreg(info, data, send);
|
||||
case "crate":
|
||||
return await musiccrate(info, data, send);
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return send.deny({ format: false, header: false });
|
||||
}
|
||||
|
||||
export const musicgetrank: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
const refid = await IDtoRef(Number($(data).attr().iidxid));
|
||||
const cltype = Number($(data).attr().cltype); // 0 -> SP, 1 -> DP //
|
||||
const command = GetCommand(data);
|
||||
|
||||
let refid = null;
|
||||
if (version < 11) refid = command[1].split('|')[0];
|
||||
else if (version < 13) refid = await IDtoRef(Number(command[1]));
|
||||
else refid = await IDtoRef(Number($(data).attr().iidxid));
|
||||
|
||||
let cltype = null;
|
||||
if (version < 11) cltype = Number(command[2]) == 120 ? 0 : 1;
|
||||
else if (version < 13) cltype = Number(command[2]); // 0 -> SP, 1 -> DP //
|
||||
else cltype = Number($(data).attr().cltype);
|
||||
|
||||
const music_data: any = (
|
||||
await DB.Find(refid, {
|
||||
collection: "score",
|
||||
@@ -24,14 +57,25 @@ export const musicgetrank: EPR = async (info, data, send) => {
|
||||
[Number($(data).attr().iidxid4), await IDtoRef(Number($(data).attr().iidxid4))],
|
||||
];
|
||||
|
||||
let result = null;
|
||||
let m = [], top = [], b = [], t = [];
|
||||
let score_data: number[];
|
||||
let indices, temp_mid = 0;
|
||||
if (version == 14 || version == 15) {
|
||||
let result = {
|
||||
let indices, mapValue, temp_mid = 0;
|
||||
let arrayType = version < 33 ? "s16" as const : "s32" as const;
|
||||
if (version < 16) {
|
||||
result = {
|
||||
r: [], // v - (-1, beginner/-2, tutorial) //
|
||||
};
|
||||
indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8];
|
||||
|
||||
if (version < 12) {
|
||||
indices = cltype === 0 ? [2, 1, 3] : [7, 6, 8];
|
||||
mapValue = (x => indices.indexOf(x) + (cltype === 0 ? 0 : 3));
|
||||
} else {
|
||||
indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8];
|
||||
mapValue = (x => x > 3 ? x - 3 : x - 1);
|
||||
}
|
||||
|
||||
const musicData: Record<string, string> = {};
|
||||
music_data.forEach((res: score) => {
|
||||
if (_.isNil(res.cArray)) throw new Error("[music.getrank] There is unsupported entry in Database");
|
||||
|
||||
@@ -43,23 +87,52 @@ export const musicgetrank: EPR = async (info, data, send) => {
|
||||
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]];
|
||||
if (version < 10) {
|
||||
const data = NumArrayToHex([11, 3, 1, 1], [temp_mid, rank_id, res.cArray[indices[a]] > 1 ? 1 : 0, 0]);
|
||||
if (mapValue(indices[a]) in musicData) {
|
||||
musicData[mapValue(indices[a])] += data;
|
||||
} else {
|
||||
musicData[mapValue(indices[a])] = data;
|
||||
}
|
||||
}
|
||||
else if (version < 12) {
|
||||
const data = NumArrayToString(version < 11 ? [11, 3, 2, 14] : [11, 3, 3, 13], [temp_mid, res.cArray[indices[a]], rank_id, res.esArray[indices[a]]]);
|
||||
if (mapValue(indices[a]) in musicData) {
|
||||
musicData[mapValue(indices[a])] += data;
|
||||
} else {
|
||||
musicData[mapValue(indices[a])] = data;
|
||||
}
|
||||
} else {
|
||||
const data = NumArrayToString([7, 4, 13, 3, 3], [verMid[1], a, res.esArray[indices[a]], rank_id, res.cArray[indices[a]]]);
|
||||
if (verMid[0] in musicData) {
|
||||
musicData[verMid[0]] += data;
|
||||
} else {
|
||||
musicData[verMid[0]] = data;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
result.r.push(
|
||||
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]) })
|
||||
if (version < 12) {
|
||||
result.r = Object.entries(musicData).map(([clid, packed]) =>
|
||||
K.ITEM("str", packed, { cl: String(clid) }),
|
||||
);
|
||||
}
|
||||
else {
|
||||
result.r = Object.entries(musicData).map(([version, packed]) =>
|
||||
K.ITEM("str", packed, { v: String(version) }),
|
||||
);
|
||||
}
|
||||
|
||||
// BEGINNER //
|
||||
if (res.cArray[0] == 0) return;
|
||||
result.r.push(
|
||||
K.ITEM("str", NumArrayToString(
|
||||
[12, 6],
|
||||
[temp_mid, res.cArray[0]]
|
||||
), { v: String("-1") })
|
||||
);
|
||||
if (version > 12) {
|
||||
if (res.cArray[0] == 0) return;
|
||||
result.r.push(
|
||||
K.ITEM("str", NumArrayToString(
|
||||
[12, 6],
|
||||
[temp_mid, res.cArray[0]]
|
||||
), { v: String("-1") })
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
// TUTORIAL //
|
||||
@@ -77,7 +150,22 @@ export const musicgetrank: EPR = async (info, data, send) => {
|
||||
);
|
||||
});
|
||||
|
||||
return send.object(result);
|
||||
let sendOption: EamuseSendOption = {};
|
||||
if (version < 14) {
|
||||
result = Object.assign(result, {
|
||||
"@attr": {
|
||||
method: "musicgetrank"
|
||||
}
|
||||
})
|
||||
sendOption = {
|
||||
rootName: GetModel(info),
|
||||
status: version < 13 ? "SOK" : 0,
|
||||
format: false,
|
||||
header: false,
|
||||
}
|
||||
}
|
||||
|
||||
return send.object(result, sendOption);
|
||||
}
|
||||
else if (version < 20) {
|
||||
indices = cltype === 0 ? [1, 2, 3] : [6, 7, 8];
|
||||
@@ -90,16 +178,16 @@ export const musicgetrank: EPR = async (info, data, send) => {
|
||||
|
||||
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(arrayType, score_data));
|
||||
|
||||
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++) {
|
||||
if (_.isNaN(rival_refids[i][0])) continue;
|
||||
for (let i = 0; i < 5; i++) {
|
||||
if (_.isNaN(rival_refids[i][0]) || _.isNil(rival_refids[i][0])) continue;
|
||||
|
||||
const rival_score = await DB.Find<score>(String(rival_refids[i][1]),
|
||||
{ collection: "score", }
|
||||
{ collection: "score" }
|
||||
);
|
||||
|
||||
rival_score.forEach((res: score) => {
|
||||
@@ -109,8 +197,7 @@ export const musicgetrank: EPR = async (info, data, send) => {
|
||||
|
||||
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));
|
||||
m.push(K.ARRAY(arrayType, score_data));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -131,17 +218,19 @@ export const musicgetrank: EPR = async (info, data, send) => {
|
||||
music_data.forEach((res: score) => {
|
||||
if (_.isNil(res.cArray)) throw new Error("[music.getrank] There is unsupported entry in Database");
|
||||
|
||||
if (res.mid < 0) return; // HOW //
|
||||
|
||||
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(arrayType, score_data));
|
||||
|
||||
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++) {
|
||||
if (_.isNaN(rival_refids[i][0])) continue;
|
||||
for (let i = 0; i < 5; i++) {
|
||||
if (_.isNaN(rival_refids[i][0]) || _.isNil(rival_refids[i][0])) continue;
|
||||
|
||||
const rival_score = await DB.Find<score>(String(rival_refids[i][1]),
|
||||
{ collection: "score", }
|
||||
@@ -152,8 +241,7 @@ export const musicgetrank: EPR = async (info, data, send) => {
|
||||
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));
|
||||
m.push(K.ARRAY(arrayType, score_data));
|
||||
});
|
||||
}
|
||||
|
||||
@@ -165,6 +253,8 @@ export const musicgetrank: EPR = async (info, data, send) => {
|
||||
if (score_top.length > 0) {
|
||||
if (version >= 27) {
|
||||
score_top.forEach((res) => {
|
||||
if (res.mid < 0) return;
|
||||
|
||||
let mVersion = Math.floor(res.mid / 1000);
|
||||
if (mVersion > version) return;
|
||||
|
||||
@@ -176,7 +266,7 @@ export const musicgetrank: EPR = async (info, data, send) => {
|
||||
name3: res.names[3],
|
||||
name4: res.names[4],
|
||||
}),
|
||||
detail: K.ARRAY("s16", [res.mid, ...res.clflgs, ...res.scores])
|
||||
detail: K.ARRAY(arrayType, [res.mid, ...res.clflgs, ...res.scores])
|
||||
});
|
||||
});
|
||||
} else {
|
||||
@@ -190,7 +280,7 @@ export const musicgetrank: EPR = async (info, data, send) => {
|
||||
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])])
|
||||
detail: K.ARRAY(arrayType, [res.mid, ...indices.map(i => res.clflgs[i]), ...indices.map(i => res.scores[i])])
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -206,7 +296,7 @@ export const musicgetrank: EPR = async (info, data, send) => {
|
||||
else {
|
||||
return send.success();
|
||||
}
|
||||
|
||||
|
||||
return send.object({
|
||||
m,
|
||||
b,
|
||||
@@ -214,15 +304,8 @@ export const musicgetrank: EPR = async (info, data, send) => {
|
||||
});
|
||||
}
|
||||
|
||||
export const musicgetralive: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
const refid = await IDtoRef(Number($(data).attr().iidxid));
|
||||
export const musicgetranksub: EPR = async (info, data, send) => {
|
||||
const cltype = Number($(data).attr().cltype); // 0 -> SP, 1 -> DP //
|
||||
const music_data: any = (
|
||||
await DB.Find(refid, {
|
||||
collection: "score",
|
||||
})
|
||||
);
|
||||
const rival_refids = [
|
||||
[Number($(data).attr().iidxid0), await IDtoRef(Number($(data).attr().iidxid0))],
|
||||
[Number($(data).attr().iidxid1), await IDtoRef(Number($(data).attr().iidxid1))],
|
||||
@@ -231,49 +314,127 @@ export const musicgetralive: EPR = async (info, data, send) => {
|
||||
[Number($(data).attr().iidxid4), await IDtoRef(Number($(data).attr().iidxid4))],
|
||||
];
|
||||
|
||||
let result = {
|
||||
d: []
|
||||
};
|
||||
let myRecord: Record<number, number[]> = {};
|
||||
let rRecord: Record<number, string> = {};
|
||||
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];
|
||||
});
|
||||
let m = [];
|
||||
let score_data: number[];
|
||||
let indices = cltype === 0 ? [0, 1, 2, 3, 4] : [5, 6, 7, 8, 9];
|
||||
|
||||
for (let i = 0; i < rival_refids.length; i++) {
|
||||
if (_.isNaN(rival_refids[i][0])) continue;
|
||||
|
||||
const rival_score = await DB.Find<score>(String(rival_refids[i][1]),
|
||||
{ collection: "score", }
|
||||
);
|
||||
for (let i = 0; i < 5; i++) {
|
||||
if (_.isNaN(rival_refids[i][0]) || _.isNil(rival_refids[i][0])) continue;
|
||||
|
||||
// [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 //
|
||||
const rival_score = await DB.Find<score>(String(rival_refids[i][1]),
|
||||
{ collection: "score" }
|
||||
);
|
||||
|
||||
rival_score.forEach((res: score) => {
|
||||
for (let a = 0; a < indices.length; a++) {
|
||||
if (res.rArray[indices[a]] == -1) continue;
|
||||
|
||||
// [index?, rno?, ...] //
|
||||
score_data = [i, i, res.mid, indices[a], res.cArray[indices[a]], res.esArray[indices[a]], res.mArray[indices[a]]];
|
||||
m.push(K.ARRAY("s32", score_data));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return send.object({
|
||||
style: K.ATTR({ type: String(cltype) }),
|
||||
m,
|
||||
});
|
||||
}
|
||||
|
||||
export const musicgetralive: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
const command = GetCommand(data);
|
||||
const refid = await IDtoRef(Number($(data).attr().iidxid));
|
||||
const cltype = version < 13 ? Number(command[1]) : Number($(data).attr().cltype); // 0 -> SP, 1 -> DP //
|
||||
|
||||
let rival_refids = [];
|
||||
let music_data = [];
|
||||
let myRecord: Record<number, number[]> = {};
|
||||
let rRecord: Record<number, string> = {};
|
||||
let indices = cltype == 0 ? [1, 2, 3] : [6, 7, 8];
|
||||
if (version < 13) {
|
||||
rival_refids = [
|
||||
[Number(command[2]), await IDtoRef(Number(command[2]))],
|
||||
[Number(command[3]), await IDtoRef(Number(command[3]))],
|
||||
[Number(command[4]), await IDtoRef(Number(command[4]))],
|
||||
[Number(command[5]), await IDtoRef(Number(command[5]))],
|
||||
[Number(command[6]), await IDtoRef(Number(command[6]))],
|
||||
];
|
||||
} else {
|
||||
rival_refids = [
|
||||
[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))],
|
||||
];
|
||||
|
||||
music_data = await DB.Find(refid, {
|
||||
collection: "score",
|
||||
});
|
||||
music_data.forEach((res: score) => {
|
||||
if (res.mid < 0) return;
|
||||
|
||||
if (_.isNil(res.cArray)) throw new Error("[music.getralive] There is unsupported entry in Database");
|
||||
let mid = NewMidToOldMid(res.mid);
|
||||
let verMid = OldMidToVerMid(mid);
|
||||
if (verMid[0] > version) return;
|
||||
|
||||
myRecord[NewMidToOldMid(res.mid)] = [...res.esArray, ...res.cArray];
|
||||
});
|
||||
}
|
||||
|
||||
for (let i = 0; i < 5; i++) {
|
||||
if (_.isNaN(rival_refids[i][0]) || _.isNil(rival_refids[i][0])) continue;
|
||||
|
||||
const rival_score = await DB.Find<score>(String(rival_refids[i][1]),
|
||||
{ collection: "score" }
|
||||
);
|
||||
rival_score.forEach((res: score) => {
|
||||
if (res.mid < 0) return;
|
||||
|
||||
let mid = NewMidToOldMid(res.mid);
|
||||
let verMid = OldMidToVerMid(mid);
|
||||
if (verMid[0] > version) return;
|
||||
|
||||
let scoreArray = Array<number>(15).fill(0);
|
||||
if (!_.isNil(myRecord[mid])) {
|
||||
let strResult = "";
|
||||
if (version < 13) {
|
||||
const masks = Array<number>(5).fill(0);
|
||||
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;
|
||||
if (res.cArray[indices[a]] > 0) {
|
||||
masks[i] |= 1 << a;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let strResult = NumArrayToString([6], [verMid[1]]);
|
||||
strResult += NumArrayToString(Array<number>(15).fill(2), scoreArray);
|
||||
strResult = NumArrayToString(
|
||||
[7, 2, 3, 3, 3, 3, 3],
|
||||
[verMid[1], 0, masks[4], masks[3], masks[2], masks[1], masks[0]]
|
||||
);
|
||||
} else {
|
||||
// [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 //
|
||||
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[i * 3 + (2 - a)] = myExscore > rvExscore ? 1 : 2;
|
||||
}
|
||||
}
|
||||
|
||||
strResult = NumArrayToString([6], [verMid[1]]);
|
||||
strResult += NumArrayToString(Array<number>(15).fill(2), scoreArray);
|
||||
}
|
||||
|
||||
if (verMid[0] in rRecord) {
|
||||
rRecord[verMid[0]] += strResult;
|
||||
@@ -283,26 +444,46 @@ export const musicgetralive: EPR = async (info, data, send) => {
|
||||
});
|
||||
}
|
||||
|
||||
let result = {
|
||||
d: []
|
||||
};
|
||||
|
||||
for (const key in rRecord) {
|
||||
result.d.push(
|
||||
K.ITEM("str", rRecord[key], { v: key })
|
||||
);
|
||||
}
|
||||
|
||||
return send.object(result);
|
||||
let sendOption: EamuseSendOption = {};
|
||||
if (version < 14) {
|
||||
result = Object.assign(result, {
|
||||
"@attr": {
|
||||
method: "musicgetralive"
|
||||
}
|
||||
})
|
||||
sendOption = {
|
||||
rootName: GetModel(info),
|
||||
status: version < 13 ? "SOK" : 0,
|
||||
format: false,
|
||||
header: false,
|
||||
}
|
||||
}
|
||||
|
||||
return send.object(result, sendOption);
|
||||
}
|
||||
|
||||
export const musicappoint: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
const command = GetCommand(data);
|
||||
|
||||
// clid, ctype, grd, iidxid, lv, mid, subtype //
|
||||
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 refid = version < 13 ? await IDtoRef(Number(command[5])) : await IDtoRef(Number($(data).attr().iidxid));
|
||||
const ctype = version < 13 ? Number(command[3]) : Number($(data).attr().ctype);
|
||||
const subtype = version < 13 ? Number(command[4]) : Number($(data).attr().subtype);
|
||||
let mid = version < 13 ? Number(command[1]) : Number($(data).attr().mid);
|
||||
let clid = version < 13 ? Number(command[2]) : Number($(data).attr().clid);
|
||||
|
||||
const mapping = [1, 2, 3, 6, 7, 8];
|
||||
const mapping = version < 12 ? [2, 1, 3, 7, 6, 8] : [1, 2, 3, 6, 7, 8];
|
||||
if (version < 20) {
|
||||
mid = OldMidToNewMid(mid);
|
||||
clid = mapping[clid];
|
||||
@@ -314,11 +495,14 @@ export const musicappoint: EPR = async (info, data, send) => {
|
||||
let result: any = {};
|
||||
|
||||
// MINE //
|
||||
const music_data: score | null = await DB.FindOne<score>(refid, {
|
||||
collection: "score",
|
||||
mid: mid,
|
||||
[clid]: { $exists: true },
|
||||
});
|
||||
let music_data: score | null = null;
|
||||
if (!_.isNil(refid)) {
|
||||
music_data = await DB.FindOne<score>(refid, {
|
||||
collection: "score",
|
||||
mid: mid,
|
||||
[clid]: { $exists: true },
|
||||
});
|
||||
}
|
||||
|
||||
let mydata, option = 0, option2 = 0;
|
||||
if (!_.isNil(music_data)) {
|
||||
@@ -329,8 +513,10 @@ export const musicappoint: EPR = async (info, data, send) => {
|
||||
}
|
||||
}
|
||||
|
||||
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"));
|
||||
if (!_.isNil(music_data[clid])) { // can be null as RED doesn't send ghost data //
|
||||
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
|
||||
@@ -351,10 +537,11 @@ export const musicappoint: EPR = async (info, data, send) => {
|
||||
***/
|
||||
|
||||
// OTHERS //
|
||||
let other_refid, other_musicdata: score | null, other_pcdata, other_profile, sdata = null;
|
||||
if (!_.isNaN(subtype)) {
|
||||
switch (ctype) {
|
||||
case 1:
|
||||
let other_refid, other_musicdata, other_pcdata, other_profile, sdata = null;
|
||||
let other_musicdatas = [];
|
||||
switch (ctype) {
|
||||
case 1:
|
||||
if (!_.isNaN(subtype)) {
|
||||
other_refid = await IDtoRef(subtype);
|
||||
other_profile = await ReftoProfile(other_refid);
|
||||
other_pcdata = await ReftoPcdata(other_refid, version);
|
||||
@@ -363,38 +550,103 @@ export const musicappoint: EPR = async (info, data, send) => {
|
||||
mid: mid,
|
||||
[clid]: { $exists: true },
|
||||
});
|
||||
if (_.isNaN(other_pcdata) || _.isNil(other_musicdata)) break;
|
||||
}
|
||||
break;
|
||||
|
||||
if (version < 16) {
|
||||
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]),
|
||||
riidxid: String(other_profile[2])
|
||||
case 2: // ALL, STORE TOP //
|
||||
case 10:
|
||||
other_musicdatas = await DB.Find<score>(null, {
|
||||
collection: "score",
|
||||
mid: mid,
|
||||
[clid]: { $exists: true },
|
||||
});
|
||||
break;
|
||||
|
||||
case 8: // RIVAL TOP - refer rival table rather than subtype parsing //
|
||||
let rivals = await DB.Find<rival>(refid, {
|
||||
collection: "rival",
|
||||
play_style: ClidToPlaySide(clid) + 1,
|
||||
});
|
||||
if (rivals.length > 0) {
|
||||
for (const rival of rivals) {
|
||||
let rival_musicdata = await DB.FindOne<score>(rival.rival_refid, {
|
||||
collection: "score",
|
||||
mid: mid,
|
||||
[clid]: { $exists: true },
|
||||
});
|
||||
}
|
||||
else {
|
||||
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;
|
||||
if (!_.isNil(rival_musicdata)) other_musicdatas.push(rival_musicdata);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (other_musicdatas.length > 0) {
|
||||
other_musicdatas.sort((a: score, b: score) => b.esArray[clid] - a.esArray[clid]);
|
||||
other_musicdata = other_musicdatas[0];
|
||||
other_profile = await ReftoProfile(other_musicdata.__refid);
|
||||
other_pcdata = await ReftoPcdata(other_musicdata.__refid, version);
|
||||
}
|
||||
|
||||
if (!_.isNil(other_musicdata) && !_.isNil(other_profile)) {
|
||||
if (version < 16) {
|
||||
if (!_.isNil(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]),
|
||||
riidxid: String(other_profile[2])
|
||||
});
|
||||
} else {
|
||||
if (version < 12) {
|
||||
sdata = {
|
||||
"@attr": {
|
||||
score: other_musicdata.esArray[clid],
|
||||
pid: other_profile[1],
|
||||
name: other_profile[0],
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
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])
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (_.isNil(mydata) && _.isNil(sdata)) return send.success();
|
||||
if (_.isNil(mydata) && _.isNil(sdata)) {
|
||||
if (version < 14) {
|
||||
return send.object({
|
||||
"@attr": {
|
||||
method: "musicappoint"
|
||||
}
|
||||
}, {
|
||||
rootName: GetModel(info),
|
||||
status: version < 13 ? "ENODATA" : 0,
|
||||
format: false,
|
||||
header: false,
|
||||
});
|
||||
}
|
||||
|
||||
return send.success();
|
||||
}
|
||||
|
||||
if (version >= 27) {
|
||||
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(music_data)) {
|
||||
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 //
|
||||
other_musicdata.optArray = Array<number>(10).fill(0);
|
||||
@@ -441,13 +693,50 @@ export const musicappoint: EPR = async (info, data, send) => {
|
||||
if (!_.isNil(mydata) && !_.isNil(sdata)) result = { mydata, sdata };
|
||||
}
|
||||
|
||||
if (version < 14) {
|
||||
if (_.isNil(mydata)) mydata = { "@content": "" };
|
||||
|
||||
if (version < 12) {
|
||||
if (!_.isNil(sdata)) {
|
||||
return send.object({
|
||||
"@attr": {
|
||||
method: "musicappoint"
|
||||
},
|
||||
data: sdata,
|
||||
}, {
|
||||
rootName: GetModel(info),
|
||||
status: version < 13 ? "SOK" : 0,
|
||||
format: false,
|
||||
header: false,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return send.pugFile(`pug/${GetModel(info)}/musicappoint.pug`, {
|
||||
mydata: mydata["@content"],
|
||||
sdata: {
|
||||
score: sdata["@attr"]["score"],
|
||||
pid: sdata["@attr"]["pid"],
|
||||
name: sdata["@attr"]["name"],
|
||||
content: sdata["@content"],
|
||||
}
|
||||
}, {
|
||||
format: false,
|
||||
header: false,
|
||||
});
|
||||
}
|
||||
|
||||
return send.object(result);
|
||||
}
|
||||
|
||||
export const musicreg: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
const refid = await IDtoRef(Number($(data).attr().iidxid));
|
||||
const command = GetCommand(data);
|
||||
|
||||
let refid = null;
|
||||
if (version < 11) refid = command[1].split('|')[0];
|
||||
else if (version < 13) refid = await IDtoRef(Number(command[1]));
|
||||
else refid = await IDtoRef(Number($(data).attr().iidxid));
|
||||
const shop_data = await DB.FindOne<shop_data>({
|
||||
collection: "shop_data",
|
||||
});
|
||||
@@ -455,20 +744,30 @@ export const musicreg: EPR = async (info, data, send) => {
|
||||
collection: "profile",
|
||||
});
|
||||
|
||||
const mid_indice = version < 12 ? 3 : 2;
|
||||
const clid_indice = version < 12 ? 2 : 3;
|
||||
|
||||
// wid, oppid, opname, opt, opt2, pside, nocnt, anum //
|
||||
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 mid = version < 13 ? Number(command[mid_indice]) : Number($(data).attr().mid);
|
||||
let clid = version < 13 ? Number(command[clid_indice]) : Number($(data).attr().clid);
|
||||
const pgnum = version < 13 ? Number(command[4]) : Number($(data).attr().pgnum);
|
||||
const gnum = version < 13 ? Number(command[5]) : Number($(data).attr().gnum);
|
||||
const mnum = version < 13 ? -1 : Number($(data).attr().mnum);
|
||||
const cflg = version < 13 ? Number(command[7]) : Number($(data).attr().cflg);
|
||||
let exscore = (pgnum * 2 + gnum);
|
||||
let ghost = null, ghost_gauge = null; // Heroic Verse //
|
||||
let style = 0, option = 0, option_2 = 0, rid = -1;
|
||||
|
||||
if (version < 13) rid = Number(command[6]);
|
||||
else 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 (mid < 0) return send.deny();
|
||||
|
||||
// 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];
|
||||
const mapping = version < 12 ? [2, 1, 3, 7, 6, 8] : [1, 2, 3, 6, 7, 8];
|
||||
if (version == -1) return send.deny();
|
||||
else if (version < 20) {
|
||||
mid = OldMidToNewMid(mid);
|
||||
@@ -497,12 +796,13 @@ export const musicreg: EPR = async (info, data, send) => {
|
||||
let opt2Array = Array<number>(10).fill(0); // USED OPTION (CastHour) //
|
||||
let update = 0;
|
||||
|
||||
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 < 16) ghost = Buffer.from($(data).str("ghost"), "hex").toString("base64");
|
||||
else ghost = $(data).buffer("ghost").toString("base64");
|
||||
if (version == 12 || version == 13) {
|
||||
ghost = Buffer.from($(data).obj["@content"], "hex").toString("base64");
|
||||
} else if (version == 14 || version == 15) {
|
||||
ghost = Buffer.from($(data).str("ghost"), "hex").toString("base64");
|
||||
} else if (version > 15) {
|
||||
ghost = $(data).buffer("ghost").toString("base64");
|
||||
}
|
||||
|
||||
if (version >= 27) {
|
||||
ghost_gauge = $(data).buffer("ghost_gauge").toString("base64");
|
||||
@@ -735,6 +1035,41 @@ export const musicreg: EPR = async (info, data, send) => {
|
||||
);
|
||||
}
|
||||
|
||||
if (!_.isNil($(data).attr().djt_tier)) {
|
||||
let tier = Number($(data).attr().djt_tier);
|
||||
let part = Number($(data).attr().djt_part);
|
||||
let midx = Number($(data).attr().djt_midx);
|
||||
|
||||
const djt_data: djtraining | null = await DB.FindOne<djtraining>(refid, {
|
||||
collection: "djtraining",
|
||||
version: version,
|
||||
play_style: ClidToPlaySide(clid),
|
||||
|
||||
tier: tier,
|
||||
part: part,
|
||||
midx: midx,
|
||||
});
|
||||
let cflag = _.isNil(djt_data) ? cflg : Math.max(cflg, djt_data.cflg);
|
||||
|
||||
await DB.Upsert<djtraining>(
|
||||
refid,
|
||||
{
|
||||
collection: "djtraining",
|
||||
version: version,
|
||||
play_style: ClidToPlaySide(clid),
|
||||
|
||||
tier: tier,
|
||||
part: part,
|
||||
midx: midx,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
cflg: cflag,
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
let shop_rank = -1, shop_rank_data = [];
|
||||
let scores: any[][];
|
||||
scores = (
|
||||
@@ -826,6 +1161,7 @@ export const musicreg: EPR = async (info, data, send) => {
|
||||
crate: String(crate),
|
||||
frate: String(frate),
|
||||
rankside: String(style),
|
||||
bestScore: String(update),
|
||||
},
|
||||
ranklist: {
|
||||
"@attr": { total_user_num: String(shop_rank_data.length) },
|
||||
@@ -834,7 +1170,18 @@ export const musicreg: EPR = async (info, data, send) => {
|
||||
shopdata: K.ATTR({ rank: String(shop_rank) }),
|
||||
}
|
||||
|
||||
return send.object(result);
|
||||
let sendOption: EamuseSendOption = {};
|
||||
if (version < 14) {
|
||||
result["@attr"]["method"] = "musicreg";
|
||||
sendOption = {
|
||||
rootName: GetModel(info),
|
||||
status: version < 13 ? "SOK" : 0,
|
||||
format: false,
|
||||
header: false,
|
||||
};
|
||||
}
|
||||
|
||||
return send.object(result, sendOption);
|
||||
}
|
||||
|
||||
export const musicbreg: EPR = async (info, data, send) => {
|
||||
@@ -849,6 +1196,8 @@ export const musicbreg: EPR = async (info, data, send) => {
|
||||
let clid = 0; // SP BEGINNER //
|
||||
let exscore = (pgnum * 2 + gnum);
|
||||
|
||||
if (mid < 0) return send.deny();
|
||||
|
||||
if (version < 20) mid = OldMidToNewMid(mid);
|
||||
|
||||
const music_data: score | null = await DB.FindOne<score>(refid, {
|
||||
@@ -921,15 +1270,28 @@ export const musicbreg: EPR = async (info, data, send) => {
|
||||
}
|
||||
);
|
||||
|
||||
if (version < 14) {
|
||||
return send.object({
|
||||
"@attr": {
|
||||
method: "musicbreg",
|
||||
}
|
||||
}, {
|
||||
rootName: GetModel(info),
|
||||
format: false,
|
||||
header: false,
|
||||
})
|
||||
}
|
||||
|
||||
return send.success();
|
||||
};
|
||||
|
||||
export const musiccrate: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
const command = GetCommand(data);
|
||||
const scores = await DB.Find<score>(null, {
|
||||
collection: "score",
|
||||
});
|
||||
const cltype = Number($(data).attr().cltype);
|
||||
const cltype = version < 13 ? Number(command[1]) : Number($(data).attr().cltype);
|
||||
|
||||
let cFlgs: Record<number, number[]> = {},
|
||||
fcFlgs: Record<number, number[]> = {},
|
||||
@@ -938,6 +1300,7 @@ export const musiccrate: EPR = async (info, data, send) => {
|
||||
scores.forEach((res) => {
|
||||
let mVersion = Math.floor(res.mid / 1000);
|
||||
if (mVersion > version) return;
|
||||
if (res.mid < 0) return;
|
||||
|
||||
let totalArray = Array<number>(10).fill(0);
|
||||
let cFlgArray = Array<number>(10).fill(0);
|
||||
@@ -974,17 +1337,26 @@ export const musiccrate: EPR = async (info, data, send) => {
|
||||
}
|
||||
}
|
||||
|
||||
let indices = [1, 2, 3, 6, 7, 8];
|
||||
if (version == 14 || version == 15) {
|
||||
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[6], cRate[7], cRate[8]])}ZZZZ`;
|
||||
|
||||
cdata.push(
|
||||
K.ITEM("str", str, { ver: String(verMid[0]) })
|
||||
);
|
||||
let indices = [1, 2, 3, 6, 7, 8], mapValue = null;
|
||||
if (version < 16) {
|
||||
indices = cltype == 0 ? [1, 2, 3] : [6, 7, 8];
|
||||
if (version < 12) {
|
||||
indices = cltype === 0 ? [2, 1, 3] : [7, 6, 8];
|
||||
mapValue = (x => indices.indexOf(x) + (cltype === 0 ? 0 : 3));
|
||||
for (let a = 0; a < indices.length; a++) {
|
||||
cdata.push(
|
||||
K.ITEM("str", NumArrayToString([11, 7], [Number(key), cRate[indices[a]]]), {
|
||||
clid: String(mapValue(indices[a])),
|
||||
}),
|
||||
);
|
||||
}
|
||||
} else {
|
||||
let verMid = OldMidToVerMid(Number(key));
|
||||
let str = `${NumArrayToString([7, 7, 7, 7], [verMid[1], ...indices.map(i => cRate[i])])}ZZZZ`;
|
||||
cdata.push(
|
||||
K.ITEM("str", str, { ver: String(verMid[0]) })
|
||||
);
|
||||
}
|
||||
}
|
||||
else {
|
||||
let rateArray = version < 27 ? [...indices.map(i => cRate[i]), ...indices.map(i => fcRate[i])] : [...cRate, ...fcRate];
|
||||
@@ -994,9 +1366,23 @@ export const musiccrate: EPR = async (info, data, send) => {
|
||||
}
|
||||
}
|
||||
|
||||
result = (version == 14 || version == 15) ? { cdata } : { c };
|
||||
result = (version < 16) ? { cdata } : { c };
|
||||
|
||||
return send.object(result);
|
||||
let sendOption: EamuseSendOption = {};
|
||||
if (version < 14) {
|
||||
result = {
|
||||
"@attr": { method: "musiccrate" },
|
||||
...result
|
||||
};
|
||||
sendOption = {
|
||||
rootName: GetModel(info),
|
||||
status: version < 13 ? "SOK" : 0,
|
||||
format: false,
|
||||
header: false,
|
||||
};
|
||||
}
|
||||
|
||||
return send.object(result, sendOption);
|
||||
}
|
||||
|
||||
// this is not valid response //
|
||||
|
||||
+887
-612
File diff suppressed because it is too large
Load Diff
@@ -1,25 +1,75 @@
|
||||
import { expert, ranking } from "../models/ranking";
|
||||
import { profile } from "../models/profile";
|
||||
import { GetVersion, IDtoRef } from "../util";
|
||||
import { GetCommand, GetModel, GetVersion, IDtoRef } from "../util";
|
||||
|
||||
export const rankingmethod: EPR = async (info, data, send) => {
|
||||
const command = GetCommand(data);
|
||||
switch (command[0]) {
|
||||
case "entry":
|
||||
return await rankingentry(info, data, send);
|
||||
case "getranker":
|
||||
return await rankinggetranker(info, data, send);
|
||||
case "getme":
|
||||
return await rankinggetme(info, data, send);
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return send.deny({ format: false, header: false });
|
||||
}
|
||||
|
||||
export const rankingentry: EPR = async (info, data, send) => {
|
||||
// pside //
|
||||
const version = GetVersion(info);
|
||||
const refid = await IDtoRef(Number($(data).attr().iidxid));
|
||||
const command = GetCommand(data);
|
||||
|
||||
const coid = Number($(data).attr().coid);
|
||||
const clid = Number($(data).attr().clid);
|
||||
let refid: string;
|
||||
if (version < 11) refid = command[1].split('|')[0];
|
||||
else if (version < 13) refid = await IDtoRef(Number(command[1]));
|
||||
else refid = await IDtoRef(Number($(data).attr().iidxid));
|
||||
|
||||
const opname = $(data).attr().opname;
|
||||
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 profile = await DB.FindOne<profile>(refid, {
|
||||
collection: "profile",
|
||||
});
|
||||
|
||||
const coid = version < 13 ? Number(command[3]) : Number($(data).attr().coid);
|
||||
const clid = version < 13 ? Number(command[2]) : Number($(data).attr().clid);
|
||||
|
||||
let opname: string;
|
||||
if (version == 9) opname = command[9];
|
||||
else if (version < 11) opname = command[10];
|
||||
else if (version < 13) opname = command[9];
|
||||
else opname = $(data).attr().opname;
|
||||
|
||||
let oppid = -1;
|
||||
if (version == 9) oppid = profile.pid;
|
||||
else if (version < 11) oppid = Number(command[11]);
|
||||
else if (version < 13) oppid = Number(command[10]);
|
||||
else oppid = Number($(data).attr().oppid);
|
||||
|
||||
const pgnum = version < 13 ? Number(command[4]) : Number($(data).attr().pgnum);
|
||||
const gnum = version < 13 ? Number(command[5]) : Number($(data).attr().gnum);
|
||||
|
||||
let opt = 0;
|
||||
if (version == 9) opt = Number(command[8])
|
||||
else if (version < 13) opt = Number(command[6]);
|
||||
else opt = Number($(data).attr().opt)
|
||||
|
||||
let opt2 = 0;
|
||||
if (version == 9) opt2 = 0;
|
||||
else if (version < 13) opt2 = Number(command[7]);
|
||||
else opt2 = Number($(data).attr().opt2)
|
||||
|
||||
const exscore = (pgnum * 2 + gnum);
|
||||
const cstage = Number($(data).attr().cstage);
|
||||
|
||||
let cstage = 0;
|
||||
if (version < 11) cstage = Number(command[12]);
|
||||
else if (version < 12) cstage = Number(command[10]);
|
||||
else if (version < 13) cstage = Number(command[11]);
|
||||
else cstage = Number($(data).attr().cstage);
|
||||
|
||||
const clr = version < 13 ? (cstage == 5 ? 1 : 0) : Number($(data).attr().clr);
|
||||
|
||||
const expert_data = await DB.FindOne<expert>(refid, {
|
||||
collection: "expert",
|
||||
@@ -80,10 +130,6 @@ export const rankingentry: EPR = async (info, data, send) => {
|
||||
}
|
||||
);
|
||||
|
||||
const profile = await DB.FindOne<profile>(refid, {
|
||||
collection: "profile",
|
||||
});
|
||||
const name = profile.name;
|
||||
await DB.Upsert<ranking>(
|
||||
{
|
||||
collection: "ranking",
|
||||
@@ -95,7 +141,7 @@ export const rankingentry: EPR = async (info, data, send) => {
|
||||
$set: {
|
||||
pgnum: pgnum,
|
||||
gnum: gnum,
|
||||
name: name,
|
||||
name: profile.name,
|
||||
opname: opname,
|
||||
pid: oppid,
|
||||
udate: 0,
|
||||
@@ -113,12 +159,27 @@ export const rankingentry: EPR = async (info, data, send) => {
|
||||
clid: clid,
|
||||
});
|
||||
expertUser.sort((a: ranking, b: ranking) => b.exscore - a.exscore);
|
||||
let rankPos = expertUser.findIndex((a: ranking) => a.name == name);
|
||||
let rankPos = expertUser.findIndex((a: ranking) => a.name == profile.name);
|
||||
|
||||
return send.object(K.ATTR({
|
||||
anum: String(expertUser.length),
|
||||
jun: String(rankPos + 1),
|
||||
}));
|
||||
let result = {
|
||||
"@attr": {
|
||||
anum: String(expertUser.length),
|
||||
jun: String(rankPos + 1),
|
||||
}
|
||||
}
|
||||
|
||||
let sendOption: EamuseSendOption = {};
|
||||
if (version < 14) {
|
||||
result["@attr"]["method"] = "rankingentry"
|
||||
sendOption = {
|
||||
rootName: GetModel(info),
|
||||
status: version < 13 ? "SOK" : 0,
|
||||
format: false,
|
||||
header: false,
|
||||
};
|
||||
}
|
||||
|
||||
return send.object(result, sendOption);
|
||||
};
|
||||
|
||||
export const rankingoentry: EPR = async (info, data, send) => {
|
||||
@@ -143,11 +204,15 @@ export const rankingoentry: EPR = async (info, data, send) => {
|
||||
|
||||
export const rankinggetranker: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
const command = GetCommand(data);
|
||||
|
||||
const coid = version < 13 ? Number(command[1]) : Number($(data).attr().coid);
|
||||
const clid = version < 13 ? Number(command[2]) : Number($(data).attr().clid);
|
||||
const ranking = await DB.Find<ranking>({
|
||||
collection: "ranking",
|
||||
version: version,
|
||||
coid: Number($(data).attr().coid),
|
||||
clid: Number($(data).attr().clid),
|
||||
coid,
|
||||
clid,
|
||||
});
|
||||
let result = {
|
||||
ranker: [],
|
||||
@@ -169,5 +234,60 @@ export const rankinggetranker: EPR = async (info, data, send) => {
|
||||
);
|
||||
});
|
||||
|
||||
return send.object(result);
|
||||
let sendOption: EamuseSendOption = {};
|
||||
if (version < 14) {
|
||||
result = Object.assign(result, {
|
||||
"@attr": { method: "rankinggetranker" },
|
||||
});
|
||||
sendOption = {
|
||||
rootName: GetModel(info),
|
||||
status: version < 13 ? "SOK" : 0,
|
||||
format: false,
|
||||
header: false,
|
||||
};
|
||||
}
|
||||
|
||||
return send.object(result, sendOption);
|
||||
};
|
||||
|
||||
export const rankinggetme: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
const command = GetCommand(data);
|
||||
const refid = command[1].split('|')[0];
|
||||
const playStyle = Number(command[2]) == 120 ? 0 : 1;
|
||||
|
||||
const expertRecord = await DB.Find<expert>(refid, { collection: "expert", version: version });
|
||||
if (expertRecord.length == 0) return send.object({ "@attr": { method: "rankinggetme" } }, { header: false, format: false, rootName: GetModel(info) });
|
||||
|
||||
let result = {
|
||||
"@attr": {
|
||||
method: "rankinggetme",
|
||||
},
|
||||
data: [],
|
||||
};
|
||||
|
||||
expertRecord.forEach((res) => {
|
||||
let indices = playStyle == 0 ? [0, 1, 2] : [3, 4, 5];
|
||||
for (let a = 0; a < indices.length; a++) {
|
||||
if (res.cArray[indices[a]] == 0) continue;
|
||||
result.data.push(
|
||||
K.ATTR({
|
||||
coid: String(res.coid),
|
||||
clid: String(indices[a]),
|
||||
pgnum: String(res.pgArray[indices[a]]),
|
||||
gnum: String(res.gArray[indices[a]]),
|
||||
tcnt: String(1),
|
||||
cflg: String(res.cArray[indices[a]] == 1 ? 5 : 0),
|
||||
}),
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
let sendOption: EamuseSendOption = {
|
||||
status: "SOK",
|
||||
rootName: GetModel(info),
|
||||
format: false,
|
||||
header: false,
|
||||
};
|
||||
return send.object(result, sendOption);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,18 @@
|
||||
import { convention_data, shop_data } from "../models/shop";
|
||||
import { GetVersion } from "../util";
|
||||
import { GetCommand, GetModel, GetVersion } from "../util";
|
||||
|
||||
export const shopmethod: EPR = async (info, data, send) => {
|
||||
const command = GetCommand(data);
|
||||
switch (command[0]) {
|
||||
case "sentinfo":
|
||||
return await shopsentinfo(info, data, send);
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return send.deny({ format: false, header: false });
|
||||
}
|
||||
|
||||
export const shopgetname: EPR = async (info, data, send) => {
|
||||
const shop_data = await DB.FindOne<shop_data>({
|
||||
@@ -87,3 +100,25 @@ export const shopsetconvention: EPR = async (info, data, send) => {
|
||||
|
||||
return send.success();
|
||||
};
|
||||
|
||||
export const shopsentinfo: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
|
||||
let result = {};
|
||||
let sendOption: EamuseSendOption = {};
|
||||
if (version < 14) {
|
||||
result = Object.assign(result, {
|
||||
"@attr": { method: "shopsentinfo" },
|
||||
});
|
||||
sendOption = {
|
||||
rootName: GetModel(info),
|
||||
status: version < 13 ? "SOK" : 0,
|
||||
format: false,
|
||||
header: false,
|
||||
};
|
||||
} else {
|
||||
return send.success();
|
||||
}
|
||||
|
||||
return send.object(result, sendOption);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
import { userdata } from "../models/userdata";
|
||||
|
||||
export const userdataread: EPR = async (info, data, send) => {
|
||||
const refid = $(data).attr().card.split('|')[0];
|
||||
const user = await DB.FindOne<userdata>(refid, {
|
||||
collection: "userdata",
|
||||
});
|
||||
if (_.isNil(user)) return send.object({}, { status: "SOK", format: false, header: false });
|
||||
|
||||
return send.object({
|
||||
b: K.ITEM("str", user.userdata),
|
||||
}, { format: false, header: false });
|
||||
}
|
||||
|
||||
export const userdatawrite: EPR = async (info, data, send) => {
|
||||
const refid = $(data).attr().card.split('|')[0];
|
||||
const userdata = $(data).str("b");
|
||||
|
||||
await DB.Upsert<userdata>(
|
||||
refid,
|
||||
{
|
||||
collection: "userdata",
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
userdata
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
return send.object({}, { status: "SOK", format: false, header: false });
|
||||
}
|
||||
+228
-18
@@ -1,11 +1,11 @@
|
||||
import { profile } from "../models/profile";
|
||||
import { rival } from "../models/rival";
|
||||
import { rival, rival_sub } 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 = [];
|
||||
let rival_array = [], rival_sub_array = [];
|
||||
|
||||
if (!(_.isEmpty(data.sp_rival1))) {
|
||||
let update_data = {
|
||||
@@ -14,7 +14,7 @@ export const updateRivalSettings = async (data) => {
|
||||
rival_refid: data.sp_rival1,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
rival_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
@@ -32,7 +32,7 @@ export const updateRivalSettings = async (data) => {
|
||||
rival_refid: data.sp_rival2,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
rival_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
@@ -50,7 +50,7 @@ export const updateRivalSettings = async (data) => {
|
||||
rival_refid: data.sp_rival3,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
rival_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
@@ -68,7 +68,7 @@ export const updateRivalSettings = async (data) => {
|
||||
rival_refid: data.sp_rival4,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
rival_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
@@ -86,7 +86,7 @@ export const updateRivalSettings = async (data) => {
|
||||
rival_refid: data.sp_rival5,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
rival_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
@@ -104,7 +104,7 @@ export const updateRivalSettings = async (data) => {
|
||||
rival_refid: data.dp_rival1,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
rival_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
@@ -122,7 +122,7 @@ export const updateRivalSettings = async (data) => {
|
||||
rival_refid: data.dp_rival2,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
rival_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
@@ -140,7 +140,7 @@ export const updateRivalSettings = async (data) => {
|
||||
rival_refid: data.dp_rival3,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
rival_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
@@ -158,7 +158,7 @@ export const updateRivalSettings = async (data) => {
|
||||
rival_refid: data.dp_rival4,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
rival_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
@@ -176,7 +176,7 @@ export const updateRivalSettings = async (data) => {
|
||||
rival_refid: data.dp_rival5,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
rival_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
@@ -187,18 +187,211 @@ export const updateRivalSettings = async (data) => {
|
||||
)
|
||||
}
|
||||
|
||||
for (let i = 0; i < update_array.length; i++) {
|
||||
if (!(_.isEmpty(data.sp_rival1_sub))) {
|
||||
let update_data = {
|
||||
play_style: 1,
|
||||
index: 0,
|
||||
rival_refid: data.sp_rival1_sub,
|
||||
};
|
||||
|
||||
rival_sub_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival_sub>(data.refid,
|
||||
{
|
||||
collection: "rival_sub",
|
||||
play_style: 1,
|
||||
index: 0,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.sp_rival2_sub))) {
|
||||
let update_data = {
|
||||
play_style: 1,
|
||||
index: 1,
|
||||
rival_refid: data.sp_rival2_sub,
|
||||
};
|
||||
|
||||
rival_sub_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival_sub>(data.refid,
|
||||
{
|
||||
collection: "rival_sub",
|
||||
play_style: 1,
|
||||
index: 1,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.sp_rival3_sub))) {
|
||||
let update_data = {
|
||||
play_style: 1,
|
||||
index: 2,
|
||||
rival_refid: data.sp_rival3_sub,
|
||||
};
|
||||
|
||||
rival_sub_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival_sub>(data.refid,
|
||||
{
|
||||
collection: "rival_sub",
|
||||
play_style: 1,
|
||||
index: 2,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.sp_rival4_sub))) {
|
||||
let update_data = {
|
||||
play_style: 1,
|
||||
index: 3,
|
||||
rival_refid: data.sp_rival4_sub,
|
||||
};
|
||||
|
||||
rival_sub_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival_sub>(data.refid,
|
||||
{
|
||||
collection: "rival_sub",
|
||||
play_style: 1,
|
||||
index: 3,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.sp_rival5_sub))) {
|
||||
let update_data = {
|
||||
play_style: 1,
|
||||
index: 4,
|
||||
rival_refid: data.sp_rival5_sub,
|
||||
};
|
||||
|
||||
rival_sub_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival_sub>(data.refid,
|
||||
{
|
||||
collection: "rival_sub",
|
||||
play_style: 1,
|
||||
index: 4,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.dp_rival1_sub))) {
|
||||
let update_data = {
|
||||
play_style: 2,
|
||||
index: 0,
|
||||
rival_refid: data.dp_rival1_sub,
|
||||
};
|
||||
|
||||
rival_sub_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival_sub>(data.refid,
|
||||
{
|
||||
collection: "rival_sub",
|
||||
play_style: 2,
|
||||
index: 0,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.dp_rival2_sub))) {
|
||||
let update_data = {
|
||||
play_style: 2,
|
||||
index: 1,
|
||||
rival_refid: data.dp_rival2_sub,
|
||||
};
|
||||
|
||||
rival_sub_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival_sub>(data.refid,
|
||||
{
|
||||
collection: "rival_sub",
|
||||
play_style: 2,
|
||||
index: 1,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.dp_rival3_sub))) {
|
||||
let update_data = {
|
||||
play_style: 2,
|
||||
index: 2,
|
||||
rival_refid: data.dp_rival3_sub,
|
||||
};
|
||||
|
||||
rival_sub_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival_sub>(data.refid,
|
||||
{
|
||||
collection: "rival_sub",
|
||||
play_style: 2,
|
||||
index: 2,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.dp_rival4_sub))) {
|
||||
let update_data = {
|
||||
play_style: 2,
|
||||
index: 3,
|
||||
rival_refid: data.dp_rival4_sub,
|
||||
};
|
||||
|
||||
rival_sub_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival_sub>(data.refid,
|
||||
{
|
||||
collection: "rival_sub",
|
||||
play_style: 2,
|
||||
index: 3,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.dp_rival5_sub))) {
|
||||
let update_data = {
|
||||
play_style: 2,
|
||||
index: 4,
|
||||
rival_refid: data.dp_rival5_sub,
|
||||
};
|
||||
|
||||
rival_sub_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival_sub>(data.refid,
|
||||
{
|
||||
collection: "rival_sub",
|
||||
play_style: 2,
|
||||
index: 4,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
for (let i = 0; i < rival_array.length; i++) {
|
||||
await DB.Upsert<rival>(data.refid, {
|
||||
collection: "rival",
|
||||
play_style: update_array[i].play_style,
|
||||
index: update_array[i].index,
|
||||
play_style: rival_array[i].play_style,
|
||||
index: rival_array[i].index,
|
||||
}, {
|
||||
$set: {
|
||||
rival_refid: update_array[i].rival_refid,
|
||||
rival_refid: rival_array[i].rival_refid,
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
for (let i = 0; i < rival_sub_array.length; i++) {
|
||||
await DB.Upsert<rival_sub>(data.refid, {
|
||||
collection: "rival_sub",
|
||||
play_style: rival_sub_array[i].play_style,
|
||||
index: rival_sub_array[i].index,
|
||||
}, {
|
||||
$set: {
|
||||
rival_refid: rival_sub_array[i].rival_refid,
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
};
|
||||
|
||||
export const updateCustomSettings = async (data) => {
|
||||
@@ -212,12 +405,15 @@ export const updateCustomSettings = async (data) => {
|
||||
note_burst: Number(data.note_burst),
|
||||
menu_music: Number(data.menu_music),
|
||||
lane_cover: Number(data.lane_cover),
|
||||
lift_cover: Number(data.lift_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: Number(data.note_beam),
|
||||
note_beam_size: Number(data.note_beam_size) || 0,
|
||||
note_size: Number(data.note_size),
|
||||
judge_font: Number(data.judge_font),
|
||||
pacemaker_cover: Number(data.pacemaker_cover),
|
||||
vefx_lock: StoB(data.vefx_lock),
|
||||
@@ -225,6 +421,8 @@ export const updateCustomSettings = async (data) => {
|
||||
bomb_size: Number(data.bomb_size),
|
||||
disable_hcn_color: StoB(data.disable_hcn_color),
|
||||
first_note_preview: Number(data.first_note_preview),
|
||||
cn_color: Number(data.cn_color),
|
||||
cn_size: Number(data.cn_size),
|
||||
|
||||
rank_folder: StoB(data.rank_folder),
|
||||
clear_folder: StoB(data.clear_folder),
|
||||
@@ -268,14 +466,26 @@ export const updateCustomSettings = async (data) => {
|
||||
}
|
||||
|
||||
if (data.version > 27) {
|
||||
let saveData = {
|
||||
premium_skin: Number(data.lm_skin),
|
||||
premium_bg: Number(data.lm_bg),
|
||||
}
|
||||
|
||||
if (data.version >= 33) {
|
||||
saveData = Object.assign(saveData, {
|
||||
premium_bg_concent: Number(data.lm_bg_2),
|
||||
entry_bg: Number(data.lm_entry_bg),
|
||||
entry_bg_brightness: Number(data.lm_entry_bg_bright),
|
||||
});
|
||||
}
|
||||
|
||||
await DB.Upsert<lightning_custom>(data.refid, {
|
||||
collection: "lightning_custom",
|
||||
version: Number(data.version)
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
premium_skin: Number(data.lm_skin),
|
||||
premium_bg: Number(data.lm_bg),
|
||||
...saveData
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
+167
-129
@@ -1,27 +1,127 @@
|
||||
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, musicgetralive } from "./handlers/music";
|
||||
import { graderaised } from "./handlers/grade";
|
||||
import { pccommon, pcreg, pcget, pcgetname, pctakeover, pcvisit, pcsave, pcoldget, pcgetlanegacha, pcdrawlanegacha, pcshopregister, pcmethod } from "./handlers/pc";
|
||||
import { shopgetname, shopsavename, shopgetconvention, shopsetconvention, shopmethod } from "./handlers/shop";
|
||||
import { musicreg, musicgetrank, musicappoint, musicarenacpu, musiccrate, musicbreg, musicgetralive, musicgetranksub, musicmethod } from "./handlers/music";
|
||||
import { grademethod, graderaised } from "./handlers/grade";
|
||||
import { gssysteminfo } from "./handlers/gamesystem";
|
||||
import { updateRivalSettings, updateCustomSettings, importScoreData, exportScoreData } from "./handlers/webui";
|
||||
import { GetVersion } from "./util";
|
||||
import { rankingentry, rankinggetranker, rankingoentry } from "./handlers/ranking";
|
||||
import { rankingentry, rankinggetranker, rankingmethod, rankingoentry } from "./handlers/ranking";
|
||||
import { userdataread, userdatawrite } from "./handlers/userdata";
|
||||
|
||||
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.");
|
||||
if (CORE_VERSION_MAJOR <= 1 && CORE_VERSION_MINOR < 70) {
|
||||
console.error("The current version of Asphyxia Core is not supported. Requires version '1.70' or later.");
|
||||
return;
|
||||
}
|
||||
|
||||
R.Contributor("duel0213");
|
||||
R.Contributor("anzuwork");
|
||||
R.Contributor("COLV9");
|
||||
|
||||
R.GameCode("GLD");
|
||||
R.GameCode("HDD");
|
||||
R.GameCode("I00");
|
||||
R.GameCode("JDJ");
|
||||
R.GameCode("JDZ");
|
||||
R.GameCode("KDZ");
|
||||
R.GameCode("LDJ");
|
||||
const gameCodes = ["C02", "D01", "E11", "ECO", "FDD", "GLD", "HDD", "I00", "JDJ", "JDZ", "KDZ", "LDJ"];
|
||||
gameCodes.forEach((res) => {
|
||||
R.GameCode(res);
|
||||
});
|
||||
|
||||
R.Route("userdata.read", userdataread);
|
||||
R.Route("userdata.write", userdatawrite);
|
||||
|
||||
const oldVersion = ["C02", "D01", "E11", "ECO"];
|
||||
oldVersion.forEach((res) => {
|
||||
R.Route(`${res}.music`, musicmethod);
|
||||
R.Route(`${res}.pc`, pcmethod);
|
||||
R.Route(`${res}.ranking`, rankingmethod);
|
||||
R.Route(`${res}.grade`, grademethod);
|
||||
R.Route(`${res}.shop`, shopmethod);
|
||||
});
|
||||
|
||||
const MultiRoute = (method: string, handler: EPR | boolean) => {
|
||||
R.Route(`${method}`, handler);
|
||||
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);
|
||||
R.Route(`IIDX30${method}`, handler);
|
||||
R.Route(`IIDX31${method}`, handler);
|
||||
R.Route(`IIDX32${method}`, handler);
|
||||
R.Route(`IIDX33${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.shopregister", pcshopregister);
|
||||
MultiRoute("pc.getLaneGachaTicket", pcgetlanegacha);
|
||||
MultiRoute("pc.drawLaneGacha", pcdrawlanegacha);
|
||||
MultiRoute("pc.consumeLaneGachaTicket", true);
|
||||
|
||||
MultiRoute("shop.getname", shopgetname);
|
||||
MultiRoute("shop.savename", shopsavename);
|
||||
MultiRoute("shop.getconvention", shopgetconvention);
|
||||
MultiRoute("shop.setconvention", shopsetconvention);
|
||||
|
||||
MultiRoute("music.crate", musiccrate);
|
||||
MultiRoute("music.getrank", musicgetrank);
|
||||
MultiRoute("music.getranksub", musicgetranksub);
|
||||
MultiRoute("music.getralive", musicgetralive);
|
||||
MultiRoute("music.appoint", musicappoint);
|
||||
MultiRoute("music.reg", musicreg);
|
||||
MultiRoute("music.breg", musicbreg);
|
||||
MultiRoute("music.arenaCPU", musicarenacpu);
|
||||
|
||||
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) => {
|
||||
console.warn(`Unhandled Request : [${GetVersion(req)}], ${req.module}.${req.method}, ${JSON.stringify(data)}`);
|
||||
return send.success({ format: false, header: false });
|
||||
});
|
||||
|
||||
R.WebUIEvent("iidxGetProfile", async (data, send: WebUISend) => {
|
||||
const pcdata = await DB.FindOne(data.refid, {
|
||||
collection: "pcdata",
|
||||
version: Number(data.version),
|
||||
});
|
||||
|
||||
return send.json({
|
||||
pcdata,
|
||||
});
|
||||
});
|
||||
R.WebUIEvent("iidxGetSetting", async (data, send: WebUISend) => {
|
||||
const custom = await DB.FindOne(data.refid, {
|
||||
collection: "custom",
|
||||
version: Number(data.version),
|
||||
});
|
||||
|
||||
const lm_custom = await DB.FindOne(data.refid, {
|
||||
collection: "lightning_custom",
|
||||
version: Number(data.version),
|
||||
});
|
||||
|
||||
return send.json({
|
||||
custom,
|
||||
lm_custom,
|
||||
});
|
||||
});
|
||||
R.WebUIEvent("iidxUpdateRival", updateRivalSettings);
|
||||
R.WebUIEvent("iidxUpdateCustom", updateCustomSettings);
|
||||
R.WebUIEvent("iidxImportScoreData", importScoreData);
|
||||
R.WebUIEvent("iidxExportScoreData", exportScoreData);
|
||||
|
||||
// common //
|
||||
R.Config("BeatPhase", {
|
||||
@@ -96,7 +196,7 @@ export function register() {
|
||||
name: "Movie Upload URL",
|
||||
type: "string",
|
||||
desc: "API address for play video uploading feature (JSON)",
|
||||
default: "http://localhost/"
|
||||
default: "http://localhost:4399/movie/"
|
||||
});
|
||||
R.Config("Eisei", {
|
||||
name: "Eisei Grade Courses",
|
||||
@@ -226,7 +326,7 @@ export function register() {
|
||||
});
|
||||
R.Config("sp_triparkskip", {
|
||||
name: "Everyone's SPACEWAR!! Skip",
|
||||
desc: "Skips クプロ・ミミニャミ・パステルくんのみんなで宇宙戦争!! Event Scenes",
|
||||
desc: "Skips クプロ・ミミニャミ・パステルくんのみんなで宇宙戦争!! Event Scenes",
|
||||
type: "integer",
|
||||
default: 2,
|
||||
});
|
||||
@@ -303,12 +403,12 @@ export function register() {
|
||||
default: 2,
|
||||
});
|
||||
R.Config("cp_extraboss",
|
||||
{
|
||||
name: "Extra Boss Phase (CP)",
|
||||
desc: "Extra Boss Phase",
|
||||
type: "integer",
|
||||
default: 30,
|
||||
});
|
||||
{
|
||||
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",
|
||||
@@ -336,12 +436,12 @@ export function register() {
|
||||
default: 1,
|
||||
});
|
||||
R.Config("sb_extraboss",
|
||||
{
|
||||
name: "BUZRA ARTS",
|
||||
desc: "BUZRA ARTS Phase",
|
||||
type: "integer",
|
||||
default: 35,
|
||||
});
|
||||
{
|
||||
name: "BUZRA ARTS",
|
||||
desc: "BUZRA ARTS Phase",
|
||||
type: "integer",
|
||||
default: 35,
|
||||
});
|
||||
|
||||
// CANNON BALLERS //
|
||||
R.Config("cb_boss", {
|
||||
@@ -357,12 +457,12 @@ export function register() {
|
||||
default: 3,
|
||||
});
|
||||
R.Config("cb_extraboss",
|
||||
{
|
||||
name: "IIDX AIR RACE",
|
||||
desc: "IIDX AIR RACE Phase",
|
||||
type: "integer",
|
||||
default: 35,
|
||||
});
|
||||
{
|
||||
name: "IIDX AIR RACE",
|
||||
desc: "IIDX AIR RACE Phase",
|
||||
type: "integer",
|
||||
default: 35,
|
||||
});
|
||||
|
||||
// Rootage //
|
||||
R.Config("rt_boss", {
|
||||
@@ -384,12 +484,12 @@ export function register() {
|
||||
default: 2,
|
||||
});
|
||||
R.Config("rt_extraboss",
|
||||
{
|
||||
name: "ARC SCORE",
|
||||
desc: "ARC SCORE Phase",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
{
|
||||
name: "ARC SCORE",
|
||||
desc: "ARC SCORE Phase",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
|
||||
// HEROIC VERSE //
|
||||
R.Config("hv_boss", {
|
||||
@@ -405,12 +505,12 @@ export function register() {
|
||||
default: 4,
|
||||
});
|
||||
R.Config("hv_extraboss",
|
||||
{
|
||||
name: "SHADOW REBELLION",
|
||||
desc: "SHADOW REBELLION Phase",
|
||||
type: "integer",
|
||||
default: 1,
|
||||
});
|
||||
{
|
||||
name: "SHADOW REBELLION",
|
||||
desc: "SHADOW REBELLION Phase",
|
||||
type: "integer",
|
||||
default: 1,
|
||||
});
|
||||
|
||||
// BISTROVER //
|
||||
R.Config("bo_boss", {
|
||||
@@ -509,90 +609,28 @@ export function register() {
|
||||
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: Number(data.version),
|
||||
});
|
||||
|
||||
return send.json({
|
||||
pcdata,
|
||||
});
|
||||
// Sparkle Shower //
|
||||
R.Config("ss_event1", {
|
||||
name: "Sparkle Fruit Lab.",
|
||||
desc: "Sparkle Fruit Lab. Phase",
|
||||
type: "integer",
|
||||
default: 1,
|
||||
});
|
||||
R.WebUIEvent("iidxGetSetting", async (data, send: WebUISend) => {
|
||||
const custom = await DB.FindOne(data.refid, {
|
||||
collection: "custom",
|
||||
version: Number(data.version),
|
||||
});
|
||||
|
||||
const lm_custom = await DB.FindOne(data.refid, {
|
||||
collection: "lightning_custom",
|
||||
version: Number(data.version),
|
||||
});
|
||||
|
||||
return send.json({
|
||||
custom,
|
||||
lm_custom,
|
||||
});
|
||||
R.Config("ss_cyber", {
|
||||
name: "CYBER LOADER",
|
||||
desc: "CYBER LOADER Phase",
|
||||
type: "integer",
|
||||
default: 1,
|
||||
});
|
||||
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);
|
||||
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);
|
||||
R.Route(`IIDX30${method}`, handler);
|
||||
R.Route(`IIDX31${method}`, handler);
|
||||
R.Route(`IIDX32${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.shopregister", pcshopregister);
|
||||
MultiRoute("pc.getLaneGachaTicket", pcgetlanegacha);
|
||||
MultiRoute("pc.drawLaneGacha", pcdrawlanegacha);
|
||||
MultiRoute("pc.consumeLaneGachaTicket", true);
|
||||
|
||||
MultiRoute("shop.getname", shopgetname);
|
||||
MultiRoute("shop.savename", shopsavename);
|
||||
MultiRoute("shop.getconvention", shopgetconvention);
|
||||
MultiRoute("shop.setconvention", shopsetconvention);
|
||||
|
||||
MultiRoute("music.crate", musiccrate);
|
||||
MultiRoute("music.getrank", musicgetrank);
|
||||
MultiRoute("music.getralive", musicgetralive);
|
||||
MultiRoute("music.appoint", musicappoint);
|
||||
MultiRoute("music.reg", musicreg);
|
||||
MultiRoute("music.breg", musicbreg);
|
||||
MultiRoute("music.arenaCPU", musicarenacpu);
|
||||
|
||||
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) => {
|
||||
console.warn(`Unhandled Request : [${GetVersion(req)}], ${req.module}.${req.method}, ${JSON.stringify(data)}`);
|
||||
return send.success();
|
||||
R.Config("ss_extraboss", {
|
||||
name: "EXTRA CHALLENGE (SS)",
|
||||
desc: "EXTRA CHALLENGE Phase",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
R.Config("ss_extraboss_season", {
|
||||
name: "EXTRA CHALLENGE Season (SS)",
|
||||
type: "integer",
|
||||
default: 2,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -6,3 +6,44 @@ export interface badge {
|
||||
flg_id: number;
|
||||
flg: number;
|
||||
}
|
||||
|
||||
export const badgeBaseMap: Record<string, number> = {
|
||||
djLevel: 0,
|
||||
clear: 1,
|
||||
grade: 2,
|
||||
};
|
||||
|
||||
export const badgeVersionMap: Record<number | "default", Record<string, number>> = {
|
||||
30: {
|
||||
visitor: 6,
|
||||
notes_radar: 7,
|
||||
world_tourism: 8,
|
||||
event1: 9,
|
||||
},
|
||||
31: {
|
||||
step_up: 3,
|
||||
visitor: 6,
|
||||
notes_radar: 7,
|
||||
event1: 13,
|
||||
event2: 16,
|
||||
},
|
||||
32: {
|
||||
step_up: 3,
|
||||
visitor: 6,
|
||||
notes_radar: 7,
|
||||
event1: 13,
|
||||
event2: 15,
|
||||
},
|
||||
33: {
|
||||
step_up: 3,
|
||||
visitor: 6,
|
||||
notes_radar: 7,
|
||||
event1: 3301,
|
||||
},
|
||||
default: {
|
||||
step_up: 3,
|
||||
visitor: 7,
|
||||
notes_radar: 8,
|
||||
world_tourism: 12,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -29,6 +29,9 @@ export interface custom {
|
||||
lift_cover: number;
|
||||
note_beam_size: number;
|
||||
|
||||
cn_color: number; // sparkle shower//
|
||||
cn_size: number;
|
||||
|
||||
// appendsettings
|
||||
rank_folder: boolean;
|
||||
clear_folder: boolean;
|
||||
@@ -87,6 +90,9 @@ export const default_custom = {
|
||||
lift_cover: 0,
|
||||
note_beam_size: 0,
|
||||
|
||||
cn_color: 0,
|
||||
cn_size: 0,
|
||||
|
||||
rank_folder: true,
|
||||
clear_folder: true,
|
||||
diff_folder: true,
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
export interface djtraining {
|
||||
collection: "djtraining";
|
||||
version: number;
|
||||
play_style: number;
|
||||
|
||||
tier: number;
|
||||
part: number;
|
||||
midx: number;
|
||||
cflg: number;
|
||||
}
|
||||
@@ -14,7 +14,13 @@ export interface lightning_settings {
|
||||
concentration: number;
|
||||
|
||||
keyboard_kind: number; // epolis //
|
||||
|
||||
brightness: number;
|
||||
brightness_concent: number; // sparkle shower ///
|
||||
|
||||
assistant_disp_type: number; // sparkle shower ///
|
||||
assistant_last_tab: number;
|
||||
assistant_chara: number;
|
||||
}
|
||||
|
||||
export interface lightning_playdata {
|
||||
@@ -31,7 +37,12 @@ export interface lightning_custom {
|
||||
version: number;
|
||||
|
||||
premium_skin: number;
|
||||
premium_bg: number;
|
||||
|
||||
premium_bg: number; // epolis //
|
||||
|
||||
premium_bg_concent: number; // sparkle shower //
|
||||
entry_bg: number;
|
||||
entry_bg_brightness: number;
|
||||
}
|
||||
|
||||
export interface eisei_grade {
|
||||
@@ -162,10 +173,21 @@ export const lm_settings_new = {
|
||||
concentration: 0,
|
||||
|
||||
keyboard_kind: 10, // epolis //
|
||||
brightness: 2,
|
||||
|
||||
brightness: 0,
|
||||
brightness_concent: 0, // sparkle shower //
|
||||
|
||||
assistant_disp_type: 0,
|
||||
assistant_last_tab: 0,
|
||||
assistant_chara: 0,
|
||||
}
|
||||
|
||||
export const lm_customdata = {
|
||||
premium_skin: 0, // Icons //
|
||||
|
||||
premium_bg: 0, // Background (epolis) //
|
||||
|
||||
premium_bg_concent: 0, // Background [Concentration Mode] (sparkle shower) //
|
||||
entry_bg: 0, // Entry BG //
|
||||
entry_bg_brightness: 0, // Entry BG Brightness //
|
||||
}
|
||||
|
||||
+224
-22
@@ -10,6 +10,7 @@ export interface pcdata {
|
||||
sflg0: number;
|
||||
sflg1: number;
|
||||
sflg2: number;
|
||||
pflg: number;
|
||||
gno: number;
|
||||
timing: number;
|
||||
sdhd: number;
|
||||
@@ -19,23 +20,25 @@ export interface pcdata {
|
||||
mcomb: number;
|
||||
ncomb: number;
|
||||
mode: number;
|
||||
category: number; // attribute (Pinky Crush) //
|
||||
category: number; // Pinky Crush //
|
||||
pmode: number;
|
||||
liflen: number;
|
||||
judge: number; // attribute (tricoro) //
|
||||
judge: number; // tricoro //
|
||||
opstyle: number;
|
||||
hispeed: number;
|
||||
judgeAdj: number;
|
||||
|
||||
notes: number; // attribute (Lincle) //
|
||||
notes: number; // Lincle //
|
||||
pase: number;
|
||||
sdtype: number;
|
||||
help: number;
|
||||
fcombo: number[];
|
||||
ngrade: number; // attribute (BISTROVER) //
|
||||
rtype: number; // attribute (Heroic Verse) //
|
||||
bgnflg: number; // attribute (Pinky Crush) //
|
||||
player_kind: number; // attribute (EPOLIS) //
|
||||
ngrade: number; // BISTROVER //
|
||||
rtype: number; // Heroic Verse //
|
||||
naviflg: number; // Sparkle Shower //
|
||||
bgnasst: number;
|
||||
bgnflg: number; // Pinky Crush //
|
||||
player_kind: number; // EPOLIS //
|
||||
gpos: number;
|
||||
|
||||
s_sorttype: number;
|
||||
@@ -95,6 +98,8 @@ export interface pcdata {
|
||||
s_classic_hispeed: number; // EPOLIS //
|
||||
d_classic_hispeed: number;
|
||||
movie_thumbnail: number; // Pinky Crush //
|
||||
s_laneobj_brignt: number; // Sparkle Shower //
|
||||
d_laneobj_brignt: number;
|
||||
|
||||
secret_flg1: string[]; // secret (Heroic Verse) //
|
||||
secret_flg2: string[];
|
||||
@@ -237,6 +242,77 @@ export interface pcdata {
|
||||
tourism_secret_flg2: string[];
|
||||
}
|
||||
|
||||
export const D01_pcdata = {
|
||||
version: 10,
|
||||
|
||||
spnum: 0,
|
||||
sach: 0,
|
||||
dach: 0,
|
||||
sflg0: 0,
|
||||
|
||||
sgid: -1,
|
||||
dgid: -1,
|
||||
}
|
||||
|
||||
export const E11_pcdata = {
|
||||
version: 11,
|
||||
|
||||
spnum: 0,
|
||||
dpnum: 0,
|
||||
ctype: 0,
|
||||
sach: 0,
|
||||
dach: 0,
|
||||
gno: 0,
|
||||
sflg0: 0,
|
||||
pflg: 0,
|
||||
|
||||
sgid: -1,
|
||||
dgid: -1,
|
||||
}
|
||||
|
||||
export const ECO_pcdata = {
|
||||
version: 12,
|
||||
|
||||
spnum: 0,
|
||||
dpnum: 0,
|
||||
ctype: 0,
|
||||
sach: 0,
|
||||
dach: 0,
|
||||
sflg0: 0,
|
||||
gno: 0,
|
||||
gono: 0,
|
||||
sd: 0,
|
||||
hd: 0,
|
||||
sdhd: 0,
|
||||
to: 0,
|
||||
|
||||
sgid: -1,
|
||||
dgid: -1,
|
||||
}
|
||||
|
||||
export const FDD_pcdata = {
|
||||
version: 13,
|
||||
|
||||
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,
|
||||
|
||||
sgid: -1,
|
||||
dgid: -1,
|
||||
}
|
||||
|
||||
export const GLD_pcdata = {
|
||||
version: 14,
|
||||
|
||||
@@ -770,9 +846,9 @@ export const IIDX24_pcdata = {
|
||||
dr_dppoint: Array<number>(15).fill(0),
|
||||
|
||||
event_play_num: 0,
|
||||
event_last_select_id: -1,
|
||||
event_last_select_id: 0,
|
||||
event2_play_num: 0,
|
||||
event2_last_select_id: -1,
|
||||
event2_last_select_id: 0,
|
||||
|
||||
st_enemy_damage: 0,
|
||||
st_progress: 0,
|
||||
@@ -995,9 +1071,9 @@ export const IIDX26_pcdata = {
|
||||
eb_bossorb8: 0,
|
||||
|
||||
event_play_num: 0,
|
||||
event_last_select_id: -1,
|
||||
event_last_select_id: 0,
|
||||
event2_play_num: 0,
|
||||
event2_last_select_id: -1,
|
||||
event2_last_select_id: 0,
|
||||
}
|
||||
|
||||
export const IIDX27_pcdata = {
|
||||
@@ -1107,7 +1183,7 @@ export const IIDX27_pcdata = {
|
||||
present_orb: 0,
|
||||
|
||||
event_play_num: 0,
|
||||
event_last_select_id: -1,
|
||||
event_last_select_id: 0,
|
||||
|
||||
eb_keyorb: 0,
|
||||
eb_bossorb0: 0,
|
||||
@@ -1230,7 +1306,7 @@ export const IIDX28_pcdata = {
|
||||
present_orb: 0,
|
||||
|
||||
event_play_num: 0,
|
||||
event_last_select_id: -1,
|
||||
event_last_select_id: 0,
|
||||
event_story_prog: 0,
|
||||
event_failed_num: 0,
|
||||
|
||||
@@ -1350,8 +1426,8 @@ export const IIDX29_pcdata = {
|
||||
present_orb: 0,
|
||||
|
||||
event_play_num: 0,
|
||||
event_last_select_id: -1,
|
||||
event_last_select_type: -1,
|
||||
event_last_select_id: 0,
|
||||
event_last_select_type: 0,
|
||||
}
|
||||
|
||||
export const IIDX30_pcdata = {
|
||||
@@ -1468,7 +1544,7 @@ export const IIDX30_pcdata = {
|
||||
present_orb: 0,
|
||||
|
||||
event_play_num: 0,
|
||||
event_last_select_id: -1,
|
||||
event_last_select_id: 0,
|
||||
}
|
||||
|
||||
export const IIDX31_pcdata = {
|
||||
@@ -1582,7 +1658,7 @@ export const IIDX31_pcdata = {
|
||||
present_orb: 0,
|
||||
|
||||
event_play_num: 0,
|
||||
event_last_select_id: -1,
|
||||
event_last_select_id: 0,
|
||||
event_skip: false,
|
||||
}
|
||||
|
||||
@@ -1680,10 +1756,10 @@ export const IIDX32_pcdata = {
|
||||
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_level_h: -1,
|
||||
st_dp_level_h: -1,
|
||||
st_sp_level_exh: -1,
|
||||
st_dp_level_exh: -1,
|
||||
st_sp_fluctuation: 0,
|
||||
st_dp_fluctuation: 0,
|
||||
st_mission_clear_num: 0,
|
||||
@@ -1706,5 +1782,131 @@ export const IIDX32_pcdata = {
|
||||
present_orb: 0,
|
||||
|
||||
event_play_num: 0,
|
||||
event_last_select_id: -1,
|
||||
event_last_select_id: 0,
|
||||
}
|
||||
|
||||
export const IIDX33_pcdata = {
|
||||
version: 33,
|
||||
|
||||
spnum: 0,
|
||||
dpnum: 0,
|
||||
sach: 0,
|
||||
dach: 0,
|
||||
mode: 0,
|
||||
category: 0,
|
||||
pmode: 0,
|
||||
ngrade: 0,
|
||||
rtype: 0,
|
||||
naviflg: 0,
|
||||
bgnasst: 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,
|
||||
s_laneobj_brignt: 0,
|
||||
d_laneobj_brignt: 0,
|
||||
|
||||
secret_flg1: Array<string>(3).fill("-1"),
|
||||
secret_flg2: Array<string>(3).fill("-1"),
|
||||
secret_flg3: Array<string>(3).fill("-1"),
|
||||
secret_flg4: Array<string>(3).fill("-1"),
|
||||
secret_flg5: Array<string>(3).fill("-1"),
|
||||
|
||||
leggendaria_flg1: Array<string>(3).fill("-1"),
|
||||
leggendaria_flg2: Array<string>(3).fill("-1"),
|
||||
|
||||
tourism_secret_flg1: Array<string>(3).fill("-1"),
|
||||
tourism_secret_flg2: Array<string>(3).fill("-1"),
|
||||
|
||||
nr_spradar: Array<number>(6).fill(0),
|
||||
nr_dpradar: Array<number>(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: -1,
|
||||
st_dp_level_h: -1,
|
||||
st_sp_level_exh: -1,
|
||||
st_dp_level_exh: -1,
|
||||
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: 0,
|
||||
}
|
||||
|
||||
@@ -7,6 +7,15 @@ export interface rival {
|
||||
rival_refid: string;
|
||||
};
|
||||
|
||||
export interface rival_sub {
|
||||
collection: "rival_sub";
|
||||
|
||||
play_style: number;
|
||||
|
||||
index: number;
|
||||
rival_refid: string;
|
||||
}
|
||||
|
||||
export interface rival_data {
|
||||
play_style: number;
|
||||
index: number;
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
export interface userdata {
|
||||
collection: "userdata";
|
||||
|
||||
userdata: string;
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
D01(status="SOK" method="pcget")
|
||||
pc(name=profile.name playnum=pcdata.spnum sach=pcdata.sach dach=pcdata.dach sflg=pcdata.sflg0)
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid) #{gradeStr}
|
||||
ex(rid="3")
|
||||
- for (let ed of exArray)
|
||||
score(clid=ed.clid coid=ed.coid pgnum=ed.pgnum gnum=ed.gnum tcnt="1" cflg=ed.cflg)
|
||||
@@ -0,0 +1,8 @@
|
||||
E11(status="SOK" method="pcget")
|
||||
pc(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum ctype="0" sach=pcdata.sach dach=pcdata.dach gno=pcdata.gno sflg=pcdata.sflg0 pflg=pcdata.pflg)
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid) #{gradeStr}
|
||||
ex #{exStr}
|
||||
skin #{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])
|
||||
@@ -0,0 +1,3 @@
|
||||
ECO(status="SOK" method="musicappoint") #{mydata}
|
||||
if sdata != null
|
||||
data(score=sdata.score pid=sdata.pid name=sdata.name) #{sdata.content}
|
||||
@@ -0,0 +1,8 @@
|
||||
ECO(status="SOK" method="pcget")
|
||||
pc(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum ctype="0" sach=pcdata.sach dach=pcdata.dach sflg=pcdata.sflg0 gno=pcdata.gno gono="0" sd="0" hd="0" hdsd="0" to="0")
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid) #{gradeStr}
|
||||
ex #{exStr}
|
||||
skin #{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])
|
||||
@@ -0,0 +1,3 @@
|
||||
FDD(status="0" method="musicappoint") #{mydata}
|
||||
if sdata != null
|
||||
data(score=sdata.score pid=sdata.pid name=sdata.name) #{sdata.content}
|
||||
@@ -0,0 +1,8 @@
|
||||
FDD(status="0" method="pcget")
|
||||
pc(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 hdsd=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)
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid) #{gradeStr}
|
||||
ex #{exStr}
|
||||
skin #{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])
|
||||
@@ -10,6 +10,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])
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]}
|
||||
if party != null
|
||||
party(ev=party.ev dif=party.dif)
|
||||
cflg(__type="bin") #{party.cflg}
|
||||
//-puzzle
|
||||
flg(dif="" cha="" __type="u32") [loop]
|
||||
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")
|
||||
|
||||
@@ -63,8 +63,7 @@ IIDX25pc(status="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")
|
||||
achieve_data(arena_class="19" best_top_class_continuing="0" now_top_class_continuing="0" play_style="0" rating_value="20")
|
||||
achieve_data(arena_class="19" best_top_class_continuing="0" now_top_class_continuing="0" play_style="1" rating_value="20")
|
||||
floor_infection(music_list="-1")
|
||||
qma_collabo(music_list="-1")
|
||||
|
||||
@@ -43,7 +43,7 @@ IIDX26pc(status="0")
|
||||
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}
|
||||
is_track_ticket(__type="bool") #{Number(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")
|
||||
@@ -57,9 +57,8 @@ IIDX26pc(status="0")
|
||||
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")
|
||||
cube_data(cube="0" season_id="0")
|
||||
achieve_data(arena_class="19" best_top_class_continuing="0" now_top_class_continuing="0" play_style="0" rating_value="20")
|
||||
achieve_data(arena_class="19" best_top_class_continuing="0" now_top_class_continuing="0" play_style="1" rating_value="20")
|
||||
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
|
||||
|
||||
@@ -48,16 +48,15 @@ IIDX27pc(status="0")
|
||||
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}
|
||||
is_track_ticket(__type="bool") #{Number(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")
|
||||
achieve_data(arena_class="19" best_top_class_continuing="0" now_top_class_continuing="0" play_style="0" rating_value="20")
|
||||
achieve_data(arena_class="19" best_top_class_continuing="0" now_top_class_continuing="0" play_style="1" rating_value="20")
|
||||
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
|
||||
|
||||
@@ -55,15 +55,14 @@ IIDX28pc(status="0")
|
||||
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}
|
||||
is_track_ticket(__type="bool") #{Number(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")
|
||||
arena_data(play_num="2" play_num_dp="1" play_num_sp="1" prev_best_class_sp="19" prev_best_class_dp="19")
|
||||
achieve_data(arena_class="19" best_top_class_continuing="0" now_top_class_continuing="0" counterattack_num="0" play_style="0" rating_value="20")
|
||||
achieve_data(arena_class="19" best_top_class_continuing="0" now_top_class_continuing="0" counterattack_num="0" play_style="1" rating_value="20")
|
||||
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
|
||||
|
||||
@@ -55,15 +55,14 @@ IIDX29pc(status="0")
|
||||
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}
|
||||
is_track_ticket(__type="bool") #{Number(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")
|
||||
arena_data(play_num="2" play_num_dp="1" play_num_sp="1" prev_best_class_sp="19" prev_best_class_dp="19")
|
||||
achieve_data(arena_class="19" best_top_class_continuing="0" now_top_class_continuing="0" counterattack_num="0" play_style="0" rating_value="20")
|
||||
achieve_data(arena_class="19" best_top_class_continuing="0" now_top_class_continuing="0" counterattack_num="0" play_style="1" rating_value="20")
|
||||
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
|
||||
|
||||
@@ -49,17 +49,16 @@ IIDX30pc(status="0")
|
||||
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}
|
||||
is_track_ticket(__type="bool") #{Number(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)
|
||||
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")
|
||||
cube_data(cube="0" season_id="0")
|
||||
arena_data(play_num="2" play_num_dp="1" play_num_sp="1" prev_best_class_sp="19" prev_best_class_dp="19")
|
||||
achieve_data(play_style="0" arena_class="19" 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="19" 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")
|
||||
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
|
||||
|
||||
@@ -55,16 +55,15 @@ IIDX31pc(status="0" qproback=custom.qpro_back)
|
||||
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}
|
||||
is_track_ticket(__type="bool") #{Number(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")
|
||||
arena_data(play_num="2" play_num_dp="1" play_num_sp="1" prev_best_class_sp="19" prev_best_class_dp="19")
|
||||
achieve_data(play_style="0" arena_class="19" 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="19" 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")
|
||||
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
|
||||
|
||||
@@ -55,27 +55,26 @@ IIDX32pc(status="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
|
||||
- for (let rsd of rsArray)
|
||||
rival(spdp=rsd.play_style id=rsd.profile[2] id_str=rsd.profile[3] djname=rsd.profile[0] pid=rsd.profile[1] sg=rsd.pcdata[0] dg=rsd.pcdata[1] sa=rsd.pcdata[2] da=rsd.pcdata[3])
|
||||
is_robo(__type="bool") 0
|
||||
qprodata(body=rsd.qprodata[3] face=rsd.qprodata[2] hair=rsd.qprodata[0] hand=rsd.qprodata[4] head=rsd.qprodata[1] back=rsd.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_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}
|
||||
is_track_ticket(__type="bool") #{Number(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
|
||||
arena_data(play_num="2" play_num_dp="1" play_num_sp="1" prev_best_class_sp="19" prev_best_class_dp="19")
|
||||
achieve_data(play_style="0" arena_class="19" 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="19" 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")
|
||||
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")
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
IIDX33pc(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 naviflg=pcdata.naviflg bgnasst=pcdata.bgnasst 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 s_laneobj_brignt=pcdata.s_laneobj_brignt d_laneobj_brignt=pcdata.d_laneobj_brignt)
|
||||
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_bg=lm_settings.brightness brightness_concentration=lm_settings.brightness_concent assistant_disp_type=lm_settings.assistant_disp_type assistant_last_tab=lm_settings.assistant_last_tab assistant_chara=lm_settings.assistant_chara)
|
||||
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]}
|
||||
pskin(__type="s32" __count="22") #{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} #{custom.cn_color} #{custom.cn_size}
|
||||
vskin(__type="s32" __count="4") #{lm_custom.premium_skin} #{lm_custom.premium_bg} #{lm_custom.premium_bg_concent} #{lm_custom.entry_bg}
|
||||
vskin_customize_setting(entry_bg_brightness=lm_custom.entry_bg_brightness)
|
||||
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
|
||||
- for (let rsd of rsArray)
|
||||
rival(spdp=rsd.play_style id=rsd.profile[2] id_str=rsd.profile[3] djname=rsd.profile[0] pid=rsd.profile[1] sg=rsd.pcdata[0] dg=rsd.pcdata[1] sa=rsd.pcdata[2] da=rsd.pcdata[3])
|
||||
is_robo(__type="bool") 0
|
||||
qprodata(body=rsd.qprodata[3] face=rsd.qprodata[2] hair=rsd.qprodata[0] hand=rsd.qprodata[4] head=rsd.qprodata[1] back=rsd.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]}
|
||||
dj_training
|
||||
sp(tier="0" step="0")
|
||||
if djtraining_sp != null
|
||||
each tiers, tierId in djtraining_sp
|
||||
each content, partId in tiers
|
||||
folder(index=partId-1 tier=tierId part=partId)
|
||||
each mid, musicIdx in content.mid
|
||||
music(index=musicIdx music_id=mid class_id=content.diff[musicIdx] clear_type=content.cflg[musicIdx])
|
||||
dp(tier="0" step="0")
|
||||
if djtraining_dp != null
|
||||
each tiers, tierId in djtraining_dp
|
||||
each content, partId in tiers
|
||||
folder(index=partId-1 tier=tierId part=partId)
|
||||
each mid, musicIdx in content.mid
|
||||
music(index=musicIdx music_id=mid class_id=content.diff[musicIdx] clear_type=content.cflg[musicIdx])
|
||||
krank(season_id="0" end_time="4102326000" element_get="0" element_use="0")
|
||||
enable_element_get(__type="bool") 1
|
||||
reset(__type="bool") 0
|
||||
sp(prev_season_skill="0" now_season_skill="0")
|
||||
//-music(index="" klevel="" music_id="" class_id="" clear_type="" play_num_best="" play_num_now="" play_num_total="") [loop]
|
||||
reset(__type="bool")
|
||||
dp(prev_season_skill="0" now_season_skill="0")
|
||||
//-music(index="" klevel="" music_id="" class_id="" clear_type="" play_num_best="" play_num_now="" play_num_total="") [loop]
|
||||
reset(__type="bool")
|
||||
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") #{Number(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_2="-1" triple_tribe_3="-1" triple_tribe_4="-1")
|
||||
arena_data(play_num="2" play_num_dp="1" play_num_sp="1" prev_best_class_sp="19" prev_best_class_dp="19")
|
||||
achieve_data(play_style="0" arena_class="19" 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="19" 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")
|
||||
default_chat
|
||||
pskin_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_lane_flg6="-1" skin_notes_flg="-1" skin_fullcombo_flg="-1" skin_keybeam_flg="-1" skin_judgestring_flg="-1")
|
||||
vskin_customize_flg(skin_subicon_flg="-1" skin_subbg_flg0="-1" skin_subbg_flg1="-1" skin_entry_flg0="-1" skin_entry_flg1="-1")
|
||||
event_1(event_play_num=pcdata.event_play_num last_select_room_id=pcdata.event_last_select_id)
|
||||
if pcdata.event_skip == true
|
||||
is_skip
|
||||
- for (let evt of sparkle_fl_room)
|
||||
room_data(room_id=evt.room_id play_num=evt.play_num play_num_uc=evt.play_num_uc play_num_ub=evt.play_num_ub clear_num=evt.clear_num last_select_crop_index=evt.last_select_crop_index room_prog=evt.room_prog)
|
||||
soul(__type="bool") #{evt.soul}
|
||||
- for (let evt2 of sparkle_fl_crop)
|
||||
room_crop_data(room_id=evt2.room_id index=evt2.index act_normal=evt2.act_normal act_shin=evt2.act_shin act_gi=evt2.act_gi act_tai=evt2.act_tai first_type=evt2.first_type)
|
||||
ultimate_mobile_link(music_list="-1")
|
||||
link_flag
|
||||
valkyrie_linkage(music_list_1="-1" music_list_2="-1" music_list_3="-1")
|
||||
popn_cheers(music_list="65535")
|
||||
triple_tribe_5(music_list="65535")
|
||||
triple_tribe_6(music_list="65535")
|
||||
bemani_summer(music_list="65535")
|
||||
language_setting(language=profile.language)
|
||||
movie_agreement(agreement_version="1")
|
||||
movie_setting
|
||||
hide_name(__type="bool") 0
|
||||
if sparkle_extra_boss != null
|
||||
extra_boss_event(phase=sparkle_extra_boss.phase progress=sparkle_extra_boss.progress progress_point_score=sparkle_extra_boss.progress_point_score progress_point_miss=sparkle_extra_boss.progress_point_miss unlock_point=sparkle_extra_boss.unlock_point)
|
||||
- for (let ebp of sparkle_extra_boss_play)
|
||||
extra_boss_play(phase=ebp.phase gauge_level=ebp.gauge_level extra_play_num=ebp.extra_play_num extra_clear_num=ebp.extra_clear_num onemore_play_num=ebp.onemore_play_num onemore_clear_num=ebp.onemore_clear_num)
|
||||
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}
|
||||
if sparkle_vocalo != null
|
||||
event_v(event_play_num=sparkle_vocalo.play_num last_select_music=sparkle_vocalo.last_select_music point_get=sparkle_vocalo.point_get point_use_0=sparkle_vocalo.point_use_0 point_use_1=sparkle_vocalo.point_use_1 booster_get=sparkle_vocalo.booster_get booster_use_0=sparkle_vocalo.booster_use_0 booster_use_1=sparkle_vocalo.booster_use_1)
|
||||
+46
-20
@@ -88,26 +88,22 @@ export function NumArrayToString(bits: number[], numArray: number[]): string {
|
||||
return result;
|
||||
}
|
||||
|
||||
export function GetVersion(info: EamuseInfo) {
|
||||
let version = -1;
|
||||
switch (info.model.slice(0, 3)) {
|
||||
case "GLD": return 14;
|
||||
case "HDD": return 15;
|
||||
case "I00": return 16;
|
||||
case "JDJ": return 17;
|
||||
case "JDZ": return 18;
|
||||
case "KDZ": return 19;
|
||||
case "LDJ":
|
||||
if (info.module.startsWith("IIDX")) {
|
||||
version = Number(info.module.slice(4, 6));
|
||||
if (_.isNaN(version) || version < 20) version = 20;
|
||||
} else {
|
||||
version = 20;
|
||||
}
|
||||
break;
|
||||
export function NumArrayToHex(bits: number[], numArray: number[]): string {
|
||||
let packed = 0;
|
||||
let totalBits = 0;
|
||||
|
||||
for (let i = 0; i < bits.length; i++) {
|
||||
const radix = Math.pow(2, bits[i]);
|
||||
const value = Math.trunc(numArray[i]);
|
||||
|
||||
packed = packed * radix + ((value % radix) + radix) % radix;
|
||||
totalBits += bits[i];
|
||||
}
|
||||
|
||||
return version;
|
||||
return packed
|
||||
.toString(16)
|
||||
.padStart(totalBits / 4, "0")
|
||||
.toUpperCase();
|
||||
}
|
||||
|
||||
export function appendSettingConverter(
|
||||
@@ -245,6 +241,36 @@ 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);
|
||||
export function GetVersion(info: EamuseInfo) {
|
||||
let version = -1;
|
||||
switch (info.model.slice(0, 3)) {
|
||||
case "C02": return 9;
|
||||
case "D01": return 10;
|
||||
case "E11": return 11;
|
||||
case "ECO": return 12;
|
||||
case "FDD": return 13;
|
||||
case "GLD": return 14;
|
||||
case "HDD": return 15;
|
||||
case "I00": return 16;
|
||||
case "JDJ": return 17;
|
||||
case "JDZ": return 18;
|
||||
case "KDZ": return 19;
|
||||
case "LDJ":
|
||||
version = Number(info.module.slice(4, 6));
|
||||
if (_.isNaN(version) || version == 0) version = 20;
|
||||
break;
|
||||
}
|
||||
|
||||
return version;
|
||||
}
|
||||
|
||||
export function GetModel(info: EamuseInfo) {
|
||||
return info.model.slice(0, 3);
|
||||
}
|
||||
|
||||
export function GetCommand(data: any) {
|
||||
let command = $(data).attr().command;
|
||||
if (_.isNil(command)) return null;
|
||||
|
||||
return command.split(' ');
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ $("#version").on("change", function () {
|
||||
$("#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);
|
||||
$("#first_note_preview").prop("checked", Number(data["custom"].first_note_preview) === 1);
|
||||
|
||||
if (data["custom"].note_size == undefined) $("#note_size").val(0);
|
||||
else $("#note_size").val(data["custom"].note_size);
|
||||
@@ -39,6 +39,10 @@ $("#version").on("change", function () {
|
||||
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);
|
||||
if (data["custom"].cn_color == undefined) $("#cn_color").val(0);
|
||||
else $("#cn_color").val(data["custom"].cn_color);
|
||||
if (data["custom"].cn_size == undefined) $("#cn_size").val(0);
|
||||
else $("#cn_size").val(data["custom"].cn_size);
|
||||
|
||||
$("#rank_folder").prop("checked", data["custom"].rank_folder);
|
||||
$("#clear_folder").prop("checked", data["custom"].clear_folder);
|
||||
@@ -68,9 +72,19 @@ $("#version").on("change", function () {
|
||||
if (data["lm_custom"] == null) {
|
||||
$("#lm_skin").val(0);
|
||||
$("#lm_bg").val(0);
|
||||
$("#lm_bg_2").val(0);
|
||||
$("#lm_entry_bg").val(0);
|
||||
$("#lm_entry_bg_bright").val(0);
|
||||
} else {
|
||||
$("#lm_skin").val(data["lm_custom"].premium_skin);
|
||||
$("#lm_bg").val(data["lm_custom"].premium_bg);
|
||||
|
||||
if (data["lm_custom"].premium_bg_concent == undefined) $("#lm_bg_2").val(0);
|
||||
else $("#lm_bg_2").val(data["lm_custom"].premium_bg_concent);
|
||||
if (data["lm_custom"].entry_bg == undefined) $("#lm_entry_bg").val(0);
|
||||
else $("#lm_entry_bg").val(data["lm_custom"].entry_bg);
|
||||
if (data["lm_custom"].entry_bg_brightness == undefined) $("#lm_entry_bg_bright").val(0);
|
||||
else $("#lm_entry_bg_bright").val(data["lm_custom"].entry_bg_brightness);
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
|
||||
@@ -4,6 +4,10 @@
|
||||
|
||||
-
|
||||
const version = [
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
@@ -22,7 +26,8 @@
|
||||
29,
|
||||
30,
|
||||
31,
|
||||
32
|
||||
32,
|
||||
33
|
||||
];
|
||||
|
||||
div
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,6 +2,7 @@
|
||||
profile: DB.FindOne(refid, { collection: "profile" })
|
||||
profiles: DB.Find(null, { collection: "profile" })
|
||||
rival: DB.Find(refid, { collection: "rival" })
|
||||
rival_sub: DB.Find(refid, { collection: "rival_sub" })
|
||||
|
||||
-
|
||||
let rival_list=[["", "None", "0000-0000"]];
|
||||
@@ -9,11 +10,15 @@
|
||||
rival_list.push([res.__refid, res.name, res.idstr])
|
||||
});
|
||||
|
||||
let my_sp_rival = [], my_dp_rival = [];
|
||||
let my_sp_rival = [], my_dp_rival = [], my_sp_rival_sub = [], my_dp_rival_sub = [];
|
||||
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;
|
||||
});
|
||||
rival_sub.forEach((res) => {
|
||||
if (res.play_style == 1) my_sp_rival_sub[res.index] = res.rival_refid;
|
||||
else if (res.play_style == 2) my_dp_rival_sub[res.index] = res.rival_refid;
|
||||
});
|
||||
|
||||
div
|
||||
.card
|
||||
@@ -111,6 +116,92 @@ div
|
||||
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
|
||||
label.label SP Rivals [SUB]
|
||||
.body
|
||||
.control
|
||||
.select
|
||||
select(name="sp_rival1_sub")
|
||||
each i in rival_list
|
||||
if my_sp_rival_sub[0] != null
|
||||
option(selected=i[0]==my_sp_rival_sub[0], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="sp_rival2_sub")
|
||||
each i in rival_list
|
||||
if my_sp_rival_sub[1] != null
|
||||
option(selected=i[0]==my_sp_rival_sub[1], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="sp_rival3_sub")
|
||||
each i in rival_list
|
||||
if my_sp_rival_sub[2] != null
|
||||
option(selected=i[0]==my_sp_rival_sub[2], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="sp_rival4_sub")
|
||||
each i in rival_list
|
||||
if my_sp_rival_sub[3] != null
|
||||
option(selected=i[0]==my_sp_rival_sub[3], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="sp_rival5_sub")
|
||||
each i in rival_list
|
||||
if my_sp_rival_sub[4] != null
|
||||
option(selected=i[0]==my_sp_rival_sub[4], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.field
|
||||
label.label DP Rivals [SUB]
|
||||
.body
|
||||
.control
|
||||
.select
|
||||
select(name="dp_rival1_sub")
|
||||
each i in rival_list
|
||||
if my_dp_rival_sub[0] != null
|
||||
option(selected=i[0]==my_dp_rival_sub[0], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="dp_rival2_sub")
|
||||
each i in rival_list
|
||||
if my_dp_rival_sub[1] != null
|
||||
option(selected=i[0]==my_dp_rival_sub[1], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="dp_rival3_sub")
|
||||
each i in rival_list
|
||||
if my_dp_rival_sub[2] != null
|
||||
option(selected=i[0]==my_dp_rival_sub[2], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="dp_rival4_sub")
|
||||
each i in rival_list
|
||||
if my_dp_rival_sub[3] != null
|
||||
option(selected=i[0]==my_dp_rival_sub[3], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="dp_rival5_sub")
|
||||
each i in rival_list
|
||||
if my_dp_rival_sub[4] != null
|
||||
option(selected=i[0]==my_dp_rival_sub[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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user