• 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

Macros and MQ2

Easy_Moder

New member
Joined
Jan 26, 2005
RedCents
Ok with ideas from Siddin I finally got a version I'm happy with. This will make your mage send in pet to attack, cast a spell(malo for me), cast another spell(mage dot), wait until mob is at 38% and will nuke it until its below 20%. Once below 20% it won't nuke anymore. This macro will not initiate combat until mob is below 100%, and will stop once mob is less than 20%. There is no PC protection as of yet, though I hope to get some.
Rich (BB code):
Code:

#turbo 

Sub Main 

:loop 
/if (${Me.Casting.ID}) /goto :loop
/assist Bibble 
/if (!${Target.ID}) {
/delay 1s
/goto :loop
}
/if (${Target.PctHPs}==100) /goto :loop
/if (${Target.PctHPs}<20) /goto :loop
/if (${Target.PctHPs}>94) /goto :first_action 
/if (${Target.PctHPs}<38) { 
/goto :nuke 
} else { 
/goto :loop
}



:first_action
/pet attack
/delay 10
/cast 1
/delay 65
/cast 2
/delay 75 
/sit
/goto :loop

:nuke
/cast 4
/delay 55
/sit
/goto :loop
 
Last edited:
Re: Macroes and MQ2

no, you don't need to recompile to work with macros, you just need to reload the macro in mq by using the /mac command
 
Re: Macroes and MQ2

Excellent thanks. Siddin do you mind looking at my code to see if this is correct?
 
Re: Macroes and MQ2

sure, wouldn't have a problem doing so
 
Re: Macroes and MQ2

Thanks, siddin. Apperciate it.

Rich (BB code):
#turbo 

Sub Main 

:loop 

/if (${Me.Casting.ID}) /goto :loop 
/assist Bibble
/if (${Target.PctHPs}>94) { 
/goto :first_action 
} else {
/goto :loop 
}


:first_action
/delay 120
/pet attack
/delay 10
/cast 1
/delay 55
/cast 2
/delay 75
/sit
/goto :loop
 
Last edited:
Re: Macroes and MQ2

Did some testing, and it works!! Took me about an hour. My next thing I want to add in there is to make him nuke when the mob is lower than 35% health. This has proved quite tricky as I can't get him to stop even when there is no target. However, I would love to know how to wait for the mob to be in range before the mage initiates combat.
 
Last edited:
Re: Macroes and MQ2

I haven't tested this. Obviously, what I want to do is have pet attack - cast maloise - cast DoT. Then when mob is low on health cast my nuke. 2 casts to cover fizzle. The best case scenario would be for me to initiate /pet attack and cast when mob is in range. Not sure how do code that, though, if I looked long enough on MQ2 forums I could probably find it.
edit: can't assist bst pets.

Rich (BB code):
#event Fizzle "#*#fizzle#*#"
#event EXP "You have gained experience!!"
#event EXP "You have gained party experience!!"

Sub Main 
/declare maintank string outer ${Target.CleanName}
/declare nukepct int outer  (% to nuke mob)
/declare castingnuke int outer 0
/declare nukespell int outer  (slot nuke is in here)
/declare fighting int outer 0
/declare CastingRange int outer (range of shortest nuke)
/declare xp int outer 0

:mainloop
/if (${Me.State.Equal[Stand]}) /sit
/doevents
/if (${xp}==1) {
/varset xp 0
/goto :mainloop
}
/assist ${maintank}
/if (${Target.Type.Equal[PC]}) {
/squelch target clear
/delay 1s
/goto :mainloop 
}
/if (!${Target.ID}) {
/delay 1s
/goto :mainloop
}
/if (${Me.Casting.ID}) {
/delay 1s
/goto :mainloop
}
/if (${Target.PctHPs}>94) /if (${fighting}==0) /call Battle
/if (${Target.PctHPs}<= ${nukepct}) /call nuke
/goto :mainloop
/return

Sub Battle
/varset fighting 1
/delay 120
/pet attack
/delay 1s
/cast 1
/delay 1s
:waiting1
/if (${Me.Casting.ID}) /goto :waiting1
/if (!${Target.ID}) {
/varset fighting 0
/return
}
/cast 2
/delay 1s
/if (!${Target.ID}) {
/varset fighting 0
/return
}
:waiting2
/if (${Me.Casting.ID}) /goto :waiting2
/return

