Исходник 3Д круги

Статус
В этой теме нельзя размещать новые ответы.

rraggerr

проверенный какой-то
Автор темы
1,626
848
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
credits: MalikMontana

Тупо выложил чтобы было, под мун не сложно перевести
Lua:
local function Draw_3D_Circle(x, y, z, radius, r, g, b, a, accuracy)
    local accuracy = accuracy or 3;
    local screen_x_line_old, screen_y_line_old;

    for rot=0, 360,accuracy do
        local rot_temp = math.rad(rot);
        local lineX, lineY, lineZ = radius * math.cos(rot_temp) + x, radius * math.sin(rot_temp) + y, z;
        local screen_x_line, screen_y_line = client.WorldToScreen(lineX, lineY, lineZ);
        if screen_x_line ~=nil and screen_x_line_old ~= nil then
            draw.Color(r, g, b, a);
            draw.Line(screen_x_line, screen_y_line, screen_x_line_old, screen_y_line_old);
        end
        screen_x_line_old, screen_y_line_old = screen_x_line, screen_y_line;
    end
end

Lua:
local localplayer = entities.GetLocalPlayer();
local posX, posY, posZ = localplayer:GetProp("m_vecOrigin");

Draw_3D_Circle(posX, posY, posZ + 50, 0, 255, 255, 255, 255, 3);
Screen capture - aad1d1d240dfc2a6a9ad72aeac47f348 - Gyazo(https://gyazo.com/aad1d1d240dfc2a6a9ad72aeac47f348)
 

k0lenval

Известный
133
111
Для SAMP это будет выглядеть как-то так:
Lua:
local posX, posY, posZ = getCharCoordinates(PLAYER_PED)
Draw3DCircle(posX, posY, posZ, 1)
Lua:
function Draw3DCircle(x, y, z, radius)
    local screen_x_line_old, screen_y_line_old;

    for rot=0, 360 do
        local rot_temp = math.rad(rot)
        local lineX, lineY, lineZ = radius * math.cos(rot_temp) + x, radius * math.sin(rot_temp) + y, z
        local screen_x_line, screen_y_line = convert3DCoordsToScreen(lineX, lineY, lineZ)
        if screen_x_line ~=nil and screen_x_line_old ~= nil then renderDrawLine(screen_x_line, screen_y_line, screen_x_line_old, screen_y_line_old, 3, 0xFFD00000) end
        screen_x_line_old, screen_y_line_old = screen_x_line, screen_y_line
    end
end
 
Последнее редактирование:
  • Нравится
Реакции: Scrix и imring

f0Re3t

Poh production
Друг
877
812
Для SAMP это будет выглядеть как-то так:
Lua:
local posX, posY, posZ = getCharCoordinates(PLAYER_PED)
Draw3DCircle(posX, posY, posZ, 1)
Lua:
function Draw3DCircle(x, y, z, radius)
    local screen_x_line_old, screen_y_line_old;

    for rot=0, 360 do
        local rot_temp = math.rad(rot)
        local lineX, lineY, lineZ = radius * math.cos(rot_temp) + x, radius * math.sin(rot_temp) + y, z
        local screen_x_line, screen_y_line = convert3DCoordsToScreen(lineX, lineY, lineZ)
        if screen_x_line ~=nil and screen_x_line_old ~= nil then renderDrawLine(screen_x_line, screen_y_line, screen_x_line_old, screen_y_line_old, lineZ, 0xFFD00000) end
        screen_x_line_old, screen_y_line_old = screen_x_line, screen_y_line
    end
end
проверки на видимость не хватает, иначе твой рендер тупо багнится
 
Статус
В этой теме нельзя размещать новые ответы.