текст из диалога

Kecer

Участник
Автор темы
241
11
Версия MoonLoader
.026-beta
Приветствую, хочу взять из статистики Уровень



В чём проблема в моём, коде, всё работает, imgui запускает, но когда я открываю диалог скрипт крашится

1640116324354.png


OnShowDialog:
function samp.onShowDialog(dialogId, style, title, button1, button2, text)
    diaText = text
    if dialogId == 235 and text:find('Уровень:%s%[(%d+)%]') then
        level = text:match('Уровень:%s+%[(%d+)%]')
    end
end


imgui:
    if main_window_state.v then
        imgui.Begin("Test")
        if diaText then
            imgui.Text(u8(level))
        end
        imgui.End()
    end
 
Решение
Lua:
function samp.onShowDialog(dialogId, style, title, button1, button2, text)
    diaText = text -- вот это здесь нахрена?
    if dialogId == 235 and text:find('{FFFFFF}Уровень: {BE2D2D}%[(%d+)%]') then
        level = text:match('{FFFFFF}Уровень: {BE2D2D}%[(%d+)%]')
    end
end
чек

SomaGnoma

Известный
429
150
Приветствую, хочу взять из статистики Уровень



В чём проблема в моём, коде, всё работает, imgui запускает, но когда я открываю диалог скрипт крашится

Посмотреть вложение 127757

OnShowDialog:
function samp.onShowDialog(dialogId, style, title, button1, button2, text)
    diaText = text
    if dialogId == 235 and text:find('Уровень:%s%[(%d+)%]') then
        level = text:match('Уровень:%s+%[(%d+)%]')
    end
end


imgui:
    if main_window_state.v then
        imgui.Begin("Test")
        if diaText then
            imgui.Text(u8(level))
        end
        imgui.End()
    end
а почему в имгуашке у тя diaText проверяется как булевая?
 

Kecer

Участник
Автор темы
241
11
1. лог в студию
2. мб не указан цвет
[ML] (error) reporttools.lua: E:\Winter GTA by Feldan\moonloader\lib\encoding.lua:63: bad argument #1 to 'iconv' (string expected, got nil)
stack traceback:
[C]: in function 'iconv'
E:\Winter GTA by Feldan\moonloader\lib\encoding.lua:63: in function 'u8'
E:\Winter GTA by Feldan\moonloader\reporttools.lua:117: in function 'OnDrawFrame'
E:\Winter GTA by Feldan\moonloader\lib\imgui.lua:1379: in function <E:\Winter GTA by Feldan\moonloader\lib\imgui.lua:1368>
[ML] (error) reporttools.lua: Script died due to an error. (2AFE511C)

а почему в имгуашке у тя diaText проверяется как булевая?
Честно я не совсем понимаю как это делается, я нашёл тему, человек примерно такую же систему хотел реализовать, от туда код взял

print(text) и лог в студию
не чо в консоль не выводится

Во, я убрал кодировку из:

Lua:
imgui.Text(u8(level))

теперь:

Lua:
imgui.Text(level)

Скрипт не крашит, но в imgui выводится null

1640118289268.png
 
Последнее редактирование:

srostok294

Участник
103
14

скачай и в консоли будут цвета из диалога, скинь сюда
 

Kecer

Участник
Автор темы
241
11

скачай и в консоли будут цвета из диалога, скинь сюда
1640118513407.png


[FFFFFF]Имя: [BE2D2D][Sam_Mason]
[FFFFFF]Пол: [BE2D2D][Мужчина]
[FFFFFF]Уровень: [BE2D2D][5]
[FFFFFF]Уважение: [BE2D2D][6/24]
[FFFFFF]Деньги: [BE2D2D][$84970840]
 

Kecer

Участник
Автор темы
241
11
Lua:
function samp.onShowDialog(dialogId, style, title, button1, button2, text)
    diaText = text -- вот это здесь нахрена?
    if dialogId == 235 and text:find('{FFFFFF}Уровень: {BE2D2D}%[(%d+)%]') then
        level = text:match('{FFFFFF}Уровень: {BE2D2D}%[(%d+)%]')
    end
end
чек
Оно выводит 5, то-есть уровень, но не выводит полностью строку
 

Kecer

Участник
Автор темы
241
11
Lua:
imgui.Text(u8'Уровень: '..level)
Мне нужно фулл строчку как-то вывести, то-есть что бы там использовалось и Уровень и [5], а оно мне просто 5, я конечно понимаю что можно заковыркой сделать, но я это в дальнейшем хотел не много в других целях использовать
 

srostok294

Участник
103
14
Мне нужно фулл строчку как-то вывести, то-есть что бы там использовалось и Уровень и [5], а оно мне просто 5, я конечно понимаю что можно заковыркой сделать, но я это в дальнейшем хотел не много в других целях использовать
создай переменную, в которой будет строка храниться
 

Kecer

Участник
Автор темы
241
11
создай переменную, в которой будет строка храниться
А ещё вопрос, можешь подсказать, каким регулярным выражением можно взять обсалютно любой текст, от англиских букв, до русских с символами и проблеми, хочу из диалога с репортом получить текст который в репорт написал