mirror of
https://github.com/laochan-eacnet/backend.git
synced 2026-09-29 10:18:00 +03:00
85 lines
2.4 KiB
TypeScript
85 lines
2.4 KiB
TypeScript
import { existsSync, readFileSync } from "node:fs";
|
|
import { parser, toObject } from "../utils/kbinxml.js";
|
|
import { Serializable, v } from "../utils/kxml-value.js";
|
|
import { Mdb } from "../types/gitadora/data.js";
|
|
|
|
export const musicinfo: Serializable = (() => {
|
|
if (!existsSync('data/mdb_knst.xml')) {
|
|
throw new Error('data/mdb_knst.xml not found!!');
|
|
}
|
|
|
|
const xml = readFileSync('data/mdb_knst.xml');
|
|
const mdb = toObject(parser.parse(xml)).mdb as Mdb;
|
|
|
|
return {
|
|
$nr: mdb.mdb_data.length,
|
|
music: mdb.mdb_data.map(m => ({
|
|
id: v.s32(m.music_id),
|
|
diff: v.u16(m.xg_diff_list),
|
|
cont_gf: v.bool(!!m.contain_stat[0]),
|
|
cont_dm: v.bool(!!m.contain_stat[1]),
|
|
is_cont: v.bool(true),
|
|
is_secret: v.bool(false),
|
|
is_hot: v.bool(((m.contain_stat[0] & 1) != 0) || ((m.contain_stat[1] & 1) != 0)),
|
|
data_ver: v.s32(m.data_ver),
|
|
knst_pack: v.s32(0), // v.s32(m.knst_pack),
|
|
ifs_ver: v.s32(m.ifs_ver),
|
|
}))
|
|
}
|
|
})();
|
|
|
|
export const event = [{
|
|
data_id: v.s32(8),
|
|
data_version: v.s32(200),
|
|
event_id: v.s32(0),
|
|
event_type: v.s32(18),
|
|
start_date: v.u64(1615510800000),
|
|
end_date: v.u64(4771493999000),
|
|
is_open: v.bool(true),
|
|
bg_no: v.s32(0),
|
|
target_musicid: v.s32([-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]),
|
|
clear_border: v.s32(2),
|
|
reward_musicid: v.s32([-1, -1, 2708, 2709]),
|
|
reward_stickerid: v.s32(-1),
|
|
firstbit: v.s32(0),
|
|
event_skill_id: v.s32(0),
|
|
quest_no: v.s32(0),
|
|
url: v.str(''),
|
|
},
|
|
{
|
|
data_id: v.s32(9),
|
|
data_version: v.s32(200),
|
|
event_id: v.s32(0),
|
|
event_type: v.s32(18),
|
|
start_date: v.u64(1618966800000),
|
|
end_date: v.u64(4771493999000),
|
|
is_open: v.bool(true),
|
|
bg_no: v.s32(0),
|
|
target_musicid: v.s32([-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]),
|
|
clear_border: v.s32(2),
|
|
reward_musicid: v.s32([-1, -1, -1, 2710]),
|
|
reward_stickerid: v.s32(-1),
|
|
firstbit: v.s32(0),
|
|
event_skill_id: v.s32(0),
|
|
quest_no: v.s32(0),
|
|
url: v.str(''),
|
|
},
|
|
{
|
|
data_id: v.s32(87),
|
|
data_version: v.s32(220),
|
|
event_id: v.s32(0),
|
|
event_type: v.s32(3),
|
|
start_date: v.u64(1743469200000),
|
|
end_date: v.u64(1745765999000),
|
|
is_open: v.bool(true),
|
|
bg_no: v.s32(0),
|
|
target_musicid: v.s32([-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]),
|
|
clear_border: v.s32(25000000),
|
|
reward_musicid: v.s32([-1, -1, -1, 1118]),
|
|
reward_stickerid: v.s32(-1),
|
|
firstbit: v.s32(0),
|
|
event_skill_id: v.s32(0),
|
|
quest_no: v.s32(62),
|
|
url: v.str(''),
|
|
}];
|