荔园在线

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

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


发信人: AM.bbs@TaoLiBBS.3322.ORG (世界的黑暗), 信区: InstallBBS
标  题: help~关于作者在线颜色显示
发信站: 桃李风园 (Sat Dec 27 01:10:06 2003)
转信站: SZU!news.ccie.net.cn!TaoLi

1、在permission里面增加一个#define DEF_COLORAUTHOR 0x400000000
2、在main.c的user_login()最后面增加
    setuserfile(fname, "Colors");
    onlinecolor = 32;           /* 缺省绿色 */
    if ((fp = fopen(fname, "r")) != NULL) {
        if (fgets(buf, STRLEN, fp) != NULL) {
            onlinecolor = atoi(buf);
        }
        fclose(fp);
    }
3、修改bbs.c的*readdoent()
            //在线作者姓名
    if (DEFINE(DEF_COLOEDAUTHOR) && user_isactive(ent->owner))
        sprintf(file_owner, "1;%dm%-12.12s", onlinecolor, ent->owner);
    else
        sprintf(file_owner, "%-12.12s", ent->owner);
4、修改mail.c的*maildoent()
    file_owner_color[0] = '\0';
    if (DEFINE(DEF_COLOEDAUTHOR)) {
        uactive_flag = user_isactive(b2);
        if (uactive_flag)
            sprintf(file_owner_color, "^[[1;%dm", onlinecolor);
    }
5、在bcache.c里增加一个函数
/*判断userid是否在线*/
int user_isactive(char *userid)
{
    struct user_info *uentp;
    int i;

    /* 转信的用户不用统计 */
    if (!isalpha(userid[0]))
        return 0;
    if (!isalnum(userid[strlen(userid) - 1]))
        return 0;
    resolve_utmp();
    for (i = 0; i < USHM_SIZE; i++) {
        uentp = &(utmpshm->uinfo[i]);
        if (uentp != NULL) {
            if (!strcmp(uentp->userid, userid)) {
                if (!uentp->active || !uentp->pid || isreject(uentp))
                    continue;   /* 碰巧不在 */
                else if ((!uentp->invisible) || (uentp->uid == usernum)
                         || (uentp->invisible)
                         && HAS_PERM(PERM_SYSOP | PERM_SEECLOAK))
                    return 1;
                else
                    return 0;   /* 取第一个即可,节省CPU */
            }
        }

    }
    return 0;
}
6、src/xyz.c的void x_edits()
增加/home/?/userid/Color文件
    if (ch == 5) {
        setuserfile(buf, "Colors");
        onlinecolor = 32;       /* 缺省绿色 */
        if ((fp = fopen(buf, "r")) != NULL) {
            if (fgets(buf, STRLEN, fp) != NULL) {
                onlinecolor = atoi(buf);
            }
            fclose(fp);
        }
    }

上面当然都增加了相应的变量
编译完了,重新登陆,并无作者颜色显示......
不知道哪里还少了。。。。。请执教,谢谢~
--
※ 来源:·桃李风园 TaoLiBBS.3322.ORG·[FROM: TaoLiBBS.3322.ORG ]


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

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