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

Is there a way for oldgrind bot to skip Bosses Like voll on dried lake?

Yes. You can look at the top of your combat routine, and you will see an area with ignored monsters. Just add Voll to it.
 
I dont see any combat routine its not under the old routine section or any of the other side tabs i can see.
 
I dont see any combat routine its not under the old routine section or any of the other side tabs i can see.

Settings > Routine > OldRoutine is the default combat routine.

Adding in a specific mob to ignore would require opening up EBFolder > 3rdParty > OldRoutine > OldRoutine.cs

Then look for this code:

Code:
// Ignore Voidspawn of Abaxoth: thanks ExVault!if (m.ExplicitAffixes.Any(a => a.DisplayName == "Voidspawn of Abaxoth"))
   return false;

Add in whatever you want to ignore:

Code:
// Ignore Voll in the dried lake
if (m.ExplicitAffixes.Any(a => a.DisplayName == "Voll, Emperor of Purity"))
   return false;

or maybe just

Code:
if (m.Name == "Voll, Emperor of Purity")
   return false;

Havent messed with ignoring mobs like this for awhile, but should work. Give it a try.

Do note that anytime you update EB, the default OldRoutine will revert any changes you make.
 
Actually that line for Voidspawn is a special case for a monster with no specific name (which was why it used ExplicitAffixes).

For Voll, you can just ignore by his actual name,

Code:
if(m.Name.Equals("Voll, Emperor of Purity"))
   return false;
However, that just ignores Voll. It'll keep processing all targets around him, and his summons, which causes the bot to stay around him and most likely die (assuming this is why you want to avoid him).

What you can consider is something like this, which would be logic that goes in Tick() or some other location executed per-tick/combat cycle.
Code:
// Look for Voll
var voll =
	LokiPoe.ObjectManager.GetObjects(LokiPoe.ObjectManager.PoeObjectEnum.Voll_Emperor_of_Purity).FirstOrDefault() as
		Monster;
// If we found him, and he's not dead.
if (voll != null && !voll.IsDead)
{
        // Blacklist him if he's not already.
	if (!Blacklist.Contains(voll.Id))
	{
		Blacklist.Add(voll.Id, TimeSpan.FromHours(1), "Voll");
	}
        // Now blacklist all mobs that are within 50 units of him to keep the bot from going too close.
	var vollPos = voll.Position;
	foreach (var target in LokiPoe.ObjectManager.GetObjectsByType<Monster>().ToList())
	{
		if (!Blacklist.Contains(target.Id))
		{
			if (target.Position.Distance(vollPos) < 50)
			{
				Blacklist.Add(target.Id, TimeSpan.FromHours(1), "Near Voll");
			}
		}
	}
}

Depending on how "scary" Voll is, that 50 could probably be much larger like 100 and you should steer pretty clear of him. For performance reasons, you'd also want to limit how often that code gets called with some simple Stopwatch logic as well. You might also want to add some debug logging to make sure things happen as expected.
 
Back
Top