fix(Core/PacketIO): Implemented CMSG_BUSY_TRADE and CMSG_IGNORE_TRADE. (#21385)

This commit is contained in:
Mykhailo Redko
2025-02-10 18:12:38 +02:00
committed by GitHub
parent 91cd42ef91
commit 017cfb7b4b
5 changed files with 10 additions and 18 deletions

View File

@@ -1385,7 +1385,7 @@ public:
[[nodiscard]] Player* GetTrader() const { return m_trade ? m_trade->GetTrader() : nullptr; }
[[nodiscard]] TradeData* GetTradeData() const { return m_trade; }
void TradeCancel(bool sendback);
void TradeCancel(bool sendback, TradeStatus status = TRADE_STATUS_TRADE_CANCELED);
CinematicMgr* GetCinematicMgr() const { return _cinematicMgr; }

View File

@@ -4085,7 +4085,7 @@ void Player::SendSellError(SellResult msg, Creature* creature, ObjectGuid guid,
GetSession()->SendPacket(&data);
}
void Player::TradeCancel(bool sendback)
void Player::TradeCancel(bool sendback, TradeStatus status /*= TRADE_STATUS_TRADE_CANCELED*/)
{
if (m_trade)
{
@@ -4093,9 +4093,9 @@ void Player::TradeCancel(bool sendback)
// send yellow "Trade canceled" message to both traders
if (sendback)
GetSession()->SendCancelTrade();
GetSession()->SendCancelTrade(status);
trader->GetSession()->SendCancelTrade();
trader->GetSession()->SendCancelTrade(status);
// cleanup
delete m_trade;

View File

@@ -1165,7 +1165,7 @@ bool Player::UpdatePosition(float x, float y, float z, float orientation,
SetGroupUpdateFlag(GROUP_UPDATE_FLAG_POSITION);
if (GetTrader() && !IsWithinDistInMap(GetTrader(), INTERACTION_DISTANCE))
GetSession()->SendCancelTrade();
GetSession()->SendCancelTrade(TRADE_STATUS_TRADE_CANCELED);
CheckAreaExploreAndOutdoor();