AFNuke mac (Wiz Bot Mac update: 12-02-04)

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

Moderator: MacroQuest Developers

Azum
a hill giant
a hill giant
Posts: 229
Joined: Wed Jun 04, 2003 5:04 am

AFNuke mac (Wiz Bot Mac update: 12-02-04)

Post by Azum » Tue May 04, 2004 11:31 pm

MAKE SURE YOU GET afnuke.mac (this post - updated 11/18) AND afnuke.inc (third post - updated 11/18) AND afnuke2.inc (seventh post - updated 11/18) AND spell_routines.inc, click this link: -> http://www.macroquest2.com/phpBB2/viewtopic.php?t=7568 <-

INI documentation is in the eighth post in this thread - updated 10/28

(11/18) - Finally converted over to spell_routines.inc. I should have done this a long time ago. I still use my own item code, but all the casting is now handled by spell_routines.inc. Fixed a bug in noassist mode that I created last update.

(11/13) - Pretty significant overhaul for speed optimization. I moved casting announcements from the main macro to spellcast.inc, which allowed me to remove alot of unnecessary waiting the macro had been doing. Changed autoTL - it will now only respond to someone on the Master List. (/addmaster name). To invoke the translocate, type "/tl name" yourself, or send a tell to the wizard "/tl name" if on the Master list. Also added an evac command. Type /evac or send a tell to the wizard "/evac" if on the Master list. If the wizard is casting a spell he'll interrupt it and evacuate. Uses exodus first, and evacuate if exodus is not available.

(11/09) - Various fixes, the concussion 'issue' should be gone now. Removed preconcperc as it was no longer needed. Got rid of the animation checks for now since they were causing problems.

(10/29) - Workaround for AltAbilityReady. Should fix any issues with AltAbilityReady reporting TRUE on AA's for your class you don't yet have.

(10/28) - Updated the macro as well as spellcast.inc - thanks to ideas I stole from Rusty's spell_routines.inc. The interrupt code for spells (if enabled with the checktarget option in your nuke_name.ini) is now much more responsive and accurate. I removed alot of delays from the macro and it runs alot faster now, you have been warned. Snare resist code should work now, but I haven't tested it. The mod rod item charge bug is also fixed. Added alias: /modrod.

(10/24) - Added PreConcussion option. Defaults to off. If enabled, it will concussion mobs before you nuke the number of times you specify. You can also specify what percentage to preconcussion. Added aliases: /preconc, /preconcnum, /preconcperc, /harvest, /harvestperc,
/medtoggle. Made the macro even more mez-friendly.

(10/22) - Fixed a typo in Ether Skin code. Only need to grab afnuke2.inc for the fix.

(10/15) - Added line of sight checks to autosit and meditate code.

(10/11) - Fixed Maelin/Ether Shield so the macro won't try to cast them if you have Wunshi's. Reduced the range that triggers autostand while meditating (for real this time). Added aliases: /epic, /timewand. Added some code to prevent breaking mez.

(10/09) - Added support for Ether Skin and Ether Shield. Reduced the range that triggers autostand while meditating.

(09/26) - Added new oow familiars, and support for up to 20 buffs. I know, I'm a slacker.

(09/22) - Mostly this is just the addition of Wrath of Xuzl to the macro. If you have Wrath of Xuzl, it will be used instead of Call of Xuzl. If you don't have Wrath of Xuzl, the macro will continue to use Call of Xuzl. Todo list includes addition of exodus/evac on command, more TL destinations, and possibly a snare overhaul. I'll also be updating the buffslot stuff to 20 and try to add OOW aa's as well.

(09/19) - Two updates today. I can't come up with an elegant solution for AE snare. As such I'm going to have it ignore resists for now and leave the distance check out. I made automated translocate better - it will now only translocate if "tl" are the first two letters in the tell, or "translocate" is the first word in the tell. I also added a toggle for it, called autoTL. Added on the fly force shield toggle. Added version checking (hopefully will make the macro load faster for those who have slow computers). Made adjustments to snare. Fixed a bug that made temp staff setting in assist mode too verbose. ;) Made various other improvements and tweaks. More to come.

I've been playtesting it and I like the macro alot better now overall. If you haven't yet given it a try, check it out.

Warning - If you try to /leash to a mounted player, it can screw the following routine up. I have no idea why (works fine on unmounted players).


