Afk unlock shrouded forms (now support some potions)

Post your completed (working) macros here. Only for macros using MQ2Data syntax!

Moderator: MacroQuest Developers

newgamez88
orc pawn
orc pawn
Posts: 27
Joined: Thu Mar 09, 2006 12:01 pm

Post by newgamez88 » Fri Nov 17, 2006 12:05 pm

One thing can be improved: Potions can be activated during combat. Incorporating this to the combat part of the macro will make it safer and more effective (you get healed during battle and the DS never drops).

I don't play EQ now (may come back next month). Cannot test it so cant revise the macro myself.

Stubs
a ghoul
a ghoul
Posts: 108
Joined: Fri May 07, 2004 2:20 pm
Contact:

Post by Stubs » Sat Nov 18, 2006 4:13 am

Healing potions work during battle, and I actually don't use the DS portion, I'll look into maintaining the DS during battle.

I believe the cast time on them made it not go so well as a level 5 shroud has little to no channeling skill.
Always aspiring to learn, not sure of my success rate.

dkaa wrote:
[quote](14:49:52) dont_know_at_all: i can't make it policy to ban people who annoy me because only fearless would be left here[/quote]

ubatch
a ghoul
a ghoul
Posts: 93
Joined: Tue Nov 18, 2003 3:57 pm

Post by ubatch » Sat Dec 09, 2006 5:27 am

On this macro, I am getting "You can't use that command while casting..." spammed every time I attack a mob basically.

I am currently using Fairy Enchanter (shroud called Nature Spirits) and it actually seems like it's casting Swarm of Pain and then immediately trying to cast Mana Bolt. However, it's not allowing enough time for Swarm of Pain to stop casting I guess, how do I fix this?

Looking over the macro I think I would just simple change the /delay 2s after

Code: Select all

      /if (!${RV_DotUsed}) { 
         /if (${Me.AltAbilityReady[Swarm of Pain]} && ${Me.CurrentMana} >=11 && !${Me.Moving} && !${Me.Casting.ID} ) { 
         /aa act Swarm of Pain 
         /varset RV_DotUsed 1 
         /delay 2s 
         } 
to some other delay? Is that correct? I guess I could try it ;)

Valthonis
a hill giant
a hill giant
Posts: 183
Joined: Tue May 24, 2005 5:48 pm

Post by Valthonis » Wed Dec 20, 2006 5:25 pm

that looks right, try 6s, I did the nature spirits shroud a long time ago and didn't particularly care about the spam, because it went to my spam window =P

ubatch
a ghoul
a ghoul
Posts: 93
Joined: Tue Nov 18, 2003 3:57 pm

Post by ubatch » Fri Dec 22, 2006 11:35 am

Spam window is fine, but wouldn't this be trackable by GMs? From logs and such. That was my thoughts, so I wanted to stop it hehe. Thanks for the insight.

Orthos_eq
decaying skeleton
decaying skeleton
Posts: 4
Joined: Thu Sep 28, 2006 4:48 pm

Post by Orthos_eq » Fri Dec 29, 2006 11:25 pm

ok - I know I'm stupid but this is driving me nuts.

I've created a HunterMob.ini with

Code: Select all

[The Forgotten Halls] 
Mob1=rat 
Mob2=bat 
Mob3=reject
I've tried putting it in the mq2 program, ini, macro, and log folders. I even put it in all the folders and I get the following error whenever I try to run the macro:

[MQ2] "The Forgotten Halls" is not a Valid Section for FILE:HunterMob.ini, ending macro

I know I'm missing something here but I can't seem to figure it out.
Feel free to flame, but please point me in the right direction.

mekaniak
a hill giant
a hill giant
Posts: 290
Joined: Thu Sep 18, 2003 3:21 pm

Post by mekaniak » Sat Dec 30, 2006 3:26 pm

...I could have sworn that I never setup an ini file for this macro to work.

Code: Select all

|--------------------------------------------------------------------------------
|SUB: Aquire Target
|--------------------------------------------------------------------------------
Sub GetTarget

   /if (${RV_ROOM}==0) {
           /keypress esc
           /keypress esc
           /keypress esc
           /keypress esc
           /varset RV_GOTO 1
           /call RoomSub
           /return
   }

   /if (${RV_ROOM}==1) {
          /delay 2
        /target rat npc
        /if (!${Target.ID} || ${Target.Y}>-475) {
           /keypress esc
           /keypress esc
           /keypress esc
           /keypress esc
           /varset RV_GOTO 2
           /call RoomSub
           /return
        }
   }
   /if (${RV_ROOM}==2) {
           /delay 2
        /target bat npc
        /if (!${Target.ID} || ${Target.Y}>-475) {
           /keypress esc
           /keypress esc
           /keypress esc
           /keypress esc
           /varset RV_GOTO 3
           /call RoomSub
           /return
        }
   }
   /if (${RV_ROOM}==3) {
        /delay 2
        /target reject npc
        /if (!${Target.ID}) {
           /delay 2
          /target bat npc
        }
        /if (!${Target.ID} || ${Target.X}<-80) {
           /delay 2
           /keypress esc
           /keypress esc
           /keypress esc
           /keypress esc
           /target rat npc
        }
        /if (!${Target.ID} || ${Target.Y}<-500) {
           /if (!${Target.ID}) {
               /sit
               /echo wait for rat room to respawn...
               /delay 30s
               /stand
           }
           /if (${Target.Y}<-500) {
               /delay 2
               /keypress esc
               /keypress esc
               /keypress esc
               /keypress esc
               /varset RV_GOTO 1
               /call RoomSub
               /return
           }
        }
   }

   /if (${Target.ID}) {
       /varset RV_HasTarget 1
       /return
   }
 
/return
That block aquires the target according to which room your in. Should be able to work right out of the box.
I love the Power Glove, it's so bad

Say hello to M.C. Smurf!

[quote]<mekaniak> adios guys.
<dont_know_at_all> idiot
* mekaniak is now known as mekaniak_dinner
<Jacensolo> me?
<dont_know_at_all> not this time
[/quote]

[quote]
<dont_know_at_all> A_Enchanter_00, how the fuck should i know? it's your code[/quote]

I love quoting IRC chat.

Orthos_eq
decaying skeleton
decaying skeleton
Posts: 4
Joined: Thu Sep 28, 2006 4:48 pm

version

Post by Orthos_eq » Sat Dec 30, 2006 6:22 pm

mekaniak wrote:...I could have sworn that I never setup an ini file for this macro to work.

That block aquires the target according to which room your in. Should be able to work right out of the box.
It works great - sorry am trying to use the modified version from Stubbs on pg 5

big_daddy
a lesser mummy
a lesser mummy
Posts: 73
Joined: Thu Sep 15, 2005 8:29 pm

Post by big_daddy » Tue Jun 19, 2007 1:51 am

Anyone able to help me set up HunterLoot.ini where it will loot the items off the mobs and put them in inventory or distroy the items?

aamlord
a lesser mummy
a lesser mummy
Posts: 35
Joined: Wed Feb 07, 2007 3:56 pm

Post by aamlord » Tue Jul 24, 2007 5:25 pm

I'm running the script as it appeared with no problem with goblin rogue shroud. The only special skill is lesion. I've gone the first 15% of the evolving shroud before the macro used celestial healing II pot. At the rate my goblin is leveling up I'd probably unlock the next level in about an hour or so.

Simple hint: replace stock food with real stats food. I had some bucket of crab legs and juice of quellious laying around and those 2 combined added almost 75HP total.

aamlord
a lesser mummy
a lesser mummy
Posts: 35
Joined: Wed Feb 07, 2007 3:56 pm

Post by aamlord » Tue Jul 24, 2007 6:40 pm

Just a quickie: unlocked the next level and have 18% toward goblin cleric in 1 hour 35 minutes.

EDIT: completely unlocked the entire Goblin line in 5 hours and 35 minutes. I did have to dump 6k coppers, the weight was making my toon walk like he's constipated so watch that weight if you're going to run the script for more than a few hours.

newgamez88
orc pawn
orc pawn
Posts: 27
Joined: Thu Mar 09, 2006 12:01 pm

Post by newgamez88 » Fri Aug 03, 2007 8:21 pm

There is no looting function in my original macro:roll: . If you use that version you shouldn't have the overweight problem.

bushdaka
a hill giant
a hill giant
Posts: 185
Joined: Wed Jun 16, 2004 11:01 am

Post by bushdaka » Mon Oct 15, 2007 4:55 pm

Something you can add to your shroud macros... I tried several different ways to get the percentages from the window without opening it, but it doesn't seem to update unless it's open. If anyone makes improvements to this routine I'd be interested in seeing them. :P

Code: Select all

sub ShroudInfo
   /declare x int
   /declare y int 
   /declare z int 
   /declare zInfo string
   /declare zValue string
   /if (!${Window[InventoryWindow].Open}) /keypress INVENTORY 
   /notify InventoryWindow IW_Subwindows tabselect 3
   /for x 1 to 10
	/if (${Window[InventoryWindow].Child[ProgressionList].List[${x},1].Length}>0) {
		/notify InventoryWindow ProgressionList listselect ${x}
		/delay 1
		/notify InventoryWindow ProgressionList leftmouse ${x}
		/delay 1
		/varset zInfo ${Window[InventoryWindow].Child[IW_Subwindows].Child[AltCharProgPage].Child[ProgressionInfo].Text}
		/varset zValue 
		/if (!${zInfo.Find[%]}) {
			/varset zValue 100%
		} else {
			/varcalc y ${zInfo.Find[(]}+1
			/varcalc z ${zInfo.Find[)]}-${y}
			/varset zValue ${zInfo.Mid[${y},${z}]}
		}
		/echo ${Window[InventoryWindow].Child[ProgressionList].List[${x},1]} : ${Window[InventoryWindow].Child[ProgressionList].List[${x},2]} : ${Window[InventoryWindow].Child[ProgressionList].List[${x},3]} : ${zValue}
	}
   /next x
   /if (${Window[InventoryWindow].Open}) /keypress INVENTORY 
/return

Glob
decaying skeleton
decaying skeleton
Posts: 9
Joined: Thu Nov 01, 2007 12:15 pm

Post by Glob » Fri Nov 02, 2007 6:50 pm

I don't know if anybody is still supporting this, but I used the macro a few messages about this one. It kills great, but doesn't seem to actually loot anything except coins. I was hoping for some LoN stuff :)

Did anything change since this macro was posted? It seems to never get anything on the cursor to compare in the loot section. I'm still learning, so that might not be it at all.

Thanks.

big_daddy
a lesser mummy
a lesser mummy
Posts: 73
Joined: Thu Sep 15, 2005 8:29 pm

Post by big_daddy » Sat Nov 03, 2007 9:12 pm

Code: Select all

|-------------------------------------------------------------------------------- 
|Macro shroud5 for mq2 by PayBackTime 
| modified for more support by big_daddy: version 3nov2007 
| modified to loot now by big_daddy.  Must have ninjadvloot.inc to be able to loot.
| 
|New mods 
|    1- Altered to use the potions approprate for a level 5. 
|    2- Uses AAs appropriate for a level 5 
|    3- Supports Wizard, Warrior, and Cleric shrouds appropriately 
|    4- Changed some abilities to be dots or nukes 
|         (in order to prevent chain dotting or single nuking) 
|    5- Will no longer cast boon of Vitality over a potion, or vice versa. 
|    6- Lowered the mana percent to med at and upped the med time to take advantage of the rest system 
| 
|  1) Distillate of health II (POK bought. Don't use it if you have boon of vitality spell) 
|      -- this is an AC/hp buff, casters need this to survive. 
|      -- you must place this potion at an inventory slot (i.e., not in bags) 
|      -- you need 12 of this potion if you plan to stay for the entire 6 hours 
|  2) Distillate of celestial healing II (POK bought. By using this you don't need bandages) 
|      -- this is a Heal over time spell, trigged when your hp drops to below 60% 
|      -- you must put this potion at your potion belt 1 position, however you don't 
|         need to put actual potions in an inventory slot. You can put them in bags. 
|         (shift-p to open the potion belt, Ctrl-click the potion, then click position 1 of potion belt) 
|      -- you need maybe 60 of this potion if you plan to stay for the entire 6 hours 
|  3) Distillate of skinspikes II (can only be made by shamans. This is a 10point DS) 
|      -- this is a 10 point DS, will help you kill a lot faster! 
|      -- you must put this potion at your potion belt 2 position, however you don't 
|         need to put actual potions in an inventory slot. You can put them in bags. 
|         (shift-p to open the potion belt, Ctrl-click the potion, then click position 2 of potion belt) 
|      -- you need 30 of this potion if you plan to stay for the entire 6 hours 
|Also the macro will end when you enter POK or Nedaria, or a GM enters the zone. 
|Fixed the problem of stucking behind the box in rat room 
| 
|What this macro does: 
| 
|*Use a shrouded level 5 and hunt in the forgotten hall for unlock shroud forms 
| 
|*What you need to do before invoking the macro: 
| 
|*You must go to Nedaria's landing after changing into a level 5 shrouded form, 
| and say 'interested in visiting' to NPC Eldros Danmor to start an instance of 
| the forgotten hall. Zone in is at eastern side, in a cave. Click the lone stone 
| besides the NPC standing there. The instance will last for 6 hours. 
| WARNING: WOLVES MAY BE KOS TO CERTAIN CLASSES, THEY ARE LEVEL 20+ SO BE AWARE! 
| 
|*You also need to bring backpacks of bandages with you. Bandages can be purchased 
| from the female merchant in front of the small bank in POK. Suggest 2-3 backpacks 
| for casters, 1 for melees. 
| 
|*It is recommended that you bring potions (follow the above instructions) 
| for caster type shrouds. 
|  
|*Invoke the macro after zoning into the forgotten hall and get to the rat room, 
| Do not invoke it at zone in since the program assumes you are either in the 3 rooms, 
| or somewhere in between any two rooms. 
| 
|The following are some values in echo'ed messages in case you wonder what they mean: 
| 
|*Values for room (RV_ROOM): 1=rat room, 2=bat room, 3=reject room 
| 
|*Values for corridor (RV_CORR): 10=rat room, 15=turn point between rat and bat rooms 
|                     20=bat room, 24=outside bat room, 25=turn point between bat and reject rooms 
|                     30=reject room, 35=outside reject room 
|-------------------------------------------------------------------------------- 
#include ninjadvloot.inc

Sub Main 

   /declare RV_HasTarget        int outer  0 
   /declare RV_TargetDead       int outer  0 
   /declare RV_DotUsed          int outer  0 
   /declare RV_ROOM             int outer  0 
   /declare RV_CORR             int outer  0 
   /declare RV_GOTO             int outer  0 
   /declare RV_CNT              int outer  0 
   /declare X2                  int outer  0 
   /declare Y2                  int outer  0 
   /declare LocXP2              int outer  0 
   /declare LocXM2              int outer  0 
   /declare LocYP2              int outer  0 
   /declare LocYM2              int outer  0 
    

   /call ReadINI HunterMob.ini "${Zone.Name}" Mob 
   /if (!${Defined[MobArray]}) { 
      /echo Mob Array Creation Error, ending macro... 
      /endmacro 
   } 


  /declare DoHeal          bool outer TRUE 
  /declare DoHoT           bool outer TRUE 
  /declare HealGroup       bool outer TRUE 
  /declare HealPets        bool outer TRUE 
  /declare HealTank        bool outer TRUE    



   :Start 

   /call GetTarget 

   :KillAdds 
   /if (${RV_HasTarget}) /call CombatSub 
   /call ResetSub 

   /if (${Target.ID}) { 
      /delay 1s 
      /varset RV_HasTarget 1 
      /goto :KillAdds 
   } 

   /call BandSub 
    
   /goto :Start 
    
/return 

|-------------------------------------------------------------------------------- 
|SUB: Aquire Target 
|-------------------------------------------------------------------------------- 
Sub GetTarget 

   /if (${RV_ROOM}==0) { 
           /keypress esc 
           /keypress esc 
           /keypress esc 
           /keypress esc 
           /varset RV_GOTO 1 
           /call RoomSub 
           /return 
   } 

   /if (${RV_ROOM}==1) { 
          /delay 2 
        /target rat npc 
        /if (!${Target.ID} || ${Target.Y}>-475) { 
           /keypress esc 
           /keypress esc 
           /keypress esc 
           /keypress esc 
           /varset RV_GOTO 2 
           /call RoomSub 
           /return 
        } 
   } 
   /if (${RV_ROOM}==2) { 
           /delay 2 
        /target bat npc 
        /if (!${Target.ID} || ${Target.Y}>-475) { 
           /keypress esc 
           /keypress esc 
           /keypress esc 
           /keypress esc 
           /varset RV_GOTO 3 
           /call RoomSub 
           /return 
        } 
   } 
   /if (${RV_ROOM}==3) { 
        /delay 2 
        /target reject npc 
        /if (!${Target.ID}) { 
           /delay 2 
          /target bat npc 
        } 
        /if (!${Target.ID} || ${Target.X}<-80) { 
           /delay 2 
           /keypress esc 
           /keypress esc 
           /keypress esc 
           /keypress esc 
           /target rat npc 
        } 
        /if (!${Target.ID} || ${Target.Y}<-500) { 
           /if (!${Target.ID}) { 
               /sit 
               /echo wait for rat room to respawn... 
               /delay 30s 
               /stand 
           } 
           /if (${Target.Y}<-500) { 
               /delay 2 
               /keypress esc 
               /keypress esc 
               /keypress esc 
               /keypress esc 
               /varset RV_GOTO 1 
               /call RoomSub 
               /return 
           } 
        } 
   } 

   /if (${Target.ID}) { 
       /varset RV_HasTarget 1 
       /return 
   } 
  
/return 

|-------------------------------------------------------------------------------- 
|SUB: Combat 
|-------------------------------------------------------------------------------- 
Sub CombatSub 

   /echo Attacking Mob NOW! 
   /varset RV_TargetDead 0 
   /varset RV_DotUsed 0 
    
   /delay 2 

   :CombatLoop 
  
   /call MoveSub 

   /attack on 

   /if (${Target.ID} && ${Me.State.NotEqual[STUN]}) { 
      /if (${Target.ID}) /face fast 
      /if (!${RV_DotUsed}) { 
         /if (${Me.AltAbilityReady[Swarm of Pain]} && ${Me.CurrentMana} >=11 && !${Me.Moving} && !${Me.Casting.ID} ) { 
         /aa act Swarm of Pain 
         /varset RV_DotUsed 1 
         /delay 6s 
         } 
         /if (${Me.AltAbilityReady[Fungal Malady]} && ${Me.CurrentMana} >=11 && !${Me.Moving} && !${Me.Casting.ID} ) { 
         /aa act Fungal Malady 
         /varset RV_DotUsed 1 
         /delay 6s 
         } 
         /if (${Me.AltAbilityReady[Frost of the Ancients]} && ${Me.CurrentMana} >=5 && !${Me.Moving} && !${Me.Casting.ID} ) { 
         /aa act Frost of the Ancients 
         /varset RV_DotUsed 1 
         /delay 4s 
         } 
         /if (${Me.AltAbilityReady[Lesion]} && ${Me.PctEndurance} >=6 && !${Me.Casting.ID} ) { 
         /aa act Lesion 
         /varset RV_DotUsed 1 
         } 
      } 
      /if (${Me.AltAbilityReady[Frost]} && ${Me.CurrentMana} >=5 && !${Me.Moving} && !${Me.Casting.ID} ) { 
      /aa act Frost 
      /delay 4s 
      } 
      /if (${Me.AltAbilityReady[Mana Bolt]} && ${Me.CurrentMana} >=4 && !${Me.Moving} && !${Me.Casting.ID} ) { 
      /aa act Mana Bolt 
      /delay 4s 
      } 
      /if (${Me.AbilityReady[Kick]} && ${Target.Distance}<17 && !${Me.Casting.ID}) { 
      /doability "Kick" 
      } 
      /if (${Me.AltAbilityReady[Maul]} && ${Me.PctEndurance} >=6 && !${Me.Casting.ID} ) { 
      /aa act Maul 
      /delay 2s 
      } 
      /if (${Me.PctHPs}<60 && ${FindItem[Distillate of Celestial Healing II].InvSlot}) { 
        /potionbelt activate 1 
        /delay 1s 
      } 
  } 

   /if (!${Target.ID} || ${Target.Type.Equal[Corpse]}) { 
      /attack off 
      /keypress forward 
      /keypress back 
      
      /varset RV_TargetDead 1 
      /if (!${Target.ID}) { 
         /call ResetSub 
         /return 
      } 
   } 

   /if (!${RV_TargetDead}) { 
      /goto :CombatLoop 
   } 
    
