X-Git-Url: https://jfr.im/git/irc/gameservirc.git/blobdiff_plain/5963944bc61eff9f45223100f7a8e7b40adc6bca..4dde2ed9f323c87a1f54b002c66da835f7dc0baa:/gameserv/tcpclient.cpp diff --git a/gameserv/tcpclient.cpp b/gameserv/tcpclient.cpp index 0f87a07..998ab43 100644 --- a/gameserv/tcpclient.cpp +++ b/gameserv/tcpclient.cpp @@ -25,6 +25,9 @@ #include #include +char *PACKAGE = "GameServ"; +char *VERSION = "1.1.2"; + int sock; long timestamp; @@ -66,8 +69,8 @@ int main(int argc, char *argv[]) raw("PROTOCTL NICKv2 VHP"); raw("PASS :%s", remotepass); raw("SERVER %s 1 :%s", servername, servername); - raw("NICK %S 1 %d %S %s %s %d +owghraAxNt %s :GameServ", time(NULL), gshost, - servername, time(NULL), gshost); + raw("NICK %S 1 %d %S %s %s %d +owghraAxNt %s :%s v%s", time(NULL), gshost, + servername, time(NULL), gshost, PACKAGE, VERSION); raw(":%S JOIN %s", c_Forest); raw(":%S MODE %s +mtn", c_Forest); #elif defined(BAHAMUT) @@ -86,13 +89,15 @@ int main(int argc, char *argv[]) printf("Server: %s\n",buffer); - init_monsters(); init_masters(); load_gs_dbase(); load_timestamp(); int loadtime = time(NULL); bool loaded = false; + if (load_monsters() == false) + goto end; + while (connected) { if (sock_gets(sock,buffer,sizeof(buffer)) == -1) { connected = 0; @@ -109,10 +114,10 @@ int main(int argc, char *argv[]) cout << "Server: " << buffer << endl << flush; - // Wait five seconds then we're loaded. + // Wait N seconds then we're loaded. if (!loaded) { - if (time(NULL) >= 5 + loadtime) + if (time(NULL) >= confloadtime + loadtime) loaded = true; } @@ -120,6 +125,11 @@ int main(int argc, char *argv[]) char *timestamp; timestamp = strtok(NULL, ""); raw("PONG %s", timestamp); + } else if (stricmp(cmd, "VERSION") == 0) { + char *server; + server = strtok(NULL, " "); + server++; + raw(":%s 351 %s %s %s. %s", servername, source+1, PACKAGE, VERSION, servername); } else if (strncmp(cmd, "NICK", 4) == 0) { if (buffer[0] == ':') { @@ -138,10 +148,8 @@ int main(int argc, char *argv[]) nick = strtok(NULL, " "); newuser = new aClient(nick); if (loaded) - { - notice(s_GameServ, nick, "Hello, %s! This network utilizes a services package called GameServ.", nick); - notice(s_GameServ, nick, "For info on how to play the game, type /msg %S help."); - } + notice(s_GameServ, nick, welcomemsg, nick); + clients.insertAtBack(newuser); delete newuser; } @@ -184,8 +192,12 @@ int main(int argc, char *argv[]) // source << endl; } } + + end: + save_gs_dbase(); save_timestamp(); + delete_monsters(); delete_masters();