/// <summary> /// Drop item in town and record it so we can avoid picking it up again. /// </summary> public static async Task <CoroutineResult> Drop(ACDItem item) { if (!ZetaDia.IsInGame || !ZetaDia.IsInTown || item.IsAccountBound) { return(CoroutineResult.NoAction); } s_logger.Information($"[{nameof(Drop)}] Dropping {item.Name} ({item.ActorSnoId}) in town. AnnId={item.AnnId} "); bool dropResult = false; try { dropResult = item.Drop(); } catch (InjectionSEHException) { s_logger.Information($"[{nameof(DropItems)}] Failed to Drop {item.Name} ({item.ActorSnoId}) in town. AnnId={item.AnnId} "); DroppedItemAnnIds.Add(item.AnnId); } if (dropResult) { DroppedItemAnnIds.Add(item.AnnId); ItemEvents.FireItemDropped(item); await Coroutine.Yield(); return(CoroutineResult.Done); } return(CoroutineResult.Failed); }
/// <summary> /// Drop item in town and record it so we can avoid picking it up again. /// </summary> public static bool Drop(ACDItem item) { if (!ZetaDia.IsInGame || !ZetaDia.IsInTown || item.IsAccountBound) return false; if (item.IsPotion || item.IsMiscItem || item.IsGem || item.IsCraftingReagent || item.IsCraftingPage) return false; Logger.Log("--> Dropping {0} ({1}) in town. DynamicId={2} ", item.Name, item.ActorSNO, item.DynamicId); if (item.Drop()) { DroppedItems.Add(item.DynamicId); Thread.Sleep(250); return true; } return false; }
/// <summary> /// Drop item in town and record it so we can avoid picking it up again. /// </summary> public static bool Drop(ACDItem item) { if (!ZetaDia.IsInGame || !ZetaDia.IsInTown || item.IsAccountBound) { return(false); } if (item.IsPotion || item.IsMiscItem || item.IsGem || item.IsCraftingReagent || item.IsCraftingPage) { return(false); } Logger.Log("--> Dropping {0} ({1}) in town. DynamicId={2} ", item.Name, item.ActorSNO, item.DynamicId); if (item.Drop()) { DroppedItems.Add(item.DynamicId); Thread.Sleep(250); return(true); } return(false); }