AFNuke mac (Wiz Bot Mac update: 07-21-05)

Post your completed (working) macros here. Only for macros using MQ2Data syntax!

Moderator: MacroQuest Developers

Dr_Flash
orc pawn
orc pawn
Posts: 11
Joined: Wed Feb 04, 2004 5:43 pm
Location: Atlanta, GA

AFNuke mac (Wiz Bot Mac update: 07-21-05)

Post by Dr_Flash » Thu Jul 21, 2005 3:40 pm

Started a new post for this macro as the other thread was quite long.

Anyways I give Azum full credit for writing this macro, I've just gone through and updated it to, hopefully, work with recent changes to MacroQuest.

If anyone finds any bugs please post here and I'll see what I can do.

Documentation is in the 3rd post.

To run this macro you will need:

AFNuke.mac
AFNuke.inc
AFNuke2.inc
spell_routines.inc


(7/21) - Updated for changes to String, other misc. fixes

Code: Select all

|----------------------------------------------------------------------------|
| AFNuke.mac MQ2Data compliant and created by Azum
| 07/21/05 3:30pm es
| Original Nuke sub 'borrowed' from Yalp
| INI and Exclude code shamelessly stolen from ml2517
| Original Manarobe code mostly stolen from ieatacid, refined by Azum
| Leash and /iclick routines taken from Jerle's Rogue Helper macro
| When you first run the macro start it with /mac afnuke tankname and
| an .INI file will be generated (nuke_yourname.ini).
| To change the tankname, simply restart with /mac afnuke tankname again.
| Otherwise, /mac afnuke will start the macro with the tankname specified in
| the ini file.
| Useage /mac afnuke tankname1 tankname2 tankname3 or
| /mac afnuke tankname1 tankname2 or /mac afnuke tankname1 or /mac afnuke
| TIP:  The easiest way to exclude/include mobs is to set up a hotkey:
| For Excludes:
| /exclude ${Target.CleanName}
| To Remove an Exclude:
| /include ${Target.CleanName}

#include spell_routines.inc
#include AFNuke.inc
#include AFNuke2.inc
#chat tell
#Event mezbreak          "#*#awakened by #1#"
#event stunned           "#*#while stunned#*#"
#event slain             "#*#has been slain#*#"
#event EXP               "#*#gain experience!#*#"
#event oom               "#*#Insufficient mana#*#"
#event range             "#*#target is out of range#*#"
#event cantsee           "You cannot see#*#"
#event died              "#*#Returning to home point, please wait...#*#"
#event died              "#*#you have been slain#*#"
#event zoned             "#*#You have entered#*#"
#event force             "The shield fades away."
#event force             "The maelstrom dissipates."
#event summon            "You have been summoned!"
#event hit               "#*# YOU for #*#"
#event hit               "#*# YOU, but #*#"
#event togglemain        "[MQ2] nuke1 #1#"
#event toggleend         "[MQ2] nuke2 #1#"
#event togglemodrod      "[MQ2] domodrod"
#event toggleconc        "[MQ2] conc"
#event concnum           "[MQ2] concnum #1#"
#event familiar          "[MQ2] myfamiliar #1#"
#event togglemainnukenum "[MQ2] mainnukenum #1#"
#event toggleendnukenum  "[MQ2] endnukenum #1#"
#event togglemaxbuffs    "[MQ2] maxbuffs #1#"
#event togglemobhealth   "[MQ2] mobhealth #1#"
#event togglestaffhealth "[MQ2] staffhealth #1#"
#event togglestopnuke    "[MQ2] stopnuke #1#"
#event togglestopnuke2   "[MQ2] stopnuke2 #1#"
#event toggledistance    "[MQ2] engagedistance #1#"
#event toggleass         "[MQ2] assist"
#event togglexuzl        "[MQ2] doxuzl"
#event togglemanarobe    "[MQ2] manarobe"
#event togglexuzlperc    "[MQ2] xuzlperc #1#"
#event toggletemp        "[MQ2] temp"
#event togglesnare       "[MQ2] dosnare"
#event togglesnareperc   "[MQ2] snareperc #1#"
#event toggless          "[MQ2] ss"
#event togglemanaward    "[MQ2] mw"
#event toggletimewand    "[MQ2] timewand"
#event toggleepic        "[MQ2] epic"
#event toggleforceshield "[MQ2] forceshield"
#event toggleautosit     "[MQ2] autosit"
#event togglemaelin      "[MQ2] som"
#event togglema          "[MQ2] ma #1#"
#event togglesa          "[MQ2] sa #1#"
#event toggleta          "[MQ2] ta #1#"
#event cycleassist       "[MQ2] cycle"
#event spellshield       "The magical barrier fades #*#"
#event manaward          "The blue aura fades #*#"
#event exclude           "[MQ2] exclude #*#"
#event include           "[MQ2] include #*#"
#event addmaster         "[MQ2] addmaster #*#"
#event delmaster         "[MQ2] delmaster #*#"
#event addjunk           "[MQ2] addjunk #*#"
#event deljunk           "[MQ2] deljunk #*#"
#event pause             "[MQ2] pause"
#event itemset           "[MQ2] itemset #1# #2# #3#"
#event itembounce        "[MQ2] itembounce #1# #2#"
#event itemcast          "[MQ2] itemcast #1#"
#event togleash          "[MQ2] leash#*#"
#event autofollow        "[MQ2] autofollow#*#"
#event stopfollow        "[MQ2] stopfollow#*#"
#event afhelp            "[MQ2] afhelp"
#event nukepause         "[MQ2] nukepause #*#"
#event toggleharvest     "[MQ2] doharvest"
#event toggleharvestperc "[MQ2] harvestperc #1#"
#event togglemeditate    "[MQ2] medtoggle"
#event togglepreconc     "[MQ2] dopreconc"
#event togglepreconcnum  "[MQ2] preconcnum #1#"
#event translocate       "[MQ2] tlocate #*#"
#event getout            "[MQ2] getout"

sub main
/declare noInterrupt      int outer 1
/declare noInvis          int outer 1
/declare pcid             int outer
/declare preconc          int outer
/declare preconcnum       int outer
/declare npcnum           int outer
/declare forcespell       string outer
/declare shieldspell      string outer
/declare version          string outer 072105
/declare autoTL           int outer
/declare autositmana      int outer
/declare autosit          int outer
/declare sittimer         timer outer 0
/declare Y                float outer
/declare X                float outer
/declare pausetimer       timer outer 0
/declare nukepause        string outer None
/declare followdistance   int outer
/declare leashlength      int outer 0
/declare stakeX           int outer
/declare stakeY           int outer
/declare leashholder      string outer Nobody
/declare doleash          int outer
/declare wornslot         string outer NULL
/declare dopause          int outer
/declare AlertList        int outer 20
/declare buffslot         int outer
/declare maxbuffs         int outer
/declare retry            int outer
/declare retrycount       int outer 0
/declare olditem          string outer NULL
/declare snarespell       string outer
/declare snaretimer       timer outer 0
/declare bag              int outer
/declare slot             int outer
/declare snareperc        int outer
/declare dosnare          int outer
/declare snaregem         string outer
/declare modrod           int outer
/declare rodpercent       int outer
/declare hasrod           int outer 1
/declare asstimer         timer outer 0
/declare rodtimer         timer outer 0
/declare nukecount        int outer 0
/declare endnukenum       int outer
/declare mainnukenum      int outer
/declare checktarget      string outer
/declare conccount        int outer 0
/declare concnum          int outer
/declare IniFile          string outer
/declare INIFlag          int outer
/declare TempStr          string outer
/declare TempSpell        string outer
/declare medtoggle        int outer
/declare medpercent       int outer
/declare doharvest        int outer
/declare harvestpercent   int outer
/declare manatomedup      int outer
/declare checkfamiliar    int outer
/declare myfamiliar       int outer
/declare m                int outer
/declare n                int outer
/declare concuss          int outer
/declare shieldofmaelin   int outer
/declare stopnuke         int outer
/declare tankname         string outer
/declare engagedistance   int outer
/declare engagedmob       int outer 0
/declare mobhealth        int outer
/declare mobid            int outer 0
/declare forceshield      int outer
/declare manarobe         int outer
/declare beginrobe        int outer
/declare hasrobe          int outer 1
/declare donerobe         int outer
/declare tempstaff        int outer
/declare staffhealth      int outer
/declare stopnuke2        int outer
/declare mainnuke         string outer
/declare endnuke          string outer
/declare mainnukegem      string outer
/declare endnukegem       string outer
/declare forcegem         string outer
/declare harvestgem       string outer
/declare maelingem        string outer
/declare spellshield      int outer
/declare manaward         int outer
/declare ssgem            string outer
/declare manawardgem      string outer
/declare hasele           int outer
/declare myconc           string outer NULL
/declare myconcgem        string outer
/declare usetimewand      int outer
/declare useepic          int outer
/declare doxuzl           int outer
/declare xuzlperc         int outer
/declare mainassist1      string outer
/declare mainassist2      string outer
/declare mainassist3      string outer
/declare doassist         int outer
/declare ialias           string outer None
/declare doiclick         int outer
/declare bouncenum        int outer 1
/declare ibounce          string outer None
/declare itemspellname    string outer None
/declare clicktimer       timer outer 0

/varset IniFile nuke_${Me.Name}.ini
/if (${Defined[Param2]}) {
/ini "${IniFile}" Settings tankname ${Param0}
/ini "${IniFile}" Settings mainassist1 ${Param0}
/varset mainassist1 ${Param0}
/varset tankname ${Param0}
/ini "${IniFile}" Settings mainassist2 ${Param1}
/varset mainassist2 ${Param1}
/ini "${IniFile}" Settings mainassist3 ${Param2}
/varset mainassist3 ${Param2}
} else /if (${Defined[Param1]}) {
/ini "${IniFile}" Settings tankname ${Param0}
/ini "${IniFile}" Settings mainassist1 ${Param0}
/varset mainassist1 ${Param0}
/varset tankname ${Param0}
/ini "${IniFile}" Settings mainassist2 ${Param1}
/varset mainassist2 ${Param1}
} else /if (${Defined[Param0]}) {
/ini "${IniFile}" Settings tankname ${Param0}
/ini "${IniFile}" Settings mainassist1 ${Param0}
/varset mainassist1 ${Param0}
/varset tankname ${Param0}
} else /if (!${Defined[Param0]}) {
/varset TempStr ${Ini[${IniFile},Settings,tankname,NOTFOUND]}
/varset tankname ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/echo You need to start the macro with /mac afnuke tankname and generate your .INI file.
/endmacro
}
}
/call LoadINI
/call AntiRetard
/cleanup
/Echo  =+= Azum's AutoNuke Macro Enabled =+=
/Echo  =+= Type /afhelp for command list =+=
/if (${Spawn[${tankname}].ID} && ${doassist}>0) {
/Echo Your Main Assist is ${tankname}
/echo Your SA is ${mainassist2} and TA is ${mainassist3}
} else /if (!${Spawn[${tankname}].ID} && ${doassist}>0) {
/Echo Your Main Assist is ${tankname}, but they are not currently in the zone.
/echo Your SA is ${mainassist2} and TA is ${mainassist3}
}
/if (${doassist}<1) /echo Auto-Acquire Target Mode
/if (${Me.Sitting}) /sit off

/doevents flush

/call LoadExcludes
/if (${hasele}>0) {
/call ItemFinder "Maelin's Leggings of Lore" "Leg"
/if (${Macro.Return.Equal["NOTFOUND"]}) {
/varset hasele 0
/ini "${IniFile}" Settings hasele 0
}
}
:mainloop

/doevents
/delay 0
/if (${doleash}>0) /call Leash
/if (${dopause}>0) /goto :mainloop
/if (${tempstaff}>0) {
/call ItemFinder "Staff of Temperate Flux"
/if (${Macro.Return.Equal["NOTFOUND"]}) {
/varset tempstaff 0
/echo You don't appear to have a Staff of Temperate Flux
}
}
/if (${modrod}>0) {
/call ItemFinder "Rod of Mystical Transvergance"
/if (${Macro.Return.Equal["NOTFOUND"]}) {
/varset hasrod 0
} else {
/varset hasrod 1
}
}
/if (${Me.Pet.ID} && ${Me.Pet.Name.Find[familiar]}) /pet get lost
/if (${Cursor.ID} && ${Cursor.Name.Equal[Rod of Mystical Transvergance]}) /autoinv
/if (${doharvest}>0) /call Harvestcheck
/if (${Me.CountBuffs}>=${maxbuffs}) /call Junk
/if (!${clicktimer}) /call ClickBuffcheck
/call Buffcheck
/if (${modrod}>0 && ${Me.PctMana}<=${rodpercent} && ${hasrod}>0 && !${rodtimer}) /call Modrod
/if (${manarobe}>0 && ${hasrobe}>0 && ${Me.PctMana}<=${beginrobe}) /call Manarobe
/if (${medtoggle}>0) /call Medcheck
/if (${autosit}>0 && ${engagedmob}==0 && !${sittimer} && !${Me.Moving}) /call Autosit
/if (${doassist}>0) /call Assistcheck
/if (${doassist}<1) /call NoAssist
/if (${engagedmob}==1 && ${Target.ID}==${mobid} && ${preconc}>0 && ${Target.LineOfSight} && ${pcid}!=${mobid}) /call Preconc
/if (${engagedmob}==1 && ${Target.ID}==${mobid} && ${Target.LineOfSight}) /call Nuke
/goto :mainloop
/endmacro

Sub Event_slain
/if (${Target.CurrentHPs}>=0) /return
/varset engagedmob 0
/varset mobid 0
/varset conccount 0
/varset nukecount 0
/varset snaretimer 0
/varset pausetimer 0
/return

Sub Event_EXP
/if (${Target.CurrentHPs}>=0) /return
/varset engagedmob 0
/varset mobid 0
/varset conccount 0
/varset nukecount 0
/varset snaretimer 0
/varset pausetimer 0
/return

sub event_stunned
:stunloop
/if (!${Me.Stunned}) /return
/delay 1s !${Me.Stunned}
/if (${Me.Stunned}) /goto :stunloop
/return

sub event_cantsee
/varset engagedmob 0
/varset mobid 0
/varset conccount 0
/varset nukecount 0
/varset snaretimer 0
/varset pausetimer 0
/return

sub event_range
/varset engagedmob 0
/varset mobid 0
/varset conccount 0
/varset nukecount 0
/varset snaretimer 0
/varset pausetimer 0
/return

sub event_oom
/if (${Me.PctMana}<10 && !${Me.Moving} && !${Me.Casting.ID}) {
/echo Mana too low, medding to 15 mana.
} else {
/goto :end
}
:Medloop

/doevents

/if (${doleash}>0) /call Leash
/if (${Cursor.ID} && ${Cursor.Name.Equal[Rod of Mystical Transvergance]}) /autoinv
/if (${modrod}>0 && ${Me.PctMana}<=${rodpercent} && ${hasrod}>0 && !${rodtimer}) /call Modrod
/if (${forceshield}>0) /call Forceshield
/if (!${clicktimer}) /call ClickBuffcheck
/if (${doharvest}>0 && ${Me.PctMana}<=${harvestpercent}) {
/if ((${Me.AltAbilityReady["Harvest of Druzzil"]} && ${Me.AltAbility["Harvest of Druzzil"]}>0) || ${Me.SpellReady["Harvest"]}) {
/echo Harvest Ready, stopping meditation and casting.
/if (${Me.Sitting}) /sit off
/call Harvestcheck
/echo Resuming Quick Meditation
}
}
/if (${Cursor.ID} && ${Cursor.Name.Equal[Rod of Mystical Transvergance]}) /autoinv
/if (${Me.CountBuffs}>=${maxbuffs}) /call Junk
/if (${SpawnCount[npc radius 40 zradius 20 noalert ${AlertList}]}>0) {
/varset npcnum ${SpawnCount[npc radius 40 zradius 20 noalert ${AlertList}]}
/for m 1 to ${npcnum} step 1
/if (${NearestSpawn[${m}, npc noalert ${AlertList}].LineOfSight}) {
/if (!${Me.Mount.ID} && ${Me.Sitting}) /sit off
}
} else {
/next m
/if (!${Me.Mount.ID} && !${Me.Sitting} && !${Me.Moving} && ${Me.PctMana}<15) /sit on
}
/if (${Me.PctMana}<15) /goto :Medloop
/if (${Me.Sitting}) /sit off
/echo Finished Quick Medding at ${Me.PctMana} mana.
:end
/return

