Neat and Effective Monk Skill Training Macro

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

Moderator: MacroQuest Developers

A_new_macroer
decaying skeleton
decaying skeleton
Posts: 3
Joined: Fri Jul 02, 2004 4:46 am

Neat and Effective Monk Skill Training Macro

Post by A_new_macroer » Fri Jul 02, 2004 5:23 am

I wrote this just to train my monk's FD, Sneak, Mend and Intimidate skills up. Was very effective. In 24 hours, my monk went from 48 in FD, Sneak and Intimidate to 197 FD, 113 Sneak and 200 Intimidate. Mend went from 116 to 142.

It checks to see if Mend is ready and only triggers the Mend ability when it is ready and skips it if it is not.

Code: Select all

Sub Main

:Loop

/if (${Me.AbilityReady["Mend"]}) {

	| Do MEND
	/docommand /doability 1

	| Do SNEAK
	/docommand /doability 2

	| Wait 1 second to give Sneak a chance to...
	| succeed or fail.  Not that this matters much.
	/delay 1s

	| Do SNEAK to turn SNEAK off
	/docommand /doability 2

	| Do INTIMIDATE
	/docommand /doability 3

	| Wait 10 seconds to let the monk go through
	| the motions of Intimidate
	| Also, it should be noted that if you choose
	| to comment out practicing the Intimidate skill
	| that it is important to leave this delay in
	| or your character will sit and stand over and
	| over VERY quickly
	/delay 10s

	| Do FEIGN DEATH
	/docommand /doability 4

	| WAIT for INTIMIDATE to be ready
	/delay 1s

	| Do SIT to stand up from FEIGN DEATH
	/docommand /sit

} else
{

	| Do SNEAK
	/docommand /doability 2

	| Wait 1 second to give Sneak a chance to...
	| succeed or fail.  Not that this matters much.
	/delay 1s

	| Do SNEAK to turn SNEAK off
	/docommand /doability 2

	| Do INTIMIDATE
	/docommand /doability 3

	| Wait 10 seconds to let the monk go through
	| the motions of Intimidate
	| Also, it should be noted that if you choose
	| to comment out practicing the Intimidate skill
	| that it is important to leave this delay in
	| or your character will sit and stand over and
	| over VERY quickly
	/delay 10s

	| Do FEIGN DEATH
	/docommand /doability 4

	| WAIT for INTIMIDATE to be ready
	/delay 1s

	| Do SIT to stand up from FEIGN DEATH
	/docommand /sit

}

/goto :Loop

/return
Enjoy!

Edit: Added code brackets. Sorry I hadn't noticed that last night.
Last edited by A_new_macroer on Fri Jul 02, 2004 11:42 am, edited 1 time in total.

User avatar
TheUnholy
a hill giant
a hill giant
Posts: 269
Joined: Wed Mar 03, 2004 11:59 pm

Post by TheUnholy » Fri Jul 02, 2004 6:13 am

use code brackets plzplz

TheUnforgiven
orc pawn
orc pawn
Posts: 13
Joined: Mon May 24, 2004 6:37 pm
Location: Albuquerque, NM

Post by TheUnforgiven » Fri Jul 02, 2004 4:57 pm

Changed it around a bit, this is my first macro, but i think it works a bit better, and it's a lot less code.

Code: Select all

Sub Main

:Loop
/if (${Me.AbilityReady["Intimidation"]}) {
     /doability "Intimidation"
   }


/if (${Me.AbilityReady["Mend"]}) {
     /doability "Mend"
   }

/if (${Me.AbilityReady["Sneak"]}) {
     /doability "Sneak"
     /delay 1s
     /doability "Sneak"
   }

/if (${Me.AbilityReady["Feign Death"]}) {
      /doability "Feign Death"
      /delay 1s
      /sit
      /delay 1s
}
/goto :Loop

/return

Wite
orc pawn
orc pawn
Posts: 23
Joined: Tue Mar 16, 2004 6:49 pm

Post by Wite » Mon Nov 01, 2004 4:54 am

Using TheUnforgiven's code this works fine as of halloween 2004 :twisted:

Grumpy
a hill giant
a hill giant
Posts: 167
Joined: Sun Nov 10, 2002 4:22 pm

Post by Grumpy » Fri Nov 05, 2004 11:38 am

Just a few checks to TheUnforgiven's code.

Code: Select all

Sub Main

