Macro Builder - build or modify any macro

PeteSampras

Your UI is fucking you. Stop using it.
Joined
Dec 12, 2007
Messages
3,956
Reaction score
49
Points
38
Macro Builder - Snippet Depot

Updated: 19 Feb 2012

Update notes:
-Fixed MobCamp.inc so you can actually create camps for pulling with mq2navigation.

-Fixed an ignore list alias issue. Added aliases for cold, disease, fire, magic, and poison immune mobs to be automatically added to the correct ignore list when they are on your target. Added those to storyMB.txt:
/cmob
/dmob
/fmob
/mmob
/pmob

Updated all applicable includes to:
- automatically detect spell rank if you leave your ini as the rank 1
- You should no longer have to /call Load for any includes, so that saves a step
- Fixed a couple includes that werent working quite as intended (SummonTank, ClickyNukes)
- Thanks to s0rcier for help to spruce some of these up

Updated includes that involve clickies.

Added a new AutoClickies.inc that automatically figures out all the modern era clickies for you and picks the buffs based on what I felt was best for your class.

Updated CharInfo.mac to check inside bags for clickies. Changed the Piggy to MMOBugs inside the example macs.

Paragon include apparently doesnt work because its no longer named that, will update as i get a chance.

Added SummonTank.inc so you can designate a mob to summon tank via /sumtank - FIXED this from previous version

Added storyMB.txt - this goes in your /everquest/storyline/ folder.

I've had a few requests for a way to have an in game FAQ and someone pointed me to what Rasper did for write ups so I am using that as an option.

This shows all the available custom /commands and many of the common settings you would need to toggle settings in game without having to reload the macro. if you are already in game, you need to reload your ui the very first time when you add the file to your storyline folder.
alt+n activates storyline, or it can be access via top bar.



General Information:
The purpose of these files are to allow people to simply add these .inc to their existing macros, or build their own from scratch and have them flow seamlessly in. For example, you can add the AAs.inc to the standard assist macro, /call AAsLoad in the Sub Main, and /call AAs within its :attack cycle, and it will now use all the AAs you designate!

Required:
- MQ2Melee, MQ2Cast, spell_routines.inc, MQ2CEcho (makes it pretty!), MQ2MoveUtils, MQ2MMOTLO
- MQ2Navigation, MQ2EQDraw (lifetime only on mmo) required for the pulling.inc

- You must declare a couple variables in your macro (all outlined inside the .inc), sometimes within the Sub Main

- This is an intermediate level of macros, you may or may not be required to slightly modify your own macros to make these fit in smoothly.

How to use:
I suggest you make a folder in your mq2 folder called \macros\includes\
Then store whatever .inc you want there so you dont clutter your macro folder.

Details for each .inc are inside the file that describe how to use it, and what each variable does.

If you plan to build a macro from scratch, I suggest you make 3 Subs named Always, Combat, and Rest and /call the .incs depending on if you always want to use it, only during combat, or only during rest.

Once your macro is created, you will autocreate a personal ini named YourCharname_ClassShortName.ini by using the load command:
example mac name: /mac macroname load
example created file: PeteSampras_Warrior.ini
This will autopopulate a blank shell for you to fill in for each .inc you have used.

A few of the .inc have REQUIRED associated variables or other .inc that must be declared in the Sub Main, they are listed inside the .inc

I tried to stick with a standard naming convention for routines/incs but some have more than one routine so you have options.

EXAMPLE SHELL:
This example will do selfbuffs only when not in combat, auras always, and nukes only during combat. The attached Example.mac will fully run a wizard once you download all the .inc and fill in your .ini that will be created.

Here is a shortened version of that macro:
Code:
#include \includes\SelfBuffs.inc
#include \includes\Aura.inc
#include \includes\Nukes.inc

#include spell_routines.inc

Sub Main
    /declare LoadStuff string outer ${Param0}
    /declare NeedLoad bool outer FALSE
    /if (${LoadStuff.Equal[load]}) {
    /varset NeedLoad TRUE
    /echo Building an ini
    }

/declare EchoAnnounce bool outer TRUE

/call Load

:mainloop
/call Always
/if (${Me.CombatState.Equal[Combat]}||${Me.Combat}) /call Combat
/if (${Me.CombatState.NotEqual[Combat]}) /call Rest
/doevents
/if (!${NeedLoad}) /goto :mainloop
/return

Sub Always
/call Aura
/return

Sub Combat
/call Nuke
/return

Sub Rest
/call SelfBuffs
/return

Sub Load
/call NukeLoad
/call SelfBuffsLoad
/call AuraLoad
/return
This will create a blank shell for you in your \macros\ folder that you will fill in with all the correct info.


INCLUDES:
Full descriptions and how to use are located in each file, download to view.

AAs.inc
Code:
This will use any AA/spell that you determine while in combat.
AddHandler.inc
Code:
Maintains your aggro list so you can sort, prioritize, mez, debuff adds as needed.
prioritize sub written, but not incorporated into normal list just yet until aggro and mez routines are done.
Aura.inc
Code:
This will maintain up to 2 auras if you can use 2.
AutoClickies.inc
Code:
Automatically does modern clickies for you.  #include AutoClickies.inc and just /call AutoClickies from your Rest sub
Buffs.inc
Code:
Lets you store a list of buffs and determine what classes to buff.
Has autobuff refresh option and works with tells, group, or eqbc
Camp.inc
Code:
Adds command: /ame
/ame - sets new camp location at your current loc
/campon - turns leashing to camp on
/campoff - turns leashing to camp off
This will use a camp location for your characters to leash to if they are within a set distance away.
This is a modified rip out of HardOne's basic assist macro with a couple additional checks.
Campfire.inc
Code:
This will manage autocreate a campfire if you dont have one up already if at least 3 of your fellowship members are in range.  I suggest using it only while in combat so it doesnt drop one while you are moving to camp.  If you wish to use a special campfire, designate the pieces and name in your .ini.
CheckMana.inc
Code:
This allows you to med, use mod rods, or use harvest/canni/deathbloom/whatever other mana regen skill you get as you determine.
CheckTarget.inc
Code:
This gives you 3 options for getting a target: XTarget1, standard assisting of pc/pet/merc, or on manual command via hotkey or another macro and has 2 attack routines with either a standard /attack on, or an option that stays on current target until a different target is called.  Suggesting using the Sub Combat with the second attack routine.  

This .inc requires adding the following lines to Sub Main:
    /if (${Param0.Length}) /declare AssistPC string outer ${Param0}                
    /if (${Param1.Length}) /declare AssistAt int outer ${Param1}                
    /if (${Param2.Length}) /declare AssistPC2 string outer ${Param2}
ClickyMaintenance.inc
Code:
 Commands:                                                                 
/addclicky  <itemlink> < item link >   - To add an item                                 
/removeclicky <itemlink>< item link > - To remove an item                              
/clicky                  - To toggle handling of clickies (on/off toggle)
ClickyNukes.inc
Code:
This allows you to use clicky items while in combat.
Debuff.inc
Code:
Allows you to debuff target and adds, requires AddHandler.inc
Dots.inc
Code:
 This allows you to use up to 10 dots based upon conditions you determine in .ini
FightBuffs.inc
Code:
 This allows you to use certain buffs ONLY during combat.  
Ie. Stubborn Stance or innate defensive proc buffs for pal/sk
IgnoreList.inc
Code:
 Adds command: /imob
/imob  - this adds targeted mob to ignore list.
This is used to create an ignore list and immunity to mez/snare/stun/ and all resists of mobs for each zone. 

Mez, snare, and slow immune mobs are automatically added.
Fire/cold/poison/disease/magic must be added manually.

This .inc is used in almost every other .inc and is required for the pulling.inc
Jolt.inc
Code:
 This command uses deaggro spells/discs/items/alt to reduce your aggro based on number of spells landed.
Lifetap.inc
Code:
This adds support for lifetaps.
MainTankBuff.inc
Code:
Adds support to use buff/hot/delayed heal only on designated group tank
Merc.inc
Code:
Adds support to have your merc autoassist at certain %, auto revive if dead and in group, and change stances if you are fighting a named.
MobCamp.inc
Code:
Adds commands:
/addcamp [Name of camp]
/listcamp 
/stopcamp 
/startcamp [Name of camp] 

This creates "camps" of mobs for you to pull from in the order you set.  Required for pulling.inc

You /addcamp name, /target all the mobs at the camp you want to kill, then /stop camp.  
Thats it!  now you /startcamp name and you are all set to pull mobs!  You only have to set the camp one time.  

You can save different names of the camp if you want to have it pull different areas depending on how many people are in zone.  
ie. Center1, center2, center3 if you are in Sanctum Somnium and that could pull different combination of mobs from center, upper hall, and wing areas.
MQ2NavFollow
Code:
This will autofollow designated character using MQ2Navigation.  
It will self navigate to anywhere in zone without targeting the character.  
You can set it to manual mode to only move to your character upon command.

