作者Dinsam.bbs@ccudream.twbbs.org (前世.. o.O) 看板: plan
標題[功能]人氣指數/好奇指數
時間中正築夢園 (Sun, 07 Sep 2003 11:03:17 +0800) Updated: 2005/02/18
改 struct ACCT,要轉換 .ACCT
: struct.h:struct ACCT
int numlogins; /* 上站次數 */
int numposts; /* 發表次數 */
+ int toquery; /* 好奇度 */
+ int bequery; /* 人氣度 */
: acct.c:acct_show()
+ prints(" \033[32m人氣指數:\033[37m%-35d\033[32m好奇指數:\033[37m%d\n",
+ u->bequery,u->toquery);
prints(" \033[32m郵件信箱:\033[37m%s\n", u->email);
: acct.c:acct_setup()
sprintf(buf, "%d", u->gold);
vget(++i, 0, "金 幣:", buf, 10, GCARRY);
if ((num = atoi(buf)) >= 0)
x.gold = num;
+ sprintf(buf, "%d", u->toquery);
+ vget(++i, 0, "好 奇 度:", buf, 10, GCARRY);
+ if ((num = atoi(buf)) >= 0)
+ x.toquery = num;
+ sprintf(buf, "%d", u->bequery);
+ vget(++i, 0, "人 氣 度:", buf, 10, GCARRY);
+ if ((num = atoi(buf)) >= 0)
+ x.bequery = num;
: bbsd.c:u_exit()
cuser.userlevel = tuser.userlevel;
cuser.tvalid = tuser.tvalid;
+ cuser.bequery = tuser.bequery;
: acct.c:u_setup() 底下新增此函式
void
acct_bequery(acct)
ACCT *acct;
{
acct->bequery++;
acct_save(acct);
}
: maple.p
int acct_get(char *msg, ACCT *acct);
+ void acct_bequery(ACCT *acct);
: talk.c:do_query()
UTMP *up;
int userno, rich;
+ static int lastQueryUserno = -1; /* 記錄上一個查詢的人 */
...
...
+ prints("[人氣指數] %d [好奇指數] %d\n", acct->bequery, acct->toquery);
prints("[來源] (%s) %s\n",
Btime(&acct->lastlogin), acct->lasthost);
...
...
+ /* 如果查詢者不是自己或guest,也跟上一個查詢的不同,那麼加人氣、好奇指數 */
+ if (acct->userno != lastQueryUserno &&
+ strcmp(userid, cuser.userid) && strcmp(STR_GUEST, cuser.userid))
+ {
+ lastQueryUserno = acct->userno;
+ acct_bequery(acct);
+ cuser.toquery++;
+ }
showplans(userid);
──────────────────────────────────────
以下是人氣、好奇指數之排行榜,也可不做
: topusr.c
#define OUTFILE_BIRTHDAY BBSHOME"/gem/@/@-birthday"
+ #define OUTFILE_TOPTOQUERY BBSHOME"/gem/@/@-toquery"
+ #define OUTFILE_TOPBEQUERY BBSHOME"/gem/@/@-bequery"
...
- static DATA toplogins[TOPNUM], topposts[TOPNUM],
- topmoney[TOPNUM], topgold[TOPNUM];
+ static DATA toplogins[TOPNUM], topposts[TOPNUM],
+ topmoney[TOPNUM], topgold[TOPNUM],
+ toptoquery[TOPNUM],topbequery[TOPNUM];
: topusr.c:topusr()
+ if ((p = findmin(&toptoquery))->num < acct->toquery)
+ {
+ str_ncpy(p->userid, acct->userid, sizeof(p->userid));
+ str_ncpy(p->username, acct->username, sizeof(p->username));
+ p->num = acct->toquery;
+ }
+ if ((p = findmin(&topbequery))->num < acct->bequery)
+ {
+ str_ncpy(p->userid, acct->userid, sizeof(p->userid));
+ str_ncpy(p->username, acct->username, sizeof(p->username));
+ p->num = acct->bequery;
+ }
}
: topusr.c:main()
memset(&topgold, 0, sizeof(topgold));
+ memset(&toptoquery, 0, sizeof(toptoquery));
+ memset(&topbequery, 0, sizeof(topbequery));
...
...
qsort(topgold, TOPNUM, sizeof(DATA), sort_compare);
write_data(OUTFILE_TOPGOLD, "金幣富豪抓狂榜", &topgold);
+ qsort(toptoquery, TOPNUM, sizeof(DATA), sort_compare);
+ write_data(OUTFILE_TOPTOQUERY, "好奇指數排行榜", &toptoquery);
+ qsort(topbequery, TOPNUM, sizeof(DATA), sort_compare);
+ write_data(OUTFILE_TOPBEQUERY, "人氣指數排行榜", &topbequery);
: BBS 站上 (A)nnounce
裡面新增 (D)資料 二筆
標題:好奇指數排行榜
檔名:-toquery
標題:人氣指數排行榜
檔名:-bequery
--
● ˙ ˙ ◢▇◣ ◢▇◣ ▇ ▇ █▇◣ █▇◣ █▇◣ ◢▇◣ █▇▉ /
˙ ╲ █ █ █ █ █ ▉ █ ▉ █▆ █▆▉ ▉▉▉ ★
◢ ★˙ ◥█◤ ◥█◤ ◥█◤ ██◤ █◥▆ █▆◤ █ ▉ ▉▉▉˙ ◣
CDBBS 中正築夢園BBS站 歡迎蒞臨參觀 cd.twbbs.org (140.123.20.230)
http://cd.twbbs.org◥ * Author: Dinsam ★ From: 218.171.110.27 ◤