From 5ca14ab461a07c4c7f7feb922f7b350e22edcc09 Mon Sep 17 00:00:00 2001 From: vvo <> Date: Sat, 28 Sep 2024 12:23:20 +0800 Subject: [PATCH] fixed missing flareForce saving in score + added list of song difficulty changes in world.ts --- data/world.ts | 154 +++++++++++++++++++++++++++++++++++++++++-- handlers/ddrworld.ts | 20 ++++-- index.ts | 28 ++++++++ 3 files changed, 192 insertions(+), 10 deletions(-) diff --git a/data/world.ts b/data/world.ts index 6f39cd6..0a775d3 100644 --- a/data/world.ts +++ b/data/world.ts @@ -42,15 +42,159 @@ export const SONGS_WORLD = [ { mcode: 38735, limited_ary: [2, 2, 2, 2, -1, -1, 2, 2, 2, -1], diffLv: [3, 6, 10, 16, 0, 0, 6, 10, 16, 0] }, { mcode: 38728, limited_ary: [2, 2, 2, 2, -1, -1, 2, 2, 2, -1], diffLv: [3, 7, 12, 15, 0, 0, 7, 12, 15, 0] }, - { mcode: 38624, limited_ary: [2, 2, 2, 2, 2, -1, 2, 2, 2, 2], diffLv: [2, 5, 10, 15, 17, 0, 5, 10, 15, 17] }, - { mcode: 38623, limited_ary: [2, 2, 2, 2, 2, -1, 2, 2, 2, 2], diffLv: [3, 11, 15, 17, 18, 0, 11, 14, 17, 18] }, - { mcode: 38628, limited_ary: [2, 2, 2, 2, -1, -1, 2, 2, 2, -1], diffLv: [5, 9, 14, 18, 0, 0, 9, 14, 18, 0] }, - { mcode: 38746, limited_ary: [2, 2, 2, 2, -1, -1, 2, 2, 2, -1], diffLv: [4, 8, 14, 16, 0, 0, 8, 14, 16, 0] }, { mcode: 38745, limited_ary: [2, 2, 2, 2, -1, -1, 2, 2, 2, -1], diffLv: [3, 7, 12, 16, 0, 0, 7, 12, 16, 0] }, { mcode: 38744, limited_ary: [2, 2, 2, 2, -1, -1, 2, 2, 2, -1], diffLv: [4, 7, 13, 17, 0, 0, 7, 13, 17, 0] }, { mcode: 38747, limited_ary: [2, 2, 2, 2, -1, -1, 2, 2, 2, -1], diffLv: [4, 10, 15, 18, 0, 0, 10, 15, 18, 0] }, - { mcode: 38748, limited_ary: [2, 2, 2, 2, -1, -1, 2, 2, 2, -1], diffLv: [4, 9, 13, 16, 0, 0, 9, 13, 16, 0] } + { mcode: 38748, limited_ary: [2, 2, 2, 2, -1, -1, 2, 2, 2, -1], diffLv: [4, 9, 13, 16, 0, 0, 9, 13, 16, 0] }, +] + +export const SONGS_OVERRIDE_WORLD = [ + // Override info for old songs + { mcode: 38624, limited_ary: [2, 2, 2, 2, 2, -1, 2, 2, 2, 2], diffLv: [2, 5, 10, 15, 17, 0, 5, 10, 15, 17] }, + { mcode: 38623, limited_ary: [2, 2, 2, 2, 2, -1, 2, 2, 2, 2], diffLv: [3, 11, 15, 17, 18, 0, 11, 14, 17, 18] }, + { mcode: 38628, limited_ary: [2, 2, 2, 2, -1, -1, 2, 2, 2, -1], diffLv: [5, 9, 14, 18, 0, 0, 9, 14, 18, 0] }, + + { mcode: 11, limited_ary: [], diffLv: [3, 6, 6, 10, 10, 0, 6, 8, 9, 10] }, + { mcode: 13, limited_ary: [], diffLv: [4, 6, 8, 9, 12, 0, 7, 8, 9, 12] }, + { mcode: 84, limited_ary: [], diffLv: [3, 7, 8, 11, 0, 0, 9, 11, 12, 0] }, + { mcode: 137, limited_ary: [], diffLv: [2, 3, 6, 8, 0, 0, 5, 6, 8, 0] }, + { mcode: 126, limited_ary: [], diffLv: [3, 6, 10, 12, 12, 0, 7, 8, 11, 12] }, + { mcode: 128, limited_ary: [], diffLv: [4, 7, 8, 10, 0, 0, 5, 9, 13, 0] }, + { mcode: 182, limited_ary: [], diffLv: [2, 2, 4, 7, 0, 0, 3, 5, 8, 0] }, + { mcode: 155, limited_ary: [], diffLv: [3, 5, 7, 11, 0, 0, 5, 7, 12, 0] }, + { mcode: 221, limited_ary: [], diffLv: [3, 6, 8, 11, 0, 0, 7, 8, 10, 0] }, + { mcode: 159, limited_ary: [], diffLv: [5, 7, 8, 11, 0, 0, 4, 8, 10, 0] }, + { mcode: 160, limited_ary: [], diffLv: [5, 9, 10, 12, 0, 0, 7, 10, 13, 0] }, + { mcode: 257, limited_ary: [], diffLv: [3, 5, 7, 10, 0, 0, 6, 8, 11, 0] }, + { mcode: 267, limited_ary: [], diffLv: [4, 7, 9, 12, 0, 0, 8, 9, 13, 0] }, + { mcode: 238, limited_ary: [], diffLv: [5, 6, 9, 12, 0, 0, 7, 9, 12, 0] }, + { mcode: 365, limited_ary: [], diffLv: [4, 5, 7, 10, 0, 0, 4, 7, 10, 0] }, + { mcode: 472, limited_ary: [], diffLv: [3, 4, 6, 9, 0, 0, 5, 7, 9, 0] }, + { mcode: 480, limited_ary: [], diffLv: [5, 6, 8, 12, 12, 0, 7, 8, 12, 11] }, + { mcode: 478, limited_ary: [], diffLv: [3, 4, 7, 10, 0, 0, 6, 9, 11, 0] }, + { mcode: 436, limited_ary: [], diffLv: [4, 5, 7, 12, 0, 0, 5, 8, 12, 0] }, + { mcode: 429, limited_ary: [], diffLv: [3, 6, 7, 9, 0, 0, 5, 7, 11, 0] }, + { mcode: 476, limited_ary: [], diffLv: [3, 4, 7, 10, 0, 0, 4, 7, 10, 0] }, + { mcode: 467, limited_ary: [], diffLv: [2, 4, 7, 9, 0, 0, 4, 7, 11, 0] }, + { mcode: 437, limited_ary: [], diffLv: [3, 5, 7, 8, 0, 0, 4, 7, 9, 0] }, + { mcode: 33811, limited_ary: [], diffLv: [2, 3, 9, 11, 0, 0, 3, 6, 10, 0] }, + { mcode: 36914, limited_ary: [], diffLv: [2, 3, 7, 12, 0, 0, 4, 9, 11, 0] }, + { mcode: 415, limited_ary: [], diffLv: [3, 4, 7, 11, 0, 0, 5, 7, 10, 0] }, + { mcode: 33818, limited_ary: [], diffLv: [7, 10, 13, 15, 16, 0, 10, 12, 15, 17] }, + { mcode: 33806, limited_ary: [], diffLv: [3, 7, 9, 10, 0, 0, 8, 10, 12, 0] }, + { mcode: 33048, limited_ary: [], diffLv: [3, 6, 7, 11, 0, 0, 5, 7, 8, 0] }, + { mcode: 36931, limited_ary: [], diffLv: [4, 4, 8, 10, 0, 0, 4, 8, 10, 0] }, + { mcode: 36873, limited_ary: [], diffLv: [5, 5, 9, 11, 0, 0, 4, 9, 11, 0] }, + { mcode: 36935, limited_ary: [], diffLv: [3, 6, 8, 11, 0, 0, 5, 8, 11, 0] }, + { mcode: 36878, limited_ary: [], diffLv: [3, 4, 7, 9, 0, 0, 4, 7, 9, 0] }, + { mcode: 37267, limited_ary: [], diffLv: [3, 4, 7, 10, 0, 0, 5, 7, 11, 0] }, + { mcode: 37190, limited_ary: [], diffLv: [3, 5, 7, 9, 11, 0, 5, 7, 9, 12] }, + { mcode: 37121, limited_ary: [], diffLv: [3, 7, 9, 13, 0, 0, 6, 9, 12, 0] }, + { mcode: 37290, limited_ary: [], diffLv: [2, 5, 9, 12, 0, 0, 5, 7, 12, 0] }, + { mcode: 37295, limited_ary: [], diffLv: [4, 6, 9, 11, 0, 0, 7, 8, 11, 0] }, + { mcode: 37408, limited_ary: [], diffLv: [2, 3, 7, 9, 0, 0, 5, 6, 9, 0] }, + { mcode: 37228, limited_ary: [], diffLv: [2, 4, 7, 11, 0, 0, 5, 7, 11, 0] }, + { mcode: 37686, limited_ary: [], diffLv: [2, 4, 7, 10, 8, 0, 4, 7, 11, 8] }, + { mcode: 37623, limited_ary: [], diffLv: [2, 4, 6, 9, 12, 0, 4, 7, 10, 12] }, + { mcode: 37694, limited_ary: [], diffLv: [2, 5, 8, 11, 13, 0, 5, 8, 11, 13] }, + { mcode: 37666, limited_ary: [], diffLv: [3, 5, 8, 11, 0, 0, 4, 8, 13, 0] }, + { mcode: 37749, limited_ary: [], diffLv: [4, 6, 9, 12, 16, 0, 6, 9, 12, 16] }, + { mcode: 37511, limited_ary: [], diffLv: [2, 4, 7, 9, 0, 0, 4, 7, 9, 0] }, + { mcode: 37698, limited_ary: [], diffLv: [2, 2, 8, 11, 0, 0, 2, 9, 11, 0] }, + { mcode: 37662, limited_ary: [], diffLv: [3, 8, 10, 14, 16, 0, 9, 11, 15, 16] }, + { mcode: 37532, limited_ary: [], diffLv: [2, 4, 6, 9, 0, 0, 5, 7, 10, 0] }, + { mcode: 37644, limited_ary: [], diffLv: [3, 6, 11, 15, 18, 0, 6, 9, 14, 18] }, + { mcode: 37803, limited_ary: [], diffLv: [2, 4, 8, 12, 15, 0, 4, 8, 12, 15] }, + { mcode: 37775, limited_ary: [], diffLv: [2, 5, 7, 10, 13, 0, 5, 8, 11, 13] }, + { mcode: 37784, limited_ary: [], diffLv: [2, 4, 7, 9, 0, 0, 4, 6, 9, 0] }, + { mcode: 37765, limited_ary: [], diffLv: [2, 4, 7, 10, 0, 0, 4, 7, 11, 0] }, + { mcode: 37586, limited_ary: [], diffLv: [2, 4, 7, 9, 0, 0, 5, 8, 10, 0] }, + { mcode: 37793, limited_ary: [], diffLv: [3, 6, 7, 10, 0, 0, 6, 7, 11, 0] }, + { mcode: 37736, limited_ary: [], diffLv: [2, 4, 8, 10, 0, 0, 4, 8, 10, 0] }, + { mcode: 37794, limited_ary: [], diffLv: [3, 4, 7, 11, 12, 0, 5, 7, 11, 12] }, + { mcode: 37798, limited_ary: [], diffLv: [2, 5, 7, 11, 0, 0, 3, 7, 11, 0] }, + { mcode: 37862, limited_ary: [], diffLv: [2, 5, 8, 13, 0, 0, 5, 9, 13, 0] }, + { mcode: 37657, limited_ary: [], diffLv: [2, 3, 8, 10, 0, 0, 4, 8, 10, 0] }, + { mcode: 37587, limited_ary: [], diffLv: [2, 5, 7, 9, 0, 0, 5, 7, 10, 0] }, + { mcode: 37840, limited_ary: [], diffLv: [2, 4, 8, 11, 10, 0, 4, 8, 11, 11] }, + { mcode: 37800, limited_ary: [], diffLv: [3, 5, 10, 12, 16, 0, 6, 9, 12, 16] }, + { mcode: 37565, limited_ary: [], diffLv: [2, 5, 7, 12, 0, 0, 5, 7, 11, 0] }, + { mcode: 37588, limited_ary: [], diffLv: [2, 4, 6, 9, 0, 0, 4, 6, 9, 0] }, + { mcode: 37907, limited_ary: [], diffLv: [3, 7, 9, 13, 16, 0, 7, 10, 13, 16] }, + { mcode: 37930, limited_ary: [], diffLv: [2, 7, 9, 14, 13, 0, 7, 9, 14, 13] }, + { mcode: 37827, limited_ary: [], diffLv: [2, 5, 8, 11, 0, 0, 5, 9, 11, 0] }, + { mcode: 37543, limited_ary: [], diffLv: [2, 3, 7, 9, 13, 0, 4, 7, 9, 13] }, + { mcode: 37239, limited_ary: [], diffLv: [3, 4, 7, 12, 15, 0, 4, 7, 12, 15] }, + { mcode: 37934, limited_ary: [], diffLv: [3, 7, 10, 14, 0, 0, 6, 10, 14, 0] }, + { mcode: 37908, limited_ary: [], diffLv: [3, 7, 9, 11, 13, 0, 6, 9, 11, 13] }, + { mcode: 37597, limited_ary: [], diffLv: [2, 4, 6, 10, 0, 0, 4, 6, 10, 0] }, + { mcode: 37927, limited_ary: [], diffLv: [2, 6, 9, 13, 0, 0, 6, 9, 13, 0] }, + { mcode: 37932, limited_ary: [], diffLv: [3, 4, 11, 16, 9, 0, 7, 12, 16, 9] }, + { mcode: 37889, limited_ary: [], diffLv: [2, 7, 9, 12, 15, 0, 7, 10, 12, 15] }, + { mcode: 37965, limited_ary: [], diffLv: [2, 4, 8, 10, 0, 0, 5, 9, 13, 0] }, + { mcode: 37887, limited_ary: [], diffLv: [2, 5, 8, 11, 13, 0, 5, 8, 11, 13] }, + { mcode: 38030, limited_ary: [], diffLv: [6, 10, 13, 16, 18, 0, 9, 13, 16, 18] }, + { mcode: 38032, limited_ary: [], diffLv: [8, 12, 15, 16, 19, 0, 12, 16, 18, 19] }, + { mcode: 38027, limited_ary: [], diffLv: [3, 7, 12, 15, 0, 0, 7, 12, 15, 0] }, + { mcode: 38051, limited_ary: [], diffLv: [7, 10, 13, 17, 0, 0, 10, 13, 18, 0] }, + { mcode: 37988, limited_ary: [], diffLv: [3, 4, 10, 14, 0, 0, 4, 10, 14, 0] }, + { mcode: 38010, limited_ary: [], diffLv: [4, 8, 11, 15, 18, 0, 7, 12, 15, 18] }, + { mcode: 38054, limited_ary: [], diffLv: [4, 6, 11, 15, 0, 0, 6, 11, 15, 0] }, + { mcode: 38079, limited_ary: [], diffLv: [2, 5, 8, 10, 0, 0, 5, 8, 10, 0] }, + { mcode: 38149, limited_ary: [], diffLv: [9, 13, 16, 18, 19, 0, 13, 16, 18, 19] }, + { mcode: 38092, limited_ary: [], diffLv: [2, 5, 9, 12, 0, 0, 4, 9, 12, 0] }, + { mcode: 38069, limited_ary: [], diffLv: [2, 5, 9, 13, 0, 0, 5, 9, 13, 0] }, + { mcode: 38218, limited_ary: [], diffLv: [9, 12, 16, 18, 19, 0, 12, 16, 18, 19] }, + { mcode: 38215, limited_ary: [], diffLv: [3, 6, 8, 11, 14, 0, 5, 8, 12, 14] }, + { mcode: 38199, limited_ary: [], diffLv: [2, 3, 8, 11, 0, 0, 3, 8, 11, 0] }, + { mcode: 38187, limited_ary: [], diffLv: [3, 5, 9, 12, 0, 0, 5, 9, 12, 0] }, + { mcode: 38122, limited_ary: [], diffLv: [4, 6, 10, 13, 0, 0, 7, 10, 13, 0] }, + { mcode: 38207, limited_ary: [], diffLv: [2, 4, 8, 13, 15, 0, 5, 9, 13, 15] }, + { mcode: 38073, limited_ary: [], diffLv: [2, 4, 10, 13, 0, 0, 5, 11, 13, 0] }, + { mcode: 38160, limited_ary: [], diffLv: [4, 5, 10, 13, 0, 0, 5, 11, 13, 0] }, + { mcode: 38104, limited_ary: [], diffLv: [4, 6, 9, 12, 0, 0, 6, 10, 12, 0] }, + { mcode: 38103, limited_ary: [], diffLv: [3, 7, 11, 15, 16, 0, 7, 11, 15, 17] }, + { mcode: 38209, limited_ary: [], diffLv: [2, 3, 8, 11, 0, 0, 3, 8, 11, 0] }, + { mcode: 38186, limited_ary: [], diffLv: [3, 5, 10, 14, 0, 0, 5, 10, 14, 0] }, + { mcode: 38158, limited_ary: [], diffLv: [3, 6, 10, 13, 0, 0, 7, 11, 13, 0] }, + { mcode: 38189, limited_ary: [], diffLv: [2, 4, 8, 12, 0, 0, 5, 9, 12, 0] }, + { mcode: 38219, limited_ary: [], diffLv: [4, 10, 14, 17, 18, 0, 10, 14, 18, 18] }, + { mcode: 38268, limited_ary: [], diffLv: [2, 5, 10, 13, 0, 0, 5, 10, 14, 0] }, + { mcode: 38274, limited_ary: [], diffLv: [2, 3, 7, 11, 0, 0, 4, 7, 11, 0] }, + { mcode: 38273, limited_ary: [], diffLv: [3, 5, 9, 12, 0, 0, 5, 9, 11, 0] }, + { mcode: 38231, limited_ary: [], diffLv: [2, 5, 8, 11, 0, 0, 5, 8, 10, 0] }, + { mcode: 38332, limited_ary: [], diffLv: [5, 8, 13, 16, 0, 0, 8, 13, 16, 0] }, + { mcode: 38395, limited_ary: [], diffLv: [3, 6, 10, 14, 18, 0, 6, 10, 14, 18] }, + { mcode: 38316, limited_ary: [], diffLv: [2, 6, 10, 14, 15, 0, 6, 10, 14, 14] }, + { mcode: 38410, limited_ary: [], diffLv: [5, 10, 14, 17, 0, 0, 10, 14, 18, 0] }, + { mcode: 38343, limited_ary: [], diffLv: [3, 7, 10, 14, 0, 0, 7, 10, 14, 0] }, + { mcode: 38377, limited_ary: [], diffLv: [3, 7, 10, 15, 0, 0, 7, 10, 15, 0] }, + { mcode: 38423, limited_ary: [], diffLv: [4, 9, 12, 16, 0, 0, 9, 12, 16, 0] }, + { mcode: 38380, limited_ary: [], diffLv: [3, 5, 8, 11, 0, 0, 4, 8, 10, 0] }, + { mcode: 38384, limited_ary: [], diffLv: [2, 4, 7, 10, 0, 0, 4, 7, 10, 0] }, + { mcode: 38440, limited_ary: [], diffLv: [2, 4, 8, 12, 14, 0, 4, 8, 12, 14] }, + { mcode: 38562, limited_ary: [], diffLv: [2, 5, 10, 13, 0, 0, 5, 11, 14, 0] }, + { mcode: 38591, limited_ary: [], diffLv: [6, 10, 15, 18, 19, 0, 10, 15, 18, 19] }, + { mcode: 37224, limited_ary: [], diffLv: [2, 6, 10, 15, 0, 0, 6, 11, 15, 0] }, + { mcode: 38598, limited_ary: [], diffLv: [2, 7, 12, 17, 0, 0, 7, 12, 17, 0] }, + { mcode: 38406, limited_ary: [], diffLv: [6, 11, 15, 17, 18, 0, 11, 15, 17, 18] }, + { mcode: 38555, limited_ary: [], diffLv: [2, 4, 10, 14, 0, 0, 5, 10, 14, 0] }, + { mcode: 38614, limited_ary: [], diffLv: [2, 5, 10, 14, 0, 0, 5, 10, 14, 0] }, + { mcode: 38547, limited_ary: [], diffLv: [4, 9, 14, 17, 0, 0, 9, 15, 17, 0] }, + { mcode: 38558, limited_ary: [], diffLv: [2, 5, 10, 14, 0, 0, 5, 10, 13, 0] }, + { mcode: 37233, limited_ary: [], diffLv: [2, 5, 7, 11, 0, 0, 5, 8, 11, 0] }, + { mcode: 38552, limited_ary: [], diffLv: [2, 8, 13, 16, 0, 0, 8, 13, 16, 0] }, + { mcode: 37523, limited_ary: [], diffLv: [2, 6, 9, 12, 0, 0, 5, 9, 12, 0] }, + { mcode: 38597, limited_ary: [], diffLv: [2, 7, 12, 18, 0, 0, 7, 12, 18, 0] }, + { mcode: 38570, limited_ary: [], diffLv: [2, 3, 7, 13, 0, 0, 3, 7, 13, 0] }, + { mcode: 37563, limited_ary: [], diffLv: [2, 5, 7, 11, 0, 0, 5, 7, 11, 0] }, + { mcode: 37308, limited_ary: [], diffLv: [2, 5, 9, 13, 0, 0, 4, 9, 13, 0] }, + { mcode: 38605, limited_ary: [], diffLv: [4, 7, 11, 15, 18, 0, 7, 11, 15, 17] }, + { mcode: 38602, limited_ary: [], diffLv: [2, 4, 7, 11, 0, 0, 4, 7, 11, 0] }, + { mcode: 37435, limited_ary: [], diffLv: [2, 6, 11, 14, 0, 0, 7, 12, 15, 0] }, + { mcode: 38643, limited_ary: [], diffLv: [2, 5, 9, 13, 16, 0, 4, 9, 13, 16] }, + { mcode: 38516, limited_ary: [], diffLv: [4, 8, 11, 14, 17, 0, 7, 11, 14, 17] } ] export const EVENTS_WORLD = [ diff --git a/handlers/ddrworld.ts b/handlers/ddrworld.ts index b115722..0e9e5d7 100644 --- a/handlers/ddrworld.ts +++ b/handlers/ddrworld.ts @@ -1,6 +1,6 @@ import { Profile } from "../models/profile"; import { ProfileWorld, ScoreWorld, EventWorld, GhostWorld, RivalWorld } from "../models/ddrworld"; -import { SONGS_WORLD, EVENTS_WORLD } from "../data/world"; +import { SONGS_WORLD, SONGS_OVERRIDE_WORLD, EVENTS_WORLD } from "../data/world"; // needs to be faster function getLastGhostId(ghost: any) { @@ -54,7 +54,9 @@ async function saveScores(refid: string, songId: number, style: number, difficul rank, clearKind, score, - exScore + exScore, + maxCombo, + flareForce } }); @@ -423,14 +425,14 @@ export const playerdataload: EPR = async (info, data, send) => { */ scr[(scoreData.style === 0) ? 'score_single' : 'score_double'] = [ { - score_str: K.ITEM('str', scoreData.difficulty + ',1,' + scoreData.rank + ',' + scoreData.clearKind + ',' + scoreData.score + ',' + scoreData.ghostId + ',' + scoreData.flareForce + ',' + scoreData.flareForce) + score_str: K.ITEM('str', scoreData.difficulty + ',1,' + scoreData.rank + ',' + scoreData.clearKind + ',' + scoreData.score + ',' + scoreData.ghostId + ',' + (scoreData.flareForce ? scoreData.flareForce : '-1') + ',' + (scoreData.flareForce ? scoreData.flareForce : '-1')) } ] scoreFin.push(scr) } else { scoreFin[mcodeIndex][(scoreData.style === 0) ? 'score_single' : 'score_double'].push({ - score_str: K.ITEM('str', scoreData.difficulty + ',1,' + scoreData.rank + ',' + scoreData.clearKind + ',' + scoreData.score + ',' + scoreData.ghostId + ',' + scoreData.flareForce + ',' + scoreData.flareForce) + score_str: K.ITEM('str', scoreData.difficulty + ',1,' + scoreData.rank + ',' + scoreData.clearKind + ',' + scoreData.score + ',' + scoreData.ghostId + ',' + (scoreData.flareForce ? scoreData.flareForce : '-1') + ',' + (scoreData.flareForce ? scoreData.flareForce : '-1')) }) } } @@ -563,8 +565,16 @@ export const musicdataload: EPR = async (info, data, send) => { for(const music of mdb['mdb']['music']) { let difficultyArr = $(music).numbers('diffLv') let limited = ($(music).number('limited')) ? $(music).number('limited') : 0 + let limitedAry = ($(music).numbers('limited_ary')) ? $(music).numbers('limited_ary') : [] + + let overrideIndex = SONGS_OVERRIDE_WORLD.findIndex(s => s.mcode === $(music).number('mcode')) + if(overrideIndex > -1) { + limitedAry = (SONGS_OVERRIDE_WORLD[overrideIndex]['limited_ary'] !== [] ? SONGS_OVERRIDE_WORLD[overrideIndex]['limited_ary'] : limitedAry) + difficultyArr = SONGS_OVERRIDE_WORLD[overrideIndex]['diffLv'] + } + for(const [index, diff] of difficultyArr.entries()) { - limited = ($(music).numbers('limited_ary')) ? $(music).numbers('limited_ary')[index] : limited + limited = (limitedAry) ? limitedAry[index] : limited limited = ((index % 5 === 4) && $(music).number('limited_cha')) ? $(music).number('limited_cha') : limited musicList.push({ music_str: K.ITEM('str', $(music).number('mcode') + ',' + ((index > 4) ? '1,' : '0,') + (index % 5) + ',' + limited + ',' + diff) diff --git a/index.ts b/index.ts index 6f7f155..f2820b6 100644 --- a/index.ts +++ b/index.ts @@ -5,6 +5,7 @@ import { usergamedata_send } from "./handlers/usergamedata_send"; import { musicdataload, playerdatanew, playerdatasave, playerdataload, rivaldataload, ghostdataload, taboowordcheck, minidump } from "./handlers/ddrworld"; import { CommonOffset, OptionOffset, Profile } from "./models/profile"; import { ProfileWorld } from "./models/ddrworld"; +import { SONGS_WORLD, SONGS_OVERRIDE_WORLD } from "./data/world" export function register() { R.GameCode("MDX"); @@ -182,4 +183,31 @@ export function register() { } }); }); + + R.WebUIEvent("getMDB", async (data: {}, send: WebUISend) => { + let mdbData = [] + if(IO.Exists('data/musicdb.xml')) { + let mdb = U.parseXML(U.DecodeString(await IO.ReadFile('data/musicdb.xml'), "shift_jis"), false) + mdb['mdb']['music'].forEach(music => { + if(SONGS_OVERRIDE_WORLD.findIndex(so => so.mcode === $(music).number('mcode')) < 0) { + let diffLv = music.diffLv + mdbData.push({ + mcode: $(music).number('mcode'), + diffLv: $(music).numbers('diffLv') + }) + } + }) + SONGS_WORLD.concat(SONGS_OVERRIDE_WORLD).forEach(sw => { + let mIndex = mdbData.findIndex(m => m.mcode === sw.mcode) + if(mIndex > -1) mdbData[mIndex]['diffLv'] = sw.diffLv + else { + mdbData.push({ + mcode: sw.mcode, + diffLv: sw.diffLv + }) + } + }) + } + send.json({mdb: mdbData}) + }) }