/return 

  
|-------------------------------------------------------------------------------- 
|SUB: Change Room 
|-------------------------------------------------------------------------------- 
Sub RoomSub 
  
    :Startmove 

    /varset RV_ROOM 0 
    /varset RV_CORR 0 
    /if (${Me.X}>100 && ${Me.Y}<-500 )                        /varset RV_CORR 10 
    /if (${Me.X}<-80 )                                        /varset RV_CORR 20 
    /if (${Me.X}>60 && ${Me.Y}>-445 )                         /varset RV_CORR 30 
    /if (${Me.X}>=-15 && ${Me.X}<=100 && ${Me.Y}<-500 )        /varset RV_CORR 15 
    /if (${Me.X}>=-80 && ${Me.X}<-15)                          /varset RV_CORR 25 
    /if (${Me.X}>=-15 && ${Me.Y}>=-500 && ${Me.Y}<=-445 )     /varset RV_CORR 35 

    /if (${RV_GOTO}==1 ) /goto :Moveto1 
    /if (${RV_GOTO}==2 ) /goto :Moveto2 
    /if (${RV_GOTO}==3 ) /goto :Moveto3 

   :Moveto1 
      /if (${Me.X}>100 && ${Me.Y}<-500 ) { 
         /keypress back 
          /delay 2 
          /varset RV_ROOM 1 
          /return 
      } 
   :Moveroom3to1 
      /if (${RV_CORR}==30 ) {    
      /face fast loc -390, 135 
      /call Move2Sub 
      /if (${Me.Y}<=-385 && ${Me.Y}>=-395 && ${Me.X}<=140 && ${Me.X}>=130) { 
         /keypress back 
         /delay 2 
         /varset RV_CORR 35 
         /goto :Movecorr3to1 
      } 
      /goto :Moveroom3to1 
      } 
   :Movecorr3to1 
      /if (${RV_CORR}==35  ) {    
      /face fast loc -475, 135 
      /call Move2Sub 
      /if (${Me.Y}<=-470 && ${Me.Y}>=-480 && ${Me.X}<=140 && ${Me.X}>=130) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 25 
         /goto :Movecorr2to1 
      } 
      /goto :Movecorr3to1 
      } 
   :Movecorr2to1 
      /if (${RV_CORR}==25  ) {    
      /face fast loc -475, -40 
      /call Move2Sub 
      /if (${Me.Y}<=-470 && ${Me.Y}>=-480 && ${Me.X}<=-35 && ${Me.X}>=-45) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 15 
         /goto :Movecorr1to1 
      } 
      /goto :Movecorr2to1 
      } 
   :Moveroom2to1 
      /if (${RV_CORR}==20 ) {    
      /face fast loc -560, -143 
      /call Move2Sub 
      /if (${Me.Y}<=-555 && ${Me.Y}>=-565 && ${Me.X}<=-138 && ${Me.X}>=-148) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 24 
         /goto :Movecorr24to1 
      } 
      /goto :Moveroom2to1 
      } 
   :Movecorr24to1 
      /if (${RV_CORR}==24  ) {    
      /face fast loc -560, -40 
      /call Move2Sub 
      /if (${Me.Y}<=-555 && ${Me.Y}>=-565 && ${Me.X}<=-35 && ${Me.X}>=-45) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 15 
         /goto :Movecorr1to1 
      } 
      /goto :Movecorr24to1 
      } 
   :Movecorr1to1 
      /if (${RV_CORR}==15 ) {    
      /face fast loc -600, -40 
      /if (${Me.Y}<=-595 && ${Me.Y}>=-605 && ${Me.X}<=-35 && ${Me.X}>=-45) { 
         /varset RV_CORR 10 
         /goto :Movelastto1 
      } 
      /call Move2Sub 
      /if (${Me.Y}<=-595 && ${Me.Y}>=-605 && ${Me.X}<=-35 && ${Me.X}>=-45) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 10 
         /goto :Movelastto1 
      } 
      /goto :Movecorr1to1 
      } 
   :Movelastto1 
      /if (${RV_CORR}==10 ) {    
      /face fast loc -600, 150 
      /call Move2Sub 
      /if (${Me.Y}<=-595 && ${Me.Y}>=-605 && ${Me.X}<=155 && ${Me.X}>=145) { 
         /keypress back 
          /delay 2 
          /varset RV_ROOM 1 
          /return 
      } 
      /goto :Movelastto1 
      } 
    /goto :Moveto1 

   :Moveto2 
      /if (${Me.X}<-80 ) { 
         /keypress back 
          /delay 2 
          /varset RV_ROOM 2 
          /return 
      } 
   :Moveroom3to2 
      /if (${RV_CORR}==30 ) {    
      /face fast loc -390, 135 
      /call Move2Sub 
      /if (${Me.Y}<=-385 && ${Me.Y}>=-395 && ${Me.X}<=140 && ${Me.X}>=130) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 35 
         /goto :Movecorr3to2 
      } 
      /goto :Moveroom3to2 
      } 
   :Movecorr3to2 
      /if (${RV_CORR}==35  ) {    
      /face fast loc -475, 135 
      /call Move2Sub 
      /if (${Me.Y}<=-470 && ${Me.Y}>=-480 && ${Me.X}<=140 && ${Me.X}>=130) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 25 
         /goto :Movecorr2to2 
      } 
      /goto :Movecorr3to2 
      } 
   :Movecorr2to2 
      /if (${RV_CORR}==25  ) {    
      /face fast loc -475, -40 
      /call Move2Sub 
      /if (${Me.Y}<=-470 && ${Me.Y}>=-480 && ${Me.X}<=-35 && ${Me.X}>=-45) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 24 
         /goto :Movecorr24to2 
      } 
      /goto :Movecorr2to2 
      } 
   :Moveroom1to2 
      /if (${RV_CORR}==10 ) {    
      /face fast loc -600, 150 
      /call Move2Sub 
      /if (${Me.Y}<=-595 && ${Me.Y}>=-605 && ${Me.X}<=155 && ${Me.X}>=145) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 15 
         /goto :Movecorr1to2 
      } 
      /goto :Moveroom1to2 
      } 
   :Movecorr1to2 
      /if (${RV_CORR}==15 ) {    
      /face fast loc -600, -40 
      /call Move2Sub 
      /if (${Me.Y}<=-595 && ${Me.Y}>=-605 && ${Me.X}<=-35 && ${Me.X}>=-45) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 24 
         /goto :Movecorr24to2 
      } 
      /goto :Movecorr1to2 
      } 
    :Movecorr24to2 
      /if (${RV_CORR}==24  ) {    
      /face fast loc -560, -40 
      /call Move2Sub 
      /if (${Me.Y}<=-555 && ${Me.Y}>=-565 && ${Me.X}<=-35 && ${Me.X}>=-45) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 20 
         /goto :Movelastto2 
      } 
      /goto :Movecorr24to2 
      } 
   :Movelastto2 
      /if (${RV_CORR}==20 ) {    
      /face fast loc -560, -143 
      /call Move2Sub 
      /if (${Me.Y}<=-555 && ${Me.Y}>=-565 && ${Me.X}<=-138 && ${Me.X}>=-148) { 
         /keypress back 
           /delay 2 
          /varset RV_ROOM 2 
          /return 
      } 
      /goto :Movelastto2 
      } 
    /goto :Moveto2 

   :Moveto3 
      /if (${Me.X}>60 && ${Me.Y}>-445 ) { 
         /keypress back 
          /delay 2 
          /varset RV_ROOM 3 
          /return 
      } 
   :Moveroom1to3 
      /if (${RV_CORR}==10 ) {    
      /face fast loc -600, 150 
      /call Move2Sub 
      /if (${Me.Y}<=-595 && ${Me.Y}>=-605 && ${Me.X}<=155 && ${Me.X}>=145) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 15 
         /goto :Movecorr1to3 
      } 
      /goto :Moveroom1to3 
      } 
   :Movecorr1to3 
      /if (${RV_CORR}==15 ) {    
      /face fast loc -600, -40 
      /call Move2Sub 
      /if (${Me.Y}<=-595 && ${Me.Y}>=-605 && ${Me.X}<=-35 && ${Me.X}>=-45) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 25 
         /goto :Movecorr2to3 
      } 
      /goto :Movecorr1to3 
      } 
   :Moveroom2to3 
      /if (${RV_CORR}==20 ) {    
      /face fast loc -560, -143 
      /call Move2Sub 
      /if (${Me.Y}<=-555 && ${Me.Y}>=-565 && ${Me.X}<=-138 && ${Me.X}>=-148) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 24 
         /goto :Movecorr24to3 
      } 
      /goto :Moveroom2to3 
      } 
    :Movecorr24to3 
      /if (${RV_CORR}==24  ) {    
      /face fast loc -560, -40 
      /call Move2Sub 
      /if (${Me.Y}<=-555 && ${Me.Y}>=-565 && ${Me.X}<=-35 && ${Me.X}>=-45) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 25 
         /goto :Movecorr2to3 
      } 
      /goto :Movecorr24to3 
      } 
   :Movecorr2to3 
      /if (${RV_CORR}==25  ) {    
      /face fast loc -475, -40 
      /call Move2Sub 
      /if (${Me.Y}<=-470 && ${Me.Y}>=-480 && ${Me.X}<=-35 && ${Me.X}>=-45) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 35 
         /goto :Movecorr3to3 
      } 
      /goto :Movecorr2to3 
      } 
   :Movecorr3to3 
      /if (${RV_CORR}==35  ) {    
      /face fast loc -475, 135 
      /call Move2Sub 
      /if (${Me.Y}<=-470 && ${Me.Y}>=-480 && ${Me.X}<=140 && ${Me.X}>=130) { 
         /keypress back 
          /delay 2 
         /varset RV_CORR 30 
         /goto :Movelastto3 
      } 
      /goto :Movecorr3to3 
      } 
   :Movelastto3 
      /if (${RV_CORR}==30 ) {    
      /face fast loc -390, 135 
      /call Move2Sub 
      /if (${Me.Y}<=-385 && ${Me.Y}>=-395 && ${Me.X}<=140 && ${Me.X}>=130) { 
         /keypress back 
          /delay 2 
          /varset RV_ROOM 3 
          /return 
      } 
         /goto :Movelastto3 
      } 
    /goto :Moveto3 
