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

Wysłany: 2019-02-05, 00:58


kamilryb1

LUA






Wiek: 21
Na forum: 4407 dni
Posty: 146

Piwa: 321

Respekt: 7,3

Ostrzeżeń: 40%

local sx, sy=guiGetScreenSize()
--local czc=exports.czcionka:CZ()
local czc= dxCreateFont("DroidSans-Bold.ttf", 12)
local wlaczony=false
local strona=1
local alpha=255
local punkty=0
local ilosc_loo_w_puli=15
local punkty_aby_zdac=12
local txt_strona_3=""

local btn={
    {podswietlanie=true, scrlX=0, clr={0,0,0}, clr_napis={255,255,255}, strona=1, x=sx/2-200, y=sy/2+130, w=150, h=25, png="egzamin"},
    {podswietlanie=true, scrlX=0, clr={0,0,0}, clr_napis={255,255,255}, strona=1, x=sx/2+50, y=sy/2+130, w=150, h=25, png="zamknij"},
    {podswietlanie=true, scrlX=0, clr={0,0,0}, clr_napis={255,255,255}, strona=2, x=sx/2+80, y=sy/2+130, w=150, h=25, png="dalej"},
    {podswietlanie=true, scrlX=0, clr={0,0,0}, clr_napis={255,255,255}, strona=3, x=sx/2-200, y=sy/2+130, w=150, h=25, png="egzamin"},
    {podswietlanie=true, scrlX=0, clr={0,0,0}, clr_napis={255,255,255}, strona=3, x=sx/2+50, y=sy/2+130, w=150, h=25, png="zamknij"},
}

function napisy_refresh()
    napisy={
        {strona=1, x=sx, y=sy/1.75-120, txt="Informacja\nblebleblebleblebleblebl"},
        {strona=3, x=sx, y=sy/2-120, txt=txt_strona_3},
    }
end
napisy_refresh()

--[[for i,v in pairs(loo) do
    --if i==2 then
    for w,odp in pairs(v.odpowiedzi) do
        v.radio_button=guiCreateRadioButton(sx/2-270, sy/2-w, 540, 20, odp, false)
        --outputDebugString(tostring(v.radio_button))
        guiSetVisible(v.radio_button, false)
    end
    --end
end]]


local recX,recY,recX2,recY2=sx/2-300,sy/2-200,600,400
local dxdraw=(
    function()
        local kx, ky = getCursorPosition()
    kx = kx*sx
    ky = ky*sy
        
        --dxDrawRectangle(sx/2-300, sy/2-200, 600, 400, tocolor(255,255,255,60))
        if (strona==2) then
        --    dxDrawRectangle(sx/2-285, sy/2-185, 570, 370, tocolor(0,0,0,100))
        end
        
        --dxDrawRectangle(recX,recY,recX2,recY2, tocolor(155,155,155,255))
        
        for i=0,90 do
            rrz2=math.rad(i)
            px=recX+recX2 - (50 * math.sin(-rrz2))
            py=recY+50 - (50 * math.cos(-rrz2))
            pw=py-recY
            rrz3=math.rad(i+180)
            py2=recY+50+(recY2-100) - (50 * math.cos(-rrz3))
            pw2=recY+50+(recY2-100)
            px3=recX - (-50 * math.sin(-rrz2))
        --    dxDrawRectangle(px, py, 1, (recY2-50-pw)+(py2-pw2), tocolor(64,64,64,255))
        --    dxDrawRectangle(px3, py, 1, (recY2-50-pw)+(py2-pw2), tocolor(64,64,64,255))
        local sxxx, syyy = guiGetScreenSize()
        local zoom = 1
        local fh = 1920
        if sx < fh then
         zoom = math.min(2,fh/sx)
        end
        dxDrawImage ( 670.5/zoom, 320/zoom, 560/zoom, 400/zoom, 'i/gui.png', angle, 0, -120 )
        end
        
        for i,v in ipairs(btn) do
            if (strona==v.strona) then
                if not v.alpha then
                    v.alpha=155
                end
                if (kx >= v.x-(v.scrlX/2)) and (kx <= v.x+v.w+v.scrlX/2) and (ky >= v.y) and (ky <= v.y+v.h) then
                    if v.alpha<255 then
                    --    v.alpha=v.alpha+5
                    end
                    if v.scrlX<20 then
                    --    v.scrlX=v.scrlX+5
                    end
                else
                    if v.alpha>155 then
                        --v.alpha=v.alpha-5
                    end
                    if v.scrlX>0 then
                        --v.scrlX=v.scrlX-5
                    end
                end
                --dxDrawImage(v.x, v.y, v.w, v.h, "i/"..v.png..".png", 0, 0, 0, tocolor(255, 255, 255, alpha))
            
            
            
            
            
            
            
            
            
            
            --dxDrawRectangle(v.x-(v.scrlX/2), v.y, v.w+v.scrlX, v.h, tocolor(v.clr[1] or 0, v.clr[2] or 0, v.clr[3] or 0, v.alpha))
                dxDrawText(v.png, v.x, v.y, v.x+v.w, v.y+v.h, tocolor(v.clr_napis[1] or 255,v.clr_napis[2] or 255,v.clr_napis[3] or 255,255), 1, czc, "center", "center")
            else
                if v.scrlX>0 then
                    v.scrlX=0
                    v.alpha=155
                end
            end
        end
            --if guiGetInputEnabled() then
        for i,v in ipairs(napisy) do
            if (strona==v.strona) then
                dxDrawText(v.txt, v.x+2, v.y+2, 0, 0, tocolor(0, 0, 0, 255), 1, czc, "center")
                dxDrawText(v.txt, v.x, v.y, 0, 0, tocolor(255, 255, 255, 255), 1, czc, "center")
            end
        end
    end
)

--# funkcje pocz?tkowe:
--triggerServerEvent("ev", resourceRoot, "podbierz_koszt_doladowania")
addEvent("evc", true)
addEventHandler("evc", resourceRoot,
    function(ev,arg1,arg2)
        if (ev=="wlacz_okno") then
            if arg1 then
                if wlaczony then
                    return
                end
                addEventHandler("onClientRender", root, dxdraw)
                wlaczony=true
                showCursor(true)
                setElementData(localPlayer, "3dtext_status", false)
            elseif not arg1 then
                removeEventHandler("onClientRender", root, dxdraw)
                wlaczony=false
                showCursor(false)
                strona=1
                setElementData(localPlayer, "3dtext_status", true)
            end
        end
    end
)
--#

--addEventHandler("onClientRender", root, dxdraw)
--wlaczony=true
--showCursor(true)

local gui={}
local zuzyte_loo={}
tworzenie_quizu=(
    function()
        if (#zuzyte_loo>=ilosc_loo_w_puli) then
            strona=3
            zuzyte_loo={}
            if (punkty>=punkty_aby_zdac) then
                txt_strona_3="Egzamin zdany pomy?lnie!\n\nPunkty: "..punkty.."/"..ilosc_loo_w_puli..".\n\nGratulacje! Udaj si? teraz na egzamin praktyczny 1."
                triggerServerEvent("ev", resourceRoot, "zaliczteorie")--zaliczanie teorii
            else
                txt_strona_3="Egzamin oblany.\n\nPunkty: "..punkty.."/"..ilosc_loo_w_puli..".\n\nAby zda?, nale?y zdoby? "..punkty_aby_zdac.." punkt?w. Spr?buj ponownie."
            end
            napisy_refresh()
            return
        end
        local najwiekszy_numerek=nil
        for i,v in pairs(loo) do
            najwiekszy_numerek=math.max(i)
        end
        ask=math.random(2, najwiekszy_numerek)
        local zajete_loo=false
        for i,v in ipairs(zuzyte_loonia) do
            if (ask==v) then
                zajete_loonie=true
            end
        end
        if zajete_loonie then
            tworzenie_quizu()
            return
        end
        answers=loonia[ask].odpowiedzi
        gui.loonie_txt=guiCreateLabel(sx/2-270, sy/2-170, 540, 40, (#zuzyte_loonia+1)..". "..loonia[ask].loonie, false)
        guiLabelSetHorizontalAlign(gui.loonie_txt, "center", true)
        if loonia[ask].obrazek then
            gui.image=guiCreateStaticImage(sx/2-285, sy/2-130, 570, 240, loonia[ask].obrazek, false)
        end
        for i,v in ipairs(answers) do
            v.radio_button=guiCreateRadioButton(sx/2-270, sy/2-v.wysokosc, 540, 20, v.odpowiedz, false)
            guiSetFont(v.radio_button, "default-bold-small")
        end
    end
)

local dalej=(
    function()
        local odp=nil
        for i,v in ipairs(answers) do
            if guiRadioButtonGetSelected(v.radio_button) then
                odp=guiGetText(v.radio_button)
            end
        end
        if not odp then
            exports["es-komunikaty"]:komunikat("Najpierw zaznacz odpowied?.")
            return false
        end
        local answer=split(odp, ".")
        table.insert(zuzyte_loonia, ask)
        if (answer[1] == loonia[ask].poprawne) then
            punkty=punkty+1
        end
        return true
    end
)

local usuwanie_quizu=(
    function()
        for i,v in ipairs(answers) do
            if v.radio_button then
                destroyElement(v.radio_button)
            end
        end
        for i,v in pairs(gui) do
            if isElement(v) then
                destroyElement(v)
            end
        end
    end
)

addEventHandler("onClientClick", root,
  function(_,state,abx,aby)
    if not wlaczony then
      return
    end
    
    if (state=="up") then
            local z_btn=nil    --##buttony
            for i,v in ipairs(btn) do
                if (v.strona==strona) then
                    if (abx >= v.x) and (abx <= v.x+v.w) and (aby >= v.y) and (aby <= v.y+v.h) then
                        z_btn=v
                    end
                end
            end
            if not z_btn then
                return
            end
            if (strona==1) or (strona==3) then
                if (z_btn.png=="zamknij") then
                    triggerEvent("evc", resourceRoot, "wlacz_okno", false)
                elseif (z_btn.png=="egzamin") then
                    if getElementData(localPlayer, "user:pjBteoria") then
                        exports["es-komunikaty"]:komunikat("Teori? masz ju? zaliczon?.")
                        return
                    end
                    punkty=0
                    strona=2
                    
                    tworzenie_quizu()
                    
                    
                    
                end
            elseif (strona==2) then
                if (z_btn.png=="dalej") then
                    
                    local go=dalej()
                    if not go then
                        return
                    end
                    usuwanie_quizu()
                    tworzenie_quizu()
                    
                end
            end
        end
    end
)

Cze??, to znowu ja i znowu przychodz? z t? ?mieszn? grafik?..., + ?eby pobiera?o cuboid tego buttona. albo po prostu zrobi?, tylko napiszcie co zmienili?cie Chcia?bym to przerobi? pod export
 costam:createButton("costam", "costam", sw/33-124/2/zoom, sh/2+212/zoom, 124/zoom, 33/zoom, 2, 0, false);


Potrzebuje wsparcia... nie podajcie funkcji, bo po prostu jestem zielony w tym i nie umiem tego zrobi?, licz? naprawd? na te wsparcie, a i przy okazji jak macie to mo?ecie jakie? szkolenia kursy czy co? jak wiki poda?. Ch?tnie przyjm?. ;-)

[ Dodano: 2019-02-07, 16:14 ]
ref

[ Dodano: 2019-02-08, 00:00 ]
ref

Postaw piwo autorowi tego posta
 

 
Tagi: buttony :: wsparcie :: potrzebne
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » buttony, wsparcie potrzebne 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