Creating a vehicle is relatively easy to do. However, it takes some special commands and some setup work. This document will refer to DBREFs frequently. A DBREF is the "database reference number" of an object or room on the MUCK. When you create an object or room, you will be provided with a DBREF which will be some number that starts with a '#' mark, such as: #12345 When the document asks you to make note of a DBREF, or to type in a DBREF, that means the entire number including the '#' mark. There are no letters in DBREFs. ====== 1. Create Object ====== The first step is to create your vehicle object. This is done with the following command: @create Vehicle Name When it is created, it will tell you the DBREF of the newly created object. Make a note of that DBREF; we will call that your "Vehicle DBREF". Now, type the following commands to finish setting up the vehicle: @set Vehicle Name=v @lock Vehicle Name=me drop Vehicle Name This turns your Vehicle object into a vehicle, then locks it so that only you can pick it up, and finally puts it in the room you are in. You should also set a description, thusly: lsedit Vehicle Name=desc ''Enter the description you want to set, using as many lines as you like.'' ''Use .end on a line by itself to exit the editor, thusly:'' .end @desc Vehicle Name={list:desc} ====== 2. Create Interior ====== Next, you need an interior room for your ship. Your ship may have many interior rooms, but you must start with one. The first room should be the entry point to your ship; for example, the main deck of a sailboat. Create it thusly: @dig Interior Room Name Make a note of the DBREF; we will refer to this DBREF as the "Entry Room DBREF". We'll get to describing this room in a minute. == 3. Create an Exit from your Vehicle to your Room == Now, we're going to create an exit that will take you onto your ship. First, think of what command you want to type to enter your vehicle; we recommend 'board vehicle name' so that the command is unique. Remember, there may be multiple vehicles in the same room, and a generic command like 'board' might be ambiguous. Create it thusly: @act board vehicle name=Vehicle DBREF For instance, if your Vehicle DBREF is #12345: @act board vehicle name=#12345 Then, set the messages on it. These messages let people know when someone is entering or leaving your ship: @succ board vehicle name=Message to person boarding the vehicle. @osucc board vehicle name=message to the room, with the boarder's name automatically put in front. @odrop board vehicle name=message to the destination room, with boarder's name automatically in front. Here are examples: @succ board vehicle name=You board the vehicle. @osucc board vehicle name=boards the Vehicle Name. @odrop board vehicle name=arrives from outside the vehicle. Then you need to link the action to the vehicle's interior room: @link board vehicle name=Entry Room DBREF For instance, if your Vehicle DBREF is #12345: @link board vehicle name=#12345 ====== 4. Board Your Vehicle ====== This one's easy! Type 'board vehicle name' (or whatever command you made) and you should now be on board your ship. Awesome! Now there's a few things you need to do to make this thing work. ====== 5. Create Your Vehicle Exit ====== Typically, the vehicle exit is named 'Out' or 'Leave' just to be simple. Please note that the vehicle exit does NOT show up on the 'obvious exits' list, and so you will need to make a note in your room description about how to leave the ship. We'll get to describing the room in a minute! Type: @open out;leave=$vehicle/exit This will make both 'out' and 'leave' work as a way to get off your ship. The ';' mark makes aliases so that you can have more than one work. Then simply type the exit name and the program will ask you to set it up: out It will ask for your Vehicle DBREF, which you should have taken note of. Once set up, make sure to set your @succ/@osucc/@odrop messages for this exit just like you did in step 3. @succ out=You leave the ship. @osucc out=leaves the ship. @odrop out=arrives from the Vehicle Name. Now you can both enter and leave your ship! ====== 6. Build the Inside of your Ship ====== Type: editroom Note: 'editroom here' does not work, as it will demand a room dbref. To go into the room editor. You can now use the room editor to set the description of the room, turn on obvious exits, and the like. Remember to include the command to leave your ship in the room description. If your vehicle is going to have multiple rooms inside it, it is recommended you create a "Parent Room" for your ship. A "Parent Room" is a way to group a set of rooms into a zone, and enables certain features; for instance, you will be able to put your ship on the 'WZ' list if you want. And you'll be able to have multiple rooms be able to see what's going on outside your ship. To create a parent room, just use the 'P' menu option in the room editor and it will be automatically set up for you. You can use the room editor to create additional rooms and to link them all together. It's also recommended that your vehicle's parent room have its own parent set to the global Vehicle Environment room, which is found at #850RA. This will enable your vehicle to count under Occupied Vessels in the WZ list. Optionally you can also set a sub-zone in WZ for your specific vehicle. For example, if your vehicle's parent room is #XYZ, the commands would look like this: @tel #XYZ=#850 @set #XYZ=_zone:Vehicle Name The first command is highly recommend, the second is purely optional. ====== 7. Set up Vehicle Tell ====== Vehicle Tell is a program that broadcasts whatever is going on outside your ship, into your ship, so that you can see it. Vehicle tell can actually be set up to broadcast to multiple rooms if you have several different places on your ship that can see out around it; these instructions will just handle the simple case, and will direct you to read the full instructions for the more complicated setup if you want. You must first have a room that you wish to receive outside messages in. This would typically be a control room. It is possible, with a more advanced setup, to send outside messages to more than one room; let's make the simple case work first. Make a note of the DBREF of the room you want to send messages to; we will call this Control Room DBREF First, type: @set Vehicle DBREF=_listen/tell:$vehicle/tell @set Vehicle DBREF=_vehicle/tell:Control Room DBREF @set Control Room DBREF=_vehicle/power:on So, if #12345 is your Vehicle DBREF and #1212 is your Control room, this would look like: @set #12345=_listen/tell:$vehicle/tell @set #12345=_vehicle/tell:#1212 @set #1212=_vehicle/power:on You can have a friend make noise outside your ship to test it, or move on to step 8 to test it yourself. For full instructions, you can type: @list $vehicle/tell It will show you all the things the Vehicle Tell program is capable of, including how to use your parent room to send messages to multiple rooms. ====== 8. Set Up Control Room ====== There needs to be a room on your ship from which you control or 'drive' your vehicle. This can be any room on your ship; it can even be the same as your entry/exit room if you're making a simple vehicle like a rowboat. Go into the room you want to use as the control room, and type: @open drive=$vehicle/drive This will make 'drive' be the command you use to move your boat. Set it up by typing: drive You will need to provide your Vehicle DBREF once more. It will also ask you if you want to use a prefix; say NO to the prefix question. That is an advanced feature we won't cover here, but you can experiment with it yourself if you wish. Then type: drive look Assuming you have set up your vehicle tell correctly, you should see the area around your vehicle. Ta-da, that's it!