/return 


|-------------------------------------------------------------------------------- 
|SUB: Move2, moving when you do not have a target, esp. moving from room to room 
|-------------------------------------------------------------------------------- 
Sub Move2Sub 
      
      /if (${Spawn[gm].ID}) /call PanicSub 
      /if (${Spawn[eldros].ID}) /call PanicSub 
      /if (${Spawn[shroudkeeper].ID}) /call PanicSub 
      /keypress forward hold 
      /varset X2 ${Me.X} 
      /varset Y2 ${Me.Y} 
      /varcalc LocXP2 ${X2}+1 
      /varcalc LocXM2 ${X2}-1 
      /varcalc LocYP2 ${Y2}+1 
      /varcalc LocYM2 ${Y2}-1 
      /delay 2 
      /if (${LocXP2}>${Me.X} && ${LocXM2}<${Me.X} && ${LocYP2}>${Me.Y} && ${LocYM2}<${Me.Y}) { 
         /keypress back 
         /echo stucked corr= ${RV_CORR} goto= ${RV_GOTO}, retry... 
         /delay 2 
         /if (${Me.X}>100 && ${Me.Y}<-500 ) { 
                       /if (${Me.X}>100 && ${Me.Y}<-645) { 
                             /keypress back 
                             /delay 2 
                             /face fast loc -662, 178 
                             /keypress forward hold 
                             /delay 2s 
                       } 
                       /varset RV_CORR 10 
         } 
         /if (${Me.X}<-80 )                                        /varset RV_CORR 20 
         /if (${Me.X}>60 && ${Me.Y}>-445 )   { 
                  /keypress back 
                  /delay 2 
                  /face fast loc ${Math.Rand[10000]}, ${Math.Rand[10000]} 
                  /keypress forward hold 
                  /delay 2s 
                  /varset RV_CORR 30 
         } 
         /if (${Me.X}>=-15 && ${Me.X}<=100 && ${Me.Y}<-500 )  { 
             /if (${RV_CORR}==15 )                   /varset RV_CORR 14 
             /if (${RV_CORR}<14 || ${RV_CORR}>15)    /varset RV_CORR 15 
             /if (${RV_CORR}==14 )                   /varset RV_CORR 10 
         } 
         /if (${Me.X}>=-80 && ${Me.X}<-15) { 
             /if (${RV_CORR}==15 || ${RV_CORR}==24 || ${RV_CORR}>25)    /varset RV_CORR 22 
             /if (${RV_CORR}==25 || ${RV_CORR}==20 ) /varset RV_CORR 24 
             /if (${RV_CORR}==10 )                   /varset RV_CORR 15 
             /if (${RV_CORR}==22 )                   /varset RV_CORR 25 
         } 
         /if (${Me.X}>=-15 && ${Me.Y}>=-500 && ${Me.Y}<=-445 ) /varset RV_CORR 35 
      } 
/return 

|-------------------------------------------------------------------------------- 
|SUB: Move, moving when you have a target, during combat, etc. 
|-------------------------------------------------------------------------------- 
Sub MoveSub 

      /varset RV_CNT 0 

      :MoveLoop 
      
      /stand 
      /if (${Target.Distance}>17) { 
              /if (${Target.ID}) /face fast 
              /keypress forward hold 
              /varset X2 ${Me.X} 
              /varset Y2 ${Me.Y} 
              /varcalc LocXP2 ${X2}+1 
              /varcalc LocXM2 ${X2}-1 
              /varcalc LocYP2 ${Y2}+1 
              /varcalc LocYM2 ${Y2}-1 
              /delay 5 
              /if (${LocXP2}>${Me.X} && ${LocXM2}<${Me.X} && ${LocYP2}>${Me.Y} && ${LocYM2}<${Me.Y}) { 
                  /if (${Me.X}>100 && ${Me.Y}<-500 ) { 
                          /if (${Me.X}>100 && ${Me.Y}<-645) { 
                                /keypress back 
                                /delay 2 
                                /face fast loc -662, 178 
                                /keypress forward hold 
                                /delay 2s 
                          } 
                           /keypress back 
                          /delay 2 
                          /face fast loc -600, 150 
                          /echo stucked when moving to mob in the rat room, retry... 
                          /keypress forward hold 
                          /delay 2s 
                          /keypress back 
                          /if (${Target.ID}) /face fast 
                          /varcalc RV_CNT ${RV_CNT}+1 
                          /if (${RV_CNT}>100 && ${Target.PctHPs}==100) { 
                                 /keypress back 
                                 /keypress esc 
                                 /keypress esc 
                                 /keypress esc 
                                 /keypress esc 
                                 /echo stucked too many times, restarting cycles... 
                                 /call RoomSub 
                                 /return 
                          } 
                          /goto :MoveLoop 
                  } 
                  /if (${Me.X}<-80 )  { 
                          /keypress back 
                          /delay 2 
                          /face fast loc -560, -143 
                          /echo stucked when moving to mob in the bat room, retry... 
                          /keypress forward hold 
                          /delay 2s 
                          /keypress back 
                          /if (${Target.ID}) /face fast 
                          /varcalc RV_CNT ${RV_CNT}+1 
                          /if (${RV_CNT}>100 && ${Target.PctHPs}==100) { 
                                 /keypress back 
                                 /keypress esc 
                                 /keypress esc 
                                 /keypress esc 
                                 /keypress esc 
                                 /echo stucked too many times, restarting cycles... 
                                 /call RoomSub 
                                 /return 
                          } 
                          /goto :MoveLoop 
                 } 
                  /if (${Me.X}>60 && ${Me.Y}>-445 )  { 
                          /keypress back 
                          /delay 2 
                          /face fast loc ${Math.Rand[10000]}, ${Math.Rand[10000]} 
                          /echo stucked when moving to mob in the reject room, retry... 
                          /keypress forward hold 
                          /delay 2s 
                          /keypress back 
                          /if (${Target.ID}) /face fast 
                          /varcalc RV_CNT ${RV_CNT}+1 
                          /if (${RV_CNT}>100 && ${Target.PctHPs}==100) { 
                                 /keypress back 
                                 /keypress esc 
                                 /keypress esc 
                                 /keypress esc 
                                 /keypress esc 
                                 /echo stucked too many times, restarting cycles... 
                                 /call RoomSub 
                                 /return 
                          } 
                            /goto :MoveLoop 
                  } 
                  /keypress back 
                  /keypress esc 
                  /keypress esc 
                  /keypress esc 
                  /keypress esc 
                  /echo stucked outside, restarting cycles... 
                  /call RoomSub 
                  /return 
              } 
              /keypress back              
              /if (${Target.ID}) /face fast 
              /goto :MoveLoop 
      } 

  
       /if (${Target.Distance}>15) { 
              /if (${Target.ID}) /face fast 
              /keypress forward hold 
              /delay 2 
              /keypress back 
              /if (${Target.ID}) /face fast 
      } 
/return 

|-------------------------------------------------------------------------------- 
|Code: Looting 
|-------------------------------------------------------------------------------- 


|-------------------------------------------------------------------------------- 
|SUB: Reset 
|-------------------------------------------------------------------------------- 
Sub ResetSub 

  
   /tar corpse radius 50 
   /call MoveSub 
   /call LootCorpse 
   /delay 5 
   /keypress esc 
   /keypress esc 
   /keypress esc 
   /keypress esc 
   /keypress esc 
   /keypress esc
    
   /varset RV_HasTarget 0 
   /varset RV_TargetDead 0 
    
    
