- 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