zoukankan      html  css  js  c++  java
  • Book of WolfMUD


    Book of WolfMUDAndrew "Diddymus" Rolfe

       Code Crafter's Studio

       www.codecrafterstudio.com

       WolfMUD Website

       www.wolfmud.org

    Copyright ?2002-2003 by Andrew "Diddymus" Rolfe - All rights reserved.

       This document was produced in the United Kingdom.

       The information is provided "AS IS" without any kind of warranty. The
       information presented is not a definitive guide to features,
       performance or commitment to provide any feature. Code Crafter's
       Studio reserve the right to change specifications and information
       provided in this document without notice.

       The WolfMUD Logo used on the cover is Copyright ?Andrew "Diddymus"
       Rolfe - All Rights Reserved.

       Linux is a registered trademark of Linus Torvalds.

       Other company and product names may be trademarks or registered
       trademarks of their respective owners.
         _________________________________________________________________
         _________________________________________________________________

    Dedication

    This work is dedicated to my wife Catherine, daughter Cassidy and my late
    Grandfather Jack who is sorely missed...

    I would also like to thank Sean Geoghegan. Though we have yet to meet face
    to face, Sean has become a good friend over the last few years. He has
    provided me with encouragement and been a voice of reason when I needed it
    the most. Thankyou Sean...

       Table of Contents
       Introduction
       Quick Install

            Quick Install Procedure

       Player's Guide (Early Draft)

            What IS WolfMUD?
            Getting Started
            Getting Help
            Your Character
            Moving Around
            Items
            Skills and Guilds

                  Learning skills
                  Nitty Gritty details

       WolfMUD Features
       Requirements

            Required
            Optional
            Tested Environments

       Running Java Programs

            Java in different environments

                  Running Java on Windows
                  Running Java on Windows using Microsoft's Java
                  Running Java on Unix
                  Running Java on an AS/400

       Installation

            Java 1.2 and above
            Java 1.1.x (UNIX)
            Java 1.1.x (Windows)

       Upgrading from a previous installation

            Retrospective Upgrade

       Setup and Running

            Server Configuration
            Starting the Server
            MiniWeb Server Setup
            Binding Ports
            MiniWeb file serving
            SETWEB command
            Setting MIME types
            Ending The Server
            WolfMUD Java Client Setup
            Running the WolfMUD World Builder

       World Builder
       Tour
       Tutorial
       Creating Zones and Locations
       Starting Locations
       Creating Objects
       Creating Mobiles
       Non-Player Barriers
       Linking Zones
       Generating Everything
       Collaboration

            Exporting and Importing
            Generated Files Only

       Combat Text

            Examples

       Compiling from Source

            Compiling under Windows
            Compiling under Unix/Linux

       Text Dump of the Cabbage Zone
       License Agreement
       Colophon
         _________________________________________________________________

    Introduction

    So what is WolfMUD? Wolf stands for World Of Living Fantasy and is a MUD
    codebase. If you have not come across this type of program before you may
    already be lost by that remark so I'll start at the beginning...

    A MUD is a multi-user dungeon. A text based environment where players can
    gather and interact with each other and the world around them. You take on
    the part of a character and through this character explore the world set out
    before you. You can collect treasures, defeat monsters and build up a set of
    skills for your character to use and interact with the other players.
    Depending on the theme of a particular MUD you may find yourself in a
    medieval fantasy setting, a futuristic science fiction setting or something
    very bizarre.

    A codebase is a program or set of programs that lets you run the MUD world
    and handles the creatures, locations and objects as well as the player's
    interacting with everything. The codebase itself is usually taken by the
    people running the world (Usually called GODS, IMPs (Implementer), Admins,
    Wizards and there are a lot more names) and they may tweak and modify the
    codebase so that their world provides a unique experience for their players
    not found on other MUDs. Typical examples are new Skills, Spells and Races.

    WolfMUD provides a starting point for building and running a MUD. If you do
    not want to modify the code and just create worlds for players you can. If
    you do want to modify the codebase and add features for your players you are
    free to do that as well. To help you create your own world a graphical based
    World Builder is included so that you don't need to be the greatest
    programmer in the world.

    If you can type, you can be creative.
         _________________________________________________________________

    Quick Install

    If you are the type of person who likes to get straight into something
    without a lot of reading then this chapter is for you. If you get stuck at
    any point then refer to the chapters that follow for more details on
    installing WolfMUD, advanced setups, WolfMUD configuration and running Java.
         _________________________________________________________________

    Quick Install Procedure

        1. Create an empty directory to install WolfMUD into. Usually this is
           called wolfmud, it will be assumed this is the directory being
           used.
        2. Download the latest WolfMUD JAR files from the WolfMUD web site
           and save them into the wolfmud directory you created. The server
           JAR file will be called WolfMUDServer_buildXXX.jar where XXX
           represents the build number.
        3. Open a shell/command window and change your current directory to
           be wolfmud.
        4. Run the JAR file from the command line using:

    java -jar WolfMUDServer_build303.jar

        5. Start the WolfMUD server by running the wolfServer class.

    java wolfServer

        6. Wait for the server to startup and you see the message saying it
           is accepting clients. Login to the server as a player using:

    telnet 127.0.0.1 4001
         _________________________________________________________________

    Player's Guide (Early Draft)

    What IS WolfMUD?

    WolfMUD is the 'World Of Living Fantasy' to give it it's full title. It is a
    game where you create a character that you have control of and send it into
    the game world to earn experience and fame. While in the game world you will
    meet other players and creatures that can be interacted with.
         _________________________________________________________________

    Getting Started

    When you first connect you will asked for the name of an existing character,
    or the name to use for a new character. Enter the name you wish to use for
    your character. A message will appear saying that the character could not be
    found and do you want to create a new character. Reply Y. If you are asked
    for a password the character already exists. Press enter and choose a
    different name. You will then be asked for a password so nobody else can use
    your character. You will then be asked to verify your password. Next you get
    to choose the gender for the character. After you have created your
    character you will be presented with a menu. If you already have a character
    you will see this menu after entering your password.

    To enter the game take option 1. This enters the main game itself and you
    will find yourself in a tavern ready to play. While in the tavern you cannot
    be attacked and cannot attack anything. So it is safe here for you to look
    at help topics and experiment for a while until you get used to things.
         _________________________________________________________________

    Getting Help

    Help is available to all players. To get a list of commands available, use
    the COMMANDS command. If you need help on a specific commands use the HELP
    command. It can be used in two ways. HELP by itself lists all help topics
    available. HELP followed by a topic will show the help entry for the topic
    chosen. For example to find out how to use the BUY command use:

    HELP BUY

    You can also ask for help from other players. They may be helpful, then
    again they may not.
         _________________________________________________________________

    Your Character

    If you enter the command SCORE (SC for short) you will be able to see an
    overview of your characters main attributes. These are:

         * Character
         * Date Created
         * Last Login
         * On Line Time
         * Health
         * Mana
         * Hungry
         * Thirsty
         * Regen @
         * Defense
         * Attack
         * Combat Damage
         * Money
         * Encumbrance
         * Power Rating

       Character Attributes

       Character
              This  tells  you your characters name, title, gender and player
              type.  The name and gender you choose for yourself. All players
              start off as mortals. The players title is based on the highest
              skill  gained.  If  two  skills  are of the same level then the
              first learnt will determine the title.

    Character...: Diddymus the GrandMaster Mage (Male) Implementer
                  \______/     \______________/ \____/ \_________/
                    Name             Title      Gender     Type

       Date created
              This shows when you created your character.

       Last Logon
              This  shows  when  you  lasted  logged onto the server. It will
              always be when your current session started.

       On Line Time
              This  is  the  total  amount  of  time  you  have  spent online
              developing this character.

       Health
              Health is a measure of how much damage your character can take.
              The  two figures given show your current health and the maximum
              health.  As you take damage the first figure will drop. When it
              drops  to  zero  your  character will die and all equipment and
              money  carried  will be dropped where you die. Your health will
              raise  by  itself upto the maximum given a little time. However
              if  you  are hungry or thirsty the amount of time taken will be
              longer  depending  on  how  hungry or thirsty you are (See also
              Regen  @).  As  your  character  survives  damage over time the
              maximum health of the character will very slowly rise.

       Mana
              Mana  is  a measure of the magical force you have available for
              casting  spells.  The  two figures given show your current mana
              and  the maximum mana. As you cast spells the first figure will
              drop.  When  it drops to zero your character can no longer cast
              spells  until  the  mana  is  regained.  You mana will raise by
              itself upto the maximum given a little time. However if you are
              hungry  or  thirsty  the  amount  of  time taken will be longer
              depending  on how hungry or thirsty you are (See also Regen @).
              As  your  character  casts  more  and more spells over time the
              maximum mana of the character will very slowly rise.

       Hungry
              This value indicates how hungry you are. As time progresses you
              will start to get hungry. If you do not eat then it will effect
              how quickly you regain you health and mana. You cannot die from
              hunger  but  if  you  get  too hungry and thirsty you will stop
              regaining health and mana (See also Regen @).

       Thirsty
              This  value  indicates  how thirsty you are. As time progresses
              you will start to get thirsty. If you do not drink then it will
              effect  how  quickly you regain you health and mana. You cannot
              die  from thirst but if you get too thirsty and hungry you will
              stop regaining health and mana (See also Regen @).

       Regen @
              This value shows you the modifier that your health and mana are
              regenerating at. There are four levels. Full rate (x1.00), half
              rate (x0.50), quarter rate (x0.25) and no regeneration (x0.00).
              The  current  modifier  will be a combination of how hungry and
              thirsty you are.

       Defense
              Your  defense  value  is  an  indication  of  how  well you are
              protected  from  harm.  The  value  will  take into account any
              armour, magical items and skills etc. that you are using at the
              time. The higher this value the better protected you are.

       Attack
              Your  attack  value is an indication of how well you can attack
              something.  The value will take into account any weapons, magic
              and  skills  etc.  you  are  using at the time. The higher this
              value the better you attack chances.

       Combat Damage
              Combat  damage  is a measure of the potential damage you can do
              to  an  opponent. It is represented as two figures, for example
              5+5. This means you damage will be in the range of 5 points + a
              random number of points from 1 to 5. So your damage could range
              from 6 to 10 points.

       Money
              This  is  the current amount of money you are carrying. You can
              have more money than this in an account held by a bank or money
              changer.  Care must be taken as if you are killed you will drop
              any money you are carrying and may lose it.

       Encumbrance
              Encumbrance  is a measure of how heavy or difficult to carry an
              object  is.  It  usually  works out that 1 encumbrance point is
              about  1/10^th  of  a pound. The two values shown show how much
              you are carrying and the maximum you can carry.

       Power Rating
              Your  Power  Rating  is  an  indication  of how successful your
              character  is  in  the  game world. The value is made up from a
              number  of values including how advanced your skills are and to
              a  lesser  extent  how  rich  you are. This determines how much
              influence  you have in the game. Unlike most games of this type
              running around and killing things does not gain you power!
         _________________________________________________________________

    Moving Around

    For each location in the game there will be a number of exits available. To
    move in a direction type the direction you want to go. Possible directions
    are NORTH, NORTHEAST, EAST, SOUTHEAST, SOUTH, SOUTHWEST, WEST, NORTHWEST, UP
    and DOWN. You can use N, NE, E, SE, S, SW, W, NW, U and D to save typing.
    Which exits are available will depend on your current location. If you
    forget what exits are available to you, you can use the command EXITS to
    show just the exists, or use LOOK to re-describe the location.
         _________________________________________________________________

    Items

    In the game you will come across many useful items. To pick up an item use
    the GET command followed by the item you want to pickup. For example GET
    SWORD. To drop an item use DROP as in DROP SWORD. To get more information
    use the EXAMINE command, EXAMINE SWORD. You can also try to wield and wear
    many items. To see what items you currently have and which are worn or
    wielded, if any, use the INVENTORY command (INV for short). Many of the
    commands can also deal with multiple occurrence of an object. For example if
    the are two swords and you want to pick up the second sword use GET 2 SWORD.
    You can also use the special item ALL. As in GET ALL, DROP ALL, WEAR ALL
    etc.
         _________________________________________________________________

    Skills and Guilds

    To help you survive your adventures to can gain useful skills along the way.
    The most common source of training is from guilds. This will only provide
    you will basic common skills, you will have to journey and adventure to find
    the more powerful and rare skills. Training will also cost you more and more
    the higher the level you wish to train at. Once you have acquired a skill
    you do not have to pay for more training if you do not want to. Instead by
    using the skill you can slowly develop it yourself. However this may take
    many, many repetitions of the skill, more with the higher skill levels.
         _________________________________________________________________

    Learning skills

    If you think you have found a potential tutor to learn skills from use the
    command LEARN followed by the tutor you wish to learn from. For example
    LEARN WIZARD. This will show you a list of skills you can learn from this
    tutor and how much money will be required at your current level. If you have
    enough money available you can learn the skill if you wish. Some skills
    require others to be learnt before you can use them. For instance the skill
    "basic magic" must be learned before you can learn any other magic spells.
    The fireball spell however cannot be learned until your basic magic is
    raised to 30%.
         _________________________________________________________________

    Nitty Gritty details

    Once you have learned your skills you will have to actually use and practice
    them so you don't "get rusty". Here is how it works. There are root skills
    like "basic magic" and "basic combat". Using the SKILLS command these skills
    show as green and have a current and target usage next to them. The current
    percentage is how much you are using the skill and the target percentage is
    the minimum percentage you must use the skill. Periodically your skills are
    checked. If the current usage is below the minimum target usage then the
    root skill will drop by 0.1% AND SO WILL ALL SUB SKILLS. Sub skills are
    shown in yellow after each root skill. Using a sub skill will count toward
    using the root skill as well. For example casting "magic missile" requires
    you to use your knowledge of "basic magic". This also means as your "magic
    missile" improves so will your understanding of "basic magic". Due to this
    for every full 1% a sub skill is raised your root skill will raise by 0.1%
    as well.

    The highest root skill attained will determine your characters title which
    others will be able to see. If you have learned no skills your title will be
    "Beginner". The titles currently available are:

         * Amateur
         * Neophyte
         * Initiated
         * Skilled
         * Practiced
         * Proficient
         * Studied
         * Adept
         * Expert
         * Master
         * GrandMaster

       Due to the fact you need to practice skills to keep them there will be
       very   few  "power  characters"  around.  For  example  a  GrandMaster
       Warrior/Mage.  The  reason for this is that the skills will have to be
       very  carefully  balanced  with each other. Rely on magic too much and
       your  warrior  skills  will suffer, fight too much and your magic will
       suffer.
         _________________________________________________________________

    WolfMUD Features

    Why would someone want to consider using WolfMUD instead of another
    codebase? Below are a list of some of the features WolfMUD provides:

         * Written in 100% Java for use on many different platforms.
         * Currently tested on Win95/98/NT, OS/2, Solaris, Linux, RS/6000 and
           AS/400 but should be compatible with any platform supporting Java.
         * Very simple to setup with no compilation needed, just download and
           run.
         * Includes GUI based World Builder allowing creation of worlds
           without programming.
         * GUI World Builder includes features to easily share zones
           developed by others.
         * GUI World Builder tutorial and example world provided.
         * Integrated MiniWeb server (with automatic configuration of clients
           and plugins).
         * Stable Core Engine (Max runtime is on Linux at about 986 hours,
           server ended accidentally).
         * Low memory usage (The current world will run in under 1MB with
           between 10-15 players). [1]
         * Event driven.
         * Scalable - maximum locations, objects and mobile count is around
           2,000,000,000 Each!!!
         * Large client count depending on platform used (On an AS/400
           simulated just over ?million connections, then ran out of PC
           power to throw more clients at it).
         * Provides a skill based system for players instead of levels.
         * Java Developers can easily extend codebase.
         _________________________________________________________________

    Requirements

    This section details the software required to be able to run WolfMUD.
         _________________________________________________________________

    Required

    The following are the very minimum requirements on any system for it to be
    able to run WolfMUD.

         * Java Runtime Environment (JRE) 1.1.x or higher (1.3.x recommended)
           [2]
         * TCP/IP Networking (LAN, Dial-up or local)
         _________________________________________________________________

    Optional

    The following are optional and allow additional features of WolfMUD to be
    used.

         * Java Enabled Web browser
         * A Web Server such as Apache [3]
         * Swing 1.1 or higher (Only required if you plan to use the World
           Builder) [4]
         * Java Development Kit (JDK) for compiling WolfMUD from source
         _________________________________________________________________

    Tested Environments

    To date WolfMUD has been tested in the following environments:

         * Windows 95/98/NT/2K/ME (Sun, IBM and Microsoft JVMs)
           Server, MiniWeb, Client and Builder all run with no problems.
         * IBM AS/400 (OS/400 V4R3M0 and above, IBM JVM)
           Server and MiniWeb run with no problems. Native telnet can be used
           as a client with no problems. The AS/400 has no GUI and does not
           run the Builder or WolfMUD client. Native AS/400 telnet works fine
           as a client.
         * Sun Solaris 7 (Sun JVM)
           Server, MiniWeb, Client and Builder all run with no problems.
         * i386 Linux (Debian, RedHat, Sun and IBM JVMs)
           Server, MiniWeb, Client and Builder all run with no problems.
         * PowerPC Linux (Debian, Apple iBook, Blackdown JVM)
           Server, MiniWeb, Client and Builder all run with no problems.
         * OS/2 (IBM JVM)
           Server, MiniWeb, Client and Builder all run with no problems.
         * IBM RS/6000 (AIX, IBM JVM)
           Server, MiniWeb, Client and Builder all run with no problems.

       Note

       These only represent the environments currently available to the
       developers for testing and WolfMUD should run in any environment
       supporting Java.
         _________________________________________________________________

    Running Java Programs

    It is assumed that Java is already installed as is TCP/IP networking.
    Detailing the setup of Java and TCP/IP networking for all environments is
    beyond the scope of this documentation. For more details on Java see the
    chapter called Requirements which has several references for downloading
    Java.

    There are two types of Java installation. You can install the Java Runtime
    Environment (JRE) , which allows you to only run Java. Or you can install
    the Java Development Kit (JDK) which allows you to run and also compile and
    develop in Java. Depending on which environment you have installed the
    command for running Java may be located in a different directory.

       Important

       For all environments make sure that the directory you installed
       WolfMUD into is your current directory before you try running any of
       the Java classes.

       Note Note for JRE 1.1.x users


       If you are using the JRE for version 1.1.x of Java you will need to
       replace the command java with the command jre in the following
       examples.
         _________________________________________________________________

    Java in different environments

    Some Examples now follow for running Java in the following environments.

         * Windows
         * Windows with Microsoft's Java
         * Unix
         * AS/400
         _________________________________________________________________

    Running Java on Windows

    You can check to see if Java is installed and accessible using the java
    command:

    java -version

    Depending on the Java vendor and your version it should respond with
    something like:

    java version "1.3.0"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
    Classic VM (build 1.3.0, J2RE 1.3.0 IBM build cx130-20000623 (JIT enabled: jitc
    ))

    If it does not and instead responds with:

    The name specified is not recognized as an internal or external command, operab
    le program or batch file.

       You will have to specify the full path to the java command, as in:

       c:\jdk1.3\bin\java

       You can then rerun the above test using:

       c:\jdk1.3\bin\java -version

       Now  we  know  the  java  command  is  working the general command for
       running Java looks like:

       java <class file>

       The  entry  <class  file>  should be replaced with the the name of the
       class  you wish to run. The class file should be specified without the
       .class  extension.  For  example to run the wolfServer.class class you
       would type:
    cd c:\wolfmud
    java wolfServer

       Or using a fully qualified path to the java command you could use:
    cd c:\wolfmud
    c:\jdk1.3\bin\java wolfServer

       Important

       It is important when running WolfMUD that the WolfMUD directory (the
       directory you installed WolfMUD into) is your current directory before
       you try and run any of the WolfMUD classes.
         _________________________________________________________________

    Running Java on Windows using Microsoft's Java

    This is very similar to running WolfMUD using a version of Java like Sun's
    or IBM's (see the Section called Running Java on Windows) but the command
    used should be jview and not java. Microsoft's Java is usually available if
    you have Internet Explorer 4 or above. The last point of note: this is a JRE
    and not a JDK although a Microsoft 'SDK' is available from their website.
         _________________________________________________________________

    Running Java on Unix

    You can check to see if Java is installed and accessible using the java
    command:

    java -version

    Depending on the Java vendor and your version it should respond with
    something like:

    java version "1.3.0"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
    Classic VM (build 1.3.0, J2RE 1.3.0 IBM build cx130-20000623 (JIT enabled: jitc
    ))

    If it does not and instead responds with:

       java: command not found.

       You will have to specify the full path to the java command, as in:

       /opt/IBMJava2-13/jre/bin/java

       You can then rerun the above test using:

       /opt/IBMJava2-13/jre/bin/java -version

       Now  we  know  the  java  command  is  working the general command for
       running Java looks like:

       java <class file>

       The  entry  <class  file>  should be replaced with the the name of the
       class  you wish to run. The class file should be specified without the
       .class  extension.  For  example to run the wolfServer.class class you
       would type:
    cd /home/diddymus/WolfMUD
    java wolfServer

       Or you could use:
    cd /home/diddymus/WolfMUD
    /opt/IBMJava2-13/jre/bin/java wolfServer

       Important

       It is important when running WolfMUD that the WolfMUD directory (the
       directory you installed WolfMUD into) is your current directory before
       you try and run any of the WolfMUD classes.
         _________________________________________________________________

    Running Java on an AS/400

    Running Java on an IBM AS/400 is slightly different to normal so help is
    given here. Firstly it is easiest to run Java from a Unix like shell session
    or 'QShell'. To start QShell use the command:

    STRQSH

    Once in the QShell session change to the WolfMUD directory in the Integrated
    File System (IFS) using:

    cd \WolfMUD

       Note

       While in the QShell session the commands are processed separate from
       the session itself, a bit like a batch job. After typing a command
       wait for the prompt to appear again (usually a $ or ?sign).

       You  should  now  have  a QShell session started and be in the WolfMUD
       directory.To  actually  run  Java  classes  in  this  session  use the
       following command:

       java -opt40 -classpath .:/Products/classes <class file>

       The  entry  <class  file>  should be replaced with the the name of the
       class  you wish to run. The class file should be specified without the
       .class  extension.  For  example to run the wolfServer.class class you
       would type:

       java -opt40 -classpath .:/Products/classes wolfServer

       Once  the server is running you can use F12 (Disconnect) in the QShell
       session  to detach the Batch server job from the current session. This
       will free up your session and run the server in batch.

       Note

       On the AS/400 the access to the IFS can be slow, also optimized
       versions of the classes will be created so it may take a while for
       things to happen (many minutes sometimes). THIS IS NORMAL WHEN
       STARTING THE SERVER. This in no way slows down the server once it is
       running.

       Important

       It is important when running WolfMUD that the WolfMUD directory (the
       directory you installed WolfMUD into) is your current directory before
       you try and run any of the WolfMUD classes.
         _________________________________________________________________

    Installation

    The different parts of WolfMUD are now provided as JAR files and come with
    automatic installers to make life easier for people. Life is even easier if
    you are using Java version 1.2 or higher, although the software should run
    from version 1.1.4 or above allowing use of the Microsoft JVM.

       Warning

       If you have an existing WolfMUD installation please read the chapter
       called Upgrading from a previous installation before reading this
       chapter.

       Once  the  selected  JAR has been downloaded place it in the directory
       you  wish  the  software  to  be  installed into, which may need to be
       created. Usually the Directory is called WolfMUD.

       Then  depending on the version of Java you are using install using one
       of the following examples. In the examples the directory specified may
       be different depending on the location of your Java implementation and
       the  platform  you  are  on  (E.G. Windows/Unix). You may also have to
       fully    qualify   the   location   of   your   java   command   (E.G.
       /usr/jdk118/bin/java). For more information if you are unsure refer to
       the chapter called Running Java Programs.

       Note

       Please note, in the examples the upper/lower case is very important
       even on a Windows platform. Also where example commands are given they
       should all be typed on a single line even though they may be shown on
       multiple lines in this document.
         _________________________________________________________________

    Java 1.2 and above

    java -jar <downloaded JAR name>

    Example:

    java -jar WolfMUDServer_build300.jar
         _________________________________________________________________

    Java 1.1.x (UNIX)

    java -classpath .:<downloaded JAR name>:<path to classes.zip> install

    Example:

    java -classpath .:WolfMUDServer_build300.jar:/usr/jdk118/lib/classes.zip
    install
         _________________________________________________________________

    Java 1.1.x (Windows)

    java -classpath .;<downloaded JAR name>;<path to classes.zip> install

    Example:

    java -classpath .;WolfMUDServer_build300.jar;c:\jdk118\lib\classes.zip
    install
         _________________________________________________________________

    Upgrading from a previous installation

    If you already have a WolfMUD installation and wish to use existing player,
    project or data files follow these instructions.

        1. Backup the important files from you existing installation:
             a. Copy the players directory containing .ply files to a safe
                place (E.G. a temporary directory)
             b. Copy the projects directory containing .wmp and .wmx files to
                a safe place (E.G. a temporary directory)
             c. Copy the data directory containing .zon, .loc, .mob and .tng
                files to a safe place (E.G. a temporary directory)
        2. Delete the existing installation (E.G. Everything in C:\WolfMUD or
           /home/<user>/WolfMUD)
        3. Copy the old players, projects and data directories back (E.G.
           into C:\WolfMUD or /home/<user>/WolfMUD)
        4. Install the new version of WolfMUD using the normal installation
           instructions in the chapter called Installation.
         _________________________________________________________________

    Retrospective Upgrade

    If you have already installed the new version of WolfMUD and wish to upgrade
    some player files or project files (E.G. from a friend or previous install):

        1. Copy the files you wish to retrospectively upgrade:
             a. Copy player files into the players directory with the rest of
                the .ply files.
             b. Copy projects and extract files into the projects directory
                with the rest of the .wmp and .wmx files.
        2. To upgrade players rerun the SERVER installation using the
           -nounpack option. For example:
           Java 1.2 and above:
           java -jar WolfMUDServer_build300.jar -nounpack
           Java 1.1.x:
           java -classpath .;WolfMUDServer_build300.jar;<path to classes.zip>
           installServer -nounpack
        3. To upgrade projects rerun the BUILDER installation using the
           -nounpack option. For example:
           Java 1.2 and above:
           java -jar WolfMUDBuilder_build62.jar -nounpack
           Java 1.1.x:
           java -classpath .;WolfMUDBuilder_build62.jar;<path to classes.zip>
           install -nounpack
         _________________________________________________________________

    Setup and Running

    It is assumed you have already installed WolfMUD before reading this, if not
    you probably need to read the chapter called Installation on installation
    first.
         _________________________________________________________________

    Server Configuration

    There are a number of options that can be configured for the WolfMUD server
    however for most people the defaults should be fine to start with until you
    get adventurous.

    In the directory WolfMUD was installed into there should be a file called
    server.properties in the config directory. This file can be edited and the
    default values changed. Each property and it's values are fully documented
    in the file itself. Two properties of particular interest will be
    server.welcome and server.news by changing the default values you can create
    a custom welcome screen and news items for your MUD.

    If you just want to override a value temporarily without changing the
    server.properties file certain properties can be specified on the command
    line when starting the server. Specifying properties in this way will
    override settings in the properties file only until the server is ended. A
    full list of options can be seen by starting the server and appending -? to
    the end of the command. As an example:

    Java 1.2 and above:

    java wolfServer -?

    Java 1.1.x:

    java -classpath .;c:\jdk1.1.7\lib\classes.zip wolfServer -?

    This should display the following details:

    Valid parameters:

    -?               This help screen
    -port <port>    Port to listen on for clients.
                     Where <port> is the port number (1-65535)
                     NOTE: 1-1023 usually reserved for other services.
    -nodisklog       Do not write out a log to disk.
    -noconsole       Do not log to a console/screen.
                     Useful if running in as background process.
    -noeventlog      Do not include events in the log.
    -maxClients <x> Maximum number of client connections allowed.
                     If not specified defaults to platform limit.
    -timeout <x>    Timeout limit for idle players where x is a
                     number of minutes. Defaults to 15 minutes.
    -noweb           Do not start internal web server.
    -webport <port> Port for web server. See -port option.
         _________________________________________________________________

    Starting the Server

    To start the server you need to run the wolfServer class (See the chapter
    called Running Java Programs on running Java if you need help). This will
    start the server running. You can optionally specify a number of parameters
    to override some settings in the server.properties file (See the Section
    called Server Configuration for details).

    By default the Client Port which players should connect to is 4001 and the
    Web server is started on 4002. The window / process the server is running in
    should now be left alone to do it's job. It will not end until the server is
    ended.

       Note

       The FIRST character that is created will be created as an Implementer
       and has access to the #SHUTDOWN command to end the server.
         _________________________________________________________________

    MiniWeb Server Setup

    If you do not want to use the MiniWeb Server it can be disabled using the
    -noweb command line option. You can also change the port the web server is
    running on by using the -webport option or by editing the server.properties
    file. To save having to type the port number just for web pages, For Example
    http://127.0.0.1:4002, you can run on the web server on the default HTTP
    port of 80. However on some systems this may require special system security
    configuration as port numbers in the range 1-1024 are usually reserved for
    well known services and access may be restricted to these ports on your
    server.

    The last line displayed by the server when it starts up should look like:

    27May 16:47:12.35 [M] Web server waiting on port 4002 (Accepting on any IP Addr
    ess)

    So you should be able to open a web browser and goto http://<my_IP>:4002
    where <my_IP> is the IP address of the WolfMUD server EG
    http://123.045.78.9:4002. If you cannot see this line, because the server is
    running as a background process for example, ON THE SERVER MACHINE goto
    http://127.0.0.1:4002/statusPlugin.wgp. This will let you check the ports
    being used.
         _________________________________________________________________

    Binding Ports

    In the above section when the server starts up the last line displayed is:

    27May 16:47:12.35 [M] Web server waiting on port 4002 (Accepting on any IP Addr
    ess)

    Notice it says (Accepting on any IP Address). This indicates that any
    available IP address on the server machine will be used. Normally this is
    fine. However if your machine is multi-homed (E.G. has more than one network
    card installed or is configured for multiple IP addresses) you may want to
    specify a specific IP which players can connect to. This is done by setting
    the server.bindIP property in the server.properties file.

       Note

       This binds the Telnet port and web server port.
         _________________________________________________________________

    MiniWeb file serving

    In the installation directory there is a directory called web. This is the
    only directory (and subdirectories) that the MiniWeb Server will allow
    access to. Files in other directories cannot be requested by browsers. At
    the moment HTML pages cannot use URLs that start with a period, For Example
    .. for previous directory, as it opens up a security hole. This will be
    addressed in a later release.
         _________________________________________________________________

    SETWEB command

    As of build 258 the SETWEB command has been removed. The setup of the
    MiniWeb server is now totally automatic as is the setting up of the WolfMUD
    Client.
         _________________________________________________________________

    Setting MIME types

    When a request for data is made by a browser the MiniWeb Server will send
    the requested file (if applicable) and will also try to tell the browser
    what type of data the file should contain. For example if a .txt file is
    sent the browser will be told it is of type text/plain and the browser
    should know what to do with that file type. The mapping between the file
    extension .txt and the MIME Type text/plain is configured in the file
    mime.properties. This can be found in the config directory.
         _________________________________________________________________

    Ending The Server

    To end the server you need to log on as a character that is an Implementer
    and use the #SHUTDOWN command. This will end the server in an orderly manner
    and save any characters currently in use. If the server is just killed off
    there is a chance that the socket is not released and the server will not
    restart because it thinks the socket is in use. Sometimes the server will
    restart, but players will not be able to connect. Also any characters in use
    will not be saved and the character will revert back to when it was last
    auto-saved. This could lead to some very unhappy players.
         _________________________________________________________________

    WolfMUD Java Client Setup

    There are three ways to setup the client: Automatically, as a stand-alone
    application or as an Applet on a Web server. The following sections detail
    each of these methods. For quick setups and testing method 1 is recommended.
    Also this method allows a number of people to quickly get playing on a
    network or over the Internet. Method 2 is of use if the internal web server
    is not being used or needs to be configured. This method is also handy if
    your browser does not support Java or you want to use a different version of
    Java then your browser supports. Method 3 is usually used when you already
    have a web server setup or just don't like the integrated MiniWeb server.

       Note AS/400 Users


       The Client will NOT run on the AS/400 in a normal "green screen"
       session, only the server will. It is possible to access the server
       using Telnet from a "green screen" session.

         * Method 1: Automatic setup
           This  is  the quickest and easiest method to use. When the MiniWeb
           server  is  started it will automatically configure itself and the
           client  pages. Get the players to point a Java enabled web-browser
           at  the  server  and  start  playing.  (See the section on MiniWeb
           Server Setup for more details on the Port to Point too).
         * Method 2: WolfMUD Client stand-alone Application setup
           In the distribution file there is a file called WolfMUDClient.zip.
           This  file  should be unpacked on each machine you wish players to
           connect  from,  usually  into  a  WolfMUD  directory. To start the
           client  run  the class wolf.client.wolfClient. This class can also
           have 1 or 2 parameters. The first parameter is the host to connect
           to.  It  can be specified as the Host Name or the Host IP address.
           The  second  parameter  is the port number to connect to. The port
           can  only  be specified if a host has been specified. The defaults
           are  127.0.0.1  for  the  host  and  port  4001.  To  specify  the
           parameters just type them after the class name. For example:
           Java 1.2 and above:
           java wolf.client.wolfClient 127.0.0.1 4001
           Java 1.1.x:
           java            -classpath           .;c:\jdk1.1.7\lib\classes.zip
           wolf.client.wolfClient 127.0.0.1 4001

           Note

       The commands should be entered on a single line. For more information
       on running Java classes see the chapter Running Java if you need help.
         * Method 3: Stand-alone Web server setup
           To  setup  the client so it can be accessed from a stand-alone web
           server  the  web  server  and  WolfMUD  server must be on the same
           machine.  This  is  due  to  restrictions  that the Java 'sandbox'
           security  model  imposes to protect users from Applets loaded over
           the  Web  accessing  their  own  machine.  Also the integrated web
           server must not be running on the port you want to use.
           If  you  want to use a stand-alone web server AND want to make use
           of  the  automatic  configuration  and  plugins available from the
           MiniWeb  server  you  can  just  embed  hyperlinks  to the MiniWeb
           plugins  into your pages. In the installation there is a directory
           called  web.  This contains an HTML file which contains such links
           and you can crib from these.

       Warning

       The client and server files should not be put into the same directory,
       otherwise players will be able to get to the server code and classes
       as well and download the whole lot from your server. The WolfMUD
       server does not have to be installed anywhere near the server files as
       long as they are on the same machine.
         _________________________________________________________________

    Running the WolfMUD World Builder

    To start the World Builder:

        1. Change to the directory where the software is installed (Usually
           WolfMUD).
        2. Run the class wolfBuilder
             a. For Java 1.2 and above:
                java wolfBuilder
             b. For Java 1.1.x make sure the Swing classes are in you
                classpath:
                java -classpath .;c:\jdk1.1.7\lib\classes.zip;
                c:\swing-1.1.1fcs\swingall.jar wolfBuilder

       Note

       The commands should be entered on a single line. For more details on
       Swing for Java 1.1.x see the chapter on Requirements for details. For
       more information on running Java classes see the chapter Running Java
       if you need help.

       Details  on  using  the World Builder including a tutorial are covered
       starting with the chapter called World Builder.
         _________________________________________________________________

    World Builder

    This section details how to use the World Builder to create your own worlds
    with locations, mobiles and objects without having to do any programming.

    When the Builder is loaded the Builder workbench will be displayed with the
    World Tree frame opened as shown in Figure 1.

       [workbench.jpg]

       Figure 1. World Builder Workbench

       Most  actions  are  performed  by  using a right mouse click (or mouse
       click  with  a  modifier  key).  To  make  sure  everything has loaded
       properly:  select the Zones entry in the World Tree and right click. A
       menu  will  be  shown.  From this menu select Add. A submenu should be
       shown  with  a  single item on it: Zone. This is shown in Figure 2. If
       the  entry  for  Zone  is not displayed close down the builder and try
       starting  it  again  (This  bug  was  fixed  and should no longer be a
       problem).

       [treeAndZone.jpg]

       Figure 2. World Tree Showing Zone
         _________________________________________________________________

    Tour

    Included with the World Builder is a sample project file based on the Stock
    world shipped with WolfMUD. To load it select World from the World Tree,
    right click and select Load as shown in Figure 1.

       [projectLoad.jpg]

       Figure 1. Loading a Project

       This  will  display  a  project  load dialog from which you can select
       different projects to be loaded into the Workbench. The sample project
       is  called  WolfMUDWorld.wmp.  Select  it and click the Load button as
       shown in Figure 2.

       [projectLoadDialog.jpg]

       Figure 2. Project Load Dialog

       You  will  now  see a progress indicator as the project is loaded, and
       then as the World Tree is rebuilt. See Figure 3.

       [loadProgress.jpg]

       [buildProgress.jpg]

       Figure 3. Load and Build progress Indicators

       When the project has loaded and the World Tree has been rebuilt expand
       the Zones by double clicking the tree entry or selecting the icon left
       of  the  entry.  Under  the  Zones  tree entry there should be 3 zones
       available.  If  you expand each zone you will see there are three more
       entries  available:  Locations, Mobiles and Objects as shown in Figure
       4.  Notice  under the zone "South of Zinara" the icons for Mobiles and
       Objects  look  different  and  have no "handles" next to them. This is
       because no mobiles or objects have been defined for this zone.

       [allZones.jpg]

       Figure 4. Zones Expanded

       You  will  notice  looking  at  the  tree that next to each entry is a
       letter  in  square  brackets. There are three possible values [C], [S]
       and [E] indicating the type of entry. See the Table for an explanation
       of each type.

       Tree Mnemonics

       [C] Multiple Category
              This  type  of  entry cannot be edited but unlimited additional
              entries  can  be made under this entry. For example you can add
              may creatures under the Mobiles entry.

       [S] Single Category
              This is similar to a [C] type entry but only a single entry can
              be made under it. For example when creating a mobile there is a
              Single  Category Entry for the mobiles body so you can only add
              one body per mobile.

       [E] Entity
              An  entity entry is the actual entry in the tree that holds the
              data  for  an  object  in  the  game.  Individual creatures and
              objects are examples.

       If  you  find the entry for the Newbie Zone and expand the entries for
       Mobiles  You will see a number of creatures that have been defined for
       this zone as shown in Figure 5.

       [newbieMobiles.jpg]

       Figure 5. Mobiles for the "Newbie Zone"

       For  any tree entry with a type of [E] you can right click and display
       a  popup  menu. From the World Tree find select the entity for An Ugly
       Imp.  Right  click  to  bring  up the popup menu and select Edit... as
       shown in Figure 6.

       [editUglyImp.jpg]

       Figure 6. Selecting an entry for editing

       A new frame will open showing the properties defined for the Ugly Imp.
       Tool  tips  are  available for each attribute and there is also a main
       help panel for all types available. See Figure 7 for an example.

       [uglyImpAttributes.jpg]

       Figure 7. Attributes for an Ugly Imp

       If you look back to the World Tree you will also see a number of items
       under  the  tree  entry for the Ugly Imp. These include the Imps body,
       Inventory  and Attributes. Figure 8 shows these elements. Each element
       with an [E] can be edited and if you look at the Pouch you will notice
       it is a container and actually contains something.

       [uglyImpAdditional.jpg]

       Figure 8. Additional Attributes of the Ugly Imp

       There  is  also  a find feature available which will look for any text
       that  has  been  entered. Select the World entry in the World Tree and
       right click to display the popup menu. From here select Find.... A new
       frame will open. In the field for Search Text enter the word water and
       the  click  the  search button. After a short pause any result will be
       shown.  Each  item  in  the result list can be double clicked and this
       will  position you to the entry in World Tree. Figure 9 shows the find
       dialog in action.

       [findDialog.jpg]

       Figure 9. Find Dialog in action
         _________________________________________________________________

    Tutorial

    An example nows follows that will show you how to:

         * Create a Zone
         * Create Locations
         * Create Mobiles
         * Create Objects

       The  zone  to  be  created  will be added to the zone South of Zinara.
       Figure  1  shows  a  map  of this zone with the new zone to be created
       shown in blue. It will be called The Cabbage Zone.

       [map.jpg]

       Figure 1. The Cabbage Zone (In blue).
         _________________________________________________________________

    Creating Zones and Locations

    From the World Tree select the entry for Zones, display the popup menu and
    select Add. A sub menu should popup where Zone can be selected. See Figure
    1.

       [addZone.jpg]

       Figure 1. Adding a new Zone

       Selecting this will open a properties dialog for the new zone details.
       Enter  the  details  as  shown  in  Figure  2 and then select the Save
       button.

       Note

       When creating a new zone you must fill in the Alias. This is what the
       generated files will be prefixed with.

       [cabbageZone.jpg]

       Figure 2. Properties for the Cabbage Zone

       There  will  now  be  a new zone listed in the World Tree; Our Cabbage
       Zone.  Select  and  expand  the  entries  under  it.  You  should  see
       Locations, Mobiles and Objects. Select Locations and display the popup
       menu.  The select Add, this will show a sub menu of different location
       types  you  can have. For now select the Basic Location type. Figure 3
       shows an example.

       [addLocation.jpg]

       Figure 3. Adding a Location

       This will now cause a new properties frame to be opened, this time for
       entering  the  details for a Basic Location. Enter the details as show
       in Figure 4.

       [cabbageLocation.jpg]

       Figure 4. Properties for a Basic Location

       Now  if  there are cabbages in the field the players should be able to
       interact with them, but we don't want them to take them. To do this we
       add  a  narrative  object to the location. Select the new location and
       expand  it  so the Narrative Objects category can be seen. Select this
       category  and  display the popup menu, select Add and from the type of
       narrative available select Narrative Object. See Figure 5.

       [addNarrativeObject.jpg]

       Figure 5. Adding a Narrative Object

       Again  we  get  a new dialog to enter detail for the Narrative Object.
       This  is  where  details  for  the cabbages can be entered as shown in
       Figure  6.  Now  a  player  may  type  'examine  cabbage'  or 'examine
       cabbages'  so  we  need  both aliases. To get the field for the second
       alias  select  the  first  field  and right click to display the popup
       menu, select add. A new field will now be added. If there is more than
       one field already a delete option will also be available.

       [cabbage.jpg]

       Figure 6. Properties for a Narrative Object

       So  there  is  now  a  field  with  cabbages we can examine. There are
       another  three  fields  to do each with cabbages, but we don't want to
       have  to  type  everything  in again. Select the location and from the
       popup  select  Copy. Display the popup again select Paste. Display the
       popup  twice  more  and  paste  each  time.  You  should now have four
       locations  in total. Notice that the narrative under the locations has
       also been copied for you. See Figure 7.

       [moreFields.jpg]

       Figure 7. Copied Locations and Narratives

       The three new locations and narrative are exact copies of the original
       so  you need to edit each of them. The information that needs changing
       is  the  location  index  and exits for the locations and the location
       index  for  the  narratives. Figure 8 shows the modified locations and
       Figure 9 shows the modified narratives.

       [fieldModified3001.jpg]

       [fieldModified3002.jpg]

       [fieldModified3003.jpg]

       Figure 8. Modified Locations

       [cabbagesModified3001.jpeg]

       [cabbagesModified3002.jpg]

       [cabbagesModified3003.jpg]

       Figure 9. Modified Narratives
         _________________________________________________________________

    Starting Locations

    Starting Locations in WolfMUD are a special type of Peaceful Location. They
    have all the properties of a Peaceful location, that is no combat is allowed
    providing a safe location. However starting locations also provide points of
    entry into the world for players. Creating a Starting Location and it's
    properties are exactly as for creating a Basic or Peaceful location.

    Starting locations provide a way to implement "home zones" for players. If a
    zone has at least one starting location defined then that zone becomes a
    "home zone". When a player creates a character (or uses an existing
    character without a "home zone" set) they may be asked to choose a "home
    zone". Figure 1 shows an example login.

    WolfMUD (C)1999,2000

            World   Created By
            Of      A.Rolfe (AKA Diddymus)
            Living
            Fantasy

    Please enter your characters name or the name for a new character.
    >Diddymus
    Please wait, checking for character...
    A character by that name cannot be found. Create a new Character? (Y/N)
    >y
    Please enter a password for your character.
    >password
    Please enter your password again for verification.
    >password
    What gender would you like your character to be:
            M - Male
            F - Female
    >m
    1st Character Created - Player Type is IMP.
    Please select where in the world you would like to start from:
            1. South of Zinara
            2. Zinara
    >

       Figure 1. Example Login

       If  there is only one "home zone" available this will be automatically
       selected  for  the  character  and  no option to choose will be shown.
       However  if  there are more "home zones" the player is asked to choose
       one.

       If a "home zone" has more than one starting location defined then each
       time  the  player  logs in one of them will be selected at random when
       the player enters the world.
         _________________________________________________________________

    Creating Objects

    Next we will add a prize cabbage a player is able to take from one of the
    fields (Location 3000). Find the tree entry for Objects under the Cabbage
    Zone and select it. Then display the popup menu and select Add a sub menu
    will be displayed showing all the different types of objects that can be
    created. Select Food from the sub menu. See Figure 1.

       [addFood.jpg]

       Figure 1. Adding a Food Object

       This will cause a new editor window to opened so the properties can be
       edited. Enter the properties as shown in figure 21 to create the prize
       cabbage.

       [prizeCabbage.jpg]

       Figure 2. Prize Cabbage Details
         _________________________________________________________________

    Creating Mobiles

    If we have fields of cabbages then maybe there should be some to tend them.
    For this we will create a Cabbage Farmer (Location 3003) to toil in the
    field. Find the tree entry for Mobiles under the Cabbage Zone and select it.
    Then display the popup menu and select Add this time a sub menu will be
    displayed showing all the different types of mobiles that can be created.
    Select Creature from the sub menu. See Figure 1.

       [addMobile.jpg]

       Figure 1. Adding a Mobile

       This  will  cause  a  new  editor  window to opened this time to enter
       details  for  the farmer. Enter the properties as shown in Figure 2 to
       create  the Cabbage Farmer. The text for the combat actions may look a
       bit  odd  due to special formatting. For information on how to compose
       these messages see the section on Combat Text.

       [farmerDetails.jpg]

       Figure 2. Cabbage Farmer Details

       Now  we have our cabbage farmer we need to flesh him out a bit and add
       items, a body and attributes. These are added to the categories listed
       under  the  entry for the farmer (Inventory, Body and Attributes). The
       body will be added first. Notice that the category for Body has a type
       of  [S]  next  to it. This means we can only add a single item to this
       category. Select Body, display the popup menu and select Add, from the
       sub menu select Body Parts. See Figure 3.

       [addBody.jpg]

       Figure 3. Adding a Body

       This  will  show a frame where the body parts can be entered. The body
       parts  a  mobile  has will effect what items can be worn/held/wielded.
       For  example  if a creature has no hands, for example a giant slug, it
       cannot use any item that requires hands to be used. Our cabbage farmer
       will  have  a  standard humanoid body as shown in Figure 4. Notice how
       easy  it  is  to  create  mobiles  with  a hand/arm/leg or even an ear
       missing.

       [bodyDetails.jpg]

       Figure 4. Body Details

       Next add the attribute details. Select the Attributes category for the
       farmer  and add one each of Base Damage, Base Damage Modifier and Base
       Hit Chance. The values for each are shown in Figure 5.

       [attributeDetails.jpg]

       Figure 5. Attribute Details

       Lastly  we  need  to add some items for our farmer. Figure 6 shows the
       items  in  the Farmer's inventory. He has clothing A Rough Shirt, Some
       Leather Trousers and A Pair of Leather Boots (Figure 8). He also has a
       Small  Sack  with some lunch in it; Some Bread and Some Cheese (Figure
       9).  Lastly he has a Hoe which can be wielded as a weapon should he be
       attacked (Figure 7).

       [farmerInventory.jpg]

       Figure 6. Cabbage Farmer's Inventory

       Each  of  these  items  can  be  added  in  the usual way by selecting
       Inventory  from the cabbage farmer and adding the different types. The
       exception  to this is the Small Sack. This has it's own inventory. You
       need  to  select  the  Small Sack and use Add to add the food into it.
       Figure  8, Figure 9 and Figure 7 show the attributes for the different
       items.  The text for the combat actions for the Hoe may look a bit odd
       due  to  special  formatting.  For information on how to compose these
       messages see the chapter called Combat Text.

       [hoe.jpg]

       Figure 7. Farmer's Hoe

       [shirt.jpg]

       [trousers.jpg]

       [boots.jpg]

       Figure 8. Farmer's Clothing

       [sack.jpg]

       [bread.jpg]

       [cheese.jpg]

       Figure 9. Farmer's Lunch
         _________________________________________________________________

    Non-Player Barriers

    Before we generate our zone we need to stop our farmer from wandering out of
    the fields. This is done using Non-player Barriers. We shall create one at
    the west exit of location 3000 and one at the west exit of location 3002.
    Find the Locations category for the Cabbage zone. For locations 3000 and
    3002 add a Non-Player Barrier. The properties for each are shown in Figure
    1.

       [barrierDetails.jpg]

       Figure 1. Non-Player Barrier Details
         _________________________________________________________________

    Linking Zones

    The last thing we need to do before our zone is ready is to link it to the
    existing zone South of Zinara at locations 2001 and 2002. To do this find
    the zone South of Zinara, and under it find the Locations entry. Under this
    look for locations '(2001) Worn road south of Zinara' and '(2002) Worn
    road'. The exits for each of these locations need to be modified and the
    descriptions changed to indicate the new Cabbage fields to the east of the
    road. Figure 1 shows the changes for each location.

       [SOZChanges2001.jpg]

       [SOZChanges2002.jpg]

       Figure 1. 'South of Zinara' Zone Changes
         _________________________________________________________________

    Generating Everything

    Now at last the Cabbage Zone is ready to be tried out, but first we need to
    generate the new zone. Select the entry World in the world tree, display the
    popup menu and select Generate. A small progress dialog will open while
    everything is being generated as shown in Figure 1. The yellow bars indicate
    the progress for a zone and are reset as each zone is generated. The blue
    bars show the overall zone progress and also any help entries.

       [generateDialog.jpg]

       Figure 1. The Generate progress Dialog

       Now  all that is left to do is start the server running and connect to
       it.  Exit  the  tavern  and  head  south out of town. If everything is
       working  properly  the  cabbage zone should be just to the east of the
       main road.

       Note If you can log on as an Implementer


       There are a few things you can do as an Implementer that make checking
       your new zone easier.

         * Use the command DUMP Z # this will list all loaded zones so you
           can check your zone is loaded.
         * Use the command GOTO O PRIZE will take you straight to the Prize
           Cabbage object.
         * Use the command GOTO L L3000 will take you straight to the first
           room in the Cabbage Zone.
         _________________________________________________________________

    Collaboration

    Now you have your new Cabbage Zone there is a chance (slim) that you may
    want to share your work with others. To allow collaboration between
    designers working on a world two features have been included. You can either
    export your zone, or provide just the generated files. When you export a
    zone to a *.wmx file (WolfMud Export) anyone you give the file to can import
    it into their World Tree, look through it and modify it. If you give them
    just the generated files they can only use them 'as is' and you will have to
    make any changes for them.
         _________________________________________________________________

    Exporting and Importing

    To export a zone select the zone to export, display the popup menu and
    select Export. A dialog will be displayed where you can specify the file
    name for the export. By default this file will be saved into the projects
    directory. You can now take a copy of the *.wmx file and give it to other
    designers to use. To import a *.wmx file select the Zones entry in the world
    tree. Then display the popup menu and select Import. This will display a
    dialog listing the files available for import. Select a file and the details
    will be incorporated into you current project.
         _________________________________________________________________

    Generated Files Only

    If you wish to keep control over the modifications made to your zone, or you
    don't want anyone to look at the zone details and spoil any 'surprises' you
    can do that as well. When a zone is initially created an alias MUST BE
    PROVIDED. This is the name used for the generated files. The generated files
    will be placed into the data directory. In the tutorial we gave the alias of
    CABBAGE to our zone. Therefore once we have generated our zone we should
    have a number of files prefixed CABBAGE. The exact files generated will
    depend on the details you create. Table 1 shows the generated file types.

       Table 1. Generated File Types
       *.zon

       Zone Header File

       This file should always be generated for all zones.
       *.loc

       Locations File

       This file contains details about all locations in the zone as well as
       narrative objects. It is only generated when there are locations.
       *.mob

       Mobile File

       This file contains all of the details for each of the mobiles in a
       zone. It is only generated when there are mobiles.
       *.tng

       Thing File

       This file contains details for everything else that can be created
       except help topics. It is only generated if needed.

       To  distribute  your  zone  this  way just provide copies of the files
       associated  with  your  zone.  To  use these type of files on your own
       server  just copy them into the data directory and they will be picked
       up automatically when the server is started.

       Note

       If the *.zon file is not present then NONE of the other files will be
       used either.
         _________________________________________________________________

    Combat Text

    Combat text in WolfMUD is a little tricky until you get used to it.
    Basically when a combat message is displayed it can be seen by one of three
    types of people: the attacker, the defender and anyone watching (Viewers).
    This means the same message cannot be sent to everyone. For example if you
    have the message:

    A Farmer hits out at you with a ham sized fist.

    This would look fine for the defender but not for the attacker or viewers.
    If you are watching and saw 'A Farmer hits out at you with a ham sized fist'
    you would think the farmer is attacking you. Likewise if you are attacking
    and saw it you would think 'but I'm not a farmer'.

    To get around this substitution values can be used to automatically put the
    right text in the right place for the person it is intended for. The
    substitution values take the form {number}. See Table 1 for a list of valid
    values.

       Table 1. Substitution Values
       Substitution                         Replaced By
                    Attacker's Viewpoint Defender's Viewpoint Viewer's Viewpoint
            {1}     HIM, HER or IT DB    YOU                  HIM, HER or IT DB
            {2}     Defender's Name + 'S YOUR                 Defender's Name + 'S
            {3}     Defender's Name      YOU                  Defender's Name
            {4}     YOUR                 HIS, HER or IT'S AB  HIS, HER or IT'S AB
            {5}     YOU                  HIM, HER or IT AB    HIM, HER or IT AB
            {6}     HIS, HER or IT'S DB  YOUR                 HIS, HER or IT'S DB
            {7}     YOU                  HE, SHE or IT AB     HE, SHE or IT AB
                       DB = Defender Based, AB = Attacker Based

       Another problem is that of tenses. For example you hit and he hits. To
       get  around  this  you  can use the special form [text/text]. The text
       before  the  slash is only seen by the attacker and the text after the
       slash is only seen by defenders and viewers.
         _________________________________________________________________

    Examples

       Situation: A Farmer fighting Diddymus
       {0} hit[/s] out at {3} with a ham sized fist.
       Attacker sees: You hit out at Diddymus with a ham sized fist.
       Defender sees: A Farmer hits out at You with a ham sized fist.
       Viewers see: You see A Farmer hits out at Diddymus with a ham sized
       fist.

       Situation: A City Guard (Female) fighting A Taunting Imp (It)
       {3} make[s/] a grab for {0} but {7} dart[/s] aside and swipe[/s] at
       {1}.
       Attacker sees: A Taunting Imp makes a grab for You but You dart aside
       and swipe at It.
       Defender sees: You make a grab for A City Guard but She darts aside
       and swipes at You.
       Viewers see: You see A Taunting Imp make a grab for A City Guard but
       She darts aside and swipes at It.

       To  make  it  easier  to  compose  these  messages  a small utility is
       available.  In  the  directory  where  the  server  and  World Builder
       software    is    installed    there   should   be   a   file   called
       testActionText.html.   This   can   be  run  in  a  browser  or  using
       appletViewer from the JDK. Figure 1 shows the utility.

       [messageUtility.jpg]

       Figure 1. Message Utility

       The  utility  assumes  a  City  Guard (female) fighting a Taunting Imp
       (It).  Enter  you message in the top half and select the button CHECK.
       The  message  will be formatted for the attacker [A], defender [D] and
       viewer [V]. The resulting messages will then be displayed in the lower
       half for you to check. Figure 2 shows an example.

       [messageUtilityExample.jpg]

       Figure 2. Message Utility Example

       When  you  are  happy  with your message it can then be cut and pasted
       into the World Builder.
         _________________________________________________________________

    Compiling from Source

    Compiling WolfMUD from source can be very easy even if you are only using
    the standard Java Development Kit can not a fancy IDE. However just
    compiling the sources using javac on the main wolfServer.javawill not work
    and you will find only about a third of the sources are compiled.

    You might ask why is this? Compiling the base wolfServer.java file causes it
    and also any classes it depends on to be compiled. However WolfMUD does not
    directly reference all of it's classes, it uses reflection quite a bit. This
    means the compiler cannot know about the other classes as they are loaded at
    runtime.

    The easiest way to get around this is to quickly check and compile all of
    the source files automatically. However you may find you need a JDK version
    1.3.0 or higher to use the javac @<filename> method of compiling as other
    versions of the JDK have problems especially under Windows.
         _________________________________________________________________

    Compiling under Windows

    These commands will build a list of all of the java files which can then be
    used as input into the javac command to compile everything. The commands can
    either be entered again and again or put into a batch file. It is assumed
    that WolfMUD has been installed into c:\wolfmud and the sources into
    c:\wolfmud\sources.

    cd c:\wolfmud\sources
    dir /B /S *.java file.list
    javac -d c:\wolfmud @file.list
         _________________________________________________________________

    Compiling under Unix/Linux

    These commands will build a list of all of the java files which can then be
    used as input into the javac command to compile everything. The commands can
    either be entered again and again or put into a script file. It is assumed
    that WolfMUD has been installed into ~/wolfmud and the sources into
    ~/wolfmud/sources.

    cd ~/wolfmud/sources
    find . -name '*.java' > file.list
    javac -d ~/wolfmud @file.list
         _________________________________________________________________

    Text Dump of the Cabbage Zone

    Figure 1 show all of the details for the Cabbage Zone. It was produced using
    the Dump To Text menu option on the Cabbage Zone and may be of help if some
    of the images in the tutorial are difficult to read.

            The Cabbage Zone -> Zone ====================================

      Name: The Cabbage Zone
      Description: Example Zone for Builder Tutorial.
      Alias +: CABBAGE
      Start Range: 3000
      End Range: 4000

    (3000) A cabbage field. -> Basic Location ===================

        Location Number: 3000
        Title: A cabbage field.
        Description: You are in a muddy field full of cabbages.
        Alias +: FIELD
        Exits: 0, 0, 3001, 3003, 3002, 0, 2001, 0, 0, 0

    ----- Some cabbages -> Narrative Object ---------------------

          Title: Some cabbages
          Description: These are your average cabbage, if some what
                                            on the small size. Available in a range
     of greens,
                                            yellows and browns.
          Alias +: CABBAGE, CABBAGES
          Location: 3000

    ----- Non Player Barrier ------------------------------------

          Location Index: 3000
          Direction Blocked: 16
          Block Alias +: FARMER
          Pass Alias +:

    (3001) A cabbage field. -> Basic Location ===================

        Location Number: 3001
        Title: A cabbage field.
        Description: You are in a muddy field full of cabbages.
        Alias +: FIELD
        Exits: 0, 0, 0, 0, 3003, 3002, 3000, 0, 0, 0

    ----- Some cabbages -> Narrative Object ---------------------

          Title: Some cabbages
          Description: These are your average cabbage, if some what
                                            on the small size. Available in a range
     of greens,
                                            yellows and browns.
          Alias +: CABBAGE, CABBAGES
          Location: 3001

    (3002) A cabbage field. -> Basic Location ===================

        Location Number: 3002
        Title: A cabbage field.
        Description: You are in a muddy field full of cabbages.
        Alias +: FIELD
        Exits: 3000, 3001, 3003, 0, 0, 0, 2002, 0, 0, 0

    ----- Some cabbages -> Narrative Object ---------------------

          Title: Some cabbages
          Description: These are your average cabbage, if some what
                                            on the small size. Available in a range
     of greens,
                                            yellows and browns.
          Alias +: CABBAGE, CABBAGES
          Location: 3002

    ----- Non Player Barrier ------------------------------------

          Location Index: 3002
          Direction Blocked: 16
          Block Alias +: FARMER
          Pass Alias +:

    (3003) A cabbage field. -> Basic Location ===================

        Location Number: 3003
        Title: A cabbage field.
        Description: You are in a muddy field full of cabbages.
        Alias +: FIELD
        Exits: 3001, 0, 0, 0, 0, 0, 3002, 3000, 0, 0

    ----- Some cabbages -> Narrative Object ---------------------

          Title: Some cabbages
          Description: These are your average cabbage, if some what
                                            on the small size. Available in a range
     of greens,
                                            yellows and browns.
          Alias +: CABBAGE, CABBAGES
          Location: 3003

    (3003) A Cabbage Farmer -> Creature =========================

        Name: A Cabbage Farmer
        Description: This is one of the local town's people whos
                                    job is to grow and tend the cabbages for the to
    wn.
        Alias +: FARMER, MAN
        Enter Message: A Farmer walks in.
        Exit Message: A Farmer wolks off.
        Actions +: The Farmer tends to the cabbages.,
                                                             The Farmer starts to h
    oe the ground.,
                                                             The Farmer looks aroun
    d the field.,
                                                             The Farmer rests again
    st his hoe.
        Location: 3003
        Reset Frequency: 60
        Health: 30
        Combat frequency: 0
        Combat Actions +: {0} hit[/s] {3} with a ham sized fist.,

            {0} catch[/es] {3} with a stunning blow.,

            {0} lash[/es] out at {3} hitting hard.
        Aggressiveness: 0
        Money: 0
        Gender: 0
        Carry Encumbrance: 1000
        Encumbrance: 1500
        Friends +:
        Enemies +:

    ----- (0) A Rough Shirt -> Worn Object ----------------------

          Title: A Rough Shirt
          Description: This is a rather shabby, rough, long sleeved
                                            cotton shirt.
          Alias +: SHIRT, ROUGH
          Reset Message:
          Location: 0
          Reset Frequency: 0
          Value: 10
          Reset on Pickup: false
          Encumbrance: 10
          Required Body Parts: 5, 6, 7, 7, 8, 8, 4

    ----- (0) Some Leather Trousers -> Worn Object --------------

          Title: Some Leather Trousers
          Description: This is a pair of soft leather trousers, a
                                            bit worn but serviceable.
          Alias +: TROUSERS, LEATHER
          Reset Message:
          Location: 0
          Reset Frequency: 0
          Value: 15
          Reset on Pickup: false
          Encumbrance: 15
          Required Body Parts: 11, 12, 12, 13, 13

    ----- (0) A Pair of Leather Boots -> Worn Object ------------

          Title: A Pair of Leather Boots
          Description: This is a pair of leather boots, they have
                                            seen better days and one has a hole in
    the bottom.
                                            Better than bear feet though
          Alias +: BOOTS, LEATHER, PAIR
          Reset Message:
          Location: 0
          Reset Frequency: 0
          Value: 15
          Reset on Pickup: false
          Encumbrance: 10
          Required Body Parts: 15, 15, 14, 14

    ----- (0) A small Sack -> Container -------------------------

          Title: A small Sack
          Description: This is a small cloth sack.
          Alias +: SACK, CLOTH
          Reset Message:
          Location: 0
          Reset Frequency: 0
          Value: 5
          Reset on Pickup: false
          Encumbrance: 5
          Maximum Capacity: 20

    ------- (0) Some Bread -> Food ------------------------------

            Title: Some Bread
            Description: This is a chunk of fresh bread. Just the
                                                    thing to fill an empty stomach.
            Alias +: BREAD
            Reset Message:
            Location: 0
            Reset Frequency: 0
            Value: 10
            Reset on Pickup: false
            Encumbrance: 10
            Hour Value: 12

    ------- (0) Some Cheese -> Food -----------------------------

            Title: Some Cheese
            Description: This is a piece of yellow cheese, except
                                                    for the odd spot of green that
    is.
            Alias +: CHEESE
            Reset Message:
            Location: 0
            Reset Frequency: 0
            Value: 5
            Reset on Pickup: false
            Encumbrance: 5
            Hour Value: 4

    ----- (0) A Hoe -> Wielded Weapon ---------------------------

          Title: A Hoe
          Description: This is a regular hoe commonly used by pesants
                                            toiling in the fields. It is a slendar
    wooden pole
                                            about five foot in length and has a sma
    ll iron blade
                                            at one end.
          Alias +: HOE
          Reset Message:
          Location: 0
          Reset Frequency: 0
          Value: 40
          Reset on Pickup: false
          Encumbrance: 70
          Required Body Parts: 10, 10
          Fixed Damage: 2
          Random Damage: 2
          Combat Actions +: {0} swing[/s] a hoe at {3}.,

                    {0} lunge[/s] at {3} with a hoe hitting {1},

                    {0} jab[/s] at {3} with {4} hoe.

    ----- Body Parts --------------------------------------------

          Body Parts: 0, 1, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 8, 9, 9,
                                            10, 10, 11, 12, 12, 13, 13, 14, 14, 15,
     15, 19, 19,
                                            19, 19, 19, 19, 19, 19, 20, 20

    ----- Base Damage -------------------------------------------

          Natural Fixed Damage: 2

    ----- Base Damage Modifier ----------------------------------

          Natural Random Damage: 2

    ----- Base Hit Chance ---------------------------------------

          Natural Hit Chance: 20

       Figure 1. Dump to Text for Cabbage Zone
         _________________________________________________________________

    License Agreement

    Last Updated: 11^th November 2002

                      WolfMUD is an original work:
       Copyright ?1999-2003 Andrew "Diddymus" Rolfe, WolfMUD.org
                                 email:
                          Diddymus@WolfMUD.org
                     Diddymus@CodeCrafterStudio.com

       WolfMUD  is  licensed  software. It is not Public Domain, Shareware or
       anything  similar.  This file contains the terms and conditions of the
       WolfMUD  License  Agreement. This Agreement grants you a non-exclusive
       license  to  use  the  software  as outlined below. If you wish to use
       WolfMUD  in any way, or use any of its source code, you must read this
       license and are legally bound to comply with it.

       Use  of  the  WolfMUD code in any capacity implies that you have read,
       understood,  and  agreed to abide by the terms and conditions set down
       by  this  license.  If  you  use  WolfMUD  without  complying with the
       license, it is a breach of the law.

       You  must  not  use  WolfMUD  to make money in any way or be otherwise
       compensated.  WolfMUD  was  developed  in people's uncompensated spare
       time  and  was  given  away free of charge, and you must not use it to
       make  money.  WolfMUD  must not be used in any way to accept or demand
       fees, donations, or other compensation of any kind.

       Examples include, but are not limited to the following:

         * You  must  NOT  require players to pay a fee or donation for using
           WolfMUD.
         * You  must  NOT  accept bribes in any form for levels, equipment or
           anything else that have not been aquired through hard play.
         * You must NOT accept a fee or donation for the running of a WolfMUD
           server or for passing on the cost of service providers.
         * You  cannot  sell,  distribute  or  exchange  WolfMUD for a fee or
           donation. It must be free to any at all times.

       You  must  give  credit  to  the  authors  of WolfMUD. It is a project
       created  in  spare  time  for  no compensation and is given away at no
       charge.  Therefore  the only recognition the authors get is their name
       in  the  credits  and source code. If this is removed and you claim to
       have  written  the  code yourself it shows you have no respect for the
       time and effort involved in creating software.

       The  following  MUST  be  followed  if  you  wish to use or modify the
       WolfMUD codebase:

         * This  license  must  be  distributed  'AS  IS'  with all copies or
           portions  of  WolfMUD that you distribute, if any, including works
           derived from WolfMUD.
         * You  MUST NOT remove any copyright notice or authors name from the
           source code.
         * The   text   for  the  CREDITS  command  must  remain  intact  and
           unmodified. The only exception is that you may add ADDITIONAL text
           if you make modifications.
         * The  initial  text  seen  by players when they connect must remain
           intact  and  unmodified.  The  only  exception is that you may add
           ADDITIONAL text if you make modifications.
         * The   text   for  the  WolfMUD  command  must  remain  intact  and
           unmodified. There are no exceptions to this requirement.
         * WolfMUD  has  been  written  in  100%  Pure  Java(TM),  making  it
           available  on  a  vast number of platforms. WolfMUD MUST stay 100%
           Pure Java(TM). Modifications are NOT allowed to tie WolfMUD to any
           one specific Platform or Operating System. [5]
         * If  you  make modification to the source code it should be clearly
           documented  as  to  the  modifications  made  and  the date of the
           modification.

       Permission is given to use, modify and redistribute all WolfMUD source
       code and documentation as long as such use does not violate any of the
       rules  set  down  by  this license. If you cannot abide by any part of
       this License Agreement then DO NOT USE WolfMUD.

       If  you  are  running  a  server  based on WolfMUD, please contact the
       Authors at the top of this license agreement with some details.

       If  you  write an article about WolfMUD, please contact the Authors at
       the  top  of  this  license  agreement  with  some  details  and  gain
       permission before publication.

       If  you  find  any bugs, wish to make comemnts etc. please contact the
       Authors at the top of this license agreement.

       DISCLAIMER

       THE  CREATORS  OF  WOLFMUD MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT
       THE  SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING
       BUT  NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
       FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. THE CREATORS OF WOLFMUD
       SHALL  NOT  BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT
       OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.

       -- Andrew 'Diddymus' Rolfe

       Trademarks:

       Java  and  all  Java-based  trademarks  and  logos  are  trademarks or
       registered  trademarks  of  Sun  Microsystems, Inc. in the U.S. and/or
       other countries.
         _________________________________________________________________

    Colophon

    This document was produced 100% on a Linux system running Kernel versions
    2.4.18 and 2.4.19.

    The source of this document was written using DocBook DSSSL version 1.76-1
    and DocBook DTDs version 1.0-8 covering DocBook 4.1.2. The DocBook utils
    version used was 0.6.9-25 with jw version 1.1. The parser was OpenJade
    version 1.3.1-4.

    Previews of the document were created in PostScript format using docbook2ps.

    Final document production was done using docbook2dvi and running the DVI
    files through dvipdfm version 0.13.2c for the PDF document. For the text
    version docbook2html was used and the output run through Lynx version
    2.8.4dev.16.

    The document SGML source was edited using the VIM editor version 6.0z ALPHA.

    Screenshots were taken using GIMP version 1.2.1. Diagrams were produced
    using Dia version 0.88.1.

    The WolfMUD Builder was run using the Sun JDK version 1.3.1-b24 for the
    purpopses of the screenshots.The window manager used was FVWM2 version
    2.2.4.

    The document was previewed using gv 3.5.8. Acrobat Reader 4.0 and 5.0.5 were
    used to preview final document versions.

    Document and Image version control was done with CVS version 1.11.

      Notes

       [1]

       This is on top of the memory taken to run the JVM itself which depends
       on the JVM being used.
       [2]

       For details of the Java Runtime Environment (JRE) and Java Development
       Kit (JDK) see the JavaSoft web site at http://www.javasoft.com/j2se or
       the IBM web site at http://www.ibm.com/java/jdk/ where a number of
       platforms are supported.
       [3]

       The Apache web site can be found at www.apache.org. As of Build 240
       WolfMUD now has it's own integrated MiniWeb Server.
       [4]

       If you are using Java 2 you should have Swing already and not need to
       download anything extra. If you are using Java 1.1.x you will need to
       download a 1.1.x version of Swing from
       http://www.javasoft.com/products/jfc/download.html
       [5]

       Platform specifc modifications such as scripts for administration and
       native code for performance improvements should be made available as
       an OPTIONAL companion distribution.

  • 相关阅读:
    u-boot中网口处理--硬件部分
    移动开发
    多台Mac电脑使用一个apple开发者账号
    AppStore苹果应用支付开发(In App Purchase)翻译
    IOS7.1-7.1.1越狱后无法读取越狱文件的解决办法
    【iOS越狱开发】如何将应用打包成.ipa文件
    Xcode 证书生成、设置、应用
    iOS 证书与签名 解惑详解
    打包iOS应用程序
    什么是KBEngine
  • 原文地址:https://www.cnblogs.com/bluespot/p/909403.html
Copyright © 2011-2022 走看看