2 Commits
Author SHA1 Message Date
vvo dbfcf60ac7 world league 2 2024-11-13 10:34:16 +08:00
vvo c94b6cb36f nov 2024 events etc 2024-11-07 09:59:38 +08:00
7 changed files with 101 additions and 19 deletions
+14 -2
View File
@@ -1,6 +1,6 @@
# DanceDanceRevolution
**Plugin Version:** fork-mdx-3.0.3b
**Plugin Version:** fork-mdx-3.0.3d
**Supported game versions:** WORLD (2024101500)
@@ -26,7 +26,7 @@ musicdb.xml Usage Guide
Changelog
===========
### fork-mdx-3.0.3b
### fork-mdx-3.0.3d
- Fixed WebUI flare skill calculation mistake.
- Fixed getLastGhostId function.
@@ -37,6 +37,18 @@ Changelog
- You can use patches to force the game to imitate gold cab.
- Added "Step This Way" Challenge difficulties
- Added "MVP" to SONGS_WORLD.
- Added "Time to HYPERDRIVE" to SONGS_WORLD.
- Song should appear if you're Silver rank in WORLD LEAGUE.
- Added new charts to advanced play
- "1116"
- "Sahara"
- "High & Low" (CHA)
- "ONYX" (CHA)
- Added new player customization options in Profile Settings.
- BPL Team Supporter Appeal Board
- Added 2nd WORLD LEAGUE info
- Will start 11/14 10:00 JST.
- Will add Hakken difficulties as soon as it is revealed.
### fork-mdx-3.0.2
+26 -12
View File
@@ -54,13 +54,13 @@ export const SONGS_WORLD = [
{ mcode: 38756, limited_ary: [2, 2, 2, 2, -1, -1, 2, 2, 2, -1], diffLv: [3, 8, 15, 18, 0, 0, 8, 14, 18, 0] },
{ mcode: 38758, limited_ary: [2, 2, 2, 2, -1, -1, 2, 2, 2, -1], diffLv: [5, 10, 13, 17, 0, 0, 10, 13, 17, 0] },
{ mcode: 38759, limited_ary: [2, 2, 2, 2, -1, -1, 2, 2, 2, -1], diffLv: [3, 6, 13, 15, 0, 0, 7, 13, 15, 0] },
{ mcode: 38757, limited_ary: [0, 0, 0, 0, -1, -1, 0, 0, 0, -1], diffLv: [2, 5, 8, 13, 0, 0, 5, 8, 13, 0] }
{ mcode: 38757, limited_ary: [0, 0, 0, 0, -1, -1, 0, 0, 0, -1], diffLv: [2, 5, 8, 13, 0, 0, 5, 8, 13, 0] },
{ mcode: 38622, limited_ary: [12, 12, 12, 12, -1, -1, 12, 12, 12, -1], diffLv: [2, 7, 12, 15, 0, 0, 7, 12, 15, 0] },
{ mcode: 38760, limited_ary: [2, 2, 2, 2, 2, -1, 2, 2, 2, 2], diffLv: [4, 8, 13, 16, 18, 0, 8, 13, 16, 18] },
{ mcode: 38761, limited_ary: [2, 2, 2, 2, -1, -1, 2, 2, 2, -1], diffLv: [4, 8, 12, 15, 0, 0, 8, 12, 15, 0] },
// songs that have yet to release. unknown difficulty lvls.
// { mcode: 38622, limited_ary: [], diffLv: [] },
// { mcode: 38629, limited_ary: [], diffLv: [] },
// { mcode: 38760, limited_ary: [], diffLv: [] },
// { mcode: 38761, limited_ary: [], diffLv: [] }
// { mcode: 38629, limited_ary: [13, 13, 13, 13, -1, -1 13, 13 13, -1], diffLv: [] } // hakken
]
export const SONGS_OVERRIDE_WORLD = [
@@ -211,7 +211,6 @@ export const SONGS_OVERRIDE_WORLD = [
{ mcode: 38269, limited_ary: [0, 0, 0, 0, -1, -1, 0, 0, 0, -1], diffLv: [2, 5, 7, 10, 0, 0, 5, 7, 10, 0] },
{ mcode: 38652, limited_ary: [0, 0, 0, 0, 0, -1, 0, 0, 0, 0], diffLv: [2, 6, 10, 15, 17, 0, 6, 10, 15, 17] },
{ mcode: 37251, limited_ary: [0, 0, 0, 0, 0, -1, 0, 0, 0, 0], diffLv: [6, 10, 12, 15, 18, 0, 10, 11, 16, 17] },
{ mcode: 38212, limited_ary: [0, 0, 0, 0, 2, -1, 0, 0, 0, 2], diffLv: [3, 7, 10, 15, 16, 0, 8, 11, 15, 16] },
{ mcode: 38295, limited_ary: [0, 0, 0, 0, 2, -1, 0, 0, 0, 2], diffLv: [3, 7, 11, 14, 17, 0, 7, 11, 14, 17] },
{ mcode: 38258, limited_ary: [0, 0, 0, 0, 2, -1, 0, 0, 0, 2], diffLv: [2, 6, 10, 14, 16, 0, 6, 11, 14, 16] },
@@ -222,10 +221,11 @@ export const SONGS_OVERRIDE_WORLD = [
{ mcode: 38442, limited_ary: [0, 0, 0, 0, 2, -1, 0, 0, 0, 2], diffLv: [3, 8, 13, 16, 18, 0, 8, 13, 16, 18] },
{ mcode: 38436, limited_ary: [0, 0, 0, 0, 2, -1, 0, 0, 0, 2], diffLv: [4, 7, 11, 14, 17, 0, 7, 11, 14, 17] },
{ mcode: 38407, limited_ary: [0, 0, 0, 0, 0, -1, 0, 0, 0, 0], diffLv: [4, 9, 12, 16, 17, 0, 9, 12, 16, 17] },
{ mcode: 38428, limited_ary: [0, 0, 0, 0, 0, -1, 0, 0, 0, 0], diffLv: [4, 8, 12, 16, 18, 0, 8, 12, 16, 18] },
{ mcode: 38424, limited_ary: [0, 0, 0, 0, 0, -1, 0, 0, 0, 0], diffLv: [4, 8, 11, 14, 17, 0, 8, 11, 14, 17] }
// { mcode: 38339, limited_ary: [0, 0, 0, 0, 0, -1, 0, 0, 0, 0], diffLv: [3, 7, 11, 14, ?, 0, 7, 11, 14, ?] },
// { mcode: 38424, limited_ary: [0, 0, 0, 0, 0, -1, 0, 0, 0, 0], diffLv: [4, 8, 11, 14, ?, 0, 8, 11, 14, ?] },
// { mcode: 38428, limited_ary: [0, 0, 0, 0, 0, -1, 0, 0, 0, 0], diffLv: [4, 8, 12, 16, ?, 0, 8, 12, 16, ?] },
// new charts
// { mcode: 38339, limited_ary: [0, 0, 0, 0, 0, -1, 0, 0, 0, 0], diffLv: [3, 7, 11, 14, ?, 0, 7, 11, 14, ?] }, cbme
]
export const EVENTS_WORLD = [
@@ -281,11 +281,16 @@ export const EVENTS_WORLD = [
{ id: 106, no: 0, cond: 1, rwrd: 37234, type: 50 },
{ id: 107, no: 0, cond: 1, rwrd: 37363, type: 50 },
{ id: 108, no: 0, cond: 1, rwrd: 38436, type: 52 },
// Triple tribe 4. Song does not appear if non-Gold.
{ id: 109, no: 0, cond: 1, rwrd: 1197, type: 201, save: 1 },
{ id: 110, no: 0, cond: 1, rwrd: 38759, type: 43, comp: 0, save: 1 },
{ id: 111, no: 0, cond: 1, rwrd: 38758, type: 43, comp: 0, save: 1 },
{ id: 112, no: 0, cond: 1, rwrd: 38756, type: 43, comp: 0, save: 1 }
{ id: 112, no: 0, cond: 1, rwrd: 38756, type: 43, comp: 0, save: 1 },
{ id: 113, no: 0, cond: 1, rwrd: 1201, type: 201, save: 1 },
{ id: 114, no: 0, cond: 1, rwrd: 38760, type: 50 },
{ id: 115, no: 0, cond: 1, rwrd: 38760, type: 52 },
{ id: 116, no: 0, cond: 1, rwrd: 38761, type: 50 },
{ id: 117, no: 0, cond: 1, rwrd: 38428, type: 52 },
{ id: 118, no: 0, cond: 1, rwrd: 38424, type: 52 }
]
export const LEAGUE_WORLD = [
@@ -297,6 +302,15 @@ export const LEAGUE_WORLD = [
end: BigInt(Date.parse('6 Nov 2024 08:00:00 GMT')),
summary: BigInt(Date.parse('6 Nov 2024 09:00:00 GMT')),
advanceBorder: [0, 0, 0]
},
{
id: 2,
name: "第2回 WORLD LEAGUE",
name_eng: "The 2nd WORLD LEAGUE",
start: BigInt(Date.parse('14 Nov 2024 01:00:00 GMT')),
end: BigInt(Date.parse('11 Dec 2024 08:00:00 GMT')),
summary: BigInt(Date.parse('11 Dec 2024 09:00:00 GMT')),
advanceBorder: [0, 0, 0]
}
]
+14 -4
View File
@@ -1,5 +1,5 @@
import { Profile } from "../models/profile";
import { ProfileWorld, ScoreWorld, EventWorld, GhostWorld, RivalWorld, HiScoreWorld, LeagueWorld } from "../models/ddrworld";
import { ProfileWorld, ScoreWorld, EventWorld, GhostWorld, RivalWorld, HiScoreWorld, LeagueWorld, CustomizeWorld } from "../models/ddrworld";
import { SONGS_WORLD, SONGS_OVERRIDE_WORLD, EVENTS_WORLD, LEAGUE_WORLD, LOCKED_SONGS } from "../data/world";
function getLastGhostId(ghost: any) {
@@ -543,7 +543,7 @@ export const playerdataload: EPR = async (info, data, send) => {
}
let leagueData = {}
let curLeague = LEAGUE_WORLD[0]
let curLeague = LEAGUE_WORLD[1]
let league = await DB.FindOne(refid, {collection: 'league3', id: curLeague.id})
if(!league) {
let leagueClass = 0
@@ -654,6 +654,16 @@ export const playerdataload: EPR = async (info, data, send) => {
}
}
let userCustomize = []
let customize = await DB.Find<CustomizeWorld>(refid, {collection: 'customize3'})
customize.forEach(cus => {
userCustomize.push({
category: K.ITEM('s32', cus.category),
key: K.ITEM('s32', cus.key),
pattern: K.ITEM('s32', cus.pattern)
})
})
// test
if(IO.Exists('data/test.json')) {
let bufTest = await IO.ReadFile('data/test.json')
@@ -745,7 +755,8 @@ export const playerdataload: EPR = async (info, data, send) => {
rival: [],
score: scoreFin,
event: eventFin,
league: leagueData
league: leagueData,
customize: userCustomize
});
}
};
@@ -840,7 +851,6 @@ export const rivaldataload: EPR = async (info, data, send) => {
const pcbid = $(data).str("data.pcbid");
// song id, style, difficulty, idk, dancername, idk, idk, scoredisp, score, ghost
let ssssss = ''
let record = []
let hiscore: any
if(ddrCode === 0) {
+12 -1
View File
@@ -4,7 +4,7 @@ import { usergamedata_recv } from "./handlers/usergamedata_recv";
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 { ProfileWorld, CustomizeWorld } from "./models/ddrworld";
import { SONGS_WORLD, SONGS_OVERRIDE_WORLD, LEAGUE_WORLD } from "./data/world"
export function register() {
@@ -210,6 +210,17 @@ export function register() {
});
});
R.WebUIEvent("playerCustomize", async ({ customize, refid, selected }) => {
const catPat = {'appeal': [1, 1]}
if(selected === 0) await DB.Remove<CustomizeWorld>(refid, { collection: "customize3", category: catPat[customize][0], pattern: catPat[customize][1] })
else await DB.Upsert<CustomizeWorld>(refid, { collection: "customize3", category: catPat[customize][0] }, {
$set: {
key: selected,
pattern: catPat[customize][1]
}
});
});
R.WebUIEvent("getMDB", async (data: {}, send: WebUISend) => {
let mdbData = []
let mdbLimName = U.GetConfig('mdb_limited')
+8
View File
@@ -69,6 +69,14 @@ export interface LeagueWorld {
ended: boolean
}
export interface CustomizeWorld {
collection: "customize3";
category: number;
key: number;
pattern: number;
}
export interface ProfileWorld {
collection: "profile3";
+7
View File
@@ -68,3 +68,10 @@ $('#change-display-calories3').on('click', () => {
emit('updateDisplayCalories3', { refid, selected }).then(() => location.reload());
});
$('#change-bpl-appeal').on('click', () => {
const customize = "appeal"
const selected = parseInt($('#bpl-appeal option:selected').val())
emit('playerCustomize', { customize, refid, selected }).then(() => location.reload());
});
+20
View File
@@ -1,6 +1,7 @@
//DATA//
profile: DB.FindOne(refid, { collection: "profile" })
profile3: DB.FindOne(refid, { collection: "profile3" })
customizebpl: DB.FindOne(refid, { collection: "customize3", category: 1})
-
const onOff = [ "Off", "On" ];
@@ -150,6 +151,7 @@ else if profile3
const name3 = profile3.dancerName;
const weight3 = profile3.weight.toString().split('.');
if(weight3.length < 2) weight3.push("0");
const bplAppeal = customizebpl ? customizebpl.key : 0
div
.card
@@ -195,5 +197,23 @@ else if profile3
p.control
a.button.is-primary#change-display-calories3 Change
.field.is-horizontal.has-addons
.field-label.is-normal
label.label BPL Appeal Board
.field-body
p.control
.select
select#bpl-appeal
option(value=0, selected=bplAppeal===0) None
option(value=100001, selected=bplAppeal===100001) APINA VRAMeS
option(value=100002, selected=bplAppeal===100002) GiGO
option(value=100003, selected=bplAppeal===100003) GamePanic
option(value=100004, selected=bplAppeal===100004) Silk Hat
option(value=100005, selected=bplAppeal===100005) TAITO STATION Tradz
option(value=100006, selected=bplAppeal===100006) ROUND1
option(value=100007, selected=bplAppeal===100007) Leisureland
p.control
a.button.is-primary#change-bpl-appeal Change
script(src="static/js/profile_settings.js")