Sub event_force
/call Forceshield
/return

Sub event_spellshield
/call Spellshield
/return

Sub event_manaward
/call Manaward
/return

sub event_togglemain(Line, Command)
/if (!${Int[${Command.Length}]}) /return
/if (!${Me.Book[${Command}]}) {
/echo You dont appear to have ${Command} in your spellbook.
/goto :end
} else /if (${Me.Book[${Command}]}) {
/ini "${IniFile}" Settings mainnuke "${Command}"
/varset TempStr ${Ini[${IniFile},Settings,mainnuke,NOTFOUND]}
/varset mainnuke ${TempStr}
/if (${mainnuke.Equal[${endnuke}]} && ${endnukegem.Right[1]}!=${mainnukegem.Right[1]}) {
/varset endnukegem ${mainnukegem}
} else /if (!${mainnuke.Equal[${endnuke}]}) {
/varset TempStr ${Ini[${IniFile},Settings,endnukegem,NOTFOUND]}
/varset endnukegem ${TempStr}
}
/echo Your main nuke is now ${mainnuke}
/if (${Me.Gem[${mainnuke}]}) /return
/if (!${Me.Gem[${mainnuke}]}) {
/memspell ${mainnukegem.Right[1]} "${mainnuke}"
/delay 4s
}
}
:end
/return

sub event_toggleend(Line, Command)
/if (!${Int[${Command.Length}]}) /return
/if (!${Me.Book[${Command}]}) {
/echo You dont appear to
have ${Command} in your spellbook.
/goto :end
} else /if (${Me.Book[${Command}]}) {
/ini "${IniFile}" Settings endnuke "${Command}"
/varset TempStr ${Ini[${IniFile},Settings,endnuke,NOTFOUND]}
/varset endnuke ${TempStr}
/if (${mainnuke.Equal[${endnuke}]} && ${endnukegem.Right[1]}!=${mainnukegem.Right[1]}) {
/varset endnukegem ${mainnukegem}
} else /if (!${mainnuke.Equal[${endnuke}]}) {
/varset TempStr ${Ini[${IniFile},Settings,endnukegem,NOTFOUND]}
/varset endnukegem ${TempStr}
}
/echo Your end nuke is now ${endnuke}
/if (!${Me.Gem[${endnuke}]}) {
/memspell ${endnukegem.Right[1]} "${endnuke}"
/delay 4s
}
}
:end
/return

sub event_toggleconc
/if (${concuss}>0) {
/varset concuss 0
/echo Concussion Disabled
} else /if (${concuss}<1) {
/varset concuss 1
/echo Concussion Enabled
}
/ini "${IniFile}" Settings concuss ${concuss}
/return

sub event_togglemodrod
/if (${modrod}>0) {
/varset modrod 0
/echo Mod Rodding Disabled
} else /if (${modrod}<1) {
/varset modrod 1
/echo Mod Rodding Enabled
}
/ini "${IniFile}" Settings modrod ${modrod}
/return

sub event_toggleharvest
/if (${doharvest}>0) {
/varset doharvest 0
/echo Harvesting Disabled
} else /if (${doharvest}<1) {
/varset doharvest 1
/echo Harvesting Enabled
}
/ini "${IniFile}" Settings doharvest ${doharvest}
/return

sub event_togglemeditate
/if (${medtoggle}>0) {
/varset medtoggle 0
/echo Meditation Disabled
} else /if (${medtoggle}<1) {
/varset medtoggle 1
/echo Meditation Enabled
}
/ini "${IniFile}" Settings medtoggle ${medtoggle}
/return

sub event_togglepreconc
/if (${preconc}>0) {
/varset preconc 0
/echo Pre-Concussion Disabled
} else /if (${preconc}<1) {
/varset preconc 1
/echo Pre-Concussion Enabled
}
/ini "${IniFile}" Settings preconc ${preconc}
/return

sub event_toggleforceshield
/if (${forceshield}>0) {
/varset forceshield 0
/echo Force Shield Disabled
} else /if (${forceshield}<1) {
/varset forceshield 1
/echo Force Shield Enabled
}
/ini "${IniFile}" Settings forceshield ${forceshield}
/return

sub event_toggleepic
/if (${useepic}>0) {
/varset useepic 0
/echo Staff of the Four Disabled
} else /if (${useepic}<1) {
/varset useepic 1
/echo Staff of the Four Enabled
}
/ini "${IniFile}" Settings useepic ${useepic}
/return

sub event_toggletimewand
/if (${usetimewand}>0) {
/varset usetimewand 0
/echo Wand of Impenetrable Force Disabled
} else /if (${usetimewand}<1) {
/varset usetimewand 1
/echo Wand of Impenetrable Force Enabled
}
/ini "${IniFile}" Settings usetimewand ${usetimewand}
/return

sub event_togglesnare
/if (${dosnare}>0) {
/varset dosnare 0
/echo Snare Disabled
} else /if (${dosnare}<1) {
/varset dosnare 1
/echo Snare Enabled
}
/ini "${IniFile}" Settings dosnare ${dosnare}
/return

sub event_toggleass
/if (${doassist}>0) {
/varset doassist 0
/echo Auto-Acquire Targets Enabled.
/goto :done
} else /if (${doassist}<1) {
/varset doassist 1
/echo Auto-Assist Enabled
/if (${Spawn[${tankname}].ID}) {
/Echo Your Main Assist is ${tankname}
/echo Your SA is ${mainassist2} and TA is ${mainassist3}
} else /if (!${Spawn[${tankname}].ID}) {
/Echo Your Main Assist is ${tankname}, but they are not currently in the zone.
/echo Your SA is ${mainassist2} and TA is ${mainassist3}
}
}
:Done
/ini "${IniFile}" Settings doassist ${doassist}
/return

sub event_toggletemp
/if (${tempstaff}>0) {
/varset tempstaff 0
/echo Temp Staff Debuff Disabled
} else /if (${tempstaff}<1) {
/varset tempstaff 1
/echo Temp Staff Debuff Enabled
}
/ini "${IniFile}" Settings tempstaff ${tempstaff}
/return

sub event_togglexuzl
/if (${doxuzl}>0) {
/varset doxuzl 0
/echo Call of Xuzl Disabled
} else /if (${doxuzl}<1) {
/varset doxuzl 1
/echo Call of Xuzl Enabled
}
/ini "${IniFile}" Settings doxuzl ${doxuzl}
/return

sub event_togglemanarobe
/if (${manarobe}>0) {
/varset manarobe 0
/echo Mana Robing Disabled
} else /if (${manarobe}<1) {
/varset manarobe 1
/echo Mana Robing Enabled
}
/ini "${IniFile}" Settings manarobe ${manarobe}
/return

sub event_toggless
/if (${spellshield}>0) {
/varset spellshield 0
/echo Spellshield Disabled
} else /if (${spellshield}<1) {
/varset spellshield 1
/echo Spellshield Enabled
}
/ini "${IniFile}" Settings spellshield ${spellshield}
/return

sub event_togglemaelin
/if (${shieldofmaelin}>0) {
/varset shieldofmaelin 0
/echo ${shieldspell} Disabled
} else /if (${shieldofmaelin}<1) {
/varset shieldofmaelin 1
/echo ${shieldspell} Enabled
}
/ini "${IniFile}" Settings shieldofmaelin ${shieldofmaelin}
/return

sub event_toggleautosit
/if (${autosit}>0) {
/varset autosit 0
/echo Autosit Disabled
} else /if (${autosit}<1) {
/varset autosit 1
/echo Autosit Enabled
}
/ini "${IniFile}" Settings autosit ${autosit}
/return

sub event_cycleassist
/if (${doassist}<1) /return
/if (${tankname.Equal[${mainassist1}]}) {
/if (${Spawn[${mainassist2}].ID}) {
/varset tankname ${mainassist2}
/Echo Your Main Assist changed to ${tankname}
/goto :done
} else /if (!${Spawn[${mainassist2}].ID} && ${Spawn[${mainassist3}].ID}) {
/varset tankname ${mainassist3}
/Echo Your Main Assist changed to ${tankname}
/goto :done
} else /if (!${Spawn[${mainassist2}].ID} && !${Spawn[${mainassist3}].ID} && ${Spawn[${mainassist1}].ID}) {
/varset tankname ${mainassist1}
/Echo Your Main Assist is still ${tankname}, because ${mainassist2} and ${mainassist3} are not in the zone.
/goto :done
} else /if (!${Spawn[${mainassist2}].ID} && !${Spawn[${mainassist3}].ID} && !${Spawn[${mainassist1}].ID}) {
/echo All Assists dead or zoned, assist cycle failed
/goto :done
}
}
/if (${tankname.Equal[${mainassist2}]}) {
/if (${Spawn[${mainassist3}].ID}) {
/varset tankname ${mainassist3}
/Echo Your Main Assist changed to ${tankname}
/goto :done
} else /if (!${Spawn[${mainassist3}].ID} && ${Spawn[${mainassist1}].ID}) {
/varset tankname ${mainassist1}
/Echo Your Main Assist changed to ${tankname}
/goto :done
} else /if (!${Spawn[${mainassist3}].ID} && !${Spawn[${mainassist1}].ID} && ${Spawn[${mainassist2}].ID}) {
/varset tankname ${mainassist2}
/Echo Your Main Assist is still ${tankname}, because ${mainassist1} and ${mainassist3} are not in the zone.
/goto :done
} else /if (!${Spawn[${mainassist3}].ID} && !${Spawn[${mainassist1}].ID} && !${Spawn[${mainassist2}].ID}) {
/echo All Assists dead or zoned, assist cycle failed
/goto :done
}
}
/if (${tankname.Equal[${mainassist3}]}) {
/if (${Spawn[${mainassist1}].ID}) {
/varset tankname ${mainassist1}
/Echo Your Main Assist changed to ${tankname}
/goto :done
} else /if (!${Spawn[${mainassist1}].ID} && ${Spawn[${mainassist2}].ID}) {
/varset tankname ${mainassist2}
/Echo Your Main Assist changed to ${tankname}
/goto :done
} else /if (!${Spawn[${mainassist1}].ID} && !${Spawn[${mainassist2}].ID} && ${Spawn[${mainassist3}].ID}) {
/varset tankname ${mainassist3}
/Echo Your Main Assist is still ${tankname}, because ${mainassist1} and ${mainassist2} are not in the zone.
/goto :done
} else /if (!${Spawn[${mainassist3}].ID} && !${Spawn[${mainassist1}].ID} && !${Spawn[${mainassist2}].ID}) {
/echo All Assists dead or zoned, assist cycle failed
}
}
:done
/return

sub event_togglema(Line, Command)
/if (!${Command.Length}) /return
/ini "${IniFile}" Settings tankname ${Command}
/ini "${IniFile}" Settings mainassist1 ${Command}
/varset mainassist1 ${Command}
/varset tankname ${Command}
/echo Your Main Assist is ${tankname}
/return

sub event_togglesa(Line, Command)
/if (!${Command.Length}) /return
/ini "${IniFile}" Settings mainassist2 ${Command}
/varset mainassist2 ${Command}
/echo Your SA is ${mainassist2}
/return

sub event_toggleta(Line, Command)
/if (!${Command.Length}) /return
/ini "${IniFile}" Settings mainassist3 ${Command}
/varset mainassist3 ${Command}
/echo Your TA is ${mainassist3}
/return

sub event_pause
/if (${dopause}>0) {
/varset dopause 0
/echo  - Afnuke Unpaused -
} else /if (${dopause}<1) {
/varset dopause 1
/if (${Target.ID}) /squelch /target clear
/delay 2
/echo  - Afnuke Paused -
}
/return

sub event_togglemanaward
/if (${manaward}>0) {
/varset manaward 0
/echo Mana Ward Disabled
} else /if (${manaward}<1) {
/varset manaward 1
/echo Mana Ward Enabled
/if (!${Me.Gem["Mana Ward"]} && ${manaward}>0) {
/memspell ${manawardgem.Right[1]} "Mana Ward"
/delay 4s
}
}
/ini "${IniFile}" Settings manaward ${manaward}
/return

sub event_concnum(Line,int Command)
/if (${Command}>0) {
/varset concnum ${Command}
/ini "${IniFile}" Settings concnum ${Command}
/varset concnum ${Command}
/echo Concussion Number set to ${concnum}
}
/return

sub event_toggleharvestperc(Line,int Command)
/if (${Command}>0) {
/varset harvestpercent ${Command}
/ini "${IniFile}" Settings harvestpercent ${Command}
/varset harvestpercent ${Command}
/echo Harvest Percent set to ${harvestpercent}
}
/return

sub event_togglepreconcnum(Line,int Command)
/if (${Command}>0) {
/varset preconcnum ${Command}
/ini "${IniFile}" Settings preconcnum ${Command}
/varset preconcnum ${Command}
/echo PreConc Num set to ${preconcnum}
}
/return

sub event_familiar(Line,int Command)
/declare oldfamiliar int local
/varset oldfamiliar ${myfamiliar}
/if ((${Command}==52)||(${Command}==179)||(${Command}==303)||(${Command}==304)||(${Command}==305)||(${Command}==453)||(${Command}==454)||(${Command}==455)||(${Command}==457)) {
/ini "${IniFile}" Settings myfamiliar ${Command}
/varset myfamiliar ${Command}
/echo Familiar Type successfully switched.
/if (${myfamiliar}!=${oldfamiliar}) {
/for m 1 to 20 step 1
/if (${Me.Buff[${m}].ID}>0) {
/if (${Me.Buff[${m}].Name.Find["familiar"]}) /varset buffslot ${Math.Calc[${Me.Buff[${m}].ID}-1]}
}
/next m
/notify BuffWindow Buff${buffslot} leftmouseup
/delay 1
/if (${Me.AltAbilityReady["${myfamiliar}"]} && ${Me.AltAbility["${myfamiliar}"]}>0 && !${Me.Casting.ID} && !${Me.Moving}) {
/call cast "${myfamiliar}" alt 7s
/delay 2
/if (${Me.Pet.ID} && ${Me.Pet.Name.Find[familiar]}) /pet get lost
:wait1
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait1
}
}
} else {
/echo Invalid Familiar. 52=improved,179=allegiant,303=Ro,304=E'ci,305=Druzzil,453=Greater Ro,453=Greater E`ci,455=Greater Druzzil,457=Devoted
}
/return

sub event_togglemobhealth(Line,int Command)
/if (${Command}>0) {
/ini "${IniFile}" Settings mobhealth ${Command}
/varset mobhealth ${Command}
/echo Mob Health is now ${mobhealth}
} else {
/echo Invalid Mob Health specified.
}
/return

sub event_togglemaxbuffs(Line,int Command)
/if (${Command}>0) {
/ini "${IniFile}" Settings maxbuffs ${Command}
/varset maxbuffs ${Command}
/echo Max Buffs is now ${maxbuffs}
} else {
/echo Invalid Max Buffs specified.
}
/return

sub event_togglestaffhealth(Line,int Command)
/if (${Command}>0) {
/ini "${IniFile}" Settings staffhealth ${Command}
/varset staffhealth ${Command}
/echo Staff Health is now ${staffhealth}
} else {
/echo Invalid Staff Health specified.
}
/return

sub event_togglesnareperc(Line,int Command)
/if (${Command}>0) {
/ini "${IniFile}" Settings snareperc ${Command}
/varset snareperc ${Command}
/echo Snare Percent is now ${snareperc}
} else {
/echo Invalid Snare Percent specified.
}
/return

sub event_togglexuzlperc(Line,int Command)
/if (${Command}>0) {
/ini "${IniFile}" Settings xuzlperc ${Command}
/varset xuzlperc ${Command}
/echo Xuzl Percent is now ${xuzlperc}
} else {
/echo Invalid Xuzl Percent specified.
}
/return

sub event_togglestopnuke(Line,int Command)
/if (${Command}>0 || ${Command}<0) {
/ini "${IniFile}" Settings stopnuke ${Command}
/varset stopnuke ${Command}
/echo Stop Nuke is now ${stopnuke}
} else {
/echo Invalid Stop Nuke specified.
}
/return

sub event_togglestopnuke2(Line,int Command)
/if (${Command}>0 || ${Command}<0) {
/ini "${IniFile}" Settings stopnuke2 ${Command}
/varset stopnuke2 ${Command}
/echo Stop Nuke2 is now ${stopnuke2}
} else {
/echo Invalid Stop Nuke2 specified.
}
/return

sub event_toggledistance(Line,int Command)
/if (${Command}>0) {
/ini "${IniFile}" Settings engagedistance ${Command}
/varset engagedistance ${Command}
/echo Engage Distance is now ${engagedistance}
} else {
/echo Invalid Engage Distance specified.
}
/return

sub event_togglemainnukenum(Line,int Command)
/if (${Command}>0) {
/varset mainnukenum ${Command}
/ini "${IniFile}" Settings mainnukenum ${Command}
/varset mainnukenum ${Command}
/echo Number of main nukes before concussion set to ${mainnukenum}
} else {
/echo Invalid number of main nukes before concussion specified.
}
/return

sub event_toggleendnukenum(Line,int Command)
/if (${Command}>0) {
/ini "${IniFile}" Settings endnukenum ${Command}
/varset endnukenum ${Command}
/echo Number of end nukes before concussion set to ${endnukenum}
} else {
/echo Invalid number of end nukes before concussion specified.
}
/return

Sub Event_nukepause(EvtText)
/varset EvtText ${EvtText.Right[-16]}
/if (${EvtText.Length}>0) {
/if (${EvtText.Equal["None"]} || ${EvtText.Equal["0"]}) {
/varset nukepause None
/varset pausetimer 0
/echo - Nuke Pause set to ${nukepause}
} else {
/varset nukepause ${EvtText}
/echo - Nuke Pause set to ${nukepause}
}
}
/ini "${IniFile}" Settings nukepause ${nukepause}
/return

Sub Event_addmaster(EvtText)
/varset EvtText ${EvtText.Right[-16]}
/if (${EvtText.Length}>0) {
/call AddMaster "${EvtText}"
}
/return

Sub Event_delmaster(EvtText)
/varset EvtText ${EvtText.Right[-16]}
/if (${EvtText.Length}>0) {
/call DelMaster "${EvtText}"
}
/return

Sub Event_addjunk(EvtText)
/varset EvtText ${EvtText.Right[-14]}
/if (${EvtText.Length}>0) {
/call AddJunkBuff "${EvtText}"
}
/return

Sub Event_deljunk(EvtText)
/varset EvtText ${EvtText.Right[-14]}
/if (${EvtText.Length}>0) {
/call DelJunkBuff "${EvtText}"
}
/return

Sub Event_exclude(EvtText)
/varset EvtText ${EvtText.Right[-14]}
/if (${EvtText.Length}>0) {
/call AddExclude "${EvtText}"
}
/return

Sub Event_include(EvtText)
/varset EvtText ${EvtText.Right[-14]}
/if (${EvtText.Length}>0) {
/call DelExclude "${EvtText}"
}
/return

Sub Event_mezbreak(string line,string name)
/if ( ${name.Equal[${Me.Name}]} ) {
/echo Mez break detected, getting a new target.
/varset engagedmob 0
/varset mobid 0
/varset conccount 0
/varset nukecount 0
/varset snaretimer 0
/varset pausetimer 0
/if (${Target.ID}) /squelch /target clear
}
/return

Sub Event_itemset(string Line, Command1, Command2, Command3)
/ini ${IniFile} "${Command1}" "FullName" "${Command3}"
/ini ${IniFile} "${Command1}" "KeepUp" "${If[${Command2.Equal[keepup]},TRUE,FALSE]}"
/echo ${Command3} (KeepUp=${If[${Command2.Equal[keepup]},TRUE,FALSE]}) updated in INI!
}
/return

Sub Event_itembounce(string Line, Command1, Command2)
/if (!${Command2.Length}) {
/echo Improper use of /ibounce
/echo /ibounce <itemalias> Some Spell Name
/echo For example:
/echo /ibounce gobby Strength of Tunare
/return
}
/if (!${Ini[${IniFile},${Command1}].Length}) {
/echo [${Command1}] not in INI file!
/return
}
/declare bindex int local 1
:CheckNextKey
/if (${Ini[${IniFile},${Command1},BounceOff${bindex}].Length}) {
|- This one is in use...
/varcalc bindex ${bindex}+1
/goto :CheckNextKey
} else {
/ini ${IniFile} "${Command1}" "BounceOff${bindex}" "${Command2}"
/echo Added "${Command2}" to [${Command1}]'s bounce list
}
/return

Sub Event_itemcast(string Line, Command)
/if (!${Command.Length}) {
/echo Improper use of /icast
/echo /icast <itemalias>
/echo For example:
/echo /icast gobby
/return
}
/if (!${Ini[${IniFile},${Command}].Length}) {
/echo "[${Command}] not in INI file!
/return
}
/declare fullname string local ${Ini[${IniFile},${Command},FullName]}
/if (${Me.CountBuffs}>=${maxbuffs}) /call Junk
/call ItemFinder "${fullname}"
/if (${Macro.Return.Equal["NOTFOUND"]}) /return
/varset itemspellname ${FindItem[${Ini[${IniFile},${Command},FullName]}].Spell}
| /echo Casting ${itemspellname}
/if (${Macro.Return.Equal["INVENTORY"]}) /call IteminInvSlot "${fullname}"
/if (${Macro.Return.Equal["BAGGED"]}) /call IteminBag "${fullname}"
/if (${Macro.Return.Equal["EQUIPPED"]}) /call RightClickItem "${fullname}"
/return

Sub Event_togleash(string Line)
/if (${Line.Arg[3].Equal[OFF]} || (${Int[${Line.Arg[3]}]}<=0)) {
/varset doleash 0
/varset leashholder Nobody
/echo - Leashing is now OFF!
/ini "${IniFile}" "Settings" "doleash" "${doleash}"
} else {
/if (${Line.Arg[4].Length}) {
/varset leashholder ${Line.Arg[4]}
/if (${Spawn[${leashholder}].ID}) {
/varset doleash 1
/varset leashlength ${Int[${Line.Arg[3]}]}
/echo - Leashing is now ON! Leashlength: ${leashlength} ft.
/echo - Leash-holding master is: ${leashholder}
/ini "${IniFile}" "Settings" "doleash" "${doleash}"
} else {
|- This spawn/thing/target doesn't exist
/echo - Can't find "${leashholder}" -- Who is that?!
/echo - Leashing is now OFF!
/varset doleash 0
/varset leashholder Nobody
}
} else {
/varset doleash 1
/varset leashholder Nobody
/varset leashlength ${Int[${Line.Arg[3]}]}
/varset stakeX ${Me.X}
/varset stakeY ${Me.Y}
/echo - Leashing is now ON! Leashlength: ${leashlength} ft.
/echo - Stake planted at X:${stakeX}, Y:${stakeY}
}
}
/ini "${IniFile}" "Settings" "leashholder" "${leashholder}"
/ini "${IniFile}" "Settings" "leashlength" "${leashlength}"
/return

Sub Event_autofollow(string Line)
/declare distance int local 15
/if (${Ini[${IniFile},Settings,followdistance].NotEqual[NULL]}) {
/varset distance ${Ini[${IniFile},Settings,followdistance]}
}
/if (${Line.Arg[3].Length}) /target ${Line.Arg[3]}
/if (${Line.Arg[4].Length}) /varset distance ${Line.Arg[4]}
/if (${distance}<10) /varset distance 10
/ini "${IniFile}" "Settings" "followdistance" "${distance}"
/if (${Target.ID}) {
/echo - Autofollow on: ${Target.CleanName} (${distance} ft.)
/echo - Change targets to stop autofollowing.
} else {
/echo - Can't activate Autofollow -- no valid target!
/return
}
/declare followID int local ${Target.ID}
:FollowingLoop
/varset X ${Me.X}
/varset Y ${Me.Y}

/doevents

/if (${Target.ID}) /face fast nolook
/if ((${Target.Distance}>${distance})&&(${Target.ID}==${followID})) {
/keypress forward hold
/delay 2
/if ((${Me.X}==${X}) && (${Me.Y}==${Y})) /call Obstacle
}
/if ((${Target.Distance}<=${distance})&&(${Target.ID}==${followID})) /keypress back
/if (${Target.ID}==${followID}) {
/goto :FollowingLoop
} else {
/keypress forward
/keypress back
}
/echo - Autofollow ended.
/return

Sub Event_stopfollow(string Line)
/if (${Target.ID}) /squelch /target clear
/return

Sub Event_Chat(ChatType, Sender, ChatText)
/if (${ChatText.Left[1].Equal[/]}) {
/call LoadMasters "${Sender}" "${ChatText}"
/goto :done
}
:done
/return

Sub Event_hit
/doevents died
/return

sub event_died
/echo You died, ending macro
/endmacro

Sub Event_summon
/call Event_hit
/return

Sub Event_getout
/if (${Me.Casting.ID}) /call Interrupt
/if (${Target.ID}) /squelch /target clear
/if (${Me.AltAbilityReady["43"]} && ${Me.AltAbility["43"]}>0 && !${Me.Casting.ID}) {
/call Cast "43" alt 7s
} else {
/call Cast "Evacuate" gem5 7s
/delay 8
}
/return

Sub Event_translocate(string Line)
/if (!${Line.Arg[3].Length} || ${autoTL}<1) /return
/declare Person string local
:wait1
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait1
/varset Person ${Line.Arg[3]}
/if (${Spawn[${Person}].ID} && ${Spawn[${Person}].Distance}<=100) {
/squelch /target id ${Spawn[${Person}].ID}
/delay 2s
/call ItemFinder "Time Traveler's Abandoned Notebook"
/if (${Macro.Return.Equal["NOTFOUND"]}) /goto :nobook
/if (${Macro.Return.Equal["INVENTORY"]}) /call IteminInvSlot "Time Traveler's Abandoned Notebook"
/if (${Macro.Return.Equal["BAGGED"]}) /call IteminBag "Time Traveler's Abandoned Notebook"
/if (${Macro.Return.Equal["EQUIPPED"]}) /call RightClickItem "Time Traveler's Abandoned Notebook"
/goto :done
:nobook
/call cast "Translocate" gem5 7s
} else {
/echo Translocate failed - ${Person} too far away or not in zone.
}
:done
/return

