Afk unlock shrouded forms (now support some potions)

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

Moderator: MacroQuest Developers

rapierguy
a ghoul
a ghoul
Posts: 122
Joined: Thu Apr 14, 2005 1:07 am

Post by rapierguy » Mon Apr 03, 2006 2:20 pm

fearless wrote:
rapierguy wrote:also how could I use this part of the code to heal a goup member as well
I would suggest taking a look at the shammie macro in VIP, it has some straightforward group healing sections that you could gank.
Bah I shoulda thought of that since my main is a shammie I'll look at it tonight when I get home from work depending on if my guild raids tonight or not

EQwhat
a lesser mummy
a lesser mummy
Posts: 57
Joined: Sat Jun 18, 2005 6:55 pm
Location: UK

Love it

Post by EQwhat » Sun Apr 09, 2006 8:40 am

I love this easy to use macro. Well done, just a few things you could have added was if you had temp on it wouldnt cast the cleric buff. also other buff's like DS from players (yeah i know theres loads in that field. But on the positive side i love it. I was using the level 30 toons so i could get a bit aa at the same time, wasnt really worth it.

So keep up the good work. :) if they gave out VIP for effort i think you would have earned it.

evilkami
decaying skeleton
decaying skeleton
Posts: 4
Joined: Wed Apr 05, 2006 8:57 pm

Post by evilkami » Sun Apr 09, 2006 11:16 pm

What about a line that says the time if the shroud gets permently "stuck"?
Cause i would like to know about how much work time they did get in.

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

Post by newgamez88 » Mon Apr 10, 2006 2:08 pm

It is easy to check 'temp' and other +hp buffs. Either add the spell names to the /if statement, or check if the 'hp bonus from gear/spells' (HPBonus) is greater than, say, 400 points.

However for DS it's not that easy. There are so many spells and some of them stack while others don't. Besides, there is no 'DSBonus' to use -- MQ2 hasn't provided that property yet.

Shroud progression -- I'd also like to know percentages of shroud progresssion, as well as experience earned while shrouded. However I don't think MQ2 has the properties at this moment. AA Exp can be shown up to 100%, at a delayed pace (you have to do something to trigger the updated information).

Milyenx
decaying skeleton
decaying skeleton
Posts: 1
Joined: Thu Feb 02, 2006 7:16 am

error

Post by Milyenx » Wed Apr 12, 2006 3:58 am

nm i figured out the problem =)

Chyld989
a ghoul
a ghoul
Posts: 88
Joined: Mon Dec 22, 2003 3:29 pm

Post by Chyld989 » Tue Apr 18, 2006 5:26 pm

I've only had one real problem with this macro so far. I was fighting a rat and it seemed it pushed me back against the wall (I came in shortly thereafter, so I can only assume that's what happened). The problem with this is the walls are curved just enough that if you want into them you'll sometimes duck. So, while I was facing the mob, and I was close enough to attack, I couldn't due to the ducking.
Easy fix is to just move forward a bit if it finds you're ducking, which is what I added to mine. I'd post the code but I'm at work and don't have it here, just wanted to let you know though in case you wanted to add anything like that to your copy of the macro.

*EDIT*
Also, because someone earlier asked how fast you can get AA points, if you put the shroud on level 25 (I'm using the earth elemental) you should get 1 AA every ~330 kills. That way you're not just unlocking the nearly useless shrouds, but you're also getting a tiny little amount of AAXP as well =)

ascii38
a grimling bloodguard
a grimling bloodguard
Posts: 506
Joined: Sat Jul 17, 2004 8:06 pm

Post by ascii38 » Tue Apr 18, 2006 8:44 pm

Chyld989 wrote:So, while I was facing the mob, and I was close enough to attack, I couldn't due to the ducking.
Easy fix is to just move forward a bit if it finds you're ducking, which is what I added to mine.
An even easier fix is to turn off "Allow auto-duck" in the Everquest options menu (Alt-O).

Chyld989
a ghoul
a ghoul
Posts: 88
Joined: Mon Dec 22, 2003 3:29 pm

Post by Chyld989 » Tue Apr 18, 2006 9:46 pm

ascii38 wrote:
Chyld989 wrote:So, while I was facing the mob, and I was close enough to attack, I couldn't due to the ducking.
Easy fix is to just move forward a bit if it finds you're ducking, which is what I added to mine.
An even easier fix is to turn off "Allow auto-duck" in the Everquest options menu (Alt-O).
Hot damn, you're a genius :) I'd completely forgotten that even existed.
/me goes to keep myself from auto-ducking in the future

matter68
a lesser mummy
a lesser mummy
Posts: 45
Joined: Tue Apr 04, 2006 6:37 pm

Post by matter68 » Wed Apr 19, 2006 3:07 am

The macro works excellant, great work. I tried the looting version.. nothing happened.. ah well cant have it all..:)

rapierguy
a ghoul
a ghoul
Posts: 122
Joined: Thu Apr 14, 2005 1:07 am

Post by rapierguy » Wed Apr 26, 2006 1:10 am

Welp After being /bumped by a vehicle that decide that pedestrians didn't have the right of way when crossing the street when I had the go ahead I'm back after what seems like an eternity in the hospital =

But someone pm'd me on how I fixed the looting thing and here is the entire macro with the loot code included which worked the night before i got hit by the car =)

Code: Select all

|-------------------------------------------------------------------------------- 
|Macro shroud5 for mq2 by PayBackTime, version 30MAR2006 
| 
|What's new: 
|Added the functions to allow using 3 types of potions: 
|  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 
|-------------------------------------------------------------------------------- 

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 
    
  /declare Mobstoloot int outer 0 
   /call ReadINI HunterMob.ini "${Zone.Name}" Mob 
   /if (!${Defined[MobArray]}) { 
      /echo Mob Array Creation Error, ending macro... 
      /endmacro 
   } 
   /call ReadINI HunterLoot.ini "${Zone.Name}" Loot 
   /if (!${Defined[LootArray]}) { 
      /echo No Loot Array Created... 
   } 
   /cleanup 
   /fastdrop on 
   /lootn never 

  /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 
   /if (${RV_HasTarget} && (${Defined[RV_LootArray]} || ${RV_LootAllItems})) /call LootMob  
   /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 2s 
         } 
         /if (${Me.AltAbilityReady[Lesion IV]} && ${Me.PctEndurance} >=6 && !${Me.Casting.ID} ) { 
         /aa act Lesion 
         /varset RV_DotUsed 1 
         } 
      } 
      /if (${Me.AltAbilityReady[Frost of the Ancients IV]} && ${Me.CurrentMana} >=5 && !${Me.Moving} && !${Me.Casting.ID} ) { 
      /aa act Frost of the Ancients IV
      /delay 2s 
      } 
      /if (${Me.AltAbilityReady[Mana Bolt VI]} && ${Me.CurrentMana} >=4 && !${Me.Moving} && !${Me.Casting.ID} ) { 
      /aa act Mana Bolt 
      /delay 2s 
      } 
      /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 V].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 ClearCorpses 
   /declare CorpseSub int local 
   /for CorpseSub 1 to ${Mobstoloot} 
      /call LootMob  
   /next CorpseSub 
   /call ResetSub 
/return 

Sub LootMob 
   /declare LootSlot int inner 0 
   /declare LootCheck int inner 0 
   /declare LootTotal int inner 0 
   /declare LootLoop int local 0 
   :WaitLootMobWnd 
   /squelch /target corpse radius 100 
   /delay 5 
   /squelch /stick 
   /if (${Target.Type.Equal[CORPSE]}) /loot all
   /delay 5 
   /varcalc LootLoop ${LootLoop}+1 
   /if (${LootLoop}>3) /return 
   /if (!${Corpse}) /goto :WaitLootMobWnd 
   /if (!${Corpse.Items}) { 
      /echo NO LOOT! Cheap Bastard! 
      /notify LootWnd DoneButton leftmouseup 
      /delay 2 
      /return 
   } 
   /squelch /stick off 
   /varset LootTotal ${Corpse.Items} 
   /for LootSlot 1 to ${LootTotal} 
      /itemnotify loot${LootSlot} leftmouseup 
      /delay 1s 
      /for LootCheck 1 to ${LootArray.Size} 
         /if (${Cursor.Name.Find[${LootArray[${LootCheck}]}]}) { 
            /echo Keeping a ${Cursor.Name}... WOOT! 
            /varcalc LootStats[${LootCheck}] ${LootStats[${LootCheck}]}+1 
            /autoinventory 
            /delay 1s 
         } 
      /next LootCheck 
      /if (${Cursor.Value}>9000 && ${Cursor.Stackable}) { 
         /echo Keeping a ${Cursor.Name}... 
         /autoi 
         /delay 1s 
      }  
      /if (${Cursor.NoDrop}&&!${Cursor.Magic}) { 
         /echo Destroying a ${Cursor.Name}... 
         /des 
         /delay 1s 
      }  
      /if (${Cursor.NoDrop}&&${Cursor.WornSlots}<1) { 
         /echo Destroying a ${Cursor.Name}... 
         /des 
         /delay 1s 
      }  
      /if (${Cursor.ID}) { 
         /echo Dropping a ${Cursor.Name}... 
         /drop 
         /delay 1s 
      } 
   /next LootSlot 
   /notify LootWnd DoneButton leftmouseup 
/return    



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

  
   /tar corpse radius 50 
   /call MoveSub 
   /loot all
   /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 
   } 
   /if (${FileName.Equal["HunterLoot.ini"]}&&${nValues}>0) { 
      /echo Declaring Loot Array... 
      /declare LootArray[${nValues}] string outer 
      /declare LootStats[${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 
      } 
      /if (${FileName.Equal["HunterLoot.ini"]}) { 
         /varset LootArray[${nArray}] ${Ini[${FileName},${SectionName},${ArrayType}${nArray}]} 
         /varset LootStats[${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.AltAbilityReady[Pure Thought]}) { 
      /aa act Pure Thought 
      /delay 6s 
      /goto :BuffLoop 
   } 

   /if (!${Me.Buff[Gift of Speed II].ID} && ${Me.AltAbilityReady[Gift of Speed]}) { 
      /aa act Gift of Speed 
      /delay 6s 
      /goto :BuffLoop 
   } 

   /if (!${Me.Buff[Distillate of Skinspikes].ID} && ${FindItem[Distillate of Skinspikes II].InvSlot}) { 
      /potionbelt activate 2 
      /delay 5s 
   } 
   /if (!${Me.Buff[Boon of Vitality V].ID} && !${Me.Buff[Elixir of Health II].ID}) { 
      /if (${Me.AltAbilityReady[Boon of Vitality V]} && ${Me.CurrentMana} >=3) { 
         /aa act Boon of Vitality V
         /delay 6s 
         /goto :BuffLoop 
      } 
      /if (${FindItem[Distillate of Health V].InvSlot}>=22 && ${FindItem[Distillate of Health V].InvSlot}<=29 ) { 
         /cast item "Distillate of Health V" 
         /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} <= 70) { 
      /delay 12s 
      /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 

BTW I may have some other stuff in there that i think I was working on. If you find some weird stuff let me know I have to get a few more Gamecards before I can get back to using my 4 man hydra again with this code

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

Post by newgamez88 » Wed Apr 26, 2006 3:20 am

Repierguy, sorry to hear that you got an accident. Hope you feel better now. Just curious, how much plats can you make per hour using your 4-box?

rapierguy
a ghoul
a ghoul
Posts: 122
Joined: Thu Apr 14, 2005 1:07 am

Post by rapierguy » Wed Apr 26, 2006 12:06 pm

Last time I tried the macro was with all toons at lvl 30 shrouds and whichever toon was looting would autosplit the loots. I think however they were averaging about 200 to 300pp per session

And thanks for the well wishes. having to use a cane right now to get anywhere but aside from that all is good.

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

Post by newgamez88 » Wed Apr 26, 2006 12:56 pm

If you only want plats now exp, you can shroud down and get a low level instance, then shroud to a higher level to get faster kills. For example, if you shroud to level 40 and get an instance, and shroud to level 70, you should be able to kill a lot faster (and probably don't need 4box), although no exp.

If you want to have both exp and plats, you can't use level 70 shroud. However a level 60 shroud in a level 50 instance still gives exp. So is level 45 shroud in level 40 instance, etc. (A lot of possibilities here!)

Remember if you change shroud you have to get into the instance within 10min after getting it, so don't waste time. Get the instance, immediately spirit sending, then unshroud, shroud again, run to bank to pick up potions, and run to the instance.

rapierguy
a ghoul
a ghoul
Posts: 122
Joined: Thu Apr 14, 2005 1:07 am

Post by rapierguy » Wed Apr 26, 2006 1:12 pm

I'm actually using this macro to help get my baby war up in levels atm with all my chars in shroud form. managed to get my War up from lvl 29 to lvl 35 in about 3 sessions starting everyone off in the lvl 5 shroud lol and during the last 2 sessions I've had em all in lvl 30 shroud. this also works nicely for me to get my main some laa doing this was well and my chanter went form lvl 68 to 69 and my necro from lvl 65 to lvl 66 using this macro

matter68
a lesser mummy
a lesser mummy
Posts: 45
Joined: Tue Apr 04, 2006 6:37 pm

Post by matter68 » Thu May 04, 2006 1:09 pm

I've been running the looting version (only making about 8 plat) but comparing it to the non loting version. Non looting version seems better at using spell abilities and potions where the looting version doesnt. Has anyone else notice this by any chance? How could the looting version be modded to aleviate this? Overall, both macros work very well. Keep up the great work!