[mimgui] как разместить несколько InputText

zimerfm

Участник
Автор темы
69
6
Версия MoonLoader
Другое
здравствуйте. проблема заключается в том, что когда я ввожу текст в один InputText, то у меня вводится и во второй, хотя с конфигом не накосячил. как исправить?

Код:
...кфг
local ini = inicfg.load({
    auto_name = {
        status = false,
        value = ""
    },
    separator = {
        status = false,
        sep_symbol = ' ',
        sep_chat = true,
        sep_dialog = true,
        sep_textdraws = true,
        sep_ab = true,
        sep_disp_sa = true
    },
    settings = {
        sms = true,
        reg_cmd_status = false,
        reg_cmd = "",
        check_admin_mode = false
    }
}, cfg_name)
inicfg.save(ini, cfg_name)

local local_cfg = {
    auto_name = {
        status = imgui.new.bool(ini.auto_name.status),
        value = imgui.new.char[256](u8:encode(ffi.string(ini.auto_name.value)))
    },
    separator = {
        status = imgui.new.bool(ini.separator.status),
        sep_symbol = imgui.new.char[1](u8:encode(ini.separator.sep_symbol)),
        sep_chat =  imgui.new.bool(ini.separator.sep_chat),
        sep_dialog = imgui.new.bool(ini.separator.sep_dialog),
        sep_textdraws = imgui.new.bool(ini.separator.sep_textdraws),
        sep_ab = imgui.new.bool(ini.separator.sep_ab),
        sep_disp_sa = imgui.new.bool(ini.separator.sep_disp_sa)
    },
}


...создание фрейма
imgui.BeginChild('showed_menu', imgui.ImVec2((ui_size.x-object_sizes.main_panel_x)*0.96, object_sizes.main_panel_y*0.975), true)
                    imgui.SetCursorPosX(20)
                    if imgui.Checkbox(u8'Авто-название для лавки', local_cfg.auto_name.status) then
                        ini.auto_name.status = local_cfg.auto_name.status[0]
                        inicfg.save(ini, cfg_name)
                    end


                    if local_cfg.auto_name.status[0] then
                        imgui.SetCursorPosX(20)

                        imgui.InputTextWithHint(u8"", u8"Введите название", local_cfg.auto_name.value, 256)
                        local length = (u8:decode(ffi.string(local_cfg.auto_name.value))):len()
                        if (length >= 3) and (length <= 20) then
                            ini.auto_name.value = u8:decode(ffi.string(local_cfg.auto_name.value))
                            inicfg.save(ini, cfg_name)
                        else
                            imgui.SetCursorPosX(20)
                            imgui.Text(u8"Длина названия должна быть\nне меньше 3 и не больше 20.\nТекущая длина: "..length)
                        end
                    end
                    
                    
                    imgui.Separator()
                    imgui.SetCursorPosX(20)
                    if imgui.Checkbox(u8"Разделитель денег", local_cfg.separator.status) then
                        ini.separator.status = local_cfg.separator.status[0]
                        inicfg.save(ini, cfg_name)
                    end
                    
                    if local_cfg.separator.status[0] then
                        imgui.SetCursorPosX(20)
                        imgui.PushItemWidth(ui_size.x/29.584)
                        if imgui.InputTextWithHint(u8"", u8"-", local_cfg.separator.sep_symbol, 2) then
                            ini.separator.sep_symbol = u8:decode(ffi.string(local_cfg.separator.sep_symbol))
                            inicfg.save(ini, cfg_name)
                        end
                        imgui.SameLine()
                        imgui.Text(u8"Символ, разделяющий цифры")
                        imgui.Spacing()
                        imgui.PopItemWidth()
                    end

imgui.EndChild()
 

7 СМЕРТНЫХ ГРЕХОВ

Известный
515
159
потому что имеют все одинаковые название
делаешь название ##текст, иза "##" текст не будет видно а InputText будет иметь уникальный индификатор

if imgui.InputTextWithHint(u8"##какой то текст", u8"-", local_cfg.separator.sep_symbol, 2) then
 
  • Нравится
Реакции: zimerfm