public static void OnTrade(WorldClient client, INetPacketStream packet) { var tradePacket = new TradeRequestPacket(packet); var tradeEvent = new TradeBeginEventArgs(tradePacket.Target); client.Player.NotifySystem <TradeSystem>(tradeEvent); }
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); }
public void OnTrade(IWorldClient client, TradeRequestPacket packet) { _tradeSystem.StartTrade(client.Player, packet.TargetId); }
public void OnTradeRequestCancel(IWorldClient client, TradeRequestPacket packet) { _tradeSystem.DeclineTradeRequest(client.Player, packet.TargetId); }