Bash Macro Help

Have a macro idea but not sure where to start? Ask here.

Moderator: MacroQuest Developers

Mickey3506
decaying skeleton
decaying skeleton
Posts: 6
Joined: Mon Jan 29, 2007 10:59 am

Bash Macro Help

Post by Mickey3506 » Sun Mar 16, 2008 4:36 pm

i am looking for a simple macro that will just spam bash when i activate it...pressing the "2" button on my keyboard is just getting old and i need to build up my bash on my warrior for aggro purposes. if anyone can just get me started with something or point me to a post where one exists. i have searched the forums for bash but have not found anything that works. (i have tried doing my own but i still have little understanding of how to write them)

jacensolo
a snow griffon
a snow griffon
Posts: 427
Joined: Wed Feb 14, 2007 8:51 am
Location: Right behind you

Post by jacensolo » Sun Mar 16, 2008 6:06 pm

Have you checked out MQ2Melee or Skill_Routines.inc? Melee is a plugin that does all combat skills, but you could set it up to just do bash. Skill_Routines is an include, and you could easily setup a macro to use Bash. I'd recommend skill_routines, since Melee is a bit over the top to use just for bash.

skeet
a lesser mummy
a lesser mummy
Posts: 37
Joined: Fri Dec 02, 2005 2:27 pm

Bash Macro Help

Post by skeet » Wed Oct 08, 2008 10:49 pm

I found this a while back. I do not recall who the author was but all props go to him as this is not my work. I made some modifications to suit my needs since I have carpal tunnel, but understand that I'm not a coder. It's not fancy but it gets the job done.

Code: Select all

|bash.mac -- 5.08.2004
|
|
|******************************************************************|
|******************************************************************|
|** When using the defaults, this will resort to kick if no      **|
|** shield is equipped. However, equipping a shield does not     **|
|** revert back to kick.                                         **|
|** You will need to re-issue the /mac bash command again with   **|
|** either no options, or the options that are listed below.     **|
|**                                                              **|
|** If you are going to issue the command with args, you must    **|
|** use either 0 or 1 as the first arg in the command or it      **|
|** won't work correctly.                                        **|
|**                                                              **|
|** I opted to turn off auto-face for the default parameter      **|
|** for obvious reasons.                                         **|
|******************************************************************|
|******************************************************************|
|
| For the <auto-face> parameter 0=off, 1=on (default is 0)
|
|/mac bash          (taunt-on, bash-on, disarm-on, auto-face off.) -- default
|/mac bash 0/1 0    (taunt-on, bash-on, disarm-on, kick-off)
|/mac bash 0/1 1    (taunt-on, bash-off, disarm-off, kick-off)
|/mac bash 0/1 2    (taunt-off, bash-on, disarm-off, kick-off)
|/mac bash 0/1 3    (taunt-off, bash-off, disarm-on, kick-off)
|/mac bash 0/1 4    (taunt-off, bash-off, disarm-off, kick-on)
|/mac bash 0/1 5    (taunt-on, bash-on, disarm-off, kick-off)
|/mac bash 0/1 6    (taunt-on, bash-off, disarm-off, kick-on)
|/mac bash 0/1 7    (taunt-off, bash-on, disarm-on, kick-off)
|/mac bash 0/1 8    (taunt-off, bash-off, disarm-on, kick-on)
|/mac bash 0/1 9    (taunt-on, bash-off, disarm-on, kick-off)
|
|
|example: /mac bash 1 1 will auto-face target and only taunt
|

#event NoShield "You need to equip a shield in order to BASH"

Sub Main
   /declare face int local

   /echo ${Macro.Name} Started....
   /varset face ${Param0}
   /if (${Defined[Param1]}) {
      /if (${Param1.Equal[0]}) {
      /echo Taunt ON
      /echo Bash ON
      /echo Disarm ON
      /echo Kick OFF
      /goto :LoopTaunt_Bash_Disarm
      }
      /if (${Param1.Equal[1]}) {
      /echo Taunt ON
      /echo Bash OFF
      /echo Disarm OFF
      /echo Kick OFF
      /goto :LoopTaunt
      }
      /if (${Param1.Equal[2]}) {
      /echo Taunt OFF
      /echo Bash ON
      /echo Disarm OFF
      /echo Kick OFF
      /goto :LoopBash
      }
      /if (${Param1.Equal[3]}) {
      /echo Taunt OFF
      /echo Bash OFF
      /echo Disarm ON
      /echo Kick OFF
      /goto :LoopDisarm
      }
      /if (${Param1.Equal[4]}) {
      /echo Taunt OFF
      /echo Bash OFF
      /echo Disarm OFF
      /echo Kick ON
      /goto :LoopKick
      }
      /if (${Param1.Equal[5]}) {
      /echo Taunt ON
      /echo Bash ON
      /echo Disarm OFF
      /echo Kick OFF
      /goto :LoopTaunt_Bash
      }
      /if (${Param1.Equal[6]}) {
      /echo Taunt ON
      /echo Bash OFF
      /echo Disarm OFF
      /echo Kick ON
      /goto :LoopTaunt_Kick
      }
      /if (${Param1.Equal[7]}) {
      /echo Taunt OFF
      /echo Bash ON
      /echo Disarm ON
      /echo Kick OFF
      /goto :LoopBash_Disarm
      }
      /if (${Param1.Equal[8]}) {
      /echo Taunt OFF
      /echo Bash OFF
      /echo Disarm ON
      /echo Kick ON
      /goto :LoopDisarm_Kick
      }
      /if (${Param1.Equal[9]}) {
      /echo Taunt ON
      /echo Bash OFF
      /echo Disarm ON
      /echo Kick OFF
      /goto :LoopTaunt_Disarm
      }
   } else {
   /varset face 0
   /echo Taunt ON
   /echo Bash ON
   /echo Disarm ON
   /echo Kick OFF
   /goto :LoopTaunt_Bash_Disarm
   }

:LoopTaunt_Bash_Disarm
   /doevents
   /if (${Me.Combat}) {
      /if (${Target.ID} && ${Target.Type.Equal[NPC]}) {
         /if (${face}==1) /face nolook
         /if (${Me.Casting.ID}) /goto :LoopTaunt_Bash_Disarm
         /if (${Target.Distance}<=17 && ${Me.AbilityReady[Taunt]}) /doability "Taunt"
         /if (${Target.Distance}<=17 && ${Me.AbilityReady[Bash]}) /doability "Bash"
         /if (${Target.Distance}<15 && ${Me.AbilityReady[Disarm]}) /doability "Disarm"
      }
   }
   /delay 5
   /goto :LoopTaunt_Bash_Disarm
   
:LoopTaunt
   /doevents
   /if (${Me.Combat}) {
      /if (${Target.ID} && ${Target.Type.Equal[NPC]}) {
         /if (${face}==1) /face nolook
         /if (${Me.Casting.ID}) /goto :LoopTaunt
         /if (${Target.Distance}<=17 && ${Me.AbilityReady[Taunt]}) /doability "Taunt"
      }
   }
   /delay 5
   /goto :LoopTaunt
   
:LoopBash
   /doevents
   /if (${Me.Combat}) {
      /if (${Target.ID} && ${Target.Type.Equal[NPC]}) {
         /if (${face}==1) /face nolook
         /if (${Me.Casting.ID}) /goto :LoopBash
         /if (${Target.Distance}<=17 && ${Me.AbilityReady[Bash]}) /doability "Bash"
      }
   }
   /delay 5
   /goto :LoopBash
   
:LoopDisarm
   /doevents
   /if (${Me.Combat}) {
      /if (${Target.ID} && ${Target.Type.Equal[NPC]}) {
         /if (${face}==1) /face nolook
         /if (${Me.Casting.ID}) /goto :LoopDisarm
         /if (${Target.Distance}<15 && ${Me.AbilityReady[Disarm]}) /doability "Disarm"
      }
   }
   /delay 5
   /goto :LoopDisarm
   
:LoopKick
   /doevents
   /if (${Me.Combat}) {
      /if (${Target.ID} && ${Target.Type.Equal[NPC]}) {
         /if (${face}==1) /face nolook
         /if (${Me.Casting.ID}) /goto :LoopKick
         /if (${Target.Distance}<=17 && ${Me.AbilityReady[Kick]}) /doability "Kick"
      }
   }
   /delay 5
   /goto :LoopKick
   
:LoopTaunt_Bash
   /doevents
   /if (${Me.Combat}) {
      /if (${Target.ID} && ${Target.Type.Equal[NPC]}) {
         /if (${face}==1) /face nolook
         /if (${Me.Casting.ID}) /goto :LoopTaunt_Bash
         /if (${Target.Distance}<=17 && ${Me.AbilityReady[Taunt]}) /doability "Taunt"
         /if (${Target.Distance}<=17 && ${Me.AbilityReady[Bash]}) /doability "Bash"
      }
   }
   /delay 5
   /goto :LoopTaunt_Bash
   
