From 76f3d7d7313c880aff9265d19ecf1daa9f73984f Mon Sep 17 00:00:00 2001 From: SilicaAndPina Date: Fri, 5 Feb 2021 15:37:32 +1300 Subject: [PATCH] try fix crashing and increase stack limit to 50 --- .../HorseIsleServer/Game/Items/DroppedItems.cs | 16 ++++++++++++++-- .../HorseIsleServer/Server/ConfigReader.cs | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Horse Isle Server/HorseIsleServer/Game/Items/DroppedItems.cs b/Horse Isle Server/HorseIsleServer/Game/Items/DroppedItems.cs index d07fabc..0b5b9bf 100755 --- a/Horse Isle Server/HorseIsleServer/Game/Items/DroppedItems.cs +++ b/Horse Isle Server/HorseIsleServer/Game/Items/DroppedItems.cs @@ -27,6 +27,9 @@ namespace HISP.Game.Items int count = 0; for(int i = 0; i < droppedItems.Length; i++) { + if (droppedItems[i] == null) // Item removed in another thread. + continue; + if(droppedItems[i].Instance.ItemId == item.Id) { count++; @@ -42,7 +45,10 @@ namespace HISP.Game.Items List items = new List(); for(int i = 0; i < droppedItems.Length; i++) { - if(droppedItems[i].X == x && droppedItems[i].Y == y) + if (droppedItems[i] == null) // Item removed in another thread. + continue; + + if (droppedItems[i].X == x && droppedItems[i].Y == y) { items.Add(droppedItems[i]); } @@ -88,7 +94,10 @@ namespace HISP.Game.Items for(int i = 0; i < droppedItems.Length; i++) { - if(droppedItems[i].Instance.RandomId == randomId) + if (droppedItems[i] == null) // Item removed in another thread. + continue; + + if (droppedItems[i].Instance.RandomId == randomId) { return droppedItems[i]; } @@ -103,6 +112,9 @@ namespace HISP.Game.Items for(int i = 0; i < droppedItemsList.Count; i++) { + if (droppedItemsList[i] == null) // Item removed in another thread. + continue; + droppedItemsList[i].DespawnTimer--; if(droppedItemsList[i].DespawnTimer <= 0) { diff --git a/Horse Isle Server/HorseIsleServer/Server/ConfigReader.cs b/Horse Isle Server/HorseIsleServer/Server/ConfigReader.cs index 43a2343..1651b99 100755 --- a/Horse Isle Server/HorseIsleServer/Server/ConfigReader.cs +++ b/Horse Isle Server/HorseIsleServer/Server/ConfigReader.cs @@ -26,7 +26,7 @@ namespace HISP.Server public static bool DoCorrections; public static bool DoNonViolations; - public const int MAX_STACK = 40; + public const int MAX_STACK = 50; private static string ConfigurationFileName = "server.properties"; public static void OpenConfig()