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

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("Русский"));

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

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


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

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

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


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

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

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


Ссылка на сообщение
Поделиться на другие сайты
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;	
}

 

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


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

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

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

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

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


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

Войти

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


Войти

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

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

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

    • HostX_
      От HostX_
      Доброго времени суток!
       
      Ищу маппера для SA-MP проекта в стилистике выживания и постапокалипсиса. Важно уметь создавать атмосферные и аутентичные локации.
       
      Возможно как разовое, так и долгосрочное сотрудничество. Писать только с примерами своих работ.
       
      Discord: hostmoney
      Почта:  host@obscur.tech
    • Vova_Zenko
      От Vova_Zenko
      Подскажите пожалуйста. 
      В моде авто для фракции не через мод вписаны, а покупаются в автосалоне и хранятся в базе данных MySQL. 
      В полиции есть эвакуатор, но с цветографикой гражданского. Хочу добавить две цветографики. towtruck.txd(гражданский) и towtruck1.txd(ДПС). 
      В базе данных есть строка cPaintJob, там тоже менял значение, результата 0.
      Как сделать, чтобы допустим администратор смог поменять цветографику?