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

4 posts in this topic

FIZRYK43
Новичок

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

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

Говорю сразу, это не плагин 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("Русский"));

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

Share this post


Link to post
Share on other sites
SCRIPTMAN
Великий Гуру

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

Share this post


Link to post
Share on other sites
FIZRYK43
Новичок

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

Share this post


Link to post
Share on other sites
Cawfee
Великий Гуру

А еще есть библиотека 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;	
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Kalinin
      By Kalinin
      1. Набираю команду для создания CRMP сервера.
      2. Вакансии  которые свободны. Связь через TG @kalinin_sql
      Нам нужны;
      1.Кодеры
      2.Маперы
      3.СММ
      Так-же дружная работа. По поводу зарплаты будем обговаривать все лично в беседе ТГ
       
    • whccompany
      By whccompany
      Rostov Role Play | Rostov RP | CRMP Mobile Project объявляет набор людей в свою команду: Нам требуются:
       
      1. Маппера:
      Сдельная оплата труда от 250 до 3000 рублей/ за 1 работу
       
      2. Специалист по Text Draw:
      Сдельная оплата труда от 400 до 3500 рублей/ за одну работу
       
      3. Pawn разработчик:
      Заработная плата от 10 000 рублей/месяц
       
      4. Программист для создания лаунчера и сайта UCP с автодонатом:
      Заработная плата от 10 000 рублей/месяц
       
      Контакты для связи:
       
      ВКонтакте
       
      Telegram
       
    • Talex
      By Talex
      Игровой сервер Life Game RolePlay