:Loop
	/if (${Me.AbilityReady["Intimidation"]} && (${Me.Skill["Intimidation"]} < 200) && (${Me.Skill["Intimidation"]} < (${Me.Level + 1) * 5)) {
		/doability "Intimidation"
	}


	/if (${Me.AbilityReady["Mend"]} && (${Me.Skill["Mend"]} < 200) && (${Me.Skill["Mend"]} < (${Me.Level + 1) * 5)) {
		/doability "Mend"
	}

	/if (${Me.AbilityReady["Sneak"]} && (${Me.Skill["Sneak"]} < 113) && (${Me.Skill["Sneak"]} < (${Me.Level + 1) * 5)) {
		/doability "Sneak"
		/delay 1s
		/doability "Sneak"
	}

	/if (${Me.AbilityReady["Feign Death"]} && (${Me.Skill["Feign Death"]} < 200) && (${Me.Skill["Feign Death"]} < (${Me.Level + 1) * 5)) {
		/doability "Feign Death"
		/delay 1s
		/sit
		/delay 1s
	}

	/goto :Loop

/return

nuceman
decaying skeleton
decaying skeleton
Posts: 7
Joined: Sun Dec 01, 2002 3:56 pm

Post by nuceman » Sat Nov 06, 2004 5:37 pm

Stole a bit from YAST macro to stop when you recieve tells and when a GM is present.
Used TheUnforgiven's code as Grumpy's gave me some errors.

Code: Select all

#chat tell
#event lang "tells you" 

Sub Main

:Loop
/doevents
/call CheckGM 
/if (${Me.AbilityReady["Intimidation"]}) {
     /doability "Intimidation"
   }


/if (${Me.AbilityReady["Mend"]}) {
     /doability "Mend"
   }

/if (${Me.AbilityReady["Sneak"]}) {
     /doability "Sneak"
     /delay 1s
     /doability "Sneak"
   }

/if (${Me.AbilityReady["Feign Death"]}) {
      /doability "Feign Death"
      /delay 1s
      /sit
      /delay 1s
}
/goto :Loop
/return

Sub Event_Chat
  /echo Tell recieved, stopping for 5 minutes.
  /delay 300s
/return

Sub Event_Lang
  /echo Tell recieved, stopping for 5 minutes.
  /delay 300s
/return 

Sub CheckGM
    :GMCheck
    /if (${Bool[${Spawn[gm].ID}]}) {
       /echo Monk Trainer stopping for 10 minutes, GM in zone.
       /delay 600s
       /goto :GMCheck
    }
/return
You can dance if you want to.

tigg-um
decaying skeleton
decaying skeleton
Posts: 2
Joined: Sun Sep 05, 2004 2:45 am

Post by tigg-um » Mon Nov 22, 2004 9:45 pm

I changed this around a little. I like skillup tracking to the MQ window and when training on a 2nd box, I added popups to make skillups more noticable, all for semi at-a-galnce checks of skills.

I added another option or two for AFK training, that makes you FD when a GM is around and FD and AFK on a tell. I added a parinoia threshold that logs you out if someone keeps giving you tells and I think I'm going to add a check for GM paranoia as well, rather than just have you FD and loop the check.

Here it is, feel free to be brutal if the changes suck. I've modded a bunch of Macros for myself and wanted to see what folks actually thought about at least one of them.

Code: Select all

| Monk Trainer - orginal code by "A_new_macroer"
| various updates by community at  http://www.macroquest2.com/phpBB2/viewtopic.php?t=8088
| Recent updates by "Tigg-um"

#chat tell
#event lang "tells you"

Sub Main
    /declare OldSkillint int outer
    /declare OldSkillmend int outer
    /declare OldSkillsneak int outer
    /declare OldSkillfd int outer
    /declare Gottells int outer
    /declare Allowedtells int outer

    /varset OldSkillint ${Me.Skill[Intimidation]}
    /varset OldSkillmend ${Me.Skill[Mend]}
    /varset OldSkillsneak ${Me.Skill[Sneak]}
    /varset OldSkillfd ${Me.Skill[Feign Death]}
    /varset Gottells 0
| Set this to the number of tells you are comfortable getting while macro is running.
| For everything below the number Allowedtells is set to it just goes AFK. Higher and it camps.
    /varset Allowedtells 4

/echo Paranoia level set to ${Allowedtells} tells.
/echo Intimidation currently ${Me.Skill[Intimidation]}
/echo Mend currently ${Me.Skill[Mend]}
/echo Sneak currently ${Me.Skill[Sneak]}
/echo FD currently ${Me.Skill[Feign Death]}
/echo Training begins now Grasshopper!
/popup Training begins NOW Grasshopper!
/echo

:Loop
/doevents
/call CheckGM

|--Mend--|
/if (${Me.AbilityReady["Mend"]}) {
     /doability "Mend"
}
      /if (${Me.Skill[Mend]}>${OldSkillmend}) {
       /echo Skillup! Mend now ${Me.Skill[Mend]}!
       /popup Skillup! Mend now ${Me.Skill[Mend]}!
       /varset OldSkillmend ${Me.Skill[Mend]}
      }

|--Sneak--|
/if (${Me.AbilityReady["Sneak"]}) {
     /doability "Sneak"
     /delay 1s
     /doability "Sneak"
}
      /if (${Me.Skill[Sneak]}>${OldSkillsneak}) {
        /echo Skillup! Sneak now ${Me.Skill[Sneak]}!
        /popup Skillup! Sneak now ${Me.Skill[Sneak]}!
        /varset OldSkillsneak ${Me.Skill[Sneak]}
      }

|--Feign Death--|
/if (${Me.AbilityReady["Feign Death"]}) {
      /doability "Feign Death"
      /delay 1s
      /sit
      /delay 1s
}
      /if (${Me.Skill[Feign Death]}>${OldSkillfd}) {
        /echo Skillup! FD now ${Me.Skill[Feign Death]}!
        /varset OldSkillfd ${Me.Skill[Feign Death]}
      }

|--Intimidation--|
/if (${Me.AbilityReady["Intimidation"]}) {
     /doability "Intimidation"
}
      /if (${Me.Skill[Intimidation]}>${OldSkillint}) {
        /echo Skillup! Intimidation now ${Me.Skill[Intimidation]}!
        /popup Skillup! Intimidation now ${Me.Skill[Intimidation]}!
        /varset OldSkillint ${Me.Skill[Intimidation]}
      }

/goto :Loop
/return

Sub Event_Chat
  /varcalc Gottells ${Gottells}+1
/if (${Gottells} < ${Allowedtells}) {
  /echo Tell recieved, FDing and going AFK for 5 minutes.
  /afk I'll be back in like 5-10 mins
        :FDLoop
        /if (${Me.AbilityReady["Feign Death"]}) {
          /doability "Feign Death"
        } else {
         /goto :FDLoop
        }
  /delay 300s
  /sit
  /afk
 } else {
  /echo Paranoia level reached!!
  /popup Paranoia level reached!!
  /echo To many tells for my comfort. I think we're being watched. Camping now.
  /camp
  /beep
  /beep
  /beep
  /endmacro
 }
/return

Sub Event_Lang
  /varcalc Gottells ${Gottells}+1
/if (${Gottells} < ${Allowedtells}) {
  /echo Tell recieved, FDing and going AFK for 5 minutes.
  /afk I'll be back in like 5-10 mins
        :FDLoop
        /if (${Me.AbilityReady["Feign Death"]}) {
          /doability "Feign Death"
        } else {
         /goto :FDLoop
        }
  /delay 300s
  /sit
  /afk
 } else {
  /echo Paranoia level reached!!
  /popup Paranoia level reached!!
  /echo To many tells for my comfort. I think we're being watched. Camping now.
  /camp
  /beep
  /beep
  /beep
  /endmacro
 }
/return

Sub CheckGM
    :GMCheck
    /if (${Bool[${Spawn[gm].ID}]}) {
       /echo Monk Trainer stopping for 10 minutes, GM in zone.
       :FDLoop
        /if (${Me.AbilityReady["Feign Death"]}) {
          /doability "Feign Death"
        } else {
         /goto :FDLoop
        } 
       /delay 600s
       /goto :GMCheck
    }
/return

mordster
orc pawn
orc pawn
Posts: 13
Joined: Tue Nov 23, 2004 12:30 pm

Post by mordster » Tue Nov 23, 2004 12:33 pm

Nice work tigg, confirmation it works - except intimidation isn't working for me. Going to take a closer look when i get home from work. New to boards since my old comp wouldn't load them but I finally got upgraded and been reading around before I decided to post anything.

Hats off to all you guys and gals for the hard work.