Vanilla Netrek Server Development Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[VANILLA-L:1161] Server problem




I apologize if this is a well known problem, but I was unable to
find an answer in any archive.

The real problem is that we have a perfectly running vanilla 2.7
server that we downloaded as a linux binary, but we wanted to
change the galaxy map a bit.  We hacked up setgalaxy.c and
recompiled, but the new executable refuses to talk to the server
(shmget complains of an invalid parameter in openmem).  If you
can suggest how to solve this problem (get shmget working or give
me another way to edit the map) that would be good.

The solution I tried was to recompile the server (both 2.7pl7 and
2.8pl0 under RedHat 5.2).  I get a server that seems to run fine
and I can do the setgalaxy hack, BUT when a player dies and
restarts they immediately stop getting updates.  Eventually the
player is ghostbusted.  This happened even if we haven't used the
hacked setgalaxy.. so it's not that.

This happens with connections to every client we've tried
including: COW 2.02pl3 that we compiled ourselves for Irix, the
blessed COW 3.00pl0 for linux, and v2.1 of the Smith and Silvey
robots under Irix.  It's absolutely repeatable.  Given all that,
it seems likely that it's a server problem.  Obviously the
vanilla server works very well elsewhere, so maybe it's a subtle
bug in configure wrt RedHat 5.2?  Solving this problem would be
somewhat better in case we run up against another instance where
we'd like to modify the server.

I'm attaching my (largely unmodified) sysdef and my config.h.

Thanks in advance for any help!
Chris

/* config.h.  Generated automatically by configure.  */ /*
        Netrek Configuration file       -              by Kurt Siegl
*/

#ifndef __CONFIG_H
#define __CONFIG_H

/* 
################################################################################
	Type of code (select in configure.in)    
################################################################################
*/

/* #undef COW */
#define SERVER 1

/* 
################################################################################
	All The fun defines      
################################################################################
*/

/*
   Defines
      Some possible values:
   NOTE: Only NON-system specific defines belong here
*/

/* 
   ------------------------------------------------------------
	 	Common defines
   ------------------------------------------------------------
*/


/*  	RSA 			- New RSA reserved packets stuff 		*/
/* #define RSA  		- Defined in the Makefile 			*/

#define RCD                     /* RCD             - Support Reciever variable
                                                     distresses */

                                /* PING            - Ping statistics */
#define PING

                                /* SHORT_PACKETS   - Reduce Network load */
#define SHORT_PACKETS

                                /* SPEEDUP         - Misc improvements to make
                                                     the code faster */
#define SPEEDUP

                                /* FEATURE_PACKETS - feature packets */
#define FEATURE_PACKETS

				/* DEBUG   	   - Various useful debugging 
						     stuff.  No signal trap */
/* #undef  DEBUG */

/* 
   ------------------------------------------------------------
	 	COW only defines
   ------------------------------------------------------------
*/
#ifdef COW

/*	NBT 			- Nick trown's macro code			*/
#define NBT

/*	MAXPLAYER		- Maximal number of players + observers 	*/
#define MAXPLAYER 36

/*	CORRUPTED_PACKETS 	- prevents some seg faults but verbose output	*/
#define CORRUPTED_PACKETS

/*	EXPIRE=#      		- number of days this version will work for	*/
#define EXPIRE 365

/*	ARMY_SLIDER   		- some sort of funky status window thing	*/
#define ARMY_SLIDER

/*	META          		- show active servers via metaserver - NBT	*/
#define META

/*	PACKET_LOG    		- log packets to stdout (for bandwith measurement) */
#define PACKET_LOG

/*	NEWMACRO 		- newmacro language				*/
#define NEWMACRO 

/*	SMARTMACRO 		- macro extension (needs NEWMACRO)		*/
#define SMARTMACRO

/*	MULTILINE_MACROS	- enables multiline macros			*/
#define MULTILINE_MACROS

/*	XTREKRC_HELP 		- Hadley's xtrekrc window (stolden by KP)	*/
#define XTREKRC_HELP

/*	TOOLS			- Various tools, like shell escape, ...		*/
#define TOOLS

/*	SOUND			- support of external sound players		*/
#define SOUND

/*      HOCKEY_LINES            - allow showing of hockey lines			*/
#define HOCKEY_LINES

/*	SMALL_SCREEN		- for 800x600 resolution screens		*/
/* #define SMALL_SCREEN */

