imgui.Process БЕСИТ!

ReoGenT

Участник
Автор темы
90
6
Версия MoonLoader
.026-beta
Это показывается нормально:
sa-mp-128.png


А вот с другими проблема: (ОНИ ДОЛЖНЫ БЫТЬ ПО СЕРЕДИТЕ!) (C offwarn такая же проблема, только когда я ее активирую она по середине, но теперь то меню на скрине сверху тоже по середине)

sa-mp-129.png

Lua:
function imgui.OnDrawFrame()
    if remenu.v then
        if isKeyJustPressed(key.VK_RBUTTON) and not sampIsChatInputActive() and not sampIsDialogActive() then
            imgui.ShowCursor = not imgui.ShowCursor
        end
        local sw, sh = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sw / 8.3, sh / 1.45), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(269, 394), imgui.Cond.FirstUseEver)
        imgui.Begin(u8' ', remenu, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove + imgui.WindowFlags.NoTitleBar + imgui.WindowFlags.MenuBar)
            imgui.BeginMenuBar()
                if imgui.MenuItem(u8'Основное') then
                    tag = 0
                    remenu.v = true
                end
                if imgui.MenuItem(u8'Наказание') then
                    tag = 1
                    remenu.v = true
                end
            imgui.EndMenuBar()
        if tag == 0 then
            if imgui.Button(u8'GOTOSP', imgui.ImVec2(80, 80)) then
                sampSendChat('/gotosp '..spec_id)
            end
            imgui.SameLine(94)
            if imgui.Button(u8'GMTEST', imgui.ImVec2(80, 80)) then
                sampSendChat('/gm '..spec_id)
            end
            imgui.SameLine(180)
            if imgui.Button(u8'STATS', imgui.ImVec2(80, 80)) then
                sampSendChat('/getstats '..spec_id)
            end
            
            if imgui.Button(u8'GETIP', imgui.ImVec2(80, 80)) then
                sampSendChat('/getip '..spec_id)
            end
            imgui.SameLine(94)
            if imgui.Button(u8'DM', imgui.ImVec2(80, 80)) then
                sampSendChat('/prison '..spec_id..' 30 ДМ')
            end
            imgui.SameLine(180)
            if imgui.Button(u8'DB', imgui.ImVec2(80, 80)) then
                sampSendChat('/prison '..spec_id..' 30 ДБ')
            end
            
            if imgui.Button(u8'SBIV', imgui.ImVec2(80, 80)) then
                sampSendChat('/prison '..spec_id..' 10 Сбив (Чат)')
            end
            imgui.SameLine(94)
            if imgui.Button(u8'Человек из\nЧС проекта', imgui.ImVec2(80, 80)) then
                sampSendChat('/iban '..spec_id..' ЧС сервера')
            end
            imgui.SameLine(180)
            if imgui.Button(u8'SLAP', imgui.ImVec2(80, 80)) then
                sampSendChat('/slap '..spec_id..' ЧС сервера')
            end
            if imgui.Button(u8'REOFF', imgui.ImVec2(253, 25)) then
                sampSendChat('/re')
                remenu.v = false
            end
            if imgui.Checkbox(u8'Включить меню управлением игроком', infmen) then
                remen.v = not remen.v
            end
        end
        if tag == 1 then
            imgui.TextColoredRGB('Причина кика:')
            imgui.InputText(u8'##1', kick)
            if imgui.Button(u8'Кикнуть') then
                sampSendChat(u8:decode('/kick '..spec_id..' '..kick.v))
            end
            imgui.TextColoredRGB('————————————————————————————————')
            imgui.TextColoredRGB('Забанить за читы')
            if imgui.Button(u8'На 7 дней') then
                sampSendChat('/ban '..spec_id..' 7 Читы')
            end
            imgui.SameLine(77)
            if imgui.Button(u8'На 14 дней') then
                sampSendChat('/ban '..spec_id..' 14 Читы')
            end
            imgui.SameLine(152)
            if imgui.Button(u8'На 30 дней') then
                sampSendChat('/ban '..spec_id..' 30 Читы')
            end
            if imgui.Button(u8'По IP адресу') then
                sampSendChat('/iban '..spec_id..' Читы')
            end
            imgui.TextColoredRGB('————————————————————————————————')
            imgui.TextColoredRGB('Введите время в 1 поле!\nВведите причину во 2 поле!')
            imgui.PushItemWidth(50)
            imgui.InputText(u8'##3', ban)
            imgui.PopItemWidth()
            imgui.SameLine(83)
            imgui.PushItemWidth(130)
            imgui.InputText(u8'##2', ban2)
            imgui.PopItemWidth()
            if imgui.Button(u8'Забанить') then
                sampSendChat(u8:decode('/ban '..spec_id..' '..ban.v..' '..ban2.v))
            end
            imgui.TextColoredRGB('————————————————————————————————')
            if imgui.Button(u8'TK') then
                sampSendChat('/warn '..spec_id..' TK')
            end
            imgui.SameLine(33)
            if imgui.Button(u8'СК') then
                sampSendChat('/warn '..spec_id..' СК')
            end
            imgui.SameLine(58)
            if imgui.Button(u8'ПГ') then
                sampSendChat('/warn '..spec_id..' ПГ')
            end
            imgui.SameLine(82)
            if imgui.Button(u8'РК') then
                sampSendChat('/warn '..spec_id..' РК')
            end
            if imgui.Button(u8'Неадекват') then
                sampSendChat('/warn '..spec_id..' Неадекват')
            end
            if imgui.Button(u8'ДМ в ЗЗ') then
                sampSendChat('/warn '..spec_id..' ДМ в ЗЗ')
            end
            if imgui.Button(u8'Обсуждение действий адм.') then
                sampSendChat('/warn '..spec_id..' Обсуждение действий адм.')
            end
        end
        imgui.End()
    end
    
    if remen.v then
            local resX, resY = getScreenResolution()
            local sizeX, sizeY = 500, 100 -- WINDOW SIZE
            imgui.SetNextWindowPos(imgui.ImVec2(resX / 2 - sizeX / 3, resY / 1.15 - sizeY / 3), imgui.Cond.FirstUseEver)
            imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
            imgui.Begin('2', remen, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove + imgui.WindowFlags.NoTitleBar)
            imgui.TextColoredRGB('Поставить игроку ХП:')
            imgui.SameLine()
            imgui.TextColoredRGB('| Поставить игроку скин:')
            imgui.PushItemWidth(50)
            imgui.InputText('##1', sethp)
            imgui.PopItemWidth()
            imgui.SameLine(150)
            imgui.PushItemWidth(50)
            imgui.InputText('##2', setskin)
            imgui.PopItemWidth()
            if imgui.Button(u8'Поставить') then
                sampSendChat('/sethp '..spec_id..' '..sethp.v)
            end
            imgui.SameLine(150)
            if imgui.Button(u8'Поставить') then
                sampSendChat('/setskin '..spec_id..' '..setskin.v)
            end
            imgui.End()
        end
    
    if remenu.v then
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 150, 250 -- WINDOW SIZE
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 1.1 - sizeX / 3, resY / 2 - sizeY / 3), imgui.Cond.FirstUseEver)
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        imgui.Begin('1', remenu, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove + imgui.WindowFlags.NoTitleBar)
        imgui.TextColoredRGB('ID игрока: '.. spec_id)
        imgui.TextColoredRGB('Ник: '..sampGetPlayerNickname(spec_id))
        imgui.TextColoredRGB('Жизни: '..sampGetPlayerHealth(spec_id))
        imgui.TextColoredRGB('Армор: '..sampGetPlayerArmor(spec_id))
        imgui.TextColoredRGB('Уровень: '..sampGetPlayerScore(spec_id))
        imgui.TextColoredRGB('Пинг: '..sampGetPlayerPing(spec_id))
        imgui.End()
    end
    
    if remenu2.v then
        local sw, sh = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sw / 2.6, sh / 2.6), imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(300, 200))
        imgui.Begin(u8' ', remenu2, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove + imgui.WindowFlags.NoTitleBar)
        imgui.SetCursorPos(imgui.ImVec2(51, 1))
        imgui.TextColoredRGB('{FF0000} Выдать варн игроку в оффлайне')
        imgui.InputText(u8'Имя игрока##1', warnoff)
        imgui.InputText(u8'Причина##1', warnoff2)
        imgui.SetCursorPos(imgui.ImVec2(4, 170))
        if imgui.Button(u8'Закрыть', imgui.ImVec2(150, 25)) then
            imgui.Process = not remenu2.v
            remenu2.v = false
        end
        imgui.SetCursorPos(imgui.ImVec2(158, 170))
        if imgui.Button(u8'Выдать варн', imgui.ImVec2(138, 25)) then
            sampSendChat(u8:decode('offwarn '..warnoff.v..' '..warnoff2.v))
            imgui.Process = not remenu2.v
            remenu2.v = false
        end
        imgui.End()
    end
    
    
    if remenu3.v then
        local sw, sh = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(300, 200), imgui.Cond.FirstUseEver)
        imgui.Begin(u8' ', offban, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove + imgui.WindowFlags.NoTitleBar)
        imgui.SetCursorPos(imgui.ImVec2(51, 1))
        imgui.TextColoredRGB('{FF0000} Выдать бан игроку в оффлайне')
        imgui.InputText(u8'Имя игрока##1', banoff)
        imgui.InputText(u8'Время##1', banoff1)
        imgui.InputText(u8'Причина##1', banoff2)
        imgui.SetCursorPos(imgui.ImVec2(4, 170))
        if imgui.Button(u8'Закрыть', imgui.ImVec2(150, 25)) then
            imgui.Process = not remenu3.v
            remenu3.v = false
        end
        imgui.SetCursorPos(imgui.ImVec2(158, 170))
        if imgui.Button(u8'Выдать бан', imgui.ImVec2(138, 25)) then
            sampSendChat(u8:decode('offban '..banoff.v..' '..banoff1.v..' '..banoff2.v))
            imgui.Process = not remenu3.v
            remenu3.v = false
        end
        imgui.End()
    end
    
    if givweapon.v then
        local sw, sh = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(250, 400), imgui.Cond.FirstUseEver)
        imgui.Begin(u8'Выдача оружия', цуфзщт, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoResize + imgui.WindowFlags.NoMove)
        imgui.End()
    end
    
end


function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    theme()
    
    sampRegisterChatCommand('offwarn', offwarn)
    sampRegisterChatCommand('offban', offban)
    sampRegisterChatCommand('re', test)

    while true do
        wait(0)
    end
end
        
        

function test(param)
local id = string.match(param, "(%d+)")
    if id == nil then
        sampSendChat("/re")
        imgui.Process = not remenu.v
        remenu.v = false
    else
        lua_thread.create(function()
        sampSendChat("/re "..id)
        sampAddChatMessage('Чтобы поворачивать камерой нажмите на ЛКМ! Чтобы показать курсор так же нажмите на ЛКМ!', -1)
        remenu.v = true
        imgui.Process = remenu.v
        end)
    end
end

function offwarn()
    remenu2.v = true
    imgui.Process = remenu2.v
end

function offban()
    remenu3.v = true
    imgui.Process = remenu3.v
end

function weapon()
    givweapon.v = true
end
 

Liquit

Известный
279
107
  • Bug
Реакции: zTechnology

ReoGenT

Участник
Автор темы
90
6
честно говоря, из того что ты написал, я понял по минимуму.

что показывается нормально?
какой offwarn?
объясни нормально, нихрена не понятно
Если кароче, то мне нужно чтобы все меню в моем скрипте работали отдельно от других меню. Мне нужно чтобы я мог нормально открывать и закрывать КОМАНДОЙ В САМПЕ одно меню и так же открывать и закрывать другое меню.
 

Liquit

Известный
279
107
Если кароче, то мне нужно чтобы все меню в моем скрипте работали отдельно от других меню. Мне нужно чтобы я мог нормально открывать и закрывать КОМАНДОЙ В САМПЕ одно меню и так же открывать и закрывать другое меню.
ну так кароче 261, 266 строку к чертям
в бесконечном цикле просто фигачишь(после 236)
imgui.Process = remenu.v or remen.v or remenu2.v or remenu3.v givweapon.v

крайне рекомендую задуматься над изменением названий некоторых переменных, из своего опыта скажу, что эти двоечки, троечки к добру не приведут
 

ReoGenT

Участник
Автор темы
90
6
ну так кароче 261, 266 строку к чертям
в бесконечном цикле просто фигачишь(после 236)
imgui.Process = remenu.v or remen.v or remenu2.v or remenu3.v givweapon.v

крайне рекомендую задуматься над изменением названий некоторых переменных, из своего опыта скажу, что эти двоечки, троечки к добру не приведут
Смотри, после того когда я открыл меню offban захотел зайти в remenu то получилось вот это:
sa-mp-128.png

А должно быть вот это:
sa-mp-128.png
 

ReoGenT

Участник
Автор темы
90
6

ReoGenT

Участник
Автор темы
90
6
MenuItem надо использовать в mimgui так, как ты его должен использовать в imgui
меня бесит то что в мимгуи мигает ебучий курсор, я знаю что это из-за InputText но не знаю как пофиксить

MenuItem надо использовать в mimgui так, как ты его должен использовать в imgui
Поэтому я не перехожу на мимгуи потому что мигает ебучий курсор, я не могу скрыть и показать курсор мыши этим скриптом:
Lua:
if isKeyJustPressed(key.VK_RBUTTON) and not sampIsChatInputActive() and not sampIsDialogActive() then
            player.ShowCursor = not player.ShowCursor
end