示例#1
0
        public static HelperType HelperTypeof(PZClient client)
        {
            foreach (var item in slist)
            {
                if (item.client.ToString() == client.ToString())
                {
                    return(HelperType.storage);
                }
            }

            foreach (var item in clist)
            {
                if (item.client.ToString() == client.ToString())
                {
                    return(HelperType.converter);
                }
            }

            foreach (var item in olist)
            {
                if (item.client.ToString() == client.ToString())
                {
                    return(HelperType.output);
                }
            }

            return(HelperType.neutral);
        }
示例#2
0
        private static void GiveItemRetry(PZClient giver, PZClient reciever, PZItem item, int start, int no)
        {
            int na = no + 1;

            bool[]             sel = PZClient.GetToSel(giver.client, item);
            RequestTradePacket req = (RequestTradePacket)Packet.Create(PacketType.REQUESTTRADE);

            req.Name = reciever.ToString();
            giver.client.SendToServer(req);

            req.Name = giver.ToString();
            reciever.client.SendToServer(req);

            ChangeTradePacket cht = (ChangeTradePacket)Packet.Create(PacketType.CHANGETRADE);

            cht.Offers = sel;
            giver.client.SendToServer(cht);

            AcceptTradePacket atpkt = (AcceptTradePacket)Packet.Create(PacketType.ACCEPTTRADE);

            atpkt.MyOffers   = sel;
            atpkt.YourOffers = new bool[12];
            giver.client.SendToServer(atpkt);

            atpkt.MyOffers   = new bool[12];
            atpkt.YourOffers = sel;
            reciever.client.SendToServer(atpkt);
            Console.WriteLine(giver.ToString() + " gave " + item + " to " + reciever);
            PluginUtils.Delay(2000, new Action(() =>
            {
                int now      = reciever.CountItem(item.ID);
                int addition = now - start;
                if (addition < item.amount)
                {
                    Console.WriteLine("[ERROR]" + (item.amount - addition) + " " + item.ActualName() + " failed to be recieved so trying again");
                    if (na <= 7)
                    {
                        PluginUtils.Delay(500, new Action(() => GiveItemRetry(giver, reciever, item, start, na)));
                    }
                    else
                    {
                        Console.WriteLine("Tried over 7 times, give up!");
                    }
                }
                else
                {
                    Console.WriteLine("Recieve success!");
                    PluginUtils.Delay(500, new Action(() =>
                    {
                        giver.enabled        = true;
                        reciever.enabled     = true;
                        reciever.spamenabled = true;
                        giver.spamenabled    = true;
                    }));
                }
            }));
            na++;
        }
示例#3
0
        public void Input(PZItem input)
        {
            t = new PZTrade();
            t.selling.Add(input);
            t.buying.Add(output);
            t.name = client.ToString();

            client.tradequeue  = new PZTrade[] { t }.ToList();
            client.index       = 0;
            client.enabled     = true;
            client.spamenabled = true;

            doing = true;
        }
示例#4
0
 public override string ToString()
 {
     try
     {
         return(client.ToString() + " -- recieving " + PZItem.GetNameFromID(inputitem));
     }
     catch
     {
         return("??");
     }
 }
示例#5
0
        public static T GetHelper <T>(PZClient client)
        {
            object ret = null;

            if (typeof(T) == typeof(PZStorage))
            {
                foreach (var item in slist)
                {
                    if (item.client.ToString() == client.ToString())
                    {
                        ret = item;
                    }
                }
            }

            if (typeof(T) == typeof(PZOutput))
            {
                foreach (var item in olist)
                {
                    if (item.client.ToString() == client.ToString())
                    {
                        ret = item;
                    }
                }
            }

            if (typeof(T) == typeof(PZConverter))
            {
                foreach (var item in clist)
                {
                    if (item.client.ToString() == client.ToString())
                    {
                        ret = item;
                    }
                }
            }

            return((T)ret);
        }
示例#6
0
 public override string ToString()
 {
     return(client.ToString() + " -- outputing " + PZItem.GetNameFromID(outputitem));
 }