| //UnKnoWn
| MonkSkillTrainer.mac
| I made this macro to max all monk skills in the most loops I could possibly use.
| Uses 11 loops in total, made for the redguides most loops macro contest :D
| The safe fall stuff at the beginning is because setgrav 5 for some reason sends a ton
| of movement packets to the server and maxes your safe fall very fast. It usually works
| anywhere from 5-15, but 5 seems to be the most common so you can play around with this it
| doesn't reset to 5 ever, just sets it once.
#Event player "#*#You must target a player to bandage.#*#"
#Event bandaid "#*#You can't bandage without bandages, go buy some.#*#"
#Event toofar "#*#You must be closer to bandage #*#"
Sub Main
|----------------------|
|-----Load Plugins-----|
|----------------------|
/if (!${Plugin[MQ2DoCrack].Name.Equal[mq2docrack]}) {
/squelch /plugin MQ2DoCrack load
/echo Loaded MQ2DoCrack plugin, because this macro requires it !
}
/if (!${Plugin[MQ2SetGrav].Name.Equal[mq2setgrav]}) {
/squelch /plugin MQ2setgrav load
/echo Loaded MQ2SetGrav plugin, because this macro requires it !
}
|----------------------|
|---Safe Fall Stuff----|
|----------------------|
/setgrav 5
/docrack envirofall on
|----------------------|
|------Declares--------|
|----------------------|
/declare CurPlayers int outer null
/varset CurPlayers ${SpawnCount[PC]}
/declare Loop int outer 11
/declare OldSkillmend int outer
/declare OldSkillsneak int outer
/declare OldSkillfd int outer
/declare OldSkillsafefall int outer
/declare OldSkillhide int outer
/declare OldSkillintimidation int outer
/declare OldSkillbindwound int ouer
/declare Bandaids int outer
|----------------------|
|-------Varsets--------|
|----------------------|
/varset OldSkillbindwound ${Me.Skill[Bind Wound]}
/varset OldSkillmend ${Me.Skill[Mend]}
/varset OldSkillsneak ${Me.Skill[Sneak]}
/varset OldSkillfd ${Me.Skill[Feign Death]}
/varset OldSkillsafefall ${Me.Skill[Safe Fall]}
/varset OldSkillhide ${Me.Skill[Hide]}
/varset OldSkillintimidation ${Me.Skill[Intimidation]}
/varset Bandaids 1
|----------------------|
|----Current Skills----|
|----------------------|
/echo Mend currently ${Me.Skill[Mend]}
/echo Sneak currently ${Me.Skill[Sneak]}
/echo FD currently ${Me.Skill[Feign Death]}
/echo Safe Fall currently ${Me.Skill[Safe Fall]}
/echo Hide currently ${Me.Skill[Hide]}
/echo Intimidation currently ${Me.Skill[Intimidation]}
/echo Monk Skill Trainer
/popup Monk Skill Trainer :: Training has begun!!
/delay 2s
/echo ${Loop} LOOPS!!!
|----------------------|
|-----Player Check-----|
|----------------------|
:Loop1
/if (${SpawnCount[PC]}>${CurPlayers}) {
/beep
/beep
/beep
/echo People have zoned in, delaying macro until it's safe...
/popup Additional people in zone ! ! !
/call CheckPlayers
}
|----------------------|
|-----Safety Check-----|
|----------------------|
/doevents
/call CheckGM
/goto :Loop2
|----------------------|
|-------Safe Fall------|
|----------------------|
:Loop2
|--Safe Fall--|
/if (${Me.Skill[Safe Fall]}>${OldSkillsafefall}) {
/echo Skillup! Safe Fall now ${Me.Skill[Safe Fall]}!
/varset OldSkillsafefall ${Me.Skill[Safe Fall]}
}
/goto :Loop3
|----------------------|
|--------Mend----------|
|----------------------|
:Loop3
|--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]}
}
/goto :Loop4
|----------------------|
|-------Sneak----------|
|----------------------|
:Loop4
|--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]}
}
/goto :Loop5
|----------------------|
|---------FD-----------|
|----------------------|
:Loop5
|--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]}
}
/goto :Loop6
|----------------------|
|--------Hide----------|
|----------------------|
:Loop6
|--Hide--|
/if (${Me.AbilityReady["Hide"]}) {
/doability "Hide"
/delay 1s
/doability "Hide"
}
/if (${Me.Skill[Hide]}>${OldSkillhide}) {
/echo Skillup! Hide now ${Me.Skill[Hide]}!
/popup Skillup! Hide now ${Me.Skill[Hide]}!
/varset OldSkillhide ${Me.Skill[Hide]}
}
/goto :Loop7
|----------------------|
|-----Intimidation-----|
|----------------------|
:Loop7
/if (${Me.AbilityReady["Intimidation"]}) {
/target npc
/doability "Intimidation"
/delay 1s
/doability "Intimidation"
}
/if (${Me.Skill[Intimidation]}>${OldSkillintimidation}) {
/echo Skillup! Intimidation now ${Me.Skill[Intimidation]}!
/popup Skillup! Intimidation now ${Me.Skill[Intimidation]}!
/varset OldSkillintimidation ${Me.Skill[Intimidation]}
}
/goto :Loop8
|----------------------|
|------Bind Wound------|
|----------------------|
:Loop8
/if (${Me.AbilityReady["Bind Wound"]} && ${Bandaids}>0 && ${Me.PctHPs}>69) {
/target
/doability "Bind Wound"
}
/if (${Me.Skill[Bind Wound]}>${OldSkillbindwound}) {
/echo Skillup! Bind Wound now ${Me.Skill[Bind Wound]}!
/popup Skillup! Bind Wound now ${Me.Skill[Bind Wound]}!
/varset OldSkillbindwound ${Me.Skill[Bind Wound]}
}
/goto :Loop1
/return
|----------------------|
|-------GM Check-------|
|----------------------|
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
|----------------------|
|-------Events-------|
|----------------------|
Sub Event_bandaid
/echo No bandages! Removing Bind Wound from macro!!
/popup Out of band-aids. No longer covering up your boo-boo's!!
/varset Bandaids 0
/return
Sub Event_player
/echo You silly goose, you can't bind wound a monster!!
/popup You have a monster targeted silly, targeting yourself!!
/target
/return
Sub Event_toofar
/echo You silly goose, you can't bind wound a monster!!
/popup You have a monster targeted silly, targeting yourself!!
/target
/return
Sub CheckPlayers
:Safety
/if (${SpawnCount[PC]}>${CurPlayers}) {
/goto :Safety
} else /if (${SpawnCount[PC]}==${CurPlayers}) {
/echo Extra players in zone have left, resuming macro...
/popup Additional people in zone have left! ! !
}
/return