예제 #1
0
        public static void HandleObjectFeedMessage(WorldClient client, ObjectFeedMessage message)
        {
            if (client.Character.IsInFight())
            {
                return;
            }

            var item = client.Character.Inventory.TryGetItem(message.objectUID);
            var food = client.Character.Inventory.TryGetItem(message.foodUID);

            if (item == null || food == null)
            {
                return;
            }

            if (food.Stack < message.foodQuantity)
            {
                message.foodQuantity = (short)food.Stack;
            }

            var i = 0;

            while (i < message.foodQuantity && item.Feed(food))
            {
                i++;
            }

            client.Character.Inventory.RemoveItem(food, i);
        }
예제 #2
0
        public void Init(Pet pet)
        {
            if (account.Running.OnSafe)
            {
                account.Running.LeavingDialogWithSafe();
                return;
            }

            ObjectFeedMessage objectFeedMessage = new ObjectFeedMessage((uint)pet.Informations.UID,
                                                                        (uint)pet.FoodList[0].Informations.UID, 1);

            account.SocketManager.Send(objectFeedMessage);
            account.LastPacketID.Clear();

            //account.Wait(500, 1000);
        }
        public static void HandleObjectFeedMessage(WorldClient client, ObjectFeedMessage message)
        {
            BasePlayerItem basePlayerItem  = client.Character.Inventory.TryGetItem((int)message.objectUID);
            BasePlayerItem basePlayerItem2 = client.Character.Inventory.TryGetItem((int)message.foodUID);

            if (basePlayerItem != null && basePlayerItem2 != null)
            {
                if ((ulong)basePlayerItem2.Stack < (ulong)((long)message.foodQuantity))
                {
                    message.foodQuantity = (uint)basePlayerItem2.Stack;
                }
                uint num = 0u;
                while ((ulong)num < (ulong)((long)message.foodQuantity) && basePlayerItem.Feed(basePlayerItem2))
                {
                    num += 1u;
                }
                client.Character.Inventory.RemoveItem(basePlayerItem2, num, true);
            }
        }