I was uncomfortable using warp in Nedaria's Landing so I made this script to run me to the dock, get the mission, run back to the cave, zone in, and run to the rat room.
I box a group of characters so I have code in here to detect when my bard has gotten the mission and to zone the group in after he zones in. I also use the MQ2Irc plugin to monitor my group. If you don't use the IRC plugin remove all the /i say lines or change them /gsay. You'll need MQ2MoveUtils for this to work.
In whatever macro you use, just add at the top:
#Include common.inc
And in your Sub Main do a
/call CommonDeclares
Save this file as common.inc
I box a group of characters so I have code in here to detect when my bard has gotten the mission and to zone the group in after he zones in. I also use the MQ2Irc plugin to monitor my group. If you don't use the IRC plugin remove all the /i say lines or change them /gsay. You'll need MQ2MoveUtils for this to work.
In whatever macro you use, just add at the top:
#Include common.inc
And in your Sub Main do a
/call CommonDeclares
Save this file as common.inc
Rich (BB code):
#event Dzquit "#*#You have entered Nedaria's Landing#*#"
#event PoK "You have entered The Plane of Knowledge."
#event Fhalls "You have entered The Forgotten Halls."
#event Movedone "Arrived at MoveTo location"
Sub CommonDeclares
/declare ZoneID int outer ${Zone.ID}
/declare moveflag int outer 0
/declare wezoned int outer 0
/echo Finished with Common Declares
/return
Sub KillMacro
/echo Macro is now shutting down...
/delay 1s
/dism
/delay 1s
/sit
/delay 1s
/camp
/delay 1s
/endmacro
/return
Sub event_Dzquit
/declare i int local
/doevents flush
/i say We got booted to Nedaria
/varset wezoned 1
/dism
/declare bardinzone local TRUE
| If I'm not the bard, skip down to waiting for him to get the mission and zone in.
/if (!${Me.Name.Equal[bard]}) {
/delay 30s
/goto :others
}
/twist stop
/delay 1s
| Selo's song of travel is in Gem9 for me.
/twist 9
/look 20
/moveto loc 1591 -613
/i say Moving to infront of cave passage (interior)
/call Movetoloop
/look 20
/moveto loc 1555 -495
/i say Moving to middle of cave passage
/call Movetoloop
/look 20
/moveto loc 1267 -438
/i say Moving to edge of water outside of cave
/call Movetoloop
| Make sure I'm not crouched
/keypress X
/delay 1s
/keypress X
/look 20
/moveto loc 293 643
/i say Moving to middle of forest at an angle to Eldros
/call Movetoloop
/look 20
/moveto loc 304 1589
/i say Moving to Eldros
/call Movetoloop
/twist stop
/delay 25s
/target eldros
/say Interested in visiting
| Sometimes when I land I wind up in the Duck position. This crouches and stands back up.
/keypress X
/delay 1s
/keypress X
/twist 9
/look 20
/moveto loc 293 643
/i say Moving to middle of forest heading back to cave.
/call Movetoloop
/look 20
/moveto loc 1267 -438
/i say Moving to edge of water outside of cave
/call Movetoloop
/look 20
/moveto loc 1555 -495
/i say Moving to middle of cave passage
/call Movetoloop
/look 20
:others
/if (${Zone.ID}==998) /return
/doevents
| Wait till the bard is no longer in Nedaria, this means the mission has been accepted and he's in FHalls
/if (!${Me.Name.Equal[bard]} && ${bardinzone}) {
/target bard
/if (!${Target.ID}) /varset bardinzone FALSE
/delay 5s
/goto :others
}
/moveto loc 1591 -613
/i say Moving to infront of cave passage (interior)
/call Movetoloop
/delay 2s
| If you have a pet and move right over to the rock and hit U, you'll target your pet instead of the rock.
| This moves the pet out of the way.
/pet sit
/look 20
/moveto loc 1544 -665
/echo Moving to stone
/call Movetoloop
/face loc 1540, -675
/look 0
| Target the rock
/doortarget
/face
/delay 5s
/keypress u
/delay 5s
/keypress u
/delay 5s
/keypress u
/if (${Zone.ID}!=998) /goto :others
/return
Sub event_Fhalls
/doevents flush
/look 0
/moveto loc -813 -25
/i say Moving to doorway near harindi guide
/call Movetoloop
/moveto loc -810 43
/i say Moving past doorway near harindi guide
/call Movetoloop
/moveto loc -596 44
/i say Moving to top of stairs near rat room
/call Movetoloop
/if (${Me.Name.Equal[Toon1]}) {
/moveto loc -605 128
/i say Moving into the rat room [Toon1]
/call Movetoloop
}
/if (${Me.Name.Equal[Toon2]}) {
/moveto loc -590 179
/i say Moving into the rat room [Toon2]
/call Movetoloop
}
/if (${Me.Name.Equal[Toon3]}) {
/moveto loc -603 140
/i say Moving into the rat room [Toon3]
/call Movetoloop
}
/if (${Me.Name.Equal[Toon4]}) {
/moveto loc -597 160
/i say Moving into the rat room [Toon4]
/call Movetoloop
}
/if (${Me.Name.Equal[Toon5]}) {
/moveto loc -590 140
/i say Moving into the rat room [Toon5]
/call Movetoloop
}
/delay 40s
:Waitforall
/if (${SpawnCount[pc]}!=5) {
/i say Waiting for everyone to zone in.
/delay 10s
/goto :Waitforall
}
/i say Back in Forgotten Halls, Starting fighting again in 60 seconds!
/delay 60s
/if (${Me.Name.Equal[bard]}) /twist 1 2 3 4 5
/varset wezoned 0
/return
Sub Movetoloop
:waitforit
/if (${moveflag}==0) {
/delay 2s
| /echo We're in the loop waiting for arrival
/doevents
/goto :waitforit
}
/varset moveflag 0
/return
Sub event_Movedone
/varset moveflag 1
/echo Arrived at waypoint!
/return
Sub event_PoK
/call KillMacro
/return



