|some of these macros aren't finished yet ill keep you updated~
|
|these macros are not tested on titanium yet.. they work with underfoot
|they might work with titanium
|
|NOT SAFE FOR LIVE EVER
|
|these macros all load spellset called level 62, they fail without that usually
|they like certain spells on the spellbar
ench.mac
beast.mac
sk.mac
spell_routines.inc
toolismacro.ini
rez.mac
movement functions (copy paste into ur own macros or w/e)
movement.ini
pl.mac
list of commands for /gui toggle and /gui force goto
|
|im not playing atm so these will be fixed when i get around to it
|im very angry at movement, trig, this is maths fault
|
ench is unfinished, her mez requires a copy paste im too lazy to do
ench may be missing /memspellset level 62
ench domez=0 ench will not mez or charm,mez is broken
ench shes good for buffs and nukes
ench will be improved when there is time
ench ndt will be improved in the future
ench charm is going to require coordinate plane work
ench mez is copy paste that's easy im lazy
ench charm is going to require something on my side for cliff/ wall detection
bst is good he does the growl of the leopard, notsure ifthatone isrlly worth it
bst can prolly get growl removed i dont even remember my own code
sk does not autopull, sk doesnottank, sk is dps, bards are the real tanks
sk occasionally harm touches random mobs or something
sk you can type /tell lolth buff hate and she will hatebuff ur bard or cleric
these all require spellroutines.inc, mq2twist and mq2 moveutils
type /gui buff kei group 1 or w/e and the bst and ench and clrs will go at it
type /gui buff virt group 1 clerics, bst/pal, sham will go at it
|NOT SAFE FOR LIVE EVER
|edit:NONE OF THESE MACROS ARE SAFE FOR LIVE
|edit:your characters may try to return to camp after death! endless fun
|these are my macros, I have a lot of characters
|bard clr necro is so fun so ill share these ones, im rlly a cleric
|these macros will get you banned on live plz dont
|these macros are slightly broken kind of like search so
these macros will prolly work with titanium ill check eventually
titanium macroquest and plugins instructions are in eqemu servertransfer macros post
viewforum.php?f=43
underfoot macroquest and plugins instructions are there for now
mq2-20100609 is mq build for underfoot client, its in the wiki - hidden -
http://www.macroquest2.com/downloads/zips.php
spellroutines might work not sure that's hidden in macro snippets\
included my spellroutines in other posts - its way better for running alot
this uses mq2moveutils and mq2twist from vip, donating to mq is good
moveutils for UF I think is june2011 vip plugins development post page 32
moveutils seems to have changed recently mine is 339,968 bytes
moveutils currently has no spaces and is 249,896 bytes
spell_routines for uf I think is 7/05/09 macro snippets- but ill put my own
mq2twist for UF I think is 09/22/09+ vip plugins development
mq2twist is pg26 of post, it is thepost by htw not first posting 09/22/09+....
|
|
|
|my macros are slightly broken they will not switch to the rez macro
|correctly sometimes, its because of them memming spells and I don't
|want an extra second delay for the screen to load when they are rezzed
|I think -right before memspell on all macros or something
|
|the bard will not group invis properly this is easy to fix, I wanted it without
|more variables
|
|the auto movement requires movement.ini I got a lot mapped so far
|you must use /gui force goto zonename or junctionname
|until you fix group invis or I post a fix...
|regular goto zonename is broken after zoning a lot of the time,
|
|bard will sometimes not speed song or invis song, easy fixes starter stuff
|
| there is toggle commands and movement commands
|
|these macros all load spellset called level 62, they fail without that usually
|they like certain spells on the spellbar
|
|toggle is a good read u can easily add toggles if u want, its diff in each
|macro because we don't necessarily have to have /gui toggle stick front
|affecting the clerics and the wizards
|( u may want to add this if u got leet time or tov lewts)
|
|
|my destroy function is (I think very safe) watch out for items when u click
|destroy by accident when waiting for a rez, it reads that as the same
|window, that can prolly be changed if u can get /windows (list windows) to
| work right. the destroy function is good and there is no crazy horrible
|autoinv to drop ur items like that other spell routines...
|
|handle destroy is in the main macros not the uh spell routines... and is
|used for lava orbs, soul orbs, and mod rods... not sure if anything else
| that's all to the best of my memory or whatever thx guys
|
these macros are really fun
|ench and shm don't malo/slow, manually do such its way funner
|then you are in control!
|shm now has /declare for automaticslowing of named, not preferred option
|
ench mez does not work right this sec its very easy copy paste
ench is missing /memspellset level 62 and other macros may be missing this
ench /memspellset level 62 could go in between /echo enchanter macro started and :loop
ench does not charm yet that's rlly dangerous prob is lag and coordinate planes
--------------------------
ench.mac part1
--------------------------
Code: Select all
#turbo 40
#chat tell
#chat group
#chat guild
#Event Follow "#1#tells the#*#, '#2#follow'"
#Event MakeCamp "#*#tells the#*#, '#2#make camp'"
#Event GuildAssist "#1#tells the#*#, 'assist me with#*#'"
#Event Wore "Your #1# spell has worn off of #2#."
#Event Buff "#1#tells#*#, 'buff#2#'"
#Event NDT "#1#tells you, 'ndt'"
#Event Toggle "#1#guild, '#2#toggle#3#'"
#Event Movement "#1#guild, '#2#goto#3#'"
#include spell_routines.inc
Sub Main
/declare randomstring string outer "glitchishere"
/declare nukepause int outer 100
/declare stunpauseone int outer 350
/declare stunpausetwo int outer 68
/declare assistat int outer 98
/declare nukeat int outer 95
/declare stopnukesat int outer 1
/declare domez int outer 0
/declare doslow int outer 0
/declare dodebuff int outer 0
/declare docharm int outer 0
/declare dorune int outer 0
/declare donukes int outer 1
/declare dostun int outer 0
/declare dostuntwo int outer 0
/declare mezspell string outer "Sleep"
/declare charmspell string outer "Command of Druzzil"
/declare slowspell string outer "Forlorn Deeds"
/declare debuffspell string outer "Incapacitate"
/declare nukespell string outer "Ancient: Chaotic Visions"
/declare resistspell string outer "Guard of Druzzil"
/declare stunspell string outer "Dementia"
/declare stunspelltwo string outer "Dyn's Dizzying Draught"
/declare stunspellthree string outer "Whirl till you hurl"
/declare hastespell string outer "Speed of Vallon"
/declare runespell string outer "Uproar"
/declare keispell string outer "Voice of Quellious"
/declare extraspellgem int outer 5
/declare mezduration int outer 540
/declare charmduration int outer 4500
/declare slowduration int outer 1500
/declare debuffduration int outer 3900
/declare hasteduration int outer 25200
/declare keiduration int outer 44400
/declare runeduration int outer 5200
/declare uproarduration int outer 5200
/declare hastebuffed0 timer outer 0
/declare hastebuffed1 timer outer 0
/declare hastebuffed2 timer outer 0
/declare hastebuffed3 timer outer 0
/declare hastebuffed4 timer outer 0
/declare hastebuffed5 timer outer 0
/declare runebuffed timer outer 0
/declare keibuffed timer outer 0
/declare pethasted0 timer outer 0
/declare pethasted1 timer outer 0
/declare pethasted2 timer outer 0
/declare pethasted3 timer outer 0
/declare pethasted4 timer outer 0
/declare pethasted5 timer outer 0
/declare storednpcid int outer 0
/declare targetarray[8] int outer 0
/declare targetarraynames[8] string outer empty
/declare storedname string outer empty
/declare originalrunespell string outer ${runespell}
/declare meztimer1 timer outer 0
/declare meztimer2 timer outer 0
/declare meztimer3 timer outer 0
/declare meztimer4 timer outer 0
/declare meztimer5 timer outer 0
/declare meztimer6 timer outer 0
/declare meztimer7 timer outer 0
/declare meztimer8 timer outer 0
/declare nukepausetimer timer outer 0
/declare stunpausetimer timer outer 0
/declare stunpausetwotimer timer outer 0
/declare makecamploc string outer ${Me.Y},${Me.X}
/declare castrune int outer 0
/declare oldtarget int outer
/declare didstick int outer 0
/declare gettarget int outer 1
/declare targetdead int outer 1
/declare targetid int outer
/declare ammoving int outer 0
/squelch /stick off
/declare mainassist string outer
/varset mainassist ${Param0}
/if (!${Defined[Param0]}) {
/echo This Macro needs a Main assist to run
/end
}
/echo enchanter macro started
:spellsetloop
/if (${NearestSpawn[PC ${Me.Name}].Name.Find[${Me.Name}]}) {
/memspellset level 62
/delay 46s !${Window[SpellBookWND].Open}
}
/delay 2
/if (!${NearestSpawn[PC ${Me.Name}].Name.Find[${Me.Name}]}) /goto :spellsetloop
:loop
/doevents
/if (!${ammoving} && ${Bool[${leashloc}]}) /call gotoloc
/if (!${ammoving}) /call cleartarget
/if (${gettarget} && !${ammoving}) /call gettarget
/if (${domez} && !${ammoving}) /call mezadds
/if (${targetid} && !${ammoving}) /call DoCombat
/if (!${ammoving} && ${InvSlot[13].Item.ID}) /call CheckBuffs
/if (!${ammoving}) /call CheckPetBuffs
/if (!${Me.CombatState.Equal[COMBAT]} && ${Me.PctMana} < 95 && ${Me.Standing} && !${Me.Mount.ID} && !${Me.Casting.ID} && !${ammoving} && !${Me.Moving}) /sit
/call checkstuff
/delay 2
/goto :loop
Sub gettarget
/call getids "${mainassist}"
/if (${Spawn[${Macro.Return}].ID} && ${Spawn[id ${Macro.Return}].Distance} < 200) {
/target ID ${Macro.Return}
/delay 2
/assist
/delay 4
/if (${Target.Type.Equal[NPC]} && ${Target.Type.NotEqual[CORPSE]} && ${Target.PctHPs} < ${assistat} && ${Target.Distance} < 200) {
/varset targetid ${Target.ID}
/varset targetdead 0
/varset gettarget 0
/g assisting on %t
/echo My Target is now ${Target.CleanName}
/if (${Me.Pet.ID}) /pet attack
}
}
/return
Sub CheckBuffs
/declare i int local 0
/if (${dorune}) {
/if (${Me.CurrentMana} > ${Spell[${runespell}].Mana} && ${Me.SpellReady[${runespell}]} && ${castrune}) {
/call getids "${mainassist}"
/if (${Spawn[${Macro.Return}].Distance} < 100 && ${Spawn[${Macro.Return}].Type.Equal[PC]}) {
/target ID ${Macro.Return}
/delay 4
/if (${Target.Type.Equal[PC]}) /call cast ${runespell} 1s gem7
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) {
/varset castrune 0
/if (${runespell.Find[Uproar]}) /varset runebuffed ${uproarduration}
/if (${runespell.Find[Rune]}) /varset runebuffed ${runeduration}
}
}
}
/if (${originalrunespell.Find[Rune]} && ${FindItem[Peridot].StackCount} > 20 && ${runespell.Find[Uproar]}) {
/guildsay switching back to other rune spell now i have peridots
/varset runespell ${originalrunespell}
}
}
/if (${Me.SpellReady[${hastespell}]}) {
/for i 0 to ${Group}
/if (${Me.PctMana} > 15 && !${ammoving}) {
/if (${Group.Member[${i}].Distance} < 100) {
/if (${hastebuffed${i}} < 20 && ${Group.Member[${i}].Class.Name.NotEqual[Wizard]} && ${Group.Member[${i}].Class.Name.NotEqual[Magician]} && ${Group.Member[${i}].Class.Name.NotEqual[Enchanter]} && ${Group.Member[${i}].Class.Name.NotEqual[Necromancer]} && ${Group.Member[${i}].Class.Name.NotEqual[Cleric]} && ${Group.Member[${i}].Class.Name.NotEqual[Shaman]}) {
/target ID ${Group.Member[${i}].ID}
/delay 2
/gsay ${hastespell} incoming on %T
/call cast ${hastespell} 2s
/delay 2
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) /varset hastebuffed${i} ${hasteduration}
}
/doevents
}
/next i
}
}
/return
Sub CheckPetBuffs
/declare i int local 0
/if (${Me.SpellReady[${hastespell}]}) {
/for i 0 to ${Group}
/if (${Me.PctMana} > 15 && !${ammoving}) {
/if (${Group.Member[${i}].ID} && ${Group.Member[${i}].Pet.ID}) {
/if (${pethasted${i}} < 20) {
/target ID ${Group.Member[${i}].Pet.ID}
/if (${Target.Distance} < 100 && ${Target.ID} == ${Group.Member[${i}].Pet.ID}) {
/g incoming haste on pet %t
/call cast ${hastespell} 2s
/delay 2s
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) /varset pethasted${i} ${hasteduration}
}
/doevents
}
}
/next i
}
}
/return
Sub DoCombat
/if (${Target.ID} != ${targetid} && ${Spawn[${targetid}].Type.NotEqual[CORPSE]}) {
/target ID ${targetid}
/delay 2
}
/if (${Target.Type.Equal[NPC]} && ${Target.PctHPs} < ${assistat}) {
/if (${Target.ID} == ${targetid} && ${donukes} && ${Target.PctHPs} < ${nukeat} && ${Target.Type.NotEqual[CORPSE]} && ${Target.PctHPs} > ${stopnukesat} && ${Me.PctMana} > 5 && !${nukepausetimer}) {
/call cast ${nukespell} 2s
/varset nukepausetimer ${nukepause}
}
/if (${Target.ID} == ${targetid} && ${dostun} && ${Target.PctHPs} < ${nukeat} && ${Target.Type.NotEqual[CORPSE]} && ${Target.PctHPs} > ${stopnukesat} && ${Me.PctMana} > 5 && !${stunpausetimer}) {
/call cast ${stunspell} 2s
/varset stunpausetimer ${stunpauseone}
}
/if (${Target.ID} == ${targetid} && ${dostuntwo} && ${Target.PctHPs} < ${nukeat} && ${Target.Type.NotEqual[CORPSE]} && ${Target.PctHPs} > ${stopnukesat} && ${Me.PctMana} > 5 && !${stunpausetwotimer}) {
/call cast ${stunspelltwo} 2s
/varset stunpausetwotimer ${stunpausetwo}
}
}
/return
Sub mezadds
/declare j int local 1
/declare i int local 1
/for i 1 to ${SpawnCount[los radius 200]}
/for j 1 to 8
/if (${targetid} && ${Me.PctMana} >4) {
/if (${targetarray[${j}]} && ${meztimer${j}} <12){
/target ID ${targetarray[${j}]}
/call cast ${mezspell} 2s
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) /varset meztimer${j} ${mezduration}
}
/if (${NearestSpawn[${i},npc los notid ${targetid}].ID}) {
/target ID ${NearestSpawn[${i},npc los notid ${targetid}].ID}
/varset oldtarget ${Target.ID}
/assist
/if (${Target.Type.Equal[PC]}) {
/target ID ${oldtarget}
/if (${Target.Type.Equal[NPC]} && ${Target.ID} != ${targetarray[1]} && ${Target.ID} != ${targetarray[2]} && ${Target.ID} != ${targetarray[3]} && ${Target.ID} != ${targetarray[4]} && ${Target.ID} != ${targetarray[5]} && ${Target.ID} != ${targetarray[6]} && ${Target.ID} != ${targetarray[7]} && ${Target.ID} != ${targetarray[8]}) {
/varset targetarray[${j}] ${Target.ID}
/varset targetarraynames[${j}] ${Target.Name}
/call cast ${mezspell} 2s
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) /varset meztimer${j} ${mezduration}
/next j
}
}
/call cleartarget
/next i
}
}
/return
Sub checkstuff
/if (${Cursor.Name.Equal[Rod of Mystical Transvergence]}) {
/if (${Me.FreeInventory} < 1) {
/guildsay mod rod on cursor but no inventory room
/return
}
/if (${Me.FreeInventory} > 1) /autoinv
}
/if (!${Me.Invis}) {
/if (${FindItem[=Rod of Mystical Transvergence].ID}) {
/if (!${FindItem[=Rod of Mystical Transvergence].TimerReady}) {
/if (!${Cursor.ID} && ${Me.PctMana} < 85 && ${Me.CurrentHPs} > 4000) {
/call clickitem "Rod of Mystical Transvergence" "inv"
}
}
}
}
/if (!${InvSlot[13].Item.ID}) {
/if (!${InvSlot[17].Item.ID}) {
/if (${Zone.ShortName.Equal[poknowledge]} || ${Zone.ShortName.Equal[guildlobby]} || !${InvSlot[18].Item.ID}) {
/if (${MacroQuest.GameState.NotEqual[INGAME]}) /return
/if (!${Me.Gem[8].ID}) {
:spellsetloop
/if (${NearestSpawn[PC ${Me.Name}].Name.Find[${Me.Name}]}) {
/memspellset level 62
/delay 46s !${Window[SpellBookWND].Open}
}
/delay 2
/if (!${NearestSpawn[PC ${Me.Name}].Name.Find[${Me.Name}]}) /goto :spellsetloop
}
/if (!${Defined[amnaked]}) /declare amnaked int local 100
/if (!${Window[SpellBookWnd].Open}) /guildsay <==== i died ====>
/if (!${Window[SpellBookWnd].Open} && ${Defined[amnaked]}) /docommand /mac rez ${mainassist} ${amnaked}
/if (!${Window[SpellBookWnd].Open}) /docommand /mac rez ${mainassist}
}
}
}
/return
Sub cleartarget
/declare i int local 1
/for i 1 to 8
/if (${Spawn[${targetid}].Type.Equal[CORPSE]} && !${targetdead} || !${Spawn[${targetid}].Type.Equal[NPC]} && !${targetdead}) {
/echo im clearing target
/varset targetdead 1
/varset gettarget 1
/if (${Me.CombatState.NotEqual[COMBAT]} && !${NearestSpawn[1,npc radius 50].ID}) /call returntocamp "face"
}
/if (${Spawn[${targetarray[${i}]}].Type.Equal[CORPSE]} || !${Spawn[${targetarray[${i}]}].Type.Equal[NPC]} && ${Spawn[${targetarray[${i}]}].ID}) {
/varset targetarray[${i}] 0
/varset targetarraynames[${i}] empty
}
/if (${targetarray[${i}]} == ${targetid} && ${targetid}) {
/varset targetarray[${i}] 0
/varset targetarraynames[${i}] empty
}
/next i
/return
Sub getids(string name)
/declare SpawnID int local
/declare SpawnName string local
/declare i int local
/for i 1 to 4
/varset SpawnID ${NearestSpawn[${i}, pc ${name}].ID}
/varset SpawnName ${NearestSpawn[${i}, pc ${name}]}
/if (${NearestSpawn[${i}, pc ${name}].Name.Equal[${name}]}) /return ${SpawnID}
/next i
/return 0
Sub getnpcids(string name)
/declare SpawnID int local
/declare SpawnName string local
/declare i int local
/for i 1 to ${SpawnCount[los radius 200 ${name}]}
/varset SpawnID ${NearestSpawn[${i}, npc los notid ${targetid} ${name}].ID]}
/varset SpawnName ${name}
/target ID ${SpawnID}
/if ${Target.Type.Equal[NPC]} && ${Target.Type.NotEqual[CORPSE]} && ${Target.Animation} != 32) /return ${SpawnID}
/next i
/return
Sub Event_Follow(Line, FollowTarget, ChatText)
/if (!${Bool[${ChatText}]}) {
/varset FollowTarget ${FollowTarget.Right[-2].Left[-2]}
/call getids "${FollowTarget}"
/if (${Spawn[id ${Macro.Return}].ID} && ${Spawn[id ${Macro.Return}].Distance} < 200) {
/target ID ${Macro.Return}
/delay 2
/if (${Target.Type.Equal[PC]}) {
/varset ammoving 1
/keypress w
/face fast
/stick loose 5
}
}
/return
}
/if (${ChatText.Find[group]}) {
/varset ChatText ${ChatText.Right[-6]}
/call findgroup
/declare i int local
/for i 1 to ${Ini[toolismacro,Values,totalgroups]}
/if (${Macro.Return} == ${ChatText.Arg[${i},,]}) {
/varset FollowTarget ${FollowTarget.Right[-2].Left[-2]}
/call getids "${FollowTarget}"
/if (${Spawn[id ${Macro.Return}].ID} && ${Spawn[id ${Macro.Return}].Distance} < 200) {
/target ID ${Macro.Return}
/delay 2
/if (${Target.Type.Equal[PC]}) {
/varset ammoving 1
/keypress w
/face fast
/stick loose 5
}
}
}
/next i
/return
}
/if (${ChatText.Find[healers]}) {
/if (${Me.Class.HealerType}) {
/varset FollowTarget ${FollowTarget.Right[-2].Left[-2]}
/call getids "${FollowTarget}"
/if (${Spawn[id ${Macro.Return}].ID} && ${Spawn[id ${Macro.Return}].Distance} < 200) {
/target ID ${Macro.Return}
/delay 2
/if (${Target.Type.Equal[PC]}) {
/varset ammoving 1
/keypress w
/face fast
/stick loose 5
}
}
}
/return
}
/if (${ChatText.Find[${Me.Name}]}) {
/declare i int local
/for i 1 to 12
/if (${ChatText.Arg[${i},].Equal[${Me.Name}]}) {
/varset FollowTarget ${FollowTarget.Right[-2].Left[-2]}
/call getids "${FollowTarget}"
/if (${Spawn[id ${Macro.Return}].ID} && ${Spawn[id ${Macro.Return}].Distance} < 200) {
/target ID ${Macro.Return}
/delay 2
/if (${Target.Type.Equal[PC]}) {
/varset ammoving 1
/keypress w
/face fast
/stick loose 5
}
}
}
/next i
/return
}
/return
Sub Event_MakeCamp(Line, ChatText)
/if (${ChatText.Find[group]}) {
/varset ChatText ${ChatText.Right[-6]}
/call findgroup
/if (${Macro.Return.Equal[${ChatText}]}) {
/stick off
/varset ammoving 0
/varset makecamploc ${Me.Y},${Me.X}
}
/return
}
/stick off
/varset ammoving 0
/varset makecamploc ${Me.Y},${Me.X}
/return
Sub Event_GuildAssist(Line, AssistTarget)
/varset AssistTarget ${AssistTarget.Right[-2].Left[-2]}
/call getids "${AssistTarget}"
/if (${Macro.Return} && ${Spawn[id ${Macro.Return}].Distance} < 200) {
/target ID ${Macro.Return}
/delay 2
/assist
/delay 4
/if (${Target.Type.Equal[NPC]} && ${Target.Type.NotEqual[CORPSE]} && ${Target.Distance} < 200) {
/varset targetid ${Target.ID}
/varset gettarget 0
/varset targetdead 0
/varset didstick 0
/echo My Target is now ${Target.CleanName}
/if (${Me.Pet.ID}) /pet back off
/if (${Me.Pet.ID}) /delay 5
/if (${Me.Pet.ID}) /pet attack
}
}
/return
Sub Event_NDT(Line, NDTTarget)
/varset NDTTarget ${NDTTarget.Right[-2].Left[-2]}
/call getids "${NDTTarget}"
/if (!${Me.SpellReady["Night's Dark Terror"]} && ${Me.Book["Night's Dark Terror"]}) {
/tell ${Spawn[id ${Macro.Return}].Name} ndt not up...
/if (!${Me.Gem["Night's Dark Terror"]}) {
/memspell ${extraspellgem} "Night's Dark Terror"
/delay 2s
}
/return
}
/if (${Spawn[id ${Macro.Return}].ID} && ${Spawn[id ${Macro.Return}].Distance} < 100) /target ID ${Macro.Return}
/delay 2
/if (${Me.CurrentMana} > ${Spell["Night's Dark Terror"].Mana} && !${ammoving} && ${Target.ID} == ${Macro.Return} && ${Target.Distance} < 100 && ${Target.Type.Equal[PC]}) {
/tell ${Spawn[id ${Macro.Return}].Name} ndt inc...
/call cast "Night's Dark Terror" 2s
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) /echo ${Target} ndt buffed
}
/return
Sub Event_Wore(Line, SpellName, MyTarget)
/if (${SpellName.Find[Sleep]} || ${SpellName.Find[Bliss]}) {
/declare i int local
/echo this worked
/varset MyTarget ${MyTarget.Right[-2].Left[-2]}
/call getnpcids ${MyTarget}
/varset storednpcid ${Macro.Return}
/for i 1 to 8
/if (${targetarray[${i}]} == ${storednpcid}) {
/varset meztimer${i} 0
/target ID ${targetarray[${i}]}
/call cast ${mezspell} 2s
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) /varset meztimer${j} ${mezduration}
}
/next i
/return
}
/if (${SpellName.Find[Uproar]} || ${SpellName.Find[Bliss]}) {
/if (${runespell.Find[Rune]} && ${FindItem[Peridot].StackCount} < 25) {
/guildsay i have ${FindItem[Peridot].StackCount} peridots left
/if (${FindItem[Peridot].StackCount} == 0 && ${Me.Book[Uproar}) {
/guildsay i am out of peridots ill use uproar
/varset runespell "Uproar"
/if (!${Me.Gem[${runespell}]}) {
/memspell 7 ${runespell}
/delay 16s ${Me.Gem[${runespell}]}
}
}
}
/if (!${runebuffed} || ${runebuffed} && ${Me.CombatState.Equal[COOLDOWN]} || ${runebuffed} && ${Me.CombatState.Equal[COMBAT]}) {
/varset castrune 1
}
/return
}
/return
Sub Event_Buff(Line, TargetPerson, command)
/varset TargetPerson ${TargetPerson.Right[-2].Left[-2]}
/if (${command.Arg[1,].Equal[kei]} || ${command.Arg[1,].Equal[resist]}) {
/declare tempvariable string local
/declare tempvariabletwo string local
/if (${command.Arg[1,].Equal[kei]}) {
/varset command ${command.Right[-4]}
/varset tempvariable ${keispell}
/varset tempvariabletwo enchkei
/declare gemnumber int local 8
}
/if (${command.Arg[1,].Find[resist]}) {
/varset command ${command.Right[-7]}
/varset tempvariable ${resistspell}
/varset tempvariabletwo enchresist
/declare gemnumber int local 5
}
/if (${command.Arg[1,].Equal[group]}) {
/varset command ${command.Right[-6]}
/if (${Ini[toolismacro,Group${command},member1].NotEqual[empty]} && ${Me.Book[${tempvariable}]} && !${ammoving}) {
/call getids "${Ini[toolismacro,Group${command},member1]}"
/if (!${Me.Gem[${tempvariable}]} && !${Cursor.ID}) {
/memspell ${gemnumber} ${tempvariable}
/delay 18s !${Window[SpellBookWND].Open}
/keypress w
}
/if (${Spawn[id ${Macro.Return}].Distance} < 100 && ${Me.CurrentMana} > ${Spell[${tempvariable}].Mana} && ${Ini[toolismacro,Values,${tempvariabletwo}buffer].Equal[empty]} || ${Spawn[id ${Macro.Return}].Distance} < 100 && ${Ini[toolismacro,Values,${tempvariabletwo}buffertargetgroup]} != 0 && ${Ini[toolismacro,Values,${tempvariabletwo}buffertargetgroup]} != ${command}) /delay 6s ${Me.SpellReady[${tempvariable}]}
/if (${Spawn[id ${Macro.Return}].Distance} < 100 && ${Me.SpellReady[${tempvariable}]} && ${Me.CurrentMana} > ${Spell[${tempvariable}].Mana} && ${Ini[toolismacro,Values,${tempvariabletwo}buffer].Equal[empty]} || ${Spawn[id ${Macro.Return}].Distance} < 100 && ${Me.SpellReady[${tempvariable}]} && ${Me.CurrentMana} > ${Spell[${tempvariable}].Mana} && ${Ini[toolismacro,Values,${tempvariabletwo}buffertargetgroup]} != 0 && ${Ini[toolismacro,Values,${tempvariabletwo}buffertargetgroup]} != ${command}) {
/ini "toolismacro" "Values" "${tempvariabletwo}buffer" "${Me.Name}"
/ini "toolismacro" "Values" "${tempvariabletwo}buffertargetgroup" "${command}"
/guildsay ${tempvariable} inc group ${command}
/target ID ${Macro.Return}
/delay 2
/if (${Target.ID} == ${Macro.Return} && ${Target.Distance} < 100 && ${Target.Type.Equal[PC]}) {
/tell ${Spawn[id ${Macro.Return}].Name} ${tempvariable} inc...
/call cast ${tempvariable} 2s
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) /echo ${Target}'s grp has ${tempvariable}
}
/if (${Ini[toolismacro,Values,${tempvariabletwo}buffertargetgroup]} == ${command}) {
/ini "toolismacro" "Values" "${tempvariabletwo}buffer" "empty"
/ini "toolismacro" "Values" "${tempvariabletwo}buffertargetgroup" "0"
}
}
}
/return
}
/call getids "${TargetPerson}"
/if (${Spawn[id ${Macro.Return}].ID} && ${Spawn[id ${Macro.Return}].Distance} < 100) /target ID ${Macro.Return}
/delay 2
/if (${Target.ConColor.Equal[GREY]} || ${Target.ConColor.Equal[GREEN]}) {
/if (${tempvariable.Equal[${resistspell}]}) /varset tempvariable "Group Magic Resist"
/if (${tempvariable.Equal[${keispell}]}) /varset tempvariable "Clarity"
}
/if (${Me.PctMana} > 15 && !${ammoving} && ${Target.ID} == ${Macro.Return} && ${Target.Distance} < 100 && ${Target.Type.Equal[PC]}) {
/if (!${Me.Gem[${tempvariable}]} && !${Cursor.ID}) {
/memspell ${gemnumber} ${tempvariable}
/delay 18s !${Window[SpellBookWND].Open}
/keypress w
}
/tell ${Spawn[id ${Macro.Return}].Name} ${tempvariable} inc...
/delay 6s ${Me.SpellReady[${tempvariable}]}
/call cast ${tempvariable} 1s
/if (${Macro.Return.Equal["CAST_SUCCESS"]}) /echo ${Target} ${tempvariable} buffed
}
}
/return
Sub clickitem(ClickItem, ReplaceSlot)
/if (${ReplaceSlot.Find[inv]}) /declare targetslot string local 100
/if (!${ReplaceSlot.Find[inv]}) /declare targetslot int local ${ReplaceSlot}
/if (!${Defined[ClickItem]}) {
/echo target item not defined - returning
/return
}
/if (!${Defined[ReplaceSlot]}) {
/echo replace slot not defined - inv or slot # plz -returning
/return
}
/if (${Cursor.ID}) {
/guildsay trying to click item but stuff is on my cursor
/return
}
/if (${FindItem[=${ClickItem}].ID} && !${Cursor.ID}) {
/declare castingtime float local ${FindItem[=${ClickItem}].CastTime}
/declare slotnumber int local
/declare packnumber int local
/declare i int local
/declare j int local
/for i 1 to 8
/for j 1 to 10
/if (${InvSlot[Pack${i}].Item.Item[${j}].Name.Equal[${ClickItem}]}) {
/echo found item in bag
/varset packnumber ${i}
/varset slotnumber ${j}
/goto :click
}
/next j
/varset j 0
/next i
/varset i 0
/for i 1 to 8
/if (${InvSlot[${Math.Calc[22 + ${i}]}].Item.Name.Equal[${ClickItem}]}) {
/echo found item in main slot
/varset packnumber ${i}
/varset targetslot pack${packnumber}
/declare invitem int local 1
/goto :click
}
/next i
/varset i 0
:click
/if (!${Window[InventoryWindow].Open}) /keypress i
/if (!${Window[pack${packnumber}].Open} && !${Defined[invitem]}) /nomodkey /itemnotify pack${packnumber} rightmouseup
/delay 2
/if (!${Defined[invitem]}) /nomodkey /itemnotify in pack${packnumber} ${slotnumber} leftmouseup
/if (${Defined[invitem]}) {
/echo using ${ClickItem}
/nomodkey /itemnotify ${InvSlot[${Math.Calc[22 + ${packnumber}]}]} rightmouseup
/delay 2
/if (${castingtime} > 0.50) /delay ${Math.Calc[${castingtime} * 10]}
/keypress i
/deletevar invitem
/return
}
/delay 2
/if (${Cursor.Name.Equal[${ClickItem}]}) {
/echo Using ${ClickItem}
/if (${Defined[targetslot]}) /varset targetslot ${InvSlot[${targetslot}]}
/if (${targetslot} == 100) /varset targetslot pack${packnumber}
/nomodkey /itemnotify ${targetslot} leftmouseup
/delay 2
/nomodkey /itemnotify ${targetslot} rightmouseup
/if (${castingtime} > 0.50) /delay ${Math.Calc[${castingtime} * 10]}
/delay 4
/if (!${ReplaceSlot.Find[inv]}) /nomodkey /itemnotify ${InvSlot[${targetslot}]} leftmouseup
/if (${ReplaceSlot.Find[inv]}) /nomodkey /itemnotify ${InvSlot[${Math.Calc[22 + ${packnumber}]}]} leftmouseup
/delay 4
/if (${Cursor.Name.Equal[${ClickItem}]}) {
/nomodkey /itemnotify pack${packnumber} rightmouseup
/delay 2
/nomodkey /itemnotify in pack${packnumber} ${slotnumber} leftmouseup
/delay 2
/nomodkey /itemnotify pack${packnumber} rightmouseup
/delay 2
}
}
/keypress i
}
/return
Sub handledestroy(TargetItem)
/if (!${Defined[TargetItem]}) {
/echo target item not defined, returning
/return
}
/if (${FindItem[=${TargetItem}].ID} && !${Cursor.ID}) {
/declare slotnumber int local
/declare packnumber int local
/declare i int local
/declare j int local
/for i 1 to 8
/for j 1 to 10
/if (${InvSlot[Pack${i}].Item.Item[${j}].Name.Equal[${TargetItem}]}) {
/echo item is in pack
/varset packnumber ${i}
/varset slotnumber ${j}
/goto :destroy
}
/next j
/varset j 0
/next i
/varset i 0
/for i 1 to 8
/if (${InvSlot[${Math.Calc[22 + ${i}]}].Item.Name.Equal[${TargetItem}]}) {
/echo found item in main slot
/varset packnumber ${i}
/declare invitem int local 1
/goto :destroy
}
/next i
/varset i 0
:destroy
/if (!${Window[InventoryWindow].Open}) /keypress i
/if (!${Window[pack${packnumber}].Open} && !${Defined[invitem]}) /nomodkey /itemnotify pack${packnumber} rightmouseup
/delay 2
/if (!${Defined[invitem]}) /nomodkey /itemnotify in pack${packnumber} ${slotnumber} leftmouseup
/if (${Defined[invitem]}) /nomodkey /itemnotify pack${packnumber} leftmouseup
/delay 2
/if (${Cursor.Name.Equal[${TargetItem}]}) {
/echo destroying ${TargetItem}
/if (${Cursor.Name.Equal[${TargetItem}]}) {
/echo destroying ${Cursor.Name}
/destroy
/if (${Defined[invitem]}) /deletevar invitem
}
}
/if (${Window[pack${packnumber}].Open}) /nomodkey /itemnotify pack${packnumber} rightmouseup
/delay 2
/keypress i
}
/return
Sub Event_Toggle(Line, ChatSender, Targets, action)
/if (!${Bool[${action}]}) /return
/if (${Bool[${Targets}]}) {
/if (${Targets.Arg[1,].Equal[group]}) {
/if (${Targets.Arg[1,].Equal[group]}) {
/declare groupnumber int local
/call findgroup
/varset Targets ${Targets.Right[-6]}
/for groupnumber 1 to ${Ini[toolismacro,Values,totalgroups]}
/if (${Targets.Arg[${groupnumber},,]} == ${Macro.Return}) {
/goto :togglestuff
} else {
/next groupnumber
/return
}
}
}
/if (${Targets.Arg[1,].Equal[healers]}) {
/if (${Me.Class.HealerType}) /goto :togglestuff
/return
}
/if (${Targets.Arg[1,].Equal[casters]}) {
/if (${Me.Class.PureCaster}) /goto :togglestuff
/return
}
/declare name int local
/for name 1 to 12
/if (${Targets.Arg[${name},].Equal[${Me.Name}]}) /goto :togglestuff
/next name
/return
}
:togglestuff
/if (${action.Find[abort]}) {
/keypress forward
/varset didinvis 0
/guildsay !ABORTING!
/return abort
}
/if (${action.Arg[1,].Equal[leash]}) {
/varset action ${action.Right[-6]}
/if (${Bool[${Ini[movement,leash,${action}]}]}) {
/if (!${Defined[leashloc]}) /declare leashloc string outer
/declare i int local
/for i 1 to 10
/if (${Ini[movement,leash,zoneshortnames].Arg[${i},,].Equal[${Zone.ShortName}]}) {
/varset leashloc ${Ini[movement,leash,${action}]}
}
/next i
}
/return
}
/if (${action.Arg[1,].Equal[zoneout]}) {
/varset action ${action.Right[-8]}
/if (${Bool[${Ini[movement,zoneout,${action}]}]}) {
/if (!${Defined[zoneoutloc]}) /declare zoneoutloc string outer
/declare i int local
/for i 1 to 10
/if (${Ini[movement,zoneout,zoneshortnames].Arg[${i},,].Equal[${Zone.ShortName}]}) {
/if (!${Defined[zoneoutcommand]}) /declare zoneoutcommand string outer empty
/if (${Bool[${Ini[movement,zoneout,${action}command]}]}) /varset zoneoutcommand ${Ini[movement,zoneout,${action}command]}
/varset zoneoutloc ${Ini[movement,zoneout,${action}]}
/call gotoloc "${zoneoutloc}" "${zoneoutcommand}"
/return
}
/next i
}
/return
}
/if (${action.Arg[1,].Equal[leashoff]}) {
/if (${Defined[leashloc]}) /deletevar leashloc
/return
}
/if (${action.Arg[1,].Equal[tank]}) {
/if (${action.Arg[1,].Equal[tank]}) /varset action ${action.Right[-5]}
/varset mainassist ${action}
/return
}
/if (${action.Find[/mac]}) {
/varset action ${action.Right[-5]}
/if (${action.Arg[1,].Equal[start]}) {
/varset action ${action.Right[-6]}
/if (${Me.Class.Name.Equal[Beastlord]}) /docommand /mac beast ${action}
/if (${Me.Class.Name.Equal[Shadowknight]}) /docommand /mac sk ${action}
/if (${Me.Class.Name.Equal[Magician]}) /docommand /mac mage ${action}
/if (${Me.Class.Name.Equal[Necromancer]}) /docommand /mac necro ${action}
/if (${Me.Class.Name.Equal[Wizard]}) /docommand /mac wiz ${action}
/if (${Me.Class.Name.Equal[Enchanter]}) /docommand /mac ench ${action}
/if (${Me.Class.Name.Equal[Bard]}) /docommand /mac bard ${action}
/if (${Me.Class.Name.Equal[Cleric]}) /docommand /mac cleric ${action}
/if (${Me.Class.Name.Equal[Shaman]}) /docommand /mac shaman ${action}
/if (${Me.Class.Name.Equal[Monk]}) /docommand /mac monk ${action}
/if (${Me.Class.Name.Equal[Rogue]}) /docommand /mac rogue ${action}
/if (${Me.Class.Name.Equal[Paladin]}) /docommand /mac paladin ${action}
/if (${Me.Class.Name.Equal[Ranger]}) /docommand /mac ranger ${action}
/if (${Me.Class.Name.Equal[Berserker]}) /docommand /mac berserker ${action}
/if (${Me.Class.Name.Equal[Druid]}) /docommand /mac druid ${action}
}
/declare i int local
/for i 1 to 15
/if (${Ini[toolismacro,Values,macros].Arg[${i},,].Equal[${action.Arg[1,]}]}) {
/docommand /mac ${action}
}
/next i
/varset i 0
/for i 1 to 10
/if (${Ini[toolismacro,Values,othermacros].Arg[${i},,].Equal[${action.Arg[1,]}]}) {
/docommand /mac ${action}
}
/next i
/echo Macro not found
/return
}
/if (${action.Find[nuke]}) {
/if (${action.Find[dont]} || ${action.Find[off]}) {
/varset donukes 0
/echo turning nukes OFF
/return
}
/varset donukes 1
/echo turning nukes ON
/return
}
/if (${action.Find[rune]}) {
/declare i int local
/declare j int local
/if (${action.Find[dont]} || ${action.Find[off]}) {
/varset dorune 0
/varset donukes 1
/echo turning rune OFF
/echo turning nukes ON
/return
}
/if (${action.Find[zebuxoruk]} || ${action.Find[zeb]} || ${action.Find[z]}) {
/echo using Rune of Zebuxoruk
/varset runespell "Rune of Zebuxoruk"
}
/if (${action.Find[v]}) {
/echo using rune 5
/varset runespell "Rune V"
}
/if (${action.Find[uproar]}) {
/echo using uproar rune
/varset runespell "Uproar"
}
/if (${runespell.Find[Rune]}) {
/guildsay i have ${FindItem[Peridot].StackCount} peridots left
/if (${FindItem[Peridot].StackCount} == 0) {
/if (${Me.Book[Uproar]}) {
/varset runespell "Uproar"
/guildsay changing rune to uproar instead
} else {
/guildsay im out of peridots and i dont have uproar
/return
}
}
/if (!${Me.Gem[${runespell}]}) {
/memspell 7 ${runespell}
/delay 16s ${Me.Gem[${runespell}]}
}
/varset dorune 1
/varset castrune 1
/varset donukes 0
| /varset dostun 0
| /varset dostuntwo 0
/echo turning nukes OFF
/echo now doing rune
/return
}
/return
}
/if (${action.Find[accept rez]}) {
/if (${Window[ConfirmationDialogBox].Open} || !${InvSlot[13].Item.ID}) {
/docommand /mac rez ${mainassist}
}
/return
}
/if (${action.Find[consent]}) {
/varset action ${action.Right[-8]}
/consent ${action}
/return
}
/if (${action.Find[mod rod]}) {
/if (${Cursor.ID}) {
/guildsay ITEM ON CURSOR - MOD RODS COMING
/return
}
/if (${Me.FreeInventory} < 1 && !${FindItem[=Rod of Mystical Transvergence].ID}) {
/guildsay NO ROOM IN BAGS - MOD RODS COMING
/return
}
/if (${FindItem[=Rod of Mystical Transvergence].ID} && ${FindItem[=Rod of Mystical Transvergence].Charges} < 3) /call handledestroy "Rod of Mystical Transvergence"
/return
}
/if (${action.Find[rebuff]}) {
/declare i int local
/for i 0 to 5
/declare hastebuffed${i} 0
/declare pethasted${i} 0
/next i
/return
}
/if (${action.Find[pet]}) {
/if (${action.Find[pet haste]}) {
/if (${action.Find[dont pet haste]} || ${action.Find[no pet haste]} || ${action.Find[pet haste off]}) {
/nomodkey /notify PIW_BuffWindow PetBuff${Math.Calc[(${Me.PetBuff[${petbuffspell}]}+ 1)- 2].Int} leftmouseup
/varset pethasteoff 1
/varset pethastetimer 0
/echo NOT hasting pet
/return
}
/varset pethasteoff 0
/echo Hasting pet as normal
/return
}
/if (${action.Find[kill pet]}) {
/pet leave
/varset dopet 0
/return
}
/if (${action.Find[do pet]}) {
/varset dopet 1
/return
}
/return
}
/if (${action.Find[anon]}) {
/docommand /a
/return
}
/if (${action.Find[camp]}) {
/if (${Me.Trader}) /return
/if (${action.Find[desktop]}) {
/camp desktop
:action
/doevents toggle
/if (${Macro.Return.Equal[cancel]}) /return
/delay 2
/goto :action
/return
}
/camp
:action
/doevents toggle
/if (${Macro.Return.Equal[cancel]}) /return
/delay 2
/goto :action
/return
}
/if (${action.Find[cancel]}) {
/return cancel
}
/if (${action.Find[assistat]}) {
/echo setting assistat to ${action.Arg[2,]}
/varset assistat ${action.Arg[2,]}
/if (${Defined[nukeat]}) /varset nukeat ${action.Arg[2,]}
/return
}
/if (${action.Find[/ex]}) {
/if (${Me.Trader}) /return
/docommand /exit
}
/if (${action.Find[throne]}) {
/aa act Throne of Heroes
/return
}
/if (${action.Find[infusion]}) {
/aa act Infusion of the Faithful
/return
}
/if (${action.Find[lesson]}) {
/aa act Lesson of the Devoted
/return
}
/if (${action.Find[intensity]}) {
/aa act Intensity of the Resolute
/return
}
/if (${action.Find[expedient]} || ${action.Find[expediant]}) {
/aa act Expedient Recovery
/return
}
/if (${action.Find[pagedown]}) {
/keypress Page_Down hold
/delay 1s
/keypress Page_Down
/return
}
/return

