- 447
- 92
- Версия MoonLoader
- .027.0-preview
При увеличение иконок, они просто начинают выдавать вопросительные знаки. Как это пофиксить?
код:
--===== [ Подключаем библиотеки ] =====--
local imgui = require 'mimgui' -- Графический модуль mimgui
local fa = require('fAwesome6') -- Дополнение к графическому модулю с его помощью можно добавлять разного рода иконок.
------------------------------
--===== [ Функции ] =====--
-- Функция, вызывающаяся один раз за период жизни скрипта. Типа пред загрузка, перед показом в Imgui--
imgui.OnInitialize(function()
--Fawesome6(Иконки)--
imgui.GetIO().IniFilename = nil -- Ставим значение 0, что означает, что не будет использоваться файл конфигурайии INI для сохранения настроек пользовательского интерфейса Mimgui
local config = imgui.ImFontConfig() -- Создаём новую пременную и присваиваем ей новый экземпляр класса ImFontConfig(). Этот класс используется для настройки параментров шрифта.
config.MergeMode = true -- Ставим true, что означает, что шрифт будет объединён с другими шрифтами, если они уже были добавлены в Fonts
config.PixelSnapH = true -- Ставим true, что означает, что горизонтальные координаты будут выравниваться по пикселям, что бы избежать размытия текста
iconRanges = imgui.new.ImWchar[3](fa.min_range, fa.max_range, 0) -- Создаём новую переменную и присваиваем ей новый массив типа ImWchar c размером 3. Значениям массивам является min_range, max_range и 0. Это используется для определения диапазона символов иконок, которые будут добавлены в шрифт.
imgui.GetIO().Fonts:AddFontFromMemoryCompressedBase85TTF(fa.get_font_data_base85('solid'), 18, config, iconRanges) -- Добавляем новый шрифт, с помощью функции AddFontFromMemoryCompressedBase85TTF. В качестве аргументов передаём данные шрифта в формате Base85, размер шрифта, настройки шрифта(config) и диапазон символов иконок. Здесь используется solid, что-бы получить данные шрифта в формате Base85 для типа иконок "solid"
---
--Размер текста--
imgui.GetIO().IniFilename = nil -- -- Ставим значение 0, что означает, что не будет использоваться файл конфигурайии INI для сохранения настроек пользовательского интерфейса Mimgui.
local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic() -- Создаём новую переменную и присвеиваем ей диапазон символов кирилллицы, этот диапазон будет использоваться при добавление шрифта.
local path = getFolderPath(0x14) .. '\\trebucbd.ttf' -- Создаём новую переменную и присваиваем ей путь к файлу шрифта. Функция getFolderPath(0x14) используется для получения пути к системной папке шрифтов.
-- дополнительные шриты:
font[18] = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 18.0, nil, glyph_ranges) -- Добавляем новый шрифт в Fonts с помощью функции AddFontFromFileTTF. В качестве аргументов передаём путь к файлу шрифта, размер шрифта, настройки шрифта и диапазон символов.
font[25] = imgui.GetIO().Fonts:AddFontFromFileTTF(path, 25.0, nil, glyph_ranges) -- Добавляем новый шрифт в Fonts с помощью функции AddFontFromFileTTF. В качестве аргументов передаём путь к файлу шрифта, размер шрифта, настройки шрифта и диапазон символов.
--
end)
------
--Кнопки без фона, но с текстом --
function imgui.InvisButton(text, size)
imgui.PushStyleColor(imgui.Col.Button, imgui.ImVec4(0, 0, 0, 0))
imgui.PushStyleColor(imgui.Col.ButtonHovered, imgui.ImVec4(0, 0, 0, 0))
imgui.PushStyleColor(imgui.Col.ButtonActive, imgui.ImVec4(0, 0, 0, 0))
local button = imgui.Button(text, size)
imgui.PopStyleColor(3)
return button
end
---
------------------------------
--in frame
--===== [ Кнопки перехода ] ======--
imgui.SetCursorPosX(-1.5)
imgui.SetCursorPosY(280) -- Меняем положение кнопок по Y
imgui.PushFont(font[18])
if imgui.InvisButton((fa('HOUSE')..u8'Основное'), imgui.ImVec2(215,40)) then -- Создаем проверку на нажатие кнопки
window = 0 -- Если кнопка была нажата, то это окно переключается на главное меню
end
imgui.SetCursorPosX(-1.5)
if imgui.InvisButton((u8'Настройки'), imgui.ImVec2(215,40)) then
window = 1 -- Если кнопка была нажата, то
end
imgui.SetCursorPosX(-1.5)
if imgui.InvisButton((u8'та'), imgui.ImVec2(215,40)) then
window = 2
end
imgui.SetCursorPosX(-1.5)
if imgui.InvisButton((u8'Абив'), imgui.ImVec2(215,40)) then
window = 3
end
imgui.SetCursorPosX(-1.5)
if imgui.InvisButton((u8'Гиши'), imgui.ImVec2(215,40)) then
window = 4
end
imgui.PopFont()
---