Ok guys, this macro is becoming bigger and bigger and I am learning more and more thanks to pm's and help from both you guys and reading other macros. What does this mean? It means theres a new macro writer coming out of the woodwork. This is version 2.0, added crippling, slowing, pet attack, canni using spell and AA. Big thanks to all for your help, big thankks if anyone uses it and likes it. Please post if you like it and you use it I would really like to know my work is appriciated. Unfortunatly, it will only heal shammy and powerlevelee at this time. Heres a list of what it does...
To run it...
Thats it, it is completely automated. It will even wait till target is within range before it tries to recast spells. It is dependant on having the shammy canni AA, as well as being level 70+. You can change your spell lineup and you will need to.
Known issues Im working on. It will not slow adds!! Remeber, it will NOT SLOW ADDS! Not untill current mob is dead anyways.
Any suggestions to code or things to add, please post them here. If you find this macro useful, let me know. Remember, it only works for a shammy and another toon!!
Enjoy...
N
- Heal Powerlevelee and Shaman
- Send pet in at 60 percent of mob hp
- Buff self, powerlevelee and pet
- Rebuff powerlevelee, self and pet
- Macro will end if you zone
- Will know if your in indoor and or outdoor zones and use mount/sit based on that.
- Will /fade if shammy is hit (comment this out if you dont want it)
- Will slow mobs
- Will cripple mobs.
To run it...
- Target Powerlevelee /macro shammy
- Change spells in the spell list /declare to the spells you use
- Change mount in the mount declare to the mount you own.
- If you want slow make sure DoSlow is True
- If you want Cripple make sure DoCripple is TRUE
- IT will heal at 40 percent, if you want this higher or lower change this line /if (${Target.PctHPs}<40) /call Heal
- It will heal over time at 65 percent, if you want this higher or lower change this line |/if (${Target.PctHPs}<65) /call Hot
- It will Canni at 40 percent, to change this change this line /if (${Me.PctMana}<40) /call Canni
- It will use the Canni AA, if you dotn want to use this, comment this line out /if (${Me.PctMana}<25) /call Canni2
- To change heal over time on shaman from 70 percent change this line /if (${Me.PctHPs}<70) /call HotMe
- To change the heal percentage for shaman change this line /if (${Me.PctHPs}<40) /call HealMe
- It slows at 90 percent if you want to change this, change this line /if (${Target.ID} && !${MobSlowed} && ${DoSlow} && ${Target.PctHPs}<90) /call event_Slow
- It Cripples at 60 percent, to change it, change this line /if (${Target.ID} && !${MobCrippled} && ${DoCripple} && ${Target.PctHPs}<60) /call event_Cripple
- It sends pet in at 60 percent, if you want to change this change this line /if (${Target.ID} && !${Engaged} && ${Target.PctHPs}<60) /call PetKill
- To not use pet, comment this line out /if (${Target.ID} && !${Engaged} && ${Target.PctHPs}<60) /call PetKill
Thats it, it is completely automated. It will even wait till target is within range before it tries to recast spells. It is dependant on having the shammy canni AA, as well as being level 70+. You can change your spell lineup and you will need to.
Known issues Im working on. It will not slow adds!! Remeber, it will NOT SLOW ADDS! Not untill current mob is dead anyways.
Any suggestions to code or things to add, please post them here. If you find this macro useful, let me know. Remember, it only works for a shammy and another toon!!
Enjoy...
Rich (BB code):
|--------------------------------------------------------------------------------
|Nijhals Shammy Buffbot macro v2.0
|
|Usage /macro shammy
|
|Change spell names to reflect the spells you want to use.
|Make sure you have your toon targeted when running this macro.
|
|Things to add:
|Group Support
|Slowing multiple adds
|
|--------------------------------------------------------------------------------
#include Spell_Routines.inc
#chat group
#chat tell
#event HotReset "#*#Your Quiescence spell has worn off of #*#
#event Cripple "#*#resisted the crippling spasm#*#
#event Cripple "#*#Your Crippling Spasm spell has worn off of #*#
#event Slow "#*#resisted the togor's insects#*#
#event Slow "#*#Your Togor's Insects spell has worn off of #*#
#event Immune "#*#is immune to changes#*#"
#event Haste "#*#Your Talisman of Celerity spell has worn off of #*#
#Event HPBuff "#*#Your Focus of Soul spell has worn off of #*#"
#Event Avatar "#*#Your Ferine Avatar spell has worn off of #*#"
#event Hit "#*#hits you for#*#"
#event Hit "#*#punches you for#*#"
#event Hit "#*#strikes you for#*#"
#event Hit "#*#crushes you for#*#"
#event Hit "#*#slashes you for#*#"
#event Hit "#*#pierces you for#*#"
#event Hit "#*#kicks you for#*#"
#event HPbuffPet "#*#Your pet's Focus of Soul#*#"
|#event PetHaste "#*#Your pet's Talisman of Celerity spell has worn#*#
#event OutDoor "#*#outdoors#*#"
#event OutDoor "You can not summon a mount here."
#event Reset "#*#has been slain by#*#"
#event Reset "#*#died#*#"
#event Cure "#*#has contracted an illness#*#"
Sub Main
/if (!${Target.ID}) /call End
/echo |-----------------------------------------------------------------|
/echo |Shammy Powerlevel Bot Coming Online Now...
/echo | Version 2.0
/echo |
/echo | Written by Nijhal
/echo | Props the the guys at Redguides
/echo | for all their teachings.
/echo |-----------------------------------------------------------------|
/declare StartZone int outer ${Zone.ID}
/declare Hpbuff string outer "focus of soul"
/declare Pet string outer "farrel's companion"
/declare Canni string outer "pained memory"
/declare Haste string outer "talisman of celerity"
/declare HoT string outer "quiescence"
/declare Heal string outer "yoppa's Mending"
/declare Avatar string outer "ferine avatar"
/declare Slow string outer "togor's insects"
/declare Cripple string outer "crippling spasm"
/declare Mount outer "Collapsable Roboboar"
/declare DoSlow outer TRUE
/declare DoCripple outer TRUE
/declare Player1 string outer ${Target}
/declare Player1ID int outer ${Target.ID}
/declare OutDoors outer TRUE
/declare MobSlowed outer FALSE
/declare Engaged outer FALSE
/declare MobCrippled outer FALSE
/declare PlayerHot outer FALSE
/if (!${Me.Mount.ID} && ${OutDoors}) /call cast ${Mount} item 5s
/call event_Avatar
/call event_HPBuff
/call event_Haste
/call event_HPbuffPet
|/call event_PetHaste
/call SelfBuffs
:loop
/if (${Me.Standing} && !${Me.Mount.ID}>0) /sit
/target ${Player1}
/delay 1s
/call SelfBuffs
/if (${Target.PctHPs}<40) /call Heal
|/if (${Target.PctHPs}<65) /call Hot
/if (!${PlayerHot} && ${Target.PctHPs}<90) /call Hot
/if (${Me.PctHPs}<40) /call HealMe
/if (${Me.PctHPs}<70) /call HotMe
/if (${Me.PctMana}<40) /call Canni
/if (${Me.PctMana}<25) /call Canni2
/if (${Zone.ID}!=${StartZone}) /call Done
/doevents
/call GMCheck
/keypress esc
/assist ${Player1}
/delay 1s
/if (!${Target.ID}) /call event_Reset
/if (${Target.ID} && !${MobSlowed} && ${DoSlow} && ${Target.PctHPs}<90) /call event_Slow
/if (${Target.ID} && !${MobCrippled} && ${DoCripple} && ${Target.PctHPs}<60) /call event_Cripple
/if (${Target.ID} && !${Engaged} && ${Target.PctHPs}<60) /call PetKill
/goto :loop
/return
|--------------------------------------------------------------------------------
|Sub Haste
|--------------------------------------------------------------------------------
Sub event_Haste
/echo Casting Haste
/target ${Player1}
:haste
/if (${Target.Distance}>100) /goto :haste
/delay 1
/cast ${Haste}
/delay 8s
/if (${Me.Standing} && !${Me.Mount.ID}>0) /sit
/return
|--------------------------------------------------------------------------------
|Sub PetHaste
|--------------------------------------------------------------------------------
Sub event_PetHaste
/echo Casting Haste on Pet
/target pet
:pethaste
/if (${Target.Distance}>50) /goto :pethaste
/delay 1
/cast ${Haste}
/delay 8s
/if (${Me.Standing} && !${Me.Mount.ID}>0) /sit
/return
|--------------------------------------------------------------------------------
|Sub HPBuff
|--------------------------------------------------------------------------------
Sub event_HPBuff
/echo Casting Hit Point Buff
/target ${Player1}
:hpbuff
/if (${Target.Distance}>100) /goto :hpbuff
/delay 1
/cast ${Hpbuff}
/delay 9s
/if (${Me.Standing} && !${Me.Mount.ID}>0) /sit
/return
|--------------------------------------------------------------------------------
|Sub HPbuffPet
|--------------------------------------------------------------------------------
Sub event_HPbuffPet
/echo Casting Pet Hit Point Buff
/target pet
:pethpbuff
/if (${Target.Distance}>100) /goto :pethpbuff
/delay 1
/cast ${Hpbuff}
/delay 9s
/if (${Me.Standing} && !${Me.Mount.ID}>0) /sit
/return
|--------------------------------------------------------------------------------
|Sub Avatar
|--------------------------------------------------------------------------------
Sub event_Avatar
/target ${Player1}
:avatar
/if (${Target.Distance}>100) /goto :avatar
/echo Casting Avatar
/delay 1
/cast ${Avatar}
/delay 7s
/if (${Me.Standing} && !${Me.Mount.ID}>0) /sit
/return
|--------------------------------------------------------------------------------
|Sub Heal
|--------------------------------------------------------------------------------
Sub Heal
/echo Casting Heal
/target ${Player1}
:heal
/if (${Target.Distance}>100) /goto :heal
/delay 1
/cast ${Heal}
/delay 6s
/if (${Me.Standing} && !${Me.Mount.ID}>0) /sit
/return
|--------------------------------------------------------------------------------
|Sub Hot
|--------------------------------------------------------------------------------
Sub HotMe
/echo Casting Heal over time
/Keypress F1
/delay 4
/cast ${HoT}
/delay 6s
/if (${Me.Standing} && !${Me.Mount.ID}>0) /sit
/varset PlayerHot TRUE
/return
|--------------------------------------------------------------------------------
|Sub HealMe
|--------------------------------------------------------------------------------
Sub HealMe
/echo Casting Heal
/keypress F1
/delay 4
/delay 1
/cast ${Heal}
/delay 6s
/if (${Me.Standing} && !${Me.Mount.ID}>0) /sit
/return
|--------------------------------------------------------------------------------
|Sub Hot
|--------------------------------------------------------------------------------
Sub Hot
/echo Casting Heal over time
/target ${Player1}
:hot
/if (${Target.Distance}>100) /goto :hot
/delay 1
/cast ${HoT}
/delay 6s
/if (${Me.Standing} && !${Me.Mount.ID}>0) /sit
/varset PlayerHot TRUE
/return
|--------------------------------------------------------------------------------
|Sub Canni
|--------------------------------------------------------------------------------
Sub Canni
/echo Casting Canni....
/delay 1
/cast ${Canni}
/delay 5s
/if (${Me.Standing} && !${Me.Mount.ID}>0) /sit
/return
|--------------------------------------------------------------------------------
|Sub Canni2
|--------------------------------------------------------------------------------
Sub Canni2
/echo Casting AA Canni....
/delay 1
/aa act cannibalization
/delay 5s
/if (${Me.Standing} && !${Me.Mount.ID}>0) /sit
/return
|--------------------------------------------------------------------------------
|Sub CastPet
|--------------------------------------------------------------------------------
Sub CastPet
|/echo Summoning a Pet...
|/delay 1
|/cast ${Pet}
|/delay 15s
|/sit
/return
|--------------------------------------------------------------------------------
|Sub Self Buffs
|--------------------------------------------------------------------------------
Sub SelfBuffs
/if (${Me.Buff[${Hpbuff}].Duration} !> ${MF_BuffTicks}) {
/keypress F1
/delay 4
/cast ${Hpbuff}
/delay 6s
}
/if (${Me.Buff["Aura of Eternity"].Duration} !> ${MF_BuffTicks}) {
/keypress F1
/delay 4
/keypress 8
/delay 6s
}
/if (${Me.Buff["Elixir of Clarity X"].Duration} !> ${MF_BuffTicks}) {
/keypress 7
/delay 3s
}
/if (${Me.Standing} && !${Me.Mount.ID}>0) /sit
/return
|--------------------------------------------------------------------------------
|Sub event_Hit
|--------------------------------------------------------------------------------
Sub event_Hit
/fade
/varset MobSlowed FALSE
/varset MobCrippled FALSE
/varset Engaged FALSE
/delay 20s
/doevents flush
/return
|--------------------------------------------------------------------------------
|Sub PetKill
|--------------------------------------------------------------------------------
Sub PetKill
:pet kill
/if (${Target.Distance}>100) /goto :petkill
/pet kill
/varset Engaged TRUE
/return
|--------------------------------------------------------------------------------
|Sub Slow
|--------------------------------------------------------------------------------
Sub event_Slow
:slow
/if (${Target.Distance}>100) /goto :slow
/echo Casting Slow....
/cast ${Slow}
/delay 8s
/doevents
/varset MobSlowed TRUE
/return
|--------------------------------------------------------------------------------
|Sub Cripple
|--------------------------------------------------------------------------------
Sub event_Cripple
:cripple
/if (${Target.Distance}>100) /goto :cripple
/echo Casting Cripple....
/cast ${Cripple}
/delay 7s
/doevents
/varset MobCrippled TRUE
/return
|--------------------------------------------------------------------------------
|Sub event OutDoor
|--------------------------------------------------------------------------------
Sub event_Outdoor
/echo This is an indoor zone. Setting mount off.
/varset OutDoors TRUE
/return
|--------------------------------------------------------------------------------
|Sub event Immune
|--------------------------------------------------------------------------------
Sub event_Immune
/varset MobSlowed TRUE
/echo Mob Immune to Slow!
/return
|--------------------------------------------------------------------------------
|Sub Reset
|--------------------------------------------------------------------------------
Sub event_Reset
/varset MobSlowed FALSE
/varset MobCrippled FALSE
/varset Engaged FALSE
/return
|--------------------------------------------------------------------------------
|Sub HotReset
|--------------------------------------------------------------------------------
Sub event_HotReset
/varset PlayerHot FALSE
/echo Ready to cast Heal over time again!
/return
|--------------------------------------------------------------------------------
|Sub End
|--------------------------------------------------------------------------------
Sub End
/popup You must have a Player targeted to run this macro!!!
/echo You must have a player targeted to run this macro!!!
/beep
/endmacro
|--------------------------------------------------------------------------------
|Event Done
|--------------------------------------------------------------------------------
Sub Done
/echo We left the powerleveling zone, ending the macro...
/endmacro
|--------------------------------------------------------------------------------
|SUB: GM Check
|--------------------------------------------------------------------------------
Sub GMCheck
/if (${Spawn[gm].ID}) {
/beep
/beep
/beep
/echo GM has entered the zone!
/echo FUCK HIM but ending the macro...
/endmacro
}
/return
N
Last edited:

