- 328
- 19
- Версия MoonLoader
- .026-beta
Собственно, у меня есть код:
Если я напишу в imgui.InputTextMultiline допустим "12" или какой-нибудь иной текст, затем нажму сохранить, то в ini файл сохраняется текст.
Если же после этого я сменю этот текст на какой-нибудь иной, к примеру на"36", и нажму сохранить, то сохранение в ini файл не происходит
Подскажите в чем ошибка
Lua:
require "lib.moonloader"
local encoding = require "encoding"
local inicfg = require "inicfg"
local sampev = require "lib.samp.events"
local keys = require "vkeys"
local imgui = require "imgui"
imgui.ToggleButton = require('imgui_addons').ToggleButton
local input = imgui.ImBuffer(256)
encoding.default = 'CP1251'
u8 = encoding.UTF8
--========================================================--
local tag = "[set]:"
local show_input = false
local nastroiki = imgui.ImBool(false)
local okno = imgui.ImBool(false)
local w, h = getScreenResolution()
--========================================================--
local directIniiiiii = 'set.ini'
local ini = inicfg.load(inicfg.load({
pos = {
x = select(1, getScreenResolution()),
y = select(2, getScreenResolution()),
},
active = {
show = false,
text1 = '',
},
}, directIniiiiii))
inicfg.save(ini, directIniiiiii)
--========================================================--
local posX, posY = ini.pos.x, ini.pos.y
--========================================================--
local show = imgui.ImBool(ini.active.show)
local text1 = imgui.ImBuffer(tostring(ini.active.text1), 65536)
local editingPos = false
--========================================================--
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(0) end
sampAddChatMessage(tag.. " {FFFFFF} Скрипт успешно загружен. | by {008000}W1ll04eison", 0x8A2BE2)
sampAddChatMessage(tag.. " {FFFFFF} Version 1.0.0. | Что бы открыть настройки скрипта, напишите: {FFE4B5}/govset", 0x8A2BE2)
sampRegisterChatCommand('sset', function()
nastroiki.v = not nastroiki.v
end)
while true do --===============================[ВЫПОЛНЯЕТЬСЯ КАЖДЫЙ КАДР]==================--
wait(0)
if okno.v then
imgui.ShowCursor = false
end
if ini.active.show then
okno.v = true
else
okno.v = false
end
if editingPos and show then
showCursor(true)
curX, curY = getCursorPos()
posX, posY = curX, curY
if wasKeyPressed(32) then
sampAddChatMessage(tag..' {FFFFFF}Новое положение сохранено: {FFE4B5}Х: {00BFFF}'..curX..'{FFFFFF}, {FFE4B5}Y: {00BFFF}'..curY, 0x8A2BE2)
editingPos = false
save()
showCursor(false)
nastroiki.v = true
end
end
imgui.Process = nastroiki.v or okno.v
end
end
--=====================================================--
function onWindowMessage(msg, wparam, lparam)
if msg == 0x100 or msg == 0x101 then
if (wparam == keys.VK_ESCAPE and (nastroiki.v)) and not isPauseMenuActive() then
consumeWindowMessage(true, false)
if msg == 0x101 then
if nastroiki.v then
nastroiki.v = false;
else nastroiki.v = false end
end
end
end
end
--========================================================--
function imgui.OnDrawFrame()
if nastroiki.v then
imgui.ShowCursor = true
local sw, sh = getScreenResolution()
imgui.SetNextWindowSize(imgui.ImVec2(950, 528), imgui.Cond.FirstUseEver)
imgui.SetNextWindowPos(imgui.ImVec2(w / 2, h / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.Begin(u8"set | Version 1.0.0", nastroiki, imgui.WindowFlags.NoResize + imgui.WindowFlags.NoCollapse)
if ini.active.text1 ~= "" then
text1.v = string.gsub(u8(ini.active.text1), "&", "\n")
end
imgui.Text(u8'Включение / Отключение')
imgui.SameLine()
if imgui.ToggleButton(u8'##1110', show) then
end
if imgui.Button(u8"Изменить положение") then
sampAddChatMessage(tag..' {FFFFFF}Для сохранения положения нажмите {ff004d}ПРОБЕЛ', 0x8A2BE2)
editingPos = true
showCursor(true)
nastroiki.v = false
end
if imgui.Button(u8'Сохранить настройки') then
ini.active.text1 = string.gsub(u8:decode(text1.v), "\n", "&")
ini.active.show = show.v
--ini.active.text1 = text1.v
savesettings()
sampAddChatMessage(tag.. " {FFFFFF} Настройки скрипта успешно {FFA500}сохранены", 0x8A2BE2)
end
imgui.SameLine()
imgui.TextDisabled(u8'(?)')--===============================================[Помощь в командах (?)]=============================--
if imgui.IsItemHovered() then
imgui.BeginTooltip()
imgui.TextUnformatted(u8'После смены какого либо пункта / подпункта в данном окне\nнужно обязательно нажимать данную кнопку\nиначе, сохранения не вступят в силу')
imgui.EndTooltip()
end
imgui.Separator()
imgui.Text("")
imgui.InputTextMultiline(" ", text1, imgui.ImVec2(940, 500))
imgui.End()
end
if okno.v then
imgui.SetNextWindowPos(imgui.ImVec2(posX, posY), imgui.Cond.Always)
imgui.Begin(u8"", nil, imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove + imgui.WindowFlags.AlwaysUseWindowPadding + imgui.WindowFlags.AlwaysAutoResize + imgui.WindowFlags.ShowBorders)
if ini.active.text1 ~= "" then
imgui.Text(text1.v)
else
imgui.Text(u8"Тут пока что ничего нету")
end
imgui.End()
end
end
--=====================================================--
function save()
ini.pos.x, ini.pos.y = posX, posY
inicfg.save(ini, directIniiiiii)
end
--=====================================================--
function savesettings()
inicfg.save(ini, directIniiiiii)
end
--=====================================================--
function theme()
local style = imgui.GetStyle()
local colors = style.Colors
local clr = imgui.Col
local ImVec4 = imgui.ImVec4
style.WindowRounding = 9.0
style.WindowTitleAlign = imgui.ImVec2(0.5, 0.5)
style.ChildWindowRounding = 4.0
style.FrameRounding = 3
style.ItemSpacing = imgui.ImVec2(5.0, 4.0)
style.ScrollbarSize = 13.0
style.ScrollbarRounding = 0
style.GrabMinSize = 8.0
style.GrabRounding = 1.0
style.WindowPadding = imgui.ImVec2(4.0, 4.0)
style.FramePadding = imgui.ImVec2(3.5, 3.5)
style.ButtonTextAlign = imgui.ImVec2(0.0, 0.5)
colors[clr.Text] = ImVec4(1.00, 1.00, 1.00, 1.00)
colors[clr.TextDisabled] = ImVec4(0.73, 0.75, 0.74, 1.00)
colors[clr.WindowBg] = ImVec4(0.09, 0.09, 0.09, 0.94)
colors[clr.ChildWindowBg] = ImVec4(10.00, 10.00, 10.00, 0.01)
colors[clr.PopupBg] = ImVec4(0.08, 0.08, 0.08, 0.94)
colors[clr.Border] = ImVec4(0.20, 0.20, 0.20, 0.50)
colors[clr.BorderShadow] = ImVec4(0.00, 0.00, 0.00, 0.00)
colors[clr.FrameBg] = ImVec4(0.00, 0.39, 1.00, 0.65)
colors[clr.FrameBgHovered] = ImVec4(0.11, 0.40, 0.69, 1.00)
colors[clr.FrameBgActive] = ImVec4(0.11, 0.40, 0.69, 1.00)
colors[clr.TitleBg] = ImVec4(0.00, 0.00, 0.00, 1.00)
colors[clr.TitleBgActive] = ImVec4(0.00, 0.24, 0.54, 1.00)
colors[clr.TitleBgCollapsed] = ImVec4(0.00, 0.22, 1.00, 0.67)
colors[clr.MenuBarBg] = ImVec4(0.08, 0.44, 1.00, 1.00)
colors[clr.ScrollbarBg] = ImVec4(0.02, 0.02, 0.02, 0.53)
colors[clr.ScrollbarGrab] = ImVec4(0.31, 0.31, 0.31, 1.00)
colors[clr.ScrollbarGrabHovered] = ImVec4(0.41, 0.41, 0.41, 1.00)
colors[clr.ScrollbarGrabActive] = ImVec4(0.51, 0.51, 0.51, 1.00)
colors[clr.ComboBg] = ImVec4(0.20, 0.20, 0.20, 0.99)
colors[clr.CheckMark] = ImVec4(1.00, 1.00, 1.00, 1.00)
colors[clr.SliderGrab] = ImVec4(0.34, 0.67, 1.00, 1.00)
colors[clr.SliderGrabActive] = ImVec4(0.84, 0.66, 0.66, 1.00)
colors[clr.Button] = ImVec4(0.00, 0.39, 1.00, 0.65)
colors[clr.ButtonHovered] = ImVec4(0.00, 0.64, 1.00, 0.65)
colors[clr.ButtonActive] = ImVec4(0.00, 0.53, 1.00, 0.50)
colors[clr.Header] = ImVec4(0.00, 0.62, 1.00, 0.54)
colors[clr.HeaderHovered] = ImVec4(0.00, 0.36, 1.00, 0.65)
colors[clr.HeaderActive] = ImVec4(0.00, 0.53, 1.00, 0.00)
colors[clr.Separator] = ImVec4(0.43, 0.43, 0.50, 0.50)
colors[clr.SeparatorHovered] = ImVec4(0.71, 0.39, 0.39, 0.54)
colors[clr.SeparatorActive] = ImVec4(0.71, 0.39, 0.39, 0.54)
colors[clr.ResizeGrip] = ImVec4(0.71, 0.39, 0.39, 0.54)
colors[clr.ResizeGripHovered] = ImVec4(0.84, 0.66, 0.66, 0.66)
colors[clr.ResizeGripActive] = ImVec4(0.84, 0.66, 0.66, 0.66)
colors[clr.CloseButton] = ImVec4(0.41, 0.41, 0.41, 1.00)
colors[clr.CloseButtonHovered] = ImVec4(0.98, 0.39, 0.36, 1.00)
colors[clr.CloseButtonActive] = ImVec4(0.98, 0.39, 0.36, 1.00)
colors[clr.PlotLines] = ImVec4(0.61, 0.61, 0.61, 1.00)
colors[clr.PlotLinesHovered] = ImVec4(1.00, 0.43, 0.35, 1.00)
colors[clr.PlotHistogram] = ImVec4(0.90, 0.70, 0.00, 1.00)
colors[clr.PlotHistogramHovered] = ImVec4(1.00, 0.60, 0.00, 1.00)
colors[clr.TextSelectedBg] = ImVec4(0.26, 0.59, 0.98, 0.35)
colors[clr.ModalWindowDarkening] = ImVec4(0.80, 0.80, 0.80, 0.35)
end
theme()
Если я напишу в imgui.InputTextMultiline допустим "12" или какой-нибудь иной текст, затем нажму сохранить, то в ini файл сохраняется текст.
Если же после этого я сменю этот текст на какой-нибудь иной, к примеру на"36", и нажму сохранить, то сохранение в ini файл не происходит
Подскажите в чем ошибка
Последнее редактирование: