Szerző Téma: gui gomb dxdraw  (Megtekintve 1140 alkalommal)

gui gomb dxdraw
« Dátum: 2017. Január 22. - 19:36:04 »
0
Sziasztok! Kész egy teszt GUI amit guieditorral csináltam.... Azt olvastam az onClientGUIClick jó ehhez, de nekem nem működik. Mi lehet az oka? Hogyan lehet egy \"gombra\" rátenni egy bizonyos dolgot? ( pl.: szöveget)
 
 
 


function tut1()
    dxDrawRectangle(526, 190, 285, 397, tocolor(61, 193, 77, 255), false)
    gomb = dxDrawRectangle(539, 208, 262, 363, tocolor(255, 255, 255, 255), false)
    dxDrawText(\"teszt\", 538, 210, 801, 571, tocolor(254, 0, 0, 255), 4.00, \"default\", \"center\", \"center\", false, false, false, false, false)
    showCursor(true)
    addEventHandler(\"onClientGUIClick\",gomb,teszt,false)
    addEventHandler(\"onClientRender\", root, tut1)
end
addCommandHandler(\"teszteles\",tut1)
function teszt()
    outputChatBox(\"Működik\")
end

gui gomb dxdraw
« Válasz #1 Dátum: 2017. Január 22. - 19:40:16 »
0
Hát itt több baj is van. Nyilván a rendezése se a legszebb (ez maximum kinézet és keresés szempontjából gond), Eventek elhelyezése sem jó, miért GuiClick, ha te nem gui-t használsz, ha parancsos akkor miért ott hívod meg a rendert miért nem akkor mikor parancsot beírod vagy a parancsban egy deffiniált értéket vizsgáltatsz és csak akkor engedi tovább ha az adott értékre kerül (pl true lesz vagy 1 vagy bármi amit akarsz).

gui gomb dxdraw
« Válasz #2 Dátum: 2017. Január 22. - 20:09:37 »
0
A rendezés meg a keresés mindegy, ez csak a teszt... GuiClick, mert azt halottam hogy az mindenre jó, erre is, vagyis valahol azt olvastam. A rendert nem tudom miért ott hívom meg, én logikusan oda tettem, de akkor átteszem. Tudsz amúgy valamit ajánlani, ahol ezt az egész GUI felületet meg lehetne tanulni? Weboldalt/videót, vagy valami fórum részt?

gui gomb dxdraw
« Válasz #3 Dátum: 2017. Január 22. - 21:00:27 »
0
Gui-ba szerintem nem érdemes bele fogni, a dx szebb, és kevésbé terheli a kliens oldalt(tudtommal), dx-ben is lehet gombot csinálni.

gui gomb dxdraw
« Válasz #4 Dátum: 2017. Január 22. - 21:13:23 »
0
Értem. Csak nem találok semmit, ahol le lebne írva, vagy videó lenne róla, hogy hogyan kell ezt. Ti honnan tanultátok meg?

gui gomb dxdraw
« Válasz #5 Dátum: 2017. Január 22. - 21:41:26 »
0
Én eleve más script-ekből. :D community-n van sok, amiből ki lehet indulni.

gui gomb dxdraw
« Válasz #6 Dátum: 2017. Január 23. - 15:16:04 »
+3
Szia.
 
Olyan funkcióba amit renderelni fogsz, abba ne tegyél nem renderelős dolgokat (pl showCursor, addEventHandler). Az addEventHandlert ha egyszer meghívod, utána hibákat fog írni minden meghívásnál. Az onClientGUIClick meg nem működik DX cuccokkal, és egy dx elemet nem lehet változóként definiálni (gomb; lehet, csak mindig true értéket teszt majd a gomb változóba, ha sikerült kirajzolnia).
 
Tanulás szempontjából az MTA wiki böngészését javaslom, illetve amit feljebb írt @BlackSy (én is így kezdtem :D).
 
Itt egy kis példa script, a tiédből átalakítva:

function tut1() -- dx elemek kirajzolása
dxDrawRectangle(526, 190, 285, 397, tocolor(61, 193, 77, 255), false)
dxDrawRectangle(539, 208, 262, 363, tocolor(255, 255, 255, 255), false)
dxDrawText(\"teszt\", 538, 210, 801, 571, tocolor(254, 0, 0, 255), 4.00, \"default\", \"center\", \"center\", false, false, false, false, false)
end
function teszt()
addEventHandler(\"onClientRender\", root, tut1) -- tut1-be lévő dx cuccok renderelése
addEventHandler(\"onClientClick\", getRootElement(), onClickCucc) -- \"kattintás érzékelő\" aktiválása
showCursor(true)
outputChatBox(\"Működik\")
end
addCommandHandler(\"teszteles\", teszt)
function teszt2()
removeEventHandler(\"onClientRender\", root, tut1) -- tut1-en lévő render leállítása
removeEventHandler(\"onClientClick\", getRootElement(), onClickCucc) -- \"kattintás érzékelő\" deaktiválása
showCursor(false)
outputChatBox(\"Már nem működik\")
end
addCommandHandler(\"teszteles2\", teszt2)
function onClickCucc(button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement)
if (state == \"down\") then
   -- bal, jobb, felső, alsó (a képernyő bal felső sarkától számítva)
   if (absoluteX >= 526) and (absoluteX <= 526+285) and (absoluteY >= 190) and (absoluteY <= 190+397) then -- ha a kirajzolt dx elem határain belül van a kurzor
      outputChatBox(\"Ráböktél a gombra\")
   end
end
end

 
Robika1

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal