What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal
RebornBuddy Forums

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

Library Corrupted Area still not working..... Anyone help make a plugin??

Great thanks, atm just looking for Dominus way one (boss named 'Wiraq, the Impaler')

Edit : He's in the same corrupted area since 5 mins, he visit everything in loop, but not the boss ô_ô
post me the info like in the other post, i'll whip up something. This time, get me info on the Chest named vaal vessel as well Ty.
 
Ill do this in Cruel, im a3 atm

So, I do not have to edit zone at all?

Once im a2, I press start, he do everything? thats sick
I may donate you few bucks when I got some Paypal money
Um Yea, you can be in twilight strand in Cruel, press start and make sure you have Progress Act 1 checked, it will do act one, then when you are at act 2, choose a bandit, or kill all, then check Progress Act 2, and come back latter, you should have act 3 open.
Don't need to donate, buy buddy keys for your own bot, help the devs of buddy products out. I'm in no need of Money, any you can spare, save it and buy lifetime buddy keys.
1 - It helps Devs
2 - You can use the key and run more bot

Win - Win.
=).

Edit, I'll link the acts when I'm done act 3. Oh and you can have "Progress Act 1, Progress Act 2" both checked, when it gets to southern forest, it will auto trigger act 2 stuff. It should work like that.
 
Um Yea, you can be in twilight strand in Cruel, press start and make sure you have Progress Act 1 checked, it will do act one, then when you are at act 2, choose a bandit, or kill all, then check Progress Act 2, and come back latter, you should have act 3 open.
Don't need to donate, buy buddy keys for your own bot, help the devs of buddy products out. I'm in no need of Money, any you can spare, save it and buy lifetime buddy keys.
1 - It helps Devs
2 - You can use the key and run more bot

Win - Win.
=).

Edit, I'll link the acts when I'm done act 3. Oh and you can have "Progress Act 1, Progress Act 2" both checked, when it gets to southern forest, it will auto trigger act 2 stuff. It should work like that.

Dude, I already have 3x Lifetime key, Idgaf about what you want/think, I'll give you a donate, even is not so much, you deserve it ;).

So I do not to setup any zone, but change it auto?

That sick
 
Dude, I already have 3x Lifetime key, Idgaf about what you want/think, I'll give you a donate, even is not so much, you deserve it ;).

So I do not to setup any zone, but change it auto?

That sick
It decides which zones to take, you can have any grind zone, as long as progress 1, 2 or 3, or all are on, It does the logic that I specify. The logic is based on what quest is done and etc, so if you are like half way done doing bandits, it will auto do the last one, etc. I have to randomize which it does in order to not have like 60 chars doing the same logic sequence for quests. In case GGG does detect for that kind of stuff, highly unlikely, but I'm a very cautious guy.
 
It decides which zones to take, you can have any grind zone, as long as progress 1, 2 or 3, or all are on, It does the logic that I specify. The logic is based on what quest is done and etc, so if you are like half way done doing bandits, it will auto do the last one, etc. I have to randomize which it does in order to not have like 60 chars doing the same logic sequence for quests. In case GGG does detect for that kind of stuff, highly unlikely, but I'm a very cautious guy.

Any ETA for a3? This include skill question?


This combined with a things to grind zone until reach lvl X, gonna be awesome, and fully automated bot
Really impressive
 
Any ETA for a3? This include skill question?


This combined with a things to grind zone until reach lvl X, gonna be awesome, and fully automated bot
Really impressive
Yea that was what I was planning. I already have a character level check in there, Act 3 is done, just quest checking logic is a pain because GGG does quest states so weird.
If you go to the Dev tab on the bot, on the File to run, Select the file from the Scripts folder inside EB, choose the one that has QuestStatesDump, and you can see the quest states. Like there is no logic format. 0 Means Quest Complete, and a slew of other things prior to 0. But you can always code around it, just takes time. After I'm done act 3, sometime this week, I gotta really, really get my shit together and start selling my orbs. I have so much stuff to manage on each bot ( atm i'm near 200~, with like 140 Offline because their 10 stashes are all full of orbs). Might take a week or two to get that done. Then onto Maps as that's the next easiest thing lol, just getting proper map mods a PITA. Oh and I have some experimental Strong box logic being tested =).
 
Ok Works now, I tested, it will port to town after Killing boss and opening vaal vessel.
Code:
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Markup;
using log4net;
using System;
using Loki.Bot;
using Loki.Bot.Logic.Bots.BasicGrindBot;
using Loki.Bot.Pathfinding;
using Loki.Bot.v3;
using Loki.Game;
using Loki.Game.Objects;
using Loki.Utilities;
using Buddy.Coroutines;
namespace LibraryCorruptedHandler
{
    internal class LibraryCorruptedHandler : IPlugin
    {
        private static readonly ILog Log = Logger.GetLoggerInstanceForType();

        private bool _enabled;
        private bool _skip;

        /// <summary> The name of the plugin. </summary>
        public string Name
        {
            get { return "LibraryCorruptedHandler"; }
        }

        /// <summary> The description of the plugin. </summary>
        public string Description
        {
            get { return "A plugin that handles the logic required for fighting Library Corrupted Boss."; }
        }

