BP.mac (healing melees with Invig BP)

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

Moderator: MacroQuest Developers

Zenjisu
decaying skeleton
decaying skeleton
Posts: 3
Joined: Sat May 29, 2004 11:04 am

BP.mac (healing melees with Invig BP)

Post by Zenjisu » Thu Jul 22, 2004 4:39 pm

Adapted from a Mana Robe macro I saw somewhere... enjoy! It's my first attempt at a macro, so be gentle. I've used it for a month now in game, and even tried (unsuccessfully) to insert it into the Hunter macro for when the greenies are giving me a beat-down after awhile. I hope you rogues and warriors enjoy it.

Code: Select all

|bp.mac
|
|6-19-2004
| 
|syntax is /mac bp
|
|Use /echo stop to end it early and have it re-equip your original BP.
|
|This macro is for melees with BP's that have the clickable "Invigorate"
|effect, which heals for 100 hps, such as Kunark or Velious quest BP.
|The macro assumes you are not wearing this gimp-ass BP, so do not equip it
|before starting the macro... it will find it in your inventory, switch it
|during the healing process, and switch it back when you're at full health.
|Substitute the two instances of "Mrylokar's Breastplate" with the name
|for your BP to get it to work for you.

#turbo 
#event stop "[MQ2] stop" 

Sub Main 
   /declare slot int outer 
   /declare bag int outer 

   /echo bp.mac started.... 
   /echo Type "/echo stop" to switch back before fully healed.
   /if (!${Window[InventoryWindow].Open}) /keypress Inventory 
   /varset bag ${FindItem[Mrylokar's Breastplate].InvSlot.Pack} 
   /itemnotify ${InvSlot[${bag}]} rightmouseup 
   /varset slot ${FindItem[=Mrylokar's Breastplate].InvSlot} 
   /itemnotify chest leftmouseup 
   /itemnotify ${InvSlot[${slot}]} leftmouseup 
   /itemnotify chest leftmouseup 
   /if (${Me.Sitting}) /stand 
   :loop 
   /call CheckHP 
   /itemnotify chest rightmouseup 
   /doevents 
   /delay 1 
   /goto :loop 
/return 

Sub CheckHP 
   /if (${Me.PctHPs}>=99) { 
   /echo Back to Full Health! 
   /call EndIt 
   } 
/return 

Sub EndIt 
   :wait 
   /if (${Me.Casting.ID}) /goto :wait 
   /itemnotify chest leftmouseup 
   /itemnotify ${InvSlot[${slot}]} leftmouseup 
   /itemnotify chest leftmouseup 
   /echo Ending. 
   /cleanup 
/endmac 

Sub Event_stop 
   /call EndIt 
/return

hiipii
a ghoul
a ghoul
Posts: 93
Joined: Sat Jun 19, 2004 5:01 pm

Post by hiipii » Fri Jul 23, 2004 12:36 am

great idea man...post your hunter mac that you want t in and what the parameters are etc. and ill help you put it in there :D

Zenjisu
decaying skeleton
decaying skeleton
Posts: 3
Joined: Sat May 29, 2004 11:04 am

Post by Zenjisu » Tue Jul 27, 2004 12:07 pm

Well, I just use the regular old Hunter.mac, the one that's on v. 1.3. I was trying to use the BP.mac idea inside the "Special Combat" sub, in which the creator of Hunter.mac has his paladin use Bash when available and cast Light of Nife when his health gets below 50%. Here is the section I am referring to:

Code: Select all

|-------------------------------------------------------------------------------- 
|SUB: Special Combat 
|-------------------------------------------------------------------------------- 
Sub SpecialIt 

   /declare TempID    int inner  0 

   /if ((${Target.Distance}<11)&&(${Me.AbilityReady["Bash"]})) /doability "Bash" 
    
   /if ((${Int[${Me.PctHPs}]}<50)&&(${Me.Gem["Light of Nife"]})&&(${Me.SpellReady["Light of Nife"]})) { 
      /varset TempID ${Target.ID} 
      /keypress forward 
      /keypress back 
      /keypress F1 
      /echo Casting Heal Spell because of low health... 
      /cast "Light of Nife" 
      /delay 3s 
      /target id ${TempID} 
   } 
    
/return 
Any ideas on how to incorporate the above BP.mac into this sub?

hiipii
a ghoul
a ghoul
Posts: 93
Joined: Sat Jun 19, 2004 5:01 pm

Post by hiipii » Wed Jul 28, 2004 5:21 am

Hmm ok first of all I don't think I would want to stop and cast my bp during combat seeing as how it is 10 second cast time i believe and it will prolly get interrupted. That being said lemme see what i can do.

first in hunter.mac change this

Code: Select all

| Hunter Macro 
| Hunter.mac 
| Author      : robdawg 
| Version     : v1.2 2004-05-13 10:06pm PST 
| Useage      : /macro Hunter 
| Description : This macro will run your character around killing any mobs in your 
|      RV_MobArray.  Then it will attempt to loot all items in your 
|      RV_LootArray.  This is definitely a work in progress and I am sure 
|      someone can think of plenty of upgrades for this. 
|------------------------------------------------------------------------------------ 

#turbo 10 

Sub Main
to this

Code: Select all

| Hunter Macro 
| Hunter.mac 
| Author      : robdawg 
| Version     : v1.2 2004-05-13 10:06pm PST 
| Useage      : /macro Hunter 
| Description : This macro will run your character around killing any mobs in your 
|      RV_MobArray.  Then it will attempt to loot all items in your 
|      RV_LootArray.  This is definitely a work in progress and I am sure 
|      someone can think of plenty of upgrades for this. 
|------------------------------------------------------------------------------------ 

#include bp.mac
#turbo 10 

Sub Main
now change sub main in your code to sub BreastPlate.

now in hunter.mac change

Code: Select all

|-------------------------------------------------------------------------------- 
|SUB: Special Combat 
|-------------------------------------------------------------------------------- 
Sub SpecialIt 

   /declare TempID    int inner  0 

   /if ((${Target.Distance}<11)&&(${Me.AbilityReady["Bash"]})) /doability "Bash" 
    
   /if ((${Int[${Me.PctHPs}]}<50)&&(${Me.Gem["Light of Nife"]})&&(${Me.SpellReady["Light of Nife"]})) { 
      /varset TempID ${Target.ID} 
      /keypress forward 
      /keypress back 
      /keypress F1 
      /echo Casting Heal Spell because of low health... 
      /cast "Light of Nife" 
      /delay 3s 
      /target id ${TempID} 
   } 
    
/return

to

Code: Select all

|-------------------------------------------------------------------------------- 
|SUB: Special Combat 
|-------------------------------------------------------------------------------- 
Sub SpecialIt 

   /declare TempID    int inner  0 

   /if ((${Target.Distance}<11)&&(${Me.AbilityReady["Bash"]})) /doability "Bash" 
    
   /if (${Int[${Me.PctHPs}]}<50) { 
      /varset TempID ${Target.ID} 
      /keypress forward 
      /keypress back 
      /keypress F1 
      /echo Casting Heal Spell because of low health... 
      /call BreastPlate
      /delay 3s 
      /target id ${TempID} 
   } 
    
/return
this should stop and cast your bp up to full if you are below 50% hp. This seems pretty innefficient imo so here is what i would do.

in hunter.mac add this line

Code: Select all

   :Start 
   /doevents 
   /call GMCheck 
   /if (${Me.PctHPs}<50) /call BreastPlate
   /call GetTarget
this will make it check your hp and use bp if necessary right before it finds a target.