Sub nuke
:NeedRange
/if (${Target.Distance}>=${CastingRange}) /goto :NeedRange
/doevents
/if (${xp}==1) {
/varset xp 0
/return
}
/varset castingnuke 1
/if (!${Target.ID}) {
/varset castingnuke 0
/varset fighting 0
/return
}
/cast ${nukespell}
/delay 1s
:waitnuke
/if (!${Target.ID}) {
/varset fighting 0
/varset castingnuke 0
/return
}
/if (${Me.Casting.ID}) /goto :waitnuke
/delay 1s
/doevents
/if (${xp}==1) {
/varset xp 0
/return
}
/varset castingnuke 0
/return

Sub Event_Fizzle
/if (${castingnuke}==1) /call nuke
/return

Sub Event_EXP
/varset fighting 0
/varset castingnuke 0
/varset xp 1
/return

here you go, before you start it just target the maintank, only problem is, if its a pet and it dies you'll need to restart the macro. if you want i'll add another event to just have the person send you a tell to restart and have the tank targeted so that the macro will automatically set up the tank again.
Haven't tested it, hope this is what you were looking for, if not tell me what you want changed and i'll be more than happy to change it for you.
 
Last edited:
Re: Macroes and MQ2

if it still nukes anything thats not an npc, tell me and i'll put a few more checks in before it actually starts casting anything on anybody
 
Re: Macroes and MQ2

Well, after I fixed the problems I sent you in PMs tons of others have crept up. A /stopspell error, he doesn't sit down. And a few others.
 
Re: Macroes and MQ2

ok, changed a few things, fixed the errors and removes #turbo, see if it works now.
Sorry about all the errors, i'm going on a little over 48 hours of no sleep right now lol
 
Last edited:
Re: Macroes and MQ2

Ok, after he cast the first spell he casts it again for some reason. Never gets to cast the 2nd spell nor does he sit. When mob gets low on health this error occurs.
line 43 (battle) /if (!${target.ID})
line 30 <text in line 30>
Usage: /if (<condition>) command
 
Re: Macroes and MQ2

Easy_Moder said:
Ok, after he cast the first spell he casts it again for some reason. Never gets to cast the 2nd spell nor does he sit. When mob gets low on health this error occurs.
line 43 (battle) /if (!${target.ID})
line 30 <text in line 30>
Usage: /if (<condition>) command
ok, changed it, stupid errors with me not getting any sleep lol

Do you have spellcast.inc or spell_routines.inc? if so it would make it a lot easier to do the casting part.
 
Last edited:
Re: Macroes and MQ2

So close to perfect! :D When he cast his first spell under /battle he immediately sits. He doesn't cast the 2nd spell(maybe due to repop on spells?). Everything else seems to be working fine. Nukes at specified amount and sits back down.
 
Re: Macroes and MQ2

ok, i updated it again, try it now, i just put in a few delays after each /cast
If i remember right its a 3s delay after casting spells, can't remember exactly what it is, feel free to yell at me if i got it wrong again :)
 
Re: Macroes and MQ2

Seems like I have to restart macro at every kill.
edit: Works perfect except for this. Thanks for that last update.
 
Re: Macroes and MQ2

Seems like I have to restart macro at every kill.
edit: Works perfect except for this. Thanks for that last update.
ok, added another if check, hopefully that will fix the problem of having to restart the macro, see if that works.

Finally got home, a lot more awake thanks to the freezing temp lol.
Changed a lot of the code, should be easier to read as well as working better.
Rich (BB code):
|If you are using ConstantNuke, comment out this line
#event Fizzle "#*#fizzle#*#"
|Experience events, used to stop casting spells
#event EXP "You have gained experience!!"
#event EXP "You have gained party experience!!"

Sub Main 
|change this to 0 if you don't want to constantly cast
|nukes once the mob has passed nukepct in hps.
/declare ConstantNuke int outer 1
|Makes your current target the main tank when you start
|the macro
/declare maintank string outer ${Target.CleanName}
/declair maintankid int outer ${Target.ID}
/declare nukepct int outer  (% to nuke mob)
/declare nukespell int outer  (slot nuke is in here)
/declare CastingRange int outer (range of shortest nuke)
|General crap thats needed for the macro to know what its doing.
/declare xp int outer 0
/declare castingnuke int outer 0
/declare fighting int outer 0

:mainloop
/if (${Me.State.Equal[Stand]}) /sit
/assist ${maintank}
/if (${Target.ID}==${maintankid}) /squelch /target clear
/if (${Target.Type.Equal[PC]}) /squelch target clear
/if (!${Target.ID}) {
/delay 1s
/goto :mainloop
}
/if (${Me.State.Equal[Sit]}) /stand
/if (${Target.PctHPs}>94) /if (${fighting}==0) /call Battle
/if (${Target.PctHPs}<= ${nukepct}) /call nuke
/goto :mainloop
/return

