• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Problem - A tale of two enchanters

Joined
Feb 11, 2016
RedCents
1,062¢
Salutations friends,

I'm running two modbot enchanters and am running into issues with them overwriting one another's mez spells. I made a solid attempt to nip this in the bud using preconditions, however they're still doing it.

Group of level 50-55 monsters approach.
Enchanters start going crazy mezzing mobs.
Enchanter A mezzes Mob 1 at 0 seconds with a 48 second mez spell
Enchanter B then mezzes mob 1 at 12 seconds with a 48 second mez spell (overwrite!)

Here's the logic breakdown of what I wrote as a precondition:

For Enthrall (Mob Level <=55), I only want to mez the mob if it is under level 55, and either (target is mezzed + target's mez duration <= 6 seconds) or (target is not mezzed)

INI:
/if ({Target.Level} <= 55 &&
    (
        (
            {Target.Mezzed.ID} && {Target.Mezzed.Duration.TotalSeconds} <=6 ) ||
            !{Target.Mezzed.ID}
        )
    )
/return TRUE

Here's my full Mez Debuff config that does not work properly:

INI:
[AdvDebuff]
ADCount=8
ADNewFormat=1
ADMobMax=80
ADCheckTime=0
ADAggroOnly=1
ADHold=1|1|12|   1=on 0=off|Debuff spell #|Time to wait for debuff|
ADCoolDown1=
ADCoolDown2=
ADCoolDown3=
ADCoolDown4=
ADCoolDown5=

    [AD1]
    Gem=5
    Spell=Mesmerization
    SpellFoci=
    DurMod=0
    SpellAlias=aemez
    Announce=[+r+]AE Mez[+x+] <<[+y+] %t [+x+]>>  with[+g+] %s [+x+]
    SpellMinMana=1
    SpellRecast=3
    SpellCastonResist=tash
    SpellDelay=0
    TarCnt=1
    TarType=12
    TarBegHP=100
    TarEndHP=5
    IfSpellImmune=
    UseHoTT=0
    PreCondition=/if ({Target.Level}<=55&&{SpawnCount[range 1 55 npc radius 30 loc {Target.X} {Target.Y} {Target.Z}]}>=3&&(({Target.Mezzed.ID}&&{Target.Mezzed.Duration.TotalSeconds}<=6)||!{Target.Mezzed.ID})) /return TRUE
    
    [AD2]
    Gem=4
    Spell=Rapture
    SpellFoci=
    DurMod=0
    SpellAlias=mez
    Announce=/bc [+r+]Mezzed[+x+] <<[+y+] %t [+x+]>>  with[+g+] %s [+x+]
    SpellMinMana=0
    SpellRecast=0|0
    SpellCastonResist=tash
    SpellDelay=0
    TarCnt=1
    TarType=12
    TarBegHP=100
    TarEndHP=5
    IfSpellImmune=
    UseHoTT=0
    PreCondition=/if ({Target.Level}>=58&&{Target.Level}<=61&&(({Target.Mezzed.ID}&&{Target.Mezzed.Duration.TotalSeconds}<=6)||!{Target.Mezzed.ID})) /return TRUE
    
    [AD3]
    Gem=3
    Spell=Glamour of Kintaz
    SpellFoci=
    DurMod=0
    SpellAlias=mez
    Announce=/bc [+r+]Mezzed[+x+] <<[+y+] %t [+x+]>>  with[+g+] %s [+x+]
    SpellMinMana=0
    SpellRecast=0|0
    SpellCastonResist=tash
    SpellDelay=0
    TarCnt=1
    TarType=12
    TarBegHP=100
    TarEndHP=5
    IfSpellImmune=
    UseHoTT=0
    PreCondition=/if ({Target.Level}>=56&&{Target.Level}<=57&&(({Target.Mezzed.ID}&&{Target.Mezzed.Duration.TotalSeconds}<=6)||!{Target.Mezzed.ID})) /return TRUE
    
    [AD4]
    Gem=2
    Spell=Enthrall
    SpellFoci=
    DurMod=0
    SpellAlias=mez
    Announce=/bc [+r+]Mezzed[+x+] <<[+y+] %t [+x+]>>  with[+g+] %s [+x+]
    SpellMinMana=0
    SpellRecast=0|0
    SpellCastonResist=tash
    SpellDelay=0
    TarCnt=1
    TarType=12
    TarBegHP=100
    TarEndHP=5
    IfSpellImmune=
    UseHoTT=0
    PreCondition=/if ({Target.Level}<=55&&(({Target.Mezzed.ID}&&{Target.Mezzed.Duration.TotalSeconds}<=6)||!{Target.Mezzed.ID})) /return TRUE

Does anyone have any idea how to prevent this if the preconditions are failboating?

Many thanks!
 
Also of note, I am assuming this is because ModBot is doing some sort of custom mez handling inside the macro that's overwriting what I want it to do.
 
when the chanters are solo, are these conditions firing good?

They've given me some ideas, but I have also run into the same problems with my bard mezzing mobs my chanter already locked down despite the conditions
 
I think I remember reading that spawn.animation which returns an animation ID can be used as a reasonably reliable way of determining whether a mob is mezzed, there are two animation ID's that are usually used on mezzed mobs if I recall correctly, maybe adding that to your conditional would prevent this overwriting problem? You will need to do a search for which ID's are the right ones or a bit of testing ingame to find them using target.animation perhaps
 
when the chanters are solo, are these conditions firing good?

They've given me some ideas, but I have also run into the same problems with my bard mezzing mobs my chanter already locked down despite the conditions
^Yes

I think I remember reading that spawn.animation which returns an animation ID can be used as a reasonably reliable way of determining whether a mob is mezzed, there are two animation ID's that are usually used on mezzed mobs if I recall correctly, maybe adding that to your conditional would prevent this overwriting problem? You will need to do a search for which ID's are the right ones or a bit of testing ingame to find them using target.animation perhaps

^Interesting! I will definitely check this out. I just wonder if the mob is stationary/standing still/being tanked, if this can ever trigger. Seems like it does not from my limited testing :-)
 
