Помогите с mimgui lua

SamuelGoldie

Участник
Автор темы
72
7
Версия MoonLoader
.026-beta
Подскажите как в этом окне мимгуи сделать поиск
screenshot_21-04-2023_02-29-58-411.png
Чтобы в поиске искало нужное мероприятие, вот код:

lua:
if imgui.BeginTabItem(u8'Мероприятия') then
                imgui.TextColoredRGB(u8'{2980B9}Название мероприятия {FFFFFF}- Уточки.')
                imgui.TextColoredRGB(u8'{2980B9}Суть мероприятия {FFFFFF}- Открывается WARP и собирается определенное количество участников, команда')
                imgui.TextColoredRGB(u8'{FFFFFF}администраторов встают на мостики над заливом с оружием в руках, цель игроков в заливе - выжить. Команда')
                imgui.TextColoredRGB(u8'{FFFFFF}администраторов в свою очередь должна убить всех кто попадется в их поле зрения.')
                imgui.TextColoredRGB(u8'{2980B9}Допустимое количество участников {FFFFFF}- {FF8C0B}От 50 до 200 участников{FFFFFF}.')
                imgui.TextColoredRGB(u8'{2980B9}Время проведения {FFFFFF}- Зависит от количества участников, {F09C13}от 10 до 20 минут{FFFFFF}.')
                imgui.TextColoredRGB(u8'{2980B9}Запреты {FFFFFF}-  Строго запрещается {33CC2A}<AFK> {FFFFFF}& использование {CC241C}аптечек / бронежилетов{FFFFFF}.')
                imgui.TextColoredRGB(u8'{2980B9}Схема мероприятия {FFFFFF}- (/awarp 16).')
                imgui.Text(u8'')
                imgui.Text(u8'')
                imgui.TextColoredRGB(u8'{2980B9}Название мероприятия {FFFFFF}- Кулачные Бои.')
                imgui.TextColoredRGB(u8'{2980B9}Суть мероприятия {FFFFFF}-  Открывается WARP и собирается определенное количество участников. Когда участники')
                imgui.TextColoredRGB(u8'{FFFFFF}собраны, администратор вызывает одну пару формата "ID vs ID" и выдает им КАСТЕТ {B5392B}(1-ID){FFFFFF}, далее идёт отсчёт -')
                imgui.TextColoredRGB(u8'{FFFFFF}после чего бой между участниками начинается. Мероприятие делится на несколько этапов, где в итоге остается')
                imgui.TextColoredRGB(u8'{FFFFFF}один победитель.')
                imgui.TextColoredRGB(u8'{2980B9}Допустимое количество участников {FFFFFF}- {FF8C0B}От 50 до 200 участников{FFFFFF}.')
                imgui.TextColoredRGB(u8'{2980B9}Время проведения {FFFFFF}- Зависит от количества участников, {F09C13}от 40 до 80 минут{FFFFFF}.')
                imgui.TextColoredRGB(u8'{2980B9}Запреты {FFFFFF}- Строго запрещается {33CC2A}<AFK>{FFFFFF}, {335997}/sleep{FFFFFF}, посторонние предметы (Огнестрельное оружие, биты, катаны и т.д.) &')
                imgui.TextColoredRGB(u8'{FFFFFF}использование {CC251C}аптечек / бронежилетов{FFFFFF}.')
                imgui.TextColoredRGB(u8'{2980B9}Схема мероприятия {FFFFFF}- (/awarp 42).')
                imgui.EndTabItem()
            end
 

SamuelGoldie

Участник
Автор темы
72
7
Работает, но кодировка сломалась, где-то тут проблема ?

lua:
if imgui.BeginTabItem(u8'Мероприятия') then
                imgui.InputText('Search',search,256)
                for k,v in pairs(events) do
                    if u8(v):find(ffi.string(search)) then
                        imgui.TextColoredRGB(v)
                    end
                end
                imgui.EndTabItem()
            end
 

