[修改]
到global.h
char *fn_plans = "plans";
+char *fn_photo = "photo";
.........[略]..........
extern char *fn_plans;
+extern char *fn_photo;
到user.c加一個新東東 (模仿WDbbs的u_editplan 在選單就call這個囉...)
int
u_editphoto()
{
char genbuf[200];
getdata(b_lines - 1, 0, "照片 (D)刪除 (E)編輯 [Q]取消?[Q] ",
genbuf, 3, LCECHO);
if (genbuf[0] == 'e')
{
int aborted;
setutmpmode(EDITPLAN); /* 這個mode看你自己要不要改 */
/* 不改的話 從使用者名單上看起來是編名片檔 */
setuserfile(genbuf, fn_photo);
aborted = vedit(genbuf, NA);
if (aborted != -1)
outs("照片更新完畢");
pressanykey();
return 0;
}
else if (genbuf[0] == 'd')
{
setuserfile(genbuf, fn_fn_photo);
unlink(genbuf);
outmsg("照片刪除完畢");
}
return 0;
}
[程式]
/*in talk.c 的my_query()*/
my_query(uident)
char *uident;
{
extern char currmaildir[];
char fpath[80];
char buf1[256];
char buf2[256];
int count[8]={0,0,0,0,0,0,0,0};
int tuid,i,k;
unsigned long int j;
user_info *uentp;
FILE *photofile;
userec muser;
char *money[10] = {"乞丐","赤貧","清寒","普通","小康",
"小富翁","中富翁","大富翁","富可敵國","超猛富翁"};
sethomefile(genbuf, uident, fn_photo);
if (tuid = getuser(uident))
{
move(1, 0);
clrtobot();
setutmpmode(QUERY);
currutmp->destuid = tuid;
if (photofile = fopen(genbuf, "r"))
{
k = 0;
while (k++ < 8 && fgets(genbuf, 256, photofile))
{
move(k,0);
clrtobot();
move(k,0);
count[k]=strip_ansi(NULL,genbuf,1)-strip_ansi(NULL,genbuf,0);
outs(genbuf);
}
fclose(photofile);
}
else
{
move(1,0);
prints("┌────┐");
move(2,0);
prints("│ 尚 │");
move(3,0);
prints("│ 無 │");
move(4,0);
prints("│ 照 │");
move(5,0);
prints("│ 片 │");
move(6,0);
prints("└────┘");
}
memcpy(&muser, &xuser, sizeof(userec));
j = muser.money + muser.deposit;
for(i=0;i<10 && j>10;i++) j /= 10;
move(1,12+count[1]);
prints("───────────── 個人檔案 ──────────────");
move(2,12+count[2]);
if(HAS_PERM(PERM_SYSOP) || !strcmp(muser.userid, cuser.userid))
prints("【英文代稱】%-14s 【暱稱】%-11s【姓名】%s\n",
muser.userid,muser.username,muser.realname);
else
prints("【英文代稱】%-14s 【暱稱】%-11s",
muser.userid,muser.username);
move(3,12+count[3]);
char *sex[8] = { MSG_BIG_BOY, MSG_BIG_GIRL,
MSG_LITTLE_BOY, MSG_LITTLE_GIRL,
MSG_MAN, MSG_WOMAN, MSG_PLANT, MSG_MIME };
sethomedir(currmaildir, muser.userid);
outs(chkmail(1) ? "有" : "無");
sethomedir(currmaildir, cuser.userid);
chkmail(1);
if (can_override(muser.userid, cuser.userid) || HAS_PERM(PERM_SYSOP)
|| !strcmp(muser.userid, cuser.userid) )
{
sethomedir(currmaildir, muser.userid);
prints("【經濟狀況】%-16s【性別】%-11s【新信】%s\n",
money[i],sex[muser.sex%8],chkmail(1) ? "有" : "無");
sethomedir(currmaildir, cuser.userid);
chkmail(1);
}
else
{
sethomedir(currmaildir, muser.userid);
prints("【經濟狀況】%-16s【性別】不告訴你.. 【新信】%s\n",
money[i],chkmail(1) ? "有" : "無");
sethomedir(currmaildir, cuser.userid);
chkmail(1);
}
move(4,12+count[4]);
sprintf(buf1,"%d 篇",muser.numposts);
sprintf(buf2,"%d 次",muser.numlogins);
uentp = (user_info *) search_ulist(cmpuids, tuid);
if (uentp && !(PERM_HIDE(currutmp) ||
is_rejected(uentp) & HRM && is_friend(uentp) & 2)
&& PERM_HIDE(uentp))
prints("【目前動態】不在站上 【文章】%-11.11s【次數】%9.9s",
buf1,buf2);
else
prints("【目前動態】%-16.16s【文章】%-11.11s【次數】%9.9s",
uentp ? modestring(uentp, 0):"不在站上",buf1,buf2);
move(5,12+count[5]);
prints("【上站地點】%-16.16s【時間】%-21.21s",
muser.lasthost[0] ? muser.lasthost : "(不詳)",
Cdate(&muser.lastlogin));
move(6,12+count[6]);
"【水球】收到 %d 顆,發出 %d 顆【人氣指數】%d 【好奇指數】%d",
muser.receivemsg,muser.sendmsg,muser.bequery,muser.toquery);
move(7,12+count[7]);
if (HAS_PERM(PERM_SYSOP) || !strcmp(muser.userid, cuser.userid))
prints("【現金】%-20ld【存款】%ld",muser.money,muser.deposit);
move(8,0);
prints("──────────────────────────────────
────┘");
if(strcmp(muser.userid,cuser.userid))
{
++muser.bequery;
substitute_record(fn_passwd, &muser,sizeof(userec), tuid);
reload_money();
++cuser.toquery;
substitute_record(fn_passwd, &cuser, sizeof(userec), usernum);
}
showplans(uident);
pressanykey(NULL);
return FULLUPDATE;
}
return DONOTHING;
/* currutmp->destuid = 0; */
}