diff --git a/Horse Isle Server/HorseIsleServer/Player/User.cs b/Horse Isle Server/HorseIsleServer/Player/User.cs index 3762148..78a666b 100755 --- a/Horse Isle Server/HorseIsleServer/Player/User.cs +++ b/Horse Isle Server/HorseIsleServer/Player/User.cs @@ -97,6 +97,7 @@ namespace HISP.Player public Riddler LastRiddle; public Award Awards; public User SocializingWith; + public List BeingSocializedBy = new List(); public User PendingBuddyRequestTo; public int CapturingHorseId; public DateTime LoginTime; diff --git a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs index 4d1ef76..1064cba 100755 --- a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs +++ b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs @@ -503,6 +503,8 @@ namespace HISP.Server if(IsUserOnline(playerId)) { sender.LoggedinUser.SocializingWith = GetUserById(playerId); + + sender.LoggedinUser.SocializingWith.BeingSocializedBy.Add(sender.LoggedinUser); sender.LoggedinUser.MetaPriority = true; byte[] metaPacket = PacketBuilder.CreateMetaPacket(Meta.BuildSocialMenu(sender.LoggedinUser.CurrentlyRidingHorse != null)); sender.SendPacket(metaPacket); @@ -4487,9 +4489,15 @@ namespace HISP.Server } } + // Cancel Trades if (loggedInUser.TradingWith != null) loggedInUser.TradingWith.CancelTradeMoved(); - loggedInUser.PendingBuddyRequestTo = null; + loggedInUser.PendingBuddyRequestTo = null; + + // Close Social Windows + foreach (User sUser in loggedInUser.BeingSocializedBy.ToArray()) + UpdateArea(sUser.LoggedinClient); + loggedInUser.BeingSocializedBy.Clear(); byte[] moveResponse = PacketBuilder.CreateMovementPacket(loggedInUser.X, loggedInUser.Y, loggedInUser.CharacterId, loggedInUser.Facing, direction, true); sender.SendPacket(moveResponse);