Interesting concepts. I don't usually have more than one CC'er running, so I haven't had this scenario to deal with. MB doesn't do mez-specific code, but there is definitely code associated with TarType=12 that forces it to make sure those debuffs are cast first on all the adds. And there is really no cross-checking for the fact that the same debuff was cast by a different toon.
 
Interesting concepts. I don't usually have more than one CC'er running, so I haven't had this scenario to deal with. MB doesn't do mez-specific code, but there is definitely code associated with TarType=12 that forces it to make sure those debuffs are cast first on all the adds. And there is really no cross-checking for the fact that the same debuff was cast by a different toon.

Thank you for the update Master Woobs! I did poke around for any instances of mez/mesmerization/enthrall/etc in the code base and saw none, so figured either it wasn't hardcoded or that it was another advanced form of wizardry I'm not yet familiar with.
Why, out of curiosity, would it still fail with the above preconditions? I am interpreting what you're saying as TarType=12 overrides PreConditions, which is confusing to say the least. I've made hotkeys in-game to debug and all the logic referenced within the PreCondition evaluates to exactly what I thought it would, so I don't think it's a logic error.

Anyway, thanks again for the input! Nice to meet you also, thanks again for doing great work with ModBot! :-)
 
I might just be having some luck with this :-)

INI:
    PreCondition=/if ({Target.Level} <= 55 && !{Target.Mezzed.ID} && !(${Select[${NamingSpawn.Animation},110,26,32,71,72,111]}) && {Target.Mezzed.Duration.TotalSeconds} <= 6) /return TRUE
 
Problem - A tale of two enchanters

Users who are viewing this thread

Back
Top
Cart