крашит скрипт

idea64

Участник
Автор темы
52
5
Версия MoonLoader
.026-beta
пишу команду для открытия окна, и игру крашит
Lua:
            imgui.SetNextWindowPos(imgui.ImVec2(sizeX / 2, sizeY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
            imgui.SetNextWindowSize(imgui.ImVec2(500, 428), imgui.Cond.FirstUseEver)
            imgui.Begin('##settingsss', _, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoTitleBar)
            imgui.BeginGroup()
            local scr_p = imgui.GetCursorPos()
            local scr_s = imgui.CalcTextSize('ses')
            imgui.TextColored(imgui.ImVec4(1.00, 0.28, 0.28, 1.00), 'es')
            local author_l = imgui.CalcTextSize('es').x
            local orig_pos = imgui.GetCursorPos()
            imgui.SetCursorPos( imgui.ImVec2(scr_p.x + scr_s.x - author_l, scr_p.y + scr_s.y - 5) )
            imgui.TextColored(imgui.ImVec4(0.50, 0.50, 0.50, 0.50), 'es')
            if imgui.IsItemClicked() then os.execute('es') end
            imgui.SetCursorPos(orig_pos)

            if imgui.ToggleButton('##State_main', state) then
                ini.OSMmain.state = state.v
            end
            imgui.SameLine(nil, 0)
            imgui.TextColored(state.v and imgui.ImVec4(1.00, 0.40, 0.40, 1.00) or imgui.ImVec4(0.60, 0.60, 0.60, 0.30), u8(state.v and 'Включено' or 'Выключено'))
            imgui.Spacing()
            if imgui.Button(u8'Местоположение', imgui.ImVec2(150, 20)) then
                changePosition()
            end

            imgui.PushItemWidth(150)
            if imgui.DragInt('##Delay', delay, 100, 3000, 30000, u8((delay.v / 1000) .. ' секунд')) then
                if delay.v < 3000 then delay.v = 3000 end
                if delay.v > 30000 then delay.v = 30000 end
                ini.OSMmain.delay = delay.v
            end
            imgui.Hint('hing_drag', u8'Время, спустя которое будет обновляться список\nЗажать и передвигать мышь')
            imgui.PopItemWidth()

            local ww = imgui.GetWindowWidth()
            imgui.SetCursorPos( imgui.ImVec2(ww - 25, 25) )
            if imgui.CloseButton(6) then
                saveSettings()
                bools.settings.v = false
            end
        imgui.EndGroup()
        imgui.Separator()
        imgui.BeginGroup()
            imgui.TextColored(imgui.ImVec4(1.00, 0.40, 0.40, 1.00), u8'Шрифт:')
            imgui.PushItemWidth(130)
            imgui.Hint('font_hint_name', u8'Название шрифта')
            if not imgui.IsItemActive() and #ffi.string(font_input) == 0 then
                imgui.StrCopy(font_input, u8'Arial')
            end
            if imgui.SliderInt('##FontSize', font_size, 1, 25, u8'%d') then
                if font_size.v < 1 then font_size.v = 1 end
                if font_size.v > 25 then font_size.v = 25 end
                ini.font.size = font_size.v
                font = renderCreateFont(ini.font.name, ini.font.size, ini.font.flag)
            end
            imgui.Hint('font_hint_size', u8'Размер шрифта')
            if imgui.SliderInt('##FontFlag', font_flag, 1, 25, u8'%d') then
                if font_flag.v < 1 then font_flag.v = 1 end
                if font_flag.v > 25 then font_flag.v = 25 end
                ini.font.flag = font_flag.v
                font = renderCreateFont(ini.font.name, ini.font.size, ini.font.flag)
            end
            imgui.Hint('font_hint_flag', u8'Флаг шрифта')
            if imgui.SliderInt('##FontOffset', font_offset, 1, 30, u8'%d') then
                if font_offset.v < 1 then font_offset.v = 1 end
                if font_offset.v > 30 then font_offset.v = 30 end
                ini.font.offset = font_offset.v
            end
            imgui.Hint('font_hint_offset', u8'Расстояние между строками')
            if imgui.SliderInt('##FontAlpha', font_alpha, 1, 100, u8'%d%%') then
                if font_alpha.v  < 1 then font_alpha.v  = 1 end
                if font_alpha.v  > 100 then font_alpha.v  = 100 end
                ini.font.alpha = font_alpha.v * 2.55
            end
            imgui.Hint('font_hint_alpha', u8'Непрозрачность')
            imgui.PopItemWidth()

            imgui.PushStyleVar(imgui.StyleVar.FrameRounding, 2.0)
            if imgui.BoolButton(ini.OSMmain.align == 1, imgui.ImVec2(38, 20)) then
                ini.OSMmain.align = 1
            end
            imgui.SameLine()
            if imgui.BoolButton(ini.OSMmain.align == 2, imgui.ImVec2(38, 20)) then
                ini.OSMmain.align = 2
            end
            imgui.SameLine()
            if imgui.BoolButton(ini.OSMmain.align == 3, imgui.ImVec2(38, 20)) then
                ini.OSMmain.align = 3
            end
            imgui.PopStyleVar()
        imgui.EndGroup()
        imgui.SameLine(nil, 20)
        imgui.BeginGroup()
            imgui.TextColored(imgui.ImVec4(1.00, 0.40, 0.40, 1.00), u8'Отображение:')
            if imgui.ToggleButton(u8'Рабочая форма', show.uniform) then
                ini.show.uniform = show.uniform.v
            end
            imgui.Question('hint_uniform', u8('Показывать кто из сотрудников в форме, а кто нет\n(Аналог /members)'))
            if imgui.ToggleButton(u8'Номер должности', show.rank) then
                ini.show.rank = show.rank.v
            end
            if imgui.ToggleButton(u8'ID Сотрудника', show.id) then
                ini.show.id = show.id.v
            end
            if imgui.ToggleButton(u8'Время в АФК', show.afk) then
                ini.show.afk = show.afk.v
            end
            if imgui.ToggleButton(u8'Кол-во варнов', show.warn) then
                ini.show.warn = show.warn.v
            end
            if imgui.ToggleButton(u8'Выполненные квесты', show.quests) then
                ini.show.quests = show.quests.v
            end
            if imgui.ToggleButton(u8'Отображать муты', show.mute) then
                ini.show.mute = show.mute.v
            end
            imgui.Question('hint_mute', u8('У сотрудников, на которых наложен организационный мут\nбудет пометка MUTED в списке'))
            if imgui.ToggleButton(u8'Сотрудники рядом', show.near) then
                ini.show.near = show.near.v
            end
            imgui.Question('hint_near', u8('Сотрудники находящиеся в вашей зоне прорисовки\nбудут отмечатся меткой [Р] в списке'))
        imgui.EndGroup()
        imgui.SameLine(nil, 20)
        imgui.BeginGroup()
            imgui.TextColored(imgui.ImVec4(1.00, 0.40, 0.40, 1.00), u8'Цвета:')
            if imgui.ColorEdit4('##TitleColor', col.title, imgui.ColorEditFlags.NoInputs + imgui.ColorEditFlags.NoLabel + imgui.ColorEditFlags.NoAlpha) then
                local c = imgui.ImVec4(col.title[0],  col.title[1], col.title[2],  col.title[3])
                local argb = imgui.ColorConvertFloat4ToARGB(c)
                ini.OSMstyle.col_title = argb
            end
            imgui.SameLine()
            imgui.Text(u8'Заголовок')
            if imgui.ColorEdit4('##DefaultColor', col.default, imgui.ColorEditFlags.NoInputs + imgui.ColorEditFlags.NoLabel + imgui.ColorEditFlags.NoAlpha) then
                local c = imgui.ImVec4(col.default[0], col.default[1], col.default[2], col.default[3])
                ini.OSMstyle.col_default = imgui.ColorConvertFloat4ToARGB(c)
            end
            imgui.SameLine()
            imgui.Text(u8'Стандартный')
            if imgui.ColorEdit4('##NoWorkColor', col.no_work, imgui.ColorEditFlags.NoInputs + imgui.ColorEditFlags.NoLabel + imgui.ColorEditFlags.NoAlpha) then
                local c = imgui.ImVec4(col.no_work[0], col.no_work[1], col.no_work[2], col.no_work[3])
                ini.OSMstyle.col_no_work = imgui.ColorConvertFloat4ToARGB(c)
            end
            imgui.SameLine()
            imgui.Text(u8'Без формы')
            if imgui.ColorEdit4('##AFKMaxColor', col.afk_max, imgui.ColorEditFlags.NoInputs + imgui.ColorEditFlags.NoLabel + imgui.ColorEditFlags.NoAlpha) then
                local c = imgui.ImVec4(col.afk_max[0], col.afk_max[1], col.afk_max[2], col.afk_max[3])
                ini.OSMstyle.col_afk_max = imgui.ColorConvertFloat4ToARGB(c)
            end
            imgui.SameLine()
            imgui.Text(u8'AFK Max')
            if imgui.ColorEdit4('##NoteColor', col.note, imgui.ColorEditFlags.NoInputs + imgui.ColorEditFlags.NoLabel + imgui.ColorEditFlags.NoAlpha) then
                local c = imgui.ImVec4(col.note[0], col.note[1], col.note[2], col.note[3])
                ini.OSMstyle.col_note = imgui.ColorConvertFloat4ToARGB(c)
            end
            imgui.SameLine()
            imgui.Text(u8'Заметки')
            if imgui.ColorEdit4('##ChatColor', oth.chatcolor, imgui.ColorEditFlags.NoInputs + imgui.ColorEditFlags.NoLabel + imgui.ColorEditFlags.NoAlpha) then
                local c = imgui.ImVec4(oth.chatcolor[0],  oth.chatcolor[1], oth.chatcolor[2],  oth.chatcolor[3])
                ini.other.chatcolor = imgui.ColorConvertFloat4ToARGB(c)
            end
            imgui.SameLine()
            imgui.Text(u8'Чат организации')
        imgui.EndGroup()
        imgui.Separator()
        imgui.BeginGroup()
            imgui.AddCursorPos(100, 3)
            if imgui.StringButton(u8'Ранг в чате', oth.chatrank) then
                ini.other.chatrank = oth.chatrank.v
            end
            imgui.Hint('hint_chatrank', u8('В чате организации будет писаться ранг сотрудника (цифрой)\nПример: [R | 10] Адмирал Sam_Mason[777]: Все в строй!'))
            imgui.SameLine(280)
            if imgui.StringButton(u8'Ранг на груди', oth.bodyrank) then
                ini.other.bodyrank = oth.bodyrank.v
                sampAddChatMessage('Что бы информация обновилась - перезайдите в зону прорисовки!', 0xFF6060)
            end
            imgui.Hint('hint_bodyrank', u8('К сотруднику будет прикреплён 3DText с его рангом'))
        imgui.EndGroup()
        imgui.Separator()
        imgui.BeginGroup()
            imgui.AddCursorPos(55, 0)
            imgui.TextColored(imgui.ImVec4(1.00, 0.28, 0.28, 1.00), u8'Отображаемые должности')
            imgui.AddCursorPos(0, 3)
            for i = 1, 10 do
                imgui.BeginGroup()
                local pos = imgui.GetCursorPos()
                if imgui.RadioButton(u8'##rank:' .. i, ini.ranks.v, 40) then
                    ini.ranks.v = not ini.ranks.v
                end
                local size = imgui.GetItemRectSize()
                local len = imgui.CalcTextSize(tostring(i)).x
                imgui.SetCursorPosX(pos.x + (size.x - len) / 2)
                imgui.TextColored(ini.ranks.v and imgui.ImVec4(1.00, 0.28, 0.28, 1.00) or imgui.ImVec4(0.50, 0.50, 0.50, 0.50), tostring(i))
                imgui.EndGroup()
                imgui.SameLine()
            end
        imgui.EndGroup()
        imgui.SameLine()
        local p = imgui.GetCursorScreenPos()
        imgui.GetWindowDrawList():AddLine(p, imgui.ImVec2(p.x, p.y + 71), 0xFF505050)
        imgui.SameLine(nil, 17)
        imgui.BeginGroup()

            imgui.AddCursorPos(30, -1)
            imgui.TextColored(imgui.ImVec4(1.00, 0.28, 0.28, 1.00), u8'Максимальное АФК')

            imgui.PushItemWidth(-1)
            if imgui.SliderInt('##AFKMax_low', afk_max_l, 0, 3599, u8(afk_max_l.v == 0 and 'Не учитывать' or '%d секунд')) then
                if afk_max_l.v < 0 then afk_max_l.v = 0 end
                if afk_max_l.v > 3599 then afk_max_l.v = 3599 end
                ini.OSMmain.afk_max_l = afk_max_l.v
            end
            imgui.Hint('hint_slider_int_1', u8('Младшие ранги (1 - 4)\nCTRL + ПКМ - ввести вручную'))

            if imgui.SliderInt('##AFKMax_High', afk_max_h, 0, 3599, u8(afk_max_h.v == 0 and 'Не учитывать' or '%d секунд')) then
                if afk_max_h.v < 0 then afk_max_h.v = 0 end
                if afk_max_h.v > 3599 then afk_max_h.v = 3599 end
                ini.OSMmain.afk_max_h = afk_max_h.v
            end
            imgui.Hint('hint_slider_int_2', u8('Старшие ранги (5 - 10)\nCTRL + ПКМ - ввести вручную'))
            imgui.PopItemWidth()

        imgui.EndGroup()
        imgui.End()

ап
 
Последнее редактирование: