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

Wysłany: 2015-08-05, 16:14


Qbiszon

Map editor






Wiek: 25
Na forum: 4317 dni
Posty: 29
Nick w MP: Qbi

Piwa: 2

Respekt: 50

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)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-08-05, 17:01


#404







Wiek: 27
Na forum: 4913 dni
Posty: 1438

Piwa: 2512

Respekt: 833,5
Respekt: 833,5Respekt: 833,5

Ostrzeżeń: 60%

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

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-08-05, 17:29


Qbiszon

Map editor






Wiek: 25
Na forum: 4317 dni
Posty: 29
Nick w MP: Qbi

Piwa: 2

Respekt: 50

W?asnie naprawi?em ten pierwszy b?ad. Teraz potrzebuje pomocy do tego drugiego :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-08-05, 17:35


#404







Wiek: 27
Na forum: 4913 dni
Posty: 1438

Piwa: 2512

Respekt: 833,5
Respekt: 833,5Respekt: 833,5

Ostrzeżeń: 60%
Bardzo proste


Więcej informacji znajdziesz w Wikipedii MTA:

onClientGUIClick


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

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-08-05, 17:45


Qbiszon

Map editor






Wiek: 25
Na forum: 4317 dni
Posty: 29
Nick w MP: Qbi

Piwa: 2

Respekt: 50

Czyli te thePlayer mam zmieni? na localPlayer?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-08-05, 17:46


#404







Wiek: 27
Na forum: 4913 dni
Posty: 1438

Piwa: 2512

Respekt: 833,5
Respekt: 833,5Respekt: 833,5

Ostrzeżeń: 60%
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.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-08-05, 17:55


Qbiszon

Map editor






Wiek: 25
Na forum: 4317 dni
Posty: 29
Nick w MP: Qbi

Piwa: 2

Respekt: 50

teraz jest inny b?ad :(


Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-08-05, 17:57


#404







Wiek: 27
Na forum: 4913 dni
Posty: 1438

Piwa: 2512

Respekt: 833,5
Respekt: 833,5Respekt: 833,5

Ostrzeżeń: 60%
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


Więcej informacji znajdziesz w Wikipedii MTA:

takePlayerMoney


Więcej informacji znajdziesz w Wikipedii MTA:

outputChatBox



Niekt?re funkcje funkcjonuj? zar?wno po stronie clienta, jak i serwer'a. Wtedy r??ni? si? argumentami (nie zawsze).

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-08-05, 18:48


Qbiszon

Map editor






Wiek: 25
Na forum: 4317 dni
Posty: 29
Nick w MP: Qbi

Piwa: 2

Respekt: 50

?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  
Postaw piwo autorowi tego posta
 

 
Tagi: 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 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