Помогите с кодом

h0los

Активный
Автор темы
260
45
скрипт крашит, либа плачет

Код:
[13:37:44.896434] (error)    minjuhelper.lua: D:\SAMP\moonloader\lib\carbJsonConfig.lua:224: 'ctype' cannot be indexed with 'number'
stack traceback:
    D:\SAMP\moonloader\lib\carbJsonConfig.lua: in function 'preptable2json'
    D:\SAMP\moonloader\lib\carbJsonConfig.lua:185: in function 'preptable2json'
    D:\SAMP\moonloader\lib\carbJsonConfig.lua:185: in function 'preptable2json'
    D:\SAMP\moonloader\lib\carbJsonConfig.lua:246: in function 'load'
    D:\SAMP\moonloader\minjuhelper.lua:164: in function <D:\SAMP\moonloader\minjuhelper.lua:162>
[13:37:44.897462] (error)    minjuhelper.lua: Script died due to an error. (16B8894C)



код:
Lua:
require('lib.moonloader')
local imgui = require('mimgui')
local addons = require("ADDONS")
local pie = require('imgui_piemenu')
local toast_ok, toast = pcall(import, 'lib\\mimtoasts.lua')
local ffi = require('ffi')
local jam = require('jamicons')
local font = {}
local vkeys = require('vkeys')
local cef = require('CEF Events')
local sampev = require('lib.samp.events')
local encoding = require 'encoding'
encoding.default = 'CP1251'
u8 = encoding.UTF8
local cjc = require('carbJsonConfig')
local settings = {
    onoffscript = imgui.new.bool(),
    krygmenu = imgui.new.bool(),
    infomenu = imgui.new.bool(),
    bindksiva = imgui.new.bool(),
    inputnickname = imgui.new.char[256](),
    inputsurname = imgui.new.char[256](),
    inputorganithation = imgui.new.char[256],
    inputonebindksiva = imgui.new.char[256](),
}
local new = imgui.new
local flags = imgui.WindowFlags

local win = new.bool()
local bindksiva = new.bool()
local infomenu = new.bool()
local piemenu = new.bool()

local page = 1

function sampev.onSendSpawn()
    local str = 'window.executeEvent(\'cef.modals.showModal\', \'["interactionSidebar",{"title": "пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ?","description":"пїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ","timer":3,"buttons":[{"title": "пїЅпїЅпїЅпїЅпїЅпїЅпїЅ","keyTitle": "ALT + F4","buttonColor": "#ffffff","backgroundColor": "rgba(171, 171, 171, 0.15)"}]}]\');'
    cef.visualCEF(str)
end

imgui.OnFrame(function() return piemenu[0] end, function(player)
    local cursorPosX, cursorPosY = getCursorPos()

    imgui.SetNextWindowPos(imgui.ImVec2(cursorPosX, cursorPosY), imgui.Cond.Always, imgui.ImVec2(0.5, 0.5))

    imgui.OpenPopup('PieMenu')

    if pie.BeginPiePopup('PieMenu', 1) then
        if pie.BeginPieMenu('Sub') then
            if pie.BeginPieMenu('Sub sub\nmenu') then
                if pie.PieMenuItem('SubSub') then end
                if pie.PieMenuItem('SubSub2') then end
                pie.EndPieMenu()
            end
            if pie.PieMenuItem('TestSub') then end
            if pie.PieMenuItem('TestSub2') then end
            pie.EndPieMenu()
        end
        pie.EndPiePopup()
    end
    
    imgui.EndPopup()
end)

imgui.OnFrame(function() return infomenu[0] end, function(player)
    imgui.Begin('##Window', infomenu, flags.NoResize + flags.AlwaysAutoResize + flags.NoTitleBar)
    imgui.Text(u8'Ваше имя: '..ffi.string(settings.inputnickname))
    imgui.Text(u8'Ваша фамилия: '..ffi.string(settings.inputsurname))
    imgui.End()
end).HideCursor = true

imgui.OnFrame(function() return bindksiva[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(690,400), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.Begin(u8'Редактирование бинда на удостоверение', bindksiva, flags.NoResize + flags.AlwaysAutoResize + flags.NoTitleBar)
    imgui.Text(u8'Редактирование бинда на удостоверение')
    imgui.SameLine()
    addons.CloseButton('MainClose', bindksiva, 20)
    if imgui.InputText('##1', settings.inputonebindksiva, 256) then
        settings()
    end
    imgui.SameLine()
    imgui.PushFont(font['jam'])
    if imgui.Button(jam.PLUS) then
        sampAddChatMessage('ты даун', ffffff)
    end
    imgui.PopFont()
    imgui.End()
end)

imgui.OnFrame(function() return win[0] end, function(player)
    imgui.SetNextWindowPos(imgui.ImVec2(690,400), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.Begin('MinJu helper', win, flags.NoResize + flags.AlwaysAutoResize)
    if addons.HeaderButton(page == 1, 'First') then
        page = 1
    end
    imgui.SameLine()
    if addons.HeaderButton(page == 2, u8'Settings') then
        page = 2
    end
    imgui.SameLine()
    if addons.HeaderButton(page == 3, 'Binder') then
        page = 3
    end
    imgui.SameLine()
    if addons.HeaderButton(page == 4, u8'About') then
        page = 4
    end

    if page == 1 then
        if addons.ToggleButton(u8'Включить скрипт', settings.onoffscript) then
            settings()
            toast.Show(u8'Скрипт включен!', toast.TYPE.INFO, 5)
        end
    elseif page == 2 then
        if imgui.InputText(u8'Введите ваше имя на английском', settings.inputnickname, 256) then
            settings()
        end
        if imgui.InputText(u8'Введите вашу фамилию на английском', settings.inputsurname, 256) then
            settings()
        end
        if imgui.InputText(u8'Введите тег вашей организации', settings.inputorganithation, 256) then
            settings()
        end
        imgui.Text(u8'Строчки выше обязательно заполнить!')
        if addons.ToggleButton(u8'Включить круговое меню', settings.krygmenu) then
            settings()
        end
        if addons.ToggleButton(u8'Включить информационное меню', settings.infomenu) then
            settings()
            infomenu[0] = not infomenu[0]
        end
    elseif page == 3 then
        imgui.Text(u8'Показать удостоверение')
        imgui.SameLine()
        if addons.ToggleButton(u8' ', settings.bindksiva) then
            settings()
        end
        imgui.SameLine()
        imgui.PushFont(font['jam'])
        if addons.StateButton(settings.bindksiva[0], jam.PENCIL) then
            bindksiva[0] = not bindksiva[0]
        end
        imgui.PopFont()
    elseif page == 4 then
        imgui.TextWrapped(u8'Скрипт написан для упрощения работы в МЮ на таком проекте как Arizona RolePlay')
        imgui.Text(u8'Связь со мной: TG - @holosdev')
        imgui.Text('DS - @holosdev')
        imgui.Text('Github - @wholos')
    end
    imgui.TextDisabled('by holos')
    imgui.End()
end)

imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil
    local font_config = imgui.ImFontConfig()
    font_config.SizePixels = 20;
    local iconRanges = new.ImWchar[3](jam.min_range, jam.max_range, 0)
    font['jam'] = imgui.GetIO().Fonts:AddFontFromMemoryCompressedBase85TTF(jam.get_font_data_base85(), 24, font_config, iconRanges)
end)

function main()
    while not isSampAvailable() do wait(0) end
    cjc.load(getWorkingDirectory().."\\config\\mjhelper.json",settings)
    settings()
    sampRegisterChatCommand('mj', function() win[0] = not win[0] end)
    if toast_ok then
        toast.Show(u8'MinJu Helper загружен!', toast.TYPE.OK, 5)
    else
        sampAddChatMessage('MinJu Helper загружен! У вас не установлена библиотека mimtoasts.lua', -1)
    end
    while true do wait(0)
        if wasKeyPressed(0x04) then
            piemenu[0] = not piemenu[0]
        end
        if wasKeyPressed(0x72) then
            win[0] = not win[0]
        end
    end
end