eqemu macros that plugin to your macro!

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

Moderator: MacroQuest Developers

User avatar
toolisaccount
a lesser mummy
a lesser mummy
Posts: 39
Joined: Tue Aug 18, 2015 1:23 am

eqemu macros that plugin to your macro!

Post by toolisaccount » Tue Aug 18, 2015 7:58 am

reserved
THESE MACROS ARE NOT SAFE FOR LIVE EVER

rez.mac is fixed more better safer no destroy! 09/07/2015 1:45am est

these are for macros that plugin to ur macros...
if ur using my macros or have my stuff in ur macros

these macros require usually the .mac AND the .ini file
there is no .ini for rez yet, don't think that will ever be necessary

these macros require toolismacro.ini as well usually----that is in this post
plz note where it says othermacros=fish,forage,rez,pl
that is where you would add in other macros

some good macro ideas are like a ranger tracker/hunter macro but that is not allowed
on most servers or whatever and if ur running ur own server u can just remember
the spawn times of mobs there is no-one to contest ur spawn dominating

you could add in tradeskills and do ur tradeskills on like a bunch of chars
that would really get those celestial cleansers and ethereal rings/sheets/swatches/threads done

these are not finished and they barely work
these macros are glitched favorably if you make a hotkey and spam the hotkey they kinda do it a couple times
you could like alt tab and go to allakhazaam and write down every mob and item
its for servers where things aren't 100% automatic and stuff so u gotta put
some effort in and jam ur hotkey

you gotta actually play the game sometimes too guys

forage is not finished, I just found out about natures bounty
wood elves and iksars get forage at level 1 u can make 60 and spam forage for
the robe of abrogations or something or whatever you want rlly powater fishing
if u have natures bounty and try to forage im not sure what could happen
its been like 1yr since even read these macros or used them

these macros will be updated eventually

you would make sure ur characters are running my macros, then you would type
/gui toggle /mac fish
or something and they would all do that
and then when ur done
/gui toggle /mac start mainassistname
and they will all reset

you would enter in dropitems in the dropitem sections in .mac
you would enter in the good stuff in fishingitem or forageitem in .mac


automation is not allowed some places whatever and it kinda makes sense
if u wanted to be all automated you could like make reporter char
/if (${Ini[fish,Values,fishingreporter].Equal[${Me.Name}]} && ${Ini[fish,Values,fishingitem1]} >= 100) {
/gui toggle /mac start mainassistname
/gui force goto templeofveeshan
or
/gui toggle gate
}
your ability and options are endless!!!!!!!!!
not even your dreams can limit you now!!!!!!!!
plz don't get ur chars banned or whatever
THESE MACROS ARE NOT SAFE FOR LIVE

im way to tired to write instructions for these right now

toolismacro.ini 09/07/2015? 1:45am est

Code: Select all

[Values]
totalgroups=4
totalrotationnumber=0
othermacros=fish,forage,rez,pl
macros=bard,cleric,necro,monk,shaman,mage,sk,ench,beast,paladin,wiz,warrior,rogue,ranger,druid,berserker

shamanhpbuffer=empty
shamanhpbuffertargetgroup=0
shamansowbuffer=empty
shamansowbuffertargetgroup=0
clerichpbuffer=empty
clerichpbuffertargetgroup=0
clerichastebuffer=empty
clerichastebuffertargetgroup=0
druidhpbuffer=empty
druidhpbuffertargetgroup=0
druiddmfbuffer=empty
druiddmfbuffertargetgroup=0
rangerattackonebuffer=empty
rangerattackonebuffertargetgroup=0
rangerattacktwobuffer=empty
rangerattacktwobuffertargetgroup=0
priestregenbuffer=empty
priestregenbuffertargetgroup=0
wizrunebuffer=empty
wizrunebuffertargetgroup=0
necrodmfbuffer=empty
necrodmfbuffertargetgroup=0
magedsbuffer=empty
magedsbuffertargetgroup=0
enchkeibuffer=empty
enchkeibuffertargetgroup=0
enchresistbuffer=empty
enchresistbuffertargetgroup=0
shamanresistbuffer=empty
shamanresistbuffertargetgroup=0
bstcrackbuffer=empty
bstcrackbuffertargetgroup=0
bsthpbuffer=empty
bsthpbuffertargetgroup=0
palhpbuffer=empty
palhpbuffertargetgroup=0

bstparagon=empty
druidparagon=empty
modrods=empty
clericward=empty
druidward=empty
group1cure=empty
group2cure=empty
group3cure=empty
group4cure=empty
group1regen=empty
group2regen=empty
group3regen=empty
group4regen=empty


[Movement]
group1ready=empty
group2ready=empty
group3ready=empty
group4ready=empty

[Group1]
member1=Tooli
member2=Toolis
member3=Chloroform
member4=Lateralus
member5=Opiate
member6=Evildeedlit

[Group2]
member1=Leviath
member2=Undertow
member3=Lolth
member4=Zhzh
member5=Atoms
member6=Parabola

[Group3]
member1=Finhmi
member2=Schism
member3=Abyssal
member4=Nocturnity
member5=Deedlit
member6=Ticksandleeches

[Group4]
member1=Sengir
member2=Intolerance
member3=Chronal
member4=Severely
member5=Astraldeva
member6=Parabol
Last edited by toolisaccount on Mon Sep 07, 2015 1:46 am, edited 17 times in total.
--------------------------------------------------------------------------------------------------------------------------------
Image
--------------------------------------------------------------------------------------------------------------------------------

User avatar
toolisaccount
a lesser mummy
a lesser mummy
Posts: 39
Joined: Tue Aug 18, 2015 1:23 am

Re: eqemu macros that plugin to your macro!

Post by toolisaccount » Tue Aug 18, 2015 8:00 am

fish.mac ---- also requires fish.ini (next post)
ok here this stuff is its not finished yet no way no how but it gets the job done

here are the ideas on how to do this and you can use these an example
these are not perfected and im in no hurry to finish these or perfect them!

plz note fishing components sometimes are edible
cobalt cod and snappers are edible
you never want to eat the snappers
you never want to eat the cod
you never want to eat the fish
you never want to eat any of the fish ----ok
try not to eat all the fish components, eat rations or iron rations instead

ok
/gui fish
makes ur characters all fish

/gui inv
inventories items maybey caught on cursor?

/gui report
reports total amount of the good sht u got
youd enter in good stuff at /declare fishingitem[1], /declare fishingitem[2]
first 2 are done this supports 10, gotta enter them in tho

/gui refresh
refreshes the amount of good sht u got or something

Code: Select all

#turbo 40

#chat tell
#chat group
#chat guild

#Event Fish "#1#guild, 'fish'"
#Event Inv "#1#guild, 'inv'"
#Event Report "#1#guild, 'report'"
#Event Refresh "#1#guild, 'refresh'"
#Event DryLand "You must be on dry land#*#"
#Event PoleBroke "Your fishing pole broke!"
#Event TryingTo "Trying to catch#*#"
#Event StillNeed "You need to put your fishing#*#"
#Event StillNeed "You can't fish without a#*#"
#Event FishingBait "You can't fish without fishing bait#*#"
#Event Toggle "#1#guild, '#2#toggle#3#'"

Sub Main

/declare caughtitem int outer 0

/declare fishingitem[10] string outer
/varset fishingitem[1] Cobalt Cod
/varset fishingitem[2] Dragon Bay Snapper

/declare dropitem[10] string outer
/varset dropitem[1] Fresh Fish
/varset dropitem[2] Rusty Dagger
/varset dropitem[3] Tattered Cloth Sandal
/varset dropitem[4] Fish Scales

