作者itoc, 信區: itoc
標題[功能] acct.c struct.h talk.c 心情
時間04/08/20
作者: itoc (哼哼 不跟我去吃飯) 看板: plan
標題: [功能] struct.h acct.c talk.c 心情
時間: Wed Aug 7 12:02:37 2002 Updated: 2004/07/14
改 struct ACCT,要轉換 .ACCT
改 struct UTMP,要清 shm
※ 引述《tandrian.bbs@ntcb.twbbs.org.tw (幻域魔城後祖)》之銘言:
> 請問如何增加 心情~~ ?? ^^
> No. P 代號 暱稱 故鄉 動態 心情 發呆
: struct.h
#define UNLEN 23 /* Length of user name */
+ #define FLLEN 4 /* Length if feeling */
: struct.h:strcut ACCT
char username[UNLEN + 1]; /* 暱稱 */
+ char feeling[FLLEN + 1]; /* 心情 */
: struct.h:struct UTMP
char username[UNLEN + 1]; /* user's nickname */
+ char feeling[FLLEN + 1]; /* user's feeling */
: acct.c acct_show()
prints(" \033[32m我的暱稱:\033[37m%-35s\033[32m擁有銀幣:\033[37m%d\n",
u->username, u->money);
+ prints(" \033[32m我的心情:\033[37m%-35s\n", u->feeling);
prints(" \033[32m真實姓名:\033[37m%-35s\033[32m擁有金幣:\033[37m%d\n",
u->realname, u->gold);
: acct.c acct_setup()
i++;
str = x.username;
while (1)
{
if (vget(i, 0, "暱 稱:", str, UNLEN + 1, GCARRY))
break;
};
+ i++;
+ str = x.feeling;
+ while (1)
+ {
+ if (vget(i, 0, "心 情:", str, FLLEN + 1, GCARRY))
+ break;
+ };
: bbsd.c utmp_setup()
strcpy(utmp.userid, cuser.userid);
+ strcpy(utmp.feeling, cuser.feeling);
: talk.c ulist_item() 版面自定
- prints("%6d%c%c%s%-13s%-*.*s%s%-*.*s%-11.10s%s\n",
+ prints("%6d%c%c%s%-13s%-*.*s%s%-*.*s%-11.10s%-5.4s%s\n",
num, ufo & UFO_CLOAK ? ')' : ' ', pager,
wcolor[fcolor], up->userid,
- (d_cols >> 1) + 21, (d_cols >> 1) + 20, up->username,
+ (d_cols >> 1) + 19, (d_cols >> 1) + 18, up->username,
fcolor > 0 ? "\033[m" : "",
- d_cols - (d_cols >> 1) + 19, d_cols - (d_cols >> 1) + 18,
+ d_cols - (d_cols >> 1) + 17, d_cols - (d_cols >> 1) + 16,
pickup_ship ? pal_ship(fcolor, up->userno) :
...
...
- bmode(up, 0), buf);
+ bmode(up, 0), up->feeling, buf);
}
: theme.h 版面自定
改 NECKER_ULIST
: config.h
#define HAVE_CHANGE_NICK /* 使用者名單 ^N 永久更改暱稱 */
+ #define HAVE_CHANGE_FEEL /* 使用者名單 M 永久更改心情 */
#define HAVE_CHANGE_FROM /* 使用者名單 ^F 暫時更改故鄉 */
#define HAVE_CHANGE_ID /* 使用者名單 ^D 暫時更改 ID */
: talk.c 新增 ulist_feelchange() 於 ulist_nickchange() 下面
#ifdef HAVE_CHANGE_FEEL
static int
ulist_feelchange(xo)
XO *xo;
{
char *str, buf[FLLEN + 1];
if (!cuser.userlevel)
return XO_NONE;
strcpy(buf, str = cutmp->feeling);
if (vget(b_lines, 0, "請輸入新的心情:", buf, FLLEN + 1, GCARRY))
{
if (strcmp(buf, str))
{
strcpy(str, buf);
strcpy(cuser.feeling, buf); /* 心情也一併更換 cuser. */
return ulist_body(xo);
}
}
return XO_FOOT;
}
#endif
: talk.c talk_cb[]
#ifdef HAVE_CHANGE_NICK
Ctrl('N'), ulist_nickchange,
#endif
+#ifdef HAVE_CHANGE_FEEL
+ 'M', ulist_feelchange,
+#endif
#ifdef HAVE_CHANGE_FROM
Ctrl('F'), ulist_fromchange,
#endif
: acct.c u_info()
int
u_info()
{
char *str, username[UNLEN + 1];
+ char *ptr, feeling[FLLEN + 1];
move(MENU_XNOTE, 0);
strcpy(username, str = cuser.username);
+ strcpy(feeling, ptr = cuser.feeling);
acct_setup(&cuser, 0);
if (strcmp(username, str))
memcpy(cutmp->username, str, UNLEN + 1);
+ if (strcmp(feeling, ptr))
+ memcpy(cutmp->feeling, ptr, FLLEN + 1);
return 0;
}
--
□ 本文章由 itoc 從 140.113.128.62 發表