Adds command to toggle autofollow on and off:
/navfollow
Nukes.inc
Code:
This allows you to use Nukes and Gift of Mana.  Required for Gift of Mana use.
Paragon.inc
Code:
Sets paragon/focused paragon to auto work
Pet.inc
Code:
This allows you to use pet, pet focus, pet buffs, pet shrink.
Pulling.inc
Code:
Requires MQ2Navigation(currently lifetime only) and MQ2EQDraw plugins 
This will pull the camp you designate from MobCamp.inc.
Recourse.inc
Code:
 This is used to perform recourse spells.
Rez.inc
Code:
This will rez your group/raid/trusted list on command, or automatically if set to.
SelfBuffs.inc
Code:
 This maintains all designated self buffs.
Snare.inc
Code:
 This will snare mobs based on designated conditions.
Stun.inc
Code:
 This will stun mobs based upon designated conditions.
XHeal.inc
Code:
This will heal targets on your extended targets with the predesignated heals at designated amounts.
MACROs:
MacroLoad.mac
Code:
/mac macroload load - creates the ini section in your CharName_CharClass.ini
This macro uses EQBC to launch all macros for each designated toon by typing /mac macroload.  Put all desired parameters as the macro name. 
ie. assist PeteSampras 99  if you wish to run /mac assist PeteSampras 99
CharInfo.mac
Code:
This macro outputs all memmed spells, worn gear with clickies, top inventory clickies, activated AAs, and last 10 level of spells in spellbook.  
The output file is located in your macros filed and named Level_Class.ini ie. 90_Bard.ini
Makes for easy copy and paste into ini files for any macro.
Current Example Macros

These macros should be mostly full up versions of class macros supporting all abilities, items, AAs, spells and more for each class listed. An example ini is included for each class specific macro. These macros can be easily modified by adding or removing the includes listed on this thread.

Current macros include:
Bard
Cleric
Paladin
Necromancer
Shadow Knight
Shaman
Wizard


Current "TO DO" List:

Mez - still self testing - works mostly
Cures - drafted, untested
Raid Tools - Done, dont know that I want to share it though because it might out me in guild. Timers, automated notes, events, hud info, spawn logging and map placement.
Melee discs -Drafted, untested




If people have suggestions, please post on this thread and I can see about getting it made as a .inc, also, feel free to PM me to contribute to this thread. Please use the standard variables I have used for loading and echoing if you wish to contribute.

Max attachments are 15, so including all includes in a .zip and the example.mac separately.</itemlink></itemlink>
 

Attachments

  • macroload.mac
    1.9 KB · Views: 295
  • 20120215-example_macs.zip
    32.3 KB · Views: 183
  • CharInfo.mac
    6.1 KB · Views: 87
  • storyMB.txt
    4.6 KB · Views: 71
  • 20120219-includes.zip
    68.5 KB · Views: 165
  • Snare.inc
    4.9 KB · Views: 90
  • CheckMana.inc
    5.2 KB · Views: 78
Last edited:
Reserved for future use since this could turn out to be a really long first post if i complete all those .incs

.inc that need testing:
None atm, if you find issue, please let me know.

If anyone is able to provide testing on these .inc, please PM me issues or that they are good to go.

If anyone finds any issues with any other .inc, please let me know. The others all worked for me, but I didnt exactly stress test them in a lot of scenarios.


PREVIOUS UPDATES:
Updated many includes to figure out your actual rank of spell if you have a rank 1 listed in your ini, but actually have rk2/3. trying to future proof your ini as best i can. if any errors are noted, please let me know. i only did an hour of testing, but all seemed fine.

Added modified spell_routines.inc
-automatically figures out the appropriate rank of spell. ie. if you try casting rank 1 but have rank 2 or rank 3, it should cast rank 2 or 3 instead of doing nothing/giving error
-corrected the forward movement of mounts and /interrupt so you dont move so far ahead.
-added ability to use discs using /call Cast "disc name" disc
-automatically finds rk2/rk3 for you on disc as well if you try a lower version


Added option to force memorization of nukes, dots, debuffs. if you have an existing ini and wish to enable this feature. you need to add the follow lines in your ini under the corresponding sections:

[Dots]
ForceMemDots=TRUE

[Nukes]
ForceMemNukes=TRUE

[Debuffs]
ForceMemDebuffs=TRUE

If you dont have an existing ini, these will be auto added for you.
**Note this feature does mem the spell, but it may delay the rest of the macro until that spell is memmed, resulting in your death. you have been warned!

Added option for leash radius to camp in Camp.inc in .ini under
[Settings]
CampRadius=30

Added archery support to CheckTarget.inc new items that need manually added to existing ini (auto created if you dont have an ini already)
Under
[Settings]
UseArchery=TRUE
ArcheryMinDistance=35
ArcheryMaxDistance=200

Updated FightBuffs.inc, SelfBuffs.inc to check for some additional stacking/verifications. CheckMana.inc was updated to work if you have tash/malo on.

Added a check to CheckMana.inc to sit if you were tashed and/or malod but had no other debuffs. Will add check for rez/call effects once i figure out a TLO/member for it. otherwise I will use the UI and just check for a time displayed and if there is a ":" then i know theres a timer remaining and sitting wont help.

Posted new zip with minor changes to a couple includes. Posted new example necro ini (thanks Dealings) in the macro zip.

Added Bard macro and ini. Updated all relevant includes to now support bards. It isnt perfect, there may still be a delay on doing self buff clickies until there is a slight pause in singing, but overall it is a lot better. As a result of redoing some of the includes for bards, i streamlined a few includes to hopefully work a little better. No changes to inis needed, just download the latest includes.

Updated Necro mac and added to compile. Hoping the acquiring target issue is resolved. If not, please let me know.

Updated macs and includes zips. Fixed a couple issues in rez inc and minor changes in a couple others. no ini updates needed. The macros are in better order for /calls so you do things your class should do more often/earlier. ie. clerics check heals more often, tanks check aggro earlier, etc.

Added level 90 cleric and shaman macro examples. if you want to use it as is, just mem the spell list indicated inside the notes section of macro. then /addclicky in game and you will be all set to go for full level 90 spells/AAs.

mq2navigation is used in example, if you dont have this plugin, remove the #include, and 2 /calls referencing it. or compile the plugin yourself from VIP section on main site.

Updated some includes to specify target of spell for clarity. Also made some slight modifications to a few includes so they function better.

Added Rez.inc to support rezzes, call of wild, etc. Needs testing. updated CheckTargets.inc because somehow Checktarget 3 routine was working for me even though it was bugged. it should no longer be bugged. CheckTarget3 routine auto designates your XTarget1 to be the "kill target" suggested use for priest/caster classes inside a macro would be to /call CheckTarget3 and then have something like:
/if (${TarID} && (!${Target.ID}||${Target.ID}!=${TarID}) && !${Me.Casting.ID}) /tar id ${TarID}

That would autotarget your kill target when you arent busy doing other things.

I will update the zip soon once I can get more testing done on the rez include. I also am working on some priest macros to add to the macro zip as well. So far they are working well.
Added buffs.inc separately from the include zip. it has some commented out events that were checking for buffs landing on others. Old version made you lag badly depending on what filters you had on.

Added events to stun CHeal and gate to stun.inc, no change to ini required, just DL new inc. Needs testing.

Added Z166204's ClickyMaintenance.inc with updates for link changes and data standardization with rest of includes. I don't think hes updating it any more as it was in the trash can in 2007 and there are versions of this as plugin, just not quite the same.

Updated Heal, Pet, AddHandler, Buffs. I changed how buffs works a little and removed pet buffing since honestly i cant really think of when that matters once you get group buffs and swarm pets were messing things up. I may put it back in eventually.

Added some example macros for Wizard, Paladin, Shadow Knight. Will add more as people ask for or provide examples. Can tweak them if needed, but they are fairly complete and use level 90 Rk 2 spells / t4 w/ slot3 HoT gear. Read the .incs if you have questions about the capabilities of each include.


Added Lifetap.inc to support lifetaps, instructions are inside the .inc as always.

Added CharInfo.mac. This will create an output ini of all spells, AAs, discs, clicky items you are wearing or that are top level of inv. This is used to make it easy to copy and paste all your info into your .inis and reduce the chance of error. This is also useful if you want help on your ini, i would want a copy of the output file. instructions are inside the macro.

Added MQ2NavFollow.inc - This allows you to auto move your characters to the designated character whenever they get outside of the designated range. also allows navigation upon command as an alternative. adds command to toggle autofollowing of designated character: /navfollow

Updated merc.inc to reflect new ${Me.MercenaryStance} option that was added Apr 6.

