荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: stiger@smth.org (1.5颗门牙◎为让****养我一辈子而努力), 信区: InstallBBS
标  题: Re: SMTH最新公布代码:smth-020727.tar.gz
发信站: BBS 水木清华站 (Sat Jul 27 14:35:07 2002)
转信站: SZUBBS!news.happynet.org!news.feeling.smth.org!maily.cic.tsinghua.edu.c

很土,不要笑,呵呵
而且刚写完,没有经过很多测试,对任何后果不负责
我的版本是fb2000v1126
在这个版本中发信没有专门的权限,
所以我们的bbs是使用PERM_SPECIAL7作为发信权限的

int set_jw(){
        int     id;
        unsigned int newlevel;
        unsigned int plevel[5];
        char choose[3],jwday[4];
        int day;
        int i;
        char buf[256];
        time_t t[5];
        static char *chj[]={"上站权限","发文权限","聊天权限","msg权限","发信权限
"};
        FILE *fpjw;

        plevel[0]=PERM_BASIC;
        plevel[1]=PERM_POST;
        plevel[2]=PERM_CHAT | PERM_PAGE;
        plevel[3]=PERM_MESSAGE;
        plevel[4]=PERM_SPECIAL7;

        if (!(id = getuser(currentuser.userid))) {
                move(3, 0);
                prints("错误的使用者 ID...");
                clrtoeol();
                pressreturn();
                clear();
                return 0;
        }

        newlevel = currentuser.userlevel;

        if(HAS_PERM(PERM_BOARDS)){
                clear();
                move(5,0);
                prints("您有重任在身,确实要戒网吗?");
                if(askyn("你确定要戒网吗", NA, YEA)==NA){
                        clear();
                        return 0;
                }
        }

        sethomefile(genbuf,currentuser.userid,"time.jw");
        if ((fpjw=fopen(genbuf,"r"))!=NULL){
                if(fscanf(fpjw,"%ld %ld %ld %ld %ld",&t[0],&t[1],&t[2],&t[3],
&t[4])==5){
                }
                else{
                        for(i=0;i<5;i++) t[i]=0;
                }
                fclose(fpjw);
        }
        else{
                for(i=0;i<5;i++) t[i]=0;
        }


        clear();
        move(1,0);
        prints("请选择戒网种类:");
        move(3,0);
        prints("(0) - 结束");
        for(i=0;i<5;i++){
                move(i+4,0);
                sprintf(buf,"(%d) - %s",i+1,chj[i]);
                prints(buf);
                move(i+4,18);
                prints("目前状态:");
                move(i+4,28);
                if(t[i]==0){
                        sprintf(buf,": 正常");
                }else if(t[i]-time(0) > 86400){
                        sprintf(buf,": 还有%d天",(t[i]-time(0))/86400);
                }else{
                        sprintf(buf,": 还有%d小时",(t[i]-time(0))/3600);
                }
                prints(buf);

        }

        getdata(10, 0, "请选择 [0]:", choose, 2, DOECHO, YEA);
        if(choose[0]>='1' && choose[0]<='5'){
                if(!(newlevel & plevel[choose[0]-'1'])){
                        move(15,0);
                        prints("您本来就没有这个权限,无须再戒\n");
                        pressreturn();
                        return;
                }
                getdata(11,0,"请输入戒网天数 [0]:",jwday,3,DOECHO,YEA);
                if(jwday[0]=='\0') day =0;
                else day = atoi(jwday);
                if(day <= 0){
                        clear();
                        return -1;
                }
                if (askyn("你确定要戒网吗", NA, YEA) == NA){
                        clear();
                        return -1;
                }
                getdata(13, 0, "请输入你的密码(如果不正确请尝试前8位): ", buf,
PASSLEN, NOECHO, YEA);
                if(!checkpasswd(currentuser.passwd, buf)){
                        move(14,0);
                        prints("密码错误,戒网失败");
                        pressreturn();
                        return -1;
                }
                if(choose[0]=='1'){
/*****************************************************
对于戒上站,是取消PERM_BASIC增加PERM_LOGINOK
在register.c中的compute_user_value函数中进行判断
遇到这种情况就是生命力为一个固定值,确保不会因为戒上站而死亡
******************************************************/
                        newlevel &= ~PERM_BASIC;
                        newlevel |= PERM_LOGINOK;
                        t[0]=time(0) + 86400*day;
                }
                if(choose[0]=='2'){
                        newlevel &= ~PERM_POST;
                        t[1]=time(0) + 86400*day;
                }
                if(choose[0]=='3'){
                        newlevel &= ~PERM_CHAT;
                        newlevel &= ~PERM_PAGE;
                        t[2]=time(0) + 86400*day;
                }
                if(choose[0]=='4'){
                        newlevel &= ~PERM_MESSAGE;
                        t[3]=time(0) + 86400*day;
                }
                if(choose[0]=='5'){
                        newlevel &= ~PERM_SPECIAL7;
                        t[4]=time(0) + 86400*day;
                }


                if((fpjw=fopen(genbuf,"w"))==NULL){
                        clear();
                        move(1,0);
                        prints("sorry,,,系统错误,戒网失败");
                        pressanykey();
                        return -1;
                }
                fprintf(fpjw,"%ld %ld %ld %ld %ld",t[0],t[1],t[2],t[3],t[4]);
                fclose(fpjw);

                currentuser.userlevel=newlevel;

                substitute_record(PASSFILE, &currentuser, sizeof(struct userec),
id);
                move(15,0);
                sprintf(buf,"您的%s已经被取消",chj[choose[0]-'1']);
                prints(buf);
                move(16,0);
                prints("祝您戒网顺利,God bless u");
                pressanykey();
                if(choose[0]=='1') Q_Goodbye();
                return;

        }
        clear();
        return;

}

【 在 canhui (最受小孩喜爱的gg) 的大作中提到: 】
: 呵呵,拿出来大家看看嘛。


--
  ╭════════════╮   女孩,女孩,为什麽哭泣?难道肚子怀着小baby?
  ║                        ║      女孩,女孩,为什麽叹气?难道baby找不到dady?
  ║ stiger  无人了解的自我 ║         年纪轻轻不该玩游戏,快乐年龄不该轻放弃,
  ║                        ║      抛开忧虑,忘掉那不如意,
  ╰════════════╯   走出户外,让我们堕胎去......


※ 来源:·BBS 水木清华站 smth.edu.cn·[FROM: 166.111.172.127]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店