From de9b6db0c5a7fe37a9f900302e91aef5942094ac Mon Sep 17 00:00:00 2001 From: Somebody Date: Mon, 5 Aug 2024 10:49:14 +0800 Subject: [PATCH] Fix StoryLine --- GameServer/Game/Player/PlayerInstance.cs | 7 ++++++- GameServer/Game/Scene/SceneInstance.cs | 3 ++- .../Server/Packet/Send/Scene/PacketGetSceneMapInfoScRsp.cs | 4 ++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/GameServer/Game/Player/PlayerInstance.cs b/GameServer/Game/Player/PlayerInstance.cs index 611c2215..2c53664c 100644 --- a/GameServer/Game/Player/PlayerInstance.cs +++ b/GameServer/Game/Player/PlayerInstance.cs @@ -28,7 +28,6 @@ using EggLink.DanhengServer.GameServer.Game.Scene.Entity; using EggLink.DanhengServer.GameServer.Game.Shop; using EggLink.DanhengServer.GameServer.Game.Task; using EggLink.DanhengServer.GameServer.Server; -using EggLink.DanhengServer.GameServer.Server.Packet; using EggLink.DanhengServer.GameServer.Server.Packet.Send.Avatar; using EggLink.DanhengServer.GameServer.Server.Packet.Send.Lineup; using EggLink.DanhengServer.GameServer.Server.Packet.Send.Player; @@ -471,6 +470,12 @@ public class PlayerInstance(PlayerData data) var floorSavedKey = prop.PropInfo.Name.Replace("Controller_", ""); var key = $"FSV_ML{floorSavedKey}{(config.TargetState == PropStateEnum.Open ? "Started" : "Complete")}"; + + if (prop.Group.GroupName.Contains("JigsawPuzzle") && prop.Group.GroupName.Contains("MainLine")) + { + var splits = prop.Group.GroupName.Split('_'); + key = $"JG_ML_{splits[3]}_Puzzle{(config.TargetState == PropStateEnum.Open ? "Started" : "Complete")}"; + } if (SceneInstance?.FloorInfo?.SavedValues.Find(x => x.Name == key) != null) { // should save diff --git a/GameServer/Game/Scene/SceneInstance.cs b/GameServer/Game/Scene/SceneInstance.cs index fbde2975..4e9cf3be 100644 --- a/GameServer/Game/Scene/SceneInstance.cs +++ b/GameServer/Game/Scene/SceneInstance.cs @@ -55,7 +55,8 @@ public class SceneInstance FloorId = (uint)FloorId, EntryId = (uint)EntryId, SceneMissionInfo = new MissionStatusBySceneInfo(), - DimensionId = (uint)(EntityLoader is StoryLineEntityLoader loader ? loader.DimensionId : 0) + DimensionId = (uint)(EntityLoader is StoryLineEntityLoader loader ? loader.DimensionId : 0), + GameStoryLineId = (uint)(Player.StoryLineManager?.StoryLineData.CurStoryLineId ?? 0), }; var playerGroupInfo = new SceneEntityGroupInfo(); // avatar group diff --git a/GameServer/Server/Packet/Send/Scene/PacketGetSceneMapInfoScRsp.cs b/GameServer/Server/Packet/Send/Scene/PacketGetSceneMapInfoScRsp.cs index ac78653e..6216f2fb 100644 --- a/GameServer/Server/Packet/Send/Scene/PacketGetSceneMapInfoScRsp.cs +++ b/GameServer/Server/Packet/Send/Scene/PacketGetSceneMapInfoScRsp.cs @@ -24,8 +24,8 @@ public class PacketGetSceneMapInfoScRsp : BasePacket { EntryId = entry, EntryStoryLineId = (uint)(player.StoryLineManager?.StoryLineData.CurStoryLineId ?? 0), - DimensionId = (uint)(player.SceneInstance?.EntityLoader is StoryLineEntityLoader loader ? loader.DimensionId - : 0) + //DimensionId = (uint)(player.SceneInstance?.EntityLoader is StoryLineEntityLoader loader ? loader.DimensionId + // : 0) }; GameData.MapEntranceData.TryGetValue((int)entry, out var mapData); if (mapData == null)