Lua Chat MImGui | UPDATE 7.0

Kakiein

Активный
181
48
Сделай в 6.0 что бы можно было чат перемещять и делать его компактней(типо,максимальная длина/ширина)
 
  • Нравится
Реакции: user31883

Bananious

Известный
238
17
Сделай прозрачный фон когда открываешь чат, меня бесит черный фон и вообще фон при открытии чата.
 

imring

Ride the Lightning
Всефорумный модератор
2,362
2,545
Arial не знает значок №
Fix invalid chars:
-- https://github.com/imring/spur-imgui/blob/master/spur_imgui.lua#L106
local ranges = {
    0x0020, 0x00FF,
    0x0400, 0x052F,
    0x2DE0, 0x2DFF,
    0xA640, 0xA69F,
    0x2013, 0x2122,
    0,
}

local fonts = imgui.GetIO().Fonts
fonts:Clear()
iranges = ffi.new('ImWchar[?]', #ranges, ranges) -- или mimgui стиль: imgui.new.ImWchar[#ranges](ranges)
fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\consola.ttf', 12, nil, iranges)
bold = fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\consolab.ttf', 12, nil, iranges)
welcome = fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\consolab.ttf', 14, nil, iranges)
 
  • Нравится
Реакции: H1n9, AnWu и #Northn

AnWu

https://t.me/anwublog
Всефорумный модератор
4,768
5,370
Fix invalid chars:
-- https://github.com/imring/spur-imgui/blob/master/spur_imgui.lua#L106
local ranges = {
    0x0020, 0x00FF,
    0x0400, 0x052F,
    0x2DE0, 0x2DFF,
    0xA640, 0xA69F,
    0x2013, 0x2122,
    0,
}

local fonts = imgui.GetIO().Fonts
fonts:Clear()
iranges = ffi.new('ImWchar[?]', #ranges, ranges) -- или mimgui стиль: imgui.new.ImWchar[#ranges](ranges)
fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\consola.ttf', 12, nil, iranges)
bold = fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\consolab.ttf', 12, nil, iranges)
welcome = fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\consolab.ttf', 14, nil, iranges)
собираем чат всем бх. уже завез ему скролл на мышку :)
 
  • Нравится
Реакции: H1n9 и user31883

#Northn

Pears Project — уже запущен!
Автор темы
Всефорумный модератор
2,650
2,535
Обновление 6.0:
  • Добавлена совместимость с:
  • Добавлена совместимость с функциями проверки включённости инпута по типу sampIsChatInputActive() на Lua, спасибо @Rinat_Namazov
  • Добавлена совместимость с функциями проверки включённости инпута по типу sampGetChatInputText() на Lua.
  • Исправлен баг с отсутствием одиночного символа при разных цветах текста.
  • Добавлен скролл с помощью колёсика мыши. Спасибо @DonHomka
  • Исправлено изменение затемнения заднего фона чата, параметр Alpha нормально функционирует.
Проблема с некоторыми символами до сих пор актуальна, способ @imring не совсем корректно получился, шрифт менялся но несовместимые символы не исправлялись.

Скрипт в первом сообщении (топике) темы.
 
  • Нравится
Реакции: H1n9 и Stiopko

Bananious

Известный
238
17
У меня прям оргазм от плавной анимации появления текста в чате)
 
  • Нравится
Реакции: H1n9

imring

Ride the Lightning
Всефорумный модератор
2,362
2,545
Проблема с некоторыми символами до сих пор актуальна, способ @imring не совсем корректно получился, шрифт менялся но несовместимые символы не исправлялись.
42514
42515
может это ты рукожоп?
 
  • Нравится
Реакции: H1n9

#Northn

Pears Project — уже запущен!
Автор темы
Всефорумный модератор
2,650
2,535
может это ты рукожоп?
Почему ты так уверен в своих словах?
Lua:
imgui.OnInitialize (function() -- Called once

    imgui.GetStyle().WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
  
    fonts = {}
    fontsArray = {}
  
    load_ini()
  
    fontChanged, fontSizeChanged = false, false
  
    enableSettingsWindow = imgui.new.bool()
  
    -- imgui.GetIO().WantCaptureMouse = true DONT WORKS
    imgui.GetIO().IniFilename = nil
    imgui.GetStyle().WindowBorderSize = 0
    --local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
    --imgui.GetIO().Fonts:Clear()
    --imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\'..data.values.font_name, fontSize[0], nil, glyph_ranges)
    --imgui.RebuildFonts()
  
    local search, file = findFirstFile(getFolderPath(0x14) .. '\\*.ttf')
    while file do
        table.insert(fonts, file)
        if file == data.values.font_name then fontSelected = imgui.new.int(#fonts - 1) end
        file = findNextFile(search)
    end
    fontsArray = imgui.new['const char*'][#fonts](fonts)
    fontSize[0] = imgui.GetIO().Fonts.ConfigData.Data[0].SizePixels
  
    -- https://github.com/imring/spur-imgui/blob/master/spur_imgui.lua#L106
    local ranges = {
        0x0020, 0x00FF,
        0x0400, 0x052F,
        0x2DE0, 0x2DFF,
        0xA640, 0xA69F,
        0x2013, 0x2122,
        0,
    }

    local fonts = imgui.GetIO().Fonts
    fonts:Clear()
    iranges = ffi.new('ImWchar[?]', #ranges, ranges) -- или mimgui стиль: imgui.new.ImWchar[#ranges](ranges)
    fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\consola.ttf', 12, nil, iranges)
    bold = fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\consolab.ttf', 12, nil, iranges)
    welcome = fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\consolab.ttf', 14, nil, iranges)
end)
ну давай, удиви

UPD: а нет, некоторые символы исправились, но тот же № до сих пор некорректно показывается
UPD2: чё бля, теперь всё нормально...
 
  • Нравится
Реакции: H1n9

imring

Ride the Lightning
Всефорумный модератор
2,362
2,545
Почему ты так уверен в своих словах?
Lua:
imgui.OnInitialize (function() -- Called once

    imgui.GetStyle().WindowTitleAlign = imgui.ImVec2(0.5, 0.84)
 
    fonts = {}
    fontsArray = {}
 
    load_ini()
 
    fontChanged, fontSizeChanged = false, false
 
    enableSettingsWindow = imgui.new.bool()
 
    -- imgui.GetIO().WantCaptureMouse = true DONT WORKS
    imgui.GetIO().IniFilename = nil
    imgui.GetStyle().WindowBorderSize = 0
    --local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
    --imgui.GetIO().Fonts:Clear()
    --imgui.GetIO().Fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\'..data.values.font_name, fontSize[0], nil, glyph_ranges)
    --imgui.RebuildFonts()
 
    local search, file = findFirstFile(getFolderPath(0x14) .. '\\*.ttf')
    while file do
        table.insert(fonts, file)
        if file == data.values.font_name then fontSelected = imgui.new.int(#fonts - 1) end
        file = findNextFile(search)
    end
    fontsArray = imgui.new['const char*'][#fonts](fonts)
    fontSize[0] = imgui.GetIO().Fonts.ConfigData.Data[0].SizePixels
 
    -- https://github.com/imring/spur-imgui/blob/master/spur_imgui.lua#L106
    local ranges = {
        0x0020, 0x00FF,
        0x0400, 0x052F,
        0x2DE0, 0x2DFF,
        0xA640, 0xA69F,
        0x2013, 0x2122,
        0,
    }

    local fonts = imgui.GetIO().Fonts
    fonts:Clear()
    iranges = ffi.new('ImWchar[?]', #ranges, ranges) -- или mimgui стиль: imgui.new.ImWchar[#ranges](ranges)
    fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\consola.ttf', 12, nil, iranges)
    bold = fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\consolab.ttf', 12, nil, iranges)
    welcome = fonts:AddFontFromFileTTF(getFolderPath(0x14) .. '\\consolab.ttf', 14, nil, iranges)
end)
ну давай, удиви

UPD: а нет, некоторые символы исправились, но тот же № до сих пор некорректно показывается
42517
 
  • Нравится
Реакции: H1n9

Bananious

Известный
238
17
При появлении Imgui окон из других скриптов, то они появляются под чатом.
 

#Northn

Pears Project — уже запущен!
Автор темы
Всефорумный модератор
2,650
2,535
теперь всё нормально, странно, но вопрос: можно каким-нибудь образом применить этот шрифт только для определённых символов?

При появлении Imgui окон из других скриптов, то они появляются под чатом.
если ты нажмёшь на это имгуи окно -- оно будет выше.