X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/14e24ba1bf9a16eb685914837c83d6c1798011b6..c7bceafda9c7c1045b398d8454a0a2ed0fbd9170:/gameserv/tcpclient.cpp diff --git a/gameserv/tcpclient.cpp b/gameserv/tcpclient.cpp index b4a9c81..d0ae5f0 100644 --- a/gameserv/tcpclient.cpp +++ b/gameserv/tcpclient.cpp @@ -25,17 +25,15 @@ #include #include #include + //#include //#include //#include -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; @@ -102,13 +100,39 @@ int main(int argc, char *argv[]) perror("Could not turn into a daemon"); exit(3); } + if (load_items() == 0) + { + log("Error loading items"); + 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; @@ -122,18 +146,6 @@ int main(int argc, char *argv[]) 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++) { @@ -213,6 +225,12 @@ int main(int argc, char *argv[]) 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 for pointing out the possible buffer overflow resulting from the linefeed added below. */ @@ -274,7 +292,7 @@ int main(int argc, char *argv[]) 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 @@ -283,8 +301,14 @@ int main(int argc, char *argv[]) { 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"); + } } @@ -520,7 +544,7 @@ int main(int argc, char *argv[]) { #ifdef DEBUGMODE log("Player %s (IRC: %s) joined %s", - joiner->stats->name, + joiner->stats->name.c_str(), #ifdef P10 joiner->getRealNick(), #else @@ -571,10 +595,10 @@ int main(int argc, char *argv[]) end: save_gs_dbase(); + save_dragon(); saveNews(newsdata, todaysnews); delete_monsters(); - delete_masters(); #ifdef DEBUGMODE log(""); @@ -663,7 +687,7 @@ aClient *findIRCplayer(const char *nick) 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()) { @@ -687,7 +711,7 @@ aClient *findplayer(const char *name) 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; } @@ -709,7 +733,7 @@ void check_idles() case 1: if ((time(NULL) - p->lastlogin) / 86400 >= level1expire) { - logout(p->client); + logout(newPtr->getData()); players[x].remove(newPtr->getData()); return; } @@ -718,7 +742,7 @@ void check_idles() default: if ((time(NULL) - p->lastlogin) / 86400 >= defaultexpire) { - logout(p->client); + logout(newPtr->getData()); players[x].remove(newPtr->getData()); return; } @@ -825,14 +849,15 @@ void closeall(int fd) 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()