[心得] Ubuntu + ES2lib 架站(3)
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
推
01/25 21:37, , 1F
01/25 21:37, 1F
推
01/26 08:24, , 2F
01/26 08:24, 2F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
mud 近期熱門文章
PTT遊戲區 即時熱門文章