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: xerox0224 - 2017. január 25. - 20:16:41

Cím: dxDrawRectangle szín változtatás
Írta: xerox0224 - 2017. január 25. - 20:16:41
Sziasztok. Nem tudom hogy lehetséges-e ilyet, ( valószínű én vagyok a hülye és nem :D ) hogy ha ráhúzom az egeret a dxDrawRectangle-ra, akkor pl. zöldről pirosra vált át, de amint leveszem onnan vissza vált az eredeti színére. ( Nem kattintásnál.). Ha igen, hogyan lehetséges ez?
Cím: dxDrawRectangle szín változtatás
Írta: impreZZa - 2017. január 25. - 20:45:16

local screenWidth, screenHeight = guiGetScreenSize()
addEventHandler(\"onClientRender\", root, function()
dxDrawRectangle(screenWidth/2 - 300, screenHeight/2 - 200, 600, 400, (isCursorInPosition(screenWidth/2 - 300, screenHeight/2 - 200, 600, 400) and tocolor(255, 0, 0) or tocolor(0, 255, 0)))
end)
function isCursorInPosition(rectX, rectY, rectW, rectH)
local cursorX, cursorY = getCursorPosition()
cursorX, cursorY = cursorX * screenWidth, cursorY * screenHeight
return (cursorX >= rectX and cursorX <= rectX+rectW) and (cursorY >= rectY and cursorY <= rectY+rectH)
end

 
 
Cím: dxDrawRectangle szín változtatás
Írta: xerox0224 - 2017. február 01. - 10:38:45
Köszi, működik, csak én guiGetScreenSize nélkül akarom megcsinálni, próbáltam kiszedni belőle, és átírni a sajátomra, de nem megy ( bocsi, még kezdő vagyok. ) ( vagy nem is látszódik utána a gomb, vagy más helyen van, vagy nem színeződik át. ) Kérlek tudsz ebben segíteni.
 

