Example #1
0
        public static void OnTrade(WorldClient client, INetPacketStream packet)
        {
            var tradePacket = new TradeRequestPacket(packet);
            var tradeEvent  = new TradeBeginEventArgs(tradePacket.Target);

            client.Player.NotifySystem <TradeSystem>(tradeEvent);
        }
Example #2
0
        private void HandleTradeRequest(TradeRequestPacket packet)
        {
            var destClient = Module.GetClient(packet.DestinationPlayerID);

            if (destClient is P3DPlayer player)
            {
                if (GameMode == player.GameMode)
                {
                    // XNOR
                    if (IsGameJoltPlayer == player.IsGameJoltPlayer)
                    {
                        player.SendPacket(new TradeRequestPacket {
                            Origin = packet.Origin
                        });
                    }
                    else
                    {
                        SendServerMessage($"Can not start trade with {player.Name}! Online-Offline trade disabled.");
                        Module.OnTradeCancel(this, player);
                    }
                }
                else
                {
                    SendServerMessage($"Can not start trade with {player.Name}! Different GameModes used.");
                    Module.OnTradeCancel(this, player);
                }
            }
            else
            {
                destClient.SendPacket(new TradeRequestPacket {
                    Origin = packet.Origin
                });
            }
        }
 //TradeRequestPacket
 private static void HandlePacket(TradeRequestPacket packet)
 {
     var iBox = new InputBox(
         Strings.Trading.traderequest, Strings.Trading.requestprompt.ToString(packet.PartnerName), true,
         InputBox.InputType.YesNo, PacketSender.SendTradeRequestAccept, PacketSender.SendTradeRequestDecline,
         packet.PartnerId
         );
 }
        public void Handle(WorldClient client, TradeRequestPacket packet)
        {
            if (!_gameWorld.Players.ContainsKey(_gameSession.CharId) || !_gameWorld.Players.ContainsKey(packet.TradeToWhomId))
            {
                return;
            }

            var requester = _gameWorld.Players[_gameSession.CharId];
            var receiver  = _gameWorld.Players[packet.TradeToWhomId];

            requester.TradeManager.PartnerId = receiver.Id;
            receiver.TradeManager.PartnerId  = requester.Id;

            _packetFactory.SendTradeRequest(receiver.GameSession.Client, requester.Id);
        }
Example #5
0
 public void OnTrade(IWorldClient client, TradeRequestPacket packet)
 {
     _tradeSystem.StartTrade(client.Player, packet.TargetId);
 }
Example #6
0
 public void OnTradeRequestCancel(IWorldClient client, TradeRequestPacket packet)
 {
     _tradeSystem.DeclineTradeRequest(client.Player, packet.TargetId);
 }