Necro mac

Ok, I have good news and bad news. The updated Dot routine i made is pretty nice and works with everything in my other macros.

good news: it works well for me in other macros.

bad news: this hackjob should work for you.. but it might need a couple more tweaks.. this is entirely untested within this necro macro:

you should only need to
1. backup your current macro.
2. Copy and paste this overtop the current Sub Dot

Code:
Sub Dot
  /if (${Me.Casting.ID} || ${Me.Moving} || ${Me.Invis} || ${Me.Feigning}||${IgnoreList.Find[${Spawn[${Target.CleanName}]}]}) /return
  /if (!${Defined[DotAmt]}) /declare DotAmt int outer
  /if (!${Defined[EchoAnnounce]}) /declare EchoAnnounce bool outer TRUE
  /varset DotAmt ${DotTotal}
  /if ((${Target.Named}||${Target.Name.Find[#]}) && ${TarID}==${Target.ID}) /varset DotAmt ${DotTotalIfNamed}


  /if (${Target.ID} && ${Target.Type.Equal[NPC]}) {
        /if (${Me.Song[${GoM}].ID} && ${Me.CurrentMana}>=${Spell[${GoMSpell}].Mana} && ${Me.SpellReady[${GoMSpell}]} && ${Target.Distance}<=${Spell[${GoMSpell}].Range} && ${Target.LineOfSight}) {
          /call Cast "${GoMSpell}" ${GoMSpellGem}
          /varcalc FDC ${FDC}+1
        }
    
    /declare i int local
    /for i 1 to ${DotAmt}  {  
     /if (${Spell[${Dot{i}].ResistType}ImmuneList.Find[${Spawn[${Target.CleanName}]}]}) /return
        /if (!${DotOn${i}} && ${Target.PctHPs}<=${DotStartAt} && ${Target.PctHPs}>=${DotStopAt}) {
         /if (${DotMaxTries${i}}>${DotResisted${i}} && ${Me.CurrentMana}>=${Spell[${Dot${i}}].Mana} && (${Me.SpellReady[${Dot${i}}]}||${Me.AltAbilityReady[${Dot${i}}]}||!${FindItem[${Dot${i}}].Timer} && ${FindItem[${Dot${i}}].InvSlot}) && ${Target.Distance}<=${Spell[${Dot${i}}].Range} && ${Target.LineOfSight}) {
              /call Cast "${Dot${i}}" ${DotGem${i}}
        /if (${Plugin[MQ2CEcho].Name.Equal[MQ2CEcho]} && ${EchoAnnounce} && ${Spell[${Dot${i}}].ResistType.Equal[Fire]}) /cechob \arDot${i}: ${Dot${i}}
        /if (${Plugin[MQ2CEcho].Name.Equal[MQ2CEcho]} && ${EchoAnnounce} && ${Spell[${Dot${i}}].ResistType.Equal[Poison]}) /cechob \agDot${i}: ${Dot${i}}
        /if (${Plugin[MQ2CEcho].Name.Equal[MQ2CEcho]} && ${EchoAnnounce} && ${Spell[${Dot${i}}].ResistType.Equal[Magic]}) /cechob \awDot${i}: ${Dot${i}}
        /if (${Plugin[MQ2CEcho].Name.Equal[MQ2CEcho]} && ${EchoAnnounce} && ${Spell[${Dot${i}}].ResistType.Equal[Disease]}) /cechob \ayDot${i}: ${Dot${i}}        
        /if (${Plugin[MQ2CEcho].Name.Equal[MQ2CEcho]} && ${EchoAnnounce} && ${Spell[${Dot${i}}].ResistType.NotEqual[Magic]} && ${Spell[${Dot${i}}].ResistType.NotEqual[Fire]} && ${Spell[${Dot${i}}].ResistType.NotEqual[Poison]} && ${Spell[${Dot${i}}].ResistType.NotEqual[Disease]}) /cechob \a-wDot${i}: ${Dot${i}}                
        /if (!${Plugin[MQ2CEcho].Name.Equal[MQ2CEcho]} && ${EchoAnnounce}) /echo Dot${i}: ${Dot${i}}
              /if (${Macro.Return.Equal[CAST_SUCCESS]} || ${Macro.Return.Equal[CAST_IMMUNE]}) {
                  /varcalc FDC ${FDC}+1
            /varset DotOn${i} TRUE
            }
             }
              }
    }
    /next i

}     
/return
 
Last edited:
a tweak i did awhile ago was to add 2 mana checks to the aa section to check is mana is above x and below x, that allowed me to get db to fire when i wanted it to in combat. im sure db works elsewhere in the mac but it works well for me.
under sub aa
Code:
/if ((${Me.AltAbility[${AA${a}}].ID} && ${Me.AltAbilityReady[${AA${a}}]}||${Me.SpellReady[${AA${a}}]}) && ${UseAA${a}} && ${Target.ID}==${TarID} && ${Target.PctHPs}<${UseAA${a}At} && (${Target.ID}==${NearestSpawn[npc named].ID}||!${NamedOnlyUseAA${a}}) && ${SpawnCount[${UseAA${a}IfNearby} radius 70 zradius 15]}>=${UseAA${a}IfNearbyAmt} && ${Me.PctHPs}<=${UseAA${a}AtMyHPs}[COLOR="Red"] && ${Me.PctMana}>${UseAA${a}AtMyMana} && ${Me.PctMana}<${UseAA${a}BelowMana}[/COLOR]) {
and add under spell info aa
Code:
[COLOR="Red"]/declare UseAA${aa}AtMyMana int outer ${Ini[MyIni,AA,UseAA${aa}AtMyMana,1]}
/declare UseAA${aa}BelowMana int outer ${Ini[MyIni,AA,UseAA${aa}BelowMana,101]}[/COLOR]
once you have added these just add these to youe ini to specify when a aa will work when below x amount of mana or above x amount
Code:
[COLOR="Red"]UseAA1BelowMana=[/COLOR]
and [COLOR="Red"]UseAA1AtMyMana=[/COLOR]
i had to change the pet height when shrinking pet because it would just keep recasting pet shrink
Code:
  /if (${ShrinkPet} && ${Me.Pet.ID} && (${Me.Pet.Height}-.[COLOR="Red"]50[/COLOR]>1)) {
 
I can actually make a necro version out of my modules on the macro builder thread if someone wants to try it. Feel free to PM me if you want to guinea pig. I have a mostly working SK version and honestly there isnt much difference other than melee vs caster and thats no biggie. Would probably need to create a special lifetap routine is all.

Ultimately, I will replace all my macro threads with the modular ones since those are so much easier to update and maintain.

It does things mostly like this, but dots are handled at individual percentages, medding works a lot better, you would be able to set up a campspot, manage mercs, a few other things and some other things are done slightly differently like nukes that mostly go unseen.
 
Hey Pete,

Just wondering whats happening its been the 2nd time it does that to me today to both Necro & Wiz.

The macro just goes on a loop and spams the following message:

No such "string" member 'ID'
necro.mac@222 (Aura): /if (!$(Me.Aura[$(Aura2)].ID) &&!$(Me.Song[$(Aura2).ID) && $(UseAura2) (necro.mac@154 (Main): /call Aura

and it spams it nonstop basically goes in panic. I had to close the game entirely and restart it W/MQ2

Edit/P.S: Literally didnt work even after closing EQ & MQ2 & reloading this time, I edited both macro & deleted the entire /call Aura & Sub Aura routine (neither use Aura anyways)
 
Last edited:
htw changed how auras work that is a string instead of being able to use a .ID, so yes, just remove those since they never ended up giving necros or wizards auras. if you want an aura for some reason, you can download the Aura.inc on macro builder thread and just #include it, and it will work again once you add a couple lines back in that are explained in the file.
 
Last edited:
I noticed that if the MA zone/dies or the necro dies and gets rezzed he wont resume assist as usual and will need restart of the macro, your wizard mac on the other hand is bulletproof and will always do. Any way to fix this?

Also noticed wizzy automatically bags mod rod and necro doesnt, sticks on cursor anyway to make him bag it too like wizzy?

I also tried Aegis of Kildrukaun AA in PetBuff and it doesnt use it =/
 
Last edited:
Crashes

This works great for me except it crashes a second or two after a named gets to camp. The only modification I made was to delete the aura part.


htw changed how auras work that is a string instead of being able to use a .ID, so yes, just remove those since they never ended up giving necros or wizards auras.
 
I posted an example necro macro on the macro builder thread inside the zips with an example ini. it was tested on TLP and functions as intended, i am still awaiting testing on live server at level 90 to make sure the full throttle version works. The ini is probably not ideal spell set up for dots (only has 5 in example, and not even the best 5), but it shows you examples. it should be more efficient than this macro and i will update all my macs except maybe bard at that one central location.

All the functionality of the includes are described on the thread. and future includes will be added as people come up with ideas.

that post is located at:
http://www.mmobugs.com/forums/everq...ilder-build-or-modify-any-macro-new-post.html

Additionally, the way that macro builder thread is designed is to let you create your own macro if the example doesnt quite work how you want it to. it is very easy to add/change routines or just customize already existing macros.
 
=(

I tired both, the one this one, and the other one. I used the example necromancer in the examples zip.

both will work kind of fine, but when i pull, it will assist vecci my tank, but never do anything. if i forced it to cast a spell, some times it will jump start it, but sometimes it just stands there.

will not assist, and start dotting. neither will.
 
I think i know why the other one doesnt work. it only jumpstarts if you get aggro.

The bypass for that is to check for adds, and if there is an add, to go ahead and kick into combat. i totally forgot about that on the example macro.

it needs to be coded like the wizard macro on the main loop and have AddHandler.inc included:

:mainloop data
Code:
:mainloop
/call Always
[COLOR=Yellow]/if (${AddCount}) /call Combat[/COLOR]
/if (${Me.CombatState.Equal[Combat]}||${Me.Combat}) /call Combat
/if (${Me.CombatState.NotEqual[Combat]} && !${TarID}) /call Rest
/doevents
/if (!${NeedLoad}) /goto :mainloop

:onExit
/echo Ending ${Macro.Name}
/return
Adding that line of code will make it work i think. i will add it in and hope someone can test it for me, as i do not actually have a necro to test.


EDIT: I made those changes and am uploading it to macro builder thread.
 
Last edited:
recourse.

i'm using this version, not the new one you have on the other forums. I was wondering if you could look at the recourse section? I cannot get it to cast recouse line, which is mind decomposition rk. II.

Just flat ass wont cast it.
 
Well of course recourse isnt working here, it looks like someone that has no idea wtf they are doing coded it (me)! needless to say, i have improved since then, but i havent had a necro in like 2 years now and even then it was only ever a box. so i havent maintained this.

Code:
Sub Recourse
 /if (!${RecourseTotal} ||${Me.Invis}||${IgnoreList.Find[${Spawn[${Target.CleanName}]}]}) /return
 /declare x int local
/for x 1 to ${RecourseTotal} {
 /declare i int local
    /for i 0 to ${Group} {
        /if (${UseRecourse${x}} && ${Group.Member[${i}].PctHPs}<${Recourse${x}HPAt} && ${Group.Member[${i}].ID}||${Group.Member[${i}].PctMana}<${Recourse${x}ManaAt} && ${Group.Member[${i}].Class.ShortName.NotEqual[MNK||ROG||WAR||BER||BRD]} && ${Group.Member[${i}].Type.Equal[PC]} && ${Group.Member[${i}].ID}) {
            /if (!${Me.Buff[${RecourseName[COLOR=Yellow]${x}[/COLOR]}].ID} && ${Me.SpellReady[${Recourse${x}Name}]}) {
                    /call Cast "${Recourse${x}SpellName}" ${Recourse${x}Gem}
                    }
                }
            
        }
     /next i
}
/next x
/return

Should be:
Code:
Sub Recourse
 /if (!${RecourseTotal} ||${Me.Invis}||${IgnoreList.Find[${Spawn[${Target.CleanName}]}]}) /return
 /declare x int local
/for x 1 to ${RecourseTotal} {
 /declare i int local
    /for i 0 to ${Group} {
        /if (${UseRecourse${x}} && ${Group.Member[${i}].PctHPs}<${Recourse${x}HPAt} && ${Group.Member[${i}].ID}||${Group.Member[${i}].PctMana}<${Recourse${x}ManaAt} && ${Group.Member[${i}].Class.ShortName.NotEqual[MNK||ROG||WAR||BER||BRD]} && ${Group.Member[${i}].Type.Equal[PC]} && ${Group.Member[${i}].ID}) {
            /if (!${Me.Buff[${Recourse[COLOR=Red]${x}[/COLOR]Name}].ID} && ${Me.SpellReady[${Recourse${x}[COLOR=Red]Spell[/COLOR]Name}]}) {
                    /call Cast "${Recourse${x}SpellName}" ${Recourse${x}Gem}
                    }
                }
            
        }
     /next i
}
/next x
/return

it would never parse correctly as is. sometimes all it takes is fresh eyes and literally 10 seconds to spot the errors.

I know i have fixed this error before in a version, and its fixed in the macro builder stuff. this is precisely why i dont want to maintain macros in 8 different spots. it is a lot easier just to maintain them all in a central location.
 
recourse

yay its working but it does have a bug i guess? whenever its UP and ready to use. it spams it no matter if it has a target or not. It it using it though, just hit it no matter if it has a target or not.

but thanks for working on it for me. so far it works great. i couldnt' get the other one to work. but this is doing the job. how ever i can't get it to use the nuke that make dots hit hard. after it does, it could use the nuke, then the dots would do more damage. but haven't figured that one out. np still dots the shit outta stuff!
 
recourse!

yay its working but it does have a bug i guess? whenever its UP and ready to use. it spams it no matter if it has a target or not. It it using it though, just hit it no matter if it has a target or not.

but thanks for working on it for me. so far it works great. i couldnt' get the other one to work. but this is doing the job. how ever i can't get it to use the nuke that make dots hit hard. after it does, it could use the nuke, then the dots would do more damage. but haven't figured that one out. np still dots the shit outta stuff!

I got the nukeing part done just changing some shit up in the ini. timing is everything! but the recoursing thing is a bigger issue than i though. since its spamming it. it wont med. i have to turn the macro off for her to med.
 
To solve the issue you are talking about just put this as your first line to stop all that:

Sub Recourse
/if (!${Target.ID}||${Target.Type.NotEqual[npc]}) /return
blahblahblah
blah
stuff
/return


if you could help me troubleshoot the new one, it would be worth your time, new one will do a lot more than this one and the only thing that should be messed up with it is the wrong /assist call.
 
alright

i'll have time to play again in a few days, i'll download the other one and give it another try. and let you know what i come across, keep in mind, i'll just be using the example necromancer ini/macro. i use to write coding for GK long ago before Jj shut it down.

But I'll test it for yaaaaas