printf("Server: %s\n",buffer);
init_monsters();
- //load_gs_dbase();
+ load_gs_dbase();
while (connected) {
if (sock_gets(sock,buffer,sizeof(buffer)) == -1) {
connected = 0;
else
cmd = strtok(buf, " ");
- cout << "Server: " << buffer << endl;
+ cout << "Server: " << buffer << endl << flush;
if (stricmp(cmd, "PING") == 0) {
- char *times;
- times = strtok(NULL, "");
- printf("input: PONG %s \n", times);
- raw("PONG %s ", times);
+ char *timestamp;
+ timestamp = strtok(NULL, "");
+ raw("PONG %s", timestamp);
} else if (strncmp(cmd, "NICK", 4) == 0) {
if (buffer[0] == ':')
{
aClient *quitter;
if (quitter = find(source + 1))
clients.remove(quitter);
+ if (quitter = findplayer(source + 1))
+ players.remove(quitter);
} else if (stricmp(cmd, "PRIVMSG") == 0) {
char *rest, *dest;
dest = strtok(NULL, " ");
rest = strtok(NULL, "");
- if (stricmp(dest, s_GameServ) == 0)
+ if (strnicmp(dest, s_GameServ, strlen(s_GameServ)) == 0)
gameserv(source, rest);
else if (stricmp(dest, c_Forest) == 0)
forest(source, rest);
return client;
}
+aClient *findplayer(const char *name)
+{
+ ListNode <aClient> *newPtr;
+ Player *p = NULL;
+
+ for (newPtr = players.First(); newPtr; newPtr = newPtr->Next())
+ {
+ p = newPtr->getData()->stats;
+ if (stricmp(p->name, name) == 0)
+ return newPtr->getData();
+ p = NULL;
+ }
+ return NULL;
+}
+
aClient *findbynick(const char *nick)
{
ListNode <aClient> *newPtr;