Add sysconf BONES_POOLS to allow more bones-files per level
Reduce the chance of a player playing on a public server encountering their own bones, by implementing separate bones pools. The pool a player belongs to is determined at game start, and only bones in that pool are used. The sysconf BONES_POOLS allows the sysadmin to define how many pools there are.
This commit is contained in:
@@ -615,6 +615,7 @@ blinded hero or monster who eats a nurse corpse will have blindness cured
|
||||
blinded hero or monster who breathes vapor from broken potion of healing,
|
||||
extra healing, or full healing might have blindness cured (depends on
|
||||
potion: full == always; extra == if not-cursed; plain == if blessed)
|
||||
sysconf definition BONES_POOLS to allow more bones files per level
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific New Features
|
||||
|
||||
@@ -27,6 +27,7 @@ struct sysopt {
|
||||
int seduce;
|
||||
int check_save_uid; /* restoring savefile checks UID? */
|
||||
int check_plname; /* use plname for checking wizards/explorers/shellers */
|
||||
int bones_pools;
|
||||
|
||||
/* record file */
|
||||
int persmax;
|
||||
|
||||
@@ -704,6 +704,10 @@ d_level *lev;
|
||||
Sprintf(dptr, ".%c", sptr->boneid);
|
||||
else
|
||||
Sprintf(dptr, ".%d", lev->dlevel);
|
||||
#ifdef SYSCF
|
||||
if (sysopt.bones_pools > 1)
|
||||
Sprintf(eos(file), ".%d", (ubirthday % sysopt.bones_pools));
|
||||
#endif
|
||||
#ifdef VMS
|
||||
Strcat(dptr, ";1");
|
||||
#endif
|
||||
@@ -2278,6 +2282,9 @@ int src;
|
||||
if (sysopt.genericusers)
|
||||
free((genericptr_t) sysopt.genericusers);
|
||||
sysopt.genericusers = dupstr(bufp);
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "BONES_POOLS", 10)) {
|
||||
n = atoi(bufp);
|
||||
sysopt.bones_pools = (n < 0) ? 0 : n;
|
||||
} else if (src == SET_IN_SYS && match_varname(buf, "SUPPORT", 7)) {
|
||||
if (sysopt.support)
|
||||
free((genericptr_t) sysopt.support);
|
||||
|
||||
@@ -40,6 +40,7 @@ sys_early_init()
|
||||
sysopt.explorers = (char *) 0;
|
||||
sysopt.genericusers = (char *) 0;
|
||||
sysopt.maxplayers = 0; /* XXX eventually replace MAX_NR_OF_PLAYERS */
|
||||
sysopt.bones_pools = 0;
|
||||
|
||||
/* record file */
|
||||
sysopt.persmax = PERSMAX;
|
||||
|
||||
@@ -98,6 +98,14 @@ MAXPLAYERS=10
|
||||
# %N first character of player name
|
||||
#DUMPLOGFILE=/tmp/nethack.%n.%d.log
|
||||
|
||||
# Number of bones file pools.
|
||||
# The pool you belong to is determined at game start. You will
|
||||
# load and save bones only from that pool. Generally useful
|
||||
# for public servers only.
|
||||
# Changing this might make existing bones inaccessible.
|
||||
# Disabled by setting to 0, or commenting out.
|
||||
#BONES_POOLS=10
|
||||
|
||||
# Try to get more info in case of a program bug or crash. Only used
|
||||
# if the program is built with the PANICTRACE compile-time option enabled.
|
||||
# By default PANICTRACE is enabled if BETA is defined, otherwise disabled.
|
||||
|
||||
@@ -53,6 +53,14 @@
|
||||
# Maximum number of score file entries to use for random statue names
|
||||
#MAX_STATUENAME_RANK=10
|
||||
|
||||
# Number of bones file pools.
|
||||
# The pool you belong to is determined at game start. You will
|
||||
# load and save bones only from that pool. Generally useful
|
||||
# for public servers only.
|
||||
# Changing this might make existing bones inaccessible.
|
||||
# Disabled by setting to 0, or commenting out.
|
||||
#BONES_POOLS=10
|
||||
|
||||
# Show debugging information originating from these source files.
|
||||
# Use '*' for all, or list source files separated by spaces.
|
||||
# Only available if game has been compiled with DEBUG, and can be
|
||||
|
||||
@@ -32,6 +32,14 @@ WIZARDS=*
|
||||
# %N first character of player name
|
||||
#DUMPLOGFILE=nethack-%n-%d.log
|
||||
|
||||
# Number of bones file pools.
|
||||
# The pool you belong to is determined at game start. You will
|
||||
# load and save bones only from that pool. Generally useful
|
||||
# for public servers only.
|
||||
# Changing this might make existing bones inaccessible.
|
||||
# Disabled by setting to 0, or commenting out.
|
||||
#BONES_POOLS=10
|
||||
|
||||
# Limit the number of simultaneous games (see also nethack.sh).
|
||||
#MAXPLAYERS=10
|
||||
|
||||
|
||||
Reference in New Issue
Block a user