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