Sub Event_afhelp
/echo -(AFNuke Help)-
/echo /tl <name> - Translocate someone to bind
/echo /evac - Exodus or Evac immediately
/echo /harvest - Harvest toggle
/echo /harvestperc - Harvest Percent
/echo /medtoggle - Meditation toggle
/echo /modrod - Mod Rod Toggle
/echo /timewand - Wand of Impenetrable Force toggle
/echo /epic - Staff of the Four toggle
/echo /force - Force Shield Enable/Disable
/echo /temp - Temp Staff Enable/Disable
/echo /staffhealth <number> - Temp Staff Health
/echo /nuke1 <name of nuke> - Main Nuke
/echo /nuke2 <name of nuke> - End Nuke
/echo /preconc - PreConcussion toggle
/echo /preconcnum - Number of PreConcussions
/echo /conc - Concussion Enable/Disable
/echo /concnum <number> - Number of Concussions to cast
/echo /myfamiliar <number> - 52=improved,179=allegiant,303=Ro's,304=E'ci's,305=Druzzil,453=Greater Ro,453=Greater E`ci,455=Greater Druzzil,457=Devoted
/echo /mainnukenum <number> - Number of Main Nukes before concussion
/echo /endnukenum <number> - Number of End Nukes before concussion
/echo /maxbuffs <number> - Max Buffs before auto-clicking junk buffs
/echo /mobhealth <number> - Mob Health (Minimum health before engaging)
/echo /stopnuke <number> - Stop Nuke Amount (Switch to endnuke at this amount)
/echo /stopnuke2 <number> - Stop Nuke2 Amount (Stop nuking at this amount)
/echo /engagedistance <number> - Engage Distance
/echo /addjunk <name of buff> - Add Buff to Junk Buffs List
/echo /deljunk <name of buff> - Remove Buff from Junk Buffs List
/echo /addmaster <name> - Add Master to Masters List
/echo /delmaster <name> - Remove Master from Masters List
/echo /exclude <name> - Add NPC to Exclude List
/echo /include <name> - Remove NPC from Exclude List
/echo /manarobe - Mana Robe Enable/Disable
/echo /doassist - Toggle Assist/Auto-Acquire Targets
/echo /cycle - Cycle through your three assists
/echo /ma - Set Primary Main Assist
/echo /sa - Set Secondary Main Assist
/echo /ta - Set Tertiary Main Assist
/echo /doxuzl - Xuzl Toggle
/echo /xuzlperc <number> - Xuzl Percent Health
/echo /temp - Temp Staff Toggle
/echo /dosnare - Snare Toggle
/echo /snareperc <number> - Snare Percentage
/echo /ss - Spellshield Toggle
/echo /mw - Mana Ward Toggle
/echo /som - Shield of Maelin Toggle
/echo /pause - Pause Toggle
/echo /leash <distance> or /leash <distance> <player> - Set an anchor
/echo /autofollow <name> <distance> or /autofollow <name> - Autofollow Player, ends when target is cleared
/echo /stopfollow - Cancel autofollow
/echo /maxbuffs <number> - Max Amount of Buffs before autoclicking off junk buffs
/echo /nukepause <pausetime> or /nukepause None - Pause time between nukes
/echo /autosit - Autosit Toggle
/echo /iset <alias> nokeepup|keepup Full Item Name - Creates/modifies an item alias
/echo /iclick <alias> - Clicks Aliased Item
/echo /ibounce <alias> <name of buff> - Add an unstackable buff to the alias (Don't click alias if this buff is on you)
/return

sub Event_zoned
/if (${doleash}>0) {
/echo - Zoned... Setting Leash to OFF!
/varset doleash 0
/ini "${IniFile}" "Settings" "doleash" "${doleash}"
}
/return
Last edited by Dr_Flash on Thu Jul 21, 2005 3:44 pm, edited 1 time in total.

Dr_Flash
orc pawn
orc pawn
Posts: 11
Joined: Wed Feb 04, 2004 5:43 pm
Location: Atlanta, GA

Post by Dr_Flash » Thu Jul 21, 2005 3:41 pm

Code: Select all

| afnuke.inc 07/21/05 3:30pm est

Sub LoadINI
|  INI setup variables
/varset INIFlag 0
/varset TempStr ${Ini[${IniFile},Settings,mainassist1,NOTFOUND]}
/varset mainassist1 ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings mainassist1 ${tankname}
/varset mainassist1 ${tankname}
}
/varset TempStr ${Ini[${IniFile},Settings,mainassist2,NOTFOUND]}
/varset mainassist2 ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings mainassist2 ${tankname}
/varset mainassist2 ${tankname}
}
/varset TempStr ${Ini[${IniFile},Settings,mainassist3,NOTFOUND]}
/varset mainassist3 ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings mainassist3 ${tankname}
/varset mainassist3 ${tankname}
}
/varset TempStr ${Ini[${IniFile},Settings,doassist,NOTFOUND]}
/varset doassist ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings doassist 1
/varset doassist 1
}
/varset TempStr ${Ini[${IniFile},Settings,version,NOTFOUND]}
/if (${TempStr.Equal["NOTFOUND"]} || !${TempStr.Equal["${version}"]}) {
/varset INIFlag 1
/echo Configuring aliases.
/squelch /alias /evac /echo getout
/squelch /alias /tl /echo tlocate
/squelch /alias /modrod /echo domodrod
/squelch /alias /preconcnum /echo preconcnum
/squelch /alias /preconc /echo dopreconc
/squelch /alias /harvest /echo doharvest
/squelch /alias /harvestperc /echo harvestperc
/squelch /alias /medtoggle /echo medtoggle
/squelch /alias /epic /echo epic
/squelch /alias /timewand /echo timewand
/squelch /alias /force /echo forceshield
/squelch /alias /autosit /echo autosit
/squelch /alias /addmaster /echo addmaster
/squelch /alias /delmaster /echo delmaster
/squelch /alias /autofollow /echo autofollow
/squelch /alias /stopfollow /echo stopfollow
/squelch /alias /leash /echo leash
/squelch /alias /cycle /echo cycle
/squelch /alias /ta /echo ta
/squelch /alias /sa /echo sa
/squelch /alias /ma /echo ma
/squelch /alias /nuke1 /echo nuke1
/squelch /alias /nuke2 /echo nuke2
/squelch /alias /conc /echo conc
/squelch /alias /concnum /echo concnum
/squelch /alias /myfamiliar /echo myfamiliar
/squelch /alias /mainnukenum /echo mainnukenum
/squelch /alias /endnukenum /echo endnukenum
/squelch /alias /maxbuffs /echo maxbuffs
/squelch /alias /mobhealth /echo mobhealth
/squelch /alias /staffhealth /echo staffhealth
/squelch /alias /stopnuke /echo stopnuke
/squelch /alias /stopnuke2 /echo stopnuke2
/squelch /alias /engagedistance /echo engagedistance
/squelch /alias /doassist /echo assist
/squelch /alias /doxuzl /echo doxuzl
/squelch /alias /manarobe /echo manarobe
/squelch /alias /xuzlperc /echo xuzlperc
/squelch /alias /temp /echo temp
/squelch /alias /dosnare /echo dosnare
/squelch /alias /snareperc /echo snareperc
/squelch /alias /ss /echo ss
/squelch /alias /mw /echo mw
/squelch /alias /som /echo som
/squelch /alias /pause /echo pause
/squelch /alias /exclude /echo exclude
/squelch /alias /include /echo include
/squelch /alias /iset /echo itemset
/squelch /alias /ibounce /echo itembounce
/squelch /alias /iclick /echo itemcast
/squelch /alias /addjunk /echo addjunk
/squelch /alias /deljunk /echo deljunk
/squelch /alias /afhelp /echo afhelp
/squelch /alias /nukepause /echo nukepause
/ini "${IniFile}" Settings version ${version}
}
/varset TempStr ${Ini[${IniFile},Settings,autosit,NOTFOUND]}
/varset autosit ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings autosit 0
/varset autosit 0
}
/varset TempStr ${Ini[${IniFile},Settings,autositmana,NOTFOUND]}
/varset autositmana ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings autositmana 90
/varset autositmana 90
}
/varset TempStr ${Ini[${IniFile},Settings,autoTL,NOTFOUND]}
/varset autoTL ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings autoTL 0
/varset autoTL 0
}
/varset TempStr ${Ini[${IniFile},Settings,checktarget,NOTFOUND]}
/varset checktarget ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings checktarget nocheck
/varset checktarget nocheck
}
/varset TempStr ${Ini[${IniFile},Settings,preconc,NOTFOUND]}
/varset preconc ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings preconc 0
/varset preconc 0
}
/varset TempStr ${Ini[${IniFile},Settings,preconcnum,NOTFOUND]}
/varset preconcnum ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings preconcnum 1
/varset preconcnum 1
}
/varset TempStr ${Ini[${IniFile},Settings,concuss,NOTFOUND]}
/varset concuss ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings concuss 1
/varset concuss 1
}
/varset TempStr ${Ini[${IniFile},Settings,myconcgem,NOTFOUND]}
/varset myconcgem ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings myconcgem gem1
/varset myconcgem gem1
}
/varset TempStr ${Ini[${IniFile},Settings,concnum,NOTFOUND]}
/varset concnum ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings concnum 2
/varset concnum 2
}
/varset TempStr ${Ini[${IniFile},Settings,hasele,NOTFOUND]}
/varset hasele ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings hasele 1
/varset hasele 1
}
/varset TempStr ${Ini[${IniFile},Settings,checkfamiliar,NOTFOUND]}
/varset checkfamiliar ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings checkfamiliar 1
/varset checkfamiliar 1
}
/varset TempStr ${Ini[${IniFile},Settings,myfamiliar,NOTFOUND]}
/varset myfamiliar ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings myfamiliar 303
/varset myfamiliar 303
}
/varset TempStr ${Ini[${IniFile},Settings,engagedistance,NOTFOUND]}
/varset engagedistance ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings engagedistance 200
/varset engagedistance 200
}
/varset TempStr ${Ini[${IniFile},Settings,mainnuke,NOTFOUND]}
/varset mainnuke ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings mainnuke "White Fire"
/varset mainnuke White Fire
}
/varset TempStr ${Ini[${IniFile},Settings,mainnukegem,NOTFOUND]}
/varset mainnukegem ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings mainnukegem gem4
/varset mainnukegem gem4
}
/varset TempStr ${Ini[${IniFile},Settings,mainnukenum,NOTFOUND]}
/varset mainnukenum ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {

/varset INIFlag 1
/ini "${IniFile}" Settings mainnukenum 1
/varset mainnukenum 1
}
/varset TempStr ${Ini[${IniFile},Settings,endnuke,NOTFOUND]}
/varset endnuke ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings endnuke "Draught of Ro"
/varset endnuke Draught of Ro
}
/varset TempStr ${Ini[${IniFile},Settings,endnukenum,NOTFOUND]}
/varset endnukenum ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings endnukenum 4
/varset endnukenum 4
}
/varset TempStr ${Ini[${IniFile},Settings,endnukegem,NOTFOUND]}
/varset endnukegem ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings endnukegem gem8
/varset endnukegem gem8
}
/varset TempStr ${Ini[${IniFile},Settings,mobhealth,NOTFOUND]}
/varset mobhealth ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings mobhealth 93
/varset mobhealth 93
}
/varset TempStr ${Ini[${IniFile},Settings,stopnuke,NOTFOUND]}
/varset stopnuke ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings stopnuke 20
/varset stopnuke 23
}
/varset TempStr ${Ini[${IniFile},Settings,stopnuke2,NOTFOUND]}
/varset stopnuke2 ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings stopnuke2 -1
/varset stopnuke2 -1
}
/varset TempStr ${Ini[${IniFile},Settings,medtoggle,NOTFOUND]}
/varset medtoggle ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings medtoggle 0
/varset medtoggle 0
}
/varset TempStr ${Ini[${IniFile},Settings,medpercent,NOTFOUND]}
/varset medpercent ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings medpercent 35
/varset medpercent 35
}
/varset TempStr ${Ini[${IniFile},Settings,manatomedup,NOTFOUND]}
/varset manatomedup ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings manatomedup 70
/varset manatomedup 70
}
/varset TempStr ${Ini[${IniFile},Settings,manarobe,NOTFOUND]}
/varset manarobe ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings manarobe 0
/varset manarobe 0
}
/varset TempStr ${Ini[${IniFile},Settings,beginrobe,NOTFOUND]}
/varset beginrobe ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings beginrobe 20
/varset beginrobe 20
}
/varset TempStr ${Ini[${IniFile},Settings,donerobe,NOTFOUND]}
/varset donerobe ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings donerobe 75
/varset donerobe 75
}
/varset TempStr ${Ini[${IniFile},Settings,modrod,NOTFOUND]}
/varset modrod ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings modrod 1
/varset modrod 1
}
/varset TempStr ${Ini[${IniFile},Settings,rodpercent,NOTFOUND]}
/varset rodpercent ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings rodpercent 90
/varset rodpercent 90
}
/varset TempStr ${Ini[${IniFile},Settings,harvestpercent,NOTFOUND]}
/varset harvestpercent ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings harvestpercent 70
/varset harvestpercent 70
}
/varset TempStr ${Ini[${IniFile},Settings,doharvest,NOTFOUND]}
/varset doharvest ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings doharvest 1
/varset doharvest 1
}
/varset TempStr ${Ini[${IniFile},Settings,harvestgem,NOTFOUND]}
/varset harvestgem ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings harvestgem gem7
/varset harvestgem gem7
}
/varset TempStr ${Ini[${IniFile},Settings,shieldofmaelin,NOTFOUND]}
/varset shieldofmaelin ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings shieldofmaelin 0
/varset shieldofmaelin 0
}
/varset TempStr ${Ini[${IniFile},Settings,maelingem,NOTFOUND]}
/varset maelingem ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings maelingem gem6
/varset maelingem gem6
}
/varset TempStr ${Ini[${IniFile},Settings,forceshield,NOTFOUND]}
/varset forceshield ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings forceshield 1
/varset forceshield 1
}
/varset TempStr ${Ini[${IniFile},Settings,forcegem,NOTFOUND]}
/varset forcegem ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings forcegem gem3
/varset forcegem gem3
}
/varset TempStr ${Ini[${IniFile},Settings,usetimewand,NOTFOUND]}
/varset usetimewand ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings usetimewand 0
/varset usetimewand 0
}
/varset TempStr ${Ini[${IniFile},Settings,useepic,NOTFOUND]}
/varset useepic ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings useepic 0
/varset useepic 0
}
/varset TempStr ${Ini[${IniFile},Settings,spellshield,NOTFOUND]}
/varset spellshield ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings spellshield 0
/varset spellshield 0
}
/varset TempStr ${Ini[${IniFile},Settings,ssgem,NOTFOUND]}
/varset ssgem ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings ssgem gem5
/varset ssgem gem5
}
/varset TempStr ${Ini[${IniFile},Settings,manaward,NOTFOUND]}
/varset manaward ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings manaward 0
/varset manaward 0
}
/varset TempStr ${Ini[${IniFile},Settings,manawardgem,NOTFOUND]}
/varset manawardgem ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings manawardgem gem2
/varset manawardgem gem2
}
/varset TempStr ${Ini[${IniFile},Settings,tempstaff,NOTFOUND]}
/varset tempstaff ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings tempstaff 0
/varset tempstaff 0
}
/varset TempStr ${Ini[${IniFile},Settings,staffhealth,NOTFOUND]}
/varset staffhealth ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings staffhealth 95
/varset staffhealth 95
}
/varset TempStr ${Ini[${IniFile},Settings,doxuzl,NOTFOUND]}
/varset doxuzl ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings doxuzl 0
/varset doxuzl 0
}
/varset TempStr ${Ini[${IniFile},Settings,xuzlperc,NOTFOUND]}
/varset xuzlperc ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings xuzlperc 85
/varset xuzlperc 85
}
/varset TempStr ${Ini[${IniFile},Settings,dosnare,NOTFOUND]}
/varset dosnare ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings dosnare 0
/varset dosnare 0
}
/varset TempStr ${Ini[${IniFile},Settings,snareperc,NOTFOUND]}
/varset snareperc ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings snareperc 25
/varset snareperc 25
}
/varset TempStr ${Ini[${IniFile},Settings,snaregem,NOTFOUND]}
/varset snaregem ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings snaregem gem5
/varset snaregem gem5
}
/varset TempStr ${Ini[${IniFile},Settings,retry,NOTFOUND]}
/varset retry ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings retry 3
/varset retry 3
}
/varset TempStr ${Ini[${IniFile},Settings,maxbuffs,NOTFOUND]}
/varset maxbuffs ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings maxbuffs 15
/varset maxbuffs 15
}
/varset TempStr ${Ini[${IniFile},Settings,doleash,NOTFOUND]}
/varset doleash ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings doleash 0
/varset doleash 0
}
/varset TempStr ${Ini[${IniFile},Settings,leashholder,NOTFOUND]}
/varset leashholder ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings leashholder nobody
/varset leashholder nobody
}
/varset TempStr ${Ini[${IniFile},Settings,leashlength,NOTFOUND]}
/varset leashlength ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings leashlength 40
/varset leashlength 40
}
/varset TempStr ${Ini[${IniFile},Settings,followdistance,NOTFOUND]}
/varset followdistance ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings followdistance 30
/varset followdistance 30
}
/varset TempStr ${Ini[${IniFile},Settings,nukepause,NOTFOUND]}
/varset nukepause ${TempStr}
/if (${TempStr.Equal["NOTFOUND"]}) {
/varset INIFlag 1
/ini "${IniFile}" Settings nukepause None
/varset nukepause None
}
/if (${INIFlag}==1) {
/echo INI file created/appended.  Please customize ${IniFile} in your macros directory. You may now start the macro with /mac afnuke
/endmacro
}
/return

Sub TargetCheck
/declare temphealth int local
/if (${tempstaff}>0) /varset temphealth ${staffhealth}
/if (${tempstaff}<1) /varset temphealth ${mobhealth}
/if ((!${Target.ID})||(${Target.ID}!=${mobid})||(${Target.Distance}>${engagedistance})||(${Target.Type.Equal[Corpse]})||(${Target.PctHPs}<=${stopnuke2})||(${Target.PctHPs}>${temphealth})) {
/varset engagedmob 0
/varset mobid 0
/varset conccount 0
/varset nukecount 0
/varset snaretimer 0
/varset pausetimer 0
}
/return

