//To generate a new ground item we need a conquer item and location
 public GroundItem(ConquerItem _item, uint _uid, Point _location, Map _map, uint _killer = 0, CurrencyType _currency = CurrencyType.None, uint _value = 0)
 {
     Item        = _item;
     StaticID    = _item.GroundID;
     UID         = _uid;
     Location    = _location;
     Map         = _map;
     KillerUID   = _killer;
     DroppedAt   = Common.Clock;
     Currency    = _currency;
     Value       = _value;
     SpawnPacket = GroundItemPacket.Create(this, GroundItemAction.Create);
 }
        public void RemoveFromMap()
        {
            uint x;

            foreach (var entity in Map.QueryScreen <Entity>(this))
            {
                if (entity.VisibleObjects.ContainsKey(UID))
                {
                    entity.VisibleObjects.TryRemove(UID, out x);
                }
                entity.Send(GroundItemPacket.Create(this, GroundItemAction.Delete));
            }
            Common.MapService.RemoveFlag((ushort)Map.ID, (ushort)Location.X, (ushort)Location.Y, TinyMap.TileFlag.Item);
            Map.Remove(this);
        }
Esempio n. 3
0
        private static void Process_Drop(Player client, string[] command) //TODO: Why is this unused?
        {
            if (client.Account.Permission < PlayerPermission.GM)
                return;
            if(command.Length < 3)
                return;
            uint uid, id;
            if(uint.TryParse(command[1], out uid) && 
                uint.TryParse(command[2], out id))
            {
                var gi = new GroundItemPacket
                    {Action = GroundItemAction.Create, UID = uid, ID = id, X = client.X, Y = client.Y};
                client.Send(gi);

            }
                
        }