public static void BuyItem(ZoneClient client, Packet packet) { ZoneCharacter character = client.Character; ushort buyItemID; int amount; if (packet.TryReadUShort(out buyItemID) && packet.TryReadInt(out amount)) { FiestaLib.Data.ItemInfo buyItem; Data.DataProvider.Instance.ItemsByID.TryGetValue(buyItemID, out buyItem); if (amount < 255) { if (character.GiveItem(buyItemID, (byte)amount) != InventoryStatus.Full) { character.Inventory.Money -= amount * buyItem.BuyPrice; character.ChangeMoney(character.Inventory.Money); } } else { while (amount > 0) { if (character.GiveItem(buyItemID, 255) != InventoryStatus.Full) { character.Inventory.Money -= amount * buyItem.BuyPrice; character.ChangeMoney(character.Inventory.Money); character.CalculateMasterCopper(buyItem.BuyPrice); } if (amount < 255) { if (character.GiveItem(buyItemID, (byte)amount) != InventoryStatus.Full) { character.Inventory.Money -= amount * buyItem.BuyPrice; character.ChangeMoney(character.Inventory.Money); character.CalculateMasterCopper(buyItem.BuyPrice); } break; } amount -= 255; } } } }