コード例 #1
0
        private void btnRefreshCharacterInventory_Click(object sender, EventArgs e)
        {
            if (BotMain.IsRunning)
            {
                return;
            }
            cacheItems.Clear();
            flowLayout_OutPut.Controls.Clear();

            try
            {
                using (ZetaDia.Memory.SaveCacheState())
                {
                    ZetaDia.Memory.DisableCache();
                    ZetaDia.Actors.Update();
                    flowLayout_OutPut.Controls.Add(new UserControlDebugEntry(
                                                       String.Format("Total Items Found {0}", ZetaDia.Me.Inventory.Backpack.Count())));

                    #region Character Inventory Items
                    foreach (var o in ZetaDia.Me.Inventory.Backpack)
                    {
                        try
                        {
                            CacheACDItem item = new CacheACDItem(o);
                            flowLayout_OutPut.Controls.Add(new UserControlDebugEntry(item.ToString()));
                        }
                        catch (Exception ex)
                        {
                            flowLayout_OutPut.Controls.Add(new UserControlDebugEntry(ex.Message));
                        }
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
            }

            flowLayout_OutPut.Focus();
        }
コード例 #2
0
ファイル: SalvageOverlord.cs プロジェクト: herbfunk/Funky
        internal static RunStatus GilesOptimisedSalvage(object ret)
        {
            if (FunkyGame.GameIsInvalid)
            {
                ActionsChecked = false;
                FunkyTownRunPlugin.DBLog.InfoFormat("[Funky] Town Run Behavior Failed! (Not In Game/Invalid Actor/misc)");
                return(RunStatus.Failure);
            }

            DiaUnit objBlacksmith         = ZetaDia.Actors.GetActorsOfType <DiaUnit>(true).FirstOrDefault <DiaUnit>(u => u.Name.StartsWith(SalvageName));
            Vector3 vectorPlayerPosition  = ZetaDia.Me.Position;
            Vector3 vectorSalvageLocation = Vector3.Zero;


            //Normal distance we use to move to specific location before moving to NPC
            float _distanceRequired = CurrentAct != Act.A5 ? 50f : 14f; //Act 5 we want short range only!

            if (Vector3.Distance(vectorPlayerPosition, SafetySalvageLocation) <= 2.5f)
            {
                MovedToSafetyLocation = true;
            }

            if (objBlacksmith == null || (!MovedToSafetyLocation && objBlacksmith.Distance > _distanceRequired))
            {
                vectorSalvageLocation = SafetySalvageLocation;
            }
            else
            {
                //MovedToSafetyLocation = true;
                vectorSalvageLocation = objBlacksmith.Position;
            }

            //if (vectorSalvageLocation == Vector3.Zero)
            //	Character.FindActByLevelID(Bot.Character.Data.CurrentWorldDynamicID);


            //Wait until we are not moving
            if (FunkyGame.Hero.IsMoving)
            {
                return(RunStatus.Running);
            }


            float iDistanceFromSell = Vector3.Distance(vectorPlayerPosition, vectorSalvageLocation);

            //Out-Of-Range...
            if (objBlacksmith == null || iDistanceFromSell > 12f)//|| !GilesCanRayCast(vectorPlayerPosition, vectorSalvageLocation, Zeta.Internals.SNO.NavCellFlags.AllowWalk))
            {
                Navigator.PlayerMover.MoveTowards(vectorSalvageLocation);
                return(RunStatus.Running);
            }


            if (!UIElements.SalvageWindow.IsVisible)
            {
                objBlacksmith.Interact();
                return(RunStatus.Running);
            }

            if (!UIElements.InventoryWindow.IsVisible)
            {
                Backpack.InventoryBackPackToggle(true);
                return(RunStatus.Running);
            }


            //Delays... (so we don't salvage everything in record time)
            if (!Delay.Test(1.15))
            {
                return(RunStatus.Running);
            }

            if (UIElements.SalvageAllWrapper.IsVisible)
            {
                if (UI.Game.Dialog_Confirmation_OK.IsVisible)
                {
                    UI.Game.Dialog_Confirmation_OK.Click();
                    return(RunStatus.Running);
                }

                if (UI.Game.SalvageAllNormal.IsEnabled && UI.Game.SalvageAllNormal.IsVisible && bShouldSalvageAllNormal && townRunItemCache.SalvageItems.Any(i => i.IsSalvagable && i.ThisQuality < ItemQuality.Magic1) && !bSalvageAllNormal)
                {
                    //UI.Game.SalvageAllNormal.Click();
                    Logger.DBLog.DebugFormat("[FunkyTownRun] Salvaging All Normal Items");
                    ZetaDia.Me.Inventory.SalvageItemsOfRarity(SalvageRarity.Normal);
                    bSalvageAllNormal = true;
                    var removalList = townRunItemCache.SalvageItems.Where(i => i.IsSalvagable && i.ThisQuality < ItemQuality.Magic1).ToList();
                    foreach (var cacheAcdItem in removalList)
                    {
                        LogSalvagedItem(cacheAcdItem);
                    }
                    townRunItemCache.SalvageItems = townRunItemCache.SalvageItems.Except(removalList).ToList();
                    return(RunStatus.Running);
                }

                if (UI.Game.SalvageAllMagical.IsEnabled && UI.Game.SalvageAllMagical.IsVisible && bShouldSalvageAllMagical && townRunItemCache.SalvageItems.Any(i => i.IsSalvagable && i.ThisQuality < ItemQuality.Rare4) && !bSalvageAllMagic)
                {
                    //UI.Game.SalvageAllMagical.Click();
                    FunkyTownRunPlugin.DBLog.DebugFormat("[FunkyTownRun] Salvaging All Magical Items");
                    ZetaDia.Me.Inventory.SalvageItemsOfRarity(SalvageRarity.Magic);
                    bSalvageAllMagic = true;
                    var removalList = townRunItemCache.SalvageItems.Where(i => i.IsSalvagable && i.ThisQuality < ItemQuality.Rare4).ToList();
                    foreach (var cacheAcdItem in removalList)
                    {
                        LogSalvagedItem(cacheAcdItem);
                    }
                    townRunItemCache.SalvageItems = townRunItemCache.SalvageItems.Except(removalList).ToList();
                    return(RunStatus.Running);
                }

                if (UI.Game.SalvageAllRare.IsEnabled && UI.Game.SalvageAllRare.IsVisible && bShouldSalvageAllRare && townRunItemCache.SalvageItems.Any(i => i.IsSalvagable && i.ThisQuality < ItemQuality.Legendary) && !bSalvageAllRare)
                {
                    //UI.Game.SalvageAllRare.Click();
                    FunkyTownRunPlugin.DBLog.DebugFormat("[FunkyTownRun] Salvaging All Rare Items");
                    ZetaDia.Me.Inventory.SalvageItemsOfRarity(SalvageRarity.Rare);
                    bSalvageAllRare = true;
                    var removalList = townRunItemCache.SalvageItems.Where(i => i.IsSalvagable && i.ThisQuality < ItemQuality.Legendary).ToList();
                    foreach (var cacheAcdItem in removalList)
                    {
                        LogSalvagedItem(cacheAcdItem);
                    }
                    townRunItemCache.SalvageItems = townRunItemCache.SalvageItems.Except(removalList).ToList();
                    return(RunStatus.Running);
                }

                UpdateSalvageItemList();
            }

            if (townRunItemCache.SalvageItems.Count > 0)
            {
                CacheACDItem thisitem = townRunItemCache.SalvageItems.FirstOrDefault();
                if (thisitem != null && thisitem.ACDItem != null)
                {
                    LogSalvagedItem(thisitem);
                    FunkyTownRunPlugin.DBLog.DebugFormat("[FunkyTownRun] Salvaging Individual Item {0}", thisitem.ToString());
                    ZetaDia.Me.Inventory.SalvageItem(thisitem.ThisDynamicID);
                }
                townRunItemCache.SalvageItems.Remove(thisitem);
                if (townRunItemCache.SalvageItems.Count > 0)
                {
                    thisitem = townRunItemCache.SalvageItems.FirstOrDefault();
                    if (thisitem != null)
                    {
                        return(RunStatus.Running);
                    }
                }
                else
                {
                    Delay.Reset();
                    return(RunStatus.Running);
                }
            }


            return(RunStatus.Success);
        }