MUD eXtension Protocol

MUD eXtension Protocol (MXP) ,是由 Zugg Software維護,它可以利用特別的 Tag 讓 client 顯示時別的畫楮,來讓 Server 與 Client 之間互相通溝。所以玩家即可利用滑鼠進行遊戲操作,可大量降低使用者進入 Mud 的門檻。

Server 部份:

要啟動 MXP 除了 Client 要支援之外, Server 在送出資料時分為三種 Mode ,所以我們在送出資料前,要先送出這些資料是什麼模式,模式送錯,就只會顯示原始內容 。

  1. Open mode - 代號 1: 這是預設的模式,在此模式下可以使用一般合法的 tag ,幾個常用的 Tag 如下:
    <bold> or <b>
    <underline> or <u>
    <italic> or <i>
    <color> or <c>
    <font>
    <strike> or <s>
    <strong>
    <small>
    <tt>
    
  2. Secure mode - 代號 2 : 這個模式可以使用特別的 command 來與 client 端互動,例如:east,他就會出現有底線的 east ,使用者只要點 east ,就會自動往東走。其他相關的資訊請參考 Secure Tag
  3. Locked mode - 代號 3 : 這是原始碼模式,這個部份將不會特別處理,直接顯示。
  4. 其餘模式請參考:MXP modes - secure, open and locked 這篇文章。

Client 部份:

目前支援 mxp 的 Client 只有 MUSHClientZmud 6.5 板以上,其他的 Client 並不支援。

目前狂想空間已經啟用了部份 mxp 的支援,例如在 npc 上點右鍵,可以得到 kill/fight/look 之類的動作。如果點到 item 上面,會有 get/drop 之類的動作。

你現在開啟 zmud 6.5 板以上,連到 fs.twkang.net 5555 ,並且在登入後,打「set mxp」這個指令,即可以開始享用用滑鼠玩 Mud 的樂趣了。

有圖有真像:zmud

在 Mud 中和 MSN & YAHOO 作通訊

現在滿多網路遊戲都有內建和 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 內的多國語言轉換

相信很多 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

用 php 去解析 mud 中的存檔

我寫了一個用去解析 mud 中的存檔的 php 程式,是參考 MudOS 的原始碼改的,如果有人要利用此來寫出 WebBBS 來看 mud 中的 board 也可以利用該 php 程式。

原始檔放在: http://rw.muds.net/~whatup/mud/LpcData.phps

取下後,請將副檔名改為 .php 結尾。
你可以把 LpcData.php 放到網頁可存取到的目錄,並用


就可以把他引入了。其使用方法為:

File);
print_r("轉檔後:"); // 會產生 mapping &amp; array
print_r($ld-&gt;data);
?&gt;

如果要取出dbase 中的某個內容的話,可以用:

data["dbase"]["name"]);
?&gt;

這樣就會取出該檔中的 name 了。