char *adminpass; // Administrator password
char *welcomemsg; // Welcome Message
char *ignoreserverslist; // Servernames to ignore
+char *nsname; // NickServ's name
+char *nspass; // GameServ's NickServ Password
+
int welcomedelay; // Welcome Message Delay
int updateperiod; // Seconds until another player database update
int forestfights; // Forest fights per day
int maxbfightdistance; // Max levels below a player they can fight player->player
int maxidletime; // Max time (in seconds) a player can be idle for
int idlecheckperiod; // Period for checking every player's idle time
+int level1expire; // Days for level 1 players to expire
+int defaultexpire; // Days for other levels to expire
+long refreshperiod; // Period for refreshing players
long configflags; // Holds the bit representation of some boolean values
// Remote server stuff. This is used for the outgoing connection gameserv needs to make
char *remotepass; // Password for the server link
char *playerdata; // File to store player data in
-char *monsterdata; // File to load monster data from
+char *newsdata; // File to store news data in
char *pidfile; // Process ID file
#if defined(P10)
delete [] remotepass;
if (playerdata)
delete [] playerdata;
- if (monsterdata)
- delete [] monsterdata;
if (adminpass)
delete [] adminpass;
if (welcomemsg)
delete [] pidfile;
if (ignoreserverslist)
delete [] ignoreserverslist;
+ if (newsdata)
+ delete [] newsdata;
+ if (nsname)
+ delete [] nsname;
+ if (nspass)
+ delete [] nspass;
configflags = 0;
}
{
char *buf, *directive, *value;
- #define numdirectives 21
+ #define numdirectives 28
unload_config_file();
directives[7].desc = "REMOTEPORT - Port on the remote server to connect to";
directives[8].desc = "REMOTEPASS - Password on the remote server";
directives[9].desc = "PLAYERDATA - File to store the player saves in";
- directives[10].desc = "MONSTERDATA - File to load the monsters from";
+ directives[10].desc = "SAVEDNOTICE - True/False as to wether or not to tell the forest "\
+ "channel that the player database has been saved";
directives[11].desc = "ADMINPASS - Password to identify as an admin with";
directives[12].desc = "WELCOMEDELAY - Delay (in seconds) to wait before welcoming new users to the network";
directives[13].desc = "FORESTFIGHTS - Number of forest fights players get every day";
directives[20].desc = "LISTENONC_FOREST - True/False as to "\
"whether or not to listen for forest "\
"commands on the forest channel";
+ directives[21].desc = "NEWSDATA - File to store daily news in";
+ directives[22].desc = "REFRESHPERIOD - Period (in seconds) to "\
+ "refresh players";
+ directives[23].desc = "LEVEL1EXPIRE - Amount of days until a "\
+ "level 1 player's account is deleted due to "\
+ "inactivity.";
+ directives[24].desc = "DEFAULTEXPIRE - Amount of days until a "\
+ "level 2 and above player's account is "\
+ "deleted due to inactivity";
+ directives[25].desc = "USENICKSERV - True/False as to wether or not "\
+ "GameServ should identify with NickServ";
+ directives[26].desc = "NSNAME - Your network's NickServ nickname";
+ directives[27].desc = "NSPASS - GameServ's NickServ Password";
configflags = 0;
strcpy(playerdata, value);
directives[9].done = true;
}
- else if (stricmp(directive, "MONSTERDATA") == 0)
+ else if (stricmp(directive, "SAVEDNOTICE") == 0)
{
value = strtok(NULL, "");
- monsterdata = new char[strlen(value) + 1];
- strcpy(monsterdata, value);
+ if (stricmp(value, "TRUE") == 0)
+ setSavedNotice();
directives[10].done = true;
}
else if (stricmp(directive, "ADMINPASS") == 0)
directives[20].done = true;
}
+ else if (stricmp(directive, "NEWSDATA") == 0)
+ {
+ value = strtok(NULL, " ");
+ newsdata = new char [strlen(value) + 1];
+ strcpy(newsdata, value);
+ directives[21].done = true;
+ }
+ else if (stricmp(directive, "REFRESHPERIOD") == 0)
+ {
+ value = strtok(NULL, " ");
+ refreshperiod = stringtoint(value);
+ directives[22].done = true;
+ }
+ else if (stricmp(directive, "LEVEL1EXPIRE") == 0)
+ {
+ value = strtok(NULL, " ");
+ level1expire = stringtoint(value);
+ directives[23].done = true;
+ }
+ else if (stricmp(directive, "DEFAULTEXPIRE") == 0)
+ {
+ value = strtok(NULL, " ");
+ defaultexpire = stringtoint(value);
+ directives[24].done = true;
+ }
+ else if (stricmp(directive, "USENICKSERV") == 0)
+ {
+ value = strtok(NULL, " ");
+ if (stricmp(value, "TRUE") == 0)
+ {
+ setUseNickServ();
+ }
+
+ directives[25].done = true;
+ }
+ else if (stricmp(directive, "NSNAME") == 0)
+ {
+ value = strtok(NULL, "");
+ nsname = new char[strlen(value) + 1];
+ strcpy(nsname, value);
+ directives[26].done = true;
+ }
+ else if (stricmp(directive, "NSPASS") == 0)
+ {
+ value = strtok(NULL, "");
+ nspass = new char[strlen(value) + 1];
+ strcpy(nspass, value);
+ directives[27].done = true;
+ }
else if (stricmp(directive, "WELCOMEMSG") == 0)
{
// This directive is optional