@prog guest-give.muf 1 999 d 1 i : say me @ swap notify ; $def USEROB "Try using the \"rob\" command." $def MUSTPOS "You must specify a positive number of dollars." $def AMBIG "I don't know who you mean!" $def WHOM "Give to whom?" $def ONLYPLAYER "You can only give to other players." $def NOTENOUGH "You don't have that many dollars to give!" $def CANTGIVE "You can't give dollars to that!" $def moneyprop "@guest-given-$" : strip-leading begin dup " " 1 strncmp if break then 1 strcut swap pop loop ; : strip-trailing dup strlen begin dup 1 < if pop break then 1 - over over strcut " " strcmp if pop pop break then -rot swap pop loop ; : matchit (s -- d 0 [or] s -- 1) (I don't see any way to get behavior identical to the C code. This is about as close as I know how to come.) me @ location over rmatch dup #-2 dbcmp if pop pop AMBIG say 1 exit then dup if swap pop 0 exit then pop dup "me" stringcmp not if pop me @ 0 exit then me @ royalty? if dup "#" 1 strncmp not if 1 strcut swap pop atoi dbref 0 exit then dup "*" 1 strncmp not if match dup if 0 exit then pop WHOM say 1 exit then then pop WHOM say 1 ; : textdollars ( i -- s ) dup intostr swap 1 = if " dollar" else " dollars" then strcat ; : main strip-leading dup "=" instr dup if 1 - strcut 1 strcut swap pop else pop "" then swap strip-trailing swap strip-leading atoi dup 0 < me @ wizard? not and if pop pop USEROB say exit then dup not if pop pop MUSTPOS say exit then swap matchit if pop exit then swap me @ wizard? not if over player? not if pop pop ONLYPLAYER say exit then dup me @ pennies > if pop pop NOTENOUGH say exit then me @ over neg addpennies then over player? if over over addpennies dup textdollars "You give " over strcat " to " strcat 4 pick name strcat "." strcat say me @ name " gives you " strcat over strcat "." strcat 4 pick swap notify pop over moneyprop getpropstr atoi + intostr moneyprop swap addprop else over thing? eif over swap addpennies "You change the value of " swap dup name " to " strcat swap pennies textdollars "." strcat strcat strcat say else pop pop CANTGIVE say exit then ; . c q