public CultivationPlot(CultivationInterface cInterface, byte index) { _index = index; _ownerInterface = cInterface; }
public static void F_USE_ITEM(BaseClient client, PacketIn packet) { GameClient cclient = client as GameClient; if (!cclient.IsPlaying()) { return; } Player Plr = cclient.Plr; if (Plr.AbtInterface.IsOnGlobalCooldown()) { return; } ushort slot = packet.GetUint16(); Item item = Plr.ItmInterface.GetItemInSlot(slot); if (item == null || item._Count == 0) { return; } if (!item.CanBeUsedBy(Plr)) { return; } if ((Item.ItemType)item.Info.Type == Item.ItemType.Quest) { Plr.QtsInterface.HandleEvent(Objective_Type.QUEST_USE_ITEM, item.Info.Entry, 1); } if (item.Info.Entry == 86203 || item.Info.Entry == 86207 || item.Info.Entry == 86211 || item.Info.Entry == 86215 || item.Info.Entry == 86219 || item.Info.Entry == 86223) // siege oil { Keep keep = Plr.Region.Bttlfront.GetClosestKeep(Plr.WorldPosition); if (keep.Realm == Plr.Realm) { keep.SpawnOil(Plr, slot); } } if (item.ModelId == 1566 || item.ModelId == 3850) // currency conversion boxes { Plr.ItmInterface.OpenBox(slot, item); } #region Loot bags if (item.Info.Entry == 9980 || item.Info.Entry == 9940 || item.Info.Entry == 9941 || item.Info.Entry == 9942 || item.Info.Entry == 9943) // lootbags { packet.Skip(5); byte mode = packet.GetUint8(); if (mode == 0) { Plr.ItmInterface.SendMysteryBag(slot); } else { Plr.ItmInterface.GetItemfromMysterybag(slot, mode); } } #endregion // Banner hack for standards. if (item.ModelId >= 6188 && item.ModelId < 6194) { Plr.Standard(item.Info.SpellId); } if (item.Info.Crafts.Length > 0 && CraftingApoInterface.GetCraft(5, item.Info.Crafts) == 4 && (CraftingApoInterface.GetCraft(8, item.Info.Crafts) < 5 || CraftingApoInterface.GetCraft(8, item.Info.Crafts) == 18)) { CultivationInterface.ReapResin(Plr, slot); } #region Dye if (item.Info.Type == 27) { Item dye = Plr.ItmInterface.GetItemInSlot(slot); if (dye == null) { return; } byte prisek = packet.GetUint8(); packet.Skip(4); byte Slot = packet.GetUint8(); Item itemtodye = Plr.ItmInterface.GetItemInSlot(Slot); if (dye.Info.BaseColor1 == 0) { Plr.ItmInterface.RemoveDye(itemtodye, prisek == 1, prisek == 2); } else { if (prisek == 1) { Plr.ItmInterface.DyeItem(itemtodye, dye.Info.BaseColor1, 0); } else { Plr.ItmInterface.DyeItem(itemtodye, 0, dye.Info.BaseColor1); } } Plr.ItmInterface.DeleteItem(slot, 1); } #endregion if (item.Info.SpellId == 0) { return; } #region Ability Cast if (!Plr.AbtInterface.CanCastCooldown(item.Info.SpellId)) { Plr.SendLocalizeString("", ChatLogFilters.CHATLOGFILTERS_USER_ERROR, Localized_text.TEXT_ITEM_CANT_BE_USED_YET); return; } if (!Plr.AbtInterface.StartCast(Plr, item.Info.SpellId, 1, item.Info.Unk27?[19] ?? 0, item.Info.ObjectLevel)) { return; } if (item.Info.MaxStack > 1) { Plr.ItmInterface.DeleteItem(slot, 1); } WorldMgr.GeneralScripts.OnWorldPlayerEvent("USE_ITEM", Plr, item); #endregion }
public void Harvest() { Player harvester = _ownerInterface.GetPlayer(); if (_stage != STAGE_FLOWERED) { harvester.SendLocalizeString(ChatLogFilters.CHATLOGFILTERS_CRAFTING, Localized_text.TEXT_CULTIVATION_PLOT_NOT_FINISHED_GROWING); return; } if (ItemService.GetItem_Info(_seedItemID).Rarity == 3) { harvester.ItmInterface.CreateItem(_seedItemID, 1, true); } Item_Info mainItem = ItemService.GetItem_Info(uint.Parse(ItemService.GetItem_Info(_seedItemID).Craftresult.Split(';')[0])); Item_Info subItem = ItemService.GetItem_Info(uint.Parse(ItemService.GetItem_Info(_seedItemID).Craftresult.Split(';')[1])); if (harvester.ItmInterface.GetTotalFreeInventorySlot(mainItem) < 4) { harvester.SendLocalizeString(ChatLogFilters.CHATLOGFILTERS_CRAFTING, Localized_text.TEXT_CULTIVATION_CANT_HARVEST_SEED_BACKPACK_FULL); return; } switch (_result) { case 0: if (harvester.ItmInterface.CreateItem(84918, 1, true) != ItemResult.RESULT_OK) { return; } harvester.SendLocalizeString(ItemService.GetItem_Info(84918).Name, ChatLogFilters.CHATLOGFILTERS_CRAFTING, Localized_text.TEXT_CRAFT_RECIPE_CRITFAILURE); break; case 1: if (harvester.ItmInterface.CreateItem(mainItem, 2, 0, true) != ItemResult.RESULT_OK) { return; } harvester.SendLocalizeString(new [] { "2", mainItem.Name }, ChatLogFilters.CHATLOGFILTERS_CRAFTING, Localized_text.TEXT_CRAFT_CULTIVATION_HARVEST); break; case 2: if (harvester.ItmInterface.CreateItem(mainItem, 3, 0, true) != ItemResult.RESULT_OK) { return; } harvester.SendLocalizeString("", ChatLogFilters.CHATLOGFILTERS_CRAFTING, Localized_text.TEXT_CRAFT_CRITICALSUCCESS); harvester.SendLocalizeString(new[] { "3", mainItem.Name }, ChatLogFilters.CHATLOGFILTERS_CRAFTING, Localized_text.TEXT_CRAFT_CULTIVATION_HARVEST); break; case 3: if (harvester.ItmInterface.CreateItem(uint.Parse(ItemService.GetItem_Info(_seedItemID).Craftresult.Split(';')[0]), 2, true) != ItemResult.RESULT_OK) { return; } if (harvester.ItmInterface.CreateItem(subItem, 1, 0, true) != ItemResult.RESULT_OK) { harvester.ItmInterface.DeleteItem(ushort.Parse(ItemService.GetItem_Info(_seedItemID).Craftresult.Split(';')[0]), 2); return; } uint dyepigment = 199901; byte seedlvl = CultivationInterface.GetCraft(9, ItemService.GetItem_Info(_seedItemID).Crafts); if (seedlvl < 50) { harvester.ItmInterface.CreateItem(dyepigment, 1, true); } else if (seedlvl < 100) { harvester.ItmInterface.CreateItem(dyepigment += 1, 1, true); } else if (seedlvl < 150) { harvester.ItmInterface.CreateItem(dyepigment += 2, 1, true); } else if (seedlvl < 200) { harvester.ItmInterface.CreateItem(dyepigment += 3, 1, true); } else { if (50 > (float)StaticRandom.Instance.NextDouble() * 100f) { harvester.ItmInterface.CreateItem(dyepigment += 4, 1, true); } else { harvester.ItmInterface.CreateItem(dyepigment += 5, 1, true); } } harvester.SendLocalizeString(new[] { "2", mainItem.Name }, ChatLogFilters.CHATLOGFILTERS_CRAFTING, Localized_text.TEXT_CRAFT_CULTIVATION_HARVEST); harvester.SendLocalizeString("", ChatLogFilters.CHATLOGFILTERS_CRAFTING, Localized_text.TEXT_CRAFT_SPECIALMOMENT); harvester.SendLocalizeString(new[] { "1", subItem.Name }, ChatLogFilters.CHATLOGFILTERS_CRAFTING, Localized_text.TEXT_CRAFT_CULTIVATION_HARVEST); harvester.SendLocalizeString(new[] { "1", ItemService.GetItem_Info(dyepigment).Name }, ChatLogFilters.CHATLOGFILTERS_CRAFTING, Localized_text.TEXT_CRAFT_CULTIVATION_HARVEST); break; } Reset(); }