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: Tarack - 2017. Február 25. - 17:27:09

Cím: Kurzor a valóságos box-ban.
Írta: Tarack - 2017. Február 25. - 17:27:09
Sziasztok. Régóta kísérletezek ilyennel, de sajnos sehogy se tudtam megoldani.
 
A probléma az lenne, hogy van egy rectangle amit a world-ben rajzoltam ki. (128*128 méret)
 
Hogyan tudnám lekérnni az egér pozícióját a valóságban úgy, hogy akkor térjen vissza egy true értékkel amikor abban az adott boxban benne van a kurzor? Próbálkoztam már a getCursorPosition utolsó 3 értékével is de sajnos azzal sem jártam sikerrel.
 
 
 
Bármelynemű segítséget köszönök!
Cím: Kurzor a valóságos box-ban.
Írta: Lezlike - 2017. Február 25. - 17:47:13

local sx,sy = guiGetScreenSize()
local cx,cy = getCursorPosition ()
local cx,cy = cx*sx,cy*sy
if cx > --[kezdeti X kordi]-- and cy > --[kezdeti Y kordi]-- and cx < --[vége X kordi]-- and cy < --[vége Y kordi]-- then
--bennevan
else
--nincs benne

 
próbáld meg ezt 
Cím: Kurzor a valóságos box-ban.
Írta: Tarack - 2017. Február 25. - 17:57:38
World koordinátákról beszélek, nem a képernyőről. Értelem szerűen nem működik már próbáltam.
Cím: Kurzor a valóságos box-ban.
Írta: impreZZa - 2017. Február 25. - 18:03:45
Ha elküldöd, hogy hogy rajzoltad ki a rectangle-t, ránézek neked.
Cím: Kurzor a valóságos box-ban.
Írta: Tarack - 2017. Február 25. - 18:04:55

function truck.handleRender ( rotatedX, rotatedY, vehZ, compX, compY, compZ )
     local sx,sy = getScreenFromWorldPosition(compX,compY,compZ+0.2)
     local x,y,z = getElementPosition(localPlayer)
        if sx and sy then
        local distance2 = getDistanceBetweenPoints3D(x,y,z,compX,compY,compZ+0.2)
        local distance2 = distance2-(distance2/3)
        local progress = distance2/12.5
        local screenx, screeny, worldx, worldy, worldz = getCursorPosition()
          local scale = interpolateBetween(0.7, 0, 0, 0, 0, 0, progress, \"OutQuad\")
          dxDrawRectangle(sx,sy,130*scale,120*scale,tocolor(0,0,0,195))
          dxDrawImage(sx,sy,128*scale,128*scale,\"files/open.png\",0,0,0,tocolor(124,197,118,175))
    end
end
Cím: Kurzor a valóságos box-ban.
Írta: Tarack - 2017. Február 25. - 18:15:33
Nos?
Cím: Kurzor a valóságos box-ban.
Írta: Tarack - 2017. Február 25. - 18:43:53
valaki? :)
Cím: Kurzor a valóságos box-ban.
Írta: Tarack - 2017. Február 25. - 22:47:10
Nos ha alaki tudja, akkor annak várom a válaszát. Köszönöm szépen! :)
Cím: Kurzor a valóságos box-ban.
Írta: Live - 2017. Február 25. - 23:37:57

local screenX, screenY = guiGetScreenSize()
function truck.handleRender ( rotatedX, rotatedY, vehZ, compX, compY, compZ )
local sx,sy = getScreenFromWorldPosition(compX,compY,compZ+0.2)
local x,y,z = getElementPosition(localPlayer)

if sx and sy then
   local distance2 = getDistanceBetweenPoints3D(x,y,z,compX,compY,compZ+0.2)
   local distance2 = distance2-(distance2/3)
   local progress = distance2/12.5
   local scale = interpolateBetween(0.7, 0, 0, 0, 0, 0, progress, \"OutQuad\")
   
   if isCursorShowing() then
      local relativeX, relativeY = getCursorPosition()
      local absoluteX, absoluteY = relativeX * screenX, relativeY * screenY
      
      local boxSize = 128 * scale
      local boxX, boxY = sx - (boxSize / 2), sy - (boxSize / 2)
      
      if absoluteX >= boxX and absoluteX <= boxX + boxSize and absoluteY >= boxY and absoluteY <= boxY + boxSize then
         -- mi történjen ha ráviszi a kurzort
      end
   end
   
   dxDrawRectangle(sx,sy,130*scale,120*scale,tocolor(0,0,0,195))
   dxDrawImage(sx,sy,128*scale,128*scale,\"files/open.png\",0,0,0,tocolor(124,197,118,175))
end
end