/if (${Ini[fish,Values,fishingreporter].Equal[${Me.Name}]}) {
    /ini "fish" "Values" "fishingitem1" "0"
    /ini "fish" "Values" "fishingitem2" "0"
    /ini "fish" "Values" "fishingitem3" "0"
    /ini "fish" "Values" "fishingitem4" "0"
    /ini "fish" "Values" "fishingitem5" "0"
    /ini "fish" "Values" "fishingitem6" "0"
    /ini "fish" "Values" "fishingitem7" "0"
    /ini "fish" "Values" "fishingitem8" "0"
    /ini "fish" "Values" "fishingitem9" "0"
    /ini "fish" "Values" "fishingitem10" "0"
}

/if (${FindItem[=${fishingitem[1]}].StackCount}) {
    /ini "fish" "Values" "fishingitem1" "${Math.Calc[${Ini[fish,Values,fishingitem1]} + ${FindItem[=${fishingitem[1]}].StackCount}]}"
}
/if (${FindItem[=${fishingitem[2]}].StackCount}) {
    /ini "fish" "Values" "fishingitem2" "${Math.Calc[${Ini[fish,Values,fishingitem2]} + ${FindItem[=${fishingitem[2]}].StackCount}]}"
}
/echo fishing macro starting

:loop
/call checkcursor
/if (!${FindItem[=Fishing Pole].InvSlot[13]}) /call replacepole
/doevents
/call updateini
/delay 5
/goto :loop

Sub checkcursor

/declare i int local
/declare j int local

/if (${Cursor.ID}) {
    /for i 1 to 10
    /if (${Cursor.Name.Equal[${fishingitem[${i}]}]}) {
        /guildsay >>>> i caught a ${fishingitem[${i}]} <<<<
        /delay 4
        /autoinventory
        /varset caughtitem ${i}
        /delay 2
    }
    /if (${Cursor.Name.Equal[${dropitem[${i}]}]}) {
        /guildsay garbage
        /if (${Cursor.Name.Equal[${dropitem[${i}]}]}) /drop
    }
    /next i
    /if (${Cursor.ID} && ${Cursor.Name.NotEqual[Fishing Pole]} && ${Cursor.Name.NotEqual[Catch-A-Lot Bait]} && ${Cursor.Name.NotEqual[Fishing Bait]}) /guildsay unidentified item on cursor
}
/return

Sub updateini

/if (${caughtitem}) {
    /ini "fish" "Values" "fishingitem${caughtitem}" "${Math.Calc[${Ini[fish,Values,fishingitem${caughtitem}]} + 1]}"
    /varset caughtitem 0
}
/return

Sub replacepole

/declare slotnumber string local
/declare packnumber string local
/declare i int local
/declare j int local
/if (${Cursor.ID}) /call checkcursor
/if (${FindItem[=Fishing Pole].ID} && !${Me.Casting.ID}) {
    /for i 1 to 8
    /for j 1 to 10
    /if (${InvSlot[Pack${i}].Item.Item[${j}].Name.Equal[Fishing Pole]}) {
        /varset slotnumber ${i}
        /varset packnumber ${j}
        /goto :Equip
    }
    /next j
    /varset j 0
    /next i
    /varset i 0
    :Equip
    /if (${Cursor.ID}) {
        /guildsay tried to equip fishing pole but something on cursor
        /return
    }
    /if (!${Window[InventoryWindow].Open}) /keypress i
    /if (!${Window[Pack${i}].Open}) /nomodkey /itemnotify pack${slotnumber} rightmouseup
    /delay 2
    /nomodkey /itemnotify in Pack${slotnumber} ${packnumber} leftmouseup
    /delay 2
    /nomodkey /itemnotify mainhand leftmouseup
    /delay 2
    /nomodkey /itemnotify pack${slotnumber} rightmouseup
    /guildsay replaced fishing pole
    /if (${Cursor.ID}) {
        /guildsay ERROR
        /end
    }
}
/return

Sub Event_Fish(ChatText)

/delay 15s (${Me.AbilityReady[Fishing]})
/if (${Cursor.ID}) /call checkcursor
/doevents
/if (!${FindItem[=Fishing Pole].InvSlot[13]}) /call replacepole
/if (!${Me.AbilityReady[Fishing]} && !${Cursor.ID}) /delay 2s ${Me.AbilityReady[Fishing]}
/doability "Fishing"
/delay 2
/call checkcursor
/return

Sub Event_Inv(ChatText)

/autoinventory
/return

Sub Event_Report(ChatText)

/declare i int local
/if (${Ini[fish,Values,fishingreporter].Equal[${Me.Name}]}) {
    /for i 1 to 10
    /if (${Bool[${Ini[fish,Values,fishingitem${i}]}]}) {
        /guildsay ${fishingitem[${i}]} ${Ini[fish,Values,fishingitem${i}]}
    }
    /next i
}
/return

Sub Event_Refresh(ChatText)
/if (${Ini[fish,Values,fishingreporter].Equal[${Me.Name}]}) {
    /ini "fish" "Values" "fishingitem1" "0"
    /ini "fish" "Values" "fishingitem2" "0"
    /ini "fish" "Values" "fishingitem3" "0"
    /ini "fish" "Values" "fishingitem4" "0"
    /ini "fish" "Values" "fishingitem5" "0"
    /ini "fish" "Values" "fishingitem6" "0"
    /ini "fish" "Values" "fishingitem7" "0"
    /ini "fish" "Values" "fishingitem8" "0"
    /ini "fish" "Values" "fishingitem9" "0"
    /ini "fish" "Values" "fishingitem10" "0"
/delay 2
}
/delay 2s
/if (${FindItem[=${fishingitem[1]}].StackCount}) {
    /ini "fish" "Values" "fishingitem1" "${Math.Calc[${Ini[fish,Values,fishingitem1]} + ${FindItem[=${fishingitem[1]}].StackCount}]}"
}
/if (${FindItem[=${fishingitem[2]}].StackCount}) {
    /ini "fish" "Values" "fishingitem2" "${Math.Calc[${Ini[fish,Values,fishingitem2]} + ${FindItem[=${fishingitem[2]}].StackCount}]}"
}
/return

Sub Event_StillNeed

/call replacepole
/if (!${FindItem[=Fishing Pole].InvSlot[13]}) {
    /guildsay still need a fishing pole <<--
}
/return

Sub Event_FishingBait

/guildsay im out of fishing bait <<--
/return

Sub Event_DryLand

/guildsay im in the water <<--
/return

Sub Event_TryingTo

/guildsay not angled properly or near water <<--
/return

Sub Event_PoleBroke

/guildsay my fishing pole broke <<--
/call replacepole
/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.Equal[abort]}) {
    /keypress forward
    /varset didinvis 0
    /guildsay !ABORTING!
    /return abort
}
/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.Find[Shadow]}) /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[/ex]}) {
    /if (${Me.Trader}) /return
    /docommand /ex
}
/if (${Me.Class.Name.Equal[Bard]}) {
    /twist off
    /varset dotwist 1
}
/if (${action.Find[throne]}) {
    /aa act Throne of Heroes
    /return
}

/if (${action.Find[pagedown]}) {
    /keypress Page_Down hold 
    /delay 1s
    /keypress Page_Down
    /return
}
/return
Last edited by toolisaccount on Tue Aug 18, 2015 8:34 am, edited 6 times in total.
--------------------------------------------------------------------------------------------------------------------------------
Image
--------------------------------------------------------------------------------------------------------------------------------

User avatar
toolisaccount
a lesser mummy
a lesser mummy
Posts: 39
Joined: Tue Aug 18, 2015 1:23 am

Re: eqemu macros that plugin to your macro!

Post by toolisaccount » Tue Aug 18, 2015 8:01 am

fish.ini

Code: Select all

[Values]
fishingreporter=Tooli
fishingitem1=0
fishingitem2=0
fishingitem3=0
fishingitem4=0
fishingitem5=0
fishingitem6=0
fishingitem7=0
fishingitem8=0
fishingitem9=0
fishingitem10=0
--------------------------------------------------------------------------------------------------------------------------------
Image
--------------------------------------------------------------------------------------------------------------------------------

User avatar
toolisaccount
a lesser mummy
a lesser mummy
Posts: 39
Joined: Tue Aug 18, 2015 1:23 am

Re: eqemu macros that plugin to your macro!

Post by toolisaccount » Tue Aug 18, 2015 8:02 am

forage.mac ---- also requires forage.ini (next post)

plz note forage components sometimes are edible
robe of abrogation forage component is edible
try not to eat all the forage components


/gui forage
gets all ur foragers going

/gui inv
inventories items maybey caught on cursor?

/gui report
reports the good sht u got, gotta add items just like with fish.mac

/gui refresh
refreshes the amounts of good sht u got

Code: Select all

#turbo 40

#chat tell
#chat group
#chat guild

#Event Forage "#1#guild, 'forage'"
#Event Inv "#1#guild, 'inv'"
#Event Report "#1#guild, 'report'"
#Event Refresh "#1#guild, 'refresh'"
#Event Toggle "#1#guild, '#2#toggle#3#'"

Sub Main

/declare caughtitem int outer 0

/declare forageitem[10] string outer
/varset forageitem[1] Glow Lichen
/varset forageitem[2] Ashweed
/varset forageitem[3] Cursed Clover of Viesar

/declare dropitem[10] string outer
/varset dropitem[1] Rabbit Meat
/varset dropitem[2] Berries
/varset dropitem[3] Vegetables
/varset dropitem[4] Fishing Grubs
/varset dropitem[5] Mushroom
/varset dropitem[6] Fruit
/varset dropitem[7] Roots

/if (${Ini[forage,Values,foragereporter].Equal[${Me.Name}]}) {
    /ini "forage" "Values" "forageitem1" "0"
    /ini "forage" "Values" "forageitem2" "0"
    /ini "forage" "Values" "forageitem3" "0"
    /ini "forage" "Values" "forageitem4" "0"
    /ini "forage" "Values" "forageitem5" "0"
    /ini "forage" "Values" "forageitem6" "0"
    /ini "forage" "Values" "forageitem7" "0"
    /ini "forage" "Values" "forageitem8" "0"
    /ini "forage" "Values" "forageitem9" "0"
    /ini "forage" "Values" "forageitem10" "0"
}

/if (${FindItem[=${forageitem[1]}].StackCount}) {
    /ini "forage" "Values" "forageitem1" "${Math.Calc[${Ini[forage,Values,forageitem1]} + ${FindItem[=${forageitem[1]}].StackCount}]}"
}
/if (${FindItem[=${forageitem[2]}].StackCount}) {
    /ini "forage" "Values" "forageitem2" "${Math.Calc[${Ini[forage,Values,forageitem2]} + ${FindItem[=${forageitem[2]}].StackCount}]}"
}
/echo forage macro starting

:loop
/call checkcursor
/doevents
/call updateini
/delay 5
/goto :loop

Sub checkcursor

/declare i int local
/declare j int local

/if (${Cursor.ID}) {
    /for i 1 to 10
    /if (${Cursor.Name.Equal[${forageitem[${i}]}]}) {
        /guildsay >>>> i found a ${forageitem[${i}]} <<<<
        /delay 4
        /autoinventory
        /varset caughtitem ${i}
        /delay 2
    }
    /if (${Cursor.Name.Equal[${dropitem[${i}]}]}) {
        /guildsay garbage
        /if (${Cursor.Name.Equal[${dropitem[${i}]}]}) /drop
    }
    /next i
    /if (${Cursor.ID} && ${Cursor.Name.NotEqual[Fishing Pole]} && ${Cursor.Name.NotEqual[Catch-A-Lot Bait]} && ${Cursor.Name.NotEqual[Fishing Bait]}) /guildsay unidentified item on cursor
}
/return

Sub updateini

/if (${caughtitem}) {
    /ini "forage" "Values" "forageitem${caughtitem}" "${Math.Calc[${Ini[forage,Values,forageitem${caughtitem}]} + 1]}"
    /varset caughtitem 0
}
/return

Sub replacepole

/declare slotnumber string local
/declare packnumber string local
/declare i int local
/declare j int local
/if (${Cursor.ID}) /call checkcursor
/if (${FindItem[=Fishing Pole].ID} && !${Me.Casting.ID}) {
    /for i 1 to 8
    /for j 1 to 10
    /if (${InvSlot[Pack${i}].Item.Item[${j}].Name.Equal[Fishing Pole]}) {
        /varset slotnumber ${i}
        /varset packnumber ${j}
        /goto :Equip
    }
    /next j
    /varset j 0
    /next i
    /varset i 0
    :Equip
    /if (${Cursor.ID}) {
        /guildsay tried to equip fishing pole but something on cursor
        /return
    }
    /if (!${Window[InventoryWindow].Open}) /keypress i
    /if (!${Window[Pack${i}].Open}) /nomodkey /itemnotify pack${slotnumber} rightmouseup
    /delay 2
    /nomodkey /itemnotify in Pack${slotnumber} ${packnumber} leftmouseup
    /delay 2
    /nomodkey /itemnotify mainhand leftmouseup
    /delay 2
    /nomodkey /itemnotify pack${slotnumber} rightmouseup
    /guildsay replaced fishing pole
    /if (${Cursor.ID}) {
        /guildsay ERROR
        /end
    }
}
/return

Sub Event_Forage(ChatText)

/delay 15s (${Me.AbilityReady[Forage]})
/if (${Cursor.ID}) /call checkcursor
/doevents
/if (!${Me.AbilityReady[Forage]} && !${Cursor.ID}) /delay 2s ${Me.AbilityReady[Forage]}
/doability "Forage"
/delay 2
/call checkcursor
/return

Sub Event_Inv(ChatText)

/autoinventory
/return

Sub Event_Report(ChatText)

/declare i int local
/if (${Ini[forage,Values,foragereporter].Equal[${Me.Name}]}) {
    /for i 1 to 10
    /if (${Bool[${Ini[forage,Values,forageitem${i}]}]}) {
        /guildsay ${forageitem[${i}]} ${Ini[forage,Values,forageitem${i}]}
    }
    /next i
}
/return

Sub Event_Refresh(ChatText)

/if (${Ini[forage,Values,foragereporter].Equal[${Me.Name}]}) {
    /ini "forage" "Values" "forageitem1" "0"
    /ini "forage" "Values" "forageitem2" "0"
    /ini "forage" "Values" "forageitem3" "0"
    /ini "forage" "Values" "forageitem4" "0"
    /ini "forage" "Values" "forageitem5" "0"
    /ini "forage" "Values" "forageitem6" "0"
    /ini "forage" "Values" "forageitem7" "0"
    /ini "forage" "Values" "forageitem8" "0"
    /ini "forage" "Values" "forageitem9" "0"
    /ini "forage" "Values" "forageitem10" "0"
/delay 2
}
/delay 2s
/if (${FindItem[=${forageitem[1]}].StackCount}) {
    /ini "forage" "Values" "forageitem1" "${Math.Calc[${Ini[forage,Values,forageitem1]} + ${FindItem[=${forageitem[1]}].StackCount}]}"
}
/if (${FindItem[=${forageitem[2]}].StackCount}) {
    /ini "forage" "Values" "forageitem2" "${Math.Calc[${Ini[forage,Values,forageitem2]} + ${FindItem[=${forageitem[2]}].StackCount}]}"
}
/return

Sub Event_StillNeed

/call replacepole
/if (!${FindItem[=Fishing Pole].InvSlot[13]}) {
    /guildsay still need a fishing pole <<--
}
/return

Sub Event_FishingBait

/guildsay im out of fishing bait <<--
/return

Sub Event_DryLand

/guildsay im in the water <<--
/return

Sub Event_TryingTo

/guildsay not angled properly or near water <<--
/return

Sub Event_PoleBroke

/guildsay my fishing pole broke <<--
/call replacepole
/return

Sub Event_PageDown(SenderPerson)

