ClericTrainer.mac - Cleric Spell Training, with detection

Macro depository for macros written before the user variable changes that broke all of them.

Moderator: MacroQuest Developers

loadingpleasewait
a snow griffon
a snow griffon
Posts: 332
Joined: Sat Sep 14, 2002 8:46 am

ClericTrainer.mac - Cleric Spell Training, with detection

Post by loadingpleasewait » Sat Sep 14, 2002 9:07 am

ok, I got the base for this from the Rangerspells.mac. I know this can be done... well... more efficently, but I am not the best at all this macro stuff. Tell me what you think and offer improvements if you can.

This macro is assuming you are not 50+ and are specializing in Alteration.

<EDITED! Haha.. thats what I get for doing this at work.. updated code, everything works now..>

Code: Select all

| -- Cleric Spell Trainer -- 
| 
| Requirements : 
| Mem spells as follow : 
| 
| 1 Minor Healing (alteration 10 mana) 
| 2 Strike (evocation 12 mana) 
| 3 Summon Drink (conjuration 10 mana) 
| 4 True North (divination 5 mana) 
| 5 Yaulp (abjuration 10 mana) 
| 
| Sens heading in doability 1 
| 
| Target yourself while standing and launch macro. 
| when low of mana character sit to meditate. 
| When all skills are maxed character just sit and camp. 
#define maxiskill v1 
Sub Main 
/varcalc maxiskill $char(level)*5+5 
/if n $maxiskill>200 /varset maxiskill 200 
:Begin 
   /if n $char(skill,alteration)<$maxiskill /cast 1 
   /if n $char(skill,alteration)<$maxiskill /delay 40 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<300 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,evocation)<$maxiskill /cast 2 
   /if n $char(skill,evocation)<$maxiskill /delay 40 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<300 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,conjuration)<$maxiskill /cast 3 
   /if n $char(skill,conjuration)<$maxiskill /delay 80 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<300 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,divination)<$maxiskill /cast 4 
   /if n $char(skill,divination)<$maxiskill /delay 100 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<300 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,abjuration)<$maxiskill /cast 5 
   /if n $char(skill,abjuration)<$maxiskill /delay 40 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<300 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(mana,pct)<10 /call meditate 
    
   /if n $char(skill,"specialize alteration")<$maxiskill /cast 1 
   /if n $char(skill,"specialize alteration)<$maxiskill /delay 40 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<300 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,"specialize evocation")<$maxiskill /cast 2 
   /if n $char(skill,"specialize evocation")<$maxiskill /delay 40 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<300 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,"specialize conjuration")<$maxiskill /cast 3 
   /if n $char(skill,"specialize conjuration")<$maxiskill /delay 80 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<300 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,"specialize divination")<$maxiskill /cast 4 
   /if n $char(skill,"specialize divination")<$maxiskill /delay 100 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<300 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,"specialize abjuration")<$maxiskill /cast 5 
   /if n $char(skill,"specialize abjuration")<$maxiskill /delay 40 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<300 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(mana,pct)<10 /call meditate 
    
   /if n $char(skill,alteration)<$maxiskill /goto :begin 
   /if n $char(skill,evocation)<$maxiskill /goto :begin 
   /if n $char(skill,conjuration)<$maxiskill /goto :begin 
   /if n $char(skill,divination)<$maxiskill /goto :begin 
   /if n $char(skill,abjuration)<$maxiskill /goto :begin 

   /if n $char(skill,"Sense Heading")<$maxiskill /goto :begin 

   /if n $char(skill,"specialize alteration")<$maxiskill /goto :begin 
   /if n $char(skill,"specialize evocation")<50 /goto :begin 
   /if n $char(skill,"specialize conjuration")<50 /goto :begin 
   /if n $char(skill,"specialize divination")<50 /goto :begin 
   /if n $char(skill,"specialize abjuration")<50 /goto :begin 
   /if n $char(skill,"Sense Heading")<$maxiskill /goto :begin 
/sit 
/camp 
/return 

Sub meditate 
/sit 
/afk 
   /echo LOM, Meditating.. 
:rest 
/delay 10 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(mana,pct)<100 /goto :rest 
/stand 
/afk 
/return 

Sub GMhere 
/sit 
/afk 
   /echo GM in zone, Sitting & acting Natural 
:stillhere 
/delay 10 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if $gm==TRUE /goto :stillhere 
/stand 
/afk 
/return 

Sub PCnear 
/sit 
/afk 
   /echo PC Nearby, sitting and acting natural 
:stillnear 
/delay 10 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $target(distance)<300 /goto :stillnear 
/stand 
/afk 
/return 
well.. to be honest, I wrote this at work, and havnt actually tried it yet.. However I do believe that it will work fine.. Please Offer Suggestions Though..


Oh yeah, and as you can see, I am extremely paranoid but dont think that one NEEDS to camp whenever there is a GM in the zone, I think camping is more suspecious than just sitting and goin afk..
LOADING PLEASE WAIT...

loadingpleasewait
a snow griffon
a snow griffon
Posts: 332
Joined: Sat Sep 14, 2002 8:46 am

Added fishing for while you meditate and players are near..

Post by loadingpleasewait » Sun Sep 15, 2002 7:09 pm

The Fishing part is relatively smart. I puts fish and fish scales in your inventory, and destroys sandals and daggers.. also, for the summoning drink part, it now destroys the summoned drink.. also, PCs can be closer now.. AND I got more paranoid and decided to camp if a GM comes in zone..

NOTE: to fish, You MUST be near water.. (cant believe I hafta say this, but I know how people are.)

Good Luck..

Code: Select all

| -- Cleric Spell Trainer -- 
| 
| Requirements : 
| Mem spells as follow : 
| 
| 1 Minor Healing (alteration 10 mana) 
| 2 Strike (evocation 12 mana) 
| 3 Summon Drink (conjuration 10 mana) 
| 4 True North (divination 5 mana) 
| 5 Yaulp (abjuration 10 mana) 
| 
| Sens heading in doability 1 
| Fishing in doability 2
| 
| Target yourself while standing and launch macro. 
| when low of mana character sit to meditate. 
| When all skills are maxed character just sit and camp. 
#event polebroke "You need to put your fishing pole in your primary hand."
#define maxiskill v1 
Sub Main 
/varcalc maxiskill $char(level)*5+5 
/if n $maxiskill>200 /varset maxiskill 200 
:Begin 
   /if n $char(skill,alteration)<$maxiskill /cast 1 
   /if n $char(skill,alteration)<$maxiskill /delay 40 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<100 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,evocation)<$maxiskill /cast 2 
   /if n $char(skill,evocation)<$maxiskill /delay 40 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<100 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,conjuration)<$maxiskill /cast 3 
   /if n $char(skill,conjuration)<$maxiskill /delay 80 
   /if $cursor(norent)==TRUE /call destroy
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<100 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,divination)<$maxiskill /cast 4 
   /if n $char(skill,divination)<$maxiskill /delay 55 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<100 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,abjuration)<$maxiskill /cast 5 
   /if n $char(skill,abjuration)<$maxiskill /delay 40 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<100 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(mana,pct)<10 /call meditate 
    
   /if n $char(skill,"specialize alteration")<$maxiskill /cast 1 
   /if n $char(skill,"specialize alteration)<$maxiskill /delay 40 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<100 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,"specialize evocation")<50 /cast 2 
   /if n $char(skill,"specialize evocation")<50 /delay 40 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<100 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,"specialize conjuration")<50 /cast 3 
   /if n $char(skill,"specialize conjuration")<50 /delay 80 
   /if $cursor(norent)==TRUE /call destroy
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<100 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,"specialize divination")<50 /cast 4 
   /if n $char(skill,"specialize divination")<50 /delay 55 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<100 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,"specialize abjuration")<50 /cast 5 
   /if n $char(skill,"specialize abjuration")<50 /delay 40 
   /if $gm==TRUE /call GMhere 
   /target pc 
   /if n $target(distance)<100 /call PCnear 
   /press f1 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(mana,pct)<10 /call meditate 
    
   /if n $char(skill,alteration)<$maxiskill /goto :begin 
   /if n $char(skill,evocation)<$maxiskill /goto :begin 
   /if n $char(skill,conjuration)<$maxiskill /goto :begin 
   /if n $char(skill,divination)<$maxiskill /goto :begin 
   /if n $char(skill,abjuration)<$maxiskill /goto :begin 

   /if n $char(skill,"Sense Heading")<$maxiskill /goto :begin 

   /if n $char(skill,"specialize alteration")<$maxiskill /goto :begin 
   /if n $char(skill,"specialize evocation")<50 /goto :begin 
   /if n $char(skill,"specialize conjuration")<50 /goto :begin 
   /if n $char(skill,"specialize divination")<50 /goto :begin 
   /if n $char(skill,"specialize abjuration")<50 /goto :begin 
   /if n $char(skill,"Sense Heading")<$maxiskill /goto :begin 
