#include <stdlib.h>
#include <fcntl.h>
#include <signal.h>
+
//#include <sys/types.h>
//#include <sys/wait.h>
//#include <errno.h>
-using std::ofstream;
-using std::ifstream;
-using std::cerr;
-using std::endl;
+using namespace std;
char *PACKAGE = "GameServ";
-char *VERSION = "1.2.3 +devel";
+char *VERSION = "1.2.6 +devel";
int sock;
long lastrefresh;
perror("Could not turn into a daemon");
exit(3);
}
+ if (load_items() == 0)
+ {
+ log("Error loading items");
+ goto end;
+ }
+
+ if (load_store() == 0)
+ {
+ log("Error loading store");
+ goto end;
+ }
+ if (load_tavern() == 0)
+ {
+ log("Error loading tavern");
+ goto end;
+ }
- init_masters();
load_gs_dbase();
loadNews(newsdata, todaysnews);
+
+ if (load_masters() == false)
+ {
+ log("Error loading masters");
+ goto end;
+ }
+
if (load_monsters() == false)
- goto end;
+ {
+ log("Error loading monsters");
+ goto end;
+ }
+
+ if (!load_dragon())
+ {
+ log("Error loading dragon");
+ goto end;
+ }
+
+ if (load_levels() == false)
+ {
+ log("Error loading levels");
+ goto end;
+ }
shuttingdown = false;
currentserver = strtok(NULL, " ");
}
- strcpy(boss.name, "Red Dragon");
- strcpy(boss.weapon, "Breath of Unholy Fire");
- boss.strength = 2500;
- boss.gold = 2000000000;
- boss.exp = 2000000000;
- boss.maxhp = 6667;
- boss.hp = 6667;
- strcpy(boss.death, "You finally snuff out the deadly murderous "\
- "dragon's dark flames. You have freed the land of its terror "\
- "filled reign from above!");
-
-
// This loop will retry the connection 3 times
for (int retry = 0; retry < 3 && !shuttingdown; retry++)
{
bool loaded = false;
ignore_pipe();
- sock = make_connection(remoteport, SOCK_STREAM, remoteserver);
+ sock = conn(remoteserver, remoteport, localhost, 0);
+ // sock = make_connection(remoteport, SOCK_STREAM, remoteserver);
if (sock == -1) {
fprintf(stderr,"make_connection failed.\n");
unload_config_file();
raw(":%S TOPIC %s :%s", c_Forest, c_ForestTopic);
#endif
+ #ifndef P10
+ if (isUseNickServ())
+ {
+ raw(":%S PRIVMSG %s :IDENTIFY %s", nsname, nspass);
+ }
+ #endif
sock_gets(sock,buffer,sizeof(buffer)-1); /* -1 added thanks to
David Duchene <dave@ltd.com> for pointing out the possible
buffer overflow resulting from the linefeed added below. */
lastrefresh = currentTime;
save_lastrefresh();
notice(s_GameServ, c_Forest, "Refreshing all players "\
- "and resetting news! %ld", refreshperiod);
+ "and resetting news!");
}
// Save the player data every updateperiod seconds
{
oldTime = currentTime;
log("Saving to %s", playerdata);
+
save_gs_dbase();
saveNews(newsdata, todaysnews);
+ if (isSavedNotice())
+ {
+ // Send notice to the channel of the update
+ notice(s_GameServ, c_Forest, "%S player data saved");
+ }
}
{
#ifdef DEBUGMODE
log("Player %s (IRC: %s) joined %s",
- joiner->stats->name,
+ joiner->stats->name.c_str(),
#ifdef P10
joiner->getRealNick(),
#else
end:
save_gs_dbase();
+ save_dragon();
saveNews(newsdata, todaysnews);
delete_monsters();
- delete_masters();
#ifdef DEBUGMODE
log("<CLOSED>");
if (!is_playing(p))
return NULL;
- unsigned long hv = iHASH((unsigned char *) p->stats->name);
+ unsigned long hv = iHASH((unsigned char *) p->stats->name.c_str());
for (newPtr = players[hv].First(); newPtr; newPtr = newPtr->Next())
{
for (newPtr = players[hv].First(); newPtr; newPtr = newPtr->Next())
{
p = newPtr->getData()->stats;
- if (stricmp(p->name, name) == 0)
+ if (stricmp(p->name.c_str(), name) == 0)
return newPtr->getData();
p = NULL;
}
void prettyIntro()
{
-cout << endl;
-cout << " GGGG AAA MM MM EEEEEEE SSSSS EEEEEEE RRRRRR VV VV " << endl;
-cout << " GG GG AAAAA MMM MMM EE SS EE RR RR VV VV " << endl;
-cout << "GG AA AA MM MM MM EEEEE SSSSS EEEEE RRRRRR VV VV " << endl;
-cout << "GG GGG AAAAAAA MM MM EE SS EE RR RR VV VV " << endl;
-cout << "G G AA AA MM MM EEEEEEE SSSSS EEEEEEE RR RR VVV" << endl;
-cout << " GGGGG V\n\n" << endl;
-cout << "Version: " << VERSION << endl;
+ cout << endl;
+ cout << " GGGG AAA MM MM EEEEEEE SSSSS EEEEEEE RRRRRR VV VV " << endl;
+ cout << " GG GG AAAAA MMM MMM EE SS EE RR RR VV VV " << endl;
+ cout << "GG AA AA MM MM MM EEEEE SSSSS EEEEE RRRRRR VV VV " << endl;
+ cout << "GG GGG AAAAAAA MM MM EE SS EE RR RR VV VV " << endl;
+ cout << "G G AA AA MM MM EEEEEEE SSSSS EEEEEEE RR RR VVV" << endl;
+ cout << " GGGGG V\n\n" << endl;
+ cout << "Version: " << VERSION << endl;
+ cout << "http://www.gameserv.us - http://www.sourceforge.net/projects/gameservirc" << endl;
}
void load_lastrefresh()