/keypress hold Page_Down
/delay 5
/keypress Page_Down
/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.Equal[abort]}) {
    /keypress forward
    /varset didinvis 0
    /guildsay !ABORTING!
    /return abort
}
/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.Find[Shadow]}) /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[/ex]}) {
    /if (${Me.Trader}) /return
    /docommand /ex
}
/if (${Me.Class.Name.Equal[Bard]}) {
    /twist off
    /varset dotwist 1
}
/if (${action.Find[throne]}) {
    /aa act Throne of Heroes
    /return
}

/if (${action.Find[pagedown]}) {
    /keypress Page_Down hold 
    /delay 1s
    /keypress Page_Down
    /return
}
/return
Last edited by toolisaccount on Tue Aug 18, 2015 8:30 am, edited 2 times in total.
--------------------------------------------------------------------------------------------------------------------------------
Image
--------------------------------------------------------------------------------------------------------------------------------

User avatar
toolisaccount
a lesser mummy
a lesser mummy
Posts: 39
Joined: Tue Aug 18, 2015 1:23 am

Re: eqemu macros that plugin to your macro!

Post by toolisaccount » Tue Aug 18, 2015 8:02 am

forage.ini

Code: Select all

[Values]
foragereporter=Tooli
forageitem1=0
forageitem2=0
forageitem3=0
forageitem4=0
forageitem5=0
forageitem6=0
forageitem7=0
forageitem8=0
forageitem9=0
forageitem10=0
--------------------------------------------------------------------------------------------------------------------------------
Image
--------------------------------------------------------------------------------------------------------------------------------

User avatar
toolisaccount
a lesser mummy
a lesser mummy
Posts: 39
Joined: Tue Aug 18, 2015 1:23 am

Re: eqemu macros that plugin to your macro!

Post by toolisaccount » Tue Aug 18, 2015 8:04 am

rez.mac
this is for ur chars to detect they are dead and initiate rez macro
they will click rez BE CAREFUL THEY WILL CLICK DESTROY IF IT POPS UP
think this is fixed now this should be SUPER SAFE

THIS MACRO LOOTS UR CORPSE SUPER FAST IT IS NOT SAFE FOR LIVE
psssssst add potion belt usage, loot bags first, click heal potion if ${Me.CombatState.Equal[COMBAT]}

ill do that eventually

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 Toggle "#1#guild, '#2#toggle#3#'"
#Event Movement "#1#guild, '#2#goto#3#'"

#include spell_routines.inc

Sub Main

/declare randomvariable string outer "thisisaglitch"
/declare mainassist     string outer ${Param0}
/declare makecamploc    string outer ${Me.Y},${Me.X}
/declare amrezzed       int    outer 0
/declare amnaked        int    outer 4
/declare ammoving       int    outer 0

/if (${Me.Class.Name.Equal[Bard]}) /squelch /twist off
/if (${Me.Class.Name.Equal[Bard]}) /declare dotwist        int    outer 0
/if (${Me.Class.Name.Equal[Bard]}) /declare didinvis       int    outer 0

/if (!${Defined[Param0]}) {
    /echo no paramater of main assist set, defaulting to myself
    /varset mainassist  string outer ${Me.Name}
}
/if (${Defined[Param1]}) {
    /if (${Param1} == 100) /varset amnaked 100
    /if (${Param1} != 100 && ${Param1.NotEqual[NULL]}) {
        /echo second paramater given! it is ${Param1}
        /declare savedparamater int outer ${Param1}
    }
}
/if (${Defined[Param2]}) {
    /if (${Param2} == 100) /varset amnaked 100
    /if (${Param2} != 100 && ${Param1.NotEqual[NULL]}) {
        /echo third paramater given! it is ${Param2}
        /if (${Defined[savedparamater]}) /declare savedparamatertwo int outer ${Param2}
        /if (!${Defined[savedparamater]}) /declare savedparamater int outer ${Param2}
    }
}
/if (${Defined[Param3]}) {
    /if (${Param2} != 100 && ${Param1.NotEqual[NULL]}) {
        /echo fourth paramater given! it is ${Param3}
        /if (${Defined[savedparamatertwo]}) /declare savedparamaterthree int outer ${Param3}
        /if (!${Defined[savedparamatertwo]}) /declare savedparamatertwo int outer ${Param3}
    }
}

/echo **** -|_ Rez Macro Initiated _|- ****
:rezloop
/call waitrez
/call checkstuff
/if (${NearestSpawn[corpse radius 100 "${Me.Name}"].ID} && ${amrezzed}) /call lootcorpse
/delay 2
/doevents
/goto :rezloop

Sub waitrez

/if (${Window[ConfirmationDialogBox].Open} && !${Me.Casting.ID} && !${Cursor.ID}) {
    /if (${Window[ConfirmationDialogBox].FirstChild.Next.Next.Next.Next.Text.Find[destroy]}) {
        /nomodkey /notify ConfirmationDialogBox CD_No_Button leftmouseup
        /return
    }
    /if (${Window[ConfirmationDialogBox].FirstChild.Next.Next.Next.Next.Text.Find[upon you.]}) {
        /if (${Window[ConfirmationDialogBox].FirstChild.Next.Next.Next.Next.Text.Find[destroy]}) {
            /nomodkey /notify ConfirmationDialogBox CD_No_Button leftmouseup
            /return
        }
        /if (!${Cursor.ID}) /nomodkey /notify ConfirmationDialogBox CD_Yes_Button leftmouseup
        /delay 1s
        /if (!${Window[ConfirmationDialogBox].Open}) /varset amrezzed 1
    }
}
/return

Sub checkstuff

/if (${Me.State.Equal[BIND]} && !${InvSlot[13].Item.ID} && !${Bool[${diedagain}]} && !${NearestSpawn[corpse radius 100 "${Me.Name}"].ID} && ${amrezzed}) {
    /varset amrezzed 0
    /declare diedagain int outer 1
    /guildsay i died again
    /echo i have died -- returning
    /return
}
/if (${Cursor.Name.Equal[Rod of Mystical Transvergence]}) {
    /autoinv
    /call handledestroy "Rod of Mystical Transvergence"
}
/if (${Bool[${corpsedone}]} && ${InvSlot[13].Item.ID} && ${Bool[${abandoncorpse}]}) {
    /if (${Me.Level} < 64) /docommand /mac pl ${mainassist} ${savedparamater}
    /if (${Me.Class.Name.Equal[Beastlord]}) /docommand /mac beast ${mainassist} ${savedparamater} ${savedparamatertwo}
    /if (${Me.Class.Name.Equal[Shadowknight]}) /docommand /mac sk ${mainassist} ${savedparamater}
    /if (${Me.Class.Name.Equal[Magician]}) /docommand /mac mage ${mainassist} ${savedparamater} ${savedparamatertwo}
    /if (${Me.Class.Name.Equal[Necromancer]}) /docommand /mac necro ${mainassist} ${savedparamater} ${savedparamatertwo}
    /if (${Me.Class.Name.Equal[Wizard]}) /docommand /mac wiz ${mainassist} ${savedparamater}
    /if (${Me.Class.Name.Equal[Enchanter]}) /docommand /mac ench ${mainassist} ${savedparamater}
    /if (${Me.Class.Name.Equal[Bard]}) /docommand /mac bard ${mainassist} ${savedparamater}
    /if (${Me.Class.Name.Equal[Cleric]}) /docommand /mac cleric ${mainassist} ${savedparamater}
    /if (${Me.Class.Name.Equal[Shaman]}) /docommand /mac shaman ${mainassist} ${savedparamater} ${savedparamatertwo}
    /if (${Me.Class.Name.Equal[Monk]}) /docommand /mac monk ${mainassist} ${savedparamater}
    /if (${Me.Class.Name.Equal[Rogue]}) /docommand /mac rogue ${mainassist} ${savedparamater}
    /if (${Me.Class.Name.Equal[Paladin]}) /docommand /mac paladin ${mainassist} ${savedparamater}
    /if (${Me.Class.Name.Equal[Ranger]}) /docommand /mac ranger ${mainassist} ${savedparamater}
    /if (${Me.Class.Name.Equal[Berserker]}) /docommand /mac berserker ${mainassist} ${savedparamater}
    /if (${Me.Class.Name.Equal[Druid]}) /docommand /mac druid ${mainassist} ${savedparamater}
}   
/if (${amrezzed} && !${NearestSpawn[1,corpse radius 100 "${Me.Name}"].ID} || ${NearestSpawn[1,corpse radius 100 "${Me.Name}"].ID} && ${Defined[stuffoncorpse]}) {
    /if (!${NearestSpawn[2,corpse radius 100 "${Me.Name}"].ID}) {
        /if (!${Defined[corpsedone]}) /declare corpsedone int outer 1
        /if (!${Defined[abandoncorpse]}) /declare abandoncorpse int outer 1
    }
}   
/return


Sub lootcorpse

/declare i int local
/declare justaname string local
:lootcorpse
/target ${NearestSpawn[1,corpse radius 100 "${Me.Name}"].CleanName}
/delay 2
/if (${Target.Type.Equal[CORPSE]} && !${Cursor.ID}) {
    /delay 1s
    /loot
    /if (${Window[LootWnd].Open}) {
        /for i 1 to 30
        :lootitem
        /if (${InvSlot[loot31].Item.ID}) {
            /echo there is still stuff on my corpse !
            /guildsay !! There is still stuff on my corpse !!
            /declare stuffoncorpse int outer 1
            /declare abandoncorpse int outer 1
        }
        /if (${InvSlot[loot${i}].Item.ID}) {
            /varset justaname (${InvSlot[loot${i}].Item.Name})
            /varset justaname ${justaname.Right[-1].Left[-1]}
            /nomodkey /itemnotify ${InvSlot[loot${i}]} rightmouseup
            /delay 2
            /if (!${FindItem[=${justaname}].ID}) {
                /echo this fired in rez macro - ${justaname}
                /goto :lootitem
            }
            /next i
        }
        /nomodkey /notify LootWnd LW_DoneButton leftmouseup
        /delay 2
        /if (${NearestSpawn[1,corpse radius 100 "${Me.Name}"].ID} && !${stuffoncorpse}) {
            /goto :lootcorpse
        }
        /if (!${NearestSpawn[2,corpse radius 100 "${Me.Name}"].ID}) {
            /if (!${Defined[corpsedone]}) /declare corpsedone int outer 1
            /if (!${Defined[abandoncorpse]}) /declare abandoncorpse int outer 1
        }
    }
}
/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 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 didinvis 0
        /varset makecamploc ${Me.Y},${Me.X}
    }
    /return
}
/stick off
/varset ammoving 0
/varset didinvis 0
/varset makecamploc ${Me.Y},${Me.X}
/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.Level} < 60) /docommand /mac pl ${action} ${savedparamater}
        /if (${Me.Class.Name.Equal[Beastlord]}) /docommand /mac beast ${action} ${savedparamater}
        /if (${Me.Class.Name.Find[Shadow]}) /docommand /mac sk ${action} ${savedparamater}
        /if (${Me.Class.Name.Equal[Magician]}) /docommand /mac mage ${action} ${savedparamater}
        /if (${Me.Class.Name.Equal[Necromancer]}) /docommand /mac necro ${action} ${savedparamater}
        /if (${Me.Class.Name.Equal[Wizard]}) /docommand /mac wiz ${action} ${savedparamater}
        /if (${Me.Class.Name.Equal[Enchanter]}) /docommand /mac ench ${action} ${savedparamater}
        /if (${Me.Class.Name.Equal[Bard]}) /docommand /mac bard ${action} ${savedparamater}
        /if (${Me.Class.Name.Equal[Cleric]}) /docommand /mac cleric ${action} ${savedparamater}
        /if (${Me.Class.Name.Equal[Shaman]}) /docommand /mac shaman ${action} ${savedparamater}
        /if (${Me.Class.Name.Equal[Monk]}) /docommand /mac monk ${action} ${savedparamater}
        /if (${Me.Class.Name.Equal[Rogue]}) /docommand /mac rogue ${action} ${savedparamater}
        /if (${Me.Class.Name.Equal[Paladin]}) /docommand /mac paladin ${action} ${savedparamater}
        /if (${Me.Class.Name.Equal[Ranger]}) /docommand /mac ranger ${action} ${savedparamater}
        /if (${Me.Class.Name.Equal[Berserker]}) /docommand /mac berserker ${action} ${savedparamater}
        /if (${Me.Class.Name.Equal[Druid]}) /docommand /mac druid ${action} ${savedparamater}
    }
    /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[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.Arg[1,].Equal[rez]}) {
    /varset action ${action.Right[-4]}
    /if (${Me.Gem["Reviviscence"]}) {
        /if (!${Me.SpellReady["Reviviscence"]}) {
            /guildsay rez not up yet, returning
            /return
        }
        /target ${action}'s corpse
        /delay 2
        /call cast "Reviviscence" 1s
        /if (${Macro.Return.Equal["CAST_SUCCESS"]}) /guildsay ${Target} rezzed!
    }
    /return
}
/if (${action.Find[consent]}) {
    /varset action ${action.Right[-8]}
    /consent ${action}
    /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[/ex]}) {
    /if (${Me.Trader}) /return
    /docommand /exit
}
/if (${action.Find[pagedown]}) {
    /keypress Page_Down hold 
    /delay 1s
    /keypress Page_Down
    /return
}
/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
    /varset amrezzed 1
    /return
}
/return

Sub page(direction, duration)

/if (${direction.Find[down]}) {
    /keypress Page_Down hold 
    /delay ${duration}
    /keypress Page_Down
}
/if (${direction.Find[up]}) {
    /keypress Page_Up hold 
    /delay ${duration}
    /keypress Page_Up
}
/return

Sub returntocamp

/if (${Bool[${makecamploc}]}) {
    /call gotoloc "${makecamploc}"
    /if (${Macro.Return} == 1) {
        /if (${Me.Heading.Degrees} > 179) /face fast heading ${Math.Calc[${Me.Heading.Degrees} - 180]}
        /if (${Me.Heading.Degrees} < 180) /face fast heading ${Math.Calc[${Me.Heading.Degrees} + 180]}
    }
}
/return

Sub gotoloc(loc, command)

/declare locfrom string local
/declare zoneshortname string local ${Zone.ShortName}
/if (!${Bool[${loc}]}) /varset locfrom leashloc
/if (${Bool[${loc}]}) /varset locfrom loc
/declare nextlocationy string local ${${locfrom}.Arg[1,,]}
/declare nextlocationx string local ${${locfrom}.Arg[2,,]}
/declare nextlocationyhigh string local ${Math.Calc[${${locfrom}.Arg[1,,]} + 5]}
/declare nextlocationylow string local ${Math.Calc[${${locfrom}.Arg[1,,]} - 5]}
/declare nextlocationxhigh string local ${Math.Calc[${${locfrom}.Arg[2,,]} + 5]}
/declare nextlocationxlow string local ${Math.Calc[${${locfrom}.Arg[2,,]} - 5]}
/if (${nextlocationy.NotEqual[NULL]} && ${Me.Y} <= ${nextlocationyhigh} && ${Me.Y} >= ${nextlocationylow} && ${Me.X} <= ${nextlocationxhigh} && ${Me.X} >= ${nextlocationxlow}) {
    /if (${command.NotEqual[empty]}) /call ${command}
    /return
}
:travel
/keypress forward hold
/if (${nextlocationy.NotEqual[NULL]} && ${Me.Y} <= ${nextlocationyhigh} && ${Me.Y} >= ${nextlocationylow} && ${Me.X} <= ${nextlocationxhigh} && ${Me.X} >= ${nextlocationxlow}) {
    /keypress forward
    /if (!${Me.Class.PureCaster}) /varset didstick 0
    /if (${command.NotEqual[empty]}) /call ${command}
    /return 1
}
/if (${nextlocationy.NotEqual[NULL]}) {
    /if (${Me.Y} <= ${nextlocationylow} || ${Me.X} <= ${nextlocationxlow} || ${Me.Y} >= ${nextlocationyhigh} || ${Me.X} >= ${nextlocationxhigh}) {
        /face nolook fast loc ${nextlocationy},${nextlocationx}
    }
}
/if (${zoneshortname.NotEqual[${Zone.ShortName}]}) {
    /if (!${InvSlot[17].Item.ID}) {
        /if (!${InvSlot[13].Item.ID} && !${Defined[amnaked]}) {
            /guildsay - i died during movement - 
            /declare amnaked int outer 100
            /keypress forward
            /varset makecamploc ${Me.Y},${Me.X}
            /return
        }
    }
}
/if (${zoneshortname.NotEqual[${Zone.ShortName}]}) {
    /if (${InvSlot[17].Item.ID} || ${amnaked} == 100) {
        /if (${InvSlot[13].Item.ID} && !${Defined[amnaked]} || !${InvSlot[13].Item.ID} && ${amnaked} == 100) {
            /echo ~~ ${Zone.Name} ~~
            /keypress forward
            /deletevar zoneoutloc
            /varset makecamploc ${Me.Y},${Me.X}
            /return
        }
    }
/return
}
/delay 1
/goto :travel
/return

Sub zonedoor

/keypress forward
:doorloop
/keypress u
/delay 2
/keypress u
/delay 1s
/keypress u
/delay 2
/call viewing
/if (${zoneshortname.Equal[${Zone.ShortName}]}) /goto :doorloop
/return

Sub door

/keypress u
/if (!${Me.Moving}) {
    /if (${Bool[${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}loc[${j}]door]}]}) {
        /doortarget ${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}loc[${j}]door]}]}
        /face door
        /keypress u
    }
}
/return

Sub viewing

/declare variable string local page_down
:viewing
/if (${zoneshortname.Equal[${Zone.ShortName}]}) {
    /keypress ${variable} hold
    /delay 2
    /keypress ${variable}
    /keypress u
    /if (${zoneshortname.Equal[${Zone.ShortName}]}) {
        /keypress ${variable} hold
        /delay 4
        /keypress ${variable}
        /keypress u
        /if (${zoneshortname.Equal[${Zone.ShortName}]}) {
            /keypress ${variable} hold
            /delay 4
            /keypress ${variable}
            /keypress u
            /if (${variable.Equal[page_down]}) {
                /varset variable page_up
                /goto :viewing
            }
            /if (${variable.Equal[page_up]}) {
                /varset variable page_down
                /goto :viewing
            }
        }
    }
}
/return

Sub findgroup

/declare totalgroups int local
/declare i int local
/declare j int local
/varset totalgroups ${Ini[toolismacro,Values,totalgroups]}
/for i 1 to ${totalgroups}
/for j 1 to 6
/if (${Ini[toolismacro,Group${i},member${j}].Equal[${Me.Name}]}) {
    /return ${i}
}
/next j
/next i
/echo GROUP NOT FOUND ---- returning +1
/return ${Math.Calc[${totalgroups} + 1]}

Sub groupcheck

/declare i int local
/declare grpcheck int local 0
:checkgroup
/for i 0 to ${Group}
/if (${Group.Member[${i}].Distance} < 120 && ${Group.Member[${i}].ID}) /varset grpcheck ${Math.Calc[${grpcheck} + 1]}
/next i
/if (${grpcheck} == ${Group.GroupSize}) {
    /delay 1s
    /return 1
} else {
    /varset grpcheck 0
    /delay 2
    /goto :checkgroup
}
/return

Sub Event_Movement(Line, SenderPerson, targetperson, TargetZone)

/if (${Bool[${targetperson}]}) {
    /declare name int local
    /declare force int local
    /for force 1 to 10
    /if (${targetperson.Arg[${force},].Equal[force]}) {
        /declare forcemove bool local TRUE
    }
    /if (${targetperson.Arg[1,].Equal[force]} && !${Bool[${targetperson.Arg[2,]}]}) /goto :beginning
    /next force
    /if (${targetperson.Arg[1,].Equal[group]}) {
        /if (${targetperson.Arg[1,].Equal[group]}) {
            /declare groupnumber int local
            /call findgroup
            /varset targetperson ${targetperson.Right[-6]}
            /if (${targetperson.Find[force]}) /varset targetperson ${targetperson.Left[-6]}
            /for groupnumber 1 to ${Ini[toolismacro,Values,totalgroups]}
            /if (${targetperson.Arg[${groupnumber},,]} == ${Macro.Return}) {
                /goto :beginning
            } else {
                /next groupnumber 
                /return
            }
        }
    }
    /for name 1 to 10
    /if (${targetperson.Arg[${name},].Equal[${Me.Name}]}) /goto :beginning
    /next name
    /return
}
:beginning
/if (!${Bool[${Ini[movement,${TargetZone},zoneshortnames].Arg[1,,]}]}) {
    /echo Incorrect Destination
    /return
}
/declare zoneshortname     string local ${Zone.ShortName}
/declare savedtargetzone   string local ${TargetZone}
/declare startlocation     string local 0
/declare tempheading       float  local 0
/declare nextlocationx     string local NULL
/declare nextlocationy     string local NULL
/declare nextlocationxhigh string local
/declare nextlocationxlow  string local
/declare nextlocationyhigh string local
/declare nextlocationylow  string local
/declare i int local
/declare j int local
/declare junctions int local
/declare savedvariable int local 0
/if (${Me.Class.Name.NotEqual[Bard]}) /declare didinvis int local 0
/declare grpnumber int local 0

/echo - Starting -
/for junctions 1 to 12
/echo ${junctions} junctions
/for i 1 to 10
/echo ${i} i variable at i loop
:start
/if (${Bool[${Ini[movement,${TargetZone},junctions].Arg[${junctions},,]}]}) {
    /echo ${Ini[movement,${TargetZone},junctions].Arg[${junctions},,]}
    /varset TargetZone ${Ini[movement,${TargetZone},junctions].Arg[${junctions},,]}
    /echo changed targetzone to ${TargetZone}
    /echo ${Ini[movement,${TargetZone},junctions].Arg[${junctions},,]} targetzones junctions
    /echo ${i} i variable in bool junctions
    /varset i 1
}
/if (!${Bool[${Ini[movement,${savedtargetzone},junctions].Arg[${junctions},,]}]} && ${TargetZone.NotEqual[${savedtargetzone}]}) {
    /varset TargetZone ${savedtargetzone}
    /echo changed targetzone to savedtargetzone
    /echo ${junctions} junctions
    /echo ${i} i variable in not bool junctions
    /echo ${j} j 
    /varset i 1  
}
/if (${Bool[${Ini[movement,${savedtargetzone},junctions].Arg[${junctions},,]}]} && ${TargetZone.NotEqual[${Ini[movement,${savedtargetzone},junctions].Arg[${junctions},,]}]}) {
    /varset TargetZone ${Ini[movement,${savedtargetzone},junctions].Arg[${junctions},,]}
    /echo changed targetzone to savedtargetzone junction arg junctions
    /echo ${junctions}
    /echo ${i} i variable in bool junctions arg junctions
    /echo ${j} j
    /varset i 1
}
/if (${savedvariable} != 1) {
    /if (${Bool[${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,].Equal[${Zone.ShortName}]}]} && ${startlocation.Equal[0]}) {
        /echo found starting zone
        /varset startlocation ${TargetZone},${i},
        /echo ${startlocation}
        /echo ${i} i variable
        /echo ${j} j variable
    }
    /if (${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,].NotEqual[${Zone.ShortName}]} && ${startlocation.NotEqual[0]}) {
        /echo found end of zones
        /varset junctions 1
        /varset savedvariable 1
        /varset TargetZone ${startlocation.Arg[1,,]}
        /varset i ${startlocation.Arg[2,,]}
    }
}
/if (${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}].Arg[${j},,].Equal[finish]} && ${zoneshortname.Equal[${Zone.ShortName}]}) {
    /keypress w
    /varset didinvis 0
    /echo i have reached my destination
    /guildsay im at target destination
    /return
}
/if (${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,].Equal[${Zone.ShortName}]}) {
    /if (!${forcemove}) {
        /if (${Me.Class.Name.Equal[Bard]} && !${didinvis}) {
            /call groupcheck
        }
        /if (${Me.Class.Name.NotEqual[Bard]} && !${didinvis}) {
            /call findgroup
            /varset grpnumber ${Macro.Return}
            :waitforinvis
            /doevents Toggle
            /if (${Macro.Return.Equal[abort]}) /return
            /if (${Ini[toolismacro,Movement,group${grpnumber}ready].Equal[ready]}) {
                /varset didinvis 1
            }
            /if (${Ini[toolismacro,Movement,group${grpnumber}ready].Equal[empty]}) {
                /delay 2
                /echo waiting for invis
                /goto :waitforinvis
            }
        }
    }
    /if (${Me.Class.Name.Equal[Bard]} && !${didinvis}) {
        /squelch /twist off
        /varset didinvis 1
        /varset dotwist 1
        /if (!${Me.Gem[${travelsong}]} && !${Cursor.ID}) {
                /guildsay sec memming travel song
                /memspell ${travelsonggem} ${travelsong}
                /delay 2s
        }
        /squelch /twist ${travelsonggem}
        /delay 2s
        /if (!${Me.Casting.ID}) {
            /squelch /twist ${speedsonggem}
            /delay 2s
            /if (${Me.Casting.ID}) /delay 1s
            /if (!${Me.Gem[${invissong}]} && !${Cursor.ID}) {
                /guildsay sec memming invis song
                /memspell ${travelsonggem} ${invissong}
                /delay 2s
            }
            /squelch /twist ${travelsonggem}
            /delay 3s 
        }
        /if (${Me.Casting.ID}) /delay 2s
        /call findgroup
        /varset grpnumber ${Macro.Return}
        /ini "toolismacro" "Movement" "group${grpnumber}ready" "ready"
        /delay 6
        /ini "toolismacro" "Movement" "group${grpnumber}ready" "empty"
    }
    /echo ${j} j (before for loop)
    /for j 1 to 30
    /echo ${j} j
    /if (${Bool[${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}loc${j}]}]} && ${savedvariable} != 1) {
        /varset savedvariable ${j}
        /varset nextlocationy ${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}loc${j}].Arg[1,,]}
        /varset nextlocationx ${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}loc${j}].Arg[2,,]}
        /varset nextlocationyhigh ${Math.Calc[${nextlocationy} + 75]}
        /varset nextlocationylow ${Math.Calc[${nextlocationy} - 75]}
        /varset nextlocationxhigh ${Math.Calc[${nextlocationx} + 75]}
        /varset nextlocationxlow ${Math.Calc[${nextlocationx} - 75]}
        /if (${Me.Y} <= ${nextlocationyhigh} && ${Me.Y} >= ${nextlocationylow} && ${Me.X} <= ${nextlocationxhigh} && ${Me.X} >= ${nextlocationxlow}) {
            /echo found correct loc
            /varset savedvariable 1
            /goto :end
        }
        /varset nextlocationyhigh ${Math.Calc[${nextlocationy} + 175]}
        /varset nextlocationylow ${Math.Calc[${nextlocationy} - 175]}
        /varset nextlocationxhigh ${Math.Calc[${nextlocationx} + 175]}
        /varset nextlocationxlow ${Math.Calc[${nextlocationx} - 175]}
        /if (${Me.Y} <= ${nextlocationyhigh} && ${Me.Y} >= ${nextlocationylow} && ${Me.X} <= ${nextlocationxhigh} && ${Me.X} >= ${nextlocationxlow}) {
            /echo found nearest loc
            /varset savedvariable 1
            /goto :nearestlocloop
        }
        /echo this didnt work
        /varset nextlocationy NULL
        /if (${Bool[${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}loc${savedvariable}].Arg[1,,]}]}) {
            /varset savedvariable ${Math.Calc[${j} + 1]}
            /varset nextlocationy NULL          
            /if (${Bool[${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}loc${savedvariable}].Arg[1,,]}]}) {
                /echo next j
                /next j
            }
            /if (${Bool[${Ini[movement,${TargetZone},zoneshortnames].Arg[${Math.Calc[${i} + 1]},,]}]}) {
                /varset j 0
                /next i
            }
            /if (${Bool[${Ini[movement,${savedtargetzone},junctions].Arg[${junctions},,]}]}) {
                /varset j 0
                /echo next junctions instead of j
                /varset TargetZone ${savedtargetzone}
                /next junctions
            }
        }
        /echo this fired
        /varset savedvariable ${Math.Calc[${j} + 1]}
        /delay 2
        /next i
    }
        /if (!${Bool[${Ini[movement,${savedtargetzone},junctions].Arg[${junctions},,]}]} && ${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}].Arg[${j},,].Equal[junction]} || ${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}].Arg[${j},,].Equal[finish]}) {
            /keypress w
            /varset didinvis 0
            /echo i have reached my destination
            /guildsay im at target destination
            /return
        } 
    :end
    /if (${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}].Arg[${j},,].Equal[junction]}) {
        /keypress forward
        /varset j 1
        /varset TargetZone ${savedtargetzone}
        /if (!${Bool[${Ini[movement,${savedtargetzone},junctions].Arg[${junctions},,]}]}) {
            /varset TargetZone ${startlocation.Arg[1,,]}
            /varset i ${startlocation.Arg[2,,]}
        } 
        /if (${Bool[${Ini[movement,${TargetZone},junctions].Arg[${junctions},,]}]}) {
            /echo changing junctions +1 from hitting a junction
            /next junctions
        }
    }
    /if (${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}].Arg[${j},,].Equal[zonedoor]} && ${nextlocationy.NotEqual[NULL]}) {
        /keypress forward
        /varset j 1
        :doorloop
        /keypress u
        /delay 2
        /keypress u
        /delay 1s
        /if (${Bool[${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}zonedoor]}]}) {
            /face nolook loc ${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}zonedoor]}
            /keypress u
        }
        /if (${zoneshortname.Equal[${Zone.ShortName}]}) /goto :doorloop
        /varset nextlocationy NULL
    }
    /if (${zoneshortname.Equal[${Zone.ShortName}]}) {
        /varset tempheading ${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}].Arg[${j},,]})
        /if (${Math.Calc[(360 - ${tempheading}) + 45]} > 360 && ${Me.Heading.Degrees} <= ${Math.Calc[(360 - ${tempheading}) - 45]} || ${Math.Calc[(360 - ${tempheading}) + 45]} > 360 && ${Me.Heading.Degrees} <= ${Math.Calc[45 - (360 - ${tempheading})]}) {
            /goto :headingdone
        }
        /if (${Math.Calc[(360 - ${tempheading}) - 45]} < 0 && ${Me.Heading.Degrees} <= ${Math.Calc[(360 - ${tempheading}) + 45]} || ${Math.Calc[(360 - ${tempheading}) - 45]} < 0 && ${Me.Heading.Degrees} <= ${Math.Calc[45 - (360 - ${tempheading})]}) { 
            /goto :headingdone
        }
        /if (${Math.Calc[${Me.Heading.Degrees}]} >= ${Math.Calc[360 - ${tempheading}]} && ${Math.Calc[${Me.Heading.Degrees}]} <= ${Math.Calc[(360 - ${tempheading}) + 45]} || ${Math.Calc[${Me.Heading.Degrees}]} >= ${Math.Calc[(360 - ${tempheading}) - 45]} && ${Math.Calc[${Me.Heading.Degrees}]} <= ${Math.Calc[360 - ${tempheading}]}) {
            /goto :headingdone
        }
            /if (${tempheading} <= 180) {
            /echo Tempheading < 180
                /if (${Me.Heading.Degrees} >= ${Math.Calc[(360 - ${tempheading}) - 180]} && ${Me.Heading.Degrees} <= ${Math.Calc[360 - ${tempheading}]}) {
                    /varset tempheading ${Math.Calc[${tempheading} + 45]}
                    /goto :heading
                } else {
                    /if (${tempheading} <= 45) {
                        /varset tempheading ${Math.Calc[315 + ${tempheading}]}
                        /goto :heading
                    }
                    /varset tempheading ${Math.Calc[${tempheading} - 45]}
                    /goto :heading
                }
            }
            /if (${tempheading} > 180) {
            /echo Tempheading > 180
                /if (${Me.Heading.Degrees} <= ${Math.Calc[(360 - ${tempheading}) + 180]} && ${Me.Heading.Degrees} >= ${Math.Calc[360 - ${tempheading}]}) {
                    /varset tempheading ${Math.Calc[${tempheading} - 45]}
                    /goto :heading
                } else {
                    /if (${tempheading} <= 315) {
                        /varset tempheading ${Math.Calc[${tempheading} + 45]}
                        /goto :heading
                    }
                    /varset tempheading ${Math.Calc[(360 - ${tempheading}) - 45]}
                    /goto :heading
                }
            }
            :heading
            /face heading ${tempheading}
        :headingdone
        /face fast heading ${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}].Arg[${j},,]}
    }
    /varset nextlocationy NULL
    /varset nextlocationx NULL
    /if (${Bool[${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}loc${j}]}]}) {
        /varset nextlocationy ${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}loc${j}].Arg[1,,]}
        /varset nextlocationx ${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}loc${j}].Arg[2,,]}
    }
    :nearestlocloop
    /doevents Toggle
    /if (${Macro.Return.Equal[abort]}) /return
    /varset nextlocationyhigh ${Math.Calc[${nextlocationy} + 5]}
    /varset nextlocationylow ${Math.Calc[${nextlocationy} - 5]}
    /varset nextlocationxhigh ${Math.Calc[${nextlocationx} + 5]}
    /varset nextlocationxlow ${Math.Calc[${nextlocationx} - 5]}
    :movementloop
    /keypress forward hold
    /if (${nextlocationy.NotEqual[NULL]} && ${Me.Y} <= ${nextlocationyhigh} && ${Me.Y} >= ${nextlocationylow} && ${Me.X} <= ${nextlocationxhigh} && ${Me.X} >= ${nextlocationxlow}) {
        /keypress forward
        /delay 2
        /if (${Bool[${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}loc${j}command]}]}) /call ${Ini[movement,${TargetZone},${Ini[movement,${TargetZone},zoneshortnames].Arg[${i},,]}loc${j}command]}
        /next j
    }
    /if (${nextlocationy.NotEqual[NULL]}) {
        /if (${Me.Y} <= ${nextlocationylow} || ${Me.X} <= ${nextlocationxlow} || ${Me.Y} >= ${nextlocationyhigh} || ${Me.X} >= ${nextlocationxhigh}) {
            /face nolook fast loc ${nextlocationy},${nextlocationx}
        }
    }
    /if (${zoneshortname.NotEqual[${Zone.ShortName}]}) {
        /if (!${InvSlot[17].Item.ID}) {
            /if (!${InvSlot[13].Item.ID} && !${Defined[amnaked]}) {
                /guildsay - i died during movement - 
                /declare amnaked int outer 100
                /return
            }
        }
        /echo -- ${Zone.Name} --
        /varset nextlocationy NULL
        /keypress forward
        /varset zoneshortname ${Zone.ShortName}
        /varset didinvis 0
        /varset j 1
        /varset i 0
        /delay 2
        /next i
    }
    /delay 1
    /goto :movementloop
}
/delay 2
/if (${Bool[${Ini[movement,${TargetZone},zoneshortnames].Arg[${Math.Calc[${i} + 1]},,]}]}) /next i
/varset i 0
/next junctions
/varset junctions 1
/varset savedvariable 1
/varset TargetZone ${startlocation.Arg[1,,]}
/varset i ${startlocation.Arg[2,,]}
/echo setting targetzone and zone im in
/next junctions
/echo returning
/return
Last edited by toolisaccount on Mon Sep 07, 2015 1:49 am, edited 2 times in total.
--------------------------------------------------------------------------------------------------------------------------------
Image
--------------------------------------------------------------------------------------------------------------------------------

User avatar
toolisaccount
a lesser mummy
a lesser mummy
Posts: 39
Joined: Tue Aug 18, 2015 1:23 am

Re: eqemu macros that plugin to your macro!

Post by toolisaccount » Tue Aug 18, 2015 8:26 am

reserved
--------------------------------------------------------------------------------------------------------------------------------
Image
--------------------------------------------------------------------------------------------------------------------------------

User avatar
toolisaccount
a lesser mummy
a lesser mummy
Posts: 39
Joined: Tue Aug 18, 2015 1:23 am

Re: eqemu macros that plugin to your macro!

Post by toolisaccount » Tue Aug 18, 2015 8:27 am

reserved1
--------------------------------------------------------------------------------------------------------------------------------
Image
--------------------------------------------------------------------------------------------------------------------------------

User avatar
toolisaccount
a lesser mummy
a lesser mummy
Posts: 39
Joined: Tue Aug 18, 2015 1:23 am

Re: eqemu macros that plugin to your macro!

Post by toolisaccount » Tue Aug 18, 2015 8:28 am

reserved2
--------------------------------------------------------------------------------------------------------------------------------
Image
--------------------------------------------------------------------------------------------------------------------------------

User avatar
toolisaccount
a lesser mummy
a lesser mummy
Posts: 39
Joined: Tue Aug 18, 2015 1:23 am

Re: eqemu macros that plugin to your macro!

Post by toolisaccount » Tue Aug 18, 2015 8:28 am

reserved!
--------------------------------------------------------------------------------------------------------------------------------
Image
--------------------------------------------------------------------------------------------------------------------------------

User avatar
toolisaccount
a lesser mummy
a lesser mummy
Posts: 39
Joined: Tue Aug 18, 2015 1:23 am

Re: eqemu macros that plugin to your macro!

Post by toolisaccount » Tue Aug 18, 2015 8:35 am

reserved!!!!
--------------------------------------------------------------------------------------------------------------------------------
Image
--------------------------------------------------------------------------------------------------------------------------------

User avatar
toolisaccount
a lesser mummy
a lesser mummy
Posts: 39
Joined: Tue Aug 18, 2015 1:23 am

Re: eqemu macros that plugin to your macro!

Post by toolisaccount » Tue Aug 18, 2015 8:35 am

reserved....
--------------------------------------------------------------------------------------------------------------------------------
Image
--------------------------------------------------------------------------------------------------------------------------------

User avatar
toolisaccount
a lesser mummy
a lesser mummy
Posts: 39
Joined: Tue Aug 18, 2015 1:23 am

Re: eqemu macros that plugin to your macro!

Post by toolisaccount » Tue Aug 18, 2015 8:36 am

reserved...
--------------------------------------------------------------------------------------------------------------------------------
Image
--------------------------------------------------------------------------------------------------------------------------------

User avatar
toolisaccount
a lesser mummy
a lesser mummy
Posts: 39
Joined: Tue Aug 18, 2015 1:23 am

Re: eqemu macros that plugin to your macro!

Post by toolisaccount » Tue Aug 18, 2015 8:36 am

reserved....
--------------------------------------------------------------------------------------------------------------------------------
Image
--------------------------------------------------------------------------------------------------------------------------------