Sub Battle
/varset fighting 1
/pet attack
/delay 1s
/cast 1
/delay 1s
:waiting1
/if (${Me.Casting.ID}) /goto :waiting1
/if (!${Target.ID}) {
/varset fighting 0
/return
}
/delay 3s
/cast 2
/delay 1s
/if (!${Target.ID}) {
/varset fighting 0
/return
}
:waiting2
/if (${Me.Casting.ID}) /goto :waiting2
/delay 3s
/return

Sub nuke
:NeedRange
/if (${Target.Distance}>=${CastingRange}) /goto :NeedRange
/doevents
/if (${xp}==1) {
/varset xp 0
/varset castingnuke 0
/varset fighting 0
/return
}
/varset castingnuke 1
/cast ${nukespell}
/delay 1s
:waitnuke
/if (${Me.Casting.ID}) /goto :waitnuke
/delay 3s
/doevents
/if (${xp}==1) {
/varset fighting 0
/varset castingnuke 0
/varset xp 0
/return
}
/if (${ConstantNuke}==1) /goto :NeedRange
/return

Sub Event_Fizzle
/if (${castingnuke}==1) /call nuke
/return

Sub Event_EXP
/varset fighting 0
/varset castingnuke 0
/varset xp 1
/return

added a /if (${Target.ID}==${maintankid}) /target clear
as well as one for pc's so it should clear it if your targeting your tank or pc :P
 
Last edited:
Re: Macroes and MQ2

hey guys great work on this mac i'm prob going to use it with my mage anyway reason i post is a bit down the forum i have a marco download point i'm havin trouble interfacing with it with frontpage to publish but i would like to put this macro on there also so it will be a one click download zip and extract kinda thing

just wantin to ask before i do it and i'll add you to it for credit before i add it to site
 
Re: Macroes and MQ2

Not working at all now. It keeps trying to cast spells on my own pet. Main tank has no target. LoL
edit: what do you think of this little gem.. haven't had a chance to test it yet. I'm rather proud of it since I'm a dumbass.
Rich (BB code):
#turbo 

Sub Main 

:loop 
/if (${Me.Casting.ID}) /goto :loop
/assist Bibble 
/if (${Target.PctHPs}>94 { 
/goto :first_action 
}
/if (${Target.PctHPs}<38 { 
/goto :nuke 
} else { 
/goto :loop
} 
 else {
/goto :loop 
}



:first_action
| I'm hoping this prevents you from "blowing your wad to early" or nuking |PCs/pets
/if (${Target.PctHPs}!=100 {
/goto :loop }
  else {
/pet attack
/delay 10
/cast 1
/delay 65
/cast 2
/delay 75 
/sit
/goto :loop
}

:nuke
| *shouldnt* nuke with no target or if you have a corpse targetted. Won't |waste mana by nuking runners
/if (${Target.PctHPs}>20 { 
/cast 4
/delay 65
/sit
/goto :loop
}
 else {
/goto :loop
}
Whatcha think man?
 
Last edited:
Re: Macroes and MQ2

should be good :) sorry, i'm just as tired as can be and still can't sleep lol
 
Re: Macroes and MQ2

Koneman said:
hey guys great work on this mac i'm prob going to use it with my mage anyway reason i post is a bit down the forum i have a marco download point i'm havin trouble interfacing with it with frontpage to publish but i would like to put this macro on there also so it will be a one click download zip and extract kinda thing

just wantin to ask before i do it and i'll add you to it for credit before i add it to site
go for it, i don't mind at all
 
Re: Macroes and MQ2

Wow. Ok, final working version. Damn this is a long thread with a lot of hard work involved. I'd like to thank you Siddin for your work, man. I really apperciate it.
Rich (BB code):
#turbo 

Sub Main 

:loop 
/if (${Me.Casting.ID}) /goto :loop
/assist Bibble 
|props to siddin for this knowledge
/if (!${Target.ID}) {
/delay 1s
/goto :loop
}
/if (${Target.PctHPs}==100) /goto :loop
/if (${Target.PctHPs}<20) /goto :loop
/if (${Target.PctHPs}>94) /goto :first_action 
/if (${Target.PctHPs}<38) { 
/goto :nuke 
} else { 
/goto :loop
}



:first_action
/pet attack
/delay 10
/cast 1
/delay 65
/cast 2
/delay 75 
/sit
/goto :loop

:nuke
/cast 4
/delay 55
/sit
/goto :loop
 
Last edited:
Re: Macroes and MQ2

np, i don't mind helping at all, congrats on getting it working :)
 
Macros and MQ2

Users who are viewing this thread

Back
Top
Cart