Bash and taunt macro

A forum for you to dump all the macros you create, allowing users to use, modify, and comment on your work.

Moderator: MacroQuest Developers

User avatar
ieatacid
Developer
Developer
Posts: 2727
Joined: Wed Sep 03, 2003 7:44 pm

Bash and taunt macro

Post by ieatacid » Wed Jan 21, 2004 12:47 pm

Code: Select all

|bash.mac -- 1/30/2004
|
|Presses bash and taunt so you don't have to.
|Can also be set to bash without taunting or just taunt.
|
|/mac bash      (taunt) -- default
|/mac bash 0    (don't taunt)  
|/mac bash 1    (only taunt)
|/mac bash 2    (only disarm)

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

Sub Main
/echo bash.mac Started....
/if $defined(Param0)==TRUE /if n @Param0==0 {
	/echo Taunt OFF
	/echo Bash ON
	/goto :LoopBash
}
/if $defined(Param0)==TRUE /if n @Param0==1 {
	/echo Taunt ON
	/echo Bash OFF
	/goto :LoopTaunt
}
/if $defined(Param0)==TRUE /if n @Param0==2 {
	/echo Taunt OFF
	/echo Bash OFF
	/goto :LoopDisarm
} else {
	/echo Taunt ON
	/echo Bash ON
	/goto :LoopBoth
}

:LoopBoth
/doevents
/if "$char(casting)"=="TRUE" /delay 1s
/if $combat=="TRUE" {
	/if n $target(distance)<18 { 
		/if n $char(ability,"Taunt")>0 /doability "Taunt"
	}
	/if n $target(distance)<20 { 
		/if n $char(ability,"Bash")>0 /doability "Bash"
	}
	/if n $target(distance)<20 { 
		/if $char(ability,"Disarm")>0 /doability "Disarm"
	}
}
/delay 1s
/goto :LoopBoth

:LoopBash
/doevents
/if "$char(casting)"=="TRUE" /delay 1s
/if $combat=="TRUE" {
	/if n $target(distance)<20 { 
		/if n $char(ability,"Bash")>0 /doability "Bash"
	}
	/if n $target(distance)<20 { 
		/if $char(ability,"Disarm")>0 /doability "Disarm"
	}
}
/delay 1s
/goto :LoopBash

:LoopTaunt
/if "$char(casting)"=="TRUE" /delay 1s
/if $combat=="TRUE" {
	/if n $target(distance)<18 { 
		/if n $char(ability,"Taunt")>0 /doability "Taunt"
	}
	/if n $target(distance)<20 { 
		/if $char(ability,"Disarm")>0 /doability "Disarm"
	}
}
/delay 1s
/goto :LoopTaunt

:LoopDisarm
/if "$char(casting)"=="TRUE" /delay 1s
/if $combat=="TRUE" {
	/if n $target(distance)<20 { 
		/if $char(ability,"Disarm")>0 /doability "Disarm"
	}
}
/delay 1s
/goto :LoopDisarm
/return

Sub Event_NoShield
/echo No shield to bash with
/echo exiting...
/endmac
/return
Last edited by ieatacid on Mon Feb 02, 2004 3:53 pm, edited 12 times in total.

Slackerboy
decaying skeleton
decaying skeleton
Posts: 7
Joined: Sun Jan 18, 2004 10:27 pm

Post by Slackerboy » Sat Jan 24, 2004 6:02 pm

Thanks I was just about to write this one myself.

Saved me some time, and I am a slacker :)

User avatar
ieatacid
Developer
Developer
Posts: 2727
Joined: Wed Sep 03, 2003 7:44 pm

Post by ieatacid » Sun Jan 25, 2004 6:24 pm

Changed it a bit and added option to only taunt, in case you don't have a shield equipped to bash with.

fryfrog
a hill giant
a hill giant
Posts: 271
Joined: Fri Jun 20, 2003 5:37 am

Post by fryfrog » Wed Jan 28, 2004 12:53 am

My suggestion would be to use the direction you are facing and the direction the mob is facing to calculate if it is facing the way it should be. This way you will use taunt much more effectivly. Instead of fireing off every time, it will only fire off if the mob turns away from you. For warriors, the difference when switching to this "method" of using taunt is ginormous.

User avatar
ieatacid
Developer
Developer
Posts: 2727
Joined: Wed Sep 03, 2003 7:44 pm

Post by ieatacid » Wed Jan 28, 2004 3:59 am

That's a good idea, but right now I think it goes beyond my scope of macroing :?

fryfrog
a hill giant
a hill giant
Posts: 271
Joined: Fri Jun 20, 2003 5:37 am

Post by fryfrog » Wed Jan 28, 2004 11:45 am

Actually, it sounds kind of hard but when it comes down to it... it isn't.

You get the direction a mob SHOULD be facing by finding the inverse of what you are facing. All you need to do is add 180 to your current heading and then mod it by 360 to make sure it is a number between 0 - 360.

So something like the following would give you a kind of fuzziness of 10 degrees (5 in each direction). I probably have the > < parts messed up, so if it works opposite of intention you may need to reverse them. Also, if you are not using /face to keep facing the mob you will most likely need a much larger fuzziness which will make it less accurate.

Code: Select all

/if $calc(($char(heading)+180)%360)>=$target(heading)+5 {
   /if $calc(($char(heading)+180)%360)<=$target(heading)-5
}

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Post by Mckorr » Wed Jan 28, 2004 1:02 pm

