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;
}
const planeID = MazePlaneExcel.fromPlaneId(parseInt(command.args[0]))
const uid = Interface.target.player.db._id;
if(command.args.length == 0){
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 lineup2 = await Interface.target.player.getLineup();
const curAvatarEntity = new ActorEntity(Interface.target.player.scene, lineup2.avatarList[0].id, posData.pos);
const lineup = await Interface.target.player.getLineup();
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.
Interface.target.player.db.posData.planeID = planeID!.PlaneID;
Interface.target.player.db.posData.floorID = planeID!.StartFloorID;
await Interface.target.player.save()
//ty for tamilpp25 scene
Interface.target.send(GetCurSceneInfoScRsp, {
retcode: 0,
scene: {
planeId: planeID.PlaneID,
floorId: planeID.StartFloorID,
planeId: planeId,
floorId: floorId,
entityList: [
curAvatarEntity
],
@ -45,5 +69,5 @@ export default async function handle(command: Command) {
Interface.target.sync();
c.log(`Scene set to PlaneID: ${planeID.PlaneID}`);
c.log(`Scene set to floorId: ${floorId}`);
}

View File

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