        /// <summary>The author of the plugin.</summary>
        public string Author
        {
            get { return "Bossland GmbH"; }
        }

        /// <summary>The version of the plugin.</summary>
        public Version Version
        {
            get { return new Version(0, 0, 1, 1); }
        }

        /// <summary>Initializes this plugin.</summary>
        public void Initialize()
        {
            Log.DebugFormat("[LibraryCorruptedHandler] Initialize");
        }

        /// <summary> The plugin start callback. Do any initialization here. </summary>
        public void Start()
        {
            Log.DebugFormat("[LibraryCorruptedHandler] Start");

            GameEventManager.AreaChanged += GameEventManagerOnAreaChanged;
            Reset();

            // Check to see if the current grind zone is for Dominus.
            if (BasicGrindBotSettings.Instance.GrindZoneName != "The Library")
            {

                Log.InfoFormat("[LibraryCorruptedHandler] The area to grind is not The Library. Skipping execution until a restart or area change.");
                _skip = true;
                return;
            }

            // We want to change the behavior after exploration, so we can start the boss fight, and stay in it
            // though different phases.
            if (!TaskManager.AddAfter(new HandleLibraryCorruptedArea(), "ExploreTask"))
            {
                Log.ErrorFormat("[LibraryCorruptedHandler]  AddBefore Explore Task failed.");
                BotManager.Stop();
            }
            else
            {
                Log.ErrorFormat("[LibraryCorruptedHandler] AddBefore Explore Task Success.");
            }
        }

        /// <summary> The plugin tick callback. Do any update logic here. </summary>
        public void Tick()
        {
            if (_skip)
                return;

            if (!LokiPoe.IsInGame || LokiPoe.Me.IsInTown || LokiPoe.Me.IsDead)
                return;
        }

        /// <summary> The plugin stop callback. Do any pre-dispose cleanup here. </summary>
        public void Stop()
        {
            Log.DebugFormat("[LibraryCorruptedHandler] Stop");

            GameEventManager.AreaChanged -= GameEventManagerOnAreaChanged;
        }

        #region Implementation of IConfigurable

        public JsonSettings Settings
        {
            get { return null; }
        }

        /// <summary> The plugin's settings control. This will be added to the Exilebuddy Settings tab.</summary>
        public UserControl Control
        {
            get { return null; }
        }

        #endregion

        #region Implementation of IEnableable

        /// <summary>Is this plugin currently enabled?</summary>
        public bool IsEnabled
        {
            get { return _enabled; }
        }

        /// <summary> The plugin is being enabled.</summary>
        public void Enable()
        {
            Log.DebugFormat("[LibraryCorruptedHandler] Enable");
            _enabled = true;
        }

        /// <summary> The plugin is being disabled.</summary>
        public void Disable()
        {
            Log.DebugFormat("[LibraryCorruptedHandler] Disable");
            _enabled = false;
        }

        #endregion

        #region Implementation of IDisposable

        /// <summary> </summary>
        public void Dispose()
        {
        }

        #endregion

        #region Override of Object

        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return Name + ": " + Description;
        }

        #endregion

        private void GameEventManagerOnAreaChanged(object sender, AreaChangedEventArgs areaChangedEventArgs)
        {
            Reset();
        }

        private void Reset()
        {
            Log.DebugFormat("[LibraryCorruptedHandler] Now resetting task state.");
            _skip = false;
        }

        /// <summary>
        /// This task helps BasicGrindBot stay in the Dominus boss fight area, resetting exploration to 
        /// keep the bot moving around to trigger different phases.
        /// </summary>
        public class HandleLibraryCorruptedArea : ITask
        {
            private bool _enabled = true;

            /// <summary>The name of this task.</summary>
            public string Name
            {
                get { return "HandleLibraryCorruptedArea"; }
            }

            /// <summary>A description of what this task does.</summary>
            public string Description
            {
                get { return "This task helps BasicGrindBot stay in the Dominus boss fight area, resetting exploration to keep the bot moving around to trigger different phases."; }
            }

            /// <summary>The author of this task.</summary>
            public string Author
            {
                get { return "Bossland GmbH"; }
            }

            /// <summary>The version of this task.</summary>
            public Version Version
            {
                get { return new Version(0, 0, 1, 1); }
            }

            private Vector2i _towerFightStarterPos;
            private Vector2i __objectVaalChestPos;
            /// <summary>
            /// The tasks's execution logic.
            /// </summary>
            /// <returns>true if the TaskManager should not execute any other tasks, and false if it should.</returns>
            public async Task<bool> Execute()
            {

				 if(!LokiPoe.CurrentWorldArea.IsCorruptedArea)
                 {
                     Log.InfoFormat("[LibraryCorruptedHandler] Not Corrupted area");
                     return false;

                 }
                 else
                 {
                     Log.InfoFormat("[LibraryCorruptedHandler] Corrupted Area Found");
                 }
                // When we first spawn into the area, exploration should take us within range of everything.
                // Start out by triggering the fight itself.
                if (_towerFightStarterPos == Vector2i.Zero)
                {
                    var fightStarter =
                        LokiPoe.ObjectManager.GetObjectByName(
                            "Vaal Vessel");
                    if (fightStarter != null)
                    {
                        _towerFightStarterPos = ExilePather.WalkablePositionFor(fightStarter, 10);
                        Log.InfoFormat("[LibraryCorruptedHandler] _fightStarterPos: {0}.", _towerFightStarterPos);
                        if (!await Coroutines.MoveToLocation(_towerFightStarterPos, 10, 30000))
                        {
                            Log.ErrorFormat("[LibraryCorruptedHandler] MoveToLocation failed.");
                        }

                        return true;
                    }
                }

                // Simply move towards Dominus if nothing else is running.
                var boss = LokiPoe.ObjectManager.GetObjectByName<Monster>("Ch'aska, Maker of Rain");
                if (boss != null)
                {
                    if (!boss.IsDead)
                    {
                        PlayerMover.MoveTowards(boss.Position);
                        Log.InfoFormat("[LibraryCorruptedHandler] {0} is Not Dead. Finding Him", boss.Name);
                        return true;
                    }
					if(boss.IsDead)
					{			
						Log.InfoFormat("[LibraryCorruptedHandler] Boss Dead. Triggering Town Run");
                        if (__objectVaalChestPos == Vector2i.Zero)
                        {
                            var _objectVaalChest =
                                LokiPoe.ObjectManager.GetObjectByName(
                                    "Vaal Vessel");
                            if (_objectVaalChest != null)
                            {
                                if (_objectVaalChest.IsTargetable)
                                {
                                    __objectVaalChestPos = ExilePather.WalkablePositionFor(_objectVaalChest, 10);
                                    Log.InfoFormat("[LibraryCorruptedHandler] _fightStarterPos: {0}.", __objectVaalChestPos);
                                    if (!await Coroutines.MoveToLocation(__objectVaalChestPos, 10, 30000))
                                    {
                                        Log.ErrorFormat("[LibraryCorruptedHandler] MoveToLocation failed.");
                                        return true;
                                    }
                                    await Coroutine.Sleep(Utility.LatencySafeValue(500));
                                    if (!LokiPoe.Input.HighlightObject(_objectVaalChest))
                                    {
                                        return true;
                                    }
                                    if (!await Coroutines.InteractWith(_objectVaalChest, false, 160))
                                    {
                                        return true;
                                    }
                                    BasicGrindBotSettings.Instance.TriggerTownRun();
                                }
                                else
                                {
                                    BasicGrindBotSettings.Instance.NeedsTownRun = 2;

                                }
                            }

                        }
						//BasicGrindBotSettings.Instance.TriggerTownRun();
						
					}
                    return true;
                }


                // Reset the explorer, so we move around the area looking for things that might be out of view.
                // It's up to the CR to avoid getting stuck killing Miscreations near their spawner.
                if (AreaStateCache.Current.Explorer != null)
                {
                    Log.InfoFormat("[LibraryCorruptedHandler] Now resetting the explorer.");
                    AreaStateCache.Current.Explorer.Reset();
                }

                // Don't execute any tasks afterwards. This forces the BasicGrindBot to say in the boss area.
                return true;
            }

            /// <summary>The bot Start event.</summary>
            public void Start()
            {
            }

            /// <summary>The bot Tick event.</summary>
            public void Tick()
            {
            }

            /// <summary>The bot Stop event.</summary>
            public void Stop()
            {
            }
            public void RemoveMe()
            {
                if(!TaskManager.Remove("LibraryCorruptedHandler"))
                {
                    Log.InfoFormat("[LibraryCorruptedHandler] Remove LibraryCorruptedHandler Task Failed");
                }
            }
            /// <summary>Is this task currently enabled?</summary>
            public bool IsEnabled
            {
                get { return _enabled; }
            }

            /// <summary>Called when the task should be enabled.</summary>
            public void Enable()
            {
                _enabled = true;
            }

            /// <summary>Called when the task should be disabled.</summary>
            public void Disable()
            {
                _enabled = false;
            }
        }
    
	}
}

Thank you man really appreciate the plugin! Would have thanked you sooner but have been away a few days.
 
Hi, how can i modify this plugin to force it to check if there is corrupted area before continue the instance? If it could ignore all the mobs in library and move to the corrupted area then it would be great.
 
In bcain's post, there is already a check for if it's a corrupted area.

Code:
if(!LokiPoe.CurrentWorldArea.IsCorruptedArea)
                 {
                     Log.InfoFormat("[LibraryCorruptedHandler] Not Corrupted area");
                     return false;

But this plugin is outdated, Pushedx made a plugin called "CorruptedAreaHandler"
Run that, it supports all corrupted areas.
 
Found corrupted area setting on default, like I said, is there any chance for the bot just farming corrupted area, ignore all please ?
 
Found corrupted area setting on default, like I said, is there any chance for the bot just farming corrupted area, ignore all please ?
There is but you would need to code that yourself. If you are thinking of farming corrupted areas over and over again. Be forewarned that it's very, very sketchy on when you will get banned. Some say they haven't been banned doing this manually, but others say differently. I wouldn't risk it.
 
Back
Top