Invisibility to Undead

Possum

Lifetimer
Joined
Jun 24, 2007
Messages
25
Reaction score
0
Points
0
I can find Me.Invis, but how do I find out whether I am invisible to undead?
 
It seems that Me.Invis is TRUE whether it is normal invis or IRY.

How can I tell the difference?
 
You could declare variables like the following...


Code:
/noparse /declare Invis string outer (${Me.Buff[Invisibility1].Duration} || ${Me.Buff[Invisibility2].Duration} || ${Me.Buff[Invisibility3].Duration})

/noparse /declare InvisTU string outer (${Me.Buff[InvisibilityTU1].Duration} || ${Me.Buff[InvisibilityTU2].Duration} || ${Me.Buff[InvisibilityTU3].Duration})

Replace Invisibility1/2/3/etc to the invis spells you want to check for (can add as many as you want in the same syntax. Same thing for InvisibilityTU1/2/3/etc.

Then, you can use that variable like the following...

Code:
/if (${Invis}) {
[INDENT]/echo I am Invisible![/INDENT]
} else /echo I am not invisible!
 
Correct @ Me.Invis works for IVU or reg invis. But it doest have to be that way. Me.Invis is a single status check. Doing it the other way would require checking for each type would require scanning buffs and wouldnt work for fade type skills.

Me.InvisUndead could be made, as could Me.RegularInvis or equivalent, it would just require scanning all your buffs for the various spell names or icon. So it would be ok to check now and then but you wouldnt want it to spam check over and over. aka dont use it as a holyshit or hud element, but it would be fine for macro use. If I ever get around to doing stuff I can see about adding it. It's on my list with Me.MercName.
 
Guess I cannot do what I was trying - I wanted indicators on my UI as to the status of my invis (and Le, which was easy). This would be a generic UI piece for all of my toons, so looking at buffs for specific spells would not work, nor would doing it in script, as each toon has its own scripts running at any given time.

Well, if anybody has a chance to look into it as a plugin, go for it, please.

Thanks for the suggestions.
 
Aren't there fewer IVU's by far than IV? Couldn't you just make your HUD do something like:

IAmInvis=3,2,320,124,255,0,8,${If[${Me.Invis},${If[!${Me.Buff[Invisibility to Undead].ID} && !${Me.Buff[Improved Invisibility to Undead].ID} && !${Me.Buff[Invisibility versus Undead].ID} && !${Me.Buff[Perfected Invisibility to Undead].ID},INVISIBLE,VISIBLE]},VISIBLE]}

And any other IVU's along with those && checks.

Another option could be to add a couple of both DownShit & HolyShit entries, 1st of which checks if a global bool var (say, MyIVU or whatever) is defined, and if not, define it globally. The 2nd of each set would then check for any IVU type effect/spell and set the var to true or false, then you can just have the hud check that one condition, i.e.: ${MyIVU}

Lastly, adding those 2 items to something like MQ2Krust, so you can have like: ${Krust.Invis} and ${Krust.IVU} would be easy, I would just need a list of all the buff effect names that would correspond to each. I don't really have time to research to that level. :)

htw
 
Last edited:
there are 6 with "invisibility to undead" in name that could do a catchall.

http://lucy.allakhazam.com/spelllist.html?searchtext=to+undead

but then there is cleric's "sunskin". not sure if there is another version or not because lucy's stacking doesnt show them correctly. you could likely just use the icon as well.

but maybe you could just use the "invisibility to undead","invisibility versus undead","sunskin" .. or maybe just "undead" and "sunskin" might still work. I think partial matches work correctly.
 
would only have to do checks for ivus that have a random chance to drop?

there are perfected ones and timed ones

if you are not a class that can ivu self im guessing youll rely on potions

if !ivubuff and ivubuffstacks /casting (invis potion)

if you are set to not cast while invis and you still have reg invis on youll be sol

w hof there is more of a need to dble invis , if u cant get em both perfected you arent gonna automate potions to keep u dble invis

anyways my 2cp, if youre trying to automate ivu it will only be helpful in an only undead enviroment and the solution for that is a simple downflag i would think
 
You can't do a direct substring search/match like target name(s), finditem, etc. However, you could use the .Find member for the buff string itself to look for a substring, to just find the first one (if any) that includes it. Since Find returns the position of the substring (or NULL), then the same boolean logic should work for you.

htw
 
Would *always* have to check for both Invis and IVU, since you can have both at the same time (plus SoS for rogues).

Cannot just check your own spells, since they might have been cast by somebody else.

I still think this would be best done as a plugin.

I was looking for the source to MQ2Labels to figure out how to add EQTypes. I was also looking to see how Me.Invis gets detected.

Going to keep looking, but if somebody gets into the code and could save me the headache :)
 
This is how it is currently detected under Spawn TLO:

Code:
    case Invis:
        Dest.DWord=pSpawn->HideMode;
        Dest.Type=pBoolType;
        return true;

So HideMode is returning true or false

To access if something is invisible:
Code:
BOOL IsInvisible(PSPAWNINFO x) 
{
  return (x && x->HideMode);
}
if i am invisible for mq2melee:
Code:
static inline BOOL IsInvisible()
{
    return (SpawnMe() && SpawnMe()->HideMode);
}

How it is defined in eqdata.h:
Code:
/*0x0190*/ BYTE         HideMode;

So either there is another setting in eqdata.h that specifically works for undead (likely but you have to test each one manually and im lazy), or youd have to just add the TLO by doing a search.

You can search by name of buff or spell slot info.