I went to fix what I thought was a bug in the Wizard/SF interpreting code, and I don't really see one. I do however notice that the `%c' and `%s' character sequences appear to be case sensitive; I changed it for the next version, since Lich is supposed to behave exactly like Wizard/SF when running one of their scripts. For the time being, try changing those to use lower case letters instead.
As for rewriting it in Lich format...
Code:
spell = Script.self.vars[2]
Script.self.vars[1].to_i.times { cast(spell, 'Wizard') }
Script.self = lookup and retrieve the current script object
vars[1] = the command-line variables are stored in this array for every script
to_i = to_integer (convert from a string to an Integer class object)
times = that many times, execute this block
cast(spell, 'Wizard') = handle casting the
spell on the target ('Wizard' here -- type ``;man cast'' in-game for details)
That should do it. Long chain of methods, but it was easy enough to come up with off-hand.