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 » Thu May 04, 2006 4:39 pm

Check the levels of the spells/potions. My version used level II, where a level 5 char is able to use. I noticed that the 'loot' version was using level V potions, probably targeted to level 30 chars.

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

Post by matter68 » Thu May 04, 2006 4:53 pm

thanks, I'll give it a try :smile:

User avatar
Kambic
a lesser mummy
a lesser mummy
Posts: 74
Joined: Fri May 28, 2004 11:48 am

Post by Kambic » Tue May 09, 2006 8:25 pm

Test run ran great for several hours today, awesome!

I'm using a level 5 shroud. At work right now, so can't test but - is there any advantage/disadvantage to using a higher level shroud?

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

Post by rapierguy » Tue May 09, 2006 9:04 pm

newgamez88 wrote:Check the levels of the spells/potions. My version used level II, where a level 5 char is able to use. I noticed that the 'loot' version was using level V potions, probably targeted to level 30 chars.
Actually yeah the loot version I posted was designed for a lvl 30 shroud seeing as I was hydra 4 chars a lvl 70, lvl 68 and lvl 67 with my lvl 30 war and shrouded em all at lvl 30.

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

Post by newgamez88 » Wed May 10, 2006 12:07 am

Kambic wrote: is there any advantage/disadvantage to using a higher level shroud?
If your purpose is to unlock shroud form, then level 5 is the level to choose since you'll be able to score more kills, and the shroud unlocks based on number of kills more than any other factors.

User avatar
Script Guy
a ghoul
a ghoul
Posts: 91
Joined: Tue May 09, 2006 12:57 pm

Post by Script Guy » Wed May 10, 2006 11:12 am

I ran this the other night basically just to see it in action. I'm new to MQ2 and wanted to see some of it's power. I must say that I am impressed. My lvl 5 berserker kicked the crap out of the 3 rooms worth of mobs in record time with no input from me. I'm still laughing about it.

Questions:

1. It wouldn't load until I copied my HunterMob and HunterLoot files from the INI directory and into the MACRO directory. Is this normal?

2. Is there a download of a full HunterMob.ini or HunterLoot.ini anywhere?

THanks to the author for a great little macro. :)

SG

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

Post by fearless » Wed May 10, 2006 11:19 am

Script Guy wrote:1. It wouldn't load until I copied my HunterMob and HunterLoot files from the INI directory and into the MACRO directory. Is this normal?
yes, macro ini's are supposed to be in the macro directory (with the macro's), plugin ini's are supposed to be in the release directory (with the plugins)
Script Guy wrote:2. Is there a download of a full HunterMob.ini or HunterLoot.ini anywhere?
not really, most make their own.
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]

User avatar
Kambic
a lesser mummy
a lesser mummy
Posts: 74
Joined: Fri May 28, 2004 11:48 am

Post by Kambic » Fri May 12, 2006 12:31 am

rapier,

Small code change, but might want to change the bandage code from ${Me.PctHPs} >= 60 to >= 68.

That is, if you are a serious tweaker like I am ;)

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

Post by rapierguy » Fri May 12, 2006 7:52 am

kambic,

Stupid question but wouldn't that change make the toon want to use bandages more often ?

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

Post by newgamez88 » Fri May 12, 2006 4:13 pm

Set the percentage lower - less waste of time due to bandaging, potential risk of dying.

Set the percentage higher - more chance to waste 15 sec for a bandage (you may end up 100% hp and still healing, or you may waste a bandage trying to band above 70%). But it is safer.

If you are level 5 and use the +hp potions or buffs (or even hp regen potions made by shaman), 60% is good.

If you are level 5 and do not use the above, then set it to at least 65% for casters since you may die unbuffed against a mob. For warrior/beserker type you don't need to worry about it, can still use 60%.

I have no idea about level 30 shourds.

MILFhunter
decaying skeleton
decaying skeleton
Posts: 8
Joined: Fri May 13, 2005 10:21 am
Location: Mobs Id Like to Farm...

Post by MILFhunter » Thu Jun 01, 2006 10:36 am

Ran into a small bug with the Original version -- A level 5 caster shroud -- seems for some reason I got an add (darn unreliable anti-social beasts) -- Macro didnt catch it and my toon continued to try to bandage while being attacked ...

Going to play with some code and see if I can get it straight -- just thought someone would like to know :)
MILFhunter
(MoB's Id Like to Farm hunter - not the other one - jeez)

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

Post by newgamez88 » Fri Jun 02, 2006 1:18 am

A possible explanation: When you try to kill a lone mob (usually in the rat room, either the last rat or the 2nd to last when the other one is at the far corner), the mob will try to run at low hp. If you run eq on an old pc the machine speed is a bit too slow that you keep on chasing it but cannot deliver the final blow. At this moment the macro decides to give up and target another mob. You probably hit this jackpot and after a while the first mob comes back after you.

I encountered this problem on my old machine, however only on higher level instances, never on level 5 (since the mob runs at very low hp that you should be able to kill it before it runs far away). On my new pc I never had this problem.

Poprocks
decaying skeleton
decaying skeleton
Posts: 4
Joined: Mon Jun 05, 2006 11:45 am

Great job Newgamez88

Post by Poprocks » Mon Jun 05, 2006 11:55 am

Using it now for the first time. Shrouded to lvl 5 gobber rogue. Deleted rusty weapon and let it rip. 2 + Hours and still going strong.

Awesome Newgamez88!!

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

Post by Stubs » Sat Nov 11, 2006 11:21 pm

New version, should work for all classes, untested on Rogue and Berserker as of yet.

Code: Select all

|-------------------------------------------------------------------------------- 
|Macro shroud5 for mq2 by PayBackTime
| modified for more support by Stubs: version 11nov2006 
| 
|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 
|-------------------------------------------------------------------------------- 

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[Frost of the Ancients]} && ${Me.CurrentMana} >=5 && !${Me.Moving} && !${Me.Casting.ID} ) { 
         /aa act Frost of the Ancients 
         /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 

|-------------------------------------------------------------------------------- 
|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 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 90s 
      /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 
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]

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

Post by mekaniak » Sun Nov 12, 2006 1:53 pm

EDIT: NM, just realized my internet went into lagspike mode and thats what killed it.
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.