]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv/tcpclient.cpp
removed the annoying player data saved msg unless in debugmode
[irc/gameservirc.git] / gameserv / tcpclient.cpp
index 0394335b24fd910d9af8df81f93ab64de05447a4..fdeff2d083e4b3d062f9a401d08e199c9ed50c1b 100644 (file)
@@ -35,7 +35,7 @@ using std::cerr;
 using std::endl;
 
 char *PACKAGE = "GameServ";
-char *VERSION = "1.2.3 +devel";
+char *VERSION = "1.2.4 +devel";
 
 int sock;
 long lastrefresh;
@@ -108,7 +108,16 @@ int main(int argc, char *argv[])
   loadNews(newsdata, todaysnews);
 
   if (load_monsters() == false)
+  {
+       log("Error loading monsters");
+       goto end;
+  }
+
+  if (load_levels() == false)
+  {
+       log("Error loading levels");
        goto end;
+  }
 
     shuttingdown = false;
 
@@ -265,12 +274,16 @@ int main(int argc, char *argv[])
        }
 
        // Refresh players and clear news if the time is up
-       if (loadtime - lastrefresh >= refreshperiod)
+       currentTime = time(NULL);
+       if (currentTime - lastrefresh >= refreshperiod)
        {
            refreshall();
            clearNews(todaysnews);
            saveNews(newsdata, todaysnews);
+           lastrefresh = currentTime;
            save_lastrefresh();
+           notice(s_GameServ, c_Forest, "Refreshing all players "\
+                       "and resetting news!");
        }
 
        // Save the player data every updateperiod seconds
@@ -279,8 +292,13 @@ int main(int argc, char *argv[])
        {
            oldTime = currentTime;
            log("Saving to %s", playerdata);
+
            save_gs_dbase();
            saveNews(newsdata, todaysnews);
+           // Send notice to the channel of the update
+           #ifdef DEBUGMODE
+               notice(s_GameServ, c_Forest, "%S player data saved");
+           #endif
        }
 
 
@@ -700,6 +718,26 @@ void check_idles()
        for (newPtr = players[x].First(); newPtr; newPtr = newPtr->Next())
        {
            p = newPtr->getData()->stats;
+           switch(p->level)
+           {
+               case 1:
+               if ((time(NULL) - p->lastlogin) / 86400 >= level1expire)
+               {
+                   logout(newPtr->getData());
+                   players[x].remove(newPtr->getData());
+                   return;
+               }
+                   break;
+
+               default:
+               if ((time(NULL) - p->lastlogin) / 86400 >= defaultexpire)
+               {
+                   logout(newPtr->getData());
+                   players[x].remove(newPtr->getData());
+                   return;
+               }
+                   break;
+           }
            if (timedOut(p))
            {
                timeOutEvent(p);
@@ -822,10 +860,17 @@ void load_lastrefresh()
        #endif
 
        generate:
+       long mytime = time(NULL);
        #ifdef DEBUGMODE
            log("Generating new refresh time");
        #endif
-       lastrefresh = time(NULL);
+
+       // Just a safety measure... tho no one should
+       // get anywhere near the time as their refreshperiod
+       if (refreshperiod >= mytime)
+           refreshperiod = 86400;
+
+       lastrefresh = mytime - (mytime % refreshperiod);
        refreshall();
        save_lastrefresh();
        return;