Assuming you have a fixed list of spells you want to cast, this is simply done with one alias. An alias can send multiple lines (just type them into the "send" box). I would suggest something like this:
Alias: spell up *
Send: cast armor %1
cast shield %1
cast blah blah %1 ... and so on ...
The %1 is replaced by whatever matches the wildcard (the *) in the alias line.
I was wondering if there was a way to pause between casting. Like after you cast the first two spells. If you could pause for 4 seconds, then continue casting. This way your client could catch up with the server.
I have no idea how the SpeedWalk Delay works.. But this is what I mean..
Trigger: * says 'spellup'
Send:
,is now casting on %1
c 'kindred strength' %1
<Pause here for 2 seconds>
c 'elven beauty' %1
<Pause here for 2 seconds>
c 'trollish vigor' %1
<Pause here for 2 seconds>
c 'valiance' %1
<Pause here for 2 seconds>
c 'fly' %1
,revs up the Turbo-Trancer 2000
,enters Turbo-Trance 1 of 2
<Pause here for 2 seconds>
trance
,enters Turbo-Trance 2 of 2
smile %1
<Pause here for 2 seconds>
,begins casting once more
c 'iceshield' %1
<Pause here for 2 seconds>
c 'fireshield' %1
<Pause here for 2 seconds>
c 'dragon wit' %1
<Pause here for 2 seconds>
c 'slink' %1
<Pause here for 2 seconds>
c 'sagacity' %1
<Pause here for 2 seconds>
,looks about for others to cast on!
Not exactly how you describe (unless you use timers) however almost.
If you select "Send to world - speedwalk delay" and then go into the "Commands" configuration box and enter "2000" into the speed walk delay box.
Now every line in that trigger will be sent at 2 second intervals. I know you didn't want 2 seconds between *every* one, but most of them. This will be close.
Otherwise, you can, with a bit of scripting, make a series of timers that fire after the appropriate intervals to send the commands, however I think my suggestion above is a lot less work.
now that i see how to make an alias for a spellup, how would i one, create a file with a list of the spells in it, and two how can i get mush to check the spells in the list to see if i already have them casted on myself in order to only cast what i need instead of wasting time and mana?
spellup_list variable {lists all spells to be casted by spellup alias}
spellup_temp variable {temporarialy holds the current spell being casted and adds it to the spellup_spells_list}
spellup_spells_list variable {lists all the current spells successfully casted by the spellup alias}
addspell alias {lets you add new spells to the spellup_list var}
remspell alias {can delete spells from the list}
spellup alias {calls the trigger spell(*):}
spell(*): trigger {reads through the spellup_list variable casting every spell listed}
remspell_list trigger {list of all the messages that spells display when they wear off and when it sees a message it removes the spell from the spellup_spells_list}
i want to sync theses aliases and trigger together in order to make a very efficient spellup alias/trigger setup, however i dunno not know vb but i am slowly filing through the forums picking up bits and pieces of code so hopefully this will become an achievable goal in the future. also any help you can provice would be great!!
Well, this should get you started. You can copy the whole lot below and click the "paste" button in the aliases configuration list, to insert them all.
<aliases>
<alias
name="addspell"
match="^addspell (\w+)$"
enabled="y"
group="spells"
regexp="y"
send_to="12"
sequence="100"
>
<send>' get existing spells
slist = Split (GetVariable ("spells"), "|")
snew = lcase (trim ("%1"))
sfound = vbFalse
' check spell not in list already
for each s in slist
if s = snew then sFound = vbTrue
next
' if there, show error, otherwise add to list
if sFound then
ColourNote "white", "red", "Spell " & snew & " already in spell list"
else
if GetVariable ("spells") = "" then
SetVariable "spells", snew
else
SetVariable "spells", GetVariable ("spells") & "|" & snew
end if
ColourNote "white", "green", "Spell " & snew & " added to spell list"
end if
</send>
</alias>
<alias
match="^remspell (\w+)$"
enabled="y"
group="spells"
regexp="y"
send_to="12"
sequence="100"
>
<send>' get existing spells
slist = Split (GetVariable ("spells"), "|")
swanted = lcase (trim ("%1"))
sfound = vbFalse
snewlist = ""
count = 0
' go through list, rebuilding it, and omitting the spell to be deleted
for each s in slist
if s = swanted then
sFound = vbTrue
else
if count > 0 then snewlist = snewlist & "|"
count = count + 1
snewlist = snewlist & s
end if
next
' if not there, show error
if not sFound then
ColourNote "white", "red", "Spell " & swanted & " not in spell list"
else
SetVariable "spells", snewlist
ColourNote "white", "green", "Spell " & swanted & " removed from spell list"
end if
</send>
</alias>
<alias
name="listspells"
match="listspells"
enabled="y"
group="spells"
send_to="12"
sequence="100"
>
<send>' get existing spells
slist = Split (GetVariable ("spells"), "|")
count = 0
' list them
for each s in slist
if count = 0 then ColourNote "white", "blue", "-- Spell list --"
ColourNote "white", "blue", s
count = count + 1
next
if count > 0 then
ColourNote "white", "blue", CStr (count) & " spell(s)"
else
ColourNote "white", "red", "No spells in list"
end if
</send>
</alias>
<alias
name="spellup"
match="spellup"
enabled="y"
group="spells"
send_to="12"
sequence="100"
>
<send>' get existing spells
slist = Split (GetVariable ("spells"), "|")
count = 0
' cast them
for each s in slist
Send "cast '" & s & "'"
count = count + 1
next
if count > 0 then
ColourNote "white", "blue", CStr (count) & " spell(s) cast"
else
ColourNote "white", "red", "No spells in list"
end if
</send>
</alias>
</aliases>
This implements:
addspell x
remspell x
listspells
spellup
I haven't done the spell wearoff messages, I'll leave you to play with that.
just wanted to take the time to say thank you for the quick response and for the time that you put into helping me with this. the code you provided is working great!! thank you again,
How to make the addspell alias accept two word spells....?
In the spellup script given above, i have been playing with the \w+ and \s+ combo's but I cannont find a way to alter the alias to accept two word spells that contain a space in the middle. This is kinda a problem since a good majority of the spells on aardwolf contain the same first word and will not work if you only use the second word of the spell so i need to find a way to have addspell accept two word spells.
alright almost there with the spellup script, hehe last question if this works. what i have now is a variable that holds spells and multiple functions for adding to, removing from and casting the list of spells from the variable. now what i need is a way to make a temporary variable that contains what i currently have casted on myself by use of triggers n such (adding successfully casted spells to the temporary spell var), removing faded spells from the temporary spells variable and then casting everything that is not in the temporary spells variable(spells variable-temporary spells variable) on me when i type spellup. making a trigger for every msg spells give when they wear off is no problem, but knowing how to reverence members inside the temporary spell variable is kicking my butt. any help would be great, the above postings contain the spellup script i am using with the multi word input implemented and below are sample lines of fading spell messages to help you see what im looking to grab for variable manipulation. thank you
skieze
fading spells from a zmud spellup trigger:
#TRIGGER {^Your biofeedback is no longer effective.} {fadespell biofeedback}
#TRIGGER {^You feel less perceptive.} {fadespell perception}
#TRIGGER {^Your battle sense has faded.} {fadespell combat mind}
#TRIGGER {^You feel almost blind at the loss of your magical sight.} {fadespell true seeing}
#TRIGGER {^Your rage ebbs.} {fadespell frenzy}
#TRIGGER {^Your skin feels soft again.} {fadespell stone skin}
#TRIGGER {^Your metabolism reverts to its usual speed.} {fadespell sustenance}