And the macro code:

Code: Select all

|----------------------------------------------------------------------------| 
| AFNuke.mac MQ2Data compliant and created by Azum 
| 12/02/04 7:00pm 
| 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 120204
   /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 ${concuss} 
/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 Azum on Thu Dec 02, 2004 6:01 am, edited 364 times in total.

lullimarka
orc pawn
orc pawn
Posts: 21
Joined: Mon Nov 18, 2002 8:48 am

Post by lullimarka » Wed May 05, 2004 2:28 am

possible to add check for pet in buffcheck plz ?

Azum
a hill giant
a hill giant
Posts: 229
Joined: Wed Jun 04, 2003 5:04 am

Afnuke.inc

Post by Azum » Wed May 05, 2004 2:45 am

Code: Select all

| afnuke.inc 12/02/04 7:00pm 

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
Last edited by Azum on Thu Dec 02, 2004 5:59 am, edited 84 times in total.

lullimarka
orc pawn
orc pawn
Posts: 21
Joined: Mon Nov 18, 2002 8:48 am

Post by lullimarka » Wed May 05, 2004 4:37 am

where can i find a list of /alt activate abilities , coz i think i cud add the pet part myself wihout bothering you =)

User avatar
Dentist
*insert drilling noises here*
Posts: 52
Joined: Mon Jan 26, 2004 2:48 pm

Post by Dentist » Wed May 05, 2004 7:55 am

Would this work if i was to change the Maelins leggings of lore to Ancient: Greater concussion, and the GoD spellls to SoS / Draughts? I think i would need to play with the delays a little, but without testing the code yet (posting from work), and my limited macro knowledge, thaught i would ask here ;)
<Oid> http://buttox.ytmnd.com/
<Oid> http://picard.ytmnd.com/
<Dentist> OMG!!!! oid you shit head, dont ever do that again or i will hunt you down. that shit is horrible i need to go kill some kittens or soemthin

lullimarka
orc pawn
orc pawn
Posts: 21
Joined: Mon Nov 18, 2002 8:48 am

Post by lullimarka » Wed May 05, 2004 9:09 am

well i have meddled around a bit with it , testing and stuff and heres something i am currently working on (first time on macro scripting but seems to be goig well)

1. rest and med to xx% mana if mana lower than xx%

