@prog RandomVerb.MUF 1 99999 d 1 i ( Random verbs program. { message ch db "_say/ch" -- message ch osay say } ` It's rather a scruffy bit of code, but it works. {It'd better, or Riss'll have my fuzzy li'l ears on his wall.} ` ",,add other-verb Add a new others' view verb ",,+add me-verb Add a my-view verb to the last others' view ",,list List the verbs ",,take n=1,2,3,4... Remove this verb or verb-pair ` Other than that, supply a random verb-pair from this list. ) : add-overb ( mess ch db "_say/ch" "add " -- message ch ) 3 strcut swap pop strip dup not if "RandomVerbs: ,,add needs a verb." .tell pop pop pop exit then -3 rotate over over "/osay/#" strcat over over getpropstr atoi 1 + intostr dup -4 rotate 0 addprop "/osay/" swap strcat strcat "/os" strcat rot 0 addprop ; : add-verb ( mess ch db "_say/ch" "+add " -- message ch ) 4 strcut swap pop strip ( Blank verb okay here ) -3 rotate over over "/osay/#" strcat getpropstr atoi dup not if pop 1 then intostr "/osay/" swap "/sa" strcat strcat strcat rot 0 addprop ; : take-verb ( mess ch db "_say/ch" "take item" -- message ch ) 4 strcut swap pop atoi dup 0 <= if pop pop pop "RandomVerbs: Item number required for ,,take." .tell exit then 3 pick 3 pick "/osay/#" strcat getpropstr atoi over < if pop pop pop "RandomVerbs: That item does not exist." .tell exit then -3 rotate "/osay/" strcat over over 5 pick intostr strcat dup -3 rotate remove_prop begin 4 pick 1 + dup 5 put ( mess ch n+1 db "_say/ch/osay/" "_say/ch/osay/n" n+1 ) 4 pick 4 pick rot intostr strcat over over "/sa" strcat getpropstr -3 rotate dup -5 rotate "/os" strcat getpropstr dup while 6 pick 4 pick "/os" strcat rot 0 addprop 5 pick rot "/sa" strcat rot 0 addprop 3 pick over remove_prop repeat pop pop pop pop "#" strcat rot 2 - intostr 0 addprop ; : list-verbs ( mess ch db "_say/ch" "list...." -- message ch ) pop "Verb list..." .tell "/osay/" strcat 1 -3 rotate begin over over 5 pick intostr strcat over over "/os" strcat getpropstr dup while " " strcat 15 strcut pop -3 rotate "/sa" strcat getpropstr strcat " " 5 pick intostr strcat dup strlen 2 - strcut swap pop ": " rot strcat strcat .tell rot 1 + -3 rotate repeat pop pop pop "#" strcat rot 1 - intostr 0 addprop "Done." .tell ; : start ( message ch db "_say/ch" -- message ch "says," "say," ) 4 pick ",," 2 strncmp not if over owner me @ dbcmp if 4 pick 2 strcut swap pop dup "add" 3 strncmp not if add-overb 1 else dup "+add" 4 strncmp not if add-verb 1 else dup "take" 4 strncmp not if take-verb 1 else dup "list" 4 strncmp not if list-verbs 1 else 0 then then then then if "" 2 put "" " " exit then pop then then over over "/osay/#" strcat getpropstr atoi dup if random swap % 1 + intostr "/osay/" swap strcat strcat over over "/os" strcat getpropstr ( _say/ch/osay/n/os ) -3 rotate "/sa" strcat getpropstr ( _say/ch/osay/n/sa ) else pop pop pop "says," "say," then ; 83 lines displayed. . c q @register #me RandomVerb.MUF=tmp/prog1 @set $tmp/prog1=L @set $tmp/prog1=2 @propset $tmp/prog1=int:/.debug/errcount:8 @propset $tmp/prog1=int:/.debug/lastcrash:867133633 @propset $tmp/prog1=str:/.debug/lasterr:RandomVerb.MUF(#70120), line 66; STRNCMP: Non-string argument. @propset $tmp/prog1=str:/_/de:A scroll containing a spell called RandomVerb.MUF @propset $tmp/prog1=str:/_help/1#:19 @propset $tmp/prog1=str:/_help/1#/1:Random verb selector This is *not* a filter. @propset $tmp/prog1=str:/_help/1#/10: To remove a verb: ",,take n [ n=1,2,3 etc ] @propset $tmp/prog1=str:/_help/1#/11:` @propset $tmp/prog1=str:/_help/1#/12: To do something for the space-prefix: " ,,whatever @propset $tmp/prog1=str:/_help/1#/13: To do something for def, ooc or here: ",,whatever @propset $tmp/prog1=str:/_help/1#/14:` @propset $tmp/prog1=str:/_help/1#/15: Which prefix traps the 'def' line depends on which prefix supplied the verb. @propset $tmp/prog1=str:/_help/1#/16: Only the owner of the verb can modify its parameters. @propset $tmp/prog1=str:/_help/1#/17:` @propset $tmp/prog1=str:/_help/1#/18: See next page for an example of use. (sayhelp $randomverbs 2) @propset $tmp/prog1=str:/_help/1#/19:` @propset $tmp/prog1=str:/_help/1#/2:------------------------------------------------------------------------------- @propset $tmp/prog1=str:/_help/1#/3: To use this program, type 'sayset $RandomVerbs', meaning 'def', @propset $tmp/prog1=str:/_help/1#/4: 'here' or whatever, as in sayhelp. You should then set verbs for it: @propset $tmp/prog1=str:/_help/1#/5:` @propset $tmp/prog1=str:/_help/1#/6: To add an 'other' verb: ",,add barks, @propset $tmp/prog1=str:/_help/1#/7: To add a 'me' verb: ",,+add bark, [optional] @propset $tmp/prog1=str:/_help/1#/8: [Adds only to the last item in the list] @propset $tmp/prog1=str:/_help/1#/9: To list the verbs: ",,list @propset $tmp/prog1=str:/_help/2#:19 @propset $tmp/prog1=str:/_help/2#/1:Random verb selector This is *not* a filter. @propset $tmp/prog1=str:/_help/2#/10:` @propset $tmp/prog1=str:/_help/2#/11: "Test,,this. "Test," Warwick whistles, "this." @propset $tmp/prog1=str:/_help/2#/12: "Test this. Warwick barks, "Test this." @propset $tmp/prog1=str:/_help/2#/13:` @propset $tmp/prog1=str:/_help/2#/14: ",,take 1 @propset $tmp/prog1=str:/_help/2#/15: ",,list @propset $tmp/prog1=str:/_help/2#/16: 1: whistles, whistle quietly, @propset $tmp/prog1=str:/_help/2#/17: 2: squeaks, squeak, @propset $tmp/prog1=str:/_help/2#/18:` @propset $tmp/prog1=str:/_help/2#/19: Also, "/,,whatever " ,,whatever "*,,whatever etc. @propset $tmp/prog1=str:/_help/2#/2:------------------------------------------------------------------------------- @propset $tmp/prog1=str:/_help/2#/3: sayset def $RandomVerbs @propset $tmp/prog1=str:/_help/2#/4: ",,add barks, ",,+add bark, ",,add whistles, ",,+add whistle quietly, @propset $tmp/prog1=str:/_help/2#/5: ",,add squeaks, ",,+add squeak, @propset $tmp/prog1=str:/_help/2#/6: ",,list @propset $tmp/prog1=str:/_help/2#/7: 1: barks, bark, @propset $tmp/prog1=str:/_help/2#/8: 2: whistles, whistle quietly, @propset $tmp/prog1=str:/_help/2#/9: 3: squeaks, squeak,