示例#1
0
        public static void SellItem(ZoneClient client, Packet packet)
        {
            byte          slot;
            int           sellcount;
            ZoneCharacter character = client.Character;

            if (packet.TryReadByte(out slot) && packet.TryReadInt(out sellcount))
            {
                Item item;
                character.Inventory.InventoryItems.TryGetValue(slot, out item);
                if (item != null)
                {
                    long fullSellPrice = sellcount * item.ItemInfo.SellPrice;
                    if (item.Ammount > 1)
                    {
                        item.Ammount -= (ushort)sellcount;
                        byte Slot = (byte)item.Slot;
                        Handler12.ModifyInventorySlot(character, 0x24, Slot, Slot, item);
                        character.Inventory.Money += fullSellPrice;
                        character.ChangeMoney(character.Inventory.Money);
                    }
                    else
                    {
                        character.Inventory.Money += fullSellPrice;
                        character.ChangeMoney(character.Inventory.Money);
                        character.Inventory.InventoryItems.Remove(slot);
                        ResetInventorySlot(character, slot);
                    }
                    System.Console.WriteLine(item.ItemInfo.Type);
                }
            }
        }
示例#2
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;
                    }
                }
            }
        }
示例#3
0
        private void ChangeMoney(ZoneCharacter character, params string[] param)
        {
            var newMoney = long.Parse(param[1]);

            character.ChangeMoney(newMoney);
        }
示例#4
0
        private void GiveMoney(ZoneCharacter character, params string[] param)
        {
            var giveDm = long.Parse(param[1]);

            character.ChangeMoney(character.Inventory.Money += giveDm);
        }
示例#5
0
        private void ChangeMoney(ZoneCharacter character, params string[] param)
        {
            long newMoney = long.Parse(param[1].ToString());

            character.ChangeMoney(newMoney);
        }
示例#6
0
        private void GiveMoney(ZoneCharacter character, params string[] param)
        {
            long givedm = long.Parse(param[1].ToString());

            character.ChangeMoney(character.Inventory.Money += givedm);
        }