上海轨道交通票价查询手机版
01月 23rd, 2007 by tnds自己做的一个小软件,支持所有的java手机,具体机型就不列了。
将下载的文件解压,然后将jad和jar文件传输到手机,安装就可以运行了,具体传输安装方式请参考手机说明书。
打算更新并扩展fterm地址簿
09月 25th, 2006 by tnds考虑到目前不少论坛由telnet/web双栖向web单栖发展,近期决定对原来的fterm地址簿进行扩展,扩展后将包括fterm地址簿和ie收藏夹。
同时将包含一些教育网外知名论坛(知名以我知道为准:P)
同时,将不再采取地区分类,而以论坛开放程度分类,打算分为如下
1.完全开放
2.需要edu.cn邮箱才能发文
3.需要校内邮箱才能发文
4.需要校内认证才能发文
5.只能使用匿名用户浏览
6.校外用户无法浏览
上海轨道交通换乘站首末班车时刻一览表(2006年12月30日起执行)
01月 11th, 2006 by tnds
上海轨道交通换乘站首末班车时刻一览表
(2007年12月29日起施行)
| 莘庄 | 上海南站 | 上海体育馆 | 人民广场 | 中山公园 | 世纪大道 | 西藏南路 | 蓝村路 | 宜山路 | 桂林路 | |||
| 一号线 | 富锦路方向 | 富锦路方向全程首班车 | 5:30 | 5:18 | 5:23 | 5:37 | ―― | ―― | ―― | ―― | ―― | ―― |
| 上海火车站区间首班车 | 4:55 | 5:01 | 5:17 | |||||||||
| 末班车 | 22:20 | 22:30 | 22:36 | 22:49 | ||||||||
| 莘庄方向 | 首班车 | 6::10(注1) | 5:58 | 5:52 | 5:36 | |||||||
| 末班车 | 23:34(注1) | 23:24 | 23:19 | 23:05 | ||||||||
| 二号线 | 淞虹路方向 | 首班车 | ―― | ―― | ―― | 5:39 | 5:51 | 5:28 | ―― | ―― | ―― | ―― |
| 末班车 | 22:49 | 22:59 | 22:40 | |||||||||
| 张江高科方向 | 首班车 | 6:03 | 5:53 | 6:14 | ||||||||
| 末班车 | 23:12 | 23:03 | 23:21 | |||||||||
| 三号线 | 上海南站方向 | 首班车 | ―― | 6:44(注1) | ―― | ―― | 6:27 | ―― | ―― | ―― | 6:34 | ―― |
| 末班车 | 23:03(注1) | 22:48 | 22:54 | |||||||||
| 江杨北路方向 | 首班车 | 5:30 | 5:30 | 5:22 | ||||||||
| 末班车 | 22:00 | 22:16 | 22:09 | |||||||||
| 四号线 | 内圈 | 首班车 | ―― | ―― | 5:31 | ―― | 5:42 | 6:15 | 6:28 | 6:20 | ―― | ―― |
| 环线运行末班车 | 22:10 | 21:18 | 21:48 | 22:00 | 21:52 | |||||||
| 宜山路方向末班车 | 23:14 | 22:22 | 22:52 | 23:04 | 22:56 | |||||||
| 外圈 | 首班车 | 5:32 | 6:29 | 5:56 | 5:44 | 5:52 | ||||||
| 环线运行末班车 | 20:57 | 21:49 | 21:19 | 21:07 | 21:15 | |||||||
| 宜山路方向末班车 | 22:02 | 22:54 | 22:24 | 22:12 | 22:20 | |||||||
| 五号线 | 莘庄方向 | 首班车 | 6:26(注1) | ―― | ―― | ―― | ―― | ―― | ―― | ―― | ―― | ―― |
| 末班车 | 22:26(注2) | |||||||||||
| 闵行开发区方向 | 首班车 | 6:00 | ||||||||||
| 末班车 | 22:00 | |||||||||||
| 六号线 | 港城路方向 | 首班车 | ―― | ―― | ―― | ―― | ―― | 7:26 | ―― | 7:21 | ―― | ―― |
| 末班车 | 21:23 | 21:18 | ||||||||||
| 灵岩南路方向 | 首班车 | 7:14 | 7:19 | |||||||||
| 末班车 | 20:44 | 20:49 | ||||||||||
| 八号线 | 市光路方向 | 首班车 | ―― | ―― | ―― | 6:10 | ―― | ―― | 6:00 | ―― | ―― | ―― |
| 末班车 | 22:08 | 21:59 | ||||||||||
| 耀华路方向 | 首班车 | 5:35 | 5:44 | |||||||||
| 末班车 | 21:34 | 21:43 | ||||||||||
| 九号线 | 松江新城方向 | 首班车 | ―― | ―― | ―― | ―― | ―― | ―― | ―― | ―― | ―― | 6:00 |
| 末班车 | 21:00 | |||||||||||
| 桂林路方向 | 首班车 | 6:52(注1) | ||||||||||
| 末班车 | 21:46(注1) | |||||||||||
| 三号线-九号线短驳车 | 桂林路方向 | 首班车 | ―― | ―― | ―― | ―― | ―― | ―― | ―― | ―― | 5:40 |
5:55(注1) |
| 末班车 | 20:30 | 20:45(注1) | ||||||||||
| 宜山路方向 | 首班车 | 7:15(注1) | 7:00 | |||||||||
| 末班车 | 22:05(注1) | 21:55 |
| 虹桥路 | 延安西路 | 金沙江路 | 曹杨路 | 镇坪路 | 中潭路 | 上海火车站(北广场) | 宝山路 | |||
| 三号线 | 上海南站方向 | 首班车 | 6:32 | 6:29 | 6:24 | 6:22 | 6:19 | 6:16 | 6:13 | 6:10 |
| 末班车 | 22:52 | 22:50 | 22:45 | 22:43 | 22:40 | 22:38 | 22:35 | 22:32 | ||
| 江杨北路方向 | 首班车 | 5:25 | 5:27 | 5:33 | 5:35 | 5:37 | 5:40 | 5:43 | 5:46 | |
| 末班车 | 22:11 | 22:14 | 22:19 | 22:21 | 22:23 | 22:25 | 22:28 | 22:32 | ||
| 四号线 | 内圈 | 首班车 | 5:37 | 5:40 | 5:45 | 5:47 | 5:50 | 5:53 | 5:56 | 5:59 |
| 环线运行末班车 | 21:13 | 21:16 | 21:20 | 21:22 | 21:25 | 21:27 | 21:30 | 21:33 | ||
| 宜山路方向末班车 | 22:17 | 22:20 | 22:24 | 22:27 | 22:29 | 22:31 | 22:34 | 22:37 | ||
| 外圈 | 首班车 | 6:34 | 6:31 | 6:26 | 6:24 | 6:21 | 6:19 | 6:16 | 6:12 | |
| 环线运行末班车 | 21:54 | 21:51 | 21:47 | 21:45 | 21:42 | 21:40 | 21:37 | 21:34 | ||
| 宜山路方向末班车 | 22:59 | 22:56 | 22:52 | 22:50 | 22:47 | 22:45 | 22:42 | 22:39 |
注:
1.此站为该方向终点站,此时间为估算列车/车辆到达时间,标出首末班车时刻为方便乘客把握换乘时间。
2.数据来源为上海地铁运营公司 (http://www.shmetro.com) 、 上海现代轨道交通有限公司 (http://www.smrt.com.cn) 、上海交通大学饮水思源BBS交通信息版(http://bbs.sjtu.edu.cn )及媒体。
3.末班车发车前3分钟停止售票。
4.为避免意外,建议在末班车发车前5分钟到达站台,请注意把握列车运行时间。
5.时间仅供参考,以车站现场公告为准。
6.四号线内圈为顺时针方向(宜山路-中山公园-上海火车站-世纪大道-西藏南路-宜山路),外圈为逆时针方向(宜山路-西藏南路-世纪大道-上海火车站-中山公园-宜山路)。
test trackback
06月 6th, 2005 by tnds1234
架了一个整站的系统Drupal
05月 26th, 2005 by tnds逛新软版的时候偶尔看到这么一个软件drupal( http://www.drupal.org )于是上去一看,确实不错,可以用XML收集各类新闻、blog,带有论坛、手册(类似Wiki)、blog等等,花了差不多一个星期做汉化(做到一半才发现前面有翻译了一半的……),最后做到98.95%(最后9个字串死活翻不了,用poedit翻好导入再导出还是没被翻译….)
后来又在逛czz的blog是发现了一个第一年$10的米国主页提供商,于是动了正式架站的念头(本来只想在自己机器上玩玩的,因为在国内还涉及到ICP),于是,就把子虚乌有搭起来了(这名字是一见如故开站时我看见许多网友“捣乱”型的发表不存在的BBS的贺电时忽然想到的,后来想想做网站名称确实不错,可惜zxwy.com/net/org、tnds.com/net/org都被注册了,只好退而求其次,注册了一个zxwybbs.com,因为是带shell的2.4g空间,所以以后还可以在上面折腾各类bbs代码(不过因为只有1年,也只能当个人站点用,1年过后就是$10/月了。不过到时候想办法找个便宜点的域名注册商把域名买下来)。
因为还有折腾别的东西,所以暂时给这个drupal站分了个 http://drupal.zxwybbs.com 的域名。
不过drupal的rss订阅似乎只支持2.0的,所以现在只加了我在csdn的blog(其实就是水木封ip后抢救的blog…),等回学校再翻翻smth的rss2.0的地址。
web下提示的修正
01月 9th, 2005 by tnds只做了非俱乐部成员与无发文权的在发帖时提示分开,转载可以参照这个修改bbsccc.c
另外,被封也最好能与一般无权发文提示分开,不过这里没做,其实很简单,就是在bbslib.chas_post_perm函数中根据不同情况返回不同的值,再在bbspst.c和bbsccc.c中作判断,更据不同的情况传递给http_fatal不同的值。
此外,关于sysop权限在非成员的俱乐部和被封版面我希望能做到和telnet下效果一样的提示,但不知道怎么在web下处理这个问答。。
===================================================================RCS file: D:\ythtcvs\bbs\nju09\BBSLIB.c,vretrieving revision 1.3retrieving revision 1.4diff -u -r1.3 -r1.4— BBSLIB.c 2005/00/05 04:18:58 1.3+++ BBSLIB.c 2005/00/09 07:14:29 1.4@@ -1777,8 +1777,15 @@ return 0; if (!strcasecmp(x->header.filename, DEFAULTBOARD)) return 1;- if (user_perm(user, PERM_SYSOP))- return 1;+ if (user_perm(user, PERM_SYSOP)) {+ /*if (x->header.flag & CLUB_FLAG) {+ sprintf(buf3, "boards/%s/club_users", x->header.filename);+ if (!(file_has_word(buf3, user->userid)))+ return 3; //非俱乐部成员的sysop权限返回3+ }+ else*/+ return 1;+ } if (!user_perm(user, PERM_BASIC)) return 0; if (!user_perm(user, PERM_POST))@@ -1795,7 +1802,7 @@ if (file_has_word(buf3, user->userid)) return 1; else- return 0;+ return 2; //非俱乐部成员返回2,modified by tnds } return 1; }
===================================================================RCS file: D:\ythtcvs\bbs\nju09\bbspst.c,vretrieving revision 1.2retrieving revision 1.3diff -u -r1.2 -r1.3— bbspst.c 2005/00/04 14:47:19 1.2+++ bbspst.c 2005/00/09 07:14:28 1.3@@ -6,6 +6,8 @@ int local_article, num, fullquote = 0, guestre = 0, thread = -1; char *ptr, userid[80], buf[512], path[512], file[512], board[512], title[80] = "";+ int club;+ char temp[70]; struct fileheader *dirinfo = NULL; struct boardmem *x; struct mmapfile mf = { ptr:NULL };@@ -40,8 +42,14 @@ http_fatal("错误的讨论区或者您无权在此讨论区发表文章"); if (njuinn_board(board) && !innd_board(board)) local_article = 1;- if (!has_post_perm(currentuser, x) && !isguest)- http_fatal("错误的讨论区或者您无权在此讨论区发表文章");+ club=has_post_perm(currentuser,x);+ if (club==2) {+ sprintf(temp,"%s为俱乐部版面,而您不是%s俱乐部的成员,请向%s俱乐部的版务申请发文权限",board,board,board);+ http_fatal(temp);+ } else {+ if (club!=1 && !isguest)+ http_fatal("错误的讨论区或者您无权在此讨论区发表文章");+ } if (noadm4political(board)) http_fatal("对不起,因为没有版面管理人员在线,本版暂时封闭."); if (x->ban == 2)
仿照水木的处理方式,对站务的一些特权作提示
01月 9th, 2005 by tnds主要是转载和发帖时检查是否是俱乐部成员和是否被封,并给出提示。
此外还对系统记录区作了保护,包括不能转载到系统记录区和在系统记录区发帖
===================================================================RCS file: D:\ythtcvs\bbs\src\bbs.c,vretrieving revision 1.5retrieving revision 1.6diff -u -r1.5 -r1.6— bbs.c 2005/00/06 01:23:20 1.5+++ bbs.c 2005/00/09 07:15:33 1.6@@ -645,6 +645,12 @@ clrtoeol(); prints("转载 ‘ %s ‘ 到 %s 版 ", quote_title, bname); move(6, 0);+ if (!strcmp(bname,"syssecurity")) {+ prints("抱歉,你不能将文章转载到系统安全记录区");+ pressreturn();+ clear();+ return FULLUPDATE;+ } if (innd_board(bname)) { getdata(7, 0, "(S)发表 (L)不转信 (A)取消? [A]: ", ispost, 9, DOECHO, YEA);@@ -669,23 +675,47 @@ islocal = 1; } if (ispost[0] == ’s’ || ispost[0] == ‘S’) {- if (deny_me(bname) && !USERPERM(currentuser, PERM_SYSOP)) {- move(8, 0);- clrtobot();- prints- ("\n\n 很抱歉,您已经被版主停止了发贴的权利。");- pressreturn();- clear();- return FULLUPDATE;+ if (deny_me(bname)){+ if (USERPERM(currentuser,PERM_SYSOP)) {+ move(8,0);+ clrtobot();+ if (askyn("您已经被版主停止了发帖权利,强制发文吗?",NA,NA)==NA) {+ prints("\n\n 很抱歉,您已经被版主停止了发贴的权利。");+ pressreturn();+ clear();+ return FULLUPDATE;+ }+ } else {+ if (!USERPERM(currentuser, PERM_SYSOP)) {+ move(8, 0);+ clrtobot();+ prints+ ("\n\n 很抱歉,您已经被版主停止了发贴的权利。");+ pressreturn();+ clear();+ return FULLUPDATE;+ }+ } }- if (deny_me_global() && !USERPERM(currentuser, PERM_SYSOP)) {- move(8, 0);+ if (deny_me_global()) {+ move(8,0); clrtobot();- prints- ("\n\n 很抱歉,您已经被站务停止了全站的发贴权利。");- pressreturn();- clear();- return FULLUPDATE;+ if (USERPERM(currentuser,PERM_SYSOP)) {+ if (askyn("您已经被站务停止了全站发帖权利,强制发文吗?",NA,NA)==NA) {+ prints("\n\n 很抱歉,您已经被站务停止了全站发贴的权利。");+ pressreturn();+ clear();+ return FULLUPDATE;+ }+ } else {+ if (!USERPERM(currentuser, PERM_SYSOP)) {+ prints+ ("\n\n 很抱歉,您已经被站务停止了全站的发贴权利。");+ pressreturn();+ clear();+ return FULLUPDATE;+ }+ } } if (club_board(bname, 0)) { if (USERPERM(currentuser, PERM_SYSOP) && (!clubtest(bname))) {@@ -695,7 +725,7 @@ clear(); return FULLUPDATE; }- }+ } else { if (!clubtest(bname) && !USERPERM(currentuser, PERM_SYSOP)) { move(8, 0);@@ -707,6 +737,7 @@ clear(); return FULLUPDATE; }+ } } strcpy(quote_board, currboard); ddigestmode = digestmode;@@ -1739,6 +1770,14 @@ replytitle = sfh->title; modify_user_mode(POSTING); bnum = getbnum(currboard);+ if (!strcmp(currboard,"syssecurity")) {+ move(3,0);+ clrtobot();+ prints("\n\n 抱歉,您不能在系统记录区发帖");+ pressreturn();+ clear();+ return FULLUPDATE;+ } if (!haspostperm(bnum)) { move(3, 0); clrtobot();@@ -1771,18 +1810,53 @@ }
if (club_board(currboard, bnum)) {- if (!clubtest(currboard) && !USERPERM(currentuser, PERM_SYSOP)) {- move(3, 0);- clrtobot();- prints- ("\n\n %s为俱乐部版面,请向版务申请发文权限",- currboard);- pressreturn();- clear();- return FULLUPDATE;+ if (!clubtest(currboard)) {+ if (USERPERM(currentuser,PERM_SYSOP)) {+ move(3,0);+ clrtobot();+ if (askyn("您并不是本俱乐部的成员,强制发文吗?",NA,NA)==NA) {+ prints("\n\n %s为俱乐部版面,请向版务申请发文权限。",currboard);+ pressreturn();+ clear();+ return FULLUPDATE;+ }+ } else {+ if (!USERPERM(currentuser, PERM_SYSOP)) {+ move(3, 0);+ clrtobot();+ prints+ ("\n\n %s为俱乐部版面,请向版务申请发文权限",+ currboard);+ pressreturn();+ clear();+ return FULLUPDATE;+ }+ } } }- if (deny_me(currboard) && !USERPERM(currentuser, PERM_SYSOP)) {+ if (deny_me(currboard)) {+ if (USERPERM(currentuser,PERM_SYSOP)) {+ move(3,0);+ clrtobot();+ if (askyn("您已经被版主停止了发帖权利,强制发文吗?",NA,NA)==NA) {+ prints("\n\n 很抱歉,您已经被版主停止了发贴的权利。");+ pressreturn();+ clear();+ return FULLUPDATE;+ }+ } else {+ if (!USERPERM(currentuser, PERM_SYSOP)) {+ move(3, 0);+ clrtobot();+ prints+ ("\n\n 很抱歉,您已经被版主停止了发贴的权利。");+ pressreturn();+ clear();+ return FULLUPDATE;+ }+ } + }+/* && !USERPERM(currentuser, PERM_SYSOP)) { move(3, 0); clrtobot(); prints@@ -1790,11 +1864,30 @@ pressreturn(); clear(); return FULLUPDATE;- }+ }*/ if (deny_me_global() && strcmp(currboard, "sysop")- && strcmp(currboard, "Arbitration")- && !USERPERM(currentuser, PERM_SYSOP)) {+ && strcmp(currboard, "Arbitration")) {+ move(3,0);+ clrtobot();+ if (USERPERM(currentuser,PERM_SYSOP)) {+ if (askyn("您已经被站务停止了全站发帖权利,强制发文吗?",NA,NA)==NA) {+ prints("\n\n 很抱歉,您已经被站务停止了全站发贴的权利。");+ pressreturn();+ clear();+ return FULLUPDATE;+ }+ } else {+ if (!USERPERM(currentuser, PERM_SYSOP)) {+ prints+ ("\n\n 很抱歉,您已经被站务停止了全站的发贴权利。");+ pressreturn();+ clear();+ return FULLUPDATE;+ }+ }+ }+ /*&& !USERPERM(currentuser, PERM_SYSOP)) { move(3, 0); clrtobot(); prints@@ -1802,7 +1895,7 @@ pressreturn(); clear(); return FULLUPDATE;- }+ }*/
bzero(&postfile, sizeof (struct fileheader)); clear();
丝路的删除
01月 6th, 2005 by tnds移植自北大未名代码,感谢chutium的指正
===================================================================
RCS file: D:\ythtcvs\bbs\src\announce.c,v
retrieving revision 1.2
retrieving revision 1.5
diff -u -r1.2 -r1.5
--- announce.c 2004/11/30 13:33:50 1.2
+++ announce.c 2005/00/05 10:43:45 1.5
@@ -2221,7 +2221,7 @@
move(t_lines - 22, 0);
clrtobot();
prints
- ("将当前路径设置为丝路的那一项? (按A-T↑↓选择, ' '或回车确定', ←或'X'取消)");
+ ("将当前路径设置为丝路的那一项? (按A-T↑↓选择, ' '或回车确定', ←或'X'取消,'z'删除丝路)");
for (i = 0; i < 20; i++) {
move(t_lines - 22 + 1 + i, 0);
prints(" %s(%c) %s",
@@ -2247,6 +2247,21 @@
if (nindex >= 20)
nindex = 0;
}
+ } else if (i=='Z') {
+ if(strlen(paths[index])) {
+ if (askyn("确实要删除这个丝路吗?", NA, YEA) == YEA){
+ strncpy(paths[index],"",sizeof(paths[index]));
+ strncpy(titles[index], "尚未设定 ",sizeof(titles[index]));
+ if (save_anpath(titles, paths) < 0) {
+ prints("丝路删除错误! 按任意键继续");
+ pressanykey();
+ } else {
+ pressreturn();
+ }
+ } else {
+ pressanykey();
+ }
+ }
} else {
i = i - 'A';
if (i >= 0 && i < 20) {
@@ -2292,6 +2307,7 @@
return 0;
}
+
int
select_anpath()
{
@@ -2307,7 +2323,7 @@
return -1;
}
prints
- ("将文档保存到哪个丝路? (按A-H↑↓选择, ' '或回车确定', ←或'X'取消)");
+ ("将文档保存到哪个丝路? (按A-T↑↓选择, ' '或回车确定', ←或'X'取消)");
for (i = 0; i < 20; i++) {
move(t_lines - 22 + 1 + i, 0);
prints(" %s(%c) %s",
YTHT特别服务安装指南
12月 25th, 2004 by tnds本文所提到的软件包除特殊注明外,均可从以下两个压缩包中获得
http://bbs.zzu.edu.cn/ytht.rar
http://bbs.zzu.edu.cn/ytht1.rar
[以上两地址暂时失效]
部分变量说明
($BBSHOME):BBS安装主目录,通常为/home/bbs
($BBSSRC):BBS源码目录,通常为/home/bbssrc
($WWWHOME):web环境主目录,通常为/var/www
以下内容一般以cygwin为例说明,对于其他系统,有时需要更改扩展名,例如linux系统下可执行文件没有.exe扩展名,自行修改即可。
一、翻查字典(cdict)安装
1.将cdict-1.0-1.i386.rpm(在ytht1.rar中)解压到用户目录,执行
rpm -ih cdict-1.0-1.i386.rpm (for redhat/cygwin等)
或将cdict-1.0-1.i386.deb解压到用户目录,执行
dpkg -i cdict_0.1-3_i386.deb (for debian)
2.cp ($BBSSRC)/local_utl/shellscript4bbsuser/cdict2.sh ($BBSHOME)/bin/cdict.sh
二、科技词典(ncce)安装
注:由于cygwin缺少newt的支持,由此科技词典在cygwin环境下只能用于web
1.将nccedict.zip(在ytht1.rar中)的CE.IDX、CE.LIB、EC.IDX和EC.LIB复制到($BBSHOME)/etc/ncce
注:如果不是标准安装在/home/bbs目录,同时需要修改libncce.c中#define DICPATH 将其指向实际目录。
2.cd ($BBSSRC)/games/ncce
make
cp cgincce.exe ($WWWHOME)/cgi-bin
cp ncce.exe ($BBSHOME)/bin
三、背单词安装
1.背单词的词库是我爱背单词4.0(一说2000)版的词库,但现在网上流传的多为2001及之后版本,我曾在maze上找到一个,但词库似乎仍与糊涂的对不上号。
2.背单词同样需要newt支持,因此在cygwin环境暂时无法使用。
3.如果有词库,将其拷贝至recite.c中所定义的libdir,同时要建立相对应的logdir
4.cd ($BBSSRC)/games/recite
make
cp recite.exe ($BBSHOME)/bin
四、推箱子(worker)安装
1.如果不是安装在标准的/home/bbs目录,需要修改worker.c 94行的map.dat为其实际目标路径。
2.cd ($BBSSRC)/games/worker
make worker
cp worker.exe ($BBSHOME)/bin
mkdir ($BBSHOME)/etc/worker
cp map.dat ($BBSHOME)/etc/worker
五、俄罗斯方块(Tetris)安装
mkdir ($BBSHOME)/etc/tetris
cd ($BBSSRC)/games/tetris
make
cp tetris.exe ($BBSHOME)/bin
六、扫雷与感应式扫雷安装
1.若bbs未安装在标准目录,需要分别修改winmine.c和winmine2.c中的winminepath和winmine2path使其指向实际的目录。
2.mkdir ($BBSHOME)/etc/winmine
mkdir ($BBSHOME)/etc/winmine2
cd ($BBSSRC)/games/winmine
make winmine
make winmine2
cp winmine.exe ($BBSHOME)/bin
cp winmine2.exe ($BBSHOME)/bin
七、打字练习(TT)安装
1.在cygwin下的time函数似乎有问题,造成打字游戏无法正常运行.
2.若bbs未安装在标准目录,同样需要修改TT.c中的recordfile定义,使其指向实际的目录
2.mkdir ($BBSHOME)/etc/tt
make tt
cp tt.exe ($BBSHOME)/bin
八、棋牌中心(Chess)的安装
进入ebbs目录,执行
gcc -o chessd.c和gcc-o chess.c,然后将生成的chessd和chc拷贝到($BBSHOME)/bin,运行
./chessd&
启动后台程序即可。
九、数字运算(Quickcalc)的安装
1.确认安装如下软件包,redhat、cygwin可用rpm -qa|grep [软件包名] 查询:
libreadline4
libreadline4-dev
libreadline
flex
2.将quickcalc-1.26.tgz解压到,并将($BBSSRC)/games/quickcalc-1.26-ythtpatch也复制到该目录。
3.patch<./quickcalc-1.26-ythtpatch
make
cp qc.exe ($BBSHOME)/bin
十、Freeip的安装
注意:如果使用的IP数据库是较新的,而程序仍然是913代码的话,需要修改sortip.c中定义的IPNUMS,将其改成大于当前IP数据库记录条数的值(例如,300000)。
1.cd ($BBSSRC)/games/bbsfreeip
make getip
会下载最新的纯真数据库(这个同时也可以用于fterm和QQ),如果你有这个数据库的话,可以直接将qqwry.dat拷贝至($BBSSRC)/games/bbsfreeip并跳过第2步
2.对于在windows安装的,可以直接用winrar将qqwry.dat解压出来。
对于在linux下安装的,就比较麻烦得去
http://www.rarlab.com/rar/rarlinux-3.3.0.tar.gz
下载unrar并解压。
3.make qqip
./qqip
生成ip_arrange.txt
4.make sortip
./sortip
生成ip_arrange_sort.txt
5. make ipnums.h
生成定义
6. $make
7.$make install
在cygwin下可能会出错,如果出现什么the same 之类的error,可以直接用windows的资源管理器进行复制,具体的路径就是:
把freeip.exe拷贝到($BBSHOME)/bin
把ip_arrange_sort.txt拷贝到($BBSHOME)/etc
把cgifreeip.exe拷贝到($WWWHOME)/cgi-bin
8.如果安装出现错误,可以考虑根据makefile中的内容单独make
十一、 元素周期表
cd ($BBSSRC)/wwwtools/periodic
mkdir ($WWWHOME)/html/periodic
cp * ($WWWHOME)/html/periodic
十二、LINUX手册
1.由于这个程序是调用的linux的内置手册,因此在cygwin下只能看到封面而不能看到内容
2.cd ($BBSSRC)/games/cgiman
make cgiman
cp cgiman.exe ($WWWHOME)/cgi-bin
十三、数学公式支持
1.我没有能在cygwin下调通。
2.cd ($BBSSRC)/games/tex/itex
make
cp itex2MML.exe ($BBSHOME)/bin
cp math2mathplayer.exe ($BBSHOME)/bin
3.测试是否安装成功可参考此文
http://bbs.tju.edu.cn/itexintro.html
如果输入了一个数学公式,并且选择了使用tex数学公式,并且你也安装了相关的软件,应该能够正常显示。