From 5a91e332cb1671dc9ca3fe65a0dadda4e49ca265 Mon Sep 17 00:00:00 2001 From: Tau Date: Sun, 31 Mar 2019 19:48:00 -0400 Subject: [PATCH] wip profile load ok! --- src/idz/decoder.ts | 11 +++++++++-- src/idz/defs.ts | 3 +++ src/idz/encoder.ts | 9 ++++++++- src/idz/index.ts | 9 +++++++++ src/idz/request.ts | 10 ++++++++-- src/idz/response.ts | 6 ++++++ 6 files changed, 43 insertions(+), 5 deletions(-) diff --git a/src/idz/decoder.ts b/src/idz/decoder.ts index a5c21f0..ba96308 100644 --- a/src/idz/decoder.ts +++ b/src/idz/decoder.ts @@ -95,6 +95,13 @@ readers.set(MSG.GET_EXIST_RECORD_REQ, buf => { }; }); +readers.set(MSG.GET_GENERAL_REWARD_REQ, buf => { + return { + type: "get_general_reward_req", + field_0004: buf.readUInt32LE(0x0004), + }; +}); + readers.set(MSG.GET_RECORD_REQ, buf => { return { type: "get_record_req", @@ -123,8 +130,8 @@ readers.set(MSG.GET_SERVER_LIST_REQ, () => { readers.set(MSG.GET_TEAM_REQ, buf => { return { type: "get_team_req", - aimeId: buf.readUInt32LE(0x0004), - teamId: buf.readUInt32LE(0x0008), + field_0004: buf.readUInt32LE(0x0004), + field_0008: buf.readUInt32LE(0x0008), }; }); diff --git a/src/idz/defs.ts b/src/idz/defs.ts index 8ee8b74..66cce82 100644 --- a/src/idz/defs.ts +++ b/src/idz/defs.ts @@ -27,6 +27,8 @@ export const MSG = { GET_REWARD_TABLE_RES: 0x0087, UPDATE_TOPIC_REQ: 0x009a, UPDATE_TOPIC_RES: 0x009b, + GET_GENERAL_REWARD_REQ: 0x009c, + GET_GENERAL_REWARD_RES: 0x009d, GET_CONFIG_DATA_2_REQ: 0x00ab, GET_CONFIG_DATA_2_RES: 0x00ac, GET_STOCKER_REQ: 0x00a7, @@ -45,6 +47,7 @@ REQ_LEN.set(MSG.GET_2ON2_REQ, 0x0010); REQ_LEN.set(MSG.GET_CONFIG_REQ, 0x0050); REQ_LEN.set(MSG.GET_CONFIG_DATA_2_REQ, 0x0010); REQ_LEN.set(MSG.GET_EXIST_RECORD_REQ, 0x0010); +REQ_LEN.set(MSG.GET_GENERAL_REWARD_REQ, 0x0010); REQ_LEN.set(MSG.GET_RECORD_REQ, 0x0020); REQ_LEN.set(MSG.GET_REWARD_TABLE_REQ, 0x0010); REQ_LEN.set(MSG.GET_SERVER_LIST_REQ, 0x0020); diff --git a/src/idz/encoder.ts b/src/idz/encoder.ts index 31060b4..74d5949 100644 --- a/src/idz/encoder.ts +++ b/src/idz/encoder.ts @@ -77,6 +77,13 @@ export class Encoder extends Transform { break; + case "get_general_reward_res": + // A generic response is acceptable too so why even bother with this.. + buf = Buffer.alloc(0x0330); + buf.writeUInt16LE(MSG.GET_GENERAL_REWARD_RES, 0x0000); + + break; + case "get_record_v1_res": buf = Buffer.alloc(0x0c60); buf.writeUInt16LE(MSG.GET_RECORD_V1_RES, 0x0000); @@ -87,7 +94,7 @@ export class Encoder extends Transform { case "get_record_v2_res": buf = Buffer.alloc(0x0d30); buf.writeUInt16LE(MSG.GET_RECORD_V2_RES, 0x0000); - iconv.encode("てすと", sjis).copy(buf, 0x03ea); + iconv.encode("てすと", sjis).copy(buf, 0x03ee); break; diff --git a/src/idz/index.ts b/src/idz/index.ts index 7e0a5ef..73323a3 100644 --- a/src/idz/index.ts +++ b/src/idz/index.ts @@ -77,6 +77,15 @@ export default async function idz(socket: Socket) { break; + case "get_general_reward_req": + // A non-generic response is also accepted, but why bother? + output.write({ + type: "generic_res", + status: 1, // not even checked but let's be consistent + }); + + break; + case "get_record_req": output.write({ type: "get_record_v2_res", diff --git a/src/idz/request.ts b/src/idz/request.ts index 1ab0ce8..83b1566 100644 --- a/src/idz/request.ts +++ b/src/idz/request.ts @@ -64,6 +64,11 @@ export interface GetExistRecordRequest { aimeId: number; } +export interface GetGeneralRewardRequest { + type: "get_general_reward_req"; + field_0004: number; +} + export interface GetRecordRequest { type: "get_record_req"; aimeId: number; @@ -85,8 +90,8 @@ export interface GetStockerRequest { export interface GetTeamRequest { type: "get_team_req"; - aimeId: number; - teamId: number; // guess + field_0004: number; + field_0008: number; } export interface UpdateProvisionalStoreRankRequest { @@ -117,6 +122,7 @@ export type Request = | GetConfigRequest | GetConfigRequest2 | GetExistRecordRequest + | GetGeneralRewardRequest | GetRecordRequest | GetRewardTableRequest | GetServerListRequest diff --git a/src/idz/response.ts b/src/idz/response.ts index d57119a..b30936d 100644 --- a/src/idz/response.ts +++ b/src/idz/response.ts @@ -40,6 +40,11 @@ export interface GetExistRecordResponse { result: boolean; } +export interface GetGeneralRewardResponse { + type: "get_general_reward_res"; + // TODO +} + export interface GetRecordResponse1 { type: "get_record_v1_res"; // giga TODO @@ -138,6 +143,7 @@ export type Response = | GetConfigResponse | GetConfigResponse2 | GetExistRecordResponse + | GetGeneralRewardResponse | GetRecordResponse1 | GetRecordResponse2 | GetRewardTableResponse