Exemplo n.º 1
0
        internal static int GetGambleItemPrice(BloodShardGambleItems item)
        {
            switch (item)
            {
            case BloodShardGambleItems.OneHandItem:
            case BloodShardGambleItems.TwoHandItem:
                return(75);

            case BloodShardGambleItems.Quiver:
            case BloodShardGambleItems.Orb:
            case BloodShardGambleItems.Mojo:
            case BloodShardGambleItems.Helm:
            case BloodShardGambleItems.Gloves:
            case BloodShardGambleItems.Boots:
            case BloodShardGambleItems.Chest:
            case BloodShardGambleItems.Belt:
            case BloodShardGambleItems.Shoulders:
            case BloodShardGambleItems.Pants:
            case BloodShardGambleItems.Bracers:
            case BloodShardGambleItems.Shield:
                return(25);

            case BloodShardGambleItems.Ring:
                return(50);

            case BloodShardGambleItems.Amulet:
                return(100);
            }

            return(-1);
        }
Exemplo n.º 2
0
 internal static RunStatus GamblingFinish(object ret)
 {
     FunkyTownRunPlugin.DBLog.DebugFormat("Debug: Gambling routine ending sequence...");
     LastBloodShardCount = 0;
     PurchasedItem = false;
     nextItemType = BloodShardGambleItems.None;
     return RunStatus.Success;
 }
Exemplo n.º 3
0
 internal static RunStatus GamblingFinish(object ret)
 {
     FunkyTownRunPlugin.DBLog.DebugFormat("Debug: Gambling routine ending sequence...");
     LastBloodShardCount = 0;
     PurchasedItem       = false;
     nextItemType        = BloodShardGambleItems.None;
     return(RunStatus.Success);
 }
Exemplo n.º 4
0
        private static int GetGambleItemItemDynamicIDBalanceID(BloodShardGambleItems type)
        {
            switch (type)
            {
            case BloodShardGambleItems.OneHandItem:
                return(-767866790);

            case BloodShardGambleItems.TwoHandItem:
                return(-1099096773);

            case BloodShardGambleItems.Quiver:
                return(-1843121997);

            case BloodShardGambleItems.Orb:
                return(215071258);

            case BloodShardGambleItems.Mojo:
                return(-1492657844);

            case BloodShardGambleItems.Helm:
                return(-1492848355);

            case BloodShardGambleItems.Gloves:
                return(2050033703);

            case BloodShardGambleItems.Boots:
                return(-2026108002);

            case BloodShardGambleItems.Chest:
                return(-594428401);

            case BloodShardGambleItems.Belt:
                return(-1493063970);

            case BloodShardGambleItems.Shoulders:
                return(-537237168);

            case BloodShardGambleItems.Pants:
                return(-2010009315);

            case BloodShardGambleItems.Bracers:
                return(1281756953);

            case BloodShardGambleItems.Shield:
                return(-1780286480);

            case BloodShardGambleItems.Ring:
                return(-1492484569);

            case BloodShardGambleItems.Amulet:
                return(1816611999);
            }

            return(-1);
        }
Exemplo n.º 5
0
        private void BloodShardGambleItemsChanged(object sender, EventArgs e)
        {
            CheckBox cbSender = (CheckBox)sender;
            BloodShardGambleItems LogLevelValue = (BloodShardGambleItems)Enum.Parse(typeof(BloodShardGambleItems), cbSender.Name);

            if (FunkyTownRunPlugin.PluginSettings.BloodShardGambleItems.HasFlag(LogLevelValue))
            {
                FunkyTownRunPlugin.PluginSettings.BloodShardGambleItems &= ~LogLevelValue;
            }
            else
            {
                FunkyTownRunPlugin.PluginSettings.BloodShardGambleItems |= LogLevelValue;
            }
        }
Exemplo n.º 6
0
        internal static int GetGambleItemDynamicID(BloodShardGambleItems type)
        {
            //string ItemName = ReturnGamblingItemName(type);
            int ItemBalanceID = GetGambleItemItemDynamicIDBalanceID(type);

            //Search the gambling item list for the correct name
            foreach (var acdItem in GamblingItemList)
            {
                if (acdItem.ThisBalanceID == ItemBalanceID)               //(acdItem.ThisRealName.Contains(ItemName))
                {
                    return(acdItem.ThisDynamicID);
                }
            }

            return(-1);
        }
Exemplo n.º 7
0
        private static string ReturnGamblingItemName(BloodShardGambleItems type)
        {
            if (type == BloodShardGambleItems.OneHandItem)
            {
                return("1-H Mystery Weapon");
            }
            if (type == BloodShardGambleItems.TwoHandItem)
            {
                return("2-H Mystery Weapon");
            }
            if (type == BloodShardGambleItems.Chest)
            {
                return("Mystery Chest Armor");
            }

            return(String.Format("Mystery {0}", type));
        }
Exemplo n.º 8
0
        internal static RunStatus GamblingStart(object ret)
        {
            //if (Bot.Settings.Debug.DebugStatusBar)
            BotMain.StatusText = "Town run: Gambling routine started";
            FunkyTownRunPlugin.DBLog.DebugFormat("Debug: Gambling routine started.");

            if (ZetaDia.Actors.Me == null)
            {
                ActionsChecked = false;
                FunkyTownRunPlugin.DBLog.DebugFormat("Error: Diablo 3 memory read error, or item became invalid [PreSalvage-1]");
                return(RunStatus.Failure);
            }

            MovedToSafetyLocation = false;
            PurchasedItem         = false;
            LastBloodShardCount   = 0;
            nextItemType          = BloodShardGambleItems.None;
            Delay.Reset();
            return(RunStatus.Success);
        }
Exemplo n.º 9
0
        internal static RunStatus GamblingInteraction(object ret)
        {
            if (FunkyGame.GameIsInvalid)
            {
                ActionsChecked = false;
                FunkyTownRunPlugin.DBLog.DebugFormat("[Funky] Town Run Behavior Failed! (Not In Game/Invalid Actor/misc)");
                return RunStatus.Failure;
            }

            BotMain.StatusText = "Town run: Gambling Interaction";

            UIElement uie = UI.Game.BloodShardVendorMainDialog;
            if (!(uie != null && uie.IsValid && uie.IsVisible))
            {
                FunkyTownRunPlugin.DBLog.DebugFormat("[Funky] Gambling UI Dialog Not Visible!");
                return RunStatus.Failure;
            }
            if (!UIElements.InventoryWindow.IsVisible)
            {
                Backpack.InventoryBackPackToggle(true);
                return RunStatus.Running;
            }

            int CurrentBloodShardCount = ZetaDia.CPlayer.BloodshardCount;
            if (CurrentBloodShardCount<5)
            {
                FunkyTownRunPlugin.DBLog.DebugFormat("[Funky] Gambling Behavior Finished.");
                return RunStatus.Success;
            }

            //set default
            if (LastBloodShardCount == 0 && LastBloodShardCount != CurrentBloodShardCount)
            {
                LastBloodShardCount = CurrentBloodShardCount;
            }

            //Check if we should find a new item type to gamble for..
            if (nextItemType.Equals(BloodShardGambleItems.None) || GetGambleItemPrice(nextItemType) > CurrentBloodShardCount)
            {
                nextItemType = BloodShardGambleItems.None;

                //Generate our list of item types.
                List<BloodShardGambleItems> freshList = ValidGambleItems.Where(t => FunkyTownRunPlugin.PluginSettings.BloodShardGambleItems.HasFlag(t)).ToList();

                //Find next item type!
                while (freshList.Count>0)
                {
                    Random r = new Random();

                    int curListCount=freshList.Count;
                    int index = r.Next(0, curListCount);

                    BloodShardGambleItems itemtype = freshList[index];
                    if (FunkyTownRunPlugin.PluginSettings.BloodShardGambleItems.HasFlag(itemtype) && GetGambleItemPrice(itemtype) <= CurrentBloodShardCount)
                    {
                        nextItemType = itemtype;
                        FunkyTownRunPlugin.DBLog.DebugFormat("Next Item Type: {0}", nextItemType);
                        break;
                    }

                    freshList.RemoveAt(index);
                }
            }

            if (nextItemType.Equals(BloodShardGambleItems.None))
            {
                FunkyTownRunPlugin.DBLog.DebugFormat("[Funky] Gambling Behavior Finished -- No Valid Item Types Returned.");
                return RunStatus.Success;
            }

            if (!PurchasedItem)
            {
                //Waiting..
                if (!Delay.Test(2)) return RunStatus.Running;

                //Retrieve the DynamicID based on our type selection
                int dynamicID = GetGambleItemDynamicID(nextItemType);
                if (dynamicID == -1)
                {
                    //Error!?
                    FunkyTownRunPlugin.DBLog.DebugFormat("[Funky] Gambling Behavior Item DynamicID was not found!");
                    return RunStatus.Success;
                }

                FunkyTownRunPlugin.DBLog.DebugFormat("[Funky] Buying Item {0}", nextItemType);
                ZetaDia.Actors.Me.Inventory.BuyItem(dynamicID);
                PurchasedItem = true;
                return RunStatus.Running;
            }

            if (LastBloodShardCount != CurrentBloodShardCount)
            {
                LastBloodShardCount=CurrentBloodShardCount;
                if (FunkyGame.CurrentStats != null)
                    FunkyGame.CurrentStats.CurrentProfile.ItemsGambled++;
                //FunkyTownRunPlugin.TownRunStats.ItemsGambled++;
            }
            else if (ZetaDia.Me.Inventory.NumFreeBackpackSlots < 3)
            {
                FunkyTownRunPlugin.DBLog.DebugFormat("[Funky] Gambling Behavior Finished -- Backpack Is Nearly Full!");
                return RunStatus.Success;
            }

            //Reset
            PurchasedItem = false;
            nextItemType = BloodShardGambleItems.None;

            return RunStatus.Running;
        }
Exemplo n.º 10
0
        private static string ReturnGamblingItemName(BloodShardGambleItems type)
        {
            if (type == BloodShardGambleItems.OneHandItem)
            {
                return "1-H Mystery Weapon";
            }
            if (type == BloodShardGambleItems.TwoHandItem)
            {
                return "2-H Mystery Weapon";
            }
            if (type == BloodShardGambleItems.Chest)
            {
                return "Mystery Chest Armor";
            }

            return String.Format("Mystery {0}", type);
        }
Exemplo n.º 11
0
        private static int GetGambleItemItemDynamicIDBalanceID(BloodShardGambleItems type)
        {
            switch (type)
            {
                case BloodShardGambleItems.OneHandItem:
                    return -767866790;
                case BloodShardGambleItems.TwoHandItem:
                    return -1099096773;
                case BloodShardGambleItems.Quiver:
                    return -1843121997;
                case BloodShardGambleItems.Orb:
                    return 215071258;
                case BloodShardGambleItems.Mojo:
                    return -1492657844;
                case BloodShardGambleItems.Helm:
                    return -1492848355;
                case BloodShardGambleItems.Gloves:
                    return 2050033703;
                case BloodShardGambleItems.Boots:
                    return -2026108002;
                case BloodShardGambleItems.Chest:
                    return -594428401;
                case BloodShardGambleItems.Belt:
                    return -1493063970;
                case BloodShardGambleItems.Shoulders:
                    return -537237168;
                case BloodShardGambleItems.Pants:
                    return -2010009315;
                case BloodShardGambleItems.Bracers:
                    return 1281756953;
                case BloodShardGambleItems.Shield:
                    return -1780286480;
                case BloodShardGambleItems.Ring:
                    return -1492484569;
                case BloodShardGambleItems.Amulet:
                    return 1816611999;
            }

            return -1;
        }
Exemplo n.º 12
0
        internal static int GetGambleItemPrice(BloodShardGambleItems item)
        {
            switch (item)
            {
                case BloodShardGambleItems.OneHandItem:
                case BloodShardGambleItems.TwoHandItem:
                    return 75;
                case BloodShardGambleItems.Quiver:
                case BloodShardGambleItems.Orb:
                case BloodShardGambleItems.Mojo:
                case BloodShardGambleItems.Helm:
                case BloodShardGambleItems.Gloves:
                case BloodShardGambleItems.Boots:
                case BloodShardGambleItems.Chest:
                case BloodShardGambleItems.Belt:
                case BloodShardGambleItems.Shoulders:
                case BloodShardGambleItems.Pants:
                case BloodShardGambleItems.Bracers:
                case BloodShardGambleItems.Shield:
                    return 25;
                case BloodShardGambleItems.Ring:
                    return 50;
                case BloodShardGambleItems.Amulet:
                    return 100;
            }

            return -1;
        }
Exemplo n.º 13
0
        internal static int GetGambleItemDynamicID(BloodShardGambleItems type)
        {
            //string ItemName = ReturnGamblingItemName(type);
            int ItemBalanceID = GetGambleItemItemDynamicIDBalanceID(type);
            //Search the gambling item list for the correct name
            foreach (var acdItem in GamblingItemList )
            {
                if (acdItem.ThisBalanceID==ItemBalanceID) //(acdItem.ThisRealName.Contains(ItemName))
                    return acdItem.ThisDynamicID;
            }

            return -1;
        }
Exemplo n.º 14
0
        internal static RunStatus GamblingStart(object ret)
        {
            //if (Bot.Settings.Debug.DebugStatusBar)
            BotMain.StatusText = "Town run: Gambling routine started";
            FunkyTownRunPlugin.DBLog.DebugFormat("Debug: Gambling routine started.");

            if (ZetaDia.Actors.Me == null)
            {
                ActionsChecked = false;
                FunkyTownRunPlugin.DBLog.DebugFormat("Error: Diablo 3 memory read error, or item became invalid [PreSalvage-1]");
                return RunStatus.Failure;
            }

            MovedToSafetyLocation = false;
            PurchasedItem = false;
            LastBloodShardCount = 0;
            nextItemType = BloodShardGambleItems.None;
            Delay.Reset();
            return RunStatus.Success;
        }
