I have written an example macro that I am 99% sure will *NOT* work, so don't actually try it. Corrections and improvements are always welcome. Hell, if someone doesn't correct and improve this, then I probably wont be able to figure out how to write the next few.
Here it goes. This one is supposed to always be running, but only actually makes a check or does anything if $combat == TRUE... meaning you are in a fight. Even then it doesn't actually do anything until your HP drops below your targets... or is equal to. Which is not what I wanted but oh well. Here goes:
Code: Select all
| -RunForHelp.mac- |
Sub Main
:Checking
/if $combat == TRUE // If you are fighting...
/if n $hp(cur) <= $target(hp) // AND IF your hp is < or = targets
/goto :RunLikeHell // Then go to the :RunLikeHell part
/if n %hp(cur) > $target(hp) // IF your current HP is more then targets
/goto :StayPut // Jump to :StayPut
:StayPut
/echo Your HP: $hp(cur) / $hp(max) // Say to user: "Your HP: xxx / xxx"
/echo %t's HP: $target(hp) // Say to user: "a_gnoll_pup's HP: xxx"
:RunLikeHell
/target Guard // Target the nearest guard.
/face // Face that guard.
/press NumLock // Run to that guard
/if $char(class) == "Bard" // IF you are a bard
/if n $char(level) >= 5 // AND IF you are above level 4
/cast 1 // Cast first song (assumes speed song)
/returnWhat I *wanted* it to do, was always be running, and if it happens to notice you are in a fight, every... oh... 5 seconds or 10 seconds or so it would report your current HP, and your target's current HP... and if you are both around 25% health, and you have the same HP, or you have less then your target, the macro will automatically target the nearest Guard or Sentinal or Dragoon or whatever and run to it and cower behind it.
Now obvious this doesn't even come close, so I'm going to need some help improving, rewriting, or at least clearing up misconceptions on how to do these things :-).
Thanks in advance
- Icon


