- 106
- 5
- Версия MoonLoader
- .027.0-preview
Всем привет такая проблема как в ImGUI создать "BeginChild" в котором есть кнопка которая открывает новый BeginChild
local ch = false
if imgui.Button("btn") then ch = not ch end
if ch then
-- и тут код
end
BeginChild
if imgui.Button() then
name = 1
end
EndChild
BeginChild
if name == 1 then
text
end
EndChild
Не получаеться. Кароче я думаю ты сможеш быстрее помоч чем я додуматса 😂. Кароче всьо до более просто. Нужно в окно ImGui создать"BeginChild" в котором будет кнопка которая будет создавать рядом новый "Begin Child" в котором будет кнопка которая будет выводить текст в чат "Привет"Я обычно делаю:
upd: думаю разберешься, если нужен код, пиши.Lua:BeginChild if imgui.Button() then name = 1 end EndChild BeginChild if name == 1 then text end EndChild
imgui.BeginChild("##menubok")
if imgui.Button('TEST-1',imgui.ImVec2(210, 45)) then
imgui.BeginChild("##radio")
if imgui.Button('TEST-2',imgui.ImVec2(210, 45)) then
sampSendChat("Привет")
end
imgui.EndChild()
end
imgui.EndChild()
Проще уже создать 2 child-a, чтобы в первом были кнопки "1" "2", а во втором "Сказать привет"Не получаеться. Кароче я думаю ты сможеш быстрее помоч чем я додуматса 😂. Кароче всьо до более просто. Нужно в окно ImGui создать"BeginChild" в котором будет кнопка которая будет создавать рядом новый "Begin Child" в котором будет кнопка которая будет выводить текст в чат "Привет"
А вот мой код который я писал
Lua:imgui.BeginChild("##menubok") if imgui.Button('TEST-1',imgui.ImVec2(210, 45)) then imgui.BeginChild("##radio") if imgui.Button('TEST-2',imgui.ImVec2(210, 45)) then sampSendChat("Привет") end imgui.EndChild() end imgui.EndChild()
imgui.BeginChild("##menubok")
if imgui.Button('1',imgui.ImVec2(210, 45)) then
menu = 1
end
imgui.SameLine()
if imgui.Button('2',imgui.ImVec2(210, 45)) then
menu = 2
end
imgui.EndChild()
imgui.BeginChild("##new")
if menu == 1 then
if imgui.Button(u8'Сказать привет',imgui.ImVec2(210, 45)) then
sampSendChat(u8"Привет")
end
end
imgui.EndChild()
Немного не такПроще уже создать 2 child-a, чтобы в первом были кнопки "1" "2", а во втором "Сказать привет"
Lua:imgui.BeginChild("##menubok") if imgui.Button('1',imgui.ImVec2(210, 45)) then menu = 1 end imgui.SameLine() if imgui.Button('2',imgui.ImVec2(210, 45)) then menu = 2 end imgui.EndChild() imgui.BeginChild("##new") if menu == 1 then if imgui.Button(u8'Сказать привет',imgui.ImVec2(210, 45)) then sampSendChat(u8"Привет") end end imgui.EndChild()
Попробуй так.
Я чет сделал но текст не выводитсяПроще уже создать 2 child-a, чтобы в первом были кнопки "1" "2", а во втором "Сказать привет"
Lua:imgui.BeginChild("##menubok") if imgui.Button('1',imgui.ImVec2(210, 45)) then menu = 1 end imgui.SameLine() if imgui.Button('2',imgui.ImVec2(210, 45)) then menu = 2 end imgui.EndChild() imgui.BeginChild("##new") if menu == 1 then if imgui.Button(u8'Сказать привет',imgui.ImVec2(210, 45)) then sampSendChat(u8"Привет") end end imgui.EndChild()
Попробуй так.
imgui.Columns(2,"", true)
imgui.SetColumnWidth(-1, 232)
imgui.BeginChild("##menubok", imgui.ImVec2(225, 500), true, imgui.WindowFlags.NoScrollbar)
if imgui.Button('1',imgui.ImVec2(210, 45)) then
menu = 1
end
imgui.EndChild()
if menu == 1 then
imgui.BeginChild("##new", imgui.ImVec2(200, 150), true)
if imgui.Button(u8'Сказать привет',imgui.ImVec2(210, 45)) then
menu1 = 2
end
if menu1 == 2 then
if imgui.Button(u8'Сказать привет',imgui.ImVec2(210, 45)) then
AddChatMessage("Привет", -1)
end
end
imgui.EndChild()
end
imgui.End()
end
end
Потому-что, sampAddChatMessageНемного не так
Кнопка 1 должна создавать новый "BeginChild" который должен быть справа. В новой " BeginChild " должна быть кнопка "2" которая пишет в чат Привет
Я чет сделал но текст не выводится
Вот код:
Lua:imgui.Columns(2,"", true) imgui.SetColumnWidth(-1, 232) imgui.BeginChild("##menubok", imgui.ImVec2(225, 500), true, imgui.WindowFlags.NoScrollbar) if imgui.Button('1',imgui.ImVec2(210, 45)) then menu = 1 end imgui.EndChild() if menu == 1 then imgui.BeginChild("##new", imgui.ImVec2(200, 150), true) if imgui.Button(u8'Сказать привет',imgui.ImVec2(210, 45)) then menu1 = 2 end if menu1 == 2 then if imgui.Button(u8'Сказать привет',imgui.ImVec2(210, 45)) then AddChatMessage("Привет", -1) end end imgui.EndChild() end imgui.End() end end
local ch = false
function imgui.OnDrawFrame()
-- после imgui.Begin
if imgui.Button("child") then ch = not ch end
if ch then
-- и тут код создания чайлда
end
end
тоже неПонимаю, потому что она создает ImguiChild на один кадр во время нажатия кнопки.
Lua:local ch = false function imgui.OnDrawFrame() -- после imgui.Begin if imgui.Button("child") then ch = not ch end if ch then -- и тут код создания чайлда end end
Ну покажи то хоть полный код
require "lib.moonloader"
local rkeys = require("rkeys")
local imgui = require 'imgui'
local encoding = require("encoding")
local main_window_state = imgui.ImBool(false)
local u8 = encoding.UTF8
encoding.default = "CP1251"
function imgui.OnDrawFrame()
if main_window_state.v then
local x, y = getScreenResolution()
imgui.SetNextWindowPos(imgui.ImVec2(x/2, y/2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.SetNextWindowSize(imgui.ImVec2(850, 535), imgui.Cond.FirstUseEver)
imgui.Begin(u8" New", main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
imgui.Columns(2,"", true)
imgui.SetColumnWidth(-1, 232)
imgui.BeginChild("##menubok", imgui.ImVec2(225, 500), true, imgui.WindowFlags.NoScrollbar)
if imgui.Button('1',imgui.ImVec2(210, 45)) then
menu = 1
end
imgui.EndChild()
if menu == 1 then
imgui.BeginChild("##new", imgui.ImVec2(200, 150), true)
if imgui.Button(u8'Сказать привет',imgui.ImVec2(210, 45)) then
menu1 = 2
end
if menu1 == 2 then
if imgui.Button(u8'Сказать привет',imgui.ImVec2(210, 45)) then
sampAddChatMessage("Привет", -1)
end
end
imgui.EndChild()
end
imgui.End()
end
end
function main()
if not isSampfuncsLoaded() or not isSampLoaded() then return end
while not isSampAvailable() do wait(100) end
while true do wait(0) imgui.Process = true
if isKeyJustPressed(VK_1) and not sampIsChatInputActive() and not isSampfuncsConsoleActive() then
main_window_state.v = not main_window_state.v
end
if main_window_state.v == false then
imgui.Process = false
end
end
end
function imgui... Перенеси под while true do..endLua:require "lib.moonloader" local rkeys = require("rkeys") local imgui = require 'imgui' local encoding = require("encoding") local main_window_state = imgui.ImBool(false) local u8 = encoding.UTF8 encoding.default = "CP1251" function imgui.OnDrawFrame() if main_window_state.v then local x, y = getScreenResolution() imgui.SetNextWindowPos(imgui.ImVec2(x/2, y/2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5)) imgui.SetNextWindowSize(imgui.ImVec2(850, 535), imgui.Cond.FirstUseEver) imgui.Begin(u8" New", main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse) imgui.Columns(2,"", true) imgui.SetColumnWidth(-1, 232) imgui.BeginChild("##menubok", imgui.ImVec2(225, 500), true, imgui.WindowFlags.NoScrollbar) if imgui.Button('1',imgui.ImVec2(210, 45)) then menu = 1 end imgui.EndChild() if menu == 1 then imgui.BeginChild("##new", imgui.ImVec2(200, 150), true) if imgui.Button(u8'Сказать привет',imgui.ImVec2(210, 45)) then menu1 = 2 end if menu1 == 2 then if imgui.Button(u8'Сказать привет',imgui.ImVec2(210, 45)) then sampAddChatMessage("Привет", -1) end end imgui.EndChild() end imgui.End() end end function main() if not isSampfuncsLoaded() or not isSampLoaded() then return end while not isSampAvailable() do wait(100) end while true do wait(0) imgui.Process = true if isKeyJustPressed(VK_1) and not sampIsChatInputActive() and not isSampfuncsConsoleActive() then main_window_state.v = not main_window_state.v end if main_window_state.v == false then imgui.Process = false end end end
То самоеfunction imgui... Перенеси под while true do..end