Mud

You are currently browsing the archive for the Mud category.

現在滿多網路遊戲都有內建和 MSN 作連結的功能了,讓玩家在遊玩之時,還可以和朋友作即時的聊天通話。

現在配合了邪惡的軟体 bitlbee 就可以達到這項功能。其實在 Mud 裡面用 Mud 裡的 socket 理論上也可以完成,不過因為 Msn 的通訊需要 https 之類的加密協定,所以就只能作到一半了。

bitlbee 其實還幫我們處理了語系的轉換,和各個 im protocol 的處理,這樣可以讓我們使用簡單的 irc protocol 就可以達到我們想要目地了。

以下提供我已經完成的程式,但如果有任何 bug 歡迎通知我。

即時通訊系統

以下是使用說明:

指令格式 : im [各項參數]

這個指令可以讓你登入網路上流行的即時通訊軟體。目前支援的即時通訊軟體有 MSN 、 YAHOO 這二項。

不管你是第幾次使用,要使用 im 時,必需先打 im login 作登入的動作。

因為網路傳輸的關系,有些訊息可能會延遲一些時間才會收到。

im login - 登入 im 系統。
im quit - 登出 im 系統。
im who - 列出你的好友名單。
im register msn - 註冊 msn 帳號。
im register yahoo - 註冊 yahoo 帳號。
im add <protocol> <account> - 新增好友。
im remove <account>- 移除好友。
im no - 不同意他人把你加入好友名單。
im yes - 同意他人把你加入好友名單。
im nick <nick> - 修改 msn 的暱稱。
im tell <id> <msg> - 傳訊給某人。

UPDATED 2005-07-05: 下載點更新

相信很多 Mud 管理者都還在用 Lpc 寫的簡繁互轉的程式或是利用 limso 所作的 package 去轉。不過現在多了一個選擇,在 Linux 下可以利用 Glibc 所提供的函式來作字元轉換,而且可以達到 big5 <-> utf8 <-> gb2312 都可以互轉,不是只有原先的簡繁互轉而已。我相信這樣的方法,應該可以提昇不少效率,並能支援轉換到 utf-8 去。

該原始碼可以來此下載:
   http://rw.muds.net/~whatup/mud/iconv.tgz
  
下載原始碼後,請把該檔案解壓縮到 mudos 的 source 目錄下的package,會解出2個檔,iconv.c、iconv_spec.c,然後你可以在options.h 裡加上:

#define PACKAGE_ICONV

再重新編譯原始碼然後覆蓋原先的 mudos ,接著重新啟動 mud 即可使用。

名稱:
iconv_string() - 轉換字元集語法:

string iconv_string( string, string , string );
字串 iconv_string( 字串 來源編碼, 字串 目的編碼, 字串 內容);

用法:
來源編碼是指原先的來源的編碼是哪一種,如 big5。目的編碼是指想要編成哪一種碼,如 gb2312 or utf8。此函式傳回的值為編碼後的字串。
   ex: iconv_string("big5","gb2312","編碼");
這樣就會把"編碼"這2個字轉成簡體字了。

作者: whatup@wm

如有問題,請 mail 到 whatup.tw at gmail.com,其中的 at 請換成 @

ps. 系統爛掉請不要怪我啊…:P

mud 內的 ftp server

我相信很多人都用 mud 內建的 ftp server,不過因為內建的 server 其實還是有許多的問題,例如:無法使用 pasv mode,效能也不彰…之類的。不過我現在的作法並不是使用 mud 內建的 ftp server,是用 pureftpd 來作 ftp server。為什麼選用 pureftpd 呢?因為他可以不用 root 模式來跑 ftp server,且可以用自定的密碼認證模式,所以可以讓他跟 mud 連結,作到 ftp & mud 都使用同樣的密碼。接下來看看怎麼作:

  1. ftp://ftp.pureftpd.org/pub/pure-ftpd/release/ 下載最新的 pureftpd 的 source code。
  2. $ tar -xzvf pure-ftpd-xxx.tar.gz
  3. $ ./configure –with-everything –with-brokenrealpath –without-shadow
    –with–noroot –without-ascii –with-language=traditional-chinese
  4. $ make all
  5. cd src/ 把 pure-ftpd & pure-authd cp 到 ~/bin/ 下
  6. 建個 ~/bin/auth 檔內容為:其中的 5556 為在mud 內要拿來作認證的 port,你可以用 iptables 檔掉非 127.0.0.1 連線。
    #!/bin/bash
    (printf %s:%s:%s"rn" $AUTHD_ACCOUNT $AUTHD_PASSWORD $AUTHD_REMOTE_IP;sleep 0.1)|telnet localhost 5556

  7. $ ~/bin/pure-authd -s /home/wmmud/bin/ftpd.sock -r /home/wmmud/bin/auth &
    // 請把其中的目錄改成你現實的狀態,auth就是剛建的 auth 檔
  8. $ home/wmmud/bin/pure-ftpd -lextauth:/home/wmmud/bin/ftpd.sock -A
    -O CLF:/home/wmmud/bin/log -S 5560 &
    // ftpd.sock 要跟上一個同樣, 第2個 CLF:/xxx 就是你的 log
    檔想要放置的位子,5560 就是你要開放給 wizard 連接的 port

Linux 下的處理已經好了,接下來就是處理 mud 設定了:

  1. 在 config 檔新增 external_port_2 : telnet 5556 ,其中 5556 是你要讓 pure-ftpd 拿來作認證的。
  2. 改寫 /adm/obj/master.c 的 connect,讓他能接受多個 port。
    範例:http://rw.muds.net/~whatup/mud/ftp_server_master.example.c
  3. 新增 /obj/ftplogin.c
    範例:http://rw.muds.net/~whatup/mud/ftp_server_ftplogin.example.c

接下來應該就可以動了,當然你的 wizard char 要上線才能同時登入 ftp ,這樣對安全性也好多了。

« Older entries

 

Jaiku Message

部落格觀察

統計

  • 文章數:197
  • 分類數:14
  • 評論數:360
  • 總字數:43887

誰來訪?