作者BioStar.bbs@micro.bio.ncue.edu.tw (澎湖小雲雀) 看板: plan
標題Re: 請問累積上站時數
時間擎天崗 (Sat, 01 Nov 2003 00:39:02 +0800 (CST)) Updated: 2005/10/29
改了 ACCT 欄位要 transacct
: struct.h: struct ACCT
time_t firstlogin; /* 第一次上站時間 */
time_t lastlogin; /* 上一次上站時間 */
time_t tcheck; /* 上次 check 信箱/好友名單的時間 */
time_t tvalid; /* 通過認證的時間 */
+ time_t staytime; /* 掛站總時間 */
: bbsd.c:u_exit()
utmp_free(); /* 釋放 UTMP shm */
- diff = (time(&cuser.lastlogin) - ap_start) / 60;
+ diff = time(&cuser.lastlogin) - ap_start;
+ cuser.staytime += diff;
+ diff /= 60;
sprintf(fpath, "Stay: %d (%d)", diff, currpid);
blog(mode, fpath);
: bbsd.c:tn_main()
tn_signals(); /* Thor.980806: 放於 tn_login前, 以便 call in不會被踢 */
tn_login();
/* BioStar.051029: 累積上站時數應從登入後才計算,而不是從連線建立時候就
開始計算,避免使用者先用防閒置的 BBS 軟體開啟數十個尚未登入的連線,
由於尚未登入所以不受同一ID同時上線限制,但是每一個連線的累積上站時數
就已經開始計算,然後過了幾天後在逐一登入與登出,就有大量累積上站時數 */
+ time(&ap_start);
board_main();
: acct.c:acct_show()
usr_fpath(buf, uid, fn_dir);
prints(" \033[32m個人信件:\033[37m%d 封\n", rec_num(buf, sizeof(HDR)));
+ diff = u->staytime / 60;
+ prints(" \033[32m掛站時數:\033[37m%d 時 %d 分\n", diff / 60 , diff % 60);
--
┌┼ Origin: 彰化師大生物系˙吟風‧眺月‧擎天崗 micro.bio.ncue.edu.tw
┼┘ Author: BioStar 從 163.23.212.18 發表