improve scene command (#42)

Co-authored-by: TheLostTree <65834918+TheLostTree@users.noreply.github.com>
This commit is contained in:
tamilpp25 2022-08-05 08:49:27 +05:30 committed by GitHub
parent 50c51738aa
commit 118df5656d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 9 deletions

View File

@ -11,26 +11,50 @@ export default async function handle(command: Command) {
return; return;
} }
const planeID = MazePlaneExcel.fromPlaneId(parseInt(command.args[0])) if(command.args.length == 0){
const uid = Interface.target.player.db._id; c.log("Usage: /scene <planeID|floorID>");
return;
}
const plane = MazePlaneExcel.fromFloorId(parseInt(command.args[0])) || MazePlaneExcel.fromPlaneId(parseInt(command.args[0])) //Get plane data
let floorId = 10001001 // Default floor data
if(plane!){
if(command.args[0].length === 5){//PLANE ID LOGIC
floorId = plane.StartFloorID;
}else if(command.args[0].length === 8){//FLOOR ID LOGIC
if(plane! && plane.FloorIDList.includes(parseInt(command.args[0]))){
floorId = parseInt(command.args[0]);
}else{
c.error("cannot find Scene data!");
return;
}
}else{
c.error("Invalid FloorID / PlaneID length!");
return;
}
}else{
c.error("cannot find Scene data!");
return;
}
const posData = Interface.target.player.db.posData; const posData = Interface.target.player.db.posData;
const lineup2 = await Interface.target.player.getLineup(); const lineup = await Interface.target.player.getLineup();
const curAvatarEntity = new ActorEntity(Interface.target.player.scene, lineup2.avatarList[0].id, posData.pos); const curAvatarEntity = new ActorEntity(Interface.target.player.scene, lineup.leaderSlot, posData.pos);
if (!planeID) return c.log("Usage: /scene <planeID>"); const planeId = parseInt(floorId.toString().slice(0,5));
// Update scene information on player. // Update scene information on player.
Interface.target.player.db.posData.planeID = planeID!.PlaneID; Interface.target.player.db.posData.planeID = planeID!.PlaneID;
Interface.target.player.db.posData.floorID = planeID!.StartFloorID; Interface.target.player.db.posData.floorID = planeID!.StartFloorID;
await Interface.target.player.save() await Interface.target.player.save()
//ty for tamilpp25 scene
Interface.target.send(GetCurSceneInfoScRsp, { Interface.target.send(GetCurSceneInfoScRsp, {
retcode: 0, retcode: 0,
scene: { scene: {
planeId: planeID.PlaneID, planeId: planeId,
floorId: planeID.StartFloorID, floorId: floorId,
entityList: [ entityList: [
curAvatarEntity curAvatarEntity
], ],
@ -45,5 +69,5 @@ export default async function handle(command: Command) {
Interface.target.sync(); Interface.target.sync();
c.log(`Scene set to PlaneID: ${planeID.PlaneID}`); c.log(`Scene set to floorId: ${floorId}`);
} }

View File

@ -55,6 +55,10 @@ export default class MazePlaneExcel {
public static fromPlaneId(planeId: number): MazePlaneExcelTableEntry { public static fromPlaneId(planeId: number): MazePlaneExcelTableEntry {
return MazePlaneExcelTable[planeId.toString()]; return MazePlaneExcelTable[planeId.toString()];
} }
public static fromFloorId(floorId: number): MazePlaneExcelTableEntry {
return MazePlaneExcelTable[floorId.toString().slice(0,5)];
}
public static getEntry(entryId: number): MapEntryExcelTableEntry { public static getEntry(entryId: number): MapEntryExcelTableEntry {
return MapEntryExcelTable[entryId.toString()]; return MapEntryExcelTable[entryId.toString()];