Sub Assistcheck
/if (!${Spawn[${tankname}].ID}) {
/if (${Spawn[${mainassist1}].ID}) {
/varset tankname ${mainassist1}
/Echo Your Main Assist changed to ${tankname}
} else /if (${Spawn[${mainassist2}].ID}) {
/varset tankname ${mainassist2}
/Echo Your Main Assist changed to ${tankname}
} else /if (${Spawn[${mainassist3}].ID}) {
/varset tankname ${mainassist3}
/Echo Your Main Assist changed to ${tankname}
}
}
/if ((!${Me.Casting.ID})&&(!${Me.Moving})&&(${Spawn[${tankname}].ID})&&(${Spawn[${tankname}].Distance}<200)&&(${engagedmob}==0)&&(${mobid}==0)&&(!${asstimer})) {
/assist ${tankname}
/varset asstimer 1s
/if (${Target.ID} && !${Target.Type.Equal[PC]}) /varset mobid ${Target.ID}
} else {
/call TargetCheck
/return
}
/if (${Target.ID} && !${Target.Type.Equal[PC]}) /call CheckExcludes
/if (${tempstaff}<1) /goto :nostaff
/if ((${Target.ID}==${mobid} && ${Target.PctHPs}<=${staffhealth} && ${Target.Distance}<=${engagedistance} && ${Target.PctHPs}>${stopnuke2} && ${Target.LineOfSight} && ${Spawn[${mobid}].Type.Equal[npc]})||(${Spawn[${mobid}].Type.Equal[pet]} && !${Spawn[${mobid}].Master.Type.Equal[pc]})) {
/varset engagedmob 1
/Echo ${Target.CleanName} is at the distance of: ${Target.Distance}
/call Debuff
/return
} else {
/call TargetCheck
/return
}
:nostaff
/if ((${Target.ID}==${mobid} && ${Target.PctHPs}<=${mobhealth} && ${Target.Distance}<=${engagedistance} && ${Target.PctHPs}>${stopnuke2} && ${Target.LineOfSight} && ${Spawn[${mobid}].Type.Equal[npc]})||(${Spawn[${mobid}].Type.Equal[pet]} && !${Spawn[${mobid}].Master.Type.Equal[pc]})) {
/varset engagedmob 1
/Echo ${Target.CleanName} is at the distance of: ${Target.Distance}
/return
} else {
/call TargetCheck
/return
}

Sub NoAssist
/if (${SpawnCount[npc radius ${engagedistance} zradius 20 noalert ${AlertList}]}>0) {
/varset npcnum ${SpawnCount[npc radius ${engagedistance} zradius 20 noalert ${AlertList}]}
/for m 1 to ${npcnum} step 1
/if (${NearestSpawn[${m}, npc noalert ${AlertList}].LineOfSight}) {
/varset mobid ${NearestSpawn[${m}, npc noalert ${AlertList}].ID}
/target id ${mobid}
/delay 1s
/if (${tempstaff}<1) /goto :nostaff
/if ((${Target.ID}==${mobid})&&(${Target.PctHPs}<=${staffhealth})&&(${Target.Type.Equal[NPC]})&&(${Target.Animation}!=32)) {
/if ((${Target.Distance}<=${engagedistance})&&(${Target.PctHPs}>${stopnuke2})&&(${Target.LineOfSight})) {
/Echo ${Target.CleanName} is at the distance of: ${Target.Distance}
/varset engagedmob 1
/call Debuff
}
}
/goto :end

:nostaff
/if ((${Target.ID}==${mobid})&&(${Target.PctHPs}<=${mobhealth})&&(${Target.Type.Equal[NPC]})&&(${Target.Animation}!=32)) {
/if ((${Target.Distance}<=${engagedistance})&&(${Target.PctHPs}>${stopnuke2})&&(${Target.LineOfSight})) {
/if (${Target.PctHPs}<=${stopnuke2}) /return
/Echo ${Target.CleanName} is at the distance of: ${Target.Distance}
/varset engagedmob 1
}
}

/goto :end

}
}
/next m

:end
/return

Sub Debuff
/if (${Target.Distance}>200) {
/echo ${Target.CleanName} is too far away to debuff with Temp Staff.
/goto :done
}
/call ItemFinder "Staff of Temperate Flux"
/if (${Macro.Return.Equal["EQUIPPED"]} || ${Macro.Return.Equal["INVENTORY"]}) /goto :debuff
/if (${Macro.Return.Equal["BAGGED"]}) /call EquipFromBag "Staff of Temperate Flux"
:debuff
/varset retrycount ${Math.Calc[${retrycount}+1]}
/e Debuffing ${Target.CleanName}
/call RightClickItem "Staff of Temperate Flux"
/call RightClickItem "Staff of Temperate Flux"
/call RightClickItem "Staff of Temperate Flux"
| /if (${Macro.Return.Equal[CAST_RESISTED]} && ${retrycount}<${retry}) /goto :debuff
/if (!${olditem.Equal[NULL]}) {
/call ItemFinder "${olditem}" "${wornslot}"
/if (${Macro.Return.Equal["BAGGED"]}) /call EquipFromBag "${olditem}" "${wornslot}"
/varset olditem NULL
/varset wornslot NULL
}
:done
/varset retrycount 0
/return

Sub Autosit
/if (${SpawnCount[npc radius 40 zradius 20 noalert ${AlertList}]}>0) {
/varset npcnum ${SpawnCount[npc radius 40 zradius 20 noalert ${AlertList}]}
/for m 1 to ${npcnum} step 1
/if (${NearestSpawn[${m}, npc noalert ${AlertList}].LineOfSight}) {
/if (!${Me.Mount.ID} && ${Me.Sitting}) /sit off
}
} else {
/next m
/if (!${Me.Mount.ID} && !${Me.Sitting} && !${Me.Moving} && ${Me.PctMana}<${autositmana}) /sit on
}
/varset sittimer 1s
/return

Sub Nuke
/if ((${doxuzl}>0)&&(${Target.CurrentHPs}<=${xuzlperc})) {
/if (${Me.AltAbilityReady["246"]} || ${Me.AltAbilityReady["208"]}) /call Xuzl
}
:nukeloop

/doevents

/if (${doleash}>0) /call Leash
:wait1
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait1
/varset conccount 0
/if (${Cursor.ID} && ${Cursor.Name.Equal[Rod of Mystical Transvergance]}) /autoinv
/if (${forceshield}>0) /call Forceshield
/if (${dosnare}>0 && ${Target.CurrentHPs}<=${snareperc} && !${snaretimer}) /call Snare
/if (${modrod}>0 && ${Me.PctMana}<=${rodpercent} && ${hasrod}>0 && !${rodtimer}) /call Modrod
/if (${doharvest}>0 && ${Me.PctMana}<=${harvestpercent}) {
/if ((${Me.AltAbilityReady["Harvest of Druzzil"]} && ${Me.AltAbility["Harvest of Druzzil"]}>0) || ${Me.SpellReady["Harvest"]}) /call Harvestcheck
}
/if (${manaward}>0 && !${Me.Buff["Mana Ward"].ID}) /call Manaward
/call TargetCheck
/if (${engagedmob}==0) /return
:wait2
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait2
/if (${pausetimer}) /goto :nukeloop
/if ((${Target.CurrentHPs}>${stopnuke})&&(!${Me.Moving})&&(${Target.ID}==${mobid})&&(!${Target.Type.Equal[Corpse]})&&(${Target.LineOfSight})) {
/if (!${TempSpell.Equal[${mainnuke}]}) /varset nukecount 0
/varset nukecount ${Math.Calc[${nukecount}+1]}
/echo Main Nuke Number ${nukecount}
/varset TempSpell ${mainnuke}
:mainnuke
/call cast "${mainnuke}" ${mainnukegem} 7s
/if (${Macro.Return.Equal[CAST_NOTREADY]}) /goto :mainnuke
/if (!${nukepause.Equal["None"]}) /varset pausetimer ${nukepause}
} else /if ((${Target.CurrentHPs}<=${stopnuke})&&(!${Me.Moving})&&(${Target.CurrentHPs}>${stopnuke2})&&(${Target.ID}==${mobid})&&(!${Target.Type.Equal[Corpse]})&&(${Target.LineOfSight})) {
/if (!${TempSpell.Equal[${endnuke}]}) /varset nukecount 0
/varset nukecount ${Math.Calc[${nukecount}+1]}
/echo End Nuke Number ${nukecount}
/varset TempSpell ${endnuke}
:endnuke
/call cast "${endnuke}" ${endnukegem} 7s
/if (${Macro.Return.Equal[CAST_NOTREADY]}) /goto :endnuke
/if (!${nukepause.Equal["None"]}) /varset pausetimer ${nukepause}
}
:wait3
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait3
/call TargetCheck
/if (${engagedmob}==0) /return
/if (${concuss}<1) /goto :nukeloop
/if (${TempSpell.Equal[${mainnuke}]} && ${nukecount}<${mainnukenum}) /goto :nukeloop
/if (${TempSpell.Equal[${endnuke}]} && ${nukecount}<${endnukenum}) /goto :nukeloop
/if ((${concuss}>0)&&(${conccount}<${concnum})&&(${Target.CurrentHPs}>${stopnuke2})&&(!${Me.Moving})&&(${Target.ID}==${mobid})&&(!${Target.Type.Equal[Corpse]})&&(${Target.LineOfSight})) {
/call Concussion
}

/doevents died
/doevents summon
/doevents hit
/goto :nukeloop

Sub Concussion
:concloop

/doevents

/if (${doleash}>0) /call Leash
/varset nukecount 0
/if (${Cursor.ID} && ${Cursor.Name.Equal[Rod of Mystical Transvergance]}) /autoinv
:wait1
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait1
/call TargetCheck
/if (${engagedmob}==0) /return
/if (${conccount}>=${concnum}) /return
/if (${concuss}<1) /return
/if ((${Target.CurrentHPs}>${stopnuke2})&&(!${Me.Moving})&&(${Target.ID}==${mobid})&&(!${Target.Type.Equal[Corpse]})&&(${Target.LineOfSight})) {
/if (${hasele}>0) {
/call ItemFinder "Maelin's Leggings of Lore"
/if (${Macro.Return.Equal["INVENTORY"]}) {
/varset conccount ${Math.Calc[${conccount}+1]}
/echo Concussion Number ${conccount}
/call IteminInvSlot "Maelin's Leggings of Lore"
}
/if (${Macro.Return.Equal["BAGGED"]}) {
/varset conccount ${Math.Calc[${conccount}+1]}
/echo Concussion Number ${conccount}
/call IteminBag "Maelin's Leggings of Lore"
}
/if (${Macro.Return.Equal["EQUIPPED"]}) {
/varset conccount ${Math.Calc[${conccount}+1]}
/echo Concussion Number ${conccount}
/call RightClickItem "Maelin's Leggings of Lore"
}
}
:nolegs
/if (${hasele}<1) {
/varset conccount ${Math.Calc[${conccount}+1]}
/echo Concussion Number ${conccount}
:conc
/call cast "${myconc}" ${myconcgem} 7s
/if (${Macro.Return.Equal[CAST_NOTREADY]}) /goto :conc
}
}
:wait2
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait2
/call TargetCheck
/if (${engagedmob}==0) /return
/if (${dosnare}>0 && ${Target.CurrentHPs}<=${snareperc} && !${snaretimer}) /call Snare

/doevents died
/doevents summon
/doevents hit
/if (${conccount}>=${concnum}) /return
/if (${conccount}<${concnum}) /goto :concloop

Sub Preconc
/varset conccount 0
/varset pcid ${mobid}
:preconcloop

/doevents

/if (${doleash}>0) /call Leash
/if (${Cursor.ID} && ${Cursor.Name.Equal[Rod of Mystical Transvergance]}) /autoinv
:wait1
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait1
/call TargetCheck
/if (${engagedmob}==0) /return
/if (${conccount}>=${preconcnum}) /return
/if (${preconc}<1) /return
/if ((${Target.CurrentHPs}>${stopnuke2})&&(!${Me.Moving})&&(${Target.ID}==${mobid})&&(!${Target.Type.Equal[Corpse]})&&(${Target.LineOfSight})) {
/if (${hasele}>0) {
/call ItemFinder "Maelin's Leggings of Lore"
/if (${Macro.Return.Equal["INVENTORY"]}) {
/varset conccount ${Math.Calc[${conccount}+1]}
/echo PreConcussion Number ${conccount}
/call IteminInvSlot "Maelin's Leggings of Lore"
}
/if (${Macro.Return.Equal["BAGGED"]}) {
/varset conccount ${Math.Calc[${conccount}+1]}
/echo PreConcussion Number ${conccount}
/call IteminBag "Maelin's Leggings of Lore"
}
/if (${Macro.Return.Equal["EQUIPPED"]}) {
/varset conccount ${Math.Calc[${conccount}+1]}
/echo PreConcussion Number ${conccount}
/call RightClickItem "Maelin's Leggings of Lore"
}
}
:nolegs
/if (${hasele}<1) {
/varset conccount ${Math.Calc[${conccount}+1]}
:conc
/echo PreConcussion Number ${conccount}
/call cast "${myconc}" ${myconcgem} 7s
/if (${Macro.Return.Equal[CAST_NOTREADY]}) /goto :conc
}
}
:wait2
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait2
/call TargetCheck
/if (${engagedmob}==0) /return

/doevents died
/doevents summon
/doevents hit
/if (${conccount}>=${preconcnum}) /return
/if (${conccount}<${preconcnum}) /goto :preconcloop

Sub AntiRetard

