Mac for changing Guild Hall portal

Blujahz

Your spell fizzled!
Joined
Feb 9, 2007
Messages
553
Reaction score
1
Points
0
I always found it to be a major PITA to change the guild hall portal, so I wrote/modified a mac to do it and thought I'd share since it works very well for me.

I also use the AdvPath plugin to run around the wall into the teleporter. I have commented out that line in the mac if you don't use the plugin, but if you do, I have included the AdvPath info below (just uncomment the /play command on the 2nd to last line).

Code:
| Portal.Mac v1.0
| July 13, 2008
|
| Plugins used: mq2moveutils, mq2advpath (optional)
|
| To use: Stand near (in line of sight) Zeflmin in GH.
|         Type /mac portal [location]
|         The [location] can be a partial name of the stone, i.e. Katta, Mesa, Guild, etc.
|         If [location] is not specified, Dragonscale Hills is default


Sub Main

	/declare stone string local

	/if (${Defined[Param0]}) {
		/varset stone ${Param0}
		/echo Setting portal to '${stone}'
	} else {
		/varset stone Dragonscale
		/echo No stone selected...default to Dragonscale
	}

	/if (!${Target.ID} || !${Target.CleanName.Equal[Zeflmin Werlikanin]}) {
		/squelch /target clear
		/squelch /target Zeflmin Werlikanin
	}
	
	/if (${Target.Distance}>19) /squelch /moveto id
	:MoveLoop	
	/if (${MoveTo.Moving}) {
		/delay 1		
		/goto :MoveLoop
	}
	
	/face fast

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Buy port stone
|
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	/nomodkey   /click right target
	/delay 3s ${Window[MerchantWnd].Open}
	/delay 2s
	/notify MerchantWnd MW_ItemList listselect ${Window[MerchantWnd].Child[MW_ItemList].List[${stone},2]}
	/notify MerchantWnd MW_ItemList leftmouse ${Window[MerchantWnd].Child[MW_ItemList].List[${stone},2]}
	/ctrl /notify MerchantWnd MW_Buy_Button leftmouseup

	/delay 1s
	/notify MerchantWnd MW_Done_Button leftmouseup

|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Give port stone
|
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

	/ctrl /itemnotify ${FindItem[${stone}].InvSlot} leftmouseup
	/delay 2s ( ${Cursor.ID} )

	/target Zeflmin Werlikanin
	/click left target 

	/delay 5s (${Window[GiveWnd].Open})
        /notify GiveWnd GVW_Give_Button leftmouseup

	/if ( ${Window[InventoryWindow].Open} ) /keypress inventory 

	/delay 1s
|	/play portal

/return

If you use mq2advpath plugin, just add this code to your MQ2/MQ2AdvPath/guildhall.ini file:

Code:
[portal]
1=-60.02 -96.58 6.78  
2=-50.30 -93.37 6.52 
3=-45.30 -93.09 6.43 
4=-21.49 -131.37 5.65