From b5ae6946a9e2460b23276803bf8061420f9c13b2 Mon Sep 17 00:00:00 2001 From: SilicaAndPina Date: Tue, 11 May 2021 22:36:46 +1200 Subject: [PATCH] Fix Trading bug and Mods Revenge. --- .../HorseIsleServer/Game/Events/ModsRevenge.cs | 8 ++++++-- Horse Isle Server/HorseIsleServer/Server/GameServer.cs | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Horse Isle Server/HorseIsleServer/Game/Events/ModsRevenge.cs b/Horse Isle Server/HorseIsleServer/Game/Events/ModsRevenge.cs index 7493bfe..e8a9b0e 100644 --- a/Horse Isle Server/HorseIsleServer/Game/Events/ModsRevenge.cs +++ b/Horse Isle Server/HorseIsleServer/Game/Events/ModsRevenge.cs @@ -14,6 +14,7 @@ namespace HISP.Game.Events { Thrower = thrower; ThrownAt = new List(); + } public User Thrower; public List ThrownAt; @@ -78,6 +79,7 @@ namespace HISP.Game.Events private void revengeTimedOut(object state) { resetEvent(); + EndEvent(); } private void resetEvent() @@ -94,7 +96,9 @@ namespace HISP.Game.Events return throwTracker; } - return new ThrowTracker(thrower); + ThrowTracker tracker = new ThrowTracker(thrower); + trackedThrows.Add(tracker); + return tracker; } private bool checkUserThrownAtAlready(ThrowTracker tracker, User thrownAt) @@ -123,7 +127,7 @@ namespace HISP.Game.Events public void Payout(User thrower, User throwAt) { ThrowTracker throwCounter = getUserThrowTracker(thrower); - if(checkUserThrownAtAlready(throwCounter, throwAt)) + if(!checkUserThrownAtAlready(throwCounter, throwAt)) { byte[] otherEarned = PacketBuilder.CreateChat(Messages.FormatModSplatterBallAwardedOther(thrower.Username), PacketBuilder.CHAT_BOTTOM_RIGHT); diff --git a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs index 9dbe4ae..b7f5592 100755 --- a/Horse Isle Server/HorseIsleServer/Server/GameServer.cs +++ b/Horse Isle Server/HorseIsleServer/Server/GameServer.cs @@ -4671,7 +4671,8 @@ namespace HISP.Server // Cancel Trades if (loggedInUser.TradingWith != null) - loggedInUser.TradingWith.CancelTradeMoved(); + if((loggedInUser.TradingWith.Trader.X != loggedInUser.X) && (loggedInUser.TradingWith.Trader.Y != loggedInUser.Y)) + loggedInUser.TradingWith.CancelTradeMoved(); loggedInUser.PendingBuddyRequestTo = null; // Close Social Windows