• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Mapping Suncrest Ridge (rewrite) (for Bards, Druids, Rng, Shms, bsts)

decker

Active member
Joined
Apr 30, 2005
RedCents
452¢
Ok first off im rather new at this but i have desided to learn.. So here is my rewrite (with a little help from some RGers). This mac uses no mouse movement and you have to use MQ2Reward. Other then that it use travel song... Hope you can use it... And / or help me make it better...

Ok so in this one you dont need any .inc file it will not sit (i though that made it look to much like a bot. It will check for GMs (need info if i did that part right). Hope you like it...

Rich (BB code):
#turbo

#Event Reward "#*#You have successfully been granted your reward for: Mapping Suncrest Ridge#*#"

Sub Main
|### no need to change any of these variables
/declare laps int outer 0
/declare aas float outer 0
/declare aas_hr float outer 0

/declare start_aaexp float outer ${Me.PctAAExp}
/declare start_aas int outer ${Me.AAPointsTotal}

/declare got_reward bool outer false


/moveto 20

:Loop
/call GMCheck
/call GetTask
/call GotoTheBuriedSea
/call GMCheck
/call GotoSuncrest
/call MapIsland
/call GotoBarrenCoast
/call GMCheck
/call FinishTask
/goto :Loop
/return

Sub GMCheck
/if (${Spawn[gm].ID}) {
/beep
/beep
/beep
/echo GM has entered the zone!
/echo FUCK HIM but ending the macro...
/keypress forward
/keypress back
/quit
/endmacro
}
/return

Sub GetTask 
/call GotoBryndenSnow
:CheckInvis
/if (${Me.Invis}) {
/squelch /target clear
/attack on
/delay 2s ${Me.Combat}
/attack off
/delay 2s !${Me.Combat}
/if (${Me.Invis}) /goto :CheckInvis
/squelch /target npc brynden snow
/delay 10
/if (${Target.CleanName.NotEqual[brynden snow]}) /goto :CheckInvis
}
 
/say obtaining
 
/reward 1

:Loop_1
/delay 1
/if (!${Window[TaskSelectWnd].Open}) /goto :Loop_1

/notify TaskSelectWnd TaskList leftmouseup
/notify TaskSelectWnd TaskList listselect ${Window[TaskSelectWnd].Child[TaskList].List[=Mapping Suncrest Ridge]}
/notify TaskSelectWnd AcceptButton leftmouseup

:Loop_2
/delay 1
/if (!${Window[TaskWnd].Open}) /goto :Loop_2

/squelch /windowstate TaskWnd close

|### selos and fade
 /if (${Me.Class[Bard]}) /call bardsong 
/if (${Me.Class[Ranger]} || ${Me.Class[Druid]} || ${Me.Class[Shaman]} || ${Me.Class[Beastlord]}) /call SoW
/return

Sub GotoTheBuriedSea
|### move to dock
/call MoveTo -187 -332
/call MoveTo -184 -480

|### sit and wait for boat
/delay 10
/call WaitForBoat -185 -548

|### get on boat and sit
/call MoveTo -185 -570
/call MoveTo -125 -565
/delay 10

|### wait for zone and dock arrival
:Loop_1
/delay 10
/if (${Zone.Name.NotEqual[the buried sea]}) /goto :Loop_1

/call WaitForBoat 147 2827
/return

Sub GotoSuncrest
|### move off boat
/look 0
/call MoveTo 147 2817
/call MoveTo 20 2980

|### selos and fade
 /if (${Me.Class[Bard]}) /call bardsong 
/if (${Me.Class[Ranger]} || ${Me.Class[Druid]} || ${Me.Class[Shaman]} || ${Me.Class[Beastlord]}) /call SoW
/return

|### run south of katta island
/call MoveTo -1330 350
/return

Sub MapIsland
/call MoveTo -1330 -2437

/call MoveTo -1940 -2575
/call MoveTo -1880 -4130
/call MoveTo -1225 -3594

/call MoveTo -786 -2861
/call MoveTo 100 -3050
/return

Sub GotoBarrenCoast
|### run back to dock
/call MoveTo -1330 350
/call MoveTo 15 2981
/call MoveTo 100 2883


|### sit and wait for boat
/delay 10
/call WaitForBoat 147 2827

|### get on boat and sit
/call MoveTo 147 2817
/call MoveTo 210 2855
/delay 10

|### wait for zone and arrival at dock
:Loop_1
/delay 10
/if (${Zone.Name.NotEqual[barren coast]}) /goto :Loop_1

/call WaitForBoat -185 -548
/return

Sub FinishTask
|### move off boat
/look 0
/call MoveTo -185 -570
/call MoveTo -187 -422

/call GotoBryndenSnow

/hail

/reward 1

|### print progress
/varcalc aas (((${Me.AAPointsTotal} - ${start_aas}) * 100) + (${Me.PctAAExp} - ${start_aaexp})) / 100
/varcalc aas_hr ${aas} / (${Macro.RunTime} / 3600)
/varcalc laps ${laps} + 1

/echo Laps: ${laps} AA Exp: ${aas} AA Per Hour: ${aas_hr}
/return

Sub GotoBryndenSnow
/target brynden snow

:Loop_1
/delay 10
/if (${Target.CleanName.NotEqual[brynden snow]}) /goto :Loop_1

/face
/squelch /moveto id

:Loop_2
/delay 10
/if (${MoveTo.Moving}) /goto :Loop_2
/return

Sub WaitForBoat(int yloc, int xloc)
:Loop
/delay 10
/if (${Target.CleanName.NotEqual[isabeau]} || ${Target.Speed} != 0 || ${Target.Y.Int} != ${yloc} || ${Target.X.Int} != ${xloc}) {
/squelch /target isabeau
/goto :Loop
}
/return

Sub Event_Reward
/varset got_reward true
/return

Sub MoveTo(int yLoc, int xLoc)
	/squelch /moveto loc ${yLoc} ${xLoc}
	
    :MoveToLoop
        /delay 1
    /if (${MoveTo.Moving}) /goto :MoveToLoop
    
    /squelch /moveto off
/return

Sub SoW
/if (!${Me.Gem[Spirit of Wolf]} && ${Me.Book[Spirit of Wolf]}) {
/memspell 2 "Spirit of Wolf"
/delay 5
/delay 5s ${Me.Standing}
/target clear
/delay 5
/cast ${Me.Gem[Spirit of Wolf]}
/return
 
Sub bardsong
/if (!${Me.Gem[Selo's Accelerating Chorus]} && ${Me.Book[Selo's Accelerating Chorus]} && !${Me.Gem[Selo's Song of Travel]}) { 
/if (!${Me.Book[Selo's Song of Travel]}) {
/memspell 2 "Selo's Accelerating Chorus"
} else {
/memspell 2 "Selo's Song of Travel"
}
/delay 5
/delay 5s ${Me.Standing}
/if (${Me.Gem[Selo's Accelerating Chorus]}) /cast ${Me.Gem[Selo's Accelerating Chorus]}
/if (${Me.Gem[Selo's Song of Travel]}) /cast ${Me.Gem[Selo's Song of Travel]}
/return

So what you do is:
/plugin mq2moveutils
/plugin mq2reward
/mac mapping

MQ2Reward.dll goes to main MQ2 folder and mapping.mac to the MQ2/macros/

BTW I bet there are some unused code here so please help me clean it up =)

-decker
 
Last edited:
Re: Mapping Suncrest Ridge (rewrite)

Some personal observations from running the original macro ALOT:

1. I did not use this on a bard, but on a 67 ranger, a 65 chanter, and a 67 shammy.
2. I made separate versions for each class since they use different spells. I also add MQ2BuffToll to the plugin list so I could /clickoff the invis spell when I do the final turn-in (not for the turn-in, but so I can re-request the task).
3. I decided the best time to re-cast spells was after exiting the boat in Buried Sea but before starting the run-around.
4. With the original movement, this left me standing at the foot of the boarding dock, visible to passing mobs while casting.
5. More than a few times, a wandering coralisk would quickly eat me for lunch.
6. Solution: remove one of the movements when exiting the boat, thus casting from the upper portion of the boarding dock and out of mob aggro range. Haven't had a problem there since. Never played a bard, so I suppose this isn't a problem for them.
7. The waypoint by the waterfalls sometimes caused a problem -- I'd get stuck too close to a big rock there, invis would eventually drop --- more lunch for the mobs. I resolved this by moving the waypoint near the falls slightly...no problem since.
8. Spirit of Eagle and Superior Camo for the ranger work well. While Camo does drop unexpectedly at times, SoE seems to be fast enough to blow past the mobs without aggro.
9. Chanter has permanent illusion AA, so scaled wolf, levitation and improved invisibility work with no real issues.
10. For shammy, SoW, levitation and invisibility are as good as I've found. Unfortunately, SoW is slow enough that if invis drops, the mobs are on you.
11. As a general catch-all for the shammy problem as well as any unexpected gotchas, someone was kind enough to code up a plugin that executes instant_camp if your health drops below a stipulated %. /saveme 50 has been added to each version of my macros. I may come back after many hours to "no progress", but at least I didn't die. If anyone us interested in this plugin, see the separate thread in the help section.
12. The only issue I haven't resolved is just bad timing: you can arrive at one of the docks when the boat is stationary but just about to move out. Thus, when you attempt to run onto the boat, it moves out from underneath you, and you never reach the target location, leaving you in an unpredictable location and eventually mob chowder. I haven't found a clean way to recover from this.

Decker, if you have thoughts on #12, I'd love to hear them.
 
Re: Mapping Suncrest Ridge (rewrite)

I have not had that problem (talking about #12)
 
Re: Mapping Suncrest Ridge (rewrite)

Good job, it looks rather close to what I ended up doing. Using SSoT to get around and have resorted to MQ2Reward over MQ2Mouse. Much cleaner and simpler for this mac. However, I did use Sub PrepareRun in my mac so that it didn't matter where Selos was mem'd as far as gems.
 
Re: Mapping Suncrest Ridge (rewrite)

I Might be able to go through it at work and give you some heads up/ideas to make it work for any class with movement buffs :D
 
Re: Mapping Suncrest Ridge (rewrite)

decker said:
Ok first off im rather new at this but i have desided to learn.. So here is my rewrite (with a little help from some RGers). This mac uses no mouse movement and you have to use MQ2Reward. Other then that it use travel song... Hope you can use it... And / or help me make it better...

Ok so in this one you dont need any .inc file it will not sit (i though that made it look to much like a bot. It will check for GMs (need info if i did that part right). Hope you like it...

Rich (BB code):
#turbo
 
#Event Reward "#*#You have successfully been granted your reward for: Mapping Suncrest Ridge#*#"
 
Sub Main
|### no need to change any of these variables
/declare laps int outer 0
/declare aas float outer 0
/declare aas_hr float outer 0
 
/declare start_aaexp float outer ${Me.PctAAExp}
/declare start_aas int outer ${Me.AAPointsTotal}
 
/declare got_reward bool outer false
 
 
/moveto 20
 
:Loop
/call GMCheck
/call GetTask
/call GotoTheBuriedSea
/call GMCheck
/call GotoSuncrest
/call MapIsland
/call GotoBarrenCoast
/call GMCheck
/call FinishTask
/goto :Loop
/return
 
Sub GMCheck
/if (${Spawn[gm].ID}) {
/beep
/beep
/beep
/echo GM has entered the zone!
/echo FUCK HIM but ending the macro...
/keypress forward
/keypress back
/quit
/endmacro
}
/return
 
Sub GetTask
/call GotoBryndenSnow
 
/say obtaining
 
/reward 1
 
:Loop_1
/delay 1
/if (!${Window[TaskSelectWnd].Open}) /goto :Loop_1
 
/notify TaskSelectWnd TaskList leftmouseup
/notify TaskSelectWnd TaskList listselect ${Window[TaskSelectWnd].Child[TaskList].List[=Mapping Suncrest Ridge]}
/notify TaskSelectWnd AcceptButton leftmouseup
 
:Loop_2
/delay 1
/if (!${Window[TaskWnd].Open}) /goto :Loop_2
 
/squelch /windowstate TaskWnd close
 
|### selos and fade
/cast 2
/return
 
Sub GotoTheBuriedSea
|### move to dock
/call MoveTo -187 -332
/call MoveTo -184 -480
 
|### sit and wait for boat
/delay 10
/call WaitForBoat -185 -548
 
|### get on boat and sit
/call MoveTo -185 -570
/call MoveTo -125 -565
/delay 10
 
|### wait for zone and dock arrival
:Loop_1
/delay 10
/if (${Zone.Name.NotEqual[the buried sea]}) /goto :Loop_1
 
/call WaitForBoat 147 2827
/return
 
Sub GotoSuncrest
|### move off boat
/look 0
/call MoveTo 147 2817
/call MoveTo 20 2980
 
|### selos and fade
/cast 2
 
|### run south of katta island
/call MoveTo -1330 350
/return
 
Sub MapIsland
/call MoveTo -1330 -2437
 
/call MoveTo -1940 -2575
/call MoveTo -1880 -4130
/call MoveTo -1225 -3594
 
/call MoveTo -786 -2861
/call MoveTo 100 -3050
/return
 
Sub GotoBarrenCoast
|### run back to dock
/call MoveTo -1330 350
/call MoveTo 15 2981
/call MoveTo 100 2883
 
 
|### sit and wait for boat
/delay 10
/call WaitForBoat 147 2827
 
|### get on boat and sit
/call MoveTo 147 2817
/call MoveTo 210 2855
/delay 10
 
|### wait for zone and arrival at dock
:Loop_1
/delay 10
/if (${Zone.Name.NotEqual[barren coast]}) /goto :Loop_1
 
/call WaitForBoat -185 -548
/return
 
Sub FinishTask
|### move off boat
/look 0
/call MoveTo -185 -570
/call MoveTo -187 -422
 
/call GotoBryndenSnow
 
/hail
 
/reward 1
 
|### print progress
/varcalc aas (((${Me.AAPointsTotal} - ${start_aas}) * 100) + (${Me.PctAAExp} - ${start_aaexp})) / 100
/varcalc aas_hr ${aas} / (${Macro.RunTime} / 3600)
/varcalc laps ${laps} + 1
 
/echo Laps: ${laps} AA Exp: ${aas} AA Per Hour: ${aas_hr}
/return
 
Sub GotoBryndenSnow
/target brynden snow
 
:Loop_1
/delay 10
/if (${Target.CleanName.NotEqual[brynden snow]}) /goto :Loop_1
 
/face
/squelch /moveto id
 
:Loop_2
/delay 10
/if (${MoveTo.Moving}) /goto :Loop_2
/return
 
Sub WaitForBoat(int yloc, int xloc)
:Loop
/delay 10
/if (${Target.CleanName.NotEqual[isabeau]} || ${Target.Speed} != 0 || ${Target.Y.Int} != ${yloc} || ${Target.X.Int} != ${xloc}) {
/squelch /target isabeau
/goto :Loop
}
/return
 
Sub Event_Reward
/varset got_reward true
/return
 
Sub MoveTo(int yLoc, int xLoc)
	/squelch /moveto loc ${yLoc} ${xLoc}
 
:MoveToLoop
/delay 1
/if (${MoveTo.Moving}) /goto :MoveToLoop
 
/squelch /moveto off
/return

So what you do is:
/plugin mq2reward
/mac mapping
(Having Selo's Song of Travel in song slot #2)

MQ2Reward.dll goes to main MQ2 folder and mapping.mac to the MQ2/macros/

BTW I bet there are some unused code here so please help me clean it up =)

-decker
Change
Rich (BB code):
/cast 2
to something like
Rich (BB code):
 /if (${Me.Class[Bard]}) /call bardsong 
/if (${Me.Class[Ranger]} || ${Me.Class[Druid]} || ${Me.Class[Shaman]} || ${Me.Class[Beastlord]}) /call SoW
/return
 
Sub SoW
/if (!${Me.Gem[Spirit of Wolf]} && ${Me.Book[Spirit of Wolf]}) {
/memspell 2 "Spirit of Wolf"
/delay 5
/delay 5s ${Me.Standing}
/target clear
/delay 5
/cast ${Me.Gem[Spirit of Wolf]}
/return
 
Sub bardsong
/if (!${Me.Gem[Selo's Accelerating Chorus]} && ${Me.Book[Selo's Accelerating Chorus]} && !${Me.Gem[Selo's Song of Travel]} && !${Me.Book[Selo's Song of Travel]}) {
/if (!${Me.Book[Selo's Song of Travel]}) {
/memspell 2 "Selo's Accelerating Chorus"
} else {
/memspell 2 "Selo's Song of Travel"
}
/delay 5
/delay 5s ${Me.Standing}
/if (${Me.Gem[Selo's Accelerating Chorus]}) /cast ${Me.Gem[Selo's Accelerating Chorus]}
/if (${Me.Gem[Selo's Song of Travel]}) /cast ${Me.Gem[Selo's Song of Travel]}
/return

I'd also change
Rich (BB code):
 Sub GetTask 
/call GotoBryndenSnow
 
/say obtaining
 
/reward 1
to
Rich (BB code):
 Sub GetTask 
/call GotoBryndenSnow
:CheckInvis
/if (${Me.Invis}) {
/squelch /target clear
/attack on
/delay 2s ${Me.Combat}
/attack off
/delay 2s !${Me.Combat}
/if (${Me.Invis}) /goto :CheckInvis
}
/squelch /target npc brynden snow
/delay 10
/if (${Target.CleanName.NotEqual[brynden snow]}) /goto :CheckInvis
 
 
/say obtaining
 
/reward 1
don't forget to include everything in the sub after the /reward... .just truncated for easier c/p
 
OK incluted it hope I did it right =)

Need some feedback from other classes then bards too..
 
Druids can port to TBS and gate back. May be nice to add that functionality.
 
Re: Mapping Suncrest Ridge (rewrite)

@Warrene

"12. The only issue I haven't resolved is just bad timing: you can arrive at one of the docks when the boat is stationary but just about to move out. Thus, when you attempt to run onto the boat, it moves out from underneath you, and you never reach the target location, leaving you in an unpredictable location and eventually mob chowder. I haven't found a clean way to recover from this."


TBH i have not run into this problem with this macro.. I leveled from 71-73 with it and have not have any problems so far.

But i can take a look at it when MQ2 is safe again.
 
If you read close the 1st post has been updated on the 3rd for druids.rangers,shamans,beast lords. So all you need is update for the Warr. And I would like one also :P
 
Hi i was wondering if someone would write one for a chanter also. Saw that it was done and i would do it if i knew how ,but i have no ideas on how. So if you have some time please up date it for me:)
 
ok another question, where does this start exactly, and how to get to it? lol
 
Starts in Barren Coast. Stand in front of the task giver named Brynden Snow. He is in one of the tents.
 
gives me a bunch of errors when i try running it "failed to parse" etc unparsable calculation... any ideas?
 
kk got it running, but the pathing seems weird, it zones into katta, and just runs straight...
 
I play a bst i get the macro loaded but it wount cast lev/sow/invis and the pathing seems kind of weird also seems to be running ito walls alot. Any idea how to fix this thanks!
 
My internet is down atm cos im moving will look at it when its up again. Sorry

-decker
 
I set this up to run on a toon without SOW and natural Lev abilities. I used the MQ2Cast plugin along with MQ2Exchange in order to use lev cloak on a cleric and appears to work fine. Defenitely a doable macro with a little understanding for anyone. Thanks Decker.
 
Don't be mad... don't flame... I've been sick and the dog ate my homework and I was kidnapped by aliens and....

uh.. What is /moveto and where is it found ?
 
type /plugin mq2moveutils and /moveto is a command that moves to the current target or location that you set.
 
can someone please tell me how to make this work on a sk? i shrouded to rouge form and just get error could not phrase? Or if someone has one for a sk please pm me thank you
 
lighthouse said:
can someone please tell me how to make this work on a sk? i shrouded to rouge form and just get error could not phrase? Or if someone has one for a sk please pm me thank you
whats the error?

dont forget to /plugin mq2moveutils as well.
 
I saw on here a rouge could do this mac but i cant seem to get it to work any help would be great
 
Just a heads up (since i made a lot of them) 1 or 2 ppl i heard about got suspented for macroing in barrens / TBS.. im still going strong though!!!
 
wanted to try to help with the warrior/rogue/monk version using potion belts:

Rich (BB code):
/if (${Me.Class[Warrior]} || ${Me.Class[Rogue]} || ${Me.Class[Monk]}) /call Belt


Rich (BB code):
Sub Belt


/if (!${Me.Buff[Spirit of Wolf].ID}) {
	/echo --------------------------------
        /echo Clicking SoW Potion!
	/echo --------------------------------
	/potionbelt Activate 1
	/delay 2s
}


Make sure your SoW pots aare in Potion Belt Slot 1


This should work well, but /shrug I haven't tried it yet.


Hope this helps ya complete your Macro for all classes bro :D

I use this code in my warrior macro to click DS potions.
 
Last edited:
prolly could add a few of the other INT caster types to the list and not have to change a thing in the sub ;)
 
Here is the Macro for all classes. Check the sub calls to see if I missed one, please. Tell me if it's doing what it's supposed to for Melee, Knights, and INT casters (i.e. clicking SoW pots in potion belt slot 1 when no sow is present.)

Rich (BB code):
#turbo

#Event Reward "#*#You have successfully been granted your reward for: Mapping Suncrest Ridge#*#"

Sub Main
|### no need to change any of these variables
/declare laps int outer 0
/declare aas float outer 0
/declare aas_hr float outer 0

/declare start_aaexp float outer ${Me.PctAAExp}
/declare start_aas int outer ${Me.AAPointsTotal}

/declare got_reward bool outer false


/moveto 20

:Loop
/call GMCheck
/call GetTask
/call GotoTheBuriedSea
/call GMCheck
/call GotoSuncrest
/call MapIsland
/call GotoBarrenCoast
/call GMCheck
/call FinishTask
/goto :Loop
/return

Sub GMCheck
/if (${Spawn[gm].ID}) {
/beep
/beep
/beep
/echo GM has entered the zone!
/echo FUCK HIM but ending the macro...
/keypress forward
/keypress back
/quit
/endmacro
}
/return

Sub GetTask 
/call GotoBryndenSnow
:CheckInvis
/if (${Me.Invis}) {
/squelch /target clear
/attack on
/delay 2s ${Me.Combat}
/attack off
/delay 2s !${Me.Combat}
/if (${Me.Invis}) /goto :CheckInvis
/squelch /target npc brynden snow
/delay 10
/if (${Target.CleanName.NotEqual[brynden snow]}) /goto :CheckInvis
}
 
/say obtaining
 
/reward 1

:Loop_1
/delay 1
/if (!${Window[TaskSelectWnd].Open}) /goto :Loop_1

/notify TaskSelectWnd TaskList leftmouseup
/notify TaskSelectWnd TaskList listselect ${Window[TaskSelectWnd].Child[TaskList].List[=Mapping Suncrest Ridge]}
/notify TaskSelectWnd AcceptButton leftmouseup

:Loop_2
/delay 1
/if (!${Window[TaskWnd].Open}) /goto :Loop_2

/squelch /windowstate TaskWnd close

|### selos and fade
 /if (${Me.Class[Bard]}) /call bardsong 
/if (${Me.Class[Ranger]} || ${Me.Class[Druid]} || ${Me.Class[Shaman]} || ${Me.Class[Beastlord]}) /call SoW
/if (${Me.Class[Warrior]} || ${Me.Class[Rogue]} || ${Me.Class[Monk]} || ${Me.Class[Enchanter]} || ${Me.Class[Necromancer]} || ${Me.Class[Wizard]} || ${Me.Class[Mage]} || ${Me.Class[Berzerker]} || ${Me.Class[Shadowknight]} || ${Me.Class[Paladin]}) /call Belt
/return

Sub GotoTheBuriedSea
|### move to dock
/call MoveTo -187 -332
/call MoveTo -184 -480

|### sit and wait for boat
/delay 10
/call WaitForBoat -185 -548

|### get on boat and sit
/call MoveTo -185 -570
/call MoveTo -125 -565
/delay 10

|### wait for zone and dock arrival
:Loop_1
/delay 10
/if (${Zone.Name.NotEqual[the buried sea]}) /goto :Loop_1

/call WaitForBoat 147 2827
/return

Sub GotoSuncrest
|### move off boat
/look 0
/call MoveTo 147 2817
/call MoveTo 20 2980

|### selos and fade
 /if (${Me.Class[Bard]}) /call bardsong 
/if (${Me.Class[Ranger]} || ${Me.Class[Druid]} || ${Me.Class[Shaman]} || ${Me.Class[Beastlord]}) /call SoW
/if (${Me.Class[Warrior]} || ${Me.Class[Rogue]} || ${Me.Class[Monk]} || ${Me.Class[Enchanter]} || ${Me.Class[Necromancer]} || ${Me.Class[Wizard]} || ${Me.Class[Mage]} || ${Me.Class[Berzerker]} || ${Me.Class[Shadowknight]} || ${Me.Class[Paladin]}) /call Belt
/return

|### run south of katta island
/call MoveTo -1330 350
/return

Sub MapIsland
/call MoveTo -1330 -2437

/call MoveTo -1940 -2575
/call MoveTo -1880 -4130
/call MoveTo -1225 -3594

/call MoveTo -786 -2861
/call MoveTo 100 -3050
/return

Sub GotoBarrenCoast
|### run back to dock
/call MoveTo -1330 350
/call MoveTo 15 2981
/call MoveTo 100 2883


|### sit and wait for boat
/delay 10
/call WaitForBoat 147 2827

|### get on boat and sit
/call MoveTo 147 2817
/call MoveTo 210 2855
/delay 10

|### wait for zone and arrival at dock
:Loop_1
/delay 10
/if (${Zone.Name.NotEqual[barren coast]}) /goto :Loop_1

/call WaitForBoat -185 -548
/return

Sub FinishTask
|### move off boat
/look 0
/call MoveTo -185 -570
/call MoveTo -187 -422

/call GotoBryndenSnow

/hail

/reward 1

|### print progress
/varcalc aas (((${Me.AAPointsTotal} - ${start_aas}) * 100) + (${Me.PctAAExp} - ${start_aaexp})) / 100
/varcalc aas_hr ${aas} / (${Macro.RunTime} / 3600)
/varcalc laps ${laps} + 1

/echo Laps: ${laps} AA Exp: ${aas} AA Per Hour: ${aas_hr}
/return

Sub GotoBryndenSnow
/target brynden snow

:Loop_1
/delay 10
/if (${Target.CleanName.NotEqual[brynden snow]}) /goto :Loop_1

/face
/squelch /moveto id

:Loop_2
/delay 10
/if (${MoveTo.Moving}) /goto :Loop_2
/return

Sub WaitForBoat(int yloc, int xloc)
:Loop
/delay 10
/if (${Target.CleanName.NotEqual[isabeau]} || ${Target.Speed} != 0 || ${Target.Y.Int} != ${yloc} || ${Target.X.Int} != ${xloc}) {
/squelch /target isabeau
/goto :Loop
}
/return

Sub Event_Reward
/varset got_reward true
/return

Sub MoveTo(int yLoc, int xLoc)
	/squelch /moveto loc ${yLoc} ${xLoc}
	
    :MoveToLoop
        /delay 1
    /if (${MoveTo.Moving}) /goto :MoveToLoop
    
    /squelch /moveto off
/return

Sub Belt
/if (!${Me.Buff[Spirit of Wolf].ID}) {
	/echo --------------------------------
        /echo Clicking SoW Potion!
	/echo --------------------------------
	/potionbelt Activate 1
	/delay 2s
}

Sub SoW
/if (!${Me.Gem[Spirit of Wolf]} && ${Me.Book[Spirit of Wolf]}) {
/memspell 2 "Spirit of Wolf"
/delay 5
/delay 5s ${Me.Standing}
/target clear
/delay 5
/cast ${Me.Gem[Spirit of Wolf]}
/return
 
Sub bardsong
/if (!${Me.Gem[Selo's Accelerating Chorus]} && ${Me.Book[Selo's Accelerating Chorus]} && !${Me.Gem[Selo's Song of Travel]}) { 
/if (!${Me.Book[Selo's Song of Travel]}) {
/memspell 2 "Selo's Accelerating Chorus"
} else {
/memspell 2 "Selo's Song of Travel"
}
/delay 5
/delay 5s ${Me.Standing}
/if (${Me.Gem[Selo's Accelerating Chorus]}) /cast ${Me.Gem[Selo's Accelerating Chorus]}
/if (${Me.Gem[Selo's Song of Travel]}) /cast ${Me.Gem[Selo's Song of Travel]}
/return


Feedback GREATLY needed.
 
i might have done something wrong but i copied and pasted into notepad and saved in macros went to use and said mac could not be opened??
 
right click and go to properties. Is it saved as (whatever you want).mac or (whatever you want).mac.txt?


did you even rename the file to .mac?
 
Did they change the boat speed. Can't seem to catch it right away anymore after reward is picked. Pulls away before i get to dock??
 
I would like to add my voice to Decker's. Use of this mac for extended periods of time is ill advised. People ARE being suspended in TBS for macroing this mission. That being said, would be interesting (but HARD) to see someone code in 3 varying paths for this mac, and having it choose a path from the 3 randomly.

Would make it harder to spot in logs, I'd bet. . .
 
not so sure it would be hard at all

But smarter thing would be to use the movement macros.. (forget name) advpath or something

and have each person create their own path to the points.

that way each persons macro is slightly different.

but for anyone that has learned to disect macros.. pathing is very easy to do

change a few coordinates and blamo .. your all done

8-)

ARMY
 
Mapping Suncrest Ridge (rewrite) (for Bards, Druids, Rng, Shms, bsts)

Users who are viewing this thread

Back
Top
Cart