Вопрос Драг система в пандоре

Начинающий
Статус
Оффлайн
Регистрация
12 Май 2022
Сообщения
224
Реакции[?]
27
Поинты[?]
29K
как сделать нормальную драг систему в пандоре т.е когда нажимаешь на лкм или пкм ( пример ), и твой курсор в зоне радиуса кейбиндов то драг работает, а если не в радиусе то нет. код -

code_language.lua:
function dragkb()

    if input.key_down(2) == true then
    slot2, slot3 = input.mouse_position()


    if input.key_down(2) and ui.is_open() then
        luafunctions.visuals.kb_x:set(slot2 - 65) -- если нажат пкм и открыто меню то оно ставит курсор на место кейбинда
        luafunctions.visuals.kb_y:set(slot3 - 5) -- если нажат пкм и открыто меню то оно ставит курсор на место кейбинда
    end


end
end
callbacks.register("paint", dragkb)
 
Последнее редактирование:
Памагите
Пользователь
Статус
Оффлайн
Регистрация
15 Апр 2021
Сообщения
250
Реакции[?]
46
Поинты[?]
5K
как сделать нормальную драг систему в пандоре т.е когда нажимаешь на лкм или пкм ( пример ), и твой курсор в зоне радиуса кейбиндов то драг работает, а если не в радиусе то нет. код -

code_language.lua:
function dragkb()

    if input.key_down(2) == true then
    slot2, slot3 = input.mouse_position()


    if input.key_down(2) and ui.is_open() then
        luafunctions.visuals.kb_x:set(slot2 - 65) -- если нажат пкм и открыто меню то оно ставит курсор на место кейбинда
        luafunctions.visuals.kb_y:set(slot3 - 5) -- если нажат пкм и открыто меню то оно ставит курсор на место кейбинда
    end


end
end
callbacks.register("paint", dragkb)
JavaScript:
local screen = {render.get_screen()}

Zx = ui.add_slider("x", 0, screen[1])
Zy = ui.add_slider("y", 0, screen[2])

memory = {x, y}

local function drag(x, y, w, h, val1, val2)
    local mouse_pos = {input.mouse_position()}
    if not memory.x then memory.x = 0 end
    if not memory.y then memory.y = 0 end

    if mouse_pos[1] >= x and mouse_pos[1] <= x + w and mouse_pos[2] >= y and mouse_pos[2] <= y + h then
        if input.key_down(0x01) and dragging == false then
            dragging = true
            memory.x = x - mouse_pos[1]
            memory.y = y - mouse_pos[2]
        end
    end
    if not input.key_down(0x01) then
        dragging = false
    end

    if dragging == true and ui.is_open() then
        val1:set(mouse_pos[1] + memory.x)
        val2:set(mouse_pos[2] + memory.y)
    end
end

callbacks.register("paint", function()

    x, y = Zx:get(), Zy:get()

    -- render code
    
    drag(x, y, 500, 500, Zx, Zy)

end)
 
Начинающий
Статус
Оффлайн
Регистрация
12 Май 2022
Сообщения
224
Реакции[?]
27
Поинты[?]
29K
JavaScript:
local screen = {render.get_screen()}

Zx = ui.add_slider("x", 0, screen[1])
Zy = ui.add_slider("y", 0, screen[2])

memory = {x, y}

local function drag(x, y, w, h, val1, val2)
    local mouse_pos = {input.mouse_position()}
    if not memory.x then memory.x = 0 end
    if not memory.y then memory.y = 0 end

    if mouse_pos[1] >= x and mouse_pos[1] <= x + w and mouse_pos[2] >= y and mouse_pos[2] <= y + h then
        if input.key_down(0x01) and dragging == false then
            dragging = true
            memory.x = x - mouse_pos[1]
            memory.y = y - mouse_pos[2]
        end
    end
    if not input.key_down(0x01) then
        dragging = false
    end

    if dragging == true and ui.is_open() then
        val1:set(mouse_pos[1] + memory.x)
        val2:set(mouse_pos[2] + memory.y)
    end
end

callbacks.register("paint", function()

    x, y = Zx:get(), Zy:get()

    -- render code
   
    drag(x, y, 500, 500, Zx, Zy)

end)
можешь подсказать почему у меня при перетягивании кейбинда ~ on ебашится 1692720196339.png
если в лево перетягиваю - уходит в лево, если в право - уходит в право
 
Памагите
Пользователь
Статус
Оффлайн
Регистрация
15 Апр 2021
Сообщения
250
Реакции[?]
46
Поинты[?]
5K
Начинающий
Статус
Оффлайн
Регистрация
12 Май 2022
Сообщения
224
Реакции[?]
27
Поинты[?]
29K
Скрытое содержимое
то что я тебе дал это же и есть фулл код, могу тебе тогда дать код без драгов только сорян за тупой вопрос я просто не особо то разбираюсь, дополнительный x в хернях = offset*14?
 
Начинающий
Статус
Оффлайн
Регистрация
12 Май 2022
Сообщения
224
Реакции[?]
27
Поинты[?]
29K
то что я тебе дал это же и есть фулл код, могу тебе тогда дать код без драгов только сорян за тупой вопрос я просто не особо то разбираюсь, дополнительный x в хернях = offset*14?
о все я разобрался, спасибо тебе большое
 
Сверху Снизу