AFK Spell Trainer

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

Moderator: MacroQuest Developers

JoeBloe
orc pawn
orc pawn
Posts: 13
Joined: Thu Dec 26, 2002 3:54 pm

AFK Spell Trainer

Post by JoeBloe » Sun Dec 29, 2002 12:44 pm

OK, here is the final version from me started in this thread http://macroquest2.com/phpBB2/viewtopic.php?t=1562 . Both my druid and enchanter have 235 in every spell chool now and it took about 20 to 30 hours each. The enchanter evocation was especially tough. :-) That is a combined total of about 50 hours of my life that was not wasted.

If you have an enchanter it now maintains minor illusion to camouflage you as people walk by. If you're a druid it does the tree illusion (extra 2 mana bonus as well.) Stand someplace appropriate for the illusions.

For any evocation spell it targets the nearest corpse. I took an alt character and killed it where I wanted to stand. That gave me 7 days in a quiet place to work on evocation.

I added "/filter macros all" to make the script completely silent. No MQ messages were displayed at all if a GM took interest in me. If you are trying to use the script and it isn't behaving you can see all the messages by either typing "/filter macros none" while the script is running or commenting out the filter line.

And one final note, make sure you have your spells memmed before starting. Or if you are using the old UI uncomment the lines for memming spells. I forgot to do this twice and sat there puzzled...

Enjoy!

Code: Select all

| Filename : TrainSpell.mac 
| Brought to you by SingleServing and JoeBloe 
#turbo 40

#include spellcast.mac 

#include spellbook.mac 

#event LostClarity "The cool breeze fades."

#event LostIllusion "Your illusion fades."

#event LostTree "You are no longer a tree."

#chat tell

#chat say



| in game type /macro TrainSpell "Spell Name" ["skill name" "target skill value"] 

 

Sub Main 



|Paranoia.

/filter macros none

|AFK really cuts back on the tells from beggars.

/afk 


|/call ForgetSpellByNumber 1 

|/call MemorizeSpell "$p0" 1 



|Find out and remember who we are for targetting and spells

/target myself

/varset v3 $char(name)

/varset v4 $char(class)



/if $v4=="enchanter" {

    /call cast "clarity"

    /call cast "minor illusion"

    |/call ForgetSpellByNumber 2

    |/call MemorizeSpell "clarity" 2 

    |Adds a bit of camouflage to disguise your character from passersby

    |/call ForgetSpellByNumber 3 

    |/call MemorizeSpell "minor illusion" 3 

}



/if $v4=="druid" {

    /call cast "spirit of ash"

    |Adds a bit of camouflage to disguise your character from passersby

    |/call ForgetSpellByNumber 2

    |/call MemorizeSpell "spirit of ash" 2 

}



:Loop 


/if $gm==TRUE {

    /echo Stopping.  GM in zone.
    /beep

    /call StopPlaying

}



/target myself |Untarget corpse with evocation

/target pc 

/echo Closest pc distance is: "$target(distance)"

/if n $target(distance)<=300 { 

     /if n $target(distance)!=0 /delay 6s 

     /if n $target(distance)!=0 /echo Someone is too close pausing...

     /if n $target(distance)!=0 /goto :Loop 

} 


/doevents


/target myself

/if "$p1"=="evocation" {

      /echo Casting evocation so target nearest corpse.

      /target corpse

      /if n $target(distance)==0 /goto :ManaLoop 

}



/call cast "$p0" 

/if n $return!=0 /echo Casting failed for some reason (spell memmed?)....


/delay 5 |recasting too fast.

/if "$p0"=="chaotic feedback" /delay 53 |recast time is reported wrong.



/if n $char(mana,pct)<10 { 

      /sit off 

      /sit on 

:ManaLoop

      /if n $char(mana,pct)>90 /goto :Loop 

      /delay 6s

      /goto :ManaLoop 



}



|Did we make it to our skill level?

/if "$p1"!="" {

|    /echo "$p0" "$p1":"$p2"

    /varset v1 $char(skill,$p1)

    /if n $v1>=$p2 /echo Skill level achieved. 

    |no nested {} so repeat

    /if n $v1>=$p2 /call StopPlaying

}





/goto :Loop

/return



Sub Event_LostClarity

    /if $v4=="enchanter" {

        /target myself
        /call cast "clarity"

    }

/return



Sub Event_LostIllusion

    /if $v4=="enchanter" {

        /target myself
        /call cast "minor illusion"

    }

/return



Sub Event_LostTree

    /if $v4=="druid" {

        /target myself
        /call cast "spirit of ash"

    }

/return



Sub Event_Chat

   |massively paranoid leave if anyone talks to us

   /cleanup

   /sit off

   /sit on

   /delay 20
   /beep

   /camp

   /endmacro

/return



Sub StopPlaying

   /cleanup

   /sit off

   /sit on

   /delay 20
   /beep

   /camp

   /endmacro

/return