FIZRYK43

Используем русские символы в тексдравах.

В теме 4 сообщения

Всем доброго времени суток. В общем встречался с такой проблемой что не мог юзать русские буквы в текстдравах , а так хотелось ...

Вот пару месяцев нашел решение данной проблемы.

Говорю сразу, это не плагин CRP.

1.Создаем сток в любом месте вашего мода, я это дела в конце мода. 

Спойлер

stock TranslateText(string[])
{
new result[128];
for (new i = 0; i < sizeof(result); i++)
{
switch (string[i])
{
case 'а': result[i] = 'a';
case 'А': result[i] = 'A';
case 'б': result[i] = '—';
case 'Б': result[i] = 'Ђ';
case 'в': result[i] = 'ў';
case 'В': result[i] = '‹';
case 'г': result[i] = '™';
case 'Г': result[i] = '‚';
case 'д': result[i] = 'љ';
case 'Д': result[i] = 'ѓ';
case 'е': result[i] = 'e';
case 'Е': result[i] = 'E';
case 'ё': result[i] = 'e';
case 'Ё': result[i] = 'E';
case 'ж': result[i] = '›';
case 'Ж': result[i] = '„';
case 'з': result[i] = 'џ';
case 'З': result[i] = '€';
case 'и': result[i] = 'њ';
case 'И': result[i] = '…';
case 'й': result[i] = 'ќ';
case 'Й': result[i] = '…';
case 'к': result[i] = 'k';
case 'К': result[i] = 'K';
case 'л': result[i] = 'ћ';
case 'Л': result[i] = '‡';
case 'м': result[i] = 'Ї';
case 'М': result[i] = 'M';
case 'н': result[i] = '®';
case 'Н': result[i] = ' ';
case 'о': result[i] = 'o';
case 'О': result[i] = 'O';
case 'п': result[i] = 'Ј';
case 'П': result[i] = 'Њ';
case 'р': result[i] = 'p';
case 'Р': result[i] = 'P';
case 'с': result[i] = 'c';
case 'С': result[i] = 'C';
case 'т': result[i] = '¦';
case 'Т': result[i] = 'Џ';
case 'у': result[i] = 'y';
case 'У': result[i] = 'Y';
case 'ф': result[i] = '~';
case 'Ф': result[i] = 'Ѓ';
case 'х': result[i] = 'x';
case 'Х': result[i] = 'X';
case 'ц': result[i] = '*';
case 'Ц': result[i] = '‰';
case 'ч': result[i] = '¤';
case 'Ч': result[i] = 'Ќ';
case 'ш': result[i] = 'Ґ';
case 'Ш': result[i] = 'Ћ';
case 'щ': result[i] = 'Ў';
case 'Щ': result[i] = 'Љ';
case 'ь': result[i] = '©';
case 'Ь': result[i] = '’';
case 'ъ': result[i] = 'ђ';
case 'Ъ': result[i] = '§';
case 'ы': result[i] = 'Ё';
case 'Ы': result[i] = '‘';
case 'э': result[i] = 'Є';
case 'Э': result[i] = '“';
case 'ю': result[i] = '«';
case 'Ю': result[i] = '”';
case 'я': result[i] = '¬';
case 'Я': result[i] = '•';
default: result[i] = string[i];
}
}
return result;
}

 Ну как бы можно сказать это все, готово, как видите в стоке мы заменили нечитаемые файлы в русские символы, таким образом он и будет работать, но для его работы к вашим тест драйвом нужно будет кое что дописывать, а именно название стока, сейчас приведем пример. 

2.

Спойлер

Добавляем TranslateText перед скобками с текстом.

 


GameTextForPlayer(playerid, TranslateText("~r~закрыто"), 3000,1);
TestTD[2] = TextDrawCreate(427.291351, 311.499969, TranslateText("Русский"));

Вот и все, на это заканчиваем. если будут вопросы пишите я помогу объясню. от + не откажусь. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем добавлять лишнее, если можно использовать обычный конвертер, если не понятно, что там написано: для кого комментарии придумали??O.o

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@SCRIPTMAN Соглашусь с тобой, можно использовать программу, но для меня было более удобно это сделать так, что бы все сразу писать в моде и не переделывать в программе текст. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А еще есть библиотека crp :$.

 

@SCRIPTMAN, ну, видимо, кому и что удобнее. Я тоже не пользовался какими-то отдельными программами, потому что с не меньшим удобством мог пользоваться функциями-конвертерами.

 

@FIZRYK43, могу предложить еще два варианта функции. Правда я не проверял. И в первом не уверен, поскольку не помню, как передаются массивы в функции. В теории должны по ссылке и метод должен работать. По факту - не помню.

Но прилагаю оба варианта, поскольку, возможно, кого-то что-нибудь заинтересует из этого.

 

Спойлер

stock TranslateText(string[]) {
	static altCharsS[] = { // маленькие символы
		'a', '—', 'ў', '™', 'љ', 'e', 'e', '›', 'џ', 'њ', 'ќ', 'k', 'ћ', 'Ї', '®', 'o', 'Ј',
		'p', 'c', '¦', 'y', '~', 'x', '*', '¤', 'Ґ', 'Ў', '©', 'ђ', 'Ё', 'Є', '«', '¬'
	};
	
	static altCharsB[] = { // заглавные буквы
		'A', 'Ђ', '‹', '‚', 'ѓ', 'E', 'E', '„', '€', '…', '…', 'K', '‡', 'M', ' ', 'O', 'Њ',
		'P', 'C', 'Џ', 'Y', 'Ѓ', 'X', '‰', 'Ќ', 'Ћ', 'Љ', '’', '§', '‘', '“', '”', '•'
	};
	
	for (new i = 0, length = strlen(string), symbol = 0; i < length; i++) {
		symbol = string[i]; // берем текущий символ
		
		if (192 <= symbol <= 223) { // заглавные буквы
			string[i] = altCharsB[symbol-192];
		}
		else if (224 <= symbol <= 255) { // маленькие буквы
			string[i] = altCharsS[symbol-224];
		}
	}
}

 

Спойлер

stock TranslateText(string[]) {
	static result[128];
	
	static altCharsS[] = { // маленькие символы
		'a', '—', 'ў', '™', 'љ', 'e', 'e', '›', 'џ', 'њ', 'ќ', 'k', 'ћ', 'Ї', '®', 'o', 'Ј',
		'p', 'c', '¦', 'y', '~', 'x', '*', '¤', 'Ґ', 'Ў', '©', 'ђ', 'Ё', 'Є', '«', '¬'
	};
	
	static altCharsB[] = { // заглавные буквы
		'A', 'Ђ', '‹', '‚', 'ѓ', 'E', 'E', '„', '€', '…', '…', 'K', '‡', 'M', ' ', 'O', 'Њ',
		'P', 'C', 'Џ', 'Y', 'Ѓ', 'X', '‰', 'Ќ', 'Ћ', 'Љ', '’', '§', '‘', '“', '”', '•'
	};
	
	for (new i = 0, length = strlen(string), symbol = 0; i < length; i++) {
		symbol = result[i]; // берем текущий символ
		
		if (192 <= symbol <= 223) { // заглавные буквы
			result[i] = altCharsB[symbol-192];
		}
		else if (224 <= symbol <= 255) { // маленькие буквы
			result[i] = altCharsS[symbol-224];
		}
		else {
			result[i] = symbol;
		}
	}
	
	return result;	
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Mister Odin
      От Mister Odin
       
      new
       g_teleport_list[39][E_TELEPORT_LIST] = {  {"Спавн пгт.Батырево", 1802.3612, 2508.4824, 15.8887},  {"Спавн г.Арзамас", -113.5887, 977.7222, 12.0346},     {"Спавн г.Южный", 2744.2770, -2446.7246, 21.8988},     {"Центральный банк", 1852.020385,2040.791381,15.892713},  {"Рублёвка", -837.7783, 888.6161, 12.7232},  {"Казино", 1332.4252, 2358.7014, 17.6641},  {"Битва за контейнеры", 614.5167, 1722.3566, 12.0709},  {"Автосалон низкого класса", 2493.9616, -722.9544, 12.3315},  {"Автосалон среднего класса", 1407.7449, 455.4801, 13.1630},  {"Автосалон высокого класса", -14.0637, 2614.5664, 10.9892},   {"Мотосалон Harley Davidson", 785.720153, 750.465087, 12.000024},  {"Автошкола", 1909.174438,2227.679687,15.708162},  {"Военкомат", 1916.778564,2302.411376,15.574637},  {"Правительство области", -139.140975,593.789611,12.145712},  {"Отдел полиции №1 (ГИБДД)", 1906.805786,-2234.382812,11.257631},  {"Отдел полиции №2 (УМВД)", 2581.309326,-2416.139892,21.960090},  {"Отдел ФСБ", 1823.904663,2095.636718,15.848405},  {"Городская больница г.Арзамас", -285.797210,581.851562,12.120290},   {"СМИ", -317.708038,821.221679,13.051450},  {"Воинская часть", 1703.197265,1678.025878,15.279437},  {"Арзамасская ОПГ", 438.705322,1046.505126,12.002637},  {"Батыревская ОПГ", 1941.203857,2161.006591,15.705187},  {"Лыткаринская ОПГ", -2346.002441,75.257041,21.002962},  {"Шахта", 2381.5727, 1726.4451, -2.1506},  {"Завод", -1062.6697, 2204.1894, 38.0964},  {"Инкосация", 1864.1374, 2011.7136, 15.8546},  {"Транспортная Компания", 2362.1115, 1972.5627, 15.5530},  {"База механиков", 1840.918090,-118.025146,15.695312},  {"Курьерская служба доставки", 2764.509765,-2396.882568,21.890625},  {"Аренда автобуса(Южный)", 2771.041992,-2454.780761,21.845964},  {"Аренда автобуса(Арзамас)", -127.487670,943.652648,12.142824},   {"Аренда автобуса(Батырево)", 1798.986328,2529.591552,15.664262},  {"Гоночная трасса", -1568.7784, 1611.8305, 36.3971},  {"Дом на горе", -789.5397, -456.7479, 741.1422},  {"СТО и тюнинг-ателье", 1856.1375, -122.3266, 15.6888},  {"Аренда транспорта пгт.Батырево", 1763.641723,2255.673339,15.865348},  {"Аренда транспорта г.Арзамас", -36.923530,1360.673583,12.002090},  {"Аренда транспорта г.Южный", 1966.599975,-2603.943603,10.820312},  {"Тайный интерьер в Лыткарино", -2424.5818, 2846.3291, 40.7908} };