• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->
Resource icon

Work in Progress MGB Macro 1.00

Download now:  Join us with Level 2 access or earn your way in with  RedCents.
Server Type
🏢 Live
I wanted to test my hand at making a basic macro so I could learn the steps and also, specifically, learn syntax and conditionals. So I made this macro. I also made this because I like hitting my whole army with MGBs before initiating KA.

This macro will assign a set number of popular MGB spells depending on the class of whoever runs it, and will sit in Guild Lobby until it detects anyone asking for "MGB" at which point it will delay a random amount of time between 10-20 seconds, activate tranquil blessings, and cast the assigned buff(s).

KNOWN ISSUES since I'm not a programmer at all:
--If you are in the middle of a spell routine and someone else shouts for MGB, the toon will start the whole cycle over once it finishes the current one. I don't know how to silence this, or even if it's possible/that big of a deal.
--My shaman is struggling to cast the correct spells on occasion. Do not know how to reproduce this. It likes to replace Talisman of the Enduring with Talisman of the Ry'Gorr, and occasionally likes to cast Enduring twice instead of moving on to Tala'Tak after casting.
--If you like to use AA MGBs, I currently don't have the knowledge how to assign an AA to one of the buff slots and have it fire an AA instead of a spell.
--The code isn't very pretty.
--Don't have any idea how to handle fizzles right now from within a Sub Event that is currently executing, and it's possible for some of these spells to fizzle.

INI:
#turbo 80
#event MGB "#*#MGB#*#"

Sub Main

/echo Starting up!

|This section determines what class you are, and sends the macro to mem the proper spells
/if (${Me.Class.Name.Equal[Beastlord]}) /goto :BeastPrep
/if (${Me.Class.Name.Equal[Cleric]}) /goto :ClericPrep
/if (${Me.Class.Name.Equal[Enchanter]}) /goto :ChanterPrep
/if (${Me.Class.Name.Equal[Druid]}) /goto :DruidPrep
/if (${Me.Class.Name.Equal[Magician]}) /goto :MagePrep
/if (${Me.Class.Name.Equal[Paladin]}) /goto :PallyPrep
/if (${Me.Class.Name.Equal[Ranger]}) /goto :RangerPrep
/if (${Me.Class.Name.Equal[Shaman]}) /goto :ShammyPrep
    
:BeastPrep
    /declare BuffOne outer
    /declare BuffTwo outer
    /varset BuffOne Reclaimer's Unity
    /delay 1s   
    /varset BuffTwo Shared Merciless Ferocity
    /bst byos on
    /delay 1s
    /goto :Mem
    
:ClericPrep
    /declare BuffOne outer
    /declare BuffTwo outer
    /varset BuffOne Unified Hand of Righteousness
    /delay 1s
    /varset BuffTwo Unified Hand of Jorlleag
    /delay 1s
    /goto :Mem
    
:ChanterPrep
    /declare BuffOne outer
    /declare BuffTwo outer
    /varset BuffOne Hastening of Cekenar
    /delay 1s
    /varset BuffTwo Voice of Sagacity
    /delay 1s
    /goto :Mem
    
:DruidPrep
    /declare BuffOne outer
    /varset BuffOne Opaline Blessing
    /delay 1s
    /goto :Mem
    
:MagePrep
    /declare BuffOne outer
    /varset BuffOne Circle of Igneous Skin
    /delay 1s
    /goto :Mem
    
:PallyPrep
    /declare BuffOne outer
    /varset BuffOne Brell's Blessed Barrier
    /delay 1s
    /goto :Mem
    
:RangerPrep
    /declare BuffOne outer
    /varset BuffOne Shout of the Arbor Stalker
    /delay 1s
    /goto :Mem
    
:ShammyPrep
    /declare BuffOne outer
    /declare BuffTwo outer
    /declare BuffThree outer
    /varset BuffOne Talisman of the Ry'Gorr
    /delay 1s
    /varset BuffTwo Talisman of the Enduring
    /delay 1s
    /varset BuffThree Spirit of Tala'Tak
    /delay 1s
    /goto :Mem
    
:Mem
    /if (${Me.Gem[1].Name.Equal[${BuffOne}]}) {
        } else /if (${Me.Gem[1].Name.NotEqual[${BuffOne}]}) {
            /memspell 1 "${BuffOne}"
            /delay 5s
        } else /if (${Me.Gem[1]}==NULL) {
            /memspell 1 "${BuffOne}"
            /delay 5s
        }
    /if (${BuffTwo.NotEqual[NULL]}) {
        /if (${Me.Gem[2].Name.Equal[${BuffTwo}]}) {
            } else /if (${Me.Gem[2].Name.NotEqual[${BuffTwo}]}) {
                /memspell 2 "${BuffTwo}"
                /delay 5s
            } else /if (${Me.Gem[2]}==NULL) {
                /memspell 2 "${BuffTwo}"
                /delay 5s
                }
            }
    /if (${BuffThree.NotEqual[NULL]}) {
        /if (${Me.Gem[3].Name.Equal[${BuffThree}]}) {
            } else /if (${Me.Gem[3].Name.NotEqual[${BuffThree}]}) {
                /memspell 3 "${BuffThree}"
                /delay 5s
            } else /if (${Me.Gem[3]}==NULL) {
                /memspell 3 "${BuffThree}"
                /delay 5s
                }
        } else {
            /goto :loop
        }

:loop
    /doevents
    /delay 3
    /goto :loop
/return

Sub Event_MGB
    /goto :OneBuff
    
    :OneBuff
        /if (${Me.AltAbilityReady[Tranquil Blessings]}) {
            |This section has a built-in and random delay to not seem so obvious
            /delay 10s
            /delay ${Math.Rand[10]}s
            /alt act 992
            /delay 3s
        } else {
            /delay 5s
            /goto :OneBuff
        }
        /cast "${BuffOne}"
        /delay 2s
        /if (${BuffTwo.NotEqual[NULL]}) {
            /goto :TwoBuff
        } else /goto :Sit
        
    :TwoBuff
        |No delay needed here since it's the second spell
        /if (${Me.AltAbilityReady[Tranquil Blessings]}) {
            /alt act 992
            /delay 3s
        } else {
            /delay 5s
            /goto :TwoBuff
        }
        /cast "${BuffTwo}"
        /delay 2s
        /if (${BuffThree.NotEqual[NULL]}) {
            /goto :ThreeBuff
        } else /goto :Sit
        
    :ThreeBuff
        |No delay needed here since it's the third spell
        /if (${Me.AltAbilityReady[Tranquil Blessings]}) {
            /alt act 992
            /delay 3s
        } else {
            /delay 5s
            /goto :ThreeBuff
        }
        /cast "${BuffThree}"
        /delay 2s
        /goto :Sit
        
    :Sit
        /if (!${Me.Casting.ID}&&!${Me.Sitting}) {
            /sit
        } else {
            /delay 3s
            /goto :Sit
        }
    /return
Author
foromoro
First release
Last update
Rating
0.00 star(s) 0 ratings

Share this resource

Back
Top