荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: AM (头发好短了:P), 信区: InstallBBS
标 题: [合集]help~关于作者在线颜色显示
发信站: 荔园晨风BBS站 (Mon Jan 26 21:40:38 2004), 站内信件
AM.bbs@TaoLiBBS.3322.ORG (世界的黑暗) 于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);
}
}
上面当然都增加了相应的变量
编译完了,重新登陆,并无作者颜色显示......
不知道哪里还少了。。。。。请执教,谢谢~
stiger@smth.org (stiger) 于Sat Dec 27 01:03:25 2003)
提到:
转信站: SZU!news.ccie.net.cn!maily.cic.tsinghua.edu.cn!SMTH
看看我的函数
int isonline(char *s){
int tuid;
struct user_info uin;
extern int t_cmpuids();
if(DEFINE(DEF_NOTMSGFRIEND)) return 7;
tuid=getuser(s);
if (tuid==0) return 7;
search_ulist(&uin,t_cmpuids,tuid);
if (uin.active && uin.pid && !uin.invisible ) {
return 2;
} else if(uin.active && uin.pid && uin.invisible && (HAS_PERM(PERM_SEECLOAK)
||usernum == uin.uid)) {
return 6;
} else return 7;
return 7;
}
AM.bbs@TaoLiBBS.3322.ORG (世界的黑暗) 于Sat Dec 27 01:19:25 2003)
提到:
转信站: SZU!news.ccie.net.cn!TaoLi
这是仿照BMonline写的吧?
我的是FB2Kv1126,我是参考ZV的fb2kv1129改的
~~~~~~~~~~~~~~~~~~~~~~~这个拒绝好友信息吧?
return 7在哪?
stiger@smth.org (stiger) 于Sat Dec 27 01:11:42 2003)
提到:
转信站: SZU!news.ccie.net.cn!maily.cic.tsinghua.edu.cn!SMTH
我的就是fb2kv1126
DEF_NOTMSGFRIEND 我改为定义是否彩色显示在线作者了。
AM.bbs@TaoLiBBS.3322.ORG (世界的黑暗) 于Sat Dec 27 01:40:37 2003)
提到:
转信站: SZU!news.ccie.net.cn!TaoLi
改了,编译OK,只是好像还是不行:(
帮我看看前面是不是漏了什么
stiger@smth.org (stiger) 于Sat Dec 27 01:38:40 2003)
提到:
转信站: SZU!news.ccie.net.cn!maily.cic.tsinghua.edu.cn!SMTH
readdoent里显示有很多状况的,要看看
AM@smth.org (静态运动) 于Sat Dec 27 01:51:02 2003)
提到:
转信站: SZU!news.ccie.net.cn!maily.cic.tsinghua.edu.cn!SMTH
好像没有吧。。。。里面的好像不用去管他,ent->owner已经重新赋值了
turbozv@bbs.pku.edu.cn (ZV) 于Sat Dec 27 10:39:33 2003)
提到:
转信站: SZU!news.ccie.net.cn!news.happynet.org!PKU
其实是一样的代码
不过你的函数返回的状态比较详细 ^_^
我那个没有用回调函数,呵呵,硬来的..
AM.bbs@TaoLiBBS.3322.ORG (爱自己) 于Sat Dec 27 10:54:53 2003)
提到:
转信站: SZU!news.ccie.net.cn!TaoLi
...................
快帮我看看还少了哪里。。。。。
turbozv@bbs.pku.edu.cn (ZV) 于Sat Dec 27 11:30:42 2003)
提到:
转信站: SZU!news.ccie.net.cn!news.happynet.org!PKU
因为 0x4 0000 0000 已经超出了32-bit.
AM.bbs@TaoLiBBS.3322.ORG (爱自己) 于Sat Dec 27 11:44:11 2003)
提到:
转信站: SZU!news.ccie.net.cn!TaoLi
我写多了一个0....ft
AM.bbs@TaoLiBBS.3322.ORG (爱自己) 于Sat Dec 27 11:44:28 2003)
提到:
转信站: SZU!news.ccie.net.cn!TaoLi
我在这里写多了一个0而已
yuhuan.bbs@ytht.net (二月二十一(八)) 于Sat Dec 27 14:18:32 2003)
提到:
转信站: SZU!news.ccie.net.cn!news.happynet.org!YTHT
return 2 6 7
ft
TurboZV.bbs@bbs.uestc.edu.cn (重构中……) 于Sat Dec 27 10:37:23 2003)
提到:
转信站: SZU!news.ccie.net.cn!news.uestc.edu.cn!UESTC
因为 0x4 0000 0000 已经超出了32-bit.
AM.bbs@TaoLiBBS.3322.ORG (爱自己) 于Sat Dec 27 17:02:34 2003)
提到:
转信站: SZU!news.ccie.net.cn!TaoLi
汗...我前面说了我只是在这里多写了一个0而已....
现在只排到31,还没超出32啦,现在是0x40000000
turbozv@bbs.pku.edu.cn (ZV) 于Sat Dec 27 17:10:26 2003)
提到:
转信站: SZU!news.ccie.net.cn!news.happynet.org!PKU
刚才那篇文章是专信delay的问题
你说的第三步,后面在格式化输出到 buf (sprintf(buf, xxx))
你再确认一下不是直接用的ent->owner, 而是file_owner?
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);
AM.bbs@TaoLiBBS.3322.ORG (爱自己) 于Sat Dec 27 17:27:27 2003)
提到:
转信站: SZU!news.ccie.net.cn!TaoLi
哦。。。是不是把后面的全改成file_owner?
stiger@smth.org (stiger) 于Sat Dec 27 18:47:27 2003)
提到:
转信站: SZU!news.ccie.net.cn!maily.cic.tsinghua.edu.cn!SMTH
2 6 7是颜色呀, 32m 36m 37m
hehe
AM (明年今日) 于Sat Dec 27 18:52:51 2003提到:
怪不得一开始看不懂,^_^
不过我不知道为啥,不成功,今晚再看看吧
turbozv@bbs.pku.edu.cn (ZV) 于Sun Dec 28 12:28:45 2003)
提到:
转信站: SZU!news.ccie.net.cn!news.happynet.org!PKU
nod nod
AM.bbs@TaoLiBBS.3322.ORG (爱自己) 于Sun Dec 28 12:42:45 2003)
提到:
转信站: SZU!news.ccie.net.cn!TaoLi
全改了就问题大了。。。。。。。。
因为你的*readdoent()是重新写过的
很不一样
我试着修改后就over了
因为ID具有颜色,所以在刊登者这里把颜色代码也算入ID的长度里面了
后面的日期也跟着往前移了几位-_-!!
最要命的是,所有ID都具有颜色-_-!!
turbozv@bbs.pku.edu.cn (ZV) 于Sun Dec 28 12:56:50 2003)
提到:
转信站: SZU!news.ccie.net.cn!news.happynet.org!PKU
没问题呀?(当然我是全部重新写过readdoent())
现有的代码,你只替换 ent->owner 为 file_owner( with color )
就好了,FB以前的代码直接用
TITLE = ent->title;
TITLE[xx] = '\0';
已经修正过标题长度了。
你把你改后有问题的代码帖出来吧。大家一起看看:)
AM.bbs@TaoLiBBS.3322.ORG (爱自己) 于Sun Dec 28 13:10:27 2003)
提到:
转信站: SZU!news.ccie.net.cn!TaoLi
呵呵,我看过了你的,你把处理标题那些单独重写了
我想移过去都很难,
我等会给你发过去看看吧
~~~~~~~~~~~~~o...这个我好像没有在意到这行
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店