精華區beta SetupBBS 關於我們 聯絡資訊
[修改] 到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; */ }