. login name: richard password: real name: richard shyduroff From: mmoo-reg@media.mit.edu X-Mts: smtp Welcome to MediaMOO! Your character has been created. It is: richard Real name: anonymous (You didn't say whether you wanted your real name known. I recommend it! Send mail to mediamoo-registration to have your real name added.) Temporary password: Please change your password immediately using the @password command. To connect to MediaMOO, type: telnet purple-crayon.media.mit.edu 8888 connect PHILOSOPHY MediaMOO is designed to enhance professional community amongst media researchers. Please help extend the virtual world! Nothing is there unless people build it. The basic design is a virtual copy of the Media Lab, but folks from other places are invited to build their own offices and connect them via the "virtual Internet"! Just find a computer and step inside! MAILING LIST If you would like to be on an email list for discussion of mediamoo, send mail to: mediamoo-request@media-lab.media.mit.edu GETTING STARTED A few things you might want to do right away: @password @describe me as "...." @gender @research me is "...." Help on these and other commands is available in the online help system. Just type "help" or "help ." Please do take a look at "help manners." You can "look at " and "examine ." Examining something will give you a list of the things you can do with it. When in doubt, use 'examine'! Another useful help command is: say Hi! I'm new here. Can you help me? DOCUMENTATION A programmers manual and a very helpful file called "Tutorial" are available via anonymous ftp from parcftp.xerox.com in /pub/MOO/ProgrammersManual.{dvi,ps,texinfo,txt} /pub/MOO/contrib/Tutorial /pub/MOO/contrib/quick-reference There are also some client programs (which improve your interface to MOO) in: /pub/MOO/clients Other client programs are available via anonymous ftp from media.mit.edu in /pub/MediaMOO/clients. Type "help clients" for more information. Lots of useful information about MUDding is available from the USENET news group rec.games.mud.announce. -------- moonotes on wed 6 oct '93: (on help) help help Syntax: help help help index Print out entries from the online documentation system. The commands `?' and `information' (usually abbreviated `info') are synonyms for `help'. The first form prints out a summary table of contents for the entire help system. The second form prints out the documentation available on the given topic. Many help system entries contain references to other entries accessible in this way. The topic name may be abbreviated; if there is no topic exactly matching the name you give, the help system checks for topics for which the name is a prefix, perhaps with the addition or omission of an initial `@', or perhaps with some confusion beween dashes (-) and underscores (_), e.g., `bui' instead of `building', `who' instead of `@who', `@wri' instead of `write', `add_ent' instead of `@add-entrance', `unlock-' instead of `@unlock_for_open' If the abbreviation you give is ambiguous, you will be presented with a list of the matching complete topic names. The `help index' commands prints out a list of indices for the various help databases. Each index gives a list of topics available on that database. It is sometimes easier to find the topics you're interested in this way, rather than tracing through the chain of cross references. For programmers, the help system provides the following additional forms: help object:verbname -- prints any documentation strings that are present at the beginning of the program for that verb. help $_utils -- prints general information about one of the $..._utils objects (e.g., $string_utils, $list_utils, etc...), which are all libraries of generally used verbs. help builtin() -- prints documentation from the programmers manual about the named primitive, for example length() For information about how the help system itself works and about how to associate local help databases with specific rooms or player classes, see `help $help'. (on the help index) help index Available Help Indices ---------------------- prog-index -- Programmer Help Topics (#24) builtin-index -- Server Built-in Functions (#30) core-index -- Core Utility Help Topics (#23) gen-index -- General Help Topics (#60) full-index -- EVERYTHING . (on help full-index) help full-index Programmer Help (#24) ---------- ---- ----- # @display help regular-expressions ; @display-options @kids @remove-feature @add-feature @displayoptions @kill @rmproperty @args @edit language @rmverb @check-chparent @egrep @list @setenv @check-property errors precedence @show @chmod eval prepositions statements @chparent examine prog-index tasks @clearproperty expressions @program truth @copy features .program utilities @dbsize @forked programming @verb @disinherit functions @property @disown @grep @prospectus Builtin Function Help (#30) ------- -------- ---- ----- abs() index() properties() shutdown() add_property() is_clear_property() property_info() sqrt() add_verb() is_player() queued_tasks() strcmp() boot_player() kill_task() random() strsub() builtin-index length() read() substitute() caller_perms() listappend() recycle() suspend() callers() listdelete() renumber() task_id() children() listinsert() reset_max_object() ticks_left() chparent() listset() rindex() time() clear_property() match() rmatch() tonum() connected_players() max() seconds_left() toobj() connected_seconds() max_object() server_log() tostr() connection_name() memory_usage() server_version() typeof() create() min() set_player_flag() valid() crypt() move() set_property_info() verb_args() ctime() notify() set_task_perms() verb_code() delete_property() open_network_connection()set_verb_args() verb_info() delete_verb() output_delimiters() set_verb_code() verbs() dump_database() parent() set_verb_info() eval() pass() setadd() idle_seconds() players() setremove() Core Utility Help (#23) ---- ------- ---- ----- $building_utils $list_utils $seq_utils MR-naming *** More *** 62 lines left. Do @more [rest|flush] for more. @more $code_utils $login $set_utils MR-reading $command_utils $mail_agent $string_utils MR-searching $container $mail_recipient $time_utils MR-sequences $exit $math_utils $trig_utils MR-subscribing $gender_utils $net_utils $wiz_utils MR-writing $generic_db $no_one core-index object-matching $generic_editor $object_utils mail-format receiving-mail $generic_help $player_db mail-resolve sending-mail $generic_options $room mail-system $help $script_utils MR-access Help Database (#60) ---- -------- ----- alias emote mail @renumber name encrypt @mail @reply " @entrances mail-forwarding research : erase @mail-options @resident :: examine @mailoptions @rmalias ? @examine manipulation @rmmail @add-entrance exit-messages manners @rn @add-exit exits me robots @add-feature @exits MediaMOO room-messages @add-owned features @memory rooms @addalias @features message-sequences say @answer first-visit messages security @audit @forward @messages @send @bug ftp miscellaneous @sethome bugs full-index @more @setrealname building @gag @move @skip building_code gagging movement @sort-owned burn @gaglist mud.el spelling @char gen-index negative_quota spoofing @check @gender news @subscribe @classes get @next @suggest clients give @notedit summary commands go notes @sweep @comment @go @opacity take comments @gripe page temp common_quota hand @pagelength tf communication help @paranoid thing-messages container-messages @hide @parents throw containers home @password tinymud @contents @idea players topology @count index @prev @typo cracking information privacy @ungag create insert @privacy @unlock @create introduction programming @unlock_for_open creation inventory pronouns @unrmmail decrypt @invis purpose @unsetrealname delete janitor-list put @unsubscribe democracy @join @quit @uptime @describe key-representation @quota @verify-owned descriptions keys read @version @dig @lastlog @read whereis drop letters @realm whisper @dump @linelength @recreate @who duplicates @listgag @recycle @whois @edit-options @locations remove wizard-list @editoptions @lock @remove-entrance @wrap editors @lock_for_open @remove-exit write @eject locking @remove-feature zombie-messages email look @rename . (on work on the virtual e-club) @go e-club E-CLUB A room which is need of a description. It emits an event whenever something happens. Type read #5311 for more information. (first i re-read a note from rik-w) @read Message 1: Date: Tue Sep 28 17:04:30 1993 EDT From: Rik-W (#4862) To: richard (#4866) Subject: building howdy, I noticed that you haven't built anything yet (@audit richard), so I thought you might have use for some hints for getting started. Just in case you haven't realized it yet, you don't need to find a location for your room before you build. You can simply '@dig [roomname]' and you existing things later when you decide where. You can use '@go' to teleport around - most people do anyway, seeing who's on and teleporting there (also with '@join [player]'. In fact, if you simply hung out in your room you'll meet plenty of people wanting to see the new room :-) Just a few bits of knowledge that would've sped up my building way back when... Rik-W -------- . (next i read #5311) read #5311 This is a note on how to use event-reporting rooms. EVENT-REPORTING ROOMS The default room has been replaced with the event-reporting room. Whenever something "interesting" happens in such a room, messages get sent to objects (in the room or not) which are interested in such events. This sort of system makes it very simple to program, for example, a dog that barks every time someone enters a room, or a security system that beeps every time someone leaves the jail. DEFAULT EVENTS There are four events which have been built into the generic event-reporting room: enter, exit, connect and disconnect. Whenever someone or something performs any of these actions, the room will notify any interested objects. For information about how to signify interest in these events and how to program objects to respond, see the section below entitled, "EVENT-AWARE OBJECTS". It is worth noting that dropping an object in a room and entering a the room. Correspondingly, the "enter" event will be triggered in both cases, and it is up to the programmer to distinguish between them. CUSTOM EVENTS If you wish to add or remove additional events on an event room, use the commands: addevent to rmevent from The effect of these commands is to modify the .event_list property on the room and the list of listeners. Essentially, adding an event to a room signifies that you anticipate the event happening in that room. However, event-reporting rooms can handle events of any name -- they just happen to be much more efficient when handling expected events. EVENT-AWARE OBJECTS Creating event-aware objects is simple. To have an object respond to "enter" events, create a verb on the object named on_enter (this none this). The :on_enter verb will be called every time something enters. Similarly, verbs named :on_exit, :on_con, :on_dis, or even :on_bark may be added to ordinary object to make them event-aware. In fact, any verb beginning with "on_" will act as an event-handling verb. The event-reporting room will usually call the :on_* verbs with one argument: args[1] is a list of objects which are affected by the event. By default, args[1][1] is the "direct object," or what object triggered the event and args[1][2] is the "indirect object," or what object was affected by the event. For "enter" and "exit" events, args[1][1] will be the player that did the moving, and args[1][2] will be the room moved to/from. For "con" and "dis" events, args[1][1] will be the player doing the (dis)connecting, and args[1][2] will be the room in which it happened. Using the value of args[1] is more accurate than trying to use "dobj" or "iobj," since they will probably be undefined for some events. The args list is (by default) guaranteed to contain relevant information. EVENT REGISTRATION The event-reporting room keeps a list of objects interested in each event (in the .event_listeners property). When objects enter the room (or, equivalently, are dropped in the room), they are registered for any events they are interested in. This is done by checking for :on_* verbs and registering the object for the corresponding events. For example, if a "security box" had an :on_enter verb, it would be registered for "enter" events. If a "front gate" had :on_enter and :on_exit verbs, it would be registered for both "enter" and "exit" events. If an object has :on_* verbs which aren't in the list of events recognized by the room, they are ignored (if any of those custom events are triggered, though, the :on_* verb WILL be called). When an object leaves the room or is picked up, it is automatically unregistered for events in that room. EXPLICIT EVENT REGISTRATION If you wish to have an object explicitly registered for events in a certain room, use these commands: register in unregister in Explicitly registering an object for events in a room prevents it from being automatically registered and unregistered if it moves into/out of the room. This allows for remote objects to be aware of events in the room. An example of this would be a centralized security system that keeps track of all the rooms in a house, or a counter that tallies the number of people entering a given room. EVENT AWARENESS There are situations where it becomes desirable to turn off event-awareness for certain objects. This may occur if there are too many people walking through the room, or more importantly, if the event-handling verb is causing errors and distracting innocent bystanders. If the object is a descendent of the generic event-aware thing, the command to toggle event-awareness is: toggle If the object is NOT a descendent of the generic event-aware thing, then it suffices to create and set the .events_off property to 1 and to do: update which updates the event_listeners list. Note that if there is no .events_off property, the object is assumed to be event-aware. To toggle event-reporting in a room, the command is: toggle When events are turned off for an entire room, no events will be reported at all. EVENT ERRORS The event code does its best to trap errors. However, it cannot catch errors made by other programers, in their :on_* verbs. If the :on_enter on a dog in the E&L Garden is broken, for example, it is going to spew error messages at everyone that enters. Needless to say, this can become distracting and annoying; it is always a good idea to test out your event verbs privately before dropping your object in a public area. If the event code happens to successfully catch an error, the owner of the object will be paged (if online) or MOOmailed about the error. The object will also be deregistered for events in the given room. MORE DETAILS Generic Event-Reporting Room (#4560) verbs: update update listenesr reg*ister in explicitly register something unreg*ister in explicitly unregister something toggle*events toggle event-awareness addevent to add custom event to room rmevent from remove event from room stat info on room properties: event_list supported events event_listeners listening objects event_listeners_explicit explicitly registered objects event_active reporting events? Generic Event-Aware Thing (#4575) verbs: toggle*events toggle event-awareness properties: events_off ignoring events? (You finish reading.) . (i do an @audit on rik-w) @audit rik-w Objects owned by Rik-W (from #0 to #7112): #4862 Rik-W [System Dynamics Carrel] #5093 System Dynamics Carrel <-*out #5096 Shimmering_Guest [an emacs window] #5105 Rik's TV [System Dynamics Carrel] #4607 an emacs window [System Dynamics Carrel] #5257 a bathtub [a STELLA model running on the screen] #5095 a STELLA model running on the [System Dynamics Carrel] #6033 An Empty Room [System Dynamics Carrel] #5900 Generic Wandering Exit [An Empty Room] #5098 the Post Office [System Dynamics Carrel] #4966 an ordinary box with brown wr [Rik-W] #2669 a bicycle [Rik-W] #5326 Mail Clerk [Rik-W] #5162 Mr._McFeely [Rik-W] #6563 delivery list [Rik-W] #3327 Rik's Cellular Laptop [System Dynamics Carrel] #6764 a Zterm window [System Dynamics Carrel] #5137 simulation run [Rik-W] Total: 18 objects. . (and i do an @audit on me) @audit richard Objects owned by richard (from #0 to #7112): #4866 richard [E-CLUB] #7072 E-CLUB Total: 2 objects. . (i can see that i need to get to work in here) (and i do an @audit on zinky) @audit zinky Objects owned by zinky (from #0 to #7112): #4845 zinky [The Body Bag] Total: 1 object. . (who named that? odd.) -------- end visit; end; .