Close social windows when player moves

This commit is contained in:
SilicaAndPina 2021-03-10 12:21:51 +13:00
parent 99c604e926
commit 2b59ba1be9
2 changed files with 10 additions and 1 deletions

View file

@ -97,6 +97,7 @@ namespace HISP.Player
public Riddler LastRiddle;
public Award Awards;
public User SocializingWith;
public List<User> BeingSocializedBy = new List<User>();
public User PendingBuddyRequestTo;
public int CapturingHorseId;
public DateTime LoginTime;

View file

@ -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);