Esempio n. 1
0
        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;
                    }
                }
            }
        }
Esempio n. 2
0
        private void ItemCommand(ZoneCharacter character, params string[] param)
        {
            string InxName = param[1];
            byte   amount  = 1;

            if (param.Length > 2)
            {
                amount = byte.Parse(param[2]);
            }

            switch (character.GiveItem(InxName, amount))
            {
            case FiestaLib.InventoryStatus.FULL:
                Handler12.InventoryFull(character);
                return;

            case FiestaLib.InventoryStatus.NOT_FOUND:
                character.DropMessage("Item not found.");
                return;
            }
        }
Esempio n. 3
0
        private void ItemCommand(ZoneCharacter character, params string[] param)
        {
            ushort id     = ushort.Parse(param[1]);
            byte   amount = 1;

            if (param.Length > 2)
            {
                amount = byte.Parse(param[2]);
            }
            // character.GiveItem(id,amount);
            switch (character.GiveItem(id, amount))
            {
            case FiestaLib.InventoryStatus.Full:
                Handler12.InventoryFull(character);
                return;

            case FiestaLib.InventoryStatus.NotFound:
                character.DropMessage("Item not found.");
                return;
            }
        }