• 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 --->
  • Unfortunately, yes, there is a suspension wave happening around the new tlp launch. :'( Please keep regular discussion to Suspension MegaThread and please consider submitting a Suspension report to RG.

Help with mage mac. (1 Viewer)

BlackPower

New member
Joined
Nov 17, 2005
RedCents
21¢
I been using the mage.mac for my necro since the necro one is a dead end and I'm not fluent in writing macros. I Know how to edit them here and there but thats it. Im trying to fix this one so that it doesnt shit itself when I have druid buffs but it would seem its not working and I have no idea why. Its not erroring out its just getting stuck in a buff loop.

I added Heartwood Skin Rk. I, Heartwood Skin Rk. II, Heartwood Skin Rk. III in what I thought to be the appropriate areas.

Also I was trying to set it up so that it uses Army of the Dead and Swarm of Decay, as of right now it will only respond to AotD and again, sorry Im a clueless MFer. I have done everything I know to change it and it just doesnt take without blowing up and catching my desk on fire.

On a side note, when clean up is on it does it but anything that has stacks it just locks up and when using the mac for a mage it doesnt summon a pet, it doesnt give them weapons and while this isnt really a huge deal, I didnt know if someone knew why, everything looks to be in order but it just doesnt work.

Can anyone Help?

The ini:

HTML:
[Settings]
MainAssist=
SecondAssist=
MinRadius=150
EngageDelay=55
MinHP=95
AutoBuff=1
UseMount=1
UseDebuff=1
NukeMode=2
UseCharm=0
UseDPS=0
UsePet=1
PrivateChannel=
ChannelAnnounce=0
AutoAnnounce=0
NoInterrupt=0
UseManaStone=0
CheckNamed=0
NoInvis=1
UseManaRobe=0
ManaRobeMode=0
ManaRobeMinMana=70
ManaRobeMaxMana=94
NukeMana=25
NukeDelay=0
IgnoreList=NULL
RuneHP=70
CleanUp=0
UseGroupDS=0
ClarityBitch=NULL
SpellSet=Main
MaloDuration=1m
ResistsTillMala=4
ResistsTillQuit=3
SecondaryAssist=
[Spells]
Nuke1=Acikin
Nuke2=
MagicNuke=Acikin
FireNuke=
BoltNuke=
SummonedNuke=
Shielding=Shadow Guard
WindPet=Servant of Bones
EarthPet=
FirePet=
WaterPet=
PetSpell=Servant of Bones
MalosiniaSpell=Dark Nightmare
MalosiniaType=Spell
MalaSpell=Dark Nightmare
MalaType=gem6
GroupDSSpell=
SingleDSSpell=
SiphonSpell=
RuneSpell=Manaskin
RuneType=Spell
PethpSpell=
PethpBuff=
PethpType=item
PetHaste=Glyph of Darkness
PetShrinkSpell=
PetShrinkType=
RodSpell=
RodType=gem8
[B]SelfBuff1=Shadow Guard
SelfBuffNoStack1=Protection of the Nine,Blessing of the Nine,Steeloak Skin,Blessing of Steeloak, Heartwood Skin Rk. I, Heartwood Skin Rk. II, Heartwood Skin Rk. III[/B]
SelfBuff2=
SelfBuffNoStack2=
SelfBuff3=
SelfBuffNoStack3=
SelfBuff4=
SelfBuffNoStack4=
SelfBuff5=
SelfBuffNoStack5=
BuffList1=rod,modrod,mod
BuffName1=
BuffType1=gem6
BuffList2=ds,dmg shield,damage shield
BuffName2=ds
BuffType2=gem6
BuffList3=
BuffName3=
BuffType3=
BuffList4=
BuffName4=
BuffType4=
BuffList5=
BuffName5=
BuffType5=
[Items]
HpRobe=Elaborate Defiant Silk Robe
Clicky1=
ClickyNoStack1=
Clicky2=
ClickyNoStack2=
Clicky3=
ClickyNoStack3=
Clicky4=
ClickyNoStack4=
Clicky5=
ClickyNoStack5=
UseFood=0
StatFood=
Food1=
Food2=
Food3=
Food4=NULL
Food5=NULL
MeleeWep=
InvisItem=
DispellItem=
NormalMainhand=Elaborate Defiant Dragonrod
NormalOffhand=Elaborate Defiant Heater
HpMask=Elaborate Adept's Facemask


The macro:

HTML:
| mage.mac 
| By Rusty~ 
| Maintained by Showme1 
| Last update 11/28/2005 
| 
| /macro mage [ma name][sa name][radius #][nuke fire|magic|bolt][minhp #] 
| 
| Description: 
|   Will assist the person set as main assist. If the main assist dies, it will assist the person 
|   set as secondary assist if there is one. Once a target is aquired, and is varified as being aggro 
|   it will then wait till the mob is engaged by the tank. It will then send in pet and debuff the mob 
|   if debuffs are enabled. It will then wait till mob is under the spcified hp, or the specified time 
|   has expired since the tank has engaged, then it will start nuking. 
|   This will also keep self buffs up, keep pet up (with weapons, belt, and mask), and buff and rod 
|   people that ask (with the spells specified in ini). Will coth people that ask for it via tells 
| 
| 
|   After running the macro for the first time, you should open the ini file generated (Auto_Yourname.ini) 
|   Most of the options are self explanatory 
|   Here's an example how the ini based buffs work: 
| 
|      BuffList1=rod,modrod 
|      BuffName1=Magi`kot's Pants of Convergence 
|      BuffType1=item 
| 
|   BuffList is a list of words (or phrases) that will trigger the buff, separated by commas 
|   BuffName is the name of the spell or item 
|   BuffType is either item, gem1-9, or alt, for items, spells, or aa respectively 
| 
|   For each self buff and clicky buff, there's a place to put all the buffs that don't stack with it: 
| 
|      SelfBuff1=Phantasmal Warden 
|      SelfBuffNoStack1=Protection of the Nine,Blessing of the Nine,Steeloak Skin 
| 
|   *note* To mem spells after death, save a spellset, and put the name of it in your ini under SpellSet 
| 
| 
|----------------------------------------------------------------------------------------------------------+ 
|  slash commands:                                                                                         | 
|----------------------------------------------------------------------------------------------------------+ 
|  /setma name                             - sets main assist                                              | 
|  /setsa name                             - sets secondary assist                                         | 
|  /buff on|off                            - turns auto buffing on or off                                  | 
|  /debuff on|off                          - turns auto debuffing on or off                                | 
|  /mount on|off                           - turns auto mounting on or off                                 | 
|  /nukedelay #                            - sets the minimum amount of deciseconds between nukes          | 
|  /engagedelay #                          - amount of deciseconds before you start nuking mob             | 
|  /companion on|off                       - sets auto pet summon on or off                                | 
|  /anchor #                               - sets the leash length when using an anchor                    | 
|  /minhp #                                - sets the minimum hp % that you'll begin nuking at             | 
|  /cleanup on|off                         - turns on auto looting of any droppable loot                   | 
|  /checknamed on|off                      - turns alerts on for named in your current zone                | 
|  /runehp #                               - sets the health % at which you'll cast your rune item or spell| 
|  /nukemode 0, 1, 2                       - mode 0 turns nukes off completely                             | 
|                                          - mode 1 uses robe if enabled, and slows nukes if low mana      | 
|                                          - mode 2 chain nukes, with only delay being the set /nukedelay  | 
|  /manarobe mode #|min #|max #            - mode 1 uses manrobe all the time                              | 
|                                          - mode 2 uses your set % to start robing                        | 
|  /radius #                               - sets the distance at which you'll engage the main assist's    | 
|                                            target                                                        | 
|  /nuketype fire|magic|bolt [spellname]   - sets your current nuke to the specified type                  | 
|                                          - include spell name to set the nuke for that type              | 
|  /ds on|off                              - turns group ds on or off                                      | 
|  /pettype earth|wind|fire|water          - Sets the ini to the desired pet type for when /companion      | 
|                                            is on it will summon that type of pet                         | 
|----------------------------------------------------------------------------------------------------------+ 

#include mage_routines.inc 
#include gen_routines.inc 
#include Wait4Rez.inc
#include move.inc 

#turbo 40 

#chat group 
#chat tell 
#chat chat 
#chat say 

#event TankDS "#*#Your Lavaskin spell has worn off of Roachlimit.#*#"
#event Coth "#1# tells you, 'coth'" 
#event Coth "#1# tells you, 'coth #2#'" 
#event Coth "#1# told you, 'coth'" 
#event Coth "#1# told you, 'coth #2#'" 
#event Gate "#1# gates#*#" 
#event Goto "[MQ2] goto #1#" 
#event PetWeps "#1# #*#'#*#pet weps#*#'" 
#event RageOff "#*#is no longer enraged#*#" 
#event RageOn "#*#has become ENRAGED#*#"

Sub Main 
   :Book_Open
   /if (${Window[SpellBookWnd].Open}) /goto :Book_Open
   /pet focus
   /declare Use_HoE bool outer TRUE
   /declare MA_Set bool outer FALSE
   /lootn always
   /squelch /alias /hoe /echo Toggle HoE
   /call GeneralDeclares 
   /call DeclareIniVar mainAssist string Settings 
   /call DeclareIniVar secondAssist string Settings 
   /call DeclareIniVar minRadius int Settings 150 /radius 
   /call DeclareIniVar engageDelay int Settings 55 /engagedelay 
   /call DeclareIniVar minHP int Settings 95 /minhp 
   /call DeclareIniVar autoBuff int Settings 1 /buff 
   /call DeclareIniVar useMount int Settings 1 /mount 
   /call DeclareIniVar useDebuff int Settings 1 /debuff 
   /call DeclareIniVar nukeMode int Settings 1 /nuke 
   /call DeclareIniVar useCharm int Settings 0 /charm 
   /call DeclareIniVar useDPS int Settings 0 /dps 
   /call DeclareIniVar usePet int Settings 1 /companion 
   /call DeclareIniVar privateChannel string Settings " " 
   /call DeclareIniVar channelAnnounce int Settings 0 
   /call DeclareIniVar autoAnnounce string Settings 1  
   /call DeclareIniVar noInterrupt int Settings 0 
   /call DeclareIniVar useManaStone int Settings 0 
   /call DeclareIniVar checkNamed int Settings 0 /checknamed 
   /call DeclareIniVar noInvis int Settings 1 
   /call DeclareIniVar useManaRobe int Settings 1 
   /call DeclareIniVar manaRobeMode int Settings 1 
   /call DeclareIniVar manaRobeMinMana int Settings 70 
   /call DeclareIniVar manaRobeMaxMana int Settings 94 
   /call DeclareIniVar nukeMana int Settings 25 /nukemana 
   /call DeclareIniVar nukeDelay int Settings 0 /nukedelay 
   /call DeclareIniVar nukeMode int Settings 1 /nukemode 
   /call DeclareIniVar ignoreList string Settings 
   /call DeclareIniVar runeHP int Settings 70 
   /call DeclareIniVar cleanUp int Settings 0 /cleanup 
   /call DeclareIniVar useGroupDS int Settings 1 /ds    
   /call DeclareIniVar clarityBitch string Settings 
   /call DeclareIniVar spellSet string Settings "Macro" 
   /call DeclareIniVar maloDuration string Settings 19m 
   /call DeclareIniVar resistsTillMala int Settings 4 
   /call DeclareIniVar resistsTillQuit int Settings 3 

   /call DeclareIniVar nuke1 string Spells "Acikin" 
   /call DeclareIniVar nuke2 string Spells " " 
   /call DeclareIniVar magicNuke string Spells "Acikin" 
   /call DeclareIniVar fireNuke string Spells " " 
   /call DeclareIniVar boltNuke string Spells " " 
   /call DeclareIniVar summonedNuke string Spells " " 
   /call DeclareIniVar shielding string spells "Shadow Guard" 

   /call DeclareIniVar windPet string Spells "Saryrn's Companion" 
   /call DeclareIniVar earthPet string Spells " " 
   /call DeclareIniVar firePet string Spells " " 
   /call DeclareIniVar waterPet string Spells " " 

   /call DeclareIniVar petSpell string Spells "Saryrn's Companion" 
   /call DeclareIniVar malosiniaSpell string Spells "Dark Nightmare" 
   /call DeclareIniVar malosiniaType string Spells "Spell" 
   /call DeclareIniVar malaSpell string Spells "Dark Nightmare" 
   /call DeclareIniVar malaType string Spells "gem6" 
   /call DeclareIniVar groupDSSpell string Spells " " 
   /call DeclareIniVar singleDSSpell string Spells " " 
   /call DeclareIniVar siphonSpell string Spells " " 
   /call DeclareIniVar runeSpell string Spells "Manaskin" 
   /call DeclareIniVar runeType string Spells "Spell" 
   /call DeclareIniVar pethpSpell string Spells " " 
   /call DeclareIniVar pethpBuff string Spells " " 
   /call DeclareIniVar pethpType string Spells "item" 
   /call DeclareIniVar petHaste string Spells "Glyph of Darkness" 
   /call DeclareIniVar petShrinkSpell string Spells " " 
   /call DeclareIniVar petShrinkType string Spells " " 
   /call DeclareIniVar rodSpell string Spells " " 
   /call DeclareIniVar rodType string Spells "gem6" 

[B]   /call DeclareIniVar selfBuff1 string Spells "Shadow Guard" 
   /call DeclareIniVar selfBuffNoStack1 string Spells "Protection of the Nine,Blessing of the Nine,Steeloak Skin,Blessing of Steeloak, Heartwood Skin Rk. I, Heartwood Skin Rk. II, Heartwood Skin Rk. III, Darkpaw Focusing Rk. II" [/B]
   /call DeclareIniVar selfBuff2 string Spells " " 
   /call DeclareIniVar selfBuffNoStack2 string Spells " " 
   /call DeclareIniVar selfBuff3 string Spells " " 
   /call DeclareIniVar selfBuffNoStack3 string Spells " " 
   /call DeclareIniVar selfBuff4 string Spells " " 
   /call DeclareIniVar selfBuffNoStack4 string Spells " " 
   /call DeclareIniVar selfBuff5 string Spells " " 
   /call DeclareIniVar selfBuffNoStack5 string Spells " " 

   /call DeclareIniVar buffList1 string Spells "rod,modrod,mod" 
   /call DeclareIniVar buffName1 string Spells " " 
   /call DeclareIniVar buffType1 string Spells "gem5" 
   /call DeclareIniVar buffList2 string Spells "ds,dmg shield,damage shield" 
   /call DeclareIniVar buffName2 string Spells "ds" 
   /call DeclareIniVar buffType2 string Spells "gem5" 
   /call DeclareIniVar buffList3 string Spells " " 
   /call DeclareIniVar buffName3 string Spells " " 
   /call DeclareIniVar buffType3 string Spells " " 
   /call DeclareIniVar buffList4 string Spells " " 
   /call DeclareIniVar buffName4 string Spells " " 
   /call DeclareIniVar buffType4 string Spells " " 
   /call DeclareIniVar buffList5 string Spells " " 
   /call DeclareIniVar buffName5 string Spells " " 
   /call DeclareIniVar buffType5 string Spells " " 

   /call DeclareIniVar hpRobe string Items "${InvSlot[chest].Item.Name}" 
   /call DeclareIniVar clicky1 string Items " " 
   /call DeclareIniVar clickyNoStack1 string Items " " 
   /call DeclareIniVar clicky2 string Items " " 
   /call DeclareIniVar clickyNoStack2 string Items " " 
   /call DeclareIniVar clicky3 string Items " " 
   /call DeclareIniVar clickyNoStack3 string Items " " 
   /call DeclareIniVar clicky4 string Items " " 
   /call DeclareIniVar clickyNoStack4 string Items " " 
   /call DeclareIniVar clicky5 string Items " " 
   /call DeclareIniVar clickyNoStack5 string Items " " 
   /call DeclareIniVar useFood int Items 0 
   /call DeclareIniVar statFood string Items " " 
   /call DeclareIniVar food1 string Items " " 
   /call DeclareIniVar food2 string Items " " 
   /call DeclareIniVar food3 string Items " " 
   /call DeclareIniVar food4 string Items 
   /call DeclareIniVar food5 string Items 
   /call DeclareIniVar meleeWep string Items " " 
   /call DeclareIniVar invisItem string Items " " 
   /call DeclareIniVar dispellItem string Items " " 
   /call DeclareIniVar normalMainhand string Items "${InvSlot[mainhand].Item.Name}" 
   /call DeclareIniVar normalOffhand string Items "${InvSlot[offhand].Item.Name}" 
   /call DeclareIniVar hpMask string Items "${InvSlot[face].Item.Name}" 

   /squelch /custombind add ma 
   /squelch /custombind add sa 
   /squelch /alias /anchor /echo SetAnchor 
   /squelch /alias /manarobe /echo Mana Robe 
   /squelch /alias /nuketype /echo NukeType 
   /squelch /alias /pettype /echo PetType 
   /squelch /alias /setma /custombind set ma /assist 
   /squelch /alias /setsa /custombind set sa /assist 
    
   /declare i int local 
   /declare j int local 
   /declare oldTarget int local 
   /declare tempTimer timer local 0 
   /declare cureTimer timer local 0 
   /declare petID2 int outer 0 
   /varset castSub CheckForAdds 
:check_params 
   /if ( ${Defined[Param${i}]} ) { 
      /if ( ${Param${i}.Equal[ma]} ) { 
         /varcalc i ${i}+1 
         /call SetIniVar mainAssist Settings "${Param${i}}" 
      } else /if ( ${Param${i}.Equal[sa]} ) { 
         /varcalc i ${i}+1 
         /call SetIniVar secondAssist Settings "${Param${i}}" 
      } else /if ( ${Param${i}.Equal[radius]} ) { 
         /varcalc i ${i}+1 
         /call SetIniVar minRadius Settings "${Param${i}}" 
      } else /if ( ${Param${i}.Equal[minhp]} ) { 
         /varcalc i ${i}+1 
         /call SetIniVar minHP Settings "${Param${i}}" 
      } else /if ( ${Param${i}.Equal[buff]} ) { 
         /call SetIniVar autoBuff Settings 1 
      } else /if ( ${Param${i}.Equal[nobuff]} ) { 
         /call SetIniVar autoBuff Settings 0 
      } else /if ( ${Param${i}.Equal[nuke]} ) { 
         /call SetIniVar nukeMode Settings 1 
      } else /if ( ${Param${i}.Equal[nonuke]} ) { 
         /call SetIniVar nukeMode Settings 0 
      } else /if ( ${Param${i}.Equal[debuff]} ) { 
         /call SetIniVar useDebuff Settings 1 
      } else /if ( ${Param${i}.Equal[nodebuff]} ) { 
         /call SetIniVar useDebuff Settings 0 
      } 
      /varcalc i ${i}+1 
      /goto :check_params 
   } 

   /call SwapStatFood 1 

   /if ( ${autoAnnounce} ) /announce on 

   /if (${Spawn[pc Roachlimit].ID}) {
      /memspellset macro
   } else {
      /memspellset solo
   }
   /echo Auto Mage Mode Activated 
   /if ( ${nukeMode} || ${useDebuff} ) { 
      /echo Main Assist: ${mainAssist} 
      /if ( ${Bool[${secondAssist}]} ) /echo Secondary Assist: ${secondAssist} (if ${mainAssist} dies) 
   } 
   /if ( ${nukeMode} || ${useDebuff} ) /echo Will ${If[${useDebuff},malosinia ,]}${If[${nukeMode} && ${useDebuff},then ,]}${If[${nukeMode},start nuking ,]}at ${minHP}% 
   /if ( ${autoBuff} ) /echo Auto Buff is enabled. 
   /if ( ${useMount} ) /echo Mount is enabled. 
   /if ( ${manaRobeMode} ) /echo ManaRobe Mode: ${manaRobeMode} 
:wait_for_target 
  /if ( !${petSpamTimer} ) { 
      /pet hold 

      /varset petSpamTimer 50 
   } 
   /if ( ${nukeMode} || ${useDebuff} ) /echo Waiting for target... 
   /varset validTarget 0 
:wait_for_target2 
   /if ( ${Spawn[pc ${secondAssist}].ID} && ( !${Spawn[pc ${mainAssist}].ID} || ${Spawn[corpse ${mainAssist}].ID} ) ) { 
      /varset mainTank ${secondAssist} 
   } else { 
      /varset mainTank ${mainAssist} 
   } 
   /if ( !${Corpse.Open} && ${Spawn[${mainAssist}].NearestSpawn[npc radius ${Math.Calc[${minRadius}*2]}].ID} && ( ${nukeMode} || ${useDebuff} ) ) { 
      /if ( ${Me.Casting.ID} ) /call WaitCast 
      /assist ${mainTank} 
      /varset oldTarget ${Target.ID} 
      /varset tempTimer 5 
   :wait_for_assist1 
      /call CheckTarget 
      /if ( ${tempTimer} && !${validTarget} ) /goto :wait_for_assist1 
   } 
   /call CheckTarget 
   /if ( !${validTarget} || ( !${nukeMode} && !${useDebuff} ) ) { 
      /call CheckPet 
      /call CheckPet2 
      /doevents 
      /call CheckBuffs 
      /call CheckLoc 
      /if (${Me.CombatState.Equal[DEBUFFED]} && ${Spawn[pc Roachlimit].ID} && !${cureTimer} && !${Me.Buff[resurrection effects].ID}) {
        /tell Roachlimit /alt activate 153
        /varset cureTimer 5s
        }
|     /if (${Me.State.Equal[SIT]} && ${Me.PctMana} > 99 && !${Window[SpellBookWnd].Open}) /stand
|     /if ((${Me.CombatState.Equal[ACTIVE]} && !${Me.Casting.ID} && !${Me.Moving} && ${Me.PctMana} < 100 && !${Me.State.Equal[SIT]}) || (!${useManaRobe} && !${Me.State.Equal[SIT]})) {
|       /call SwapItem "${hpRobe}" chest
|       /sit
|       } else {
|       /if ( !${Me.CombatState.Equal[RESTING]} && !${Me.CombatState.Equal[ACTIVE]} ) /call ManaRobe 
|       }
      /delay 0 
      /goto :wait_for_target2 
   } 
   /echo Target Aquired >> ${Target.DisplayName} << 
|  /if ( ${Me.PctMana} <= 20 ) {
|    /call SitOut
|     /goto :wait_for_target
|  }
   /varset petAttacking false 
   /varset engaged 0 
   /varset nukeWaitTimer 0 
   /varset mobID ${Target.ID}
   /varset mobHPStart ${Target.PctHPs} 
   /call UpdateMobList 
   /call AddToList mobList ${mobID} 
   /varset nukeWaitTimer 0 
   /if ( ${Defined[waitTimer${mobID}]} ) /deletevar waitTimer${mobID} 
   /declare waitTimer${mobID} int outer -1 
   /varset newAdds 0 
:nuke_loop 
   /varset addIndex 1 
:check_add_loop 
   /call CheckForAdds 
   /if ( ${addIndex}>1 ) /goto :check_add_loop 
   /call CheckPet 
   /call CheckPet2 
   /if ( !${Spawn[${mobID}].Type.Equal[NPC]} && ( !${Spawn[${mobID}].Type.Equal[pet]} || ${Spawn[${mobID}].Master.Type.Equal[pc]} ) ) { 
      /echo Target Dead! 
      /if ( ${cleanUp} ) /call CleanUp ${mobID} 
      /goto :wait_for_target 
   } 
   /target id ${mobID} 
   /if ( ${Spawn[${mobID}].Distance3D}<=${minRadius} && ${Spawn[pc ${mainTank}].NearestSpawn[radius ${Spawn[${mobID}].MaxRangeTo} id ${mobID}].ID} && ${waitTimer${mobID}}<0 ) { 
      /deletevar waitTimer${mobID} 
      /declare waitTimer${mobID} timer outer ${engageDelay} 
   }
   /if ( ( ${waitTimer${mobID}}>=0 || ${engaged} ) && ${useDebuff} ) /call DebuffMobs 
   /target id ${mobID} 
   /if ( ( ${Target.PctHPs}>${minHP} && ${waitTimer${mobID}} ) || !${assistWaitTimer} ) { 
      /if ( ${Spawn[pc ${secondAssist}].ID} && ( !${Spawn[pc ${mainAssist}].ID} || ${Spawn[corpse ${mainAssist}].ID} ) ) { 
         /varset mainTank ${secondAssist} 
      } else { 
         /varset mainTank ${mainAssist} 
      } 
      /assist ${mainTank} 
      /varset tempTimer 8 
   :wait_for_assist 
      /call CheckPet 
      /if ( ${tempTimer} && ${Target.ID}==${mobID} ) /goto :wait_for_assist 
      /if ( ${Target.ID} && ${Target.ID}!=${mobID} ) /goto :wait_for_target 
      /varset assistWaitTimer 5s 
      /goto :nuke_loop 
   } 
   /if ( !${engaged} ) { 
      /varset engaged 1
      /echo Engaging >> ${Target.DisplayName} << 
   } 
   /if ( ${Me.Pet.ID} && !${petAttacking} && !${Me.PetBuff[elemental silence]} ) { 
[B]       /pet attack 
      /if (${Me.AltAbilityReady[Army of the Dead]} && ${Use_HoE}) {
        /call Cast "Army of the Dead" alt
        /goto :AA_Done
      }
      /if (${Me.AltAbilityReady[Frenzied Burnout]}) {
        /call cast "Frenzied Burnout" alt
        /goto :AA_Done
      }
      /if (${Me.AltAbilityReady[Army of the Dead]} && (${Me.Gem[${fireNuke}]} || ${Me.Gem[${summonedNuke}]})) {
	  /call cast "Army of the Dead" alt
        /goto :AA_Done
      }
      /if (${Me.AltAbilityReady[Swarm of Decay]} && ${Me.Gem[${fireNuke}]}) {
        /call cast "Swarm of Decay" alt
        /goto :AA_Done
      }
      :AA_Done
      /varset petAttacking true 
   } [/B]
   /if ( !${Spawn[${mobID}].Type.Equal[NPC]} && !${Spawn[${mobID}].Type.Equal[pet]} ) /goto :wait_for_target 
   /doevents timer 
   /if ( !${petOff} && ( ${maloTimer${mobID}}<0 || ${maloTimer${mobID}}>1 || !${useDebuff} ) ) { 
      /doevents 
      /call CheckBuffs 
      /target id ${mobID}
      /if ( ${nukeMode} && ${Target.LineOfSight} && !${Me.TargetOfTarget.Name.Equal[${Me.Name}]} && !${nukeWaitTimer} &&  ( ${Me.PctMana}>=${nukeMana} || ${nukeMode}==2 ) && ( ${Target.Type.Equal[NPC]} || ${Target.Type.Equal[pet]} ) ) { 
         /if ( ${useManaRobe} && ${refreshTime}>2 ) { 
           /if ( !${Me.CombatState.Equal[RESTING]} && !${Me.CombatState.Equal[ACTIVE]} ) /call ManaRobe 
         } else {
           /if ( ${Me.Song[Gift of Mana].ID} || ${Me.Song[Gift of Radiant Mana].ID} ) { 
             /call Cast "Rampaging Servant Rk. II" gem9
           } else {
             /if ( ${Me.Song[Flames of Power].ID} && !${useDebuff} ) {
               /call Cast "Bolt of Molten Dross" gem2
             } else {
               /if ( ${Me.PctMana} <= 30 || ${Me.Buff[Flames of Weakness].ID} ) {
                 /if ( && !${FindItem[Summoned: Elemental Ice Sliver].Timer} && ${FindItem[Summoned: Elemental Ice Sliver].ID} ) {
                   /potionbelt activate 3
                 }
               } else {
                 /if (${Me.PctMana} < 75 && !${FindItem[Primal Element Robe].Timer} && ${FindItem[Primal Element Robe].ID}) {
		       /call Cast "Primal Element Robe" item
|                   /if (${InvSlot[chest].Item.ID} != ${FindItem[${hprobe}].ID}) /exchange ${FindItem[${hprobe}].ID} chest
		       /goto :click_nuke_done
		     }
                 /if (${Me.PctMana} < 75 && !${FindItem[Blood Fire Signet].Timer} && ${FindItem[Blood Fire Signet].ID}) {
		       /call Cast "Blood Fire Signet" item
		       /goto :click_nuke_done
		     }
                 /call Cast "${nuke1}" gem1 0 CheckPet 
                 :click_nuke_done
                 /if ( ${Macro.Return.Equal[CAST_NOTREADY]} && ${Me.Gem[${nuke2}]} ) /call Cast "${nuke2}" gem1 0 CheckPet 
                 /if ( ${Macro.Return.Equal[CAST_SUCCESS]} || ${Macro.Return.Equal[CAST_RESISTED]} ) { 
                   /if ( ${nukeMode}==1 ) { 
                     /varcalc nukeWaitMod 2*(90 - ${Me.PctMana}) 
                   } else { 
                     /varset nukeWaitMod 0                
                   } 
                   /if ( ${nukeDelay}>${nukeWaitMod} ) { 
                     /varset nukeWaitTimer ${nukeDelay} 
                   } else { 
                     /varset nukeWaitTimer ${nukeWaitMod} 
                   } 
                 } 
               }
             }
           } 
         } 
      } else { 
        /if ( !${Me.CombatState.Equal[RESTING]} && !${Me.CombatState.Equal[ACTIVE]} ) /call ManaRobe 
      } 
   } 
/goto :nuke_loop 

Sub DebuffMobs 
   /declare i int local 
   /declare tempID string local 
   /if ( ${mobList.Find[[]} ) { 
      /for i 1 to ${mobList.Count[[]} 
         /if ( ${mobList.Find[[]}>1 ) /varset mobList ${mobList.Right[-${Math.Calc[${mobList.Find[[]}-1]}]} 
         /varset tempID ${mobList.Arg[${i},[].Left[-1]} 
         /if ( !${Defined[maloTimer${tempID}]} ) { 
            /if ( !${Spawn[${tempID}].Type.Equal[npc]} ) { 
               /declare maloTimer${tempID} int outer -1 
            } else /if ( ( !${waitTimer${tempID}} && ( ${maloTimer${mobID}} || ${waitTimer${mobID}} ) ) || ${tempID}==${mobID} ) { 
               /call UpdateMobList 
               /target id ${tempID} 
               /call Malo 
            } 
         } 
      /next i 
   } 
/return 

Sub CheckPet 
   /if ( ${Zone.ID}!=${currentZone} ) { 
      /varset currentZone ${Zone.ID} 
      /varset mobList 
      /varset addList 
      /varset buffQueue 
      /varset mobID 0 
      /varset petID 0 
      /varset petID2 0 
      /varset useAnchor 0 
      /squelch alert clear 6 
      /call ClearMobList  
   } 
   /call CheckForAdds 
   /declare i int local 
   /declare tempID int local 
   /if ( ${petOff} && ${Me.Pet.ID} ) { 
      /varset petOff 0 
   } 
   /if ( !${Spawn[${petID2}].Type.Equal[NPC]} && ${petOff2} ) /varset petOff2 0 
   /if ( ${Spawn[${petID}].Type.Equal[NPC]} && !${petOff} ) { 
      /echo Pet Off! 
      /varset petAttacking false 
      /varset petOff 1 
   } 
   /if ( ${Spawn[${petID2}].Type.Equal[NPC]} && !${petOff2} ) { 
      /echo Chanter Pet Off! 
      /varset petOff2 1 
   } 

   /if ( ${petOff} && ${Me.Casting.ID} && !( ${Me.Casting.Name.Equal[malosinia]} && ${Target.ID}==${petID} ) && !${Me.Casting.Name.Equal[Elemental Silence]} && !${Me.Casting.Name.Equal[call of the arch mage]} ) /call Interrupt 
   /doevents gate 
   /doevents rageon 
   /doevents rageoff 
   /doevents setvar 
   /if ( ${castWaitTime}>5 ) /doevents chat 
/return 

Sub CheckPet2 
   /if ( !${Me.Inventory[face].Name.Equal[${hpMask}]} ) /call SwapItem "${hpMask}" face 
   /if ( ${FindItem[Wand of Destructive Protection].ID} ) { 
      /declare AETime float local 
      /varcalc AETime (${MacroQuest.Running}-${uquaAETime})%90000 
      /if ( ${AETime}>83000 ) { 
         /if ( !${Me.Inventory[offhand].Name.Equal[Wand of Destructive Protection]} ) /call EquipItem "Wand of Destructive Protection|offhand" 
      } else { 
         /if ( ${AETime}>3000 && !${Me.Inventory[offhand].Name.Equal[${normalOffhand}]} ) /call EquipItem "${normalOffhand}|offhand" 
      } 
   } else { 
      /if ( !${Me.Inventory[offhand].Name.Equal[${normalOffhand}]} ) /call SwapItem "${normalOffhand}" offhand 
   } 
   /if ( ${petOff} ) /call Charm ${petID} 
   /if ( ${petOff2} &&  !( ${maloTimer${petID2}}>=4200 ) ) { 
      /declare oldTargetID int local ${Target.ID} 
      /tar id ${petID2} 
      /call Malo 
      /if ( ${Spawn[${oldTargetID}].ID} ) { 
         /target id ${oldTargetID} 
      } else { 
         /keypress clear_target 
      } 
   } 
/return 

Sub CheckForAdds 
:check_add_loop 
   /if ( !${Spawn[${mobID}].Type.Equal[npc]} && !${Spawn[${mobID}].Type.Equal[pet]} ) { 
      /varset addIndex 1 
      /return 
   } 
   /varset addID ${NearestSpawn[${addIndex},npc radius ${minRadius}].ID} 
   /if ( ${addID} ) { 
      /if ( ${Spawn[${addID}].Distance}<=${minRadius} && ${addID}!=${petID} && ${Spawn[${addID}].LineOfSight} && ${aggroAnim.Find[|${Spawn[${addID}].Animation}|]} && ${mezTimer${addID}}!=-1 && ${Spawn[${addID}].Type.Equal[NPC]} ) { 
         /call AddToList mobList ${addID} 
         /if ( ${Macro.Return.Equal[1]} ) { 
            /if ( !${Defined[waitTimer${addID}]} ) /declare waitTimer${addID} timer outer ${engageDelay}
            /echo Add detected! >> ${Spawn[${addID}].DisplayName} << 
         } 
         /varset newAdds 1 
      } 
      /varcalc addIndex ${addIndex}+1 
   } else { 
      /varset addIndex 1 
   } 
/return 

Sub Charm(int tempID) 
   /if ( ${Me.Pet.ID} ) /return 
   /varset noInvis 0 
   /declare oldTargetID int local ${Target.ID} 
:mez_pet 
   /target id ${tempID} 
   /call Cast "Elemental Silence" gem7 3s    
   /if ( !${Macro.Return.Equal[CAST_SUCCESS]} ) /goto :mez_pet 
:malo_pet 
   /target id ${tempID} 
   /call Malo 
   /if ( !${Macro.Return.Equal[CAST_SUCCESS]} ) /goto :malo_pet 
   /target id ${tempID} 
   /call Cast "Call of the Arch Mage" gem6 5s 
   /if ( ${Me.Pet.ID} ) { 
      /if ( ${Spawn[${oldTargetID}].ID} ) { 
         /target id ${oldTargetID} 
      } else { 
         /keypress clear_target 
      } 
   } 
   /varset noInvis ${Ini[${iniName},Settings,NoInvis,1]} 
/return 

Sub Malo 
   /declare tempID int local ${Target.ID} 
   /if ( !${Defined[maloResists${tempID}]} ) /declare maloResists${tempID} int outer 0 
   /if ( ${maloResists${tempID}}==${resistsTillMala} ) /call Cast "${malaSpell}" ${malaType} 5s CheckPet 
   /if ( ${maloResists${tempID}}==${resistsTillQuit} ) { 
      /deletevar maloTimer${tempID} 
      /declare maloTimer${tempID} int outer -1 
      /return 
   } 
   /call Cast "${malosiniaSpell}" ${malosiniaType} 0 CheckPet 
   /if ( !${Defined[maloTimer${tempID}]} ) /declare maloTimer${tempID} timer outer 
   /if ( ${Macro.Return.Equal[CAST_SUCCESS]} ) { 
      /tell dosquatro %t is Malosinia'd
      /varset maloTimer${tempID} 19m | ${maloDuration} 
      /varset maloResists${tempID} 0 
   } else /if ( ${Macro.Return.Equal[CAST_OUTOFMANA]} || ${Macro.Return.Equal[CAST_OUTOFRANGE]} || ${Macro.Return.Equal[CAST_CANNOTSEE]} ) { 
      /varset maloTimer${tempID} 50      
   } else { 
      /if ( ${Macro.Return.Equal[CAST_RESISTED]} ) /varcalc maloResists${tempID} ${maloResists${tempID}}+1 
      /varset maloTimer${tempID} 1 
   } 
/return ${Macro.Return} 


Sub CheckBuffs 
/if (${Window[RespawnWnd].Open}) {
  /varset deathFlag TRUE
  /goto :dead
  } else {
  /varset deathFlag FALSE
  }

   /if ( ${Me.Combat} ) { 
      /if ( !${Me.Inventory[mainhand].Name.Equal[${meleeWep}]} && ${FindItem[${meleeWep}].ID} ) /call SwapItem "${meleeWep}" mainhand 
   } else { 
      /if ( !${Me.Inventory[mainhand].Name.Equal[${normalMainhand}]} && ${FindItem[${normalMainhand}].ID} ) /call SwapItem "${normalMainhand}" mainhand 
   } 
   /declare i int local 
   /declare j int local 
   /declare buffText string local 
   /declare targetName string local 
   /declare spellName2 string local 
   /declare spellType string local 
   /declare spellRange int local 118 
   /declare spellName string local 
   /declare buffName string local 
   /declare focusList string local Wunshi's Focusing,Focus of Alladnu,Focus of Soul,Talisman of Kragg,Focus of the Seventh,Talisman of Wunshi,Dire Focusing,Talisman of the Dire
   /declare shaman bool local false 
   /declare targetType string local 

   /if ( !${petID} && ${Me.Pet.ID} ) /varset petID ${Me.Pet.ID} 
   /if ( !${petID2} && ${Spawn[${clarityBitch}].Pet.ID} ) /varset petID2 ${Spawn[${clarityBitch}].Pet.ID} 
   /if ( !${Me.Pet.ID} && ${usePet} && !${petOff} && ${Me.CurrentMana}>=900 && ${FindItem[Rod of Prime Transvergence].ID} ) /call SumPet 


   /if ( ${Me.Hunger}<5000 && ${useFood} ) { 
      /declare foodName string local 
      /declare oldSlotID int local 
      /call GetFoodName 
      /varset foodName ${Macro.Return} 
      /if ( ${Bool[${foodName}]} ) { 
         /varset oldSlotID ${FindItem[${foodName}].InvSlot.ID} 
         /call SwapItem "${foodName}" "pack8" 
         /nomodkey /itemnotify pack8 rightmouseup 
         /if ( ${FindItem[${foodName}].ID} ) /call SwapItem "${foodName}" "${oldSlotID}" 
      } 
   } 
   /if ( ${checkNamed} ) /call CheckNamed 


   /if ( !${Me.Buff["Clairvoyance"].ID} && !${Me.Buff["Voice of Clairvoyance"].ID} && ${Spawn[pc ${clarityBitch} radius 100].ID} && !${c6Timer} ) { 
      /chat tell ${clarityBitch} c6 
      /varset c6Timer 1m 
   } 

|   /if ( !${Me.Buff[Dire Focusing].ID} && !${Me.Buff[Talisman of the Dire].ID} && ${Spawn[pc Roachlimit radius 100].ID}) {
|      :Roachlimit_loop
|      /tell Roachlimit Focus
|      /delay 5s ${Me.Buff[Dire Focusing].ID}
|      /if (!${Me.Buff[Dire Focusing].ID}) /goto :Roachlimit_loop
|   }
|   /if ( !${Me.Buff[Tenacity Rk. II].ID} && !${Me.Buff[Hand of Tenacity].ID} && ${Spawn[pc CLERICNAMEHERE radius 100].ID}) {
|      :CLERICNAMEHERE_loop
|      /tell CLERICNAMEHERE Tenacity
|      /delay 5s ${Me.Buff[Tenacity Rk. II].ID}
|      /if (!${Me.Buff[Tenacity Rk. II].ID}) /goto :CLERICNAMEHERE_loop
|   }

   /if ( ${FindItem[Summoned: Elemental Ice Sliver].ID} && !${FindItem[Summoned: Elemental Ice Sliver].Charges} ) /call Ice_Destroy
   /if ( ${Me.Song[Gift of Radiant Mana].ID} && ${Me.CurrentMana} >= 1450 && !${FindItem[Summoned: Elemental Ice Sliver].ID} ) {
     /call Cast "Summon Gelid Paradox" gem8
     /delay 3s !${Me.Casting.ID}
     /autoinv
   }
   /if ( ${Cursor.Name.Equal[Rod of Prime Transvergence]} ) /autoinventory 
   /if ( !${FindItem[Rod of Prime Transvergence].ID} ) /call AddToQueue "rod,${Me.Name}" 
   /if ( ${FindItem[Rod of Prime Transvergence].ID} && !${FindItem[Rod of Prime Transvergence].Timer} && ${Me.PctHPs}>50 && ${Me.PctMana}<=95 ) { 
      /call Cast "Rod of Prime Transvergence" item
   } 
   /if ( ${useMount} && !${Me.Mount.ID}) /call Cast "${Me.Inventory[ammo].Name}" item 
   /if (!${Me.Buff[Elemental Form: Water].ID} && ${Me.AltAbilityReady[Elemental Form: Water]} && !${Me.Mount.ID}) /call cast "62" alt
   /if ( ${Me.Pet.ID} ) { 
      /if ( !${Me.PetBuff[${pethpSpell}]} && !${Me.PetBuff[call of the arch mage]} && ${FindItem[Focus of Primal Elements].ID} && !${FindItem[Focus of Primal Elements].Timer} && ${Me.Pet.Distance3D}<=100 ) /call Cast "${pethpBuff}" ${pethpType} 3s 
      /if ( !${Me.PetBuff[${petHaste}]} && !${Me.PetBuff[call of the arch mage]} && ${Me.Pet.Distance3D}<=100 ) /call Cast "${petHaste}" gem7 2s 
      /if ( !${Me.PetBuff[Iceflame Tenement]} ) /call Cast "Iceflame Tenement" gem3
      /if ( !${Me.PetBuff[rathe's strength effect]} ) /call Cast "rathe's strength" gem3
      /if ( !${Me.PetBuff[burnout]} && ${Me.PetBuff[call of the arch mage]} ) /call Cast "Burnout" gem7 2s 
      /if ( !${Me.Buff[${siphonSpell} Recourse].ID} && !${Me.PetBuff[call of the arch mage]} && !${Me.Buff[Mind Wrack Recourse].ID} && ${Me.Pet.ID} && ${Me.Pet.Distance3D}<=100 && ${Me.Book[${siphonSpell}]} ) /call cast "${siphonSpell}" gem8 0 CheckPet 
   } 
   /doevents TankDS
   /if ( !${Me.Buff[${groupDSSpell}].ID} && ${useGroupDS} ) { 
      /if ( ${Spawn[pc ${mainAssist}].ID} ) { 
         /call AddToQueue "${groupDSSpell},${mainAssist}" 
      } else { 
         /call AddToQueue "${groupDSSpell},${Me.Name}" 
      } 
   } 
   /if ( !${autoBuff} ) /goto :skip_buffs 
   /if ( ${Me.PctHPs}<=${runeHP} ) { 
      /if ( ${Me.Book[${runeSpell}]} ) { 
         /if ( !${Me.Buff[${runeSpell}].ID} ) /call cast "${runeSpell}" ${runeType} 0 CheckPet 
      } else /if ( ${FindItem[${runeSpell}].ID} ) { 
         /if ( !${Me.Buff[${FindItem[${runeSpell}].Spell.Name}].ID} ) /call cast "${runeSpell}" ${runeType} 0 CheckPet 
      } 
   } 
   /doevents Indoors 
   /call CheckIniBuffs 
   /if ( ${Spawn[pc class shaman].ID} ) { 
      /if ( ${Raid.Members} ) { 
         /varset shaman true      
      } else { 
         /for i 1 to ${Group} 
            /if ( ${Group.Member[${i}].Class.Name.Equal[shaman]} ) /varset shaman true 
         /next i 
      } 
   } 
  
   /if ( ${shaman} ) { 
      /if ( ${Me.Buff["${shielding}"].ID} ) /call ClickOffBuff "${shielding}" 
   } else { 
      /for i 1 to ${focusList.Length} 
         /if ( ${Me.Buff[${focusList.Arg[${i},,]}].ID} ) /goto :skip_buffs 
      /next i 
      /if ( !${Me.Buff[${shielding}].ID} ) /call AddToQueue "${shielding}" 
   } 
:skip_buffs 
   /if ( ${Target.Name.Equal[${Me.Pet.Name}]} ) { 
      /if ( ${Spawn[${oldTarget}].ID} ) { 
         /target id ${oldTarget} 
      } else { 
         /keypress clear_target 
      } 
   } 
   /if ( ${buffQueue.Find[[]} ) { 
      /if ( ${buffQueue.Find[[]}>1 ) /varset buffQueue ${buffQueue.Right[-${Math.Calc[${buffQueue.Find[[]}-1]}]} 
      /for i 1 to ${buffQueue.Count[[]} 
         /varset buffText [${buffQueue.Arg[${i},[]} 
         /varset spellName ${buffText.Arg[1,,].Right[-1]} 
         /if ( ${spellName.Right[1].Equal["]"]} ) /varset spellName ${spellName.Left[-1]} 
         /varset targetName ${buffText.Arg[2,,].Left[-1]} 
         /call GetBuffName "${spellName}" 
         /varset spellName ${Macro.Return.Arg[1,,]} 
         /varset spellType ${Macro.Return.Arg[2,,]} 
         /if ( ${spellType.Equal[item]} ) { 
            /varset spellName2 ${FindItem[${spellName}].Spell.Name} 
         } else { 
            /varset spellName2 ${spellName} 
         } 
         /if ( ${Spell[${spellName2}].TargetType.Equal[Group v2]} ) { 
            /varcalc spellRange 1.18*${Spell[${spellName2}].AERange} 
         } else { 
            /varcalc spellRange 1.18*${Spell[${spellName2}].Range} 
         } 
         /varset targetType pc 
         /if ( !${Spawn[pc ${targetName}].ID} ) /varset targetType pet          
         /if ( ${Bool[${spellName}]} ) { 
            /if ( ${Me.CurrentMana}>=${Math.Calc[${Spell[${spellName}].Mana}+${Me.ManaRegen}]} || ${spellType.Equal[item]} || ${spellType.Equal[alt]} ) { 
               /if ( !${Bool[${targetName}]} ) { 
                  /call Cast "${spellName}" ${spellType} 4s CheckForAdds 
               } else /if ( ${Spawn[${targetType} ${targetName}].ID} && ( ${Spawn[pc ${targetName}].Distance3D}<=${spellRange} || !${spellRange} ) ) { 
                  /target ${targetType} ${targetName} 
                  /call Cast "${spellName}" ${spellType} 4s CheckForAdds 
                  /if ( ${Spawn[${oldTarget}].ID} ) { 
                     /if ( ${Target.Name.Equal[${targetName}]} ) /target id ${oldTarget} 
                  } else { 
                     /keypress clear_target 
                  }    
               } 
               /if ( ${Macro.Return.Equal[CAST_SUCCESS]} || ${Macro.Return.Equal[CAST_UNKNOWNSPELL]} || ${Macro.Return.Equal[CAST_NOTARGET]} || ( ${Macro.Return.Equal[CAST_CANCELLED]} && ( !${newAdds} || !${useMez} ) ) ) { 
                  /call DeleteFromQueue "${buffText}" 
                  /varcalc i ${i}-1 
               } 
            } 
         } else { 
            /call DeleteFromQueue "${buffText}" 
            /varcalc i ${i}-1 
         } 
      /next i 
   } 
   /return 
:dead 
/declare i int local 
/varset mobList 
/varset addList 
/varset buffQueue 
/varset mobID 0 
/varset petID 0 
/varset useAnchor 0 
/squelch alert clear 6 
/call ClearMobList
/call Wait4Rez 
/return 

Sub GetBuffName(string spellName) 
   /declare i int local 
   /declare buffText string local 
   /declare spellType string local gem3
   /if ( ${spellName.Equal[rod]} ) { 
      /varset spellName ${rodSpell} 
      /varset spellType ${rodType} 
   } 
   /if ( ${spellName.Equal[ds]} ) { 
      /varset spellName ${singleDSSpell} 
      /varset spellType gem3
   } 
   /if ( ${spellName.Equal[coth]} ) /varset spellName Call of the Hero 
   /for i 1 to 5 
      /if ( ${spellName.Equal[${buffName${i}}]} ) /varset spellType ${buffType${i}} 
   /next i 
   /if ( ${Int[${Me.Book[${spellName}]}]} || ${AltAbility[${spellName}].ID} || ${FindItem[${spellName}].ID} ) /return ${spellName},${spellType} 
/return 

Sub SumPet 
   /declare i int local 
   /if ( ${Me.AltAbilityReady[suspended minion]} ) /call Cast "suspended minion" alt 2s 
   /delay 3s ${Me.Pet.ID} 
   /if ( !${Me.Pet.ID} ) { 
      /call cast "${petSpell}" gem5 5s 
      /tar id ${Me.Pet.ID}
      /pet focus 
      /call SumWeps 
      /call Cast "${petShrinkSpell}" ${petShrinkType} 3s 
      /call Cast "${petShrinkSpell}" ${petShrinkType} 3s 
   } 
/return 

Sub SumWeps
   /if ( ${Target.Pet.ID} ) /target id ${Target.Pet.ID} 
   /if ( !${Target.Type.Equal[pet]} ) /return 
   /memspell 8 "Summon Muzzle of Mowcha"
   /delay 15
   /delay 30s ${Me.SpellReady[8]}
   /call Cast "Summon Muzzle of Mowcha" gem8 3s 
   /call GiveToPet 
   /if (${InvSlot[pack8].Item.ID} == 52709 || !${InvSlot[pack8].Item.ID}) {
     /memspell 8 "Summon Prime Armaments"
     /delay 3s
     /delay 30s ${Me.SpellReady[8]}
     /call Cast "Summon Prime Armaments" gem8 3s
     /nomodkey /itemnotify pack8 leftmouseup
     /delay 3
     /nomodkey /itemnotify pack8 rightmouseup
     /delay 3
     /nomodkey /itemnotify ${FindItem[Summoned: Tonfa of the North Wind].InvSlot.ID} leftmouseup
     /delay 3
     /call GiveToPet
     /delay 15
     /nomodkey /itemnotify ${FindItem[Summoned: Tonfa of the North Wind].InvSlot.ID} leftmouseup
     /delay 3
     /call GiveToPet
     /delay 5
     /if (${FindItem[Rod of Prime Transvergence].ID}) /exchange 52709 pack8
     /if (${Cursor.ID} == 17310) /drop
   } else {
     /echo Pack8 Not Cleared...
     /return
   }
   /if (${InvSlot[pack8].Item.ID} == 52709 || !${InvSlot[pack8].Item.ID}) {
     /memspell 8 "Summon Plate of the Elements"
     /delay 15
     /delay 30s ${Me.SpellReady[8]}
     /call Cast "Summon Plate of the Elements" gem8 3s 
     /nomodkey /itemnotify pack8 leftmouseup
     /delay 3
     /nomodkey /itemnotify pack8 rightmouseup
     /delay 3
     /nomodkey /itemnotify ${FindItem[Eidolon Plate Helm].InvSlot.ID} leftmouseup
     /delay 3
     /call GiveToPet
     /delay 5
     /nomodkey /itemnotify ${FindItem[Eidolon Plate Gauntlets].InvSlot.ID} leftmouseup
     /delay 3
     /call GiveToPet
     /delay 5
     /nomodkey /itemnotify ${FindItem[Eidolon Plate Bracers].InvSlot.ID} leftmouseup
     /delay 3
     /call GiveToPet
     /delay 5
     /nomodkey /itemnotify ${FindItem[Eidolon Plate Greaves].InvSlot.ID} leftmouseup
     /delay 3
     /call GiveToPet
     /delay 5
     /nomodkey /itemnotify ${FindItem[Eidolon Plate Vambraces].InvSlot.ID} leftmouseup
     /delay 3
     /call GiveToPet
     /delay 5
     /nomodkey /itemnotify ${FindItem[Eidolon Plate Boots].InvSlot.ID} leftmouseup
     /delay 3
     /call GiveToPet
     /delay 5
     /nomodkey /itemnotify ${FindItem[Eidolon Plate Breastplate].InvSlot.ID} leftmouseup
     /delay 3
     /call GiveToPet
     /delay 5
     /nomodkey /itemnotify ${FindItem[Summoned: Lucid Belt].InvSlot.ID} leftmouseup
     /delay 3
     /call GiveToPet
     /delay 5
     /if (${FindItem[Rod of Prime Transvergence].ID}) /exchange 52709 pack8
     /if (${Cursor.ID} == 17310) /drop
   } else {
     /echo Pack8 Not Cleared...
     /return
   }
   /squelch /target clear
/return 


Sub GiveToPet 
   /declare i int local 
   /varset i 1 
:give_item 
   /delay 5 ${Cursor.ID} 
   /if ( ${Cursor.ID} && !${InvSlot[trade4].Item.ID} ) { 
      /if ( ${Cursor.Name.Find[summoned:]} || ${Cursor.Name.Find[eidolon]} ) { 
         /click left target 
         /delay 1s ${InvSlot[trade${i}].Item.ID} 
      } else { 
         /autoinventory 
      } 
      /goto :give_item 
   } 
   /for i 1 to 4 
      /if ( (${InvSlot[trade${i}].Item.ID}) && (!${InvSlot[trade${i}].Item.Name.Find[summoned:]} && !${InvSlot[trade${i}].Item.Name.Find[eidolon]}) ) /notify GiveWnd GVW_Cancel_Button leftmouseup 
   /next i 
   /if ( ${Window[GiveWnd].Open} ) { 
      /notify GiveWnd GVW_Give_Button leftmouseup 
      /delay 5s !${Window[GiveWnd].Open} 
   } 
   /if ( ${Window[InventoryWindow].Open} ) /keypress inventory 
/return 

Sub Ice_Destroy
/if ( !${FindItem[Summoned: Elemental Ice Sliver].ID} ) /return
/declare bagID int local ${InvSlot[${FindItem[Summoned: Elemental Ice Sliver].InvSlot}].Pack}
/if ( !${Window[${InvSlot[${FindItem[Summoned: Elemental Ice Sliver].InvSlot}].Pack.Name}].Open} ) {
  /squelch /nomodkey /itemnotify ${bagID} rightmouseup
}
:Ice_Pickup
:Cursor_Clear
/if ( ${Cursor.ID} ) {
  /autoinv
  /goto :Cursor_Clear
}  
/squelch /nomodkey /itemnotify ${FindItem[Summoned: Elemental Ice Sliver].InvSlot} leftmouseup
/if ( !${Cursor.Name.Equal[Summoned: Elemental Ice Sliver]} ) /goto :Ice_Pickup
/squelch /nomodkey /itemnotify ${bagID} rightmouseup
/if ( ${Cursor.Name.Equal[Summoned: Elemental Ice Sliver]} ) {
  /echo Destroying ${Cursor.Name}
  /destroy
  } else {
  /autoinv
}  
/return

Sub SitOut
/echo Sitting Out For a Bit...
/if ( !${Me.State.Equal[SIT]} ) /sit
:sit_out_loop
/if ( ${Me.PctMana} <= 60) /goto :sit_out_loop
/return

Sub Event_TankDS
/echo Refreshing DS.
/call AddToQueue "Magmaskin"
/return

Sub Event_RageOn(string line) 
   /declare tempID int local ${Target.ID} 
   /if ( ${Spawn[${mobID}].ID} ) /varset tempID ${mobID} 
   /if ( ${line.Find[${Spawn[${tempID}].DisplayName}]} && ${Me.Pet.ID} ) { 
      /echo calling off pet... 
      /pet back off
      
      /pet hold 
   } 
/return 

Sub Event_RageOff(string line) 
   /declare tempID int local ${Target.ID} 
   /if ( ${Spawn[${mobID}].ID} ) /varset tempID ${mobID} 
   /if ( ${line.Find[${Spawn[${tempID}].DisplayName}]} && ${Me.Pet.ID} ) { 
      /target id ${tempID} 
      /pet attack 
   } 
/return 

Sub Event_Gate(string line) 
   /if ( ${line.Find[${Spawn[${mobID}].DisplayName}]} && ${Me.Pet.ID} ) { 
      /varset mobID 0 
   } 
/return 

Sub Event_Goto(string line,string destination) 
   /declare tempZone string local 
   /if ( ${destination.Equal[pok]} ) { 
      /call MoveToLoc -1700 428 
      /call MoveToLoc -1180 -116 
      /call MoveToLoc -274 -860 
      /call MoveToLoc -222 -945 
      /call MoveToLoc 704 -1324 
      /call MoveToLoc 726 -1443 
      /call MoveToLoc 772 -1440 
      /doortarget poktele500 
      /face nolook 
      /varset tempZone ${Zone.Name} 
      /keypress pitchdown hold 
   :wait_for_zone_pok 
      /keypress use hold 
      /delay 1 
      /if ( ${tempZone.Equal[${Zone.Name}]} ) /goto :wait_for_zone_pok 
   } 
   /if ( ${destination.Equal[wfp]} ) { 
      /keypress centerview 
      /call MoveToLoc -228 -283 
      /call MoveToLoc -452 -236 
      /doortarget pokfptport500 
      /face nolook 
      /keypress use hold 
   } 
   /if ( ${destination.Equal[ec]} ) { 
      /call MoveToLoc -636 152 
      /call MoveToLoc -559 195 
      /face heading 90 
      /keypress forward hold 
      /varset tempZone ${Zone.Name} 
   :wait_for_zone_ec 
      /delay 5 
      /if ( ${tempZone.Equal[${Zone.Name}]} ) /goto :wait_for_zone_ec 
   } 
   /if ( ${destination.Equal[nedaria]} ) { 
      /call MoveToLoc -497 -762 
      /call MoveToLoc -904 -365 
      /call MoveToLoc -1049 844 
      /call MoveToLoc -1338 795 
      /call MoveToLoc -1662 667 
      /call MoveToLoc -1671 276 
      /call MoveToLoc -1768 16 
      /call MoveToLoc -1617 -182 
      /target magus 
      /say nedaria 
   } 
   /if ( ${destination.Equal[natimbi]} ) { 
      /call MoveToLoc 1050 1528 
      /call MoveToLoc 1023 1529 
      /target magus 
      /say natimbi 
   } 
   /if ( ${destination.Equal[kodtaz]} ) { 
      /if ( !${Me.Levitating} ) { 
         /if ( ${Me.Invis} ) { 
            /target clear 
            /attack on 
            /attack off 
         } 
         /call Cast "Summon Ring of Flight" gem8 10s 
         /delay 5s ${Cursor.ID} 
         /autoinv 
         /target myself 
         /call Cast "Summoned: Ring of Levitation" item 
      } 
      /if ( !${Me.Invis} ) /call Cast "Veil of Elements" gem8 10s 
      /call MoveToLoc 36 -1458 
      /call MoveToLoc 1071 -1520 
      /call MoveToLoc 989 -447 
      /call MoveToLoc 1099 110 
      /call MoveToLoc 1029 1266 
      /call MoveToLoc 1143 1546 
      /doortarget nihobelisk800 
      /face nolook loc 1144,1555 
      /varset tempZone ${Zone.Name} 
      /keypress pitchdown hold 
   :wait_for_zone_kodtaz 
      /keypress use hold 
      /delay 1 
      /if ( ${tempZone.Equal[${Zone.Name}]} ) /goto :wait_for_zone_kodtaz 
   } 
   /if ( ${destination.Equal[kt]} ) { 
      /echo goto pok 
      /echo goto wfp 
      /echo goto ec 
      /echo goto nedaria 
      /echo goto natimbi 
      /echo goto kodtaz 
      /doevents Goto 
   } 
/return 

Sub Event_Coth(string line,string sender,string name) 
   /if ( !${Defined[name]} ) /declare name string local 
   /declare i int local 
   /declare inGroup bool local false 
   /if ( !${Spawn[pc ${name}].ID} ) { 
      /if ( ${Spawn[pc ${sender}].ID} ) { 
         /varset name ${sender} 
      } else { 
         /return 
      } 
   } 
   /for i 1 to 5 
      /if ( ${Group[${i}].Name.Find[${name}]} ) /varset inGroup true 
   /next i 
   /if ( ${inGroup} ) { 
      /call AddToQueue "coth,${name}" 
   } else /if ( ${GroupLeader.ID}==${Me.ID} ) { 
      /target pc ${name} 
      /keypress invite_follow 
      /delay 5s ${Group[1].Name.Equal[${name}]} || ${Group[2].Name.Equal[${name}]} || ${Group[3].Name.Equal[${name}]} || ${Group[4].Name.Equal[${name}]} || ${Group[5].Name.Equal[${name}]} 
      /for i 1 to 5 
         /if ( ${Group[${i}].Name.Equal[${name}]} ) /varset inGroup true 
      /next i 
      /if ( ${inGroup} ) /call AddToQueue "coth,${name}" 
   } 
/return 

Sub Event_Timer(string timerName,int timerValue) 
   /if ( !${Defined[${timerName}]} ) /return 
   /declare tempID int local 0 
   /declare oldTargetID int local ${Target.ID} 
   /if ( ${timerName.Left[9].Equal[maloTimer]} ) { 
      /varset tempID ${timerName.Right[-9]} 
      /if ( ${Spawn[${tempID}].Type.Equal[NPC]} ) { 
         /target id ${tempID} 
         /call Malo 
      } else { 
         /deletevar ${timerName} 
      } 
   } else { 
      /return ${Macro.Return} 
   } 
   /if ( ${Target.ID}==${tempID} ) { 
      /if ( ${Spawn[${oldTargetID}].ID} ) { 
         /target id ${oldTargetID} 
      } else { 
         /keypress clear_target 
      } 
   } 
/return ${Macro.Return} 

Sub Event_PetWeps(string line,string sender) 
   /declare tempID int local ${Spawn[pc ${sender}].Pet.ID} 
   /if ( !${tempID} || ${Spawn[${tempID}].Distance3D}>250 || !${Spawn[${tempID}].LineOfSight} ) /return 
   /target id ${tempID} 
   /if ( ${Stick.Status.Length} ) { 
      /stick 10 
      /delay 5s ${Target.Distance3D}<=10 
   } else { 
      /declare tempTimer timer local 5s 
   :move_to_pet 
      /face fast nolook 
      /keypress forward hold 
      /if ( ${tempTimer} && ${Target.Distance3D}<=20 ) /goto :move_to_pet 
      /keypress forward 
   } 
   /call SumWeps 
   /if ( ${Spawn[pc ${followName} radius 150].ID} && ${Stick.Status.Equal[off]} ) { 
      /target pc ${followName} 
      /stick hold 10 
   } 
/return
 

Users who are viewing this thread

Back
Top