Monk Combat Routine

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

Moderator: MacroQuest Developers

Phibes
orc pawn
orc pawn
Posts: 23
Joined: Thu May 05, 2005 12:40 pm

Monk Combat Routine

Post by Phibes » Thu May 05, 2005 12:53 pm

This is the code I use for my Monk when in groups. I don't use it in Raids as positioning can be critical. The earlier version of this code checked how close you needed to be to hit the mob but there were bugs in it. For Raid purposes just comment out the movement section.

Every time I change targets this macro list some information on the target. Some of this info is redundant. Feel free to clean up or add to.

Code: Select all

|**************************************
|** MonkCombat.Mac Written by Phibes **
|** Not Raid Ready Yet!              **
|**************************************

#turbo 

Sub Main 
   /declare DontDisplayMobData int outer 0
   /declare MobOldID int outer 0

   :killstart
     |*******************************
     |** Check if we have a target **
     |*******************************
     /doevents
     /if (!${Target.ID}) {
        /varset DontDisplayMobData 0
        /goto :killstart
        }

     |*********************************************
     |** Check if the target has switched        **
     |** If it has then reset DontDisplayMobData **
     |*********************************************
     /if (${Target.ID}!=${MobOldID}) /varset DontDisplayMobData 0

     |************************************************************
     |** If DontDisplayMobData is off then Display the Mob Data **
     |** Then turn DontDisplayMobData so it don't show again.   **
     |************************************************************
     /if (${DontDisplayMobData}==0) {
        /varset MobOldID ${Target.ID}
        /varset DontDisplayMobData 1

        |***********************
        |** Show the Mob Data **
        |***********************
        /echo Target Name  = ${Target.Name}
        /echo Target Class = ${Target.Class}
        /echo Target Level = ${Target.Level}
        /echo Target MaxHP = ${Target.MaxHPs}
        /echo Target C HPs = ${Target.CurrentHPs}
        /echo Target Deity = ${Target.Deity}
        /echo Target Hold  = ${Target.Holding}
        /echo Target Max Range = ${Target.MaxRangeTo}
        }
     /if (!${Me.Combat}) /goto :killstart

     |*************************************************************
     |** If we're in combat start moving to mob and stay with it **
     |*************************************************************
     /if (${Target.Distance}>=15) /keypress forward hold 
     /if (${Target.ID}) /face fast 
     /if (${Target.Distance}>=13) /keypress forward hold 
     /if (${Target.ID}) /face fast 
     /if (${Target.Distance}<=10) /keypress forward 
     /if (${Target.ID}) /face fast 
     /if (${Target.Distance}<=8) /keypress forward 
     /if (${Target.ID}) /face fast

     |***********************************************************
     |** Movement is being handled now deal with combat skills **
     |***********************************************************
     /if (${Me.AbilityReady["Flying Kick"]}) {
         /doability "Flying Kick"
       }
     /if (${Me.AbilityReady["Disarm"]}) {
         /doability "Disarm"
       }

     /call CheckHP
   /goto :killstart
/return

Sub CheckHP 
   /if (${Me.PctHPs}<=74) {
      /if (${Me.AbilityReady["Mend"]}) {
          /doability "Mend"
      } 
   }

   /if (${Me.PctHPs}<=35) {
      /if (${Me.AbilityReady["Feign Death"]}) {
          /doability "Feign Death"
      }
   } 
/return
Read the Forums!

A_Druid_00
Macro Maker Extraordinaire
Posts: 2378
Joined: Tue Jul 13, 2004 12:45 pm
Location: Rolling on the Lawn Farting

Post by A_Druid_00 » Thu May 05, 2005 1:14 pm

If I remember correctly, Cr4zyb4rd added a "/stick pin" arg to moveutils that keeps you facing perpendicular to the mob instead of looking directly at it, so that you will only push the mob into a wall and not back and forth along it. Just some food for thought on the raiding thing.

It would require MQ2MoveUtils and therefore VIP access, but what a small price to pay for perfection :)
[quote]<DigitalMocking> man, A_Druid_00 really does love those long ass if statements
<dont_know_at_all> i don't use his macro because i'm frightened of it[/quote]
[quote][12:45] <dont_know_at_all> never use a macro when you can really fuck up things with a plugin[/quote]

Phibes
orc pawn
orc pawn
Posts: 23
Joined: Thu May 05, 2005 12:40 pm

Post by Phibes » Thu May 05, 2005 2:11 pm

I'm new at this A_Druid_00, I'd love VIP but not at all sure about how to get there yet. I'll find out. I'd prefer to dig about the forums then to ask questions. Here's why.

After playing a Monk for over a year the only socials I had were to announce incomming, and for that reason had never used /doability. When I got MQ2 I was totaly confused about why my macro didn't work. I honestly thought /doability was a MQ2 thing and not an EQ thing. So no ability buttons had been set up. I'm so glad I didn't ask. I'm only posting this to spare other people potential embarassment. Hence my moto and Sig!
Read the Forums!

A_Druid_00
Macro Maker Extraordinaire
Posts: 2378
Joined: Tue Jul 13, 2004 12:45 pm
Location: Rolling on the Lawn Farting

Post by A_Druid_00 » Thu May 05, 2005 2:31 pm

No prob, your code is fine for what you made it for. I just thought I'd point out ways to improve on it. You've definately started off on the right foot putting out something useful instead of just leeching and asking everyone to make you AFK macros.

Very good commenting job too, that was never one of my strong points. I was always of the opinion if someone couldn't read through my code and see what was going on in the subs without help, fuck em.
[quote]<DigitalMocking> man, A_Druid_00 really does love those long ass if statements
<dont_know_at_all> i don't use his macro because i'm frightened of it[/quote]
[quote][12:45] <dont_know_at_all> never use a macro when you can really fuck up things with a plugin[/quote]