/return 


|-------------------------------------------------------------------------------- 
|Code: Reading from an INI File 
|-------------------------------------------------------------------------------- 
Sub ReadINI(FileName,SectionName,ArrayType) 
   /echo Attempting to Read Section "${SectionName}" Zone Information from ${FileName}... 
   /delay 1s 
   /if (${Ini[${FileName},${SectionName},-1,NO].Equal[NO]}) { 
      /echo "${SectionName}" is not a Valid Section for FILE:${FileName}, ending macro... 
      /delay 1s 
      /return 
   } 
   /declare nValues int local 1 
   /declare nArray int local 0 
   /declare KeySet string local ${Ini[${FileName},${SectionName}]} 
   :CounterLoop 
   /if (${Ini[${FileName},${SectionName},${ArrayType}${nValues},NOTFOUND].Equal[NOTFOUND]}) { 
      /varcalc nValues ${nValues}-1 
      /goto :MakeArray 
   } 
   /varcalc nValues ${nValues}+1 
   /goto :CounterLoop 
   :MakeArray 
   /if (!${nValues}) /return 
   /if (${FileName.Equal["HunterMob.ini"]}&&${nValues}>0) { 
      /echo Declaring Mob Array... 
      /declare MobArray[${nValues}] string outer 
      /declare MobStats[${nValues}] string outer 
   } 

   /for nArray 1 to ${nValues} 
      /if (${FileName.Equal["HunterMob.ini"]}) { 
         /varset MobArray[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]} 
         /varset MobStats[${nArray}] 0 
      } 

   /next nArray 
   /echo "${SectionName}" Zone Information Read Successfully from ${FileName}... 
   /delay 1s 
/return 




|-------------------------------------------------------------------------------- 
|SUB: Bandage, Heal and Buff Self 
|-------------------------------------------------------------------------------- 
Sub BandSub 

   /if (${Spawn[gm].ID}) /call PanicSub 
   /if (${Spawn[eldros].ID}) /call PanicSub 
   /if (${Spawn[shroudkeeper].ID}) /call PanicSub 
   /target myself 
   /delay 5 

   :BuffLoop 

   /if (!${Me.Buff[Pure Thought II].ID} && !${Me.Buff[Elixir of Clarity II].ID}) { 
      /if (${Me.AltAbilityReady[Pure Thought]} && ${Me.CurrentMana} >=3) { 
         /target myself 
         /aa act Pure Thought 
         /delay 6s 
         /goto :BuffLoop 
      } 
      /if (${FindItem[Distillate of Clarity II].InvSlot}>=22 && ${FindItem[Distillate of Clarity II].InvSlot}<=29 && !${Me.Buff[Pure Thought II].ID} ) { 
         /cast item "Distillate of Clarity II"
         /delay 3s 
      }
   } 

   /if (!${Me.Buff[Gift of Speed II].ID} && !${Me.Buff[Elixir of Speed II].ID}) { 
      /if (${Me.AltAbilityReady[Gift of Speed]} && ${Me.CurrentMana} >=3) { 
         /target myself 
         /aa act Gift of Speed 
         /delay 6s 
         /goto :BuffLoop 
      } 
      /if (${FindItem[Distillate of Alacrity II].InvSlot}>=22 && ${FindItem[Distillate of Alacrity II].InvSlot}<=29 |&& !${Me.Buff[Gift of Speed II].ID} ) { 
         /potionbelt activate 2
         /delay 3s 
      }
   }

|   /if (!${Me.Buff[Distillate of Skinspikes].ID} && ${FindItem[Distillate of Skinspikes II].InvSlot}) { 
|      /potionbelt activate 2 
|      /delay 5s 
|   } 

   /if (!${Me.Buff[Boon of Vitality II].ID} && !${Me.Buff[Elixir of Health II].ID}) { 
      /if (${Me.AltAbilityReady[Boon of Vitality]} && ${Me.CurrentMana} >=3) { 
         /target myself 
         /aa act Boon of Vitality 
         /delay 6s 
         /goto :BuffLoop 
      } 
      /if (${FindItem[Distillate of Health II].InvSlot}>=22 && ${FindItem[Distillate of Health II].InvSlot}<=29 && !${Me.Buff[Boon of Vitality II].ID} ) { 
         /cast item "Distillate of Health II" 
         /delay 3s 
      } 
   } 
 

   :HealLoop 
    
   /if (${Me.PctHPs} <= 65 && ${Me.AltAbilityReady[Heal Wounds]} && ${Me.PctMana} > 70) { 
      /aa act Heal Wounds 
      /delay 5s 
      /goto :HealLoop 
   } 
  
   /sit 
   /delay 1s 

   :BandLoop 
  
   /if (${Me.PctHPs} <= 60 && ${Me.AbilityReady[Bind Wound]}) { 
      /doability "Bind Wound" 
      /delay 15s 
      /goto :BandLoop 
   } 

   :SitLoop 
  
   /if (${Me.PctMana} >0 && ${Me.PctMana} <= 20) { 
      /delay 120s 
      /goto :SitLoop 
      } 
   } 
  
   /stand 

   /keypress esc 
   /keypress esc 
   /keypress esc 
   /keypress esc 
        
/return 

|-------------------------------------------------------------------------------- 
|SUB: Panic, quit the macro 
|-------------------------------------------------------------------------------- 
Sub PanicSub 
   /keypress back 
   /delay 5 
   /keypress back 
   /endmacro 
/return 
Edited: forgot to take out some of the other loot commands