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

Wysłany: 2018-05-09, 23:38


Boysiak







Wiek: 23
Na forum: 3524 dni
Posty: 18
Nick w MP: BoysiaQ



Respekt: 50

Witam, przedstawiam fragment kodu, kt?ry odpowiada za przechodzenie mi?dzy stronami, zamykanie panelu. Kod jest troszk? obszerny, co mnie martwi, na ka?dej ze stron jest funkcja trigerowana do strony servera oraz napis zrobiony dxdrawem.
Oczywi?cie ca?o?? zrobiona jest dxdrawem.

function Klawisze(buttonstate)
    if f4 and button == "left" and state == "down" then
        if cursorPosition(screenW 0.240screenH 0.4screenW 0.145screenH 0.0385) or cursorPosition(screenW 0.240screenH 0.45screenW 0.145screenH 0.0385) or cursorPosition(screenW 0.240screenH 0.5screenW 0.145screenH 0.0385) or cursorPosition(screenW 0.240screenH 0.55screenW 0.145screenH 0.0385) or cursorPosition(screenW 0.240screenH 0.6screenW 0.145screenH 0.0385then
        if not isEventHandlerAdded("onClientRender"getRootElement(), AnimGraczthen
            addEventHandler("onClientRender"getRootElement(), AnimGracz)
        end
        end
        if cursorPosition(screenW 0.240screenH 0.4screenW 0.145screenH 0.0385then ---
            removeEventHandler("onClientRender"getRootElement(), StronaGlowna)
            if not isEventHandlerAdded("onClientRender"getRootElement(), Kat1then
                addEventHandler("onClientRender"getRootElement(), Kat1)
                addEventHandler("onClientClick"getRootElement(), Kat1)
                removeEventHandler("onClientRender"getRootElement(), Kat2)
                removeEventHandler("onClientRender"getRootElement(), Kat3)
                removeEventHandler("onClientRender"getRootElement(), Kat4)
                removeEventHandler("onClientRender"getRootElement(), Kat5)
                removeEventHandler("onClientClick"getRootElement(), Kat2)
                removeEventHandler("onClientClick"getRootElement(), Kat3)
                removeEventHandler("onClientClick"getRootElement(), Kat4)
                removeEventHandler("onClientClick"getRootElement(), Kat5)
            end
        elseif cursorPosition(screenW 0.240screenH 0.45screenW 0.145screenH 0.0385then ---
            removeEventHandler("onClientRender"getRootElement(), StronaGlowna)
            if not isEventHandlerAdded("onClientRender"getRootElement(), Kat2then
                addEventHandler("onClientRender"getRootElement(), Kat2)
                addEventHandler("onClientClick"getRootElement(), Kat2)
                removeEventHandler("onClientRender"getRootElement(), Kat1)
                removeEventHandler("onClientRender"getRootElement(), Kat3)
                removeEventHandler("onClientRender"getRootElement(), Kat4)
                removeEventHandler("onClientRender"getRootElement(), Kat5)
                removeEventHandler("onClientClick"getRootElement(), Kat1)
                removeEventHandler("onClientClick"getRootElement(), Kat3)
                removeEventHandler("onClientClick"getRootElement(), Kat4)
                removeEventHandler("onClientClick"getRootElement(), Kat5)
            end
        elseif cursorPosition(screenW 0.240screenH 0.5screenW 0.145screenH 0.0385then ---
            removeEventHandler("onClientRender"getRootElement(), StronaGlowna)
            if not isEventHandlerAdded("onClientRender"getRootElement(), Kat3then
                addEventHandler("onClientRender"getRootElement(), Kat3)
                addEventHandler("onClientClick"getRootElement(), Kat3)
                removeEventHandler("onClientRender"getRootElement(), Kat1)
                removeEventHandler("onClientRender"getRootElement(), Kat2)
                removeEventHandler("onClientRender"getRootElement(), Kat4)
                removeEventHandler("onClientRender"getRootElement(), Kat5)
                removeEventHandler("onClientClick"getRootElement(), Kat1)
                removeEventHandler("onClientClick"getRootElement(), Kat2)
                removeEventHandler("onClientClick"getRootElement(), Kat4)
                removeEventHandler("onClientClick"getRootElement(), Kat5)
            end
        elseif cursorPosition(screenW 0.240screenH 0.55screenW 0.145screenH 0.0385then ---
            removeEventHandler("onClientRender"getRootElement(), StronaGlowna)
            if not isEventHandlerAdded("onClientRender"getRootElement(), Kat4then
                addEventHandler("onClientRender"getRootElement(), Kat4)
                addEventHandler("onClientClick"getRootElement(), Kat4)
                removeEventHandler("onClientRender"getRootElement(), Kat1)
                removeEventHandler("onClientRender"getRootElement(), Kat2)
                removeEventHandler("onClientRender"getRootElement(), Kat3)
                removeEventHandler("onClientRender"getRootElement(), Kat5)
                removeEventHandler("onClientClick"getRootElement(), Kat1)
                removeEventHandler("onClientClick"getRootElement(), Kat2)
                removeEventHandler("onClientClick"getRootElement(), Kat3)
                removeEventHandler("onClientClick"getRootElement(), Kat5)
            end
        elseif cursorPosition(screenW 0.240screenH 0.6screenW 0.145screenH 0.0385then
            removeEventHandler("onClientRender"getRootElement(), StronaGlowna)
            if not isEventHandlerAdded("onClientRender"getRootElement(), Kat5then
                addEventHandler("onClientRender"getRootElement(), Kat5)
                addEventHandler("onClientClick"getRootElement(), Kat5)
                removeEventHandler("onClientRender"getRootElement(), Kat1)
                removeEventHandler("onClientRender"getRootElement(), Kat2)
                removeEventHandler("onClientRender"getRootElement(), Kat3)
                removeEventHandler("onClientRender"getRootElement(), Kat4)
                removeEventHandler("onClientClick"getRootElement(), Kat1)
                removeEventHandler("onClientClick"getRootElement(), Kat2)
                removeEventHandler("onClientClick"getRootElement(), Kat3)
                removeEventHandler("onClientClick"getRootElement(), Kat4)
            end

        elseif cursorPosition(screenW 0.240screenH 0.8screenW 0.145screenH 0.0385then
            removeEventHandler("onClientRender"getRootElement(), AnimGracz)
            if not isEventHandlerAdded("onClientRender"getRootElement(), StronaGlownathen
                addEventHandler("onClientRender"getRootElement(), StronaGlowna)    
                removeEventHandler("onClientRender"getRootElement(), Kat1)
                removeEventHandler("onClientRender"getRootElement(), Kat2)
                removeEventHandler("onClientRender"getRootElement(), Kat3)
                removeEventHandler("onClientRender"getRootElement(), Kat4)
                removeEventHandler("onClientRender"getRootElement(), Kat5)
                removeEventHandler("onClientClick"getRootElement(), Kat1)
                removeEventHandler("onClientClick"getRootElement(), Kat2)
                removeEventHandler("onClientClick"getRootElement(), Kat3)
                removeEventHandler("onClientClick"getRootElement(), Kat4)
                removeEventHandler("onClientClick"getRootElement(), Kat5)
            else
            removeEventHandler("onClientRender"getRootElement(), panel)
            removeEventHandler("onClientRender"getRootElement(), StronaGlowna)
            removeEventHandler("onClientRender"getRootElement(), Klawisze)
            removeEventHandler("onClientRender"getRootElement(), AnimGracz)
            guiSetVisible(Panelfalse)
            showCursor(false)
            f4=false
            end
        end
    end
end
addEventHandler("onClientClick"getRootElement(), Klawisze)

addEventHandler("onClientResourceStart",resourceRoot,
function()
    removeEventHandler("onClientRender"getRootElement(), panel)
    removeEventHandler("onClientRender"getRootElement(), StronaGlowna)
    removeEventHandler("onClientRender"getRootElement(), Klawisze)
    removeEventHandler("onClientRender"getRootElement(), AnimGracz)
    removeEventHandler("onClientRender"getRootElement(), Kat1)
    removeEventHandler("onClientRender"getRootElement(), Kat2)
    removeEventHandler("onClientRender"getRootElement(), Kat3)
    removeEventHandler("onClientRender"getRootElement(), Kat4)
    removeEventHandler("onClientRender"getRootElement(), Kat5)
    guiSetVisible (Panelfalse)
    showCursor (false)
    f4=false
end)

function F4()
    if f4 == false then
        addEventHandler("onClientRender"getRootElement(), panel)
        addEventHandler("onClientRender"getRootElement(), StronaGlowna)
        removeEventHandler("onClientRender"getRootElement(), AnimGracz)
        removeEventHandler("onClientRender"getRootElement(), Kat1)
        removeEventHandler("onClientRender"getRootElement(), Kat2)
        removeEventHandler("onClientRender"getRootElement(), Kat3)
        removeEventHandler("onClientRender"getRootElement(), Kat4)
        removeEventHandler("onClientRender"getRootElement(), Kat5)
        removeEventHandler("onClientClick"getRootElement(), Kat1)
        removeEventHandler("onClientClick"getRootElement(), Kat2)
        removeEventHandler("onClientClick"getRootElement(), Kat3)
        removeEventHandler("onClientClick"getRootElement(), Kat4)
        removeEventHandler("onClientClick"getRootElement(), Kat5)
        guiSetVisible(Paneltrue)
        showCursor(true)
        f4=true
    else
        removeEventHandler("onClientRender"getRootElement(), panel)
        removeEventHandler("onClientRender"getRootElement(), StronaGlowna)
        removeEventHandler("onClientHUDRender"getRootElement(), Klawisze)
        removeEventHandler("onClientRender"getRootElement(), AnimGracz)
        removeEventHandler("onClientRender"getRootElement(), Kat1)
        removeEventHandler("onClientRender"getRootElement(), Kat2)
        removeEventHandler("onClientRender"getRootElement(), Kat3)
        removeEventHandler("onClientRender"getRootElement(), Kat4)
        removeEventHandler("onClientRender"getRootElement(), Kat5)
        removeEventHandler("onClientClick"getRootElement(), Kat1)
        removeEventHandler("onClientClick"getRootElement(), Kat2)
        removeEventHandler("onClientClick"getRootElement(), Kat3)
        removeEventHandler("onClientClick"getRootElement(), Kat4)
        removeEventHandler("onClientClick"getRootElement(), Kat5)
        guiSetVisible(Panelfalse)
        showCursor(false)
        f4=false
    end
end
bindKey("F4""down"F4)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-05-10, 07:07


Atroth







Wiek: 23
Na forum: 3677 dni
Posty: 1089
Nick w MP: Atroth

Piwa: 4808

Respekt: 540
Respekt: 540

Boysiak, Zawsze mo?na zrobi? kr?cej:


local zmienne = {
main false,
skrypt false,
}

addEventHandler("onClientRender",root,function()
if zmienne["main"then --je?eli zmienna w tabeli main jest true to wtedy renderujesz taki fragment kodu

end
if zmienne["skrypt"then --je?eli zmienna w tabeli skrypt jest true to wtedy renderujesz taki fragment 
end
--itd.
end)

addEventHandler("onClientClick",root,function(btn,state)
if btn and state then 
if isCursorOnElement(x,y,w,h) and zmienne["main"then --je?eli kursor jest na tej pozycji i zmienna main w tabeli jest true to wykonaj triggera
triggerServerEvent("event1",localPlayer)
end
if isCursorOnElement(x,y,w,h) and zmienne["skrypt"then  --je?eli kursor jest na tej pozycji i zmienna skrypt jest true to wtedy wykonaj to
triggerServerEvent("event2",localPlayer)
end
end 


My?l?, ?e wtedy czytelniej kod wygl?da w jednej funkcji. Dzi?ki temu sposobowi zapobiegasz nadmiernej ilo?ci funkcji za ka?dy fragment kodu z dx'ami. B??d?w nie powinno by? :oops:

Podpis

Użytkownik - 10-05-2016
Support Team - 17.06.2017
Moderator - 25.11.2017
Mod-Team - 02.07.2018

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-05-11, 17:10


Boysiak







Wiek: 23
Na forum: 3524 dni
Posty: 18
Nick w MP: BoysiaQ



Respekt: 50

Okey, a jak zrobi? teraz przechodzenie mi?dzy stronami w dxdraw, aby usuwa?y si? funkcje i tekst?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-05-11, 17:16


Barcioo

Kiedyś to było ST






Wiek: 26
Na forum: 4048 dni
Posty: 458
Nick w MP: Bartek.

Piwa: 1887

Respekt: 460
Respekt: 460

Boysiak, dajesz main= falase strona2=true co? w tym stylu


local zmienne = {
main false,
skrypt false,
}

addEventHandler("onClientRender",root,function()
if zmienne["main"then --je?eli zmienna w tabeli main jest true to wtedy renderujesz taki fragment kodu
--dx
end
if zmienne["skrypt"then --je?eli zmienna w tabeli skrypt jest true to wtedy renderujesz taki fragment 
end
--itd.
end)

addEventHandler("onClientClick",root,function(btn,state)
if btn and state then 
if isCursorOnElement(x,y,w,h) and zmienne["main"then --je?eli kursor jest na tej pozycji i zmienna main w tabeli jest true to wykonaj triggera
skrypt false 
main true
triggerServerEvent("event1",localPlayer)
end
if isCursorOnElement(x,y,w,h) and zmienne["skrypt"then--je?eli kursor jest na tej pozycji i zmienna skrypt jest true to wtedy wykonaj to
skrypt true   
main false
triggerServerEvent("event2",localPlayer)
end
end 


Podpis
Kanał Youtube;
A tu zapraszam
, pomogłem Ci? Wynagrodź mnie :piwo: :)


SUPPORT TEAM- 2016-09-03 do 2018-05-25
Test Mod- 2018-05-25
1k dni na Forum - 2018-01-28


GG: 62111935
Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-05-11, 17:52


Boysiak







Wiek: 23
Na forum: 3524 dni
Posty: 18
Nick w MP: BoysiaQ



Respekt: 50

Barcioo,
Rozumiem, tylko panel jest to panel animacji i na ka?dej stronie jest 12 triger?w, jak to zrobi? ?eby by?o to kr?tkie i przejrzyste.
Link do filmu:
https://www.youtube.com/watch?v=Iewua_KREqw

Postaw piwo autorowi tego posta
 

 
Tagi: czy :: się :: jakoś :: zoptymalizować?
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Czy da się to jakoś zoptymalizować? 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