From 8ab97ffa52dca4384baac7ce3d3290a8c425fe50 Mon Sep 17 00:00:00 2001 From: Somebody Date: Sat, 17 May 2025 15:20:43 +0800 Subject: [PATCH] fix: the player cannot attack when teleport in same scene --- GameServer/Game/Player/PlayerInstance.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/GameServer/Game/Player/PlayerInstance.cs b/GameServer/Game/Player/PlayerInstance.cs index 6230c8e2..601c375b 100644 --- a/GameServer/Game/Player/PlayerInstance.cs +++ b/GameServer/Game/Player/PlayerInstance.cs @@ -821,10 +821,11 @@ public class PlayerInstance(PlayerData data) Data.Pos = pos; Data.Rot = rot; var notSendMove = true; - SceneInstance instance = new(this, plane, floorId, entryId); - InvokeOnPlayerLoadScene(this, instance); if (planeId != Data.PlaneId || floorId != Data.FloorId || entryId != Data.EntryId) { + SceneInstance instance = new(this, plane, floorId, entryId); + InvokeOnPlayerLoadScene(this, instance); + SceneInstance = instance; Data.PlaneId = planeId; Data.FloorId = floorId; Data.EntryId = entryId; @@ -835,14 +836,12 @@ public class PlayerInstance(PlayerData data) notSendMove = false; } - SceneInstance = instance; - if (MissionManager != null) await MissionManager.OnPlayerChangeScene(); Connection?.SendPacket(CmdIds.SyncServerSceneChangeNotify); if (sendPacket && notSendMove) - await SendPacket(new PacketEnterSceneByServerScNotify(instance)); + await SendPacket(new PacketEnterSceneByServerScNotify(SceneInstance!)); else if (sendPacket && !notSendMove) // send move packet await SendPacket(new PacketSceneEntityMoveScNotify(this));