вопрос по имгуи разделам

cfrfvvghh

Участник
Автор темы
110
13
Версия MoonLoader
.026-beta
сделал на имгуи разделы с помощью : https://www.blast.hk/threads/54277/post-490840
но столкнулся с проблемой! я не могу в любом варианте их сделать в колонке сверху ибо у них какие-то замороки. можете помочь
 

qdIbp

Автор темы
Проверенный
1,386
1,141
Пробуй

Lua:
require("lib.moonloader")
local k = require("vkeys")
local imgui = require("imgui")
local memory = require("memory")

local encoding = require("encoding")
encoding.default = "CP1251"
u8 = encoding.UTF8

local sampev = require ('lib.samp.events')
local themes = import("resource/imgui_themes.lua")

local tag = "[admin tools script]: "

local main_window_state = imgui.ImBool(false)
local text_buffer = imgui.ImBuffer(256)

local pages = {
    {
        name = "1 вкладка", render = function()
            imgui.Text(u8"вкладка номер один")
        end
    },
    {
        name = "2 вкладка", render = function()
            imgui.Button(u8"кнопка во второй вкладке")
        end
    }
}

local currentPage = 1

function main()
    while not isSampAvailable() do wait(100) end

        sampAddChatMessage(tag .. "{FFFFFF}успешно загружен!", 0xB23AD4)
        sampRegisterChatCommand("cmenu", cmd_cmenu)

        imgui.Process = false

        imgui.SwitchContext()
        --themes.SwitchColorTheme(8)
 
    while true do wait(0)
        imgui.Process = main_window_state.v

        _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
        nick = sampGetPlayerNickname(id)
        fps = memory.getfloat(0xB7CB50, true)

        if isKeyJustPressed(k.VK_DELETE) then
            sampAddChatMessage(tag .. "{FFFFFF}Ваш ID: " .. id, 0xB23AD4)
            sampAddChatMessage(tag .. "{FFFFFF}Ваш NickName: " .. nick, 0xB23AD4)
            sampAddChatMessage(tag .. "{FFFFFF}Ваш Fps: " .. fps, 0xB23AD4)
        end

    end
end   

function cmd_cmenu()
    main_window_state.v = not main_window_state.v
end

function imgui.OnDrawFrame()
    local X, Y = getScreenResolution()
    imgui.SetNextWindowSize(imgui.ImVec2(630, 320), imgui.Cond.FirstUseEver)
    imgui.SetNextWindowPos(imgui.ImVec2(X / 2, Y / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.Begin("Admin Tools", main_window_state)

        for i, page in ipairs(pages) do
            if imgui.Button( u8(page.name) ) then
                currentPage = i
            end
            imgui.SameLine()
            pages[currentPage]:render()
        end
   imgui.End()
end

А
Lua:
function message(text, tag, clr) -- создается функция(переменная для текста, переменная для тега, цвет)
    text,tag,clr = tostring(text), tag or '', clr or -1
    for item in string.gmatch(text,'[^\r\n]+') do
        sampAddChatMessage(tag..' '..item, clr)
    end
end
страшно тебе давать, не известно что сделаешь еще с ней
 
  • Ха-ха
Реакции: why ega

cfrfvvghh

Участник
Автор темы
110
13
Ты сам нихуя не хочешь разбираться, тебе Ега 3 страницы помогал, а ты всё те же вопросы задавал, вместо того, чтобы самому попытаться решить проблему.
Разбирай чужие скрипты, где есть такое
я до создании темы сидел ещё целый день и пыиался решить проблему
 
  • Эм
  • Bug
Реакции: ChromiusJ и qdIbp

cfrfvvghh

Участник
Автор темы
110
13
Пробуй

Lua:
require("lib.moonloader")
local k = require("vkeys")
local imgui = require("imgui")
local memory = require("memory")

local encoding = require("encoding")
encoding.default = "CP1251"
u8 = encoding.UTF8

local sampev = require ('lib.samp.events')
local themes = import("resource/imgui_themes.lua")

local tag = "[admin tools script]: "

local main_window_state = imgui.ImBool(false)
local text_buffer = imgui.ImBuffer(256)

local pages = {
    {
        name = "1 вкладка", render = function()
            imgui.Text(u8"вкладка номер один")
        end
    },
    {
        name = "2 вкладка", render = function()
            imgui.Button(u8"кнопка во второй вкладке")
        end
    }
}

local currentPage = 1

function main()
    while not isSampAvailable() do wait(100) end

        sampAddChatMessage(tag .. "{FFFFFF}успешно загружен!", 0xB23AD4)
        sampRegisterChatCommand("cmenu", cmd_cmenu)

        imgui.Process = false

        imgui.SwitchContext()
        --themes.SwitchColorTheme(8)
 
    while true do wait(0)
        imgui.Process = main_window_state.v

        _, id = sampGetPlayerIdByCharHandle(PLAYER_PED)
        nick = sampGetPlayerNickname(id)
        fps = memory.getfloat(0xB7CB50, true)

        if isKeyJustPressed(k.VK_DELETE) then
            sampAddChatMessage(tag .. "{FFFFFF}Ваш ID: " .. id, 0xB23AD4)
            sampAddChatMessage(tag .. "{FFFFFF}Ваш NickName: " .. nick, 0xB23AD4)
            sampAddChatMessage(tag .. "{FFFFFF}Ваш Fps: " .. fps, 0xB23AD4)
        end

    end
end  

function cmd_cmenu()
    main_window_state.v = not main_window_state.v
end

function imgui.OnDrawFrame()
    local X, Y = getScreenResolution()
    imgui.SetNextWindowSize(imgui.ImVec2(630, 320), imgui.Cond.FirstUseEver)
    imgui.SetNextWindowPos(imgui.ImVec2(X / 2, Y / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.Begin("Admin Tools", main_window_state)

        for i, page in ipairs(pages) do
            if imgui.Button( u8(page.name) ) then
                currentPage = i
            end
            imgui.SameLine()
            pages[currentPage]:render()
        end
   imgui.End()
end

А
Lua:
function message(text, tag, clr) -- создается функция(переменная для текста, переменная для тега, цвет)
    text,tag,clr = tostring(text), tag or '', clr or -1
    for item in string.gmatch(text,'[^\r\n]+') do
        sampAddChatMessage(tag..' '..item, clr)
    end
end
страшно тебе давать, не известно что сделаешь еще с ней
работает, но проблема и даже не от меня! этот скрипт пишет по два раза, пример: 1 раздел и одно слово: тест
пишет два слова : тест