Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » zMUD General Discussion
asm
Wanderer


Joined: 19 Jul 2004
Posts: 68

PostPosted: Sun Apr 01, 2007 2:30 am   

Lisp script
 
Hello all,

A friend of mine wants to create a character with a lisp, but he'd rather have a script than do it manually...So I told him there was bound to be one on the forum and I'd find it for him. Unfortunately, this does not seem to be the case. Could anyone help me write one? What I tried to do was adapt this:

Code:
#ADDK DumbWords {some=sum|him=himz|get=git|should=shuld|money=muny|me=mez|thinking=tinking|i=mez|he=hez}
#ALIAS say {
#VARIABLE Temp "%-1"
#VARIABLE Temp %replace(%replace(%replace(%replace(@Temp," ","|"),",","|,|"),".","|.|"),"||","|")
#LOOPDB {@DumbWords} {#VARIABLE Temp %replace( @Temp,~|%key~|,~|%val~|)}
#VARIABLE Temp %replace(%replace(%replace(@Temp,"|"," ")," ,",",")," .",".")
~say @Temp}


Into this:

Code:
#ADDK DumbWords {s=th}
#ALIAS lisp {
#VARIABLE Temp "%-2"
#VARIABLE Temp %replace(%replace(%replace(%replace(@Temp," ","|"),",","|,|"),".","|.|"),"||","|")
#LOOPDB {@DumbWords} {#VARIABLE Temp %replace( @Temp,~|%key~|,~|%val~|)}
#VARIABLE Temp %replace(%replace(%replace(@Temp,"|"," ")," ,",",")," .",".")
%1 @Temp}


Unfortunately, all it seems to do is convert every other s as long as it's not the first or last word. For example:

lisp say s s s s s » "say s th s th s"
lisp say s s s s s s » "say s th s th s s"

So, anyone know how I mgiht accomplish this? I'm pretty shaky on exactly how the replacing works, especially when it's nested so.
Reply with quote
Guinn
Wizard


Joined: 03 Mar 2001
Posts: 1127
Location: London

PostPosted: Sun Apr 01, 2007 11:11 am   
 
Because you're only replacing one thing it should be fairly simple.

Try
#ALIAS lisp {say %replace( %-1, s, th)}

typing: lisp is this what you're searching for?
gives: say ith thith what you're thearching for?
_________________
CMUD Pro, Windows Vista x64
Core2 Q6600, 4GB RAM, GeForce 8800GT
Because you need it for text... ;)
Reply with quote
Fang Xianfu
GURU


Joined: 26 Jan 2004
Posts: 5155
Location: United Kingdom

PostPosted: Sun Apr 01, 2007 11:17 am   
 
The problem also comes because you won't lisp s characters that are part of words, because they won't be bordered by pipes and so won't match in the #loopdb's replace function. Why can't you just do %replace("%-1",s,th) and use that in any aliases you want the output to lisp?

EDIT: Bah, beaten. Putting quotes around the variable does solve the comma issue with Guinn's script, though.


Last edited by Fang Xianfu on Sun Apr 01, 2007 11:25 am; edited 2 times in total
Reply with quote
Guinn
Wizard


Joined: 03 Mar 2001
Posts: 1127
Location: London

PostPosted: Sun Apr 01, 2007 11:20 am   
 
Found a problem with that. If there's a comma in what you're trying to lisp then the alias doesn't work.
It works in CMUD fine, but the only way I could see to fix it in zMUD was by altering the alias to

#ALIAS lisp {lisp = %-1;say %replace( @lisp, s, th)}

I'm sure there's a better way, but this does work at least
_________________
CMUD Pro, Windows Vista x64
Core2 Q6600, 4GB RAM, GeForce 8800GT
Because you need it for text... ;)
Reply with quote
nexela
Wizard


Joined: 15 Jan 2002
Posts: 1644
Location: USA

PostPosted: Sun Apr 01, 2007 5:12 pm   
 
Guinn as Fang Xianfu said putting quotes around the "%-1" zmud won't have a problem with the commas.
_________________
Zmud Support Library
Zmud Knowledge Base
Reply with quote
Dharkael
Enchanter


Joined: 05 Mar 2003
Posts: 593
Location: Canada

PostPosted: Sun Apr 01, 2007 5:38 pm   
 
#ALIAS lisp {say %replace(%replace( "%-1", s, th),S,Th)}

to make it handle Upper case S as well.
_________________
-Dharkael-
"No matter how subtle the wizard, a knife between the shoulder blades will seriously cramp his style."
Reply with quote
Guinn
Wizard


Joined: 03 Mar 2001
Posts: 1127
Location: London

PostPosted: Sun Apr 01, 2007 6:35 pm   
 
Whoops, Fang got there with the correction as I was writing. I'm getting used to CMUD now, where it works fine ;)
_________________
CMUD Pro, Windows Vista x64
Core2 Q6600, 4GB RAM, GeForce 8800GT
Because you need it for text... ;)
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » zMUD General Discussion All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© 2009 Zugg Software. Hosted by Wolfpaw.net