The main reason I made my own instead of using the more generic "Green Leaf" macros, was that none that I had found accounted for the Misty Thicket's wall down the middle. This one does that. Without further delay, here is the macro:
P.S. If you folks likey, have requests on it, or find bugs (I haven't tested the program very throughly) feel free to post away.
P.P.S. By the way, what I say at the top about using psykotic and BrainDeath's code is refering to a very well made program by those authors which collects Fungi in Kaladim for brewing. Thanks to those guys even though I stole their code without any remose.
Code: Select all
| Misty Thicket Acorns Macro : acorns.mac
| Macro by "Caffeine";
| DummyMode portion contributed unknowingly by psykotic and BrainDeath
#chat tell
#event AcornsOut "[MQ2] NULL"
Sub Main
/declare Side int outer 2
/declare TSide int outer
/declare Pause timer outer
/declare X2 int outer
/declare Y2 int outer
/declare LocYP2 int outer
/declare LocYM2 int outer
/declare LocXP2 int outer
/declare LocXM2 int outer
| Time in minutes to wait if GM zones in or person gets too close.
/declare DummyTime int outer
/declare DummyTime2 int outer 15
/declare Count int outer
/declare X int outer
/declare Y int outer
/declare LocX int outer
/declare LocXP int outer
/declare LocXM int outer
/declare LocY int outer
/declare LocYP int outer
/declare LocYM int outer
:Begin
/varcalc DummyTime ${DummyTime2}*600
/doevents
/if (${Spawn[gm].ID}) /call DummyMode
/varset Count 100
/itemtarget *Green
/doevents
|------------------------Begin Determine Side (Aimed for accuracy)----------------|
/varset X ${Me.X}
/varset Y ${Me.Y}
/if (${X}<-38.51 && ${Y}>-148.95) /varset Side 1
/if (${Y}<-148.95 && ${Y}>-180.77 && ${X}<-60.01) /varset Side 1
/if (${Y}<-180.77 && ${Y}>-217.53 && ${X}<-92.28) /varset Side 1
/if (${Y}<-217.53 && ${Y}>-250.21 && ${X}<-117.23) /varset Side 1
/if (${Y}<-250.21 && ${Y}>-281.90 && ${X}<-132.30) /varset Side 1
/if (${Y}<-281.90 && ${Y}>-318.48 && ${X}<-149.63) /varset Side 1
/if (${Y}<-318.48 && ${Y}>-353.96 && ${X}<-168.68) /varset Side 1
/if (${Y}<-353.96 && ${Y}>-372.38 && ${X}<-194.76) /varset Side 1
/if (${Y}<-372.38 && ${Y}>-406.97 && ${X}<-242.62) /varset Side 1
/if (${Y}<-406.97 && ${Y}>-436.08 && ${X}<-286.41) /varset Side 1
/if (${Y}<-436.08 && ${Y}>-458.42 && ${X}<-312.38) /varset Side 1
/if (${Y}<-458.42 && ${Y}>-487.87 && ${X}<-312.73) /varset Side 1
/if (${Y}<-487.87 && ${Y}>-552.88 && ${X}<-313.52) /varset Side 1
/if (${Y}<-552.88 && ${Y}>-580.92 && ${X}<-337.42) /varset Side 1
/if (${Y}<-580.92 && ${Y}>-604.01 && ${X}<-361.09) /varset Side 1
/if (${Y}<-604.01 && ${Y}>-623.84 && ${X}<-381.41) /varset Side 1
/if (${Y}<-623.84 && ${Y}>-646.12 && ${X}<-404.25) /varset Side 1
/if (${Y}<-646.12 && ${Y}>-656.06 && ${X}<-419.88) /varset Side 1
/if (${Y}<-656.06 && ${Y}>-701.68 && ${X}<-421.05) /varset Side 1
/if (${Y}<-701.68 && ${Y}>-760.85 && ${X}<-422.01) /varset Side 1
/if (${Y}<-760.85 && ${Y}>-788.74 && ${X}<-434.44) /varset Side 1
/if (${Y}<-788.74 && ${Y}>-844.72 && ${X}<-459.62) /varset Side 1
/if (${Y}<-844.72 && ${Y}>-860.35 && ${X}<-464.97) /varset Side 1
/if (${Y}<-860.35 && ${X}<-466.83) /varset Side 1
/if (${X}>-38.51 && ${Y}>-148.95) /varset Side 0
/if (${Y}<-148.95 && ${Y}>-180.77 && ${X}>-60.01) /varset Side 0
/if (${Y}<-180.77 && ${Y}>-217.53 && ${X}>-92.28) /varset Side 0
/if (${Y}<-217.53 && ${Y}>-250.21 && ${X}>-117.23) /varset Side 0
/if (${Y}<-250.21 && ${Y}>-281.90 && ${X}>-132.30) /varset Side 0
/if (${Y}<-281.90 && ${Y}>-318.48 && ${X}>-149.63) /varset Side 0
/if (${Y}<-318.48 && ${Y}>-353.96 && ${X}>-168.68) /varset Side 0
/if (${Y}<-353.96 && ${Y}>-372.38 && ${X}>-194.76) /varset Side 0
/if (${Y}<-372.38 && ${Y}>-406.97 && ${X}>-242.62) /varset Side 0
/if (${Y}<-406.97 && ${Y}>-436.08 && ${X}>-286.41) /varset Side 0
/if (${Y}<-436.08 && ${Y}>-458.42 && ${X}>-312.38) /varset Side 0
/if (${Y}<-458.42 && ${Y}>-487.87 && ${X}>-312.73) /varset Side 0
/if (${Y}<-487.87 && ${Y}>-552.88 && ${X}>-313.52) /varset Side 0
/if (${Y}<-552.88 && ${Y}>-580.92 && ${X}>-337.42) /varset Side 0
/if (${Y}<-580.92 && ${Y}>-604.01 && ${X}>-361.09) /varset Side 0
/if (${Y}<-604.01 && ${Y}>-623.84 && ${X}>-381.41) /varset Side 0
/if (${Y}<-623.84 && ${Y}>-646.12 && ${X}>-404.25) /varset Side 0
/if (${Y}<-646.12 && ${Y}>-656.06 && ${X}>-419.88) /varset Side 0
/if (${Y}<-656.06 && ${Y}>-701.68 && ${X}>-421.05) /varset Side 0
/if (${Y}<-701.68 && ${Y}>-760.85 && ${X}>-422.01) /varset Side 0
/if (${Y}<-760.85 && ${Y}>-788.74 && ${X}>-434.44) /varset Side 0
/if (${Y}<-788.74 && ${Y}>-844.72 && ${X}>-459.62) /varset Side 0
/if (${Y}<-844.72 && ${Y}>-860.35 && ${X}>-464.97) /varset Side 0
/if (${Y}<-860.35 && ${X}>-466.83) /varset Side 0
/echo ${Target.Name}
/varset X ${Target.X}
/varset Y ${Target.Y}
/if (${X}<-38.51 && ${Y}>-148.95) /varset TSide 1
/if (${Y}<-148.95 && ${Y}>-180.77 && ${X}<-60.01) /varset TSide 1
/if (${Y}<-180.77 && ${Y}>-217.53 && ${X}<-92.28) /varset TSide 1
/if (${Y}<-217.53 && ${Y}>-250.21 && ${X}<-117.23) /varset TSide 1
/if (${Y}<-250.21 && ${Y}>-281.90 && ${X}<-132.30) /varset TSide 1
/if (${Y}<-281.90 && ${Y}>-318.48 && ${X}<-149.63) /varset TSide 1
/if (${Y}<-318.48 && ${Y}>-353.96 && ${X}<-168.68) /varset TSide 1
/if (${Y}<-353.96 && ${Y}>-372.38 && ${X}<-194.76) /varset TSide 1
/if (${Y}<-372.38 && ${Y}>-406.97 && ${X}<-242.62) /varset TSide 1
/if (${Y}<-406.97 && ${Y}>-436.08 && ${X}<-286.41) /varset TSide 1
/if (${Y}<-436.08 && ${Y}>-458.42 && ${X}<-312.38) /varset TSide 1
/if (${Y}<-458.42 && ${Y}>-487.87 && ${X}<-312.73) /varset TSide 1
/if (${Y}<-487.87 && ${Y}>-552.88 && ${X}<-313.52) /varset TSide 1
/if (${Y}<-552.88 && ${Y}>-580.92 && ${X}<-337.42) /varset TSide 1
/if (${Y}<-580.92 && ${Y}>-604.01 && ${X}<-361.09) /varset TSide 1
/if (${Y}<-604.01 && ${Y}>-623.84 && ${X}<-381.41) /varset TSide 1
/if (${Y}<-623.84 && ${Y}>-646.12 && ${X}<-404.25) /varset TSide 1
/if (${Y}<-646.12 && ${Y}>-656.06 && ${X}<-419.88) /varset TSide 1
/if (${Y}<-656.06 && ${Y}>-701.68 && ${X}<-421.05) /varset TSide 1
/if (${Y}<-701.68 && ${Y}>-760.85 && ${X}<-422.01) /varset TSide 1
/if (${Y}<-760.85 && ${Y}>-788.74 && ${X}<-434.44) /varset TSide 1
/if (${Y}<-788.74 && ${Y}>-844.72 && ${X}<-459.62) /varset TSide 1
/if (${Y}<-844.72 && ${Y}>-860.35 && ${X}<-464.97) /varset TSide 1
/if (${Y}<-860.35 && ${X}<-466.83) /varset TSide 1
/if (${X}>-38.51 && ${Y}>-148.95) /varset TSide 0
/if (${Y}<-148.95 && ${Y}>-180.77 && ${X}>-60.01) /varset TSide 0
/if (${Y}<-180.77 && ${Y}>-217.53 && ${X}>-92.28) /varset TSide 0
/if (${Y}<-217.53 && ${Y}>-250.21 && ${X}>-117.23) /varset TSide 0
/if (${Y}<-250.21 && ${Y}>-281.90 && ${X}>-132.30) /varset TSide 0
/if (${Y}<-281.90 && ${Y}>-318.48 && ${X}>-149.63) /varset TSide 0
/if (${Y}<-318.48 && ${Y}>-353.96 && ${X}>-168.68) /varset TSide 0
/if (${Y}<-353.96 && ${Y}>-372.38 && ${X}>-194.76) /varset TSide 0
/if (${Y}<-372.38 && ${Y}>-406.97 && ${X}>-242.62) /varset TSide 0
/if (${Y}<-406.97 && ${Y}>-436.08 && ${X}>-286.41) /varset TSide 0
/if (${Y}<-436.08 && ${Y}>-458.42 && ${X}>-312.38) /varset TSide 0
/if (${Y}<-458.42 && ${Y}>-487.87 && ${X}>-312.73) /varset TSide 0
/if (${Y}<-487.87 && ${Y}>-552.88 && ${X}>-313.52) /varset TSide 0
/if (${Y}<-552.88 && ${Y}>-580.92 && ${X}>-337.42) /varset TSide 0
/if (${Y}<-580.92 && ${Y}>-604.01 && ${X}>-361.09) /varset TSide 0
/if (${Y}<-604.01 && ${Y}>-623.84 && ${X}>-381.41) /varset TSide 0
/if (${Y}<-623.84 && ${Y}>-646.12 && ${X}>-404.25) /varset TSide 0
/if (${Y}<-646.12 && ${Y}>-656.06 && ${X}>-419.88) /varset TSide 0
/if (${Y}<-656.06 && ${Y}>-701.68 && ${X}>-421.05) /varset TSide 0
/if (${Y}<-701.68 && ${Y}>-760.85 && ${X}>-422.01) /varset TSide 0
/if (${Y}<-760.85 && ${Y}>-788.74 && ${X}>-434.44) /varset TSide 0
/if (${Y}<-788.74 && ${Y}>-844.72 && ${X}>-459.62) /varset TSide 0
/if (${Y}<-844.72 && ${Y}>-860.35 && ${X}>-464.97) /varset TSide 0
/if (${Y}<-860.35 && ${X}>-466.83) /varset TSide 0
:Z
/doevents
/if (${Spawn[gm].ID}) /call DummyMode
|------------------------End Determine Side (Aimed for accuracy)----------------|
/if (${Side}==${TSide}) /goto :GoTo
/if (${Side}!=${TSide}) /goto :Side
:GoTo
/if (${Target.Distance}<10) /goto :GoTo2
/delay 1
| -----------------------------------STUCK LOOP---------------------|
/varset X2 ${Me.X}
/varset Y2 ${Me.Y}
/varcalc LocXP2 ${X2}+1
/varcalc LocXM2 ${X2}-1
/varcalc LocYP2 ${Y2}+1
/varcalc LocYM2 ${Y2}-1
/varset Count 100
/if (${Spawn[gm].ID}) /call DummyMode
/delay 5
/if (${LocXP2}>${Me.X} && ${LocXM2}<${Me.X} && ${LocYP2}>${Me.Y} && ${LocYM2}<${Me.Y}) {
/face loc ${Math.Rand[10000], ${Math.Rand[10000]
/keypress forward hold
/delay 2s
/goto :Begin
}
/keypress forward hold
/face
/varset Count ${Count}-1
/goto :GoTo
:GoTo2
/keypress forward
/click left item
/delay 8
/autoinv
/if (${Spawn[gm].ID}) /call DummyMode
/goto :Begin
:Side
/if (${Side}==0 && ${TSide}==1) {
/varset LocY -100.00
/varset LocX 13.58
/varcalc LocXP ${LocX}+10
/varcalc LocXM ${LocX}-10
/varcalc LocYP ${LocY}+10
/varcalc LocYM ${LocY}-10
/varset X2 ${Me.X}
/varset Y2 ${Me.Y}
/varset Count 100
/delay 3
/if (${X2}==${Me.X} && ${Y2}==${Me.Y}) {
/face loc ${Math.Rand[10000], ${Math.Rand[10000]
/keypress forward hold
/delay 2s
/goto :Begin
}
/if (${Spawn[gm].ID}) /call DummyMode
:Loopa
/face loc ${LocY}, ${LocX}
/keypress forward hold
/varset X2 ${Me.X}
/varset Y2 ${Me.Y}
/varcalc LocXP2 ${X2}+1
/varcalc LocXM2 ${X2}-1
/varcalc LocYP2 ${Y2}+1
/varcalc LocYM2 ${Y2}-1
/varset Count 100
/delay 5
/if (${LocXP2}>${Me.X} && ${LocXM2}<${Me.X} && ${LocYP2}>${Me.Y} && ${LocYM2}<${Me.Y}) {
/face loc ${Math.Rand[10000], ${Math.Rand[10000]
/keypress forward hold
/delay 2s
/goto :Begin
}
/if (${Spawn[gm].ID}) /call DummyMode
/varset X ${Me.X}
/varset Y ${Me.Y}
/if (${LocXP}>${Me.X} && ${LocXM}<${Me.X} && ${LocYP}>${Me.Y} && ${LocYM}<${Me.Y}) /goto :Loopb
/goto :Loopa
:Loopb
/varset LocY -100.00
/varset LocX -88.00
/varcalc LocXP ${LocX}+10
/varcalc LocXM ${LocX}-10
/varcalc LocYP ${LocY}+10
/varcalc LocYM ${LocY}-10
/varset X2 ${Me.X}
/varset Y2 ${Me.Y}
/varcalc LocXP2 ${X2}+1
/varcalc LocXM2 ${X2}-1
/varcalc LocYP2 ${Y2}+1
/varcalc LocYM2 ${Y2}-1
/varset Count 100
/delay 5
/if (${LocXP2}>${Me.X} && ${LocXM2}<${Me.X} && ${LocYP2}>${Me.Y} && ${LocYM2}<${Me.Y}) {
/face loc ${Math.Rand[10000], ${Math.Rand[10000]
/keypress forward hold
/delay 2s
/goto :Begin
}
/face loc ${LocY}, ${LocX}
/keypress forward hold
/if (${LocXP}>${Me.X} && ${LocXM}<${Me.X} && ${LocYP}>${Me.Y} && ${LocYM}<${Me.Y}) /goto :Begin
/goto :Loopb
}
/if (${Side}==1 && ${TSide}==0) {
:Loopc
/varset LocY -100.00
/varset LocX -88.00
/varcalc LocXP ${LocX}+10
/varcalc LocXM ${LocX}-10
/varcalc LocYP ${LocY}+10
/varcalc LocYM ${LocY}-10
/varset X2 ${Me.X}
/varset Y2 ${Me.Y}
/varcalc LocXP2 ${X2}+1
/varcalc LocXM2 ${X2}-1
/varcalc LocYP2 ${Y2}+1
/varcalc LocYM2 ${Y2}-1
/varset Count 100
/delay 5
/if (${LocXP2}>${Me.X} && ${LocXM2}<${Me.X} && ${LocYP2}>${Me.Y} && ${LocYM2}<${Me.Y}) {
/face loc ${Math.Rand[10000], ${Math.Rand[10000]
/keypress forward hold
/delay 2s
/goto :Begin
}
/if (${Spawn[gm].ID}) /call DummyMode
/face loc ${LocY}, ${LocX}
/keypress forward hold
/if (${LocXP}>${Me.X} && ${LocXM}<${Me.X} && ${LocYP}>${Me.Y} && ${LocYM}<${Me.Y}) /goto :Loopd
/goto :Loopc
:Loopd
/varset LocY -100.00
/varset LocX 13.58
/varcalc LocXP ${LocX}+10
/varcalc LocXM ${LocX}-10
/varcalc LocYP ${LocY}+10
/varcalc LocYM ${LocY}-10
/varset X2 ${Me.X}
/varset Y2 ${Me.Y}
/varcalc LocXP2 ${X2}+1
/varcalc LocXM2 ${X2}-1
/varcalc LocYP2 ${Y2}+1
/varcalc LocYM2 ${Y2}-1
/varset Count 100
/delay 5
/if (${LocXP2}>${Me.X} && ${LocXM2}<${Me.X} && ${LocYP2}>${Me.Y} && ${LocYM2}<${Me.Y}) {
/face loc ${Math.Rand[10000], ${Math.Rand[10000]
/keypress forward hold
/delay 2s
/goto :Begin
}
/face loc ${LocY}, ${LocX}
/keypress forward hold
/varset X ${Me.X}
/varset Y ${Me.Y}
/if (${LocXP}>${Me.X} && ${LocXM}<${Me.X} && ${LocYP}>${Me.Y} && ${LocYM}<${Me.Y}) /goto :Begin
/goto :Loopd
}
:Pause
/echo PAUSE
/echo PAUSE
/echo PAUSE
/echo PAUSE
/endmacro
/return
Sub event_AcornsOut
/echo Acorns out, entering Delay sequence
/afk Back in a few my good friends.
/keypress forward
/sit
/delay 4m
/return
Sub event_chat
/call DummyMode
/return
Sub DummyMode
/beep
/beep
/beep
/echo Entering Dummy Mode...
/afk Be back in a wee bit.
/sit on
:waitabit
/delay ${DummyTime}
/if (${Spawn[gm].ID}) /call DummyMode
/afk off
/stand
/call Main
/return