If you look at autofight.inc in the Snippets forum you will see an example of auto-bash. It also auto-kicks. Granted it's been written from the standpoint of a class that can not do both.

I use a version of that called aggro.mac. Essentially I added taunt to the list of things to try, as well as an auto-begging routine. If the begging ability is available it will turn off autoattack, /doability "Begging", then turn autoattack back on. Very effective, my begging skill is now maxxed for my main, and I occasionally pick up a little cash from the mob!

coil
decaying skeleton
decaying skeleton
Posts: 9
Joined: Sun Feb 01, 2004 3:04 am

the tuant on this doesnt work on my characters

Post by coil » Sun Feb 01, 2004 3:06 am

there seems to be something wrong with this, it never hits the tuant key and some times it doenst even hit the bash key. not only that if the fight lasts to long it kicks me out of the game

User avatar
Elric
Cheese Whore
Cheese Whore
Posts: 466
Joined: Sun Nov 23, 2003 12:31 am
Location: Tampa, Fl
Contact:

Post by Elric » Sun Feb 01, 2004 2:54 pm

I'm not having a problem with it on my Paladin at all. :-\

Well, except when I equip a 2HS.. but then, I just commented out the Bash routine. :-D
-Elric

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Post by Mckorr » Mon Feb 02, 2004 1:45 pm

Instead of commenting out the Bash routine I just put a filter in macroquest.ini for "you must have a shield equipped". Duh, I know that Sony.... I also filter out other annoying messages that really don't tell me anything I didn't already know, or that I could care less about.

User avatar
ieatacid
Developer
Developer
Posts: 2727
Joined: Wed Sep 03, 2003 7:44 pm

Post by ieatacid » Mon Feb 02, 2004 3:45 pm

Not having any problems with it on my paladin either.

I've updated again. In my quest to make it as automated as possible, I've included an event to end the macro if you have it set to bash and you remove your shield (like if you switching to 2hs or piercing).

coil
decaying skeleton
decaying skeleton
Posts: 9
Joined: Sun Feb 01, 2004 3:04 am

Post by coil » Thu Feb 05, 2004 12:19 am

sorry about that post guies, this is a great little addtion to any tank type, i'm just a moron who didn't install MQ2 correctly :(

But now that i have it in right its all good ;)

dexeh
decaying skeleton
decaying skeleton
Posts: 1
Joined: Thu Apr 22, 2004 11:39 am

Post by dexeh » Thu Apr 22, 2004 11:47 am

Greetings -- Was wondering if someone could update this macro for MQ2Data?

nickr98
orc pawn
orc pawn
Posts: 14
Joined: Thu Jan 22, 2004 5:11 pm

Post by nickr98 » Wed Apr 28, 2004 12:08 am

I used to use a highly modified version of this Macro for all of my melees, and am having some trouble converting it over for new parms can anyone rewrite this one so i know what i have to change?

Thanks in advance!
Newb

Tinkoman
orc pawn
orc pawn
Posts: 10
Joined: Tue Apr 06, 2004 12:04 pm

Post by Tinkoman » Wed Apr 28, 2004 12:54 am

Well, I don't have a warrior to try this on atm, but it should work, unless I'm too tired and missed something. I think it is much easier to understand than the previous verson.

Should be fully MQ2Data compliant

Code: Select all

|bash.mac MQ2Data compliant (4/26/04) by Tinkoman
|adapted from (bash.mac -- 1/30/2004).. Lots of changes 
| 
|Presses bash, taunt and disarm so you don't have to. 
|Can also be set to bash without taunting or just taunt. 
| 
|/mac bash      (taunt) -- default 
|/mac bash 0    (don't taunt)  
|/mac bash 1    (only taunt) 
|/mac bash 2    (only disarm) 

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

/Declare TauntOn Global
/Declare BashOn Global
/Declare Disarm Global

/varset TauntOn 1
/Varset BashOn 1
/Varset DisarmOn 1

Sub Main 
/echo bash.mac Started.... 

/if (${Defined[Param0]}) {
    /if (@Param0==0) { 
        /varset @TauntOn 0
        /echo Taunt OFF
        /echo Bash ON
    } else /if (@Param0==1) { 
        /varset @BashOn 0
        /echo Taunt ON 
        /echo Bash OFF
    } else /if (@Param0==2) { 
        /varset @TauntOn 0
        /varset @BashOn 0
        /echo Taunt OFF 
        /echo Bash OFF 
    }
}
 
:MainLoop 

/doevents 
/if (${Me.Casting.ID}) /delay 1s 
/if (${Me.Combat}) { 
   /if (${Target.Distance}<18 && @TauntOn) { 
      /if (${Me.AbilityReady["Taunt"]}) /doability "Taunt" 
   } 
   /if (${Target.Distance}<20 && @BashOn) { 
      /if (${Me.AbilityReady["Bash"]}) /doability "Bash" 
   } 
   /if (${Target.Distance}<20 && @DisarmOn) { 
      /if (${Me.AbilityReady["Disarm"]}) /doability "Disarm" 
   } 
} 
/delay 1s 
/goto :MainLoop 

/endmacro


Sub Event_NoShield 
/echo No shield to bash with 
/echo exiting... 
/endmacro 
/return
/r
Tinkoman