doesn't yet take the "level attained" into account, but other than that, it should be fairly clean... I have it set to forage every time regardless, if it's available, and the click left auto section is commented out.
Code: Select all
| - PracticeSkills.mac -
| Used to practice Forage, Sense Heading, Tracking, Hide, Sneak, Beg, Feign Death,
| Intimidation, Pick Pockets, Mend and Find Traps.
| *NOTE* To practice some of these abilities, you must be near an NPC (Soulbinder
| works well) or near a trap.
| This macro uses the skill caps as found on EQ Caster's Realm, as of 5/4/2003.
#define forageready v1
#define senseready v2
#define trackready v3
#define hideready v4
#define sneakready v5
#define begready v6
#define fdready v7
#define intimidationready v8
#define ppready v9
#define hidedone v10
#define sneakdone v11
#define mendready v12
#define trapsready v13
#define charclass v14
#define charlevel v15
#define cwar v16
#define cpal v17
#define cshd v18
#define crng v19
#define cbst v20
#define cmnk v21
#define crog v22
#define cbrd v23
#define cshm v24
#define cdru v25
#define cclr v26
#define cwiz v27
#define cenc v28
#define cmag v29
#define cnec v30
#define skillcapforage 1
#define skillcapsense 2
#define skillcaptrack 3
#define skillcaphide 4
#define skillcapsneak 5
#define skillcapbeg 6
#define skillcapfd 7
#define skillcapindimidation 8
#define skillcappp 9
#define skillcapmend 10
#define skillcaptraps 11
sub Main
/call setcaps
/echo Started...
:loop
/doevents
/call Domyabilities
/delay 15
/if n $forageready>0 /doability "Forage"
/if n $senseready>0 /if n $char(skill,"Sense Heading")<$calc($char(level)*5+5) /if n $char(skill,"Sense Heading")<$a($charclass,skillcapsense) /doability "Sense Heading"
/if n $trackready>0 /if n $char(skill,"Tracking")<$calc($char(level)*5+5) /if n $char(skill,"Tracking")<$a($charclass,skillcaptrack) /doability "Tracking"
/if n $trapsready>0 /if n $char(skill,"Sense Traps")<$calc($char(level)*5+5) /if n $char(skill,"Sense Traps")<$a($charclass,skillcaptraps) /doability "Sense Traps"
/if n $hideready>0 /if n $char(skill,"Hide")<$calc($char(level)*5+5) /if n $char(skill,"Hide")<$a($charclass,skillcaphide) {
/varset v10 $char(ability,"Hide")
/doability "Hide"
}
/if n $sneakready>0 /if n $char(skill,"Sneak")<$calc($char(level)*5+5) /if n $char(skill,"Sneak")<$a($charclass,skillcapsneak) {
/varset v11 $char(ability,"Sneak")
/doability "Sneak"
}
/if n $fdready>0 /if n $char(skill,"Feign Death")<$calc($char(level)*5+5) /if n $char(skill,"Feign Death")<$a($charclass,skillcapfd) /doability "Feign Death"
/if n $mendready>4 /if n $char(skill,"Mend")<$calc($char(level)*5+5) /if n $char(skill,"Mend")<$a($charclass,skillcapmend) /doability "Mend"
/if n $ppready>0 /if n $begready>0 /if n $intimidationready>0 {
/if n $char(skill,"Pick Pockets")<$calc($char(level)*5+5) /if n $char(skill,"Pick Pockets")<$a($charclass,skillcappp) /goto :targetting
/if n $char(skill,"Begging")<$calc($char(level)*5+5) /if n $char(skill,"Begging")<$a($charclass,skillcapbeg) /goto :targetting
/if n $char(skill,"Intimidation")<$calc($char(level)*5+5) /if n $char(skill,"Intimidation")<$a($charclass,skillcapIntimidation) /goto :targetting
/goto :Notargetting
:targetting
/call GetGoodTarget
:Notargetting
}
/if n $ppready>0 /if n $char(skill,"Pick Pockets")>=$calc($char(level)*5+5) /if n $char(skill,"Pick Pockets")<$a($charclass,skillcappp) /if n $target(distance)<12 /doability "Pick Pockets"
/if n $begready>0 /if n $char(skill,"Begging")<$calc($char(level)*5+5) /if n $char(skill,"Begging")<$a($charclass,skillcapbeg) /if n $target(distance)<12 /doability "Begging"
/if n $intimidationready>0 /if n $char(skill,"Intimidation")<$calc($char(level)*5+5) /if n $char(skill,"Imtimidation")<$a($charclass,skillcapIntimidation) /doability "Intimidation"
/varset forageready 0
/varset senseready 0
/varset trackready 0
/varset hideready 0
/varset sneakready 0
/varset fdready 0
/if n $mendready>4 /varset mendready 0
/varset ppready 0
/varset begready 0
/varset intimidationready 0
| /if $cursor()==TRUE {
| /mouseto auto
| /delay 5
| /click left auto
| }
/goto :loop
/return
sub setcaps
|**
#define skillcapforage 1
#define skillcapsense 2
#define skillcaptrack 3
#define skillcaphide 4
#define skillcapsneak 5
#define skillcapbeg 6
#define skillcapfd 7
#define skillcapindimidation 8
#define skillcappp 9
#define skillcapmend 10
#define skillcaptraps 11
**|
/for l3 16 to 30
/varset v$l3 $calc($l3-15)
/next l3
/varset charclass $char(class)
/if $charclass==warrior /varset charclass $cwar
/if $charclass==paladin /varset charclass $cpal
/if $charclass==shadowknight /varset charclass $cshd
/if $charclass==ranger /varset charclass $crng
/if $charclass==beastlord /varset charclass $cbst
/if $charclass==monk /varset charclass $cmnk
/if $charclass==rogue /varset charclass $crog
/if $charclass==bard /varset charclass $cbrd
/if $charclass==shaman /varset charclass $cshm
/if $charclass==druid /varset charclass $cdru
/if $charclass==cleric /varset charclass $cclr
/if $charclass==wizard /varset charclass $cwiz
/if $charclass==enchanter /varset charclass $cenc
/if $charclass==magician /varset charclass $cmag
/if $charclass==necromancer /varset charclass $cnec
/for l1 1 to 15
/for l2 1 to 11
/varset a($l1,$l2) 0
/next l2
/next l1
/for l1 1 to 15
/varset a($l1,skillcapsense) 200
/varset a($l1,skillcapbeg) 200
/next l1
/varset a($crng,skillcapforage) 200
/varset a($cmnk,skillcapforage) 50
/varset a($cbrd,skillcapforage) 55
/varset a($cdru,skillcapforage) 200
/varset a($crng,skillcaptrack) 200
/varset a($cbrd,skillcaptrack) 100
/varset a($cdru,skillcaptrack) 125
/varset a($cwar,skillcaphide) 1
/varset a($cshd,skillcaphide) 75
/varset a($cmnk,skillcaphide) 75
/varset a($crog,skillcaphide) 200
/varset a($cbrd,skillcaphide) 40
/varset a($cwar,skillcapsneak) 1
/varset a($crng,skillcapsneak) 75
/varset a($cbst,skillcapsneak) 50
/varset a($cmnk,skillcapsneak) 113
/varset a($crog,skillcapsneak) 200
/varset a($cbrd,skillcapneak) 75
/varset a($cmnk,skillcapfd) 200
/varset a($cmnk,skillcapintimidation) 200
/varset a($crog,skillcapintimidation) 200
/varset a($crog,skillcappp) 200
/varset a($cmnk,skillcapmend) 200
/varset a($crog,skillcaptraps) 200
/varset a($cbrd,skillcaptraps) 75
/return
Sub GetGoodTarget
/target pc
/target pet
/target npc soulbinder
/delay 4
/return
Sub Domyabilities
/if n $char(ability,"Forage")>0 /varset forageready 1
/if n $char(ability,"Sense Heading")>0 /varset senseready 1
/if n $char(ability,"Tracking")>0 /varset trackready 1
/if n $char(ability,"Hide")>0 /varset hideready 1
/if n $char(ability,"Sneak")>0 /varset sneakready 1
/if n $char(ability,"Begging")>0 /varset begready 1
/if n $char(ability,"Feign Death")>0 /varset fdready 1
/if n $char(ability,"Mend")>0 /varadd mendready 1
/if n $char(ability,"Sense Traps")>0 /varset trapsready 1
/if n $char(ability,"Intimidation")>0 /varset intimidationready 1
/if n $char(ability,"Pick Pockets")>0 /varset ppready 1
/if n $char(ability,"Hide")==-2 /doability $v10
/if n $char(ability,"Sneak")==-2 /doability $v11
/return
let me know if anything's broken...
and give me some feedback on how well it works, and any ways to improve it!
