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;
|
package emu.lunarcore.data.excel;
|
||||||
|
|
||||||
|
import org.h2.util.Utils;
|
||||||
|
|
||||||
import emu.lunarcore.data.GameResource;
|
import emu.lunarcore.data.GameResource;
|
||||||
import emu.lunarcore.data.ResourceType;
|
import emu.lunarcore.data.ResourceType;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -13,6 +15,9 @@ public class MapEntranceExcel extends GameResource {
|
|||||||
private int StartGroupID;
|
private int StartGroupID;
|
||||||
private int StartAnchorID;
|
private int StartAnchorID;
|
||||||
|
|
||||||
|
private int[] FinishMainMissionList = Utils.EMPTY_INT_ARRAY;
|
||||||
|
private int[] FinishSubMissionList = Utils.EMPTY_INT_ARRAY;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return ID;
|
return ID;
|
||||||
|
|||||||
@@ -4,15 +4,13 @@ import emu.lunarcore.server.game.GameSession;
|
|||||||
import emu.lunarcore.server.packet.CmdId;
|
import emu.lunarcore.server.packet.CmdId;
|
||||||
import emu.lunarcore.server.packet.Opcodes;
|
import emu.lunarcore.server.packet.Opcodes;
|
||||||
import emu.lunarcore.server.packet.PacketHandler;
|
import emu.lunarcore.server.packet.PacketHandler;
|
||||||
import emu.lunarcore.server.packet.send.PacketGetEnteredSceneScRsp;
|
|
||||||
|
|
||||||
@Opcodes(CmdId.GetEnteredSceneCsReq)
|
@Opcodes(CmdId.GetEnteredSceneCsReq)
|
||||||
public class HandlerGetEnteredSceneCsReq extends PacketHandler {
|
public class HandlerGetEnteredSceneCsReq extends PacketHandler {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(GameSession session, byte[] data) throws Exception {
|
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(CmdId.GetEnteredSceneScRsp);
|
||||||
session.send(new PacketGetEnteredSceneScRsp(session.getPlayer()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +1,34 @@
|
|||||||
package emu.lunarcore.server.packet.send;
|
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.EnteredSceneInfoOuterClass.EnteredSceneInfo;
|
||||||
import emu.lunarcore.proto.GetEnteredSceneScRspOuterClass.GetEnteredSceneScRsp;
|
import emu.lunarcore.proto.GetEnteredSceneScRspOuterClass.GetEnteredSceneScRsp;
|
||||||
import emu.lunarcore.server.packet.BasePacket;
|
import emu.lunarcore.server.packet.BasePacket;
|
||||||
|
import emu.lunarcore.server.packet.CacheablePacket;
|
||||||
import emu.lunarcore.server.packet.CmdId;
|
import emu.lunarcore.server.packet.CmdId;
|
||||||
|
|
||||||
|
@CacheablePacket
|
||||||
public class PacketGetEnteredSceneScRsp extends BasePacket {
|
public class PacketGetEnteredSceneScRsp extends BasePacket {
|
||||||
|
|
||||||
public PacketGetEnteredSceneScRsp(Player player) {
|
public PacketGetEnteredSceneScRsp() {
|
||||||
super(CmdId.GetEnteredSceneScRsp);
|
super(CmdId.GetEnteredSceneScRsp);
|
||||||
|
|
||||||
var sceneInfo = EnteredSceneInfo.newInstance();
|
var data = GetEnteredSceneScRsp.newInstance();
|
||||||
|
|
||||||
if (player.getScene() != null) {
|
// TODO find a better way to get these scenes
|
||||||
sceneInfo.setFloorId(player.getScene().getFloorId());
|
for (var excel : GameData.getMapEntranceExcelMap().values()) {
|
||||||
sceneInfo.setPlaneId(player.getScene().getPlaneId());
|
// Skip these
|
||||||
|
if (excel.getFinishMainMissionList().length == 0 && excel.getFinishSubMissionList().length == 0) {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var data = GetEnteredSceneScRsp.newInstance()
|
// Add info
|
||||||
.addEnteredSceneInfo(sceneInfo);
|
var info = EnteredSceneInfo.newInstance()
|
||||||
|
.setPlaneId(excel.getPlaneID())
|
||||||
|
.setFloorId(excel.getFloorID());
|
||||||
|
|
||||||
|
data.addEnteredSceneInfo(info);
|
||||||
|
}
|
||||||
|
|
||||||
this.setData(data);
|
this.setData(data);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user