2. still cant find out a refernce list of alt abilities like familars, once i do i can add the logic to use allegiant/ro/e`ci etc

3. add nuke cast delay as a parameter.


well thats about all the fine tunings i can think of for an already amazing piece of work. i am tryong to work these things out but if somone more experienced at this job would lend a hand i would much appreciate it, will post updates here when tested.

Azum
a hill giant
a hill giant
Posts: 229
Joined: Wed Jun 04, 2003 5:04 am

afnuke2.inc

Post by Azum » Wed May 05, 2004 3:07 pm

Code: Select all

| afnuke2.inc 12/02/04 7:00pm 

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 (${String["${Ini[${IniFile},${Category},-1,NOTFOUND]}"].Find["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 (${String["${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 (${String["${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 (${String["${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 (${String["${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 (${String["${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
Last edited by Azum on Thu Dec 02, 2004 6:00 am, edited 50 times in total.

Azum
a hill giant
a hill giant
Posts: 229
Joined: Wed Jun 04, 2003 5:04 am

afnuke.txt

Post by Azum » Wed May 05, 2004 3:20 pm

.INI documentation. DO NOT COPY AND PASTE THIS into an .ini file, it's just for reference and explanatory purposes. Your auto-generated .INI will contain these settings, without the comments. If you want to save this, save it as afnuke.txt

Code: Select all

| AFNuke.txt - Macro .INI Documentation - 10/28/04 11:45pm
| 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
Last edited by Azum on Fri Oct 29, 2004 2:42 am, edited 8 times in total.

lullimarka
orc pawn
orc pawn
Posts: 21
Joined: Mon Nov 18, 2002 8:48 am

Post by lullimarka » Wed May 05, 2004 4:05 pm

thnx for the excellent help azum =)

where do u get the list of alt abilities btw ? and any comments / suggestions abt the few modifications i posted above ?

Azum
a hill giant
a hill giant
Posts: 229
Joined: Wed Jun 04, 2003 5:04 am

Post by Azum » Wed May 05, 2004 4:15 pm

AA ability list, click this -> http://thedruidsgrove.org/forums/showthread.php?t=6754 <-

Those modifications shouldn't be too hard. I'll see what I can do.
Last edited by Azum on Fri May 07, 2004 9:16 am, edited 2 times in total.

JimJohnson
a grimling bloodguard
a grimling bloodguard
Posts: 1299
Joined: Sat Oct 11, 2003 6:00 am

Post by JimJohnson » Wed May 05, 2004 5:10 pm

Code: Select all

/Alt Activate # 

14 : Innate Regeneration 
22 : Mental Clarity 
25 : Spell Casting Subtlety 
26 : Spell Casting Expertise 
27 : Spell Casting Deftness 
29 : Natural Healing 
30 : Combat Fury 
31 : Fear Resistance 
32 : Finishing Blow 
35 : Mass Group Buff (CLR, DRU, ENC, MAG, NEC, PAL, RNG, SHM) 
36 : Divine Ressurection (CLR) 
37 : Innate Invis to Undead (CLR, NEC) 
38 : Celestial Regeneration (CLR) 
39 : Bestow Divine Aura (CLR) 
40 : Turn Undead (CLR) 
41 : Purify Soul (CLR) 
43 : Exodus (DRU, WIZ) 
46 : Dire Charm (DRU, ENC, NEC) 
47 : Cannabalization (SHM) 
48 : Quick Buff 
49 : Alchemy Mastery 
50 : Rabid Bear (SHM) 
51 : Mana Burn (WIZ) 
52 : Improved Familiar (WIZ) 
53 : Nexus Gate (WIZ) 
55 : Permenant Illusion 
56 : Jewel Craft Mastery 
57 : Gather Mana (ENC) 
58 : Mend Companion (BST, MAG, NEC) 
59 : Quick Summoning 
60 : Frenzied Burnout (MAG) 
61 : Elemental Form : Fire (MAG) 
62 : Elemental Form : Water (MAG) 
63 : Elemental Form : Earth (MAG) 
64 : Elemental Form : Air (MAG) 
65 : Reclaim Energy 
66 : Turn Summoned (MAG) 
67 : Elemental Pact 
68 : Life Burn (NEC) 
69 : Dead Mesmerization (NEC) 
70 : Fearstorm (NEC) 
71 : Flesh to Bone (NEC) 
72 : Call to Corpse (NEC) 
73 : Divine Stun (PAL) 
74 : Improved Lay on Hands 
75 : Slay Undead 
76 : Act of Valor (PAL) 
77 : Holy Steed (PAL) 
78 : Fearless 
79 : 2 Hand Bash 
80 : Innate Camouflage (DRU, RNG) 
81 : Ambidexterity 
82 : Archery Mastery 
83 : Flethching/Bowyer Mastery 
84 : Endless Quiver 
85 : Unholy Steed (SHD) 
86 : Improved Harm Touch (SHD) 
87 : Leech Touch (SHD) 
88 : Death Peace 
89 : Soul Abrasion 
90 : Instrument Mastery 
94 : Jam Fest 
96 : Sonic Call 
97 : Critical Mend 
98 : Purify Body (MNK) 
99 : Chain Combo 
100 : Rapid Feign 
101 : Return Kick 
102 : Escape (ROG) 
103 : Poison Mastery 
104 : Double Riposte 
105 : Quick Hide 
106 : Quick Throw 
107 : Purge Poison (ROG) 
108 : Flurry 
109 : Rampage (WAR) 
110 : Area Taunt (WAR) 
111 : Warcry (WAR) 
112 : Bandage Wound 
114 : Spell Casting Fury Mastery (Passive) 
115 : Extended Notes 
116 : Dragon Punch 
117 : Strong Root (WIZ) 
118 : Singing Mastery 
119 : Body and Mind Rejuvenation (Passive) 
120 : Physical Enhancement (Passive) 
121 : Adv. Trap Negotiation 
122 : Acrobatics 
123 : Scribble Notes 
124 : Chaotic Stab 
125 : Pet Discipline 
126 : Hobble of Spirits (BST) 
127 : Frenzy of Spirit (BST) 
128 : Paragon of Spirit (BST) 
143 : Planar Durability 
148 : Coup de Grace 
149 : Fury of the Ages 
150 : Mastery of the Past 
153 : Radiant Cure (CLR, DRU, SHM) 
154 : Hastened Divinity 
155 : Hastened Turning 
156 : Hastened Purification of the Soul 
157 : Hastened Gathering 
158 : Hastened Ribidity 
159 : Hastened Exodus 
160 : Hastened Root 
161 : Hastened Mending 
162 : Hastened Banishment 
163 : Hastened Instigation 
164 : Furious Rampage 
165 : Hastened Purification of the Body 
166 : Hasty Exit 
167 : Hastened Purification 
168 : Flash of Steel 
169 : Divine Arbitration (CLR) 
170 : Wrath of the Wild (DRU) 
171 : Virulent Paralysis (SHM) 
172 : Harvest of Druzzil (WIZ) 
173 : Eldritch Rune (ENC) 
174 : Servant of Ro (MAG) 
175 : Wake the Dead (NEC) 
176 : Suspended Minion (BST, ENC, MAG, NEC, SHM) 
177 : Spirit Call (SHM) 
178 : Celestial Renewal 
179 : Allegiant Familiar 
180 : Hand of Piety (PAL) 
181 : Mithaniel's Binding 
182 : Mending of the Tranquil 
183 : Raging Flurry 
184 : Guardian of the Forest (RNG) 
185 : Spirit of the Wood (DRU) 
186 : Bestial Frenzy 
187 : Harmonious Attack 
188 : Knight's Advantage 
189 : Ferocity 
190 : Viscid Roots 
191 : Sionachie's Cresendo 
192 : Ayonae's Tutelage 
193 : Feigned Minion 
194 : Unfailing Divinity 
195 : Animation Empathy 
196 : Rush to Judgement 
197 : Living Shield 
198 : Consumption of the Soul 
199 : Boa****l Bellow (BRD) 
200 : Fervent Blessing 
201 : Touch of the Wicked 
202 : Punishing Blade 
203 : Speed of the Knight 
204 : Shroud of Stealth 
205 : Nimble Evasion 
206 : Technique of Master Wu 
207 : Host of the Elements (MAG) 
208 : Call of Xuzl (WIZ) 
209 : Hastened Stealth 
210 : Ingenuity 
211 : Fleet of Foot 
212 : Fading Memories (BRD) 
213 : Tactical Mastery 
214 : Theft of Life 
216 : Fury of Magic Mastery 
217 : Project Illusion (ENC) 
218 : Headshot 
219 : Entrap (RNG) 
220 : Unholy Touch 
221 : Total Domination 
222 : Stalwart Endurance 
223 : Quick Summoning 
226 : Mana Burn (WIZ)

Azum
a hill giant
a hill giant
Posts: 229
Joined: Wed Jun 04, 2003 5:04 am

spellcast.inc - fixed version

Post by Azum » Wed May 05, 2004 10:38 pm

hi
Last edited by Azum on Thu Nov 18, 2004 9:44 pm, edited 11 times in total.

Article22
decaying skeleton
decaying skeleton
Posts: 6
Joined: Fri Feb 27, 2004 4:21 am

Post by Article22 » Thu May 06, 2004 5:30 am

Nice code Azum, I have done something similar with Yalps code also, but kept the Nuke code separate from the ManaRegen, so I can regen after a wipe.

One thing which I have found is that the spam from being stunned by Harvest is a pain, so perhaps you need a /delay 10s after casting it?

I am going to put it in my code tonight once I get the new exe up and running after the patches.

Tested mine in Time and PoE xp groups, and while it doesnt have your flexibility on Concussion, I parameterised the Nuke used (only can use one though at the moment) which is handy for me...

Keep up the good work!
Article22

newstarter
decaying skeleton
decaying skeleton
Posts: 8
Joined: Wed Dec 10, 2003 10:24 am

Post by newstarter » Thu May 06, 2004 7:49 am

Is there any way to turn off the resists check ? i dont want it to recast concussion if it gets resistet.

thx in advanced

Azum
a hill giant
a hill giant
Posts: 229
Joined: Wed Jun 04, 2003 5:04 am

Post by Azum » Thu May 06, 2004 2:08 pm

Can anyone confirm it's recasting concussion on a resist? I haven't noticed this myself. Spellcast.inc has a return for a resisted spell, but I'm not doing anything with it, so it shouldn't affect the macro (to the best of my limited knowledge)

I'll test it out later.