GetGaragePosition: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Example.)
 
(One intermediate revision by one other user not shown)
Line 12: Line 12:


===Returns===
===Returns===
Returns three ''float''s indicating the position of the garage, ''x'', ''y'' and ''z'' respectively.
Returns three ''float''s indicating the position of the garage, ''x'', ''y'' and ''z'' respectively, false when garageID was invalid.


==Example==  
==Example==  
<section name="Client" class="client" show="true">
<section name="Client" class="client" show="true">
This element has to create a blip at the nearest garage and removes it in 10 seconds. (untested)
This element has to create a blip at the nearest garage and removes it in 10 seconds.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function getNearestGarageFromElement (element)
function getNearestGarageFromElement (element)
   local nearestID = -1
   nearestID = -1
   local nearestDistance = 999999999999
   nearestDistance = 999999999999
   local ex,ey,ez = getElementPosition (element)
   local ex,ey,ez = getElementPosition (element)
   for i=0,49 do
   for i=0,49 do
     local x,y,z = getGaragePosition (i)
     local x,y,z = getGaragePosition (i)
     if (getDistanceBetweenPoints3D (ex,ey,ez,x,y,z) < nearestDistance) then
     if (getDistanceBetweenPoints3D (ex,ey,ez,x,y,z) < nearestDistance) then
       local nearestID = i
       nearestID = i
      nearestDistance = getDistanceBetweenPoints3D (ex,ey,ez,x,y,z)
     end
     end
   end
   end
   return nearestID
  local _nearestID = nearestID
  nearestID = nil
   return _nearestID
end
end



Latest revision as of 03:42, 25 September 2018

This function outputs X, Y and Z position of given garage.

Syntax

float, float, float getGaragePosition ( int garageID )

Required Arguments

  • garageID: The garage ID that represents the garage door that is being checked.

Returns

Returns three floats indicating the position of the garage, x, y and z respectively, false when garageID was invalid.

Example

Click to collapse [-]
Client

This element has to create a blip at the nearest garage and removes it in 10 seconds.

function getNearestGarageFromElement (element)
  nearestID = -1
  nearestDistance = 999999999999
  local ex,ey,ez = getElementPosition (element)
  for i=0,49 do
    local x,y,z = getGaragePosition (i)
    if (getDistanceBetweenPoints3D (ex,ey,ez,x,y,z) < nearestDistance) then
      nearestID = i
      nearestDistance = getDistanceBetweenPoints3D (ex,ey,ez,x,y,z)
    end
  end
  local _nearestID = nearestID
  nearestID = nil
  return _nearestID
end

addCommandHandler ("findgarage",
function(command)
  local garageID = getNearestGarageFromElement (getLocalPlayer())
  if (garageID ~= -1) then
    local x,y,z = getGaragePosition (garageID)
    local garageBlip = createBlip (x,y,z,41)
    setTimer (
      function (garageBlip)
        destroyElement (garageBlip)
      end
    ,10000,1,garageBlip)
  end
end)

See Also