Code: Select all
|----------------------------------------------------------------------------|
| Original AFNuke.mac converted to MQ2Data and modified by Azum
| Nuke sub 'borrowed' from Yalp :)
| Hacked up and horribly mangled by /\rtyx for enchanter two boxing .. I hope
| Modify engagedistance, stopnuke and mobhealth to your liking
| This macro assumes Single pulls, AELDORB or DIRE CHARM pets. do not use this
| with CoD or similiar charms... target yourself to start this, and
| Useage /mac yaeau tankname or /mac yaeau tankname 0 for no nuking
#include spellcast.inc
#event toofar "too far"
#event stunned "while stunned"
#event slain "been slain"
#event EXP "gain experience!"
#event range "target is out of range"
#event cantsee "You cannot see"
#event died "You have been slain"
|#event inco "***INC TRIGGER"
#event fwo "Your Forlorn Deeds spell has worn off."
#event two "Your Howl of Tashan spell has worn off."
sub main
/if (!${Defined[Param0]}) {
/echo Useage /macro afnuke tankname or /macro afnuke tankname 0 to disable nuking
/endmacro
}
/ECHO =+= Autoslow/debuff Macro Enabled =+=
/declare donuke int outer
/declare stopnuke int outer
/declare tankname string outer
/declare engagedistance int outer
/declare engagedmob int outer
/declare mobhealth int outer
/declare mobid int outer
/declare isslowd int outer
/declare istashd int outer
/declare petatk int outer
/declare pnu int outer
/declare pndt int outer
/declare pnv int outer
/varset engagedistance 150
/varset stopnuke 20
/varset mobhealth 100
/varset tankname ${Param0}
/if (!${Defined[Param1]}) /varset donuke 1
/if (${Defined[Param1]} && !${Param1}>1) /varset donuke ${Param1}
/if (${Param1}>1) /varset donuke 1
/varset engagedmob 0
/varset mobid 0
/varset petatk 0
/varset istashd 0
/varset isslowd 0
/if (${donuke}==1) /Echo Nuking Enabled
/if (${donuke}==0) /Echo Nuking Disabled
/Echo Your Main Assist is ${tankname}
:mainloop
/if (!${Me.Pet.ID}) /call summpet
/call Buffcheck
/call Combatcheck
/call debufftime
/if (${donuke}==1) /call Nuke
/doevents buffcheck
/goto :mainloop
/endmacro
Sub Combatcheck
/if (!${Me.Casting.ID}) /assist ${tankname}
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && ${Target.PctHPs}<=${mobhealth} && ${Target.Distance}<=${engagedistance}) {
/varset mobid ${Target.ID}
/varset engagedmob 1
/Echo ${Target.CleanName} is at the distance of: ${Target.Distance}
/Echo ${Target.CleanName} is considered a ${Target.Race}
/return
}
/varset engagedmob 0
/varset mobid 0
/varset petatk 0
/varset istashd 0
/varset isslowd 0
/delay 1s
/return
Sub debufftime
/if (!${engagedmob}) /return
/if (!${Me.Casting.ID}) /assist ${tankname}
/if ( ${petatk}==0) /call petatk
/if (${Target.ID} && ${Target.Type.Equal[NPC]} && ${Target.PctHPs}<=${mobhealth} && ${Target.Distance}<=${engagedistance}) {
/call tashcheck
/call slowcheck
/return
}
/return
Sub petatk
/pet kill
/echo Sicced pet.
/varset petatk 1
/return
}
/return
Sub summpet
/echo Casting Aeldorb's Animation.
/call cast "Aeldorb's Animation"
/delay 10s
/echo Turning pet taunt off.
/pet taunt off
/return
/return
Sub Nuke
:nukeloop
/if (!${Target.ID} || ${Target.ID}!=${mobid} || ${Target.Distance}>${engagedistance}) {
/varset engagedmob 0
/varset mobid 0
/return
}
/if (${Target.CurrentHPs}>${stopnuke}) /if (${Me.Gem[Insanity]}) /call cast "Insanity"
/if (${donuke} == 0 ) /goto :nukeloop
:wait1
/if (!${Target.ID} || ${Target.ID}!=${mobid} || ${Target.Distance}>${engagedistance}) {
/varset engagedmob 0
/varset mobid 0
/return
}
/delay 5
/if (${Me.Casting.ID}) /goto :wait1
/if (!${Target.ID} || ${Target.ID}!=${mobid} || ${Target.Distance}>${engagedistance}) {
/varset engagedmob 0
/varset mobid 0
/return
}
/goto :nukeloop
/return
Sub Buffcheck
/if (!${Me.Buff["Shield of Maelin"].ID} && !${Me.Casting.ID}) /call Cast "Silken Augmenter's Robe" item
/if (!${Me.Buff["Voice of Quellious"].ID} && !${Me.Casting.ID}) /call Cast "Voice of Quellious"
/if (!${Me.Buff["Arcane Rune"].ID} && !${Me.Casting.ID}) /call Cast "Arcane Rune"
/if (!${Me.Buff["Umbra"].ID} && !${Me.Casting.ID}) /call Cast "Umbra"
/if (!${Me.Buff["Illusion: Wood Elf"].ID} && !${Me.Casting.ID}) /call Cast "Illusion: Wood Elf"
/if (!${Me.PetBuff["Speed of Vallon"]} && !${Me.Casting.ID}) /varset pnv 1
/if (!${Me.PetBuff["Night`s Dark Terror"]} && !${Me.Casting.ID}) /varset pndt 1
/if (!${Me.PetBuff["Umbra"]} && !${Me.Casting.ID}) /varset pnu 1
| does pet need ndt umbra or vallon? if so go get the buffs
/if (${pndt} > 0 ||${pnu} > 0 || > 0 ${pnv}) /call petbuff
/return
sub petbuff
/if (${pnv} ) {
/target ID ${Me.Pet.ID}
/call Cast "Speed of Vallon"
/varset pnv 0
}
/if (${pnu} ) {
/target ID ${Me.Pet.ID}
/call Cast "Umbra"
/varset pnu 0
}
/if (${pndt} ) {
/target ID ${Me.Pet.ID}
/call Cast "Night`s Dark Terror"
/varset pndt 0
}
/return
Sub Event_slain
/if (${Target.CurrentHPs}>0) /return
/varset engagedmob 0
/varset mobid 0
/varset isslowd 0
/varset istashd 0
/varset petatk 0
/return
Sub Event_EXP
/if (${Target.CurrentHPs}>0) /return
/varset engagedmob 0
/varset mobid 0
/varset isslowd 0
/varset istashd 0
/varset petatk 0
/return
sub event_stunned
/popup STUNNED
/delay 1s
/return
sub event_died
/echo You died, ending macro
/endmacro
sub event_cannotsee
/varset engagedmob 0
/varset mobid 0
/return
sub event_toofar
/varset engagedmob 0
/varset mobid 0
/return
sub event_range
/varset engagedmob 0
/varset mobid 0
/return
sub event_fwo
/varset isslowd 0
/return
sub event_two
/varset istashd 0
/return
Sub tashcheck
/if (${istashd}) /return
/call cast "Howl of Tashan"
/varset istashd 1
/return
Sub slowcheck
/if (${isslowd}) /return
/call cast "Forlorn Deeds"
/varset isslowd 1
/return



