//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); }
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); } }