That's notifications system which appears in the right bottom of screeni don't understand what this does, can i have a full screen image?
That's notifications system which appears in the right bottom of screeni don't understand what this does, can i have a full screen image?
local imgui = require 'imgui'
local key = require 'vkeys'
local checkboxone = imgui.ImBool(false)
local checkboxdva = imgui.ImBool(false)
local checkboxtri = imgui.ImBool(false)
local checkboxchetiri = imgui.ImBool(false)
local checkboxpyat = imgui.ImBool(false)
local bNotf, notf = pcall(import, "imgui_notf.lua")
-- îäíî èç îñíîâíûõ îòëè÷èé îò îðèãèíàëüíîãî àïè
-- âñå ïåðåìåííûå, çíà÷åíèÿ êîòîðûõ çàïèñûâàþòñÿ â ImGui ïî óêàçàòåëþ, ìîãóò èñïîëüçîâàòüñÿ òîëüêî ÷åðåç ñïåöèàëüíûå òèïû
local main_window_state = imgui.ImBool(false)
function imgui.OnDrawFrame()
local resX, resY = getScreenResolution()
local sizeX, sizeY = 500, 300
if main_window_state.v then -- ÷òåíèå è çàïèñü çíà÷åíèÿ òàêîé ïåðåìåííîé îñóùåñòâëÿåòñÿ ÷åðåç ïîëå v (èëè Value)
imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver)
imgui.SetNextWindowSize(imgui.ImVec2(250, 400), imgui.Cond.FirstUseEver) -- ìåíÿåì ðàçìåð
-- íî äëÿ ïåðåäà÷è çíà÷åíèÿ ïî óêàçàòåëþ - îáÿçàòåëüíî íàïðÿìóþ
-- òóò main_window_state ïåðåäà¸òñÿ ôóíêöèè imgui.Begin, ÷òîáû ìîæíî áûëî îòñëåäèòü çàêðûòèå îêíà íàæàòèåì íà êðåñòèê
imgui.Begin('My window', nil, imgui.WindowFlags.NoMove + imgui.WindowFlags.NoResize)
if imgui.Checkbox('Press me1', checkboxone) then
if bNotf then
notf.addNotification(u8("Уведомление!"), 4, 1)
end
end-- à âîò è êíîïêà ñ äåéñòâèå
imgui.SameLine()
imgui.Checkbox('Press me2', checkboxdva) -- à âîò è êíîïêà ñ äåéñòâèåì
imgui.Checkbox('Press me3', checkboxtri) -- à âîò è êíîïêà ñ äåéñòâèåì
imgui.SameLine()
imgui.Checkbox('Press me4', checkboxchetiri) -- à âîò è êíîïêà ñ äåéñòâèåì
imgui.NewLine()
imgui.Checkbox('Press me5', checkboxpyat) -- à âîò è êíîïêà ñ äåéñòâèåì
imgui.End()
end
end
function main()
while not isSampAvailable() do wait(0) end
sampRegisterChatCommand('hel', function()
main_window_state.v = true
end)
while true do
wait(0)
imgui.Process = main_window_state.v -- òåïåðü çíà÷åíèå imgui.Process âñåãäà áóäåò çàäàâàòüñÿ â çàâèñèìîñòè îò àêòèâíîñòè îñíîâíîãî îêíà
if wasKeyPressed(key.VK_X) then -- àêòèâàöèÿ ïî íàæàòèþ êëàâèøè X
main_window_state.v = false -- ïåðåêëþ÷àåì ñòàòóñ àêòèâíîñòè îêíà, íå çàáûâàåì ïðî .v
end
end
end
function onWindowMessage(msg, wparam, lparam)
if msg == 0x100 or msg == 0x101 then
if (wparam == key.VK_ESCAPE and main_window_state.v) and not isPauseMenuActive() then
consumeWindowMessage(true, false)
if msg == 0x101 then
main_window_state.v = false
end
end
end
end
function notf()
addNotification(text, time, style)
-- Текст принимает как есть, для кирилицы используйте библиотеку encoding
-- Время можно указывать с милисекундами, например 5.543
-- Стили:
-- 1 - Черный, простые сообщения
-- 2 - Синий/голубой - Информационные сообщения
-- 3 - Красный - Ошибки
-- В качестве параметра принимается таблица пользовательского стиля, к примеру:
notf.addNotification("Test", 10,
{
text = imgui.ImColor(255, 255, 255, 255):GetVec4(), -- Цвет текста
rightBox = imgui.ImColor(190, 40, 40, 255):GetU32(), -- Цвет полоски справа
mainBox = {
imgui.ImColor(170, 20, 20, 170):GetU32(), -- Левый верхний угол
imgui.ImColor(170, 20, 20, 235):GetU32(), -- Правый верхний
imgui.ImColor(170, 20, 20, 235):GetU32(), -- Левый нижний
imgui.ImColor(170, 20, 20, 170):GetU32(), -- Правый нижний
}
})
-- Цвет будет переливаться между указанными.-- body
end
Было бы круто все геймтексты заменить такими уведомлениями
local sampev = require 'lib.samp.events'
local bNotf, notf = pcall(import, "imgui_notf.lua")
function sampev.onDisplayGameText(style, time, text)
if bNotf then
notf.addNotification(u8(text), time / 1000, 1)
return false
end
end
Lua:local sampev = require 'lib.samp.events' local bNotf, notf = pcall(import, "imgui_notf.lua") function sampev.onDisplayGameText(style, time, text) if bNotf then notf.addNotification(u8(text), time / 1000, 1) return false end end
(error) gametext.lua: C:\Games\GTA San Andreas\moonloader\gametext.lua:6: attempt to call global 'u8' (a nil value)
stack traceback:
C:\Games\GTA San Andreas\moonloader\gametext.lua:6: in function 'callback'
...ames\GTA San Andreas\moonloader\lib\samp\events\core.lua:77: in function 'process_event'
...ames\GTA San Andreas\moonloader\lib\samp\events\core.lua:100: in function 'process_packet'
...ames\GTA San Andreas\moonloader\lib\samp\events\core.lua:127: in function <...ames\GTA San Andreas\moonloader\lib\samp\events\core.lua:126>
function sampev.onDisplayGameText(style, time, text)
if bNotf then
notf.addNotification(text, time / 1000, 1)
return false
end
end
Lua:function sampev.onDisplayGameText(style, time, text) if bNotf then notf.addNotification(text, time / 1000, 1) return false end end
local sampev = require 'lib.samp.events'
local bNotf, notf = pcall(import, "imgui_notf.lua")
function sampev.onDisplayGameText(style, time, text)
if bNotf then
notf.addNotification(clear(text), time / 1000, 1)
return false
end
end
function clear(text)
text = text:gsub('~n~', '\n')
text = text:gsub('~%l~', '')
return text
end
Благодарю за помощьПосмотреть вложение 126003
Lua:local sampev = require 'lib.samp.events' local bNotf, notf = pcall(import, "imgui_notf.lua") function sampev.onDisplayGameText(style, time, text) if bNotf then notf.addNotification(clear(text), time / 1000, 1) return false end end function clear(text) text = text:gsub('~n~', '\n') text = text:gsub('~%l~', '') return text end
îñí÷èé òïèîñ?не выводит уведомление
Lua:local imgui = require 'imgui' local key = require 'vkeys' local checkboxone = imgui.ImBool(false) local checkboxdva = imgui.ImBool(false) local checkboxtri = imgui.ImBool(false) local checkboxchetiri = imgui.ImBool(false) local checkboxpyat = imgui.ImBool(false) local bNotf, notf = pcall(import, "imgui_notf.lua") -- îäíî èç îñíîâíûõ îòëè÷èé îò îðèãèíàëüíîãî àïè -- âñå ïåðåìåííûå, çíà÷åíèÿ êîòîðûõ çàïèñûâàþòñÿ â ImGui ïî óêàçàòåëþ, ìîãóò èñïîëüçîâàòüñÿ òîëüêî ÷åðåç ñïåöèàëüíûå òèïû local main_window_state = imgui.ImBool(false) function imgui.OnDrawFrame() local resX, resY = getScreenResolution() local sizeX, sizeY = 500, 300 if main_window_state.v then -- ÷òåíèå è çàïèñü çíà÷åíèÿ òàêîé ïåðåìåííîé îñóùåñòâëÿåòñÿ ÷åðåç ïîëå v (èëè Value) imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 2, resY / 2 - sizeY / 2), imgui.Cond.FirstUseEver) imgui.SetNextWindowSize(imgui.ImVec2(250, 400), imgui.Cond.FirstUseEver) -- ìåíÿåì ðàçìåð -- íî äëÿ ïåðåäà÷è çíà÷åíèÿ ïî óêàçàòåëþ - îáÿçàòåëüíî íàïðÿìóþ -- òóò main_window_state ïåðåäà¸òñÿ ôóíêöèè imgui.Begin, ÷òîáû ìîæíî áûëî îòñëåäèòü çàêðûòèå îêíà íàæàòèåì íà êðåñòèê imgui.Begin('My window', nil, imgui.WindowFlags.NoMove + imgui.WindowFlags.NoResize) if imgui.Checkbox('Press me1', checkboxone) then if bNotf then notf.addNotification(u8("Уведомление!"), 4, 1) end end-- à âîò è êíîïêà ñ äåéñòâèå imgui.SameLine() imgui.Checkbox('Press me2', checkboxdva) -- à âîò è êíîïêà ñ äåéñòâèåì imgui.Checkbox('Press me3', checkboxtri) -- à âîò è êíîïêà ñ äåéñòâèåì imgui.SameLine() imgui.Checkbox('Press me4', checkboxchetiri) -- à âîò è êíîïêà ñ äåéñòâèåì imgui.NewLine() imgui.Checkbox('Press me5', checkboxpyat) -- à âîò è êíîïêà ñ äåéñòâèåì imgui.End() end end function main() while not isSampAvailable() do wait(0) end sampRegisterChatCommand('hel', function() main_window_state.v = true end) while true do wait(0) imgui.Process = main_window_state.v -- òåïåðü çíà÷åíèå imgui.Process âñåãäà áóäåò çàäàâàòüñÿ â çàâèñèìîñòè îò àêòèâíîñòè îñíîâíîãî îêíà if wasKeyPressed(key.VK_X) then -- àêòèâàöèÿ ïî íàæàòèþ êëàâèøè X main_window_state.v = false -- ïåðåêëþ÷àåì ñòàòóñ àêòèâíîñòè îêíà, íå çàáûâàåì ïðî .v end end end function onWindowMessage(msg, wparam, lparam) if msg == 0x100 or msg == 0x101 then if (wparam == key.VK_ESCAPE and main_window_state.v) and not isPauseMenuActive() then consumeWindowMessage(true, false) if msg == 0x101 then main_window_state.v = false end end end end function notf() addNotification(text, time, style) -- Текст принимает как есть, для кирилицы используйте библиотеку encoding -- Время можно указывать с милисекундами, например 5.543 -- Стили: -- 1 - Черный, простые сообщения -- 2 - Синий/голубой - Информационные сообщения -- 3 - Красный - Ошибки -- В качестве параметра принимается таблица пользовательского стиля, к примеру: notf.addNotification("Test", 10, { text = imgui.ImColor(255, 255, 255, 255):GetVec4(), -- Цвет текста rightBox = imgui.ImColor(190, 40, 40, 255):GetU32(), -- Цвет полоски справа mainBox = { imgui.ImColor(170, 20, 20, 170):GetU32(), -- Левый верхний угол imgui.ImColor(170, 20, 20, 235):GetU32(), -- Правый верхний imgui.ImColor(170, 20, 20, 235):GetU32(), -- Левый нижний imgui.ImColor(170, 20, 20, 170):GetU32(), -- Правый нижний } }) -- Цвет будет переливаться между указанными.-- body end
@AnWu
А на русском плез?)îñí÷èé òïèîñ?
îò îðèèé îò îðèãèíîëüçîâà...
û çâþò