/*	BEEPLITE		- player and planets highlighting		*/
#define BEEPLITE

/*	VSHIELD_BITMAPS		- damage dependent shields (hull)		*/
#define VSHIELD_BITMAPS
#define VARY_HULL 

/*      WARP_DEAD		- Use death detection
*/
/* #undef  WARP_DEAD */

/*    RCM                     	- Receiver configurable Server messages 	*/
#define RCM

/* 	RACE_COLORS		- additional bitplane for race colors		*/
#define RACE_COLORS


#define PLIST1 
#define PLIST 
#define CONTROL_KEY
#define BRMH 
#define DOC_WIN
#define RABBIT_EARS 
#define ROTATERACE

/* client options */
#define IGNORE_SIGNALS_SEGV_BUS
#define NEW_DASHBOARD_2
#define MOUSE_AS_SHIFT
#define SHIFTED_MOUSE
#define TNG_FED_BITMAPS
#define MOTION_MOUSE
#define DIST_KEY_NAME

#endif		/* COW */


/* 
   ------------------------------------------------------------
	 	SERVER only defines
   ------------------------------------------------------------
*/
#ifdef SERVER

                                /*  AUTOMOTD       - Updates your MOTD every
                                                     12 hours */
/* #undef AUTOMOTD */

                                /*  CHAIN_REACTION - Don't give credit for
                                                     chain reactions */
#define CHAIN_REACTION

                                /*  CHECKMESG      - Check for god messages
                                                     and/or log all messages */
#define CHECKMESG

                                /*  ERIKPLAGUE     - Define for Erik's
                                                     Plagueing */
#define ERIKPLAGUE

                                /*  FEATURES       - Server/client
                                                     communication */
#define FEATURES

                                /*  FULL_HOSTNAMES - Show entire player
                                                     location (domain) */
#define FULL_HOSTNAMES

                                /*  INL_RESOURCES  - Use INL resources */
#define INL_RESOURCES

                                /*  INL_POP        - Use INL style planet
                                                     popping scheme */
#define INL_POP

                                /*  NO_PLANET_PLAGUE -Define for plagueing
                                                     (Don't use with
                                                     ERIKPLAGUE) */
/* #undef  NO_PLANET_PLAGUE */

                                /* NO_UNWARRING_BOMBING -No 3rd space bombing */
#define NO_UNWARRING_BOMBING

                                /* SHOW_RSA        - Display the client type
                                                     at login */
#define SHOW_RSA

                                /* RESETGALAXY     - Reset the galaxy after
                                                     each conquer */
#define RESETGALAXY

                                /* RESTRICT_BOMB   - No bombing out of t-mode */
#define RESTRICT_BOMB

                                /* SELF_RESET      - Galaxy will reset if the
                                                     daemon dies */
#define SELF_RESET

                                /* SHORT_THRESHOLD - For Short Packets */
#define SHORT_THRESHOLD

                                /* SURRENDER_SHORT - Cut surrender time in
                                                     half */
/* #undef  SURRENDER_SHORT */

                                /* TWO_RACE        - Conquer only a 1/4 of the
                                                     galaxy for reset */
#define TWO_RACE

                                /* SENDFLAGS       - Print flags set in MOTD */
/* #undef  SENDFLAGS */

				/* SENDPATCHLEVEL - Print release and
                                   patch level in MOTD */ 
#define SENDPATCHLEVEL


                                /* CHECK_ENV       - Check environment variable                                                     NTSERV_PATH for location
                                                     of system files */
/* #undef  CHECK_ENV */

                                /* GPPRINT         - Print which path is being
                                                     used to find the system
                                                     files */
/* #undef  GPPRINT */

                                /* ONCHECK         - support for trekon player
                                                     check */
#define  ONCHECK

                                /* NBR             - Leave in for server. It
                                                     tells programs like xsg
                                                     that it is this code. */
#define NBR

                                /* NEED_EXIT       - For systems that need exit                                                     defined */
#define NEED_EXIT

                                /* SB_TRANSWARP    - starbase transwarp */
#define SB_TRANSWARP

                                /* FLAT_BONUS      - 3x bonus for killing last
                                                     army on a planet */
/* #undef FLAT_BONUS */

                                /* BASEPRACTICE    - trainingserver support */
#define BASEPRACTICE

                                /* NEW_CREDIT      - give 1 planet for
                                                     destroying, two planets
                                                     for taking.  Be sure to
						     scale your player
						     database's planet counts
						     by a factor of three -
						     running newscores as
						     compiled with a -DCONVERT
						     _once_ will do this
						     scaling for you */
/* #undef NEW_CREDIT */

                                /* FASTER_SB_MAXUPDATES - allow 10 ups/sec for
                                                           SB's */
#define FASTER_SB_MAXUPDATES

                                /* SBFUEL_FIX      - fix starbase re-fueling */
#define SBFUEL_FIX

                                /* NEW_ETEMP       - Wreck's etemp fix */
/* #undef NEW_ETEMP */

                                /* DOGFIGHT        - .sysdef interface
                                                   for dogfight robot */
				/* CLUE2	   - include harder clue
						     questions */
/* #undef CLUE2 */
#define DOGFIGHT

                                /* OBSERVERS       - allow players to watch */
#define OBSERVERS

                                /* VOTING          - allow voting mode */
#define VOTING

                                /* ALLOW_EJECT     - define to allow players to
                                                     eject others */
                                
                                /* VICIOUS_EJECT   - free's the players slot
                                		     after ejection */
#ifdef VOTING
/* #undef ALLOW_EJECT */
#ifdef ALLOW_EJECT
#define VICIOUS_EJECT
#endif
#endif

                                /* NO_BRUTALITY    - disallow fighting between
                                                     waiting players in the
                                                     dogfighting mode */
#ifdef DOGFIGHT
#define NO_BRUTALITY
#endif

                                /* AS_CLOAK        - gives cloaked AS's more
                                                     randomness in their
                                                     apparent positions */
/* #undef AS_CLOAK */

                                /* GENO_COUNT      - keep track of a player's
                                                     winning genocides, see
						     tools/conq_vert.c for a
						     description of how to use
						     this define. */
/* #undef GENO_COUNT */

#ifdef VOTING
                                /* AUTO_INL        - starts up INL robot
                                                     by majority vote   */
#define AUTO_INL
                                /* AUTO_PRACTICE   - starts up PRACTICE robot
                                                     by majority vote   */
#ifdef BASEPRACTICE
#define AUTO_PRACTICE
#endif
                                /* AUTO_HOCKEY     - starts up HOCKEY robot
                                                     by majority vote   */
#define AUTO_HOCKEY
                                /* AUTO_DOGFIGHT   - starts up DOGFIGHT robot
                                                     by majority vote   */
				/* DOG_RANDOM      - somewhat random player
						     placement in arena */
#ifdef DOGFIGHT
#define AUTO_DOGFIGHT
/* #define DOG_RANDOM */
#endif

                                /* TRIPLE_PLANET_MAYHEM - enable voting
                                for the three planet cool server idea
                                by felix@coop.com */
#define TRIPLE_PLANET_MAYHEM
				/* Balance vote weightings; how important each
				t-mode stat is for calculating a player value */
#define BALANCE_BOMBING 100
#define BALANCE_PLANET  100
#define BALANCE_DEFENSE   0
#define BALANCE_OFFENSE 100
#endif
                                /* MESSAGES_ALL_TIME - allow messaging during
                                freezes like twarp, refit, and war decl.  */
/* #undef MESSAGES_ALL_TIME */
				/* RANDOM_PRACTICE_ROBOT - Gives the practice
				robot (Hoser) the option of comming out in
				a random ship type. */
/* #undef RANDOM_PRACTICE_ROBOT */

				/* Rolling statistics - makes the player stats
				reflect the immediate playing history of each
				player, for office games using BALANCE.  Set
				slots to 20 and mask to 32767 for 18 hours. */
/* #undef ROLLING_STATS */
/* #undef ROLLING_STATS_SLOTS */
/* #undef ROLLING_STATS_MASK */

#endif		/* SERVER */


/*
##############################################################################
       All system dependencies should be defined here 
##############################################################################
*/

#define NEED_EXIT

/* Automatic generated system dependend defines 			*/

/* #undef _ALL_SOURCES */
#define BSD_SIGNALS 1 
/* #undef SYSV_SIGNALS */ 
/* #undef POSIX_SIGNALS */
/* #undef RESTARTABLE_SYSCALLS */  
/* #undef NEED_MEMORY_H */ 
#define STDC_HEADERS 1 		/* 13/01/94 omit hosed index [007] */
#define HAVE_WAIT3 1 
/* #undef NEED_SYS_SELECT_H */ 
/* #undef NO_FD_SET */		/* Guess we suck badly if that happens :( */
#define HAVE_UNISTD_H 1 
#define HAVE_SYS_TIMEB_H 1
/* #undef TM_IN_SYS_TIME */ 
/* #undef TIME_WITH_SYS_TIME */
#define NEED_SYS_TIME_H 1 
/* #undef HAVE_SYS_PTYIO_H */ 
#define HAVE_SYS_FCNTL_H 1
#define HAVE_FCNTL_H 1
#define HAVE_CTYPE_H 1
/* #undef HAVE_MACHINE_ENDIAN_H */
#define HAVE_SYS_RESOURCE_H 1
#define HAVE_SYS_WAIT_H 1
#define HAVE_NETINET_IN_H 1
/* #undef NO_U_INT */ 
#define SIZEOF_LONG 4
#define HAVE_USLEEP 1 
#define HAVE_SETSTATE 1
#define HAVE_RANDOM 1
#define HAVE_FTIME 1
/* #undef STRFTIME */
/* #undef HAVE_NINT */
/* #undef NEED_RINT_DEC */
#define RETSIGTYPE void
/* #undef pid_t */ 
/* #undef uid_t */ 
/* #undef gid_t */
/* #undef size_t */ 
/* #undef vfork */ 
#if (defined(sparc) && defined(sun))
  #define vfork fork
#endif
/* #undef NO_PATH_MAX */
/* #undef inline */

#ifdef SERVER
#define LIBDIR "/usr/local/games/netrek"

/* System dependend programs */
#define UPTIME "/usr/bin/uptime"
#define NETSTAT "nice -20 /bin/netstat -a"

/*  UDP connection timeout fix for SYSV machines */
#ifdef HAVE_UNISTD_H
#define UDP_FIX
#endif
#endif

/* System dependend macros						*/

/* SYSV signal handling */
#ifdef SYSV_SIGNALS
#include <signal.h>
#define SIGNAL(x,y)   sigset(x,y)
#define PAUSE(x)      sigpause(x)
#define SIGSETMASK(x) { }
#else
#define SIGNAL(x,y)   signal(x,y)
#define PAUSE(x)      pause()
#define SIGSETMASK(x) sigsetmask(x)
#endif

#ifdef POSIX_SIGNALS
#define HANDLE_SIG(s,h)	signal(s,h)
#define setjmp(x) sigsetjmp(x,1)
#define longjmp(x,y) siglongjmp(x,y)
#else
#define HANDLE_SIG(s,h) {}
#endif

#ifdef STDC_HEADERS
#define INC_STRINGS	<string.h>
#else
#define INC_STRINGS	<strings.h>
#endif

#ifdef STDC_HEADERS
#define MCMP(x,y,z)     memcmp(x,y,z)
#define MCOPY(b1,b2,l)  memcpy(b2,b1,l)
#define MZERO(b1,l)     memset(b1,0,l)
#define INDEX(s,c)      strchr(s,c)
#define RINDEX(s,c)     strrchr(s,c)
#else
#define INDEX(s,c)	index(s,c)
#define RINDEX(s,c)	rindex(s,c) 
#define MCMP(x,y,z)     bcmp(x,y,z)
#define MCOPY(b1,b2,l)  bcopy(b1,b2,l)
#define MZERO(b1,l)     bzero(b1,l)
#endif

#ifdef SPEEDUP          /* strncpy is terrible slow */
#ifdef NEED_MEMORY_H
#include <memory.h>
#else
#include <string.h>
#endif
/* #define STRNCPY(x,y,z)	memcpy(x,y,z) */
#define STRNCPY(x,y,z)  memccpy(x,y,'\0',z) 
#else
#define STRNCPY(x,y,z)	strncpy(x,y,z)
#endif

#ifndef HAVE_WAIT3
#define WAIT3(x,y,z)  waitpid(-1, x, y ) 
#else
#define WAIT3(x,y,z)  wait3(x, y, z)
#endif

#if (defined(HAVE_RANDOM) && defined(HAVE_SETSTATE)) || !defined(HAVE_RANDOM)
#define RANDOM()        random()
#define SRANDOM(x)      srandom(x)
#else
#define RANDOM()        rrandom()
#define SRANDOM(x)      ssrandom(x)
extern void ssrandom ();
extern long rrandom ();
#endif

#if !defined(HAVE_RANDOM)
extern void srandom ();
extern long random ();
#endif

#if (SIZEOF_LONG == 8)
#define _64BIT
#define LONG int
#define U_LONG u_int
#else
#define LONG long
#define U_LONG u_long
#endif

/*	Some Server specific programs */
#ifdef SERVER

#include <sys/types.h>
/* SYSV Types */
#ifdef NO_U_INT
#define u_char unchar
#define u_int uint
#define u_long ulong
#define u_short ushort
#endif

#ifdef HAVE_UNISTD_H
#if defined (hpux) || defined(__osf__)
#define SETPGRP()       setsid()
#else
#if defined (linux) || defined(sgi) || (defined(sparc) && defined(sun))
#define SETPGRP()       setpgrp()
#else
#define SETPGRP()       setpgrp (0, 0)
#endif
#endif
#else
#define SETPGRP()       setpgrp (0, getpid())
#endif

#ifdef _SEQUENT_
#define PERMS O_RDWR | O_NOCTTY
#else
#define PERMS O_RDWR
#endif

#if defined(HAVE_UNISTD_H) && defined(TIOCTTY)
#define IOCTL(i) \
        int zero = 0;                           \
        (void) ioctl (i, TIOCTTY, &zero);
#else
#if defined(TIOCNOTTY)
#define IOCTL(i) \
        (void) ioctl (i, TIOCNOTTY, (char *) 0);
#else
#define IOCTL(i)
#endif
#endif

#define DETACH {\
    int i;                                                      \
    if ((i = open("/dev/tty", PERMS, 0)) >=0) {                 \
        IOCTL(i)                                                \
        (void) close (i);                                       \
    }                                                           \
    SETPGRP();                                                  \
    }

#ifdef HAVE_USLEEP
#define USLEEP(x)       usleep(x)
#else
#define USLEEP(x)       microsleep(x)           /* from util.c */
#endif

#if defined (SunOS)            /*  this core dumps with SIGSEGV on a sparc-10 */
#define LONGJMP(x,y)    return;
#else
#define LONGJMP(x,y)    longjmp(x,y);
#endif

#if defined (hpux)
#define PCLOSE(x)       fclose(x)
#else
#define PCLOSE(x)       pclose(x)
#endif

#if defined (__sequent__)
#define WAIT_TYPE    union wait
#define WSTOPSIG(foo)   0
#else
#define WAIT_TYPE int
#endif

#endif		/* SERVER programs */


/*  System dependend Include files */

#ifdef SERVER
#define NULLFILE		"../null"
#else
#define NULLFILE        	"null"
#endif

#ifdef NEED_SYS_SELECT_H
#define INC_SYS_SELECT 	<sys/select.h>
#ifdef SERVER
/* fd_set is used in data.h of the server */
#include <sys/select.h>
#endif
#else
#define INC_SYS_SELECT 	NULLFILE
#endif

#ifdef HAVE_UNISTD_H
#define INC_UNISTD      <unistd.h>
#else
#define INC_UNISTD      NULLFILE
#endif

#ifdef HAVE_SYS_FCNTL_H
#define INC_SYS_FCNTL   <sys/fcntl.h>
#else
#define INC_SYS_FCNTL   NULLFILE
#endif

#ifndef VMS
#ifdef HAVE_FCNTL_H
#define INC_FCNTL       <fcntl.h>
#else
#define INC_FCNTL       NULLFILE
#endif
#else
#define INC_FCNTL 	<file.h>
#endif


/* Some systems don't include <sys/time.h> in <time.h>  */
#if defined(TM_IN_SYS_TIME) || defined(NEED_SYS_TIME_H)
#define INC_SYS_TIME 	<sys/time.h>
#else
#define INC_SYS_TIME 	NULLFILE
#endif

#ifdef HAVE_SYS_PTYIO_H
#define INC_SYS_PTYIO 	<sys/ptyio.h>
#else
#define INC_SYS_PTYIO   NULLFILE
#endif

#ifdef HAVE_CTYPE_H
#define INC_CTYPE	<ctype.h>
#else
#define INC_CTYPE 	NULLFILE
#endif

#ifdef HAVE_MACHINE_ENDIAN_H
#define INC_MACHINE_ENDIAN <machine/endian.h>
#else
#define INC_MACHINE_ENDIAN NULLFILE
#endif

#ifdef HAVE_SYS_RESOURCE_H
#define INC_SYS_RESOURCE <sys/resource.h>
#else
#define INC_SYS_RESOURCE NULLFILE
#endif

#ifdef HAVE_SYS_WAIT_H
#define INC_SYS_WAIT 	<sys/wait.h>
#else
#define INC_SYS_WAIT 	NULLFILE
#endif
 
#if HAVE_NETINET_IN_H
#define INC_NETINET_IN 	<netinet/in.h>
#else
#define INC_NETINET_IN 	NULLFILE
#endif 

/* Replace outdated ftime with gettimeofday */
#if defined(HAVE_SYS_TIMEB_H) && defined(HAVE_FTIME)
#define INC_SYS_TIMEB   <sys/timeb.h>
#else
#define NOTIMEB
#define INC_SYS_TIMEB   <sys/time.h>
#endif

#ifdef NO_PATH_MAX
#define PATH_MAX 255
#define INC_LIMITS	NULLFILE
#else
#define INC_LIMITS	<limits.h>
#endif

/* Unchecked machine dependencies */

#ifdef linux
/* #define SIGBUS	SIGUNUSED 	Not required anymore */
#define SIGSYS		SIGUSR2
#endif

#ifdef linux
#define SHMFLAG         sizeof(struct memory)
#else
#define SHMFLAG         0
#endif

#ifdef sun3
#define INC_STDLIB 	NULLFILE
#else
#define INC_STDLIB	<stdlib.h>
#endif

#ifndef sun4
#ifdef HAVE_NINT
#define INC_MATH	<math.h>
#else
#ifdef NEED_RINT_DEC
extern double rint(double);
#define INC_MATH        NULLFILE
#else
#define INC_MATH        <math.h>
#endif
#define  nint(x) ((int) rint(x))
#endif
#endif

#ifdef VMS
#define  R_OK  04
typedef unsigned short int ushort;
#define Sin sinetable
#define Cos cosinetable
#define strncasecmp strncmp
#include <socket.h>    /* for struct timeval */
#include "vmsutils.h"  /* for typedef fd_set & FD_ macros */
#endif

/*
   Some systems, most notably SunOS 4.1.3, don't include function definitions
   in the libraries.  This results in some warning we don't want.
   This header defines the type for all these functions.
*/

#ifdef sun4
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>

int close(int);
int connect(int, struct sockaddr *, int);
int fprintf(FILE *, const char *, ...);
int fputs(char *, FILE *);
char *memccpy(char *, char *, int, int);
int perror(char *);
int socket(int, int, int);
int sscanf(char *, char *, ...);
char *strdup(char *arg);

char _filbuf(FILE *);
int _flsbuf(unsigned char, FILE *);

#endif /* defined sun4 */

#endif  /* __CONFIG_H */

# A Sample sysdef file
#
# 	Do clue checks (0 = no, 1 = yes)
CLUE=0
#
#	Do not cluecheck this rank or higher
CLUERANK=4
#
# 	Send in iggy (ie hunterkillers) (0 = no, 1 = yes)
HUNTERKILLER=0
#
# 	Reset galaxy if everyone leaves... (0 = no, 1 = yes)?
RESETGALAXY=0
#
# 	Log all messages (0 = no, 1 = yes)
LOGALL=0
#
# 	Log messages to god (0 = no, 1 = yes)
LOGGOD=1
#
# 	Check messages for configuration... (0 = no, 1 = yes)?
CHECKMESG=1
#
#       Log all warnings as messages (0 = no, 1 = yes)
EVENTLOG=0
#
# 	Auto-Doosh messages (0 = no, 1 = yes)
DOOSHER=0
#
# 	Show why dead messages (0 = no, 1 = yes)?
WHYMESS=1
#
# 	Show sysdef on galaxy map upon startup (0 = no, 1 = yes)
SHOWSYSDEF=1
#
# 	make planets move around (0 = no, 1 = yes)
PLANET_MOVE=0
#
# 	number of players per team for t-mode
TOURN=2
#
# 	Which ship types are allowed
SHIPS=SC,BB,DD,AS,CA,SB
#
# 	Which additional weapon systems are allowed
WEAPONS=PLASMA,TRACTOR
#
# 	Number of kills for plasma torpedos
PLKILLS=2
#
# 	Rank needed to take out starbase (3 = Commander)
SBRANK=3
#
# 	Use Chaos mode (0 = no, 1 = yes)
CHAOS=0
#
#  Use "wrap around" style galaxy (0 = no, 1 = yes)
WRAP_GALAXY=0
#
#  Use "Ping-Pong" plasma mode (0 = no, 1 = yes)
PINGPONG_PLASMA=0
#
#  Maximum number of Starbases allowed in Chaos mode
MAX_CHAOS_BASES=2
#
# 	Use topgun mode (0 = no, 1 = yes)
TOPGUN=0
#
# 	Use new turn mods (0 = no, 1 = yes)
NEWTURN=0
#
#       Use vector torps (0 = no, 1 = yes)
VECTOR=0
#
# 	Don't show far players in t-mode (0 = no, 1 = yes)
HIDDEN=1
#
#	Check system load every 10 mins.
LOADCHECK=0
#
# 	If load gets above this shut down server (Not sure if this still works)
MAXLOAD=100.0
#
# 	The numbers of the home planets
PLANETS=00,10,20,30
#
# 	Use binary confirmation (0 = no, 1 = RSA, 2 = RSA and reserved.c)
CONFIRM=0
#
#	For use with config.h's NEWMASK define. restrict diagnol games.
NODIAG=1
#
#	Have the server check for t-mode scummers. 
CHECKSCUM=1
#
# 	Allow UDP connections (0 = no, 1 = yes)
UDP=1
#
# 	Number of planets to start surrender counter
SURRSTART=1
#
# 	Frequency of pings in seconds
PING_FREQ=2
#
# 	Allow ghostbusting based on ping stats
PING_GHOSTBUST=1
#
# 	How many pings before we ghostbust the client
PING_GHOSTBUST_INTERVAL=60
#
#	Set the max. # of armies a planet can have out of t-mode.
MAX_POP=70
#
#	The amount of error messages the server will send to ERROR file. (1-3)
ERROR_LEVEL=2
#
#	The amount of armies the planets will be created with.
START_ARMIES=30
#
#	Turn on transwarp capabilities. (1 = on, 0 = off)
TRANSWARP=0
#
#	How fast transwarp is.
WARPSPEED=60
#
#	Special Motd for Robots
#MOTD=.motd_basep
#
#       Basepractice Server
BASEPRACTICE=0
#
#ROBOTHOST=myrtle
#
#	Hockey Server
HOCKEY=0
#
#########################################
INL=0
#
#########################################
DOGFIGHT=0
#
#	Dog-fighter: Number of the contestants needed before starting
CONTESTSIZE=4
#
#	Dog-Fighter: Number of matches per contest
NUMMATCH=10
#
#	Dog-Fighter: Save the player stats?	(not implemented yet..)
SAVE_DOG_STAT=1
#
#########################################
#	BigBang Ships: Make SHIP=1 if you want bigbang style ships.
#
SHIP=0
DD PLASMADAMAGE 85
DD MAXFUEL 7500
BB TORPCOST 320
BB PHASERCOST 945
!	Warpcost should ONLY be defined with SB_TRANSWARP define && TRANSWARP
SB WARPCOST 20
!	Recharge should ONLY be defined with SB_TRANSWARP define && TRANSWARP
SB RECHARGE 45
!	MaxWpnTemp should ONLY be defined when non-chaos mode.
SB MAXWPNTEMP 1500
END
#
#########################################
#	NewShip Ships: Make SHIP=1 if you want NEWSHIP ships.
#
SHIP=0
BB PHASERCOST 945
AS TORPCOST 210
!	MaxWpnTemp should ONLY be defined when non-chaos mode.
SB MAXWPNTEMP 1500
END
#########################################
#       Hockey Ships: Make SHIP=1 if you want hockey ships.
#
SHIP=0
SC   TRACTSTR  1000
SC   TRACTRNG  .56
DD   TRACTSTR  1250
DD   TRACTRNG  .72
BB   TRACTSTR  1850
BB   TRACTRNG  .96
AS   TRACTSTR  1850
AS   TRACTRNG  .96
SB   TRACTSTR  4000
SB   TRACTRNG  1.2
CA   TRACTSTR  1500
CA   TRACTRNG  .8
??   TRACTSTR  16383
GA   TRACTSTR  1500
GA   TRACTRNG  .8
END
# End of hockey ships section.