Вложения

  • screenshot_21-04-2023_14-37-47-603.png
    screenshot_21-04-2023_14-37-47-603.png
    843 KB · Просмотры: 10

MLycoris

Режим чтения
Проверенный
1,828
1,871
Работает, но кодировка сломалась, где-то тут проблема ?

lua:
if imgui.BeginTabItem(u8'Мероприятия') then
                imgui.InputText('Search',search,256)
                for k,v in pairs(events) do
                    if u8(v):find(ffi.string(search)) then
                        imgui.TextColoredRGB(v)
                    end
                end
                imgui.EndTabItem()
            end
Попробуй imgui.TextColoredRGB(u8(v)), хотя оно и без этого должно
 

SamuelGoldie

Участник
Автор темы
72
7
сотри 9 строку и перед или после таблицы вставь
local search = imgui.new.char[256]()
Тоже самое,

lua:
script_name('EventHelper')
local SRCC = sampRegisterChatCommand
local color = 0x6596ef
local chcl = 0x9acd32
local bNotf, notf = pcall(import, "imgui_notf.lua")
local notf = import 'imgui_notf.lua'
local imgui = require 'mimgui' -- подключаем библиотеку мимгуи
local search = imgui.new.char[256]()
local encoding = require "encoding"
encoding.default = "CP1251"
cp12 = encoding.CP1251
local u8 = encoding.UTF8 -- это позволит нам писать задавать названия/текст на кириллице
local ffi = require 'ffi'
local pediks = {}
local sampev = require 'lib.samp.events'
local st = false
local font = {}
local new = imgui.new
local search = imgui.new.char[256]()
local events = {[[{2980B9}Название мероприятия {FFFFFF}- Уточки.
{2980B9}Суть мероприятия {FFFFFF}- Открывается WARP и собирается определенное количество участников, команда
{FFFFFF}администраторов встают на мостики над заливом с оружием в руках, цель игроков в заливе - выжить. Команда
{FFFFFF}администраторов в свою очередь должна убить всех кто попадется в их поле зрения.
{2980B9}Допустимое количество участников {FFFFFF}- {FF8C0B}От 50 до 200 участников{FFFFFF}.
{2980B9}Время проведения {FFFFFF}- Зависит от количества участников, {F09C13}от 10 до 20 минут{FFFFFF}.
{2980B9}Запреты {FFFFFF}-  Строго запрещается {33CC2A}<AFK> {FFFFFF}& использование {CC241C}аптечек / бронежилетов{FFFFFF}.
{2980B9}Схема мероприятия {FFFFFF}- (/awarp 16).]],
[[
 
{2980B9}Название мероприятия {FFFFFF}- Кулачные Бои.
{2980B9}Суть мероприятия {FFFFFF}-  Открывается WARP и собирается определенное количество участников. Когда участники
{FFFFFF}собраны, администратор вызывает одну пару формата "ID vs ID" и выдает им КАСТЕТ {B5392B}(1-ID){FFFFFF}, далее идёт отсчёт -
{FFFFFF}после чего бой между участниками начинается. Мероприятие делится на несколько этапов, где в итоге остается
{FFFFFF}один победитель.
{2980B9}Допустимое количество участников {FFFFFF}- {FF8C0B}От 50 до 200 участников{FFFFFF}.
{2980B9}Время проведения {FFFFFF}- Зависит от количества участников, {F09C13}от 40 до 80 минут{FFFFFF}.
{2980B9}Запреты {FFFFFF}- Строго запрещается {33CC2A}<AFK>{FFFFFF}, {335997}/sleep{FFFFFF}, посторонние предметы (Огнестрельное оружие, биты, катаны и т.д.)
{FFFFFF}использование {CC251C}аптечек / бронежилетов{FFFFFF}.
{2980B9}Схема мероприятия {FFFFFF}- (/awarp 42).]]
}
 

MLycoris

Режим чтения
Проверенный
1,828
1,871
Тоже самое,

