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

Wysłany: 2017-10-14, 21:40


Hatcher







Wiek: 27
Na forum: 3415 dni
Posty: 6
Nick w MP: JanuszBiznesu

Piwa: 1

Respekt: 50

Witam, ot?? pisz? ten post gdy? mam problem, w tym, ?e gdy wejd? w marker pojawia si? gui lecz gdy nacisn? przycisk, kt?ry odpowiada za rozpocz?cie pracy, wyst?puje b??d i niewiem jak to zrobi?, ?eby dzia?a?o.

server side:

marker = createMarker(2517.17, -1944.77, 16.88-0.8,"cylinder",1.2, 97, 12, 55, 130)

function pokazGUI(el)
    triggerClientEvent(el, "showGUI", el)
end
addEventHandler("onMarkerHit", marker, pokazGUI)

function schowajGUI(el)
    triggerClientEvent(el, "hideGUI", el)
end
addEventHandler("onMarkerLeave", marker, schowajGUI)

function vehicle(el)
    createVehicle(602,2501.57, -1947.65, 13.48)
    outputChatBox("* Rozpocz?to prac?!", el)
end
addEvent("startJOB", true)
addEventHandler("startJOB", getRootElement(), vehicle)

client side:

local dxfont0_Roboto = dxCreateFont(":slotmachine-MTA-master/font/Roboto.ttf", 10)
local dxfont1_Roboto = dxCreateFont(":slotmachine-MTA-master/font/Roboto.ttf", 9)
local screenW, screenH = guiGetScreenSize()

function dxDrawRoundedRectangle(x, y, w, h, borderColor, bgColor, postGUI)
    if (x and y and w and h) then
        if (not borderColor) then
            borderColor = tocolor(0, 0, 0, 200);
        end
       
        if (not bgColor) then
            bgColor = borderColor;
        end
       
        dxDrawRectangle(x, y, w, h, bgColor, postGUI);
       
        dxDrawRectangle(x + 2, y - 1, w - 4, 1, borderColor, postGUI); -- top
        dxDrawRectangle(x + 2, y + h, w - 4, 1, borderColor, postGUI); -- bottom
        dxDrawRectangle(x - 1, y + 2, 1, h - 4, borderColor, postGUI); -- left
        dxDrawRectangle(x + w, y + 2, 1, h - 4, borderColor, postGUI); -- right
    end
end

function isMouseIn(psx,psy,pssx,pssy,abx,aby)
    if not isCursorShowing() then return end
    cx,cy=getCursorPosition()
    cx,cy=cx*screenW,cy*screenH
    if cx >= psx and cx <= psx+pssx and cy >= psy and cy <= psy+pssy then
        return true,cx,cy
    else
        return false
    end
end

function gui()
        dxDrawRectangle(screenW * 0.6021, screenH * 0.3704, screenW * 0.1708, screenH * 0.3963, tocolor(1, 0, 0, 125), false)
        dxDrawRectangle(screenW * 0.6021, screenH * 0.3704, screenW * 0.1708, screenH * 0.0157, tocolor(123, 12, 226, 254), false)
        dxDrawText("PRACA STREET VIEW", (screenW * 0.6021) + 1, (screenH * 0.3861) + 1, (screenW * 0.7729) + 1, (screenH * 0.4343) + 1, tocolor(0, 0, 0, 254), 1.00, dxfont0_Roboto, "center", "center", false, false, false, false, false)
        dxDrawText("PRACA STREET VIEW", screenW * 0.6021, screenH * 0.3861, screenW * 0.7729, screenH * 0.4343, tocolor(255, 255, 255, 254), 1.00, dxfont0_Roboto, "center", "center", false, false, false, false, false)
        dxDrawText("Praca polega na indentyfikowaniu punkt?w. Zarobki s? r??ne, je?li posiadasz konto premium, wtedy wi?cej.", (screenW * 0.6021) + 1, (screenH * 0.4185) + 1, (screenW * 0.7729) + 1, (screenH * 0.6426) + 1, tocolor(0, 0, 0, 254), 1.00, dxfont1_Roboto, "center", "center", false, true, false, false, false)
        dxDrawText("Praca polega na indentyfikowaniu punkt?w. Zarobki s? r??ne, je?li posiadasz konto premium, wtedy wi?cej.", screenW * 0.6021, screenH * 0.4185, screenW * 0.7729, screenH * 0.6426, tocolor(255, 255, 255, 255), 1.00, dxfont1_Roboto, "center", "center", false, true, false, false, false)
        
        if not isMouseIn(screenW * 0.6073, screenH * 0.6519, screenW * 0.1604, screenH * 0.1056) then dxDrawRoundedRectangle(screenW * 0.6073, screenH * 0.6519, screenW * 0.1604, screenH * 0.1056, tocolor(123, 12, 226, 254), false)
        else dxDrawRoundedRectangle(screenW * 0.6073, screenH * 0.6519, screenW * 0.1604, screenH * 0.1056, tocolor(77,7,141), false) end
        
        dxDrawText("Zacznij pracowa?", (screenW * 0.6073) + 1, (screenH * 0.6509) + 1, (screenW * 0.7677) + 1, (screenH * 0.7574) + 1, tocolor(1, 0, 1, 254), 1.00, dxfont0_Roboto, "center", "center", false, false, false, false, false)
        dxDrawText("Zacznij pracowa?", screenW * 0.6073, screenH * 0.6509, screenW * 0.7677, screenH * 0.7574, tocolor(255, 255, 255, 255), 1.00, dxfont0_Roboto, "center", "center", false, false, false, false, false)
end
addEvent("showGUI", true)
function pokazGUI()
    addEventHandler("onClientRender", root, gui)
    addEventHandler("onClientClick", root, start)
    showCursor(true,false)
end
addEventHandler("showGUI", getRootElement(), pokazGUI)

function schowajGUI()
    removeEventHandler("onClientRender", root, gui)
    removeEventHandler("onClientClick", root, start)
    showCursor(false)
end
addEvent("hideGUI", true)
addEventHandler("hideGUI", getRootElement(), schowajGUI)

function start(button, state,el)
    if button == "left" and state == "up" then
        if    isMouseIn(screenW * 0.6073, screenH * 0.6519, screenW * 0.1604, screenH * 0.1056) then
            triggerServerEvent("startJOB", el)
        end
    end
end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-10-14, 22:06


Atroth







Wiek: 24
Na forum: 3818 dni
Posty: 1089
Nick w MP: Atroth

Piwa: 4813

Respekt: 540
Respekt: 540

Hatcher,

Gdzie jest eventHandler na funkcji "start"? Poza tym, w triggerze w tej?e funkcji nie wysy?asz gracza [localPLayer]. Nie wiem po co marker po s-side jak mo?na zrobi? po stronie clienta.

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: 2017-10-14, 22:28


Hatcher







Wiek: 27
Na forum: 3415 dni
Posty: 6
Nick w MP: JanuszBiznesu

Piwa: 1

Respekt: 50

"_Mike" napisał/a:

Hatcher,

Gdzie jest eventHandler na funkcji "start"? Poza tym, w triggerze w tej?e funkcji nie wysy?asz gracza [localPLayer]. Nie wiem po co marker po s-side jak mo?na zrobi? po stronie clienta.


M?g?by? mi powiedzie? jak by to wygl?da? mia?o? Z g?ry dzi?ki

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-10-14, 22:46


Atroth







Wiek: 24
Na forum: 3818 dni
Posty: 1089
Nick w MP: Atroth

Piwa: 4813

Respekt: 540
Respekt: 540

Hatcher,


Więcej informacji znajdziesz w Wikipedii MTA:

PL/onClientClick



Więcej informacji znajdziesz w Wikipedii MTA:

triggerServerEvent


Nawet Ci pomog? w kwestii drugiego:

Kod:


Optional Arguments
arguments...: A list of arguments to trigger with the event. You can pass any lua data type (except functions). You can also pass elements.


Zwyk?e sprawdzanie czy pozycja myszki gracza znajduje si? w takim po?o?eniu. Aby zapobiedz wywo?ywaniu danej funkcji proponuj? doda? zmienn? true albo false. Je?eli jest true zdarzenie si? wywo?a;

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-10-15, 14:58


Hatcher







Wiek: 27
Na forum: 3415 dni
Posty: 6
Nick w MP: JanuszBiznesu

Piwa: 1

Respekt: 50

"_Mike" napisał/a:

Hatcher,


Więcej informacji znajdziesz w Wikipedii MTA:

PL/onClientClick



Więcej informacji znajdziesz w Wikipedii MTA:

triggerServerEvent


Nawet Ci pomog? w kwestii drugiego:

Kod:


Optional Arguments
arguments...: A list of arguments to trigger with the event. You can pass any lua data type (except functions). You can also pass elements.


Zwyk?e sprawdzanie czy pozycja myszki gracza znajduje si? w takim po?o?eniu. Aby zapobiedz wywo?ywaniu danej funkcji proponuj? doda? zmienn? true albo false. Je?eli jest true zdarzenie si? wywo?a;


Niestety zrobi?em jak napisa?e?, lecz dalej nie dzia?a. :look:

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-10-15, 15:38


Atroth







Wiek: 24
Na forum: 3818 dni
Posty: 1089
Nick w MP: Atroth

Piwa: 4813

Respekt: 540
Respekt: 540

Hatcher, Mo?e podaj kod?

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: 2017-10-16, 18:51


Hatcher







Wiek: 27
Na forum: 3415 dni
Posty: 6
Nick w MP: JanuszBiznesu

Piwa: 1

Respekt: 50

"_Mike" napisał/a:

Hatcher, Mo?e podaj kod?


Kod niewiele si? zmieni?, m?g?by? mi to wyt?umaczy? na czym to polega dok?adnie? Z g?ry dzi?ki. Bo ja w tematach triggerEvent?w ma?o pojmuje.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-10-16, 19:10


Atroth







Wiek: 24
Na forum: 3818 dni
Posty: 1089
Nick w MP: Atroth

Piwa: 4813

Respekt: 540
Respekt: 540

Hatcher,

Nie jestem najlepszym nauczycielem Lua, a co dopiero co? wyt?umaczy? w tym. Postaram si? co? powiedzie?. Uczy? musisz si? z wiki. Bez angielskiego ani rusz.


addEventHandler("onClientClick",root,function(btn,state)


Tak wygl?da eventHandler. Do niego dajesz if'a, kt?ry sprawdza czy pozycja myszki jest w odpowiednim miejscu na ekranie. Je?eli tak wykonujesz triggerServerEvent. Np.


triggerServerEvent("trigger",localPlayer,localPlayer)


Na pocz?tku dajesz nazw? eventu [pierwszy argument]. ?r?d?em eventu b?dzie localPlayer [drugi argument], nast?pnie wysy?asz gracza na stron? serwera [trzeci argument] co daje mo?liwo??:


function funkcja (thePlayer)


Oczywi?cie nie musisz wysy?a? gracza, po s-side mo?esz da? "client".

Kod, kt?ry poda?e? na samym pocz?tku jest do przebudowy. Nie ma sensu stawia? marker po s-side (po stronie c-side wszyscy b?d? go widzie?). Mo?esz marker stworzy? po c-side oraz eventHandler 'onClientMarkerHit'.

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
 

 
Tagi: praca :: gui
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Praca w GUI 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