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