精華區beta SetupBBS 關於我們 聯絡資訊
enum { NOBODY, MANAGER, SYSOP }; int order_song() { int i=1,j,k,t ; FILE *fp2,*fp1; fileheader fhdr; char src_name[24],des_name[24],say[60],uident[40]; time_t now = time(0); char genbuf[200],fbuf[50],ans[4]; char tmpbuf[300]; clear(); check_money(200); setutmpmode(OSONG); move(8,34); outs("<圖片徵求中>"); getdata(12,0,"你的名字是? ",src_name,24,DOECHO,cuser.userid); getdata(13,0,"請輸入對方名字",des_name,24,DOECHO,0); getdata(14,0,"你想對他說什麼?",say,60,DOECHO,0); sprintf(fbuf,"home/%s/songtmp",cuser.userid); fp1=fopen(fbuf,"w"); a_menu("點歌歌本","etc/SONGBOOK/",NOBODY); if(fp2=fopen(trans_buffer,"r")) { i =1; while( (fgets(genbuf,199,fp2)) !='\0' && i <= 11 ) { { for(j=0,k=0;j<200;j++) { if(!strncmp(genbuf+j,"<~Src~>",7)) { int t ; for(t=0;t<strlen(src_name);t++) { tmpbuf[k+t]=src_name[t]; } j+=6; k+=strlen(src_name); } else if(!strncmp(genbuf+j,"<~Des~>",7)) { int t ; for(t=0;t<strlen(des_name);t++) { tmpbuf[k+t]=des_name[t]; } j+=6; k+=strlen(des_name); } else if(!strncmp(genbuf+j,"<~Say~>",7)) { int t ; for(t=0;t<strlen(say);t++) { tmpbuf[k+t]=say[t]; } j+=6; k+=strlen(say); } else { tmpbuf[k]=genbuf[j]; k++; } } fputs (tmpbuf,fp1); } i++; } } else return; fclose (fp2); fclose (fp1); clear(); if(fp1=fopen(fbuf,"r")); { i =1; while( (fgets(genbuf,199,fp1)) !='\0' && i <= 11 ) { prints(genbuf); } } fclose(fp1); move(12,0); outs(" ;31m○───────────────────○m ;33m(1)寄到使用者信箱m ;33m(2)動態看板 (q)uitm"); getdata(15,0,"你的選擇:",ans,3,DOECHO,"1"); switch(ans[0]) { case 'N': case 'n': case 'Q': case 'q': return ; break; case('1'): stand_title("心情點播機"); usercomplete(msg_uid, uident); if (!(uident[0])) break; sprintf(genbuf, "home/%s", uident); stampfile(genbuf, &fhdr); rename (fbuf,genbuf); sprintf(fhdr.title, " %s 點給 %s ",cuser.userid,des_name); strcpy(fhdr.owner,cuser.userid); sprintf(genbuf, "home/%s/.DIR",uident); append_record(genbuf, &fhdr, sizeof(fhdr)); demoney(200); outs("點歌完成"); pressanykey(); break; case('2'): if(belong(FN_USSONG,cuser.userid)) { clear(); move(12,3); outs("你今天已經點過歌了唷!"); pressanykey(); return; } demoney(200); sprintf(genbuf, "man/boards/%s", "Note"); stampfile(genbuf, &fhdr); log_file(FN_USSONG,cuser.userid); rename (fbuf,genbuf); sprintf(fhdr.title, "◇ <SONG> %s 點給 %s",cuser.userid,des_name); strcpy(fhdr.owner, "[點歌機]"); sprintf(genbuf, "man/boards/%s/.DIR", "Note"); append_record(genbuf, &fhdr, sizeof(fhdr)); outs("點歌完成"); pressanykey(); break; default: break; } } 修改 cache.c: void reload_pttcache() { if (ptt->busystate) { sleep(1); } else { int fd; fileheader item; char pbuf[256], buf[256]; FILE *fp; int num, id, j ,maxid; sem_init(PTTSEM_KEY,&ptt_semid); sem_lock(SEM_ENTER,ptt_semid); ptt->busystate = 1; ptt->max_film = 0; bzero(ptt->notes, sizeof ptt->notes); setapath(pbuf, "Note"); setadir(buf, pbuf); num = get_num_records(buf, sizeof item); maxid=0; for (j = 0; j <= num; j++) if (get_record(buf, &item, sizeof item, j) != -1) if (item.title[3] == '<' && item.title[7] == '>' ) { id = (item.title[4] - '0') * 100 + (item.title[5] - '0') * 10 + item.title[6] - '0'; if ( id > maxid ) maxid =id; if (id < MAX_MOVIE) { if (ptt->max_film < id) ptt->max_film = id; strcpy(ptt->notes[id], item.filename); } } for (j = 0; j <= num; j++) if (get_record(buf, &item, sizeof item, j) != -1) if (!strncmp(item.title+3,"<SONG>",6)) { id = maxid+1; if ( id > maxid ) maxid =id; if (id < MAX_MOVIE) { if (ptt->max_film < id) ptt->max_film = id; strcpy(ptt->notes[id], item.filename); } } ptt->max_history = ptt->max_film - 2; if (ptt->max_history > MAX_HISTORY - 1) ptt->max_history = MAX_HISTORY - 1; if(ptt->max_history<0)ptt->max_history = 0; { FILE *fp=fopen("etc/today_is","r"); char *chr; if(fp) { fgets(ptt->today_is,15,fp); if(chr=strchr(ptt->today_is,'\n')) *chr=0; ptt->today_is[15]=0; fclose(fp); } } /* 等所有資料更新後再設定 uptime */ ptt->uptime = ptt->touchtime; #if !defined(_BBS_UTIL_C_) log_usies("CACHE", "reload pttcache"); #endif sem_lock(SEM_LEAVE,ptt_semid); ptt->busystate = 0; } } -- bbs 140.112.241.115 will.m1.ntu.edu.tw 看板申請最簡便,只要申請,即可試板,無須連署 歡迎各界人仕來此,設班板小團體板,或有特色的看板 -- ※ Post by yaudeh from 140.112.251.75 ... -- ║ ╭╔╮ 風與塵埃的對話電子布告欄系統 [wdbbs.ml.org] ╠═║║║║║BBS ════════════════════════╣ ╰╯╯╚╯ Wind & Dust Bulletin Board System [192.192.152.92]