mirror of
https://github.com/Melledy/LunarCore.git
synced 2025-12-13 13:54:37 +01:00
Fix teleporting to the wrong scene when leaving pure fiction
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package emu.lunarcore.game.challenge;
|
package emu.lunarcore.game.challenge;
|
||||||
|
|
||||||
|
import emu.lunarcore.GameConstants;
|
||||||
import emu.lunarcore.data.GameData;
|
import emu.lunarcore.data.GameData;
|
||||||
import emu.lunarcore.data.config.GroupInfo;
|
import emu.lunarcore.data.config.GroupInfo;
|
||||||
import emu.lunarcore.data.config.MonsterInfo;
|
import emu.lunarcore.data.config.MonsterInfo;
|
||||||
@@ -24,6 +25,9 @@ public class ChallengeEntityLoader extends SceneEntityLoader {
|
|||||||
// Setup first stage
|
// Setup first stage
|
||||||
scene.loadGroup(instance.getExcel().getMazeGroupID1());
|
scene.loadGroup(instance.getExcel().getMazeGroupID1());
|
||||||
|
|
||||||
|
// Set leave entry
|
||||||
|
scene.setLeaveEntryId(instance.isStory() ? GameConstants.CHALLENGE_STORY_ENTRANCE : GameConstants.CHALLENGE_ENTRANCE);
|
||||||
|
|
||||||
// Load all groups with props
|
// Load all groups with props
|
||||||
for (var group : scene.getFloorInfo().getGroups().values()) {
|
for (var group : scene.getFloorInfo().getGroups().values()) {
|
||||||
// Skip non-server groups
|
// Skip non-server groups
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import emu.lunarcore.util.Position;
|
|||||||
import it.unimi.dsi.fastutil.ints.*;
|
import it.unimi.dsi.fastutil.ints.*;
|
||||||
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
import us.hebi.quickbuf.RepeatedInt;
|
import us.hebi.quickbuf.RepeatedInt;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@@ -38,6 +39,7 @@ public class Scene implements Tickable {
|
|||||||
private final int planeId;
|
private final int planeId;
|
||||||
private final int floorId;
|
private final int floorId;
|
||||||
private int entryId;
|
private int entryId;
|
||||||
|
@Setter private int leaveEntryId;
|
||||||
|
|
||||||
private int lastEntityId = 0;
|
private int lastEntityId = 0;
|
||||||
private boolean loaded = false;
|
private boolean loaded = false;
|
||||||
|
|||||||
@@ -19,10 +19,8 @@ public class HandlerLeaveChallengeCsReq extends PacketHandler {
|
|||||||
|
|
||||||
// Get entry id
|
// Get entry id
|
||||||
int leaveEntryId = GameConstants.CHALLENGE_ENTRANCE;
|
int leaveEntryId = GameConstants.CHALLENGE_ENTRANCE;
|
||||||
if (session.getPlayer().getChallengeInstance() != null) {
|
if (session.getPlayer().getScene().getLeaveEntryId() != 0) {
|
||||||
if (session.getPlayer().getChallengeInstance().getExcel().isStory()) {
|
leaveEntryId = session.getPlayer().getScene().getLeaveEntryId();
|
||||||
leaveEntryId = GameConstants.CHALLENGE_STORY_ENTRANCE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Leave scene
|
// Leave scene
|
||||||
|
|||||||
Reference in New Issue
Block a user