root/releases/1.6/1p0/options.h.dist

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

PennMUSH 1.6.1p0 Archival

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