Bind Wound macro

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

Moderator: MacroQuest Developers

caj
a hill giant
a hill giant
Posts: 244
Joined: Tue Sep 12, 2006 9:35 am

Bind Wound macro

Post by caj » Wed Jan 06, 2021 5:55 pm

In all the years Ive been play this game, I was never able to get the Bind Wound skill to max. I wrote this mac just to do that. I will admit, I have yet to get a toon to max out but it saves on the constant grind of mashing the button hours on end. Enjoy.

Addendum and possibly educational reasons... I Finally got a toon maxed out on the Bind Wound skill and adjusted/streamlined for efficiency. as they were no longer needed, I removed the lines :

Code: Select all

#Event NotExpected 	"You Cannot Bandage your target past 100 percent of their hit points."

Sub Event_NotExpected
|this sub came about due to an outsider practicing their Bind Wound skill and the mac 
|just happened to get the "cant bind over 100%" message. 
/echo the macro saw the bandage surge and thinks the target is 100% health. Double checking target.
/if (${Target.PctHPs}==100) /call Fight
/if (${Target.PctHPs}<99) /call DoBandage
/return
The error was I did not allow the mac time to understand it needed to attack once target got to 100% health so to defeat the problem so I added:

Code: Select all

/if (!${Me.CombatState.Equal[COMBAT]}) /attack on

I also adjusted the "Sub SkillMax" so all the boxed toons will log out at the same time without issue. Hope you enjoy!


Code: Select all

| Written: caj 1/6/21 
| How to use with /duel:
| 1. Make sure you have the Bind Wound hot key in a hotbar somewhere and a stack of 1000s bandages. (or however many you think you need)
| 2. Group with a character higher or equal to your level.
| 3. MQ2Melee does not get along with PC duels. Be aware, the macro will unload all boxed MQ2Melee plugins attached to EQBS,  it will be up to the user to ensure its loaded back up after macro is done. If the macro is
|    able to accomplish maxing out the toon Bind Wound skill it will attempt to reload the plugin before camping the boxed toons.
| 4. Target each other and /d for duel.
| 5. Have the opposing character turn away from you, especially if they are higher level as so they wont riptose/counter attack you to death. 
| 6. A good place to run this macro is in the guild hall (*not in the lobby*) By now, most likely everybody in your guild knows you run MQ2, if not they are living under a rock. 
|    Currently the macro will not run in POK or the Guild lobby.

#Event SkillUp 		"You have become better at #1#! (#2#)"
#Event NoMoreBandaids	"You can't bandage without ban dages, go buy some."

Sub Main
    /declare Ver                    string          outer   1.1
    /declare SkillName              string          outer   Bind Wound
		
    /if (${Bool[${Plugin[MQ2Melee]}]}) /bcaa //plugin MQ2Melee unload
    /if (!${Bool[${Plugin[MQ2Moveutils]}]}) {
        /echo macro requires MQ2moveutils
        /if (!${Bool[${Plugin[MQ2Moveutils]}]}) /plugin mq2moveutils
        /delay 2
        /if (!${Bool[${Plugin[MQ2Moveutils]}]}) /end
    }
    
    /echo Bind Wound v${Ver}
    /delay 2
    /echo Traning the Bind Wound skill
    /call SkillMax
    /delay 2
    :MainLoop
        /if (${Zone.ID}==202 || ${Zone.ID}==344) {
          /delay 30s
          /bcaa //camp
          /end
        }
        /call Fight
        /call DoBandage
        /doevents
    /goto :MainLoop
/return

Sub Fight
/echo entering fight sub
/target ${Group.Member[1]}
/delay 2
:dueling
/if (!${Me.CombatState.Equal[COMBAT]}) /attack on
/doevents
/if (${Group.Member[1].PctHPs}<40) /return
/delay 3
/goto :dueling
/return

Sub DoBandage
/echo starting to bandage target
    /attack off
    /if (!${Me.Standing}) /stand    
    /target id ${MyTargetID}
    /delay 3
    /stick 10
    /if (${Me.Skill[${SkillName}]} < ${Me.SkillCap[${SkillName}]}) {
         :wait
         /delay 3s
         /if (!${Me.AbilityReady[${SkillName}]}) /goto :Wait
         /delay 10
         /doability "${SkillName}"
         /doevents 
         /call SkillMax
         /delay 10s
         /if (${Target.PctHPs}==100) /return
         /if (${Target.PctHPs}<99) /goto :wait
/return

Sub SkillMax
   /doevents
   /echo checking if skill is maxed
   /echo Skill Level/Skill Cap
   /echo ${SkillName}: ${Me.Skill[${SkillName}]}/${Me.SkillCap[${SkillName}]}
   /if (${Me.Skill[${SkillName}]} == ${Me.SkillCap[${SkillName}]}) {
      /echo Bind Wound skill currently maxed. Ending macro and camping everybody out.
      /stick off
      /bcaa //plugin MQ2Melee load
      /delay 3s
      /bca //end mac
      /delay 2s
      /bcaa //camp
      /end
  }
/return

Sub Event_SkillUp(S0,S1,S2)
   /echo >>> Your ${S1} skill is now ${S2} of ${Me.SkillCap[${SkillName}]} <<<
/return

Sub Event_NoMoreBandaids
  /stick off
  /bcaa //plugin MQ2Melee load
  /delay 3s
|  /bcaa //camp
  /end
/return