예제 #1
0
        public static void OnTradeCancel(WorldClient client, INetPacketStream packet)
        {
            var tradePacket = new TradeCancelPacket(packet);
            var tradeEvent  = new TradeCancelEventArgs(tradePacket.Mode);

            client.Player.NotifySystem <TradeSystem>(tradeEvent);
        }
예제 #2
0
        /// <summary>
        /// Cancel the current trade
        /// </summary>
        /// <param name="player"></param>
        /// <param name="e"></param>
        private static void TradeCancel(IPlayerEntity player, TradeCancelEventArgs e)
        {
            Logger.Debug("Trade cancel");

            if (IsNotTrading(player))
            {
                throw new RhisisSystemException($"No trade target {player.Object.Name}");
            }

            var target = GetEntityFromContextOf(player, player.Trade.TargetId);

            if (IsNotTrading(target))
            {
                throw new RhisisSystemException($"Target is not trading {target.Object.Name}");
            }

            CancelTrade(player, target, e.Mode);
        }