Как сделать кнопку серой и неактивной после нажатия?
-- Где то в глобальном пространстве
klikabelna = true
-- Где то в OnDrawFrame....
if imgui.ButtonClickable(klikabelna, "Knopka") then
klikabelna = false
end
Ничего не понял из примера, можешь объяснить?Информация - ImGui сниппеты и частые вопросы
Описание Тема создана с целью сбора удачных решений и ответов на частые вопросы по ImGui интерфейсу. В шапке темы я постараюсь их красиво организовывать, чтобы искать необходимое было легче. Оставляйте свои варианты решений ориентируясь на такой шаблон: Название Скриншот Описание Код Пример...www.blast.hk
А чего там не понятного то? Там есть спойлер с кодом, называется "Неактивная кнопка". Перекопирую сюдаНичего не понял из примера, можешь объяснить?
imgui = require "imgui"
-- Кликабельная / не кликабельная кнопка
function imgui.ButtonClickable(clickable, ...)
if clickable then
return imgui.Button(...)
else
local r, g, b, a = imgui.ImColor(imgui.GetStyle().Colors[imgui.Col.Button]):GetFloat4()
imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(r, g, b, a/2) )
imgui.PushStyleColor(imgui.Col.ButtonHovered, imgui.ImVec4(r, g, b, a/2))
imgui.PushStyleColor(imgui.Col.ButtonActive, imgui.ImVec4(r, g, b, a/2))
imgui.PushStyleColor(imgui.Col.Text, imgui.GetStyle().Colors[imgui.Col.TextDisabled])
imgui.Button(...)
imgui.PopStyleColor()
imgui.PopStyleColor()
imgui.PopStyleColor()
imgui.PopStyleColor()
end
end
local text = "test"
if imgui.Button(text=="test", "Label## ID") then
print("TEST MESSAGE")
end
Как раз-таки я всё скопировал, но не понял, как эту кнопку делать не активной....А чего там не понятного то? Там есть спойлер с кодом, называется "Неактивная кнопка". Перекопирую сюда
1:imgui = require "imgui" -- Кликабельная / не кликабельная кнопка function imgui.ButtonClickable(clickable, ...) if clickable then return imgui.Button(...) else local r, g, b, a = imgui.ImColor(imgui.GetStyle().Colors[imgui.Col.Button]):GetFloat4() imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(r, g, b, a/2) ) imgui.PushStyleColor(imgui.Col.ButtonHovered, imgui.ImVec4(r, g, b, a/2)) imgui.PushStyleColor(imgui.Col.ButtonActive, imgui.ImVec4(r, g, b, a/2)) imgui.PushStyleColor(imgui.Col.Text, imgui.GetStyle().Colors[imgui.Col.TextDisabled]) imgui.Button(...) imgui.PopStyleColor() imgui.PopStyleColor() imgui.PopStyleColor() imgui.PopStyleColor() end end
Пример:
Пример:local text = "test" if imgui.Button(text=="test", "Label## ID") then print("TEST MESSAGE") end
Посмотреть вложение 101446
Если перввм аргументов будет true, то кнопка кликабельна. false некликабельна.Как раз-таки я всё скопировал, но не понял, как эту кнопку делать не активной....
Как сделать кнопку серой и неактивной после нажатия?
-- Где то в глобальном пространстве
klikabelna = true
-- Где то в OnDrawFrame....
if imgui.ButtonClickable(klikabelna, "Knopka") then
klikabelna = false
end
Можно по подробнее вот об этом?Отвечаю на конкретный вопрос конкретным примером.
Lua:-- Где то в глобальном пространстве klikabelna = true -- Где то в OnDrawFrame.... if imgui.ButtonClickable(klikabelna, "Knopka") then klikabelna = false end
klikabelna это переменная. Значение этой переменной truе (истина,правда, верно). Бывает противоположнле значени: false (ложь, неверно, ошибочно)Можно по подробнее вот об этом?
if imgui.ButtonClickable(klikabelna, "Knopka")
"klikabelna" - ?
"Knopka" - ?
Отвечаю на конкретный вопрос конкретным примером.
Lua:-- Где то в глобальном пространстве klikabelna = true -- Где то в OnDrawFrame.... if imgui.ButtonClickable(klikabelna, "Knopka") then klikabelna = false end
Скрипт крашит, логи:Вот что я сделал:
LUA:if imgui.ButtonClickable(klikabelna, u8"Начать", imgui.ImVec2(100, 20)) then klikabelna = false lua_thread.create(function(RP) sampSendChat("Здравствуйте, я, " .. u8:decode(rang.v) .. " " .. u8:decode(rusname.v) .. " проведу для вас собеседование.") wait(1650) if not stopRP then sampSendChat("Покажите ваши документы, а именно: паспорт, мед. карту и лицензии.") end wait(1650) if not stopRP then sampSendChat("/b Покажите документы отыгрывая /me и /do") end while not isKeyDown(VK_RETURN) do wait(0) end sampSendChat("Хорошо, спасибо.") end) end lua_thread.create(function() while true do wait(0) if isKeyJustPressed(0x22) then stopRP = true wait(2500) stopRP = false if stopRP then wait(100) sampAddChatMessage("Вы отменили РП отыгровку.", 0xfa9005) end end end end)
[16:51:25.206018] (error) SobesHelper: D:\Games\Arizona V2\moonloader\lib\imgui_addons.lua:210: attempt to index local 'bool' (a nil value)
stack traceback:
D:\Games\Arizona V2\moonloader\lib\imgui_addons.lua:210: in function 'ToggleButton'
D:\Games\Arizona V2\moonloader\SobesHelper.lua:302: in function 'OnDrawFrame'
D:\Games\Arizona V2\moonloader\lib\imgui.lua:1378: in function <D:\Games\Arizona V2\moonloader\lib\imgui.lua:1367>
[16:51:25.213906] (error) SobesHelper: Script died due to an error. (1483C8F4)
Ты скинул не весь текст ошибки, именно где причина была указана - ты обрезал. В любом случае, если ты будешь делать такую рандомную табуляцию ты в своем коде никогда не поймешь где, что, откуда и где же была ошибка. Так шо скинь весь тект ошибки.Скрипт крашит, логи:
if imgui.ButtonClickable(klikabelna, u8"Начать", imgui.ImVec2(100, 20)) then
klikabelna = false
lua_thread.create(function(RP)
sampSendChat("Здравствуйте, я, " .. u8:decode(rang.v) .. " " .. u8:decode(rusname.v) .. " проведу для вас собеседование.")
wait(1650)
if not stopRP then
sampSendChat("Покажите ваши документы, а именно: паспорт, мед. карту и лицензии.")
end
wait(1650)
if not stopRP then
sampSendChat("/b Покажите документы отыгрывая /me и /do")
end
while not isKeyDown(VK_RETURN) do
wait(0)
end
sampSendChat("Хорошо, спасибо.")
end)
lua_thread.create(function()
while true do
wait(0)
if isKeyJustPressed(0x22) then
stopRP = true
wait(2500)
stopRP = false
end
if stopRP then
wait(100)
sampAddChatMessage("Вы отменили РП отыгровку.", 0xfa9005)
end
end
end)
Ты скинул не весь текст ошибки, именно где причина была указана - ты обрезал. В любом случае, если ты будешь делать такую рандомную табуляцию ты в своем коде никогда не поймешь где, что, откуда и где же была ошибка. Так шо скинь весь тект ошибки.
Вот так бы код оформил я:
Lua:if imgui.ButtonClickable(klikabelna, u8"Начать", imgui.ImVec2(100, 20)) then klikabelna = false lua_thread.create(function(RP) sampSendChat("Здравствуйте, я, " .. u8:decode(rang.v) .. " " .. u8:decode(rusname.v) .. " проведу для вас собеседование.") wait(1650) if not stopRP then sampSendChat("Покажите ваши документы, а именно: паспорт, мед. карту и лицензии.") end wait(1650) if not stopRP then sampSendChat("/b Покажите документы отыгрывая /me и /do") end while not isKeyDown(VK_RETURN) do wait(0) end sampSendChat("Хорошо, спасибо.") end) lua_thread.create(function() while true do wait(0) if isKeyJustPressed(0x22) then stopRP = true wait(2500) stopRP = false end if stopRP then wait(100) sampAddChatMessage("Вы отменили РП отыгровку.", 0xfa9005) end end end)
[16:50:57.637691] (system) Session started.
[16:50:57.638666] (debug) Module handle: 6B220000
MoonLoader v.026.5-beta loaded.
Developers: FYP, hnnssy, EvgeN 1137
Copyright (c) 2016, BlastHack Team
https://www.blast.hk/moonloader/
[16:50:57.638666] (info) Working directory: D:\Games\Arizona V2\moonloader
[16:50:57.638666] (debug) FP Control: 0009001F
[16:50:57.638666] (debug) Game: GTA SA 1.0.0.0 US
[16:50:57.638666] (system) Installing pre-game hooks...
[16:50:57.642653] (system) Hooks installed.
[16:51:00.540000] (debug) Initializing opcode handler table
[16:51:00.540000] (debug) package.path = D:\Games\Arizona V2\moonloader\lib\?.lua;D:\Games\Arizona V2\moonloader\lib\?\init.lua;D:\Games\Arizona V2\moonloader\?.lua;D:\Games\Arizona V2\moonloader\?\init.lua;.\?.lua;D:\Games\Arizona V2\moonloader\lib\?.luac;D:\Games\Arizona V2\moonloader\lib\?\init.luac;D:\Games\Arizona V2\moonloader\?.luac;D:\Games\Arizona V2\moonloader\?\init.luac;.\?.luac
[16:51:00.540000] (debug) package.cpath = D:\Games\Arizona V2\moonloader\lib\?.dll;
[16:51:00.545984] (system) Loading script 'D:\Games\Arizona V2\moonloader\arizona_trash_chat.lua'...
[16:51:00.548976] (debug) New script: 0F59AEDC
[16:51:00.630765] (system) {ff4500}ATChat: Loaded successfully.
[16:51:00.630765] (system) Loading script 'D:\Games\Arizona V2\moonloader\AutoReboot.lua'...
[16:51:00.631754] (debug) New script: 0F59ABCC
[16:51:00.632752] (system) ML-AutoReboot: Loaded successfully.
[16:51:00.633749] (system) Loading script 'D:\Games\Arizona V2\moonloader\bypasser.lua'...
[16:51:00.633749] (debug) New script: 0F59B064
[16:51:00.649708] (system) bypasser.lua: Loaded successfully.
[16:51:00.649708] (system) Loading script 'D:\Games\Arizona V2\moonloader\cam.set.lua'...
[16:51:00.649708] (debug) New script: 0F59B1EC
[16:51:00.659680] (system) cam.set.lua: Loaded successfully.
[16:51:00.659680] (system) Loading script 'D:\Games\Arizona V2\moonloader\check-moonloader-updates.lua'...
[16:51:00.659680] (debug) New script: 0F599C7C
[16:51:00.665663] (system) Check MoonLoader Updates: Loaded successfully.
[16:51:00.665663] (system) Loading script 'D:\Games\Arizona V2\moonloader\ReloadScripts.lua'...
[16:51:00.665663] (debug) New script: 0F59A114
[16:51:00.666661] (system) ReloadScripts.lua: Loaded successfully.
[16:51:00.666661] (system) Loading script 'D:\Games\Arizona V2\moonloader\reload_all.lua'...
[16:51:00.666661] (debug) New script: 0F59A29C
[16:51:00.668656] (system) ML-ReloadAll: Loaded successfully.
[16:51:00.668656] (system) Loading script 'D:\Games\Arizona V2\moonloader\SF Integration.lua'...
[16:51:00.668656] (debug) New script: 01C82A8C
[16:51:00.671648] (system) SF Integration: Loaded successfully.
[16:51:00.671648] (system) Loading script 'D:\Games\Arizona V2\moonloader\SobesHelper.lua'...
[16:51:00.671648] (debug) New script: 1483C8F4
[16:51:00.703563] (system) SobesHelper: Loaded successfully.
[16:51:02.291850] (system) Installing post-load hooks...
[16:51:02.291850] (system) Hooks installed.
[16:51:03.270869] (script) {ff4500}ATChat: {FF4500}Arizona Trash Chat {ffffff}- Удаляем мусор из чата. {ff4500}Автор: {FFD700}tedj_ble$$ave
[16:51:25.206018] (error) SobesHelper: D:\Games\Arizona V2\moonloader\lib\imgui_addons.lua:210: attempt to index local 'bool' (a nil value)
stack traceback:
D:\Games\Arizona V2\moonloader\lib\imgui_addons.lua:210: in function 'ToggleButton'
D:\Games\Arizona V2\moonloader\SobesHelper.lua:302: in function 'OnDrawFrame'
D:\Games\Arizona V2\moonloader\lib\imgui.lua:1378: in function <D:\Games\Arizona V2\moonloader\lib\imgui.lua:1367>
[16:51:25.213906] (error) SobesHelper: Script died due to an error. (1483C8F4)
(Error) \lib\imgui_addons.lua:210: attempt to index local 'bool' (a nil value)Из-за этого крашит скрипт?
Убрал полностью imgui addons(Error) \lib\imgui_addons.lua:210: attempt to index local 'bool' (a nil value)
(Ошибка) \lib\imgui_addons.lua:210: не удалось проиндексировать локальную переменную 'bool' (потому что она значения nil)
Посмотреть вложение 101542
Могу скинуть полный код....[17:25:42.987987] (error) SobesHelper: D:\Games\Arizona V2\moonloader\SobesHelper.lua:302: attempt to call field 'ButtonClickable' (a nil value)
stack traceback:
D:\Games\Arizona V2\moonloader\SobesHelper.lua:302: in function 'OnDrawFrame'
D:\Games\Arizona V2\moonloader\lib\imgui.lua:1378: in function <D:\Games\Arizona V2\moonloader\lib\imgui.lua:1367>
[17:25:43.000952] (error) SobesHelper: Script died due to an error. (241DF2BC)