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

Afk unlock shrouded forms (now support some potions)

Post by newgamez88 » Thu Mar 09, 2006 12:30 pm

Edit: fixed stuck problem and also check for zoning to POK, Nedaria or if there is a GM in zone.
Now you can bring 3 kinds of potions to speed it up. Two of them can be bought in POK and the 3rd is a shaman made. See the code for details. You must put the 'distillate of health II' potion in an inventory slot (not in bags), and use potion belt for the other two. The reason to use potion belt is that you may need more than 20 of them (and I'm lazy so don't want to code swapping potions out of bags).

Before using the macro:
a) You need to create a level 5 shrouded form, of course you need to hotkey the monster abilities, and also hotkey "bind wound" from your action panel, and "kick" if available. Also remember kick may be out when you change back to your original form, so when you re-shroud you sometimes (not always) need to re-select the ability from your action panel. Buffs like temp helps to an extent but not at all necessary. A DS or Regen buff helps a lot when you have to use a caster (wiz or chanter), but not nearly as helpful when you use a melee form.
b) you need to carry 1-3 backpacks of bandages with you. If you don't you'll progress slower but no biggy. The female NPC in front of the small bank sells bandages. Use your original form to purchase to get a better price, then put it to the bank and retrieve after shrouded.
c) go to the forgotten halls (an instanced zone in nedaria's landing). From POK go to the guild lobby and '/say nedaria' to the magus next to the guild hall zone. Then '/say interested in visiting' to eldros danmor on the deck. This will create the zone for you at the eastern side in a cave. Click on the lone stone there to zone in.
d) This macro works only in the 3 rooms with rats, bats and mixed mobs(rats/bats/rejects) respectively, as well as in the hallways in between. So do not invoke it before you get to those area (i.e., do not invoke the macro at zone in, it will not work there).

