@prog restrict-wrapper.muf 1 9999 d 1 i : todbref atoi dbref ; : maplist ( x1 ... xN N fxn -- x1' ... xN' N ) over 0 > if over 2 + 3 -1 for dup 1 + pick 3 pick exec swap put loop then pop ; : say-restrict me @ "Restriction violated." notify ; : allowed? prog "." rot strcat "-ok" strcat prop-exists? ; : main "me" match me ! me @ ".spe-restrict" getpropstr dup if " " explode ' todbref maplist loc @ contents begin dup while dup player? if dup awake? if dup me @ dbcmp not if 1 swap 3 pick 1 -1 for 3 + pick over dbcmp if swap pop 0 swap then loop swap if say-restrict swap 2 + mpop exit then then then then next loop pop mpop else pop then trigger @ ".prog" getpropstr dup allowed? if atoi dbref call else pop then ; . c q