X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/903cd8615208a3e02ac9efbd881d73c409f996e2..7cc338f616a11e910933a1d2206d8a0811544195:/gameserv/tcpclient.cpp diff --git a/gameserv/tcpclient.cpp b/gameserv/tcpclient.cpp index fc9e2c3..7230650 100644 --- a/gameserv/tcpclient.cpp +++ b/gameserv/tcpclient.cpp @@ -35,7 +35,7 @@ using std::cerr; using std::endl; char *PACKAGE = "GameServ"; -char *VERSION = "1.2.1 +devel"; +char *VERSION = "1.2.3 +devel"; int sock; int day; @@ -102,8 +102,11 @@ int main(int argc, char *argv[]) perror("Could not turn into a daemon"); exit(3); } + init_masters(); load_gs_dbase(); + cout << "Loading news" << endl; + loadNews(newsdata, todaysnews); if (load_monsters() == false) goto end; @@ -122,9 +125,11 @@ int main(int argc, char *argv[]) strcpy(boss.name, "Red Dragon"); strcpy(boss.weapon, "Breath of Unholy Fire"); - boss.strength = 6667; + 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!"); @@ -177,12 +182,20 @@ int main(int argc, char *argv[]) raw("NICK %S 1 %d +w%s %s %s %s :GameServ", time(NULL), (isBOper() ? "o" : ""), gsident, gshost, servername); raw(":%s SJOIN %ld %s +nt :@%S", servername, time(NULL), c_Forest); +#elif defined(ULTIMATE2) + raw("PASS %s :TS", remotepass); + raw("SERVER %s 1 :%s", servername, servername); + raw("NICK %S 1 %d %s %s %s 0 :GameServ", + time(NULL), gsident, gshost, servername); + if (isBOper()) + raw(":%S mode %S +o"); + raw(":%S JOIN %s", c_Forest); #elif defined(P10) // Server numeric is: [] <-- must be unique raw("PASS :%s", remotepass); raw("SERVER %s 1 %d %d P10 []AAF :%s", servername, time(NULL), time(NULL), servername); raw("[] N %S 1 %d %s %s %s DAqAoB %s :%S", time(NULL), gsident, gshost, - (isBOper() ? "+o" : "") gsnum); + (isBOper() ? "+o" : ""), gsnum); raw("[] B %s %d +tn %s:o", c_Forest, time(NULL) - 864000, gsnum); #endif @@ -190,9 +203,14 @@ int main(int argc, char *argv[]) raw("%s T %s :%s", gsnum, c_Forest, c_ForestTopic); raw("[] EB"); // End burst #else -#ifndef HYBRID - raw(":%S MODE %s +o %S", c_Forest); -#endif + #ifndef HYBRID + #if defined(ULTIMATE2) + raw(":%s MODE %s +o %S %ld", servername, c_Forest, + time(NULL)); + #else + raw(":%S MODE %s +o %S", c_Forest); + #endif + #endif raw(":%S TOPIC %s :%s", c_Forest, c_ForestTopic); #endif @@ -254,6 +272,7 @@ int main(int argc, char *argv[]) oldTime = currentTime; log("Saving to %s", playerdata); save_gs_dbase(); + saveNews(newsdata, todaysnews); } @@ -336,20 +355,24 @@ int main(int argc, char *argv[]) if (loaded) + + if (isWelcome()) + { + #ifdef P10 + notice(s_GameServ, nick, welcomemsg, realnick); + #else + notice(s_GameServ, nick, welcomemsg, nick); + #endif + } #ifdef P10 - notice(s_GameServ, nick, welcomemsg, realnick); - #else - notice(s_GameServ, nick, welcomemsg, nick); - #endif - #ifdef P10 - unsigned long hv = sHASH((unsigned char *) nick) + unsigned long hv = sHASH((unsigned char *) nick); #else unsigned long hv = iHASH((unsigned char *) nick); #endif temp = clients[hv].insertAtBack(newuser); - #if defined(HYBRID) || defined(BAHAMUT) + #if defined(HYBRID) || defined(BAHAMUT) || defined(ULTIMATE2) char *nickserver; strtok(NULL, " "); strtok(NULL, " "); @@ -357,7 +380,6 @@ int main(int argc, char *argv[]) if (nickserver[0] == '+') strtok(NULL, " "); strtok(NULL, " "); - nickserver = strtok(NULL, " "); for (int x = 0; x < 32; x++) { @@ -463,7 +485,7 @@ int main(int argc, char *argv[]) rest = strtok(NULL, ""); if (strnicmp(dest, s_GameServ, strlen(s_GameServ)) == 0) gameserv(source, rest); - else if (stricmp(dest, c_Forest) == 0) + else if (stricmp(dest, c_Forest) == 0 && isListenOnCF()) forest(source, rest); #endif #if defined(P10) @@ -537,6 +559,7 @@ int main(int argc, char *argv[]) end: save_gs_dbase(); + saveNews(newsdata, todaysnews); save_day(); delete_monsters();