作者neca (寻找一片海洋)
看板mud
标题[心得] Ubuntu + ES2lib 架站(3)
时间Fri Jan 25 01:31:38 2013
0、写在前头
其实这几篇都是这两天摸索阶段的经验,也许换台机器、跟着走一次未必
能够达到一样的结果。不过还是希望能够藉由这样的文章,引出许多仍然爱好
文字地下城的人,共同分享相关经验。
早先的文章就有一些是在探究没落的原因,其中有部份是因为十多年前,
网路环境不易架设站台、机器取得不易、资讯共享平台不多。幸好十九年後,
还能利用ES2lib做为分享的范本、改进的基石。
在本板随着时代的演进而式微的状况下,采用新系统发展的趋势也到来。
像小猫这样令人怀念的站台,因为机器老旧、程式码维护不易而消失的例子,
希望能够靠着老玩家们的努力,让这样的站台重新复活、找回沉醉在键盘上敲
打指令的回忆。
一、错误再度发生
上一篇提到我们改过logind.c之後,注册新帐号仍会遇到一些问题。举例
来说,我遇到了下面这样的错误讯息:
/include/combat.h: line 6 : syntax error
当我去看这个档案的时候,我发现第六行开始是在宣告一个class形态的
struct。当时我不知道这个宣告有什麽问题,所以我就先用注解符号/* */
把这个class宣告给暂时拔除,然後重新启动站台。
这一次,终於可以一次通到底,注册程序完成,成功进入到本MUD的第一
个房间里。
二、人生进阶,权限也要进阶:
四爷花费了一番功夫,总算是可以在这什麽都没有的空间当中大展身手了。
当四爷想要创造一个新NPC时,输入help,可以看到一些文件列表,再用help去
看其他的cmds时,却又再度发生"什麽?"惨案。
四爷如果不是皇上,那他还算是四爷吗?大概就只能当四奴了吧。
因此,我们必须要让四爷的人生进阶,让他从太子登基成皇。这时,我们要
将玩家的权限,提升到最大权限的admin。
根据网路上数以千万计的文件看来,大家都说要提升权限,请修改
/adm/etc/wizlist文件,如果没有这个文件,请自行创造一个。
格式:
ID (admin)
因为暂时只有你一个大神,所以wizlist里面只需要列出你一个帐号就可以,
如果是多人要一起创造世界,每个巫师的权限都必须在这档案里一一设定。
我的wizlist长这样子:
neca (admin)
当wizlist新增完之後,请重启mud。(要不要重启我不确定,但是我重新启动了)
这一次输入你之前注册的帐号、密码之後,很快的,你就会发现,它,
又xxx的断线了。
而且是毫无反应,毫无预警的断线了。
不管换了什麽client,一输入完密码就被踢掉,/log/USAGE只会有login记录,
没有quit记录。
这是什麽问题?
很好,我们再度回到处理玩家登入的logind.c,这一次,我们看到了
在get_passwd()里面有下面这一段:
if( wizhood(ob)=="(admin)") {
if( (query_ip_name(ob) != "localhost")
&& (query_ip_number(ob) != "127.0.0.1") ) {
write("安全检查失败....自动登出。\n");
destruct(user);
destruct(ob);
return;
}
write("安全检查通过。\n");
}
这时我恍然大悟,原来我如果是admin权限的帐号,必须要从MUD本机登入才行,
不能用其他的OS的client做连线。像我是用VMplayer在Win7里产生的Ubuntu,就只能
用Ubuntu里的terminal程式telnet,不能用Win7的putty。
在这个学习阶段,还管它安不安全检查,反正一开始我们的目的是要让整个环
境能使用,因此把这个if片段也用/* */注解掉。
重新启动mud,就可以使用外部的telnet程式登入。
当然,如果你从头到尾都一直使用跟MUD同一作业系统的话,就不会遇到这个蠢
问题。如果有心要改的话,上面的localhost可以改成你电脑的host name,127.0.0.1
可以改成你外部连线的IP。
三、大展身手
以上,重新启动之後,四爷正式登基成皇上,取得至高无上的权力。
而在开始创造世界之前,请先跟我一样开始详读LPC的写作方式及基础,了解物件
和继承。(因为ES2是采LPC撰写)。
如果顺着这系列文章安装,有遇到任何问题,欢迎回文。其实不少人都有相关的
实务经验可以提供意见的。
祝各位四爷都能顺利登基。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.123.97
1F:推 nfsong :推 36.224.33.13 01/25 21:37
2F:推 landalin :你到底有多想当四爷阿XD 114.39.153.89 01/26 08:24