@prog movie.muf 1 9999 d 1 i : say me @ swap notify ; : make-text-prop (n -- s) "_msg" swap intostr strcat ; : make-delay-prop (n -- s) "_delay" swap intostr strcat ; : line-exists? (obj lineno -- obj lineno exists-p) over over make-text-prop prop-exists? ; : get-prefix (obj -- str) "_msgprefix" getpropstr dup not if pop "0/0=| " then ; : say-line (obj lineno -- obj lineno) over over make-text-prop getpropstr 3 pick get-prefix swap strcat trigger @ location begin dup room? not while location loop #-1 rot notify_except ; : sleep-line (obj lineno -- obj lineno) over over make-delay-prop getpropstr dup if atoi else pop over "_delay" getpropstr dup if atoi else pop 10 then then dup 0 < if pop 0 then sleep ; : main pop trigger @ location dup "_object" prop-exists? if dup "_object" getpropstr atoi dbref over owner over owner dbcmp if swap pop else dup "_public-movie" prop-exists? eif swap pop else pop pop "Permission denied." say exit then then ( dup "*status" "playing" addprop-if if pop "That movie is already playing!" say exit then ) 1 begin line-exists? while say-line sleep-line 1 + loop pop "*status" remove_prop ; . c q