renderFontDrawText

Дядя Энрик.

Активный
Автор темы
319
75
Версия MoonLoader
Другое
можно как-нибудь сделать проверку камеры персонажа чтоб renderFontDrawText не отображал рендер сзади персонажа? Транспорт стоит за спиной персонажа.
1688958496649.png
 
  • Эм
Реакции: percheklii и Mintha
Решение
Lua:
local sampev = require 'lib.samp.events'
require "lib.moonloader"

local tCarsName = {"Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus",
"Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BFInjection", "Hunter",
"Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo",
"RCBandit", "Romero","Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed",
"Yankee", "Caddy", "Solair"...

why ega

РП игрок
Модератор
2,556
2,248

Дядя Энрик.

Активный
Автор темы
319
75

Lance_Sterling

Известный
801
281

Дядя Энрик.

Активный
Автор темы
319
75
Странно
Попробуй
if getDistanceBetweenCoords3d(mx, my, mz, x, y, z) < 400 and isPointOnScreen(x, y, z, 0) then
при таких условиях > if getDistanceBetweenCoords3d(mx, my, mz, x, y, z) < 400 and isPointOnScreen(x, y, z, 1000) then
рендерит текст, но при определённом угле, а так опять же нет, не показывает.
 

Дядя Энрик.

Активный
Автор темы
319
75
должно работать, покажи людям код, мб не так что делаешь
Lua:
local sampev = require 'lib.samp.events'
require "lib.moonloader"

local tCarsName = {"Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus",
"Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BFInjection", "Hunter",
"Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo",
"RCBandit", "Romero","Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed",
"Yankee", "Caddy", "Solair", "Berkley'sRCVan", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RCBaron", "RCRaider", "Glendale", "Oceanic", "Sanchez", "Sparrow",
"Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage",
"Dozer", "Maverick", "NewsChopper", "Rancher", "FBIRancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "BlistaCompact", "PoliceMaverick",
"Boxvillde", "Benson", "Mesa", "RCGoblin", "HotringRacerA", "HotringRacerB", "BloodringBanger", "Rancher", "SuperGT", "Elegant", "Journey", "Bike",
"MountainBike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "hydra", "FCR-900", "NRG-500", "HPV1000",
"CementTruck", "TowTruck", "Fortune", "Cadrona", "FBITruck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight",
"Streak", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada",
"Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RCTiger", "Flash", "Tahoma", "Savanna", "Bandito",
"FreightFlat", "StreakCarriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "NewsVan",
"Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "FreightBox", "Trailer", "Andromada", "Dodo", "RCCam", "Launch", "PoliceCar", "PoliceCar",
"PoliceCar", "PoliceRanger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "GlendaleShit", "SadlerShit", "Luggage A", "Luggage B", "Stairs", "Boxville", "Tiller",
"UtilityTrailer"}

function main()
repeat wait(0) until isSampAvailable()
    font = renderCreateFont("EagleSans-Bold", 9, 5)
    while true do
    wait(0)
        if not sampIsDialogActive() and not sampIsScoreboardOpen() then
            for k, v in pairs(getAllVehicles()) do
                local x, y, z = getCarCoordinates(v)
                local mx, my, mz = getCharCoordinates(PLAYER_PED)
                if isCarOnScreen(v) and isCharOnScreen(v) and (getDistanceBetweenCoords3d(mx, my, mz, x, y, z) < 400) then
                    local distance = getDistanceBetweenCoords3d(X, Y, Z, myX, myY, myZ)
                    local rx, ry = convert3DCoordsToScreen(x, y, z)
                    local id = getCarModel(v)
                    local health = '\nHP: '..getCarHealth(v)..'\n'
                    local engine = 'Engine: '..(isCarEngineOn(v) and '{00FF00}On' or '{FF0000}Off')
                    local lock = '\n{AAAAAA}Locked: '..(getCarDoorLockStatus(v) == 2 and '{FF0000}Off' or '{00FF00}On')
                    local text = '? ['..id..']'..health..engine..lock
                if tCarsName[id-399] then
                    text = tCarsName[id-399]..' ['..id..']'..health..engine..lock
                end
                    renderFontDrawText(font, text, rx, ry, 0xFFAAAAAA)
                end
            end
        end
    end
end

function getNearCharToCenter(radius)
    local arr = {}
    local sx, sy = getScreenResolution()
    for _, player in ipairs(getAllChars()) do
        if select(1, sampGetPlayerIdByCharHandle(player)) and isCharOnScreen(player) and player ~= playerPed then
            local plX, plY, plZ = getCharCoordinates(player)
            local cX, cY = convert3DCoordsToScreen(plX, plY, plZ)
            local distBetween2d = getDistanceBetweenCoords2d(sx / 2, sy / 2, cX, cY)
            if distBetween2d <= tonumber(radius and radius or sx) then
                table.insert(arr, {distBetween2d, player})
            end
        end
    end
    if #arr > 0 then
        table.sort(arr, function(a, b) return (a[1] < b[1]) end)
        return arr[1][2]
    end
    return nil
end

function getNearCarToCenter(radius)
    local arr = {}
    local sx, sy = getScreenResolution()
    for _, car in ipairs(getAllVehicles()) do
        if isCarOnScreen(car) and getDriverOfCar(car) ~= playerPed then
            local carX, carY, carZ = getCarCoordinates(car)
            local cX, cY = convert3DCoordsToScreen(carX, carY, carZ)
            local distBetween2d = getDistanceBetweenCoords2d(sx / 2, sy / 2, cX, cY)
            if distBetween2d <= tonumber(radius and radius or sx) then
                table.insert(arr, {distBetween2d, car})
            end
        end
    end
    if #arr > 0 then
        table.sort(arr, function(a, b) return (a[1] < b[1]) end)
        return arr[1][2]
    end
    return nil
end