diff --git a/HorseIsleServer/HorseIsleServer/Game/Ranch.cs b/HorseIsleServer/HorseIsleServer/Game/Ranch.cs index 9c6f8a8..346485d 100644 --- a/HorseIsleServer/HorseIsleServer/Game/Ranch.cs +++ b/HorseIsleServer/HorseIsleServer/Game/Ranch.cs @@ -314,6 +314,12 @@ namespace HISP.Game } public RanchBuilding GetBuilding(int buildingId) { + if (buildingId < 0) + return null; + + if (buildingId >= buildings.Length) + return null; + return buildings[buildingId]; } public void SetBuilding(int buildingId, RanchBuilding value) diff --git a/HorseIsleServer/HorseIsleServer/Server/Database.cs b/HorseIsleServer/HorseIsleServer/Server/Database.cs index 3f6c3e1..f7e69f5 100644 --- a/HorseIsleServer/HorseIsleServer/Server/Database.cs +++ b/HorseIsleServer/HorseIsleServer/Server/Database.cs @@ -1932,8 +1932,7 @@ namespace HISP.Server while (reader.Read()) { - inv.AddHorse(ReadHorseInstance(reader), false); - + inv.AddHorse(ReadHorseInstance(reader), false, true); } diff --git a/HorseIsleServer/HorseIsleServer/Server/GameServer.cs b/HorseIsleServer/HorseIsleServer/Server/GameServer.cs index 13ef5d2..05a641e 100644 --- a/HorseIsleServer/HorseIsleServer/Server/GameServer.cs +++ b/HorseIsleServer/HorseIsleServer/Server/GameServer.cs @@ -5531,7 +5531,7 @@ namespace HISP.Server { Ranch.RanchBuilding building = Ranch.RanchBuilding.GetRanchBuildingById(buildingId); int ranchBuild = sender.LoggedinUser.LastClickedRanchBuilding; - if (ranchBuild == 0) + if (ranchBuild <= 0) return; if (sender.LoggedinUser.OwnedRanch != null) { @@ -5540,7 +5540,12 @@ namespace HISP.Server Logger.HackerPrint(sender.LoggedinUser.Username + " Tried to remove more buildings than the limit."); return; } + Ranch.RanchBuilding ranchBuilding = sender.LoggedinUser.OwnedRanch.GetBuilding(ranchBuild - 1); + + if (ranchBuilding == null) + return; + if (ranchBuilding.Id == buildingId) { sender.LoggedinUser.OwnedRanch.SetBuilding(ranchBuild - 1, null);