PDA

Просмотр полной версии : [Вопрос] Кракозябры в TD.



SteveStage
29.04.2020, 12:41
При отображении TD на экран выводится не форматируемый текст, а кракозябры.

https://ibb.co/4R3rgwV


new
string[8-4+16+5+1];
format(string, sizeof(string), "+%s [%d]", invent_items[throw_take_items[i][tt_item]], throw_take_items[i][tt_amount]);
TextForPlayer(playerid, string, 2000, 1, COLOR_YELLOW);

new
Text:td_text_for_player[MAX_PLAYERS];

new
invent_items[23][16+1] =
{
"Пусто", "Бургер", "Пепси-Кола", "Desert Eagle", "Shotgun", "M4A1", "AK-47", "Baseball Bat", "Colt 45", "Spas-12", "Silenced Colt 45", "Golf Club",
"Nitestick", "Knife", "Chainsaw", "Grenade", "Smoke grenade", "Molotov", "Tec 9", "Uzi", "Mp5", "Rifle", "Sniper rifle"
};

stock TextForPlayer(playerid, const str[], time, style, color = COLOR_ORANGE)
{
TextDrawHideForPlayer(playerid, td_text_for_player[playerid]);
TextDrawDestroy(td_text_for_player[playerid]);
switch(style)
{
case 0:
{
td_text_for_player[playerid] = TextDrawCreate(323.748016, 214.666656, str);
TextDrawLetterSize(td_text_for_player[playerid], 0.782181, 2.924167);
TextDrawAlignment(td_text_for_player[playerid], 2);
TextDrawColor(td_text_for_player[playerid], color);
TextDrawBackgroundColor(td_text_for_player[playerid], 255);
TextDrawFont(td_text_for_player[playerid], 3);
TextDrawSetProportional(td_text_for_player[playerid], 1);
TextDrawSetOutline(td_text_for_player[playerid], 1);
TextDrawShowForPlayer(playerid, td_text_for_player[playerid]);
if(time > 0) SetTimerEx("@_TextForPlayerTD", time, false, "dd", playerid, _:td_text_for_player[playerid]);
return true;
}
case 1:
{
td_text_for_player[playerid] = TextDrawCreate(630.286926, 320.916778, str);
TextDrawLetterSize(td_text_for_player[playerid], 0.600394, 2.194999);
TextDrawAlignment(td_text_for_player[playerid], 3);
TextDrawColor(td_text_for_player[playerid], color);
TextDrawBackgroundColor(td_text_for_player[playerid], 255);
TextDrawFont(td_text_for_player[playerid], 3);
TextDrawSetProportional(td_text_for_player[playerid], 1);
TextDrawSetOutline(td_text_for_player[playerid], 1);
TextDrawShowForPlayer(playerid, td_text_for_player[playerid]);
if(time > 0) SetTimerEx("@_TextForPlayerTD", time, false, "dd", playerid, _:td_text_for_player[playerid]);
return true;
}
case 2:
{
td_text_for_player[playerid] = TextDrawCreate(320.937286, 89.250030, str);
TextDrawLetterSize(td_text_for_player[playerid], 0.484202, 1.769167);
TextDrawAlignment(td_text_for_player[playerid], 2);
TextDrawColor(td_text_for_player[playerid], color);
TextDrawBackgroundColor(td_text_for_player[playerid], 255);
TextDrawFont(td_text_for_player[playerid], 2);
TextDrawSetProportional(td_text_for_player[playerid], 1);
TextDrawSetOutline(td_text_for_player[playerid], 1);
TextDrawShowForPlayer(playerid, td_text_for_player[playerid]);
if(time > 0) SetTimerEx("@_TextForPlayerTD", time, false, "dd", playerid, _:td_text_for_player[playerid]);
return true;
}
}
return true;
}

@_TextForPlayerTD(playerid, td);
@_TextForPlayerTD(playerid, td)
{
TextDrawHideForPlayer(playerid, Text:td);
return true;
}

Shaolinka
29.04.2020, 12:48
Конвертируй названия предметов в новый вид через GTconver

SteveStage
29.04.2020, 13:00
Конвертируй названия предметов в новый вид через GTconver

А это возможно реализовать функцией, прямо в коде?

Shaolinka
29.04.2020, 13:21
В данный момент есть функция от Alex009, но по коду там не всё так идеально, как бы хотелось.

SteveStage
29.04.2020, 13:55
Конвертируй названия предметов в новый вид через GTconver

Так в том то и дело, что текст-то не русский, "Nitestick", а кракозябры все равно появляются.

Daniel_Cortez
29.04.2020, 17:35
Конвертируй названия предметов в новый вид через GTconver
Вот только действует это всего под один русификатор, а их уже известно 8 разных видов, под каждый из которых нужен свой вариант конверсии. К тому же, нет способа автоматически узнать русификатор, есть только единственный вариант спросить у самого игрока.

Собственно, вот самое продуманное решение на данный момент: https://pro-pawn.ru/showthread.php?14309

SteveStage
29.04.2020, 19:11
Вот только действует это всего под один русификатор, а их уже известно 8 разных видов, под каждый из которых нужен свой вариант конверсии. К тому же, нет способа автоматически узнать русификатор, есть только единственный вариант спросить у самого игрока.

Собственно, вот самое продуманное решение на данный момент: https://pro-pawn.ru/showthread.php?14309

Спасибо, можно сделать диалог с вариантами русификаторов при регистрации.