BBS程序设计2--include目录
发信人: loveyou (独梦人), 信区: Das_Room
标 题: BBS程序设计2--include目录
发信站: 锦城驿站 (Tue Apr 25 20:08:23 2000), 转信
(* 多说一句,本人由于水平有限,所以写出的东东也不一定很正确,请大家
发现错误及时指正 *)
我先说说include-->BBS库文件目录
在FB7.0的版本里,include目录下一般有:
bbs.h chat.h config.h edit.h permissions.h
struch.h vote.h bbsgopher.h modes.h screen.h
tmachine.h
对于初学,不需要你们全部了解.只要求你们懂几个常用的就可以了.下面我
把几个常用到的讲解一下.其它的我在后面的章节再介绍.
config.h --> 定义BBS各种设置,如:最大上站人数,缺省的BBS目录,BBS程
序使用的最长的字符串长度,最长发呆时间,最长的密码位数
以及各种标识等等...
chat.h --> 是关于聊天室的一些设置.如:各种聊天室的名称,聊天室使用
代号的最大长度,聊天室最多进入人数,最多可以开几个房间,
代号的最大长度,聊天室最多进入人数,最多可以开几个房间,
以及程序中所要使用到的全局定义.
config.h --> 里面定义了BBS的站名,ID,IP地址,域名,BBS端口号,还有普通
用户的最长发呆时间,高级用户的最长发呆时间,最多注册人数
等等..
edit.h --> 里面的内容很少.一些是定义MARK,都是程序中用到的了解就行.
还有一个结构textline,这是用来保留您发表文章时所写的各行
字符(说明:当你正在写文章时,其时你所写的没有保留到文件中,
而是暂时放入缓冲区内,等你正式发表后,才保存到文件中)
permissions.h --> 学过英语,您就知道这里是设置权限的,当然这里也就是
您最应该了解的.(*记住,您要仔细的看这里的设置,以后
的编程要经常的用到*)
BBS的权限定义,是用的数据标识(1,2,4),我详细讲一下:
最前面你可以看到很多的数字如:
#define PERM_BASIC 000001
#define PERM_CHAT 000002
#define PERM_POST 000004
........
如果我(loveyou)只有基本权限那它的权限记录就是:
loveyou.userlevel = 000001 (*其实这里只写1就行,前面
加0也是为了容易看!写程序
要养成良好的习惯*)
(* 对了,再说明一下,基本权限就是进站的权限,如没有就进不了站 *)
(* 对了,再说明一下,基本权限就是进站的权限,如没有就进不了站 *)
如果我有基本权限和聊天权限,那就:
loveyou.userlevel = 000003 (* 这里是000001+000002 *)
这样定义,那我就有了这两样的权限.
以下同,那是这样, 权限标识有: 1,2,4,10,20,40,100,200,400....
设计者还为开发BBS留了些没有用到的权限: SPECIAL1,SPECIAL2...
如果您想给BBS再加些权限功能,那就要先在这里设置,如我要加个聊天
室的总管,那我就把PERM_SPECIAL1改成PERM_CHATGOD,然后我还要在后
面您要加的权限名就是第一步,加上后还要在后面设定它的中文名:
后面有这个设置的地方,都是汉字你一下就能找到,然后在SPECIAL1所
在的那一行把"特殊权限 1"改成"聊天室总管"就可以了.
这样,在BBS程序中您就可以使用PERM_CHATGOD权限了,如:
有这个权限的人可以在聊天室内踢人,那你就在chat.c里踢人函数加
上判断语句 HAS_PERM(PERM_CHATGOD) 就可以了,如果你不知道在哪
里加,那就慢慢学,我以后在讲到chat.c文件时会说明的.
上面讲了权限的定义,在这里还有就是用户参数的定义.基本意思同上.
只不过您要填加一参数,可不要忘记改一下:
#define NUMDEFINES 26
这一行,如果你加了一个参数,那就把26改为27.依此类推.
struct.h --> 这个库文件也很重要,所以您也要好好看一下,我也在这里多讲解一些.
这里首先定义的是userec结构.这个结构是为每个用户保存各种记录用
这里首先定义的是userec结构.这个结构是为每个用户保存各种记录用
的.如,用户的代号,上次联线地址,上次进站时间,发表文章数,上站次
数等,还有我前面提到的权限userlevel记录.
下在还有一个结构,就是user_info也是用来记录用户信息的.它们记录
的内容不同,而且user_info是在UTMP文件中使用的(* 如果您不懂,那
就不管它了,反正您主要了解userec结构就可以了 *)
在程序设计时,如果您要取某一用户的权限,那就这样:
loveyou.userlevel
取上站次数就: loveyou.numlogins
等等等....您要用的时间可以到struct.h文件里查找,不用全记住.
这个库文件里还定义了文件的结构树等一些东东,不用管了,等用到时
再来看吧.:PP
modes.h --> 这个也是很重要的.
里面定义的是用户的各种状态,只有在这里定义了状态,您才能在程序
中使用.如果您想加一个状态,如下围棋,那就在后面依次加上:
#define GO 56
这个56是依最后面一个数再依次加.
定义后您就可以使用这个了,如在程序用户开始下围棋时写上:
modify_user_mode( GO );
就可以了,您要是问,这是定义了哪位用户的状态是GO呀?
BBS程序一般指当前用户(currentuser)
(* 说到这里要说一句,这个currentuser您要一定一定一定要记住,
定义后您就可以使用这个了,如在程序用户开始下围棋时写上:
它在程序的任何角落里都可以使用,它是一个全局常量,指代当前
用户.如您要得到当前用户的ID,就这样:currentuser.userid
它得到的就是当前用户的ID *)
还有一些其它的,也不是没用,而是不常用,一般不需要做改到,只是在看程序时有
时不懂就来看看.先别花精力来看了.
--
※ 来源:.锦城驿站 bbs.swjtu.edu.cn.[FROM: 192.168.5.76]