root/releases/1.6/0p1/options.h.dist

Revision 44, 13.0 KB (checked in by pennmush, 3 years ago)

PennMUSH 1.6.0p0 Archival

Line 
1/* options.h */
2/* $Name: 1_6_0 $ */
3
4#ifndef __OPTIONS_H
5#define __OPTIONS_H
6
7/* *********** READ THIS BEFORE YOU MODIFY ANYTHING IN THIS FILE *********** */
8/* WARNING:  All options in this file have the ability to signifigantly change
9 * the look and feel and sometimes even internal behavior of the program.
10 * The ones shipped as the default have been extensively tested.  Others have
11 * been tested to a (usually) lesser degree, and therefore might still have
12 * latent bugs.  If you change any of them from the default, PLEASE check
13 * to make sure that you know the full effects of what you are changing. And
14 * if you encounter any errors or compile time problems with any options
15 * other than the default settings, PLEASE inform lwl@eniac.seas.upenn.edu
16 * immediately, so that they can be fixed.  The same goes for any other bug
17 * you might find in using this software.  All efforts will be made to fix
18 * errors encountered, but unless given a FULL description of the error,
19 * (IE telling me that logging in doesn't work is insufficient.  telling
20 * me that logging in with WCREAT undefined still gives you the registration
21 * message is a lot better.  MOST effective would be a full dbx trace, or a
22 * patch for the bug.)  Enjoy using the program.
23 */
24/* ************************************************************************* */
25
26/* This configuration file is divided into three sections:
27 *
28 *   1. Major MUSH options.
29 *   2. MUSH configuration options.
30 *   3. Constants and other definitions.
31 *
32 */
33
34
35/*--------------------------------------------------------------------------
36 * Major MUSH options.
37 */
38
39/* This allows extended ANSI codes to be used in functions. This also
40 * results in the game having to filter output for ANSI codes; only
41 * define this if you're not worried about CPU usage.
42 * This also enables the COLOR flag and the FORCE_WHITE flag.
43 */
44/* #define EXTENDED_ANSI /* */
45
46/* This allows floating point operations. If you are on a very slow
47 * system, you might not wish to define this. It also makes the server
48 * somewhat larger. Define this if you find it useful.
49 */
50/* #define FLOATING_POINTS /* */
51
52/* This option is to control whether functions may have side effects
53 * affecting the db.  With it on, the functions create(), open(),
54 * dig(), link(), and set() exist, corresponding to the @commands of
55 * the same name.  Also, the 2 parameter versions of zone(), parent(),
56 * and lock() are enabled by this define.
57 */
58/* #define FUNCTION_SIDE_EFFECTS /* */
59
60/* This option controls whether or not player names can have spaces in
61 * them. "Traditionally", this option is off.
62 */
63/* #define PLAYER_NAME_SPACES /* */
64
65/* Define the following if you are running on a machine so small that you
66 * cannnot fork a process off to do the save.
67 */
68/* #define NO_FORK /* */
69
70/* Define this if you don't wish your log file to be split up into several
71 * components. This saves on file descriptors and makes it easy to tail -f
72 * the log, but is inconvenient for quick scanning.
73 */
74/* #define SINGLE_LOGFILE /* */
75
76/* Comment this out if you don't wish to use the built-in mail system.
77 * The @mail command provides a flexible hardcoded mail system, which
78 * uses its own database to store messages.
79 */
80#define USE_MAILER /* */
81
82/*  The chat channels system allows players to talk cross-MUSH to each
83 *  other, without needing to be in the same room. Whether or not you
84 *  want this depends on what type of MUSH you want. Set the value of
85 *  CHAT_SYSTEM to one of the following, depending on what you want:
86 *    0  -- do not use chat system
87 *    3  -- use original PennMUSH chat system
88 *    4  -- use extended comsys chat system
89 *  The server will automatically convert db's w/o chat to add chat
90 *  or remove chat from db's w/chat, as needed; unlike earlier versions
91 *  of the server, you do not need to startup, shutdown, recompile, restart.
92 */
93#define CHAT_SYSTEM 0
94
95/* If this is defined, another file similar to News and Help can be used
96 * to store text, retrieved with "events <whatever>". This is useful if
97 * your newsfile is starting to get huge and kludgy.
98 */
99/* #define EVENTS /* */
100
101/* If this is defined, the clock will be displayed in 24-hour "military time"
102 * format. Otherwise, some functions (such as the idle message for 'page')
103 * will return 12-hour time.
104 */
105#define MILITARY_TIME /* */
106
107#ifdef USE_SMALLOC
108/* Define the following ONLY if using SMALLOC.C, and if you want accurate
109 * malloc stats.
110 */
111/* #define SLOW_STATISTICS /* */
112#endif /* USE_SMALLOC */
113
114/* Defining this adds a simple tracking allocator of allocs and frees that
115 * keeps ref counts of what sort of memory is allocated, and how many.
116 * Good for testing for Memory leaks. Don't, however, define this unless
117 * 1. It's really necessary.  2. You know what you're doing.
118 */
119/* #define MEM_CHECK /* */
120
121
122/*--------------------------------------------------------------------------
123 * MUSH configuration options
124 */
125
126/* Define this if you want the ability to lock out certain sites.  This code
127 * will take wildcards. Sites to lock out should be put in lockout.cnf
128 * Sites to put on registration status should be in sites.cnf
129 * If you define this, you will also need to define WCREAT.
130 */
131#define LOCKOUT /* */
132
133/* Define this if you want to enable registration commands. If LOCKOUT
134 * is defined, this should be too. Running with both this and LOCKOUT
135 * defined will allow you to register certain sites. Running with this
136 * but not LOCKOUT puts all sites on registration status.
137 */
138#define WCREAT /* */
139
140/* Define this if you want to limit the maximum number of logins to the
141 * MUSH. This is useful if you know that you have a certain peak number
142 * before the MUSH freezes (which happens if you run out of file descriptors)
143 * or if you're running under a max-number-of-players restriction.
144 */
145/* #define LOGIN_LIMIT /* */
146
147/* Define the following if you want an inactivity timeout - the game
148 * will automatically boot players who idle too long.
149 */
150/* #define IDLE_TIMEOUT /* */
151
152/* One method of slowing bloat.  This method requires all builders to have
153 * a builder bit to build.
154 */
155/* #define RESTRICTED_BUILDING /* */
156
157/* Define the following if you wish to allow object building.  Only useful
158 * if RESTRICTED_BUILDING is defined.
159 */
160/* #define FREE_OBJECTS /* */
161
162/* An alternate method of slowing bloat.  This allows builders only X objects
163 * period.  Wizards can check and set quotas on players.  If used in
164 * conjunction with RESTRICTED_BUILDING, expect VERY slow growth.
165 */
166/* #define QUOTA /* */
167
168/* Define this ONLY if you have a small maximum database size, and are
169 * about to reach it. This will limit the number of objects allowed to
170 * whatever number you set as DBTOP_MAX (defined later in this file).
171 * Even wizards are subject to this maximum.
172 */
173/* #define BUILDING_LIMIT /* */
174
175/* Define this if you wish to allow players to steal money from each other */
176/* #define ROBBERS /* */
177
178/* Defining the following will show an expanded flag name list when you
179 * examine an object
180 */
181#define FLAGS_ON_EXAMINE /* */
182
183/* Defining this will show public attributes on examination of an object
184 * that a player doesn't own. (Like "examine/full" in TinyMUSH 2.0)
185 */
186#define EX_PUBLIC_ATTRIBS /* */
187
188/* Defining this will output attributes in TinyMUSH 2.0 format - i.e.
189 * "FOO(#4v): test" instead of "FOO [#4v]: test",  no attribute owners
190 * displayed unless different from the owner of the object, etc.
191 */
192/* #define TINY_ATTRS /* */
193
194/* Define the following for increased wizard invisibility.  If it's enabled,
195 * says and poses by DARK wizards will show up as 'Someone ....'
196 * pages are not affected.
197 */
198/* #define FULL_INVIS /* */
199
200/*  Define this if you want @listen/@ahear/@aahear/@amhear to work on
201 *  players as well as objects.
202 */
203#define PLAYER_LISTEN /* */
204
205/* Define this if you do not want @pemit to notify the person doing the
206 * @pemitting (2.0-style).
207 */
208/* #define SILENT_PEMIT /* */
209
210/*
211 * Define the following to enable the ROYALTY flag.  Players with
212 * this flag set have limited wiz powers: ie, they can look, examine,
213 * and @tel like wizards, but may not change things like wizards.
214 */
215#define ROYALTY_FLAG /* */
216
217/* Define the following to enable @whereis commands, and loc() on players
218 * by other players.  Both of these commands are modified by the effect
219 * of the PLAYER_UNFIND flag.
220 */
221#define PLAYER_LOCATE /* */
222
223/* Define the following if you wish to enable global exits and commands.
224 * Exits in the Master Room are considered global, as are user-defined
225 * $commands on objects in the Master Room.
226 */
227#define DO_GLOBALS /* */
228
229/* If this is defined, the zone of a player's location will be checked for
230 * an ACONNECT/ADISCONNECT attribute when the player connects/disconnects.
231 * If DO_GLOBALS is also defined, the master room will also be checked
232 * for an ACONNECT/ADISCONNECT.
233 */
234#define GLOBAL_CONNECTS /* */
235
236/* Comment this out if you wish to run without the INHERIT flag. This
237 * flag prevents objects without it from @forcing, @setting, or
238 * @triggering objects with the flag, or with a wizbit. This makes doing
239 * secure objects much easier. However, it can make programming certain
240 * objects somewhat clumsy, and may cause some initial confusion and
241 * frustration when first used on a MUSH not used to it.
242 */
243#define INHERIT_FLAG /* */
244
245/* Define this if you want NOSPOOF notification to show both the name of
246 * the spoofing object and its object number. If this option is not
247 * defined, nospoof notification will only show the name of the spoofer.
248 */
249/* #define PARANOID_NOSPOOF /* */
250
251/* Objects which are NO_COMMAND are not checked for $commands. You can
252 * speed up your server somewhat this way. If you want to make the best
253 * use of this flag, define this option, which will automatically set
254 * the NO_COMMAND flag on all rooms and players in your current database.
255 */
256/* #define ADD_NO_COMMAND_FLAG /* */
257
258/* This option uses the old method of coping with newlines.
259 * If you're converting from a database that might have hard newlines,
260 * load with this defined and do a "@dump/paranoid". Otherwise, ignore it.
261 */
262/* #define OLD_NEWLINES /* */
263
264/*---------------------------------------------------------------------------
265 * Constants and other good things.
266 */
267
268/*----- default files -----*/
269
270/* The format for the three following files is one site or name per
271 * line in the file. These files may be modified at any time, including
272 * while the MUSH is running.
273 */
274
275#ifdef LOCKOUT
276/* sites in the lockout file will have connections shut down immediately
277 * with no message. Sites in the register file will not be able to
278 * create new players. Wildcards are allowed.
279 */
280#define LOCKOUT_FILE "lockout.cnf"     
281#define REGISTER_FILE "sites.cnf"       
282#endif                          /* LOCKOUT */
283
284/* these names may not be used as player names. Wildcards are not allowed. */
285#define NAMES_FILE "names.cnf"
286
287/*----- log files -----*/
288
289/* The primary log file for the MUSH is defined in the restart script.
290 * Checkpoints are written to a separate log, as are connects and
291 * disconnects from the game, commands used by wizards, report traces,
292 * and player commands. The defaults are listed below.
293 */
294
295#define CHECKLOG  "log/checkpt.log"
296#define CONNLOG   "log/connect.log"
297#define WIZLOG    "log/wizard.log"
298#define TRACELOG  "log/trace.log"
299#define CMDLOG    "log/command.log"
300
301/*----- Costs, dbref definitions, etc. -----*/
302
303/* Uber-wizard */
304#define GOD ((dbref) 1)
305
306/* minimum cost to create various things */
307#define OBJECT_COST 10
308#define EXIT_COST 1
309#define LINK_COST 1
310#define ROOM_COST 10
311#define QUEUE_COST 10       /* deposit on commands in the queue */
312#define QUOTA_COST 1        /* quota cost of building an object */
313
314/* cost for various special commands */
315#define FIND_COST 100
316#define PAGE_COST 0
317
318/* costs of kill command */
319#define KILL_BASE_COST 100      /* prob = expenditure/KILL_BASE_COST */
320#define KILL_MIN_COST 10
321#define KILL_BONUS 50           /* paid to victim */
322#define MAX_ARG 100             /* maximum comma's arguments to function
323                /* (like @switch). Probably shouldn't mess. */
324
325#define QUEUE_LOSS 63       /* one command in 16 will cost one penny */
326                                /* must be a power of two minus 1 */
327
328#ifdef BUILDING_LIMIT
329#define DBTOP_MAX  20000        /* max number of objects in the database */
330#endif /* BUILDING_LIMIT */
331
332/* amount of object endowment, based on cost */
333#define MAX_OBJECT_ENDOWMENT 100
334/* max value a wiz can put on an object */
335#define MAX_WIZ_OBJECT_ENDOWMENT 2000
336
337/* amount at which temple stops being so profitable */
338#define MAX_PENNIES 100000
339
340/* How deep can indirect locks go? */
341#define MAX_DEPTH 10
342
343/* How many generations back can parents go? */
344#define MAX_PARENTS 10
345
346
347/*----- timer.c defines -----*/
348
349/* Note: Don't make times multiples of each other
350 * otherwise players will have to wait a long time when
351 * two or more events coincide
352 */
353
354/* time is in seconds */
355#define PURGE_INTERVAL 601  /* fixup free list eveyr 10 minutes */
356#define DBCK_INTERVAL 599   /* Check db consistency every 10 minutes */
357
358
359
360/*---------------------------------------------------------
361 * The dune modifications are here
362 */
363
364#include "dune.h"
365
366#endif              /* __OPTIONS_H */
Note: See TracBrowser for help on using the browser.