Esempio n. 1
0
        private bool IsSelectValid(int playerId, string itemname, int amount, TradeChangedPacket pkt)
        {
            bool[] yourSelectedItems = pkt.Offers;
            int    ret = 0;

            for (int i = 4; i < 12; i++)
            {
                if (yourSelectedItems[i] && targetInventory[i - 4] == RotMGData.NameToId[itemname])
                {
                    ret++;
                }
            }
            return(ret >= amount);
        }
Esempio n. 2
0
        public void OnTradeChanged(Client client, Packet packet)
        {
            TradeChangedPacket change = (TradeChangedPacket)packet;

            if (_Enabled[client] && _Started[client])
            {
                CurrentTrades[client].UpdateTrade(change.Offers);
                CurrentTrades[client].SelectItems();

                if (CurrentTrades[client].Good())
                {
                    CurrentTrades[client].Accept();
                }
            }
        }
Esempio n. 3
0
        private void OnTradeChanged(TradeChangedPacket tradeChanged)
        {
            // WTF?
            if (_trade == null)
            {
                return;
            }
            List <int> offer = new List <int>();

            for (byte i = 4; i < tradeChanged.Offer.Length; i++)
            {
                if (tradeChanged.Offer[i])
                {
                    offer.Add(_trade.PartnerItems[i].Item);
                }
            }
            _trade.PartnerOffer = tradeChanged.Offer;
            _trade.OnOffered?.Invoke(offer);
        }
Esempio n. 4
0
        public void TC(Client client, Packet packet)
        {
            TradeChangedPacket p  = (TradeChangedPacket)packet;
            PZClient           cl = clientlist[IndexOfClient(client)];

            cl.customer.UpdateItems(p.Offers);
            if (cl.enabled)
            {
                Console.WriteLine("--------------------------");
                int    totlefts = 0;
                string msg      = "";
                foreach (var item in cl.CheckCustomer(true))
                {
                    Console.WriteLine(item.ToString() + " - " + item.amount);
                    totlefts += item.amount;
                    if (item.amount > 0)
                    {
                        msg += item.amount + " " + item.ToString() + ";";
                    }
                }
                Console.WriteLine("Verdict: " + (totlefts <= 0));
                if (totlefts <= 0)
                {
                    cl.SelectSelling();
                    AcceptTradePacket ac = (AcceptTradePacket)Packet.Create(PacketType.ACCEPTTRADE);
                    ac.YourOffers = p.Offers;
                    ac.MyOffers   = cl.GetToSel();
                    cl.client.SendToServer(ac);
                }
                else
                {
                    PlayerTextPacket ptpkt = (PlayerTextPacket)Packet.Create(PacketType.PLAYERTEXT);
                    ptpkt.Text = "/t " + cl.customer.name + " An extra: " + msg + " plz!";
                    cl.client.SendToServer(ptpkt);
                }
            }
        }