mirror of
https://github.com/asphyxia-core/plugins.git
synced 2026-03-21 17:34:46 -05:00
Merge branch 'asphyxia-core:stable' into stable
This commit is contained in:
commit
0cbb84d46f
|
|
@ -1,15 +1,18 @@
|
|||
GITADORA Plugin for Asphyxia-Core
|
||||
=================================
|
||||

|
||||

|
||||
|
||||
This plugin is based on converted from public-exported Asphyxia's Routes.
|
||||
|
||||
Supported Versions
|
||||
==================
|
||||
- Tri-Boost Re:EVOLVE
|
||||
- Matixx
|
||||
- Exchain
|
||||
- EXCHAIN
|
||||
- NEX+AGE
|
||||
|
||||
- HIGH-VOLTAGE
|
||||
- FUZZ-UP
|
||||
- GALAXY WAVE
|
||||
|
||||
When Plugin Doesn't work correctly / Startup Error on Plugin
|
||||
------------------------------------------------------------
|
||||
|
|
@ -26,9 +29,42 @@ Known Issues
|
|||
* Special Premium Encore on Nextage is unimplemented. However, a workaround is available. Try it.
|
||||
* Friends and Rivals are unimplemented.
|
||||
|
||||
Shared Data Options
|
||||
===================
|
||||
Two experimental options allow operators to share data across versions:
|
||||
|
||||
* **Shared Favorite Songs** (`shared_favorite_songs`, default: `false`): When enabled, favorite lists are unified across Guitar Freaks, DrumMania, and supported versions.
|
||||
* **Shared Song Scores** (`shared_song_scores`, default: `false`): When enabled, the server merges the best results for each chart across every stored version and saves them under a shared version identifier. The merged record uses the following shape (fields marked with `//` describe their meaning):
|
||||
|
||||
```
|
||||
scores: {
|
||||
"<musicid>": {
|
||||
update: [<seq>, <new_skill>], // Highest new_skill value seen and its associated seq
|
||||
diffs: {
|
||||
"<seq>": {
|
||||
perc: <number>, // Highest achievement percentage
|
||||
rank: <number>, // Highest rank reached for the chart
|
||||
clear: <boolean>, // Whether the chart has been cleared
|
||||
fc: <boolean>, // Whether a full combo was achieved
|
||||
ex: <boolean>, // Whether an excellent was achieved
|
||||
meter: "<string>",// Best meter value as a stringified bigint
|
||||
prog: <number>, // Highest progression value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Scores are stored under `version: "shared"` but are automatically applied to the active module when loading a profile, ensuring players benefit from their best combined results regardless of the client version.
|
||||
|
||||
Release Notes
|
||||
=============
|
||||
|
||||
v1.4.0
|
||||
----------------
|
||||
* Added support for Tri-Boost Re:EVOLVE, HIGH-VOLTAGE, FUZZ-UP, GALAXY WAVE
|
||||
* Bugfix for launch core with "--dev/--console"
|
||||
|
||||
v1.3.0
|
||||
----------------
|
||||
* Added experimental 'Shared Favorite Songs' option. If disabled, players will be able to keep separate lists of favorite songs for each version of Gitadora, as well as between Guitar Freaks and Drummania. Enable this option to have a single unified list of favorite songs for both games, and across all versions. Default is false, to match original arcade behaviour.
|
||||
|
|
|
|||
|
|
@ -11,6 +11,37 @@ export function getEncoreStageData(info: EamuseInfo): EncoreStageData {
|
|||
const level: number = U.GetConfig("encore_version")
|
||||
const ntDummyEncore = U.GetConfig("nextage_dummy_encore")
|
||||
switch (getVersion(info)) {
|
||||
case 'galaxywave':
|
||||
return {
|
||||
level,
|
||||
musics: [
|
||||
2866, // Calm days
|
||||
2893, // 愛はToxic! feat.Lilymone
|
||||
2885, // Astrum
|
||||
2897, // DESPERATE ERROR
|
||||
2884, // Multiverse
|
||||
2919, // DOGMA
|
||||
2922, // Stay By My Side
|
||||
2937, // Prog for your Soul
|
||||
2963, // Zero Visibility
|
||||
2939, // Hopeful Daybreak!!!
|
||||
2956, // Over Time Groove
|
||||
]
|
||||
}
|
||||
case 'fuzzup':
|
||||
return {
|
||||
level,
|
||||
musics: [
|
||||
2812, // THE LAST OF FIREFACE
|
||||
2814, // ENCOUNT
|
||||
2783, // Q転直下
|
||||
2848, // Bloody Iron Maiden
|
||||
2860, // Serious Joke
|
||||
2844, // HyperNebula
|
||||
2877, // AVEL
|
||||
2892, // Elliptic Orbits
|
||||
]
|
||||
}
|
||||
case 'highvoltage':
|
||||
return {
|
||||
level,
|
||||
|
|
@ -58,7 +89,7 @@ export function getEncoreStageData(info: EamuseInfo): EncoreStageData {
|
|||
5060, // EXCELSIOR DIVE (CLASSIC)
|
||||
2530, // The ULTIMATES -CHRONICLE-
|
||||
2581, // 幸せの代償
|
||||
5046 // Rock to Infinity (CLASSIC)
|
||||
5046, // Rock to Infinity (CLASSIC)
|
||||
]
|
||||
}
|
||||
case 'matixx':
|
||||
|
|
@ -77,7 +108,22 @@ export function getEncoreStageData(info: EamuseInfo): EncoreStageData {
|
|||
2496, // CAPTURING XANADU
|
||||
2497, // Physical Decay
|
||||
2499, // Cinnamon
|
||||
2498 // けもののおうじゃ★めうめう
|
||||
2498, // けもののおうじゃ★めうめう
|
||||
]
|
||||
}
|
||||
case 're':
|
||||
return {
|
||||
level,
|
||||
musics: [
|
||||
2341, // Anathema
|
||||
2384, // White Forest
|
||||
2393, // REFLEXES MANIPULATION
|
||||
2392, // 主亡き機械人形のまなざし
|
||||
2406, // Exclamation
|
||||
2414, // MEDUSA
|
||||
2422, // BLACK ROSES
|
||||
2411, // ギタドラシカ
|
||||
2432, // Durian
|
||||
]
|
||||
}
|
||||
default:
|
||||
|
|
|
|||
12064
gitadora@asphyxia/data/mdb/fz.b64
Normal file
12064
gitadora@asphyxia/data/mdb/fz.b64
Normal file
File diff suppressed because it is too large
Load Diff
12499
gitadora@asphyxia/data/mdb/gw.b64
Normal file
12499
gitadora@asphyxia/data/mdb/gw.b64
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -1,12 +1,14 @@
|
|||
import Logger from "../../utils/logger";
|
||||
import { CommonMusicData } from "../../models/commonmusicdata";
|
||||
|
||||
|
||||
export enum DATAVersion {
|
||||
GALAXYWAVE = "gw",
|
||||
FUZZUP = "fz",
|
||||
HIGHVOLTAGE = "hv",
|
||||
NEXTAGE = "nt",
|
||||
EXCHAIN = "ex",
|
||||
MATTIX = "mt"
|
||||
MATTIX = "mt",
|
||||
TBRE = "re"
|
||||
}
|
||||
|
||||
const allowedFormats = ['.json', '.xml', '.b64']
|
||||
|
|
@ -46,7 +48,15 @@ export async function readMDBFile(path: string, processHandler?: processRawDataH
|
|||
break;
|
||||
case '.b64':
|
||||
const buff = await IO.ReadFile(path, 'utf-8');
|
||||
const json = Buffer.from(buff, 'base64').toString('utf-8')
|
||||
const bufferCtor = (globalThis as {
|
||||
Buffer?: {
|
||||
from(input: string, encoding: string): { toString(encoding: string): string }
|
||||
}
|
||||
}).Buffer
|
||||
if (!bufferCtor) {
|
||||
throw new Error('Buffer is not available in the current environment.')
|
||||
}
|
||||
const json = bufferCtor.from(buff, 'base64').toString('utf-8')
|
||||
// Uncomment to save the decoded base64 file as JSON.
|
||||
// await IO.WriteFile(path.replace(".b64",".json"), json)
|
||||
result = JSON.parse(json)
|
||||
|
|
@ -54,6 +64,13 @@ export async function readMDBFile(path: string, processHandler?: processRawDataH
|
|||
default:
|
||||
throw `Invalid MDB file type: ${fileType}. Only .json, .xml, .b64 are supported.`
|
||||
}
|
||||
|
||||
// Some MDB sources may not provide seq_release_state. Ensure it is present for every song entry.
|
||||
result.music.forEach((entry) => {
|
||||
if (entry.seq_release_state == null) {
|
||||
entry.seq_release_state = K.ITEM('s32', 1)
|
||||
}
|
||||
})
|
||||
|
||||
let gfCount = result.music.filter((e) => e.cont_gf["@content"][0]).length
|
||||
let dmCount = result.music.filter((e) => e.cont_dm["@content"][0]).length
|
||||
|
|
@ -63,6 +80,10 @@ export async function readMDBFile(path: string, processHandler?: processRawDataH
|
|||
|
||||
export function gameVerToDataVer(ver: string): DATAVersion {
|
||||
switch(ver) {
|
||||
case 'galaxywave':
|
||||
return DATAVersion.GALAXYWAVE
|
||||
case 'fuzzup':
|
||||
return DATAVersion.FUZZUP
|
||||
case 'highvoltage':
|
||||
return DATAVersion.HIGHVOLTAGE
|
||||
case 'nextage':
|
||||
|
|
@ -70,8 +91,9 @@ export function gameVerToDataVer(ver: string): DATAVersion {
|
|||
case 'exchain':
|
||||
return DATAVersion.EXCHAIN
|
||||
case 'matixx':
|
||||
default:
|
||||
return DATAVersion.MATTIX
|
||||
default:
|
||||
return DATAVersion.TBRE
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -93,9 +115,18 @@ export function findMDBFile(fileNameWithoutExtension: string, path: string = nul
|
|||
}
|
||||
|
||||
for (const ext of allowedFormats) {
|
||||
const filePath = path + fileNameWithoutExtension + ext
|
||||
if (IO.Exists(filePath)) {
|
||||
return filePath
|
||||
const candidateFileNames = ext === ".xml"
|
||||
? [
|
||||
`mdb_${fileNameWithoutExtension}${ext}`,
|
||||
`${fileNameWithoutExtension}${ext}`,
|
||||
]
|
||||
: [`${fileNameWithoutExtension}${ext}`]
|
||||
|
||||
for (const fileName of candidateFileNames) {
|
||||
const filePath = path + fileName
|
||||
if (IO.Exists(filePath)) {
|
||||
return filePath
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -108,7 +139,7 @@ export async function loadSongsForGameVersion(gameVer: string, processHandler?:
|
|||
let mdbFile = findMDBFile(ver, mdbFolder)
|
||||
|
||||
if (mdbFile == null) {
|
||||
throw `No valid MDB files were found in the data/mdb subfolder. Ensure that this folder contains at least one of the following: ${ver}.json, ${ver}.xml or ${ver}.b64`
|
||||
throw `No valid MDB files were found in the data/mdb subfolder. Ensure that this folder contains at least one of the following: ${ver}.json, mdb_${ver}.xml (${ver}.xml as fallback) or ${ver}.b64`
|
||||
}
|
||||
|
||||
const music = await readMDBFile(mdbFile, processHandler ?? defaultProcessRawXmlData)
|
||||
|
|
@ -140,7 +171,8 @@ export async function defaultProcessRawXmlData(path: string): Promise<CommonMusi
|
|||
cont_dm: K.ITEM('bool', dm == 0 ? 0 : 1),
|
||||
is_secret: K.ITEM('bool', m.number("is_secret", 0)),
|
||||
is_hot: K.ITEM('bool', type == 2 ? 0 : 1),
|
||||
data_ver: K.ITEM('s32', m.number("data_ver", 115)),
|
||||
data_ver: K.ITEM('s32', m.number("data_ver", 255)),
|
||||
seq_release_state: K.ITEM('s32', 1),
|
||||
diff: K.ARRAY('u16', [
|
||||
d[0],
|
||||
d[1],
|
||||
|
|
|
|||
7276
gitadora@asphyxia/data/mdb/re.b64
Normal file
7276
gitadora@asphyxia/data/mdb/re.b64
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -1,6 +1,6 @@
|
|||
import { Extra } from "../models/extra";
|
||||
import { FavoriteMusic } from "../models/favoritemusic";
|
||||
import { isSharedFavoriteMusicEnabled } from "../utils";
|
||||
import { isSharedFavoriteMusicEnabled } from "../utils/index";
|
||||
import Logger from "../utils/logger";
|
||||
|
||||
const logger = new Logger("FavoriteMusic");
|
||||
|
|
@ -60,7 +60,6 @@ export async function applySharedFavoriteMusicToExtra(refid : string, extra : Ex
|
|||
let favoriteMusic = await loadFavoriteMusic(refid)
|
||||
|
||||
if (favoriteMusic == null) {
|
||||
logger.debugInfo(`No shared favourite music available for profile ${refid}. Using game specific favorites. Favorites will be saved as shared favorites at the end of the game session.`);
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -84,10 +83,17 @@ export async function saveFavoriteMusic(refid: string, data : FavoriteMusic) : P
|
|||
}, data)
|
||||
}
|
||||
|
||||
export async function loadFavoriteMusic(refid : string) : Promise<FavoriteMusic>
|
||||
export async function loadFavoriteMusic(refid : string) : Promise<FavoriteMusic | null>
|
||||
{
|
||||
return await DB.FindOne<FavoriteMusic>(refid, {
|
||||
const favoriteMusic = await DB.FindOne<FavoriteMusic>(refid, {
|
||||
collection: 'favoritemusic'
|
||||
})
|
||||
|
||||
if (!favoriteMusic) {
|
||||
logger.debugInfo(`No shared favourite music available for profile ${refid}. Using game specific favorites. Favorites will be saved as shared favorites at the end of the game session.`);
|
||||
return null
|
||||
}
|
||||
|
||||
return favoriteMusic
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { findMDBFile, readMDBFile, loadSongsForGameVersion } from "../data/mdb";
|
|||
import { CommonMusicDataField } from "../models/commonmusicdata";
|
||||
import Logger from "../utils/logger"
|
||||
import { getPlayableMusicResponse, PlayableMusicResponse } from "../models/Responses/playablemusicresponse";
|
||||
import { isAsphyxiaDebugMode } from "../utils/index";
|
||||
|
||||
const logger = new Logger("MusicList")
|
||||
|
||||
|
|
@ -31,5 +32,10 @@ export const playableMusic: EPR = async (info, data, send) => {
|
|||
|
||||
let response : PlayableMusicResponse = getPlayableMusicResponse(music)
|
||||
await send.object(response)
|
||||
|
||||
if (isAsphyxiaDebugMode()) {
|
||||
await IO.WriteFile(`apisamples/playableMusicList.json`, JSON.stringify(music, null, 4))
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
90
gitadora@asphyxia/handlers/SharedScores.ts
Normal file
90
gitadora@asphyxia/handlers/SharedScores.ts
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
import { PLUGIN_VER } from "../const";
|
||||
import { Scores } from "../models/scores";
|
||||
|
||||
type ScoreDiff = Scores['scores'][string]['diffs'][string];
|
||||
type ScoreEntry = Scores['scores'][string];
|
||||
|
||||
function selectBetterMeter(existing?: string, incoming?: string): string {
|
||||
if (!incoming) return existing ?? "0";
|
||||
if (!existing) return incoming;
|
||||
|
||||
try {
|
||||
return BigInt(incoming) > BigInt(existing) ? incoming : existing;
|
||||
} catch (e) {
|
||||
return incoming || existing;
|
||||
}
|
||||
}
|
||||
|
||||
function mergeScoreDiff(existing: ScoreDiff | undefined, incoming: ScoreDiff): ScoreDiff {
|
||||
if (!existing) return incoming;
|
||||
|
||||
return {
|
||||
perc: Math.max(existing.perc ?? 0, incoming.perc ?? 0),
|
||||
rank: Math.max(existing.rank ?? 0, incoming.rank ?? 0),
|
||||
meter: selectBetterMeter(existing.meter, incoming.meter),
|
||||
prog: Math.max(existing.prog ?? 0, incoming.prog ?? 0),
|
||||
clear: (existing.clear ?? false) || (incoming.clear ?? false),
|
||||
fc: (existing.fc ?? false) || (incoming.fc ?? false),
|
||||
ex: (existing.ex ?? false) || (incoming.ex ?? false),
|
||||
};
|
||||
}
|
||||
|
||||
function mergeScoreEntry(existing: ScoreEntry | undefined, incoming: ScoreEntry): ScoreEntry {
|
||||
const mergedDiffs: ScoreEntry['diffs'] = existing ? { ...existing.diffs } : {};
|
||||
|
||||
for (const [seq, diff] of Object.entries(incoming.diffs)) {
|
||||
mergedDiffs[seq] = mergeScoreDiff(mergedDiffs[seq], diff);
|
||||
}
|
||||
|
||||
const mergedUpdate = existing?.update ? [...existing.update] : [0, 0];
|
||||
if (incoming.update && (mergedUpdate[1] ?? 0) < incoming.update[1]) {
|
||||
mergedUpdate[0] = incoming.update[0];
|
||||
mergedUpdate[1] = incoming.update[1];
|
||||
}
|
||||
|
||||
return {
|
||||
update: mergedUpdate,
|
||||
diffs: mergedDiffs,
|
||||
};
|
||||
}
|
||||
|
||||
function mergeScoreCollections(target: Scores['scores'], incoming: Scores['scores']): Scores['scores'] {
|
||||
const merged = { ...target } as Scores['scores'];
|
||||
|
||||
for (const [mid, entry] of Object.entries(incoming)) {
|
||||
merged[mid] = mergeScoreEntry(merged[mid], entry);
|
||||
}
|
||||
|
||||
return merged;
|
||||
}
|
||||
|
||||
async function persistSharedScores(refid: string, game: 'gf' | 'dm', scores: Scores['scores']) {
|
||||
await DB.Upsert<Scores>(refid, { collection: 'scores', game, version: 'shared' }, {
|
||||
collection: 'scores',
|
||||
version: 'shared',
|
||||
pluginVer: PLUGIN_VER,
|
||||
game,
|
||||
scores,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Load and merge scores across all versions for a player/game pair and persist them under version "shared".
|
||||
*/
|
||||
export async function getMergedSharedScores(refid: string, game: 'gf' | 'dm'): Promise<Scores['scores']> {
|
||||
const scoreDocs = await DB.Find<Scores>(refid, { collection: 'scores', game });
|
||||
const mergedScores = scoreDocs.reduce<Scores['scores']>((acc, doc) => mergeScoreCollections(acc, doc.scores), {} as Scores['scores']);
|
||||
|
||||
await persistSharedScores(refid, game, mergedScores);
|
||||
return mergedScores;
|
||||
}
|
||||
|
||||
/**
|
||||
* Merge the provided score set into the shared scores document for the player/game pair.
|
||||
*/
|
||||
export async function mergeScoresIntoShared(refid: string, game: 'gf' | 'dm', scores: Scores['scores']) {
|
||||
const existingShared = await DB.FindOne<Scores>(refid, { collection: 'scores', game, version: 'shared' });
|
||||
const mergedScores = mergeScoreCollections(existingShared?.scores ?? {}, scores);
|
||||
|
||||
await persistSharedScores(refid, game, mergedScores);
|
||||
}
|
||||
|
|
@ -1,5 +1,8 @@
|
|||
/// <reference lib="es2020.bigint" />
|
||||
|
||||
import { getEncoreStageData } from "../data/extrastage";
|
||||
import Logger from "../utils/logger";
|
||||
import { getVersion } from "../utils";
|
||||
|
||||
const logger = new Logger('info');
|
||||
export const shopInfoRegist: EPR = async (info, data, send) => {
|
||||
|
|
@ -21,90 +24,343 @@ export const gameInfoGet: EPR = async (info, data, send) => {
|
|||
|
||||
const eventData = getEventDataResponse()
|
||||
const extraData = getEncoreStageData(info)
|
||||
|
||||
await send.object({
|
||||
now_date: K.ITEM('u64', BigInt(Date.now())),
|
||||
extra: {
|
||||
extra_lv: K.ITEM('u8', extraData.level),
|
||||
extramusic: {
|
||||
music: extraData.musics.map(mid => {
|
||||
return {
|
||||
musicid: K.ITEM('s32', mid),
|
||||
get_border: K.ITEM('u8', 0),
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
infect_music: { term: K.ITEM('u8', 0) },
|
||||
unlock_challenge: { term: K.ITEM('u8', 0) },
|
||||
battle: { term: K.ITEM('u8', 0) },
|
||||
battle_chara: { term: K.ITEM('u8', 0) },
|
||||
data_ver_limit: { term: K.ITEM('u8', 0) },
|
||||
ea_pass_propel: { term: K.ITEM('u8', 0) },
|
||||
monthly_skill: {
|
||||
term: K.ITEM('u8', 0),
|
||||
target_music: {
|
||||
music: {
|
||||
musicid: K.ITEM('s32', 0),
|
||||
},
|
||||
const VER = getVersion(info)
|
||||
if (VER == "galaxywave"){
|
||||
await send.object({
|
||||
now_date: K.ITEM('u64', BigInt(Date.now())),
|
||||
extra: {
|
||||
extra_lv: K.ITEM('s32', extraData.level),
|
||||
extramusic: {
|
||||
music: extraData.musics.map(mid => {
|
||||
return {
|
||||
musicid: K.ITEM('s32', mid),
|
||||
get_border: K.ITEM('u8', 0),
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
},
|
||||
update_prog: { term: K.ITEM('u8', 0) },
|
||||
rockwave: { event_list: {} },
|
||||
general_term: {},
|
||||
jubeat_omiyage_challenge: {},
|
||||
kac2017: {},
|
||||
nostalgia_concert: {},
|
||||
trbitemdata: {},
|
||||
ctrl_movie: {},
|
||||
ng_jacket: {},
|
||||
ng_recommend_music: {},
|
||||
ranking: {
|
||||
skill_0_999: {},
|
||||
skill_1000_1499: {},
|
||||
skill_1500_1999: {},
|
||||
skill_2000_2499: {},
|
||||
skill_2500_2999: {},
|
||||
skill_3000_3499: {},
|
||||
skill_3500_3999: {},
|
||||
skill_4000_4499: {},
|
||||
skill_4500_4999: {},
|
||||
skill_5000_5499: {},
|
||||
skill_5500_5999: {},
|
||||
skill_6000_6499: {},
|
||||
skill_6500_6999: {},
|
||||
skill_7000_7499: {},
|
||||
skill_7500_7999: {},
|
||||
skill_8000_8499: {},
|
||||
skill_8500_9999: {},
|
||||
total: {},
|
||||
original: {},
|
||||
bemani: {},
|
||||
famous: {},
|
||||
anime: {},
|
||||
band: {},
|
||||
western: {},
|
||||
},
|
||||
processing_report_state: K.ITEM('u8', 0),
|
||||
assert_report_state: K.ITEM('u8', 0),
|
||||
recommendmusic: { '@attr': { nr: 0 } },
|
||||
demomusic: { '@attr': { nr: 0 } },
|
||||
event_skill: {},
|
||||
temperature: { is_send: K.ITEM('bool', 0) },
|
||||
bemani_summer_2018: { is_open: K.ITEM('bool', 0) },
|
||||
kac2018: {
|
||||
event: {
|
||||
term: K.ITEM('s32', 0),
|
||||
since: K.ITEM('u64', BigInt(0)),
|
||||
till: K.ITEM('u64', BigInt(0)),
|
||||
is_open: K.ITEM('bool', 0),
|
||||
infect_music: { term: K.ITEM('u8', 0) },
|
||||
unlock_challenge: { term: K.ITEM('s32', 0) },
|
||||
battle: { term: K.ITEM('s32', 0) },
|
||||
battle_chara: { term: K.ITEM('s32', 0) },
|
||||
data_ver_limit: { term: K.ITEM('s32', 0) },
|
||||
ea_pass_propel: { term: K.ITEM('s32', 0) },
|
||||
monthly_skill: {
|
||||
term: K.ITEM('u8', 0),
|
||||
target_music: {
|
||||
music_id: K.ARRAY('s32', [0, 0, 0, 0, 0, 0]),
|
||||
music: {
|
||||
musicid: K.ITEM('s32', 0),
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
...eventData,
|
||||
});
|
||||
update_prog: { term: K.ITEM('s32', 0) },
|
||||
rockwave: {
|
||||
event_list: {
|
||||
event: {
|
||||
data_id: K.ITEM('s32', 0),
|
||||
data_version: K.ITEM('s32', 0),
|
||||
event_id: K.ITEM('s32', 0),
|
||||
event_type: K.ITEM('s32', 0),
|
||||
start_date: K.ITEM('u64', BigInt(0)),
|
||||
end_date: K.ITEM('u64', BigInt(0)),
|
||||
is_open: K.ITEM('bool', 0),
|
||||
bg_no: K.ITEM('s32', 0),
|
||||
target_musicid: K.ITEM('s32', 0),
|
||||
clear_border: K.ITEM('s32', 0),
|
||||
reward_musicid: K.ITEM('s32', 0),
|
||||
reward_musicid_border_list: K.ITEM('s32', 0),
|
||||
reward_stickerid: K.ITEM('s32', 0),
|
||||
reward_stickerid_list: K.ITEM('s32', 0),
|
||||
reward_stickerid_border_list: K.ITEM('s32', 0),
|
||||
firstbit: K.ITEM('s32', 0),
|
||||
quest_no: K.ITEM('s32', 0),
|
||||
target_music_list: {
|
||||
music: {
|
||||
musicid: K.ITEM('s32', 0),
|
||||
}
|
||||
},
|
||||
ranking_list: K.ITEM('u64', BigInt(0)),
|
||||
}
|
||||
}
|
||||
},
|
||||
general_term: {
|
||||
termdata: {
|
||||
type: K.ITEM('str', ''),
|
||||
term: K.ITEM('s32', 0),
|
||||
state: K.ITEM('s32', 0),
|
||||
start_date_ms: K.ITEM('u64', BigInt(0)),
|
||||
end_date_ms: K.ITEM('u64', BigInt(0)),
|
||||
}
|
||||
},
|
||||
jubeat_omiyage_challenge: {},
|
||||
kac2017: {},
|
||||
nostalgia_concert: {},
|
||||
trbitemdata: {},
|
||||
ctrl_movie: {},
|
||||
ng_jacket: {},
|
||||
ng_recommend_music: {},
|
||||
ranking: {
|
||||
skill_0_999: {},
|
||||
skill_1000_1499: {},
|
||||
skill_1500_1999: {},
|
||||
skill_2000_2499: {},
|
||||
skill_2500_2999: {},
|
||||
skill_3000_3499: {},
|
||||
skill_3500_3999: {},
|
||||
skill_4000_4499: {},
|
||||
skill_4500_4999: {},
|
||||
skill_5000_5499: {},
|
||||
skill_5500_5999: {},
|
||||
skill_6000_6499: {},
|
||||
skill_6500_6999: {},
|
||||
skill_7000_7499: {},
|
||||
skill_7500_7999: {},
|
||||
skill_8000_8499: {},
|
||||
skill_8500_9999: {},
|
||||
total: {},
|
||||
original: {},
|
||||
bemani: {},
|
||||
famous: {},
|
||||
anime: {},
|
||||
band: {},
|
||||
western: {},
|
||||
},
|
||||
processing_report_state: K.ITEM('u8', 0),
|
||||
assert_report_state: K.ITEM('u8', 0),
|
||||
recommendmusic: { '@attr': { nr: 0 } },
|
||||
demomusic: { '@attr': { nr: 0 } },
|
||||
event_skill: {},
|
||||
temperature: { is_send: K.ITEM('bool', 0) },
|
||||
bemani_summer_2018: { is_open: K.ITEM('bool', 0) },
|
||||
kac2018: {
|
||||
event: {
|
||||
term: K.ITEM('s32', 0),
|
||||
since: K.ITEM('u64', BigInt(0)),
|
||||
till: K.ITEM('u64', BigInt(0)),
|
||||
is_open: K.ITEM('bool', 0),
|
||||
target_music: {
|
||||
music_id: K.ARRAY('s32', [0, 0, 0, 0, 0, 0]),
|
||||
},
|
||||
},
|
||||
},
|
||||
...eventData,
|
||||
});
|
||||
} else if (VER == "fuzzup"){
|
||||
await send.object({
|
||||
now_date: K.ITEM('u64', BigInt(Date.now())),
|
||||
extra: {
|
||||
extra_lv: K.ITEM('u8', extraData.level),
|
||||
extramusic: {
|
||||
music: extraData.musics.map(mid => {
|
||||
return {
|
||||
musicid: K.ITEM('s32', mid),
|
||||
get_border: K.ITEM('u8', 0),
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
infect_music: { term: K.ITEM('u8', 0) },
|
||||
unlock_challenge: { term: K.ITEM('u8', 0) },
|
||||
battle: { term: K.ITEM('u8', 0) },
|
||||
battle_chara: { term: K.ITEM('u8', 0) },
|
||||
data_ver_limit: { term: K.ITEM('s32', 0) },
|
||||
ea_pass_propel: { term: K.ITEM('u8', 0) },
|
||||
monthly_skill: {
|
||||
term: K.ITEM('u8', 0),
|
||||
target_music: {
|
||||
music: {
|
||||
musicid: K.ITEM('s32', 0),
|
||||
},
|
||||
},
|
||||
},
|
||||
update_prog: { term: K.ITEM('u8', 0) },
|
||||
rockwave: { event_list: {} },
|
||||
general_term: {},
|
||||
jubeat_omiyage_challenge: {},
|
||||
kac2017: {},
|
||||
nostalgia_concert: {},
|
||||
trbitemdata: {},
|
||||
ctrl_movie: {},
|
||||
ng_jacket: {},
|
||||
ng_recommend_music: {},
|
||||
ranking: {
|
||||
skill_0_999: {},
|
||||
skill_1000_1499: {},
|
||||
skill_1500_1999: {},
|
||||
skill_2000_2499: {},
|
||||
skill_2500_2999: {},
|
||||
skill_3000_3499: {},
|
||||
skill_3500_3999: {},
|
||||
skill_4000_4499: {},
|
||||
skill_4500_4999: {},
|
||||
skill_5000_5499: {},
|
||||
skill_5500_5999: {},
|
||||
skill_6000_6499: {},
|
||||
skill_6500_6999: {},
|
||||
skill_7000_7499: {},
|
||||
skill_7500_7999: {},
|
||||
skill_8000_8499: {},
|
||||
skill_8500_9999: {},
|
||||
total: {},
|
||||
original: {},
|
||||
bemani: {},
|
||||
famous: {},
|
||||
anime: {},
|
||||
band: {},
|
||||
western: {},
|
||||
},
|
||||
processing_report_state: K.ITEM('u8', 0),
|
||||
assert_report_state: K.ITEM('u8', 0),
|
||||
recommendmusic: { '@attr': { nr: 0 } },
|
||||
demomusic: { '@attr': { nr: 0 } },
|
||||
event_skill: {},
|
||||
temperature: { is_send: K.ITEM('bool', 0) },
|
||||
bemani_summer_2018: { is_open: K.ITEM('bool', 0) },
|
||||
kac2018: {
|
||||
event: {
|
||||
term: K.ITEM('s32', 0),
|
||||
since: K.ITEM('u64', BigInt(0)),
|
||||
till: K.ITEM('u64', BigInt(0)),
|
||||
is_open: K.ITEM('bool', 0),
|
||||
target_music: {
|
||||
music_id: K.ARRAY('s32', [0, 0, 0, 0, 0, 0]),
|
||||
},
|
||||
},
|
||||
},
|
||||
livehouse: {
|
||||
event_list: {
|
||||
event: {
|
||||
is_open: K.ITEM('bool', 0),
|
||||
term: K.ITEM('u8', 0),
|
||||
start_date_ms: K.ITEM('u64', BigInt(0)),
|
||||
end_date_ms: K.ITEM('u64', BigInt(0)),
|
||||
livehouse_name: K.ITEM('str', 'Asphyxia'),
|
||||
reward_list: {
|
||||
reward: {
|
||||
reward_id: K.ITEM('s32', 0),
|
||||
reward_kind: K.ITEM('s32', 0),
|
||||
reward_itemid: K.ITEM('s32', 0),
|
||||
unlock_border: K.ITEM('s32', 0),
|
||||
},
|
||||
},
|
||||
requirements_musicid: K.ITEM('s32', 0),
|
||||
member_table: K.ITEM('s32', 0),
|
||||
},
|
||||
},
|
||||
bonus: {
|
||||
term: K.ITEM('u8', 0),
|
||||
stage_bonus: K.ITEM('s32', 0),
|
||||
charm_bonus: K.ITEM('s32', 0),
|
||||
start_date_ms: K.ITEM('u64', BigInt(0)),
|
||||
end_date_ms: K.ITEM('u64', BigInt(0)),
|
||||
},
|
||||
},
|
||||
...eventData,
|
||||
});
|
||||
}//Older
|
||||
else {
|
||||
await send.object({
|
||||
now_date: K.ITEM('u64', BigInt(Date.now())),
|
||||
extra: {
|
||||
extra_lv: K.ITEM('u8', extraData.level),
|
||||
extramusic: {
|
||||
music: extraData.musics.map(mid => {
|
||||
return {
|
||||
musicid: K.ITEM('s32', mid),
|
||||
get_border: K.ITEM('u8', 0),
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
infect_music: { term: K.ITEM('u8', 0) },
|
||||
unlock_challenge: { term: K.ITEM('u8', 0) },
|
||||
battle: { term: K.ITEM('u8', 0) },
|
||||
battle_chara: { term: K.ITEM('u8', 0) },
|
||||
data_ver_limit: { term: K.ITEM('u8', 0) },
|
||||
ea_pass_propel: { term: K.ITEM('u8', 0) },
|
||||
monthly_skill: {
|
||||
term: K.ITEM('u8', 0),
|
||||
target_music: {
|
||||
music: {
|
||||
musicid: K.ITEM('s32', 0),
|
||||
},
|
||||
},
|
||||
},
|
||||
update_prog: { term: K.ITEM('u8', 0) },
|
||||
rockwave: { event_list: {} },
|
||||
general_term: {},
|
||||
jubeat_omiyage_challenge: {},
|
||||
kac2017: {},
|
||||
nostalgia_concert: {},
|
||||
trbitemdata: {},
|
||||
ctrl_movie: {},
|
||||
ng_jacket: {},
|
||||
ng_recommend_music: {},
|
||||
ranking: {
|
||||
skill_0_999: {},
|
||||
skill_1000_1499: {},
|
||||
skill_1500_1999: {},
|
||||
skill_2000_2499: {},
|
||||
skill_2500_2999: {},
|
||||
skill_3000_3499: {},
|
||||
skill_3500_3999: {},
|
||||
skill_4000_4499: {},
|
||||
skill_4500_4999: {},
|
||||
skill_5000_5499: {},
|
||||
skill_5500_5999: {},
|
||||
skill_6000_6499: {},
|
||||
skill_6500_6999: {},
|
||||
skill_7000_7499: {},
|
||||
skill_7500_7999: {},
|
||||
skill_8000_8499: {},
|
||||
skill_8500_9999: {},
|
||||
total: {},
|
||||
original: {},
|
||||
bemani: {},
|
||||
famous: {},
|
||||
anime: {},
|
||||
band: {},
|
||||
western: {},
|
||||
},
|
||||
processing_report_state: K.ITEM('u8', 0),
|
||||
assert_report_state: K.ITEM('u8', 0),
|
||||
recommendmusic: { '@attr': { nr: 0 } },
|
||||
demomusic: { '@attr': { nr: 0 } },
|
||||
event_skill: {},
|
||||
temperature: { is_send: K.ITEM('bool', 0) },
|
||||
bemani_summer_2018: { is_open: K.ITEM('bool', 0) },
|
||||
kac2018: {
|
||||
event: {
|
||||
term: K.ITEM('s32', 0),
|
||||
since: K.ITEM('u64', BigInt(0)),
|
||||
till: K.ITEM('u64', BigInt(0)),
|
||||
is_open: K.ITEM('bool', 0),
|
||||
target_music: {
|
||||
music_id: K.ARRAY('s32', [0, 0, 0, 0, 0, 0]),
|
||||
},
|
||||
},
|
||||
},
|
||||
KAC2016: {
|
||||
is_entry: K.ITEM('bool', 0),
|
||||
term: K.ITEM('u8', 0),
|
||||
musicid: K.ITEM('s32', 0),
|
||||
},
|
||||
KAC2016_skill_ranking: { term: K.ITEM('u8', 0) },
|
||||
season_sticker: { term: K.ITEM('u8', 0) },
|
||||
paseli_point_lose: { term: K.ITEM('u8', 0) },
|
||||
nostal_link: { term: K.ITEM('u8', 0) },
|
||||
encore_advent: { term: K.ITEM('u8', 0) },
|
||||
sdvx_stamprally: { term: K.ITEM('u8', 0) },
|
||||
sdvx_stamprally2: { term: K.ITEM('u8', 0) },
|
||||
floor_policy_2_info: { term: K.ITEM('u8', 0) },
|
||||
long_otobear_fes_2: {
|
||||
term: K.ITEM('u8', 0),
|
||||
bonus_musicid: K.ITEM('s32', 0),
|
||||
},
|
||||
...eventData,
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
function getEventDataResponse() {
|
||||
|
|
@ -114,6 +370,41 @@ function getEventDataResponse() {
|
|||
},
|
||||
bear_fes: {},
|
||||
nextadium: {},
|
||||
galaxy_parade: {
|
||||
corner_list: {
|
||||
corner: {
|
||||
is_open: K.ITEM('bool', 0),
|
||||
data_ver: K.ITEM('s32', 0),
|
||||
genre: K.ITEM('s32', 0),
|
||||
corner_id: K.ITEM('s32', 0),
|
||||
corner_name: K.ITEM('str', ''),
|
||||
start_date_ms: K.ITEM('u64', BigInt(0)),
|
||||
end_date_ms: K.ITEM('u64', BigInt(0)),
|
||||
requirements_musicid: K.ITEM('s32', 0),
|
||||
reward_list: {
|
||||
reward: {
|
||||
reward_id: K.ITEM('s32', 0),
|
||||
reward_kind: K.ITEM('s32', 0),
|
||||
reward_itemid: K.ITEM('s32', 0),
|
||||
unlock_border: K.ITEM('s32', 0),
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
gacha_table: {
|
||||
chara_odds: {
|
||||
chara_id: K.ITEM('s32', 0),
|
||||
odds: K.ITEM('s32', 0),
|
||||
}
|
||||
},
|
||||
bonus: {
|
||||
term: K.ITEM('s32', 0),
|
||||
stage_bonus: K.ITEM('s32', 0),
|
||||
charm_bonus: K.ITEM('s32', 0),
|
||||
start_date_ms: K.ITEM('u64', BigInt(0)),
|
||||
end_date_ms: K.ITEM('u64', BigInt(0)),
|
||||
}
|
||||
},
|
||||
};
|
||||
const time = BigInt(31536000);
|
||||
|
||||
|
|
@ -129,7 +420,8 @@ function getEventDataResponse() {
|
|||
term: K.ITEM('u8', 0),
|
||||
start_date_ms: K.ITEM('u64', time),
|
||||
end_date_ms: K.ITEM('u64', time),
|
||||
bonus_musicid: {},
|
||||
//bonus_musicid: {},
|
||||
bonus_musicid: K.ITEM('s32', 0),
|
||||
};
|
||||
addition[`sdvx_stamprally3`] = obj;
|
||||
addition[`chronicle_1`] = obj;
|
||||
|
|
@ -159,14 +451,42 @@ function getEventDataResponse() {
|
|||
addition['monstar_subjugation'][`monstar_subjugation_${i}`] = obj;
|
||||
addition['bear_fes'][`bear_fes_${i}`] = obj;
|
||||
}
|
||||
|
||||
if (i <= 2) {
|
||||
addition[`gitadora_oracle_${i}`] = {
|
||||
term: K.ITEM('u8', 0),
|
||||
bonus_musicid: K.ITEM('s32', 0),
|
||||
};
|
||||
addition[`gitadora_oracle_${i}`] = {
|
||||
term: K.ITEM('u8', 0),
|
||||
bonus_musicid: K.ITEM('s32', 0),
|
||||
};
|
||||
}
|
||||
|
||||
if (i <= 3) {
|
||||
addition[`kouyou_challenge_${i}`] = {
|
||||
term: K.ITEM('u8', 0),
|
||||
bonus_musicid: K.ITEM('s32', 0),
|
||||
};
|
||||
addition[`dokidoki_valentine2_${i}`] = {
|
||||
term: K.ITEM('u8', 0),
|
||||
bonus_musicid: K.ITEM('s32', 0),
|
||||
};
|
||||
addition[`wakuteka_whiteday2_${i}`] = { term: K.ITEM('u8', 0) };
|
||||
addition[`ohanami_challenge_${i}`] = {
|
||||
term: K.ITEM('u8', 0),
|
||||
bonus_musicid: K.ITEM('s32', 0),
|
||||
};
|
||||
addition[`otobear_in_the_tsubo_${i}`] = {
|
||||
term: K.ITEM('u8', 0),
|
||||
bonus_musicid: K.ITEM('s32', 0),
|
||||
};
|
||||
addition[`summer_craft_${i}`] = {
|
||||
term: K.ITEM('u8', 0),
|
||||
bonus_musicid: K.ITEM('s32', 0),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return addition
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
/// <reference lib="es2020.bigint" />
|
||||
|
||||
import { getDefaultPlayerInfo, PlayerInfo } from "../models/playerinfo";
|
||||
import { PlayerRanking } from "../models/playerranking";
|
||||
import { getDefaultProfile, Profile } from "../models/profile";
|
||||
|
|
@ -8,7 +10,7 @@ import { getDefaultScores, Scores } from "../models/scores";
|
|||
|
||||
import { PLUGIN_VER } from "../const";
|
||||
import Logger from "../utils/logger"
|
||||
import { isAsphyxiaDebugMode } from "../utils/index";
|
||||
import { isAsphyxiaDebugMode, isSharedSongScoresEnabled } from "../utils/index";
|
||||
import { SecretMusicEntry } from "../models/secretmusicentry";
|
||||
import { CheckPlayerResponse, getCheckPlayerResponse } from "../models/Responses/checkplayerresponse";
|
||||
import { getPlayerStickerResponse, PlayerStickerResponse } from "../models/Responses/playerstickerresponse";
|
||||
|
|
@ -18,6 +20,7 @@ import { getDefaultBattleDataResponse } from "../models/Responses/battledataresp
|
|||
import { applySharedFavoriteMusicToExtra, saveSharedFavoriteMusicFromExtra } from "./FavoriteMusic";
|
||||
import { getPlayerRecordResponse } from "../models/Responses/playerrecordresponse";
|
||||
import { getPlayerPlayInfoResponse, PlayerPlayInfoResponse } from "../models/Responses/playerplayinforesponse";
|
||||
import { getMergedSharedScores, mergeScoresIntoShared } from "./SharedScores";
|
||||
|
||||
const logger = new Logger("profiles")
|
||||
|
||||
|
|
@ -70,6 +73,7 @@ export const getPlayer: EPR = async (info, data, send) => {
|
|||
const time = BigInt(31536000);
|
||||
const dm = isDM(info);
|
||||
const game = dm ? 'dm' : 'gf';
|
||||
const sharedScoresEnabled = isSharedSongScoresEnabled();
|
||||
|
||||
logger.debugInfo(`Loading ${game} profile for player ${no} with refid: ${refid}`)
|
||||
const name = await DB.FindOne<PlayerInfo>(refid, {
|
||||
|
|
@ -82,8 +86,8 @@ export const getPlayer: EPR = async (info, data, send) => {
|
|||
const gfRecord = await getRecord(refid, version, 'gf')
|
||||
const dmExtra = await getExtra(refid, version, 'dm')
|
||||
const gfExtra = await getExtra(refid, version, 'gf')
|
||||
const dmScores = (await getScore(refid, version, 'dm')).scores
|
||||
const gfScores = (await getScore(refid, version, 'gf')).scores
|
||||
const dmScores = sharedScoresEnabled ? await getMergedSharedScores(refid, 'dm') : (await getScore(refid, version, 'dm')).scores
|
||||
const gfScores = sharedScoresEnabled ? await getMergedSharedScores(refid, 'gf') : (await getScore(refid, version, 'gf')).scores
|
||||
|
||||
const profile = dm ? dmProfile : gfProfile;
|
||||
const extra = dm ? dmExtra : gfExtra;
|
||||
|
|
@ -213,13 +217,33 @@ export const getPlayer: EPR = async (info, data, send) => {
|
|||
recommend_musicid_list: K.ARRAY('s32', extra.recommend_musicid_list ?? Array(5).fill(-1)),
|
||||
record,
|
||||
groove: {
|
||||
extra_gauge: K.ITEM('s32', profile.extra_gauge),
|
||||
extra_gauge: K.ITEM('s32', (profile.extra_gauge+95)),
|
||||
encore_gauge: K.ITEM('s32', profile.encore_gauge),
|
||||
encore_cnt: K.ITEM('s32', profile.encore_cnt),
|
||||
encore_success: K.ITEM('s32', profile.encore_success),
|
||||
unlock_point: K.ITEM('s32', profile.unlock_point),
|
||||
},
|
||||
musiclist: { '@attr': { nr: musicdata.length }, musicdata },
|
||||
deluxe: {
|
||||
deluxe_content: K.ITEM('s32', 0),
|
||||
target_id: K.ITEM('s32', 0),
|
||||
multiply: K.ITEM('s32', 0),
|
||||
point: K.ITEM('s32', 0),
|
||||
},
|
||||
galaxy_parade: {
|
||||
score_list: {},
|
||||
last_corner_id: K.ITEM('s32', 0),
|
||||
chara_list: {},
|
||||
last_sort_category: K.ITEM('s32', 0),
|
||||
last_sort_order: K.ITEM('s32', 0),
|
||||
team_member: {
|
||||
chara_id_guitar: K.ITEM('s32', 0),
|
||||
chara_id_bass: K.ITEM('s32', 0),
|
||||
chara_id_drum: K.ITEM('s32', 0),
|
||||
chara_id_free1: K.ITEM('s32', 0),
|
||||
chara_id_free2: K.ITEM('s32', 0),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const playerRanking = await getPlayerRanking(refid, version, game)
|
||||
|
|
@ -227,15 +251,55 @@ export const getPlayer: EPR = async (info, data, send) => {
|
|||
const addition: any = {
|
||||
monstar_subjugation: {},
|
||||
bear_fes: {},
|
||||
galaxy_parade: {
|
||||
corner_list: {
|
||||
corner: {
|
||||
is_open: K.ITEM('bool', 0),
|
||||
data_ver: K.ITEM('s32', 0),
|
||||
genre: K.ITEM('s32', 0),
|
||||
corner_id: K.ITEM('s32', 0),
|
||||
corner_name: K.ITEM('str', ''),
|
||||
start_date_ms: K.ITEM('u64', BigInt(0)),
|
||||
end_date_ms: K.ITEM('u64', BigInt(0)),
|
||||
requirements_musicid: K.ITEM('s32', 0),
|
||||
reward_list: {
|
||||
reward: {
|
||||
reward_id: K.ITEM('s32', 0),
|
||||
reward_kind: K.ITEM('s32', 0),
|
||||
reward_itemid: K.ITEM('s32', 0),
|
||||
unlock_border: K.ITEM('s32', 0),
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
gacha_table: {
|
||||
chara_odds: {
|
||||
chara_id: K.ITEM('s32', 0),
|
||||
odds: K.ITEM('s32', 0),
|
||||
}
|
||||
},
|
||||
bonus: {
|
||||
term: K.ITEM('s32', 0),
|
||||
stage_bonus: K.ITEM('s32', 0),
|
||||
charm_bonus: K.ITEM('s32', 0),
|
||||
start_date_ms: K.ITEM('u64', BigInt(0)),
|
||||
end_date_ms: K.ITEM('u64', BigInt(0)),
|
||||
}
|
||||
},
|
||||
};
|
||||
for (let i = 1; i <= 20; ++i) {
|
||||
const obj = { point: K.ITEM('s32', 0) };
|
||||
if (i == 1) {
|
||||
addition['long_otobear_fes_1'] = obj;
|
||||
addition['long_otobear_fes_2'] = obj;
|
||||
addition['phrase_combo_challenge'] = obj;
|
||||
addition['sdvx_stamprally'] = obj;
|
||||
addition['sdvx_stamprally2'] = obj;
|
||||
addition['sdvx_stamprally3'] = obj;
|
||||
addition['chronicle_1'] = obj;
|
||||
} else {
|
||||
addition['gitadora_oracle_1'] = obj;
|
||||
addition['gitadora_oracle_2'] = obj;
|
||||
} else {
|
||||
addition[`phrase_combo_challenge_${i}`] = obj;
|
||||
}
|
||||
|
||||
|
|
@ -254,6 +318,15 @@ export const getPlayer: EPR = async (info, data, send) => {
|
|||
point_3: K.ITEM('s32', 0),
|
||||
};
|
||||
addition[`kouyou_challenge_${i}`] = { point: K.ITEM('s32', 0) };
|
||||
addition[`dokidoki_valentine2_${i}`] = { point: K.ITEM('s32', 0) };
|
||||
addition[`ohanami_challenge_${i}`] = { point: K.ITEM('s32', 0) };
|
||||
addition[`otobear_in_the_tsubo_${i}`] = { point: K.ITEM('s32', 0) };
|
||||
addition[`summer_craft_${i}`] = { point: K.ITEM('s32', 0) };
|
||||
addition[`wakuteka_whiteday2_${i}`] = {
|
||||
point_1: K.ITEM('s32', 0),
|
||||
point_2: K.ITEM('s32', 0),
|
||||
point_3: K.ITEM('s32', 0),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -307,6 +380,21 @@ export const getPlayer: EPR = async (info, data, send) => {
|
|||
},
|
||||
event_score: { eventlist: {} },
|
||||
rockwave: { score_list: {} },
|
||||
livehouse: {
|
||||
score_list: {
|
||||
score: {
|
||||
term: K.ITEM('u8', -1),
|
||||
reward_id: K.ITEM('s32', -1),
|
||||
unlock_point: K.ITEM('s32', -1),
|
||||
chara_id_guitar: K.ITEM('s32', -1),
|
||||
chara_id_bass: K.ITEM('s32', -1),
|
||||
chara_id_drum: K.ITEM('s32', -1),
|
||||
chara_id_other: K.ITEM('s32', -1),
|
||||
leader: K.ITEM('s32', -1),
|
||||
},
|
||||
last_livehouse: K.ITEM('s32', -1),
|
||||
}
|
||||
},
|
||||
jubeat_omiyage_challenge: {},
|
||||
light_mode_reward_item: { itemid: K.ITEM('s32', -1), rarity: K.ITEM('s32', 0) },
|
||||
standard_mode_reward_item: { itemid: K.ITEM('s32', -1), rarity: K.ITEM('s32', 0) },
|
||||
|
|
@ -325,6 +413,20 @@ export const getPlayer: EPR = async (info, data, send) => {
|
|||
kac2017: {
|
||||
entry_status: K.ITEM('s32', 0),
|
||||
},
|
||||
KAC2016: {
|
||||
is_entry: K.ITEM('bool', 0),
|
||||
},
|
||||
KAC2016_skill_ranking: {
|
||||
skill: {
|
||||
skill: K.ITEM('s32', -1),
|
||||
rank: K.ITEM('s32', -1),
|
||||
total_nr: K.ITEM('s32', -1),
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
nostalgia_concert: {},
|
||||
bemani_summer_2018: {
|
||||
linkage_id: K.ITEM('s32', -1),
|
||||
|
|
@ -424,6 +526,7 @@ export const savePlayers: EPR = async (info, data, send) => {
|
|||
const version = getVersion(info);
|
||||
const dm = isDM(info);
|
||||
const game = dm ? 'dm' : 'gf';
|
||||
const sharedScoresEnabled = isSharedSongScoresEnabled();
|
||||
|
||||
let players = $(data).elements("player")
|
||||
|
||||
|
|
@ -449,7 +552,7 @@ export const savePlayers: EPR = async (info, data, send) => {
|
|||
throw "Request data is missing required parameter: player.refid"
|
||||
}
|
||||
|
||||
await saveSinglePlayer(player, refid, no, version, game);
|
||||
await saveSinglePlayer(player, refid, no, version, game, sharedScoresEnabled);
|
||||
|
||||
let ranking = await getPlayerRanking(refid, version, game)
|
||||
let responsePart = getSaveProfileResponse(no, ranking)
|
||||
|
|
@ -469,7 +572,7 @@ export const savePlayers: EPR = async (info, data, send) => {
|
|||
}
|
||||
};
|
||||
|
||||
async function saveSinglePlayer(dataplayer: KDataReader, refid: string, no: number, version: string, game: 'gf' | 'dm')
|
||||
async function saveSinglePlayer(dataplayer: KDataReader, refid: string, no: number, version: string, game: 'gf' | 'dm', sharedScoresEnabled: boolean)
|
||||
{
|
||||
logger.debugInfo(`Saving ${game} profile for player ${no} with refid: ${refid}`)
|
||||
const profile = await getProfile(refid, version, game) as any;
|
||||
|
|
@ -612,7 +715,11 @@ async function saveSinglePlayer(dataplayer: KDataReader, refid: string, no: numb
|
|||
logStagesPlayed(playedStages)
|
||||
|
||||
const scores = await updatePlayerScoreCollection(refid, playedStages, version, game)
|
||||
await saveScore(refid, version, game, scores);
|
||||
await saveScore(refid, version, game, scores);
|
||||
|
||||
if (sharedScoresEnabled) {
|
||||
await mergeScoresIntoShared(refid, game, scores);
|
||||
}
|
||||
await saveSharedFavoriteMusicFromExtra(refid, extra)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -40,12 +40,19 @@ export function register() {
|
|||
|
||||
R.Config("shared_favorite_songs", {
|
||||
name: "Shared Favorite Songs (Experimental)",
|
||||
desc: "If disabled, players will be able to keep separate lists of favorite songs for each version of Gitadora, as well as between Guitar Freaks and Drummania. " +
|
||||
desc: "If disabled, players will be able to keep separate lists of favorite songs for each version of Gitadora, as well as between Guitar Freaks and Drummania. " +
|
||||
"Enable this option to have a single unified list of favorite songs for both games, and across all versions. Default is false, to match original arcade behaviour.",
|
||||
type: "boolean",
|
||||
default: false,
|
||||
})
|
||||
|
||||
R.Config("shared_song_scores", {
|
||||
name: "Shared Song Scores (Experimental)",
|
||||
desc: "If disabled, players will keep separate scoreboards per version. Enable to merge best scores across all versions and games into a shared store.",
|
||||
type: "boolean",
|
||||
default: false,
|
||||
})
|
||||
|
||||
R.DataFile("data/mdb/custom.xml", {
|
||||
accept: ".xml",
|
||||
name: "Custom MDB",
|
||||
|
|
@ -56,11 +63,17 @@ export function register() {
|
|||
|
||||
const MultiRoute = (method: string, handler: EPR | boolean) => {
|
||||
// Helper for register multiple versions.
|
||||
R.Route(`${method}`, handler);
|
||||
R.Route(`re_${method}`, handler);
|
||||
R.Route(`matixx_${method}`, handler);
|
||||
R.Route(`exchain_${method}`, handler);
|
||||
R.Route(`matixx_${method}`, handler);
|
||||
R.Route(`nextage_${method}`, handler)
|
||||
R.Route(`highvoltage_${method}`, handler)
|
||||
// TODO: TB, TBRE and more older version?
|
||||
R.Route(`fuzzup_${method}`, handler)
|
||||
R.Route(`galaxywave_${method}`, handler)
|
||||
R.Route(`galaxywave_delta_${method}`, handler)
|
||||
// TODO: TB, and more older version?
|
||||
};
|
||||
|
||||
// Info
|
||||
|
|
|
|||
|
|
@ -24,16 +24,16 @@ export interface BattleDataResponse
|
|||
|
||||
score: {
|
||||
battle_class: KITEM<'s32'>,
|
||||
max_battle_class: KITEM<'s32'>,
|
||||
battle_point: KITEM<'s32'>,
|
||||
win: KITEM<'s32'>,
|
||||
lose: KITEM<'s32'>,
|
||||
draw: KITEM<'s32'>,
|
||||
consecutive_win: KITEM<'s32'>,
|
||||
max_consecutive_win: KITEM<'s32'>,
|
||||
glorious_win: KITEM<'s32'>,
|
||||
max_defeat_skill: KITEM<'s32'>,
|
||||
latest_result: KITEM<'s32'>,
|
||||
max_battle_class: KITEM<'s32'>,
|
||||
battle_point: KITEM<'s32'>,
|
||||
win: KITEM<'s32'>,
|
||||
lose: KITEM<'s32'>,
|
||||
draw: KITEM<'s32'>,
|
||||
consecutive_win: KITEM<'s32'>,
|
||||
max_consecutive_win: KITEM<'s32'>,
|
||||
glorious_win: KITEM<'s32'>,
|
||||
max_defeat_skill: KITEM<'s32'>,
|
||||
latest_result: KITEM<'s32'>,
|
||||
|
||||
}
|
||||
history: {}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ export interface CommonMusicDataField {
|
|||
is_hot: KITEM<"bool">;
|
||||
data_ver: KITEM<"s32">;
|
||||
diff: KARRAY<"u16">;
|
||||
seq_release_state: KITEM<"s32">;
|
||||
}
|
||||
|
||||
export interface CommonMusicData {
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@ export function getDefaultExtra(game: 'gf' | 'dm', version: string, id: number)
|
|||
reward_status: Array(50).fill(0),
|
||||
}
|
||||
result.playstyle[1] = 1 // Note scroll speed (should default to 1.0x)
|
||||
result.playstyle[36] = 20 // Unknown
|
||||
result.playstyle[48] = 20 // Unknown
|
||||
result.playstyle[36] = 20 // Target Timing Adjustment
|
||||
result.playstyle[48] = 20 // Note Display Adjustment
|
||||
|
||||
return result
|
||||
}
|
||||
|
|
|
|||
8
gitadora@asphyxia/models/playerstickerresponse.ts
Normal file
8
gitadora@asphyxia/models/playerstickerresponse.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
export interface PlayerStickerResponse {
|
||||
id: KITEM<'s32'>,
|
||||
pos_x: KITEM<'float'> ,
|
||||
pos_y: KITEM<'float'>,
|
||||
scale_x: KITEM<'float'> ,
|
||||
scale_y: KITEM<'float'>,
|
||||
rotate: KITEM<'float'>
|
||||
}
|
||||
5
gitadora@asphyxia/models/secretmusicresponse.ts
Normal file
5
gitadora@asphyxia/models/secretmusicresponse.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
export interface SecretMusicResponse {
|
||||
musicid: KITEM<'s32'>;
|
||||
seq: KITEM<'u16'>;
|
||||
kind: KITEM<'s32'>;
|
||||
}
|
||||
|
|
@ -8,7 +8,14 @@ export const isDM = (info: EamuseInfo) => {
|
|||
|
||||
export const getVersion = (info: EamuseInfo) => {
|
||||
const moduleName: string = info.module;
|
||||
return moduleName.match(/([^_]*)_(.*)/)[1];
|
||||
const moduleMatch = moduleName.match(/([^_]*)_(.*)/);
|
||||
|
||||
if (moduleMatch && moduleMatch[1]) {
|
||||
return moduleMatch[1];
|
||||
}
|
||||
|
||||
console.error(`Unable to parse version from module name "${moduleName}".`);
|
||||
return "unknown";
|
||||
};
|
||||
|
||||
export function isRequiredCoreVersion(major: number, minor: number) {
|
||||
|
|
@ -19,10 +26,14 @@ export function isRequiredCoreVersion(major: number, minor: number) {
|
|||
};
|
||||
|
||||
export function isAsphyxiaDebugMode() : boolean {
|
||||
const argv = process.argv
|
||||
return argv.includes("--dev") || argv.includes("--console")
|
||||
const argv = (globalThis as { process?: { argv?: string[] } }).process?.argv ?? [];
|
||||
return argv.includes("--dev") || argv.includes("--console");
|
||||
}
|
||||
|
||||
export function isSharedFavoriteMusicEnabled() : boolean{
|
||||
return Boolean(U.GetConfig("shared_favorite_songs"))
|
||||
}
|
||||
}
|
||||
|
||||
export function isSharedSongScoresEnabled() : boolean{
|
||||
return Boolean(U.GetConfig("shared_song_scores"))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,21 +14,31 @@
|
|||
return "Unknown"
|
||||
}
|
||||
}
|
||||
|
||||
function getFullVersionName(shortName) {
|
||||
switch (shortName) {
|
||||
case "exchain" :
|
||||
return "GITADORA EXCHAIN"
|
||||
|
||||
function getFullGameVersion(shortVer) {
|
||||
switch (shortVer) {
|
||||
case "re" :
|
||||
return "Tri-Boost Re:EVOLVE"
|
||||
case "matixx":
|
||||
return "Matixx"
|
||||
case "EXCHAIN":
|
||||
return "exchain"
|
||||
case "nextage":
|
||||
return "GITADORA NEX+AGE"
|
||||
return "NEX+AGE"
|
||||
case "highvoltage":
|
||||
return "GITADORA HIGH-VOLTAGE"
|
||||
default:
|
||||
return "HIGH-VOLTAGE"
|
||||
case "fuzzup":
|
||||
return "FUZZ-UP"
|
||||
case "galaxywave":
|
||||
return "GALAXY WAVE"
|
||||
case "galaxywave_delta":
|
||||
return "GALAXY WAVE DELTA"
|
||||
default:
|
||||
return "Unknown"
|
||||
}
|
||||
}
|
||||
|
||||
const versions = ["exchain", "nextage", "highvoltage"]
|
||||
const versions = ["re", "matixx", "exchain", "nextage", "highvoltage", "fuzzup", "galaxywave", "galaxywave_delta"]
|
||||
const games = ["gf", "dm"]
|
||||
|
||||
function generateLeaderboards(infos, profiles) {
|
||||
|
|
@ -77,7 +87,7 @@
|
|||
-
|
||||
|
||||
each board in generateLeaderboards(infos, profiles)
|
||||
h3 #{getFullVersionName(board.version)} #{getFullGameName(board.game)}
|
||||
h3 #{getFullGameName(board.game)} #{getFullGameVersion(board.version)}
|
||||
table
|
||||
tr
|
||||
th Rank
|
||||
|
|
|
|||
|
|
@ -6,11 +6,34 @@
|
|||
-
|
||||
function getFullGameName(shortName) {
|
||||
switch (shortName) {
|
||||
case "gf":
|
||||
return "GuitarFreaks"
|
||||
case "dm" :
|
||||
return "Drummania"
|
||||
case "gf":
|
||||
return "Guitar Freaks"
|
||||
default:
|
||||
return "DrumMania"
|
||||
default:
|
||||
return "Unknown"
|
||||
}
|
||||
}
|
||||
|
||||
function getFullGameVersion(shortVer) {
|
||||
switch (shortVer) {
|
||||
case "re" :
|
||||
return "Tri-Boost Re:EVOLVE"
|
||||
case "matixx":
|
||||
return "Matixx"
|
||||
case "EXCHAIN":
|
||||
return "exchain"
|
||||
case "nextage":
|
||||
return "NEX+AGE"
|
||||
case "highvoltage":
|
||||
return "HIGH-VOLTAGE"
|
||||
case "fuzzup":
|
||||
return "FUZZ-UP"
|
||||
case "galaxywave":
|
||||
return "GALAXY WAVE"
|
||||
case "galaxywave_delta":
|
||||
return "GALAXY WAVE DELTA"
|
||||
default:
|
||||
return "Unknown"
|
||||
}
|
||||
}
|
||||
|
|
@ -23,7 +46,7 @@ div
|
|||
p.card-header-title
|
||||
span.icon
|
||||
i.mdi.mdi-account-edit
|
||||
| User Detail (#{i.version})
|
||||
| User Detail (#{getFullGameVersion(i.version)})
|
||||
.card-content
|
||||
form(method="post" action="/emit/updatePlayerInfo")
|
||||
.field
|
||||
|
|
@ -55,7 +78,7 @@ div
|
|||
p.card-header-title
|
||||
span.icon
|
||||
i.mdi.mdi-account-details
|
||||
| Profile Detail (#{getFullGameName(pr.game)} #{pr.version})
|
||||
| Profile Detail (#{getFullGameName(pr.game)} #{getFullGameVersion(pr.version)})
|
||||
.card-content
|
||||
form(method="post")
|
||||
.field
|
||||
|
|
|
|||
170
iidx@asphyxia/README.md
Normal file
170
iidx@asphyxia/README.md
Normal file
|
|
@ -0,0 +1,170 @@
|
|||
# beatmaniaIIDX
|
||||
|
||||
Plugin Version: **v0.1.17**
|
||||
|
||||
---
|
||||
|
||||
Supported Versions
|
||||
- beatmaniaIIDX 14 GOLD (2007072301)
|
||||
- beatmaniaIIDX 15 DJ TROOPERS (2008031100)
|
||||
- beatmaniaIIDX 16 EMPRESS (2009072200)
|
||||
- beatmaniaIIDX 17 SIRIUS (2010071200)
|
||||
- beatmaniaIIDX 18 Resort Anthem (2011071200)
|
||||
- beatmaniaIIDX 19 Lincle (2012090300)
|
||||
- beatmaniaIIDX 20 tricoro (2013090900)
|
||||
- beatmaniaIIDX 21 SPADA (2014071600)
|
||||
- beatmaniaIIDX 22 PENDUAL (2015080500)
|
||||
- beatmaniaIIDX 23 copula (2016083100)
|
||||
- beatmaniaIIDX 24 SINOBUZ (2017082800)
|
||||
- beatmaniaIIDX 25 CANNON BALLERS (2018091900)
|
||||
- beatmaniaIIDX 26 Rootage (2019090200)
|
||||
- beatmaniaIIDX 27 HEROIC VERSE (2020092900)
|
||||
- beatmaniaIIDX 28 BISTROVER (2021091500)
|
||||
- beatmaniaIIDX 29 CastHour (2022082400)
|
||||
- beatmaniaIIDX 30 RESIDENT (2023090500)
|
||||
- beatmaniaIIDX 31 EPOLIS (2024082600)
|
||||
- beatmaniaIIDX 32 Pinky Crush (2025082500)
|
||||
|
||||
---
|
||||
|
||||
Features
|
||||
- STEP UP (Partial)
|
||||
- SKILL ANALYZER
|
||||
- EVENT (Partial)
|
||||
- ARENA (LOCAL only)
|
||||
- RANDOME LANE TICKET
|
||||
- FAVORITE/SONG SELECTION NOTES
|
||||
- ORIGINAL FILTER
|
||||
|
||||
---
|
||||
|
||||
Known Issues
|
||||
- Clear Lamps may display invalid lamps due to missing conversion code
|
||||
- DJ LEVEL folders are broken in ~ DJ TROOPERS due to missing rank\_id
|
||||
- LEGGENDARIA play records before HEROIC VERSE may not display on higher version due to missing conversion code
|
||||
- SUPER FUTURE 2323 play records doesn't display on other version due to missing conversion code
|
||||
- ONE MORE EXTRA STAGE progress won't save (can't test this due to skill issue)
|
||||
- Some of licensed songs are locked behind (kinda solved with music\_open but needs to be verified)
|
||||
- Some of badges aren't saving in RESIDENT ~ (needs to figure out name to id)
|
||||
|
||||
---
|
||||
|
||||
Changelogs
|
||||
|
||||
**v0.1.0**
|
||||
- Added Initial support for Lincle
|
||||
|
||||
**v0.1.1**
|
||||
- Added Initial support for HEROIC VERSE
|
||||
- Expanded score array to adapting newer difficulty (SPN ~ DPA [6] -> SPB ~ DPL [10])
|
||||
- This borked previous score datas recorded with v0.1.0
|
||||
- All score data now shared with all version
|
||||
- as it doesn't have music\_id conversion, it will display incorrect data on certain versions
|
||||
- Added Initial customize support (no webui)
|
||||
|
||||
**v0.1.2**
|
||||
- Added Initial support for BISTROVER
|
||||
- Added Initial Rival support (partial webui)
|
||||
|
||||
**v0.1.3**
|
||||
- Added Initial support for CastHour
|
||||
|
||||
**v0.1.4**
|
||||
- Added Initial support for RESIDENT
|
||||
|
||||
**v0.1.5**
|
||||
- Added Initial support for Resort Anthem
|
||||
- LEAGUE, STORY does not work yet
|
||||
- Fixed where s\_hispeed/d\_hispeed doesn't save correctly
|
||||
|
||||
**v0.1.6**
|
||||
- Added Initial support for tricoro
|
||||
- Some of event savings are broken
|
||||
- Added movie\_upload url setting on plugin setting (BISTROVER ~)
|
||||
- This uses JSON instead of XML and this requires additional setup (can't test or implement this as I don't own NVIDIA GPU)
|
||||
|
||||
**v0.1.7**
|
||||
- Added Initial support for SPADA
|
||||
- Some of event savings are broken
|
||||
- Fixed where rtype didn't save correctly (BISTROVER ~)
|
||||
|
||||
**v0.1.8**
|
||||
- Added RIVAL pacemaker support
|
||||
- Added Initial support for PENDUAL
|
||||
- Some of event savings are broken
|
||||
- Fixed where old\_linkage\_secret\_flg is missing on pc.get response (RESIDENT)
|
||||
- Fixed where game could crash due to invalid rival qprodata
|
||||
- Fixed where lift isn't saving (SPADA)
|
||||
|
||||
**v0.1.9**
|
||||
- Added Initial support for copula
|
||||
- Some of event savings are broken
|
||||
- Added shop.getconvention/shop.setconvention/shop.getname/shop.savename response
|
||||
|
||||
**v0.1.10**
|
||||
- Added Initial support for SINOBUZ ~ Rootage
|
||||
- Converted from asphyxia\_route\_public
|
||||
|
||||
**v0.1.11**
|
||||
- Added Shop Ranking support
|
||||
- Changed pc.common/gameSystem.systemInfo response not to use pugFile
|
||||
- IIDX\_CPUS on models/arena.ts came from asphyxia\_route\_public
|
||||
|
||||
**v0.1.12**
|
||||
- Exposed some of pc.common attributes to plugin settings (WIP)
|
||||
- Added Experimental WebUI (WIP)
|
||||
- Added music.crate/music.breg response
|
||||
- CLEAR RATE and BEGINNER clear lamp may not work on certain versions
|
||||
- Added Initial support for SIRIUS
|
||||
- Fixed where Venue Top didn't save correctly (BISTROVER ~)
|
||||
- Fixed where music.appoint send empty response even rival has score data but player doesn't have score data
|
||||
- Fixed where FAVORITE may work only on specific version
|
||||
- Fixed where shop name always displayed as "CORE" instead of saved one
|
||||
- Fixed where rlist STEP UP achieve value was fixed value instead of saved one
|
||||
- Fixed where fcombo isn't saving (Resort Anthem)
|
||||
- Removed shop.savename as not working as intented
|
||||
|
||||
**v0.1.13**
|
||||
- Added Initial support for DJ TROOPERS
|
||||
- Added Initial support for EMPRESS
|
||||
- Fixed where EXPERT result does not display total cleared users and ranking position
|
||||
|
||||
**v0.1.14**
|
||||
- Added Experimental OMEGA-Attack event saving support on tricoro
|
||||
- Reworked on SINOBUZ ~ Rootage responses
|
||||
- Fixed where Base64toBuffer returns invalid value sometimes
|
||||
- Fixed where timing display option isn't saving on certain versions
|
||||
|
||||
**v0.1.15**
|
||||
- Added Initial support for GOLD
|
||||
- Added Disable Beginner Option
|
||||
- Added Experimental Badge saving support
|
||||
- Added Experimental score import/export
|
||||
- Fixed where plugin may fail to register due to missing types in dev mode (invalid setup for dev, just enough to get around)
|
||||
- Fixed where unable to login after first-play (SPADA, SINOBUZ, Rootage)
|
||||
- Fixed where pacemaker isn't working as intended due to malformed ghost data on music.appoint response (~ DJ TROOPERS)
|
||||
- Fixed where pacemaker isn't working as intented due to wrong condition check (HEROIC VERSE ~)
|
||||
- Fixed where pacemaker sub-type isn't load correctly (HEROIC VERSE ~)
|
||||
- Fixed where QPRO data doesn't get saved in WebUI
|
||||
|
||||
**v0.1.16**
|
||||
- Added Initial support for EPOLIS
|
||||
- Added music\_open on gameSystem.systemInfo response
|
||||
- Added EXTRA FAVORITE support
|
||||
- Fixed where lightning settings doesn't get saved on logout
|
||||
- Fixed where Disable Music Preview, Disable HCN Color, VEFX Lock settings doesn't reflect
|
||||
- Fixed where MISS COUNT has 0 as default (including score import)
|
||||
- Fixed where MISS COUNT doesn't get updated when exscore is same
|
||||
- Fixed where lightning model settings saved incorrectly
|
||||
- Fixed where unable to import score if user has DP scores
|
||||
- Fixed where unable to achieve dan if you failed once
|
||||
- Fixed where unable to login (tricoro, CastHour, Rootage)
|
||||
- Fixed where unable to specify rival in WebUI
|
||||
- Fixed where music.arenaCPU isn't working as intended due to change of type (EPOLIS ~)
|
||||
- Fixed where qpro head equip request handle as hand equip (@anzuwork)
|
||||
- Added error message for invalid score database entries
|
||||
- Reverted `v0.1.15` dev mode related code changes (now requires proper dev setup, refer parent README.md)
|
||||
- WebUI is now display values of corresponding version
|
||||
|
||||
**v0.1.17**
|
||||
- Added Initial support for Pinky Crush
|
||||
94
iidx@asphyxia/data/grade.json
Normal file
94
iidx@asphyxia/data/grade.json
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
{
|
||||
"31": {
|
||||
"0": {
|
||||
"15": {
|
||||
"music_id": [ 25090, 23068, 19004, 29045 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"16": {
|
||||
"music_id": [ 23005, 27078, 22065, 27060 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"17": {
|
||||
"music_id": [ 29007, 26108, 19002, 18004 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"18": {
|
||||
"music_id": [ 25007, 18032, 16020, 12004 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"15": {
|
||||
"music_id": [ 15032, 29033, 27092, 30020 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"16": {
|
||||
"music_id": [ 10028, 26070, 28091, 23075 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"17": {
|
||||
"music_id": [ 26012, 28002, 17017, 28005 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"18": {
|
||||
"music_id": [ 28008, 15001, 19002, 9028 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"32": {
|
||||
"0": {
|
||||
"15": {
|
||||
"music_id": [ 19022, 30033, 27013, 29045 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"16": {
|
||||
"music_id": [ 27034, 24023, 16009, 25085 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"17": {
|
||||
"music_id": [ 26087, 19002, 29050, 30024 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"18": {
|
||||
"music_id": [ 30052, 18032, 16020, 12004 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"15": {
|
||||
"music_id": [ 12002, 31063, 23046, 30020 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"16": {
|
||||
"music_id": [ 26106, 14021, 29052, 23075 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"17": {
|
||||
"music_id": [ 29042, 26043, 17017, 28005 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
},
|
||||
"18": {
|
||||
"music_id": [ 25007, 29017, 19002, 9028 ],
|
||||
"class_id": [ 3, 3, 3, 3 ],
|
||||
"kind": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
82
iidx@asphyxia/data/music_open.json
Normal file
82
iidx@asphyxia/data/music_open.json
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
{
|
||||
"26": {
|
||||
"26002": { "kind": 0 },
|
||||
"26006": { "kind": 0 },
|
||||
"26022": { "kind": 0 },
|
||||
"26045": { "kind": 0 }
|
||||
},
|
||||
"27": {
|
||||
"27070": { "kind": 0 },
|
||||
"27071": { "kind": 0 },
|
||||
"27073": { "kind": 0 }
|
||||
},
|
||||
"28": {
|
||||
"28001": { "kind": 0 },
|
||||
"28036": { "kind": 0 },
|
||||
"28038": { "kind": 0 },
|
||||
"28072": { "kind": 0 },
|
||||
"28074": { "kind": 0 }
|
||||
},
|
||||
"29": {
|
||||
"29071": { "kind": 0 },
|
||||
"29072": { "kind": 0 },
|
||||
"29075": { "kind": 0 },
|
||||
"29081": { "kind": 0 },
|
||||
"29082": { "kind": 0 },
|
||||
"29085": { "kind": 0 },
|
||||
"29101": { "kind": 0 },
|
||||
"29102": { "kind": 0 },
|
||||
"29103": { "kind": 0 }
|
||||
},
|
||||
"30": {
|
||||
"30038": { "kind": 0 },
|
||||
"30082": { "kind": 0 },
|
||||
"30083": { "kind": 0 },
|
||||
"30084": { "kind": 0 },
|
||||
"30085": { "kind": 0 },
|
||||
"30101": { "kind": 0 },
|
||||
"30102": { "kind": 0 },
|
||||
"30104": { "kind": 0 },
|
||||
"30105": { "kind": 0 }
|
||||
},
|
||||
"31": {
|
||||
"31021": { "kind": 0 },
|
||||
"31022": { "kind": 0 },
|
||||
"31023": { "kind": 0 },
|
||||
"31024": { "kind": 0 },
|
||||
"31025": { "kind": 0 },
|
||||
"31065": { "kind": 0 },
|
||||
"31066": { "kind": 0 },
|
||||
"31097": { "kind": 0 },
|
||||
"31098": { "kind": 0 },
|
||||
"31099": { "kind": 0 },
|
||||
"31100": { "kind": 0 },
|
||||
"31101": { "kind": 0 },
|
||||
"31102": { "kind": 0 },
|
||||
"31110": { "kind": 0 },
|
||||
"31112": { "kind": 0 },
|
||||
"31113": { "kind": 0 }
|
||||
},
|
||||
"32": {
|
||||
"32022": { "kind": 0 },
|
||||
"32049": { "kind": 0 },
|
||||
"32078": { "kind": 0 },
|
||||
"32079": { "kind": 0 },
|
||||
"32080": { "kind": 0 },
|
||||
"32081": { "kind": 0 },
|
||||
"32082": { "kind": 0 },
|
||||
"32083": { "kind": 0 },
|
||||
"32084": { "kind": 0 },
|
||||
"32085": { "kind": 0 },
|
||||
"32096": { "kind": 0 },
|
||||
"32097": { "kind": 0 },
|
||||
"32098": { "kind": 0 },
|
||||
"32019": { "kind": 0 },
|
||||
"32101": { "kind": 0 },
|
||||
"32102": { "kind": 0 },
|
||||
"32103": { "kind": 0 },
|
||||
"32104": { "kind": 0 },
|
||||
"32110": { "kind": 0 },
|
||||
"32111": { "kind": 0 }
|
||||
}
|
||||
}
|
||||
177
iidx@asphyxia/handlers/gamesystem.ts
Normal file
177
iidx@asphyxia/handlers/gamesystem.ts
Normal file
|
|
@ -0,0 +1,177 @@
|
|||
import { IIDX_CPUS } from "../models/arena";
|
||||
import { GetVersion } from "../util";
|
||||
|
||||
export const gssysteminfo: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
if (version < 24) return send.success();
|
||||
|
||||
let result: any = {
|
||||
arena_schedule: {
|
||||
phase: K.ITEM("u8", U.GetConfig("ArenaPhase")),
|
||||
start: K.ITEM("u32", 1605784800),
|
||||
end: K.ITEM("u32", 4102326000)
|
||||
},
|
||||
arena_music_difficult: [],
|
||||
maching_class_range: [],
|
||||
arena_cpu_define: [],
|
||||
}
|
||||
|
||||
// following datas are made up needs to figure out correct way to do it //
|
||||
let music_open = JSON.parse(await IO.ReadFile("data/music_open.json", "utf-8"));
|
||||
if (!_.isNil(music_open[version])) {
|
||||
result = Object.assign(result, { music_open: [] });
|
||||
|
||||
Object.keys(music_open).forEach(v => {
|
||||
Object.keys(music_open[v]).forEach(m => {
|
||||
if (Number(v) > version) return;
|
||||
|
||||
result.music_open.push({
|
||||
music_id: K.ITEM("s32", Number(m)),
|
||||
kind: K.ITEM("s32", music_open[v][m].kind),
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
switch (version) {
|
||||
case 32:
|
||||
result.arena_schedule.phase = K.ITEM("u8", 3);
|
||||
result.arena_schedult = Object.assign(result.arena_schedule, { season: K.ITEM("u8", 0) }); // arena season for online //
|
||||
|
||||
case 31:
|
||||
result.arena_schedult = Object.assign(result.arena_schedule, { rule_type: K.ITEM("u8", 0) }); // arena rule for online //
|
||||
|
||||
result = Object.assign(result, { grade_course: [] });
|
||||
|
||||
// following datas are made up needs to figure out correct way to do it //
|
||||
let grade = JSON.parse(await IO.ReadFile("data/grade.json", "utf-8"));
|
||||
if (!_.isNil(grade[version])) {
|
||||
Object.keys(grade[version]).forEach(s => {
|
||||
Object.keys(grade[version][s]).forEach(c => {
|
||||
result.grade_course.push({
|
||||
play_style: K.ITEM("s32", Number(s)),
|
||||
grade_id: K.ITEM("s32", Number(c)),
|
||||
is_valid: K.ITEM("bool", true),
|
||||
music_id_0: K.ITEM("s32", grade[version][s][c].music_id[0]),
|
||||
class_id_0: K.ITEM("s32", grade[version][s][c].class_id[0]),
|
||||
music_id_1: K.ITEM("s32", grade[version][s][c].music_id[1]),
|
||||
class_id_1: K.ITEM("s32", grade[version][s][c].class_id[1]),
|
||||
music_id_2: K.ITEM("s32", grade[version][s][c].music_id[2]),
|
||||
class_id_2: K.ITEM("s32", grade[version][s][c].class_id[2]),
|
||||
music_id_3: K.ITEM("s32", grade[version][s][c].music_id[3]),
|
||||
class_id_3: K.ITEM("s32", grade[version][s][c].class_id[3]),
|
||||
index: K.ITEM("s32", result.grade_course.length),
|
||||
cube_num: K.ITEM("s32", 0),
|
||||
kind: K.ITEM("s32", grade[version][s][c].kind),
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// arena_music_difficult //
|
||||
for (let s = 0; s < 2; ++s) {
|
||||
for (let c = 0; c < 20; ++c) {
|
||||
result.arena_music_difficult.push({
|
||||
play_style: K.ITEM("s32", s),
|
||||
arena_class: K.ITEM("s32", c),
|
||||
low_difficult: K.ITEM("s32", 1),
|
||||
high_difficult: K.ITEM("s32", 12),
|
||||
is_leggendaria: K.ITEM("bool", 1),
|
||||
force_music_list_id: K.ITEM("s32", 0),
|
||||
});
|
||||
|
||||
result.maching_class_range.push({
|
||||
play_style: K.ITEM("s32", s),
|
||||
matching_class: K.ITEM("s32", c),
|
||||
low_arena_class: K.ITEM("s32", 1),
|
||||
high_arena_class: K.ITEM("s32", 20),
|
||||
});
|
||||
|
||||
result.arena_cpu_define.push({
|
||||
play_style: K.ITEM("s32", s),
|
||||
arena_class: K.ITEM("s32", c),
|
||||
grade_id: K.ITEM("s32", IIDX_CPUS[s][c][0]),
|
||||
low_music_difficult: K.ITEM("s32", IIDX_CPUS[s][c][1]),
|
||||
high_music_difficult: K.ITEM("s32", IIDX_CPUS[s][c][2]),
|
||||
is_leggendaria: K.ITEM("bool", IIDX_CPUS[s][c][3]),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
switch (version) {
|
||||
case 29:
|
||||
result = Object.assign(result, {
|
||||
CommonBossPhase: K.ATTR({ val: String(3) }),
|
||||
Event1InternalPhase: K.ATTR({ val: String(U.GetConfig("ch_event")) }),
|
||||
ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("ch_extraboss")) }),
|
||||
isNewSongAnother12OpenFlg: K.ATTR({ val: String(Number(U.GetConfig("NewSongAnother12"))) }),
|
||||
gradeOpenPhase: K.ATTR({ val: String(U.GetConfig("Grade")) }),
|
||||
isEiseiOpenFlg: K.ATTR({ val: String(Number(U.GetConfig("Eisei"))) }),
|
||||
WorldTourismOpenList: K.ATTR({ val: String(-1) }),
|
||||
BPLBattleOpenPhase: K.ATTR({ val: String(2) }),
|
||||
});
|
||||
break;
|
||||
case 30:
|
||||
result = Object.assign(result, {
|
||||
CommonBossPhase: K.ATTR({ val: String(3) }),
|
||||
Event1InternalPhase: K.ATTR({ val: String(U.GetConfig("rs_event")) }),
|
||||
ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("rs_extraboss")) }),
|
||||
isNewSongAnother12OpenFlg: K.ATTR({ val: String(Number(U.GetConfig("NewSongAnother12"))) }),
|
||||
gradeOpenPhase: K.ATTR({ val: String(U.GetConfig("Grade")) }),
|
||||
isEiseiOpenFlg: K.ATTR({ val: String(Number(U.GetConfig("Eisei"))) }),
|
||||
WorldTourismOpenList: K.ATTR({ val: String(-1) }),
|
||||
BPLBattleOpenPhase: K.ATTR({ val: String(2) }),
|
||||
})
|
||||
break;
|
||||
case 31:
|
||||
let totalMetron = 0;
|
||||
let eventData = await DB.Find(null, {
|
||||
collection: "event_1",
|
||||
version: version,
|
||||
event_data: "myepo_map",
|
||||
});
|
||||
|
||||
if (!_.isNil(eventData)) {
|
||||
eventData.forEach((res: any) => {
|
||||
totalMetron += Number(res.metron_total_get);
|
||||
});
|
||||
}
|
||||
|
||||
Object.assign(result, {
|
||||
CommonBossPhase: K.ATTR({ val: String(3) }),
|
||||
Event1Value: K.ATTR({ val: String(U.GetConfig("ep_event")) }),
|
||||
Event1Phase: K.ATTR({ val: String(U.GetConfig("ep_event1")) }),
|
||||
Event2Phase: K.ATTR({ val: String(U.GetConfig("ep_event2")) }),
|
||||
ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("ep_extraboss")) }),
|
||||
isNewSongAnother12OpenFlg: K.ATTR({ val: String(Number(U.GetConfig("NewSongAnother12"))) }),
|
||||
isKiwamiOpenFlg: K.ATTR({ val: String(Number(U.GetConfig("Eisei"))) }),
|
||||
WorldTourismOpenList: K.ATTR({ val: String(-1) }),
|
||||
BPLBattleOpenPhase: K.ATTR({ val: String(2) }),
|
||||
UnlockLeggendaria: K.ATTR({ val: String(1) }),
|
||||
BPLSerialCodePhase: K.ATTR({ val: String(0) }),
|
||||
Event1AllPlayerTotalGetMetron: K.ATTR({ val: String(totalMetron) }), // total amount of all users metron //
|
||||
});
|
||||
break;
|
||||
case 32:
|
||||
result = Object.assign(result, {
|
||||
Event1Value: K.ATTR({ val: String(U.GetConfig("pc_event")) }), // TEST //
|
||||
Event1Phase: K.ATTR({ val: String(U.GetConfig("pc_event1")) }), // TEST //
|
||||
Event2Phase: K.ATTR({ val: String(U.GetConfig("pc_event2")) }), // TEST //
|
||||
ExtraBossEventPhase: K.ATTR({ val: String(U.GetConfig("pc_extraboss")) }), // TEST //
|
||||
isNewSongAnother12OpenFlg: K.ATTR({ val: String(Number(U.GetConfig("NewSongAnother12"))) }),
|
||||
isKiwamiOpenFlg: K.ATTR({ val: String(Number(U.GetConfig("Eisei"))) }),
|
||||
WorldTourismOpenList: K.ATTR({ val: String(-1) }),
|
||||
OldBPLBattleOpenPhase: K.ATTR({ val: String(3) }),
|
||||
});
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return send.object(result);
|
||||
};
|
||||
208
iidx@asphyxia/handlers/grade.ts
Normal file
208
iidx@asphyxia/handlers/grade.ts
Normal file
|
|
@ -0,0 +1,208 @@
|
|||
import { pcdata } from "../models/pcdata";
|
||||
import { grade } from "../models/grade";
|
||||
import { IDtoRef, GetVersion } from "../util";
|
||||
import { eisei_grade } from "../models/lightning";
|
||||
import { badge } from "../models/badge";
|
||||
|
||||
export const graderaised: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
const iidxid = Number($(data).attr().iidxid);
|
||||
const refid = await IDtoRef(iidxid);
|
||||
const gid = Number($(data).attr().gid);
|
||||
const gtype = Number($(data).attr().gtype);
|
||||
|
||||
let cflg = Number($(data).attr().cflg);
|
||||
let achi = Number($(data).attr().achi);
|
||||
|
||||
let pcdata = await DB.FindOne<pcdata>(refid, { collection: "pcdata", version: version });
|
||||
let grade = await DB.FindOne<grade>(refid, {
|
||||
collection: "grade",
|
||||
version: version,
|
||||
style: gtype,
|
||||
gradeId: gid,
|
||||
});
|
||||
|
||||
if (version >= 23) cflg = Number($(data).attr().cstage);
|
||||
|
||||
const isTDJ = !_.isNil($(data).element("lightning_play_data")); // lightning model //
|
||||
const hasEiseiData = (!_.isNil($(data).element("eisei_data")) || !_.isNil($(data).element("eisei_grade_data")) || !_.isNil($(data).element("kiwami_data")));
|
||||
if (isTDJ && hasEiseiData) {
|
||||
let eisei_clear_type: number;
|
||||
let eisei_grade_id: number;
|
||||
let eisei_grade_type: number;
|
||||
let eisei_stage_num: number;
|
||||
let eisei_option: number;
|
||||
|
||||
let eisei_past_achievement: number[];
|
||||
let eisei_past_selected_course: number[];
|
||||
let eisei_max_past_achievement: number[];
|
||||
let eisei_max_past_selected_course: number[];
|
||||
|
||||
switch (version) {
|
||||
case 27:
|
||||
eisei_clear_type = Number($(data).attr("eisei_data").clear_type);
|
||||
eisei_grade_id = Number($(data).attr("eisei_data").grade_id);
|
||||
eisei_grade_type = Number($(data).attr("eisei_data").grade_type);
|
||||
eisei_stage_num = Number($(data).attr("eisei_data").stage_num);
|
||||
|
||||
eisei_past_achievement = $(data).element("eisei_data").numbers("past_achievement");
|
||||
eisei_max_past_achievement = $(data).element("eisei_data").numbers("max_past_achievement");
|
||||
break;
|
||||
case 30:
|
||||
eisei_clear_type = Number($(data).element("eisei_data").attr().clear_type);
|
||||
eisei_grade_id = Number($(data).element("eisei_data").attr().grade_id);
|
||||
eisei_grade_type = Number($(data).element("eisei_data").attr().grade_type);
|
||||
eisei_stage_num = Number($(data).element("eisei_data").attr().stage_num);
|
||||
eisei_option = Number($(data).element("eisei_data").attr().option);
|
||||
|
||||
eisei_past_achievement = $(data).element("eisei_data").numbers("past_achievement");
|
||||
eisei_past_selected_course = $(data).element("eisei_data").numbers("past_selected_course");
|
||||
eisei_max_past_achievement = $(data).element("eisei_data").numbers("max_past_achievement");
|
||||
eisei_max_past_selected_course = $(data).element("eisei_data").numbers("max_past_selected_course");
|
||||
break;
|
||||
case 31:
|
||||
case 32:
|
||||
eisei_clear_type = Number($(data).attr("kiwami_data").clear_type);
|
||||
eisei_grade_id = Number($(data).attr("kiwami_data").grade_id);
|
||||
eisei_grade_type = Number($(data).attr("kiwami_data").grade_type);
|
||||
eisei_stage_num = Number($(data).attr("kiwami_data").stage_num);
|
||||
eisei_option = Number($(data).attr("kiwami_data").option);
|
||||
|
||||
eisei_past_achievement = $(data).element("kiwami_data").numbers("past_achievement");
|
||||
eisei_past_selected_course = $(data).element("kiwami_data").numbers("past_selected_course");
|
||||
eisei_max_past_achievement = $(data).element("kiwami_data").numbers("max_past_achievement");
|
||||
eisei_max_past_selected_course = $(data).element("kiwami_data").numbers("max_past_selected_course");
|
||||
break;
|
||||
|
||||
default:
|
||||
eisei_clear_type = Number($(data).attr("eisei_grade_data").clear_type);
|
||||
eisei_grade_id = Number($(data).attr("eisei_grade_data").grade_id);
|
||||
eisei_grade_type = Number($(data).attr("eisei_grade_data").grade_type);
|
||||
eisei_stage_num = Number($(data).attr("eisei_grade_data").stage_num);
|
||||
|
||||
eisei_past_achievement = $(data).element("eisei_grade_data").numbers("past_achievement");
|
||||
eisei_past_selected_course = $(data).element("eisei_grade_data").numbers("past_selected_course");
|
||||
eisei_max_past_achievement = $(data).element("eisei_grade_data").numbers("max_past_achievement");
|
||||
eisei_max_past_selected_course = $(data).element("eisei_grade_data").numbers("max_past_selected_course");
|
||||
break;
|
||||
}
|
||||
|
||||
await DB.Upsert<eisei_grade>(
|
||||
refid,
|
||||
{
|
||||
collection: "eisei_grade",
|
||||
version: version,
|
||||
grade_type: eisei_grade_type,
|
||||
grade_id: eisei_grade_id,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
clear_type: eisei_clear_type,
|
||||
stage_num: eisei_stage_num,
|
||||
option: eisei_option,
|
||||
|
||||
past_achievement: eisei_past_achievement,
|
||||
past_selected_course: eisei_past_selected_course,
|
||||
max_past_achievement: eisei_max_past_achievement,
|
||||
max_past_selected_course: eisei_max_past_selected_course,
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
return send.object(
|
||||
K.ATTR({
|
||||
pnum: "1", // This isn't visible to user and seems leftover //
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
let updatePcdata = false;
|
||||
let updateGrade = false;
|
||||
if (_.isNil(pcdata)) return send.deny();
|
||||
if (_.isNil(grade)) {
|
||||
if (cflg == 4) {
|
||||
if (gtype == 0) pcdata.sgid = Math.max(gid, pcdata.sgid);
|
||||
else pcdata.dgid = Math.max(gid, pcdata.dgid);
|
||||
|
||||
updatePcdata = true;
|
||||
}
|
||||
|
||||
updateGrade = true;
|
||||
} else {
|
||||
if (cflg >= grade.maxStage || achi >= grade.archive) {
|
||||
cflg = Math.max(cflg, grade.maxStage);
|
||||
achi = Math.max(achi, grade.archive);
|
||||
|
||||
updateGrade = true;
|
||||
}
|
||||
|
||||
if (cflg == 4) {
|
||||
if (gtype == 0) pcdata.sgid = Math.max(gid, pcdata.sgid);
|
||||
else pcdata.dgid = Math.max(gid, pcdata.dgid);
|
||||
|
||||
updatePcdata = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (updatePcdata) {
|
||||
await DB.Upsert<pcdata>(
|
||||
refid,
|
||||
{
|
||||
collection: "pcdata",
|
||||
version: version,
|
||||
},
|
||||
{
|
||||
$set: pcdata
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
if (updateGrade) {
|
||||
await DB.Upsert<grade>(
|
||||
refid,
|
||||
{
|
||||
collection: "grade",
|
||||
version: version,
|
||||
style: gtype,
|
||||
gradeId: gid,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
maxStage: cflg,
|
||||
archive: achi,
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
if (!_.isNil($(data).element("badge"))) {
|
||||
await DB.Upsert<badge>(
|
||||
refid,
|
||||
{
|
||||
collection: "badge",
|
||||
version: version,
|
||||
category_name: "grade",
|
||||
flg_id: Number($(data).attr("badge").badge_flg_id),
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
flg: Number($(data).attr("badge").badge_flg),
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
let gradeUser = await DB.Find<grade>(null, {
|
||||
collection: "grade",
|
||||
version: version,
|
||||
style: gtype,
|
||||
gradeId: gid,
|
||||
maxStage: 4,
|
||||
});
|
||||
|
||||
return send.object(
|
||||
K.ATTR({
|
||||
pnum: String(gradeUser.length),
|
||||
})
|
||||
);
|
||||
};
|
||||
1033
iidx@asphyxia/handlers/music.ts
Normal file
1033
iidx@asphyxia/handlers/music.ts
Normal file
File diff suppressed because it is too large
Load Diff
5350
iidx@asphyxia/handlers/pc.ts
Normal file
5350
iidx@asphyxia/handlers/pc.ts
Normal file
File diff suppressed because it is too large
Load Diff
173
iidx@asphyxia/handlers/ranking.ts
Normal file
173
iidx@asphyxia/handlers/ranking.ts
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
import { expert, ranking } from "../models/ranking";
|
||||
import { profile } from "../models/profile";
|
||||
import { GetVersion, IDtoRef } from "../util";
|
||||
|
||||
export const rankingentry: EPR = async (info, data, send) => {
|
||||
// pside //
|
||||
const version = GetVersion(info);
|
||||
const refid = await IDtoRef(Number($(data).attr().iidxid));
|
||||
|
||||
const coid = Number($(data).attr().coid);
|
||||
const clid = Number($(data).attr().clid);
|
||||
|
||||
const opname = $(data).attr().opname;
|
||||
const oppid = Number($(data).attr().oppid);
|
||||
const pgnum = Number($(data).attr().pgnum);
|
||||
const gnum = Number($(data).attr().gnum);
|
||||
const opt = Number($(data).attr().opt);
|
||||
const opt2 = Number($(data).attr().opt2);
|
||||
const clr = Number($(data).attr().clr);
|
||||
|
||||
const exscore = (pgnum * 2 + gnum);
|
||||
const cstage = Number($(data).attr().cstage);
|
||||
|
||||
const expert_data = await DB.FindOne<expert>(refid, {
|
||||
collection: "expert",
|
||||
version: version,
|
||||
coid: coid,
|
||||
});
|
||||
|
||||
let pgArray = Array<number>(6).fill(0); // PGREAT //
|
||||
let gArray = Array<number>(6).fill(0); // GREAT //
|
||||
let cArray = Array<number>(6).fill(0); // CLEAR FLAGS //
|
||||
let optArray = Array<number>(6).fill(0); // USED OPTION (SP/DP) //
|
||||
let opt2Array = Array<number>(6).fill(0); // USED OPTION (DP) //
|
||||
let esArray = Array<number>(6).fill(0); // EXSCORE //
|
||||
if (_.isNil(expert_data)) {
|
||||
cArray[clid] = clr;
|
||||
pgArray[clid] = pgnum;
|
||||
gArray[clid] = gnum;
|
||||
optArray[clid] = opt;
|
||||
opt2Array[clid] = opt2;
|
||||
esArray[clid] = exscore;
|
||||
}
|
||||
else {
|
||||
cArray = expert_data.cArray;
|
||||
pgArray = expert_data.pgArray;
|
||||
gArray = expert_data.gArray;
|
||||
optArray = expert_data.optArray;
|
||||
opt2Array = expert_data.opt2Array;
|
||||
esArray = expert_data.esArray;
|
||||
|
||||
const pExscore = esArray[clid];
|
||||
if (exscore > pExscore) {
|
||||
pgArray[clid] = pgnum;
|
||||
gArray[clid] = gnum;
|
||||
optArray[clid] = opt;
|
||||
opt2Array[clid] = opt2;
|
||||
esArray[clid] = exscore;
|
||||
}
|
||||
|
||||
cArray[clid] = Math.max(cArray[clid], clr);
|
||||
}
|
||||
|
||||
await DB.Upsert<expert>(
|
||||
refid,
|
||||
{
|
||||
collection: "expert",
|
||||
version: version,
|
||||
coid: coid,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
cArray,
|
||||
pgArray,
|
||||
gArray,
|
||||
optArray,
|
||||
opt2Array,
|
||||
esArray,
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
const profile = await DB.FindOne<profile>(refid, {
|
||||
collection: "profile",
|
||||
});
|
||||
const name = profile.name;
|
||||
await DB.Upsert<ranking>(
|
||||
{
|
||||
collection: "ranking",
|
||||
version: version,
|
||||
coid: coid,
|
||||
clid: clid,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
pgnum: pgnum,
|
||||
gnum: gnum,
|
||||
name: name,
|
||||
opname: opname,
|
||||
pid: oppid,
|
||||
udate: 0,
|
||||
|
||||
exscore: exscore,
|
||||
maxStage: cstage,
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
let expertUser = await DB.Find<ranking>({
|
||||
collection: "ranking",
|
||||
version: version,
|
||||
coid: coid,
|
||||
clid: clid,
|
||||
});
|
||||
expertUser.sort((a: ranking, b: ranking) => b.exscore - a.exscore);
|
||||
let rankPos = expertUser.findIndex((a: ranking) => a.name == name);
|
||||
|
||||
return send.object(K.ATTR({
|
||||
anum: String(expertUser.length),
|
||||
jun: String(rankPos + 1),
|
||||
}));
|
||||
};
|
||||
|
||||
export const rankingoentry: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
const refid = await IDtoRef(Number($(data).attr().iidxid));
|
||||
|
||||
const coid = Number($(data).attr().coid);
|
||||
const clid = Number($(data).attr().clid);
|
||||
|
||||
const pgnum = Number($(data).attr().pgnum);
|
||||
const gnum = Number($(data).attr().gnum);
|
||||
const opt = Number($(data).attr().opt);
|
||||
const opt2 = Number($(data).attr().opt2);
|
||||
const clr = Number($(data).attr().clr);
|
||||
|
||||
const exscore = (pgnum * 2 + gnum);
|
||||
|
||||
// TODO:: figure out what this does //
|
||||
|
||||
return send.success();
|
||||
};
|
||||
|
||||
export const rankinggetranker: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
const ranking = await DB.Find<ranking>({
|
||||
collection: "ranking",
|
||||
version: version,
|
||||
coid: Number($(data).attr().coid),
|
||||
clid: Number($(data).attr().clid),
|
||||
});
|
||||
let result = {
|
||||
ranker: [],
|
||||
}
|
||||
|
||||
if (_.isNil(ranking)) return send.success();
|
||||
|
||||
ranking.sort((a: ranking, b: ranking) => b.exscore - a.exscore);
|
||||
ranking.forEach((res) => {
|
||||
result.ranker.push(
|
||||
K.ATTR({
|
||||
gnum: String(res.gnum),
|
||||
pgnum: String(res.pgnum),
|
||||
name: res.name,
|
||||
opname: res.opname,
|
||||
pid: String(res.pid),
|
||||
udate: String(res.udate),
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
return send.object(result);
|
||||
};
|
||||
89
iidx@asphyxia/handlers/shop.ts
Normal file
89
iidx@asphyxia/handlers/shop.ts
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
import { convention_data, shop_data } from "../models/shop";
|
||||
import { GetVersion } from "../util";
|
||||
|
||||
export const shopgetname: EPR = async (info, data, send) => {
|
||||
const shop_data = await DB.FindOne<shop_data>({
|
||||
collection: "shop_data",
|
||||
});
|
||||
|
||||
if (_.isNil(shop_data)) {
|
||||
await DB.Insert<shop_data>({
|
||||
collection: "shop_data",
|
||||
|
||||
opname: "CORE",
|
||||
pid: 53,
|
||||
cls_opt: 0,
|
||||
});
|
||||
|
||||
return send.object(
|
||||
K.ATTR({
|
||||
opname: "CORE",
|
||||
pid: "53",
|
||||
cls_opt: "0",
|
||||
hr: "0",
|
||||
mi: "0",
|
||||
}),
|
||||
{ encoding: "shift_jis" }
|
||||
);
|
||||
}
|
||||
|
||||
return send.object(
|
||||
K.ATTR({
|
||||
opname: shop_data.opname,
|
||||
pid: String(shop_data.pid),
|
||||
cls_opt: String(shop_data.cls_opt),
|
||||
hr: "0",
|
||||
mi: "0",
|
||||
}),
|
||||
{ encoding: "shift_jis" }
|
||||
);
|
||||
};
|
||||
|
||||
export const shopsavename: EPR = async (info, data, send) => {
|
||||
// removed saving code as opname attribute being sent as shift_jis but KDataReader read as utf-8 //
|
||||
return send.success();
|
||||
};
|
||||
|
||||
export const shopgetconvention: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
|
||||
const convention_data = await DB.FindOne<convention_data>({
|
||||
collection: "shop_convention",
|
||||
version: version,
|
||||
});
|
||||
if (_.isNil(convention_data)) return send.deny();
|
||||
|
||||
return send.object(
|
||||
K.ATTR({
|
||||
music_0: String(convention_data.music_0),
|
||||
music_1: String(convention_data.music_1),
|
||||
music_2: String(convention_data.music_2),
|
||||
music_3: String(convention_data.music_3),
|
||||
},
|
||||
{
|
||||
valid: K.ITEM("bool", convention_data.valid),
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
export const shopsetconvention: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
|
||||
await DB.Upsert<convention_data>(
|
||||
{
|
||||
collection: "shop_convention",
|
||||
version: version,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
music_0: $(data).number("music_0"),
|
||||
music_1: $(data).number("music_1"),
|
||||
music_2: $(data).number("music_2"),
|
||||
music_3: $(data).number("music_3"),
|
||||
valid: $(data).bool("valid"),
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
return send.success();
|
||||
};
|
||||
429
iidx@asphyxia/handlers/webui.ts
Normal file
429
iidx@asphyxia/handlers/webui.ts
Normal file
|
|
@ -0,0 +1,429 @@
|
|||
import { profile } from "../models/profile";
|
||||
import { rival } from "../models/rival";
|
||||
import { custom } from "../models/custom";
|
||||
import { score, old_score } from "../models/score";
|
||||
import { lightning_custom } from "../models/lightning";
|
||||
|
||||
export const updateRivalSettings = async (data) => {
|
||||
let update_array = [];
|
||||
|
||||
if (!(_.isEmpty(data.sp_rival1))) {
|
||||
let update_data = {
|
||||
play_style: 1,
|
||||
index: 0,
|
||||
rival_refid: data.sp_rival1,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
collection: "rival",
|
||||
play_style: 1,
|
||||
index: 0,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.sp_rival2))) {
|
||||
let update_data = {
|
||||
play_style: 1,
|
||||
index: 1,
|
||||
rival_refid: data.sp_rival2,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
collection: "rival",
|
||||
play_style: 1,
|
||||
index: 1,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.sp_rival3))) {
|
||||
let update_data = {
|
||||
play_style: 1,
|
||||
index: 2,
|
||||
rival_refid: data.sp_rival3,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
collection: "rival",
|
||||
play_style: 1,
|
||||
index: 2,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.sp_rival4))) {
|
||||
let update_data = {
|
||||
play_style: 1,
|
||||
index: 3,
|
||||
rival_refid: data.sp_rival4,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
collection: "rival",
|
||||
play_style: 1,
|
||||
index: 3,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.sp_rival5))) {
|
||||
let update_data = {
|
||||
play_style: 1,
|
||||
index: 4,
|
||||
rival_refid: data.sp_rival5,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
collection: "rival",
|
||||
play_style: 1,
|
||||
index: 4,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.dp_rival1))) {
|
||||
let update_data = {
|
||||
play_style: 2,
|
||||
index: 0,
|
||||
rival_refid: data.dp_rival1,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
collection: "rival",
|
||||
play_style: 2,
|
||||
index: 0,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.dp_rival2))) {
|
||||
let update_data = {
|
||||
play_style: 2,
|
||||
index: 1,
|
||||
rival_refid: data.dp_rival2,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
collection: "rival",
|
||||
play_style: 2,
|
||||
index: 1,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.dp_rival3))) {
|
||||
let update_data = {
|
||||
play_style: 2,
|
||||
index: 2,
|
||||
rival_refid: data.dp_rival3,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
collection: "rival",
|
||||
play_style: 2,
|
||||
index: 2,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.dp_rival4))) {
|
||||
let update_data = {
|
||||
play_style: 2,
|
||||
index: 3,
|
||||
rival_refid: data.dp_rival4,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
collection: "rival",
|
||||
play_style: 2,
|
||||
index: 3,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
if (!(_.isEmpty(data.dp_rival5))) {
|
||||
let update_data = {
|
||||
play_style: 2,
|
||||
index: 4,
|
||||
rival_refid: data.dp_rival5,
|
||||
};
|
||||
|
||||
update_array.push(update_data);
|
||||
} else {
|
||||
await DB.Remove<rival>(data.refid,
|
||||
{
|
||||
collection: "rival",
|
||||
play_style: 2,
|
||||
index: 4,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
for (let i = 0; i < update_array.length; i++) {
|
||||
await DB.Upsert<rival>(data.refid, {
|
||||
collection: "rival",
|
||||
play_style: update_array[i].play_style,
|
||||
index: update_array[i].index,
|
||||
}, {
|
||||
$set: {
|
||||
rival_refid: update_array[i].rival_refid,
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
};
|
||||
|
||||
export const updateCustomSettings = async (data) => {
|
||||
const profile = await DB.FindOne<profile>(data.refid, {
|
||||
collection: "profile",
|
||||
});
|
||||
|
||||
let customize = {
|
||||
frame: Number(data.frame),
|
||||
turntable: Number(data.turntable),
|
||||
note_burst: Number(data.note_burst),
|
||||
menu_music: Number(data.menu_music),
|
||||
lane_cover: Number(data.lane_cover),
|
||||
category_vox: Number(data.category_vox),
|
||||
note_skin: Number(data.note_skin),
|
||||
full_combo_splash: Number(data.full_combo_splash),
|
||||
disable_musicpreview: StoB(data.disable_musicpreview),
|
||||
|
||||
note_beam: Number(data.note_beam),
|
||||
judge_font: Number(data.judge_font),
|
||||
pacemaker_cover: Number(data.pacemaker_cover),
|
||||
vefx_lock: StoB(data.vefx_lock),
|
||||
effect: Number(data.effect),
|
||||
bomb_size: Number(data.bomb_size),
|
||||
disable_hcn_color: StoB(data.disable_hcn_color),
|
||||
first_note_preview: Number(data.first_note_preview),
|
||||
|
||||
rank_folder: StoB(data.rank_folder),
|
||||
clear_folder: StoB(data.clear_folder),
|
||||
diff_folder: StoB(data.diff_folder),
|
||||
alpha_folder: StoB(data.alpha_folder),
|
||||
rival_folder: StoB(data.rival_folder),
|
||||
rival_battle_folder: StoB(data.rival_battle_folder),
|
||||
rival_info: StoB(data.rival_info),
|
||||
hide_playcount: StoB(data.hide_playcount),
|
||||
disable_graph_cutin: StoB(data.disable_graph_cutin),
|
||||
classic_hispeed: StoB(data.classic_hispeed),
|
||||
rival_played_folder: StoB(data.rival_played_folder),
|
||||
hide_iidxid: StoB(data.hide_iidxid),
|
||||
disable_beginner_option: StoB(data.disable_beginner_option),
|
||||
|
||||
qpro_head: Number(data.qpro_head),
|
||||
qpro_hair: Number(data.qpro_hair),
|
||||
qpro_face: Number(data.qpro_face),
|
||||
qpro_hand: Number(data.qpro_hand),
|
||||
qpro_body: Number(data.qpro_body),
|
||||
qpro_back: Number(data.qpro_back),
|
||||
}
|
||||
|
||||
await DB.Upsert<custom>(data.refid, {
|
||||
collection: "custom",
|
||||
version: Number(data.version)
|
||||
},
|
||||
{
|
||||
$set: customize
|
||||
});
|
||||
|
||||
if (!_.isEmpty(data.name) && data.name != profile.name) {
|
||||
// TODO:: check name is in valid format //
|
||||
await DB.Upsert<profile>(data.refid, {
|
||||
collection: "profile",
|
||||
}, {
|
||||
$set: {
|
||||
name: data.name
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (data.version > 27) {
|
||||
await DB.Upsert<lightning_custom>(data.refid, {
|
||||
collection: "lightning_custom",
|
||||
version: Number(data.version)
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
premium_skin: Number(data.lm_skin),
|
||||
premium_bg: Number(data.lm_bg),
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
export const importScoreData = async (data, send: WebUISend) => {
|
||||
if (_.isEmpty(data.data)) {
|
||||
console.error("[Score Importer] Supplied data is empty");
|
||||
return send.error(400, "Empty data");
|
||||
}
|
||||
|
||||
let content = null;
|
||||
let version = 0;
|
||||
let count = 0;
|
||||
try {
|
||||
content = JSON.parse(data.data);
|
||||
version = content.version;
|
||||
count = content.count;
|
||||
}
|
||||
catch {
|
||||
console.error("[Score Importer] Invaild data has been supplied");
|
||||
return send.error(400, "Invalid data");
|
||||
}
|
||||
|
||||
switch (version) {
|
||||
case 1:
|
||||
let sd_ver1: old_score[] = content.data;
|
||||
for (let a = 0; a < count; a++) {
|
||||
let result = {
|
||||
pgArray: Array<number>(10).fill(0),
|
||||
gArray: Array<number>(10).fill(0),
|
||||
mArray: Array<number>(10).fill(-1),
|
||||
cArray: Array<number>(10).fill(0),
|
||||
rArray: Array<number>(10).fill(-1),
|
||||
esArray: Array<number>(10).fill(0),
|
||||
|
||||
optArray: Array<number>(10).fill(0),
|
||||
opt2Array: Array<number>(10).fill(0),
|
||||
}
|
||||
|
||||
if (!_.isNil(sd_ver1[a].spmArray)) {
|
||||
for (let b = 0; b < 5; b++) {
|
||||
result.cArray[b] = sd_ver1[a].spmArray[2 + b];
|
||||
result.esArray[b] = sd_ver1[a].spmArray[7 + b];
|
||||
if (sd_ver1[a].spmArray[12 + b] != -1) result.mArray[b] = sd_ver1[a].spmArray[12 + b];
|
||||
}
|
||||
}
|
||||
|
||||
if (!_.isNil(sd_ver1[a].dpmArray)) {
|
||||
for (let b = 5; b < 10; b++) {
|
||||
result.cArray[b] = sd_ver1[a].dpmArray[2 + (b - 5)];
|
||||
result.esArray[b] = sd_ver1[a].dpmArray[7 + (b - 5)];
|
||||
if (sd_ver1[a].dpmArray[12 + (b - 5)] != -1) result.mArray[b] = sd_ver1[a].dpmArray[12 + (b - 5)];
|
||||
}
|
||||
}
|
||||
|
||||
if (!_.isNil(sd_ver1[a].optArray)) {
|
||||
result.optArray = sd_ver1[a].optArray;
|
||||
}
|
||||
|
||||
if (!_.isNil(sd_ver1[a].opt2Array)) {
|
||||
result.opt2Array = sd_ver1[a].opt2Array;
|
||||
}
|
||||
|
||||
for (let b = 0; b < 10; b++) {
|
||||
if (_.isNil(sd_ver1[a][b])) continue;
|
||||
result[b] = sd_ver1[a][b];
|
||||
|
||||
if (!_.isNil(sd_ver1[a][b + 10])) {
|
||||
result[b + 10] = sd_ver1[a][b + 10];
|
||||
}
|
||||
}
|
||||
|
||||
await DB.Upsert<score>(data.refid,
|
||||
{
|
||||
collection: "score",
|
||||
mid: sd_ver1[a].music_id
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
...result
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
let sd_ver2: score[] = content.data;
|
||||
for (let a = 0; a < count; a++) {
|
||||
let result = {
|
||||
pgArray: sd_ver2[a].pgArray,
|
||||
gArray: sd_ver2[a].gArray,
|
||||
mArray: sd_ver2[a].mArray,
|
||||
cArray: sd_ver2[a].cArray,
|
||||
rArray: sd_ver2[a].rArray,
|
||||
esArray: sd_ver2[a].esArray,
|
||||
|
||||
optArray: sd_ver2[a].optArray,
|
||||
opt2Array: sd_ver2[a].opt2Array,
|
||||
};
|
||||
|
||||
for (let b = 0; b < 10; b++) {
|
||||
if (_.isNil(sd_ver2[a][b])) continue;
|
||||
result[b] = sd_ver2[a][b];
|
||||
|
||||
if (!_.isNil(sd_ver2[a][b + 10])) {
|
||||
result[b + 10] = sd_ver2[a][b + 10];
|
||||
}
|
||||
}
|
||||
|
||||
await DB.Upsert<score>(data.refid,
|
||||
{
|
||||
collection: "score",
|
||||
mid: sd_ver2[a].mid
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
...result,
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
console.error("[Score Importer] Unregistered score data version");
|
||||
return send.error(400, "Invalid data version");
|
||||
}
|
||||
}
|
||||
|
||||
export const exportScoreData = async (data, send: WebUISend) => {
|
||||
const score = await DB.Find<score>(data.refid, {
|
||||
collection: "score"
|
||||
});
|
||||
|
||||
if (score == null) return send.error(400, "No data");
|
||||
|
||||
let result = {
|
||||
version: 2,
|
||||
count: score.length,
|
||||
data: {
|
||||
...score,
|
||||
}
|
||||
}
|
||||
|
||||
send.json(result);
|
||||
}
|
||||
|
||||
function StoB(value: string) {
|
||||
return value == "on" ? true : false;
|
||||
};
|
||||
598
iidx@asphyxia/index.ts
Normal file
598
iidx@asphyxia/index.ts
Normal file
|
|
@ -0,0 +1,598 @@
|
|||
import { pccommon, pcreg, pcget, pcgetname, pctakeover, pcvisit, pcsave, pcoldget, pcgetlanegacha, pcdrawlanegacha, pcshopregister } from "./handlers/pc";
|
||||
import { shopgetname, shopsavename, shopgetconvention, shopsetconvention } from "./handlers/shop";
|
||||
import { musicreg, musicgetrank, musicappoint, musicarenacpu, musiccrate, musicbreg, musicgetralive } from "./handlers/music";
|
||||
import { graderaised } from "./handlers/grade";
|
||||
import { gssysteminfo } from "./handlers/gamesystem";
|
||||
import { updateRivalSettings, updateCustomSettings, importScoreData, exportScoreData } from "./handlers/webui";
|
||||
import { GetVersion } from "./util";
|
||||
import { rankingentry, rankinggetranker, rankingoentry } from "./handlers/ranking";
|
||||
|
||||
export function register() {
|
||||
if (CORE_VERSION_MAJOR <= 1 && CORE_VERSION_MINOR < 31) {
|
||||
console.error("The current version of Asphyxia Core is not supported. Requires version '1.31' or later.");
|
||||
return;
|
||||
}
|
||||
|
||||
R.Contributor("duel0213");
|
||||
|
||||
R.GameCode("GLD");
|
||||
R.GameCode("HDD");
|
||||
R.GameCode("I00");
|
||||
R.GameCode("JDJ");
|
||||
R.GameCode("JDZ");
|
||||
R.GameCode("KDZ");
|
||||
R.GameCode("LDJ");
|
||||
|
||||
// common //
|
||||
R.Config("BeatPhase", {
|
||||
name: "Beat #",
|
||||
desc: "1 / 2 / 3 / FREE", // This can be event phase on old versions //
|
||||
type: "integer",
|
||||
default: 3, // BEAT FREE //
|
||||
});
|
||||
// ~ Resort Anthem (common) / /
|
||||
R.Config("cmd_gmbl", {
|
||||
name: "G.JUDGE",
|
||||
desc: "Enable G.JUDGE Command (~ Resort Anthem)",
|
||||
type: "boolean",
|
||||
default: true,
|
||||
});
|
||||
R.Config("cmd_gmbla", {
|
||||
name: "G.JUDGE-A",
|
||||
desc: "Enable G.JUDGE-A Command (~ Resort Anthem)",
|
||||
type: "boolean",
|
||||
default: true,
|
||||
});
|
||||
R.Config("cmd_regl", {
|
||||
name: "REGUL-SPEED",
|
||||
desc: "Enable REGUL-SPEED Command (~ Resort Anthem)",
|
||||
type: "boolean",
|
||||
default: true,
|
||||
});
|
||||
R.Config("cmd_rndp", {
|
||||
name: "RANDOM+",
|
||||
desc: "Enable RANDOM+ Command (~ Resort Anthem)",
|
||||
type: "boolean",
|
||||
default: true,
|
||||
});
|
||||
R.Config("cmd_hrnd", {
|
||||
name: "H-RANDOM",
|
||||
desc: "Enable H-RANDOM Command (~ Resort Anthem)",
|
||||
type: "boolean",
|
||||
default: true,
|
||||
});
|
||||
R.Config("cmd_alls", {
|
||||
name: "ALL-SCRATCH",
|
||||
desc: "Enable ALL-SCRATCH Command (~ Resort Anthem)",
|
||||
type: "boolean",
|
||||
default: true,
|
||||
});
|
||||
// SPADA ~ (common) //
|
||||
R.Config("NewSongAnother12", {
|
||||
name: "New Song Another",
|
||||
desc: "Enables ANOTHER difficulty of current version's new songs that has Level 12",
|
||||
type: "boolean",
|
||||
default: true,
|
||||
});
|
||||
// PENDUAL ~ (common) //
|
||||
R.Config("ExpertPhase", {
|
||||
name: "Expert Phase",
|
||||
type: "integer",
|
||||
default: 2,
|
||||
});
|
||||
R.Config("ExpertRandomPhase", {
|
||||
name: "Expert Random Phase",
|
||||
type: "integer",
|
||||
default: 2,
|
||||
});
|
||||
// HEROIC VERSE ~ (common) //
|
||||
R.Config("ArenaPhase", {
|
||||
name: "ARENA Phase",
|
||||
type: "integer",
|
||||
default: 2, // ADVERTISE //
|
||||
});
|
||||
// BISTROVER ~ (common) //
|
||||
R.Config("MovieUpload", {
|
||||
name: "Movie Upload URL",
|
||||
type: "string",
|
||||
desc: "API address for play video uploading feature (JSON)",
|
||||
default: "http://localhost/"
|
||||
});
|
||||
R.Config("Eisei", {
|
||||
name: "Eisei Grade Courses",
|
||||
desc: "Enable EISEI/KIWAMI Grade Courses",
|
||||
type: "boolean",
|
||||
default: true,
|
||||
});
|
||||
// CastHour ~ RESIDENT (common) //
|
||||
R.Config("Grade", {
|
||||
name: "Grade Open Phase",
|
||||
desc: "RED / KAIDEN",
|
||||
type: "integer",
|
||||
default: 2,
|
||||
})
|
||||
|
||||
// SIRIUS //
|
||||
R.Config("sr_league", {
|
||||
name: "League Phase (SR)",
|
||||
type: "integer",
|
||||
default: 0,
|
||||
});
|
||||
|
||||
// Resort Anthem //
|
||||
R.Config("ra_league", {
|
||||
name: "League Phase (RA)",
|
||||
type: "integer",
|
||||
default: 0,
|
||||
});
|
||||
R.Config("ra_story", {
|
||||
name: "Story Phase (RA)",
|
||||
type: "integer",
|
||||
default: 0,
|
||||
});
|
||||
R.Config("ra_event", {
|
||||
name: "Tour Phase (RA)",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
R.Config("ra_lincle", {
|
||||
name: "Lincle LINK Phase (RA)",
|
||||
type: "integer",
|
||||
default: 1,
|
||||
});
|
||||
|
||||
// Lincle //
|
||||
R.Config("lc_lincle", {
|
||||
name: "Lincle LINK Phase (LC)",
|
||||
type: "integer",
|
||||
default: 2,
|
||||
});
|
||||
R.Config("lc_boss", {
|
||||
name: "Lincle Kingdom Phase",
|
||||
type: "integer",
|
||||
default: 2,
|
||||
});
|
||||
|
||||
// tricoro //
|
||||
R.Config("tr_limit", {
|
||||
name: "Limit Burst Phase (TR)",
|
||||
type: "integer",
|
||||
default: 24, // TODO:: verify //
|
||||
});
|
||||
R.Config("tr_boss", {
|
||||
name: "Event Phase (TR)",
|
||||
desc: "RED / BLUE / YELLOW",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
R.Config("tr_red", {
|
||||
name: "RED Phase",
|
||||
desc: "LEGEND CROSS Phase",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
R.Config("tr_yellow", {
|
||||
name: "YELLOW Phase",
|
||||
desc: "ぼくらの宇宙戦争 Phase",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
R.Config("tr_medal", {
|
||||
name: "Medal Phase (TR)",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
R.Config("tr_cafe", {
|
||||
name: "Café de Tran",
|
||||
desc: "Enable Café de Tran Event (tricoro)",
|
||||
type: "boolean",
|
||||
default: true,
|
||||
});
|
||||
R.Config("tr_tripark", {
|
||||
name: "Everyone's SPACEWAR!!",
|
||||
desc: "Enable クプロ・ミミニャミ・パステルくんのみんなで宇宙戦争!! Event (tricoro)",
|
||||
type: "boolean",
|
||||
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 (PD)",
|
||||
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_extraboss",
|
||||
{
|
||||
name: "Extra Boss Phase (CP)",
|
||||
desc: "Extra Boss Phase",
|
||||
type: "integer",
|
||||
default: 30,
|
||||
});
|
||||
R.Config("cp_bemanisummer", {
|
||||
name: "BEMANI Summer 2016",
|
||||
desc: "NEW Generation 夏の流星フェスタ2016 Phase",
|
||||
type: "integer",
|
||||
default: 2,
|
||||
});
|
||||
|
||||
// SINOBUZ //
|
||||
R.Config("sb_boss", {
|
||||
name: "Event Phase (SB)",
|
||||
desc: "攻城シノバズ伝 / 忍々七鍵伝",
|
||||
type: "integer",
|
||||
default: 2,
|
||||
});
|
||||
R.Config("sb_event1", {
|
||||
name: "攻城シノバズ伝",
|
||||
desc: "攻城シノバズ伝 Phase",
|
||||
type: "integer",
|
||||
default: 2,
|
||||
});
|
||||
R.Config("sb_event2", {
|
||||
name: "忍々七鍵伝",
|
||||
desc: "忍々七鍵伝 Phase",
|
||||
type: "integer",
|
||||
default: 1,
|
||||
});
|
||||
R.Config("sb_extraboss",
|
||||
{
|
||||
name: "BUZRA ARTS",
|
||||
desc: "BUZRA ARTS Phase",
|
||||
type: "integer",
|
||||
default: 35,
|
||||
});
|
||||
|
||||
// CANNON BALLERS //
|
||||
R.Config("cb_boss", {
|
||||
name: "Event Phase (SB)",
|
||||
desc: "激走!キャノンレーサー",
|
||||
type: "integer",
|
||||
default: 1,
|
||||
});
|
||||
R.Config("cb_event1", {
|
||||
name: "激走!キャノンレーサー",
|
||||
desc: "激走!キャノンレーサー Phase",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
R.Config("cb_extraboss",
|
||||
{
|
||||
name: "IIDX AIR RACE",
|
||||
desc: "IIDX AIR RACE Phase",
|
||||
type: "integer",
|
||||
default: 35,
|
||||
});
|
||||
|
||||
// Rootage //
|
||||
R.Config("rt_boss", {
|
||||
name: "Event Phase (RT)",
|
||||
desc: "蜃気楼の図書館 / DELABITY LABORATORY",
|
||||
type: "integer",
|
||||
default: 2,
|
||||
});
|
||||
R.Config("rt_event1", {
|
||||
name: "蜃気楼の図書館",
|
||||
desc: "蜃気楼の図書館 Phase",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
R.Config("rt_event2", {
|
||||
name: "DELABITY LABORATORY",
|
||||
desc: "DELABITY LABORATORY Phase",
|
||||
type: "integer",
|
||||
default: 2,
|
||||
});
|
||||
R.Config("rt_extraboss",
|
||||
{
|
||||
name: "ARC SCORE",
|
||||
desc: "ARC SCORE Phase",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
|
||||
// HEROIC VERSE //
|
||||
R.Config("hv_boss", {
|
||||
name: "Event Phase (HV)",
|
||||
desc: "HEROIC WORKOUT!!",
|
||||
type: "integer",
|
||||
default: 1,
|
||||
});
|
||||
R.Config("hv_event", {
|
||||
name: "HEROIC WORKOUT!!",
|
||||
desc: "HEROIC WORKOUT!! Phase",
|
||||
type: "integer",
|
||||
default: 4,
|
||||
});
|
||||
R.Config("hv_extraboss",
|
||||
{
|
||||
name: "SHADOW REBELLION",
|
||||
desc: "SHADOW REBELLION Phase",
|
||||
type: "integer",
|
||||
default: 1,
|
||||
});
|
||||
|
||||
// BISTROVER //
|
||||
R.Config("bo_boss", {
|
||||
name: "Event Phase (BO)",
|
||||
desc: "召しませ!BISTROVER",
|
||||
type: "integer",
|
||||
default: 1,
|
||||
});
|
||||
R.Config("bo_extraboss", {
|
||||
name: "BISTRO LANDING",
|
||||
desc: "BISTRO LANDING Phase",
|
||||
type: "integer",
|
||||
default: 1,
|
||||
});
|
||||
R.Config("bo_event", {
|
||||
name: "召しませ!BISTROVER",
|
||||
desc: "召しませ!BISTROVER Phase",
|
||||
type: "integer",
|
||||
default: 1,
|
||||
});
|
||||
|
||||
// CastHour //
|
||||
R.Config("ch_event", {
|
||||
name: "CastHour Space",
|
||||
desc: "CastHour Space Phase",
|
||||
type: "integer",
|
||||
default: 5,
|
||||
});
|
||||
R.Config("ch_extraboss", {
|
||||
name: "Extra Boss Phase (CH)",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
|
||||
// RESIDENT //
|
||||
R.Config("rs_event", {
|
||||
name: "RESIDENT PARTY",
|
||||
desc: "RESIDENT PARTY Phase",
|
||||
type: "integer",
|
||||
default: 5,
|
||||
});
|
||||
R.Config("rs_extraboss", {
|
||||
name: "Extra Boss Phase (RS)",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
|
||||
// EPOLIS //
|
||||
R.Config("ep_event", {
|
||||
name: "Event Phase (EP)",
|
||||
desc: "MY POLIS DESIGNER / EPOLIS RESTORATION",
|
||||
type: "integer",
|
||||
default: 2,
|
||||
});
|
||||
R.Config("ep_event1", {
|
||||
name: "MY POLIS DESIGNER",
|
||||
desc: "MY POLIS DESIGNER Phase",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
R.Config("ep_event2", {
|
||||
name: "EPOLIS RESTORATION",
|
||||
desc: "EPOLIS RESTORATION Phase",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
R.Config("ep_extraboss", {
|
||||
name: "EPOLIS SINGULARITY",
|
||||
desc: "EPOLIS SINGULARITY Phase",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
|
||||
// Pinky Crush //
|
||||
R.Config("pc_event", {
|
||||
name: "Event Phase (PC)",
|
||||
desc: "ピンキージャンプアップ! / ピンキーアンダーグラウンド",
|
||||
type: "integer",
|
||||
default: 2,
|
||||
});
|
||||
R.Config("pc_event1", {
|
||||
name: "ピンキージャンプアップ!",
|
||||
desc: "ピンキージャンプアップ! Phase",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
R.Config("pc_event2", {
|
||||
name: "ピンキーアンダーグラウンド",
|
||||
desc: "ピンキーアンダーグラウンド Phase",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
R.Config("pc_extraboss", {
|
||||
name: "Extra Boss Phase (PC)",
|
||||
type: "integer",
|
||||
default: 3,
|
||||
});
|
||||
|
||||
// TODO:: Make a list of customize items //
|
||||
R.WebUIEvent("iidxGetProfile", async (data, send: WebUISend) => {
|
||||
const pcdata = await DB.FindOne(data.refid, {
|
||||
collection: "pcdata",
|
||||
version: Number(data.version),
|
||||
});
|
||||
|
||||
return send.json({
|
||||
pcdata,
|
||||
});
|
||||
});
|
||||
R.WebUIEvent("iidxGetSetting", async (data, send: WebUISend) => {
|
||||
const custom = await DB.FindOne(data.refid, {
|
||||
collection: "custom",
|
||||
version: Number(data.version),
|
||||
});
|
||||
|
||||
const lm_custom = await DB.FindOne(data.refid, {
|
||||
collection: "lightning_custom",
|
||||
version: Number(data.version),
|
||||
});
|
||||
|
||||
return send.json({
|
||||
custom,
|
||||
lm_custom,
|
||||
});
|
||||
});
|
||||
R.WebUIEvent("iidxUpdateRival", updateRivalSettings);
|
||||
R.WebUIEvent("iidxUpdateCustom", updateCustomSettings);
|
||||
R.WebUIEvent("iidxImportScoreData", importScoreData);
|
||||
R.WebUIEvent("iidxExportScoreData", exportScoreData);
|
||||
|
||||
const MultiRoute = (method: string, handler: EPR | boolean) => {
|
||||
R.Route(`${method}`, handler);
|
||||
R.Route(`IIDX21${method}`, handler);
|
||||
R.Route(`IIDX22${method}`, handler);
|
||||
R.Route(`IIDX23${method}`, handler);
|
||||
R.Route(`IIDX24${method}`, handler);
|
||||
R.Route(`IIDX25${method}`, handler);
|
||||
R.Route(`IIDX26${method}`, handler);
|
||||
R.Route(`IIDX27${method}`, handler);
|
||||
R.Route(`IIDX28${method}`, handler);
|
||||
R.Route(`IIDX29${method}`, handler);
|
||||
R.Route(`IIDX30${method}`, handler);
|
||||
R.Route(`IIDX31${method}`, handler);
|
||||
R.Route(`IIDX32${method}`, handler);
|
||||
};
|
||||
|
||||
MultiRoute("pc.common", pccommon);
|
||||
MultiRoute("pc.reg", pcreg);
|
||||
MultiRoute("pc.get", pcget);
|
||||
MultiRoute("pc.getname", pcgetname);
|
||||
MultiRoute("pc.oldget", pcoldget);
|
||||
MultiRoute("pc.takeover", pctakeover);
|
||||
MultiRoute("pc.visit", pcvisit);
|
||||
MultiRoute("pc.save", pcsave);
|
||||
MultiRoute("pc.shopregister", pcshopregister);
|
||||
MultiRoute("pc.getLaneGachaTicket", pcgetlanegacha);
|
||||
MultiRoute("pc.drawLaneGacha", pcdrawlanegacha);
|
||||
MultiRoute("pc.consumeLaneGachaTicket", true);
|
||||
|
||||
MultiRoute("shop.getname", shopgetname);
|
||||
MultiRoute("shop.savename", shopsavename);
|
||||
MultiRoute("shop.getconvention", shopgetconvention);
|
||||
MultiRoute("shop.setconvention", shopsetconvention);
|
||||
|
||||
MultiRoute("music.crate", musiccrate);
|
||||
MultiRoute("music.getrank", musicgetrank);
|
||||
MultiRoute("music.getralive", musicgetralive);
|
||||
MultiRoute("music.appoint", musicappoint);
|
||||
MultiRoute("music.reg", musicreg);
|
||||
MultiRoute("music.breg", musicbreg);
|
||||
MultiRoute("music.arenaCPU", musicarenacpu);
|
||||
|
||||
MultiRoute("grade.raised", graderaised);
|
||||
|
||||
MultiRoute("ranking.entry", rankingentry);
|
||||
MultiRoute("ranking.oentry", rankingoentry);
|
||||
MultiRoute("ranking.getranker", rankinggetranker);
|
||||
|
||||
MultiRoute("gameSystem.systemInfo", gssysteminfo);
|
||||
|
||||
R.Unhandled((req: EamuseInfo, data: any, send: EamuseSend) => {
|
||||
console.warn(`Unhandled Request : [${GetVersion(req)}], ${req.module}.${req.method}, ${JSON.stringify(data)}`);
|
||||
return send.success();
|
||||
});
|
||||
}
|
||||
50
iidx@asphyxia/models/activity.ts
Normal file
50
iidx@asphyxia/models/activity.ts
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
export interface activity {
|
||||
collection: "activity";
|
||||
version: number;
|
||||
|
||||
date: number;
|
||||
play_style: number;
|
||||
|
||||
music_num: number;
|
||||
play_time: number;
|
||||
keyboard_num: number;
|
||||
scratch_num: number;
|
||||
clear_update_num: number[];
|
||||
score_update_num: number[];
|
||||
}
|
||||
|
||||
export interface activity_mybest {
|
||||
collection: "activity_mybest";
|
||||
version: number;
|
||||
|
||||
play_style: number;
|
||||
play_side: number;
|
||||
music_id: number;
|
||||
note_id: number;
|
||||
|
||||
target_graph: number;
|
||||
target_score: number;
|
||||
pacemaker: number;
|
||||
best_clear: number;
|
||||
best_score: number;
|
||||
best_misscount: number;
|
||||
now_clear: number;
|
||||
now_score: number;
|
||||
now_misscount: number;
|
||||
now_pgreat: number;
|
||||
now_great: number;
|
||||
now_good: number;
|
||||
now_bad: number;
|
||||
now_poor: number;
|
||||
now_combo: number;
|
||||
now_fast: number;
|
||||
now_slow: number;
|
||||
option: number;
|
||||
option_2: number;
|
||||
ghost_gauge_data: string;
|
||||
gauge_type: number;
|
||||
result_type: number;
|
||||
is_special_result: number;
|
||||
|
||||
update_date: number;
|
||||
}
|
||||
46
iidx@asphyxia/models/arena.ts
Normal file
46
iidx@asphyxia/models/arena.ts
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
export const IIDX_CPUS = [
|
||||
[
|
||||
[6, 4, 5, 0],
|
||||
[7, 5, 6, 0],
|
||||
[8, 6, 6, 0],
|
||||
[9, 6, 7, 0],
|
||||
[10, 7, 7, 0],
|
||||
[10, 7, 8, 0],
|
||||
[11, 8, 8, 0],
|
||||
[11, 8, 9, 0],
|
||||
[12, 9, 9, 0],
|
||||
[12, 9, 10, 0],
|
||||
[13, 9, 10, 0],
|
||||
[13, 10, 10, 0],
|
||||
[14, 10, 11, 0],
|
||||
[14, 10, 11, 1],
|
||||
[15, 11, 11, 1],
|
||||
[15, 11, 12, 1],
|
||||
[16, 11, 12, 1],
|
||||
[16, 11, 12, 1],
|
||||
[17, 12, 12, 1],
|
||||
[18, 12, 12, 1],
|
||||
],
|
||||
[
|
||||
[6, 3, 5, 0],
|
||||
[7, 3, 5, 0],
|
||||
[8, 4, 5, 0],
|
||||
[8, 4, 5, 0],
|
||||
[9, 5, 6, 0],
|
||||
[9, 5, 6, 0],
|
||||
[10, 6, 6, 0],
|
||||
[10, 6, 7, 0],
|
||||
[11, 7, 7, 0],
|
||||
[11, 7, 8, 0],
|
||||
[12, 8, 8, 0],
|
||||
[12, 8, 9, 0],
|
||||
[13, 9, 9, 0],
|
||||
[13, 9, 10, 0],
|
||||
[14, 9, 10, 0],
|
||||
[15, 10, 10, 0],
|
||||
[15, 10, 11, 0],
|
||||
[16, 11, 11, 1],
|
||||
[17, 11, 12, 1],
|
||||
[18, 12, 12, 1],
|
||||
],
|
||||
];
|
||||
8
iidx@asphyxia/models/badge.ts
Normal file
8
iidx@asphyxia/models/badge.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
export interface badge {
|
||||
collection: "badge";
|
||||
version: number;
|
||||
|
||||
category_name: string;
|
||||
flg_id: number;
|
||||
flg: number;
|
||||
}
|
||||
117
iidx@asphyxia/models/custom.ts
Normal file
117
iidx@asphyxia/models/custom.ts
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
export interface custom {
|
||||
collection: "custom";
|
||||
|
||||
version: number;
|
||||
|
||||
// skin //
|
||||
frame: number;
|
||||
turntable: number;
|
||||
note_burst: number;
|
||||
menu_music: number;
|
||||
lane_cover: number;
|
||||
category_vox: number;
|
||||
note_skin: number;
|
||||
full_combo_splash: number;
|
||||
disable_musicpreview: boolean;
|
||||
|
||||
note_beam: number;
|
||||
judge_font: number;
|
||||
pacemaker_cover: number;
|
||||
vefx_lock: boolean;
|
||||
effect: number;
|
||||
bomb_size: number;
|
||||
disable_hcn_color: boolean;
|
||||
first_note_preview: number;
|
||||
|
||||
skin_customize_flg: number[];
|
||||
|
||||
note_size: number; // epolis //
|
||||
lift_cover: number;
|
||||
note_beam_size: number;
|
||||
|
||||
// appendsettings
|
||||
rank_folder: boolean;
|
||||
clear_folder: boolean;
|
||||
diff_folder: boolean;
|
||||
alpha_folder: boolean;
|
||||
rival_folder: boolean;
|
||||
rival_battle_folder: boolean;
|
||||
rival_info: boolean;
|
||||
hide_playcount: boolean;
|
||||
disable_graph_cutin: boolean;
|
||||
classic_hispeed: boolean;
|
||||
rival_played_folder: boolean;
|
||||
hide_iidxid: boolean;
|
||||
disable_beginner_option: boolean;
|
||||
|
||||
// qpro //
|
||||
qpro_head: number;
|
||||
qpro_hair: number;
|
||||
qpro_face: number;
|
||||
qpro_hand: number;
|
||||
qpro_body: number;
|
||||
qpro_back: number; // epolis //
|
||||
|
||||
// qpro_secret (heroic verse) //
|
||||
qpro_secret_head: string[];
|
||||
qpro_secret_hair: string[];
|
||||
qpro_secret_face: string[];
|
||||
qpro_secret_hand: string[];
|
||||
qpro_secret_body: string[];
|
||||
qpro_secret_back: string[]; // epolis //
|
||||
}
|
||||
|
||||
export const default_custom = {
|
||||
frame: 0,
|
||||
turntable: 0,
|
||||
note_burst: 0,
|
||||
menu_music: 0,
|
||||
lane_cover: 0,
|
||||
category_vox: 0,
|
||||
note_skin: 0,
|
||||
full_combo_splash: 0,
|
||||
disable_musicpreview: false,
|
||||
|
||||
note_beam: 0,
|
||||
judge_font: 0,
|
||||
pacemaker_cover: 0,
|
||||
vefx_lock: false,
|
||||
effect: 0,
|
||||
bomb_size: 0,
|
||||
disable_hcn_color: false,
|
||||
first_note_preview: 0,
|
||||
|
||||
skin_customize_flg: Array<number>(3).fill(-1),
|
||||
|
||||
note_size: 0,
|
||||
lift_cover: 0,
|
||||
note_beam_size: 0,
|
||||
|
||||
rank_folder: true,
|
||||
clear_folder: true,
|
||||
diff_folder: true,
|
||||
alpha_folder: true,
|
||||
rival_folder: true,
|
||||
rival_battle_folder: true,
|
||||
rival_info: true,
|
||||
hide_playcount: false,
|
||||
disable_graph_cutin: false,
|
||||
classic_hispeed: false,
|
||||
rival_played_folder: true,
|
||||
hide_iidxid: false,
|
||||
disable_beginner_option: false,
|
||||
|
||||
qpro_head: 0,
|
||||
qpro_hair: 0,
|
||||
qpro_face: 0,
|
||||
qpro_hand: 0,
|
||||
qpro_body: 0,
|
||||
qpro_back: 0,
|
||||
|
||||
qpro_secret_head: Array<string>(7).fill("-1"),
|
||||
qpro_secret_hair: Array<string>(7).fill("-1"),
|
||||
qpro_secret_face: Array<string>(7).fill("-1"),
|
||||
qpro_secret_hand: Array<string>(7).fill("-1"),
|
||||
qpro_secret_body: Array<string>(7).fill("-1"),
|
||||
qpro_secret_back: Array<string>(7).fill("-1"),
|
||||
}
|
||||
14
iidx@asphyxia/models/event.ts
Normal file
14
iidx@asphyxia/models/event.ts
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
export interface blueboss {
|
||||
level: number;
|
||||
gauge: number;
|
||||
item: number;
|
||||
item_flg: number;
|
||||
row0: number;
|
||||
row1: number;
|
||||
column0: number;
|
||||
column1: number;
|
||||
general: number;
|
||||
first_flg: number;
|
||||
sector: number;
|
||||
durability: string;
|
||||
}
|
||||
10
iidx@asphyxia/models/extraboss.ts
Normal file
10
iidx@asphyxia/models/extraboss.ts
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
export interface extra_boss {
|
||||
collection: "extra_boss";
|
||||
version: number;
|
||||
phase: number;
|
||||
|
||||
extra: number;
|
||||
extra_b: number;
|
||||
onemore: number;
|
||||
onemore_b: number;
|
||||
}
|
||||
10
iidx@asphyxia/models/favorite.ts
Normal file
10
iidx@asphyxia/models/favorite.ts
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
export interface extra_favorite {
|
||||
collection: "extra_favorite";
|
||||
version: number;
|
||||
folder_id: number;
|
||||
|
||||
sp_mlist: string | Buffer;
|
||||
sp_clist: string | Buffer;
|
||||
dp_mlist: string | Buffer;
|
||||
dp_clist: string | Buffer;
|
||||
}
|
||||
10
iidx@asphyxia/models/grade.ts
Normal file
10
iidx@asphyxia/models/grade.ts
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
export interface grade {
|
||||
collection: "grade";
|
||||
version: number;
|
||||
|
||||
style: number;
|
||||
gradeId: number;
|
||||
|
||||
maxStage: number;
|
||||
archive: number; // typo: achieve //
|
||||
}
|
||||
171
iidx@asphyxia/models/lightning.ts
Normal file
171
iidx@asphyxia/models/lightning.ts
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
export interface lightning_settings {
|
||||
collection: "lightning_settings";
|
||||
version: number;
|
||||
|
||||
headphone_vol: number;
|
||||
|
||||
resistance_sp_left: number;
|
||||
resistance_sp_right: number;
|
||||
resistance_dp_left: number;
|
||||
resistance_dp_right: number;
|
||||
|
||||
slider: number[];
|
||||
light: number[];
|
||||
concentration: number;
|
||||
|
||||
keyboard_kind: number; // epolis //
|
||||
brightness: number;
|
||||
}
|
||||
|
||||
export interface lightning_playdata {
|
||||
collection: "lightning_playdata";
|
||||
|
||||
version: number;
|
||||
|
||||
sp_num: number;
|
||||
dp_num: number;
|
||||
}
|
||||
|
||||
export interface lightning_custom {
|
||||
collection: "lightning_custom";
|
||||
version: number;
|
||||
|
||||
premium_skin: number;
|
||||
premium_bg: number;
|
||||
}
|
||||
|
||||
export interface eisei_grade {
|
||||
collection: "eisei_grade";
|
||||
version: number;
|
||||
|
||||
clear_type: number;
|
||||
grade_id: number;
|
||||
grade_type: number;
|
||||
stage_num: number;
|
||||
option: number;
|
||||
|
||||
past_achievement: number[];
|
||||
past_selected_course: number[];
|
||||
max_past_achievement: number[];
|
||||
max_past_selected_course: number[];
|
||||
}
|
||||
|
||||
export interface eisei_grade_data {
|
||||
clear_type: number;
|
||||
grade_id: number;
|
||||
grade_type: number;
|
||||
stage_num: number;
|
||||
option: number;
|
||||
|
||||
past: number[];
|
||||
selected_course: number[];
|
||||
max_past: number[];
|
||||
max_selected_course: number[];
|
||||
}
|
||||
|
||||
export interface lightning_musicmemo {
|
||||
collection: "lightning_musicmemo";
|
||||
version: number;
|
||||
|
||||
music_idx: number;
|
||||
play_style: number;
|
||||
music_id: number;
|
||||
}
|
||||
|
||||
export interface musicmemo_data {
|
||||
music_idx: number;
|
||||
play_style: number;
|
||||
music_id: number;
|
||||
}
|
||||
|
||||
export interface lightning_musicmemo_new {
|
||||
collection: "lightning_musicmemo_new";
|
||||
version: number;
|
||||
|
||||
folder_idx: number;
|
||||
folder_name: string;
|
||||
play_style: number;
|
||||
music_ids: number[];
|
||||
}
|
||||
|
||||
export interface musicmemo_data_new {
|
||||
folder_idx: number;
|
||||
folder_name: string;
|
||||
play_style: number;
|
||||
music_ids: number[];
|
||||
}
|
||||
|
||||
export interface lightning_musicfilter {
|
||||
collection: "lightning_musicfilter";
|
||||
version: number;
|
||||
|
||||
play_style: number;
|
||||
folder_id: number;
|
||||
filter_id: number;
|
||||
is_valid: boolean;
|
||||
value0: number;
|
||||
value1: number;
|
||||
}
|
||||
|
||||
export interface lightning_musicfilter_sort {
|
||||
collection: "lightning_musicfilter_sort";
|
||||
version: number;
|
||||
|
||||
play_style: number;
|
||||
folder_id: number;
|
||||
sort: number;
|
||||
}
|
||||
|
||||
export interface musicfilter_data {
|
||||
play_style: number;
|
||||
folder_id: number;
|
||||
filter_id: number;
|
||||
is_valid: number;
|
||||
value0: number;
|
||||
value1: number;
|
||||
}
|
||||
|
||||
export interface musicfilter_sort_data {
|
||||
play_style: number;
|
||||
folder_id: number;
|
||||
sort: number;
|
||||
}
|
||||
|
||||
export const lm_playdata = {
|
||||
sp_num: 0,
|
||||
dp_num: 0,
|
||||
};
|
||||
|
||||
export const lm_settings = {
|
||||
headphone_vol: 10,
|
||||
|
||||
resistance_sp_left: 4,
|
||||
resistance_sp_right: 4,
|
||||
resistance_dp_left: 4,
|
||||
resistance_dp_right: 4,
|
||||
|
||||
slider: [7, 7, 7, 7, 7, 15, 15],
|
||||
light: [1, 1, 1, 1, 1, 1],
|
||||
concentration: 0,
|
||||
};
|
||||
|
||||
export const lm_settings_new = {
|
||||
headphone_vol: 10,
|
||||
|
||||
resistance_sp_left: 4,
|
||||
resistance_sp_right: 4,
|
||||
resistance_dp_left: 4,
|
||||
resistance_dp_right: 4,
|
||||
|
||||
slider: [7, 7, 7, 7, 7, 15, 15],
|
||||
light: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||
concentration: 0,
|
||||
|
||||
keyboard_kind: 10, // epolis //
|
||||
brightness: 2,
|
||||
}
|
||||
|
||||
export const lm_customdata = {
|
||||
premium_skin: 0, // Icons //
|
||||
premium_bg: 0, // Background (epolis) //
|
||||
}
|
||||
1710
iidx@asphyxia/models/pcdata.ts
Normal file
1710
iidx@asphyxia/models/pcdata.ts
Normal file
File diff suppressed because it is too large
Load Diff
22
iidx@asphyxia/models/profile.ts
Normal file
22
iidx@asphyxia/models/profile.ts
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
export interface profile {
|
||||
collection: "profile";
|
||||
|
||||
refid: string;
|
||||
id: number;
|
||||
idstr: string;
|
||||
name: string;
|
||||
pid: number;
|
||||
|
||||
language: number;
|
||||
total_pc: number;
|
||||
total_kbd: number;
|
||||
total_scr: number;
|
||||
}
|
||||
|
||||
export const default_profile = {
|
||||
language: -1,
|
||||
|
||||
total_pc: 0,
|
||||
total_kbd: 0,
|
||||
total_scr: 0,
|
||||
}
|
||||
29
iidx@asphyxia/models/ranking.ts
Normal file
29
iidx@asphyxia/models/ranking.ts
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
export interface expert {
|
||||
collection: "expert";
|
||||
version: number;
|
||||
coid: number;
|
||||
|
||||
cArray: number[];
|
||||
pgArray: number[];
|
||||
gArray: number[];
|
||||
optArray: number[];
|
||||
opt2Array: number[];
|
||||
esArray: number[];
|
||||
}
|
||||
|
||||
export interface ranking {
|
||||
collection: "ranking";
|
||||
version: number;
|
||||
clid: number;
|
||||
coid: number;
|
||||
|
||||
gnum: number;
|
||||
pgnum: number;
|
||||
name: string;
|
||||
opname: string;
|
||||
pid: number;
|
||||
udate: number;
|
||||
|
||||
exscore: number; // <- for sort //
|
||||
maxStage: number;
|
||||
}
|
||||
17
iidx@asphyxia/models/rival.ts
Normal file
17
iidx@asphyxia/models/rival.ts
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
export interface rival {
|
||||
collection: "rival";
|
||||
|
||||
play_style: number;
|
||||
|
||||
index: number;
|
||||
rival_refid: string;
|
||||
};
|
||||
|
||||
export interface rival_data {
|
||||
play_style: number;
|
||||
index: number;
|
||||
|
||||
qprodata: number[];
|
||||
profile: (string | number)[];
|
||||
pcdata: number[];
|
||||
}
|
||||
39
iidx@asphyxia/models/score.ts
Normal file
39
iidx@asphyxia/models/score.ts
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
export interface score {
|
||||
collection: "score";
|
||||
|
||||
mid: number;
|
||||
|
||||
pgArray: number[];
|
||||
gArray: number[];
|
||||
mArray: number[];
|
||||
cArray: number[];
|
||||
rArray: number[];
|
||||
esArray: number[];
|
||||
|
||||
optArray: number[];
|
||||
opt2Array: number[];
|
||||
}
|
||||
|
||||
export interface score_top {
|
||||
collection: "score_top";
|
||||
|
||||
play_style: number;
|
||||
mid: number;
|
||||
|
||||
names: string[];
|
||||
scores: number[];
|
||||
clflgs: number[];
|
||||
}
|
||||
|
||||
export interface old_score {
|
||||
music_id: number;
|
||||
|
||||
spmArray: number[];
|
||||
dpmArray: number[];
|
||||
|
||||
optArray: number[];
|
||||
opt2Array: number[];
|
||||
|
||||
option_1: number;
|
||||
option_2: number;
|
||||
}
|
||||
19
iidx@asphyxia/models/shop.ts
Normal file
19
iidx@asphyxia/models/shop.ts
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
export interface shop_data {
|
||||
collection: "shop_data";
|
||||
|
||||
opname: string;
|
||||
pid: number;
|
||||
cls_opt: number;
|
||||
}
|
||||
|
||||
export interface convention_data {
|
||||
collection: "shop_convention";
|
||||
|
||||
version: number;
|
||||
|
||||
music_0: number;
|
||||
music_1: number;
|
||||
music_2: number;
|
||||
music_3: number;
|
||||
valid: boolean;
|
||||
}
|
||||
7
iidx@asphyxia/models/tutorial.ts
Normal file
7
iidx@asphyxia/models/tutorial.ts
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
export interface tutorial {
|
||||
collection: "tutorial";
|
||||
version: number;
|
||||
tid: number;
|
||||
|
||||
clr: number;
|
||||
}
|
||||
7
iidx@asphyxia/models/worldtourism.ts
Normal file
7
iidx@asphyxia/models/worldtourism.ts
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
export interface world_tourism {
|
||||
collection: "world_tourism";
|
||||
version: number;
|
||||
|
||||
tour_id: number;
|
||||
progress: number;
|
||||
}
|
||||
9
iidx@asphyxia/pug/GLD/pcget.pug
Normal file
9
iidx@asphyxia/pug/GLD/pcget.pug
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach sflg0=pcdata.sflg0 sflg1=pcdata.sflg1 sflg2=pcdata.sflg2 gno=pcdata.gno sdhd=pcdata.sdhd sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 mcomb=pcdata.mcomb ncomb=pcdata.ncomb mode=pcdata.mode pmode=pcdata.pmode)
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid __type="str") #{gradeStr}
|
||||
ex(__type="str") #{exStr}
|
||||
skin(__type="str") #{skinStr}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(rno=rd.index id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
gold(now_g=pcdata.gold_now all_g=pcdata.gold_all use_g=pcdata.gold_use)
|
||||
9
iidx@asphyxia/pug/HDD/pcget.pug
Normal file
9
iidx@asphyxia/pug/HDD/pcget.pug
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach sflg0=pcdata.sflg0 sflg1=pcdata.sflg1 sflg2=pcdata.sflg2 gno=pcdata.gno sdhd=pcdata.sdhd sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 mcomb=pcdata.mcomb ncomb=pcdata.ncomb mode=pcdata.mode pmode=pcdata.pmode)
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid __type="str") #{gradeStr}
|
||||
ex(__type="str") #{exStr}
|
||||
skin(__type="str") #{skinStr}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
17
iidx@asphyxia/pug/I00/pcget.pug
Normal file
17
iidx@asphyxia/pug/I00/pcget.pug
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach sflg0=pcdata.sflg0 sflg1=pcdata.sflg1 sflg2=pcdata.sflg2 gno=pcdata.gno sdhd=pcdata.sdhd sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 mcomb=pcdata.mcomb ncomb=pcdata.ncomb mode=pcdata.mode pmode=pcdata.pmode lift_len=pcdata.liflen)
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
ex
|
||||
- for (let e of eArray)
|
||||
e(__type="u32" __count="5") #{e[0]} #{e[1]} #{e[2]} #{e[3]} #{e[4]}
|
||||
skin(__type="u16" __count="12") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} 0 0 0 0
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]}
|
||||
jewel(rate="100")
|
||||
jnum(__type="s64") #{pcdata.jewel_num}
|
||||
bjnum(__type="s32" __count="18") #{pcdata.jewel_bnum[0]} #{pcdata.jewel_bnum[1]} #{pcdata.jewel_bnum[2]} #{pcdata.jewel_bnum[3]} #{pcdata.jewel_bnum[4]} #{pcdata.jewel_bnum[5]} #{pcdata.jewel_bnum[6]} #{pcdata.jewel_bnum[7]} #{pcdata.jewel_bnum[8]} #{pcdata.jewel_bnum[9]} #{pcdata.jewel_bnum[10]} #{pcdata.jewel_bnum[11]} #{pcdata.jewel_bnum[12]} #{pcdata.jewel_bnum[13]} #{pcdata.jewel_bnum[14]} #{pcdata.jewel_bnum[15]} #{pcdata.jewel_bnum[16]} #{pcdata.jewel_bnum[17]}
|
||||
17
iidx@asphyxia/pug/JDJ/pcget.pug
Normal file
17
iidx@asphyxia/pug/JDJ/pcget.pug
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach sflg0=pcdata.sflg0 sflg1=pcdata.sflg1 gno=pcdata.gno timing=pcdata.timing sdhd=pcdata.sdhd sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 mcomb=pcdata.mcomb ncomb=pcdata.ncomb mode=pcdata.mode pmode=pcdata.pmode liflen=pcdata.liflen)
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
ex
|
||||
- for (let e of eArray)
|
||||
e(__type="u32" __count="5") #{e[0]} #{e[1]} #{e[2]} #{e[3]} #{e[4]}
|
||||
skin(__type="u16" __count="12") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} 0 0 0 0
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]}
|
||||
party
|
||||
fnum(__type="s32" __count="24") #{pcdata.party[0]} #{pcdata.party[1]} #{pcdata.party[2]} #{pcdata.party[3]} #{pcdata.party[4]} #{pcdata.party[5]} #{pcdata.party[6]} #{pcdata.party[7]} #{pcdata.party[8]} #{pcdata.party[9]} #{pcdata.party[10]} #{pcdata.party[11]} #{pcdata.party[12]} #{pcdata.party[13]} #{pcdata.party[14]} #{pcdata.party[15]} #{pcdata.party[16]} #{pcdata.party[17]} #{pcdata.party[18]} #{pcdata.party[19]} #{pcdata.party[20]} #{pcdata.party[21]} #{pcdata.party[22]} #{pcdata.party[23]}
|
||||
jubeat(jflg_0="-1" jflg_1="-1" jflg_2="-1" jflg_3="-1")
|
||||
20
iidx@asphyxia/pug/JDZ/pcget.pug
Normal file
20
iidx@asphyxia/pug/JDZ/pcget.pug
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach sflg0=pcdata.sflg0 sflg1=pcdata.sflg1 gno=pcdata.gno timing=pcdata.timing sdhd=pcdata.sdhd sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 mcomb=pcdata.mcomb ncomb=pcdata.ncomb mode=pcdata.mode pmode=pcdata.pmode liflen=pcdata.liflen)
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
ex
|
||||
skin(__type="u16" __count="12") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} 0 0 0 0
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]}
|
||||
lincle(comflg="1" flg1="-1" flg2="-1" flg3="-1" flg4="-1" flg5="-1" flg6="-1" flg7="-1" refcomp="1")
|
||||
reflec(tf="1" br="1" ssc="1" sr="1" wu="1" sg="1" tb="1")
|
||||
jubeat(jflg_0="-1" jflg_1="-1" jflg_2="-1" jflg_3="-1")
|
||||
if event != null
|
||||
tour(pt=event.pt rsv=event.rsv r0=event.r0 r1=event.r1 r2=event.r2 r3=event.r3 r4=event.r4 r5=event.r5 r6=event.r6 r7=event.r7)
|
||||
cf(__type="bin") #{event.cf}
|
||||
pf(__type="bin") #{event.pf}
|
||||
mf(__type="bin") #{event.mf}
|
||||
33
iidx@asphyxia/pug/KDZ/pcget.pug
Normal file
33
iidx@asphyxia/pug/KDZ/pcget.pug
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach sflg0=pcdata.sflg0 sflg1=pcdata.sflg1 help=pcdata.help gno=pcdata.gno timing=pcdata.timing sdhd=pcdata.sdhd sdtype=pcdata.sdtype notes=pcdata.notes pase=pcdata.pase sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 mode=pcdata.mode pmode=pcdata.pmode liflen=pcdata.liflen)
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
ex
|
||||
skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 0 0
|
||||
qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1])
|
||||
ocrs
|
||||
//-weekly(wid="-1" mid="-1")
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]}
|
||||
step(sp_ach=pcdata.st_sp_ach dp_ach=pcdata.st_dp_ach sp_dif=pcdata.st_sp_dif dp_dif=pcdata.st_dp_dif)
|
||||
lincle(comflg="1" flg1="-1" flg2="-1" flg3="-1" flg4="-1" flg5="-1" flg6="-1" flg7="-1")
|
||||
reflec(tf="1" br="1" ssc="1" sr="1" wu="1" sg="1" tb="1")
|
||||
jubeat(point="0" bonus="0" jbonus=pcdata.jpoint open="1")
|
||||
if event != null
|
||||
kingdom(level=event.level exp=event.exp deller=event.deller place=event.place tower=event.tower boss=event.boss combo=event.combo jewel=event.jewel generic=event.generic)
|
||||
cf(__type="bin") #{event.cf}
|
||||
qcf(__type="bin") #{event.qcf}
|
||||
piece(__type="bin") #{event.piece}
|
||||
history
|
||||
type(__type="u8" __count="30") #{pcdata.type[0]} #{pcdata.type[1]} #{pcdata.type[2]} #{pcdata.type[3]} #{pcdata.type[4]} #{pcdata.type[5]} #{pcdata.type[6]} #{pcdata.type[7]} #{pcdata.type[8]} #{pcdata.type[9]} #{pcdata.type[10]} #{pcdata.type[11]} #{pcdata.type[12]} #{pcdata.type[13]} #{pcdata.type[14]} #{pcdata.type[15]} #{pcdata.type[16]} #{pcdata.type[17]} #{pcdata.type[18]} #{pcdata.type[19]} #{pcdata.type[20]} #{pcdata.type[21]} #{pcdata.type[22]} #{pcdata.type[23]} #{pcdata.type[24]} #{pcdata.type[25]} #{pcdata.type[26]} #{pcdata.type[27]} #{pcdata.type[28]} #{pcdata.type[29]}
|
||||
time(__type="time" __count="30") #{pcdata.time[0]} #{pcdata.time[1]} #{pcdata.time[2]} #{pcdata.time[3]} #{pcdata.time[4]} #{pcdata.time[5]} #{pcdata.time[6]} #{pcdata.time[7]} #{pcdata.time[8]} #{pcdata.time[9]} #{pcdata.time[10]} #{pcdata.time[11]} #{pcdata.time[12]} #{pcdata.time[13]} #{pcdata.time[14]} #{pcdata.time[15]} #{pcdata.time[16]} #{pcdata.time[17]} #{pcdata.time[18]} #{pcdata.time[19]} #{pcdata.time[20]} #{pcdata.time[21]} #{pcdata.time[22]} #{pcdata.time[23]} #{pcdata.time[24]} #{pcdata.time[25]} #{pcdata.time[26]} #{pcdata.time[27]} #{pcdata.time[28]} #{pcdata.time[29]}
|
||||
param0(__type="s32" __count="30") #{pcdata.p0[0]} #{pcdata.p0[1]} #{pcdata.p0[2]} #{pcdata.p0[3]} #{pcdata.p0[4]} #{pcdata.p0[5]} #{pcdata.p0[6]} #{pcdata.p0[7]} #{pcdata.p0[8]} #{pcdata.p0[9]} #{pcdata.p0[10]} #{pcdata.p0[11]} #{pcdata.p0[12]} #{pcdata.p0[13]} #{pcdata.p0[14]} #{pcdata.p0[15]} #{pcdata.p0[16]} #{pcdata.p0[17]} #{pcdata.p0[18]} #{pcdata.p0[19]} #{pcdata.p0[20]} #{pcdata.p0[21]} #{pcdata.p0[22]} #{pcdata.p0[23]} #{pcdata.p0[24]} #{pcdata.p0[25]} #{pcdata.p0[26]} #{pcdata.p0[27]} #{pcdata.p0[28]} #{pcdata.p0[29]}
|
||||
param1(__type="s32" __count="30") #{pcdata.p1[0]} #{pcdata.p1[1]} #{pcdata.p1[2]} #{pcdata.p1[3]} #{pcdata.p1[4]} #{pcdata.p1[5]} #{pcdata.p1[6]} #{pcdata.p1[7]} #{pcdata.p1[8]} #{pcdata.p1[9]} #{pcdata.p1[10]} #{pcdata.p1[11]} #{pcdata.p1[12]} #{pcdata.p1[13]} #{pcdata.p1[14]} #{pcdata.p1[15]} #{pcdata.p1[16]} #{pcdata.p1[17]} #{pcdata.p1[18]} #{pcdata.p1[19]} #{pcdata.p1[20]} #{pcdata.p1[21]} #{pcdata.p1[22]} #{pcdata.p1[23]} #{pcdata.p1[24]} #{pcdata.p1[25]} #{pcdata.p1[26]} #{pcdata.p1[27]} #{pcdata.p1[28]} #{pcdata.p1[29]}
|
||||
param2(__type="s32" __count="30") #{pcdata.p2[0]} #{pcdata.p2[1]} #{pcdata.p2[2]} #{pcdata.p2[3]} #{pcdata.p2[4]} #{pcdata.p2[5]} #{pcdata.p2[6]} #{pcdata.p2[7]} #{pcdata.p2[8]} #{pcdata.p2[9]} #{pcdata.p2[10]} #{pcdata.p2[11]} #{pcdata.p2[12]} #{pcdata.p2[13]} #{pcdata.p2[14]} #{pcdata.p2[15]} #{pcdata.p2[16]} #{pcdata.p2[17]} #{pcdata.p2[18]} #{pcdata.p2[19]} #{pcdata.p2[20]} #{pcdata.p2[21]} #{pcdata.p2[22]} #{pcdata.p2[23]} #{pcdata.p2[24]} #{pcdata.p2[25]} #{pcdata.p2[26]} #{pcdata.p2[27]} #{pcdata.p2[28]} #{pcdata.p2[29]}
|
||||
param3(__type="s32" __count="30") #{pcdata.p3[0]} #{pcdata.p3[1]} #{pcdata.p3[2]} #{pcdata.p3[3]} #{pcdata.p3[4]} #{pcdata.p3[5]} #{pcdata.p3[6]} #{pcdata.p3[7]} #{pcdata.p3[8]} #{pcdata.p3[9]} #{pcdata.p3[10]} #{pcdata.p3[11]} #{pcdata.p3[12]} #{pcdata.p3[13]} #{pcdata.p3[14]} #{pcdata.p3[15]} #{pcdata.p3[16]} #{pcdata.p3[17]} #{pcdata.p3[18]} #{pcdata.p3[19]} #{pcdata.p3[20]} #{pcdata.p3[21]} #{pcdata.p3[22]} #{pcdata.p3[23]} #{pcdata.p3[24]} #{pcdata.p3[25]} #{pcdata.p3[26]} #{pcdata.p3[27]} #{pcdata.p3[28]} #{pcdata.p3[29]}
|
||||
param4(__type="s32" __count="30") #{pcdata.p4[0]} #{pcdata.p4[1]} #{pcdata.p4[2]} #{pcdata.p4[3]} #{pcdata.p4[4]} #{pcdata.p4[5]} #{pcdata.p4[6]} #{pcdata.p4[7]} #{pcdata.p4[8]} #{pcdata.p4[9]} #{pcdata.p4[10]} #{pcdata.p4[11]} #{pcdata.p4[12]} #{pcdata.p4[13]} #{pcdata.p4[14]} #{pcdata.p4[15]} #{pcdata.p4[16]} #{pcdata.p4[17]} #{pcdata.p4[18]} #{pcdata.p4[19]} #{pcdata.p4[20]} #{pcdata.p4[21]} #{pcdata.p4[22]} #{pcdata.p4[23]} #{pcdata.p4[24]} #{pcdata.p4[25]} #{pcdata.p4[26]} #{pcdata.p4[27]} #{pcdata.p4[28]} #{pcdata.p4[29]}
|
||||
56
iidx@asphyxia/pug/LDJ/21pcget.pug
Normal file
56
iidx@asphyxia/pug/LDJ/21pcget.pug
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
IIDX21pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach mode=pcdata.mode pmode=pcdata.pmode rtype=pcdata.rtype sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 gpos=pcdata.gpos s_sorttype=pcdata.s_sorttype d_sorttype=pcdata.d_sorttype s_pace=pcdata.s_pace d_pace=pcdata.d_pace s_gno=pcdata.s_gno d_gno=pcdata.d_gno s_gtype=pcdata.s_gtype d_gtype=pcdata.d_gtype s_sdlen=pcdata.s_sdlen d_sdlen=pcdata.d_sdlen s_sdtype=pcdata.s_sdtype d_sdtype=pcdata.d_sdtype s_timing=pcdata.s_timing d_timing=pcdata.d_timing s_notes=pcdata.s_notes d_notes=pcdata.d_notes s_judge=pcdata.s_judge d_judge=pcdata.d_judge s_judgeAdj=pcdata.s_judgeAdj d_judgeAdj=pcdata.d_judgeAdj s_hispeed=pcdata.s_hispeed d_hispeed=pcdata.d_hispeed s_liflen=pcdata.s_liflen d_liflen=pcdata.d_liflen s_disp_judge=pcdata.s_disp_judge d_disp_judge=pcdata.d_disp_judge s_opstyle=pcdata.s_opstyle d_opstyle=pcdata.d_opstyle)
|
||||
spdp_rival(flg="-1")
|
||||
bind_eaappli
|
||||
secret
|
||||
flg1(__type="s64" __count="2") -1 -1
|
||||
flg2(__type="s64" __count="2") -1 -1
|
||||
flg3(__type="s64" __count="2") -1 -1
|
||||
if pcdata.sp_mlist != null
|
||||
favorite
|
||||
sp_mlist(__type="bin") #{pcdata.sp_mlist}
|
||||
sp_clist(__type="bin") #{pcdata.sp_clist}
|
||||
dp_mlist(__type="bin") #{pcdata.dp_mlist}
|
||||
dp_clist(__type="bin") #{pcdata.dp_clist}
|
||||
qpro_secret
|
||||
head(__type="s64" __count="3") -1 -1 -1
|
||||
hair(__type="s64" __count="3") -1 -1 -1
|
||||
face(__type="s64" __count="3") -1 -1 -1
|
||||
body(__type="s64" __count="3") -1 -1 -1
|
||||
hand(__type="s64" __count="3") -1 -1 -1
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 0 0
|
||||
qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
stepdata(step_sach=rd.pcdata[4] step_dach=rd.pcdata[5])
|
||||
qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1])
|
||||
shop(name=shop_data.opname)
|
||||
join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname)
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
if pcdata.st_album != null
|
||||
step(damage=pcdata.st_damage defeat=pcdata.st_defeat progress=pcdata.st_progress round=pcdata.st_round sp_mission=pcdata.st_sp_mission dp_mission=pcdata.st_dp_mission sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay last_select=pcdata.st_last_select)
|
||||
album(__type="bin") #{pcdata.st_album}
|
||||
//-step_assist(iidx_id iidx_id_str name hair head face body hand)
|
||||
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]}
|
||||
if link5 != null
|
||||
link5(qpro=link5.qpro glass=link5.glass treasure="0" beautiful=link5.beautiful quaver=link5.quaver castle=link5.castle flip=link5.flip titans=link5.titans exusia=link5.exusia waxing=link5.waxing sampling=link5.sampling beachside=link5.beachside cuvelia=link5.cuvelia reunion=link5.reunion bad=link5.bad turii=link5.turii anisakis=link5.anisakis second=link5.second whydidyou=link5.whydidyou china=link5.china fallen=link5.fallen broken=link5.broken summer=link5.summer sakura=link5.sakura wuv=link5.wuv survival=link5.survival thunder=link5.thunder qproflg="0" glassflg="0" reflec_data="0")
|
||||
//-cafe(food pastry rainbow beastie astraia beachimp holysnow trueblue ledvsscu service is_first)
|
||||
gakuen(music_list="-1")
|
||||
baseball(music_list="-1")
|
||||
if tricolettepark != null
|
||||
tricolettepark(open_music=tricolettepark.open_music boss0_damage=tricolettepark.boss0_damage boss1_damage=tricolettepark.boss1_damage boss2_damage=tricolettepark.boss2_damage boss3_damage=tricolettepark.boss3_damage boss0_stun=tricolettepark.boss0_stun boss1_stun=tricolettepark.boss1_stun boss2_stun=tricolettepark.boss2_stun boss3_stun=tricolettepark.boss3_stun magic_gauge="0" party="0" is_union="0" attack_rate="1")
|
||||
pyramid(music_list="-1" item_list="-1" statue_0="0" statue_1="0" statue_2="0")
|
||||
deller(deller=pcdata.deller rate="1")
|
||||
orb_data(rest_orb=pcdata.orb)
|
||||
if boss1 != null
|
||||
boss1(stamina=boss1.stamina attack=boss1.attack item_flg=boss1.item_flg item_flg2=boss1.item_flg2 pick=boss1.pick row0=boss1.row0 row1=boss1.row1 row2=boss1.row2 row3=boss1.row3 column0=boss1.column0 column1=boss1.column1 column2=boss1.column2 column3=boss1.column3 map=boss1.map job=boss1.job general=boss1.general battle=boss1.battle boss0_n=boss1.boss0_n boss0_h=boss1.boss0_h boss0_a=boss1.boss0_a boss1_n=boss1.boss1_n boss1_h=boss1.boss1_h boss1_a=boss1.boss1_a boss2_n=boss1.boss2_n boss2_h=boss1.boss2_h boss2_a=boss1.boss2_a item1="0" item2="0" item3="0" boss_scene=boss1.boss_scene boss0_damage=boss1.boss0_damage boss1_damage=boss1.boss1_damage boss2_damage=boss1.boss2_damage boss3_damage=boss1.boss3_damage boss4_damage=boss1.boss4_damage boss5_damage=boss1.boss5_damage boss6_damage=boss1.boss6_damage)
|
||||
durability(__type="bin") #{boss1.durability}
|
||||
level(__type="s32" __count="28") #{boss1.level[0]} #{boss1.level[1]} #{boss1.level[2]} #{boss1.level[3]} #{boss1.level[4]} #{boss1.level[5]} #{boss1.level[6]}
|
||||
//-boss1_phase4(map_clear_flg)
|
||||
new_durability
|
||||
//-superstar(achieve_flg)
|
||||
67
iidx@asphyxia/pug/LDJ/22pcget.pug
Normal file
67
iidx@asphyxia/pug/LDJ/22pcget.pug
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
IIDX22pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach mode=pcdata.mode pmode=pcdata.pmode rtype=pcdata.rtype sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 gpos=pcdata.gpos s_sorttype=pcdata.s_sorttype d_sorttype=pcdata.d_sorttype s_pace=pcdata.s_pace d_pace=pcdata.d_pace s_gno=pcdata.s_gno d_gno=pcdata.d_gno s_gtype=pcdata.s_gtype d_gtype=pcdata.d_gtype s_sdlen=pcdata.s_sdlen d_sdlen=pcdata.d_sdlen s_sdtype=pcdata.s_sdtype d_sdtype=pcdata.d_sdtype s_timing=pcdata.s_timing d_timing=pcdata.d_timing s_notes=pcdata.s_notes d_notes=pcdata.d_notes s_judge=pcdata.s_judge d_judge=pcdata.d_judge s_judgeAdj=pcdata.s_judgeAdj d_judgeAdj=pcdata.d_judgeAdj s_hispeed=pcdata.s_hispeed d_hispeed=pcdata.d_hispeed s_liflen=pcdata.s_liflen d_liflen=pcdata.d_liflen s_disp_judge=pcdata.s_disp_judge d_disp_judge=pcdata.d_disp_judge s_opstyle=pcdata.s_opstyle d_opstyle=pcdata.d_opstyle s_exscore=pcdata.s_exscore d_exscore=pcdata.d_exscore s_largejudge=pcdata.s_largejudge d_largejudge=pcdata.d_largejudge)
|
||||
spdp_rival(flg="-1")
|
||||
bind_eaappli
|
||||
secret
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
flg3(__type="s64" __count="3") -1 -1 -1
|
||||
if pcdata.sp_mlist != null
|
||||
favorite
|
||||
sp_mlist(__type="bin") #{pcdata.sp_mlist}
|
||||
sp_clist(__type="bin") #{pcdata.sp_clist}
|
||||
dp_mlist(__type="bin") #{pcdata.dp_mlist}
|
||||
dp_clist(__type="bin") #{pcdata.dp_clist}
|
||||
qpro_secret
|
||||
head(__type="s64" __count="4") -1 -1 -1 -1
|
||||
hair(__type="s64" __count="4") -1 -1 -1 -1
|
||||
face(__type="s64" __count="4") -1 -1 -1 -1
|
||||
body(__type="s64" __count="4") -1 -1 -1 -1
|
||||
hand(__type="s64" __count="4") -1 -1 -1 -1
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 0 0
|
||||
qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
stepdata(step_sach=rd.pcdata[4] step_dach=rd.pcdata[5])
|
||||
qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1])
|
||||
shop(name=shop_data.opname)
|
||||
join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname)
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
if pcdata.st_album != null
|
||||
step(damage=pcdata.st_damage defeat=pcdata.st_defeat progress=pcdata.st_progress round=pcdata.st_round sp_mission=pcdata.st_sp_mission dp_mission=pcdata.st_dp_mission sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay age_list=pcdata.st_age_list is_secret=pcdata.st_is_secret is_present=pcdata.st_is_present is_future=pcdata.st_is_future)
|
||||
album(__type="bin") #{pcdata.st_album}
|
||||
//-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)
|
||||
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)
|
||||
- for (let evt of qpronicle_chord_sub)
|
||||
patona_data(patona_no=evt.patona_id level=evt.level exp=evt.exp affection=evt.affection dissatisfaction=evt.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=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)
|
||||
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]}
|
||||
old_linked_event(gakuen_list="-1" baseball_list="-1" tricolette_list="-1" cafedetran_list="-1")
|
||||
pyramid(music_list="-1" item_list="-1" statue_0="0" statue_1="0" statue_2="0")
|
||||
reflec_collabo(collabo_phase="2" phase1_iidx_play="10" phase2_iidx_play="10" phase1_reflec_play="10" phase2_reflec_play="10" phase1_music_list="-1" phase2_music_list="-1" phase1_iidx_item="-1" phase2_iidx_item="-1" phase1_reflec_item="-1" phase2_reflec_item="-1")
|
||||
destiny_catharsis(music_bit="-1")
|
||||
bemani_summer_collabo(music_bit="-1")
|
||||
deller(deller=pcdata.deller rate="1")
|
||||
orb_data(rest_orb=pcdata.orb)
|
||||
time_sandglass(item_num="10")
|
||||
present_time_sandglass(item_num="10")
|
||||
sound_holic(music_list="-1" announce_list="-1")
|
||||
cc_collabo_music(music_list="-1")
|
||||
cc_collabo_data(customize_list="-1" new_get_customize="1" new_open_music="1" new_consume_drink="1")
|
||||
beatstream_collabo(music_list="-1")
|
||||
konami_stytle
|
||||
is_skip(__type="bool") 1
|
||||
floor_infection(music_list="-1")
|
||||
64
iidx@asphyxia/pug/LDJ/23pcget.pug
Normal file
64
iidx@asphyxia/pug/LDJ/23pcget.pug
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
IIDX23pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach mode=pcdata.mode pmode=pcdata.pmode rtype=pcdata.rtype sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 gpos=pcdata.gpos s_sorttype=pcdata.s_sorttype d_sorttype=pcdata.d_sorttype s_pace=pcdata.s_pace d_pace=pcdata.d_pace s_gno=pcdata.s_gno d_gno=pcdata.d_gno s_gtype=pcdata.s_gtype d_gtype=pcdata.d_gtype s_sdlen=pcdata.s_sdlen d_sdlen=pcdata.d_sdlen s_sdtype=pcdata.s_sdtype d_sdtype=pcdata.d_sdtype s_timing=pcdata.s_timing d_timing=pcdata.d_timing s_notes=pcdata.s_notes d_notes=pcdata.d_notes s_judge=pcdata.s_judge d_judge=pcdata.d_judge s_judgeAdj=pcdata.s_judgeAdj d_judgeAdj=pcdata.d_judgeAdj s_hispeed=pcdata.s_hispeed d_hispeed=pcdata.d_hispeed s_liflen=pcdata.s_liflen d_liflen=pcdata.d_liflen s_disp_judge=pcdata.s_disp_judge d_disp_judge=pcdata.d_disp_judge s_opstyle=pcdata.s_opstyle d_opstyle=pcdata.d_opstyle s_exscore=pcdata.s_exscore d_exscore=pcdata.d_exscore s_largejudge=pcdata.s_largejudge d_largejudge=pcdata.d_largejudge)
|
||||
spdp_rival(flg="-1")
|
||||
bind_eaappli
|
||||
ea_premium_course
|
||||
secret
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
flg3(__type="s64" __count="3") -1 -1 -1
|
||||
if pcdata.sp_mlist != null
|
||||
favorite
|
||||
sp_mlist(__type="bin") #{pcdata.sp_mlist}
|
||||
sp_clist(__type="bin") #{pcdata.sp_clist}
|
||||
dp_mlist(__type="bin") #{pcdata.dp_mlist}
|
||||
dp_clist(__type="bin") #{pcdata.dp_clist}
|
||||
- for (let ef of efArray)
|
||||
extra_favorite(folder_id=ef.folder_id)
|
||||
sp_mlist(__type="bin") #{ef.sp_mlist}
|
||||
sp_clist(__type="bin") #{ef.sp_clist}
|
||||
dp_mlist(__type="bin") #{ef.dp_mlist}
|
||||
dp_clist(__type="bin") #{ef.dp_clist}
|
||||
qpro_secret
|
||||
head(__type="s64" __count="4") -1 -1 -1 -1
|
||||
hair(__type="s64" __count="4") -1 -1 -1 -1
|
||||
face(__type="s64" __count="4") -1 -1 -1 -1
|
||||
body(__type="s64" __count="4") -1 -1 -1 -1
|
||||
hand(__type="s64" __count="4") -1 -1 -1 -1
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 0 0
|
||||
qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
stepdata(step_sach=rd.pcdata[4] step_dach=rd.pcdata[5])
|
||||
qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1])
|
||||
shop(name=shop_data.opname)
|
||||
join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname)
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
if pcdata.st_tokimeki != null
|
||||
step(friendship=pcdata.st_friendship progress=pcdata.st_progress station_clear=pcdata.st_station_clear station_play=pcdata.st_station_play sp_mission=pcdata.st_sp_mission dp_mission=pcdata.st_dp_mission sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay mission_gauge=pcdata.st_mission_gauge)
|
||||
tokimeki(__type="bin") #{pcdata.st_tokimeki}
|
||||
//-step_assist(iidx_id iidx_id_str name hair head face body hand)
|
||||
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]}
|
||||
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)
|
||||
- for (let evt of mystery_line_sub)
|
||||
event2_area_data(area_no=evt.area_no area_play=evt.area_play_num normal_point=evt.normal_point hyper_point=evt.hyper_point another_point=evt.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")
|
||||
deller(deller=pcdata.deller rate="1")
|
||||
orb_data(rest_orb=pcdata.orb)
|
||||
rainbow_ticket(item_num="10")
|
||||
beatstream_collabo(music_list="-1")
|
||||
floor_infection(music_list="-1")
|
||||
reflec_volzza_collabo(iidx_music_list="-1" reflec_music_list="-1")
|
||||
70
iidx@asphyxia/pug/LDJ/24pcget.pug
Normal file
70
iidx@asphyxia/pug/LDJ/24pcget.pug
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
IIDX24pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach mode=pcdata.mode pmode=pcdata.pmode rtype=pcdata.rtype sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 gpos=pcdata.gpos s_sorttype=pcdata.s_sorttype d_sorttype=pcdata.d_sorttype s_pace=pcdata.s_pace d_pace=pcdata.d_pace s_gno=pcdata.s_gno d_gno=pcdata.d_gno s_gtype=pcdata.s_gtype d_gtype=pcdata.d_gtype s_sdlen=pcdata.s_sdlen d_sdlen=pcdata.d_sdlen s_sdtype=pcdata.s_sdtype d_sdtype=pcdata.d_sdtype s_timing=pcdata.s_timing d_timing=pcdata.d_timing s_notes=pcdata.s_notes d_notes=pcdata.d_notes s_judge=pcdata.s_judge d_judge=pcdata.d_judge s_judgeAdj=pcdata.s_judgeAdj d_judgeAdj=pcdata.d_judgeAdj s_hispeed=pcdata.s_hispeed d_hispeed=pcdata.d_hispeed s_liflen=pcdata.s_liflen d_liflen=pcdata.d_liflen s_disp_judge=pcdata.s_disp_judge d_disp_judge=pcdata.d_disp_judge s_opstyle=pcdata.s_opstyle d_opstyle=pcdata.d_opstyle s_exscore=pcdata.s_exscore d_exscore=pcdata.d_exscore s_graph_score=pcdata.s_graph_score d_graph_score=pcdata.d_graph_score)
|
||||
spdp_rival(flg="0")
|
||||
bind_eaappli
|
||||
ea_premium_course
|
||||
leggendaria_open
|
||||
secret
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
flg3(__type="s64" __count="3") -1 -1 -1
|
||||
if pcdata.sp_mlist != null
|
||||
favorite
|
||||
sp_mlist(__type="bin") #{pcdata.sp_mlist}
|
||||
sp_clist(__type="bin") #{pcdata.sp_clist}
|
||||
dp_mlist(__type="bin") #{pcdata.dp_mlist}
|
||||
dp_clist(__type="bin") #{pcdata.dp_clist}
|
||||
- for (let ef of efArray)
|
||||
extra_favorite(folder_id=ef.folder_id)
|
||||
sp_mlist(__type="bin") #{ef.sp_mlist}
|
||||
sp_clist(__type="bin") #{ef.sp_clist}
|
||||
dp_mlist(__type="bin") #{ef.dp_mlist}
|
||||
dp_clist(__type="bin") #{ef.dp_clist}
|
||||
qpro_secret
|
||||
head(__type="s64" __count="4") -1 -1 -1 -1
|
||||
hair(__type="s64" __count="4") -1 -1 -1 -1
|
||||
face(__type="s64" __count="4") -1 -1 -1 -1
|
||||
body(__type="s64" __count="4") -1 -1 -1 -1
|
||||
hand(__type="s64" __count="4") -1 -1 -1 -1
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
skin(__type="s16" __count="17") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 0 0 0 0 0
|
||||
qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
stepdata(step_sach=rd.pcdata[4] step_dach=rd.pcdata[5])
|
||||
qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1])
|
||||
shop(name=shop_data.opname)
|
||||
is_robo(__type="bool") 0
|
||||
ninja_rank(style="0")
|
||||
rank(__type="s32" __count="13") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]}
|
||||
point(__type="s32" __count="13") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]}
|
||||
ninja_rank(style="1")
|
||||
rank(__type="s32" __count="13") #{pcdata.dr_dprank[0]} #{pcdata.dr_dprank[1]} #{pcdata.dr_dprank[2]} #{pcdata.dr_dprank[3]} #{pcdata.dr_dprank[4]} #{pcdata.dr_dprank[5]} #{pcdata.dr_dprank[6]} #{pcdata.dr_dprank[7]} #{pcdata.dr_dprank[8]} #{pcdata.dr_dprank[9]} #{pcdata.dr_dprank[10]} #{pcdata.dr_dprank[11]} #{pcdata.dr_dprank[12]}
|
||||
point(__type="s32" __count="13") #{pcdata.dr_dppoint[0]} #{pcdata.dr_dppoint[1]} #{pcdata.dr_dppoint[2]} #{pcdata.dr_dppoint[3]} #{pcdata.dr_dppoint[4]} #{pcdata.dr_dppoint[5]} #{pcdata.dr_dppoint[6]} #{pcdata.dr_dppoint[7]} #{pcdata.dr_dppoint[8]} #{pcdata.dr_dppoint[9]} #{pcdata.dr_dppoint[10]} #{pcdata.dr_dppoint[11]} #{pcdata.dr_dppoint[12]}
|
||||
if siege_sinobuz != null
|
||||
event1(last_select_map=siege_sinobuz.last_select_map hold_rice=siege_sinobuz.hold_rice tax_rice=siege_sinobuz.tax_rice tips_list=siege_sinobuz.tipls_read)
|
||||
- for (let evt of siege_sinobuz_sub)
|
||||
map_data(map_id=evt.map_id play_num=evt.play_num progress=evt.progress battle_point=evt.battle_point rice_point=evt.rice_point is_clear=evt.is_clear)
|
||||
ninjyutsu(__type="bin") #{evt.ninjyutsu}
|
||||
map_card_damage(__type="bin") #{evt.card_damage}
|
||||
map_card_clear(__type="bin") #{evt.card_clear}
|
||||
if ninja_shichikyoden != null
|
||||
event2(play_num=ninja_shichikyoden.play_num chakra_point=ninja_shichikyoden.chakra_point last_select_ryuha=ninja_shichikyoden.last_select_ryuha)
|
||||
last_select_dojo(__type="bin") #{ninja_shichikyoden.last_select_dojo}
|
||||
enemy_damage(__type="bin") #{ninja_shichikyoden.enemy_damage}
|
||||
//-onemore_data(defeat_0 defeat_1 defeat_2 defeat_3 defeat_4 defeat_5 defeat_6 challenge_num_n challenge_num_h challenge_num_a)
|
||||
join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname)
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
step(enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress enemy_defeat_flg=pcdata.st_enemy_defeat_flg sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay)
|
||||
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]}
|
||||
deller(deller=pcdata.deller rate="1")
|
||||
orb_data(rest_orb=pcdata.orb)
|
||||
pay_per_use(item_num="5")
|
||||
present_pay_per_use(item_num="5")
|
||||
old_linkage_secret_flg(bemani_diary="-1" floor_infection="-1" beatstream="-1" destiny_catharsis="-1" reflec_gw="-1" link_track="-1" qpronicle_love="-1")
|
||||
nostalgia_open
|
||||
konami_stytle(skip_flg="0")
|
||||
70
iidx@asphyxia/pug/LDJ/25pcget.pug
Normal file
70
iidx@asphyxia/pug/LDJ/25pcget.pug
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
IIDX25pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach mode=pcdata.mode pmode=pcdata.pmode rtype=pcdata.rtype sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 gpos=pcdata.gpos s_sorttype=pcdata.s_sorttype d_sorttype=pcdata.d_sorttype s_pace=pcdata.s_pace d_pace=pcdata.d_pace s_gno=pcdata.s_gno d_gno=pcdata.d_gno s_gtype=pcdata.s_gtype d_gtype=pcdata.d_gtype s_sdlen=pcdata.s_sdlen d_sdlen=pcdata.d_sdlen s_sdtype=pcdata.s_sdtype d_sdtype=pcdata.d_sdtype s_timing=pcdata.s_timing d_timing=pcdata.d_timing s_notes=pcdata.s_notes d_notes=pcdata.d_notes s_judge=pcdata.s_judge d_judge=pcdata.d_judge s_judgeAdj=pcdata.s_judgeAdj d_judgeAdj=pcdata.d_judgeAdj s_hispeed=pcdata.s_hispeed d_hispeed=pcdata.d_hispeed s_liflen=pcdata.s_liflen d_liflen=pcdata.d_liflen s_disp_judge=pcdata.s_disp_judge d_disp_judge=pcdata.d_disp_judge s_opstyle=pcdata.s_opstyle d_opstyle=pcdata.d_opstyle s_exscore=pcdata.s_exscore d_exscore=pcdata.d_exscore s_graph_score=pcdata.s_graph_score d_graph_score=pcdata.d_graph_score s_auto_scrach=pcdata.s_auto_scrach d_auto_scrach=pcdata.d_auto_scrach s_gauge_disp=pcdata.s_gauge_disp d_gauge_disp=pcdata.d_gauge_disp s_lane_brignt=pcdata.s_lane_brignt d_lane_brignt=pcdata.d_lane_brignt s_camera_layout=pcdata.s_camera_layout d_camera_layout=pcdata.d_camera_layout)
|
||||
spdp_rival(flg="0")
|
||||
bind_eaappli
|
||||
ea_premium_course
|
||||
leggendaria_open
|
||||
secret
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
flg3(__type="s64" __count="3") -1 -1 -1
|
||||
if pcdata.sp_mlist != null
|
||||
favorite
|
||||
sp_mlist(__type="bin") #{pcdata.sp_mlist}
|
||||
sp_clist(__type="bin") #{pcdata.sp_clist}
|
||||
dp_mlist(__type="bin") #{pcdata.dp_mlist}
|
||||
dp_clist(__type="bin") #{pcdata.dp_clist}
|
||||
- for (let ef of efArray)
|
||||
extra_favorite(folder_id=ef.folder_id)
|
||||
sp_mlist(__type="bin") #{ef.sp_mlist}
|
||||
sp_clist(__type="bin") #{ef.sp_clist}
|
||||
dp_mlist(__type="bin") #{ef.dp_mlist}
|
||||
dp_clist(__type="bin") #{ef.dp_clist}
|
||||
qpro_secret
|
||||
head(__type="s64" __count="4") -1 -1 -1 -1
|
||||
hair(__type="s64" __count="4") -1 -1 -1 -1
|
||||
face(__type="s64" __count="4") -1 -1 -1 -1
|
||||
body(__type="s64" __count="4") -1 -1 -1 -1
|
||||
hand(__type="s64" __count="4") -1 -1 -1 -1
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 0 0
|
||||
qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
stepdata(step_sach=rd.pcdata[4] step_dach=rd.pcdata[5])
|
||||
qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1])
|
||||
shop(name=shop_data.opname)
|
||||
is_robo(__type="bool") 0
|
||||
dj_rank(style="0")
|
||||
rank(__type="s32" __count="15") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]} #{pcdata.dr_sprank[13]} #{pcdata.dr_sprank[14]}
|
||||
point(__type="s32" __count="15") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]} #{pcdata.dr_sppoint[13]} #{pcdata.dr_sppoint[14]}
|
||||
dj_rank(style="1")
|
||||
rank(__type="s32" __count="15") #{pcdata.dr_dprank[0]} #{pcdata.dr_dprank[1]} #{pcdata.dr_dprank[2]} #{pcdata.dr_dprank[3]} #{pcdata.dr_dprank[4]} #{pcdata.dr_dprank[5]} #{pcdata.dr_dprank[6]} #{pcdata.dr_dprank[7]} #{pcdata.dr_dprank[8]} #{pcdata.dr_dprank[9]} #{pcdata.dr_dprank[10]} #{pcdata.dr_dprank[11]} #{pcdata.dr_dprank[12]} #{pcdata.dr_dprank[13]} #{pcdata.dr_dprank[14]}
|
||||
point(__type="s32" __count="15") #{pcdata.dr_dppoint[0]} #{pcdata.dr_dppoint[1]} #{pcdata.dr_dppoint[2]} #{pcdata.dr_dppoint[3]} #{pcdata.dr_dppoint[4]} #{pcdata.dr_dppoint[5]} #{pcdata.dr_dppoint[6]} #{pcdata.dr_dppoint[7]} #{pcdata.dr_dppoint[8]} #{pcdata.dr_dppoint[9]} #{pcdata.dr_dppoint[10]} #{pcdata.dr_dppoint[11]} #{pcdata.dr_dppoint[12]} #{pcdata.dr_dppoint[13]} #{pcdata.dr_dppoint[14]}
|
||||
//-onemore_event(defeat_0-5 channelge_num_1-3_n-a)
|
||||
join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname)
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
step(enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress point=pcdata.st_point enemy_defeat_flg=pcdata.st_enemy_defeat_flg sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay)
|
||||
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]}
|
||||
deller(deller=pcdata.deller rate="1")
|
||||
orb_data(rest_orb=pcdata.orb)
|
||||
pay_per_use(item_num="5")
|
||||
present_pay_per_use(item_num="5")
|
||||
old_linkage_secret_flg(floor_infection="-1" link_track="-1")
|
||||
nostalgia_open
|
||||
leggendaria_semi_open(flg="-1")
|
||||
konami_stytle(skip_flg="0")
|
||||
if rush_cannonracer != null
|
||||
event1(tuneup_point=rush_cannonracer.tuneup_point body_parts_list=rush_cannonracer.body_parts_list engine_parts_list=rush_cannonracer.engine_parts_list tire_parts_list=rush_cannonracer.tire_parts_list body_equip_parts=rush_cannonracer.body_equip_parts engine_equip_parts=rush_cannonracer.engine_equip_parts tire_equip_parts=rush_cannonracer.tire_equip_parts gift_point="0")
|
||||
- for (let evt of rush_cannonracer_sub)
|
||||
map_data(map_id=evt.map_id play_num=evt.play_num progress=evt.progress boost_fuel=evt.boost_fuel is_clear=evt.is_clear rare1_appearance=evt.rare1_appearance rare2_appearance=evt.rare2_appearance rare3_appearance=evt.rare3_appearance rare4_appearance=evt.rare4_appearance rare5_appearance=evt.rare5_appearance rare6_appearance=evt.rare6_appearance rare_defeat_list=evt.rare_defeat_list)
|
||||
arena_data(play_num="2" play_num_dp="1" play_num_sp="1")
|
||||
achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="0" rating_value="20")
|
||||
achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="1" rating_value="20")
|
||||
cube_data(cube="0" season_id="0")
|
||||
floor_infection(music_list="-1")
|
||||
qma_collabo(music_list="-1")
|
||||
83
iidx@asphyxia/pug/LDJ/26pcget.pug
Normal file
83
iidx@asphyxia/pug/LDJ/26pcget.pug
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
IIDX26pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach mode=pcdata.mode pmode=pcdata.pmode rtype=pcdata.rtype sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 gpos=pcdata.gpos s_sorttype=pcdata.s_sorttype d_sorttype=pcdata.d_sorttype s_pace=pcdata.s_pace d_pace=pcdata.d_pace s_gno=pcdata.s_gno d_gno=pcdata.d_gno s_gtype=pcdata.s_gtype d_gtype=pcdata.d_gtype s_sdlen=pcdata.s_sdlen d_sdlen=pcdata.d_sdlen s_sdtype=pcdata.s_sdtype d_sdtype=pcdata.d_sdtype s_timing=pcdata.s_timing d_timing=pcdata.d_timing s_notes=pcdata.s_notes d_notes=pcdata.d_notes s_judge=pcdata.s_judge d_judge=pcdata.d_judge s_judgeAdj=pcdata.s_judgeAdj d_judgeAdj=pcdata.d_judgeAdj s_hispeed=pcdata.s_hispeed d_hispeed=pcdata.d_hispeed s_liflen=pcdata.s_liflen d_liflen=pcdata.d_liflen s_disp_judge=pcdata.s_disp_judge d_disp_judge=pcdata.d_disp_judge s_opstyle=pcdata.s_opstyle d_opstyle=pcdata.d_opstyle s_graph_score=pcdata.s_graph_score d_graph_score=pcdata.d_graph_score s_auto_scrach=pcdata.s_auto_scrach d_auto_scrach=pcdata.d_auto_scrach s_gauge_disp=pcdata.s_gauge_disp d_gauge_disp=pcdata.d_gauge_disp s_lane_brignt=pcdata.s_lane_brignt d_lane_brignt=pcdata.d_lane_brignt s_camera_layout=pcdata.s_camera_layout d_camera_layout=pcdata.d_camera_layout s_ghost_score=pcdata.s_ghost_score d_ghost_score=pcdata.d_ghost_score s_tsujigiri_disp=pcdata.s_tsujigiri_disp d_tsujigiri_disp=pcdata.d_tsujigiri_disp)
|
||||
bind_eaappli
|
||||
ea_premium_course
|
||||
enable_qr_reward
|
||||
leggendaria_open
|
||||
secret
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
flg3(__type="s64" __count="3") -1 -1 -1
|
||||
flg4(__type="s64" __count="3") -1 -1 -1
|
||||
if pcdata.sp_mlist != null
|
||||
favorite
|
||||
sp_mlist(__type="bin") #{pcdata.sp_mlist}
|
||||
sp_clist(__type="bin") #{pcdata.sp_clist}
|
||||
dp_mlist(__type="bin") #{pcdata.dp_mlist}
|
||||
dp_clist(__type="bin") #{pcdata.dp_clist}
|
||||
qpro_secret
|
||||
head(__type="s64" __count="4") -1 -1 -1 -1
|
||||
hair(__type="s64" __count="4") -1 -1 -1 -1
|
||||
face(__type="s64" __count="4") -1 -1 -1 -1
|
||||
body(__type="s64" __count="4") -1 -1 -1 -1
|
||||
hand(__type="s64" __count="4") -1 -1 -1 -1
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 0 0
|
||||
qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
stepdata(step_sach=rd.pcdata[4] step_dach=rd.pcdata[5])
|
||||
qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1])
|
||||
shop(name=shop_data.opname)
|
||||
is_robo(__type="bool") 0
|
||||
dj_rank(style="0")
|
||||
rank(__type="s32" __count="15") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]} #{pcdata.dr_sprank[13]} #{pcdata.dr_sprank[14]}
|
||||
point(__type="s32" __count="15") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]} #{pcdata.dr_sppoint[13]} #{pcdata.dr_sppoint[14]}
|
||||
dj_rank(style="1")
|
||||
rank(__type="s32" __count="15") #{pcdata.dr_dprank[0]} #{pcdata.dr_dprank[1]} #{pcdata.dr_dprank[2]} #{pcdata.dr_dprank[3]} #{pcdata.dr_dprank[4]} #{pcdata.dr_dprank[5]} #{pcdata.dr_dprank[6]} #{pcdata.dr_dprank[7]} #{pcdata.dr_dprank[8]} #{pcdata.dr_dprank[9]} #{pcdata.dr_dprank[10]} #{pcdata.dr_dprank[11]} #{pcdata.dr_dprank[12]} #{pcdata.dr_dprank[13]} #{pcdata.dr_dprank[14]}
|
||||
point(__type="s32" __count="15") #{pcdata.dr_dppoint[0]} #{pcdata.dr_dppoint[1]} #{pcdata.dr_dppoint[2]} #{pcdata.dr_dppoint[3]} #{pcdata.dr_dppoint[4]} #{pcdata.dr_dppoint[5]} #{pcdata.dr_dppoint[6]} #{pcdata.dr_dppoint[7]} #{pcdata.dr_dppoint[8]} #{pcdata.dr_dppoint[9]} #{pcdata.dr_dppoint[10]} #{pcdata.dr_dppoint[11]} #{pcdata.dr_dppoint[12]} #{pcdata.dr_dppoint[13]} #{pcdata.dr_dppoint[14]}
|
||||
extra_boss_event(orb_0=pcdata.eb_bossorb0 orb_1=pcdata.eb_bossorb1 orb_2=pcdata.eb_bossorb2 orb_3=pcdata.eb_bossorb3 orb_4=pcdata.eb_bossorb4 orb_5=pcdata.eb_bossorb5 orb_6=pcdata.eb_bossorb6 orb_7=pcdata.eb_bossorb7 orb_8=pcdata.eb_bossorb8)
|
||||
join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname)
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
step(enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_mission_point=pcdata.st_sp_mission_point dp_mission_point=pcdata.st_dp_mission_point sp_dj_mission_level=pcdata.st_sp_dj_mission_level dp_dj_mission_level=pcdata.st_dp_dj_mission_level sp_clear_mission_level=pcdata.st_sp_clear_mission_level dp_clear_mission_level=pcdata.st_dp_clear_mission_level sp_dj_mission_clear=pcdata.st_sp_dj_mission_clear dp_dj_mission_clear=pcdata.st_dp_dj_mission_clear sp_clear_mission_clear=pcdata.st_sp_clear_mission_clear dp_clear_mission_clear=pcdata.st_dp_clear_mission_clear sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay tips_read_list=pcdata.st_tips_read_list)
|
||||
is_track_ticket(__type="bool") #{pcdata.st_is_track_ticket}
|
||||
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="20") #{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]} #{pcdata.achi_trophy[10]} #{pcdata.achi_trophy[11]} #{pcdata.achi_trophy[12]} #{pcdata.achi_trophy[13]} #{pcdata.achi_trophy[14]} #{pcdata.achi_trophy[15]} #{pcdata.achi_trophy[16]} #{pcdata.achi_trophy[17]} #{pcdata.achi_trophy[18]} #{pcdata.achi_trophy[19]}
|
||||
deller(deller=pcdata.deller rate="1")
|
||||
orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb)
|
||||
pay_per_use_item(item_num="5")
|
||||
present_pay_per_use_item(item_num="5")
|
||||
qpro_ticket(ticket_num="10" total_ticket_num="10")
|
||||
old_linkage_secret_flg(floor_infection="-1" floor_infection2="-1" qma_collabo_music="-1")
|
||||
is_nostalgia(__type="bool") 1
|
||||
is_kac(__type="bool") 1
|
||||
leggendaria_semi_open(flg="-1")
|
||||
konami_stytle(skip_flg="0")
|
||||
arena_data(play_num="2" play_num_dp="1" play_num_sp="1")
|
||||
achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="0" rating_value="20")
|
||||
achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="1" rating_value="20")
|
||||
cube_data(cube="0" season_id="0")
|
||||
chat_data(chat_type_0="CHAT CUSTOM 1" chat_type_1="CHAT CUSTOM 2" chat_type_2="CHAT CUSTOM 3" chat_type_3="CHAT CUSTOM 4")
|
||||
is_chat_0(__type="bool") 1
|
||||
is_chat_1(__type="bool") 1
|
||||
is_chat_2(__type="bool") 1
|
||||
is_chat_3(__type="bool") 1
|
||||
skin_customize_flg(skin_frame_flg="-1" skin_bgm_flg="-1")
|
||||
if mirage_lib != null
|
||||
event1(event_play_num=pcdata.event_play_num fragment_num=mirage_lib.fragment_num last_select_map_id=mirage_lib.last_select_map_id read_tips_list=mirage_lib.read_tips_list continuous_correct=mirage_lib.continuous_correct bookshelf_release_num=mirage_lib.bookshelf_release_num)
|
||||
quiz_control_list(__type="bin") #{mirage_lib.quiz_control_list}
|
||||
- for (let evt of mirage_lib_sub)
|
||||
map_data(map_id=evt.map_id play_num=evt.play_num last_select_route_id=evt.last_select_route_id bookshelf_release_num=evt.bookshelf_release_num)
|
||||
map_route_damage(__type="bin") #{evt.map_route_damage}
|
||||
is_clear(__type="bool") #{evt.is_clear}
|
||||
if delabity_lab != null
|
||||
event2(play_num=delabity_lab.play_num last_select_floor=delabity_lab.last_select_floor delabity=delabity_lab.delabity tips_list=delabity_lab.tips_list floor_clear_flg_list=delabity_lab.floor_clear_flg_list floor_0_last_area=delabity_lab.floor_0_last_area floor_1_last_area=delabity_lab.floor_1_last_area floor_2_last_area=delabity_lab.floor_2_last_area floor_3_last_area=delabity_lab.floor_3_last_area floor_4_last_area=delabity_lab.floor_4_last_area)
|
||||
- for (let evt of delabity_lab_sub)
|
||||
area_data(floor_id=evt.floor_id area_id=evt.area_id last_select_note=evt.last_select_note normal_play_num=evt.normal_play_num hyper_play_num=evt.hyper_play_num another_play_num=evt.another_play_num area_clear_flg_list=evt.area_clear_flg_list normal_grade_point=evt.normal_grade_point hyper_grade_point=evt.hyper_grade_point another_grade_point=evt.another_grade_point)
|
||||
floor_infection3(music_list="-1")
|
||||
if anniv20 != null
|
||||
anniv20_event(damage_0=anniv20.damage_0 damage_1=anniv20.damage_1 damage_2=anniv20.damage_2 challenge_0=anniv20.challenge_0 challenge_1=anniv20.challenge_1 challenge_2=anniv20.challenge_2)
|
||||
bemani_vote(music_list="-1")
|
||||
79
iidx@asphyxia/pug/LDJ/27pcget.pug
Normal file
79
iidx@asphyxia/pug/LDJ/27pcget.pug
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
IIDX27pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach mode=pcdata.mode pmode=pcdata.pmode rtype=pcdata.rtype sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 gpos=pcdata.gpos s_sorttype=pcdata.s_sorttype d_sorttype=pcdata.d_sorttype s_pace=pcdata.s_pace d_pace=pcdata.d_pace s_gno=pcdata.s_gno d_gno=pcdata.d_gno s_sub_gno=pcdata.s_sub_gno d_sub_gno=pcdata.d_sub_gno s_gtype=pcdata.s_gtype d_gtype=pcdata.d_gtype s_sdlen=pcdata.s_sdlen d_sdlen=pcdata.d_sdlen s_sdtype=pcdata.s_sdtype d_sdtype=pcdata.d_sdtype s_timing=pcdata.s_timing d_timing=pcdata.d_timing s_notes=pcdata.s_notes d_notes=pcdata.d_notes s_judge=pcdata.s_judge d_judge=pcdata.d_judge s_judgeAdj=pcdata.s_judgeAdj d_judgeAdj=pcdata.d_judgeAdj s_hispeed=pcdata.s_hispeed d_hispeed=pcdata.d_hispeed s_liflen=pcdata.s_liflen d_liflen=pcdata.d_liflen s_disp_judge=pcdata.s_disp_judge d_disp_judge=pcdata.d_disp_judge s_opstyle=pcdata.s_opstyle d_opstyle=pcdata.d_opstyle s_graph_score=pcdata.s_graph_score d_graph_score=pcdata.d_graph_score s_auto_scrach=pcdata.s_auto_scrach d_auto_scrach=pcdata.d_auto_scrach s_gauge_disp=pcdata.s_gauge_disp d_gauge_disp=pcdata.d_gauge_disp s_lane_brignt=pcdata.s_lane_brignt d_lane_brignt=pcdata.d_lane_brignt s_camera_layout=pcdata.s_camera_layout d_camera_layout=pcdata.d_camera_layout s_ghost_score=pcdata.s_ghost_score d_ghost_score=pcdata.d_ghost_score s_tsujigiri_disp=pcdata.s_tsujigiri_disp d_tsujigiri_disp=pcdata.d_tsujigiri_disp)
|
||||
lightning_play_data(dpnum=lm_playdata.dp_num spnum=lm_playdata.sp_num)
|
||||
lightning_setting(headphone_vol=lm_settings.headphone_vol resistance_dp_left=lm_settings.resistance_dp_left resistance_dp_right=lm_settings.resistance_dp_right resistance_sp_left=lm_settings.resistance_sp_left resistance_sp_right=lm_settings.resistance_sp_right)
|
||||
slider(__type="s32" __count="7") #{lm_settings.slider[0]} #{lm_settings.slider[1]} #{lm_settings.slider[2]} #{lm_settings.slider[3]} #{lm_settings.slider[4]} #{lm_settings.slider[5]} #{lm_settings.slider[6]}
|
||||
light(__type="bool" __count="6") #{lm_settings.light[0]} #{lm_settings.light[1]} #{lm_settings.light[2]} #{lm_settings.light[3]} #{lm_settings.light[4]} #{lm_settings.light[5]}
|
||||
concentration(__type="bool") #{lm_settings.concentration}
|
||||
bind_eaappli
|
||||
ea_premium_course
|
||||
enable_qr_reward
|
||||
leggendaria_open
|
||||
qpro_secret
|
||||
head(__type="s64" __count="7") #{custom.qpro_secret_head[0]} #{custom.qpro_secret_head[1]} #{custom.qpro_secret_head[2]} #{custom.qpro_secret_head[3]} #{custom.qpro_secret_head[4]} #{custom.qpro_secret_head[5]} #{custom.qpro_secret_head[6]}
|
||||
hair(__type="s64" __count="7") #{custom.qpro_secret_hair[0]} #{custom.qpro_secret_hair[1]} #{custom.qpro_secret_hair[2]} #{custom.qpro_secret_hair[3]} #{custom.qpro_secret_hair[4]} #{custom.qpro_secret_hair[5]} #{custom.qpro_secret_hair[6]}
|
||||
face(__type="s64" __count="7") #{custom.qpro_secret_face[0]} #{custom.qpro_secret_face[1]} #{custom.qpro_secret_face[2]} #{custom.qpro_secret_face[3]} #{custom.qpro_secret_face[4]} #{custom.qpro_secret_face[5]} #{custom.qpro_secret_face[6]}
|
||||
body(__type="s64" __count="7") #{custom.qpro_secret_body[0]} #{custom.qpro_secret_body[1]} #{custom.qpro_secret_body[2]} #{custom.qpro_secret_body[3]} #{custom.qpro_secret_body[4]} #{custom.qpro_secret_body[5]} #{custom.qpro_secret_body[6]}
|
||||
hand(__type="s64" __count="7") #{custom.qpro_secret_hand[0]} #{custom.qpro_secret_hand[1]} #{custom.qpro_secret_hand[2]} #{custom.qpro_secret_hand[3]} #{custom.qpro_secret_hand[4]} #{custom.qpro_secret_hand[5]} #{custom.qpro_secret_hand[6]}
|
||||
secret
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
flg3(__type="s64" __count="3") -1 -1 -1
|
||||
flg4(__type="s64" __count="3") -1 -1 -1
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
eisei_grade
|
||||
- for (let ed of eArray)
|
||||
detail(grade_type=ed.grade_type grade_id=ed.grade_id stage_num=ed.stage_num clear_type=ed.clear_type)
|
||||
past(__type="s32" __count="5") #{ed.past[0]} #{ed.past[1]} #{ed.past[2]} #{ed.past[3]} #{ed.past[4]}
|
||||
max_past(__type="s32" __count="5") #{ed.max_past[0]} #{ed.max_past[1]} #{ed.max_past[2]} #{ed.max_past[3]} #{ed.max_past[4]}
|
||||
skin(__type="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{Number(custom.disable_musicpreview)} #{custom.pacemaker_cover} #{Number(custom.vefx_lock)} #{custom.effect} #{custom.bomb_size} #{Number(custom.disable_hcn_color)} #{custom.first_note_preview}
|
||||
qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
is_robo(__type="bool") 0
|
||||
qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1])
|
||||
shop(name=shop_data.opname)
|
||||
dj_rank(style="0")
|
||||
rank(__type="s32" __count="15") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]} #{pcdata.dr_sprank[13]} #{pcdata.dr_sprank[14]}
|
||||
point(__type="s32" __count="15") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]} #{pcdata.dr_sppoint[13]} #{pcdata.dr_sppoint[14]}
|
||||
dj_rank(style="1")
|
||||
rank(__type="s32" __count="15") #{pcdata.dr_dprank[0]} #{pcdata.dr_dprank[1]} #{pcdata.dr_dprank[2]} #{pcdata.dr_dprank[3]} #{pcdata.dr_dprank[4]} #{pcdata.dr_dprank[5]} #{pcdata.dr_dprank[6]} #{pcdata.dr_dprank[7]} #{pcdata.dr_dprank[8]} #{pcdata.dr_dprank[9]} #{pcdata.dr_dprank[10]} #{pcdata.dr_dprank[11]} #{pcdata.dr_dprank[12]} #{pcdata.dr_dprank[13]} #{pcdata.dr_dprank[14]}
|
||||
point(__type="s32" __count="15") #{pcdata.dr_dppoint[0]} #{pcdata.dr_dppoint[1]} #{pcdata.dr_dppoint[2]} #{pcdata.dr_dppoint[3]} #{pcdata.dr_dppoint[4]} #{pcdata.dr_dppoint[5]} #{pcdata.dr_dppoint[6]} #{pcdata.dr_dppoint[7]} #{pcdata.dr_dppoint[8]} #{pcdata.dr_dppoint[9]} #{pcdata.dr_dppoint[10]} #{pcdata.dr_dppoint[11]} #{pcdata.dr_dppoint[12]} #{pcdata.dr_dppoint[13]} #{pcdata.dr_dppoint[14]}
|
||||
notes_radar(style="0")
|
||||
radar_score(__type="s32" __count="6") #{pcdata.nr_spradar[0]} #{pcdata.nr_spradar[1]} #{pcdata.nr_spradar[2]} #{pcdata.nr_spradar[3]} #{pcdata.nr_spradar[4]} #{pcdata.nr_spradar[5]}
|
||||
notes_radar(style="1")
|
||||
radar_score(__type="s32" __count="6") #{pcdata.nr_dpradar[0]} #{pcdata.nr_dpradar[1]} #{pcdata.nr_dpradar[2]} #{pcdata.nr_dpradar[3]} #{pcdata.nr_dpradar[4]} #{pcdata.nr_dpradar[5]}
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
step(dp_clear_mission_clear=pcdata.st_dp_clear_mission_clear dp_clear_mission_level=pcdata.st_dp_clear_mission_level dp_dj_mission_clear=pcdata.st_dp_dj_mission_clear dp_dj_mission_level=pcdata.st_dp_dj_mission_level dp_level=pcdata.st_dp_level dp_mission_point=pcdata.st_dp_mission_point dp_mplay=pcdata.st_dp_mplay enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress sp_clear_mission_clear=pcdata.st_sp_clear_mission_clear sp_clear_mission_level=pcdata.st_sp_clear_mission_level sp_dj_mission_clear=pcdata.st_sp_dj_mission_clear sp_dj_mission_level=pcdata.st_sp_dj_mission_level sp_level=pcdata.st_sp_level sp_mission_point=pcdata.st_sp_mission_point sp_mplay=pcdata.st_sp_mplay tips_read_list=pcdata.st_tips_read_list)
|
||||
is_track_ticket(__type="bool") #{pcdata.st_is_track_ticket}
|
||||
achievements(last_weekly=pcdata.achi_lastweekly pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp rival_crush=pcdata.achi_rivalcrush visit_flg=pcdata.achi_visitflg weekly_num=pcdata.achi_weeklynum)
|
||||
trophy(__type="s64" __count="20") #{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]} #{pcdata.achi_trophy[10]} #{pcdata.achi_trophy[11]} #{pcdata.achi_trophy[12]} #{pcdata.achi_trophy[13]} #{pcdata.achi_trophy[14]} #{pcdata.achi_trophy[15]} #{pcdata.achi_trophy[16]} #{pcdata.achi_trophy[17]} #{pcdata.achi_trophy[18]} #{pcdata.achi_trophy[19]}
|
||||
deller(deller=pcdata.deller rate="1")
|
||||
orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb)
|
||||
leggendaria_semi_open(flg="-1")
|
||||
arena_data(play_num="2" play_num_dp="1" play_num_sp="1")
|
||||
achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="0" rating_value="20")
|
||||
achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" play_style="1" rating_value="20")
|
||||
cube_data(cube="0" season_id="0")
|
||||
chat_data(chat_type_0="CHAT CUSTOM 1" chat_type_1="CHAT CUSTOM 2" chat_type_2="CHAT CUSTOM 3" chat_type_3="CHAT CUSTOM 4")
|
||||
is_chat_0(__type="bool") 1
|
||||
is_chat_1(__type="bool") 1
|
||||
is_chat_2(__type="bool") 1
|
||||
is_chat_3(__type="bool") 1
|
||||
skin_customize_flg(skin_frame_flg="-1" skin_bgm_flg="-1")
|
||||
event1(event_play_num=pcdata.event_play_num last_select_gym_id=pcdata.event_last_select_id)
|
||||
- for (let evt of evtArray)
|
||||
gym_data(gym_id=evt.gym_id play_num=evt.play_num gauge_spirit=evt.gauge_spirit gauge_technique=evt.gauge_technique gauge_body=evt.gauge_body boss_attack_num=evt.boss_attack_num boss_damage=evt.boss_damage disp_lounge_list=evt.disp_lounge_list stb_type=evt.stb_type)
|
||||
is_complete(__type="bool") #{evt.is_complete}
|
||||
is_gauge_max(__type="bool") #{evt.is_gauge_max}
|
||||
floor_infection4(music_list="-1")
|
||||
bemani_vote(music_list="-1")
|
||||
bemani_janken_meeting(music_list="-1")
|
||||
bemani_rush(music_list_ichika="-1" music_list_nono="-1")
|
||||
ultimate_mobile_link(music_list="-1")
|
||||
language_setting(language=profile.language)
|
||||
movie_agreement(agreement_version="1")
|
||||
extra_boss_event(key_orb="0" boss_orb_0="0" boss_orb_1="0" boss_orb_2="0" boss_orb_3="0" boss_orb_4="0" boss_orb_5="0" boss_orb_6="0" boss_orb_7="0")
|
||||
94
iidx@asphyxia/pug/LDJ/28pcget.pug
Normal file
94
iidx@asphyxia/pug/LDJ/28pcget.pug
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
IIDX28pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach mode=pcdata.mode pmode=pcdata.pmode ngrade=pcdata.ngrade rtype=pcdata.rtype sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 gpos=pcdata.gpos s_sorttype=pcdata.s_sorttype d_sorttype=pcdata.d_sorttype s_pace=pcdata.s_pace d_pace=pcdata.d_pace s_gno=pcdata.s_gno d_gno=pcdata.d_gno s_sub_gno=pcdata.s_sub_gno d_sub_gno=pcdata.d_sub_gno s_gtype=pcdata.s_gtype d_gtype=pcdata.d_gtype s_sdlen=pcdata.s_sdlen d_sdlen=pcdata.d_sdlen s_sdtype=pcdata.s_sdtype d_sdtype=pcdata.d_sdtype s_timing=pcdata.s_timing d_timing=pcdata.d_timing s_notes=pcdata.s_notes d_notes=pcdata.d_notes s_judge=pcdata.s_judge d_judge=pcdata.d_judge s_judgeAdj=pcdata.s_judgeAdj d_judgeAdj=pcdata.d_judgeAdj s_hispeed=pcdata.s_hispeed d_hispeed=pcdata.d_hispeed s_liflen=pcdata.s_liflen d_liflen=pcdata.d_liflen s_disp_judge=pcdata.s_disp_judge d_disp_judge=pcdata.d_disp_judge s_opstyle=pcdata.s_opstyle d_opstyle=pcdata.d_opstyle s_graph_score=pcdata.s_graph_score d_graph_score=pcdata.d_graph_score s_auto_scrach=pcdata.s_auto_scrach d_auto_scrach=pcdata.d_auto_scrach s_gauge_disp=pcdata.s_gauge_disp d_gauge_disp=pcdata.d_gauge_disp s_lane_brignt=pcdata.s_lane_brignt d_lane_brignt=pcdata.d_lane_brignt s_camera_layout=pcdata.s_camera_layout d_camera_layout=pcdata.d_camera_layout s_ghost_score=pcdata.s_ghost_score d_ghost_score=pcdata.d_ghost_score s_tsujigiri_disp=pcdata.s_tsujigiri_disp d_tsujigiri_disp=pcdata.d_tsujigiri_disp)
|
||||
lightning_play_data(dpnum=lm_playdata.dp_num spnum=lm_playdata.sp_num)
|
||||
lightning_setting(headphone_vol=lm_settings.headphone_vol resistance_dp_left=lm_settings.resistance_dp_left resistance_dp_right=lm_settings.resistance_dp_right resistance_sp_left=lm_settings.resistance_sp_left resistance_sp_right=lm_settings.resistance_sp_right skin_0=lm_custom.premium_skin flg_skin_0="-1")
|
||||
slider(__type="s32" __count="7") #{lm_settings.slider[0]} #{lm_settings.slider[1]} #{lm_settings.slider[2]} #{lm_settings.slider[3]} #{lm_settings.slider[4]} #{lm_settings.slider[5]} #{lm_settings.slider[6]}
|
||||
light(__type="bool" __count="6") #{lm_settings.light[0]} #{lm_settings.light[1]} #{lm_settings.light[2]} #{lm_settings.light[3]} #{lm_settings.light[4]} #{lm_settings.light[5]}
|
||||
concentration(__type="bool") #{lm_settings.concentration}
|
||||
spdp_rival(flg="-1")
|
||||
bind_eaappli
|
||||
ea_premium_course
|
||||
enable_qr_reward
|
||||
secret
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
flg3(__type="s64" __count="3") -1 -1 -1
|
||||
flg4(__type="s64" __count="3") -1 -1 -1
|
||||
leggendaria
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
music_memo
|
||||
- for (let m of mArray)
|
||||
music(index=m.music_idx play_style=m.play_style music_id=m.music_id)
|
||||
qpro_secret
|
||||
head(__type="s64" __count="7") #{custom.qpro_secret_head[0]} #{custom.qpro_secret_head[1]} #{custom.qpro_secret_head[2]} #{custom.qpro_secret_head[3]} #{custom.qpro_secret_head[4]} #{custom.qpro_secret_head[5]} #{custom.qpro_secret_head[6]}
|
||||
hair(__type="s64" __count="7") #{custom.qpro_secret_hair[0]} #{custom.qpro_secret_hair[1]} #{custom.qpro_secret_hair[2]} #{custom.qpro_secret_hair[3]} #{custom.qpro_secret_hair[4]} #{custom.qpro_secret_hair[5]} #{custom.qpro_secret_hair[6]}
|
||||
face(__type="s64" __count="7") #{custom.qpro_secret_face[0]} #{custom.qpro_secret_face[1]} #{custom.qpro_secret_face[2]} #{custom.qpro_secret_face[3]} #{custom.qpro_secret_face[4]} #{custom.qpro_secret_face[5]} #{custom.qpro_secret_face[6]}
|
||||
body(__type="s64" __count="7") #{custom.qpro_secret_body[0]} #{custom.qpro_secret_body[1]} #{custom.qpro_secret_body[2]} #{custom.qpro_secret_body[3]} #{custom.qpro_secret_body[4]} #{custom.qpro_secret_body[5]} #{custom.qpro_secret_body[6]}
|
||||
hand(__type="s64" __count="7") #{custom.qpro_secret_hand[0]} #{custom.qpro_secret_hand[1]} #{custom.qpro_secret_hand[2]} #{custom.qpro_secret_hand[3]} #{custom.qpro_secret_hand[4]} #{custom.qpro_secret_hand[5]} #{custom.qpro_secret_hand[6]}
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
eisei_grade_data
|
||||
- for (let ed of eArray)
|
||||
detail(grade_type=ed.grade_type grade_id=ed.grade_id stage_num=ed.stage_num clear_type=ed.clear_type)
|
||||
past(__type="s32" __count="5") #{ed.past[0]} #{ed.past[1]} #{ed.past[2]} #{ed.past[3]} #{ed.past[4]}
|
||||
selected_course(__type="s32" __count="5") #{ed.selected_course[0]} #{ed.selected_course[1]} #{ed.selected_course[2]} #{ed.selected_course[3]} #{ed.selected_course[4]}
|
||||
max_past(__type="s32" __count="5") #{ed.max_past[0]} #{ed.max_past[1]} #{ed.max_past[2]} #{ed.max_past[3]} #{ed.max_past[4]}
|
||||
max_selected_course(__type="s32" __count="5") #{ed.max_selected_course[0]} #{ed.max_selected_course[1]} #{ed.max_selected_course[2]} #{ed.max_selected_course[3]} #{ed.max_selected_course[4]}
|
||||
skin(__type="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{Number(custom.disable_musicpreview)} #{custom.pacemaker_cover} #{Number(custom.vefx_lock)} #{custom.effect} #{custom.bomb_size} #{Number(custom.disable_hcn_color)} #{custom.first_note_preview}
|
||||
qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
is_robo(__type="bool") 0
|
||||
qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1])
|
||||
shop(name=shop_data.opname)
|
||||
dj_rank(style="0")
|
||||
rank(__type="s32" __count="15") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]} #{pcdata.dr_sprank[13]} #{pcdata.dr_sprank[14]}
|
||||
point(__type="s32" __count="15") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]} #{pcdata.dr_sppoint[13]} #{pcdata.dr_sppoint[14]}
|
||||
dj_rank(style="1")
|
||||
rank(__type="s32" __count="15") #{pcdata.dr_dprank[0]} #{pcdata.dr_dprank[1]} #{pcdata.dr_dprank[2]} #{pcdata.dr_dprank[3]} #{pcdata.dr_dprank[4]} #{pcdata.dr_dprank[5]} #{pcdata.dr_dprank[6]} #{pcdata.dr_dprank[7]} #{pcdata.dr_dprank[8]} #{pcdata.dr_dprank[9]} #{pcdata.dr_dprank[10]} #{pcdata.dr_dprank[11]} #{pcdata.dr_dprank[12]} #{pcdata.dr_dprank[13]} #{pcdata.dr_dprank[14]}
|
||||
point(__type="s32" __count="15") #{pcdata.dr_dppoint[0]} #{pcdata.dr_dppoint[1]} #{pcdata.dr_dppoint[2]} #{pcdata.dr_dppoint[3]} #{pcdata.dr_dppoint[4]} #{pcdata.dr_dppoint[5]} #{pcdata.dr_dppoint[6]} #{pcdata.dr_dppoint[7]} #{pcdata.dr_dppoint[8]} #{pcdata.dr_dppoint[9]} #{pcdata.dr_dppoint[10]} #{pcdata.dr_dppoint[11]} #{pcdata.dr_dppoint[12]} #{pcdata.dr_dppoint[13]} #{pcdata.dr_dppoint[14]}
|
||||
notes_radar(style="0")
|
||||
radar_score(__type="s32" __count="6") #{pcdata.nr_spradar[0]} #{pcdata.nr_spradar[1]} #{pcdata.nr_spradar[2]} #{pcdata.nr_spradar[3]} #{pcdata.nr_spradar[4]} #{pcdata.nr_spradar[5]}
|
||||
notes_radar(style="1")
|
||||
radar_score(__type="s32" __count="6") #{pcdata.nr_dpradar[0]} #{pcdata.nr_dpradar[1]} #{pcdata.nr_dpradar[2]} #{pcdata.nr_dpradar[3]} #{pcdata.nr_dpradar[4]} #{pcdata.nr_dpradar[5]}
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
step(dp_clear_mission_clear=pcdata.st_dp_clear_mission_clear dp_clear_mission_level=pcdata.st_dp_clear_mission_level dp_dj_mission_clear=pcdata.st_dp_dj_mission_clear dp_dj_mission_level=pcdata.st_dp_dj_mission_level dp_level=pcdata.st_dp_level dp_mission_point=pcdata.st_dp_mission_point dp_mplay=pcdata.st_dp_mplay enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress sp_clear_mission_clear=pcdata.st_sp_clear_mission_clear sp_clear_mission_level=pcdata.st_sp_clear_mission_level sp_dj_mission_clear=pcdata.st_sp_dj_mission_clear sp_dj_mission_level=pcdata.st_sp_dj_mission_level sp_level=pcdata.st_sp_level sp_mission_point=pcdata.st_sp_mission_point sp_mplay=pcdata.st_sp_mplay tips_read_list=pcdata.st_tips_read_list)
|
||||
is_track_ticket(__type="bool") #{pcdata.st_is_track_ticket}
|
||||
achievements(last_weekly=pcdata.achi_lastweekly pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp rival_crush=pcdata.achi_rivalcrush visit_flg=pcdata.achi_visitflg weekly_num=pcdata.achi_weeklynum)
|
||||
trophy(__type="s64" __count="20") #{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]} #{pcdata.achi_trophy[10]} #{pcdata.achi_trophy[11]} #{pcdata.achi_trophy[12]} #{pcdata.achi_trophy[13]} #{pcdata.achi_trophy[14]} #{pcdata.achi_trophy[15]} #{pcdata.achi_trophy[16]} #{pcdata.achi_trophy[17]} #{pcdata.achi_trophy[18]} #{pcdata.achi_trophy[19]}
|
||||
deller(deller=pcdata.deller rate="1")
|
||||
orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb)
|
||||
arena_data(play_num="2" play_num_dp="1" play_num_sp="1" prev_best_class_sp="20" prev_best_class_dp="20")
|
||||
achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" counterattack_num="0" play_style="0" rating_value="20")
|
||||
achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" counterattack_num="0" play_style="1" rating_value="20")
|
||||
cube_data(cube="0" season_id="0")
|
||||
chat_data(chat_type_0="CHAT CUSTOM 1" chat_type_1="CHAT CUSTOM 2" chat_type_2="CHAT CUSTOM 3" chat_type_3="CHAT CUSTOM 4")
|
||||
is_chat_0(__type="bool") 1
|
||||
is_chat_1(__type="bool") 1
|
||||
is_chat_2(__type="bool") 1
|
||||
is_chat_3(__type="bool") 1
|
||||
skin_customize_flg(skin_frame_flg="-1" skin_bgm_flg="-1")
|
||||
event_1(event_play_num=pcdata.event_play_num story_prog=pcdata.event_story_prog last_select_area_id=pcdata.event_last_select_id failed_num=pcdata.event_failed_num)
|
||||
- for (let evt of evtArray)
|
||||
area_data(area_id=evt.area_id play_num=evt.play_num recipe_prog0=evt.recipe_prog0 recipe_prog1=evt.recipe_prog1 recipe_prog2=evt.recipe_prog2 recipe_prog3=evt.recipe_prog3 recipe_prog4=evt.recipe_prog4 operation_num=evt.operation_num operation_prog=evt.operation_prog last_select_recipe=evt.last_select_recipe area_prog=evt.area_prog)
|
||||
is_complete(__type="bool") #{evt.is_complete}
|
||||
floor_infection4(music_list="-1")
|
||||
bemani_vote(music_list="-1")
|
||||
bemani_janken_meeting(music_list="-1")
|
||||
bemani_rush(music_list_ichika="-1" music_list_nono="-1")
|
||||
ultimate_mobile_link(music_list="-1")
|
||||
link_flag
|
||||
bemani_musiq_fes(music_list="-1")
|
||||
busou_linkage(music_list="-1")
|
||||
busou_linkage_2(music_list="-1")
|
||||
valkyrie_linkage_data(progress="100")
|
||||
bemani_song_battle(music_list="-1")
|
||||
language_setting(language=profile.language)
|
||||
movie_agreement(agreement_version="1")
|
||||
extra_boss_event(key_orb="0" boss_orb_0="0" boss_orb_1="0" boss_orb_2="0" boss_orb_3="0" boss_orb_4="0" boss_orb_5="0" boss_orb_6="0" boss_orb_7="0")
|
||||
world_tourism
|
||||
- for (let wd of wArray)
|
||||
tour_data(tour_id=wd.tour_id progress=wd.progress)
|
||||
world_tourism_secret(music_list="-1")
|
||||
99
iidx@asphyxia/pug/LDJ/29pcget.pug
Normal file
99
iidx@asphyxia/pug/LDJ/29pcget.pug
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
IIDX29pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach mode=pcdata.mode pmode=pcdata.pmode ngrade=pcdata.ngrade rtype=pcdata.rtype sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 gpos=pcdata.gpos s_sorttype=pcdata.s_sorttype d_sorttype=pcdata.d_sorttype s_pace=pcdata.s_pace d_pace=pcdata.d_pace s_gno=pcdata.s_gno d_gno=pcdata.d_gno s_sub_gno=pcdata.s_sub_gno d_sub_gno=pcdata.d_sub_gno s_gtype=pcdata.s_gtype d_gtype=pcdata.d_gtype s_sdlen=pcdata.s_sdlen d_sdlen=pcdata.d_sdlen s_sdtype=pcdata.s_sdtype d_sdtype=pcdata.d_sdtype s_timing=pcdata.s_timing d_timing=pcdata.d_timing s_notes=pcdata.s_notes d_notes=pcdata.d_notes s_judge=pcdata.s_judge d_judge=pcdata.d_judge s_judgeAdj=pcdata.s_judgeAdj d_judgeAdj=pcdata.d_judgeAdj s_hispeed=pcdata.s_hispeed d_hispeed=pcdata.d_hispeed s_liflen=pcdata.s_liflen d_liflen=pcdata.d_liflen s_disp_judge=pcdata.s_disp_judge d_disp_judge=pcdata.d_disp_judge s_opstyle=pcdata.s_opstyle d_opstyle=pcdata.d_opstyle s_graph_score=pcdata.s_graph_score d_graph_score=pcdata.d_graph_score s_auto_scrach=pcdata.s_auto_scrach d_auto_scrach=pcdata.d_auto_scrach s_gauge_disp=pcdata.s_gauge_disp d_gauge_disp=pcdata.d_gauge_disp s_lane_brignt=pcdata.s_lane_brignt d_lane_brignt=pcdata.d_lane_brignt s_camera_layout=pcdata.s_camera_layout d_camera_layout=pcdata.d_camera_layout s_ghost_score=pcdata.s_ghost_score d_ghost_score=pcdata.d_ghost_score s_tsujigiri_disp=pcdata.s_tsujigiri_disp d_tsujigiri_disp=pcdata.d_tsujigiri_disp s_auto_adjust=pcdata.s_auto_adjust d_auto_adjust=pcdata.d_auto_adjust)
|
||||
lightning_play_data(dpnum=lm_playdata.dp_num spnum=lm_playdata.sp_num)
|
||||
lightning_setting(headphone_vol=lm_settings.headphone_vol resistance_dp_left=lm_settings.resistance_dp_left resistance_dp_right=lm_settings.resistance_dp_right resistance_sp_left=lm_settings.resistance_sp_left resistance_sp_right=lm_settings.resistance_sp_right skin_0=lm_custom.premium_skin flg_skin_0="-1")
|
||||
slider(__type="s32" __count="7") #{lm_settings.slider[0]} #{lm_settings.slider[1]} #{lm_settings.slider[2]} #{lm_settings.slider[3]} #{lm_settings.slider[4]} #{lm_settings.slider[5]} #{lm_settings.slider[6]}
|
||||
light(__type="bool" __count="10") #{lm_settings.light[0]} #{lm_settings.light[1]} #{lm_settings.light[2]} #{lm_settings.light[3]} #{lm_settings.light[4]} #{lm_settings.light[5]} #{lm_settings.light[6]} #{lm_settings.light[7]} #{lm_settings.light[8]} #{lm_settings.light[9]}
|
||||
concentration(__type="bool") #{lm_settings.concentration}
|
||||
spdp_rival(flg="-1")
|
||||
bind_eaappli
|
||||
ea_premium_course
|
||||
enable_qr_reward
|
||||
secret
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
flg3(__type="s64" __count="3") -1 -1 -1
|
||||
flg4(__type="s64" __count="3") -1 -1 -1
|
||||
leggendaria
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
music_memo
|
||||
- for (let m of mArray)
|
||||
music(index=m.music_idx play_style=m.play_style music_id=m.music_id)
|
||||
qpro_secret
|
||||
head(__type="s64" __count="7") #{custom.qpro_secret_head[0]} #{custom.qpro_secret_head[1]} #{custom.qpro_secret_head[2]} #{custom.qpro_secret_head[3]} #{custom.qpro_secret_head[4]} #{custom.qpro_secret_head[5]} #{custom.qpro_secret_head[6]}
|
||||
hair(__type="s64" __count="7") #{custom.qpro_secret_hair[0]} #{custom.qpro_secret_hair[1]} #{custom.qpro_secret_hair[2]} #{custom.qpro_secret_hair[3]} #{custom.qpro_secret_hair[4]} #{custom.qpro_secret_hair[5]} #{custom.qpro_secret_hair[6]}
|
||||
face(__type="s64" __count="7") #{custom.qpro_secret_face[0]} #{custom.qpro_secret_face[1]} #{custom.qpro_secret_face[2]} #{custom.qpro_secret_face[3]} #{custom.qpro_secret_face[4]} #{custom.qpro_secret_face[5]} #{custom.qpro_secret_face[6]}
|
||||
body(__type="s64" __count="7") #{custom.qpro_secret_body[0]} #{custom.qpro_secret_body[1]} #{custom.qpro_secret_body[2]} #{custom.qpro_secret_body[3]} #{custom.qpro_secret_body[4]} #{custom.qpro_secret_body[5]} #{custom.qpro_secret_body[6]}
|
||||
hand(__type="s64" __count="7") #{custom.qpro_secret_hand[0]} #{custom.qpro_secret_hand[1]} #{custom.qpro_secret_hand[2]} #{custom.qpro_secret_hand[3]} #{custom.qpro_secret_hand[4]} #{custom.qpro_secret_hand[5]} #{custom.qpro_secret_hand[6]}
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
eisei_grade_data
|
||||
- for (let ed of eArray)
|
||||
detail(grade_type=ed.grade_type grade_id=ed.grade_id stage_num=ed.stage_num clear_type=ed.clear_type)
|
||||
past(__type="s32" __count="3") #{ed.past[0]} #{ed.past[1]} #{ed.past[2]}
|
||||
selected_course(__type="s32" __count="3") #{ed.selected_course[0]} #{ed.selected_course[1]} #{ed.selected_course[2]}
|
||||
max_past(__type="s32" __count="3") #{ed.max_past[0]} #{ed.max_past[1]} #{ed.max_past[2]}
|
||||
max_selected_course(__type="s32" __count="3") #{ed.max_selected_course[0]} #{ed.max_selected_course[1]} #{ed.max_selected_course[2]}
|
||||
skin(__type="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{Number(custom.disable_musicpreview)} #{custom.pacemaker_cover} #{Number(custom.vefx_lock)} #{custom.effect} #{custom.bomb_size} #{Number(custom.disable_hcn_color)} #{custom.first_note_preview}
|
||||
qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
is_robo(__type="bool") 0
|
||||
qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1])
|
||||
shop(name=shop_data.opname)
|
||||
dj_rank(style="0")
|
||||
rank(__type="s32" __count="15") #{pcdata.dr_sprank[0]} #{pcdata.dr_sprank[1]} #{pcdata.dr_sprank[2]} #{pcdata.dr_sprank[3]} #{pcdata.dr_sprank[4]} #{pcdata.dr_sprank[5]} #{pcdata.dr_sprank[6]} #{pcdata.dr_sprank[7]} #{pcdata.dr_sprank[8]} #{pcdata.dr_sprank[9]} #{pcdata.dr_sprank[10]} #{pcdata.dr_sprank[11]} #{pcdata.dr_sprank[12]} #{pcdata.dr_sprank[13]} #{pcdata.dr_sprank[14]}
|
||||
point(__type="s32" __count="15") #{pcdata.dr_sppoint[0]} #{pcdata.dr_sppoint[1]} #{pcdata.dr_sppoint[2]} #{pcdata.dr_sppoint[3]} #{pcdata.dr_sppoint[4]} #{pcdata.dr_sppoint[5]} #{pcdata.dr_sppoint[6]} #{pcdata.dr_sppoint[7]} #{pcdata.dr_sppoint[8]} #{pcdata.dr_sppoint[9]} #{pcdata.dr_sppoint[10]} #{pcdata.dr_sppoint[11]} #{pcdata.dr_sppoint[12]} #{pcdata.dr_sppoint[13]} #{pcdata.dr_sppoint[14]}
|
||||
dj_rank(style="1")
|
||||
rank(__type="s32" __count="15") #{pcdata.dr_dprank[0]} #{pcdata.dr_dprank[1]} #{pcdata.dr_dprank[2]} #{pcdata.dr_dprank[3]} #{pcdata.dr_dprank[4]} #{pcdata.dr_dprank[5]} #{pcdata.dr_dprank[6]} #{pcdata.dr_dprank[7]} #{pcdata.dr_dprank[8]} #{pcdata.dr_dprank[9]} #{pcdata.dr_dprank[10]} #{pcdata.dr_dprank[11]} #{pcdata.dr_dprank[12]} #{pcdata.dr_dprank[13]} #{pcdata.dr_dprank[14]}
|
||||
point(__type="s32" __count="15") #{pcdata.dr_dppoint[0]} #{pcdata.dr_dppoint[1]} #{pcdata.dr_dppoint[2]} #{pcdata.dr_dppoint[3]} #{pcdata.dr_dppoint[4]} #{pcdata.dr_dppoint[5]} #{pcdata.dr_dppoint[6]} #{pcdata.dr_dppoint[7]} #{pcdata.dr_dppoint[8]} #{pcdata.dr_dppoint[9]} #{pcdata.dr_dppoint[10]} #{pcdata.dr_dppoint[11]} #{pcdata.dr_dppoint[12]} #{pcdata.dr_dppoint[13]} #{pcdata.dr_dppoint[14]}
|
||||
notes_radar(style="0")
|
||||
radar_score(__type="s32" __count="6") #{pcdata.nr_spradar[0]} #{pcdata.nr_spradar[1]} #{pcdata.nr_spradar[2]} #{pcdata.nr_spradar[3]} #{pcdata.nr_spradar[4]} #{pcdata.nr_spradar[5]}
|
||||
notes_radar(style="1")
|
||||
radar_score(__type="s32" __count="6") #{pcdata.nr_dpradar[0]} #{pcdata.nr_dpradar[1]} #{pcdata.nr_dpradar[2]} #{pcdata.nr_dpradar[3]} #{pcdata.nr_dpradar[4]} #{pcdata.nr_dpradar[5]}
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
step(enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress total_point=pcdata.st_total_point enemy_defeat_flg=pcdata.st_enemy_defeat_flg sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level mission_clear_num=pcdata.st_mission_clear_num sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay tips_read_list=pcdata.st_tips_read_list)
|
||||
is_track_ticket(__type="bool") #{pcdata.st_is_track_ticket}
|
||||
achievements(last_weekly=pcdata.achi_lastweekly pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp rival_crush=pcdata.achi_rivalcrush visit_flg=pcdata.achi_visitflg weekly_num=pcdata.achi_weeklynum)
|
||||
trophy(__type="s64" __count="20") #{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]} #{pcdata.achi_trophy[10]} #{pcdata.achi_trophy[11]} #{pcdata.achi_trophy[12]} #{pcdata.achi_trophy[13]} #{pcdata.achi_trophy[14]} #{pcdata.achi_trophy[15]} #{pcdata.achi_trophy[16]} #{pcdata.achi_trophy[17]} #{pcdata.achi_trophy[18]} #{pcdata.achi_trophy[19]}
|
||||
deller(deller=pcdata.deller rate="1")
|
||||
orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb)
|
||||
arena_data(play_num="2" play_num_dp="1" play_num_sp="1" prev_best_class_sp="20" prev_best_class_dp="20")
|
||||
achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" counterattack_num="0" play_style="0" rating_value="20")
|
||||
achieve_data(arena_class="20" best_top_class_continuing="0" now_top_class_continuing="0" counterattack_num="0" play_style="1" rating_value="20")
|
||||
cube_data(cube="0" season_id="0")
|
||||
chat_data(chat_type_0="CHAT CUSTOM 1" chat_type_1="CHAT CUSTOM 2" chat_type_2="CHAT CUSTOM 3" chat_type_3="CHAT CUSTOM 4")
|
||||
is_chat_0(__type="bool") 1
|
||||
is_chat_1(__type="bool") 1
|
||||
is_chat_2(__type="bool") 1
|
||||
is_chat_3(__type="bool") 1
|
||||
skin_customize_flg(skin_frame_flg="-1" skin_bgm_flg="-1" skin_lane_flg3="-1")
|
||||
event_1(event_play_num=pcdata.event_play_num last_select_platform_type=pcdata.event_last_select_type last_select_platform_id=pcdata.event_last_select_id)
|
||||
- for (let evt of evtArray)
|
||||
plat_watch_data(platform_id=evt.platform_id play_num=evt.play_num last_select_channel=evt.last_select_channel platform_prog=evt.platform_prog)
|
||||
- for (let evt2 of evtArray2)
|
||||
ch_watch_data(platform_id=evt2.platform_id channel_id=evt2.channel_id play_num=evt2.channel_play_num gauge=evt2.gauge)
|
||||
is_complete(__type="bool") #{evt2.is_complete}
|
||||
floor_infection4(music_list="-1")
|
||||
bemani_vote(music_list="-1")
|
||||
bemani_janken_meeting(music_list="-1")
|
||||
bemani_rush(music_list_ichika="-1" music_list_nono="-1")
|
||||
ultimate_mobile_link(music_list="-1")
|
||||
link_flag
|
||||
bemani_musiq_fes(music_list="-1")
|
||||
busou_linkage(music_list="-1")
|
||||
busou_linkage_2(music_list="-1")
|
||||
valkyrie_linkage_2_data(progress="100")
|
||||
bemani_song_battle(music_list="-1")
|
||||
language_setting(language=profile.language)
|
||||
movie_agreement(agreement_version="1")
|
||||
movie_setting
|
||||
hide_name(__type="bool") 0
|
||||
world_tourism
|
||||
- for (let wd of wArray)
|
||||
tour_data(tour_id=wd.tour_id progress=wd.progress)
|
||||
world_tourism_secrfet_flg
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
101
iidx@asphyxia/pug/LDJ/30pcget.pug
Normal file
101
iidx@asphyxia/pug/LDJ/30pcget.pug
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
IIDX30pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach mode=pcdata.mode pmode=pcdata.pmode ngrade=pcdata.ngrade rtype=pcdata.rtype sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 gpos=pcdata.gpos s_sorttype=pcdata.s_sorttype d_sorttype=pcdata.d_sorttype s_pace=pcdata.s_pace d_pace=pcdata.d_pace s_gno=pcdata.s_gno d_gno=pcdata.d_gno s_sub_gno=pcdata.s_sub_gno d_sub_gno=pcdata.d_sub_gno s_gtype=pcdata.s_gtype d_gtype=pcdata.d_gtype s_sdlen=pcdata.s_sdlen d_sdlen=pcdata.d_sdlen s_sdtype=pcdata.s_sdtype d_sdtype=pcdata.d_sdtype s_timing=pcdata.s_timing d_timing=pcdata.d_timing s_notes=pcdata.s_notes d_notes=pcdata.d_notes s_judge=pcdata.s_judge d_judge=pcdata.d_judge s_judgeAdj=pcdata.s_judgeAdj d_judgeAdj=pcdata.d_judgeAdj s_hispeed=pcdata.s_hispeed d_hispeed=pcdata.d_hispeed s_liflen=pcdata.s_liflen d_liflen=pcdata.d_liflen s_disp_judge=pcdata.s_disp_judge d_disp_judge=pcdata.d_disp_judge s_opstyle=pcdata.s_opstyle d_opstyle=pcdata.d_opstyle s_graph_score=pcdata.s_graph_score d_graph_score=pcdata.d_graph_score s_auto_scrach=pcdata.s_auto_scrach d_auto_scrach=pcdata.d_auto_scrach s_gauge_disp=pcdata.s_gauge_disp d_gauge_disp=pcdata.d_gauge_disp s_lane_brignt=pcdata.s_lane_brignt d_lane_brignt=pcdata.d_lane_brignt s_camera_layout=pcdata.s_camera_layout d_camera_layout=pcdata.d_camera_layout s_ghost_score=pcdata.s_ghost_score d_ghost_score=pcdata.d_ghost_score s_tsujigiri_disp=pcdata.s_tsujigiri_disp d_tsujigiri_disp=pcdata.d_tsujigiri_disp s_auto_adjust=pcdata.s_auto_adjust d_auto_adjust=pcdata.d_auto_adjust s_timing_split=pcdata.s_timing_split d_timing_split=pcdata.d_timing_split s_visualization=pcdata.s_visualization d_visualization=pcdata.d_visualization)
|
||||
lightning_play_data(dpnum=lm_playdata.dp_num spnum=lm_playdata.sp_num)
|
||||
lightning_setting(headphone_vol=lm_settings.headphone_vol resistance_dp_left=lm_settings.resistance_dp_left resistance_dp_right=lm_settings.resistance_dp_right resistance_sp_left=lm_settings.resistance_sp_left resistance_sp_right=lm_settings.resistance_sp_right skin_0=lm_custom.premium_skin flg_skin_0="-1")
|
||||
slider(__type="s32" __count="7") #{lm_settings.slider[0]} #{lm_settings.slider[1]} #{lm_settings.slider[2]} #{lm_settings.slider[3]} #{lm_settings.slider[4]} #{lm_settings.slider[5]} #{lm_settings.slider[6]}
|
||||
light(__type="bool" __count="10") #{lm_settings.light[0]} #{lm_settings.light[1]} #{lm_settings.light[2]} #{lm_settings.light[3]} #{lm_settings.light[4]} #{lm_settings.light[5]} #{lm_settings.light[6]} #{lm_settings.light[7]} #{lm_settings.light[8]} #{lm_settings.light[9]}
|
||||
concentration(__type="bool") #{lm_settings.concentration}
|
||||
spdp_rival(flg="-1")
|
||||
bind_eaappli
|
||||
ea_premium_course
|
||||
secret
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
flg3(__type="s64" __count="3") -1 -1 -1
|
||||
flg4(__type="s64" __count="3") -1 -1 -1
|
||||
leggendaria
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
music_memo
|
||||
- for (let m of mArray)
|
||||
folder(play_style=m.play_style folder_id=m.folder_idx name=m.folder_name)
|
||||
music_id(__type="s32" __count="10") #{m.music_ids[0]} #{m.music_ids[1]} #{m.music_ids[2]} #{m.music_ids[3]} #{m.music_ids[4]} #{m.music_ids[5]} #{m.music_ids[6]} #{m.music_ids[7]} #{m.music_ids[8]} #{m.music_ids[9]}
|
||||
qpro_secret
|
||||
head(__type="s64" __count="7") #{custom.qpro_secret_head[0]} #{custom.qpro_secret_head[1]} #{custom.qpro_secret_head[2]} #{custom.qpro_secret_head[3]} #{custom.qpro_secret_head[4]} #{custom.qpro_secret_head[5]} #{custom.qpro_secret_head[6]}
|
||||
hair(__type="s64" __count="7") #{custom.qpro_secret_hair[0]} #{custom.qpro_secret_hair[1]} #{custom.qpro_secret_hair[2]} #{custom.qpro_secret_hair[3]} #{custom.qpro_secret_hair[4]} #{custom.qpro_secret_hair[5]} #{custom.qpro_secret_hair[6]}
|
||||
face(__type="s64" __count="7") #{custom.qpro_secret_face[0]} #{custom.qpro_secret_face[1]} #{custom.qpro_secret_face[2]} #{custom.qpro_secret_face[3]} #{custom.qpro_secret_face[4]} #{custom.qpro_secret_face[5]} #{custom.qpro_secret_face[6]}
|
||||
body(__type="s64" __count="7") #{custom.qpro_secret_body[0]} #{custom.qpro_secret_body[1]} #{custom.qpro_secret_body[2]} #{custom.qpro_secret_body[3]} #{custom.qpro_secret_body[4]} #{custom.qpro_secret_body[5]} #{custom.qpro_secret_body[6]}
|
||||
hand(__type="s64" __count="7") #{custom.qpro_secret_hand[0]} #{custom.qpro_secret_hand[1]} #{custom.qpro_secret_hand[2]} #{custom.qpro_secret_hand[3]} #{custom.qpro_secret_hand[4]} #{custom.qpro_secret_hand[5]} #{custom.qpro_secret_hand[6]}
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
eisei_data
|
||||
- for (let ed of eArray)
|
||||
detail(grade_type=ed.grade_type grade_id=ed.grade_id stage_num=ed.stage_num clear_type=ed.clear_type option=ed.option)
|
||||
past(__type="s32" __count="3") #{ed.past[0]} #{ed.past[1]} #{ed.past[2]}
|
||||
selected_course(__type="s32" __count="3") #{ed.selected_course[0]} #{ed.selected_course[1]} #{ed.selected_course[2]}
|
||||
max_past(__type="s32" __count="3") #{ed.max_past[0]} #{ed.max_past[1]} #{ed.max_past[2]}
|
||||
max_selected_course(__type="s32" __count="3") #{ed.max_selected_course[0]} #{ed.max_selected_course[1]} #{ed.max_selected_course[2]}
|
||||
skin(__type="s16" __count="20") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} #{custom.note_beam} #{custom.judge_font} 0 #{Number(custom.disable_musicpreview)} #{custom.pacemaker_cover} #{Number(custom.vefx_lock)} #{custom.effect} #{custom.bomb_size} #{Number(custom.disable_hcn_color)} #{custom.first_note_preview}
|
||||
qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
is_robo(__type="bool") 0
|
||||
qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1])
|
||||
shop(name=shop_data.opname)
|
||||
notes_radar(style="0")
|
||||
radar_score(__type="s32" __count="6") #{pcdata.nr_spradar[0]} #{pcdata.nr_spradar[1]} #{pcdata.nr_spradar[2]} #{pcdata.nr_spradar[3]} #{pcdata.nr_spradar[4]} #{pcdata.nr_spradar[5]}
|
||||
notes_radar(style="1")
|
||||
radar_score(__type="s32" __count="6") #{pcdata.nr_dpradar[0]} #{pcdata.nr_dpradar[1]} #{pcdata.nr_dpradar[2]} #{pcdata.nr_dpradar[3]} #{pcdata.nr_dpradar[4]} #{pcdata.nr_dpradar[5]}
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
step(enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress total_point=pcdata.st_total_point enemy_defeat_flg=pcdata.st_enemy_defeat_flg sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_fluctuation=pcdata.st_sp_fluctuation dp_fluctuation=pcdata.st_dp_fluctuation mission_clear_num=pcdata.st_mission_clear_num sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay tips_read_list=pcdata.st_tips_read_list)
|
||||
is_track_ticket(__type="bool") #{pcdata.st_is_track_ticket}
|
||||
achievements(last_weekly=pcdata.achi_lastweekly pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp rival_crush=pcdata.achi_rivalcrush visit_flg=pcdata.achi_visitflg weekly_num=pcdata.achi_weeklynum)
|
||||
//- i have no idea why this now needs to be 10 instead of 20
|
||||
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]}
|
||||
deller(deller=pcdata.deller rate="1")
|
||||
orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb)
|
||||
old_linkage_secret_flg(song_battle="-1")
|
||||
arena_data(play_num="2" play_num_dp="1" play_num_sp="1" prev_best_class_sp="20" prev_best_class_dp="20")
|
||||
achieve_data(play_style="0" arena_class="20" rating_value="20" win_count="0" now_winning_streak_count="0" best_winning_streak_count="0" perfect_win_count="0" counterattack_num="0" mission_clear_num="0")
|
||||
achieve_data(play_style="1" arena_class="20" rating_value="20" win_count="0" now_winning_streak_count="0" best_winning_streak_count="0" perfect_win_count="0" counterattack_num="0" mission_clear_num="0")
|
||||
cube_data(cube="0" season_id="0")
|
||||
chat_data(chat_type_0="CHAT CUSTOM 1" chat_type_1="CHAT CUSTOM 2" chat_type_2="CHAT CUSTOM 3" chat_type_3="CHAT CUSTOM 4")
|
||||
is_chat_0(__type="bool") 1
|
||||
is_chat_1(__type="bool") 1
|
||||
is_chat_2(__type="bool") 1
|
||||
is_chat_3(__type="bool") 1
|
||||
skin_customize_flg(skin_frame_flg="-1" skin_bgm_flg="-1" skin_lane_flg3="-1")
|
||||
event_1(event_play_num=pcdata.event_play_num last_select_flyer_id=pcdata.event_last_select_id)
|
||||
- for (let evt of evtArray)
|
||||
flyer_data(flyer_id=evt.flyer_id play_num=evt.play_num last_select_genre=evt.last_select_genre flyer_prog=evt.flyer_prog skill_param=evt.skill_param)
|
||||
- for (let evt2 of evtArray2)
|
||||
genre_data(flyer_id=evt2.flyer_id genre_id=evt2.genre_id play_num=evt2.genre_playnum gauge=evt2.gauge)
|
||||
is_complete(__type="bool") #{evt2.is_complete}
|
||||
floor_infection4(music_list="-1")
|
||||
bemani_vote(music_list="-1")
|
||||
bemani_janken_meeting(music_list="-1")
|
||||
bemani_rush(music_list_ichika="-1" music_list_nono="-1")
|
||||
ultimate_mobile_link(music_list="-1")
|
||||
link_flag
|
||||
bemani_musiq_fes(music_list="-1")
|
||||
busou_linkage(music_list="-1")
|
||||
busou_linkage_2(music_list="-1")
|
||||
valkyrie_linkage(music_list_1="-1" music_list_2="-1" music_list_3="-1")
|
||||
bemani_song_battle(music_list="-1")
|
||||
bemani_mixup(music_list="-1")
|
||||
ccj_linkage(music_list="-1")
|
||||
triple_tribe(music_list="-1")
|
||||
language_setting(language=profile.language)
|
||||
movie_agreement(agreement_version="1")
|
||||
movie_setting
|
||||
hide_name(__type="bool") 0
|
||||
world_tourism
|
||||
- for (let wd of wArray)
|
||||
tour_data(tour_id=wd.tour_id progress=wd.progress)
|
||||
world_tourism_secret_flg
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
badge
|
||||
- for (let b of bArray)
|
||||
badge_data(category_id=b.id badge_flg_id=b.flg_id badge_flg=b.flg)
|
||||
108
iidx@asphyxia/pug/LDJ/31pcget.pug
Normal file
108
iidx@asphyxia/pug/LDJ/31pcget.pug
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
IIDX31pc(status="0" qproback=custom.qpro_back)
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach mode=pcdata.mode pmode=pcdata.pmode ngrade=pcdata.ngrade rtype=pcdata.rtype player_kind=pcdata.player_kind sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 gpos=pcdata.gpos s_sorttype=pcdata.s_sorttype d_sorttype=pcdata.d_sorttype s_pace=pcdata.s_pace d_pace=pcdata.d_pace s_gno=pcdata.s_gno d_gno=pcdata.d_gno s_sub_gno=pcdata.s_sub_gno d_sub_gno=pcdata.d_sub_gno s_gtype=pcdata.s_gtype d_gtype=pcdata.d_gtype s_sdlen=pcdata.s_sdlen d_sdlen=pcdata.d_sdlen s_sdtype=pcdata.s_sdtype d_sdtype=pcdata.d_sdtype s_timing=pcdata.s_timing d_timing=pcdata.d_timing s_notes=pcdata.s_notes d_notes=pcdata.d_notes s_judge=pcdata.s_judge d_judge=pcdata.d_judge s_judgeAdj=pcdata.s_judgeAdj d_judgeAdj=pcdata.d_judgeAdj s_hispeed=pcdata.s_hispeed d_hispeed=pcdata.d_hispeed s_liflen=pcdata.s_liflen d_liflen=pcdata.d_liflen s_disp_judge=pcdata.s_disp_judge d_disp_judge=pcdata.d_disp_judge s_opstyle=pcdata.s_opstyle d_opstyle=pcdata.d_opstyle s_graph_score=pcdata.s_graph_score d_graph_score=pcdata.d_graph_score s_auto_scrach=pcdata.s_auto_scrach d_auto_scrach=pcdata.d_auto_scrach s_gauge_disp=pcdata.s_gauge_disp d_gauge_disp=pcdata.d_gauge_disp s_lane_brignt=pcdata.s_lane_brignt d_lane_brignt=pcdata.d_lane_brignt s_camera_layout=pcdata.s_camera_layout d_camera_layout=pcdata.d_camera_layout s_ghost_score=pcdata.s_ghost_score d_ghost_score=pcdata.d_ghost_score s_tsujigiri_disp=pcdata.s_tsujigiri_disp d_tsujigiri_disp=pcdata.d_tsujigiri_disp s_auto_adjust=pcdata.s_auto_adjust d_auto_adjust=pcdata.d_auto_adjust s_timing_split=pcdata.s_timing_split d_timing_split=pcdata.d_timing_split s_visualization=pcdata.s_visualization d_visualization=pcdata.d_visualization s_classic_hispeed=pcdata.s_classic_hispeed d_classic_hispeed=pcdata.d_classic_hispeed)
|
||||
lightning_play_data(dpnum=lm_playdata.dp_num spnum=lm_playdata.sp_num)
|
||||
lightning_setting(headphone_vol=lm_settings.headphone_vol resistance_dp_left=lm_settings.resistance_dp_left resistance_dp_right=lm_settings.resistance_dp_right resistance_sp_left=lm_settings.resistance_sp_left resistance_sp_right=lm_settings.resistance_sp_right keyboard_kind=lm_settings.keyboard_kind brightness=lm_settings.brightness)
|
||||
slider(__type="s32" __count="7") #{lm_settings.slider[0]} #{lm_settings.slider[1]} #{lm_settings.slider[2]} #{lm_settings.slider[3]} #{lm_settings.slider[4]} #{lm_settings.slider[5]} #{lm_settings.slider[6]}
|
||||
light(__type="bool" __count="10") #{lm_settings.light[0]} #{lm_settings.light[1]} #{lm_settings.light[2]} #{lm_settings.light[3]} #{lm_settings.light[4]} #{lm_settings.light[5]} #{lm_settings.light[6]} #{lm_settings.light[7]} #{lm_settings.light[8]} #{lm_settings.light[9]}
|
||||
concentration(__type="bool") #{lm_settings.concentration}
|
||||
spdp_rival(flg="-1")
|
||||
bind_eaappli
|
||||
ea_premium_course
|
||||
secret
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
flg3(__type="s64" __count="3") -1 -1 -1
|
||||
flg4(__type="s64" __count="3") -1 -1 -1
|
||||
leggendaria
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
music_memo
|
||||
- for (let m of mArray)
|
||||
folder(play_style=m.play_style folder_id=m.folder_idx name=m.folder_name)
|
||||
music_id(__type="s32" __count="10") #{m.music_ids[0]} #{m.music_ids[1]} #{m.music_ids[2]} #{m.music_ids[3]} #{m.music_ids[4]} #{m.music_ids[5]} #{m.music_ids[6]} #{m.music_ids[7]} #{m.music_ids[8]} #{m.music_ids[9]}
|
||||
music_filter
|
||||
- for (let f of fArray)
|
||||
folder(play_style=f.play_style folder_id=f.folder_id filter_id=f.filter_id value0=f.value0 value1=f.value1)
|
||||
is_valid(__type="bool") #{f.is_valid}
|
||||
qpro_secret
|
||||
head(__type="s64" __count="7") #{custom.qpro_secret_head[0]} #{custom.qpro_secret_head[1]} #{custom.qpro_secret_head[2]} #{custom.qpro_secret_head[3]} #{custom.qpro_secret_head[4]} #{custom.qpro_secret_head[5]} #{custom.qpro_secret_head[6]}
|
||||
hair(__type="s64" __count="7") #{custom.qpro_secret_hair[0]} #{custom.qpro_secret_hair[1]} #{custom.qpro_secret_hair[2]} #{custom.qpro_secret_hair[3]} #{custom.qpro_secret_hair[4]} #{custom.qpro_secret_hair[5]} #{custom.qpro_secret_hair[6]}
|
||||
face(__type="s64" __count="7") #{custom.qpro_secret_face[0]} #{custom.qpro_secret_face[1]} #{custom.qpro_secret_face[2]} #{custom.qpro_secret_face[3]} #{custom.qpro_secret_face[4]} #{custom.qpro_secret_face[5]} #{custom.qpro_secret_face[6]}
|
||||
body(__type="s64" __count="7") #{custom.qpro_secret_body[0]} #{custom.qpro_secret_body[1]} #{custom.qpro_secret_body[2]} #{custom.qpro_secret_body[3]} #{custom.qpro_secret_body[4]} #{custom.qpro_secret_body[5]} #{custom.qpro_secret_body[6]}
|
||||
hand(__type="s64" __count="7") #{custom.qpro_secret_hand[0]} #{custom.qpro_secret_hand[1]} #{custom.qpro_secret_hand[2]} #{custom.qpro_secret_hand[3]} #{custom.qpro_secret_hand[4]} #{custom.qpro_secret_hand[5]} #{custom.qpro_secret_hand[6]}
|
||||
back(__type="s64" __count="7") #{custom.qpro_secret_back[0]} #{custom.qpro_secret_back[1]} #{custom.qpro_secret_back[2]} #{custom.qpro_secret_back[3]} #{custom.qpro_secret_back[4]} #{custom.qpro_secret_back[5]} #{custom.qpro_secret_back[6]}
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
kiwami_data
|
||||
- for (let ed of eArray)
|
||||
detail(grade_type=ed.grade_type grade_id=ed.grade_id option=ed.option stage_num=ed.stage_num clear_type=ed.clear_type)
|
||||
past(__type="s32" __count="3") #{ed.past[0]} #{ed.past[1]} #{ed.past[2]}
|
||||
selected_course(__type="s32" __count="3") #{ed.selected_course[0]} #{ed.selected_course[1]} #{ed.selected_course[2]}
|
||||
max_past(__type="s32" __count="3") #{ed.max_past[0]} #{ed.max_past[1]} #{ed.max_past[2]}
|
||||
max_selected_course(__type="s32" __count="3") #{ed.max_selected_course[0]} #{ed.max_selected_course[1]} #{ed.max_selected_course[2]}
|
||||
skin(__type="s32" __count="20") #{appendsettings} #{custom.note_burst} #{custom.bomb_size} #{custom.turntable} #{custom.judge_font} #{custom.note_skin} #{custom.note_size} #{Number(custom.disable_musicpreview)} #{Number(custom.vefx_lock)} #{custom.effect} #{custom.menu_music} #{Number(custom.disable_hcn_color)} #{custom.first_note_preview} #{custom.lane_cover} #{custom.pacemaker_cover} #{custom.lift_cover} #{custom.note_beam} #{custom.note_beam_size} #{custom.full_combo_splash} #{custom.frame}
|
||||
tdjskin(__type="s16" __count="4") #{lm_custom.premium_skin} #{lm_custom.premium_bg} 0 0
|
||||
qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
is_robo(__type="bool") 0
|
||||
qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1] back=rd.qprodata[5])
|
||||
shop(name=shop_data.opname)
|
||||
notes_radar(style="0")
|
||||
radar_score(__type="s32" __count="6") #{pcdata.nr_spradar[0]} #{pcdata.nr_spradar[1]} #{pcdata.nr_spradar[2]} #{pcdata.nr_spradar[3]} #{pcdata.nr_spradar[4]} #{pcdata.nr_spradar[5]}
|
||||
notes_radar(style="1")
|
||||
radar_score(__type="s32" __count="6") #{pcdata.nr_dpradar[0]} #{pcdata.nr_dpradar[1]} #{pcdata.nr_dpradar[2]} #{pcdata.nr_dpradar[3]} #{pcdata.nr_dpradar[4]} #{pcdata.nr_dpradar[5]}
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
step(enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress total_point=pcdata.st_total_point enemy_defeat_flg=pcdata.st_enemy_defeat_flg sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_fluctuation=pcdata.st_sp_fluctuation dp_fluctuation=pcdata.st_dp_fluctuation mission_clear_num=pcdata.st_mission_clear_num sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay tips_read_list=pcdata.st_tips_read_list)
|
||||
is_track_ticket(__type="bool") #{pcdata.st_is_track_ticket}
|
||||
packinfo(music_0="-1" music_1="-1" music_2="-1" pack_id="1")
|
||||
achievements(last_weekly=pcdata.achi_lastweekly pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp rival_crush=pcdata.achi_rivalcrush visit_flg=pcdata.achi_visitflg weekly_num=pcdata.achi_weeklynum)
|
||||
deller(deller=pcdata.deller rate="1")
|
||||
orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb)
|
||||
old_linkage_secret_flg(bemani_mixup="-1" ccj_linkage="-1" triple_tribe="-1")
|
||||
arena_data(play_num="2" play_num_dp="1" play_num_sp="1" prev_best_class_sp="20" prev_best_class_dp="20")
|
||||
achieve_data(play_style="0" arena_class="20" rating_value="20" now_top_class_continuing="0" best_top_class_continuing="0" win_count="0" now_winning_streak_count="0" best_winning_streak_count="0" perfect_win_count="0" counterattack_num="0" mission_clear_num="0")
|
||||
achieve_data(play_style="1" arena_class="20" rating_value="20" now_top_class_continuing="0" best_top_class_continuing="0" win_count="0" now_winning_streak_count="0" best_winning_streak_count="0" perfect_win_count="0" counterattack_num="0" mission_clear_num="0")
|
||||
cube_data(cube="0" season_id="0")
|
||||
chat_data(chat_type_0="CHAT CUSTOM 1" chat_type_1="CHAT CUSTOM 2" chat_type_2="CHAT CUSTOM 3" chat_type_3="CHAT CUSTOM 4")
|
||||
is_chat_0(__type="bool") 1
|
||||
is_chat_1(__type="bool") 1
|
||||
is_chat_2(__type="bool") 1
|
||||
is_chat_3(__type="bool") 1
|
||||
skin_customize_flg(skin_frame_flg="-1" skin_turntable_flg="-1" skin_bomb_flg="-1" skin_bgm_flg="-1" skin_lane_flg0="-1" skin_lane_flg1="-1" skin_lane_flg2="-1" skin_lane_flg3="-1" skin_lane_flg4="-1" skin_lane_flg5="-1" skin_notes_flg="-1" skin_fullcombo_flg="-1" skin_keybeam_flg="-1" skin_judgestring_flg="-1")
|
||||
tdjskin_customize_flg(skin_submonitor_flg="-1" skin_subbg_flg="-1")
|
||||
event_1(event_play_num=pcdata.event_play_num last_select_map_id=pcdata.event_last_select_id)
|
||||
if pcdata.event_skip == true
|
||||
is_skip
|
||||
- for (let evt of evtArray)
|
||||
map_data(map_id=evt.map_id play_num=evt.play_num play_num_uc=evt.play_num_uc last_select_pos=evt.last_select_pos map_prog=evt.map_prog gauge=evt.gauge tile_num=evt.tile_num metron_total_get=evt.metron_total_get metron_total_use=evt.metron_total_use bank_date=evt.bank_date grade_bonus=evt.grade_bonus end_bonus=evt.end_bonus carryover_use=evt.carryover_use)
|
||||
- for (let evt2 of evtArray2)
|
||||
building_data(map_id=evt2.map_id pos=evt2.pos building=evt2.building use_tile=evt2.use_tile)
|
||||
- for (let evt3 of evtArray3)
|
||||
shop_data(map_id=evt3.map_id reward_id=evt3.reward_id prog=evt3.prog)
|
||||
if epo_res != null
|
||||
event_2(event_play_num=epo_res.event_play_num after_play_num=epo_res.after_play_num last_select_system_id=epo_res.last_select_system_id gate_key=epo_res.gate_key after_gauge=epo_res.after_gauge last_select_erosion_level=epo_res.last_select_erosion_level pack="-1" erosion_play_num="10" erosion5_clear12_num="10")
|
||||
- for (let data of epo_res_sub)
|
||||
system_data(system_id=data.system_id play_num=data.play_num unlock_prog=data.unlock_prog system_prog=data.system_prog gauge=data.gauge)
|
||||
ultimate_mobile_link(music_list="-1")
|
||||
link_flag
|
||||
valkyrie_linkage(music_list_1="-1" music_list_2="-1" music_list_3="-1")
|
||||
ccj_linkage(music_list="-1")
|
||||
triple_tribe_2(music_list="-1")
|
||||
language_setting(language=profile.language)
|
||||
movie_agreement(agreement_version="1")
|
||||
movie_setting
|
||||
hide_name(__type="bool") 0
|
||||
world_tourism
|
||||
- for (let wd of wArray)
|
||||
tour_data(tour_id=wd.tour_id progress=wd.progress)
|
||||
world_tourism_secret_flg
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
world_tourism_setting
|
||||
booster(__type="bool") 1
|
||||
bpl_s4_music_unlock
|
||||
badge
|
||||
- for (let b of bArray)
|
||||
badge_data(category_id=b.id badge_flg_id=b.flg_id badge_flg=b.flg)
|
||||
155
iidx@asphyxia/pug/LDJ/32pcget.pug
Normal file
155
iidx@asphyxia/pug/LDJ/32pcget.pug
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
IIDX32pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach mode=pcdata.mode category=pcdata.category pmode=pcdata.pmode ngrade=pcdata.ngrade rtype=pcdata.rtype bgnflg=pcdata.bgnflg player_kind=pcdata.player_kind sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 gpos=pcdata.gpos s_sorttype=pcdata.s_sorttype d_sorttype=pcdata.d_sorttype s_pace=pcdata.s_pace d_pace=pcdata.d_pace s_gno=pcdata.s_gno d_gno=pcdata.d_gno s_sub_gno=pcdata.s_sub_gno d_sub_gno=pcdata.d_sub_gno s_gtype=pcdata.s_gtype d_gtype=pcdata.d_gtype s_sdlen=pcdata.s_sdlen d_sdlen=pcdata.d_sdlen s_sdtype=pcdata.s_sdtype d_sdtype=pcdata.d_sdtype s_timing=pcdata.s_timing d_timing=pcdata.d_timing s_notes=pcdata.s_notes d_notes=pcdata.d_notes s_judge=pcdata.s_judge d_judge=pcdata.d_judge s_judgeAdj=pcdata.s_judgeAdj d_judgeAdj=pcdata.d_judgeAdj s_hispeed=pcdata.s_hispeed d_hispeed=pcdata.d_hispeed s_liflen=pcdata.s_liflen d_liflen=pcdata.d_liflen s_disp_judge=pcdata.s_disp_judge d_disp_judge=pcdata.d_disp_judge s_opstyle=pcdata.s_opstyle d_opstyle=pcdata.d_opstyle s_graph_score=pcdata.s_graph_score d_graph_score=pcdata.d_graph_score s_auto_scrach=pcdata.s_auto_scrach d_auto_scrach=pcdata.d_auto_scrach s_gauge_disp=pcdata.s_gauge_disp d_gauge_disp=pcdata.d_gauge_disp s_lane_brignt=pcdata.s_lane_brignt d_lane_brignt=pcdata.d_lane_brignt s_camera_layout=pcdata.s_camera_layout d_camera_layout=pcdata.d_camera_layout s_ghost_score=pcdata.s_ghost_score d_ghost_score=pcdata.d_ghost_score s_tsujigiri_disp=pcdata.s_tsujigiri_disp d_tsujigiri_disp=pcdata.d_tsujigiri_disp s_auto_adjust=pcdata.s_auto_adjust d_auto_adjust=pcdata.d_auto_adjust s_timing_split=pcdata.s_timing_split d_timing_split=pcdata.d_timing_split s_visualization=pcdata.s_visualization d_visualization=pcdata.d_visualization s_classic_hispeed=pcdata.s_classic_hispeed d_classic_hispeed=pcdata.d_classic_hispeed movie_thumbnail=pcdata.movie_thumbnail)
|
||||
lightning_play_data(dpnum=lm_playdata.dp_num spnum=lm_playdata.sp_num)
|
||||
lightning_setting(headphone_vol=lm_settings.headphone_vol resistance_dp_left=lm_settings.resistance_dp_left resistance_dp_right=lm_settings.resistance_dp_right resistance_sp_left=lm_settings.resistance_sp_left resistance_sp_right=lm_settings.resistance_sp_right keyboard_kind=lm_settings.keyboard_kind brightness=lm_settings.brightness)
|
||||
slider(__type="s32" __count="7") #{lm_settings.slider[0]} #{lm_settings.slider[1]} #{lm_settings.slider[2]} #{lm_settings.slider[3]} #{lm_settings.slider[4]} #{lm_settings.slider[5]} #{lm_settings.slider[6]}
|
||||
light(__type="bool" __count="10") #{lm_settings.light[0]} #{lm_settings.light[1]} #{lm_settings.light[2]} #{lm_settings.light[3]} #{lm_settings.light[4]} #{lm_settings.light[5]} #{lm_settings.light[6]} #{lm_settings.light[7]} #{lm_settings.light[8]} #{lm_settings.light[9]}
|
||||
concentration(__type="bool") #{lm_settings.concentration}
|
||||
spdp_rival(flg="-1")
|
||||
bind_eaappli
|
||||
ea_premium_course
|
||||
dellar_bonus(rate="100")
|
||||
secret
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
flg3(__type="s64" __count="3") -1 -1 -1
|
||||
flg4(__type="s64" __count="3") -1 -1 -1
|
||||
flg5(__type="s64" __count="3") -1 -1 -1
|
||||
leggendaria
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
music_memo
|
||||
- for (let m of mArray)
|
||||
folder(play_style=m.play_style folder_id=m.folder_idx name=m.folder_name)
|
||||
music_id(__type="s32" __count="10") #{m.music_ids[0]} #{m.music_ids[1]} #{m.music_ids[2]} #{m.music_ids[3]} #{m.music_ids[4]} #{m.music_ids[5]} #{m.music_ids[6]} #{m.music_ids[7]} #{m.music_ids[8]} #{m.music_ids[9]}
|
||||
music_filter
|
||||
- for (let f of fArray)
|
||||
folder(play_style=f.play_style folder_id=f.folder_id filter_id=f.filter_id value0=f.value0 value1=f.value1)
|
||||
is_valid(__type="bool") #{f.is_valid}
|
||||
- for (let fs of fsArray)
|
||||
sort(play_style=fs.play_style folder_id=fs.folder_id sort=fs.sort)
|
||||
qpro_secret
|
||||
head(__type="s64" __count="7") #{custom.qpro_secret_head[0]} #{custom.qpro_secret_head[1]} #{custom.qpro_secret_head[2]} #{custom.qpro_secret_head[3]} #{custom.qpro_secret_head[4]} #{custom.qpro_secret_head[5]} #{custom.qpro_secret_head[6]}
|
||||
hair(__type="s64" __count="7") #{custom.qpro_secret_hair[0]} #{custom.qpro_secret_hair[1]} #{custom.qpro_secret_hair[2]} #{custom.qpro_secret_hair[3]} #{custom.qpro_secret_hair[4]} #{custom.qpro_secret_hair[5]} #{custom.qpro_secret_hair[6]}
|
||||
face(__type="s64" __count="7") #{custom.qpro_secret_face[0]} #{custom.qpro_secret_face[1]} #{custom.qpro_secret_face[2]} #{custom.qpro_secret_face[3]} #{custom.qpro_secret_face[4]} #{custom.qpro_secret_face[5]} #{custom.qpro_secret_face[6]}
|
||||
body(__type="s64" __count="7") #{custom.qpro_secret_body[0]} #{custom.qpro_secret_body[1]} #{custom.qpro_secret_body[2]} #{custom.qpro_secret_body[3]} #{custom.qpro_secret_body[4]} #{custom.qpro_secret_body[5]} #{custom.qpro_secret_body[6]}
|
||||
hand(__type="s64" __count="7") #{custom.qpro_secret_hand[0]} #{custom.qpro_secret_hand[1]} #{custom.qpro_secret_hand[2]} #{custom.qpro_secret_hand[3]} #{custom.qpro_secret_hand[4]} #{custom.qpro_secret_hand[5]} #{custom.qpro_secret_hand[6]}
|
||||
back(__type="s64" __count="7") #{custom.qpro_secret_back[0]} #{custom.qpro_secret_back[1]} #{custom.qpro_secret_back[2]} #{custom.qpro_secret_back[3]} #{custom.qpro_secret_back[4]} #{custom.qpro_secret_back[5]} #{custom.qpro_secret_back[6]}
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
kiwami_data
|
||||
- for (let ed of eArray)
|
||||
detail(grade_type=ed.grade_type grade_id=ed.grade_id option=ed.option stage_num=ed.stage_num clear_type=ed.clear_type)
|
||||
past(__type="s32" __count="3") #{ed.past[0]} #{ed.past[1]} #{ed.past[2]}
|
||||
selected_course(__type="s32" __count="3") #{ed.selected_course[0]} #{ed.selected_course[1]} #{ed.selected_course[2]}
|
||||
max_past(__type="s32" __count="3") #{ed.max_past[0]} #{ed.max_past[1]} #{ed.max_past[2]}
|
||||
max_selected_course(__type="s32" __count="3") #{ed.max_selected_course[0]} #{ed.max_selected_course[1]} #{ed.max_selected_course[2]}
|
||||
skin(__type="s32" __count="20") #{appendsettings} #{custom.note_burst} #{custom.bomb_size} #{custom.turntable} #{custom.judge_font} #{custom.note_skin} #{custom.note_size} #{Number(custom.disable_musicpreview)} #{Number(custom.vefx_lock)} #{custom.effect} #{custom.menu_music} #{Number(custom.disable_hcn_color)} #{custom.first_note_preview} #{custom.lane_cover} #{custom.pacemaker_cover} #{custom.lift_cover} #{custom.note_beam} #{custom.note_beam_size} #{custom.full_combo_splash} #{custom.frame}
|
||||
tdjskin(__type="s32" __count="4") #{lm_custom.premium_skin} #{lm_custom.premium_bg} 0 0
|
||||
qprodata(__type="u32" __count="6") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body} #{custom.qpro_back}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
is_robo(__type="bool") 0
|
||||
qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1] back=rd.qprodata[5])
|
||||
shop(name=shop_data.opname)
|
||||
rlist_sub
|
||||
notes_radar(style="0")
|
||||
radar_score(__type="s32" __count="6") #{pcdata.nr_spradar[0]} #{pcdata.nr_spradar[1]} #{pcdata.nr_spradar[2]} #{pcdata.nr_spradar[3]} #{pcdata.nr_spradar[4]} #{pcdata.nr_spradar[5]}
|
||||
notes_radar(style="1")
|
||||
radar_score(__type="s32" __count="6") #{pcdata.nr_dpradar[0]} #{pcdata.nr_dpradar[1]} #{pcdata.nr_dpradar[2]} #{pcdata.nr_dpradar[3]} #{pcdata.nr_dpradar[4]} #{pcdata.nr_dpradar[5]}
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
step(enemy_damage=pcdata.st_enemy_damage progress=pcdata.st_progress total_point=pcdata.st_total_point enemy_defeat_flg=pcdata.st_enemy_defeat_flg sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_level_h=pcdata.st_sp_level_h dp_level_h=pcdata.st_dp_level_h sp_level_exh=pcdata.st_sp_level_exh dp_level_exh=pcdata.st_dp_level_exh sp_fluctuation=pcdata.st_sp_fluctuation dp_fluctuation=pcdata.st_dp_fluctuation mission_clear_num=pcdata.st_mission_clear_num sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay tips_read_list=pcdata.st_tips_read_list)
|
||||
is_track_ticket(__type="bool") #{pcdata.st_is_track_ticket}
|
||||
packinfo(music_0="-1" music_1="-1" music_2="-1" pack_id="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)
|
||||
deller(deller=pcdata.deller)
|
||||
orb_data(rest_orb=pcdata.orb present_orb=pcdata.present_orb)
|
||||
old_linkage_secret_flg(triple_tribe="-1" triple_tribe_2="-1")
|
||||
arena_data(play_num="2" play_num_dp="1" play_num_sp="1" prev_best_class_sp="20" prev_best_class_dp="20")
|
||||
achieve_data(play_style="0" arena_class="20" rating_value="20" now_top_class_continuing="0" best_top_class_continuing="0" win_count="0" now_winning_streak_count="0" best_winning_streak_count="0" perfect_win_count="0" counterattack_num="0" mission_clear_num="0")
|
||||
achieve_data(play_style="1" arena_class="20" rating_value="20" now_top_class_continuing="0" best_top_class_continuing="0" win_count="0" now_winning_streak_count="0" best_winning_streak_count="0" perfect_win_count="0" counterattack_num="0" mission_clear_num="0")
|
||||
cube_data(cube="0" season_id="0")
|
||||
//-chat_data(chat_type_0="CHAT CUSTOM 1" chat_type_1="CHAT CUSTOM 2" chat_type_2="CHAT CUSTOM 3" chat_type_3="CHAT CUSTOM 4")
|
||||
is_chat_0(__type="bool") 1
|
||||
is_chat_1(__type="bool") 1
|
||||
is_chat_2(__type="bool") 1
|
||||
is_chat_3(__type="bool") 1
|
||||
default_chat
|
||||
skin_customize_flg(skin_frame_flg="-1" skin_turntable_flg="-1" skin_bomb_flg="-1" skin_bgm_flg="-1" skin_lane_flg0="-1" skin_lane_flg1="-1" skin_lane_flg2="-1" skin_lane_flg3="-1" skin_lane_flg4="-1" skin_lane_flg5="-1" skin_notes_flg="-1" skin_fullcombo_flg="-1" skin_keybeam_flg="-1" skin_judgestring_flg="-1")
|
||||
tdjskin_customize_flg(skin_submonitor_flg="-1" skin_subbg_flg="-1")
|
||||
event_1(event_play_num=pcdata.event_play_num last_select_booth_id=pcdata.event_last_select_id)
|
||||
if pcdata.event_skip == true
|
||||
is_skip
|
||||
- for (let evt of evtArray)
|
||||
booth_data(booth_id=evt.booth_id play_num=evt.play_num play_num_uc=evt.play_num_uc success_num=evt.success_num last_select_qpro_index=evt.last_select_qpro_index booth_prog=evt.booth_prog customer_n=evt.customer_n customer_h=evt.customer_h customer_a=evt.customer_a customer_l=evt.customer_l hire_num=evt.hire_num)
|
||||
flg_l(__type="bool") #{evt.flg_l}
|
||||
- for (let evt2 of evtArray2)
|
||||
booth_qpro_data(booth_id=evt2.booth_id index=evt2.index head_parts=evt2.head_parts hair_parts=evt2.hair_parts face_parts=evt2.face_parts body_parts=evt2.body_parts hand_parts=evt2.hand_parts param_n=evt2.param_n param_h=evt2.param_h param_a=evt2.param_a param_l=evt2.param_l exp=evt2.exp performance_date=evt2.performance_date)
|
||||
- for (let evtRival of evtArray3)
|
||||
rival(index=evtRival.index name=evtRival.name iidx_id=evtRival.iidx_id head=evtRival.head hair=evtRival.hair face=evtRival.face body=evtRival.body hand=evtRival.hand back=evtRival.back)
|
||||
if pinky_ug != null
|
||||
event_2(event_play_num=pinky_ug.event_play_num last_select_hall_id=pinky_ug.last_select_hall_id)
|
||||
- for (let evt4 of pinky_ug_hall)
|
||||
hall_data(hall_id=evt4.hall_id play_num=evt4.play_num last_select_skill_index=evt4.last_select_skill_index hall_prog=evt4.hall_prog defeat_num=evt4.defeat_num pp_0=evt4.pp_0 pp_1=evt4.pp_1 pp_2=evt4.pp_2 pp_3=evt4.pp_3 pp_4=evt4.pp_4 pp_5=evt4.pp_5 skill_1=evt4.skill_1 skill_2=evt4.skill_2 skill_3=evt4.skill_3 cool_1=evt4.cool_1 cool_2=evt4.cool_2 cool_3=evt4.cool_3 param_1=evt4.param_1 param_2=evt4.param_2 param_3=evt4.param_3)
|
||||
- for (let evt5 of pinky_ug_qpro)
|
||||
hall_qpro_data(hall_id=evt5.hall_id index=evt5.index head_parts=evt5.head_parts hair_parts=evt5.hair_parts face_parts=evt5.face_parts body_parts=evt5.body_parts hand_parts=evt5.hand_parts)
|
||||
- for (let evtRival of evtArray3)
|
||||
rival(index=evtRival.index name=evtRival.name iidx_id=evtRival.iidx_id head=evtRival.head hair=evtRival.hair face=evtRival.face body=evtRival.body hand=evtRival.hand back=evtRival.back)
|
||||
ultimate_mobile_link(music_list="-1")
|
||||
link_flag
|
||||
valkyrie_linkage(music_list_1="-1" music_list_2="-1" music_list_3="-1")
|
||||
ccj_linkage(music_list="-1")
|
||||
triple_tribe_3(music_list="-1")
|
||||
triple_tribe_4(music_list="-1")
|
||||
//-reflecbeat_event(music_list="-1")
|
||||
//-beatstream_event(music_list="-1")
|
||||
//-museca_event(music_list="-1")
|
||||
//-pawapuro(prog="" power="")
|
||||
language_setting(language=profile.language)
|
||||
movie_agreement(agreement_version="1")
|
||||
movie_setting
|
||||
hide_name(__type="bool") 0
|
||||
- for (let ebe of ebeArray)
|
||||
extra_boss_event(phase=ebe.phase extra=ebe.extra extra_b=ebe.extra_b onemore=ebe.onemore onemore_b=ebe.onemore_b)
|
||||
world_tourism
|
||||
- for (let wd of wArray)
|
||||
tour_data(tour_id=wd.tour_id progress=wd.progress)
|
||||
world_tourism_secret_flg
|
||||
flg1(__type="s64" __count="3") -1 -1 -1
|
||||
flg2(__type="s64" __count="3") -1 -1 -1
|
||||
world_tourism_setting
|
||||
booster(__type="bool") 1
|
||||
badge
|
||||
- for (let b of bArray)
|
||||
badge_data(category_id=b.id badge_flg_id=b.flg_id badge_flg=b.flg)
|
||||
activity
|
||||
today(day_id=activityDayId date=activityTimestamp)
|
||||
if activityTodaySP != null
|
||||
today_data(play_style=activityTodaySP.play_style music_num=activityTodaySP.music_num play_time=activityTodaySP.play_time keyboard_num=activityTodaySP.keyboard_num scratch_num=activityTodaySP.scratch_num)
|
||||
clear_update_num(__type="s32" __count="13") #{activityTodaySP.clear_update_num[0]} #{activityTodaySP.clear_update_num[1]} #{activityTodaySP.clear_update_num[2]} #{activityTodaySP.clear_update_num[3]} #{activityTodaySP.clear_update_num[4]} #{activityTodaySP.clear_update_num[5]} #{activityTodaySP.clear_update_num[6]} #{activityTodaySP.clear_update_num[7]} #{activityTodaySP.clear_update_num[8]} #{activityTodaySP.clear_update_num[9]} #{activityTodaySP.clear_update_num[10]} #{activityTodaySP.clear_update_num[11]} #{activityTodaySP.clear_update_num[12]}
|
||||
score_update_num(__type="s32" __count="13") #{activityTodaySP.score_update_num[0]} #{activityTodaySP.score_update_num[1]} #{activityTodaySP.score_update_num[2]} #{activityTodaySP.score_update_num[3]} #{activityTodaySP.score_update_num[4]} #{activityTodaySP.score_update_num[5]} #{activityTodaySP.score_update_num[6]} #{activityTodaySP.score_update_num[7]} #{activityTodaySP.score_update_num[8]} #{activityTodaySP.score_update_num[9]} #{activityTodaySP.score_update_num[10]} #{activityTodaySP.score_update_num[11]} #{activityTodaySP.score_update_num[12]}
|
||||
if activityTodayDP != null
|
||||
today_data(play_style=activityTodayDP.play_style music_num=activityTodayDP.music_num play_time=activityTodayDP.play_time keyboard_num=activityTodayDP.keyboard_num scratch_num=activityTodayDP.scratch_num)
|
||||
clear_update_num(__type="s32" __count="13") #{activityTodayDP.clear_update_num[0]} #{activityTodayDP.clear_update_num[1]} #{activityTodayDP.clear_update_num[2]} #{activityTodayDP.clear_update_num[3]} #{activityTodayDP.clear_update_num[4]} #{activityTodayDP.clear_update_num[5]} #{activityTodayDP.clear_update_num[6]} #{activityTodayDP.clear_update_num[7]} #{activityTodayDP.clear_update_num[8]} #{activityTodayDP.clear_update_num[9]} #{activityTodayDP.clear_update_num[10]} #{activityTodayDP.clear_update_num[11]} #{activityTodayDP.clear_update_num[12]}
|
||||
score_update_num(__type="s32" __count="13") #{activityTodayDP.score_update_num[0]} #{activityTodayDP.score_update_num[1]} #{activityTodayDP.score_update_num[2]} #{activityTodayDP.score_update_num[3]} #{activityTodayDP.score_update_num[4]} #{activityTodayDP.score_update_num[5]} #{activityTodayDP.score_update_num[6]} #{activityTodayDP.score_update_num[7]} #{activityTodayDP.score_update_num[8]} #{activityTodayDP.score_update_num[9]} #{activityTodayDP.score_update_num[10]} #{activityTodayDP.score_update_num[11]} #{activityTodayDP.score_update_num[12]}
|
||||
weekly
|
||||
week_data(play_style="0")
|
||||
- for (let a of activityWeekSP)
|
||||
week(week_index=a.week_index week_id=a.week_id date=a.date music_num=a.music_num play_time=a.play_time keyboard_num=a.keyboard_num scratch_num=a.scratch_num)
|
||||
clear_update_num(__type="s32" __count="13") #{a.clear_update_num[0]} #{a.clear_update_num[1]} #{a.clear_update_num[2]} #{a.clear_update_num[3]} #{a.clear_update_num[4]} #{a.clear_update_num[5]} #{a.clear_update_num[6]} #{a.clear_update_num[7]} #{a.clear_update_num[8]} #{a.clear_update_num[9]} #{a.clear_update_num[10]} #{a.clear_update_num[11]} #{a.clear_update_num[12]}
|
||||
score_update_num(__type="s32" __count="13") #{a.score_update_num[0]} #{a.score_update_num[1]} #{a.score_update_num[2]} #{a.score_update_num[3]} #{a.score_update_num[4]} #{a.score_update_num[5]} #{a.score_update_num[6]} #{a.score_update_num[7]} #{a.score_update_num[8]} #{a.score_update_num[9]} #{a.score_update_num[10]} #{a.score_update_num[11]} #{a.score_update_num[12]}
|
||||
week_data(play_style="1")
|
||||
- for (let b of activityWeekDP)
|
||||
week(week_index=b.week_index week_id=b.week_id date=b.date music_num=b.music_num play_time=b.play_time keyboard_num=b.keyboard_num scratch_num=b.scratch_num)
|
||||
clear_update_num(__type="s32" __count="13") #{b.clear_update_num[0]} #{b.clear_update_num[1]} #{b.clear_update_num[2]} #{b.clear_update_num[3]} #{b.clear_update_num[4]} #{b.clear_update_num[5]} #{b.clear_update_num[6]} #{b.clear_update_num[7]} #{b.clear_update_num[8]} #{b.clear_update_num[9]} #{b.clear_update_num[10]} #{b.clear_update_num[11]} #{b.clear_update_num[12]}
|
||||
score_update_num(__type="s32" __count="13") #{b.score_update_num[0]} #{b.score_update_num[1]} #{b.score_update_num[2]} #{b.score_update_num[3]} #{b.score_update_num[4]} #{b.score_update_num[5]} #{b.score_update_num[6]} #{b.score_update_num[7]} #{b.score_update_num[8]} #{b.score_update_num[9]} #{b.score_update_num[10]} #{b.score_update_num[11]} #{b.score_update_num[12]}
|
||||
mynews
|
||||
- for (let a of activityMynews)
|
||||
detail(play_style=a.play_style kind=a.kind news_no=a.news_no index=a.index day_id=a.day_id music_id=a.music_id note_id=a.note_id best_score=a.best_score now_score=a.now_score now_clear=a.now_clear news_time=a.news_time)
|
||||
best_result
|
||||
- for (let a of activityMybest)
|
||||
best_data(play_style=a.play_style kind=a.kind play_side=a.play_side music_id=a.music_id note_id=a.note_id target_graph=a.target_graph target_score=a.target_score pacemaker=a.pacemaker best_clear=a.best_clear best_score=a.best_score best_misscount=a.best_misscount now_clear=a.now_clear now_score=a.now_score now_misscount=a.now_misscount now_pgreat=a.now_pgreat now_great=a.now_great now_good=a.now_good now_bad=a.now_bad now_poor=a.now_poor now_combo=a.now_combo now_fast=a.now_fast now_slow=a.now_slow option=a.option option2=a.option_2 gauge_type=a.gauge_type result_type=a.result_type update_date=a.update_date)
|
||||
ghost_gauge_data(__type="bin") #{a.ghost_gauge_data}
|
||||
is_special_result(__type="bool") #{a.is_special_result}
|
||||
51
iidx@asphyxia/pug/LDJ/pcget.pug
Normal file
51
iidx@asphyxia/pug/LDJ/pcget.pug
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
pc(status="0")
|
||||
pcdata(id=profile.id idstr=profile.idstr name=profile.name pid=profile.pid spnum=pcdata.spnum dpnum=pcdata.dpnum sach=pcdata.sach dach=pcdata.dach help=pcdata.help gno=pcdata.gno gpos=pcdata.gpos timing=pcdata.timing sdhd=pcdata.sdhd sdtype=pcdata.sdtype notes=pcdata.notes pase=pcdata.pase sp_opt=pcdata.sp_opt dp_opt=pcdata.dp_opt dp_opt2=pcdata.dp_opt2 mode=pcdata.mode pmode=pcdata.pmode liflen=pcdata.liflen judge=pcdata.judge opstyle=pcdata.opstyle hispeed=pcdata.hispeed judgeAdj=pcdata.judgeAdj)
|
||||
secret
|
||||
flg1(__type="s64" __count="1") -1
|
||||
flg2(__type="s64" __count="1") -1
|
||||
flg3(__type="s64" __count="1") -1
|
||||
qpro_secret
|
||||
head(__type="s64" __count="2") -1 -1
|
||||
hair(__type="s64" __count="2") -1 -1
|
||||
face(__type="s64" __count="2") -1 -1
|
||||
body(__type="s64" __count="2") -1 -1
|
||||
hand(__type="s64" __count="2") -1 -1
|
||||
grade(sgid=pcdata.sgid dgid=pcdata.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
skin(__type="s16" __count="14") #{custom.frame} #{custom.turntable} #{custom.note_burst} #{custom.menu_music} #{appendsettings} #{custom.lane_cover} 0 #{custom.category_vox} #{custom.note_skin} #{custom.full_combo_splash} 0 #{Number(custom.disable_musicpreview)} 0 0
|
||||
qprodata(__type="u32" __count="5") #{custom.qpro_head} #{custom.qpro_hair} #{custom.qpro_face} #{custom.qpro_hand} #{custom.qpro_body}
|
||||
rlist
|
||||
- for (let rd of rArray)
|
||||
rival(spdp=rd.play_style id=rd.profile[2] id_str=rd.profile[3] djname=rd.profile[0] pid=rd.profile[1] sg=rd.pcdata[0] dg=rd.pcdata[1] sa=rd.pcdata[2] da=rd.pcdata[3])
|
||||
stepdata(step_sach=rd.pcdata[4] step_dach=rd.pcdata[5])
|
||||
qprodata(body=rd.qprodata[3] face=rd.qprodata[2] hair=rd.qprodata[0] hand=rd.qprodata[4] head=rd.qprodata[1])
|
||||
shop(name=shop_data.opname)
|
||||
join_shop(joinflg="1" join_cflg="1" join_id="ea" join_name=shop_data.opname)
|
||||
visitor(anum="10" snum="10" pnum="10" vs_flg="1")
|
||||
fcombo(__type="s16" __count="2") #{pcdata.fcombo[0]} #{pcdata.fcombo[1]}
|
||||
step(sp_ach=pcdata.st_sp_ach dp_ach=pcdata.st_dp_ach sp_hdpt=pcdata.st_sp_hdpt dp_hdpt=pcdata.st_dp_hdpt sp_level=pcdata.st_sp_level dp_level=pcdata.st_dp_level sp_round=pcdata.st_sp_round dp_round=pcdata.st_dp_round sp_mplay=pcdata.st_sp_mplay dp_mplay=pcdata.st_dp_mplay review=pcdata.st_review)
|
||||
stamp(__type="bin") #{pcdata.st_stamp}
|
||||
help(__type="bin") #{pcdata.st_help}
|
||||
achievements(last_weekly=pcdata.achi_lastweekly pack=pcdata.achi_pack pack_comp=pcdata.achi_packcomp rival_crush=pcdata.achi_rivalcrush visit_flg=pcdata.achi_visitflg weekly_num=pcdata.achi_weeklynum)
|
||||
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]}
|
||||
if link5 != null
|
||||
link5(qpro=link5.qpro glass=link5.glass treasure="0" beautiful=link5.beautiful quaver=link5.quaver castle=link5.castle flip=link5.flip titans=link5.titans exusia=link5.exusia waxing=link5.waxing sampling=link5.sampling beachside=link5.beachside cuvelia=link5.cuvelia reunion=link5.reunion bad=link5.bad turii=link5.turii anisakis=link5.anisakis second=link5.second whydidyou=link5.whydidyou china=link5.china fallen=link5.fallen broken=link5.broken summer=link5.summer sakura=link5.sakura wuv=link5.wuv survival=link5.survival thunder=link5.thunder qproflg="0" glassflg="0" reflec_data="0")
|
||||
//-cafe(food pastry rainbow beastie astraia beachimp holysnow trueblue ledvsscu service is_first)
|
||||
gakuen(music_list="-1")
|
||||
if tricolettepark != null
|
||||
tricolettepark(open_music=tricolettepark.open_music boss0_damage=tricolettepark.boss0_damage boss1_damage=tricolettepark.boss1_damage boss2_damage=tricolettepark.boss2_damage boss3_damage=tricolettepark.boss3_damage boss0_stun=tricolettepark.boss0_stun boss1_stun=tricolettepark.boss1_stun boss2_stun=tricolettepark.boss2_stun boss3_stun=tricolettepark.boss3_stun magic_gauge="0" party="0" is_union="0" attack_rate="1")
|
||||
commonboss(deller=pcdata.deller orb=pcdata.orb baron="0")
|
||||
if redboss != null
|
||||
redboss(progress=redboss.progress crush=redboss.crush open=redboss.open)
|
||||
if blueboss != null
|
||||
blueboss(level=blueboss.level gauge=blueboss.gauge item=blueboss.item item_flg=blueboss.item_flg row0=blueboss.row0 row1=blueboss.row1 column0=blueboss.column0 column1=blueboss.column1 sector=blueboss.sector first_flg=blueboss.first_flg general=blueboss.general)
|
||||
durability(__type="bin") #{blueboss.durability}
|
||||
if yellowboss != null
|
||||
yellowboss(join_num="1" first_flg=yellowboss.first_flg level=yellowboss.level heroic0=yellowboss.heroic0 heroic1=yellowboss.heroic1 critical=yellowboss.critical destiny="0" last_select=yellowboss.last_select shop_message="SHOP MESSAGE" special_move="SPECIAL MOVE")
|
||||
//-shop_damage(__type="s32" __count="7")
|
||||
p_attack(__type="s32" __count="7") #{yellowboss.p_attack[0]} #{yellowboss.p_attack[1]} #{yellowboss.p_attack[2]} #{yellowboss.p_attack[3]} #{yellowboss.p_attack[4]} #{yellowboss.p_attack[5]} #{yellowboss.p_attack[6]}
|
||||
pbest_attack(__type="s32" __count="7") #{yellowboss.pbest_attack[0]} #{yellowboss.pbest_attack[1]} #{yellowboss.pbest_attack[2]} #{yellowboss.pbest_attack[3]} #{yellowboss.pbest_attack[4]} #{yellowboss.pbest_attack[5]} #{yellowboss.pbest_attack[6]}
|
||||
defeat(__type="bool" __count="7") #{yellowboss.defeat[0]} #{yellowboss.defeat[1]} #{yellowboss.defeat[2]} #{yellowboss.defeat[3]} #{yellowboss.defeat[4]} #{yellowboss.defeat[5]} #{yellowboss.defeat[6]}
|
||||
//-contribution(bno rank contribution head_parts hair_parts face_parts body_parts hand_parts myflg message name) (loop)
|
||||
//-random_qpro(head_parts hair_parts face_parts body_parts hand_parts) (loop)
|
||||
246
iidx@asphyxia/util.ts
Normal file
246
iidx@asphyxia/util.ts
Normal file
|
|
@ -0,0 +1,246 @@
|
|||
import { custom } from "./models/custom";
|
||||
import { pcdata } from "./models/pcdata";
|
||||
import { profile } from "./models/profile";
|
||||
|
||||
export function IDtoCode(id: number) {
|
||||
const padded = _.padStart(String(id), 8);
|
||||
|
||||
return `${padded.slice(0, 4)}-${padded.slice(4)}`;
|
||||
}
|
||||
|
||||
export async function IDtoRef(iidxid: number) {
|
||||
const profile = await DB.FindOne<profile>(null, {
|
||||
collection: "profile",
|
||||
id: iidxid,
|
||||
});
|
||||
|
||||
if (_.isNil(profile)) return null;
|
||||
|
||||
return profile.__refid;
|
||||
}
|
||||
|
||||
export function OldMidToVerMid(mid: number) {
|
||||
return [Math.floor(mid / 100), mid % 100];
|
||||
}
|
||||
|
||||
export function OldMidToNewMid(mid: number) {
|
||||
const numberString = String(mid);
|
||||
|
||||
return Number(`${numberString.slice(0, -2)}0${numberString.slice(-2)}`);
|
||||
}
|
||||
|
||||
export function NewMidToOldMid(mid: number) {
|
||||
const numberString = String(mid);
|
||||
if (numberString.length == 4) return Number(`${numberString.slice(0, 1)}${numberString.slice(-2)}`);
|
||||
|
||||
return Number(`${numberString.slice(0, 2)}${numberString.slice(3)}`);
|
||||
}
|
||||
|
||||
export function ClidToPlaySide(clid: number) {
|
||||
return clid < 5 ? 0 : 1;
|
||||
}
|
||||
|
||||
export function NumArrayToString(bits: number[], numArray: number[]): string {
|
||||
const characters = "0123456789:;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
let byteSum = 0;
|
||||
let byteIndex = 0;
|
||||
if (bits.length > 0) {
|
||||
do {
|
||||
byteSum = bits[byteIndex] + byteSum;
|
||||
byteIndex++;
|
||||
} while (byteIndex < bits.length);
|
||||
}
|
||||
|
||||
let result = "";
|
||||
let numIdx = 0;
|
||||
if (!_.isNil(numArray) && !_.isNaN(numArray[0])) {
|
||||
let numArrayIdx = 0;
|
||||
if (numArray.length > 0) {
|
||||
let combined = 0;
|
||||
do {
|
||||
if (numIdx == 0) combined = 0;
|
||||
|
||||
const b = bits[numArrayIdx];
|
||||
combined = ((numArray[numIdx] & (1 << b) - 1) | combined << b);
|
||||
numArrayIdx++;
|
||||
if (numArrayIdx == bits.length) {
|
||||
combined <<= 32 - byteSum;
|
||||
|
||||
const characterCount = Math.floor((byteSum + 5) / 6);
|
||||
if (characterCount > 0) {
|
||||
let charaIdx = 26;
|
||||
let charaLoopCnt = characterCount;
|
||||
do {
|
||||
const character = (combined >> charaIdx) & 63;
|
||||
result += characters.charAt(character);
|
||||
|
||||
charaIdx -= 6;
|
||||
charaLoopCnt--;
|
||||
} while (charaLoopCnt > 0);
|
||||
}
|
||||
numArrayIdx = 0;
|
||||
}
|
||||
numIdx++;
|
||||
} while (numIdx < numArray.length);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
export function GetVersion(info: EamuseInfo) {
|
||||
let version = -1;
|
||||
switch (info.model.slice(0, 3)) {
|
||||
case "GLD": return 14;
|
||||
case "HDD": return 15;
|
||||
case "I00": return 16;
|
||||
case "JDJ": return 17;
|
||||
case "JDZ": return 18;
|
||||
case "KDZ": return 19;
|
||||
case "LDJ":
|
||||
version = Number(info.module.slice(4, 6));
|
||||
if (_.isNaN(version)) version = 20;
|
||||
break;
|
||||
}
|
||||
|
||||
return version;
|
||||
}
|
||||
|
||||
export function appendSettingConverter(
|
||||
rf: boolean,
|
||||
cf: boolean,
|
||||
df: boolean,
|
||||
af: boolean,
|
||||
rsf: boolean,
|
||||
rbf: boolean,
|
||||
ri: boolean,
|
||||
hpc: boolean,
|
||||
dgc: boolean,
|
||||
chs: boolean,
|
||||
rpf: boolean,
|
||||
hii: boolean,
|
||||
dbo: boolean,
|
||||
) {
|
||||
const result =
|
||||
Number(rf) << 0 |
|
||||
Number(cf) << 1 |
|
||||
Number(df) << 2 |
|
||||
Number(af) << 3 |
|
||||
Number(rsf) << 4 |
|
||||
Number(rbf) << 6 |
|
||||
Number(ri) << 7 |
|
||||
Number(hpc) << 8 |
|
||||
Number(dgc) << 9 |
|
||||
Number(chs) << 10 |
|
||||
Number(rpf) << 11 |
|
||||
Number(hii) << 12 |
|
||||
Number(dbo) << 14;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function ReftoProfile(refid: string) {
|
||||
const profile = await DB.FindOne<profile>(refid, {
|
||||
collection: "profile",
|
||||
});
|
||||
|
||||
let profile_data = [];
|
||||
|
||||
try {
|
||||
profile_data = [
|
||||
profile.name,
|
||||
profile.pid,
|
||||
profile.id,
|
||||
profile.idstr,
|
||||
];
|
||||
} catch {
|
||||
profile_data = ["", 0, 0, ""];
|
||||
}
|
||||
|
||||
return profile_data;
|
||||
}
|
||||
|
||||
export async function ReftoPcdata(refid: string, version: number) {
|
||||
const pcdata = await DB.FindOne<pcdata>(refid, {
|
||||
collection: "pcdata",
|
||||
version: version,
|
||||
});
|
||||
|
||||
let p_data = [];
|
||||
try {
|
||||
switch (version) {
|
||||
case 20:
|
||||
case 21:
|
||||
case 22:
|
||||
case 23:
|
||||
case 24:
|
||||
case 25:
|
||||
case 26:
|
||||
p_data = [
|
||||
pcdata.sgid,
|
||||
pcdata.dgid,
|
||||
pcdata.sach,
|
||||
pcdata.dach,
|
||||
pcdata.st_sp_ach,
|
||||
pcdata.st_dp_ach,
|
||||
];
|
||||
break;
|
||||
default:
|
||||
p_data = [
|
||||
pcdata.sgid,
|
||||
pcdata.dgid,
|
||||
pcdata.sach,
|
||||
pcdata.dach,
|
||||
];
|
||||
break;
|
||||
}
|
||||
|
||||
// this seems leftover from tricoro but still being referenced until HEROIC VERSE [st_sp_ach/st_dp_ach] //
|
||||
for (let a = 0; a < p_data.length; a++) {
|
||||
if (_.isNil(p_data[a])) p_data[a] = 0;
|
||||
}
|
||||
|
||||
} catch {
|
||||
p_data = [0, 0, 0, 0, 0, 0];
|
||||
}
|
||||
|
||||
return p_data;
|
||||
}
|
||||
|
||||
export async function ReftoQPRO(refid: string, version: number) {
|
||||
const custom = await DB.FindOne<custom>(refid, {
|
||||
collection: "custom",
|
||||
version: version,
|
||||
});
|
||||
|
||||
let qpro_data = [];
|
||||
try {
|
||||
if (version >= 31) {
|
||||
qpro_data = [
|
||||
custom.qpro_hair,
|
||||
custom.qpro_head,
|
||||
custom.qpro_face,
|
||||
custom.qpro_body,
|
||||
custom.qpro_hand,
|
||||
custom.qpro_back,
|
||||
];
|
||||
}
|
||||
else {
|
||||
qpro_data = [
|
||||
custom.qpro_hair,
|
||||
custom.qpro_head,
|
||||
custom.qpro_face,
|
||||
custom.qpro_body,
|
||||
custom.qpro_hand,
|
||||
];
|
||||
}
|
||||
} catch {
|
||||
qpro_data = [0, 0, 0, 0, 0, 0];
|
||||
}
|
||||
|
||||
return qpro_data;
|
||||
}
|
||||
|
||||
export function GetWeekId(date: Date) {
|
||||
return Math.ceil((((date.getTime() - Date.UTC(date.getFullYear(), 0, 1)) / 86400000) + new Date(date.getFullYear(), 0, 1).getDay()) / 7);
|
||||
}
|
||||
31
iidx@asphyxia/webui/asset/js/detail.js
Normal file
31
iidx@asphyxia/webui/asset/js/detail.js
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
$("#version").on("change", function () {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/emit/iidxGetProfile",
|
||||
data: {
|
||||
refid: refid,
|
||||
version: this.value,
|
||||
},
|
||||
dataType: "text",
|
||||
success: function (result) {
|
||||
let data = JSON.parse(result);
|
||||
|
||||
if (data["pcdata"] == null) {
|
||||
alert("Theres no profile data available on this version!");
|
||||
return;
|
||||
}
|
||||
|
||||
let sp_grade = data["pcdata"].sgid;
|
||||
let dp_grade = data["pcdata"].dgid;
|
||||
|
||||
if (sp_grade == -1) sp_grade = "----";
|
||||
if (dp_grade == -1) dp_grade = "----";
|
||||
|
||||
$("#sp_grade").text(sp_grade);
|
||||
$("#dp_grade").text(dp_grade);
|
||||
},
|
||||
error: function () {
|
||||
alert("Unable to process data");
|
||||
}
|
||||
});
|
||||
});
|
||||
80
iidx@asphyxia/webui/asset/js/setting.js
Normal file
80
iidx@asphyxia/webui/asset/js/setting.js
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
$("#version").on("change", function () {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/emit/iidxGetSetting",
|
||||
data: {
|
||||
refid: refid,
|
||||
version: this.value,
|
||||
},
|
||||
dataType: "text",
|
||||
success: function (result) {
|
||||
let data = JSON.parse(result);
|
||||
|
||||
if (data["custom"] == null) {
|
||||
alert("Theres no customize data available on this version!");
|
||||
return;
|
||||
}
|
||||
|
||||
$("#frame").val(data["custom"].frame);
|
||||
$("#turntable").val(data["custom"].turntable);
|
||||
$("#note_burst").val(data["custom"].note_burst);
|
||||
$("#menu_music").val(data["custom"].menu_music);
|
||||
$("#lane_cover").val(data["custom"].lane_cover);
|
||||
$("#category_vox").val(data["custom"].category_vox);
|
||||
$("#note_skin").val(data["custom"].note_skin);
|
||||
$("#full_combo_splash").val(data["custom"].full_combo_splash);
|
||||
$("#note_beam").val(data["custom"].note_beam);
|
||||
$("#judge_font").val(data["custom"].judge_font);
|
||||
$("#disable_musicpreview").prop("checked", data["custom"].disable_musicpreview);
|
||||
$("#pacemaker_cover").val(data["custom"].pacemaker_cover);
|
||||
$("#vefx_lock").prop("checked", data["custom"].vefx_lock);
|
||||
$("#effect").val(data["custom"].effect);
|
||||
$("#bomb_size").val(data["custom"].bomb_size);
|
||||
$("#disable_hcn_color").prop("checked", data["custom"].disable_hcn_color);
|
||||
$("#first_note_preview").val(data["custom"].first_note_preview);
|
||||
|
||||
if (data["custom"].note_size == undefined) $("#note_size").val(0);
|
||||
else $("#note_size").val(data["custom"].note_size);
|
||||
if (data["custom"].lift_cover == undefined) $("#lift_cover").val(0);
|
||||
else $("#lift_cover").val(data["custom"].lift_cover);
|
||||
if (data["custom"].note_beam_size == undefined) $("#note_beam_size").val(0);
|
||||
else $("#note_beam_size").val(data["custom"].note_beam_size);
|
||||
|
||||
$("#rank_folder").prop("checked", data["custom"].rank_folder);
|
||||
$("#clear_folder").prop("checked", data["custom"].clear_folder);
|
||||
$("#diff_folder").prop("checked", data["custom"].diff_folder);
|
||||
$("#alpha_folder").prop("checked", data["custom"].alpha_folder);
|
||||
$("#rival_folder").prop("checked", data["custom"].rival_folder);
|
||||
$("#rival_battle_folder").prop("checked", data["custom"].rival_battle_folder);
|
||||
$("#rival_info").prop("checked", data["custom"].rival_info);
|
||||
$("#hide_playcount").prop("checked", data["custom"].hide_playcount);
|
||||
$("#disable_graph_cutin").prop("checked", data["custom"].disable_graph_cutin);
|
||||
$("#class_hispeed").prop("checked", data["custom"].class_hispeed);
|
||||
$("#rival_played_folder").prop("checked", data["custom"].rival_played_folder);
|
||||
$("#hide_iidxid").prop("checked", data["custom"].hide_iidxid);
|
||||
|
||||
if (data["custom"].disable_beginner_option == undefined) $("#disable_beginner_option").prop("checked", false);
|
||||
else $("#disable_beginner_option").prop("checked", data["custom"].disable_beginner_option);
|
||||
|
||||
$("#qpro_head").val(data["custom"].qpro_head);
|
||||
$("#qpro_hair").val(data["custom"].qpro_hair);
|
||||
$("#qpro_hand").val(data["custom"].qpro_hand);
|
||||
$("#qpro_face").val(data["custom"].qpro_face);
|
||||
$("#qpro_body").val(data["custom"].qpro_body);
|
||||
|
||||
if (data["custom"].qpro_back == undefined) $("#qpro_back").val(0);
|
||||
else $("#qpro_back").val(data["custom"].qpro_back);
|
||||
|
||||
if (data["lm_custom"] == null) {
|
||||
$("#lm_skin").val(0);
|
||||
$("#lm_bg").val(0);
|
||||
} else {
|
||||
$("#lm_skin").val(data["lm_custom"].premium_skin);
|
||||
$("#lm_bg").val(data["lm_custom"].premium_bg);
|
||||
}
|
||||
},
|
||||
error: function () {
|
||||
alert("Unable to process data");
|
||||
}
|
||||
});
|
||||
});
|
||||
68
iidx@asphyxia/webui/profile_-----detail.pug
Normal file
68
iidx@asphyxia/webui/profile_-----detail.pug
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
//DATA//
|
||||
profile: DB.FindOne(refid, { collection: 'profile' })
|
||||
pcdata: DB.FindOne(refid, { collection: 'pcdata' })
|
||||
|
||||
-
|
||||
const version = [
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
31,
|
||||
32
|
||||
];
|
||||
|
||||
div
|
||||
.card
|
||||
.card-header
|
||||
p.card-header-title
|
||||
span.icon
|
||||
i.mdi.mdi-account-edit
|
||||
| Profile
|
||||
.card-content
|
||||
.field
|
||||
label.label Version
|
||||
.ver-select
|
||||
.control
|
||||
.select
|
||||
select(id="version")
|
||||
each i in version
|
||||
option(selected=(i==pcdata.version)) #{i}
|
||||
.field
|
||||
label.label Name
|
||||
.body
|
||||
p(id="name") #{profile.name}
|
||||
.field
|
||||
label.label IIDX ID
|
||||
.body
|
||||
p(id="iidxid") #{profile.idstr}
|
||||
.field
|
||||
label.label SP Grade
|
||||
.body
|
||||
- const a = pcdata.sgid
|
||||
if a==-1
|
||||
p(id="sp_grade") ----
|
||||
else
|
||||
p(id="sp_grade") #{pcdata.sgid}
|
||||
.field
|
||||
label.label DP Grade
|
||||
.body
|
||||
- const b = pcdata.dgid
|
||||
if b==-1
|
||||
p(id="dp_grade") ----
|
||||
else
|
||||
p(id="dp_grade") #{pcdata.dgid}
|
||||
script(src="static/asset/js/detail.js")
|
||||
241
iidx@asphyxia/webui/profile_----setting.pug
Normal file
241
iidx@asphyxia/webui/profile_----setting.pug
Normal file
|
|
@ -0,0 +1,241 @@
|
|||
//DATA//
|
||||
profile: DB.FindOne(refid, { collection: "profile" })
|
||||
pcdata: DB.FindOne(refid, { collection: "pcdata" })
|
||||
custom: DB.FindOne(refid, { collection: "custom" })
|
||||
lm_custom: DB.FindOne(refid, { collection: "lightning_custom" })
|
||||
|
||||
-
|
||||
const version = [
|
||||
14,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
31,
|
||||
32
|
||||
];
|
||||
|
||||
div
|
||||
.card
|
||||
.card-header
|
||||
p.card-header-title
|
||||
span.icon
|
||||
i.mdi.mdi-account-edit
|
||||
| Settings
|
||||
.card-content
|
||||
form(method="post" action="/emit/iidxUpdateCustom")
|
||||
.field
|
||||
input(type="text" name="refid", value=refid readonly hidden)
|
||||
label.label IIDX ID
|
||||
.control
|
||||
input.input(type="text" name="iidxid", value=profile.idstr readonly)
|
||||
.field
|
||||
label.label Version
|
||||
.control
|
||||
.select
|
||||
select(name="version", id="version")
|
||||
each i in version
|
||||
option(selected=(i==pcdata.version)) #{i}
|
||||
.field
|
||||
label.label Name
|
||||
.control
|
||||
input.input(type="text" name="name", id="name", value=profile.name)
|
||||
//- SKIN
|
||||
.field
|
||||
label.label Frame
|
||||
.control
|
||||
input.input(type="number" name="frame", id="frame", value=custom.frame)
|
||||
.field
|
||||
label.label Turntable
|
||||
.control
|
||||
input.input(type="number" name="turntable", id="turntable", value=custom.turntable)
|
||||
.field
|
||||
label.label Note Burst
|
||||
.control
|
||||
input.input(type="number" name="note_burst", id="note_burst", value=custom.note_burst)
|
||||
.field
|
||||
label.label Menu Music
|
||||
.control
|
||||
input.input(type="number" name="menu_music", id="menu_music", value=custom.menu_music)
|
||||
.field
|
||||
label.label Lane Cover
|
||||
.control
|
||||
input.input(type="number" name="lane_cover", id="lane_cover", value=custom.lane_cover)
|
||||
.field
|
||||
label.label Category Voice
|
||||
.control
|
||||
input.input(type="number" name="category_vox", id="category_vox", value=custom.category_vox)
|
||||
.field
|
||||
label.label Note Skin
|
||||
.control
|
||||
input.input(type="number" name="note_skin", id="note_skin", value=custom.note_skin)
|
||||
.field
|
||||
label.label Full Combo Splash
|
||||
.control
|
||||
input.input(type="number" name="full_combo_splash", id="full_combo_splash", value=custom.full_combo_splash)
|
||||
.field
|
||||
label.label Note Beam
|
||||
.control
|
||||
input.input(type="number" name="note_beam", id="note_beam", value=custom.note_beam)
|
||||
.field
|
||||
label.label Judgement Font
|
||||
.control
|
||||
input.input(type="number" name="judge_font", id="judge_font", value=custom.judge_font)
|
||||
.field
|
||||
label.label Disable Music Preview
|
||||
.control
|
||||
input(type="checkbox" name="disable_musicpreview", id="disable_musicpreview", checked=Boolean(custom.disable_musicpreview))
|
||||
.field
|
||||
label.label Pacemaker Cover
|
||||
.control
|
||||
input.input(type="number" name="pacemaker_cover", id="pacemaker_cover", value=custom.pacemaker_cover)
|
||||
.field
|
||||
label.label VEFX Lock
|
||||
.control
|
||||
input(type="checkbox" name="vefx_lock", id="vefx_lock", checked=Boolean(custom.vefx_lock))
|
||||
.field
|
||||
label.label VEFX Lock (Effector)
|
||||
.control
|
||||
input.input(type="number" name="effect", id="effect", value=custom.effect)
|
||||
.field
|
||||
label.label Note Burst Size
|
||||
.control
|
||||
input.input(type="number" name="bomb_size", id="bomb_size", value=custom.bomb_size)
|
||||
.field
|
||||
label.label Disable HCN Color
|
||||
.control
|
||||
input(type="checkbox" name="disable_hcn_color", id="disable_hcn_color", checked=Boolean(custom.disable_hcn_color))
|
||||
.field
|
||||
label.label First Note Preview
|
||||
.control
|
||||
input.input(type="number" name="first_note_preview", id="first_note_preview", value=custom.first_note_preview)
|
||||
.field
|
||||
label.label Note Size
|
||||
.control
|
||||
if custom.note_size === undefined
|
||||
input.input(type="number" name="note_size", id="note_size", value="0")
|
||||
else
|
||||
input.input(type="number" name="note_size", id="note_size", value=custom.note_size)
|
||||
.field
|
||||
label.label Lift Cover
|
||||
.control
|
||||
if custom.lift_cover === undefined
|
||||
input.input(type="number" name="lift_cover", id="lift_cover", value="0")
|
||||
else
|
||||
input.input(type="number" name="lift_cover", id="lift_cover", value=custom.lift_cover)
|
||||
.field
|
||||
label.label Note Beam Size
|
||||
.control
|
||||
if custom.note_beam_size === undefined
|
||||
input.input(type="number" name="note_beam_size", id="note_beam_size", value="0")
|
||||
else
|
||||
input.input(type="number" name="note_beam_size", id="note_beam_size", value=custom.note_beam_size)
|
||||
//- APPEND SETTINGS
|
||||
.field
|
||||
label.label Rank Folder
|
||||
.control
|
||||
input(type="checkbox" name="rank_folder", id="rank_folder", checked=Boolean(custom.rank_folder))
|
||||
.field
|
||||
label.label Clear State Folder
|
||||
.control
|
||||
input(type="checkbox" name="clear_folder", id="clear_folder", checked=Boolean(custom.clear_folder))
|
||||
.field
|
||||
label.label Difficulty Folder
|
||||
.control
|
||||
input(type="checkbox" name="diff_folder", id="diff_folder", checked=Boolean(custom.diff_folder))
|
||||
.field
|
||||
label.label Alphabet Folder
|
||||
.control
|
||||
input(type="checkbox" name="alpha_folder", id="alpha_folder", checked=Boolean(custom.alpha_folder))
|
||||
.field
|
||||
label.label Rival Folder
|
||||
.control
|
||||
input(type="checkbox" name="rival_folder", id="rival_folder", checked=Boolean(custom.rival_folder))
|
||||
.field
|
||||
label.label Rival WIN/LOSE Folder
|
||||
.control
|
||||
input(type="checkbox" name="rival_battle_folder", id="rival_battle_folder", checked=Boolean(custom.rival_battle_folder))
|
||||
.field
|
||||
label.label Rival Info / Venue Top Display
|
||||
.control
|
||||
input(type="checkbox" name="rival_info", id="rival_info", checked=Boolean(custom.rival_info))
|
||||
.field
|
||||
label.label Hide Playcount
|
||||
.control
|
||||
input(type="checkbox" name="hide_playcount", id="hide_playcount", checked=Boolean(custom.hide_playcount))
|
||||
.field
|
||||
label.label Disable Pacemaker Cut-In
|
||||
.control
|
||||
input(type="checkbox" name="disable_graph_cutin", id="disable_graph_cutin", checked=Boolean(custom.disable_graph_cutin))
|
||||
.field
|
||||
label.label Classic Hi-SPEED
|
||||
.control
|
||||
input(type="checkbox" name="class_hispeed", id="class_hispeed", checked=Boolean(custom.class_hispeed))
|
||||
.field
|
||||
label.label Rival Played Folder
|
||||
.control
|
||||
input(type="checkbox" name="rival_played_folder", id="rival_played_folder", checked=Boolean(custom.rival_played_folder))
|
||||
.field
|
||||
label.label Hide IIDX ID
|
||||
.control
|
||||
input(type="checkbox" name="hide_iidxid", id="hide_iidxid", checked=Boolean(custom.hide_iidxid))
|
||||
.field
|
||||
label.label Disable Beginner Option
|
||||
.control
|
||||
if custom.disable_beginner_option === undefined
|
||||
input(type="checkbox" name="disable_beginner_option", id="disable_beginner_option", checked=Boolean(false))
|
||||
else
|
||||
input(type="checkbox" name="disable_beginner_option", id="disable_beginner_option", checked=Boolean(custom.disable_beginner_option))
|
||||
//- QPRO
|
||||
.field
|
||||
label.label QPRO Head
|
||||
.control
|
||||
input.input(type="number" name="qpro_head", id="qpro_head", value=custom.qpro_head)
|
||||
.field
|
||||
label.label QPRO Hair
|
||||
.control
|
||||
input.input(type="number" name="qpro_hair", id="qpro_hair", value=custom.qpro_hair)
|
||||
.field
|
||||
label.label QPRO Hand
|
||||
.control
|
||||
input.input(type="number" name="qpro_hand", id="qpro_hand", value=custom.qpro_hand)
|
||||
.field
|
||||
label.label QPRO Face
|
||||
.control
|
||||
input.input(type="number" name="qpro_face", id="qpro_face", value=custom.qpro_face)
|
||||
.field
|
||||
label.label QPRO Body
|
||||
.control
|
||||
input.input(type="number" name="qpro_body", id="qpro_body", value=custom.qpro_body)
|
||||
.field
|
||||
label.label QPRO Back
|
||||
.control
|
||||
if custom.qpro_back === undefined
|
||||
input.input(type="number" name="qpro_back", id="qpro_back", value="0")
|
||||
else
|
||||
input.input(type="number" name="qpro_back", id="qpro_back", value=custom.qpro_back)
|
||||
//- LIGHTNING CUSTOM
|
||||
if lm_custom != null
|
||||
.field
|
||||
label.label Premium Area Skin
|
||||
input.input(type="number" name="lm_skin", id="lm_skin", value=lm_custom.premium_skin)
|
||||
label.label Premium Area Background
|
||||
input.input(type="number" name="lm_bg", id="lm_bg", value=lm_custom.premium_bg)
|
||||
.field
|
||||
button.button.is-primary(type="submit")
|
||||
span.icon
|
||||
i.mdi.mdi-check
|
||||
span Submit
|
||||
script(src="static/asset/js/setting.js")
|
||||
118
iidx@asphyxia/webui/profile_---rival.pug
Normal file
118
iidx@asphyxia/webui/profile_---rival.pug
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
//DATA//
|
||||
profile: DB.FindOne(refid, { collection: "profile" })
|
||||
profiles: DB.Find(null, { collection: "profile" })
|
||||
rival: DB.Find(refid, { collection: "rival" })
|
||||
|
||||
-
|
||||
let rival_list=[["", "None", "0000-0000"]];
|
||||
profiles.forEach((res) => {
|
||||
rival_list.push([res.__refid, res.name, res.idstr])
|
||||
});
|
||||
|
||||
let my_sp_rival = [], my_dp_rival = [];
|
||||
rival.forEach((res) => {
|
||||
if (res.play_style == 1) my_sp_rival[res.index] = res.rival_refid;
|
||||
else if (res.play_style == 2) my_dp_rival[res.index] = res.rival_refid;
|
||||
});
|
||||
|
||||
div
|
||||
.card
|
||||
.card-header
|
||||
p.card-header-title
|
||||
span.icon
|
||||
i.mdi.mdi-account-edit
|
||||
| Rivals
|
||||
.card-content
|
||||
form(method="post" action="/emit/iidxUpdateRival")
|
||||
.field
|
||||
input(type="text" name="refid", value=refid readonly hidden)
|
||||
label.label SP Rivals
|
||||
.body
|
||||
.control
|
||||
.select
|
||||
select(name="sp_rival1")
|
||||
each i in rival_list
|
||||
if my_sp_rival[0] != null
|
||||
option(selected=i[0]==my_sp_rival[0], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="sp_rival2")
|
||||
each i in rival_list
|
||||
if my_sp_rival[1] != null
|
||||
option(selected=i[0]==my_sp_rival[1], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="sp_rival3")
|
||||
each i in rival_list
|
||||
if my_sp_rival[2] != null
|
||||
option(selected=i[0]==my_sp_rival[2], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="sp_rival4")
|
||||
each i in rival_list
|
||||
if my_sp_rival[3] != null
|
||||
option(selected=i[0]==my_sp_rival[3], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="sp_rival5")
|
||||
each i in rival_list
|
||||
if my_sp_rival[4] != null
|
||||
option(selected=i[0]==my_sp_rival[4], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.field
|
||||
label.label DP Rivals
|
||||
.body
|
||||
.control
|
||||
.select
|
||||
select(name="dp_rival1")
|
||||
each i in rival_list
|
||||
if my_dp_rival[0] != null
|
||||
option(selected=i[0]==my_dp_rival[0], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="dp_rival2")
|
||||
each i in rival_list
|
||||
if my_dp_rival[1] != null
|
||||
option(selected=i[0]==my_dp_rival[1], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="dp_rival3")
|
||||
each i in rival_list
|
||||
if my_dp_rival[2] != null
|
||||
option(selected=i[0]==my_dp_rival[2], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="dp_rival4")
|
||||
each i in rival_list
|
||||
if my_dp_rival[3] != null
|
||||
option(selected=i[0]==my_dp_rival[3], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.control
|
||||
.select
|
||||
select(name="dp_rival5")
|
||||
each i in rival_list
|
||||
if my_dp_rival[4] != null
|
||||
option(selected=i[0]==my_dp_rival[4], value=i[0]) #{i[1]} [#{i[2]}]
|
||||
else
|
||||
option(value=i[0]) #{i[1]} [#{i[2]}]
|
||||
.field
|
||||
button.button.is-primary(type="submit")
|
||||
span.icon
|
||||
i.mdi.mdi-check
|
||||
span Submit
|
||||
25
iidx@asphyxia/webui/profile_--score.pug
Normal file
25
iidx@asphyxia/webui/profile_--score.pug
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
//DATA//
|
||||
score: DB.Find(refid, { collection: 'score' })
|
||||
|
||||
div
|
||||
.card
|
||||
.card-header
|
||||
p.card-header-title
|
||||
span.icon
|
||||
i.mdi.mdi-account-edit
|
||||
| Score
|
||||
.card-content
|
||||
table.table
|
||||
thead
|
||||
tr
|
||||
th Music ID
|
||||
th EXSCORE [SPB~DPL]
|
||||
th Miss Count [SPB~DPL]
|
||||
th Clear Lamp [SPB~DPL]
|
||||
tbody
|
||||
each i in score
|
||||
tr
|
||||
td #{i.mid}
|
||||
td #{i.esArray}
|
||||
td #{i.mArray}
|
||||
td #{i.cArray}
|
||||
27
iidx@asphyxia/webui/profile_-data.pug
Normal file
27
iidx@asphyxia/webui/profile_-data.pug
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
div
|
||||
.card
|
||||
.card-header
|
||||
p.card-header-title
|
||||
span.icon
|
||||
i.mdi.mdi-account-edit
|
||||
| Data Management
|
||||
.card-content
|
||||
.field
|
||||
label.label [!] This will overwrite existing scores
|
||||
form(method="post" action="/emit/iidxImportScoreData")
|
||||
.field
|
||||
input(type="text" name="refid", value=refid readonly hidden)
|
||||
input.input(type="text" name="data" placeholder="Paste score JSON data")
|
||||
p
|
||||
button.button.is-primary(type="submit")
|
||||
span.icon
|
||||
i.mdi.mdi-check
|
||||
span Score Import
|
||||
.field
|
||||
form(method="post" action="/emit/iidxExportScoreData")
|
||||
.field
|
||||
input(type="text" name="refid", value=refid readonly hidden)
|
||||
button.button.is-primary(type="submit")
|
||||
span.icon
|
||||
i.mdi.mdi-check
|
||||
span Score Export
|
||||
|
|
@ -11,11 +11,18 @@ Plugin Version: **v3.0.0**
|
|||
- pop'n music Usagi to Neko to Shōnen no Yume
|
||||
- pop'n music peace
|
||||
- pop'n music Kaimei riddles
|
||||
- pop'n music Unilab
|
||||
|
||||
Important : require minimum Asphyxia Core **v1.31**
|
||||
|
||||
## Changelog
|
||||
|
||||
### 4.0.0
|
||||
* Unilab: Support added
|
||||
* Lapistoria+ : Add Force Unlock
|
||||
* Remove non-core Asphyxia data import
|
||||
* Bugfix: Send correct number of Goods
|
||||
|
||||
### 3.0.0
|
||||
* Kaimei riddles: Support added
|
||||
* Usaneko: Add Daily Missions support
|
||||
|
|
@ -57,14 +64,6 @@ Update phase data : All versions are on latest phase.
|
|||
#### 1.0.0
|
||||
Initial Release.
|
||||
|
||||
## How to import data from non-core Asphyxia
|
||||
To import data, you have to :
|
||||
* Create your popn profile in Asphyxia-core. You just have to insert your card in the game and follow the process until coming to the select mode select screen. Once here, quit the game.
|
||||
* Create a backup of your savedata.db file (in case something goes wrong).
|
||||
* In the web UI of Asphyxia, go to POPN -> Profile and click detail on your profile
|
||||
* Put the content of your non-core asphyxia popn music files in the text fields (pop.json and popn_scores.json) and click Import.
|
||||
* Data is imported. Run the game, insert your card and your scores are available.
|
||||
|
||||
## Known limitations
|
||||
* No rival support for Tune Street
|
||||
* Some stats are not implemented
|
||||
|
|
@ -369,6 +369,18 @@ const getProfile = async (refid: string, name?: string) => {
|
|||
player.item.push(item);
|
||||
}
|
||||
|
||||
if(U.GetConfig("enable_force_unlock")) {
|
||||
for(let i = 1; i <= GAME_MAX_MUSIC_ID; i++) {
|
||||
player.item.push({
|
||||
type: K.ITEM('u8', 0),
|
||||
id: K.ITEM('u16', i),
|
||||
param: K.ITEM('u16', 15),
|
||||
is_new: K.ITEM('bool', 0),
|
||||
get_time: K.ITEM('u64', BigInt(0)),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Add version specific datas
|
||||
const params = await utils.readParams(refid, version);
|
||||
utils.addExtraData(player, params, extraData);
|
||||
|
|
|
|||
|
|
@ -275,6 +275,18 @@ const getProfile = async (refid: string, name?: string) => {
|
|||
player.item.push(item);
|
||||
}
|
||||
|
||||
if(U.GetConfig("enable_force_unlock")) {
|
||||
for(let i = 1; i <= GAME_MAX_MUSIC_ID; i++) {
|
||||
player.item.push({
|
||||
type: K.ITEM('u8', 0),
|
||||
id: K.ITEM('u16', i),
|
||||
param: K.ITEM('u16', 15),
|
||||
is_new: K.ITEM('bool', 0),
|
||||
get_time: K.ITEM('u64', BigInt(0)),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Add version specific datas
|
||||
const params = await utils.readParams(refid, version);
|
||||
utils.addExtraData(player, params, extraData);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { AchievementsUsaneko } from "../models/achievements";
|
||||
import { ExtraData, Params, Phase } from "../models/common";
|
||||
import { ExtraData, Phase } from "../models/common";
|
||||
import * as utils from "./utils";
|
||||
|
||||
export const setRoutes = () => {
|
||||
|
|
@ -37,7 +37,7 @@ const getInfoCommon = (req: EamuseInfo) => {
|
|||
}
|
||||
|
||||
// Choco
|
||||
for (let i = 1; i <= 5; ++i) {
|
||||
for (let i = 0; i < 5; ++i) {
|
||||
result.choco.push({
|
||||
choco_id: K.ITEM('s16', i),
|
||||
param: K.ITEM('s32', -1),
|
||||
|
|
@ -45,8 +45,8 @@ const getInfoCommon = (req: EamuseInfo) => {
|
|||
}
|
||||
|
||||
// Goods
|
||||
for (let i = 1; i <= 98; ++i) {
|
||||
let price = 200;
|
||||
for (let i = 0; i < GAME_MAX_DECO_ID[version]; ++i) {
|
||||
let price = 250;
|
||||
if (i < 15) {
|
||||
price = 30;
|
||||
} else if (i < 30) {
|
||||
|
|
@ -55,10 +55,12 @@ const getInfoCommon = (req: EamuseInfo) => {
|
|||
price = 60;
|
||||
} else if (i < 60) {
|
||||
price = 80;
|
||||
} else if (i < 98) {
|
||||
price = 200;
|
||||
}
|
||||
|
||||
result.goods.push({
|
||||
item_id: K.ITEM('s32', i),
|
||||
item_id: K.ITEM('s32', i + 1),
|
||||
item_type: K.ITEM('s16', 3),
|
||||
price: K.ITEM('s32', price),
|
||||
goods_type: K.ITEM('s16', 0),
|
||||
|
|
@ -66,13 +68,15 @@ const getInfoCommon = (req: EamuseInfo) => {
|
|||
}
|
||||
|
||||
// Area
|
||||
for (let i = 1; i <= 16; ++i) {
|
||||
result.area.push({
|
||||
area_id: K.ITEM('s16', i),
|
||||
end_date: K.ITEM('u64', BigInt(0)),
|
||||
medal_id: K.ITEM('s16', i),
|
||||
is_limit: K.ITEM('bool', 0),
|
||||
});
|
||||
if(version == 'v24') {
|
||||
for (let i = 0; i < 16; ++i) {
|
||||
result.area.push({
|
||||
area_id: K.ITEM('s16', i),
|
||||
end_date: K.ITEM('u64', BigInt(0)),
|
||||
medal_id: K.ITEM('s16', i),
|
||||
is_limit: K.ITEM('bool', 0),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// TODO : Course ranking
|
||||
|
|
@ -388,7 +392,7 @@ const getProfile = async (refid: string, version: string, name?: string) => {
|
|||
|
||||
// Add version specific datas
|
||||
let params = await utils.readParams(refid, version);
|
||||
utils.addExtraData(player, params, EXTRA_DATA);
|
||||
utils.addExtraData(player, params, getExtraData(version));
|
||||
|
||||
const achievements = <AchievementsUsaneko>await utils.readAchievements(refid, version, { ...defaultAchievements, version });
|
||||
|
||||
|
|
@ -462,6 +466,18 @@ const getProfile = async (refid: string, version: string, name?: string) => {
|
|||
});
|
||||
}
|
||||
|
||||
if(U.GetConfig("enable_force_unlock")) {
|
||||
for(let i = 1; i <= GAME_MAX_MUSIC_ID[version]; i++) {
|
||||
player.item.push({
|
||||
type: K.ITEM('u8', 0),
|
||||
id: K.ITEM('u16', i),
|
||||
param: K.ITEM('u16', 15),
|
||||
is_new: K.ITEM('bool', 0),
|
||||
get_time: K.ITEM('u64', BigInt(0)),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Usaneko events
|
||||
if (version == 'v24') {
|
||||
const date = new Date();
|
||||
|
|
@ -542,6 +558,34 @@ const getProfile = async (refid: string, version: string, name?: string) => {
|
|||
}
|
||||
}
|
||||
|
||||
// Unilab events
|
||||
if (version == 'v27') {
|
||||
const teams = achievements.team || [];
|
||||
const batteries = achievements.battery || [];
|
||||
|
||||
player.event_p27.first_play = K.ITEM('bool', teams.length == 0);
|
||||
player.event_p27.elem_first_play = K.ITEM('bool', batteries.length == 0);
|
||||
|
||||
player.event_p27.team = [];
|
||||
for (const team of teams) {
|
||||
player.event_p27.team.push({
|
||||
team_id: K.ITEM('s16', team.team_id || 0),
|
||||
ex_no: K.ITEM('s16', team.ex_no || 0),
|
||||
point: K.ITEM('u32', team.point || 0),
|
||||
is_cleared: K.ITEM('bool', team.is_cleared || false),
|
||||
});
|
||||
};
|
||||
|
||||
player.event_p27.battery = [];
|
||||
for (const battery of batteries) {
|
||||
player.event_p27.battery.push({
|
||||
battery_id: K.ITEM('s16', battery.battery_id || 0),
|
||||
energy: K.ITEM('u32', battery.energy || 0),
|
||||
is_cleared: K.ITEM('bool', battery.is_cleared || false),
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
return player;
|
||||
}
|
||||
|
||||
|
|
@ -557,7 +601,7 @@ const write = async (req: EamuseInfo, data: any, send: EamuseSend): Promise<any>
|
|||
const params = await utils.readParams(refid, version);
|
||||
const achievements = <AchievementsUsaneko>await utils.readAchievements(refid, version, { ...defaultAchievements, version });
|
||||
|
||||
utils.getExtraData(data, params, EXTRA_DATA);
|
||||
utils.getExtraData(data, params, getExtraData(version, true));
|
||||
|
||||
// areas
|
||||
let areas = _.get(data, 'area', []);
|
||||
|
|
@ -753,6 +797,59 @@ const write = async (req: EamuseInfo, data: any, send: EamuseSend): Promise<any>
|
|||
}
|
||||
}
|
||||
|
||||
// Unilab (v27)
|
||||
if (version == 'v27') {
|
||||
let eventData = _.get(data, 'event_p27', []);
|
||||
let team = _.get(eventData, 'team', null);
|
||||
if(_.isPlainObject(team)) {
|
||||
if (_.isNil(achievements.team)) {
|
||||
achievements.team = [];
|
||||
}
|
||||
|
||||
const team_id = $(team).number('team_id');
|
||||
const ex_no = $(team).number('ex_no');
|
||||
const point = $(team).number('point');
|
||||
const is_cleared = $(team).bool('is_cleared');
|
||||
|
||||
let savedTeam = _.find(achievements.team, {'team_id': team_id});
|
||||
if(_.isUndefined(savedTeam)) {
|
||||
achievements.team.push({
|
||||
team_id,
|
||||
ex_no,
|
||||
point,
|
||||
is_cleared
|
||||
});
|
||||
} else {
|
||||
savedTeam.ex_no = ex_no;
|
||||
savedTeam.point = point;
|
||||
savedTeam.is_cleared = is_cleared;
|
||||
}
|
||||
}
|
||||
|
||||
let battery = _.get(eventData, 'battery', null);
|
||||
if(_.isPlainObject(battery)) {
|
||||
if (_.isNil(achievements.battery)) {
|
||||
achievements.battery = [];
|
||||
}
|
||||
|
||||
const battery_id = $(battery).number('battery_id');
|
||||
const energy = $(battery).number('energy');
|
||||
const is_cleared = $(battery).bool('is_cleared');
|
||||
|
||||
let savedBattery = _.find(achievements.battery, {'battery_id': battery_id});
|
||||
if(_.isUndefined(savedBattery)) {
|
||||
achievements.battery.push({
|
||||
battery_id,
|
||||
energy,
|
||||
is_cleared
|
||||
});
|
||||
} else {
|
||||
savedBattery.energy = energy;
|
||||
savedBattery.is_cleared = is_cleared;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
await utils.writeParams(refid, version, params);
|
||||
await utils.writeAchievements(refid, version, achievements);
|
||||
|
||||
|
|
@ -794,6 +891,9 @@ const friend = async (req: EamuseInfo, data: any, send: EamuseSend): Promise<any
|
|||
const getPhase = (version: String): Phase[] => {
|
||||
let phase = [];
|
||||
switch(version) {
|
||||
case 'v27':
|
||||
phase = PHASE['v27'];
|
||||
break;
|
||||
case 'v26':
|
||||
phase = PHASE['v26'];
|
||||
case 'v25':
|
||||
|
|
@ -804,6 +904,23 @@ const getPhase = (version: String): Phase[] => {
|
|||
return _.sortBy(phase, 'id');
|
||||
}
|
||||
|
||||
const getExtraData = (version: String, full: boolean = false): ExtraData => {
|
||||
let extraData = EXTRA_DATA_COMMON;
|
||||
if (full) {
|
||||
extraData = _.merge(extraData, EXTRA_DATA_V27, EXTRA_DATA_V26);
|
||||
} else {
|
||||
switch(version) {
|
||||
case 'v27':
|
||||
extraData = _.merge(extraData, EXTRA_DATA_V27);
|
||||
break;
|
||||
case 'v26':
|
||||
extraData = _.merge(extraData, EXTRA_DATA_V26);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return extraData;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
let isOmni = false;
|
||||
|
|
@ -814,9 +931,11 @@ const getVersion = (req: EamuseInfo): string => {
|
|||
}
|
||||
|
||||
const date: number = parseInt(req.model.match(/:(\d*)$/)[1]);
|
||||
if (date > 2020120900) {
|
||||
if (date >= 2022091300) {
|
||||
return 'v27';
|
||||
} else if (date >= 2021042600 && date < 2022091300) {
|
||||
return 'v26';
|
||||
} else if (date >= 2018101700 && date <= 2020120900) {
|
||||
} else if (date >= 2018101700 && date < 2021042600 ) {
|
||||
return 'v25';
|
||||
} else {
|
||||
return 'v24';
|
||||
|
|
@ -826,7 +945,15 @@ const getVersion = (req: EamuseInfo): string => {
|
|||
const GAME_MAX_MUSIC_ID = {
|
||||
v24: 1704,
|
||||
v25: 1877,
|
||||
v26: 2019
|
||||
v26: 2019,
|
||||
v27: 2188
|
||||
}
|
||||
|
||||
const GAME_MAX_DECO_ID = {
|
||||
v24: 97,
|
||||
v25: 133,
|
||||
v26: 133,
|
||||
v27: 81
|
||||
}
|
||||
|
||||
const defaultAchievements: AchievementsUsaneko = {
|
||||
|
|
@ -840,64 +967,71 @@ const defaultAchievements: AchievementsUsaneko = {
|
|||
stamps: {},
|
||||
riddles: {},
|
||||
missions: {},
|
||||
team: [],
|
||||
battery: []
|
||||
}
|
||||
|
||||
const PHASE = {
|
||||
v24: [
|
||||
{ id: 0, p: 11 }, // Default song phase availability (0-11)
|
||||
{ id: 1, p: 2 },
|
||||
{ id: 2, p: 2 },
|
||||
{ id: 3, p: 4 },
|
||||
{ id: 4, p: 1 },
|
||||
{ id: 5, p: 0 }, // Enable Net Taisen (0-1)
|
||||
{ id: 6, p: 1 }, // Enable NAVI-kun shunkyoku toujou, allows song 1608 to be unlocked (0-1)
|
||||
{ id: 7, p: 1 },
|
||||
{ id: 8, p: 2 },
|
||||
{ id: 9, p: 2 }, // Daily Mission (0-2)
|
||||
{ id: 0, p: 11 }, // Default song phase availability (0-11)
|
||||
{ id: 1, p: 2 }, // Unknown event (0-2)
|
||||
{ id: 2, p: 2 }, // Holiday Greeting (0-2)
|
||||
{ id: 3, p: 4 }, // Unknown event (0-2)
|
||||
{ id: 4, p: 1 }, // Unknown event (0-1)
|
||||
{ id: 5, p: 0 }, // Enable Net Taisen (0-1)
|
||||
{ id: 6, p: 1 }, // Enable NAVI-kun shunkyoku toujou, allows song 1608 to be unlocked (0-1)
|
||||
{ id: 7, p: 1 }, // Unknown event (0-1)
|
||||
{ id: 8, p: 2 }, // Unknown event (0-2)
|
||||
{ id: 9, p: 2 }, // Daily Mission (0-2)
|
||||
{ id: 10, p: 15 }, // NAVI-kun Song phase availability (0-15)
|
||||
{ id: 11, p: 1 },
|
||||
{ id: 12, p: 2 },
|
||||
{ id: 13, p: 1 }, // Enable Pop'n Peace preview song (0-1)
|
||||
{ id: 11, p: 1 }, // Unknown event (0-1)
|
||||
{ id: 12, p: 2 }, // Unknown event (0-2)
|
||||
{ id: 13, p: 1 }, // Enable Pop'n Peace preview song (0-1)
|
||||
],
|
||||
v25: [
|
||||
{ id: 0, p: 23 },
|
||||
{ id: 1, p: 4 },
|
||||
{ id: 10, p: 30 },
|
||||
// New params
|
||||
{ id: 14, p: 39 },
|
||||
{ id: 15, p: 2 },
|
||||
{ id: 16, p: 3 },
|
||||
{ id: 17, p: 8 },
|
||||
{ id: 18, p: 1 },
|
||||
{ id: 19, p: 1 },
|
||||
{ id: 20, p: 13 },
|
||||
{ id: 21, p: 20 }, // pop'n event archive
|
||||
{ id: 22, p: 2 },
|
||||
{ id: 23, p: 1 },
|
||||
{ id: 24, p: 1 },
|
||||
{ id: 0, p: 23 }, // Default song phase availability (0-23)
|
||||
{ id: 1, p: 4 }, // Unknown event (0-4)
|
||||
{ id: 10, p: 30 }, // NAVI-kun Song phase availability (0-30)
|
||||
{ id: 14, p: 39 }, // Stamp Card Rally (0-39)
|
||||
{ id: 15, p: 2 }, // Unknown event (0-2)
|
||||
{ id: 16, p: 3 }, // Unknown event (0-3)
|
||||
{ id: 17, p: 8 }, // Unknown event (0-8)
|
||||
{ id: 18, p: 1 }, // FLOOR INFECTION event (0-1)
|
||||
{ id: 19, p: 1 }, // Pop'n music × NOSTALGIA kyouenkai (0-1)
|
||||
{ id: 20, p: 13 }, // Event archive (0-13)
|
||||
{ id: 21, p: 20 }, // Pop'n event archive (0-20)
|
||||
{ id: 22, p: 2 }, // バンめし♪ ふるさとグランプリ (0-2)
|
||||
{ id: 23, p: 1 }, // いちかのBEMANI投票選抜戦2019 (0-1)
|
||||
{ id: 24, p: 1 }, // ダンキラ!!! × pop'n music (0-1)
|
||||
],
|
||||
v26: [
|
||||
// Music phase
|
||||
// Phase 24: Seize The Day, 知りたい
|
||||
// Phase 25: Triple Cross
|
||||
// Phase 26: GO²TOS, Jailbreaker
|
||||
// Phase 27: Aftermath
|
||||
// Phase 28: 「Sweet Love」
|
||||
// Phase 29: GET WILD (UPPER), シュガーソングとビターステップ (UPPER)
|
||||
// Phase 30 (MAX): 群像夏
|
||||
{ id: 0, p: 30 },
|
||||
// New params
|
||||
{ id: 0, p: 30 }, // Music phase (0: No unlock, 1-30: steps)
|
||||
{ id: 25, p: 62 }, // M&N event (0: disable, 62: all characters)
|
||||
{ id: 26, p: 3 }, // Unknown event (0-3)
|
||||
{ id: 27, p: 2 }, // peace soundtrack hatsubai kinen SP (0: not started, 1: enabled, 2: ended)
|
||||
{ id: 28, p: 2 }, // MZD no kimagure tanteisha joshu (0: not started, 1: enabled, 2: ended)
|
||||
{ id: 29, p: 5 }, // Shutchou! pop'n quest Lively (0: not started, 1-4: step enabled, 5: ended)
|
||||
{ id: 30, p: 6 }, // Shutchou! pop'n quest Lively II (0: not started, 1-5: step enabled, 6: ended)
|
||||
{ id: 26, p: 3 }, // Unknown event (0-3)
|
||||
{ id: 27, p: 2 }, // peace soundtrack hatsubai kinen SP (0: not started, 1: enabled, 2: ended)
|
||||
{ id: 28, p: 2 }, // MZD no kimagure tanteisha joshu (0: not started, 1: enabled, 2: ended)
|
||||
{ id: 29, p: 5 }, // Shutchou! pop'n quest Lively (0: not started, 1-4: step enabled, 5: ended)
|
||||
{ id: 30, p: 6 }, // Shutchou! pop'n quest Lively II (0: not started, 1-5: step enabled, 6: ended)
|
||||
],
|
||||
v27: [
|
||||
{ id: 0, p: 6 }, // Music phase (0: No unlock, 1-6: steps)
|
||||
{ id: 1, p: 6 }, // Shutchou! pop'n quest Lively II (0: not started, 1-5: steps, 6: ended)
|
||||
{ id: 2, p: 4 }, // KAC 2023 (0/2/4: disabled, 1: Caldwell 99, 3: Hexer / mathematical good-bye)
|
||||
{ id: 3, p: 0 }, // Net Taisen (0: diabled, 1: enabled, 2: enabled + local)
|
||||
{ id: 4, p: 7 }, // Unknown event (0-7)
|
||||
{ id: 5, p: 48 }, // Narunaru♪ UniLab jikkenshitsu! event (0: not started, 1-47: steps, 48: ended)
|
||||
{ id: 6, p: 2 }, // Super Unilab BOOST! (0: disabled, 1: enabled, 2: ended)
|
||||
{ id: 7, p: 6 }, // Unknown event (0-6)
|
||||
{ id: 8, p: 2 }, // Unknown event (0-2)
|
||||
{ id: 9, p: 44 }, // Kakusei no Elem event (0: not started, 1-44: steps)
|
||||
{ id: 10, p: 1 }, // Awakening Elem (0: disabled, 1: enabled)
|
||||
{ id: 11, p: 2 }, // CanCan's Super Awakening Boost (0: disabled, 1: enabled, 2: ended)
|
||||
{ id: 12, p: 2 }, // Unknown event (0-2)
|
||||
{ id: 13, p: 2 }, // Unknown event (0-2)
|
||||
]
|
||||
}
|
||||
|
||||
const EXTRA_DATA: ExtraData = {
|
||||
|
||||
const EXTRA_DATA_COMMON: ExtraData = {
|
||||
play_id: { type: 's32', path: 'account', default: 0 },
|
||||
start_type: { type: 's8', path: 'account', default: 0 },
|
||||
tutorial: { type: 's16', path: 'account', default: -1 },
|
||||
|
|
@ -923,15 +1057,6 @@ const EXTRA_DATA: ExtraData = {
|
|||
player_point: { type: 's32', path: 'account', default: 300 },
|
||||
power_point_list: { type: 's32', path: 'account', default: [0], isArray: true },
|
||||
|
||||
//v26
|
||||
card_again_count: { type: 's16', path: 'account', default: 0 },
|
||||
sp_riddles_id: { type: 's16', path: 'account', default: -1 },
|
||||
point: { type: 'u32', path: 'event2021', default: 0 }, // for peace soundtrack hatsubai kinen SP
|
||||
step: { type: 'u8', path: 'event2021', default: 0 }, // for Shutchou! pop'n quest Lively
|
||||
quest_point: { type: 'u32', path: 'event2021', default: Array(8).fill(0), isArray: true }, // for Shutchou! pop'n quest Lively
|
||||
step_nos: { type: 'u8', path: 'event2021', default: 0 }, // for Shutchou! pop'n quest Lively II
|
||||
quest_point_nos: { type: 'u32', path: 'event2021', default: Array(13).fill(0), isArray: true }, // for Shutchou! pop'n quest Lively II
|
||||
|
||||
mode: { type: 'u8', path: 'config', default: 0 },
|
||||
chara: { type: 's16', path: 'config', default: 0 },
|
||||
music: { type: 's16', path: 'config', default: 0 },
|
||||
|
|
@ -973,3 +1098,21 @@ const EXTRA_DATA: ExtraData = {
|
|||
comment_1: { type: 'u16', path: 'customize', default: 0 },
|
||||
comment_2: { type: 'u16', path: 'customize', default: 0 },
|
||||
}
|
||||
|
||||
const EXTRA_DATA_V26: ExtraData = {
|
||||
card_again_count: { type: 's16', path: 'account', default: 0 },
|
||||
sp_riddles_id: { type: 's16', path: 'account', default: -1 },
|
||||
point: { type: 'u32', path: 'event2021', default: 0 }, // for peace soundtrack hatsubai kinen SP
|
||||
step: { type: 'u8', path: 'event2021', default: 0 }, // for Shutchou! pop'n quest Lively
|
||||
quest_point: { type: 'u32', path: 'event2021', default: Array(8).fill(0), isArray: true }, // for Shutchou! pop'n quest Lively
|
||||
step_nos: { type: 'u8', path: 'event2021', default: 0 }, // for Shutchou! pop'n quest Lively II
|
||||
quest_point_nos: { type: 'u32', path: 'event2021', default: Array(13).fill(0), isArray: true }, // for Shutchou! pop'n quest Lively II
|
||||
}
|
||||
|
||||
const EXTRA_DATA_V27: ExtraData = {
|
||||
lift: { type: 'bool', path: 'option', default: 0 },
|
||||
lift_rate: { type: 's16', path: 'option', default: 0 },
|
||||
team_id: { type: 's16', path: 'event_p27', default: 0 },
|
||||
select_battery_id: { type: 's16', path: 'event_p27', default: 1 },
|
||||
today_first_play: { type: 'bool', path: 'event_p27', default: 1 },
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,32 +0,0 @@
|
|||
import { Profile, Scores } from "../models/common";
|
||||
|
||||
export const importPnmData = async (data: {
|
||||
refid: string;
|
||||
profile: string;
|
||||
scores: string;
|
||||
}) => {
|
||||
const profile = JSON.parse(data.profile);
|
||||
const scores = JSON.parse(data.scores);
|
||||
|
||||
await DB.Update<Profile>(
|
||||
data.refid,
|
||||
{ collection: 'profile' },
|
||||
{
|
||||
$set: {
|
||||
...profile
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
await DB.Upsert<Scores>(
|
||||
data.refid,
|
||||
{ collection: 'scores' },
|
||||
{
|
||||
$set: {
|
||||
scores: {
|
||||
...scores
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
|
@ -4,7 +4,6 @@ import * as sunny from "./handler/sunny";
|
|||
import * as lapistoria from "./handler/lapistoria";
|
||||
import * as eclale from "./handler/eclale";
|
||||
import * as usaneko from "./handler/usaneko";
|
||||
import { importPnmData } from "./handler/webui";
|
||||
import { Rivals } from "./models/common";
|
||||
|
||||
const getVersion = (req: any) => {
|
||||
|
|
@ -30,7 +29,12 @@ export function register() {
|
|||
default: true,
|
||||
});
|
||||
|
||||
R.WebUIEvent('importPnmData', importPnmData);
|
||||
R.Config("enable_force_unlock", {
|
||||
name: "Unlock all songs",
|
||||
desc: "Force unlocking all songs (Lapistoria and later).",
|
||||
type: "boolean",
|
||||
default: true,
|
||||
});
|
||||
|
||||
R.WebUIEvent('updatePnmPlayerInfo', async (data: any) => {
|
||||
await DB.Update(data.refid, { collection: 'profile' }, { $set: { name: data.name } });
|
||||
|
|
|
|||
|
|
@ -122,4 +122,20 @@ export interface AchievementsUsaneko extends Achievements {
|
|||
other_count: number;
|
||||
};
|
||||
};
|
||||
|
||||
team: Team[];
|
||||
battery: Battery[]
|
||||
}
|
||||
|
||||
interface Team {
|
||||
team_id: number;
|
||||
ex_no: number;
|
||||
point: number;
|
||||
is_cleared: boolean;
|
||||
}
|
||||
|
||||
interface Battery {
|
||||
battery_id: number;
|
||||
energy: number;
|
||||
is_cleared: boolean;
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
$('#import-click').on('click', () => {
|
||||
data = {
|
||||
refid: $('#refid').val(),
|
||||
profile: $('#profile').val(),
|
||||
scores: $('#scores').val()
|
||||
}
|
||||
|
||||
emit('importPnmData', data).then(() => {
|
||||
$('#import-success').removeClass("is-hidden");
|
||||
});
|
||||
});
|
||||
|
|
@ -61,26 +61,4 @@ div
|
|||
div
|
||||
label There is a limit of 4 rivals maximum (only the 2 firsts will be used for Sunny Park and lower).
|
||||
div
|
||||
label The score sharing option also affect scores get from rivals.
|
||||
.card
|
||||
.card-header
|
||||
p.card-header-title
|
||||
span.icon
|
||||
i.mdi.mdi-account-edit
|
||||
| Import data
|
||||
.card-content
|
||||
.field
|
||||
label.label Import data from previous Asphyxia (non-core)
|
||||
.field
|
||||
input.input(type="text" id="profile" name="profile" placeholder="Put content of popn.json")
|
||||
.field
|
||||
input.input(type="text" id="scores" name="scores" placeholder="Put content of popn_scores.json")
|
||||
.field
|
||||
label.help.is-danger /!\ Please backup your savedata.db before importing data /!\
|
||||
.field
|
||||
button.button.is-primary#import-click
|
||||
span.icon
|
||||
i.mdi.mdi-file-import-outline
|
||||
span Import
|
||||
|
||||
script(src="static/js/profile_page.js")
|
||||
label The score sharing option also affect scores get from rivals.
|
||||
Loading…
Reference in New Issue
Block a user