Кириллица в imgui.text_buffer

thund3rgrove

Новичок
Автор темы
10
0
Версия MoonLoader
.026-beta
Как можно вывести кирилицу в text_buffer? При загрузке из ini выводятся знаки вопроса
1597065289669.png
1597065404638.png
 

Fuexie

Известный
108
30
Как можно вывести кирилицу в text_buffer? При загрузке из ini выводятся знаки вопроса
Быть может дело в кодировке ini файла? Если все равно не помогло, попробуй ещё так
imgui.InputText(u8'РП отыгровка', u8(text_buffer))
 
  • Влюблен
Реакции: Double Tap Inside

thund3rgrove

Новичок
Автор темы
10
0
Быть может дело в кодировке ini файла? Если все равно не помогло, попробуй ещё так
imgui.InputText(u8'РП отыгровка', u8(text_buffer))
[ML] (error) Helper for Leaders: C:\ìîÿ æòà - êîïèÿ\moonloader\lib\encoding.lua:63: bad argument #1 to 'iconv' (string expected, got userdata)
stack traceback:
[C]: in function 'iconv'
C:\ìîÿ æòà - êîïèÿ\moonloader\lib\encoding.lua:63: in function 'u8'
C:\ìîÿ æòà - êîïèÿ\moonloader\Helper for leaders.lua:463: in function 'OnDrawFrame'
C:\ìîÿ æòà - êîïèÿ\moonloader\lib\imgui.lua:1378: in function <C:\ìîÿ æòà - êîïèÿ\moonloader\lib\imgui.lua:1367>
[ML] (error) Helper for Leaders: Script died due to an error. (3040434C)

выдает такую ошибку после того, как написал твой вариант команды
 

Double Tap Inside

Известный
Проверенный
1,916
1,255
[ML] (error) Helper for Leaders: C:\ìîÿ æòà - êîïèÿ\moonloader\lib\encoding.lua:63: bad argument #1 to 'iconv' (string expected, got userdata)
stack traceback:
[C]: in function 'iconv'
C:\ìîÿ æòà - êîïèÿ\moonloader\lib\encoding.lua:63: in function 'u8'
C:\ìîÿ æòà - êîïèÿ\moonloader\Helper for leaders.lua:463: in function 'OnDrawFrame'
C:\ìîÿ æòà - êîïèÿ\moonloader\lib\imgui.lua:1378: in function <C:\ìîÿ æòà - êîïèÿ\moonloader\lib\imgui.lua:1367>
[ML] (error) Helper for Leaders: Script died due to an error. (3040434C)

выдает такую ошибку после того, как написал твой вариант команды
u8(text_buffer.v)
 

Fuexie

Известный
108
30
[ML] (error) Helper for Leaders: C:\ìîÿ æòà - êîïèÿ\moonloader\lib\encoding.lua:63: bad argument #1 to 'iconv' (string expected, got userdata)
stack traceback:
[C]: in function 'iconv'
C:\ìîÿ æòà - êîïèÿ\moonloader\lib\encoding.lua:63: in function 'u8'
C:\ìîÿ æòà - êîïèÿ\moonloader\Helper for leaders.lua:463: in function 'OnDrawFrame'
C:\ìîÿ æòà - êîïèÿ\moonloader\lib\imgui.lua:1378: in function <C:\ìîÿ æòà - êîïèÿ\moonloader\lib\imgui.lua:1367>
[ML] (error) Helper for Leaders: Script died due to an error. (3040434C)

выдает такую ошибку после того, как написал твой вариант команды
тьфу ты, ошибочька вышла ы.
Где у тебя объявляется переменная text_buffer? Скинь код (напр local sru = imgui.ImBuffer('text',256))
 

Fuexie

Известный
108
30
Я ток ща вспомнил, там по-моему же text_buffer то есть получается с userdata, а сам текст хранится в text_buffer.v, и по-моему при объявлении text_buffer у функции ImBuffer же два параметра, текст этой херни и длина вмещаемого ну да... Т. о. к примеру
local text_buffer = imgui.ImBuffer(u8(somevar),256)
somevar - переменная в которую выгружается значение из иника.

Ну а ещё в принципе да, можно
text_buffer.v = u8(text_buffer.v)
Но я точно не знаю, что возвращает функция UTF8, поэтому не сказал изначально.

И по-моему варик imgui.InputText('some text', u8(text_buffer.v)) не сработает, потому что как бы в функцию инпаттекста надо помещать именно вот это Userdata которое возвращает imBuffer. Надеюсь понятно выразился, а то я быдло.

@thund3rgrove Для тебя. Попробуй варик перед инпаттекстом поставить вот че text_buffer.v = u8(text_buffer.v) а в инпаттексте свой изначальный вариант
 
  • Нравится
Реакции: thund3rgrove

thund3rgrove

Новичок
Автор темы
10
0
Я ток ща вспомнил, там по-моему же text_buffer то есть получается с userdata, а сам текст хранится в text_buffer.v, и по-моему при объявлении text_buffer у функции ImBuffer же два параметра, текст этой херни и длина вмещаемого ну да... Т. о. к примеру
local text_buffer = imgui.ImBuffer(u8(somevar),256)
somevar - переменная в которую выгружается значение из иника.

Ну а ещё в принципе да, можно
text_buffer.v = u8(text_buffer.v)
Но я точно не знаю, что возвращает функция UTF8, поэтому не сказал изначально.

И по-моему варик imgui.InputText('some text', u8(text_buffer.v)) не сработает, потому что как бы в функцию инпаттекста надо помещать именно вот это Userdata которое возвращает imBuffer. Надеюсь понятно выразился, а то я быдло.

@thund3rgrove Для тебя. Попробуй варик перед инпаттекстом поставить вот че text_buffer.v = u8(text_buffer.v) а в инпаттексте свой изначальный вариант
А еще лучше
text_buffer.v = u8(mainIni.config.rp_command)
попробовал оба способа. Когда пытаюсь преобразовать - вот такие символы и в ini, и в буффере
1597131996186.png

Без перекодировки, когда ввожу в text_buffer кириллицу - в конфиг сохраняются непонятные символы.
1597131514019.png

Когда ввожу в ини файл - вопросы в буффере
 

Fuexie

Известный
108
30
попробовал оба способа. Когда пытаюсь преобразовать - вот такие символы и в ini, и в буффереПосмотреть вложение 65102
Без перекодировки, когда ввожу в text_buffer кириллицу - в конфиг сохраняются непонятные символы.Посмотреть вложение 65101
Когда ввожу в ини файл - вопросы в буффере
скинь скрипт
 

CaJlaT

Овощ
Модератор
2,824
2,655
Lua:
local ini = inicfg.load(
{
    config = {
        buffer = ''
    }
}
, 'Random.ini')
if not doesFileExist('moonloader/config/Random.ini') then inicfg.save(ini, 'Random.ini') end
local buffer = imgui.ImBuffer(u8(ini.config.buffer))


--OnDrawFrame
if imgui.InputText(u8'РП отыгровка', buffer) then
    ini.config.buffer = u8:decode(buffer.v)
    inicfg.save(ini, 'Random.ini')
end
 
  • Нравится
Реакции: Double Tap Inside