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

cfrfvvghh

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

why ega

РП игрок
Модератор
2,539
2,231
ошибка
150: '<eof>' expected near 'end'
Script died due to an error. (0B44507C)
обрезал название сборки и скрипта
А код

Только вставляй его через это
IMG_20230720_182555.jpg
 

cfrfvvghh

Участник
Автор темы
110
13
А код

Только вставляй его через это
Посмотреть вложение 208686
Код:
require "lib.moonloader"
local keys = require "vkeys"
local imgui = require "imgui"
local encoding = require "encoding"
local memory = require "memory"
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)


function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    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)

if main_window_state.v == false then
 imgui.Process = false
end

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

if isKeyJustPressed(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(arg)
  main_window_state.v = not main_window_state.v
  imgui.Process = 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(page.name) then currentPage = i end
    if (i ~= #pages) then imgui.SameLine() end -- для того, чтобы все кнопки со вкладками отображались горизонтально


end

pages[currentPage]:render()
   imgui.End()
end
 

why ega

РП игрок
Модератор
2,539
2,231
Код:
require "lib.moonloader"
local keys = require "vkeys"
local imgui = require "imgui"
local encoding = require "encoding"
local memory = require "memory"
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)


function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    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)

if main_window_state.v == false then
 imgui.Process = false
end

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

if isKeyJustPressed(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(arg)
  main_window_state.v = not main_window_state.v
  imgui.Process = 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(page.name) then currentPage = i end
    if (i ~= #pages) then imgui.SameLine() end -- для того, чтобы все кнопки со вкладками отображались горизонтально


end

pages[currentPage]:render()
   imgui.End()
end
На какую строчку указывает ошибка?
 

cfrfvvghh

Участник
Автор темы
110
13
В логе пишется, что ошибка на 150 строке, а в этот код лишь на 71
69 строка ошибка

Код:
69: attempt to index global 'pages' (a nil value)
stack traceback:

69: in main chunk

ps: ошибку исправил и больше не пишет ошибку, но окно не появляется (только мышь на экране)
 
Последнее редактирование:

why ega

РП игрок
Модератор
2,539
2,231
69 строка ошибка

Код:
69: attempt to index global 'pages' (a nil value)
stack traceback:

69: in main chunk

ps: ошибку исправил и больше не пишет ошибку, но окно не появляется (только мышь на экране)
Скинь ещё раз код