forked from kyonshi/grenzland-mud
Fixed top_of_helpt bug being off by one. (thanks Jamdog) Fixed trigedit copy bug where it used real_room and not real_trigger. (thanks Jamdog) [Dec 21 2007] - Rumble Fixed dg_affect crash caused by a typo on my part. Renamed shit again! No really in zmalloc.c unsigned char * shit. [Dec 15 2007] - Rumble Showvnums shows [T#] for a single attached trig or [TRIGS] for multiple attached trigs (except for rooms since there is plenty of room to list all attached trigs). Fixed bug where showvnums would not show if attached. (thanks Sryth)
305 lines
13 KiB
C
305 lines
13 KiB
C
/**************************************************************************
|
|
* File: config.c Part of tbaMUD *
|
|
* Usage: Configuration of various aspects of tbaMUD operation. *
|
|
* *
|
|
* All rights reserved. See license for complete information. *
|
|
* *
|
|
* Copyright (C) 1993, 94 by the Trustees of the Johns Hopkins University *
|
|
* CircleMUD is based on DikuMUD, Copyright (C) 1990, 1991. *
|
|
**************************************************************************/
|
|
|
|
#define __CONFIG_C__
|
|
|
|
#include "conf.h"
|
|
#include "sysdep.h"
|
|
#include "structs.h"
|
|
#include "interpreter.h" /* alias_data definition for structs.h */
|
|
|
|
/* Update: The following constants and variables are now the default values
|
|
* for backwards compatibility with the new cedit game configurator. If you
|
|
* would not like to use the cedit command, you can change the values in
|
|
* this file instead. - Mythran */
|
|
|
|
/* Below are several constants which you can change to alter certain aspects
|
|
* of the way tbaMUD acts. Since this is a .c file, all you have to do
|
|
* to change one of the constants (assuming you keep your object files around)
|
|
* is change the constant in this file and type 'make'. Make will recompile
|
|
* this file and relink; you don't have to wait for the whole thing to recompile
|
|
* as you do if you change a header file. I realize that it would be slightly
|
|
* more efficient to have lots of #defines strewn about, so that, for example,
|
|
* the autowiz code isn't compiled at all if you don't want to use autowiz.
|
|
* However, the actual code for the various options is quite small, as is the
|
|
* computational time in checking the option you've selected at run-time, so
|
|
* I've decided the convenience of having all your options in this one file
|
|
* outweighs the efficency of doing it the other way. */
|
|
|
|
/* GAME PLAY OPTIONS */
|
|
#if !defined(NO)
|
|
#define NO 0
|
|
#endif
|
|
|
|
#if !defined(YES)
|
|
#define YES 1
|
|
#endif
|
|
|
|
#if !defined(FALSE)
|
|
#define FALSE 0
|
|
#endif
|
|
|
|
#if !defined(TRUE)
|
|
#define TRUE (!FALSE)
|
|
#endif
|
|
|
|
/* pk_allowed sets the tone of the entire game. If pk_allowed is set to NO,
|
|
* then players will not be allowed to kill, summon, charm, or sleep other
|
|
* players, as well as a variety of other "asshole player" protections. However,
|
|
* if you decide you want to have an all-out knock-down drag-out PK Mud, just
|
|
* set pk_allowed to YES - and anything goes. */
|
|
int pk_allowed = NO;
|
|
|
|
/* Is playerthieving allowed? */
|
|
int pt_allowed = NO;
|
|
|
|
/* Minimum level a player must be to shout/holler/gossip/auction. */
|
|
int level_can_shout = 1;
|
|
|
|
/* Number of movement points it costs to holler. */
|
|
int holler_move_cost = 20;
|
|
|
|
/* How many people can get into a tunnel? The default is two, but there is
|
|
* also an alternate message in the case of one person being allowed. */
|
|
int tunnel_size = 2;
|
|
|
|
/* Exp change limits. */
|
|
int max_exp_gain = 100000; /* max gainable per kill */
|
|
int max_exp_loss = 500000; /* max losable per death */
|
|
|
|
/* Number of tics (usually 75 seconds) before PC/NPC corpses decompose. */
|
|
int max_npc_corpse_time = 5;
|
|
int max_pc_corpse_time = 10;
|
|
|
|
/* How many ticks before a player is sent to the void or idle-rented. */
|
|
int idle_void = 8;
|
|
int idle_rent_time = 48;
|
|
|
|
/* This level and up is immune to idling, LVL_IMPL+1 will disable it. */
|
|
int idle_max_level = LVL_GOD;
|
|
|
|
/* Should items in death traps automatically be junked? */
|
|
int dts_are_dumps = YES;
|
|
|
|
/* Whether you want items that immortals load to appear on the ground or not.
|
|
* It is most likely best to set this to 'YES' so that something else doesn't
|
|
* grab the item before the immortal does, but that also means people will be
|
|
* able to carry around things like boards. That's not necessarily a bad thing,
|
|
* but this will be left at a default of 'NO' for historic reasons. */
|
|
int load_into_inventory = YES;
|
|
|
|
/* "okay" etc. */
|
|
const char *OK = "Okay.\r\n";
|
|
const char *NOPERSON = "No one by that name here.\r\n";
|
|
const char *NOEFFECT = "Nothing seems to happen.\r\n";
|
|
|
|
/* You can define or not define TRACK_THOUGH_DOORS, depending on whether or not
|
|
* you want track to find paths which lead through closed or hidden doors. A
|
|
* setting of 'NO' means to not go through the doors while 'YES' will pass
|
|
* through doors to find the target. */
|
|
int track_through_doors = YES;
|
|
|
|
/* If you do not want mortals to level up to immortal once they have enough
|
|
* experience, then set this to YES. Subtracting this from LVL_IMMORT gives
|
|
* the top level that people can advance to in gain_exp() in limits.c */
|
|
int no_mort_to_immort = YES;
|
|
|
|
/* RENT/CRASHSAVE OPTIONS */
|
|
/* Should the MUD allow you to 'rent' for free? (i.e. if you just quit, your
|
|
* objects are saved at no cost). */
|
|
int free_rent = YES;
|
|
|
|
/* Maximum number of items players are allowed to rent. */
|
|
int max_obj_save = 30;
|
|
|
|
/* Receptionist's surcharge on top of item costs. */
|
|
int min_rent_cost = 100;
|
|
|
|
/* Should the game automatically save people? (i.e., save player data every 4
|
|
* kills (on average), and Crash-save as defined below. If auto_save is YES,
|
|
* then the 'save' command will be disabled to prevent item duplication via
|
|
* game crashes. */
|
|
int auto_save = YES;
|
|
|
|
/* if auto_save (above) is yes, how often (in minutes) should the MUD Crash-save
|
|
* people's objects? Also, this number indicates how often the MUD will Crash-
|
|
* save players' houses. */
|
|
int autosave_time = 5;
|
|
|
|
/* Lifetime of crashfiles and forced-rent (idlesave) files in days. */
|
|
int crash_file_timeout = 10;
|
|
|
|
/* Lifetime of normal rent files in days. */
|
|
int rent_file_timeout = 30;
|
|
|
|
/* Do you want to automatically wipe players who've been gone too long? */
|
|
int auto_pwipe = NO;
|
|
|
|
/* Autowipe deletion criteria. This struct holds information used to determine
|
|
* which players to wipe when the mud boots. The levels must be in ascending
|
|
* order, with a descending level marking the end of the array. A level -1
|
|
* entry in the beginning is the case for players with the PLR_DELETED flag.
|
|
* The values below match the stock purgeplay.c criteria.
|
|
|
|
Detailed explanation by array element:
|
|
* Element 0, level -1, days 0: Players with PLR_DELETED flag are always wiped
|
|
* Element 1, level 0, days 0: Players at level 0 have created a character,
|
|
but have never actually entered the game, so always wipe them.
|
|
* Element 2, level 1, days 4: Players at level 1 are wiped if they haven't
|
|
logged on in the past 4 days.
|
|
* Element 3, level 4, days 7: Players level 2 through 4 are wiped if they
|
|
haven't logged on in the past 7 days.
|
|
* Element 4, level 10, days 30: Players level 5-10 get 30 days.
|
|
* Element 5, level LVL_IMMORT - 1, days 60: All other mortals get 60 days.
|
|
* Element 6, level LVL_IMPL, days 90: Immortals get 90 days.
|
|
* Element 7: Because -2 is less than LVL_IMPL, this is assumed to be the end
|
|
of the criteria. The days entry is not used in this case. */
|
|
struct pclean_criteria_data pclean_criteria[] = {
|
|
/* LEVEL DAYS */
|
|
{ 0 ,0 }, /* level 0 */
|
|
{ 1 ,4 },
|
|
{ 4 ,7 },
|
|
{ 10 ,30 },
|
|
{ LVL_IMMORT - 1 ,60 }, /* highest mortal */
|
|
{ LVL_IMPL ,90 }, /* all immortals */
|
|
{ -1 ,0 } /* no more level checks */
|
|
};
|
|
|
|
/* Do you want players who self-delete to be wiped immediately with no backup? */
|
|
int selfdelete_fastwipe = YES;
|
|
|
|
/* ROOM NUMBERS */
|
|
/* Virtual number of room that mortals should enter at. */
|
|
room_vnum mortal_start_room = 3001;
|
|
|
|
/* Virtual number of room that immorts should enter at by default. */
|
|
room_vnum immort_start_room = 1204;
|
|
|
|
/* Virtual number of room that frozen players should enter at. */
|
|
room_vnum frozen_start_room = 1202;
|
|
|
|
/* Virtual numbers of donation rooms. note: you must change code in do_drop of
|
|
* act.item.c if you change the number of non-NOWHERE donation rooms. */
|
|
room_vnum donation_room_1 = 3063;
|
|
room_vnum donation_room_2 = 5510;
|
|
room_vnum donation_room_3 = 235;
|
|
|
|
/* GAME OPERATION OPTIONS */
|
|
|
|
/* If false stock world files will be converted to 128bit. If true the MUD will
|
|
* exit with a warning when encountering stock world files. */
|
|
int bitwarning = FALSE;
|
|
|
|
/* If you want to look at normal world files but DO NOT want to save to 128bit
|
|
* format, turn this to false. However, do not save through olc, or your
|
|
* world files will be 128bit anyway. */
|
|
int bitsavetodisk = TRUE;
|
|
|
|
/* This is the default port on which the game should run if no port is given on
|
|
* the command-line. NOTE WELL: If you're using the 'autorun' script, the port
|
|
* number there will override this setting. Change the PORT= line in autorun
|
|
* instead of (or in addition to) changing this. */
|
|
ush_int DFLT_PORT = 4000;
|
|
|
|
/* IP address to which the MUD should bind. This is only useful if you're
|
|
* running Circle on a host that host more than one IP interface, and you only
|
|
* want to bind to *one* of them instead of all of them. Setting this to NULL
|
|
* (the default) causes Circle to bind to all interfaces on the host.
|
|
* Otherwise, specify a numeric IP address in dotted quad format, and Circle
|
|
* will only bind to that IP address. (Of course, that IP address must be one
|
|
* of your host's interfaces, or it won't work.) */
|
|
const char *DFLT_IP = NULL; /* bind to all interfaces */
|
|
/* const char *DFLT_IP = "192.168.1.1"; -- bind only to one interface */
|
|
|
|
/* Default directory to use as data directory. */
|
|
const char *DFLT_DIR = "lib";
|
|
|
|
/* What file to log messages to (ex: "log/syslog"). Setting this to NULL means
|
|
* you want to log to stderr, which was the default in earlier versions of
|
|
* Circle. If you specify a file, you don't get messages to the screen. (Hint:
|
|
* Try 'tail -f' if you have a UNIX machine.) */
|
|
const char *LOGNAME = NULL;
|
|
/* const char *LOGNAME = "log/syslog"; -- useful for Windows users */
|
|
|
|
/* Maximum number of players allowed before game starts to turn people away. */
|
|
int max_playing = 300;
|
|
|
|
/* Maximum size of bug, typo and idea files in bytes (to prevent bombing). */
|
|
int max_filesize = 50000;
|
|
|
|
/* Maximum number of password attempts before disconnection. */
|
|
int max_bad_pws = 3;
|
|
|
|
/* Rationale for enabling this, as explained by Naved:
|
|
* Usually, when you select ban a site, it is because one or two people are
|
|
* causing troubles while there are still many people from that site who you
|
|
* want to still log on. Right now if I want to add a new select ban, I need
|
|
* to first add the ban, then SITEOK all the players from that site except for
|
|
* the one or two who I don't want logging on. Wouldn't it be more convenient
|
|
* to just have to remove the SITEOK flags from those people I want to ban
|
|
* rather than what is currently done? */
|
|
int siteok_everyone = TRUE;
|
|
|
|
/* Some nameservers are very slow and cause the game to lag terribly every time
|
|
* someone logs in. The lag is caused by the gethostbyaddr() function which is
|
|
* responsible for resolving numeric IP addresses to alphabetic names.
|
|
* Sometimes, nameservers can be so slow that the incredible lag caused by
|
|
* gethostbyaddr() isn't worth the luxury of having names instead of numbers
|
|
* for players' sitenames. If your nameserver is fast, set the variable below
|
|
* to NO. If your nameserver is slow, of it you would simply prefer to have
|
|
* numbers instead of names for some other reason, set the variable to YES.
|
|
* You can experiment with the setting of nameserver_is_slow on-line using the
|
|
* SLOWNS command from within the MUD. */
|
|
int nameserver_is_slow = NO;
|
|
|
|
/* Will changes save automaticaly in OLC? */
|
|
int auto_save_olc = YES;
|
|
|
|
/* if you wish to enable Aedit, set this to YES. This will make the mud look
|
|
* for a file called socials.new, which is in a different format than the
|
|
* stock socials file. */
|
|
int use_new_socials = YES;
|
|
|
|
const char *MENU =
|
|
"\r\n"
|
|
"Welcome to tbaMUD!\r\n"
|
|
"0) Exit from tbaMUD.\r\n"
|
|
"1) Enter the game.\r\n"
|
|
"2) Enter description.\r\n"
|
|
"3) Read the background story.\r\n"
|
|
"4) Change password.\r\n"
|
|
"5) Delete this character.\r\n"
|
|
"\r\n"
|
|
" Make your choice: ";
|
|
|
|
const char *WELC_MESSG =
|
|
"\r\n"
|
|
"Welcome to tbaMUD! May your visit here be... Enlightening"
|
|
"\r\n\r\n";
|
|
|
|
const char *START_MESSG =
|
|
"Welcome. This is your new tbaMUD character! You can now earn gold,\r\n"
|
|
"gain experience, find weapons and equipment, and much more -- while\r\n"
|
|
"meeting people from around the world!\r\n";
|
|
|
|
/* AUTOWIZ OPTIONS */
|
|
/* Should the game automatically create a new wizlist/immlist every time someone
|
|
* immorts, or is promoted to a higher (or lower) god level? NOTE: this only
|
|
* works under UNIX systems. */
|
|
int use_autowiz = YES;
|
|
|
|
/* If yes, what is the lowest level which should be on the wizlist? (All immort
|
|
* levels below the level you specify will go on the immlist instead.) */
|
|
int min_wizlist_lev = LVL_GOD;
|
|
|
|
/* To mimic stock behavior set to NO. To allow mortals to see doors in exits
|
|
* set to YES. */
|
|
int display_closed_doors = YES;
|