Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2021-01-20, 23:48


NoNamik







Wiek: 35
Na forum: 2185 dni
Posty: 289
Nick w MP: JestemNoNamem

Piwa: 374

Respekt: 60

Witam mam skrypt z eclipserpg na markery lecz jest jeden problem gdy np dam marker typu "arrow" to s? dwa markery ten arrow i podmianka jak to zrobic by byla tylko podmianka markeru na "cylindrze" a na reszcie byly normalne



MARKER_DRAW_DISTANCE 9999
MARKER_FADE_DISTANCE MARKER_DRAW_DISTANCE-10
MARKER_REFRESH_TIMEOUT 500 -- czas w ms co ile wyszukuje markery w poblizu 
tick_rotation=getTickCount()
local markers = {}
local textures = {}
local iconSize Vector2(0.80.8)

function findRotation(from_xfrom_yto_xto_y)
    local result = -math.deg(math.atan2(to_x from_xto_y from_y))
    
    return result and result 360 or result
end

local thisTick getTickCount()

local font dxCreateFont('f.ttf',15)

function renderCustomMarkers()
    local cxcycz getCameraMatrix()
    local rxryrz getElementRotation(getCamera())
    local posPlayerXposPlayerYposPlayerZ=getElementPosition(localPlayer)
    local pX,pY,pZ=getElementRotation(localPlayer)
    --local tick math.abs(getTickCount() % 2500 2500/2) / 2500/2
    local tick interpolateBetween(0,0,0,0.3,0,0, (getTickCount()-thisTick)/2500"SineCurve")
    
    for imarker in ipairs(markers) do 
        if isElement(markerthen
            local xygetElementPosition(marker)
            local radius getMarkerSize(marker) or 3 
            local color = {getMarkerColor(marker)} or {255255255255}
            local icon getElementData(marker"icon") or "marker"
            local dist getDistanceBetweenPoints3D(cxcyczxyz)
            local progress = (dist-MARKER_FADE_DISTANCE)/(MARKER_DRAW_DISTANCE-MARKER_FADE_DISTANCE)
            color[4] = math.max(0math.min(255 - (255*progress), 255))
            
            if isOnScreen(xyzradius*0.25) and color[4] > 0 then

                local i1i2=interpolateBetween(0,0,0,360,0,0,(getTickCount()-tick_rotation)/1250"OutQuad")
                if (getTickCount()-tick_rotation) > 1250 then 
                    tick_rotation=getTickCount()
                end 
                drawTransformedMaterial(textures[icon.."_icon"], xyz+iconSize.y*1.5+tickpX-90pYpZiconSize.x-0.3iconSize.y-0.3color000posPlayerXposPlayerYposPlayerZ)
                
                local lightColor color 
                --lightColor[4] = (lightColor[4]*0.8) - ((lightColor[4]*0.3)*tick)
                lightColor[4] = lightColor[4] - (tick*10)

                drawTransformedMaterial(textures.marker_ring1xyz+0.100i1radius+0.4radius+0.4lightColor000000)
                --drawTransformedMaterial(textures.marker_ring2xyz+0.100i2radius+0.4radius+0.4lightColor000000)
            end

            if getElementData(marker'marker:text') and dist 20 then 
                local sx,sy getScreenFromWorldPosition(x,y,0.4*1.5+tick)
                if sx and sy then 
                    local alpha = ((20/255 dist/255) * 255)/15 255
                    local size = ((20/dist/1) * 1)/15 1

                    dxDrawText(getElementData(marker'marker:text') or '',sx,sy,sx,sy,tocolor(255,255,255,alpha ),math.max(0.1,size),font,'center','center',false,false,false,false,false)
                end 
            end 

        end
    end
end 

function getNearbyMarkers()
    local cxcycz getCameraMatrix()
    if font == 'default-bold' then 
        font exports['lrpg-dxGui']:dxGetFont('default') or 'default-bold'
    end 
    markers = {}
    for kv in ipairs(getElementsWithinRange(cx,cy,cz75'marker')) do 
        if getMarkerType(v) ~= 'corona' then 
            local xygetElementPosition(v)
            if getDistanceBetweenPoints3D(xyzcxcycz) < MARKER_DRAW_DISTANCE*2 then 

                local r,g,b=getMarkerColor(v)
                setMarkerColor(vr,g,b0)

                table.insert(markersv)
            end
        end 
    end
end 

addEventHandler("onClientResourceStart"resourceRoot, function()
    textures.marker_icon dxCreateTexture("images/marker.png""argb",false,'wrap')
    textures.get_car_icon dxCreateTexture("images/icons/get_car.png""argb",false,'wrap')
    textures.store_car_icon dxCreateTexture("images/icons/store_car.png""argb",false,'wrap')
    textures.station_lpg_icon dxCreateTexture("images/icons/station_lpg.png""argb",false,'wrap')
    textures.marker_ring1 dxCreateTexture('images/marker_1.png',"argb",false,'wrap')
    textures.marker_ring2 dxCreateTexture('images/marker_2.png',"argb",false,'wrap')

    textures.light dxCreateTexture("images/light.png")

    setTimer(getNearbyMarkersMARKER_REFRESH_TIMEOUT0)
    addEventHandler("onClientRender"rootrenderCustomMarkers)
end)

addEventHandler('onClientResourceStop',resourceRoot,function()
    for i,v in ipairs(getElementsByType('marker')) do 
        local r,g,getMarkerColor(v)
        setMarkerColor(vr,g,b,255)
    end 
end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-21, 09:11


Mikołajj







Wiek: 22
Na forum: 2885 dni
Posty: 303
Nick w MP: Mikołaj

Piwa: 132

Respekt: 91

Na ko?cu skryptu podmie?:

addEventHandler('onClientResourceStop',resourceRoot,function()
    for i,v in ipairs(getElementsByType('marker')) do 
        local r,g,getMarkerColor(v)
        setMarkerColor(vr,g,b,255)
    end 
end


Na:

addEventHandler('onClientResourceStop',resourceRoot,function()
    for i,v in ipairs(getElementsByType('marker')) do 
        local r,g,getMarkerColor(v)
        setMarkerColor(vr,g,b,0)
    end 
end


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
NoNamik
Wysłany: 2021-01-22, 01:08


NoNamik







Wiek: 35
Na forum: 2185 dni
Posty: 289
Nick w MP: JestemNoNamem

Piwa: 374

Respekt: 60

Miko?ajj, nie chodzi mi o to zeby usunac markery z normalnego gta tylko zeby usunac podmianke wszedzie markerow tylko zostawic na cylindrze

zrobilem tak lecz dziala tylko na pierwszy typ markeru w tym przypadku 'checkpoint' tak jakby 'andow' wgl nie wykrywalo i kolejnych typow markerow

Kod:

function getNearbyMarkers()
local cx, cy, cz = getCameraMatrix()
if font == 'default-bold' then
font = exports['lrpg-dxGui']:dxGetFont('default') or 'default-bold'
end
markers = {}
for k, v in ipairs(getElementsWithinRange(cx,cy,cz, 75, 'marker')) do
if getMarkerType(v) ~= 'checkpoint' and 'ring' and 'arrow' and 'corona' then
local x, y, z = getElementPosition(v)
if getDistanceBetweenPoints3D(x, y, z, cx, cy, cz) < MARKER_DRAW_DISTANCE*2 then

local r,g,b=getMarkerColor(v)
setMarkerColor(v, r,g,b, 0)

table.insert(markers, v)
end
end
end
end


Postaw piwo autorowi tego posta
 

 
Tagi: markery
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Odpowiedz do tematu

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku