The Page of Index
Welcome to the Book of Flags, a simple explanation of each Flag available
on the MUCK and what they mean. The same information can be gotten through
typing 'help [name of flag]', but this attempts to be more precise/verbose.
Read Ginger's Book of Idiosyncrasies for
information on interpreting my examples if you need it. The pages you
can view are:
- The Page of Explanation
- The Page of "S" (sticky, silent, setuid)
- The Page of "H" (haven, harduid)
- The Page of "J" (jump_ok)
- The Page of "D" (dark, debug)
- The Page of "C" (chown_ok)
- The Page of "Z" (zombie)
- The Page of "X" (xforcible)
- The Page of "W" (wizard) and "K" (kill_ok)
- The Page of "L" (link_ok) and "A" (abode, autostart)
- The Page of "V" (vehicle)
- The Page of "B" (builder)
- The Page of "Type" Flags ("P", "R", "M1,2,3", "E", "F")
|
Surrounding you in the MUCK are objects of all types: rooms,
players, things, and exits. Each type of object has special properties
that affect what it does. These properties can be further affected by
things called flags, which can be @set on an object by '@set
<object>=<flag>'. ('help @set')
You can often abbreviate the name of the flag to just its first letter:
@set me=link_ok = @set me=l
@set me=silent = @set me=s
[NOTE: 'help flags' will list all the flags' names.]
Flags are normally listed in the database number ('help number')
of an object right after its name. (For example: Falstaff(#80PBJ): the
database number is 80, and the flags set are P (player), B (builder) and
J (jump_ok).)
This flag is settable by players, but it isn't generally useful
for beginners. It has several different effects, depending on what type
of object ('help types') you set it on:
- THING
- It goes to its home ('help homes') when you drop it. This is
helpful in the creation of food items, or things you want to disappear if
you put them down.
- ROOM
- Delays a drop-to ('help drop-to') until the last person leaves the
room. A drop-to sends any items dropped in the room to a specified
location, and is set with the @link command ('help @link').
- EXIT
- If an exit is linked to a thing, and is attached to another thing,
the thing the exit is attached to will go home when the exit is triggered
(bringing the thing it is linked to into the room). Setting the exit S
(sticky) prevents this (allows you to have an action on a fishing pole
object that brings a 'fish' object into the room, and keeps the fishing
pole in the room afterwards, rather than sending it home). For a better
explanation of how to make exits drag objects around, see the Book of Exits, on special tricks.
- PLAYER
- Will stop you seeing the database numbers after the names
of the objects you own. Only *you* can see these numbers ('help number')
unless the object is set link_ok or chown_ok.
- PROGRAM
- Makes the program run with the permissions of the program
owner, and not of just the user. (Can help programmers evade control
protocol snags; type 'help control'.)
This flag only has meaning when set on programs, rooms, or players.
- PLAYER
- If you type '@set me=h' (thus setting the HAVEN flag on yourself),
people cannot use the 'page' program to talk to you remotely (type 'page
#help' for help with the page program). This flag does not affect the
page #mail option.
- ROOM
- Disables killing ('help kill') in the room where it is set.
- PROGRAM
- This is like the "S" flag (setuid), except that it makes a
program run with the permissions of the owner of the trigger (whoever
owns the exit linked to the program) rather than the permissions of the
person that activated the exit. When you put both the H flag and the S
flag on a program, and the program is owned by a wizard, the program
will run with the permissions of the calling program. If the caller was
not a program or the program is not owned by a wizard, then the program
will run with SETUID permissions. (This has almost *NO* relevance to
anything a new player will do anytime soon. :)
[NOTE: To make an action/exit whose messages use MPI take an argument, the
exit MUST be set Haven. (see 'mpi {&arg}')]
The Jump_ok flag (J) is just a helpful little flag that you set on
objects, people, and occasionally exits in order to make movement around
the MUCK easier. Unprivileged programs (programs with low M levels (see
'help Mucker'), or programs not owned by you, personally), will have
problems moving objects around unless either the player trying to do the
moving owns everything involved or everything involved is set jump_ok.
On some systems, you cannot use an exit to leave a room unless the exit is
either directly attached to that room or the room is set jump_ok.
(FurToonia does not use this setup currently.)
Basically, the jump_ok flag is generally helpful, and, at its worst,
can't hurt. Set it on objects you want to throw into other
rooms or have walking around the MUCK (Zombie objects; see 'help zombie'
or 'tidbits'), and set it on yourself. ('@set me=j')
[NOTE: You cannot use an action/exit that is linked to another player unless
that other player is set jump_ok.]
The "D" flag (dark, debug) can only be set on a player by a wizard.
If set on a ROOM: When people besides the owner look into a room set 'dark',
they can only see things they own. (Under the Base of the Tree is set dark.)
If a THING or a PLAYER is set dark, 'look' does not list them in a room's
'Contents:' listing.
If an EXIT is set dark, the '<name> has arrived.' and '<name>
has left.'
messages that usually display when the exit is used will not appear. (Can be
used to appear "silently" if the exit has no @osucc or @odrop. (see 'help
messages'.)
The "dark" flag on a PROGRAM is called "debug", and a running stack trace (log)
is printed out to anyone who uses the program for each instruction executed.
Players can set rooms and objects they own dark, but cannot drop dark objects
in rooms they don't own. Zombie objects set dark will not function--so
that people can't drop invisible listening objects in others' rooms and
listen in.
The "C" flag affects ownership of the object it is set on by allowing
other players to '@chown' ('help @chown') the object and thus take control of
it. Setting the object "not c" ('@set <object>=!c') will remove the
flag
and thus prevent others from stealing your possessions. Anything set C
is takeable by anyone. Do not leave anything you own
set chown_ok unless you plan to give it to someone else.
When someone @chowns one of your objects, you lose control and ownership
of that object *forever*, unless you can get it back and @chown it. The
command @chown stands for "CHange OWNership", and that's exactly what it
means.
[A NOTE: Unlinked exits ('help types', 'help @link', 'help @open'), or exits
that are not @linked to something, can also be stolen, whether or
not they are set chown_ok. It is possible to steal such exits, and it
has been done before. Make sure to @link any false exits you make ('help
bogus') to $nothing ('@link <exit>=$nothing') to prevent them being
stolen. (If an exit is linked to $nothing and is triggered, the @succ
and @osucc messages will show. If you want to use the @fail and @ofail
messages, type '@lock <exit>=me&!me'.)]
The "Z" or "zombie" flag is used to create objects that function like
players, moving here and there around the MUCK as though they were alive.
(see 'tidbits' #4, Making a Zombie, and/or 'help z') The objects are moved
around by the @force command ('help @force'). Zombie objects behave like a
separate player, returning to their owners descriptions and poses and says from
the rooms they are in. You can @force objects that don't have the Z flag set,
but only objects with the Z flag will return information to their owners. A
zombie can't go anywhere it's owner cannot, or enter rooms or use exits that
are set Z.
(In order to be affected by the @force command, an object must be set
"X"
(xforcible). It's also good to '@flock [zombie object]=me' to prevent
others @forcing your zombie around. There is no online help for these com-
mands; see the appropriate page of this book or
'tidbits' section #4.)
[NOTE: Only players who do not have a Zombie bit set can use
zombies or @force things. Only a wizard may set or clear a player's
Zombie bit/flag.]
If a PROGRAM is set Z, when you run it it drops you into the MUF debugger,
letting you go through the program step-by-step and chew through any bugs.
(Different from the "Dark" flag ('help dark').) Help is available in the
debugger, via the 'help' command.
The Xforcible, or "X", flag affects objects such as zombie objects
that
are to be used with the @force command ('help @force', 'help z', and
'tidbits', section #4). '@set <object>=x' allows the object to be
@forced around the MUCK. This flag must be used in conjunction with the
'@flock' command, which is used just like '@lock' ('help @lock') to
restrict who is able to @force the object. Typing '@flock <object<=me'
will allow only you to @force your zombie object to do things. If no
@flock is set, the server assumes that no-one can @force the object.
Since this flag, and the @flock command, are new inventions, online help
has yet to be added for them. Information can be found by typing 'info
changesfb5.28', or, again, under the 'tidbits' command.
[NOTE: The @flock command's syntax is the same as that of @lock. Simply
'@flock <object>=me' to make the object accept your @forcing. You can
@flock
the forcing of an object to other players, specific object "keys",
and proper- ties, just like @lock. (see 'help @lock')]
WIZARD: The "wizard"; flag is only meaningful for
players
and programs. It affects permissions, mostly. A player set Wizard is a
wizard, unkillable, able to manipulate anything in the database and
subject to fewer restrictions than mortals. Programs set Wizard can set
and unset properties on players, and operate as though they had no
restrictions on permissions.
Only God (#1; on FurToonia this is MamaKhat) can set or unset the Wizard
flags of players.
KILL_OK: This flag allows a kill to be made, provided both players
involved are set kill_ok. A "kill" ('help kill') sends the player
killed and his/her possessions to their homes. The syntax is 'kill
<player>[=(cost)]'; the cost being a number of pennies between 1 and
100. The probability of the kill being a success equals the number of
pennies in the cost; using 100 pennies always works except against
Wizards, who cannot be killed.
LINK_OK: If a room is set Link_ok ('@set here=l'), anyone can link
exits to it. If a player is set Link_ok *AND* Jump_ok, anyone may link
an exit directly to that player, so that using the exit allows you to pop
out in whatever room that player is currently in. A program must be set
Link_ok to be called by other programs or used by the general public.
ABODE: This is similar to Link_ok. If a room is set Above,
players can set their homes there ('help homes') by typing '@link
me=here' ('help @link'), and can set the homes of objects there as well.
On a PROGRAM, "abode" means "autostart", and means that
when the game is first
started up, the program will automatically be loaded into memory and started
up (like in the "startup" program group in Windows).
The "V" or "vehicle" flag is only really useful when
set on things (as
opposed to players, exits, rooms, etc.). What it does is makes the thing it's
set on into a vehicle--something you can enter and exit, like a car. You can
only enter a vehicle from the same room that it's in, by using an exit both
attached and linked to the vehicle:
@act getin=<vehicle> (opens an exit attached to vehicle object)
@link getin=<vehicle> (links the exit to the vehicle object)
[see 'help @open'; 'help @link']
There are several ways to customise your vehicle once you've put it
together, with such programs as #19 (DriveTo2.muf) and Window.muf
(#692). (If you don't know how to use @view or @list yet, try typing
'@view' for its syntax or 'help @list', or see "How To Deal With Incomprehensible
Programs", in Ginger's Book of Idiosyncrasies.)
NOTES: Actually creating a working vehicle is a many-step process, and
if you're not familiar with building and other MUCK processes, it's not a good
first project. More obtuse help on the "V" flag is available by
typing
'help v', or perhaps there will someday be written a reference on the subject.
There are many helpstaff, also, online who will be glad to help you.
The process of creating the rooms you're standing in, the objects you
carry and the exits you carry them through is called building. Only players
set with the "B" or "builder" flag may use the building commands. All players
on FurToonia and most other MUCKs start out with their Builder flag already
set for them.
When a room is set B, you cannot use personal exits (exits attached to
you that "follow" you around wherever you go) to leave it. (It is not
generally considered "nice" to create lots of rooms that people can't easily
escape from, so don't use this often.)
When a program is set B, it is called "Bound", and it does something
that's probably really cool but will not, unless you are determined to be a
master MUF coder, ever really affect you in any great way. To hear
about that function, and what the MUCK has to say about its "B" flags,
you can type 'help builder'.
The Page of "Type" Flags ("P", "R", "M1,2,3", "E", "F")
The objects you see around you are of several "types": players, rooms,
exits, programs, and things. Each one has a database number ('help number')
that tells the MUCK what it is and where it is, and this number is followed
by a list of the flags that are set on the object. The "Type" flags tell the
MUCK that the object it's looking at is a:
- "P" : a player. That's that little person you're
piloting around.
% example: Falstaff(#80PBJ) (database # 80, player,
builder, jump_ok)
- "R" : a room. That's the thing you're standing
in.
% example: Bedroom(#1081RJ) (database # 1081, room, jump_ok)
- "E" : an exit. Those things that carry you from
room to room.
% example: West;w;bedroom(#246E) (database # 246, exit)
- "F" : a program. These things run the whole MUCK. F
stands for "Forth".
% example: DriveTo2.muf(#19FWM3) (database # 19,
program, wizard, mucker3)
- No Letter : a thing. Things are those objects you
can carry around.
% example: Cheeseburger(#1056) (database # 1056, and
no letter=thing)
- "M1", "M2", or "M3" : These are "Mucker
levels". The higher the number, the more privileges the programs you
create may have. These can be set on exits, players, and programs. On
programs, they affect how much the program can do; on players, they
affect how much the players' programs can do, and on exits, they set
"priority levels", which is best explained by typing 'help mucker'.
%
example: Ginger(#325PWBJM3). (Database # 325, a Player, a Wizard, a
Builder, set Jump_ok, with a Mucker level of 3.)