Возвращение переменной с одной функции в другую

William_Chkhalo

Участник
Автор темы
127
14
Версия MoonLoader
Другое
Всем привет! У меня проблемка. Есть мимгуи окошко. В нем я создаю переменную. Как мне эту переменную перенести в другое место? ruturn не помогает. Вот код:

Lua:
imgui.OnFrame( -- первое окно
    function() return addBinderWindow[0] end,
    function()
        return true
    end,
    function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(sizeX / 2, sizeY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(1700, 700), imgui.Cond.FirstUseEver)
        imgui.Begin(u8"Добавление бндера", addBinderWindow)
            imgui.InputText(u8'Название', nameInput, 255)
            local nameString = u8:decode(ffi.string(nameInput)) -- вот переменная
        imgui.End()
        return nameString -- вот сам return
    end
)

imgui.OnFrame( -- второе окно
    function() return newBinderWindow[0] end,
    function()
        return true
    end,
    function(player)
        imgui.SetNextWindowPos(imgui.ImVec2(sizeX / 2, sizeY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(1700, 700), imgui.Cond.FirstUseEver)
        imgui.Begin(u8(tableBinder[#tableBinder]), newBinderWindow)
            -- в этом окне мне ее надо использовать, но не могу, ошибка.
        imgui.End()
    end
)
Фулл код скинуть не могу.
 

William_Chkhalo

Участник
Автор темы
127
14
Лучше скинб текст ошибки. И попррбуй в начало скрипта добавть local nameString = ''
Без фулл кода тебе ничего не будет понятно. С добавлением в начало кода сейчас попробую.

Лучше скинб текст ошибки. И попррбуй в начало скрипта добавть local nameString = ''
Не помогло

Up

Up

Up
 
Последнее редактирование:

tiktokpay

Участник
84
82
Без фулл кода тебе ничего не будет понятно. С добавлением в начало кода сейчас попробую.


Не помогло

Up

Up

Up
Смотря где ты эту переменную хочешь использовать, если для imgui функций, то у тебя уже есть NameInput, для всего остального, должно работать!
 

kyrtion

Известный
661
242
Lua:
local newFrame = imgui.OnFrame( --[[Сама функция создания фрейма, их может быть сколько вашей душе угодно.
                                    Обратите внимание, что в mimgui рекомендуется создавать отдельный
                                    фрейм для каждого окна, однако это не является обязательным.]]
    function() return true end, -- Определяет, выполняется/отображается ли текущий фрейм.
    function(player)            --[[Сама область, в которой уже будем рисовать элементы.
                                    В функцию в качестве первой переменной передаются список функций
                                    для взаимодействия с локальным игроком и рядом нескольких возможностей.]]
        imgui.Begin("Main Window")  -- Создаём новое окно с заголовком 'Main Window'
        imgui.Text("Hello")         -- Добавляем туда текст 'Hello'
        imgui.End()                 -- Объявляем конец данного окна
    end
)
Советую прочитать до конца в шапке, там ничего нет сложого)
У тебя в фрейм 3 функции включены. Вторая функция нужно убрать, там похоже и первую.
В фрейм включается 2 функция, первая состояние, второе рендер
 
Последнее редактирование: