diff --git a/GameServer/Game/Mission/MissionManager.cs b/GameServer/Game/Mission/MissionManager.cs index 7db67bac..e8ed06a0 100644 --- a/GameServer/Game/Mission/MissionManager.cs +++ b/GameServer/Game/Mission/MissionManager.cs @@ -413,7 +413,8 @@ public class MissionManager : BasePlayerManager foreach (var quest in Player.QuestManager?.GetRunningQuest() ?? []) { var excel = GameData.QuestDataData[quest.QuestId]; - var finishWay = GameData.FinishWayData[excel.FinishWayID]; + var finishWay = GameData.FinishWayData.GetValueOrDefault(excel.FinishWayID); + if (finishWay == null) continue; if (finishWay.FinishType == finishType) if (handler != null) await handler.HandleQuestFinishType(Player, excel, finishWay, arg); @@ -437,7 +438,8 @@ public class MissionManager : BasePlayerManager foreach (var quest in Player.QuestManager?.GetRunningQuest() ?? []) { var excel = GameData.QuestDataData[quest.QuestId]; - var finishWay = GameData.FinishWayData[excel.FinishWayID]; + var finishWay = GameData.FinishWayData.GetValueOrDefault(excel.FinishWayID); + if (finishWay == null) continue; if (finishWay.FinishType == MissionFinishTypeEnum.Talk) if (finishWay.ParamStr1 == talkString) await Player.QuestManager!.FinishQuest(quest.QuestId);