GTA Közösség - A magyar GTA fórum

Multi Theft Auto (MTA) => MTA: Szerverfejlesztés => Segítségkérés => A témát indította: Matheus_Daniel - 2018. Október 25. - 20:05:11

Cím: guiGetScreenSize
Írta: Matheus_Daniel - 2018. Október 25. - 20:05:11
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.
Cím: guiGetScreenSize
Írta: impreZZa - 2018. Október 26. - 04:51:50
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.
Cím: guiGetScreenSize
Írta: Matheus_Daniel - 2018. Október 26. - 12:28:36
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)

 
 
Cím: guiGetScreenSize
Írta: gbr333 - 2018. Október 26. - 14:46:24

1590/oX*x


30/oY*y

 
Számold már ki pls, hogy ez mennyi egy 1920x1080 as felbontás esetén.
Cím: guiGetScreenSize
Írta: Matheus_Daniel - 2018. Október 26. - 17:39:31
Akkor ide is leírom, hogy még tanulok. Lefogom tesztelni, hogy ha működni fog a script. 
Cím: guiGetScreenSize
Írta: gbr333 - 2018. Október 26. - 18:13:35
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.
Cím: guiGetScreenSize
Írta: Matheus_Daniel - 2018. Október 26. - 18:37:15
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?
 
 
Cím: guiGetScreenSize
Írta: gbr333 - 2018. Október 26. - 19:08:21
Növeld az oX és oY értékét. (Pl 1920x1080 ra.)
 
 
Cím: guiGetScreenSize
Írta: Matheus_Daniel - 2018. Október 26. - 19:19:42
Mostmár látom. Kicsibe, de ezt már megoldom.
Köszi a segítséget.