ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/config.h
(Generate patch)

Comparing deliantra/server/include/config.h (file contents):
Revision 1.2 by root, Fri Feb 3 07:25:25 2006 UTC vs.
Revision 1.31 by root, Sat Dec 30 15:07:59 2006 UTC

1/*
2 * static char *rcsid_config_h =
3 * "$Id: config.h,v 1.2 2006/02/03 07:25:25 root Exp $";
4 */
5
6/* 1/*
7 CrossFire, A Multiplayer game for X-windows 2 CrossFire, A Multiplayer game for X-windows
8 3
9 Copyright (C) 2002 Mark Wedel & Crossfire Development Team 4 Copyright (C) 2002 Mark Wedel & Crossfire Development Team
10 Copyright (C) 1992 Frank Tore Johansen 5 Copyright (C) 1992 Frank Tore Johansen
21 16
22 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
23 along with this program; if not, write to the Free Software 18 along with this program; if not, write to the Free Software
24 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 20
26 The authors can be reached via e-mail at crossfire-devel@real-time.com 21 The authors can be reached via e-mail at crossfire@schmorp.de
27*/ 22*/
28 23
29/* This file contains various #defines that select various options. 24/* This file contains various #defines that select various options.
30 * Some may not be desirable, and some just may not work. 25 * Some may not be desirable, and some just may not work.
31 * 26 *
71 * DEBUG - more verbose message logging? 66 * DEBUG - more verbose message logging?
72 * MAP_CLIENT_X, MAP_CLIENT_Y - determines max size client map will receive 67 * MAP_CLIENT_X, MAP_CLIENT_Y - determines max size client map will receive
73 * MAX_TIME - how long an internal tick is in microseconds 68 * MAX_TIME - how long an internal tick is in microseconds
74 * MANY_CORES - generate core dumps on gross errors instead of continuing? 69 * MANY_CORES - generate core dumps on gross errors instead of continuing?
75 * PARTY_KILL_LOG - stores party kill information 70 * PARTY_KILL_LOG - stores party kill information
76 * WATCHDOG - allows use of an external watchdog program
77 * 71 *
78 ***********************************************************************/ 72 ***********************************************************************/
73
74/* Use a very easy, non-challenging server?
75 * Defining the COZY_SERVER will make the server much less challenging:
76 * no stats loss on death, much less experience loss, and party members
77 * are treated by pet monsters as the owner itself when moving "through" them.
78 */
79#define COZY_SERVER 1
80
81/*
82 * Make it impossible to pk outside the arena.
83 */
84#define PROHIBIT_PLAYERKILL 1
79 85
80/* Use balanced stat loss code? 86/* Use balanced stat loss code?
81 * This code is a little more merciful with repeated stat loss at lower 87 * This code is a little more merciful with repeated stat loss at lower
82 * levels. Basically, the more stats you have lost, the less likely that 88 * levels. Basically, the more stats you have lost, the less likely that
83 * you will lose more. Additionally, lower level characters are shown 89 * you will lose more. Additionally, lower level characters are shown
116 122
117/* Don't edit these values. They are configured in lib/settings. These are 123/* Don't edit these values. They are configured in lib/settings. These are
118 Simply the defaults. */ 124 Simply the defaults. */
119 125
120#define BALANCED_STAT_LOSS FALSE 126#define BALANCED_STAT_LOSS FALSE
121#define USE_PERMANENT_EXPERIENCE FALSE 127#define PERMANENT_EXPERIENCE_RATIO 25
128#define DEATH_PENALTY_RATIO 20
129#define DEATH_PENALTY_LEVEL 3
122#define SET_TITLE TRUE 130#define SET_TITLE TRUE
123#define SIMPLE_EXP TRUE 131#define SIMPLE_EXP TRUE
124#define SPELLPOINT_LEVEL_DEPEND TRUE 132#define SPELLPOINT_LEVEL_DEPEND TRUE
125#define SPELL_ENCUMBRANCE TRUE 133#define SPELL_ENCUMBRANCE TRUE
126#define SPELL_FAILURE_EFFECTS FALSE 134#define SPELL_FAILURE_EFFECTS FALSE
127#define REAL_WIZ TRUE 135#define REAL_WIZ TRUE
128#define RECYCLE_TMP_MAPS FALSE
129#define RESURRECTION FALSE 136#define RESURRECTION FALSE
130#define SEARCH_ITEMS TRUE 137#define SEARCH_ITEMS TRUE
131#define NOT_PERMADETH TRUE 138#define NOT_PERMADETH TRUE
132#define EXPLORE_MODE FALSE 139#define EXPLORE_MODE FALSE
133#define STAT_LOSS_ON_DEATH FALSE 140#define STAT_LOSS_ON_DEATH FALSE
137#define ARMOR_MAX_ENCHANT 5 144#define ARMOR_MAX_ENCHANT 5
138#define ARMOR_WEIGHT_REDUCTION 10 145#define ARMOR_WEIGHT_REDUCTION 10
139#define ARMOR_WEIGHT_LINEAR TRUE 146#define ARMOR_WEIGHT_LINEAR TRUE
140#define ARMOR_SPEED_IMPROVEMENT 10 147#define ARMOR_SPEED_IMPROVEMENT 10
141#define ARMOR_SPEED_LINEAR TRUE 148#define ARMOR_SPEED_LINEAR TRUE
149#define CREATE_HOME_PORTALS FALSE
142 150
143/* you can edit the ones below */ 151/* you can edit the ones below */
144 152
145 153
146/* CS_LOGSTATS will cause the server to log various usage stats 154/* CS_LOGSTATS will cause the server to log various usage stats
148 * and so on.) This can be very useful if you are trying to measure 156 * and so on.) This can be very useful if you are trying to measure
149 * server/bandwidth usage. It will periodially dump out information 157 * server/bandwidth usage. It will periodially dump out information
150 * which contains usage stats for the last X amount of time. 158 * which contains usage stats for the last X amount of time.
151 * CS_LOGTIME is how often it will print out stats. 159 * CS_LOGTIME is how often it will print out stats.
152 */ 160 */
153#ifndef WIN32 /* ***win32 we set the following stuff in the IDE */
154#define CS_LOGSTATS 161#define CS_LOGSTATS
155#endif
156#ifdef CS_LOGSTATS
157#define CS_LOGTIME 600 162#define CS_LOGTIME 600
158#endif
159 163
160/* DEBUG generates copious amounts of output. I tend to change the CC options 164/* DEBUG generates copious amounts of output. I tend to change the CC options
161 * in the crosssite.def file if I want this. By default, you probably 165 * in the crosssite.def file if I want this. By default, you probably
162 * dont want this defined. 166 * dont want this defined.
163 */ 167 */
164#ifndef WIN32 /* ***win32 we set the following stuff in the IDE */
165#ifndef DEBUG 168#ifndef DEBUG
166#define DEBUG 169#define DEBUG
167#endif
168#endif 170#endif
169/* 171/*
170 * This option creates more core files. In some areas, there are certain 172 * This option creates more core files. In some areas, there are certain
171 * checks done to try and make the program more stable (ie, check 173 * checks done to try and make the program more stable (ie, check
172 * parameter for null, return if it is). These checks are being done 174 * parameter for null, return if it is). These checks are being done
197 * maps at that point. 199 * maps at that point.
198 * 200 *
199 * MSW 2001-05-28 201 * MSW 2001-05-28
200 */ 202 */
201 203
202#define MAP_CLIENT_X 25 204#define MAP_CLIENT_X 31
203#define MAP_CLIENT_Y 25 205#define MAP_CLIENT_Y 31
204 206
205/* 207/*
206 * If you feel the game is too fast or too slow, change MAX_TIME. 208 * If you feel the game is too fast or too slow, change MAX_TIME.
207 * You can experiment with the 'speed <new_max_time> command first. 209 * You can experiment with the 'speed <new_max_time> command first.
208 * The length of a tick is MAX_TIME microseconds. During a tick, 210 * The length of a tick is MAX_TIME microseconds. During a tick,
223 * mean slower performance and more memory. IF this is not defined, then 225 * mean slower performance and more memory. IF this is not defined, then
224 * this feature is disabled. 226 * this feature is disabled.
225 */ 227 */
226#define PARTY_KILL_LOG 20 228#define PARTY_KILL_LOG 20
227 229
228/* Use permanent experience code? 230/*
229 * This code allows players to build up a small amount of 'permanent
230 * experience' which reduces the effect of large experience drains, such as
231 * death. This makes multiple frequent deaths less devastating, and also
232 * ensures that any character will make some gradual progress even if they
233 * die all of the time.
234 * A nice option if your keep dying due to massive client/server lags despite
235 * playing well... or you like to swim well outside of your depth. :)
236 *
237 * The PERM_EXP values adjust the behaviour of this option - if 231 * The PERM_EXP values adjust the behaviour of permenent experience. - if
238 * USE_PERMAMENT_EXPERIENCE if off, these values have no meaning. If it 232 * the setting permanent_experience_percentage is zero, these values have
239 * is on, the minimum ratio is the minimum amount of permanent exp relative 233 * no meaning. The value in the settings file is the percentage of the
240 * to the total exp in the skill (ie, at a default of .25, if you had 100 234 * experience that is permenent, the rest could be lost on death. When dying,
241 * experience, at least 25 of it would be permanent). The gain ratio 235 * the greatest amount of non-permenent exp it is possible to lose at one time
242 * is how much of experienced experience goes to the permanent value. 236 * is PERM_EXP_MAX_LOSS_RATIO - this is calculated as
243 * This does not detract from total exp gain (ie, if you gained 100 exp, 237 * total exp - perm exp * loss ratio. The gain ratio is how much of experienced
244 * 100 would go to the skill total and 10 to the permanent value). 238 * experience goes to the permanent value. This does not detract from total
245 * the loss ratio is the maximum amount of experience that can be lost 239 * exp gain (ie, if you gained 100 exp, 100 would go to the skill total and
246 * in any one hit - this is calculated as total exp - perm exp * loss ratio. 240 * 10 to the permanent value).
247 * 241 *
248 * A few thoughts on these default value (by MSW) 242 * A few thoughts on these default value (by MSW)
249 * gain ratio is pretty much meaningless until exp has been lost, as until 243 * gain ratio is pretty much meaningless until exp has been lost, as until
250 * that poin, the minimum ratio will be used. 244 * that poin, the value in the settings file will be used.
251 * It is also impossible for the exp to actually be reduced to the permanent 245 * It is also impossible for the exp to actually be reduced to the permanent
252 * exp ratio - since the loss ratio is .5, it will just get closer and 246 * exp ratio - since the loss ratio is .5, it will just get closer and
253 * closer. However, after about half a dozen hits, pretty much all the 247 * closer. However, after about half a dozen hits, pretty much all the
254 * exp that can be lost has been lost, and after that, only minor loss 248 * exp that can be lost has been lost, and after that, only minor loss
255 * will occur. 249 * will occur.
256 */ 250 */
257/* GD */ 251/* GD */
258 252
259#define PERM_EXP_MINIMUM_RATIO 0.25f
260#define PERM_EXP_GAIN_RATIO 0.10f 253#define PERM_EXP_GAIN_RATIO 0.10f
261#define PERM_EXP_MAX_LOSS_RATIO 0.50f 254#define PERM_EXP_MAX_LOSS_RATIO 0.50f
262
263/*
264 * WATCHDOG lets sends datagrams to port 13325 on localhost
265 * in (more-or-less) regular intervals, so an external watchdog
266 * program can kill the server if it hangs (for whatever reason).
267 * It shouldn't hurt anyone if this is defined but you don't
268 * have an watchdog program.
269 */
270#ifndef WIN32 /* ***win32 disable watchdog as win32 default */
271#define WATCHDOG
272#endif
273
274 255
275/* Enable the new material code - it needs some work. You can 256/* Enable the new material code - it needs some work. You can
276 * enable this, and things will work, just you'll see a whole 257 * enable this, and things will work, just you'll see a whole
277 * bunch more materials show up, and thus a whole bunch more materials 258 * bunch more materials show up, and thus a whole bunch more materials
278 * in your inventory, and the sorting for them isn't really good. 259 * in your inventory, and the sorting for them isn't really good.
341 * SHUTDOWN - used when shutting down the server 322 * SHUTDOWN - used when shutting down the server
342 * SOCKETBUFSIZE - size of buffer used internally by the server for storing 323 * SOCKETBUFSIZE - size of buffer used internally by the server for storing
343 * backlogged messages. 324 * backlogged messages.
344 * TMPDIR - directory to use for temp files 325 * TMPDIR - directory to use for temp files
345 * UNIQUE_DIR - directory to put unique item files into 326 * UNIQUE_DIR - directory to put unique item files into
346 * USE_CALLOC for some memory requests
347 *********************************************************************** 327 ***********************************************************************
348 */ 328 */
349 329
350/* 330/*
351 * BANFILE - file used to ban certain sites from playing. See the example 331 * BANFILE - file used to ban certain sites from playing. See the example
352 * ban_file for examples. 332 * ban_file for examples.
353 */ 333 */
354
355#ifndef BANFILE 334#ifndef BANFILE
356#define BANFILE "ban_file" 335#define BANFILE "ban_file"
357#endif 336#endif
358 337
359/* CSPORT is the port used for the new client/server code. Change 338/* CSPORT is the port used for the new client/server code. Change
360 * if desired. Only of relevance if ERIC_SERVER is set above 339 * if desired. Only of relevance if ERIC_SERVER is set above
361 */ 340 */
362
363#define CSPORT 13327 /* old port + 1 */ 341#define CSPORT 13327 /* old port + 1 */
364 342
365 343
366/* 344/*
367 * DMFILE 345 * DMFILE
368 * A file containing valid names that can be dm, one on each line. See 346 * A file containing valid names that can be dm, one on each line. See
369 * example dm_file for syntax help. 347 * example dm_file for syntax help.
370 */ 348 */
371
372#ifndef DMFILE 349#ifndef DMFILE
373#define DMFILE "dm_file" 350#define DMFILE "dm_file"
374#endif 351#endif
375 352
376 353
377/* LOGFILE specifies which file to log to when playing with the 354/* LOGFILE specifies which file to log to when playing with the
378 * -daemon option. 355 * -daemon option.
379 */ 356 */
380
381#ifndef LOGFILE 357#ifndef LOGFILE
382#ifdef WIN32 /* change define path */
383#define LOGFILE "var\\crossfire.log"
384#else
385#define LOGFILE "/var/log/crossfire/logfile" 358#define LOGFILE "/var/log/crossfire/logfile"
386#endif 359#endif
387#endif
388
389/*
390 * MAP_MAXTIMEOUT tells the maximum of ticks until a map is swapped out
391 * after a player has left it. If it is set to 0, maps are
392 * swapped out the instant the last player leaves it.
393 * If you are low on memory, you should set this to 0.
394 * Note that depending on the map timeout variable, the number of
395 * objects can get quite high. This is because depending on the maps,
396 * a player could be having the objects of several maps in memory
397 * (the map he is in right now, and the ones he left recently.)
398 * Each map has it's own TIMEOUT value and value field and it is
399 * defaulted to 300
400 *
401 * Having a nonzero value can be useful: If a player leaves a map (and thus
402 * is on a new map), and realizes they want to go back pretty quickly, the
403 * old map is still in memory, so don't need to go disk and get it.
404 *
405 * MAP_MINTIMEOUT is used as a minimum timeout value - if the map is set
406 * to swap out in less than that many ticks, we use the MINTIMEOUT value
407 * velow. If MINTIMEOUT > MAXTIMEOUT, MAXTIMEOUT will be used for all
408 * maps.
409 */
410
411/* How many ticks till maps are swapped out */
412#define MAP_MAXTIMEOUT 1000
413/* At least that many ticks before swapout */
414#define MAP_MINTIMEOUT 500
415
416/*
417 * MAP_MAXRESET is the maximum time a map can have before being reset. It
418 * will override the time value set in the map, if that time is longer than
419 * MAP_MAXRESET. This value is in seconds. If you are low on space on the
420 * TMPDIR device, set this value to somethign small. The default
421 * value in the map object is MAP_DEFAULTRESET (given in seconds.)
422 * I personally like 1 hour myself, for solo play. It is long enough that
423 * maps won't be resetting as a solve a quest, but short enough that some
424 * maps (like shops and inns) will be reset during the time I play.
425 * Comment out MAP_MAXRESET time if you always want to use the value
426 * in the map archetype.
427 */
428
429/* Maximum time to reset. */
430#define MAP_MAXRESET 7200
431/* Default time to reset. */
432#define MAP_DEFAULTRESET 7200
433
434/*
435 * MAX_OBJECTS is no hard limit. If this limit is exceeded, crossfire
436 * will look for maps which are already scheldued for swapping, and
437 * promptly swap them out before new maps are being loaded.
438 * If playing only by yourself, this number can probably be as low as
439 * 3000. If in server mode, probably figure about 1000-2000 objects per
440 * active player (if they typically play on different maps), for some guess
441 * on how many to define. If it is too low, maps just get swapped out
442 * immediately, causing a performance hit. If it is too high, the program
443 * consumes more memory. If you have gobs of free memory, a high number
444 * might not be a bad idea. Each object is around 350 bytes right now.
445 * 25000 is about 8.5 MB
446 */
447
448#define MAX_OBJECTS 100000
449
450/*
451 * Max objects low water mark (lwm). If defined, the map swapping strategy
452 * is a bit different:
453 * 1) We only start swapping maps if the number of objects in use is
454 * greater than MAX_OBJECTS above.
455 * 2) We keep swapping maps until there are no more maps to swap or the number
456 * of used objects drop below this low water mark value.
457 *
458 * If this is not defined, maps are swapped out on the timeout value above,
459 * or if the number of objects used is greater than MAX_OBJECTS above.
460 *
461 * Note: While this will prevent the pauses noticed when saving maps, there
462 * can instead be cpu performance penalties - any objects in memory get
463 * processed. So if there are 4000 objects in memory, and 1000 of them
464 * are living objects, the system will process all 1000 objects each tick.
465 * With swapping enable, maybe 600 of the objects would have gotten swapped
466 * out. This is less likely a problem with a smaller number of MAX_OBJECTS
467 * than if it is very large.
468 * Also, the pauses you do get can be worse, as if you enter a map with
469 * a lot of new objects and go above MAX_OBJECTS, it may have to swap out
470 * many maps to get below the low water mark.
471 */
472
473/*#define MAX_OBJECTS_LWM MAX_OBJECTS/2*/
474
475/*
476 * Turning on MEMORY_DEBUG slows down execution, but makes it easier
477 * to find memory corruption and leaks. Currently, the main thing
478 * that happens with this activated is that one malloc is done for
479 * each object - thus whatever debugging mechanism the malloc library
480 * (or other debugging tool provides, like purify), it can track this
481 * individual malloc. Default behaviour when turned off is that
482 * enough memory is malloced for a large group of objects so malloc does
483 * not need to be called as often.
484 * This should only be turned on if some form of memory debugging tool
485 * is being used - otherwise, turning this on will cause some performance
486 * hit with no useful advantage.
487 */
488
489/*#define MEMORY_DEBUG*/
490
491 360
492/* 361/*
493 * If you want to have a Message Of The Day file, define MOTD to be 362 * If you want to have a Message Of The Day file, define MOTD to be
494 * the file with the message. If the file doesn't exist or if it 363 * the file with the message. If the file doesn't exist or if it
495 * is empty, no message will be displayed. 364 * is empty, no message will be displayed.
496 * (It resides in the CONFDIR directory) 365 * (It resides in the CONFDIR directory)
497 */ 366 */
498
499#define MOTD "motd" 367#define MOTD "motd"
500 368
501/* 369/*
502 * You can restrict playing in certain times by creating a PERMIT_FILE 370 * You can restrict playing in certain times by creating a PERMIT_FILE
503 * in CONFDIR. See the sample for usage notes. 371 * in CONFDIR. See the sample for usage notes.
504 */ 372 */
505
506#define PERM_FILE "forbid" 373#define PERM_FILE "forbid"
507 374
508/* 375/*
509 * If you want to take the game down while installing new versions, or 376 * If you want to take the game down while installing new versions, or
510 * for other reasons, put a message into the SHUTDOWN_FILE file. 377 * for other reasons, put a message into the SHUTDOWN_FILE file.
511 * Remember to delete it when you open the game again. 378 * Remember to delete it when you open the game again.
512 * (It resides in the CONFDIR directory) 379 * (It resides in the CONFDIR directory)
513 */ 380 */
514
515#ifndef SHUTDOWN_FILE 381#ifndef SHUTDOWN_FILE
516#define SHUTDOWN_FILE "shutdown" 382#define SHUTDOWN_FILE "shutdown"
517#endif 383#endif
518 384
519 385
525 * large. When the OS buffer and this buffer is exhausted, the server 391 * large. When the OS buffer and this buffer is exhausted, the server
526 * will drop the client connection for falling too far behind. So if 392 * will drop the client connection for falling too far behind. So if
527 * you have very slow client connections, a larger value may be 393 * you have very slow client connections, a larger value may be
528 * warranted. 394 * warranted.
529 */ 395 */
530
531#define SOCKETBUFSIZE 128*1024 396#define SOCKETBUFSIZE 256*1024
532 397
533/* 398/*
534 * Your tmp-directory should be large enough to hold the uncompressed 399 * Your tmp-directory should be large enough to hold the uncompressed
535 * map-files for all who are playing. 400 * map-files for all who are playing. Local to 'lib' directory.
536 * It ought to be locally mounted, since the function used to generate
537 * unique temporary filenames isn't guaranteed to work over NFS or AFS
538 * On the other hand, if you know that only one crossfire server will be
539 * running using this temporary directory, it is likely to be safe to use
540 * something that is NFS mounted (but performance may suffer as NFS is
541 * slower than local disk)
542 */ 401 */
543
544/*#define TMPDIR "/home/hugin/a/crossfire/crossfire/tmp"*/
545#ifdef WIN32 /* change define path tmp */
546#define TMPDIR "tmp" 402#define TMPDIR "tmp"
547#else
548#define TMPDIR "/tmp"
549#endif
550 403
551 404
552/* Directory to use for unique items. This is placed into the 'lib' 405/* Directory to use for unique items. This is placed into the 'lib'
553 * directory. Changing this will cause any old unique items file 406 * directory. Changing this will cause any old unique items file
554 * not to be used. 407 * not to be used.
555 */ 408 */
556#define UNIQUE_DIR "unique-items" 409#define UNIQUE_DIR "unique-items"
557
558/*
559 * If undefined, malloc is always used.
560 * It looks like this can be oboleted. However, it can be useful to
561 * track down some bugs, as it will make sure that the entire data structure
562 * is set to 0, at the expense of speed.
563 * Rupert Goldie has run Purify against the code, and if this is disabled,
564 * apparantly there are a lot of uninitialized memory reads - I haven't
565 * seen any problem (maybe the memory reads are copies, and the destination
566 * doesn't actually use the garbage values either?), but the impact on speed
567 * of using this probably isn't great, and should make things more stable.
568 * Msw 8-9-97
569 */
570#define USE_CALLOC
571
572
573/*
574 * These define the players starting map and location on that map, and where
575 * emergency saves are defined. This should be left as is unless you make
576 * major changes to the map.
577 */
578
579#ifdef WIN32 /* change define path city */
580
581# define EMERGENCY_MAPPATH "\\city\\city"
582# define EMERGENCY_X 15
583# define EMERGENCY_Y 19
584#else
585# define EMERGENCY_MAPPATH "/city/city"
586# define EMERGENCY_X 15
587# define EMERGENCY_Y 19
588#endif
589
590 410
591/* 411/*
592 * These defines tells where, relative to LIBDIR, the maps, the map-index, 412 * These defines tells where, relative to LIBDIR, the maps, the map-index,
593 * archetypes highscore and treaures files and directories can be found. 413 * archetypes highscore and treaures files and directories can be found.
594 */ 414 */
599#define REGIONS "regions" 419#define REGIONS "regions"
600#define HIGHSCORE "highscore" 420#define HIGHSCORE "highscore"
601#define TREASURES "treasures" 421#define TREASURES "treasures"
602#define BANISHFILE "banish_file" 422#define BANISHFILE "banish_file"
603 423
604#define MAX_ERRORS 25 /* Bail out if more are received during tick */
605#define STARTMAX 500 /* How big array of objects to start with */
606#define OBJ_EXPAND 100 /* How big steps to use when expanding array */
607
608#define HIGHSCORE_LENGTH 1000 /* How many entries there are room for */ 424#define HIGHSCORE_LENGTH 1000 /* How many entries there are room for */
609 425
610#define ARCHTABLE 5003 /* Used when hashing archetypes */ 426#define ARCHTABLE 16384 /* Arch hashtable size */
611#define MAXSTRING 20 427#define MAXSTRING 20
612 428
613#define COMMAND_HASH_SIZE 107 /* If you change this, delete all characters :) */ 429#define COMMAND_HASH_SIZE 107 /* If you change this, delete all characters :) */
614 430
615 431
646 * thus requiring that the server be setuid/setgid, and more generous 462 * thus requiring that the server be setuid/setgid, and more generous
647 * permisisons needed. 463 * permisisons needed.
648 * SAVE_MODE is permissions for the files, SAVE_DIR_MODE is permission 464 * SAVE_MODE is permissions for the files, SAVE_DIR_MODE is permission
649 * for nay directories created. 465 * for nay directories created.
650 */ 466 */
467/* IMPORTANT: there is a race during saving, where the umask is being applied */
651#define SAVE_MODE 0660 468#define SAVE_MODE 0660
652#define SAVE_DIR_MODE 0770 469#define SAVE_DIR_MODE 0770
653 470
654/* NOTE ON SAVE_INTERVAL and AUTOSAVE: Only one of these two really 471/* NOTE ON SAVE_INTERVAL and AUTOSAVE: Only one of these two really
655 * needs to be selected. You can set both, and things will work fine, 472 * needs to be selected. You can set both, and things will work fine,
665 * environment, you may want to set this to a higher value, so that 482 * environment, you may want to set this to a higher value, so that
666 * you are not spending too much time saving the characters. 483 * you are not spending too much time saving the characters.
667 * This option should now work (Crossfire 0.90.5) 484 * This option should now work (Crossfire 0.90.5)
668 */ 485 */
669 486
670#define SAVE_INTERVAL 60 487//#define SAVE_INTERVAL 60
671 488
672/* 489/*
673 * AUTOSAVE saves the player every AUTOSAVE ticks. A value of 490 * AUTOSAVE saves the player every AUTOSAVE ticks. A value of
674 * 5000 with MAX_TIME set at 120,000 means that the player will be 491 * 5000 with MAX_TIME set at 120,000 means that the player will be
675 * saved every 10 minutes. Some effort should probably be made to 492 * saved every 10 minutes. Some effort should probably be made to
678 * may not be large enough to save all of them.) As it is now, it will 495 * may not be large enough to save all of them.) As it is now, it will
679 * just set the base tick of when they log on, which should keep the 496 * just set the base tick of when they log on, which should keep the
680 * saves pretty well spread out (in a fairly random fashion.) 497 * saves pretty well spread out (in a fairly random fashion.)
681 */ 498 */
682 499
683#define AUTOSAVE 500 500#define AUTOSAVE 1000
684
685/* Often, emergency save fails because the memory corruption that caused
686 * the crash has trashed the characters too. Define NO_EMERGENCY_SAVE
687 * to disable emergency saves. This actually does
688 * prevent emergency saves now (Version 0.90.5).
689 */
690
691#define NO_EMERGENCY_SAVE
692
693/* By selecting the following, whenever a player does a backup save (with
694 * the 'save command), the player will be saved at home (EMERGENCY_MAP_*
695 * information that is specified later). IF this is not set, the player
696 * will be saved at his present location.
697 */
698
699/*#define BACKUP_SAVE_AT_HOME*/
700 501
701/* RESET_LOCATION_TIME is the number of seconds that must elapse before 502/* RESET_LOCATION_TIME is the number of seconds that must elapse before
702 * we fill return the player to his savebed location. If this is zero, 503 * we will return the player to his savebed location. If this is zero,
703 * this feature is disabled (player will resume where ever he was 504 * this feature is disabled (player will resume where ever he was
704 * when he last logged off). If this is set to less than two hours, 505 * when he last logged off). If this is set to less than two hours,
705 * it will prevent players from camping out in treasure rooms. 506 * it will prevent players from camping out in treasure rooms.
706 * Do not comment this out - it must be set to something - if you 507 * Do not comment this out - it must be set to something - if you
707 * comment this out, the program will not compile. 508 * comment this out, the program will not compile.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines