Scouting Madiens Macro Help please ?

hellnation13

New member
Joined
May 19, 2009
Messages
22
Reaction score
0
Points
0
Age
41
I can't get this macro to work....can any one help me out on this ?




Code:
|*****************************************************************************

The variable 'GL_ii_use' is important if you can't cast fixed invis.  Be sure
it's set to true (unless you're a bard or rogue) if you can't cast fixed invis.  
Also, be sure 'GL_ivu_use' is set to true to use IVU unless you can drop aggro.

You need 3 abilities for this task: levitation, invis and IVU.  (IVU is 
probably optional for a few classes.)  If you can't cast any of these spells 
yourself, then you will need to use potions.  And lots of them.  You will need 
approx 40 Cloudy Potions per hour.  I buy them from a vendor in PoK for 10pp 
each.  You'll need around 20 IVU potions per hour, and 4 lev potions per hour.  
Obviously if you can cast those spells yourself then you don't need the 
potions.

If you're a rogue it will use SoS and you don't need invis or IVU.

===============================================================================

The overall plan of this macro is to repeatedly do the task.  But since this is 
an AFK macro I decided it would be good to make it pause occasionally so that 
it wouldn't be too obvious that a macro was running.  You can adjust these 
pause times by modifying the variables below.  The largest default pause time 
is 'GL_iter_pause_fix'.  This is the fixed pause amount of time it will pause 
after each iteration.  You can increase or shorten any of the pause times if 
you wish.

NOTE: 
Most times are in 10ths of a second.  So, a pause time of 10 = 1 second, 
25 = 2.5 seconds, etc...  The only exception to this is the refresh variables, 
such as 'GL_lev_refresh'.  Those are in ticks.  It's confusing but that's the 
way MQ2 and EQ work because buffs last ticks in length.  So, if you want it to 
refresh levitation if it has less than 3 minutes left, you would set 
'GL_lev_refresh' to 30.  A tick is 6 seconds, so 30 ticks is 180 seconds, or 3 
minutes.

The refresh variables should be longer than it takes to complete the task.  So,
if it takes 3 minutes, then set it to something like 35.  If it takes 5 minutes 
then set it to around 55.  If the buff doesn't last until the task is finished 
then it will drop and you could be in trouble.

If you already have the task when you run the macro, it will not work.  You 
must drop the task first then re-start the macro.

Potion belt slots are numbered form 0.  So slot 0 is the first potion belot 
slot and so on.

Inventory slots are numbered from 1 and run through 8.  So use pack1 - pack8
for inventory slots.

This macro uses 2 docracks: NoEncumber and EB.  NoEncumber is useful if you 
have low strength and get a lot of plat.  This way your run speed will stay 
constant.  EB is needed because if you go into the water and don't have an EB 
item or AA, you may drown.  Some people may not need these and you can comment 
them out if you want.

The macro will automatically check to see if you are in the proper zone.  If it 
detects that you are moving or casting in the wrong zone it will exit.

It also does a simple GM check "${SpawnCount[gm]} > 0" and will end the macro
if it detects a GM this way.  If you want to change this behavior, look for
a Sub named GMCheck in the Utilities.inc file and change it.  Keep in mind
that this Sub is called very frequently.  It's best to exit the macro, zone, 
pause or do something like that.

Be sure to read the variable descriptions section below and adjust as needed.

If you need to cast a potion that isn't in your potion belt, then set the 
'_pbslot' variable to NULL and set the '_slot' variable to whatever slot to 
cast from.  It will automatically swap the potion to that slot and then cast.
Be sure not to have a bag in that slot, ot it may cause problems.

If you want to cast a potion from the potion belt, then set the '_slot' 
variable to NULL and set the '_pbslot' to whatever potion belt slot you need to
use.

You can use the exact casting time (in 10ths of a second).  It will always wait
an extra amout of time for the buff to land.  This extra time is 'GL_cast_lag'.
Adjust that variable if you need, but in general a 'GL_cast_lag' if 30 seems to 
work for most ppl.

You can adjust the 'GL_speed_fast' variable so that you run the route faster.  
I set mine to 1.6 which makes my run speed 255.  (You can find your run speed 
by typing /echo ${Me.Speed} in the MQ chat window.)  If you run it too fast it 
may miss updates so don't overdo it.

FYI: 
Bards run at max speed of 270 (with all AAs and Selo's).  You may draw unwanted
attention to yourself if you go faster than 270.  Personally I would stay below 
250-260, and even lower around other PCs.  This is why I added the 
'GL_speed_norm' variable.  It uses this speed setting at once it gets back to
the task giver, since their are typically more toons around that area.

NOTE:
If you have a run speed enhancing AA, item or spell you can define it with the 
'GL_run_' variables.  WARNING!!!  The MQ2SpeedUtils /speed command adds to that 
movement speed.  For instance, if you cast SoW then use /speed 1.4, your 
movement speed would be much faster than 1.4 because it's now combined with 
SoW.  (See the FYI above about max bard movement speed.)  Be careful when using
a run speed enhancing AA, item os spell if you are using MQ2SpeedUtils.

The easiest way to handle run speed is to leave 'GL_run_use' set to false, and
adjust 'GL_speed_norm' and 'GL_speed_fast' to suit your needs.  The reason I 
added 'GL_run_use' is so that people who either don't want to use MQ2SpeedUtils
(like bards) or for people who have something such as a fast horse AA.

===============================================================================

NOTE:
I put all my macros in a subdirectory named 'oortcloud' to keep my stuff 
separate.  You don't have to do this however.  But you'll need to change 1 line 
below if you don't.  Change this:

#include oortcloud/Utilities.inc

to this:

#include Utilities.inc

The task starts in The Buried Sea.  The task giver is Captain Pete.  It's best 
to start the macro when you're on the south side of him.  There are a couple of 
roamers that path just to the north of him.  When you are south of him near the 
water, it seems to be out of their aggro range.  Just park yourself near him 
and start the macro with:

/macro oortcloud/ScoutMaidens

Or if you don't create the oortcloud directory then:

/macro ScoutMaidens

--Oort


###############################################################################


Required Plugins
----------------
    MQ2MoveUtils
    MQ2Exchange
    MQ2Reward    
    
Optional Plugins
----------------
    MQ2DoCrack
    MQ2SpeedUtils


Variable Descriptions
---------------------

	GL_max_iters      - number of iterations to do
	GL_max_laps       - number of laps to do per iteration
	GL_camp_out       - camp out when finished?	
    GL_reward_option  - the option you need to select to get reward	
	GL_speed_norm     - /speed setting when task completes
	GL_speed_fast     - /speed setting when running the updates

	GL_debug          - set to true to print out debug info, otherwise false
	GL_move_away      - set to true to move away during a pause, otherwise false
	GL_immobilize     - after you stop moving, time to delay before casting
	GL_cast_lag       - extra delay to wait for buff to land
   	GL_moveto_sens    - /moveto sensitivity
	GL_pc_radius      - PC check radius size   	
	GL_health_limit   - med when health is below this PCT
	GL_mana_limit     - med when mana is below this PCT
	GL_iter_sit       - sit during the iteration pause? (0 = false, 1 = true, 2 = random)
	
	GL_pc_pause       - max time to pause when a PC is near task giver
	GL_nat_pause_fix  - natural pause time - fixed amount
	GL_nat_pause_rnd  - natural pause time - random amount	    
	GL_lap_pause_fix  - fixed time to pause after each lap
	GL_lap_pause_rnd  - random time to pause after each lap
	GL_iter_pause_fix - fixed time to pause after each iteration
	GL_iter_pause_rnd - random time to pause after each iteration	
		
	GL_break_aa       - AA to use to break invis
	GL_break_spell    - spell to use to break invis
	GL_break_item     - clicky item to use to break invis
	GL_break_slot     - clicky slot for break invis item
	
	GL_ii_use         - use instant invis?
	GL_ii_aa          - AA to use for instant invis
	GL_ii_spell       - spell to use for instant invis
	GL_ii_item        - item to use for instant invis
	GL_ii_slot        - slot to use for instant invis
	GL_ii_pbslot      - potion belt slot to use for instant invis item	

	GL_invis_use      - use invis?
	GL_invis_aa       - AA to use to for invis
	GL_invis_spell    - spell to use for invis
	GL_invis_item     - item to use for invis
	GL_invis_slot     - slot to use for invis item
	GL_invis_pbslot   - potion belt slot to use for invis item
	GL_invis_cast     - casting time of invis AA, spell, or item
	GL_invis_refresh  - dont cast invis if this many ticks left on current invis

	GL_ivu_use        - use IVU?
	GL_ivu_aa         - AA to use to for IVU
	GL_ivu_spell      - spell to use for IVU
	GL_ivu_item       - item to use for IVU
	GL_ivu_slot       - slot to use for IVU item
	GL_ivu_pbslot     - potion belt slot to use for IVU item
	GL_ivu_cast       - casting time of IVU AA, spell, or item
	GL_ivu_refresh    - dont cast IVU if this many ticks left on current IVU
  
  	GL_lev_use        - use levitation?
  	GL_lev_aa         - AA to use to for lev
	GL_lev_spell      - spell to use for lev
	GL_lev_item       - item to use for lev
	GL_lev_slot       - slot to use for lev item
	GL_lev_pbslot     - potion belt slot to use for lev item
	GL_lev_cast       - casting time of lev AA, spell, or item
	GL_lev_refresh    - dont cast lev if this many ticks left on current lev  

  	GL_run_use        - use run speed? (see important notes above)
  	GL_run_aa         - AA to use to for run speed
	GL_run_spell      - spell to use for run speed
	GL_run_item       - item to use for run speed
	GL_run_slot       - slot to use for run speed item
	GL_run_pbslot     - potion belt slot to use for run speed item
	GL_run_cast       - casting time of run speed AA, spell, or item
	GL_run_refresh    - dont cast run speed if this many ticks left on current run speed


*****************************************************************************|


#turbo

#include oortcloud/Utilities.inc

Sub Main
	/call Init
	
	|###  customize these so suit your needs
	/declare  GL_max_iters       int outer     10
	/declare  GL_max_laps        int outer     200
        /declare  GL_camp_out        bool outer    false	
        /declare  GL_reward_option   int outer     1
        /declare  GL_speed_norm      float outer   1.2
	/declare  GL_speed_fast      float outer   1.6
	
	|###  these are less commonly modified but you can change if you need
	/declare  GL_debug           bool outer    false
	/declare  GL_move_away       bool outer    true
	/declare  GL_immobilize      int outer     20
	/declare  GL_cast_lag        int outer     30
   	/declare  GL_moveto_sens     int outer     20
	/declare  GL_pc_radius       int outer     150
	/declare  GL_health_limit    int outer     90	
	/declare  GL_mana_limit      int outer     50
	/declare  GL_iter_sit        int outer     0
	
	|###  these 2 variables do nothing at this time
	/declare  GL_do_warp        bool outer     false
	/declare  GL_update_pause   int outer      20	
	
	|###  adjust these if you want different pause times
	/declare  GL_pc_pause        int outer     60
	/declare  GL_nat_pause_fix   int outer     10
	/declare  GL_nat_pause_rnd   int outer     10		
	/declare  GL_lap_pause_fix   int outer     40
	/declare  GL_lap_pause_rnd   int outer     10		
	/declare  GL_iter_pause_fix  int outer     120
	/declare  GL_iter_pause_rnd  int outer     20   		
		
	|###  what to use for breaking invis?
	/declare  GL_break_aa        string outer  NULL
	/declare  GL_break_spell     string outer  Minor Healing
	/declare  GL_break_item      string outer  NULL
	/declare  GL_break_slot      string outer  NULL
	
    |###  what to use for instant invis?
	/declare  GL_ii_use          bool outer    true
	/declare  GL_ii_aa           string outer  NULL
	/declare  GL_ii_spell        string outer  NULL
	/declare  GL_ii_item         string outer  Potion of Windspeed
	/declare  GL_ii_slot         string outer  NULL
	/declare  GL_ii_pbslot	     string outer  0	
	
	|###  what to use for invisibility?
	/declare  GL_invis_use       bool outer    true
	/declare  GL_invis_aa        string outer  NULL
	/declare  GL_invis_spell     string outer  NULL
	/declare  GL_invis_item      string outer  Potion of Windspeed
	/declare  GL_invis_slot	     string outer  NULL
	/declare  GL_invis_pbslot    string outer  0
	/declare  GL_invis_cast      int outer 	   0
	/declare  GL_invis_refresh   int outer     35

	|###  what to use for IVU?
	/declare  GL_ivu_use         bool outer    true
	/declare  GL_ivu_aa          string outer  NULL
	/declare  GL_ivu_spell       string outer  NULL
	/declare  GL_ivu_item        string outer  Philter of Unlife Awareness
	/declare  GL_ivu_slot	     string outer  NULL
	/declare  GL_ivu_pbslot	     string outer  1
	/declare  GL_ivu_cast        int outer 	   15
	/declare  GL_ivu_refresh     int outer     35
   
	|##  what to use for levitation?
	/declare  GL_lev_use         bool outer    true
	/declare  GL_lev_aa          string outer  NULL
	/declare  GL_lev_spell       string outer  NULL
	/declare  GL_lev_item        string outer  Philter of Gulon's Impunity
	/declare  GL_lev_slot	     string outer  NULL
	/declare  GL_lev_pbslot	     string outer  2
	/declare  GL_lev_cast        int outer     15
	/declare  GL_lev_refresh     int outer     35

	|##  what to use for run speed?
	/declare  GL_run_use         bool outer    false
	/declare  GL_run_aa          string outer  NULL
	/declare  GL_run_spell       string outer  NULL
	/declare  GL_run_item        string outer  NULL
	/declare  GL_run_slot	     string outer  NULL
	/declare  GL_run_pbslot      string outer  NULL
	/declare  GL_run_cast        int outer     0
	/declare  GL_run_refresh     int outer     0
   
    |###  uncomment this and rename filename to make a customized include file
    |	#include oortcloud/ScoutMaidens-Cleric.inc
   
	|#####################################################
        |###  No need to change any variables below here.  ###
        |#####################################################
    /declare  GL_task_name   string outer  Scouting Maiden's Grave
    /declare  GL_task_giver  string outer  Captain Pete
	
    /declare  GL_iters  int outer 0
	/declare  GL_laps   int outer 0	
	
    |###  speed fatfinger safety check
	/if (${GL_speed_norm} > 2) /varset GL_speed_norm 2
   	/if (${GL_speed_fast} > 2) /varset GL_speed_fast 2
    
   	/squelch /docrack NoEncumber on
   	/squelch /docrack EB on
   	
	/moveto ${GL_moveto_sens}
	
	|###  set the current zone
	/varset GL_cur_zone BuriedSea	
	
	/squelch /speed ${GL_speed_norm}
	
	|### Start the exp!
	/for GL_iters 1 to ${GL_max_iters}
		/for GL_laps 1 to ${GL_max_laps}			           
              
			/call GotoTaskGiver "${GL_task_giver}"
			/call PauseRandom ${GL_nat_pause_rnd} ${GL_nat_pause_fix}
			
			/call BreakInvis
			/call GetTask "${GL_task_giver}" willing "${GL_task_name}"
			/call PauseRandom ${GL_nat_pause_rnd} ${GL_nat_pause_fix}
			/call FaceRandom
			
			:TaskLoop
				/call CheckHealthMana ${GL_health_limit} ${GL_mana_limit}				
				
				/if (${Me.Class.Name.Equal[bard]}) {
					/call StopTwistWait
				} else {
					/delay ${GL_immobilize}
				}
				
				/call Levitate
				/call RunSpeed
				/call Invis
				
				/call GotoIsland
				
				/squelch /speed ${GL_speed_fast}
				
				/call ScoutIsland
				/call LeaveIsland
			
				/squelch /speed ${GL_speed_norm}
				
				/doEvents Update
			/if (${GL_update_cnt} < 9) {
				/echo Repeating.  Only received ${GL_update_cnt} of 9 updates.
				/goto :TaskLoop
			}
			
			/call ReturnNearTaskGiver
			
			/call GotoTaskGiver "${GL_task_giver}"
			/call PauseRandom ${GL_nat_pause_rnd} ${GL_nat_pause_fix}
			
			/call FinishTask ${GL_reward_option}
			
			/call PauseRandom ${GL_nat_pause_rnd} ${GL_nat_pause_fix}

			
			/call NearbyCheck ${GL_pc_radius} ${GL_pc_pause}
			/call PauseRandom ${GL_lap_pause_rnd} ${GL_lap_pause_fix}
		/next GL_laps

		/if (${GL_iter_pause_fix} > 0 && ${GL_iter_pause_rnd} > 0) {			
			/if (${GL_iters} < ${GL_max_iters}) {
				/if (${GL_move_away}) /call MoveAway
				/call PauseRandom ${GL_iter_pause_rnd} ${GL_iter_pause_fix} ${GL_iter_sit}
			}
		}
	/next GL_iters
	
	/if (${GL_move_away}) /call MoveAway
	
	/call EndMacro
/return

Sub MoveAway
	/look -45
	/face heading 120
	
	/keypress forward hold	
	:MoveDownLoop
	/call Checks

	/if (${Me.Z} > 250) {
		/delay 1
		/goto :MoveDownLoop
	}
	/keypress forward		
	
	/look 0
/return

Sub GotoIsland
	/if (${GL_do_warp}) {
		/call MoveAway
		/return
	}
	
	/look 0
	/call MoveTo -350 3230
/return

Sub ScoutIsland
	/if (${GL_do_warp}) {
		/call ScoutIslandWarp
		/return
	}
	
	|###  2 south eastern islands
	/call MoveTo 1630 3130
	/look -6
	/call MoveTo 1675 2640
	/call MoveTo 1735 2695
	
	|###  undead beach
	/call MoveTo 2490 2990

	/if (${Me.Class.Name.NotEqual[rogue]}) {
		/if (${GL_ivu_use}) {
			/if (${Me.Class.Name.Equal[bard]}) {
				/call StopTwistWait
			} else {
				/delay ${GL_immobilize}
			}
	
			/call IVU
		}
	}
	
	/call MoveTo 2595 3050
	/call MoveTo 2900 3141
	/call MoveTo 3110 3065
	/look 0
	
	/if (${Me.Class.Name.NotEqual[rogue]}) {
		/if (${GL_ivu_use}) {
			/if (${Me.Class.Name.NotEqual[bard]}) {
				/delay ${GL_immobilize}
			}
			
			/call Invis
		} else {
			/if (${Me.CombatState.Equal[combat]}) /call Fade
		}
	}
	
	|###  archway
	/call MoveTo 3350 3000
	/call MoveTo 3355 3260
	/call MoveTo 3350 3000
				
	|###  waypoints
	/call MoveTo 3860 3195
	/call MoveTo 4025 3370
	
	|###  northern 2 islands
	/call MoveTo 4205 3270
	/call MoveTo 4650 4080
	/look -12
	
	|###  north beach
	/call MoveTo 3800 4130
	/look -3
	
	|###  center pool
	/call MoveTo 2770 3850
	/look 0
	
	|###  waypoints
	/call MoveTo  2555 3795
	/call MoveTo  2040 3810
	
	|###  last southern island
	/call MoveTo 1600 4460
/return

Sub LeaveIsland
	/if (${GL_do_warp}) {
		/warp loc -1550 3580 260
		/return
	}
	
	/call MoveTo 365 4085
/return

Sub ReturnNearTaskGiver
	/if (${GL_do_warp}) /return
	
	/call MoveTo -1265 3510
	/look -45
	/call MoveTo -1490 3465
/return
 
moving this to the correct area, the questions/requests area
 
Can't get it to work how? What error messages are getting etc?
 
Wouldn't bother, it is no longer repeatable and the set up will take longer to do (even without MQ2 lol).