Szerző Téma: guiGetScreenSize  (Megtekintve 1588 alkalommal)

guiGetScreenSize
« Dátum: 2018. Október 25. - 20:05:11 »
0
Hello.
Elkezdtem tanulni a luát. Kisebb scripteket már sikerült írnom, ezért haladok előrébb.
Elkezdtem hudot csinálni, és elakadtam. Egy videót nézve kezdtem el írni. Leírtam mindent ami a videóban szerepelt, formázásra később teszek szert.
Leakarom tesztelni, elindítom a resource-t és a képen láthatót írja ki.\"717N_vtelen.png\"

 
Már próbálkoztam dolgokkal, nem jöttek be. Ezért írok ide. 
A válaszokat előre is köszönöm.

guiGetScreenSize
« Válasz #1 Dátum: 2018. Október 26. - 04:51:50 »
0
A guiGetScreenSize kliens oldali függvény.
 
A meta.xml-ben amikor beírod a scriptet, a type-ot add meg client-nek, mert alapból szerver oldaliként kezeli az MTA.

guiGetScreenSize
« Válasz #2 Dátum: 2018. Október 26. - 12:28:36 »
0
A metában client szerepel.
Most nem tudom hogy, de már nem írja ki.
Viszont elindítom a scriptet, de a hud nem jelen meg.
A debugscript sem ír semmi hibát a huddal kapcsolatban.
Client.lua tartalma:
 
 

local x, y = guiGetScreenSize()
oX, oY = 1366, 768
function mainRender()
    local health, armor = getElementHealth(localPlayer), getPedArmor(localPlayer)
    local h, m = getTime()
    if h < 10 then h = \"0\" .. h end
    if m < 10 then h = \"0\" .. m end     

dxDrawRectangle(1590/oX*x, 30/oY*y, 300/oX*x, 100/oY*y, 0x7F000000)
dxDrawRectangle(1600/oX*x, 40/oY*y, 280*health/100/oX*x, 10/oY*y, 0xCCFF0000) -- Élet
dxDrawRectangle(1600/oX*x, 60/oY*y, 280*armor/100/oX*x, 10/oY*y, 0xCC006EB2) -- Pajzs
dxDrawText(h .. \":\" .. m, 1600/oX*x, 70/oY*y, _, _, _, 2/oX*x, \"pricedown\", \"left\", \"top\") -- Idő
end
addEventHandler(\"onClientRender\", root, mainRender)

 
 

Nem elérhető gbr333

  • 670
    • Profil megtekintése
guiGetScreenSize
« Válasz #3 Dátum: 2018. Október 26. - 14:46:24 »
0

1590/oX*x


30/oY*y

 
Számold már ki pls, hogy ez mennyi egy 1920x1080 as felbontás esetén.
« Utoljára szerkesztve: 2018. Október 26. - 14:50:03 írta RoLuX »

guiGetScreenSize
« Válasz #4 Dátum: 2018. Október 26. - 17:39:31 »
0
Akkor ide is leírom, hogy még tanulok. Lefogom tesztelni, hogy ha működni fog a script. 

Nem elérhető gbr333

  • 670
    • Profil megtekintése
guiGetScreenSize
« Válasz #5 Dátum: 2018. Október 26. - 18:13:35 »
0
Feltételezzük,hogy a kliens 1920x1080 as felbontáson játszik.
 
Így az x értéke 1920 lesz,míg az y értéke 1080.
 

1590/oX*x


30/oY*y

 
Behelyettesítve:
 

1590/1366*1920 = 2234.84626647


30/768*1080 = 42.1875

 
Látható,hogy az x értéke már a monitoron kívül esik.
 
 
 
Valószínüleg működik a scripted,csak rossz helyre rajzolja a Rectangle-ket.

guiGetScreenSize
« Válasz #6 Dátum: 2018. Október 26. - 18:37:15 »
0
Megnézem hogy lenne jó, vagy megpróbálom megcsinálni másképp a hudot.
Köszi.
EDIT: Kérhetnék egy tippet, hogyan lehetne megoldani hogy jó legyen?
 
 
« Utoljára szerkesztve: 2018. Október 26. - 18:46:05 írta Matheus_Daniel »

Nem elérhető gbr333

  • 670
    • Profil megtekintése
guiGetScreenSize
« Válasz #7 Dátum: 2018. Október 26. - 19:08:21 »
0
Növeld az oX és oY értékét. (Pl 1920x1080 ra.)
 
 

guiGetScreenSize
« Válasz #8 Dátum: 2018. Október 26. - 19:19:42 »
0
Mostmár látom. Kicsibe, de ezt már megoldom.
Köszi a segítséget.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal