- 14
- 1
- Версия MoonLoader
- Другое
Добрый день.
Представлю код:
Как в нём сделать бинд на активированный чекбокс?
Допустим, если чекбокс активирован, то при нажатии на кнопку P будет отправляться команда /phone в чат?
Moonloader версии 026.5-beta.
Спасибо за внимание.
Представлю код:
Код:
script_name('Sauntren Helper')
script_author('Seth Sauntren')
script_description('Helper for Arizona RP')
require "lib.moonloader"
local keys = require "vkeys"
local imgui = require 'imgui'
local encoding = require 'encoding'
local main_window_state = imgui.ImBool(false)
local secondary_window_state = imgui.ImBool(false)
local text_buffer = imgui.ImBuffer(256)
local checked_radio = imgui.ImInt(1)
local checked_test = imgui.ImBool(false)
local checked_test_2 = imgui.ImBool(false)
local sw, sh = getScreenResolution()
local themes = import "resource/imgui_themes.lua"
local combo_select = imgui.ImInt(0)
encoding.default = 'CP1251'
u8 = encoding.UTF8
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(100) end
sampAddChatMessage("[SN Helper] {D5DEDD}Version: 1.0. | Author: Seth Sauntren.", 0x01A0E9)
sampAddChatMessage("[SN Helper] {D5DEDD}Activation: /snh.", 0x01A0E9)
sampRegisterChatCommand("snh", cmd_imgui)
sampRegisterChatCommand("snh2", cmd_imgui2)
imgui.Process = false
imgui.SwitchContext()
themes.SwitchColorTheme(1)
while true do
wait(0)
end
end
function imgui.OnDrawFrame()
if main_window_state.v then
imgui.SetNextWindowSize(imgui.ImVec2(500, 600), imgui.Cond.FirstUseEver)
imgui.SetNextWindowPos(imgui.ImVec2((sw/2), sh/2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.Begin("Sauntren Helper 1.0", main_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
imgui.BeginChild("ChildWindow", imgui.ImVec2(484, 150), true)
imgui.Checkbox("Lock cars", checked_test)
imgui.SameLine()
imgui.Checkbox("SW ST", checked_test_2)
imgui.EndChild()
imgui.InputText(u8'Введите текст:', text_buffer)
if imgui.Button(u8'Вывести в чат') then
sampAddChatMessage(u8:decode(text_buffer.v), -1)
end
imgui.SetCursorPosY(575)
imgui.SetCursorPosX(455)
if imgui.Button(u8'Темы') then
secondary_window_state.v = true
end
x, y, z = getCharCoordinates(PLAYER_PED)
imgui.SetCursorPosY(580)
imgui.SetCursorPosX(10)
imgui.Text(u8("Позиция игрока: X:" .. math.floor(x) .. " | Y: " .. math.floor(y) .. " | Z: " .. math.floor(z)))
imgui.End()
end
if main_window_state.v == false then
imgui.Process = false
end
imgui.SetNextWindowSize(imgui.ImVec2(150, 205), imgui.Cond.FirstUseEver)
imgui.SetNextWindowPos(imgui.ImVec2((sw/2), sh/2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
if secondary_window_state.v then
imgui.Begin(u8'Темы', secondary_window_state, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
imgui.BeginChild("ChildWindow2", imgui.ImVec2(140, 175), true)
for i, value in ipairs(themes.colorThemes) do
if imgui.RadioButton(value, checked_radio, i) then
themes.SwitchColorTheme(i)
end
end
imgui.EndChild()
imgui.End()
end
end
function cmd_imgui(arg)
main_window_state.v = not main_window_state.v
imgui.Process = main_window_state.v
end
function cmd_imgui2(arg)
secondary_window_state.v = not secondary_window_state.v
imgui.Process = secondary_window_state.v
end
function apply_custom_style()
imgui.SwitchContext()
local style = imgui.GetStyle()
style.WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
end
apply_custom_style()
Как в нём сделать бинд на активированный чекбокс?
Допустим, если чекбокс активирован, то при нажатии на кнопку P будет отправляться команда /phone в чат?
Moonloader версии 026.5-beta.
Спасибо за внимание.