Wysłany: 2015-08-05, 16:14
Qbiszon
Map editor
Wiek: 25 Na forum: 4176 dni Posty: 29
Nick w MP: Qbi
Piwa : 2
Witam! M?j problem polega na tym, ?e gdy wjad? w marker wy?wietla mi sie gui i co sekunde pojawia si? nast?pne. Jak to naprawi??
mkr = createMarker ( - 1510.3154296875 , 2618.8 , 55 , "cylinder" , 4 , 255 , 0 , 0 , 20 )
function gui ()
local screenW , screenH = guiGetScreenSize ()
okno = guiCreateWindow (( screenW - 464 ) / 2 , ( screenH - 226 ) / 2 , 464 , 226 , "Naprawa" , false )
guiWindowSetSizable ( okno , false )
pt = guiCreateButton ( 15 , 151 , 133 , 65 , "Tak" , false , okno )
guiSetFont ( pt , "clear-normal" )
pn = guiCreateButton ( 321 , 151 , 133 , 65 , "Nie" , false , okno )
guiSetFont ( pn , "clear-normal" )
napis = guiCreateLabel ( 119 , 65 , 227 , 67 , "Czy chcesz naprawic swoj pojazd?" , false , okno )
guiSetFont ( napis , "clear-normal" )
guiLabelSetHorizontalAlign ( napis , "center" , false )
guiSetVisible ( okno , true )
end
addEventHandler ( "onClientMarkerHit" , mkr , function( el , md )
if not md or el ~= localPlayer then return end
addEventHandler ( "onClientRender" , root , gui )
showCursor ( true , false )
end )
function ugui ()
removeEventHandler ( "onClientRender" , root , gui )
showCursor ( false )
end
addEventHandler ( "onClientMarkerLeave" , mkr , function( el , md )
if el ~= localPlayer then return end
ugui ()
end )
function napraw ( thePlayer )
if isPedInVehicle ( thePlayer ) then
local auto = getPedOccupiedVehicle ( thePlayer )
if getPlayerMoney ( thePlayer ) >= 100 then
fixVehicle ( auto )
takePlayerMoney ( thePlayer , 100 )
outputChatBox ( "Naprawa pojazdu kosztowa?a ci? 100$." , thePlayer , 250 , 100 , 0 , true )
else
outputChatBox ( "Nie jestes w aucie." , thePlayer , 250 , 100 , 0 , true )
end
end
end
addEventHandler ( "onClientGUIClick" , pt , function( plr )
napraw ()
ugui ()
end )
addEventHandler ( "onClientGUIClick" , pn , function( plr )
ugui ()
end )
Wysłany: 2015-08-05, 17:01
#404
Wiek: 26 Na forum: 4771 dni Posty: 1438
Piwa : 2512
local screenW , screenH = guiGetScreenSize ()
okno = guiCreateWindow (( screenW - 464 ) / 2 , ( screenH - 226 ) / 2 , 464 , 226 , "Naprawa" , false )
guiWindowSetSizable ( okno , false )
pt = guiCreateButton ( 15 , 151 , 133 , 65 , "Tak" , false , okno )
guiSetFont ( pt , "clear-normal" )
pn = guiCreateButton ( 321 , 151 , 133 , 65 , "Nie" , false , okno )
guiSetFont ( pn , "clear-normal" )
napis = guiCreateLabel ( 119 , 65 , 227 , 67 , "Czy chcesz naprawic swoj pojazd?" , false , okno )
guiSetFont ( napis , "clear-normal" )
guiLabelSetHorizontalAlign ( napis , "center" , false )
guiSetVisible ( okno , false )
addEventHandler ( "onClientMarkerHit" , mkr , function( el , md )
if not md or el ~= localPlayer then return end
guiSetVisible ( okno , true )
showCursor ( true , false )
end )
function ugui ()
guiSetVisible ( okno , false )
showCursor ( false )
end
Problem by? nast?puj?cy:
Poprzez onClientRender tworzy?e? kolejne, kolejne, kolejne.... elementy gui. Przeanalizuj powy?szy kod i wyci?gnij wnioski, jak ukrywa?/pokazywa? gui a tak?e jak je tworzy?
EDIT: A i teraz taki ma?y b??dzik znalaz?em
function napraw ( thePlayer ) -- tutaj graczem b ? dzie nic , bo nie wys ? a ? e ? elementu gracza ( patrz ni ? ej )
if isPedInVehicle ( thePlayer ) then
local auto = getPedOccupiedVehicle ( thePlayer )
if getPlayerMoney ( thePlayer ) >= 100 then
fixVehicle ( auto )
takePlayerMoney ( thePlayer , 100 )
outputChatBox ( "Naprawa pojazdu kosztowa?a ci? 100$." , thePlayer , 250 , 100 , 0 , true )
else
outputChatBox ( "Nie jestes w aucie." , thePlayer , 250 , 100 , 0 , true )
end
end
end
addEventHandler ( "onClientGUIClick" , pt , function( plr )
napraw () -- w argumentach nie wysy ? a ? e ? gracza
ugui ()
end )
Dasz rad? samodzielnie naprawi? ? Je?eli nie pisz ?mia?o, pomo?emy
Wysłany: 2015-08-05, 17:29
Qbiszon
Map editor
Wiek: 25 Na forum: 4176 dni Posty: 29
Nick w MP: Qbi
Piwa : 2
W?asnie naprawi?em ten pierwszy b?ad. Teraz potrzebuje pomocy do tego drugiego
Wysłany: 2015-08-05, 17:35
#404
Wiek: 26 Na forum: 4771 dni Posty: 1438
Piwa : 2512
Bardzo proste
Wiki m?wi (xD), obiektem kt?ry zawsze klika w gui jest localPlayer, czyli najpro?ciej b?dzie do napraw() dodac localPlayer no i powinno lata?
PS: function(plr) -- tutaj plr to nie gracz, ta funkcja jako 1 element zwraca przycisk wi?cej w podanym powy?ej linku
Wysłany: 2015-08-05, 17:45
Qbiszon
Map editor
Wiek: 25 Na forum: 4176 dni Posty: 29
Nick w MP: Qbi
Piwa : 2
Czyli te thePlayer mam zmieni? na localPlayer?
Wysłany: 2015-08-05, 17:46
#404
Wiek: 26 Na forum: 4771 dni Posty: 1438
Piwa : 2512
Nie, by? mo?e troszk? ?le wyt?umaczy?em
addEventHandler ( "onClientGUIClick" , pt , function( plr )
napraw ( localPlayer )
ugui ()
end )
Wtedy localPlayer zostanie przes?any do funkcji napraw i w niej b?dzie ju? funkcjonowa? jako thePlayer.
Wysłany: 2015-08-05, 17:55
Qbiszon
Map editor
Wiek: 25 Na forum: 4176 dni Posty: 29
Nick w MP: Qbi
Piwa : 2
teraz jest inny b?ad
Wysłany: 2015-08-05, 17:57
#404
Wiek: 26 Na forum: 4771 dni Posty: 1438
Piwa : 2512
Ahh no tak
U?yle? argumentacji z strony serwer'a zamiast clienta
takePlayerMoney ( 100 )
outputChatBox ( "Naprawa pojazdu kosztowa?a ci? 100$." , 250 , 100 , 0 , true )
Wi?cej info odno?nie argument?w poszukaj w poni?szych linkach
Niekt?re funkcje funkcjonuj? zar?wno po stronie clienta, jak i serwer'a. Wtedy r??ni? si? argumentami (nie zawsze).
Wysłany: 2015-08-05, 18:48
Qbiszon
Map editor
Wiek: 25 Na forum: 4176 dni Posty: 29
Nick w MP: Qbi
Piwa : 2
?miga
Piwko leci.
A wi?c zamykam, w razie czego, zg?o? post a otworz? temat //DestroY
Ostatnio zmieniony przez #404 2015-08-05, 19:58, w całości zmieniany 1 raz
Tagi: gui
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: