Ejemplo n.º 1
0
        internal void ItemCreate(InventoryItem iitem)
        {
            if (iiCreationInProgress != null)
            {
                throw new Exception("Can only create one item at a time, and an item creation is already in progress.");
            }

            try
            {
                ItemCreationCompleted = new ManualResetEvent(false);
                iiCreationInProgress  = iitem;


                Packet packet = InvPacketHelper.CreateInventoryItem(iitem);
                int    i      = 0;
                do
                {
                    if (i++ > 10)
                    {
                        throw new Exception("Could not create " + iitem.Name);
                    }
                    slClient.Network.SendPacket(packet);

#if DEBUG_PACKETS
                    slClient.DebugLog(packet);
#endif
                } while (!ItemCreationCompleted.WaitOne(5000, false));
            }
            finally
            {
                iiCreationInProgress = null;
            }
        }