Пример #1
0
 protected internal override void OnDragDrop(Gump g)
 {
     if (!this.m_HitTest)
     {
         this.m_Parent.OnDragDrop(g);
     }
     else
     {
         if (g == null || !(g.GetType() == typeof(GDraggedItem)))
         {
             return;
         }
         GDraggedItem gdraggedItem = (GDraggedItem)g;
         Point        point        = this.Clip(gdraggedItem.Image, gdraggedItem.Double, this.PointToClient(new Point(Engine.m_xMouse - g.m_OffsetX, Engine.m_yMouse - g.m_OffsetY)), g.m_OffsetX, g.m_OffsetY);
         int          num          = gdraggedItem.Item.ID & 16383;
         if (num >= 13701 && num <= 13706)
         {
             point.Y += 20;
         }
         else if (num >= 13708 && num <= 13713)
         {
             point.Y += 20;
         }
         Gumps.Destroy((Gump)gdraggedItem);
         Network.Send((Packet) new PDropItem(gdraggedItem.Item.Serial, (int)(short)point.X, (int)(short)point.Y, 0, this.m_Item.Serial));
     }
 }
Пример #2
0
 protected internal override void OnDragDrop(Gump g)
 {
     if (g != null && g.GetType() == typeof(GDraggedItem))
     {
         GDraggedItem gdraggedItem = (GDraggedItem)g;
         Item         toEquip      = gdraggedItem.Item;
         Item         obj          = (Item)null;
         Gump[]       array        = this.m_Children.ToArray();
         Point        client       = this.PointToClient(new Point(Engine.m_xMouse, Engine.m_yMouse));
         for (int index = array.Length - 1; index >= 0; --index)
         {
             if (array[index] is GPaperdollItem && array[index].HitTest(client.X - array[index].X, client.Y - array[index].Y))
             {
                 obj = ((GPaperdollItem)array[index]).Item;
                 break;
             }
         }
         if (obj != null && Map.m_ItemFlags[obj.ID & 16383][(TileFlag)2097152L])
         {
             Network.Send((Packet) new PDropItem(toEquip.Serial, -1, -1, 0, obj.Serial));
         }
         else if (Map.m_ItemFlags[toEquip.ID & 16383][(TileFlag)4194304L])
         {
             Network.Send((Packet) new PEquipItem(toEquip, this.m_Mobile));
         }
         else
         {
             Network.Send((Packet) new PDropItem(toEquip.Serial, -1, -1, 0, World.Serial));
         }
         Gumps.Destroy((Gump)gdraggedItem);
     }
     this._dragPreview = (Item)null;
 }
Пример #3
0
        protected internal override void OnDragDrop(Gump g)
        {
            if (g == null || !(g.GetType() == typeof(GDraggedItem)))
            {
                return;
            }
            GDraggedItem gdraggedItem = (GDraggedItem)g;
            Item         obj          = gdraggedItem.Item;

            if (((GContainer)this.m_Parent).m_HitTest)
            {
                TileFlags tileFlags = Map.m_ItemFlags[this.m_Item.ID & 16383];
                if (tileFlags[(TileFlag)2097152L])
                {
                    Network.Send((Packet) new PDropItem(obj.Serial, -1, -1, 0, this.m_Item.Serial));
                    Gumps.Destroy((Gump)gdraggedItem);
                }
                else if (tileFlags[(TileFlag)2048L] && obj.ID == this.m_Item.ID && (int)obj.Hue == (int)this.m_Item.Hue)
                {
                    Point point = ((GContainer)this.m_Parent).Clip(gdraggedItem.Image, gdraggedItem.Double, this.m_Parent.PointToClient(new Point(Engine.m_xMouse - gdraggedItem.m_OffsetX, Engine.m_yMouse - gdraggedItem.m_OffsetY)), gdraggedItem.m_OffsetX, gdraggedItem.m_OffsetY);
                    Network.Send((Packet) new PDropItem(obj.Serial, (int)(short)point.X, (int)(short)point.Y, 0, this.m_Item.Serial));
                    Gumps.Destroy((Gump)gdraggedItem);
                }
                else
                {
                    this.m_Parent.OnDragDrop((Gump)gdraggedItem);
                }
            }
            else
            {
                this.m_Parent.OnDragDrop((Gump)gdraggedItem);
            }
        }
Пример #4
0
        public Gump OnBeginDrag()
        {
            if (this.IsStackable && (int)this.amount > 1 && (Control.ModifierKeys & Keys.Shift) == Keys.None)
            {
                GDragAmount gdragAmount = new GDragAmount(this);
                Gumps.Desktop.Children.Add((Gump)gdragAmount);
                return((Gump)gdragAmount);
            }
            Player current = Player.Current;

            if (current != null)
            {
                current.EquipAgent.Dress.Remove(this);
            }
            Network.Send((Packet) new PPickupItem(this, (int)this.amount));
            GDraggedItem gdraggedItem = new GDraggedItem(this);

            Gumps.Desktop.Children.Add((Gump)gdraggedItem);
            return((Gump)gdraggedItem);
        }