bool shuttingdown;
bool timedOut(Player *p);
-void updateTS(Player *p);
+void updateTS(Player *p);
void timeOutEvent(Player *p);
bool is_playing(char *u); // True if the given nickname in the clients list is playing.
void do_admin(char *u);
void do_attack(char *u);
void do_bank(char *u);
+void do_check(char *u);
void do_fight(char *u);
void do_heal(char *u);
void do_help(char *u);
do_fight(source);
} else if (stricmp(cmd, "ATTACK") == 0) {
do_attack(source);
+ } else if (stricmp(cmd, "CHECK") == 0) {
+ do_check(source);
} else if (stricmp(cmd, "RUN") == 0) {
do_run(source);
} else if (stricmp(cmd, "USE") == 0) {
}
#endif
+void do_check(char *u)
+{
+ int days, hours, minutes, seconds;
+ long complete;
+ complete = (lastrefresh + refreshperiod) - time(NULL);
+ days = complete / 86400;
+ hours = (complete % 86400) / 3600;
+ minutes = (complete % 86400) % 3600 / 60;
+ seconds = (complete % 86400) % 3600 % 60;
+
+ notice(s_GameServ, u, "Time left to next refresh: %dd %dh %dm %ds",
+ days, hours, minutes, seconds);
+}
+
void do_list(char *u)
{
aClient *user;
{
while(temp)
{
- if (!cmd || is_playing(temp->getData()))
+ if (cmd || is_playing(temp->getData()))
{
if (!header)
{
temp = players[hv].insertAtBack_RLN(user);
temp->setPtr(user); // This is an extra step, but necessary for now
+ // Update the last login time
+ user->stats->lastlogin = time(NULL);
+
notice(s_GameServ, u, "Player %s registered with password %s.", user->stats->name, password);
notice(s_GameServ, u, "Write this password down. If you lose it, there is no way to retrieve it!");
log("Nickname %s registered player %s.", u, user->stats->name);
setPlaying(user); // set the playing flag
temp->setPtr(user);
+
+ // Update the last login time
+ user->stats->lastlogin = time(NULL);
+
notice(s_GameServ, u, "Password Accepted. Identified.");
showNews(u, todaysnews);
}
<< it->armor << ' ' << it->weapon << ' '
<< it->forest_fights << ' ' << it->player_fights << ' '
<< it->getFlags() << ' ' << it->password << ' ' << it->inventory.Healing()
- << ' ' << it->inventory.Strength() << ' ' << it->inventory.Defense() << ' ' << it->inventory.HP() << endl;
+ << ' ' << it->inventory.Strength() << ' ' << it->inventory.Defense() << ' ' << it->inventory.HP()
+ << ' ' << it->lastlogin << endl;
ptr = ptr->Next();
}
}
tempname = strtok(NULL, " ");
if (tempname)
p->inventory.setHP(stringtoint(tempname));
+
+ tempname = strtok(NULL, " ");
+ if (tempname)
+ p->lastlogin = stringtoint(tempname);
+ else
+ p->lastlogin = time(NULL);
+
unsigned long hv = iHASH((unsigned char *) temp->stats->name);
temp->stats->client = NULL;