/sit 
/camp 
/return 

Sub meditate 
/sit 
/afk 
   /echo LOM, Meditating.. 
:rest 
/delay 10 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,"fishing")<$maxiskill /Doability 2 
   /if n $char(skill,"fishing")<$maxiskill /delay 125
   /if n $cursor(weight)==25 /call destroy
   /if n $cursor(weight)==3 /call destroy
   /if $cursor()==TRUE /call dropinv
   /doevents
   /delay 5
   /if n $char(mana,pct)<100 /goto :rest 
/stand 
/afk 
/return     

Sub PCnear 
/if $target(name)==$char(name) /return
/sit 
/afk 
   /echo PC Nearby, sitting and acting natural 
:stillnear  
/delay 10
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,"fishing")<$maxiskill /Doability 2 
   /if n $char(skill,"fishing")<$maxiskill /delay 125
   /if n $cursor(weight)==25 /call destroy
   /if n $cursor(weight)==3 /call destroy
   /if $cursor()==TRUE /call dropinv
   /doevents
   /delay 5
   /if n $target(distance)<100 /goto :stillnear 
/stand 
/afk 
/return 

sub Event_polebroke
   /finditem "fishing pole"
   /if $cursor()==TRUE /call dropinv
/return

sub dropinv
   /mouseto auto
   /click left
/return

sub destroy
   /mouseto destroy
   /click left
/return

Sub GMhere 
/sit 
/afk 
   /echo GM in zone, Sitting & acting Natural 
:stillhere 
/delay 10 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,"fishing")<$maxiskill /Doability 2 
   /if n $char(skill,"fishing")<$maxiskill /delay 75
   /if n $cursor(weight)==25 /call destroy
   /if n $cursor(weight)==3 /call destroy
   /if $cursor()==TRUE /call dropinv
   /doevents
   /camp desktop
LOADING PLEASE WAIT...

Asako Onasuke
decaying skeleton
decaying skeleton
Posts: 8
Joined: Wed Sep 04, 2002 9:16 pm

Post by Asako Onasuke » Tue Sep 17, 2002 6:50 pm

I've found the "PC AWAY" loop will not stop, even if said PC leaves the area.

pxlpluker
a lesser mummy
a lesser mummy
Posts: 53
Joined: Tue Aug 27, 2002 12:20 pm

Post by pxlpluker » Tue Sep 17, 2002 7:54 pm

Code: Select all

Sub PCnear 
/if $target(name)==$char(name) /return 
/sit 
/afk 
   /echo PC Nearby, sitting and acting natural 
:stillnear  
|--- ADD /TARGET PC  HERE ---|
| --- I would just replace (/target pc) outside this sub with a (/call pcnear)
| -- being lazy right now or i would rework sub logic for you.
/delay 10 
   /if n $char(skill,"Sense Heading")<$maxiskill /Doability 1 
   /if n $char(skill,"fishing")<$maxiskill /Doability 2 
   /if n $char(skill,"fishing")<$maxiskill /delay 125 
   /if n $cursor(weight)==25 /call destroy 
   /if n $cursor(weight)==3 /call destroy 
   /if $cursor()==TRUE /call dropinv 
   /doevents 
   /delay 5 
   /if n $target(distance)<100 /goto :stillnear 
/stand 
/afk 
/return 

curiousgeorge
orc pawn
orc pawn
Posts: 10
Joined: Mon Aug 26, 2002 1:02 pm

fishing pole broken

Post by curiousgeorge » Mon Sep 30, 2002 12:49 pm

may want to put in a call that if the fishing pole is broken or out of bait that it will skip that event. or have a backup fishingpole and run and item switch call if it /echos a broken pole. Just a thought. Great code here, can't wait to really use it.
wait, where did you say you put the cheeze-wiz?