Next:
HOW TO CONNECT AND
Up:
Tecfa MOO Technical Manual
Previous:
Tecfa MOO Technical Manual
Contents
HOW TO CONNECT AND OTHER BASICS
Introduction
Conventions and style of this manual
1.1 Acknowledgements
1.2 Very very minimal communication and navigation
1.3 Connecting to a MOO and Getting a User Name
MOO Addresses
Entering a MOO address to the client
Logging into a MOO
Getting a user name
Changing your email address
1.4 Selection, Installation and Use of a Mud/MOO Client
tkMOO light (Unix, Mac, PC
Installing tkMOOlite under Win95
tkMOOlite@TecfaMOO
Tiny Fugue (Unix)
11.1 Features
Emacs clients (Unix)
Features
Available Commands
Muddweller (Mac)
MudWin (Windows)
Java Applets
[
TECFA
MOO
] Getting a user name
1.5 Manners on a MOO
1.6 Bugs, please help us !
Communication and Navigation
2.1 Basic standard MOO commands
Basic Communication
'say' - Say anything out ``loud'' to everybody in a room
'emote' - Non-verbal expressions
'whisper' - private communication
'page' - Communication over distance
Basic Navigation
2.2 MOO Mail and Mailing Lists
2.3 [
TECFA
MOO
] Janus' Channels System
Adding the Channel System
Channel Selection
Communication over channels:
Communicating on the default channel
Switching default and communicating to another channel:
Communicating to another channel (without switching default):
creating new channels
2.4 Social Features
2.5 Remembering and finding things
Remembering Rooms
[
TECFA
MOO
] Nicknames
Organization of MOO events
3.1 MOO Visits
3.2 MOO Seminars
Supporting objects in the MOO:
A few rules you should consider
Recording the session
EXTENDING THE WORLD (Building and Customizing)
Introduction to Building and Construction
4.1 General information on building things
What does ``building'' mean?
Listing and killing objects you own
4.2 Rooms and exits
Basic digging
Creating rooms and exits with @dig
Common mistakes and hints:
Dealing with exits
Customizing your room
Declaring a home
Describing your home
Advanced building
Customizing messages
Pronouns and other substitutions
4.3 Construction with @create
4.4 Setting messages on things, exits and yourself
Customizing your character
5.1 Basic customization
5.2 Your are also what you own
5.3 Customizing they way you appear and talk
Setting messages on yourself
Social Verbs
[
TECFA
MOO
] Building things at TECFAMOO
6.1 The MOOseum
6.2 [
TECFA
MOO
]Fancy Rooms
Ken's generic Classroom
Ria's multi-room
The Tutorial Room
HTHelp: Introduction
HTHelp: Getting Started
HTHelp: Quiting
HTHelp: Watching
HTHelp: Moving around
HTHelp: Communicating
HTHelp: Use Summary
HTHelp: Developing
HTHelp: Two Objects?
HTHelp: Text Modules
HTHelp: Adding text
HTHelp: Formatting text
HTHelp: Working Offline
HTHelp: Making Changes
HTHelp: Change Order and Delete
HTHelp: Editing Text
HTHelp: Registering Modules
HTHelp: History and Future
6.3 Ken's Turing Robot
Technical Issues
Basic operation
Adding A Word For Your Bot To Respond To:
Adding a Pattern FOR YOUR BOT TO RESPOND TO:
Adding random Responses:
Adding a Random RESPONSE TO A QUESTION:
Removing and moving patterns
Regular Expressions
Conceptual Issues
Pointers to Bots and Agents
Guidelines for building with Ken's Turing Bot
Example patterns for Ken's Bot
A note on external Bots
Quota and Security
7.1 [
TECFA
MOO
]The Quota System
Quota policy:
Administrators:
7.2 [
TECFA
MOO
] Security - Trust and Distrust
7.3 [
TECFA
MOO
] Multi-Ownership
INTRODUCTION TO MOO PROGRAMMING
Basic MOO Programming Tutorial
8.1 Documentation on MOO Programming
8.2 Programming: the General idea
What is programming?
The Elements of Programming
Object Oriented Programming
Functional Programming
Procedural/structural Programming
8.3 MOO tutorial, Level 0 (``computer'')
STEP 1 - Creating an Object:
STEP 2 - Adding a description
STEP 3 - Let's add a command verb
STEP 4 - Let's program the command verb
STEP 5 - Testing
STEP 6 - Counting the kicks
STEP 7 - Making sure you can do it alone
8.4 MOO tutorial, Level 1 (``holder'')
Creating an object
Creating a property "holding"
The first verb ``add'':
The second verb ``dump'':
The show verb
Cleaning up
Adding help
What is missing?
La morale de l'histoire
Modularity:
Going further
8.5 Social verb tutorial, level 0
The "grumble" verb
The "grab" verb
8.6 [
TECFA
MOO
] ``E_WEB'' Tutorial, Level 0
[
TECFA
MOO
] Make a child of of an webbed object
Write a :http_request verb:
8.7 A crash course on HTTP and CGI
The HTTP 1.0 Protocol
Client requests:
Server response:
Introduction to CGI
8.8 [
TECFA
MOO
] ``E_WEB'' Tutorial, Level 1
Dealing with cgi queries via the /cgi URL
Dealing with cgi via the :http_request verb
8.9 [
TECFA
MOO
] ``WOO'' Tutorial, Level 0
Adding a webby description
Adding webby verbs
A simple web verb:
A Web verb with a text box
Customizing the :htext verb
8.10 Permissions and Generic Objects Tutorial
A short look at Permissions
Inspecting and Manipulating Permissions:
A generic ``holder''
Adding security to the holder
8.11 MOO software, Level0
I want to program complex objects
Elements of the MOO language
10.1 Introduction to the MOO system
10.2 The MOO Programming Manual and Lambda-type databases
Server and Database Basics:
The MOO Programming Language:
Server Commands:
Builtin Functions and TecfaMOO utilities:
10.3 Objects and properties
Properties
Creation
Modification:
Removing properties
10.4 Verbs and command parsing
Command parsing
Verb argument specification
Changing verb arguments:
Removing verbs
10.5 Variables and Values
Values (by Andy Bakun)
Numbers
Objects
Strings
Errors
Lists
MOO variables
10.6 Expressions, statements, commands, oh my! (by Andy Bakun)
10.7 Permissions (by Defender)
More on Permissions
Objects - rwf
Verbs - rdxw
Properties - rcw
Issues in MOO Programming
Features
Help on Feature Object Verbs
11.2 Security
Writing Secure Verbs (by EricM)
Additional documentation:
What verbs need permissions checking?
What are the main considerations in choosing a format for your security?
What is the general structure of a permissions test?
What are valid calls to +x, this none this verbs?
What is the most useful test for -x command line verbs?
Why is it unacceptable to test "player" for security on +x verbs?
What's the most secure test for +x non-command line verbs?
How do I do permissions-based security for a +x command line verb?
Why are +x verbs called using pass() a special case?
What sort of combination security tests are reasonable?
11.3 Error handling
[
TECFA
MOO
] Programming, What's different at TECFA ?
12.1 [
TECFA
MOO
] Changes due to server upgrades
Numeric Verb Indexes
12.2 [
TECFA
MOO
] Local Core
12.3 [
TECFA
MOO
] Blocked Verbs
12.4 [
TECFA
MOO
] Multiownership and controls
[
TECFA
MOO
] The World-Wide Web E_WEB Interface on port 7778
[
TECFA
MOO
] The World-Wide Web (WOO) Interface on port 7777
14.1 The Low Level Implementation Layer
What happens first to a "GET" request from a www client?
$web: the core Woo layer
$web:get_htext
$web:do_url
14.2 Summary of important WWW Core Objects (not done yet)
14.3 The Basic Applications Layer (not done yet)
Webby verbs
htext verbs
The $www_utils package
The File Utilities Package
15.1 FUP server builtin functions
Security:
List of primitives provided:
15.2 [
TECFA
MOO
] The file_handler utils
TOOLS AND HINTS FOR DEVELOPPING CODE
Development and Porting Hints
16.1 Basics
Editing
16.2 Displaying and comparing code
Listing code
Comparing Code
16.3 Using the E_WEB Object Browser
16.4 Porting Code from another MOO
Who do I ask for permission to port?
Porting Algorithm
16.5 Hunting down code and objects
Finding things
The @find verb
Verb calling sequences
16.6 Eval
Basic Eval (by Andy Bakun)
Eval Options (by Andy Bakun)
16.7 Debugging Code
A few debugging tricks/common errors
I set a prop +c that should have been !c, now what?
My FO doesn't work
References
Index
About this document ...
Daniel K. Schneider
Thu Apr 17 12:43:52 MET DST 1997