lua:
script_name('EventHelper')
local SRCC = sampRegisterChatCommand
local color = 0x6596ef
local chcl = 0x9acd32
local bNotf, notf = pcall(import, "imgui_notf.lua")
local notf = import 'imgui_notf.lua'
local imgui = require 'mimgui' -- подключаем библиотеку мимгуи
local search = imgui.new.char[256]()
local encoding = require "encoding"
encoding.default = "CP1251"
cp12 = encoding.CP1251
local u8 = encoding.UTF8 -- это позволит нам писать задавать названия/текст на кириллице
local ffi = require 'ffi'
local pediks = {}
local sampev = require 'lib.samp.events'
local st = false
local font = {}
local new = imgui.new
local search = imgui.new.char[256]()
local events = {[[{2980B9}Название мероприятия {FFFFFF}- Уточки.
{2980B9}Суть мероприятия {FFFFFF}- Открывается WARP и собирается определенное количество участников, команда
{FFFFFF}администраторов встают на мостики над заливом с оружием в руках, цель игроков в заливе - выжить. Команда
{FFFFFF}администраторов в свою очередь должна убить всех кто попадется в их поле зрения.
{2980B9}Допустимое количество участников {FFFFFF}- {FF8C0B}От 50 до 200 участников{FFFFFF}.
{2980B9}Время проведения {FFFFFF}- Зависит от количества участников, {F09C13}от 10 до 20 минут{FFFFFF}.
{2980B9}Запреты {FFFFFF}-  Строго запрещается {33CC2A}<AFK> {FFFFFF}& использование {CC241C}аптечек / бронежилетов{FFFFFF}.
{2980B9}Схема мероприятия {FFFFFF}- (/awarp 16).]],
[[
 
{2980B9}Название мероприятия {FFFFFF}- Кулачные Бои.
{2980B9}Суть мероприятия {FFFFFF}-  Открывается WARP и собирается определенное количество участников. Когда участники
{FFFFFF}собраны, администратор вызывает одну пару формата "ID vs ID" и выдает им КАСТЕТ {B5392B}(1-ID){FFFFFF}, далее идёт отсчёт -
{FFFFFF}после чего бой между участниками начинается. Мероприятие делится на несколько этапов, где в итоге остается
{FFFFFF}один победитель.
{2980B9}Допустимое количество участников {FFFFFF}- {FF8C0B}От 50 до 200 участников{FFFFFF}.
{2980B9}Время проведения {FFFFFF}- Зависит от количества участников, {F09C13}от 40 до 80 минут{FFFFFF}.
{2980B9}Запреты {FFFFFF}- Строго запрещается {33CC2A}<AFK>{FFFFFF}, {335997}/sleep{FFFFFF}, посторонние предметы (Огнестрельное оружие, биты, катаны и т.д.)
{FFFFFF}использование {CC251C}аптечек / бронежилетов{FFFFFF}.
{2980B9}Схема мероприятия {FFFFFF}- (/awarp 42).]]
}
Один раз надо объявлять, сотри либо с 8 либо с 19 строки
 

SamuelGoldie

Участник
Автор темы
72
7
11 строку (там где cp12 = encoding.CP1251) поменяй на это
local u8 = encoding.UTF8

а лан увидел на следующей строке, что обьявил u8
Тоже самое

lua:
script_name('EventHelper')
local SRCC = sampRegisterChatCommand
local color = 0x6596ef
local chcl = 0x9acd32
local bNotf, notf = pcall(import, "imgui_notf.lua")
local notf = import 'imgui_notf.lua'
local imgui = require 'mimgui' -- подключаем библиотеку мимгуи
local encoding = require "encoding"
encoding.default = "CP1251"
local u8 = encoding.UTF8
local ffi = require 'ffi'
local pediks = {}
local sampev = require 'lib.samp.events'
local st = false
local font = {}
local new = imgui.new
local search = imgui.new.char[256]()