|  Anti Retard Code
/if (${tempstaff}>0) {
/if (${staffhealth}<${mobhealth}) {
/varset staffhealth ${mobhealth}
/ini "${IniFile}" Settings staffhealth ${mobhealth}
}
}
/if (!${Me.Book["${mainnuke}"]}) {
/echo You don't seem to have the spell ${mainnuke}
/endmacro
}
/if (!${Me.Book["${endnuke}"]}) {
/echo You don't seem to have the spell ${endnuke}
/endmacro
}
/if (${useepic}>0) {
/call ItemFinder "Staff of the Four"
/if (${Macro.Return.Equal["NOTFOUND"]}) {
/ini "${IniFile}" Settings useepic 0
/varset useepic 0
}
}
/if (${usetimewand}>0) {
/call ItemFinder "Wand of Impenetrable Force"
/if (${Macro.Return.Equal["NOTFOUND"]}) {
/ini "${IniFile}" Settings usetimewand 0
/varset usetimewand 0
}
}
/if (${useepic}>0 && ${Me.Buff["Force Shield"].ID} && !${Me.Buff["Spiritual Dominion"].ID}) {
/for m 1 to 20 step 1
/if (${Me.Buff[${m}].ID}>0) {
/if (${Me.Buff[${m}].Name.Equal["Force Shield"]}) /varset buffslot ${Math.Calc[${Me.Buff[${m}].ID}-1]}
}
/next m
/notify BuffWindow Buff${buffslot} leftmouseup
}
/if (${useepic}<1 && ${Me.Buff["Barrier of Force"].ID}) {
/for m 1 to 20 step 1
/if (${Me.Buff[${m}].ID}>0) {
/if (${Me.Buff[${m}].Name.Equal["Barrier of Force"]}) /varset buffslot ${Math.Calc[${Me.Buff[${m}].ID}-1]}
}
/next m
/notify BuffWindow Buff${buffslot} leftmouseup
}
/if (${mainnukenum}==0 || ${endnukenum}==0 ) {
/echo You set mainnukenum or endnukenum to 0, if you didn't want to nuke, why run this macro? Dumbass.
/endmacro
}
/if (${timewand}>0 && ${useepic}>0) {
/echo You enabled both Time Wand and Epic, try reading the documentation.
/endmacro
}
/if (${forceshield}<1) {
/if (${timewand}>0 || ${useepic}>0) {
/echo You enabled Time Wand or Epic, and didn't enable Force Shield. Doing it for you.
/ini "${IniFile}" Settings forceshield 1
/varset forceshield 1
}
}
/if (${hasele}<1 && ${concuss}>0 && !${Me.Book[Ancient: Greater Concussion]} && !${Me.Book[Concussion]}) {
/echo You disabled Elemental Legs, and enabled Concussion, but you dont have a concussion spell in your spellbook.
/echo Ending Macro because you're stupid.
/endmacro
}
/if (${mainnuke.Equal[${endnuke}]} && ${endnukegem.Right[1]}!=${mainnukegem.Right[1]}) {
/varset endnukegem ${mainnukegem}
} else /if (!${mainnuke.Equal[${endnuke}]}) {
/varset TempStr ${Ini[${IniFile},Settings,endnukegem,NOTFOUND]}
/varset endnukegem ${TempStr}
}
/if (${Me.Gem[${mainnuke}]}!=${mainnukegem.Right[1]}) {
/memspell ${mainnukegem.Right[1]} "${mainnuke}"
/delay 4s
}
/if (${Me.Gem[${endnuke}]}!=${endnukegem.Right[1]}) {
/memspell ${endnukegem.Right[1]} "${endnuke}"
/delay 4s
}
/if (!${Me.Gem["Mana Ward"]} && ${manaward}>0) {
/memspell ${manawardgem.Right[1]} "Mana Ward"
/delay 4s
}
/if (${hasele}<1 && ${Me.Book[Ancient: Greater Concussion]} && ${Me.Book[Concussion]}) {
/varset myconc Ancient: Greater Concussion
} else /if (${hasele}<1 && ${Me.Book[Ancient: Greater Concussion]} && !${Me.Book[Concussion]}) {
/varset myconc Ancient: Greater Concussion
} else /if (${hasele}<1 && !${Me.Book[Ancient: Greater Concussion]} && ${Me.Book[Concussion]}) {
/varset myconc Concussion
}
/if (${Me.Book[Atol's Spectral Shackles]}) /varset snarespell Atol's Spectral Shackles
/if (!${Me.Book[Atol's Spectral Shackles]} && ${Me.Book[Bonds of Force]}) /varset snarespell Bonds of Force
/if (${Me.Book[Ether Shield]}) /varset shieldspell Ether Shield
/if (!${Me.Book[Ether Shield]} && ${Me.Book[Shield of Maelin]}) /varset shieldspell Shield of Maelin
/if (${Me.Book[Ether Skin]}) /varset forcespell Ether Skin
/if (!${Me.Book[Ether Skin]} && ${Me.Book[Force Shield]}) /varset forcespell Force Shield
| End Anti Retard Code
/return

Dr_Flash
orc pawn
orc pawn
Posts: 11
Joined: Wed Feb 04, 2004 5:43 pm
Location: Atlanta, GA

Post by Dr_Flash » Thu Jul 21, 2005 3:41 pm

Code: Select all

| afnuke2.inc 07/21/05 3:30pm est

Sub Obstacle
/echo Obstacle detected, moving around it
/keypress forward
/keypress back hold
/delay 3
/keypress back
/if (${Math.Rand[100]}+1>50) {
/keypress strafe_right hold
} else {
/keypress strafe_left hold
}
/delay 5
/keypress strafe_right
/keypress strafe_left
/keypress forward hold
/return

Sub Leash
/if (${doleash}>0) {
/if (${leashholder.Equal[Nobody]}) {
/if (${Math.Distance[${Me.Y},${Me.X}:${stakeY},${stakeX}]}>${leashlength}) {
:FollowingLoop1
/varset X ${Me.X}
/varset Y ${Me.Y}
/squelch /face fast nolook loc ${stakeY},${stakeX}
/if (${Math.Distance[${Me.Y},${Me.X}:${stakeY},${stakeX}]}>10) {
/keypress forward hold
/delay 2
/if ((${Me.X}==${X}) && (${Me.Y}==${Y})) /call Obstacle
}
/if (${Math.Distance[${Me.Y},${Me.X}:${stakeY},${stakeX}]}<=10) /keypress back
/if (${Math.Distance[${Me.Y},${Me.X}:${stakeY},${stakeX}]}>10) {
/goto :FollowingLoop1
} else {
/keypress forward
/keypress back
/squelch /face fast nolook loc ${stakeY},${stakeX}
/goto :end
}
}
}
/if (!${leashholder.Equal[Nobody]}) {
/if ((${Spawn[${leashholder}].ID})&&(${Spawn[${leashholder}].Distance}>${leashlength})) {
:FollowingLoop2
/varset X ${Me.X}
/varset Y ${Me.Y}
/squelch /face fast nolook id ${Spawn[${leashholder}].ID}
/if (${Spawn[${leashholder}].Distance}>10) {
/keypress forward hold
/delay 2
/if ((${Me.X}==${X}) && (${Me.Y}==${Y})) /call Obstacle
}
/if (${Spawn[${leashholder}].Distance}<=10) /keypress back
/if (${Spawn[${leashholder}].Distance}>10) {
/goto :FollowingLoop2
} else {
/keypress forward
/keypress back
/squelch /face fast nolook id ${Spawn[${leashholder}].ID}
/goto :end
}
/if (!${leashholder.Equal[Nobody]} && !${Spawn[${leashholder}].ID}) {
/echo - Leashholder DEAD or ZONED! Leash is BROKEN!
/varset doleash 0
/varset leashholder Nobody
/ini "${IniFile}" "Settings" "doleash" "${doleash}"
/ini "${IniFile}" "Settings" "leashholder" "${leashholder}"
}
}
}
:end
/return

Sub Xuzl
:wait1
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait1
/if (${Target.CurrentHPs}<=${Math.Calc[${xuzlperc}-15]} || ${Target.Distance}>175) /return
/if (!${Me.Moving} && ${Me.AltAbilityReady["246"]} && ${Me.AltAbility["246"]}>0 && !${Me.Casting.ID}) {
/call cast "246" alt 7s
/delay 5
:wait2
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait2
} else if (!${Me.Moving} && ${Me.AltAbilityReady["208"]} && ${Me.AltAbility["208"]}>0 && !${Me.Casting.ID}) {
/call cast "208" alt 7s
/delay 5
:wait3
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait3
}
/return

Sub Junk
/call LoadJunkBuffs
/return

Sub Harvestcheck
/if (${doharvest}<1) /return
/if (${Me.PctMana}<=${harvestpercent} && !${Me.Moving} && ${Me.SpellReady["Harvest"]} && !${Me.Casting.ID}) {
/call Cast "Harvest" ${harvestgem} 7s
/delay 2
:wait1
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait1
/if (${Me.Stunned}) {
/delay 10s !${Me.Stunned}
}
}
/if (${Me.PctMana}<=${harvestpercent} && !${Me.Moving} && ${Me.AltAbilityReady["172"]} && ${Me.AltAbility["172"]}>0 && !${Me.Casting.ID}) {
/call Cast "172" alt 7s
/delay 8
:wait2
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait2
}
/return

Sub Medcheck
/if (${medtoggle}<1) /return
/if (${Me.PctMana}<=${medpercent} && !${Me.Moving} && !${Me.Casting.ID} && ${medtoggle}>0) {
/echo Medding up, at ${Me.PctMana} mana.
} else {
/goto :end
}
:Medloop

/doevents

/if (${doleash}>0) /call Leash
/if (${Cursor.ID} && ${Cursor.Name.Equal[Rod of Mystical Transvergance]}) /autoinv
/if (${modrod}>0 && ${Me.PctMana}<=${rodpercent} && ${hasrod}>0 && !${rodtimer}) /call Modrod
/if (${forceshield}>0) /call Forceshield
/if (!${clicktimer}) /call ClickBuffcheck
/if (${doharvest}>0 && ${Me.PctMana}<=${harvestpercent}) {
/if ((${Me.AltAbilityReady["Harvest of Druzzil"]} && ${Me.AltAbility["Harvest of Druzzil"]}>0) || ${Me.SpellReady["Harvest"]}) {
/echo Harvest Ready, stopping meditation and casting.
/if (${Me.Sitting}) /sit off
/call Harvestcheck
/echo Resuming Meditation
}
}
/if (${Cursor.ID} && ${Cursor.Name.Equal[Rod of Mystical Transvergance]}) /autoinv
/if (${Me.CountBuffs}>=${maxbuffs}) /call Junk
/if (${SpawnCount[npc radius 40 zradius 20 noalert ${AlertList}]}>0) {
/varset npcnum ${SpawnCount[npc radius 40 zradius 20 noalert ${AlertList}]}
/for m 1 to ${npcnum} step 1
/if (${NearestSpawn[${m}, npc noalert ${AlertList}].LineOfSight}) {
/if (!${Me.Mount.ID} && ${Me.Sitting}) /sit off
}
} else {
/next m
/if (!${Me.Mount.ID} && !${Me.Sitting} && !${Me.Moving} && ${Me.PctMana}<${manatomedup}) /sit on
}
/if (${Me.PctMana}<${manatomedup} && ${medtoggle}>0) /goto :Medloop
/if (${Me.Sitting}) /sit off
/echo Finished Medding at ${Me.PctMana} mana.
:end
/return

sub Forceshield
/if ((${Me.Buff["Barrier of Force"].ID})||(${Me.Buff["Force Shield"].ID})||(${Me.Buff["Ether Skin"].ID})) /return
/if (${forceshield}<1) /return
/if (${Me.CountBuffs}>=${maxbuffs}) /call Junk
/if (${useepic}<1) /goto :forceshield
:epic
/if (${Me.Buff["Spiritual Dominion"].ID}) {
/if (!${Me.Buff["Barrier of Force"].ID} && !${Me.Buff["Force Shield"].ID} && !${Me.Buff["Ether Skin"].ID}) {
/echo Spiritual Dominion detected, using Force Shield.
/goto :forceshield
}
}
/if (!${Me.Buff["Barrier of Force"].ID} && !${Me.Buff["Force Shield"].ID} && !${Me.Buff["Ether Skin"].ID}) {
/if (!${Me.Casting.ID} && !${Me.Moving}) /call ItemFinder "Staff of the Four"
/if (${Macro.Return.Equal["INVENTORY"]}) /call IteminInvSlot "Staff of the Four"
/if (${Macro.Return.Equal["BAGGED"]}) /call IteminBag "Staff of the Four"
/if (${Macro.Return.Equal["EQUIPPED"]}) /call RightClickItem "Staff of the Four"
/goto :end
}
:forceshield
/if (${useepic}>0 && !${Me.Buff["Spiritual Dominion"].ID}) /return
/if (${forceshield}<1) /return
/if (!${Me.Buff["Force Shield"].ID} && !${Me.Buff["Rune of Zebuxoruk"].ID} && !${Me.Buff["Ether Skin"].ID}) {
/if (!${Me.Casting.ID} && !${Me.Moving}) {
/if (${usetimewand}<1) {
:force
/call Cast "${forcespell}" ${forcegem} 7s
/if (${Macro.Return.Equal[CAST_NOTREADY]}) /goto :force
}
/if (${usetimewand}>0) {
/call ItemFinder "Wand of Impenetrable Force"
/if (${Macro.Return.Equal["INVENTORY"]}) /call IteminInvSlot "Wand of Impenetrable Force"
/if (${Macro.Return.Equal["BAGGED"]}) /call IteminBag "Wand of Impenetrable Force"
/if (${Macro.Return.Equal["EQUIPPED"]}) /call RightClickItem "Wand of Impenetrable Force"
}
:wait2
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait2
}
}
:end
/return

Sub ClickBuffcheck
/if (${Me.Casting.ID} || ${Me.Moving} || ${clicktimer}) /goto :DoneItemChecks
/varset m 1
:ItemCheckLoop
/varset ialias ${Ini[${IniFile}].Arg[${m},|]}
/if (${ialias.NotEqual[NULL]}) {
/if (${Ini[${IniFile},${ialias},KeepUp].Equal[FALSE]}) /goto :NextItem
/varset bouncenum 1
/varset doiclick 1
:BounceCheckLoop
/varset ibounce ${Ini[${IniFile},${ialias},BounceOff${bouncenum}]}
/if (${ibounce.NotEqual[NULL]}) {
/if (${ibounce.Equal[${Me.Buff[${ibounce}]}]}) /varset doiclick 0
} else /goto :DoneBounceChecks
/varcalc bouncenum ${bouncenum}+1
/goto :BounceCheckLoop
:DoneBounceChecks
/varset itemspellname ${FindItem[${Ini[${IniFile},${ialias},FullName]}].Spell}
/if (${itemspellname.Equal[${Me.Buff[${itemspellname}]}]}) /varset doiclick 0
/if (${doiclick}>0) {
/if (${Cursor.ID}) /autoinv
/if (${FindItem[${Ini[${IniFile},${ialias},FullName]}].Spell.TargetType.Equal[Self]}) /keypress F1
/docommand /iclick ${ialias}
}
/if (${clicktimer}) /goto :DoneItemChecks
:NextItem
/varcalc m ${m}+1
} else /goto :DoneItemChecks
/goto :ItemCheckLoop
:DoneItemChecks
/varset clicktimer 2s
/return

Sub Buffcheck
:forceshield
/call Forceshield
:shieldofmaelin
/if (${shieldofmaelin}<1) /goto :spellshield
/for n 1 to 20 step 1
/if (${Me.Buff[${n}].ID}>0) {
/if (${Me.Buff[${n}].Name.Find["focus of"]} || ${Me.Buff[${n}].Name.Find["wunshi"]}) /goto :spellshield
}
/next n
/if (!${Me.Buff["Shield of Maelin"].ID} && !${Me.Buff["Ether Shield"].ID} && !${Me.Casting.ID} && !${Me.Moving}) {
/if (${Me.CountBuffs}>=${maxbuffs}) /call Junk
/call Cast "${shieldspell}" ${maelingem} 7s
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait6
}
:spellshield
/if (${spellshield}>0) /call Spellshield
:manaward
/if (${manaward}>0) /call Manaward
:familiar
/if (${checkfamiliar}<1) /return
/for m 1 to 20 step 1
/if (${Me.Buff[${m}].ID}>0) {
/if (${Me.Buff[${m}].Name.Find["familiar"]}) /return
}
/next m
/if (${Me.AltAbilityReady["${myfamiliar}"]} && ${Me.AltAbility["${myfamiliar}"]}>0 && !${Me.Casting.ID} && !${Me.Moving}) {
/if (${Me.CountBuffs}>=${maxbuffs}) /call Junk
/call cast "${myfamiliar}" alt 7s
/delay 8
:wait9
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait9
/if (${Me.Pet.ID} && ${Me.Pet.Name.Find[familiar]}) /pet get lost
}
/return

Sub Snare
/call ItemFinder "Dagger of Entrapment"
/if (${Macro.Return.Equal["NOTFOUND"]}) /goto :snare
/if (${Macro.Return.Equal["EQUIPPED"]} || ${Macro.Return.Equal["INVENTORY"]}) /goto :snare2
/if (${Macro.Return.Equal["BAGGED"]}) /goto :snare3
:snare
/varset retrycount ${Math.Calc[${retrycount}+1]}
:recast
/call cast "${snarespell}" ${snaregem} 7s
/if (${Macro.Return.Equal[CAST_NOTREADY]}) /goto :recast
/if (${Macro.Return.Equal["CAST_RESISTED"]} && ${retrycount}<${retry}) /goto :snare
/varset snaretimer 2.5m
/varset retrycount 0
:wait2
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait2
/goto :done
:snare2
/varset retrycount ${Math.Calc[${retrycount}+1]}
/call RightClickItem "Dagger of Entrapment"
/if (${Macro.Return.Equal["CAST_RESISTED"]} && ${retrycount}<${retry}) /goto :snare2
/varset snaretimer 2.5m
/varset retrycount 0
/goto :done
:snare3
/call EquipFromBag "Dagger of Entrapment"
/varset retrycount ${Math.Calc[${retrycount}+1]}
/call RightClickItem "Dagger of Entrapment"
/if (${Macro.Return.Equal["CAST_RESISTED"]} && ${retrycount}<${retry}) /goto :snare3
/varset snaretimer 2.5m
/varset retrycount 0
/if (!${olditem.Equal[NULL]}) {
/call ItemFinder "${olditem}" "${wornslot}"
/if (${Macro.Return.Equal["BAGGED"]}) /call EquipFromBag "${olditem}" "${wornslot}"
/varset olditem NULL
/varset wornslot NULL
}
:done
/return

Sub Modrod
/if (${Me.PctMana}>${rodpercent} || ${hasrod}<1) /return
/call ItemFinder "Rod of Mystical Transvergance"
/if (${Macro.Return.Equal["NOTFOUND"]}) {
/varset hasrod 0
/echo Unable to find your Rod of Mystical Transvergance.
}
/if (${Macro.Return.Equal["EQUIPPED"]} || ${Macro.Return.Equal["INVENTORY"]}) {
/call RightClickItem "Rod of Mystical Transvergance"
/varset rodtimer 3100
/echo Mod Rodded
}
/if (${Macro.Return.Equal["BAGGED"]}) {
/call IteminBag "Rod of Mystical Transvergance"
/varset rodtimer 3100
/echo Mod Rodded
}
/return

Sub Manaward
:manaward
/if (${manaward}<1) /return
/if (!${Me.Buff["Mana Ward"].ID} && ${Me.SpellReady["Mana Ward"]} && !${Me.Casting.ID} && !${Me.Moving}) {
/if (${Me.CountBuffs}>=${maxbuffs}) /call Junk
/call cast "Mana Ward" ${manawardgem} 7s
/delay 1
:wait8
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait8
}
/return

Sub Spellshield
:spellshield
/if (${spellshield}<1) /return
/if (!${Me.Buff["Spellshield"].ID} && !${Me.Casting.ID} && !${Me.Moving}) {
/keypress F1
/delay 1
:wand1
/if (${Me.CountBuffs}>=${maxbuffs}) /call Junk
/call ItemFinder "Wand of Turning"
/if (${Macro.Return.Equal["NOTFOUND"]}) /goto :wand2
/if (${Macro.Return.Equal["EQUIPPED"]} || ${Macro.Return.Equal["INVENTORY"]}) {
/call RightClickItem "Wand of Turning"
/goto :end
}
/if (${Macro.Return.Equal["BAGGED"]}) {
/call IteminBag "Wand of Turning"
/goto :end
}
:wand2
/call ItemFinder "Wand of Deflection"
/if (${Macro.Return.Equal["NOTFOUND"]}) /goto :nowand
/if (${Macro.Return.Equal["EQUIPPED"]} || ${Macro.Return.Equal["INVENTORY"]}) {
/call RightClickItem "Wand of Deflection"
/goto :end
}
/if (${Macro.Return.Equal["BAGGED"]}) {
/call IteminBag "Wand of Deflection"
/goto :end
}
:nowand
/call cast "Spellshield" ${ssgem} 7s
/delay 1
:wait7
| /if (${Me.Casting.ID} || ${Me.Moving} || !${Me.SpellReady["Spellshield"]}) /goto :wait7
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :Wait7
}
:end
/if (${mobid}!=0) /squelch /target id ${mobid}
/return

Sub Manarobe
/if (${Me.PctMana}>${beginrobe} || ${hasrobe}<1) /return
/if (${Cursor.ID}) /autoinv
/call ItemFinder "Mana Robe"
/if (${Macro.Return.Equal["NOTFOUND"]}) {
/varset hasrobe 0
/echo Unable to find your Mana Robe.
/goto :done
}
/echo Beginning to Manarobe
/call ItemFinder "Mana Robe"
/if (${Macro.Return.Equal["EQUIPPED"]}) /goto :loop
/if (${Macro.Return.Equal["INVENTORY"]}) /call EquipFromInvSlot "Mana Robe"
/if (${Macro.Return.Equal["BAGGED"]}) /call EquipFromBag "Mana Robe"
:loop

/doevents

/if (${Me.PctMana}>=${donerobe} || ${Me.PctHPs}<=30) /goto :End
/call RightClickItem "Mana Robe"
/if (${forceshield}<1) /goto :wait3
/call Forceshield
:wait3
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait3
/if (${Me.PctMana}<${donerobe}) /goto :loop
:End
:wait4
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait4
/if (!${olditem.Equal[NULL]}) {
/call ItemFinder "${olditem}" "${wornslot}"
/if (${Macro.Return.Equal["BAGGED"]}) /call EquipFromBag "${olditem}" "${wornslot}"
/if (${Macro.Return.Equal["INVENTORY"]}) /call EquipFromInvSlot "${olditem}" "${wornslot}"
/varset olditem NULL
/varset wornslot NULL
}
/echo Done Manarobing.
:done
/return

Sub AddMaster(MasterName)
/declare Category string local
/declare EachMaster int local
/declare Master string local
/declare BlankMaster int local
/varset BlankMaster 0
/varset Category Masters
/varset EachMaster 0
:NextMaster1
/varset Master ${Ini[${IniFile},${Category},Master_${Int[${EachMaster}]},NOTFOUND]}
/if (${Master.Find["NOTFOUND"]}) {
/goto :IniParsed
}
/if (${Master.Find["NONE"]}) {
/varset BlankMaster ${EachMaster}
}

/if (${Master.Find["${MasterName}"]}) {
/echo ${MasterName} already on Masters List.
/return
}
/varset EachMaster ${Math.Calc[${EachMaster}+1]}
/goto :NextMaster1
:IniParsed
/if (${BlankMaster}==0) {
/ini ${IniFile} "${Category}" Master_${Int[${EachMaster}]} "${MasterName}"
} else {
/ini ${IniFile} "${Category}" Master_${Int[${BlankMaster}]} "${MasterName}"
}
/echo Added ${MasterName} to the Masters list.
/return

Sub DelMaster(MasterName)
/declare Category string local
/declare EachMaster int local
/declare Master string local
/varset Category Masters
/if (${Ini[${IniFile},${Category},-1,NOTFOUND].Equal["NOTFOUND"]}) {
/echo No Master list exists.
/return
}
/varset EachMaster 0
:NextMaster3
/varset Master ${Ini[${IniFile},${Category},Master_${Int[${EachMaster}]},NOTFOUND]}
/if (${Master.Find["NOTFOUND"]}) {
/call LoadMasters
/return
}
/if (${Master.Find["${MasterName}"]}) {
/echo Removed ${MasterName} from the Masters list.
/ini ${IniFile} "${Category}" Master_${Int[${EachMaster}]} NONE
}
/varset EachMaster ${Math.Calc[${EachMaster}+1]}
/goto :NextMaster3
/return

Sub LoadMasters(Sender, ChatText)
/declare authorized bool local FALSE
/declare Category string local
/declare EachMaster int local
/declare Master string local
/varset Category Masters
/if (${Ini[${IniFile},${Category},-1,NOTFOUND].Find["NOTFOUND"]}) {
/return
}
/varset EachMaster 0
:NextMaster2
/varset Master ${Ini[${IniFile},${Category},Master_${Int[${EachMaster}]},NOTFOUND]}
/if (${Master.Equal["NOTFOUND"]}) {
/return
}
/if (${Master.Find["NONE"]}) {
} else {
/if (${Master.Find["${Sender}"]}) {
/goto :authorized
}
}
:next
/varset EachMaster ${Math.Calc[${EachMaster}+1]}
/goto :NextMaster2

:authorized
/echo - User ${Sender} Authenticated!
/echo Action --> "${ChatText}"
/if (${Me.AFK}) /delay 2s
/docommand ${ChatText}

/return

Sub AddJunkBuff(JunkBuffName)
/declare Category string local
/declare EachJunkBuff int local
/declare JunkBuff string local
/declare BlankJunkBuff int local
/varset BlankJunkBuff 0
/varset Category Junk Buffs
/varset EachJunkBuff 0
:NextJunkBuff1
/varset JunkBuff ${Ini[${IniFile},${Category},JunkBuff_${Int[${EachJunkBuff}]},NOTFOUND]}
/if (${JunkBuff.Find["NOTFOUND"]}) {
/goto :IniParsed
}
/if (${JunkBuff.Find["NONE"]}) {
/varset BlankJunkBuff ${EachJunkBuff}
}

/if (${JunkBuff.Find["${JunkBuffName}"]}) {
/echo ${JunkBuffName} already on JunkBuff List.
/return
}
/varset EachJunkBuff ${Math.Calc[${EachJunkBuff}+1]}
/goto :NextJunkBuff1
:IniParsed
/if (${BlankJunkBuff}==0) {
/ini ${IniFile} "${Category}" JunkBuff_${Int[${EachJunkBuff}]} "${JunkBuffName}"
} else {
/ini ${IniFile} "${Category}" JunkBuff_${Int[${BlankJunkBuff}]} "${JunkBuffName}"
}
/echo Added ${JunkBuffName} to the Junk Buffs list.
/return

Sub LoadJunkBuffs
/declare Category string local
/declare EachJunkBuff int local
/declare JunkBuff string local
/varset Category Junk Buffs
/if (${Ini[${IniFile},${Category},-1,NOTFOUND].Find["NOTFOUND"]}) {
/return
}
/varset EachJunkBuff 0
:NextJunkBuff2
/varset JunkBuff ${Ini[${IniFile},${Category},JunkBuff_${Int[${EachJunkBuff}]},NOTFOUND]}
/if (${JunkBuff.Equal["NOTFOUND"]}) {
/return
}
/if (${JunkBuff.Find["NONE"]}) {
} else {
/if (${Me.CountBuffs}<${maxbuffs}) /return
/for m 20 downto 1 step 1
/if (${Me.Buff[${m}].ID}>0) {
/if (${Me.CountBuffs}>=${maxbuffs}) {
/if (${Me.Buff[${m}].Name.Find["${JunkBuff}"]}) {
/varset buffslot ${Math.Calc[${Me.Buff[${m}].ID}-1]}
/notify BuffWindow Buff${buffslot} leftmouseup
/delay 1
/goto :next
}
}
}
/next m
}
:next
/varset EachJunkBuff ${Math.Calc[${EachJunkBuff}+1]}
/goto :NextJunkBuff2
/return

Sub DelJunkBuff(JunkBuffName)
/declare Category string local
/declare EachJunkBuff int local
/declare JunkBuff string local
/varset Category Junk Buffs
/if (${Ini[${IniFile},${Category},-1,NOTFOUND].Find["NOTFOUND"]}) {
/echo No JunkBuff list exists.
/return
}
/varset EachJunkBuff 0
:NextJunkBuff3
/varset JunkBuff ${Ini[${IniFile},${Category},JunkBuff_${Int[${EachJunkBuff}]},NOTFOUND]}
/if (${JunkBuff.Find["NOTFOUND"]}) {
/call LoadJunkBuffs
/return
}
/if (${JunkBuff.Find["${JunkBuffName}"]}) {
/echo Removed ${JunkBuffName} from the exclusions list.
/ini ${IniFile} "${Category}" JunkBuff_${Int[${EachJunkBuff}]} NONE
}
/varset EachJunkBuff ${Math.Calc[${EachJunkBuff}+1]}
/goto :NextJunkBuff3
/return

Sub AddExclude(ExcludeName)
/declare Category string local
/declare EachExclude int local
/declare Exclude string local
/declare BlankExclude int local
/varset BlankExclude 0
/varset Category Excludes
/varset EachExclude 0
:NextExclude1
/varset Exclude ${Ini[${IniFile},${Category},exclude_${Int[${EachExclude}]},NOTFOUND]}
/if (${Exclude.Find["NOTFOUND"]}) {
/goto :IniParsed
}
/if (${Exclude.Find["NONE"]}) {
/varset BlankExclude ${EachExclude}
}

/if (${Exclude.Find["${ExcludeName}"]}) {
/echo ${ExcludeName} already on Exclude List.
/return
}
/varset EachExclude ${Math.Calc[${EachExclude}+1]}
/goto :NextExclude1
:IniParsed
/if (${BlankExclude}==0) {
/ini ${IniFile} "${Category}" exclude_${Int[${EachExclude}]} "${ExcludeName}"
} else {
/ini ${IniFile} "${Category}" exclude_${Int[${BlankExclude}]} "${ExcludeName}"
}
/echo Added ${ExcludeName} to the exclusions list.
/squelch /alert add ${AlertList} NPC "${ExcludeName}"
/return

Sub LoadExcludes
/declare Category string local
/declare EachExclude int local
/declare Exclude string local
/varset Category Excludes
/squelch /alert clear ${AlertList}
/squelch /alert add ${AlertList} afnuke.mac
/squelch /alert add ${AlertList} NPC "eye of "
/if (${Ini[${IniFile},${Category},-1,NOTFOUND].Find["NOTFOUND"]}) {
/echo No Exclude list exists.
/return
}
/varset EachExclude 0
:NextExclude2
/varset Exclude ${Ini[${IniFile},${Category},exclude_${Int[${EachExclude}]},NOTFOUND]}
/if (${Exclude.Equal["NOTFOUND"]}) {
/return
}
/if (${Exclude.Find["NONE"]}) {
} else {
/squelch /alert add ${AlertList} NPC "${Exclude}"
}
/varset EachExclude ${Math.Calc[${EachExclude}+1]}
/goto :NextExclude2
/return

Sub CheckExcludes
/if (${SpawnCount[npc radius ${engagedistance} zradius 20 alert ${AlertList}]}>0) {
/varset npcnum ${SpawnCount[npc radius ${engagedistance} zradius 20 alert ${AlertList}]}
/for m 1 to ${npcnum} step 1
/if (${NearestSpawn[${m}, npc alert ${AlertList}].ID}==${mobid}) {
/varset mobid 0
/varset engagedmob 0
/goto :end
}
}
/next m
:end
/return

Sub DelExclude(ExcludeName)
/declare Category string local
/declare EachExclude int local
/declare Exclude string local
/varset Category Excludes
/if (${Ini[${IniFile},${Category},-1,NOTFOUND].Find["NOTFOUND"]}) {
/echo No Exclude list exists.
/return
}
/varset EachExclude 0
:NextExclude3
/varset Exclude ${Ini[${IniFile},${Category},exclude_${Int[${EachExclude}]},NOTFOUND]}
/if (${Exclude.Find["NOTFOUND"]}) {
/call LoadExcludes
/return
}
/if (${Exclude.Find["${ExcludeName}"]}) {
/echo Removed ${ExcludeName} from the exclusions list.
/ini ${IniFile} "${Category}" exclude_${Int[${EachExclude}]} NONE
}
/varset EachExclude ${Math.Calc[${EachExclude}+1]}
/goto :NextExclude3
/return

sub ItemFinder(item)
/varset bag ${FindItem[${item}].InvSlot.Pack}
/varset slot ${FindItem[${item}].InvSlot}
/declare equipslot string local ${FindItem[${item}].WornSlot[1].Name}
/declare equipslot2 string local ${FindItem[${item}].WornSlot[2].Name}
/declare equipslot3 string local ${FindItem[${item}].WornSlot[3].Name}
/if ((${bag}==0)&&(${slot}==0)) /return NOTFOUND
/if ((${Me.Inventory[${equipslot}].Name.Equal[${item}]})) /return EQUIPPED
/if ((${Me.Inventory[${equipslot2}].Name.Equal[${item}]})) /return EQUIPPED
/if ((${Me.Inventory[${equipslot3}].Name.Equal[${item}]})) /return EQUIPPED
/if (${bag}==0 && ${slot}>0) /return INVENTORY
/if (${bag}>0 && ${slot}>0) /return BAGGED

Sub EquipFromBag(item)
/varset bag ${FindItem[${item}].InvSlot.Pack}
/varset slot ${FindItem[${item}].InvSlot}
/declare equipslot string local ${FindItem[${item}].WornSlot[1].Name}
/if (!${Window[InventoryWindow].Open}) /keypress Inventory
/itemnotify ${InvSlot[${bag}]} rightmouseup
/delay 1
/itemnotify ${equipslot} leftmouseup
/varset olditem ${Cursor.Name}
/varset wornslot ${Cursor.WornSlot[1].Name}
/delay 1
/itemnotify ${InvSlot[${slot}]} leftmouseup
/delay 1
/itemnotify ${equipslot} leftmouseup
/delay 1
/itemnotify ${InvSlot[${bag}]} rightmouseup
/if (${Window[InventoryWindow].Open}) /keypress Inventory
/return

Sub EquipFromInvSlot(item)
/varset slot ${FindItem[${item}].InvSlot}
/declare equipslot string local ${FindItem[${item}].WornSlot[1].Name}
/if (!${Window[InventoryWindow].Open}) /keypress Inventory
/itemnotify ${equipslot} leftmouseup
/varset olditem ${Cursor.Name}
/varset wornslot ${Cursor.WornSlot[1].Name}
/delay 1
/itemnotify ${InvSlot[${slot}]} leftmouseup
/delay 1
/itemnotify ${equipslot} leftmouseup
/delay 1
/if (${Window[InventoryWindow].Open}) /keypress Inventory
/return

Sub IteminBag(item)
/declare charges int local ${FindItem[${item}].Charges}
/varset bag ${FindItem[${item}].InvSlot.Pack}
/varset slot ${FindItem[${item}].InvSlot}
/declare equipslot string local ${FindItem[${item}].WornSlot[1].Name}
/if (!${Window[InventoryWindow].Open}) /keypress Inventory
/itemnotify ${InvSlot[${bag}]} rightmouseup
/delay 1
/itemnotify ${equipslot} leftmouseup
/delay 1
/itemnotify ${InvSlot[${slot}]} leftmouseup
/delay 1
/itemnotify ${equipslot} leftmouseup
/delay 1
/call RightClickItem "${item}"
/if ( ${charges}>0 ) /delay 2s ${FindItem[${item}].Charges}!=${charges}
/if ((${Me.Inventory[${equipslot}].Name.Equal[${item}]})||(${Me.Inventory[${equipslot}s].Name.Equal[${item}]})) {
/itemnotify ${equipslot} leftmouseup
/delay 1
}
/delay 1
/itemnotify ${InvSlot[${slot}]} leftmouseup
/delay 1
/itemnotify ${equipslot} leftmouseup
/delay 1
/itemnotify ${InvSlot[${bag}]} rightmouseup
/delay 1
/if (${Window[InventoryWindow].Open}) /keypress Inventory
/return

Sub IteminInvSlot(item)
/varset slot ${FindItem[${item}].InvSlot}
/declare equipslot string local ${FindItem[${item}].WornSlot[1].Name}
/if (!${Window[InventoryWindow].Open}) /keypress Inventory
/itemnotify ${equipslot} leftmouseup
/delay 1
/itemnotify ${InvSlot[${slot}]} leftmouseup
/delay 1
/itemnotify ${equipslot} leftmouseup
/delay 1
/call RightClickItem "${item}"
/if ((${Me.Inventory[${equipslot}].Name.Equal[${item}]})||(${Me.Inventory[${equipslot}s].Name.Equal[${item}]})) {
/itemnotify ${equipslot} leftmouseup
/delay 1
}
/itemnotify ${InvSlot[${slot}]} leftmouseup
/delay 1
/itemnotify ${equipslot} leftmouseup
/delay 1
/itemnotify ${InvSlot[${bag}]} rightmouseup
/delay 1
/if (${Window[InventoryWindow].Open}) /keypress Inventory
/return

Sub RightClickItem(item)
| /if (${FindItem[${item}].Spell.TargetType.Equal[Self]}) {
| /call cast "${item}" item nocheck
| } else {
| /call cast "${item}" item ${checktarget}
| }
/call cast "${item}" item 7s
/delay 2
/if (${Macro.Return.Equal["CAST_RESISTED"]}) /return ${Macro.Return}
:wait1
/if (${Me.Casting.ID} || ${Me.Moving}) /goto :wait1
/return

Dr_Flash
orc pawn
orc pawn
Posts: 11
Joined: Wed Feb 04, 2004 5:43 pm
Location: Atlanta, GA

Post by Dr_Flash » Thu Jul 21, 2005 3:43 pm

Code: Select all

| AFNuke.txt - Macro .INI Documentation - 07/21/06 3:30pm est
| TIP:  The easiest way to exclude/include mobs is to set up a hotkey:
| For Excludes:
| /exclude ${Target.CleanName}
| To Remove an Exclude:
| /include ${Target.CleanName}
| For Leash:
| /leash <distance> <player> or /leash <distance> or /leash off
| For Autofollow
| /autofollow <name>

[Settings]

| Person you want to assist
tankname=Bob

| Name of first most preferred assist
mainassist1=Bob

| Name of 2nd most preferred assist
mainassist2=Jim

| Name of 3rd most preferred assist
mainassist3=Chuck

| Use assist to acquire targets. 1 to enable, 0 to auto-acquire targets
doassist=1

| Current version of macro
version=091904

| Sit whenever no mobs are nearby and facing you, and mana is equal or below autositmana
autosit=0

| Amount of mana or below at which you want to always sit when not nuking
autositmana=90

| Autotranslocate to bind on tells? 1 to enable, 0 to disable
autoTL=1

| nocheck if you dont care if target is lost during a cast.
| dismount if you want to dismount and duck if target is lost during a cast
| while mounted
| nodismount if you want to stay mounted and 'move' if target is lost during a cast
checktarget=nocheck

| Pre-Concussion before nuking, 1 to enable, 0 to disable
preconc=0

| Number of pre-concussions to cast
preconcnum=1

| Health Percent to pre-concussion
preconcperc=97

| 1 for Concussion Enabled, 0 to disable
concuss=1

| If you don't use Elemental Leggings, which gem to mem concussion or
| ancient concussion. Must be in this format
myconcgem=gem2

| Number of concussions to cast
concnum=2

| Use Elemental Leggings for concussion? 1 to enable, 0 to disable
hasele=1

| 1 to check and recast familiar, 0 to disable
checkfamiliar=1

| 52=improved, 179=allegiant 303=Ro's, 304=E'ci's, 305=Druzzil's, 453=Greater Ro's, 453=Greater E`ci, 455=Greater
| Druzzil's, 457=Devoted
myfamiliar=303

| Distance your target must be within to begin nuking
engagedistance=150

| Your primary nuke, which will be used until stopnuke is reached
| Toggle this while macro is running by typing /echo nuke1 name of nuke
mainnuke=White Fire

| Which gem to mem your main nuke in if not memmed. Must be in this format
mainnukegem=gem4

| Number of mainnukes you want to cast before using concussion, if concussion
| enabled i.e. 3 would cast 3 mainnukes and then the specified amount of
| concussions.
mainnukenum=1

| Secondary nuke, which will be used after stopnuke occurs up until stopnuke2 is reached.
endnuke=Draught of Ro

| Number of endnukes you want to cast before using concussion, if concussion
| enabled i.e. 3 would cast 3 endnukes and then the specified amount of
| concussions.
endnukenum=4

| Which gem to mem your end nuke in if not memmed. Must be in this format
endnukegem=gem8

| Minimum health of target before nuking
mobhealth=93

| Health Percent at which to switch to endnuke
stopnuke=23

| Amount of Health at which you want to stop nuking completely
stopnuke2=-1

| 1 to meditate at specified mana percentage, 0 to disable
medtoggle=1

| Amount of mana you must reach before meditation kicks in, if enabled
medpercent=35

| Amount of mana you want to meditate up to
manatomedup=70

| 1 if you have a manarobe and want to use it, 0 to disable
manarobe=0

| Amount of mana you must reach to start manarobing, if enabled
beginrobe=20

| Amount of mana you want to reach before you stop manarobing, if enabled
donerobe=45

| Click mod rod, when available? 1 to enable, 0 to disable
modrod=1

| Amount of mana or below that you want to use your mod rod, if enabled
rodpercent=90

| Amount of mana or below that you want to use your harvests
harvestpercent=70

| 1 to use Harvests, 0 to disable
doharvest=1

| Gem to mem Harvest in, if not memmed. Must be in this format
harvestgem=gem7

| 1 to check and recast Shield of Maelin, 0 to disable
shieldofmaelin=0

| Gem to mem Shield of Maelin in, if not memmed. Must be in this format
maelingem=gem6

| 1 to check and recast Force Shield or Wiz Epic, 0 to disable
forceshield=1

| Gem to mem Force Shield in, if not memmed. Must be in this format
forcegem=gem3

| Use Wand of Impenetrable Forces? 1 to enable, 0 to disable
usetimewand=0

| Use Staff of the Four? 1 to enable, 0 to disable
useepic=0

| 1 to keep Spellshield on yourself, 0 to disable
spellshield=0

| Gem to mem Spellshield in, if not memmed. Must be in this format
ssgem=gem5

| 1 to keep Mana Ward on yourself, 0 to disable
manaward=0

| Gem to mem Mana Ward in, if not memmed. Must be in this format
manawardgem=gem1

| 1 to debuff with temp staff, 0 to disable
tempstaff=0

| Minimum health of target before debuffing with temp staff, if enabled
staffhealth=95

| Call of Xuzl Toggle, 1 to enable, 0 to disable.
doxuzl=0

| Amount of health target must be at to use Call of Xuzl if enabled.
xuzlperc=85

| Snare mobs? 1 to enable, 0 to disable
dosnare=0

| Health percent or below you want to snare at, if enabled
snareperc=25

| If you don't have a Dagger of Entrapment, which gem to mem snare in
| Must be in this format
snaregem=gem5

| Maximum Number of times to recast Temp Staff or Snare (if enabled) on a resist
retry=3

| Maximum buffs you can have before the macro looks for junk buffs to click off
maxbuffs=15

| Leashing active? This will only be enabled in .INI if you leash to a person
doleash=0

| Name of leashholder, if any
leashholder=Kevin

| Length of leash
leashlength=20

| Distance to stay within of player you're autofollowing, when activated
followdistance=30

| Pause time between nukes (i.e. 1s, 3s, etc). None for no pause
nukepause=None

| Buffs to auto-click off if you are at maxbuffs and need to rebuff yourself
[Junk Buffs]
JunkBuff_0=Spirit of the Predator
JunkBuff_1=Grim Aura
JunkBuff_2=Shield of the Eighth
JunkBuff_3=Vallon's Quickening
JunkBuff_4=Ward of Gallantry

| This is where mobs you want to ignore will be stored.
[Excludes]
exclude_0=Some NPC

| Custom Buff Items added by you.
| /iset <itemalias> keepup|nokeepup <Item Name> <-- create/modify an alias
| /ibounce <itemalias> Some Spell Name <-- add bounce spells to alias
| /icast <itemalias> <-- manual cast of item alias
[CustomBuffItemAlias]
FullName=Your Custom Buff Item
KeepUp=TRUE
BounceOff1=Name of a buff it doesn't stack with
BounceOff2=Name of a buff it doesn't stack with

| List of Bot Masters, if any
[Masters]
Master_0=NONE

eqaussie
a ghoul
a ghoul
Posts: 124
Joined: Tue Mar 16, 2004 5:58 am

Post by eqaussie » Fri Jul 22, 2005 3:51 am

You beat me to it :)

I finally (after several days of disecting the ini stuff in Raid Druid), got AFNuke functional, except for clickies, which was why i hadnt posted my version yet.

jnutt44
decaying skeleton
decaying skeleton
Posts: 5
Joined: Sat Sep 04, 2004 5:15 pm

Post by jnutt44 » Wed Jul 27, 2005 3:51 pm

following error-

{}pairing ran into anther subroutine
AFNuke2.inc@227 (ClickBuffcheck): } ele /goto "DoneItemChecks
afnuke.mac@285 (main): /if (!${clicktimer}) /call ClickBuffcheck
The current macro has ended.

Swiftweapon
orc pawn
orc pawn
Posts: 17
Joined: Wed Jul 06, 2005 7:08 pm

Mac Ending after Death

Post by Swiftweapon » Thu Jul 28, 2005 9:57 am

Well I went through and did one tweaks... Ok it was a simple idiot change but it worked. After i made this change I went into the wait4rez which is set just for my wizard and I had it start afnuke over again. Yeah there may have been a better way to do it but heck it worked out.

Changed :

sub event_died
/echo You died, ending macro
/endmacro


TO:

sub event_died
/echo You died, ending macro
/mac wait4rez

A_Druid_00
Macro Maker Extraordinaire
Posts: 2378
Joined: Tue Jul 13, 2004 12:45 pm
Location: Rolling on the Lawn Farting

Post by A_Druid_00 » Thu Jul 28, 2005 10:26 am

You can also just #include Wait4Rez.inc and /call Wait4Rez, and not even have to restart the macro after rezzing and looting.
[quote]<DigitalMocking> man, A_Druid_00 really does love those long ass if statements
<dont_know_at_all> i don't use his macro because i'm frightened of it[/quote]
[quote][12:45] <dont_know_at_all> never use a macro when you can really fuck up things with a plugin[/quote]

sLyONe
decaying skeleton
decaying skeleton
Posts: 1
Joined: Mon Jul 18, 2005 11:30 pm

Post by sLyONe » Mon Aug 08, 2005 3:55 am

Getting the following error as well.

{}pairing ran into anther subroutine
AFNuke2.inc@227 (ClickBuffcheck): } ele /goto :DoneItemChecks
afnuke.mac@285 (main): /if (!${clicktimer}) /call ClickBuffcheck
The current macro has ended.

Not quite sure why I'm getting that either. I'm rather new, trying to figure things out, so please forgive me as I go.

vstratos
orc pawn
orc pawn
Posts: 25
Joined: Mon May 09, 2005 2:52 am

Post by vstratos » Sun Aug 21, 2005 6:41 pm

I'm getting same error.

Merlin
a lesser mummy
a lesser mummy
Posts: 69
Joined: Tue Oct 26, 2004 2:33 am

Post by Merlin » Mon Sep 19, 2005 10:37 pm

I'm getting an error that i must be standing to cast a spell, but i am standing, which is confusing me

DigitalMocking
a grimling bloodguard
a grimling bloodguard
Posts: 620
Joined: Mon Apr 04, 2005 5:53 pm

Post by DigitalMocking » Mon Sep 19, 2005 11:48 pm

Merlin wrote:I'm getting an error that i must be standing to cast a spell, but i am standing, which is confusing me
It could be that you're an idiot who didn't read the giant disclaimer about the current release still being broken.

Just a thought.

User avatar
gimp
a grimling bloodguard
a grimling bloodguard
Posts: 584
Joined: Fri Oct 29, 2004 9:28 am
Location: internet

Post by gimp » Mon Sep 19, 2005 11:48 pm

Merlin wrote:I'm getting an error that i must be standing to cast a spell, but i am standing, which is confusing me
see this thread for an explanation:

http://www.macroquest2.com/phpBB2/viewtopic.php?t=12083

Merlin
a lesser mummy
a lesser mummy
Posts: 69
Joined: Tue Oct 26, 2004 2:33 am

Post by Merlin » Sun Sep 25, 2005 12:44 pm

after the 9/24 patch the mac doesnt keep devoted familiar up

Fixxer
a ghoul
a ghoul
Posts: 146
Joined: Wed Apr 13, 2005 8:15 am

Post by Fixxer » Sun Sep 25, 2005 2:39 pm

There is a new release today that will fixes AAs. Find out what the new ability name is that can be called in the macro and it should work.