Compact View | Expanded View
- Home
- Foreword
- Preface
- Chapter 1. Meet the Dream Maker
- Chapter 2. Navigating the Code Tree
- 1. Formatting Code
- 2. Compilation Errors
- 3. Paths in the Tree
- 4. Code Comments
- Chapter 3. Objects in the Tree
- 1. Object Properties
- 1.1. Location
- 1.2. Additional Mob Properties
- 2. Assigning Variables
- 2.1.Constant Values
- 2.1.1. Numbers
- 2.1.2. Text
- 2.1.3. Resource Files
- 2.2. Constant Macros
- 3. Putting It All Together
- Chapter 4. Verbs
- 1. Defining a Verb
- 2. Setting Verb Properties
- 3. Verb Accessibility
- 3.1. Explicit versus Implicit Source
- 3.2. Default Accessibility
- 3.3. Possible Access Settings
- 4. Overriding Verbs
- 5. Friendly Arguments
- 5.1. Parameter Input Types
- 6. Generating Output
- 6.1. Variables in Text
- 7. Flexibility in Choice of the Source
- 8. A Choice of Arguments
- 9. Default Arguments
- 10. anything input type
- Chapter 5. Variables
- 1. Global Variables
- 2. Object Variables
- 2.1. Defining An Object Variable
- 2.2. Accessing An Object Variable
- 2.2.1. Declaring Variable Types
- 2.3. The usr and src Variables
- 3. Procedure Variables
- 4. The Life of a Variable
- 5. Constants
- 6. Memory and Variables
- Chapter 6. Procs
- 1. Creating a Proc
- 2. Executing a Proc
- 3. Proc Inheritance
- 4. Flexibility of Arguments
- 5. Global Procs
- 5.1. Defining A Global Proc
- 5.2. Calling A Global Proc
- 6. The Procedure Language
- 6.1. Statements
- 7. Return Values
- 7.1. The return statement
- 7.2. The . (dot) variable
- 8. The if statement
- 8.1. The else clause
- 9. Boolean Expressions
- 9.1. Boolean Operators
- 9.1.1. ! the logical NOT operator
- 9.1.2. && the logical AND
- 9.1.3. || the logical OR
- 9.1.4. == the equality test
- 9.1.5. != and <> inequality tests
- 9.1.6. Relative comparison operators
- 9.1.7. Combining boolean operators
- 10. Mathematical Operators
- 10.1. Arithmetical Operators
- 10.2. ** the power operator
- 10.3. % the modulus operator
- 10.4. Increment and Decrement
- 10.5. Order of Mathematical Operations
- 11. Bitwise Operations
- 11.1. ~ the bitwise NOT
- 11.2. & the bitwise AND
- 11.3. | the bitwise OR
- 11.4. ^ the bitwise XOR
- 11.5. Bit Shifting
- 11.6. Order of Bitwise Operations
- 12. Assignment Operators
- 12.1. Combining Other Operations with Assignment
- 13. ? the Conditional Operator
- 14. Dereference Operators
- 14.1. . the "strict" dereference
- 14.2. : the "lax" dereference
- 15. Path Operators
- 15.1. / the parent-child separator
- 15.2. . the look-up path operator
- 15.3. : the look-down path operator
- 16. Order of All Operations
- 17. Loop Statements
- 17.1. for list loop
- 17.2. for conditional loop
- 17.3. while loop
- 17.4. do while loop
- 18. Jumping Around
- 18.1. break and continue statements
- 18.2. goto statement
- 18.3. Block Labels
- 19. switch statement
- Chapter 7. Predefined Object Procs
- 1. Movement Procs
- 1.1. Enter
- 1.2. Exit
- 1.3. Bump
- 1.4. Move
- 2. Object Creation and Destruction
- 2.1. New proc
- 2.2. Del proc
- 2.3. Areas and Rooms
- 3. Stat proc
- 4. Click and DblClick
- 5. Login and Logout
- 6. Topic
- Chapter 8. The world Data Object
- 1. world variables
- 2. world procs
- 2.1. New and Del
- 2.2. Repop proc
- 2.3. Reboot proc
- 2.4. Inter-world Communication
- 2.4.1. Topic proc
- 2.4.2. Export proc
- 2.4.3. Import proc
- Chapter 9. The Client Data Object
- 1. Client Variables
- 2. Client Procs
- 2.1. Direction Procs
- 2.2. Click proc
- 2.3. Stat proc
- 2.4. Topic proc
- 2.5. Import and Export procs
- 2.6. New and Del procs
- Chapter 10. Lists
- 1. Declaring a List
- 2. Accessing List Items
- 3. len variable
- 4. List Procs and Operators
- 4.1. + and += operators
- 4.2. - and -= operators
- 4.3. Add and Remove procs
- 4.4. Find proc
- 4.4.1. in operator
- 4.5. Copy proc
- 4.6. Cut proc
- 5. Creating Lists
- 5.1. list instruction
- 5.2. newlist instruction
- 5.3. typesof instruction
- 6. Pre-Defined Lists
- 6.1. contents list
- 6.1.1. Area Contents
- 6.2. verb lists
- 6.3. args list
- 7. Multi-Dimensional Lists
- 7.1. Declaring the List
- 7.2. Using the List
- 8. Associative Lists
- 8.1. Looping
- 8.2. Specifics
- 9. Parameter Lists
- 9.1. world.params
- 9.2. params2list
- 9.3. list2params
- Chapter 11. User Input/Output
- 1. Input
- 1.1. Verbs
- 1.2. input instruction
- 2. Output
- 2.1. text output
- 2.2. browse output
- 2.3. sound output
- 2.4. image output
- 2.5. ftp output
- 2.6. run file output
- 2.7. file output
- 2.8. link output
- 3. Text Macros
- 3.1. Expression Modifiers
- 3.1.1. Proper Nouns
- 3.1.2. Numerical Expressions
- 3.2. Special Characters
- 3.2.1. Newlines
- 4. Text Formatting Tags
- 4.1. Whitespace
- 4.2. Fonts
- 4.2.1. FACE attribute
- 4.2.2. SIZE attribute
- 4.2.3. COLOR attribute
- 4.3. Hyperlinks
- 5. Style Sheets
- 5.1. Context Selectors
- 5.2. Style Attributes
- 5.3. Fonts
- 5.4. Hyperlink Pseudo-Classes
- 5.5. Canvas Background Color
- 5.6. Style Rule Precedence
- 5.7. The STYLE attribute
- 6. Inline Icons
- 7. Special Effects
- 7.1. missile instruction
- 7.2. flick instruction
- Chapter 12. Savefiles
- 1. The savefile Object
- 2. Saving Players
- 2.1. tmp Variables
- 2.2. Overriding Write and Read
- 3. The Structure of a Save File
- 3.1. cd variable
- 3.2. dir variable
- 4. Data Buffers
- 4.1. File Input/Output
- 4.2. Stored Variables
- 4.3. Data Directories
- 4.4. Saving Objects
- 4.4.1. Saving a Player Instance
- 5. The Key Save File
- 5.1. Client-Side Saving
- 6. Transmission Between Worlds
- 6.1. Export, Import, and Topic
- 6.2. A Sample Player Transferal System
- 6.3. Security
- 6.4. Sharing Object Types
- 7. Advanced Savefile Mechanics
- 7.1. Duplicate References
- Chapter 13. Realtime Events
- 1. sleep instruction
- 2. spawn statement
- 3. Timing Specifics
- 3.1. Threads of Execution
- 3.2. Clock Ticks
- 3.3. Sequencing Actions
- 3.4. The Sleepless Server
- Chapter 14. The Map
- 1. Spatial Instructions
- 1.1. view list
- 1.2. oview list
- 1.2.1. Point of View
- 1.3. range and orange instructions
- 1.4. locate instruction
- 1.5. block instruction
- 1.6. get_dist instruction
- 2. Movement
- 2.1. walk instruction
- 2.1.1. get_dir instruction
- 2.1.2. turn instruction
- 2.2. walk_towards
- 2.3. walk_to instruction
- 2.4. walk_away instruction
- 2.5. walk_rand instruction
- 3. Programming for Map Design
- 3.1. Variable Input Parameters
- Chapter 15. Text Manipulation
- 1. findtext
- 2. copytext
- 3. addtext
- 4. lentext
- 5. Text Conversions
- 5.1. uppertext
- 5.2. lowertext
- 5.3. text2num
- 5.4. num2text
- 6. Comparing Text Strings
- 6.1. cmptext
- 6.2. sorttext
- 7. Text Documents
- Chapter 16. Mathematics
- 1. Randomness
- 1.1. rand
- 1.2. prob
- 1.3. roll
- 1.4. pick
- 2. abs
- 3. min
- 4. max
- 5. round
- 6. sqrt
- Chapter 17. Server and System Control
- 1. A Note on Platform Independence
- 2. shell
- 3. File Operations
- 4. file2text
- 5. text2file
- 6. file
- 7. fcopy
- 8. fdel
- 9. flist
- 10. Running other Worlds
- 10.1. startup
- 10.2. Control over Child Worlds
- 10.3. shutdown
- Chapter 18. User-Defined Data Objects
- 1. Defining a Datum
- 2. Object Variables
- 3. Object Procedures
- 4. Creation of Data Objects
- Chapter 19. Managing Code in Large Projects
- 1. Including Files
- 2. The Preprocessor
- 2.1. #define
- 2.2. Special Macros
- 2.2.1. FILE_DIR
- 2.2.2. DEBUG
- 2.2.3. __FILE__
- 2.2.4. __LINE__
- 2.2.5. DM_VERSION
- 2.3. #undef
- 2.4. Conditional Compilation
- 2.4.1. #ifdef
- 2.4.2. #if
- 2.5. #error
- 3. Some Code Management Issues
- 3.1. Ordering Code
- 3.2. Debugging Code
- 3.2.1. Good Coding Habits
- 3.2.2. Elusive Bugs
- Appendix 1. DM Compared to Other Languages
- Appendix 2. Pre-Defined Object Tree
- Appendix 3. Supported HTML Tags
- Appendix 4. DM Script
- Appendix 5. Addendum for BYOND 3.0
- Glossary