:LoopTaunt_Kick
   /doevents
   /if (${Me.Combat}) {
      /if (${Target.ID} && ${Target.Type.Equal[NPC]}) {
         /if (${face}==1) /face nolook
         /if (${Me.Casting.ID}) /goto :LoopTaunt_Kick
         /if (${Target.Distance}<=17 && ${Me.AbilityReady[Taunt]}) /doability "Taunt"
         /if (${Target.Distance}<=17 && ${Me.AbilityReady[Kick]}) /doability "Kick"
      }
   }
   /delay 5
   /goto :LoopTaunt_Kick
   
:LoopBash_Disarm
   /doevents
   /if (${Me.Combat}) {
      /if (${Target.ID} && ${Target.Type.Equal[NPC]}) {
         /if (${face}==1) /face nolook
         /if (${Me.Casting.ID}) /goto :LoopBash_Disarm
         /if (${Target.Distance}<=17 && ${Me.AbilityReady[Bash]}) /doability "Bash"
         /if (${Target.Distance}<15 && ${Me.AbilityReady[Disarm]}) /doability "Disarm"
      }
   }
   /delay 5
   /goto :LoopBash_Disarm
   
:LoopDisarm_Kick
   /doevents
   /if (${Me.Combat}) {
      /if (${Target.ID} && ${Target.Type.Equal[NPC]}) {
         /if (${face}==1) /face nolook
         /if (${Me.Casting.ID}) /goto :LoopDisarm_Kick
         /if (${Target.Distance}<=17 && ${Me.AbilityReady[Kick]}) /doability "Kick"
         /if (${Target.Distance}<15 && ${Me.AbilityReady[Disarm]}) /doability "Disarm"
      }
   }
   /delay 5
   /goto :LoopDisarm_Kick

:LoopTaunt_Disarm
   /doevents
   /if (${Me.Combat}) {
      /if (${Target.ID} && ${Target.Type.Equal[NPC]}) {
         /if (${face}==1) /face nolook
         /if (${Me.Casting.ID}) /goto :LoopTaunt_Disarm
         /if (${Target.Distance}<=17 && ${Me.AbilityReady[Taunt]}) /doability "Taunt"
         /if (${Target.Distance}<15 && ${Me.AbilityReady[Disarm]}) /doability "Disarm"
      }
   }
   /delay 5
   /goto :LoopTaunt_Disarm
/return

Sub Event_NoShield
   /echo You have no shield equipped. Resorting to Kicking

:LoopTaunt_Kick_Disarm
   /doevents
   /if (${Me.Combat}) {
      /if (${Target.ID} && ${Target.Type.Equal[NPC]}) {
         /if (${face}==1) /face nolook
         /if (${Me.Casting.ID}) /goto :LoopTaunt_Kick_Disarm
         /if (${Target.Distance}<=17 && ${Me.AbilityReady[Taunt]}) /doability "Taunt"
         /if (${Target.Distance}<=17 && ${Me.AbilityReady[Kick]}) /doability "Kick"
         /if (${Target.Distance}<15 && ${Me.AbilityReady[Disarm]}) /doability "Disarm"
      }
   }
   /delay 5
   /goto :LoopTaunt_Kick_Disarm
/return
Last edited by skeet on Fri Oct 10, 2008 1:24 pm, edited 1 time in total.

Bhero01
decaying skeleton
decaying skeleton
Posts: 3
Joined: Sat Jun 18, 2005 1:41 pm

re:

Post by Bhero01 » Thu Oct 09, 2008 2:46 pm

This should work just fine

Code: Select all

submain

:loop
/if (${Me.AbilityReady[Bash]}) /doability Bash
/delay 2s
/goto :loop

/return

Slackro
a lesser mummy
a lesser mummy
Posts: 46
Joined: Sun Apr 17, 2005 2:30 pm

Post by Slackro » Thu Oct 09, 2008 3:43 pm

Code: Select all

/if (${Me.Combat}) {
/if (!${Me.Casting.ID}) /if (${Target.ID}) /if (${Target.Distance}<15) /doability 6
}
Is what I use on my non-bot macro.