• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->

Question - XTarget Aggro data. (1 Viewer)

Joined
Sep 9, 2014
RedCents
1,015¢
Hi guys. Sorry for all the questions lately, but I'm trying to access the hate/aggro data for the xtarget npc's. MQ2 is accessing it somehow, as it shows up via Freqs UI on the xtarget window.

I can't seem to find the correct syntax to find the information though. Me.Xtarget[#].SecondaryPctAggro doesn't work, as it says no such member. AggroHolder does not work either. I can access distance, secondary/primary, and some other data, but can't seem to access the aggro data. Anyone have an idea as to which direction to head?

I already have some conditional shits that maintain pretty ridiculous single target aggro for my warrior. If I can get this data for xtargets, I'm going to be putting together some shits for controlling aggro on multiple mobs in camp (no CC, bard/chanter died, whatever). I plan to post them once I get this figured out and get it tweaked a bit more.

- - - Updated - - -

Did some better searching here and found Maskoi's post here. I'll be writing up my shits over the next couple of days, and likely posting them on Wednesday/Thursday if they're working properly.
 
Keep in mind when it comes to the targets/mobs aggroholder does not mean it is the targets/mobs target. The game mechanics will make a mob target a character player over a NON Character player even if the NON Player character has more agro. Think about Pets in your group, If a mage Uses an Air Pet and has taunt turned on the pet will keep grabbing agro and if he lands multiple stuns the same thing can happen. But even though the pet is the mobs primary agro holder the mob will target any character player that is in melee range.
 
Yeah, I know about the prox hate override when it comes to pets/npc's. My shits for single and xtarget hate generation -may- not be optimal for people running mages in their groups with pet taunt on, due to how I'm looking at aggro percents and such, but I've tried to make it so it should still function properly in those cases. I also have my shits configured so they'll work regardless of which rank of your discs you have, so they should just be a simple cut and paste for a 105 war.


I just reread and think I realize what you were pointing out. AggroHolder vs. TargetofTarget data, pretty much? AggroHolder will give the spawn with the highest aggro, even if they're not currently targetted by mob due to proximity?
 
I'm not planning on relying on only the aggroholder or targetoftarget data. I'm pretty much planning to have some shits that are like this:

/if (${me.xtarget[x].pctaggro}<100 && ${Me.Xtarget[2].distance}<=50 && ${Me.combatabilityready[blah]} && (if data is available from xtarget) !${xtarget[2].status.mezzed}) /multiline ; /xtarget 2 ; /disc blah


I'm fairly sure the multiline will process quickly enough to cast a hate disc on the add before KA hijacks the target onto the normal target again. I realize I'll need multiple checks for xtarget slots and for each disc/aa I'm planning to use, but I'm planning to be pretty thorough on this. And again, I realize that I may not be helping out the tanks that run with mages and have pets running around everywhere in camp. The only pets I ever have in my group are the warrior aggro pets, and I won't be using them on any of the xtarget shits, due to them not being able to actually tank or generate enough instant hate to get the mob to actually move to me. At work here as well, so I know I'm not 100% accurate in my coding, but I'm sure you're getting the jist.

I have roughly 10-12ish shits that control single target aggro. As they go down the list, they make sure the previous abilities have already been used, my secondaryaggropct is over 70% or whatever I set it to AND not a pet OR the mob's target isn't me. This prevents multiple abilities burning off at the same time, and also has the bonus of not waiting for aggro to be stripped (and a possible one-rounded wizzy), but actually controls and maintains aggro.

I'm planning to have maybe 2-3 shits for the first 4-5 xtargets, using the bottom 5-6ish abilities from my single target shits (rarely touched). Wade into battle has really helped with multiple mob hate control, but the reuse on it really limits its reliability, so I'm looking into the shits to lock down aggro on multiple mobs.
 
Aggroholder actually returns the secondary aggro, not the highest aggro.

