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

Hi there, old user of Exilebuddy now looking to get back into the game again

Trras

Member
Joined
Oct 16, 2014
Messages
84
Reaction score
0
Hello there. Just a brief intro, I have tried Exilebuddy during the Invasion days and it was much better than another bot (Not naming it but its obvious) when it comes to chickening on sight for certain Invasion bosses.
Right now I just got banned using the other bot and I'm looking for another alternative, as I am a huge fan of buddy products, I think that Exilebuddy will eventually grow to a stage where it will be better than the other bot.


PS: I will be botting on Beyond with my own chicken script ahk for chickening

However I cannot find a plugin or function where I will chicken when a beyond portal spawns or chickening on sight to certain bosses. I read the forum quite abit and some are saying that the moment a beyond portal spawns, their bot just creates a new instance, though thats a little extreme since my characters will be built to take hits but I want to avoid certain Beyond bosses. Where can I find such a function?
 
Moved to the General section.

Adding specific functionality like this to the bot implementation we provide requires coding or using existing developed plugins. There is a basic Chicken plugin that users can use as a base for more custom chicken logic. In the case of chickening to avoid a particular boss all you would have to do is detect that object by name, and then execute the chicken logic.

However, once thing you'll learn with programming and design, is that simply adding new features on top of an existing design can cause unwanted side effects if you don't code around the enitrelty of the current design. For example, the code to simply chicken when you see a boos would be as follows:

Code:
var bossNames = new string[] {"Boss1", "Boss2", "Boss3"};
foreach (var name in bossNames)
{
            if (LokiPoe.ObjectManager.GetObjectByName(name) != null)
            {
                        Log.DebugFormat("[Chicken] Now chickening because the boss \"{0}\" was found.", name);
                        DoChicken();
                        return;
            }
}

That code would go in the Tick function of Chicken.cs.

The untended side effect, which is something that might go unnoticed until it happened and you came back to your bot looping in the same instance over and over, would be that when you leave the current area, you need to mark it as not being traveled to again. Otherwise, if you're trying to get to Fetid Pool, and are chickening over and over in Mud Flats because of a boss that spawned, the bot would never be able to progress.

To fix that specific issue, the code should look something like this instead:
Code:
var bossNames = new string[] {"Boss1", "Boss2", "Boss3"};
foreach (var name in bossNames)
{
    if (LokiPoe.ObjectManager.GetObjectByName(name) != null)
    {
        // If we aren't in a corrupted area, just blacklist the id. If we are, we need to blacklist the parent's id.
        if (!LokiPoe.CurrentWorldArea.IsCorruptedArea)
        {
            AreaStateCache.SetNewInstanceOverride(LokiPoe.CurrentWorldArea.Id, true);
        }
        else
        {
            if (!string.IsNullOrEmpty(AreaStateCache.CorruptedAreaParentId))
                AreaStateCache.SetNewInstanceOverride(AreaStateCache.CorruptedAreaParentId, true);
        }

        Log.DebugFormat("[Chicken] Now chickening because the boss \"{0}\" was found.", name);
        DoChicken();
        return;
    }
}

However, that's just one issue out of many that needs to be considered. It's the drawback to letting users be able to do things like this, but the alternative would be to not allow any changes or user code, and simply not support a feature.

EB does finally have a setup where users can make their own bots and use all the same API stuff we do in BasicGrindBot to avoid this issue by coding around it in the first place, but it's unavoidable when you simply add on features to existing code.
 
Thank you very much for the input! I'll start learning and messing around these codes with 0 knowledge whatsoever and work something out.
 
Back
Top