Мимгуи линии

Lance_Sterling

Известный
Автор темы
993
354
Версия MoonLoader
.026-beta
Как делать мимгуи линии мимо окна? По типу renderDrawLine ?
 
Решение
Вариант для mimgui, без renderDrawLine


1678096142075.png


Lua:
local Vector = require 'vector3d'
local imgui = require 'mimgui'
local ffi = require 'ffi'

imgui.OnFrame(function() return true end, function()
    if doesCharExist(PLAYER_PED) then
        local pos = Vector(getCharCoordinates(PLAYER_PED))
        render_circle_3d(imgui.GetBackgroundDrawList(), Vector(pos.x + 2, pos.y, pos.z - 1), 64, 0.5, imgui.ImVec4(1, 1, 1, 1), 2)
    end
end).HideCursor = true


Можно сделать какое-то подобие чекпоинта, но фпса это будет хавать будь здоров. НЕ лучшая практика.
1678096432729.png
Lua:
imgui.OnFrame(function() return true end, function()
    if...

Lance_Sterling

Известный
Автор темы
993
354

wojciech?

Известный
Проверенный
402
339
И как текст рисовать внк окна не через renderFontDrawText

Ну в 3д пространстве то
конвертируешь координаты из 3д в экранные convert3DCoordsToScreen(x, y, z) и рендеришь
 

Lance_Sterling

Известный
Автор темы
993
354


конвертируешь координаты из 3д в экранные convert3DCoordsToScreen(x, y, z) и рендеришь
Так а горизонтальный круг то как сделать

Что бы он вверх смотрел
 

de_clain

Активный
234
64
0_0
Вот скрин чапо где видно этот круг на скине
Посмотреть вложение 192373
Под персом?

0_0
Вот скрин чапо где видно этот круг на скине
Посмотреть вложение 192373
 
Последнее редактирование:

Andrinall

Известный
700
518
Вариант для mimgui, без renderDrawLine


1678096142075.png


Lua:
local Vector = require 'vector3d'
local imgui = require 'mimgui'
local ffi = require 'ffi'

imgui.OnFrame(function() return true end, function()
    if doesCharExist(PLAYER_PED) then
        local pos = Vector(getCharCoordinates(PLAYER_PED))
        render_circle_3d(imgui.GetBackgroundDrawList(), Vector(pos.x + 2, pos.y, pos.z - 1), 64, 0.5, imgui.ImVec4(1, 1, 1, 1), 2)
    end
end).HideCursor = true


Можно сделать какое-то подобие чекпоинта, но фпса это будет хавать будь здоров. НЕ лучшая практика.
1678096432729.png
Lua:
imgui.OnFrame(function() return true end, function()
    if doesCharExist(PLAYER_PED) then
        local pos = Vector(getCharCoordinates(PLAYER_PED))
        for i = 0, 100 do
            render_circle_3d(imgui.GetBackgroundDrawList(), Vector(pos.x + 2, pos.y, pos.z - 1 + i / 150), 64, 0.5, imgui.ImVec4(1, 1, 1, 1 - i / 100), 2)
        end
    end
end).HideCursor = true

Lua:
function render_circle_3d(dl, vecPosition, iPointCount, flRadius, a_color, width)
    local flStep = math.pi * 2 / iPointCount;
    local m_points = {}

    for a = 0, math.pi * 2, flStep do
        local vecEnd = Vector(flRadius * math.cos(a + flStep) + vecPosition.x, flRadius * math.sin(a + flStep) + vecPosition.y, vecPosition.z)
        table.insert(m_points, imgui.ImVec2(convert3DCoordsToScreen(vecEnd.x, vecEnd.y, vecEnd.z)))
    end

    local pointlist = ffi.new("ImVec2[?]", #m_points)
    for i = 0, #m_points-1 do pointlist[i] = m_points[i+1] end

    dl:AddPolyline(pointlist, #m_points, imgui.ColorConvertFloat4ToU32(a_color), true, width)
end
 
  • Нравится
Реакции: Lance_Sterling