mirror of
https://github.com/asphyxia-core/plugins.git
synced 2026-04-24 15:37:43 -05:00
Merge pull request #32 from cracrayol/stable
Add MGA plugin + Fix for PnM plugin
This commit is contained in:
commit
ea15d4628d
13
mga@asphyxia/README.md
Normal file
13
mga@asphyxia/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Metal Gear Arcade
|
||||
|
||||
Plugin Version: **v1.0.0**
|
||||
|
||||
Important : require minimum Asphyxia Core **v1.40c**
|
||||
|
||||
## Changelog
|
||||
|
||||
#### 1.0.0
|
||||
Initial Release.
|
||||
|
||||
## Known limitations
|
||||
* No network/online capabilities
|
||||
92
mga@asphyxia/index.ts
Normal file
92
mga@asphyxia/index.ts
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
interface PlayerData {
|
||||
collection: 'data',
|
||||
str: string[],
|
||||
bin: string[]
|
||||
}
|
||||
|
||||
export function register() {
|
||||
R.GameCode('I36');
|
||||
|
||||
R.Route(`eventlog.write`, async (req, data, send) => {
|
||||
// Don't save event log.
|
||||
send.object({
|
||||
gamesession: K.ITEM('s64', BigInt(1)),
|
||||
logsendflg: K.ITEM('s32', 0),
|
||||
logerrlevel: K.ITEM('s32', 0),
|
||||
evtidnosendflg: K.ITEM('s32', 0),
|
||||
})
|
||||
});
|
||||
|
||||
R.Route(`system.getmaster`, async (req, data, send) => {
|
||||
// Called at game startup
|
||||
// Unlock all contents
|
||||
send.object({
|
||||
result: K.ITEM('s32', 1),
|
||||
strdata1: K.ITEM('str', Buffer.from('2011081000:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1', 'utf-8').toString('base64')),
|
||||
strdata2: K.ITEM('str', Buffer.from('1,1,1,1,1,1,1,1,1,1,1,1,1,1', 'utf-8').toString('base64')),
|
||||
updatedate: K.ITEM('u64', BigInt('1120367223')),
|
||||
})
|
||||
});
|
||||
|
||||
R.Route(`playerdata.usergamedata_send`, async (req, data, send) => {
|
||||
// Save user data
|
||||
const refid = $(data).element('data').str('eaid');
|
||||
const datanum = $(data).element('data').number('datanum');
|
||||
let playerData: PlayerData = {
|
||||
collection: 'data',
|
||||
str: [],
|
||||
bin: []
|
||||
};
|
||||
|
||||
const record = $(data).element('data').element('record').obj;
|
||||
|
||||
for (let i = 0; i < datanum; i++) {
|
||||
playerData.str[i] = Buffer.from(_.get(record.d[i], '@content'), 'base64').toString('utf-8');
|
||||
playerData.bin[i] = _.get(record.d[i].bin1, '@content');
|
||||
}
|
||||
|
||||
DB.Upsert(refid, { collection: 'data' }, playerData);
|
||||
|
||||
send.object({
|
||||
result: K.ITEM('s32', 0),
|
||||
});
|
||||
});
|
||||
|
||||
R.Route(`playerdata.usergamedata_recv`, async (req, data, send) => {
|
||||
// Load user data
|
||||
const refid = $(data).element('data').str('eaid');
|
||||
|
||||
const playerData = await DB.FindOne<PlayerData>(refid, { collection: 'data' });
|
||||
|
||||
let player = {
|
||||
record_num: K.ITEM('u32', playerData.str.length),
|
||||
record: {
|
||||
d: []
|
||||
}
|
||||
};
|
||||
|
||||
for(let i = 0; i < playerData.str.length; i++) {
|
||||
// Remove the 2 firsts elements of player data
|
||||
let data = playerData.str[i].split(',');
|
||||
|
||||
player.record.d[i] = K.ITEM('str', Buffer.from(data.slice(2).join(','), 'utf-8').toString('base64') + playerData.bin[i]);
|
||||
player.record.d[i].bin1 = K.ITEM('str', playerData.bin[i]);
|
||||
}
|
||||
|
||||
send.object({
|
||||
player,
|
||||
result: K.ITEM('s32', 0)
|
||||
});
|
||||
});
|
||||
|
||||
R.Route(`playerdata.usergamedata_scorerank`, async (req, data, send) => {
|
||||
// Not implemented
|
||||
send.object({
|
||||
result: K.ITEM('s32', 0)
|
||||
});
|
||||
});
|
||||
|
||||
R.Unhandled((req: EamuseInfo, data: any, send: EamuseSend) => {
|
||||
return send.success();
|
||||
});
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Pop'n Music
|
||||
|
||||
Plugin Version: **v2.2.2**
|
||||
Plugin Version: **v2.2.3**
|
||||
|
||||
## Supported Versions
|
||||
- pop'n music 19 Tune Street
|
||||
|
|
@ -15,6 +15,9 @@ Important : require minimum Asphyxia Core **v1.31**
|
|||
|
||||
## Changelog
|
||||
|
||||
### 2.2.3
|
||||
* All : Send 0 if clear_type is not existing.
|
||||
|
||||
### 2.2.2
|
||||
* Usaneko/Peace : Add Omnimix support (songs with id >= 3000).
|
||||
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ const getScores = async (refid: string, forFriend: boolean = false) => {
|
|||
900: 9,
|
||||
1000: 10,
|
||||
1100: 11,
|
||||
}[score.clear_type];
|
||||
}[score.clear_type] || 0;
|
||||
|
||||
if (music > GAME_MAX_MUSIC_ID) {
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -261,7 +261,7 @@ const getScores = async (refid: string) => {
|
|||
900: 10,
|
||||
1000: 11,
|
||||
1100: 15,
|
||||
}[score.clear_type];
|
||||
}[score.clear_type] || 0;
|
||||
clear_medal[music] = clear_medal[music] | (medal << (sheet * 4));
|
||||
|
||||
const hiscore_index = (music * 4) + sheet;
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ const getProfile = async (refid: string, name?: string) => {
|
|||
900: 9,
|
||||
1000: 10,
|
||||
1100: 11,
|
||||
}[score.clear_type]),
|
||||
}[score.clear_type] || 0),
|
||||
old_score: K.ITEM('s32', 0),
|
||||
old_clear_type: K.ITEM('u8', 0),
|
||||
});
|
||||
|
|
@ -416,7 +416,7 @@ const friend = async (req: EamuseInfo, data: any, send: EamuseSend): Promise<any
|
|||
music_num: music.toString(),
|
||||
sheet_num: sheet.toString(),
|
||||
score: score.score.toString(),
|
||||
clearmedal: {
|
||||
clearmedal: ({
|
||||
100: 1,
|
||||
200: 2,
|
||||
300: 3,
|
||||
|
|
@ -428,7 +428,7 @@ const friend = async (req: EamuseInfo, data: any, send: EamuseSend): Promise<any
|
|||
900: 9,
|
||||
1000: 10,
|
||||
1100: 11,
|
||||
}[score.clear_type].toString(),
|
||||
}[score.clear_type] || 0).toString(),
|
||||
}));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -302,7 +302,7 @@ const getScores = async (refid: string) => {
|
|||
900: 10,
|
||||
1000: 11,
|
||||
1100: 15,
|
||||
}[score.clear_type];
|
||||
}[score.clear_type] || 0;
|
||||
clear_medal[music] = clear_medal[music] | (medal << (sheet * 4));
|
||||
|
||||
const hiscore_index = (music * 4) + sheet;
|
||||
|
|
|
|||
|
|
@ -397,7 +397,7 @@ const __format_flags_for_score = (sheet: number, clear_type: number) => {
|
|||
3: 0x4000,
|
||||
7: 0,
|
||||
8: 0,
|
||||
}[sheet]
|
||||
}[sheet];
|
||||
const shift = {
|
||||
9: 4,
|
||||
4: 0,
|
||||
|
|
@ -408,7 +408,7 @@ const __format_flags_for_score = (sheet: number, clear_type: number) => {
|
|||
3: 6,
|
||||
7: 9,
|
||||
8: 8,
|
||||
}[sheet]
|
||||
}[sheet];
|
||||
const flags = {
|
||||
100: 0,
|
||||
200: 0,
|
||||
|
|
@ -421,7 +421,7 @@ const __format_flags_for_score = (sheet: number, clear_type: number) => {
|
|||
900: 2,
|
||||
1000: 2,
|
||||
1100: 3,
|
||||
}[clear_type]
|
||||
}[clear_type] || 0;
|
||||
return (flags << shift) | playedflag
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ const getScores = async (refid: string, version: string, forFriend: boolean = fa
|
|||
900: 9,
|
||||
1000: 10,
|
||||
1100: 11,
|
||||
}[score.clear_type];
|
||||
}[score.clear_type] || 0;
|
||||
|
||||
if (music > maxMusicId) {
|
||||
continue;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user