void u_exit(char *mode) { userec_t xuser; int diff = (time(0) - login_start_time) / 60; passwd_query(usernum, &xuser); auto_backup(); setflags(PAGER_FLAG, currutmp->pager != 1); setflags(CLOAK_FLAG, currutmp->invisible); xuser.invisible = currutmp->invisible % 2; xuser.pager = currutmp->pager % 5; if(!(HAS_PERM(PERM_SYSOP) && HAS_PERM(PERM_DENYPOST))) do_aloha("<<下站通知>> -- 我走囉!"); purge_utmp(currutmp); if((cuser.uflag != enter_uflag) || (currmode & MODE_DIRTY) || !diff) { xuser.uflag = cuser.uflag; xuser.numposts = cuser.numposts; if(!diff && cuser.numlogins) xuser.numlogins = --cuser.numlogins; /* Leeym 上站停留時間限制式 */ reload_money(); passwd_update(usernum, &xuser); } log_usies(mode, NULL); }
void u_exit(char *mode) { extern void auto_backup(); /* 編輯器自動備份 */ userec xuser; int diff = (time(0) - login_start_time) / 60; rec_get(fn_passwd, &xuser, sizeof(xuser), usernum); auto_backup(); setflags(PAGER_FLAG, currutmp->pager != 1); setflags(CLOAK_FLAG, currutmp->invisible); xuser.pager = currutmp->pager; /* 記錄pager狀態, add by wisely */ xuser.invisible = currutmp->invisible; /* 紀錄隱形狀態 by wildcat */ xuser.totaltime += time(0) - update_time; xuser.numposts = cuser.numposts; xuser.feeling[4] = '\0'; if (!HAS_PERM(PERM_DENYPOST) && !currutmp->invisible) { char buf [256]; time_t now; time(&now); sprintf(buf, "<<下站通知>> -- 我走囉! - %s", Etime(&now)); do_aloha(buf); } purge_utmp(currutmp); if (!diff && cuser.numlogins > 1 && strcmp(cuser.userid, STR_GUEST)) xuser.numlogins = --cuser.numlogins; /* Leeym 上站停留時間限制式 */ substitute_record(fn_passwd, &xuser, sizeof(userec), usernum); log_usies(mode, NULL); }