SA:MP Не работает могу сделать русский язык в скрипте Lua

adas2

Новичок
Автор темы
6
0
Написал скрипт Луа с помощью ИИ на англ, все работает. При попытке сделать его полностью на русском языке, у меня выходят некоторые проблемы по типу:
1)В чате непонятные символы, но меню на русском;
2)В чате все на русском, но в меню непонятные символы;
3)В чате непонятные символы, в меню вопросительные знаки;
Кодирую в программе Notepad++
Пытался кодировать через ANSI, UTF-8, Windows 1251.
Ниже прикреплю скрипт Lua. Подскажите пожалуйста, буду рад
 

Вложения

  • ArmyCommanderENGSTAB.lua
    13.2 KB · Просмотры: 0
Решение
Это является кириллицей которую нужно оборачивать в u8?
/r Тревога! Нужна срочная помощь!",
"/r Медик! Я ранен!",
"/r Под сильным огнем, запрашиваю подкрепление!",
"/r Транспорт обездвижен, нужна эвакуация!",
"/r Член отряда ранен!",
"/r Боеприпасы на исходе, нужны патроны!",
"/r Позиция раскрыта, отступаю!",
"/r Гражданский в опасности, запрашиваю поддержку!",
"/r Обрушение конструкции, эвакуируйте район!",
"/r Химическая утечка, наденьте защиту!"
}

Потому что при просьбе обвернуть всю кириллицу, он сделал вот так:
На 154 строке cmd нужно в u8 обернуть, вот так if imgui.Selectable(u8(cmd), self.selected == i) then

Winstаl

Известный
1,002
414
Если скрипт у тебя в кодировке UTF-8, то в imgui будет корректно рисоваться кириллица, но для текста в чате нужно будет писать так:
u8:encode( "Тут текст на кириллице" )
Если в 1251 - то для текста в imgui нужно писать так:
imgui.Text( u8( "Тут текст на кириллице" ) ) Можно и без скобок, вот так imgui.Text( u8 "Привет мир" ), луа это разрешает
При этом в чате никак не нужно будет оборачивать текст.
Во всех этих случаях, где-нибудь в начале скрипта надо вставить такой код:
Lua:
local encoding = require 'encoding'
encoding.default = 'CP1251'
local u8 = encoding.UTF8
P.S. Все подробно расписано тут
 

Winstаl

Известный
1,002
414
Уточню, я пытаюсь создать его через ИИ, поэтому если что не правильно, извини
Вот тест луа :
Здесь все правильно?
Вроде как да, и этот файл сохрани в 1251. Будет нормально работать с кириллицей.
 

adas2

Новичок
Автор темы
6
0
Все на английском, как и было

1755793988904.png

1755793998661.png
 

Winstаl

Известный
1,002
414

adas2

Новичок
Автор темы
6
0
Это является кириллицей которую нужно оборачивать в u8?
/r Тревога! Нужна срочная помощь!",
"/r Медик! Я ранен!",
"/r Под сильным огнем, запрашиваю подкрепление!",
"/r Транспорт обездвижен, нужна эвакуация!",
"/r Член отряда ранен!",
"/r Боеприпасы на исходе, нужны патроны!",
"/r Позиция раскрыта, отступаю!",
"/r Гражданский в опасности, запрашиваю поддержку!",
"/r Обрушение конструкции, эвакуируйте район!",
"/r Химическая утечка, наденьте защиту!"
}

Потому что при просьбе обвернуть всю кириллицу, он сделал вот так:
 

Вложения

  • tests.lua
    13.3 KB · Просмотры: 2

Winstаl

Известный
1,002
414
Это является кириллицей которую нужно оборачивать в u8?
/r Тревога! Нужна срочная помощь!",
"/r Медик! Я ранен!",
"/r Под сильным огнем, запрашиваю подкрепление!",
"/r Транспорт обездвижен, нужна эвакуация!",
"/r Член отряда ранен!",
"/r Боеприпасы на исходе, нужны патроны!",
"/r Позиция раскрыта, отступаю!",
"/r Гражданский в опасности, запрашиваю поддержку!",
"/r Обрушение конструкции, эвакуируйте район!",
"/r Химическая утечка, наденьте защиту!"
}

Потому что при просьбе обвернуть всю кириллицу, он сделал вот так:
На 154 строке cmd нужно в u8 обернуть, вот так if imgui.Selectable(u8(cmd), self.selected == i) then