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

Wysłany: 2016-06-05, 22:08


teusz11







Wiek: 29
Na forum: 4794 dni
Posty: 191
Nick w MP: Matevsz

Piwa: 4

Respekt: 50

Witam, umie kto? ustawi? pr?dko?ciomierz na ?rodku ekranu na dole? jest na dole po prawej


g_root = getRootElement()
g_rootElement = getResourceRootElement( getThisResource() )
g_Player = getLocalPlayer()

c_EnableScaling = true

c_XOffset = 10
c_YOffset = 10
c_ImageW = 200
c_ImageH = 200
c_BarW = 0
c_BarH = 0
c_BarYOffset = 70



c_FireTimeMs = 5000
c_BarAlpha = 120
c_BarFlashInterval = 300

g_tFireStart = nil

function drawNeedle()
    if not isPedInVehicle(g_Player) then
        -- Fallback for player exiting car without onClientVehicleStartExit event
        --   (e.g. falling off a bike)
        hideSpeedometer()
    end
    local vehSpeed = getVehicleSpeed()
    --local vehHealth = getElementHealth(source,getPedOccupiedVehicle(g_Player))

    if vehHealth and (vehHealth > 0) then
        -- Show a little red/green health bar on the speedo
        local hp = (vehHealth-250)/750
        local curBarLen = hp*g_BarW
        if curBarLen < 1 then curBarLen = 1 end

        local r = 255*(1 - hp)/0.5
        if r > 255 then r = 255 end
        local g = 255*hp/0.5
        if g > 255 then g = 255 end
        if g < 0 then g = 0 end
       
        if hp >= 0 then
            g_tFireStart = nil
            dxDrawRectangle(x + g_ImageW/2 - g_BarW/2, y + g_BarYOffset, curBarLen, g_BarH, tocolor(r, g, 0, c_BarAlpha))
        else
            if not g_tFireStart then g_tFireStart = getTickCount() end
            local firePerc = (c_FireTimeMs - (getTickCount() - g_tFireStart)) / c_FireTimeMs
            if firePerc < 0 then firePerc = 0 end
            local a = c_BarAlpha
            if (getTickCount()/c_BarFlashInterval)%2 > 1 then a = 0 end
            dxDrawRectangle(x + g_ImageW/2 - g_BarW/2, y + g_BarYOffset, firePerc*g_BarW, g_BarH, tocolor(255, 0, 0, a))
        end    
    end
    dxDrawImage(x, y, g_ImageW, g_ImageH, "needle.png", vehSpeed -130, 0, 0, white, true)
end


function showSpeedometer()
    guiSetVisible(disc, true)
    addEventHandler("onClientRender", g_root, drawNeedle)
end
function hideSpeedometer()
    guiSetVisible( disc, false)
    removeEventHandler("onClientRender", g_root, drawNeedle)
end

function getVehicleSpeed()
    if isPedInVehicle(g_Player) then
        local vx, vy, vz = getElementVelocity(getPedOccupiedVehicle(g_Player))
        return math.sqrt(vx^2 + vy^2 + vz^2) * 161
    end
    return 0
end


addEventHandler("onClientVehicleEnter", g_root,
    function(thePlayer)
        if thePlayer == g_Player then
            showSpeedometer()
        end
    end
)

addEventHandler("onClientVehicleStartExit", g_root,
    function(thePlayer)
        if thePlayer == g_Player then
            hideSpeedometer()
        end
    end
)

function round(num)
    return math.floor(num + 0.3)
end

function initGui()
    if disc then
        destroyElement(disc)
    end
    g_screenWidth, g_screenHeight = guiGetScreenSize()
    local scale
    if c_EnableScaling then
        scale = (g_screenWidth/1000 + g_screenHeight/850)/2
    else
        scale = 1
    end
    g_XOffset = round(c_XOffset*scale)
    g_YOffset = round(c_YOffset*scale)
    g_ImageW = round(c_ImageW*scale)
    g_ImageH = round(c_ImageH*scale)
    g_BarW = round(c_BarW*scale)
    g_BarH = round(c_BarH*scale)
    g_BarYOffset = round(c_BarYOffset*scale)
    disc = guiCreateStaticImage(g_screenWidth - g_ImageW - g_XOffset, g_screenHeight - g_ImageH - g_YOffset, g_ImageW, g_ImageH, "disc.png", false)
    x, y = guiGetPosition(disc, false)
end

addEventHandler("onClientResourceStart", g_rootElement,
    function ()
        initGui()
        guiSetVisible(disc, false)
        setTimer(function()
            local w, h = guiGetScreenSize()
            if (w ~= g_screenWidth) or (h ~= g_screenHeight) then
                initGui()
            end
        end, 500, 0)
        if isPedInVehicle(g_Player) then
            showSpeedometer()
        end
    end
)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-06-05, 22:13


Jurandovsky

Kurdebele






Wiek: 17
Na forum: 4979 dni
Posty: 915

Piwa: 2697

Respekt: 955,3
Respekt: 955,3Respekt: 955,3

local sw, sh = guiGetScreenSize()

(sw/2, sh - wysoko?? obrazka ) to jest chyba ?rodek, d?? ekranu

Podpis
Jedyny kontakt ze mną to PW forum

Kod:


local noobs = getElementsByTitle("player", "Programista LUA")
for k, v in ipairs(noobs) do
outputChatBox("Bez mózgu jest użytkownik o nicku: "..getPlayerName(v), root)
destroyElement(v)
end
Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-06-05, 22:33


teusz11







Wiek: 29
Na forum: 4794 dni
Posty: 191
Nick w MP: Matevsz

Piwa: 4

Respekt: 50

Na pocz?tku kodu jest napisane przez autora ?e jest wyliczone na praw? strone to chyba tam si? zmnienia


-- --> These values will be scaled with screen size
-- Offsets from the lower right screen corner
c_XOffset = 10
c_YOffset = 10
c_ImageW = 200
c_ImageH = 200
c_BarW = 0
c_BarH = 0
c_BarYOffset = 70
-- <--


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-06-06, 07:05


AteX







Wiek: 27
Na forum: 4156 dni
Posty: 925
Nick w MP: #AteX

Piwa: 8366

Respekt: 775,3
Respekt: 775,3Respekt: 775,3

Zmie? c_XOffset na wi?kszy.

Podpis
MultiTheftAuto++ dla MTA 1.5.7 już dostępne.
Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-06-06, 23:23


teusz11







Wiek: 29
Na forum: 4794 dni
Posty: 191
Nick w MP: Matevsz

Piwa: 4

Respekt: 50

Dziex, mo?esz mi pom?c jeszcze z jedn? rzecz? ? mianowicie stworzy?em 6 zdj?? GuiCreateStaticImage, i tyle samo button?w na nich, z alpha 50%, jak zrobi? aby klikaj?c strza?kami g?ra, d?? zmienia? si? jeden button po zdj?ciach, albo po wci?ni?ciu jednego pojawia si? na jednym zdj?ciu potem 2 button itp

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-06-07, 06:30


AteX







Wiek: 27
Na forum: 4156 dni
Posty: 925
Nick w MP: #AteX

Piwa: 8366

Respekt: 775,3
Respekt: 775,3Respekt: 775,3


Więcej informacji znajdziesz w Wikipedii MTA:

bindKey

i kombinuj z

Więcej informacji znajdziesz w Wikipedii MTA:

guiSetVisible


Podpis
MultiTheftAuto++ dla MTA 1.5.7 już dostępne.
Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-06-07, 18:44


teusz11







Wiek: 29
Na forum: 4794 dni
Posty: 191
Nick w MP: Matevsz

Piwa: 4

Respekt: 50

Po klikni?ciu "lshift" jest button na zdj?ciu "zgas" je?li samoch?d ma zapalone lampy ale jak puszcze "lshift" to zostaje napis "zapal" . Dodam te? ?e jak wci?nie si? "lshift" to s? zapalone ?wiat?a a jak si? pu?ci to gasn?. Postawie :piwo:


function Swiatla()
    local pojazdyPrywatne = getPedOccupiedVehicle(localPlayer)
    if pojazdyPrywatne then
        triggerServerEvent("swiatla", localPlayer)
        if getVehicleOverrideLights(pojazdyPrywatne) ~= 2 then
            guiSetVisible(zdjSwiatla, true)
            guiSetVisible(zgas, true)
            guiSetVisible(zapal, false)
        elseif 
            guiSetVisible(zdjSwiatla, false)
            guiSetVisible(zgas, false)
            guiSetVisible(zapal, true)
            guiSetVisible(button, false)
        end
    end
end
bindKey("lshift", "both", Swiatla)


Postaw piwo autorowi tego posta
 

 
Tagi: speedometer :: center
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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