So the second highest aggro holder, regardless if they're at 99% or 1%, will show up as Aggroholder. I, as a tank, have never shown up as Aggroholder.
 
Aggroholder actually returns the secondary aggro, not the highest aggro.

So the second highest aggro holder, regardless if they're at 99% or 1%, will show up as Aggroholder. I, as a tank, have never shown up as Aggroholder.

Yep. it won't return yourself. EQMule still has that on his list I guess.

Rich (BB code):
16 Nov 2013 by EqMule
-Fix for ${Target.AggroHolder} it now properly return Pets and Mercenary SpawnTypes as well as Players.
 There is still some work to do on this TLO, for example it wont return
 yourself, this is not intentional, its on my todo list.
 
Not that I'm planning to use it, but I think it might be broken now. Target.AggroHolder wouldn't return anything other than NULL whenever I was trying it out last night.

Something I am running into though, is trying to check if a mob is mezzed without targeting it. Is this possible? I see the Mezzed option under Target, but I wasn't able to get anything to return on ${Spawn[${Me.XTarget[1].ID}].Mezzed.ID} or anything similar. I'm thinking I might just have to have it watch for combat animations instead, since that seems to be available without targetting.
 
There is a .PlayerState as well, you might want to look at.

Rich (BB code):
- Added .PlayerState to the SpawnType TLO, it returns a mask as an inttype which has the following meaning:
  0=Idle 1=Open 2=WeaponSheathed 4=Aggressive 8=ForcedAggressive 0x10=InstrumentEquipped 0x20=Stunned
  0x40=PrimaryWeaponEquipped 0x80=SecondaryWeaponEquipped
  This too needs more testing.
- Added .Stunned to the spawntype TLO it returns TRUE or FALSE if a mob is stunned or not
  NOTE: .Stunned DID exist in the spawntype TLO before, but it only returned your character's Stunstate
  THIS MEANS IF YOU RELY ON THIS IN YOUR MACROS, use ${Me.Stunned} in your macros from now on instead
  when you need YOUR stunstate and the below examples when you need a SPAWNS stunstate, you have been warned...
  Usage: /echo ${Target.Stunned} or ${Spawn[npc somespawnname].Stunned}
- Added .Aggressive to the spawntype TLO it returns TRUE or FALSE if a mob is aggressive or not
 
State is STAND
PlayerState is 4
Stunned is FALSE
Aggressive is TRUE

These are the results I'm getting from a mezzed mob on xtarget. I'm seeing decent results in checking animation for an attack animation with ${Select[${Me.XTarget[1].Animation},1,5,6,11,45,46,47,80,82,112]}

Will see how some of these shits play out over the next few hours. Thanks again for the help/ideas/suggestions.

- - - Updated - - -

Next up, working on formatting/order of my holy conditions. I read somewhere that the holy's only process data until it finds a false, so having the most rarely true statement first could reduce the amount of data processing and prevent sluggishness from having a larger amount of holyshits active.

Is this true? Was it true, but is not really a concern any longer? Do the holy's and down's process the full line(s) regardless of how many false statements are encountered? I'm up to 30 holies atm, with 9 being for single target hate and 15 for grabbing aggro on xtargets 1-5. Not sure if getting this many holies will cause underperformance due to too many holies being active/checked at once?
 
PlayerState has to do with the animation system. Sadly they don't have a PlayerState for mez :(

The most useful data you can grab from it is whether or not a mob is aggressive (4). This bit is set when a mob is attacking, it's also set when they're mezzed though, but it can at least filter out other NPCs that are close by but not doing anything to you. The bit 4 will be removed if the mob is memblurred though, although I haven't looked into it if its reset if the mob rehates you due to assist aggro or something while they're mezzed and memblured (I would suspect it does)

TL;DR you only have to worry about mobs that have their aggressive PlayerState bit set.
 
Question - XTarget Aggro data.

Users who are viewing this thread

Back
Top