Give more information on GetMazeMapInfoCsReq
This commit is contained in:
parent
994c8448bc
commit
73593ef8e0
@ -1,24 +1,30 @@
|
||||
import { GetMazeMapInfoScRsp } from "../../data/proto/StarRail";
|
||||
import { GetMazeMapInfoCsReq, GetMazeMapInfoScRsp } from "../../data/proto/StarRail";
|
||||
import MappingInfoExcel from "../../util/excel/MappingInfoExcel";
|
||||
import MazePlaneExcel from "../../util/excel/MazePlaneExcel";
|
||||
import Packet from "../kcp/Packet";
|
||||
import Session from "../kcp/Session";
|
||||
|
||||
export default async function handle(session: Session, packet: Packet) {
|
||||
const body = packet.body as GetMazeMapInfoScRsp;
|
||||
const body = packet.body as GetMazeMapInfoCsReq;
|
||||
|
||||
const mapping = MappingInfoExcel.fromId(body.entryId, session.player.db.basicInfo.worldLevel) || MappingInfoExcel.fromId(1001);
|
||||
|
||||
const dataObj = {
|
||||
retcode: 0,
|
||||
entryId: body.entryId,
|
||||
lightenSectionList: [],
|
||||
mazePropList: [{ groupId: 0, configId: 0, state: 0 }],
|
||||
mazeGroupList: [{ groupId: 0, modifyTime: 0 }],
|
||||
opendChestNum: 0,
|
||||
mazePropList: [{ groupId: mapping.GroupID, configId: mapping.ConfigID, state: 0 }],
|
||||
mazeGroupList: [{ groupId: mapping.GroupID, modifyTime: 0 }],
|
||||
opendChestNum: 69,
|
||||
unlockTeleportList: []
|
||||
} as GetMazeMapInfoScRsp;
|
||||
|
||||
// TODO: No excel info atm
|
||||
for (let i = 0; i < 20; i++) {
|
||||
for (let i = 0; i < 500; i++) {
|
||||
dataObj.lightenSectionList.push(i)
|
||||
}
|
||||
|
||||
dataObj.unlockTeleportList = MazePlaneExcel.getAllEntries().map(x => x.ID);
|
||||
|
||||
session.send("GetMazeMapInfoScRsp", dataObj);
|
||||
}
|
15
src/server/packets/UnlockTutorialGuideCsReq.ts
Normal file
15
src/server/packets/UnlockTutorialGuideCsReq.ts
Normal file
@ -0,0 +1,15 @@
|
||||
import { TutorialStatus, UnlockTutorialGuideCsReq, UnlockTutorialGuideScRsp } from "../../data/proto/StarRail";
|
||||
import Packet from "../kcp/Packet";
|
||||
import Session from "../kcp/Session";
|
||||
|
||||
export default async function handle(session: Session, packet: Packet) {
|
||||
const body = packet.body as UnlockTutorialGuideCsReq;
|
||||
|
||||
session.send("UnlockTutorialGuideScRsp", {
|
||||
retcode: 0,
|
||||
tutorialGuide: {
|
||||
id: body.groupId,
|
||||
status: TutorialStatus.TUTORIAL_FINISH
|
||||
}
|
||||
} as UnlockTutorialGuideScRsp);
|
||||
}
|
36
src/util/excel/MappingInfoExcel.ts
Normal file
36
src/util/excel/MappingInfoExcel.ts
Normal file
@ -0,0 +1,36 @@
|
||||
import _MappingInfoExcelTable from "../../data/excel/MappingInfoExcelTable.json";
|
||||
|
||||
interface TextMap {
|
||||
hash: number;
|
||||
}
|
||||
|
||||
interface MappingInfoExcelEntry {
|
||||
ID: number;
|
||||
WorldLevel: number;
|
||||
Type: "TYPE_COCOON" | "TYPE_TOWN";
|
||||
IsTeleport: boolean;
|
||||
IsShowInFog: boolean;
|
||||
PlaneID: number;
|
||||
FloorID: number;
|
||||
GroupID: number;
|
||||
ConfigID: number;
|
||||
InitialEnable: boolean;
|
||||
Name: TextMap;
|
||||
Desc: TextMap;
|
||||
ShowMonsterList: number[];
|
||||
RewardList: number[];
|
||||
IsShowRewardCount: boolean;
|
||||
isShowCleared: boolean;
|
||||
}
|
||||
|
||||
const MappingInfoExcelTable = _MappingInfoExcelTable as { [key: `${number}:${number}`]: MappingInfoExcelEntry };
|
||||
|
||||
|
||||
export default class MappingInfoExcel {
|
||||
private constructor() { }
|
||||
|
||||
public static fromId(id: number, wl: number = 0) {
|
||||
const query = MappingInfoExcelTable[`${id}:${wl}`];
|
||||
return query || MappingInfoExcelTable[`${id}:0`];
|
||||
}
|
||||
}
|
@ -59,4 +59,8 @@ export default class MazePlaneExcel {
|
||||
public static getEntry(entryId: number): MapEntryExcelTableEntry {
|
||||
return MapEntryExcelTable[entryId.toString()];
|
||||
}
|
||||
|
||||
public static getAllEntries(): MapEntryExcelTableEntry[] {
|
||||
return Object.values(MapEntryExcelTable);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user