Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Игровой клиент (https://forum.zone-game.info/forumdisplay.php?f=54)
-   -   Иконка языка (https://forum.zone-game.info/showthread.php?t=41545)

Emperor 18.10.2016 04:29

Иконка языка
 
Долгое время надумывал впилить соответствующие иконки языков для клиента, дабы при смене языка он отображал на каком языке находится.
На ругофе работало, к слову говоря, но с тех пор воды утекло уже много, но не об этом.

Начал я с класса 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.

Иконку я взял первую попавшуюся и решил залить:
http://savepic.su/7538616.png

Сохранил, закриптовал, кинул в клиент. Но при запуске клиент не реагирует на смену языка и отображает только одну иконку:
default:
		texture = "L2UI.ChatWnd.IME_en";
		break;
Code: C#
То бишь дефотную.


Опережу один из вариантов - да, на текстуре в xdat изначально стояла какая-то левая текстура, естественно я сразу очистил поле. Так что отображает раскладку он сам.

Вот у меня и зреет вопрос - а в чём, собственно, я ошибся? Может кто тоже ковырял это.

Persy 18.10.2016 04:53

Re: Иконка языка
 
Цитата:

BranchSys.symbol.IME_ru
BranchSys.UI.IME_ru, иннова накосячила))

Emperor 18.10.2016 04:59

Re: Иконка языка
 
Persy, Ну окей, она существует.
http://s5.postimg.org/44768yspj/screenshot_1902.png

Но я всё равно не улавливаю, а в чём ошибка-то? Я же дал ему класс и текстуру, на которые идёт ссылка в interface.u. Или я опять что-то не втянул до конца?

Anikey 18.10.2016 05:02

Re: Иконка языка
 
Цитата:

Сообщение от Emperor (Сообщение 419942)
Но я всё равно не улавливаю, а в чём ошибка-то? Я же дал ему класс и текстуру, на которые идёт ссылка в interface.u. Или я опять что-то не втянул до конца?

Ты добавил в BranchSys.UI, а пишешь BranchSys.IME_ru, а UI?

Emperor 18.10.2016 05:06

Re: Иконка языка
 
Цитата:

Сообщение от Anikey (Сообщение 419943)
Ты добавил в BranchSys.UI, а пишешь BranchSys.IME_ru, а UI?

Я вообще ничего не добавлял, она была там изначально, просто кусок класса чата ввёл меня в заблуждение о её отсутствии.

Что значит пишу? Мне в этом случае вообще ничего писать не нужно. Ссылка на текстуру в xdat остаётся пустой, a её заполнением занимается interface.u.

Но он юзает только дефолтную и не хочет показывать более никакую.

Anikey 18.10.2016 05:11

Re: Иконка языка
 
Вот это:
PHP код:

texture "BranchSys.symbol.IME_ru"

На это:
PHP код:

texture "BranchSys.UI.IME_ru"

Не?

Emperor 18.10.2016 05:12

Re: Иконка языка
 
Anikey, Давай на секунда рассмотрим 2 варианта развития событий:

1) Я могу править interface.u и исправлять путь к текстуре.
2) Я могу залить новую текстуру по тому пути, который знает interface.u.

В обоих случаях должно работать. Я выбрал второй.

Поглядим что скажет Перси, кароче говоря.

Persy 18.10.2016 05:15

Re: Иконка языка
 
Emperor, Не в косячном пути к текстуре причина. UIAPI и локализацию смотрите.

Emperor 18.10.2016 05:18

Re: Иконка языка
 
Цитата:

Сообщение от Persy (Сообщение 419947)
и локализацию

Вот на этом моменте поподробнее, если можно.


Текущее время: 20:55. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot