Moderator: MacroQuest Developers
Code: Select all
/if ( !${Me.Buff["Shroud of Chaos"].ID} && !${Me.Casting.ID} ) /call Cast "Shroud of Chaos" gem8Code: Select all
/declare RV_SummonPetRange int outer 250
/declare RV_NumberOfBuffs int outer 2
/declare RV_MyBuffs[${RV_NumberOfBuffs}] string outer
/declare RV_NumberOfPetBuffs int outer 1
/declare RV_PetBuffs[${RV_NumberOfPetBuffs}] string outer
/declare RV_PetSpellName string outer "Legacy of Zek"
|Buffs to be kept up on self
/varset RV_MyBuffs[1] "Shield of the Arcane"
/varset RV_MyBuffs[2] "Force Shield"
|Buffs to be kept up on pet
/varset RV_PetBuffs[1] "Rune of Death"
Code: Select all
...
/call maintainbuffs
...
Code: Select all
|--------------------------------------------------------------------------------
|SUB: MaintainBuffs
|--------------------------------------------------------------------------------
Sub MaintainBuffs
/declare PetBuffLoop int inner 0
/declare MyBuffLoop int inner 0
/declare iCount int 1
/declare tmp
/doevents
/for MyBuffLoop 1 to ${RV_NumberOfBuffs}
/if (!${Me.Buff[${RV_MyBuffs[${iCount}]}].ID}) {
/target ${Me}
/call Cast ${RV_MyBuffs[${iCount}]} gem7
/delay 1s
/if (${iCount}==5) /delay 20s
/doevents
}
/varcalc iCount ${iCount}+1
/next MyBuffLoop
/varset iCount 1
|If we have pet, make one
/if ( !${Me.Pet.ID} ) {
/echo Creating new pet
/call Cast ${RV_PetSpellName} gem7
/delay 1s
/target ${Me.Pet.Name}
/call Cast "Tiny companion" gem7
}
/if ( ${Me.Pet.Distance}>${RV_SummonPetRange}) {
/echo Summoning pet. Its range is ${Me.Pet.Distance}
/call Cast "Summon Companion" gem7
/delay 1s
}
/for PetBuffLoop 1 to ${RV_NumberOfPetBuffs}
/if (!${Me.PetBuff[${RV_PetBuffs[${iCount}]}]}) {
/target ${Me.Pet.Name}
/call Cast ${RV_PetBuffs[${iCount}]} gem7
/delay 1s
/doevents
}
/varcalc iCount ${iCount}+1
/next PetBuffLoop
/keypress esc
/return
Code: Select all
Sub CheckBuffs
/declare i int local
/declare a int local
/declare MyTarget int local
/if (${RDPause} && ${SelfBuffTotal} && ${SelfBuffs} && !${SelfBuffTimer} && !${Me.Moving} && !${Me.Casting.ID} && (!${SitTimer} || ${Me.Gem[${SelfBuff[${i}]}]} || ${Me.Mount.ID})) {
/for i 1 to ${SelfBuffTotal}
/call CheckGroup
/if (${Me.Buff[${SelfBuffIcon[${i}]}].Duration}<10 && ${Me.CountBuffs}<=${SelfBuffCount[${i}]}) {
/for a 1 to 20
/if (${SelfBuffBlock[${i}].Find[${Me.Buff[${a}].Spell}]}) /goto :NextSelfBuff
/next a
/if (!${Outdoors} && !${SelfBuffIndoors[${i}]}) /goto :NextSelfBuff
/varset MyTarget ${Target.ID}
/squelch /target myself
/if (${ReportSelfBuffs} && !${SpamTimer}) /${ChatChannel} Buffing myself with ${SelfBuff[${i}]}
/varset SpamTimer ${SpamDelay}
/if (${SelfBuffGem[${i}].Equal[item]}) {
/call Cast "${SelfBuff[${i}]}" item 1s Check4Pad
} else /if (${SelfBuffGem[${i}].Equal[alt]} && ${Me.AltAbilityReady[${SelfBuff[${i}]}]}) {
/call Cast "${SelfBuff[${i}]}" alt 1s Check4Pad
} else /if (${Me.CurrentMana}>${Spell[${SelfBuffID[${i}]}].Mana}) {
/call Cast "${SelfBuff[${i}]}" ${SelfBuffGem[${i}]} 1s Check4Pad
}
/target id ${MyTarget}
}
:NextSelfBuff
/next i
/varset SelfBuffTimer ${SelfBuffRecheck}
}
/return 