Exemplo n.º 15
0
        internal static RunStatus GamblingInteraction(object ret)
        {
            if (FunkyGame.GameIsInvalid)
            {
                ActionsChecked = false;
                FunkyTownRunPlugin.DBLog.DebugFormat("[Funky] Town Run Behavior Failed! (Not In Game/Invalid Actor/misc)");
                return(RunStatus.Failure);
            }

            BotMain.StatusText = "Town run: Gambling Interaction";

            UIElement uie = UI.Game.BloodShardVendorMainDialog;

            if (!(uie != null && uie.IsValid && uie.IsVisible))
            {
                FunkyTownRunPlugin.DBLog.DebugFormat("[Funky] Gambling UI Dialog Not Visible!");
                return(RunStatus.Failure);
            }
            if (!UIElements.InventoryWindow.IsVisible)
            {
                Backpack.InventoryBackPackToggle(true);
                return(RunStatus.Running);
            }



            int CurrentBloodShardCount = ZetaDia.CPlayer.BloodshardCount;

            if (CurrentBloodShardCount < 5)
            {
                FunkyTownRunPlugin.DBLog.DebugFormat("[Funky] Gambling Behavior Finished.");
                return(RunStatus.Success);
            }

            //set default
            if (LastBloodShardCount == 0 && LastBloodShardCount != CurrentBloodShardCount)
            {
                LastBloodShardCount = CurrentBloodShardCount;
            }

            //Check if we should find a new item type to gamble for..
            if (nextItemType.Equals(BloodShardGambleItems.None) || GetGambleItemPrice(nextItemType) > CurrentBloodShardCount)
            {
                nextItemType = BloodShardGambleItems.None;

                //Generate our list of item types.
                List <BloodShardGambleItems> freshList = ValidGambleItems.Where(t => FunkyTownRunPlugin.PluginSettings.BloodShardGambleItems.HasFlag(t)).ToList();

                //Find next item type!
                while (freshList.Count > 0)
                {
                    Random r = new Random();

                    int curListCount = freshList.Count;
                    int index        = r.Next(0, curListCount);

                    BloodShardGambleItems itemtype = freshList[index];
                    if (FunkyTownRunPlugin.PluginSettings.BloodShardGambleItems.HasFlag(itemtype) && GetGambleItemPrice(itemtype) <= CurrentBloodShardCount)
                    {
                        nextItemType = itemtype;
                        FunkyTownRunPlugin.DBLog.DebugFormat("Next Item Type: {0}", nextItemType);
                        break;
                    }

                    freshList.RemoveAt(index);
                }
            }

            if (nextItemType.Equals(BloodShardGambleItems.None))
            {
                FunkyTownRunPlugin.DBLog.DebugFormat("[Funky] Gambling Behavior Finished -- No Valid Item Types Returned.");
                return(RunStatus.Success);
            }


            if (!PurchasedItem)
            {
                //Waiting..
                if (!Delay.Test(2))
                {
                    return(RunStatus.Running);
                }

                //Retrieve the DynamicID based on our type selection
                int dynamicID = GetGambleItemDynamicID(nextItemType);
                if (dynamicID == -1)
                {
                    //Error!?
                    FunkyTownRunPlugin.DBLog.DebugFormat("[Funky] Gambling Behavior Item DynamicID was not found!");
                    return(RunStatus.Success);
                }

                FunkyTownRunPlugin.DBLog.DebugFormat("[Funky] Buying Item {0}", nextItemType);
                ZetaDia.Actors.Me.Inventory.BuyItem(dynamicID);
                PurchasedItem = true;
                return(RunStatus.Running);
            }



            if (LastBloodShardCount != CurrentBloodShardCount)
            {
                LastBloodShardCount = CurrentBloodShardCount;
                if (FunkyGame.CurrentStats != null)
                {
                    FunkyGame.CurrentStats.CurrentProfile.ItemsGambled++;
                }
                //FunkyTownRunPlugin.TownRunStats.ItemsGambled++;
            }
            else if (ZetaDia.Me.Inventory.NumFreeBackpackSlots < 3)
            {
                FunkyTownRunPlugin.DBLog.DebugFormat("[Funky] Gambling Behavior Finished -- Backpack Is Nearly Full!");
                return(RunStatus.Success);
            }


            //Reset
            PurchasedItem = false;
            nextItemType  = BloodShardGambleItems.None;

            return(RunStatus.Running);
        }