Here is a set of scripts that I whipped up to help keep myself spelled-up while playing aardwolf MUD. The script already knows what classes get which spells, and at what level. It also knows when you get disrupt. When you get disrupt, then it will no longer check just for the existence of the affect, but will disrupt and recast any spells that will wear off in under 12:34:56 seconds (user-settable with /spell-length #). I have made the script quite modular and it is split into function-based files,all of which are within their own "spellup" directory except "variables.tf", "edit-variables.tf", and "setup.tf" which go in the main .tf-dir (because my pots script uses them as well). You only need to call the master file spellup/spellup.tf. I have it called from an aard.tf file which is called by a CONNECT hook in hooks.tf. If you don't care how it works, skip to the quickstart guide here.
Last updated 03/06/2008This script sets itself up automatically the first time you run it. When you level, you can tell the script by issuing /got-level. It then sits dormant with no triggers at all during gameplay until you type spellup or spellup [blah]. If it is typed with an argument, it checks to see if the argument is help, and displays a list of commands. It also checks to see if the argument is count. If it is count then it will go through the motions to see what spells to cast and will report to you how many it would cast without actually casting the spells. If the argument is any of (resist|AC|stats|saves|detect|stealth|effect), it will only cast spells of that type. Convenient to just bother with "spellup stats" before an enchant session. Finally, if the argument is anything else, it will load spellup/others.tf for the list of spells that can be cast on others and will cast the ones you have onto [blah]. When it's done, it'll say (to the room) "You're all set [blah], that's all the spells I have :)". If you type spellup with no arguments, the script will assume that you want to fully spell yourself up. It will then check out which spells you have by your class and level, and will also determine whether you have disrupt or not. It will load triggers to figure out what spells you are under (and how long they last if you have disrupt). It will then issue saff to the MUD and check out the output. It will grouptell how many spells will be disrupted and how many will be (re)cast. If you do not yet have disrupt, it will simply try to recast the spells you are not under. If you do have disrupt, it will first disrupt all spells that have a duration under a settable limit (settable using /spell-length 00:02:21), and will then (re)cast the needed spells (those you were not under and those just dispelled). It will grouptell you when it is done with the disrupt part, and then again when it's done with the (re)cast.