Credits tot: took some codes from Hunter, the HHK MM, and the Misty Acorn Search macros. They can all be found in this forum.

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 


   :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 2s 
         } 
         /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 2s 
      } 
      /if (${Me.AltAbilityReady[Mana Bolt]} && ${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 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 

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

   /keypress esc 
   /keypress esc 
   /keypress esc 
   /keypress esc 
    
   /varset RV_HasTarget 0 
   /varset RV_TargetDead 0 
    
/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 II].ID} && !${Me.Buff[Elixir of Health II].ID}) {
      /if (${Me.AltAbilityReady[Boon of Vitality]} && ${Me.CurrentMana} >=3) { 
         /aa act Boon of Vitality 
         /delay 6s 
         /goto :BuffLoop 
      }
      /if (${FindItem[Distillate of Health II].InvSlot}>=22 && ${FindItem[Distillate of Health II].InvSlot}<=29 ) {
         /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} <= 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 
 
Last edited by newgamez88 on Fri Mar 31, 2006 3:54 am, edited 1 time in total.

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

Post by newgamez88 » Thu Mar 09, 2006 4:07 pm

Please note that I just fixed one line of code in the combat sub. If you downloaded it before the edit, here's the change:

Code: Select all

/echo start Mauling
has been changed to

Code: Select all

/aa act Maul
Sorry about the confusion.[/code]

something
decaying skeleton
decaying skeleton
Posts: 1
Joined: Sat Mar 11, 2006 7:15 pm

Post by something » Sat Mar 11, 2006 7:16 pm

dude is there a download for this file anywhere?

Yunto?
a grimling bloodguard
a grimling bloodguard
Posts: 502
Joined: Sat Nov 19, 2005 12:05 pm

Post by Yunto? » Sat Mar 11, 2006 7:58 pm

Copy/Open Notepad/Paste

Save as

There ya go.

uffda
decaying skeleton
decaying skeleton
Posts: 5
Joined: Thu Mar 02, 2006 12:28 am

Post by uffda » Mon Mar 13, 2006 12:51 am

about how long does it take to unlock a shroud? I've never really bothered with them :oops:

3djoker
a hill giant
a hill giant
Posts: 167
Joined: Thu Jun 24, 2004 11:19 pm

Post by 3djoker » Mon Mar 13, 2006 6:19 am

about how long does it take to unlock a shroud? I've never really bothered with them
why not try it and find out?

took me 3 hours.

Smyrk
a ghoul
a ghoul
Posts: 86
Joined: Mon Jun 13, 2005 3:40 pm

Post by Smyrk » Mon Mar 13, 2006 10:38 am

2.5-3 hours seemed to be about right for melee shroud varietys.

Caster type shrouds seem to take longer, bandage more often and die about once every 30-40 minutes for me, still pondering if I can tweak it to make it more efficient for them.

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

Post by newgamez88 » Tue Mar 14, 2006 12:32 pm

Remove your rusty staff weapon! Your atk will jump from 75 to 115 without the weapon.

You can consider using potions. There is a haste potion but that only adds 10% haste, also casters don't do damage while casting DD's so I don't think it is important. However another potion, the one that adds AC and max hitpoint should help tremendously.
-------------------------
Distillate Of Health II
Effect: Elixir of Health II (Casting Time: 1.5)
Required level of 5
NPC's sell this at 7g8s7c
WT: 1.0 Size: SMALL
Class: ALL
Race: ALL
stackable
This item can be Vendor Purchased:
Plane of Knowledge
Elwin Razorfur @ -60, 1390, Western trader building

Increases your maximum hit points by 38 and your Armor class by 3 for up to 0:30:00
---------------------------
So go buy some of these (if you are willing to spend the money) and add the following code to the buff loop (inside the subroutine 'bandsub'):

Code: Select all

   /if (!${Me.Buff["Elixir of Health II"].ID}) { 
      /cast item "Distillate Of Health II"
      /delay 5s
   }
That should keep your caster alive, yet he will still kill slower than a melee shroud. There are some other potions but they do not last 30 min so I do not consider them.

User avatar
fearless
Not a Psychic
Posts: 2684
Joined: Wed Mar 10, 2004 3:52 pm

Post by fearless » Tue Mar 14, 2006 12:49 pm

stop using "" inside [].
Reading . . . it's not just for me.

[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
[quote="Ccomp5950"]Fearless showed me the light, you too shall learn.[/quote]

RedManCommeth
a hill giant
a hill giant
Posts: 185
Joined: Sun Jul 11, 2004 12:15 pm

Post by RedManCommeth » Tue Mar 14, 2006 2:09 pm

How's the AAXP at 70 for this? Or is it the same xp a level 5'd get killng level appropriate mobs... = shyte?

RMC

Yunto?
a grimling bloodguard
a grimling bloodguard
Posts: 502
Joined: Sat Nov 19, 2005 12:05 pm

Post by Yunto? » Tue Mar 14, 2006 2:17 pm

RedManCommeth wrote:Or is it the same xp a level 5'd get killng level appropriate mobs... = shyte?

RMC
There ya go.

sonofcycle
orc pawn
orc pawn
Posts: 16
Joined: Thu Mar 23, 2006 9:37 am

Post by sonofcycle » Mon Mar 27, 2006 12:29 am

So copy/paste this into a txt document and then what, save it as a .mac extension? And does any of the text need to be edited out, such as the text that isn't code of any kind? Or would that just automatically be ignored when the macro runs?

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

Post by newgamez88 » Mon Mar 27, 2006 12:58 am

sonofcycle wrote:So copy/paste this into a txt document and then what, save it as a .mac extension? And does any of the text need to be edited out, such as the text that isn't code of any kind? Or would that just automatically be ignored when the macro runs?
Copy and paste all that is inside the 'code' area, save as a .mac file. You probably need to go through the file and fix any 'broken' lines (those lines were wrapped due to formatting of this forum, you need to get them back to the same line). That's it.

sonofcycle
orc pawn
orc pawn
Posts: 16
Joined: Thu Mar 23, 2006 9:37 am

Works great

Post by sonofcycle » Mon Mar 27, 2006 7:43 am

Actually it works without a bug, copied/pasted and started it up - as the first macro that I've ever tried I expected to run into more problems than that but not the case.

Also fortunately if any code did get wrapped due to line lengh restrictions on the page here, notepad and its inability to perform text wrapping w/o a carriage return faithfully fixed it. And now after watching the macro run for almost an hour after starting it my eyes are like this :shock:

sybarite
orc pawn
orc pawn
Posts: 18
Joined: Sun Oct 30, 2005 1:07 pm

Post by sybarite » Tue Mar 28, 2006 2:24 pm

It works pretty decently, but I think 3 hours is a bit far fetched.. I tried it using the basilisk shroud (which is a berserker) and only got 28% in an hour and 20 minutes. Very good macro though, excellent work. :)