Fixed a couple errors that was preventing single target heals from working as intended.

Added Buffs.inc, Debuffs.inc, and AddHandler for testing.

Updated selfbuffs.inc. should now have no issues with any item/aa/spell for any class. melee buffs that had a mana cost associated in spelldat werent casting previously.

Updated Snare.inc to recognize immunities better. Because of how EQ returns immunities, it would mark mob as immune, then say it resisted spell so routine saw resist and tried to recast. I think this is fixed now from limited testing.

IgnoreList.inc was updated to work with the new Snare.inc better. Also corrected an auto add issue for mez/snare/slow if using a certain option

Updated Nukes.inc to have recast timers for each nuke, default is 1s. This will be useful for hybrid classes that want to nuke, but dont want to chain nuke nonstop. Also added immunity check to the GoM spell.

Updated Pet.inc, Camp.inc, Aura.inc, IgnoreList.inc, Dots.inc, and Snare.inc to include some new commands and better checks to avoid spam.

Found an error that could occur in single target buffs, fixed. found error in macroload, fixed.

Initial Post. There are many .incs that I havent made, but I want to start putting these out as i finish them or need them tested. I don't have access to many toons so I can't test everything myself though I do try to verify everything works before I post if I can. I will try to maintain what still needs tested in the second post on this thread.
 
Last edited:
if he was not lifetime prior i sure as hell hope he is now someone get that man a BJ or something
 
if he was not lifetime prior i sure as hell hope he is now someone get that man a BJ or something

He was already. Given the awesome magnitude of this post and related questions to come, going to make every effort to keep this post completely on topic.
 
Last edited:
Nice post man. FWIW, I changed MQ2EQDraw to no longer require Lifetime.

htw

 
Looking at the pulling.inc, are there any plans for this option (MQ2Naviagaion) to be available to premium members any time soon?

If not, a similar functioning .inc for us premium people would be a cool addition to the group.
 
Looking at the pulling.inc, are there any plans for this option (MQ2Naviagaion) to be available to premium members any time soon?


There are no plans for that at this time. There are reasons to buy lifetime, and this is one of them, im afraid.
 
Added Merc.inc to auto manage/revive your mercenary. Notes are in the .inc. Make sure if you have a mercenary that is non-standard, that the naming convention is followed properly because it uses ${Group.Member[x].Name} and i had to follow that format.

a hired goblin=hired goblin, a
a hired bixie=hired bixie, a
a hired orc=hired orc, a

etc.

I will repackage the .zip and put a date on them once i get more than a few loose .incs. I didnt want to bother rezipping until the newer ones are tested. In the future I will make sure to not include the ones i havent personally tested into the zip until i receive confirmation they are working as intended.
 
Last edited:
by chance could someone setup a generalized disc inc? would love to find something that has different kinds of criteria. IE number of mobs, disc order, hp, what ever have u??
 
zerker hud is missing a disc for big burn ready and notready.

${Me.AltAbilityReady[Cascading Rage]}

You use SS without CR you might as well not use it at all.

Ill post a zerker setup for this if people want it.
 
zerker hud is missing a disc for big burn ready and notready.

${Me.AltAbilityReady[Cascading Rage]}

You use SS without CR you might as well not use it at all.

Ill post a zerker setup for this if people want it.

Would be interested in this.
 
Is there a reason doability.inc doesnt have frenzy ?

Also can you set it to use disc in the AA lines ? Like Berserking Rk. III ?
 
Last edited:
Added macroload.mac.

If you box via EQBC, you can set all your characters and macros in your ini for the rest of the .inc and run /mac macroload. this will start all of your characters macros (including the one designated for the toon you run it on_ for you with a single command. probably only useful to boxers with EQBC.

Hello Pete, just wanted to give you a heads up on a plugin I wrote for this very purpose. In your macroquest folder, create an INI file called MQ2StartMacro.ini and inside the file looks like this
Code:
[Characters]
CharName1Here=macroname param1 param2 etc...
In game load the plugin, then /startmacro will start the macro with the given name and parameters for your character.
I will add support for changing this ini in game, but has not yet been done. I'll work on this today, and also work on auto-creation of the ini file if it doesn't already exist. Also, this does not yet perform any checks on if you have a macro specified, but you'll see notification in your macroquest chat window on macro syntax which shows that /macro was used without any parameters, which is the only hint atm that you didn't configure it. Any questions, concerns, or feedback / ideas on this plugin please don't hesitate to shoot me a PM.