;;; view-only worlds
; $Id: vieworld.tf,v 1.1 1996/11/20 15:01:15 asm21 Exp $
/~loaded vieworld.tf
;;; ========== Introduction
;;; this set of tf macros enables you to redirect selected parts of the
;;; output from one world into a specially created read-only world.
;;; Please note that, although they can be, these commands are not designed
;;; for use with knot chat or similar --- see the commands in sepchat.tf
;;; instead.
;;; ========== New world-type for separated chat
;; override default hooks
/def -i -p99 -hLOGIN -T"vieworld"
/def -i -p99 -hCONNECT -T"vieworld" = \
/eval /echo %% Opened view world ${world_name}.
;; send hook --- redirect to the parent world, using %{_ccomm} as a
;; template.
/def -i -hSEND -T"vieworld" -p9999 -ag = \
/echo % This is a read-only viewing world!
;;; /open_vworld
/def -i open_vworld = \
/if /test "%2" =~ ""%; /then \
/echo % Parameter error.%; \
/else \
/eval /def -i -ag -p1 -mregexp -F -t"%-1" -w${world_name} viewcomm_%1 = /send -w"%1" %%%*%; \
/eval /addworld -T"vieworld" %1 localhost echo%; \
/connect %1%; \
;; squelch the `% Trigger in world blah.' message
/def -i -ag -hBACKGROUND -w"%1"%; \
/endif
;;; /close_vworld
/def -i close_vworld = \
/if /test "%1" =~ ""%; /then \
/echo % Parameter error.%; \
/else \
/dc %1%; \
/undef viewcomm_%1%; \
/unworld %1%; \
/endif
;;; /defer_vworld
;;; opens a vieworld when the trigger comes up for the first time. This macro
;;; has a higher priority than the viewcomm_* macro, and runs first. I hope.
;;; designed for inclusion in .tfrc
/def -i defer_vworld = \
/if /test "%2" =~ ""%; /then \
/echo % Parameter error.%; \
/else \
/eval /def -i -ag -p3 -mregexp -t"%-2" -w"%1" -F -1 defer_vworld_%2 = \
/echo %%% Opening deferred vieworld...%%%; \
/open_vworld %2 %-2%; \
/endif
               (
geocities.com/goldmooneachna)