1.
首先是樓上和樓上上二位小惡魔 ,有關輸入"/xhud"沒反應的問題
請先看一下,是否有安裝這個UI : LibSlash
小弟安裝的版本是V2.6-Release
有部分的UI指令,會需要這個Lib才能使用"/指令"
2.
再來就是有無法移動彩帶或是移動後彩帶消失的情況
因為目前上班中,所以仔細情況可能要等小弟下班再回家測試一下
在Postition這裡,請不要用all for frames去移動
最好還是一個一個frames選,一個一個移
在移動彩帶時,其實小弟沒有用過那4個方向鍵
都是直接在xy框填入數值(不過我看到有人的UI怎麼沒有出現填xy值的框框 @@)
這一點小弟回家再進一步check,謝謝大家
3.
紅色字,也就是敵對目標的名字變成亂碼
這個在台版的確會這樣子,推測可能原UI使用的coding 不支援中文
問題點可能在function : WStringToString(TargetInfo:UnitName("selfhostiletarget"))
要查一下WAR API看看
所以小弟是直接把敵對目標的名字拿掉
回家拍圖,再來寫教學囉 @@
我想這問題可能是真的發生在WStringToString
因為同樣的問題發生在另一個ui....pure
以下截兩小段程式碼:
from pure.lua
-- Print our initialization usage
local init = WStringToString( T["Pure %s initialized."] )
Pure.Print( init:format( DisplayVersion ) )
from zhTW.lua
T["Profiles"] = L"設定檔"
T["Pure - Configuration"] = L"Pure - 設定"
T["Pure %s initialized."] = L"Pure %s 已初始化."
可以發現, 經過 WStringToString 要求轉譯的文字, 就會發生問題
PS: 以上pure訊息出現在聊天視窗的載入訊息中, 不特別注意的話, 在設定視窗是看不見的
但是 WStringToString 的作用是什麼? 經查維基百科(http://www.thewarwiki.com/wiki/Main_Page), 有下列一段敘述
Since the base tostring() Lua function doesn't handle non-ASCII characters in wstrings properly, this function is provided to allow backwards conversion in a useful manner.
也就是, 這個API是用來轉譯遊戲中的文字為字串的, 而明顯的, 目前在對於中文的部份是有點問題!
曾想到一個做法是:
也許可以利用自設定一個local字串變數使其成為WStringToString抓到字串的輸出, 再利用L"xxx"的方式讓其正確顯示中文. 但是想不出辦法來讓L"xxx"中間的xxx可以接受變數而非實際文字, 故作罷.
****************************************************************************
另外, 除了WStringToString是有可能發生的原因之外, 中文版本對於文字輸出的方式可能有暇疵!
如: emotes這個ui:
在修改了部份主程式, 讓他可以認識的語言增加T_CHINESE之後, 如下:
emotes.T_CHINESE={
{L"/同意",L"同意"},
{L"/beckon",L"beckon"},
{L"/beg",L"beg"},
{L"/boast",L"boast"},
{L"/感到無聊",L"感到無聊"},
{L"/鞠躬",L"鞠躬"},
emotes.GERMAN={
{"/agree","zustimmen"},
{"/beckon","herbeiwinken"},
{"/beg","betteln"},
{"/boast","prahlen "},
{"/bored","gelangweilt"},
{"/bow","verbeugen"},
{"/brandish","mit Waffe fuchteln"},
{"/burp","rpsen"},
以上, 在T_CHINESE之中, 我必需加上L""這個功能來強迫local顯示才會正常! 但原本的德語卻不需要. 這就是讓我搞不懂的地方了!
****************************************************************************
anyway....總是希望能有高人有效解決這部份中文字顯示不正常的問題, 才有更多更完善的ui可以讓大家使用!
害我後面的UI介紹都沒力寫了(事實上是玩太兇)
先來看看中文字串這個大問題
WAR API很多在處理中文字都怪怪的
(所以,當初戰谷因為的中文問題而delay CB是真的很難搞)
小弟寫了一個簡單UI來測試中文字輸出
function gimi()
EA_ChatWindow.Print(towstring(" ---test area str--- "));
EA_ChatWindow.Print(towstring(" warhammer "));
EA_ChatWindow.Print(towstring(L" 基米拉 "));
EA_ChatWindow.Print(towstring(L"".. WAR ));
EA_ChatWindow.Print((L" t1 小惡魔 "));
EA_ChatWindow.Print(StringToWString(" t2 小惡魔 "));
EA_ChatWindow.Print(towstring(" ---test area end--- "));
end
在範例裡,warhammer,WAR等這些英文字都完全OK
不過以中文來看,只有"基米拉","t1 小惡魔"可以正常輸出在對話框裡
不過也不是上面那樣子就可以正常輸出中文 OTZ,
還要把檔案改為UCS-2 Little Endian來編碼....
再回來看WStringToString這個function
那是不是把xHUDTexts.lua改為UCS-2 Little Endian編碼就好....
很抱歉XDDD,不行 = =
所以問題就是在中文字串轉換
不過在有些UI,
原作者有把名詞獨立成為一個檔案,中文化作者針對該檔案來翻譯並轉碼就可以
以JunkDump(一鍵賣垃圾)這UI來說
(抱歉小弟找不到中文化的大大,在此謝謝你,也借你的中文化檔為例)
JunkDump的所有英文都定義為字串陣列,中文化作者翻譯每個字串後,就可以用了
不過同樣方式用在xHUD,還是......失敗
目前先介紹UI(都快OB了)
WAR API有空再回來K,搞不好有些API在台版根本被改過了 OTZ
有人想試看看寫簡單UI的,小弟附上附件
它的功能只有一個,就是...........在對話框顯示一堆廢話而已 XD
使用方法和其他UI都相同
錦標Server : 身懷六甲的英雄
砍霸Server : 基米拉 (薩滿)
附加壓縮檔: 200905/mobile01-3dd5f9b61c2c80b6aa29a375bf6743b4.zip