@prog SpeechCall.MUF 1 99999 d 1 i ( Speech-call. by Warwick on 25/9/93 at half past midnight-1:40 GMT. ` Calls a program of transaction { s -- } set by sayfilter pset #12345 Or of transation { s s -- s' 0 } set by sayfilter pset #12345 ` IT IS YOUR RESPONIBILITY NOT TO CORRUPT THE STACK. IF YOU WANT TO PULL CLEVER TRICKS WITH THE STACK UNDERNEATH THE OFFICIAL CALL, USE THE STANDARD FILTER ENTRYPOINT, sayhelp 7,8,9. ) : main ( n db ch message -- n db ch message 0 ) ( -- n me-notify other-notify 1 ) 3 pick room? if 0 exit then command @ "sayfilter" stringcmp not if dup "pset" 4 strncmp if 0 exit then ( Only knows pset. Aww ) 4 strcut swap pop strip dup "#" 1 strncmp not if 1 strcut swap pop then atoi dup not if pop pop pop "Useage: pset " "" 1 exit then dup dbref dup ok? not if pop pop pop pop "Bad db object supplied." "" 1 exit then dup program? not over "l" flag? not 3 pick owner "me" match dbcmp not and or if pop pop pop pop "You wo'n't be able to run that!" "" 1 exit then pop 3 pick "_say/ch/nn/pset" 6 pick intostr "nn" subst 4 pick "ch" subst rot intostr 0 addprop pop pop " >> Program dbref set." "" 1 exit then ( Was not a sayfilter command ) 3 pick "_say/ch/nn/pset" 6 pick intostr "nn" subst 4 pick "ch" subst getpropstr atoi dup not if exit then dbref over swap call dup int? if "idssi" checkargs exit then dup string? if 0 "idssi" checkargs exit then "Unexpected stack found. Check pset setting. Don't call " prog owner name strcat abort ; 47 lines displayed. . c q @register #me SpeechCall.MUF=tmp/prog1 @set $tmp/prog1=L @set $tmp/prog1=2 @propset $tmp/prog1=str:/_/de:A scroll containing a spell called SpeechCall.MUF @propset $tmp/prog1=str:/_help/1#:16 @propset $tmp/prog1=str:/_help/1#/1:SpeechCall by Warwick on 25/9/93 from half past midnight to twenty-to-two GMT. @propset $tmp/prog1=str:/_help/1#/10: filters. ) @propset $tmp/prog1=str:/_help/1#/11:` @propset $tmp/prog1=str:/_help/1#/12: To set a program to be called, sayfilter pset @propset $tmp/prog1=str:/_help/1#/13:` @propset $tmp/prog1=str:/_help/1#/14: This interface is *deliberately* primitive. I REALLY don't want it used for @propset $tmp/prog1=str:/_help/1#/15: any more than stop-gap measures. @propset $tmp/prog1=str:/_help/1#/16:------------------------------------------------------------------------------ @propset $tmp/prog1=str:/_help/1#/2:------------------------------------------------------------------------------ @propset $tmp/prog1=str:/_help/1#/3:Calls a program with your speech on top of the stack for arbitrary use. @propset $tmp/prog1=str:/_help/1#/4:Two flavours of program are simultaneously supported: @propset $tmp/prog1=str:/_help/1#/5:` @propset $tmp/prog1=str:/_help/1#/6: ( s -- ) Top string is speech. @propset $tmp/prog1=str:/_help/1#/7: ( s s -- s' 0 ) Strings are speech, return one string and a 0 to modify @propset $tmp/prog1=str:/_help/1#/8: spoken speech. @propset $tmp/prog1=str:/_help/1#/9: ( This latter shouldn't really be used: write proper