Исходник [ImGui] Pie

FYP

Известный
Администратор
1,758
5,721
Никто не может подсказать, как его всё таки компилировать? ImGUI подключён, но при попытке скомпилить ругается на undefined ImGuiState. Пытался гуглить старые версии ImGui, но и там чёт нету
этот код для очень старой версии, сейчас эта структура называется ImGuiContext, но одного переименования может быть недостаточно, т.к. могут присутствовать и другие изменения.
и да, это раздел луа, а не с++.
 

w0odcr3st

Новичок
14
1
этот код для очень старой версии, сейчас эта структура называется ImGuiContext, но одного переименования может быть недостаточно, т.к. могут присутствовать и другие изменения.
и да, это раздел луа, а не с++.
Случайно не знаешь, какой версии?
 

WebDim

Участник
59
3
он и так рабочий уже
У меня по чему то появляется тока мышь, самого меню нет.
Lua:
local imgui = require 'imgui'
local pie = require 'imgui_piemenu'
local require "lib.moonloader"

local activ_menu = false
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(1000) end
    sampAddChatMessage("• {FFC800}[Подсказка] {ffffff}Menu загружен...", 0xffffff)
    sampRegisterChatCommand("xmenu", xmenu)
    while true do
        wait(0)
        if activ_menu == true then
            imgui.Process = activ_menu
        end
    end
end

function imgui.OnDrawFrame()
    if imgui.IsWindowHovered() and imgui.IsMouseClicked(1) then
        imgui.OpenPopup('PieMenu')
    end
    if pie.BeginPiePopup('PieMenu', 1) then
        if pie.PieMenuItem('Test1') then end
        if pie.PieMenuItem('Test2') then end
            --if pie.PieMenuItem('Test5') then end
            if pie.PieMenuItem('Test3', false) then end
            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
end


function xmenu()
    activ_menu = not activ_menu
    sampAddChatMessage('Меню '..(activ_menu and 'включен' or 'выключен')..'.', -1)
end
 

trefa

Известный
Всефорумный модератор
2,097
1,230
У меня по чему то появляется тока мышь, самого меню нет.
Lua:
local imgui = require 'imgui'
local pie = require 'imgui_piemenu'
local require "lib.moonloader"

local activ_menu = false
function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(1000) end
    sampAddChatMessage("• {FFC800}[Подсказка] {ffffff}Menu загружен...", 0xffffff)
    sampRegisterChatCommand("xmenu", xmenu)
    while true do
        wait(0)
        if activ_menu == true then
            imgui.Process = activ_menu
        end
    end
end

function imgui.OnDrawFrame()
    if imgui.IsWindowHovered() and imgui.IsMouseClicked(1) then
        imgui.OpenPopup('PieMenu')
    end
    if pie.BeginPiePopup('PieMenu', 1) then
        if pie.PieMenuItem('Test1') then end
        if pie.PieMenuItem('Test2') then end
            --if pie.PieMenuItem('Test5') then end
            if pie.PieMenuItem('Test3', false) then end
            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
end


function xmenu()
    activ_menu = not activ_menu
    sampAddChatMessage('Меню '..(activ_menu and 'включен' or 'выключен')..'.', -1)
end
ПКМ не отпускай и всё
 

Шурик

Активный
216
42
Как запретить нажатие клавиш (ЛКМ, ПКМ, Колёсико)?
Чтобы в ImGui окне они работали, а в самой игре нет.
Например: при нажатии на ЛКМ он бьёт кулаком.
 

FYP

Известный
Администратор
1,758
5,721
обновил для moon imgui 1.1.3, исправил полосы и немного изменился вид
скриншоты было и стало:
2210-20180710_161434.png
2211-20180710_161536.png
 

Вложения

  • imgui_piemenu.lua
    13.3 KB · Просмотры: 3,058

Hatiko

Известный
Проверенный
1,472
611
А можно ли как-то использовать данное меню без вспомогательного окна, а сразу, к примеру по активации на клавишу?
 

Adventurer

Известный
151
69
А можно ли как-то использовать данное меню без вспомогательного окна, а сразу, к примеру по активации на клавишу?

Lua:
local imgui = require 'imgui';
local pie = require 'piemenu';
local key = require 'vkeys';

local piemenu  = imgui.ImBool(false);

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end;
    while not isSampAvailable() do wait(100) end;
    while true do
        wait(0)
        imgui.Process = piemenu.v
        if wasKeyPressed(key.VK_K) then
            piemenu.v = not piemenu.v
        end
    end
end

function imgui.OnDrawFrame()
    if piemenu.v then
        imgui.OpenPopup('PieMenu')
        if pie.BeginPiePopup('PieMenu', 1) then
        if pie.PieMenuItem('Test1') then end
        if pie.PieMenuItem('Test2') then end
        --if pie.PieMenuItem('Test5') then end
        if pie.PieMenuItem('Test3', false) then end
        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
    end
end
 

AnWu

Guardian of Order
Всефорумный модератор
4,687
5,164
Lua:
local imgui = require 'imgui';
local pie = require 'piemenu';
local key = require 'vkeys';

local piemenu  = imgui.ImBool(false);

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end;
    while not isSampAvailable() do wait(100) end;
    while true do
        wait(0)
        imgui.Process = piemenu.v
        if wasKeyPressed(key.VK_K) then
            piemenu.v = not piemenu.v
        end
    end
end

function imgui.OnDrawFrame()
    if piemenu.v then
        imgui.OpenPopup('PieMenu')
        if pie.BeginPiePopup('PieMenu', 1) then
        if pie.PieMenuItem('Test1') then end
        if pie.PieMenuItem('Test2') then end
        --if pie.PieMenuItem('Test5') then end
        if pie.PieMenuItem('Test3', false) then end
        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
    end
end
если кого штырит то
piemenu.v = isKeyDown(vk.VK_Z)
будет показывать ток при зажатии