IIDX: Exposed more pc.common attributes to plugin settings

IIDX: Fixed couple of events saving
This commit is contained in:
duel0213 2024-02-18 19:03:26 +09:00
parent 8fa3349b88
commit 28538c17dd
5 changed files with 297 additions and 64 deletions

View File

@ -11,12 +11,10 @@ export const pccommon: EPR = async (info, data, send) => {
const version = GetVersion(info);
let result: any = {
"@attr": {
expire: 300,
},
ir: K.ATTR({
beat: String(U.GetConfig("BeatPhase")),
}),
"@attr": { expire: 300 },
ir: K.ATTR({ beat: String(U.GetConfig("BeatPhase")) }),
expert: K.ATTR({ phase: String(U.GetConfig("ExpertPhase")) }),
expert_random_secret: K.ATTR({ phase: String(U.GetConfig("ExpertRandomPhase")) }),
}
// have no idea what some of attribute or value does //
@ -63,37 +61,35 @@ export const pccommon: EPR = async (info, data, send) => {
case 21:
result = {
...result,
limit: K.ATTR({ phase: String(4) }),
boss: K.ATTR({ phase: String(3) }),
boss1: K.ATTR({ phase: String(4) }),
limit: K.ATTR({ phase: String(U.GetConfig("sp_limit")) }),
boss: K.ATTR({ phase: String(U.GetConfig("sp_boss")) }),
boss1: K.ATTR({ phase: String(U.GetConfig("sp_boss1")) }),
medal: K.ATTR({ phase: String(1) }),
vip_pass_black: {},
cafe: K.ATTR({ open: String(1) }),
tricolettepark: K.ATTR({ open: String(1) }),
tricolettepark_skip: K.ATTR({ phase: String(2) }),
cafe: K.ATTR({ open: String(Number(U.GetConfig("sp_cafe"))) }),
tricolettepark: K.ATTR({ open: String(Number(U.GetConfig("sp_tripark"))) }),
tricolettepark_skip: K.ATTR({ phase: String(U.GetConfig("sp_triparkskip")) }),
deller_bonus: K.ATTR({ open: String(1) }),
gumi_event: {},
newsong_another: K.ATTR({ open: String(1) }),
superstar: K.ATTR({ phase: String(2) }),
superstar: K.ATTR({ phase: String(U.GetConfig("sp_superstar")) }),
}
break;
case 22:
result = {
...result,
pre_play: K.ATTR({ phase: String(2) }),
expert: K.ATTR({ phase: String(2) }),
toho_remix: K.ATTR({ phase: String(2) }),
expert_random_secret: K.ATTR({ phase: String(2) }),
limit: K.ATTR({ phase: String(9) }),
boss: K.ATTR({ phase: String(3) }),
chrono_diver: K.ATTR({ phase: String(3) }),
qpronicle_chord: K.ATTR({ phase: String(2) }),
pre_play: K.ATTR({ phase: String(U.GetConfig("pd_preplay")) }),
toho_remix: K.ATTR({ phase: String(U.GetConfig("pd_tohoremix")) }),
limit: K.ATTR({ phase: String(U.GetConfig("pd_limit")) }),
boss: K.ATTR({ phase: String(U.GetConfig("pd_boss")) }),
chrono_diver: K.ATTR({ phase: String(U.GetConfig("pd_chronodiver")) }),
qpronicle_chord: K.ATTR({ phase: String(U.GetConfig("pd_qproniclechord")) }),
vip_pass_black: {},
cc_collabo_event: K.ATTR({ phase: String(3) }),
cc_collabo_event: K.ATTR({ phase: String(U.GetConfig("pd_cccollabo")) }),
cc_collabo_license: {},
deller_bonus: K.ATTR({ open: String(1) }),
newsong_another: K.ATTR({ open: String(1) }),
common_timeshift_phase: K.ATTR({ phase: String(0) }),
common_timeshift_phase: K.ATTR({ phase: String(U.GetConfig("pd_timephase")) }),
expert_secret_full_open: {},
eappli_expert: {},
eaorder: {},
@ -102,12 +98,10 @@ export const pccommon: EPR = async (info, data, send) => {
case 23:
result = {
...result,
expert: K.ATTR({ phase: String(1) }),
expert_random_secret: K.ATTR({ phase: String(2) }),
boss: K.ATTR({ phase: String(3) }),
event1_phase: K.ATTR({ phase: String(1) }),
event2_phase: K.ATTR({ phase: String(2) }),
extra_boss_event: K.ATTR({ phase: String(30) }),
boss: K.ATTR({ phase: String(U.GetConfig("cp_boss")) }),
event1_phase: K.ATTR({ phase: String(U.GetConfig("cp_event1")) }),
event2_phase: K.ATTR({ phase: String(U.GetConfig("cp_event2")) }),
extra_boss_event: K.ATTR({ phase: String(30) }), // TODO:: verify //
vip_pass_black: {},
event1_ranbow_ticket: {},
deller_bonus: K.ATTR({ open: String(1) }),
@ -118,7 +112,7 @@ export const pccommon: EPR = async (info, data, send) => {
djlevel_result: {},
virtual_coin: K.ATTR({ phase: String(1) }),
reflec_volzza_collabo: {},
bemani_summer2016: K.ATTR({ phase: String(2) }),
bemani_summer2016: K.ATTR({ phase: String(U.GetConfig("cp_bemanisummer")) }),
}
break;
case 24: // asphyxia_route_public //
@ -129,14 +123,11 @@ export const pccommon: EPR = async (info, data, send) => {
newsong_another: K.ATTR({ open: String(1) }),
expert_secret_full_open: {},
system_voice_phase: K.ATTR({ phase: String(_.random(0, 8)) }),
expert: K.ATTR({ phase: String(1) })
}
break;
case 27:
result = {
...result,
expert: K.ATTR({ phase: String(1) }),
expert_random_secret: K.ATTR({ phase: String(1) }),
boss: K.ATTR({ phase: String(1) }),
vip_pass_black: {},
deller_bonus: K.ATTR({ open: String(1) }),
@ -156,8 +147,6 @@ export const pccommon: EPR = async (info, data, send) => {
...result,
movie_agreement: K.ATTR({ version: String(1) }),
movie_upload: K.ATTR({ url: String(U.GetConfig("bo_movieupload")) }),
expert: K.ATTR({ phase: String(1) }),
expert_random_secret: K.ATTR({ phase: String(1) }),
boss: K.ATTR({ phase: String(1) }),
vip_pass_black: {},
eisei: K.ATTR({ open: String(1) }),
@ -180,8 +169,6 @@ export const pccommon: EPR = async (info, data, send) => {
...result,
movie_agreement: K.ATTR({ version: String(1) }),
movie_upload: K.ATTR({ url: String(U.GetConfig("bo_movieupload")) }),
expert: K.ATTR({ phase: String(1) }),
expert_random_secret: K.ATTR({ phase: String(1) }),
boss: K.ATTR({ phase: String(1) }),
vip_pass_black: {},
eisei: K.ATTR({ open: String(1) }),
@ -514,11 +501,29 @@ export const pcget: EPR = async (info, data, send) => {
tricolettepark = null,
boss1 = null,
chrono_diver = null,
qpronicle_chord = null,
qpronicle_phase3 = null,
pendual_talis = null,
open_tokotoko = null,
mystery_line = null,
event_1 = null,
event_1s = null,
evtArray = [], evtArray2 = [];
switch (version) {
case 21:
link5 = await DB.FindOne(refid, { collection: "event_1", version: 20, event_name: "link5" });
tricolettepark = await DB.FindOne(refid, { collection: "event_1", version: 20, event_name: "tricolettepark" });
boss1 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "boss1" });
if (!_.isNil(boss1.durability)) boss1.durability = Base64toBuffer(boss1.durability).toString("hex");
case 22:
chrono_diver = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "chrono_diver" });
pendual_talis = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "boss_event_3" });
if (_.isNil(pendual_talis)) pendual_talis = { point: 0 };
qpronicle_chord = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_chord" });
qpronicle_phase3 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "qpronicle_phase3" });
case 23:
if (!_.isNil(pcdata.sp_mlist)) {
pcdata.sp_mlist = Base64toBuffer(pcdata.sp_mlist).toString("hex");
@ -530,20 +535,13 @@ export const pcget: EPR = async (info, data, send) => {
if (!_.isNil(pcdata.st_album)) pcdata.st_album = Base64toBuffer(pcdata.st_album).toString("hex");
else if (!_.isNil(pcdata.st_tokimeki)) pcdata.st_tokimeki = Base64toBuffer(pcdata.st_tokimeki).toString("hex");
if (version == 21) {
link5 = await DB.FindOne(refid, { collection: "event_1", version: 20, event_name: "link5" });
tricolettepark = await DB.FindOne(refid, { collection: "event_1", version: 20, event_name: "tricolettepark" });
boss1 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "boss1" });
if (!_.isNil(boss1.durability)) boss1.durability = Base64toBuffer(boss1.durability).toString("hex");
} else if (version == 22) {
chrono_diver = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "chrono_diver" });
}
open_tokotoko = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event1_data" });
mystery_line = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "event2_data" });
break;
default:
let event_1 = await DB.Find(refid, { collection: "event_1", version: version });
let event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version });
event_1 = await DB.Find(refid, { collection: "event_1", version: version });
event_1s = await DB.Find(refid, { collection: "event_1_sub", version: version });
if (event_1.length > 0) {
for (let evt of event_1) {
@ -664,6 +662,11 @@ export const pcget: EPR = async (info, data, send) => {
link5,
tricolettepark,
chrono_diver,
qpronicle_chord,
qpronicle_phase3,
pendual_talis,
open_tokotoko,
mystery_line,
wArray,
bArray,
});
@ -1647,6 +1650,62 @@ export const pcsave: EPR = async (info, data, send) => {
);
}
if (!_.isNil($(data).element("qpronicle_chord"))) {
let event_data = {
is_first_select_map: parseInt($(data).attr("qpronicle_chord").is_first_select_map),
last_select_map: parseInt($(data).attr("qpronicle_chord").last_select_map),
story_view_list: parseInt($(data).attr("qpronicle_chord").story_view_list),
is_use_login_bonus: parseInt($(data).attr("qpronicle_chord").is_use_login_bonus),
patona_leader: parseInt($(data).attr("qpronicle_chord").patona_leader),
patona_sub_1: parseInt($(data).attr("qpronicle_chord").patona_sub_1),
patona_sub_2: parseInt($(data).attr("qpronicle_chord").patona_sub_2),
rare_enemy_damage1: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage1),
rare_enemy_damage2: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage2),
rare_enemy_damage3: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage3),
rare_enemy_damage4: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage4),
rare_enemy_damage5: parseInt($(data).attr("qpronicle_chord").rare_enemy_damage5),
};
// TODO:: patona_data //
await DB.Upsert(refid,
{
collection: "event_1",
version: version,
event_name: "qpronicle_chord",
},
{
$set: event_data,
}
);
}
if (!_.isNil($(data).element("qpronicle_phase3"))) {
let event_data = {
stairs_num: parseInt($(data).attr("qpronicle_phase3").stairs_num),
flame_list: parseInt($(data).attr("qpronicle_phase3").flame_list),
lane_list: parseInt($(data).attr("qpronicle_phase3").lane_list),
map0_select: parseInt($(data).attr("qpronicle_phase3").map0_select),
map1_select: parseInt($(data).attr("qpronicle_phase3").map1_select),
map2_select: parseInt($(data).attr("qpronicle_phase3").map2_select),
map3_select: parseInt($(data).attr("qpronicle_phase3").map3_select),
map4_select: parseInt($(data).attr("qpronicle_phase3").map4_select),
map5_select: parseInt($(data).attr("qpronicle_phase3").map5_select),
map6_select: parseInt($(data).attr("qpronicle_phase3").map6_select),
};
await DB.Upsert(refid,
{
collection: "event_1",
version: version,
event_name: "qpronicle_phase3",
},
{
$set: event_data,
}
);
}
if (!_.isNil($(data).element("boss_event_3"))) {
let boss_event_3 = await DB.FindOne(refid, { collection: "event_1", version: version, event_name: "boss_event_3" });
let event_data;
@ -1770,6 +1829,53 @@ export const pcsave: EPR = async (info, data, send) => {
if (!_.isNil($(data).element("orb_data"))) pcdata.orb += parseInt($(data).attr("orb_data").add_orb);
// TODO:: fix event saving, these event savings are broken. //
if (!_.isNil($(data).element("event1_data"))) {
let event_data = {
point_map_0: parseInt($(data).attr("event1_data").point_map_0),
point_map_1: parseInt($(data).attr("event1_data").point_map_1),
point_map_2: parseInt($(data).attr("event1_data").point_map_2),
point_map_3: parseInt($(data).attr("event1_data").point_map_3),
point_map_4: parseInt($(data).attr("event1_data").point_map_4),
last_map: parseInt($(data).attr("event1_data").last_map),
hold_point: parseInt($(data).attr("event1_data").hold_point),
rank_point: parseInt($(data).attr("event1_data").rank_point),
tips_list: parseInt($(data).attr("event1_data").tips_list),
use_gift_point: $(data).element("event1_data").bool("use_gift_point"),
};
await DB.Upsert(refid,
{
collection: "event_1",
version: version,
event_name: "event1_data",
},
{
$set: event_data,
}
);
}
if (!_.isNil($(data).element("event2_data"))) {
let event_data = {
now_stay_area: parseInt($(data).attr("event2_data").now_stay_area),
now_stay_note_grade: parseInt($(data).attr("event2_data").now_stay_note_grade),
play_num: parseInt($(data).attr("event2_data").play_num),
stop_area_time: parseInt($(data).attr("event2_data").stop_area_time),
};
// TODO:: event2_area_data //
await DB.Upsert(refid,
{
collection: "event_1",
version: version,
event_name: "event2_data",
},
{
$set: event_data,
}
);
}
}
else if (version == 24) {
pcdata.sach = parseInt($(data).attr().s_achi);

View File

@ -24,6 +24,16 @@ export function register() {
type: "integer",
default: 3,
});
R.Config("ExpertPhase", {
name: "Expert Phase",
type: "integer",
default: 2,
});
R.Config("ExpertRandomPhase", {
name: "Expert Random Phase",
type: "integer",
default: 2,
});
// Resort Anthem //
R.Config("ra_cmd_gmbl", {
@ -97,13 +107,13 @@ export function register() {
// tricoro //
R.Config("tr_limit", {
name: "Limit Burst Phase",
name: "Limit Burst Phase (TR)",
type: "integer",
default: 4,
default: 24, // TODO:: verify //
});
R.Config("tr_boss", {
name: "Event Phase (TR)",
desc: "RED/BLUE/YELLOW",
desc: "RED / BLUE / YELLOW",
type: "integer",
default: 3,
});
@ -137,6 +147,120 @@ export function register() {
default: true,
});
// SPADA //
R.Config("sp_limit", {
name: "Limit Burst Phase (SP)",
type: "integer",
default: 24,
});
R.Config("sp_boss", {
name: "Event Phase (SP)",
desc: "Spada†leggendaria Phase",
type: "integer",
default: 3,
});
R.Config("sp_boss1", {
name: "Qprogue Phase (SP)",
type: "integer",
default: 4,
});
R.Config("sp_cafe", {
name: "Café de Tran",
desc: "Enable Café de Tran Event (SPADA)",
type: "boolean",
default: true,
});
R.Config("sp_tripark", {
name: "Everyone's SPACEWAR!!",
desc: "Enable クプロ・ミミニャミ・パステルくんのみんなで宇宙戦争!! Event (SPADA)",
type: "boolean",
default: true,
});
R.Config("sp_triparkskip", {
name: "Everyone's SPACEWAR!! Skip",
desc: "Skips クプロ・ミミニャミ・パステルくんのみんなで宇宙戦争!! Event Scenes",
type: "integer",
default: 2,
});
R.Config("sp_superstar", {
name: "SUPER STAR -MITSURU-",
desc: "SUPER STAR 満 -MITSURU- 完全復活祭 Phase",
type: "integer",
default: 2,
});
// PENDUAL //
R.Config("pd_preplay", {
name: "SUPER FUTURE 2323 Phase",
type: "integer",
default: 2,
});
R.Config("pd_tohoremix", {
name: "BEMANI X TOHO",
desc: "BEMANI×TOHO REITAISAI 2015 project Phase",
type: "integer",
default: 2,
});
R.Config("pd_limit", {
name: "Chrono Chaser Phase",
type: "integer",
default: 9,
});
R.Config("pd_boss", {
name: "Event Phase (SP)",
desc: "Chrono Seeker / Qpronicle Chord / PENDUAL TALISMAN",
type: "integer",
default: 3,
});
R.Config("pd_chronodiver", {
name: "Chrono Seeker",
type: "integer",
default: 3,
});
R.Config("pd_qproniclechord", {
name: "Qpronicle Chord",
type: "integer",
default: 2,
});
R.Config("pd_cccollabo", {
name: "Coca-Cola×BEMANI",
desc: "Coca-Cola×BEMANI 店舗限定ロケテスト Phase",
type: "integer",
default: 3,
});
R.Config("pd_timephase", {
name: "Time Phase",
type: "integer",
desc: "Default / Present / Future",
default: 0,
});
// copula //
R.Config("cp_boss", {
name: "Event Phase (CP)",
desc: "開通!とことこライン / Mystery Line",
type: "integer",
default: 2,
});
R.Config("cp_event1", {
name: "開通!とことこライン",
desc: "開通!とことこライン Phase",
type: "integer",
default: 1,
});
R.Config("cp_event2", {
name: "Mystery Line",
desc: "Mystery Line Phase",
type: "integer",
default: 2,
});
R.Config("cp_bemanisummer", {
name: "BEMANI Summer 2016",
desc: "NEW Generation 夏の流星フェスタ2016 Phase",
type: "integer",
default: 2,
});
// BISTROVER ~ (common) //
R.Config("bo_movieupload", {
name: "Movie Upload URL",
@ -144,7 +268,7 @@ export function register() {
default: "http://localhost/"
});
// TODO:: Reflect data when version dropdown menu has been changed
// TODO:: Reflect data when version dropdown menu has been changed //
R.WebUIEvent("updateIIDXRival", updateRivalSettings);
R.WebUIEvent("updateIIDXCustom", updateCustomSettings);

View File

@ -178,8 +178,8 @@ export interface pcdata {
st_sp_fluctuation: number; // RESIDENT //
st_dp_fluctuation: number;
event_play_num: number; // event (Heroic Verse) / /
event_play_num: number; // event (HEROIC VERSE) //
event_last_select_id: number;
event_last_select_type: number; // CastHour //
event_story_prog: number; // BISTROVER //

View File

@ -36,11 +36,13 @@ IIDX22pc(status="0")
//-step_assist(iidx_id iidx_id_str name hair head face body hand)
if chrono_diver != null
chrono_diver(play_count=chrono_diver.play_count present_unlock=chrono_diver.present_unlock future_unlock=chrono_diver.future_unlock success_count_0_n=chrono_diver.success_count_0_n success_count_0_h=chrono_diver.success_count_0_h success_count_0_a=chrono_diver.success_count_0_a success_count_1_n=chrono_diver.success_count_1_n success_count_1_h=chrono_diver.success_count_1_h success_count_1_a=chrono_diver.success_count_1_a success_count_2_n=chrono_diver.success_count_2_n success_count_2_h=chrono_diver.success_count_2_h success_count_2_a=chrono_diver.success_count_2_a success_count_3_n=chrono_diver.success_count_3_n success_count_3_h=chrono_diver.success_count_3_h success_count_3_a=chrono_diver.success_count_3_a story_list=chrono_diver.story_list)
//-qpronicle_chord(is_first_select_map last_select_map story_view_list is_login_bonus patona_leader patona_sub_1 patona_sub_2 rare_enemy_damage1 rare_enemy_damage2 rare_enemy_damage3 rare_enemy_damage4 rare_enemy_damage5)
patona_data(patona_no level exp affection dissatisfaction)
//-qpronicle_phase3(stairs_num flame_list lane_list map0_select map1_select map2_select map3_select map5_select map6_select is_love_scene_skip)
if qpronicle_chord != null
qpronicle_chord(is_first_select_map=qpronicle_chord.is_first_select_map last_select_map=qpronicle_chord.last_select_map story_view_list=qpronicle_chord.story_view_list is_login_bonus=qpronicle_chord.is_use_login_bonus patona_leader=qpronicle_chord.patona_leader patona_sub_1=qpronicle_chord.patona_sub_1 patona_sub_2=qpronicle_chord.patona_sub_2 rare_enemy_damage1=qpronicle_chord.rare_enemy_damage1 rare_enemy_damage2=qpronicle_chord.rare_enemy_damage2 rare_enemy_damage3=qpronicle_chord.rare_enemy_damage3 rare_enemy_damage4=qpronicle_chord.rare_enemy_damage4 rare_enemy_damage5=qpronicle_chord.rare_enemy_damage5)
//-patona_data(patona_no level exp affection dissatisfaction)
if qpronicle_phase3 != null
qpronicle_phase3(stairs_num=qpronicle_phase3.stairs_num flame_list=qpronicle_phase3.flame_list lane_list=qpronicle_phase3.lane_list map0_select=qpronicle_phase3.map0_select map1_select=qpronicle_phase3.map1_select map2_select=qpronicle_phase3.map2_select map3_select=qpronicle_phase3.map3_select map4_select=qpronicle_phase3.map4_select map5_select=qpronicle_phase3.map5_select map6_select=qpronicle_phase3.map6_select is_love_scene_skip="1")
qpronicle_love(music_list="-1")
boss_event_3(music_list="-1" bonus_point="0")
boss_event_3(music_list="-1" bonus_point=pendual_talis.point)
//-chaser(phase attack exist_age summon_gate success failed damage_point boss_hp)
ues_music(__type="u32" __count="40")
achievements(pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp last_weekly=pcdata.achi_lastweekly weekly_num=pcdata.achi_weeklynum visit_flg=pcdata.achi_visitflg rival_crush=pcdata.achi_rivalcrush)

View File

@ -38,12 +38,13 @@ IIDX23pc(status="0")
qpronicle_love(music_list="-1")
achievements(pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp last_weekly=pcdata.achi_lastweekly weekly_num=pcdata.achi_weeklynum visit_flg=pcdata.achi_visitflg rival_crush=pcdata.achi_rivalcrush)
trophy(__type="s64" __count="10") #{pcdata.achi_trophy[0]} #{pcdata.achi_trophy[1]} #{pcdata.achi_trophy[2]} #{pcdata.achi_trophy[3]} #{pcdata.achi_trophy[4]} #{pcdata.achi_trophy[5]} #{pcdata.achi_trophy[6]} #{pcdata.achi_trophy[7]} #{pcdata.achi_trophy[8]} #{pcdata.achi_trophy[9]}
//-
event1_data(point_map_0 point_map_1 point_map_2 point_map_3 point_map_4 last_map hold_point rank_point tips_list gift_point)
event1_assist(iidx_id iidx_id_str name hair head face body hand)
event2_data(play_num now_area now_note_grade stop_area_time)
event2_area_data(area_no area_play normal_point hyper_point another_point)
onemore_data(defeat_0 defeat_1 defeat_2 defeat_3 defeat_4 defeat_5 challenge_num_n challenge_num_h challenge_num_a)
if open_tokotoko != null
event1_data(point_map_0=open_tokotoko.point_map_0 point_map_1=open_tokotoko.point_map_1 point_map_2=open_tokotoko.point_map_2 point_map_3=open_tokotoko.point_map_3 point_map_4=open_tokotoko.point_map_4 last_map=open_tokotoko.last_map hold_point=open_tokotoko.hold_point rank_point=open_tokotoko.rank_point tips_list=open_tokotoko.tips_list gift_point="0")
//-event1_assist(iidx_id iidx_id_str name hair head face body hand)
if mystery_line != null
event2_data(play_num=mystery_line.play_num now_area=mystery_line.now_stay_area now_note_grade=mystery_line.now_stay_note_grade stop_area_time=mystery_line.stop_area_time)
//-event2_area_data(area_no area_play normal_point hyper_point another_point)
//-onemore_data(defeat_0 defeat_1 defeat_2 defeat_3 defeat_4 defeat_5 challenge_num_n challenge_num_h challenge_num_a)
reflec_collabo(phase1_music_list="-1" phase2_music_list="-1")
destiny_catharsis(music_bit="-1")
bemani_summer_collabo(music_bit="-1")