dxDrawLine(1063 - 1, 384 - 1, 1063 - 1, 758, tocolor(0, 16, 227, 156), 1, false)
        dxDrawLine(1356, 384 - 1, 1063 - 1, 384 - 1, tocolor(0, 16, 227, 156), 1, false)
        dxDrawLine(1063 - 1, 758, 1356, 758, tocolor(0, 16, 227, 156), 1, false)
        dxDrawLine(1356, 758, 1356, 384 - 1, tocolor(0, 16, 227, 156), 1, false)
        dxDrawRectangle(1063, 384, 293, 374, tocolor(0, 0, 0, 156), false)
        dxDrawRectangle(1062, 383, 294, 17, tocolor(0, 16, 227, 156), false)
        dxDrawText(\"Egyedi skinek\", 1060, 382, 1356, 400, tocolor(255, 255, 255, 255), 1.00, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
        dxDrawRectangle(1082, 421, 254, 35, tocolor(201, 0, 0, 164), false)
        dxDrawRectangle(1082, 466, 254, 35, tocolor(201, 0, 0, 164), false)
        dxDrawRectangle(1082, 511, 254, 35, tocolor(201, 0, 0, 164), false)
        dxDrawRectangle(1082, 556, 254, 35, tocolor(201, 0, 0, 164), false)
        dxDrawRectangle(1082, 601, 254, 35, tocolor(201, 0, 0, 164), false)
        dxDrawRectangle(1082, 646, 254, 35, tocolor(201, 0, 0, 164), false)
        dxDrawRectangle(1082, 691, 254, 35, tocolor(201, 0, 0, 164), false)
        dxDrawText(\"Black Dwarf\", 1081, 420, 1336, 456, tocolor(0, 0, 0, 254), 1.50, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
        dxDrawText(\"Kilépés\", 1082, 690, 1337, 726, tocolor(0, 0, 0, 254), 1.50, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
        dxDrawText(\"-\", 1082, 465, 1337, 501, tocolor(0, 0, 0, 254), 1.50, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
        dxDrawText(\"-\", 1082, 511, 1337, 547, tocolor(0, 0, 0, 254), 1.50, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
        dxDrawText(\"-\", 1082, 555, 1337, 591, tocolor(0, 0, 0, 254), 1.50, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
        dxDrawText(\"-\", 1082, 600, 1337, 636, tocolor(0, 0, 0, 254), 1.50, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
        dxDrawText(\"-\", 1082, 646, 1337, 682, tocolor(0, 0, 0, 254), 1.50, \"default-bold\", \"center\", \"center\", false, false, false, false, false)
Cím: dxDrawRectangle szín változtatás
Írta: BlackSy - 2017. február 01. - 12:27:34
Így más felbontáson elcsúszik.
Cím: dxDrawRectangle szín változtatás
Írta: xerox0224 - 2017. február 01. - 20:02:51
Én ezt értem, illetve tudom is, csak sajnos a guieditornak nincs olyan része ( tudtommal, ha van akkor annak örülnék ) ahol ezt meg lehet csinálni. :/ 
Cím: dxDrawRectangle szín változtatás
Írta: AlexSwamp - 2017. február 02. - 07:04:14
Miért ne lenne? Ott is meg kell adnod a panel pozíciót csupán nem \"számokkal\" töltöd fel, hanem mint az első példában leírt módon (ami amúgy szám értékkel tér vissza, csak hát nyilván első ránézésre szöveg
Cím: dxDrawRectangle szín változtatás
Írta: impreZZa - 2017. február 02. - 21:39:01
Annyi, hogy amit a dxDrawRectangle-nél használsz első 4 argument, azt átmásolod az isCursorInPosition függvénybe.
 
De használd a guiGetScreenSize() -t. :D
 

dxDrawRectangle(1082, 421, 254, 35, tocolor(201, 0, 0, 164), false)
  ->
dxDrawRectangle(1082, 421, 254, 35, (isCursorInPosition(1082, 421, 254, 35) and tocolor(RGB, amikor rajta van az egér) or tocolor(RGB, amikor nincs rajta az egér)), false)
Cím: dxDrawRectangle szín változtatás
Írta: AlexSwamp - 2017. február 03. - 16:18:56
Idézetet írta: impreZZa date=1486067941


   
      Annyi, hogy amit a dxDrawRectangle-nél használsz első 4 argument, azt átmásolod az isCursorInPosition függvénybe.
   
   
      De használd a guiGetScreenSize() -t. :D
   
   

dxDrawRectangle(1082, 421, 254, 35, tocolor(201, 0, 0, 164), false)
  ->
dxDrawRectangle(1082, 421, 254, 35, (isCursorInPosition(1082, 421, 254, 35) and tocolor(RGB, amikor rajta van az egér) or tocolor(RGB, amikor nincs rajta az egér)), false)



De ezt a fix szám megadást ne használja semmiféleképpen, mivel ezzel pl egy 800x600-ban 1082px-el fog odébb kerülni, ami azt jelenti, hogy a képernyőn kívülre fog esni a téma. :D Mondjuk én láttam már szépeket ilyen megoldásra (pl.: 1000+ 500/2 *1,5 + 500 - 150 .... stb stb). :D
Cím: dxDrawRectangle szín változtatás
Írta: xerox0224 - 2017. február 04. - 16:04:19
Na, hülye vagyok bocsi, ezt a guigetscreensize-hoz, vagyis nem nagyon fogtam fel amit mondtál.... :D  Ha csak oda írom hogy screenWidht/2 - 1082 ( pl. ), akkor ez még nem fog  ugyan ott maradni sajnos.
Cím: dxDrawRectangle szín változtatás
Írta: AlexSwamp - 2017. február 05. - 11:34:42
guiGetScreenSize() -> ez arra szolgál hogy lekéri a képernyőd jelenlegi beállítását amit használsz épp az mtaban. Ezt teheted táblába és akkor egy deffinálással kéred le az x és y tengelyre vonatkozó értéket vagy teheted úgy is ahogy leírták már (két elnevezés vesszővel). Ha középről szeretnél ki indulni, mivel mondjuk nem valamelyik sarok vagy képernyő szélét választod akkor mindenképp a képernyőd x tengelyét el kell osztanod kettővel (matek, hiszen a közepe kell neked az adott számból) ebből pedig kivonod panelod magasságát, amit osztanod kell kettővel (megint csak matek végett). Ekkor a panelod középre kerül mindenkinek. Innen tudsz mozogni ha akarsz. Ha széleket választod ott értelem szerűen nem kell osztogatni.