- 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()
ап
Последнее редактирование: