Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.04 KB | None | 0 0
  1. -- Először is, ez nem GUI, hanem DX.
  2. -- A GUI-val előre definiált ablakokat, szövegdobozokat, gombokat (...) hozhatsz létre, ezt használja alapból az MTA is.
  3. -- A DX-el különböző egyszerű alakzatokat rajzolhatsz ki (általában négyzet, de ide tartozik a kép és szöveg is), csupán egy frame erejéig.
  4.  
  5. -- GUI leírás: https://wiki.multitheftauto.com/wiki/Introduction_to_Scripting_the_GUI
  6.  
  7. -- Amit te szeretnél csinálni, a következőképpen nézne ki helyesen:
  8.  
  9.  
  10. local sx, sy = guiGetScreenSize() -- A client aktuális felbontása (pl: 1920x1080)
  11.  
  12. -- Ebben a funkcióban kirajzolod amit szeretnél.
  13. -- Ha meghívod, akkor egyetlen pillanatra fog megjelenni amit csináltál. (talán nem is észleled)
  14. -- Azért, hogy ez folyamatosan látható legyen, nem csak szimplán meghívjuk, hanem "csatoljuk" az 'onClientRender' eventhez, amely meghívja nekünk minden frame rendereléskor.
  15. -- (Emiatt, mert ez a funkció egy másodpercben akár hatvanszor is lefuthat, nem érdemes erőforrásigényes dolgokat csinálni benne.)
  16. function renderFunction()
  17.     dxDrawRectangle(sx/2 - 250, sy/2 - 250, 500, 500, tocolor(255,0,0,255))
  18. end
  19.  
  20. local windowState = false -- ebben a változóban tartjuk számon, hogy épp meg van-e nyitva az ablak, vagy sem. (false = nem | true = igen)
  21. function toggleWindow()
  22.     if windowState then -- ha: windowState == true  -> zárjuk be
  23.         removeEventHandler("onClientRender", root, renderFunction) -- töröljük  a "csatolást" --> nem lesz mi meghívja a renderFunction-t, ezáltal nem fog megjelenni
  24.         windowState = false -- megjegyezzük, hogy éppen zárva van
  25.    
  26.     else -- minden más esetben (vagyis ha nem TRUE)  -> nyissuk meg
  27.         addEventHandler("onClientRender", root, renderFunction) -- "csatoljuk" a renderFunction-t az 'onClientRender' eventhez.
  28.         windowState = true -- megjegyezzük, hogy éppen nyitva van
  29.     end
  30. end
  31.  
  32. -- Majdnem minden készvan, már csak egy bind, vagy egy parancs kell amivel megnyithatjuk
  33. addCommandHandler("ablak", toggleWindow) -- parancs
  34. bindKey("k", "down", toggleWindow) -- bind
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement