- 8
- 0
- Версия MoonLoader
- .026-beta
Нашёл одну тему где есть анимация, вот собственно она:
Ну и я вставил в свой луа, где несколько окон и естественно есть условия открытия
Проблема в том, что при включении анимация идёт, а при выключении нет. Как видим это из-за созданного условия если main_window_state - true, без него всё работает отлично. Я бы мог его убрать, но у меня есть ещё несколько окон дополнительных и без условий никак. Можете помочь как обойтись без условий, но чтобы с анимациями, либо как-то подкорректировать, чтобы при условиях анимация всё равно работала
Поскольку есть риск, что многие не поняли, что я написал, то объясню ещё раз. Если есть условие if main_window_state.v then, то при нажатии кнопки, main_window_state.v меняется на false и условие if main_window_state.v then отключается следовательно отключается окно из-за чего не успевает пройти анимация. Помогите сделать так, чтобы анимация выключения проходила
Upd: Как я вижу здесь одни дилетанты и новички, не способные помочь. Посидев пару часов я понял как решить данную проблему и не готов поделиться решением. Обидно, что никто не смог мне помочь, я думал на форумах не только новички.
Код который нашёл:
equire 'lib.moonloader'
local imgui = require 'imgui'
local key = require 'vkeys'
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local update = false
local fAlpha = 0.00
local text = "Шо?"
local renderMenu = imgui.ImBool(false)
local canRender = imgui.ImBool(false)
function main()
while not isSampAvailable() do wait(0) end wait(5)
while true do wait(0)
if (isKeyJustPressed(VK_F2)) then renderMenu.v = not renderMenu.v end
UpdateAlpha(renderMenu.v)
if (fAlpha ~= 0.00) then canRender.v = true else canRender.v = false end -- вверх можете пихнуть, мне чиста пихуй
imgui.Process = canRender.v
end
end
function UpdateAlpha(menustate)
if (menustate) then -- open
if (fAlpha ~= 1.00)then fAlpha = fAlpha + 0.05 end
else -- close
if (fAlpha ~= 0.00)then fAlpha = fAlpha - 0.05 end
end
if (fAlpha > 1.00) then fAlpha = 1.00 end
if (fAlpha < 0.00) then fAlpha = 0.00 end -- anti dowen fix
apply_custom_style()
end
function imgui.OnDrawFrame()
ScreenX, ScreenY = getScreenResolution()
imgui.SetNextWindowPos(imgui.ImVec2(ScreenX / 2 , ScreenY / 2 ), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
imgui.SetNextWindowSize(imgui.ImVec2(350, 200), imgui.Cond.FirstUseEver)
imgui.Begin(u8"Animat1on DIMANSTATION BY rraggerr for blAst.hk", renderMenu, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize)
imgui.Text(u8"Ебат як же красива украiна")
if imgui.Button(u8(text)) then
text = "Нишо!"
end
imgui.End()
end
function apply_custom_style()
imgui.SwitchContext()
local style = imgui.GetStyle()
local colors = style.Colors
local clr = imgui.Col
local ImVec4 = imgui.ImVec4
style.Alpha = fAlpha
style.FrameRounding = 0.0
colors[clr.Text] = ImVec4(0.00, 0.00, 0.00, 1.00) -- тут можите ставитб чо хотите, не влияет
colors[clr.TextDisabled] = ImVec4(0.60, 0.60, 0.60, 1.00)
colors[clr.WindowBg] = ImVec4(0.94, 0.94, 0.94, 1.00)
colors[clr.ChildWindowBg] = ImVec4(0.00, 0.00, 0.00, 1.00)
colors[clr.PopupBg] = ImVec4(1.00, 1.00, 1.00, 1.00)
colors[clr.Border] = ImVec4(0.00, 0.00, 0.00, 1.00)
colors[clr.BorderShadow] = ImVec4(1.00, 1.00, 1.00, 1.00)
colors[clr.FrameBg] = ImVec4(1.00, 1.00, 1.00, 1.00)
colors[clr.FrameBgHovered] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.FrameBgActive] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.TitleBg] = ImVec4(0.96, 0.96, 0.96, 1.00)
colors[clr.TitleBgCollapsed] = ImVec4(1.00, 1.00, 1.00, 1.00)
colors[clr.TitleBgActive] = ImVec4(0.82, 0.82, 0.82, 1.00)
colors[clr.MenuBarBg] = ImVec4(0.86, 0.86, 0.86, 1.00)
colors[clr.ScrollbarBg] = ImVec4(0.98, 0.98, 0.98, 1.00)
colors[clr.ScrollbarGrab] = ImVec4(0.69, 0.69, 0.69, 1.00)
colors[clr.ScrollbarGrabHovered] = ImVec4(0.59, 0.59, 0.59, 1.00)
colors[clr.ScrollbarGrabActive] = ImVec4(0.49, 0.49, 0.49, 1.00)
colors[clr.ComboBg] = ImVec4(0.86, 0.86, 0.86, 1.00)
colors[clr.CheckMark] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.SliderGrab] = ImVec4(0.24, 0.52, 0.88, 1.00)
colors[clr.SliderGrabActive] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.Button] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.ButtonHovered] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.ButtonActive] = ImVec4(0.06, 0.53, 0.98, 1.00)
colors[clr.Header] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.HeaderHovered] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.HeaderActive] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.ResizeGrip] = ImVec4(1.00, 1.00, 1.00, 1.00)
colors[clr.ResizeGripHovered] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr.ResizeGripActive] = ImVec4(0.26, 0.59, 0.98, 1.00)
colors[clr. Button] = ImVec4(0.59, 0.59, 0.59, 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.39, 0.39, 0.39, 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, 1.00)
colors[clr.ModalWindowDarkening] = ImVec4(0.20, 0.20, 0.20, 1.00)
end
apply_custom_style()
Ну и я вставил в свой луа, где несколько окон и естественно есть условия открытия
Мой код, может что-то упустил, но смысл в другом:
local fAlpha = 0.00
local main_window_state = imgui.ImBool(false)
local canRender = imgui.ImBool(false)
function imgui.OnDrawFrame()
if main_window_state.v then
imgui.Begin('gg', main_window_state)
end
function UpdateAlpha(menustate)
if (menustate) then -- open
if (fAlpha ~= 1.00)then fAlpha = fAlpha + 0.05 end
else -- close
if (fAlpha ~= 0.00)then fAlpha = fAlpha - 0.05 end
end
if (fAlpha > 1.00) then fAlpha = 1.00 end
if (fAlpha < 0.00) then fAlpha = 0.00 end -- anti dowen fix
apply_custom_style()
end
function main()
while not isSampAvailable() do wait(0) end wait(5)
while true do wait(0)
if (isKeyJustPressed(VK_F2)) then main_window_state.v = not main_window_state.v end
UpdateAlpha(main_window_state.v)
if (fAlpha ~= 0.00) then canRender.v = true else canRender.v = false end -- вверх можете пихнуть, мне чиста пихуй
imgui.Process = canRender.v
end
end
Поскольку есть риск, что многие не поняли, что я написал, то объясню ещё раз. Если есть условие if main_window_state.v then, то при нажатии кнопки, main_window_state.v меняется на false и условие if main_window_state.v then отключается следовательно отключается окно из-за чего не успевает пройти анимация. Помогите сделать так, чтобы анимация выключения проходила
Upd: Как я вижу здесь одни дилетанты и новички, не способные помочь. Посидев пару часов я понял как решить данную проблему и не готов поделиться решением. Обидно, что никто не смог мне помочь, я думал на форумах не только новички.
Последнее редактирование: