Долгое время надумывал впилить соответствующие иконки языков для клиента, дабы при смене языка он отображал на каком языке находится.
На ругофе работало, к слову говоря, но с тех пор воды утекло уже много, но не об этом.
Начал я с класса ChatWnd, в коем нашел нужное месте:
function HandleIMEStatusChange()
{
local string texture;
local EIMEType imeType;
imeType = GetCurrentIMELang();
switch( imeType )
{
case IME_KOR:
texture = "L2UI.ChatWnd.IME_kr";
break;
case IME_ENG:
texture = "L2UI.ChatWnd.IME_en";
break;
case IME_JPN:
texture = "L2UI.ChatWnd.IME_jp";
break;
case IME_CHN:
texture = "L2UI.ChatWnd.IME_jp";
break;
case IME_TAIWAN_CHANGJIE:
texture = "L2UI.ChatWnd.IME_tw2";
break;
case IME_TAIWAN_DAYI:
texture = "L2UI.ChatWnd.IME_tw3";
break;
case IME_TAIWAN_NEWPHONETIC:
texture = "L2UI.ChatWnd.IME_tw1";
break;
case IME_CHN_MS:
texture = "L2UI.ChatWnd.IME_cn1";
break;
case IME_CHN_JB:
texture = "L2UI.ChatWnd.IME_cn2";
break;
case IME_CHN_ABC:
texture = "L2UI.ChatWnd.IME_cn3";
break;
case IME_CHN_WUBI:
texture = "L2UI.ChatWnd.IME_cn4";
break;
case IME_CHN_WUBI2:
texture = "L2UI.ChatWnd.IME_cn4";
break;
case IME_THAI:
texture = "L2UI.ChatWnd.IME_th";
break;
//branch
case IME_RUSSIA:
texture = "BranchSys.symbol.IME_ru";
break;
//end of branch
default:
texture = "L2UI.ChatWnd.IME_en";
break;
};Code: C#
Где:
case IME_RUSSIA:
texture = "BranchSys.symbol.IME_ru";Code: C#
И есть путь к иконке русского языка.
Естественно по всем известному закону такой иконки там нет. Более того, в нём нет даже класса symbol.
Иконку я взял первую попавшуюся и решил залить:
Сохранил, закриптовал, кинул в клиент. Но при запуске клиент не реагирует на смену языка и отображает только одну иконку:
default:
texture = "L2UI.ChatWnd.IME_en";
break;Code: C#
То бишь дефотную.
Опережу один из вариантов - да, на текстуре в xdat изначально стояла какая-то левая текстура, естественно я сразу очистил поле. Так что отображает раскладку он сам.
Вот у меня и зреет вопрос - а в чём, собственно, я ошибся? Может кто тоже ковырял это.