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

List of internal aura names (for beta build)

supercode

New Member
Joined
Jul 6, 2014
Messages
4
Reaction score
0
Heyo buddies,

I'm trying to check in a routine i'm making if a mob has the elemental reflect aura. In the release version this was "monster_aura_elemental_thorns". Though it seems to not be that in the beta version. Any help? A list of available internal auras would be a huuuuge help for me/community i would think :/

I tried googling around to make sure I didn't miss anything stupid obvious, but dang is it annoying when you have all the code logic in place and you can't run it because you don't know a stinkin aura name :/

Overall I'm having a great time messing with the bot though!

Thanks!

-supercode
 
This info is currently linked in the Exilebuddy (SotV) Release/Beta Revision Guide. BuffDefinitions is what you are after.

If you have code that you think should be working, but is not, please post an example. The API for working with that stuff has not changed between Release/Beta.
 
I figured I was being stupid. Thanks! But unfortunately I have tried that and it still didn't quite seem to work. Is it that only the rare monster has that and not the mobs it gives the aura to? Here's the code I'm using atm:


Code:
if(spellName == "Discharge"  && !target.HasAura("monster_aura_elemental_thorns"))
{
    //do stuff
}


If only the rare mob has the aura, how can I tell if a mob it is giving the relfect to has reflect?

Thanks again :)

-supercode
 
Actually, I suppose what I'm really trying to ask is how to know if there is a mob with reflect within a certain radius of the player. I realize that my current code won't work 100% of the time because while the bot's current BestTarget might not have relfect, there could be a mob nearby that does.

I'm going to cannibalize the code from the release's "NumberOfMobsNear" and check everything within a radius of the player. I'll post if that ends up solving my problem. Only reason why it wouldn't is if only the rare mob had that aura right? :P
 
Ugggh, i'm so dumb again. Right in that BuffDefinitions, right under the "monster_aura_elemental_thorns" is "monster_elemental_thorns"......

EDIT: I actually haven't seen mobs with the "monster_elemental_thorns" aura, but better safe than sorry :P

I ended up using this for those who run into similar problems:

Code:
private bool NumberOfMobsNearWithAura(NetworkObject monster, float distance, int count, string aura, bool dead = false)
{
	if (monster == null)
	{
		return false;
	}

	Vector2i mpos = monster.Position;

	int curCount = 0;
	//foreach (Monster mob in Targeting.Combat.Targets.OfType<Monster>())
	foreach (Monster mob in LokiPoe.ObjectManager.Objects.OfType<Monster>())
	{
		if (mob.Id == monster.Id)
		{
			continue;
		}

		// If we're only checking for dead mobs... then... yeah...
		if (dead)
		{
			if (!mob.IsDead)
				continue;
		}
		else if (!mob.IsActive)
		{
			continue;
		}

		if (mob.Position.Distance(mpos) < distance && mob.HasAura(aura))
		{
			//Log.DebugFormat("Found one! {0}", aura);
			curCount++;
		}

		if (curCount >= count)
		{
			return true;
		}
	}

	return false;
}

Code:
if(spellName == "Discharge" )
{
	//fail fast if we find a mob with elemental reflect nearby
	//radius set to 40 because I don't know how to get the
	//radius of a skill
	if((NumberOfMobsNearWithAura(LokiPoe.ObjectManager.Me, 40, 1, "monster_aura_elemental_thorns") 
		|| NumberOfMobsNearWithAura(LokiPoe.ObjectManager.Me, 40, 1, "monster_elemental_thorns")))
	{
		continue;
	}
	var auras = LokiPoe.ObjectManager.Me.Auras;
	bool useDischarge = false;
	foreach(var aura in auras)
	{
		/*if(aura.Name == "Endurance Charges" && aura.Charges == MaxEnduranceCharges)
		{
			useDischarge = true;
			break;
		}*/
		if(aura.Name == "Power Charges" && aura.Charges == MaxPowerCharges)
		{
			useDischarge = true;
			break;
		} else if(aura.Name == "Frenzy Charges" && aura.Charges == MaxFrenzyCharges)
		{
			useDischarge = true;
			break;
		}
	}
	if(!useDischarge)
	{
		//Log.DebugFormat("Don't use discharge");
		continue;
	}
}

Thanks for pointing me in the right direction pushedx! And sorry for the noobish questions, it's just a bit difficult jumping into a new API :/
 
Last edited:
Back
Top