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); }
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); } }