fix bug and encore(extra) stage info temp impl.

This commit is contained in:
DitFranXX 2021-04-30 00:59:12 +09:00
parent 819561337e
commit f3835a53b9
5 changed files with 46 additions and 10 deletions

View File

@ -55,7 +55,7 @@ export function gameVerToDataVer(ver: string): DATAVersion {
return DATAVersion.HIGHVOLTAGE
case 'nextage':
return DATAVersion.NEXTAGE
case 'excahin':
case 'exchain':
return DATAVersion.EXCHAIN
case 'matixx':
default:

View File

@ -1,3 +1,5 @@
import { getEncoreStageData } from "../utils/extrastage";
export const shopInfoRegist: EPR = async (info, data, send) => {
send.object({
data: {
@ -72,16 +74,22 @@ export const gameInfoGet: EPR = async (info, data, send) => {
}
}
const extraData = getEncoreStageData(info)
const extraMusic = []
for (const mid of extraData.musics ) {
extraMusic.push({
musicid: K.ITEM('s32', mid),
get_border: K.ITEM('u8', 0),
})
}
await send.object({
now_date: K.ITEM('u64', time),
extra: {
extra_lv: K.ITEM('u8', 10),
extra_lv: K.ITEM('u8', extraData.level),
extramusic: {
music: {
musicid: K.ITEM('s32', 0),
get_border: K.ITEM('u8', 0),
},
},
music: extraMusic,
}
},
infect_music: { term: K.ITEM('u8', 0) },
unlock_challenge: { term: K.ITEM('u8', 0) },

View File

@ -390,7 +390,7 @@ export const getPlayer: EPR = async (info, data, send) => {
send.object({
player: K.ATTR({ 'no': `${no}` }, {
now_date: K.ITEM('u64', time),
secretmusic: {
secretmusic: { // TODO: FIX THIS FOR STOP INFOS ON GAME END
music: {
musicid: K.ITEM('s32', 0),
seq: K.ITEM('u16', 255),
@ -926,7 +926,7 @@ export const savePlayer: EPR = async (info, data, send) => {
scores[mid].update[1] = newSkill;
}
scores[mid].diffs[seq] = {
scores[mid].diffs[seq] = { //FIXME: Real server is bit complicated. this one is too buggy.
perc: Math.max(_.get(scores[mid].diffs[seq], 'perc', 0), perc),
rank: Math.max(_.get(scores[mid].diffs[seq], 'rank', 0), rank),
meter: meter.toString(),

View File

@ -0,0 +1,28 @@
import { getVersion } from ".";
interface EncoreStageData {
level: number
musics: number[]
}
export function getEncoreStageData(info: EamuseInfo): EncoreStageData {
const fallback = { level: 10, musics: [0] }
switch (getVersion(info)) {
case 'nextage':
return {
level: 7,
musics: [
2587, 2531, 2612, 2622, 2686, 2631, 2624, 2666
]
}
case 'exchain':
return {
level: 13,
musics: [
2498, 2513, 2500, 2529, 2546, 2549, 2548, 2560, 2568, 2576, 5020, 5032, 5031, 5033
]
}
default:
return fallback
}
}

View File

@ -16,4 +16,4 @@ export function isRequiredCoreVersion(major: number, minor: number) {
const core_major = typeof CORE_VERSION_MAJOR === "number" ? CORE_VERSION_MAJOR : 1
const core_minor = typeof CORE_VERSION_MINOR === "number" ? CORE_VERSION_MINOR : 18
return core_major >= major && core_minor >= minor
}
};