Re: [閒聊] tmi-2 efun 與 simul_efun 簡單說明

作者: laechan (揮淚斬馬雲)   2014-07-08 17:49:59
※ 引述《typers (Typer)》之銘言:
: : int strlen sizeof(string);
: : 從上面可以發現 string 就跟「陣列」的概念是類似的,也就是
: : 說如果一 string = "abcde", 它就類似({"a","b","c","d",e"})
: : 這樣的陣列排在一起的結果。
: : strlen 就是計算字串的長度。strwidth 也相當於 strlen 只是
: : 一般都用 strlen。
: 在啟用 fluffos 的 USE_ICONV 選項後, strwidth 的行為將會與 strlen 不同
: strlen("中文字") = 9 (UTF-8 的一個中文字佔 3 個 byte, 故長度為 9)
: strwidth("中文字") = 3
: USE_ICONV 選項開啟後, 所有 lib 的文件都必須以 UTF-8 作為文字編碼格式
: 既然是要弄新的 lib, 小弟建議開啟 USE_ICONV
: : string *explode(string, string);
: 這個 efun 會因為 fluffos 的編譯選項, 而有不同的行為
: 請問 L 大是以 /adm/etc/options.h.example 來編譯 fluffos 嗎?
不是,我用的 fluffos 是 tmi2_v3_fluffos 壓縮檔解壓縮出來直接用
的(已 compile 好,現成的)。
因為我不會 compile mudos。(我這方面一向很弱..)
那我猜它用的是 options.tmi2 (類似檔名)。
我通常建議有能力的使用者可自行 compile 出新版本的,如現行支援
64 位元的 fluffos 2.27 版,我沒記錯的話它是開啟 USE_ICONV 的,
現行能在 fluffos 2.16 下跑的 tmi2_v3_改,要改到 fluffos 2.27
上面跑不需要做許多修改,sanc 目前就有在 2.27 上面跑的。
(但是那個環境不是我弄的)
我自己則是評估 2.16 就夠跑了(畢竟 win7 下也能跑我覺得就夠了)。
: : mixed *commands();
: 回傳 this_object() 透過 add_action() 取得的指令資訊列表
: 可供 user 查詢目前可使用那些特殊指令 (如某 room 或 item 才有的特殊指令)
我用 running 試過沒跑出東西,我想是 environment 的關係。
不然我原先也是猜它大概是這個意思。
: : void set_living_name(string);
: 在小貓, npc 通常不使用此 efun
: 因為當名稱一樣時, find_living() 只找的到最後一個呼叫此 efun 的物件
: 除非特例, 不然不建議大量使用這個 efun
其實我也在考慮是否不再使用這個 efun,我是偶然發現的,我先前
以 set_npcs 函數所設定的 npc 無法被接在 semote 的 $O對象內,
我才知道 set_living_name 是做 find_living 用的,然後就如你說
的,除非特例(比方 recall 的店小二或許就 ok),不然沒必要設定
,find_living 用到的機率太少了。
: : livings 傳回的就是所有被 set_living_name 且被載入的生物
: livings() 應該是回傳曾經呼叫過 enable_commands() 的物件
嗯,跟 living() 不同:p
: : int set_encoding(string);
: : string to_utf8(string, string);
: : string utf8_to(string, string);
: : int *str_to_arr(string);
: : string arr_to_str(int *);
: 這幾個 efun 是需要開啟 USE_ICONV 選項之後才會有的
: 用途是處理文字編碼格式
: 例如
: utf8_to("中文", "Big-5") 可以將文字從 UTF-8 轉換為 Big5
: str_to_arr("中文") 會回傳 ({ 20013, 25991, 0 }), 可用來判斷是否為中文字
: UTF-8 的中文範圍為 0x4E00 ~ 0x9FA5
這應該就是關鍵了,也就是 tmi2_v3_改 將來能否繁→簡,簡→繁。
這就留給以後有能力的使用者吧,如果我有能力我也會試試看,畢竟
打包檔裡有現成的 driver.exe 可用總是比較方便,目前則只有2.16
版的,我想它是沒有開啟 USE_ICONV 的,也沒有多 port 模式。
LAechan

Links booklink

Contact Us: admin [ a t ] ucptt.com