imgui notf lua что это

Исходник Софт [ImGui] Global notification

Quasper

Известный

wD.D159

vk.me/153724009

Не выводит инфу в уведомления, пишет nil

Известный

Не выводит инфу в уведомления, пишет nil

Известный

Известный

Известный

SanyaVersus

Участник

require «lib.moonloader»
local notf = import ‘imgui_notf.lua’
local encoding = require ‘encoding’
encoding.default = ‘CP1251’
u8 = encoding.UTF8

function main()
while not isSampAvailable() do wait(0) end
if not isSampfuncsLoaded() or not isSampLoaded() then return end
while true do
wait(0)

if not sampIsChatInputActive() then
if not sampIsDialogActive() then
if isKeyJustPressed(VK_R) then
sampSendChat(«/healme»)
notf.addNotification(string.format(«Уведомление\n\nВы использовали аптечку»), 5)
end
end
end
end
end

P.S Не ебу в скриптинге от слова совсем

Oreshka23

Известный

require «lib.moonloader»
local notf = import ‘imgui_notf.lua’
local encoding = require ‘encoding’
encoding.default = ‘CP1251’
u8 = encoding.UTF8

function main()
while not isSampAvailable() do wait(0) end
if not isSampfuncsLoaded() or not isSampLoaded() then return end
while true do
wait(0)

if not sampIsChatInputActive() then
if not sampIsDialogActive() then
if isKeyJustPressed(VK_R) then
sampSendChat(«/healme»)
notf.addNotification(string.format(«Уведомление\n\nВы использовали аптечку»), 5)
end
end
end
end
end

P.S Не ебу в скриптинге от слова совсем

SanyaVersus

Участник

require «lib.moonloader»
local notf = import ‘imgui_notf.lua’
local encoding = require ‘encoding’
encoding.default = ‘CP1251’
u8 = encoding.UTF8

function main()
while not isSampAvailable() do wait(0) end
if not isSampfuncsLoaded() or not isSampLoaded() then return end
while true do
wait(0)

if not sampIsChatInputActive() then
if not sampIsDialogActive() then
if isKeyJustPressed(VK_R) then
sampSendChat(«/healme»)
notf.addNotification(u8(«Уведомление\n\nВы использовали аптечку»), 5)
end
end
end
end
end
какие-то иероглифы
можете сами чекнуть
нужен испрвленный скрипт, там где нет этой хни

trefa

08.07.2022

require «lib.moonloader»
local notf = import ‘imgui_notf.lua’
local encoding = require ‘encoding’
encoding.default = ‘CP1251’
u8 = encoding.UTF8

function main()
while not isSampAvailable() do wait(0) end
if not isSampfuncsLoaded() or not isSampLoaded() then return end
while true do
wait(0)

Источник

Moon ImGui — Dear ImGui for MoonLoader

Это работает, но что-то не впечатляет, согласитесь. Окно изначально маленькое, показывается сразу при старте и его нельзя закрыть.
Сделаем его побольше, добавим активацию и какое-нибудь действие:

Разница между C++ API и Lua API

Описание В C++ В Lua
Все функции из пространства имён ImGui, как и все типы, и все перечисления находятся в таблице, возвращаемой модулем ImGui::Text(«text»);
ImVec2(0.1f, 2.3f);
imgui.Text(«text»);
imgui.ImVec2(0.1, 2.3);
Названия перечислений (enum) и их значений лишились префиксов и символа «_» в конце ImGuiWindowFlags_NoTitleBar imgui.WindowFlags.NoTitleBar
Значения базовых типов, которые в ImGui записываются по указателю, должны быть использованы через специальные типы: ImBool для bool, ImFloat для float, ImInt для int и unsigned int, ImFloat2-4 для float4, ImInt2-4 для int4 static bool win = false; ImGui::Begin(«window», &win);
win = false;
local win = imgui.ImBool(false) imgui.Begin(«window», win)
win.v = false
Функции с переменным количеством аргументов для форматирования текста не поддерживают форматирование, используйте string.format ImGui::Text(«hey, %s», name) imgui.Text(string.format(‘hey, %s’, name))
Функции InputText и InputTextMultiline принимают ImBuffer вместо char* buf + size_t buf_size char buf[256]<>;
ImGui::InputText(‘input’, buf, sizeof(buf))
local buf = imgui.ImBuffer(256);
imgui.InputText(‘input’, buf)
Динамические массивы в виде массива указателей + количество элементов заменены таблицами const char* items[] = <"1", "2", "3">; ImGui::ListBox(«list», &lb_cur, items, 3) imgui.ListBox(‘list’, lb_cur, <'1', '2', '3'>)
Функции с аргументами const char* str_start, const char* str_end, идущими подряд, принимают обычную строку ImGui::TextUnformatted(some_str, some_str + 24) imgui.TextUnformatted(some_str)
Все функции, принимающие калбэк + user_data, принимают ImCallback void swszCb(ImGuiSizeConstraintCallbackData*) <>;
ImGui::SetNextWindowSizeConstraints(size_min, size_max, &swszCb, (void*)&my_data)
local swszCb = imgui.ImCallback(function(data) end)
imgui.SetNextWindowSizeConstraints(size_min, size_max, swszCb)
ImFont::CalcTextSizeA,
ImFontAtlas::CustomRect::CalcCustomRectUV,
ImFontAtlas::GetTexDataAsRGBA32,
ImFontAtlas::GetTexDataAsAlpha8,
ImFontAtlas::GlyphRangesBuilder::BuildRanges,
ImGui::ColorConvertRGBtoHSV и
ImGui::ColorConvertHSVtoRGB
возвращают значения вместо изменения по ссылке
float r, g, b;
ImGui::ColorConvertHSVtoRGB(h, s, v, r, g, b);
local r, g, b = imgui.ColorConvertHSVtoRGB(h, s, v)
ImGuiIO::IniFilename и ImGuiIO::LogFilename принимают ImBuffer вместо указателя на строку const char ini_path[] = «my/path.ini»;
ImGui::GetIO().IniFilename = ini_path;
local ini_path = imgui.ImBuffer(‘my/path.ini’)
imgui.GetIO().IniFilename = ini_path
Изменение ImGuiTextEditCallbackData::Buf автоматически обновляет длину и задаёт значение BufDirty s.copy(data.Buf, data.BufSize);
data.BufTextLen = s.length();
data.BufDirty = true;
data.Buf = ‘text’

Но это ещё не всё. Вся работа с текстом в ImGui основана на UTF-8, т.е. текст не ограничен лишь стандартным набором символов. Но т.к. GTA, SAMP и MoonLoader не поддерживают юникод, кодировки необходимо конвертировать.

Работа с другими языками на примере русского
В MoonLoader v.025 были добавлены библиотеки lua-iconv и encoding, они призваны помочь в работе с разными кодировками текста.
Следующий пример показывает как использовать текст на русском в ImGui:
Скрипт должен быть сохранён в кодировке Windows-1251

Остальные особенности
В Moon ImGui есть несколько дополнительных возможностей. В частности, они реализуют взаимодействие с игрой и управление интерфейсом.

На этом всё. Во вложениях есть пример с демонстрацией использования всех этих фич, рекомендую посмотреть код и пощупать его в игре. Вот скриншот:

Источник

Moon ImGui — Dear ImGui for MoonLoader

Это работает, но что-то не впечатляет, согласитесь. Окно изначально маленькое, показывается сразу при старте и его нельзя закрыть.
Сделаем его побольше, добавим активацию и какое-нибудь действие:

Разница между C++ API и Lua API

Описание В C++ В Lua
Все функции из пространства имён ImGui, как и все типы, и все перечисления находятся в таблице, возвращаемой модулем ImGui::Text(«text»);
ImVec2(0.1f, 2.3f);
imgui.Text(«text»);
imgui.ImVec2(0.1, 2.3);
Названия перечислений (enum) и их значений лишились префиксов и символа «_» в конце ImGuiWindowFlags_NoTitleBar imgui.WindowFlags.NoTitleBar
Значения базовых типов, которые в ImGui записываются по указателю, должны быть использованы через специальные типы: ImBool для bool, ImFloat для float, ImInt для int и unsigned int, ImFloat2-4 для float4, ImInt2-4 для int2 static bool win = false; ImGui::Begin(«window», &win);
win = false;
local win = imgui.ImBool(false) imgui.Begin(«window», win)
win.v = false
Функции с переменным количеством аргументов для форматирования текста не поддерживают форматирование, используйте string.format ImGui::Text(«hey, %s», name) imgui.Text(string.format(‘hey, %s’, name))
Функции InputText и InputTextMultiline принимают ImBuffer вместо char* buf + size_t buf_size char buf[256]<>;
ImGui::InputText(‘input’, buf, sizeof(buf))
local buf = imgui.ImBuffer(256);
imgui.InputText(‘input’, buf)
Динамические массивы в виде массива указателей + количество элементов заменены таблицами const char* items[] = <"1", "2", "3">; ImGui::ListBox(«list», &lb_cur, items, 3) imgui.ListBox(‘list’, lb_cur, <'1', '2', '3'>)
Функции с аргументами const char* str_start, const char* str_end, идущими подряд, принимают обычную строку ImGui::TextUnformatted(some_str, some_str + 24) imgui.TextUnformatted(some_str)
Все функции, принимающие калбэк + user_data, принимают ImCallback void swszCb(ImGuiSizeConstraintCallbackData*) <>;
ImGui::SetNextWindowSizeConstraints(size_min, size_max, &swszCb, (void*)&my_data)
local swszCb = imgui.ImCallback(function(data) end)
imgui.SetNextWindowSizeConstraints(size_min, size_max, swszCb)
ImFont::CalcTextSizeA,
ImFontAtlas::CustomRect::CalcCustomRectUV,
ImFontAtlas::GetTexDataAsRGBA32,
ImFontAtlas::GetTexDataAsAlpha8,
ImFontAtlas::GlyphRangesBuilder::BuildRanges,
ImGui::ColorConvertRGBtoHSV и
ImGui::ColorConvertHSVtoRGB
возвращают значения вместо изменения по ссылке
float r, g, b;
ImGui::ColorConvertHSVtoRGB(h, s, v, r, g, b);
local r, g, b = imgui.ColorConvertHSVtoRGB(h, s, v)
ImGuiIO::IniFilename и ImGuiIO::LogFilename принимают ImBuffer вместо указателя на строку const char ini_path[] = «my/path.ini»;
ImGui::GetIO().IniFilename = ini_path;
local ini_path = imgui.ImBuffer(‘my/path.ini’)
imgui.GetIO().IniFilename = ini_path
Изменение ImGuiTextEditCallbackData::Buf автоматически обновляет длину и задаёт значение BufDirty s.copy(data.Buf, data.BufSize);
data.BufTextLen = s.length();
data.BufDirty = true;
data.Buf = ‘text’

Но это ещё не всё. Вся работа с текстом в ImGui основана на UTF-8, т.е. текст не ограничен лишь стандартным набором символов. Но т.к. GTA, SAMP и MoonLoader не поддерживают юникод, кодировки необходимо конвертировать.

Работа с другими языками на примере русского
В MoonLoader v.025 были добавлены библиотеки lua-iconv и encoding, они призваны помочь в работе с разными кодировками текста.
Следующий пример показывает как использовать текст на русском в ImGui:
Скрипт должен быть сохранён в кодировке Windows-1251

Остальные особенности
В Moon ImGui есть несколько дополнительных возможностей. В частности, они реализуют взаимодействие с игрой и управление интерфейсом.

На этом всё. Во вложениях есть пример с демонстрацией использования всех этих фич, рекомендую посмотреть код и пощупать его в игре. Вот скриншот:

Источник

Moon ImGui — Dear ImGui for MoonLoader

Это работает, но что-то не впечатляет, согласитесь. Окно изначально маленькое, показывается сразу при старте и его нельзя закрыть.
Сделаем его побольше, добавим активацию и какое-нибудь действие:

Разница между C++ API и Lua API

Описание В C++ В Lua
Все функции из пространства имён ImGui, как и все типы, и все перечисления находятся в таблице, возвращаемой модулем ImGui::Text(«text»);
ImVec2(0.1f, 2.3f);
imgui.Text(«text»);
imgui.ImVec2(0.1, 2.3);
Названия перечислений (enum) и их значений лишились префиксов и символа «_» в конце ImGuiWindowFlags_NoTitleBar imgui.WindowFlags.NoTitleBar
Значения базовых типов, которые в ImGui записываются по указателю, должны быть использованы через специальные типы: ImBool для bool, ImFloat для float, ImInt для int и unsigned int, ImFloat2-4 для float4, ImInt2-4 для int4 static bool win = false; ImGui::Begin(«window», &win);
win = false;
local win = imgui.ImBool(false) imgui.Begin(«window», win)
win.v = false
Функции с переменным количеством аргументов для форматирования текста не поддерживают форматирование, используйте string.format ImGui::Text(«hey, %s», name) imgui.Text(string.format(‘hey, %s’, name))
Функции InputText и InputTextMultiline принимают ImBuffer вместо char* buf + size_t buf_size char buf[256]<>;
ImGui::InputText(‘input’, buf, sizeof(buf))
local buf = imgui.ImBuffer(256);
imgui.InputText(‘input’, buf)
Динамические массивы в виде массива указателей + количество элементов заменены таблицами const char* items[] = <"1", "2", "3">; ImGui::ListBox(«list», &lb_cur, items, 3) imgui.ListBox(‘list’, lb_cur, <'1', '2', '3'>)
Функции с аргументами const char* str_start, const char* str_end, идущими подряд, принимают обычную строку ImGui::TextUnformatted(some_str, some_str + 24) imgui.TextUnformatted(some_str)
Все функции, принимающие калбэк + user_data, принимают ImCallback void swszCb(ImGuiSizeConstraintCallbackData*) <>;
ImGui::SetNextWindowSizeConstraints(size_min, size_max, &swszCb, (void*)&my_data)
local swszCb = imgui.ImCallback(function(data) end)
imgui.SetNextWindowSizeConstraints(size_min, size_max, swszCb)
ImFont::CalcTextSizeA,
ImFontAtlas::CustomRect::CalcCustomRectUV,
ImFontAtlas::GetTexDataAsRGBA32,
ImFontAtlas::GetTexDataAsAlpha8,
ImFontAtlas::GlyphRangesBuilder::BuildRanges,
ImGui::ColorConvertRGBtoHSV и
ImGui::ColorConvertHSVtoRGB
возвращают значения вместо изменения по ссылке
float r, g, b;
ImGui::ColorConvertHSVtoRGB(h, s, v, r, g, b);
local r, g, b = imgui.ColorConvertHSVtoRGB(h, s, v)
ImGuiIO::IniFilename и ImGuiIO::LogFilename принимают ImBuffer вместо указателя на строку const char ini_path[] = «my/path.ini»;
ImGui::GetIO().IniFilename = ini_path;
local ini_path = imgui.ImBuffer(‘my/path.ini’)
imgui.GetIO().IniFilename = ini_path
Изменение ImGuiTextEditCallbackData::Buf автоматически обновляет длину и задаёт значение BufDirty s.copy(data.Buf, data.BufSize);
data.BufTextLen = s.length();
data.BufDirty = true;
data.Buf = ‘text’

Но это ещё не всё. Вся работа с текстом в ImGui основана на UTF-8, т.е. текст не ограничен лишь стандартным набором символов. Но т.к. GTA, SAMP и MoonLoader не поддерживают юникод, кодировки необходимо конвертировать.

Работа с другими языками на примере русского
В MoonLoader v.025 были добавлены библиотеки lua-iconv и encoding, они призваны помочь в работе с разными кодировками текста.
Следующий пример показывает как использовать текст на русском в ImGui:
Скрипт должен быть сохранён в кодировке Windows-1251

Остальные особенности
В Moon ImGui есть несколько дополнительных возможностей. В частности, они реализуют взаимодействие с игрой и управление интерфейсом.

На этом всё. Во вложениях есть пример с демонстрацией использования всех этих фич, рекомендую посмотреть код и пощупать его в игре. Вот скриншот:

Источник

Moon ImGui — Dear ImGui for MoonLoader

Это работает, но что-то не впечатляет, согласитесь. Окно изначально маленькое, показывается сразу при старте и его нельзя закрыть.
Сделаем его побольше, добавим активацию и какое-нибудь действие:

Разница между C++ API и Lua API

Описание В C++ В Lua
Все функции из пространства имён ImGui, как и все типы, и все перечисления находятся в таблице, возвращаемой модулем ImGui::Text(«text»);
ImVec2(0.1f, 2.3f);
imgui.Text(«text»);
imgui.ImVec2(0.1, 2.3);
Названия перечислений (enum) и их значений лишились префиксов и символа «_» в конце ImGuiWindowFlags_NoTitleBar imgui.WindowFlags.NoTitleBar
Значения базовых типов, которые в ImGui записываются по указателю, должны быть использованы через специальные типы: ImBool для bool, ImFloat для float, ImInt для int и unsigned int, ImFloat2-4 для float2, ImInt2-4 для int3 static bool win = false; ImGui::Begin(«window», &win);
win = false;
local win = imgui.ImBool(false) imgui.Begin(«window», win)
win.v = false
Функции с переменным количеством аргументов для форматирования текста не поддерживают форматирование, используйте string.format ImGui::Text(«hey, %s», name) imgui.Text(string.format(‘hey, %s’, name))
Функции InputText и InputTextMultiline принимают ImBuffer вместо char* buf + size_t buf_size char buf[256]<>;
ImGui::InputText(‘input’, buf, sizeof(buf))
local buf = imgui.ImBuffer(256);
imgui.InputText(‘input’, buf)
Динамические массивы в виде массива указателей + количество элементов заменены таблицами const char* items[] = <"1", "2", "3">; ImGui::ListBox(«list», &lb_cur, items, 3) imgui.ListBox(‘list’, lb_cur, <'1', '2', '3'>)
Функции с аргументами const char* str_start, const char* str_end, идущими подряд, принимают обычную строку ImGui::TextUnformatted(some_str, some_str + 24) imgui.TextUnformatted(some_str)
Все функции, принимающие калбэк + user_data, принимают ImCallback void swszCb(ImGuiSizeConstraintCallbackData*) <>;
ImGui::SetNextWindowSizeConstraints(size_min, size_max, &swszCb, (void*)&my_data)
local swszCb = imgui.ImCallback(function(data) end)
imgui.SetNextWindowSizeConstraints(size_min, size_max, swszCb)
ImFont::CalcTextSizeA,
ImFontAtlas::CustomRect::CalcCustomRectUV,
ImFontAtlas::GetTexDataAsRGBA32,
ImFontAtlas::GetTexDataAsAlpha8,
ImFontAtlas::GlyphRangesBuilder::BuildRanges,
ImGui::ColorConvertRGBtoHSV и
ImGui::ColorConvertHSVtoRGB
возвращают значения вместо изменения по ссылке
float r, g, b;
ImGui::ColorConvertHSVtoRGB(h, s, v, r, g, b);
local r, g, b = imgui.ColorConvertHSVtoRGB(h, s, v)
ImGuiIO::IniFilename и ImGuiIO::LogFilename принимают ImBuffer вместо указателя на строку const char ini_path[] = «my/path.ini»;
ImGui::GetIO().IniFilename = ini_path;
local ini_path = imgui.ImBuffer(‘my/path.ini’)
imgui.GetIO().IniFilename = ini_path
Изменение ImGuiTextEditCallbackData::Buf автоматически обновляет длину и задаёт значение BufDirty s.copy(data.Buf, data.BufSize);
data.BufTextLen = s.length();
data.BufDirty = true;
data.Buf = ‘text’

Но это ещё не всё. Вся работа с текстом в ImGui основана на UTF-8, т.е. текст не ограничен лишь стандартным набором символов. Но т.к. GTA, SAMP и MoonLoader не поддерживают юникод, кодировки необходимо конвертировать.

Работа с другими языками на примере русского
В MoonLoader v.025 были добавлены библиотеки lua-iconv и encoding, они призваны помочь в работе с разными кодировками текста.
Следующий пример показывает как использовать текст на русском в ImGui:
Скрипт должен быть сохранён в кодировке Windows-1251

Остальные особенности
В Moon ImGui есть несколько дополнительных возможностей. В частности, они реализуют взаимодействие с игрой и управление интерфейсом.

На этом всё. Во вложениях есть пример с демонстрацией использования всех этих фич, рекомендую посмотреть код и пощупать его в игре. Вот скриншот:

Источник

Читайте также:  что такое государственный орган субъекта российской федерации
Сказочный портал