From f7930fd4d38966066771d1c44835c34c5cae76b6 Mon Sep 17 00:00:00 2001 From: Bluzume <39113159+KuromeSan@users.noreply.github.com> Date: Sat, 6 Nov 2021 02:40:11 -0400 Subject: [PATCH] Fix MultiRoom updating every time anyone walks ANYWHERE in the game --- .../HorseIsleServer/Game/Chat/Command.cs | 21 +++++++++++++++++++ .../Game/Items/DroppedItems.cs | 7 ++----- .../HorseIsleServer/Game/Multiroom.cs | 11 +++++----- .../HorseIsleServer/Server/GameServer.cs | 12 +++++------ 4 files changed, 35 insertions(+), 16 deletions(-) diff --git a/HorseIsleServer/HorseIsleServer/Game/Chat/Command.cs b/HorseIsleServer/HorseIsleServer/Game/Chat/Command.cs index 5701641..11a5a85 100644 --- a/HorseIsleServer/HorseIsleServer/Game/Chat/Command.cs +++ b/HorseIsleServer/HorseIsleServer/Game/Chat/Command.cs @@ -84,6 +84,27 @@ namespace HISP.Game.Chat return false; } } + else if(args[0].ToUpper() == "AWARD") + { + int awardId = 0; + try + { + awardId = int.Parse(args[1]); + if (args.Length >= 3) + { + findNamePartial(args[2]).Awards.AddAward(Award.GetAwardById(awardId)); + } + else + { + user.Awards.AddAward(Award.GetAwardById(awardId)); + } + + } + catch (Exception) + { + return false; + } + } else if (args[0].ToUpper() == "MONEY") { int money = 0; diff --git a/HorseIsleServer/HorseIsleServer/Game/Items/DroppedItems.cs b/HorseIsleServer/HorseIsleServer/Game/Items/DroppedItems.cs index 3185575..8dd0515 100644 --- a/HorseIsleServer/HorseIsleServer/Game/Items/DroppedItems.cs +++ b/HorseIsleServer/HorseIsleServer/Game/Items/DroppedItems.cs @@ -106,8 +106,7 @@ namespace HISP.Game.Items { Database.DecrementDroppedItemDespawnTimer(); Database.RemoveDespawningItems(); // GO-GO-GO-GOGOGOGO GOTTA GO FAST!!! - int itmCount = droppedItemsList.Count; - for (int i = 0; i < itmCount; i++) + for (int i = 0; i < droppedItemsList.Count; i++) { if (droppedItemsList[i] == null) // Item removed in another thread. continue; @@ -121,9 +120,7 @@ namespace HISP.Game.Items Logger.DebugPrint("Despawned Item at " + droppedItemsList[i].X + ", " + droppedItemsList[i].Y); droppedItemsList.Remove(droppedItemsList[i]); - itmCount = droppedItemsList.Count; - - + } } } diff --git a/HorseIsleServer/HorseIsleServer/Game/Multiroom.cs b/HorseIsleServer/HorseIsleServer/Game/Multiroom.cs index d555a33..586d823 100644 --- a/HorseIsleServer/HorseIsleServer/Game/Multiroom.cs +++ b/HorseIsleServer/HorseIsleServer/Game/Multiroom.cs @@ -95,12 +95,13 @@ namespace HISP.Game { Logger.DebugPrint(user.Username + " Left multiroom @ " + x.ToString() + "," + y.ToString()); joinedUsers.Remove(user); - } - foreach (User joinedUser in JoinedUsers) - if (!TwoPlayer.IsPlayerInGame(joinedUser)) - if (!joinedUser.ListingAuction) - GameServer.UpdateArea(joinedUser.LoggedinClient); + + foreach (User joinedUser in JoinedUsers) + if (!TwoPlayer.IsPlayerInGame(joinedUser)) + if (!joinedUser.ListingAuction) + GameServer.UpdateArea(joinedUser.LoggedinClient); + } } } diff --git a/HorseIsleServer/HorseIsleServer/Server/GameServer.cs b/HorseIsleServer/HorseIsleServer/Server/GameServer.cs index 7a7651a..80b40de 100644 --- a/HorseIsleServer/HorseIsleServer/Server/GameServer.cs +++ b/HorseIsleServer/HorseIsleServer/Server/GameServer.cs @@ -6446,7 +6446,7 @@ namespace HISP.Server } catch (FormatException) { - Logger.ErrorPrint(sender.LoggedinUser.Username + " Sent an invalid object interaction packet."); + Logger.ErrorPrint(sender.LoggedinUser.Username + " Sent an invalid object interaction packet. " + BitConverter.ToString(packet)); return; } if (sender.LoggedinUser.Inventory.HasItem(randomId)) @@ -6587,7 +6587,7 @@ namespace HISP.Server } catch (FormatException) { - Logger.ErrorPrint(sender.LoggedinUser.Username + " Sent an invalid object interaction packet."); + Logger.ErrorPrint(sender.LoggedinUser.Username + " Sent an invalid object interaction packet. " + BitConverter.ToString(packet)); return; } @@ -6625,7 +6625,7 @@ namespace HISP.Server } catch (FormatException) { - Logger.ErrorPrint(sender.LoggedinUser.Username + " Sent an invalid object interaction packet. (drop)"); + Logger.ErrorPrint(sender.LoggedinUser.Username + " Sent an invalid object interaction packet. (drop)"+BitConverter.ToString(packet)); return; } @@ -7087,7 +7087,7 @@ namespace HISP.Server } catch (FormatException) { - Logger.ErrorPrint(sender.LoggedinUser.Username + " Sent an invalid object interaction packet."); + Logger.ErrorPrint(sender.LoggedinUser.Username + " Sent an invalid object interaction packet. " + BitConverter.ToString(packet)); return; } @@ -7122,7 +7122,7 @@ namespace HISP.Server } catch (FormatException) { - Logger.ErrorPrint(sender.LoggedinUser.Username + " Sent an invalid object interaction packet."); + Logger.ErrorPrint(sender.LoggedinUser.Username + " Sent an invalid object interaction packet. " + BitConverter.ToString(packet)); return; } @@ -7151,7 +7151,7 @@ namespace HISP.Server } catch (FormatException) { - Logger.ErrorPrint(sender.LoggedinUser.Username + " Sent an invalid object interaction packet."); + Logger.ErrorPrint(sender.LoggedinUser.Username + " Sent an invalid object interaction packet. " + BitConverter.ToString(packet)); return; }