mirror of
https://github.com/Melledy/LunarCore.git
synced 2025-12-17 15:54:36 +01:00
Fix some scenes not showing up in the map
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package emu.lunarcore.data.excel;
|
||||
|
||||
import org.h2.util.Utils;
|
||||
|
||||
import emu.lunarcore.data.GameResource;
|
||||
import emu.lunarcore.data.ResourceType;
|
||||
import lombok.Getter;
|
||||
@@ -13,6 +15,9 @@ public class MapEntranceExcel extends GameResource {
|
||||
private int StartGroupID;
|
||||
private int StartAnchorID;
|
||||
|
||||
private int[] FinishMainMissionList = Utils.EMPTY_INT_ARRAY;
|
||||
private int[] FinishSubMissionList = Utils.EMPTY_INT_ARRAY;
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
return ID;
|
||||
|
||||
@@ -4,15 +4,13 @@ import emu.lunarcore.server.game.GameSession;
|
||||
import emu.lunarcore.server.packet.CmdId;
|
||||
import emu.lunarcore.server.packet.Opcodes;
|
||||
import emu.lunarcore.server.packet.PacketHandler;
|
||||
import emu.lunarcore.server.packet.send.PacketGetEnteredSceneScRsp;
|
||||
|
||||
@Opcodes(CmdId.GetEnteredSceneCsReq)
|
||||
public class HandlerGetEnteredSceneCsReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] data) throws Exception {
|
||||
// Note: This packet is not necessary for the client to load into a scene
|
||||
session.send(new PacketGetEnteredSceneScRsp(session.getPlayer()));
|
||||
session.send(CmdId.GetEnteredSceneScRsp);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,26 +1,35 @@
|
||||
package emu.lunarcore.server.packet.send;
|
||||
|
||||
import emu.lunarcore.game.player.Player;
|
||||
import emu.lunarcore.data.GameData;
|
||||
import emu.lunarcore.proto.EnteredSceneInfoOuterClass.EnteredSceneInfo;
|
||||
import emu.lunarcore.proto.GetEnteredSceneScRspOuterClass.GetEnteredSceneScRsp;
|
||||
import emu.lunarcore.server.packet.BasePacket;
|
||||
import emu.lunarcore.server.packet.CacheablePacket;
|
||||
import emu.lunarcore.server.packet.CmdId;
|
||||
|
||||
@CacheablePacket
|
||||
public class PacketGetEnteredSceneScRsp extends BasePacket {
|
||||
|
||||
public PacketGetEnteredSceneScRsp(Player player) {
|
||||
public PacketGetEnteredSceneScRsp() {
|
||||
super(CmdId.GetEnteredSceneScRsp);
|
||||
|
||||
var sceneInfo = EnteredSceneInfo.newInstance();
|
||||
var data = GetEnteredSceneScRsp.newInstance();
|
||||
|
||||
if (player.getScene() != null) {
|
||||
sceneInfo.setFloorId(player.getScene().getFloorId());
|
||||
sceneInfo.setPlaneId(player.getScene().getPlaneId());
|
||||
// TODO find a better way to get these scenes
|
||||
for (var excel : GameData.getMapEntranceExcelMap().values()) {
|
||||
// Skip these
|
||||
if (excel.getFinishMainMissionList().length == 0 && excel.getFinishSubMissionList().length == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Add info
|
||||
var info = EnteredSceneInfo.newInstance()
|
||||
.setPlaneId(excel.getPlaneID())
|
||||
.setFloorId(excel.getFloorID());
|
||||
|
||||
data.addEnteredSceneInfo(info);
|
||||
}
|
||||
|
||||
var data = GetEnteredSceneScRsp.newInstance()
|
||||
.addEnteredSceneInfo(sceneInfo);
|
||||
|
||||
this.setData(data);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user