Monk Combat Routine
Posted: 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.
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