public void Sell(uint uid, uint quantity) { CharacterItemRecord item = this.Character.Inventory.GetItem(uid); if (item != null && item.CanBeExchanged() && item.Quantity >= quantity) { int gained = (int)(((double)item.Template.GetPrice(this.LevelPrice) / (double)10) * quantity); if (gained >= item.Template.GetPrice(this.LevelPrice)) { return; } gained = gained == 0 ? 1 : gained; this.Character.Inventory.RemoveItem(uid, quantity); if (this.TokenId == 0) { this.Character.AddKamas(gained); } else { this.Character.Inventory.AddItem(this.TokenId, (uint)gained); } this.Character.Client.Send(new ExchangeSellOkMessage()); } }
public override void MoveItem(uint uid, int quantity) { if (quantity > 0) { CharacterItemRecord item = this.Character.Inventory.GetItem(uid); if (item != null && item.Quantity >= quantity && item.CanBeExchanged()) { BankItemRecord bankItem = item.ToBankItemRecord(this.Character.Client.Account.Id); bankItem.Quantity = (uint)quantity; this.Character.Inventory.RemoveItem(item.UId, (uint)quantity); this.m_items.AddItem(bankItem); } } else { BankItemRecord item = this.m_items.GetItem(uid); uint removedQuantity = (uint)Math.Abs(quantity); if (item != null && item.Quantity >= removedQuantity) { CharacterItemRecord characterItemRecord = item.ToCharacterItemRecord(this.Character.Id); characterItemRecord.Quantity = removedQuantity; this.m_items.RemoveItem(uid, removedQuantity); this.Character.Inventory.AddItem(characterItemRecord); } } }
public void MoveItemPriced(uint uid, int quantity, uint price) { CharacterItemRecord item = this.Character.Inventory.GetItem(uid); if (item != null && item.Quantity >= quantity && item.CanBeExchanged()) { BidShopItemRecord selledItem = item.ToBidShopItemRecord(this.BidShop.Id, this.Character.Client.Account.Id, price); selledItem.Quantity = (uint)quantity; this.Character.Inventory.RemoveItem(item.UId, (uint)quantity); this.AddSelledItem(selledItem); } }
private bool CanMoveItem(CharacterItemRecord item, int quantity) { if (item.PositionEnum != CharacterInventoryPositionEnum.INVENTORY_POSITION_NOT_EQUIPED || !item.CanBeExchanged()) { return(false); } CharacterItemRecord exchanged = null; exchanged = this.ExchangedItems.GetItem(item.GId, item.Effects); if (exchanged != null && exchanged.UId != item.UId) { return(false); } exchanged = this.ExchangedItems.GetItem(item.UId); if (exchanged == null) { return(true); } if (exchanged.Quantity + quantity > item.Quantity) { return(false); } else { return(true); } }