GetGroundPosition: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
m (Fixed typo; improved example) |
||
(8 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
This function gets the | {{Client function}} | ||
This function gets the Z level of the highest ground below a point. | |||
It is required that the point is near enough to the local player so that it's within the area where collision data is loaded. If this is not the case, an incorrect position will be returned. | |||
==Syntax== | ==Syntax== | ||
Line 9: | Line 11: | ||
===Required Arguments=== | ===Required Arguments=== | ||
*'''x:''' A floating point number representing the X coordinate | *'''x:''' A floating point number representing the X world coordinate of the point. | ||
*'''y:''' A floating point number representing the Y coordinate | *'''y:''' A floating point number representing the Y world coordinate of the point. | ||
*'''z:''' A floating point number representing the Z coordinate | *'''z:''' A floating point number representing the Z world coordinate of the point. | ||
===Returns=== | ===Returns=== | ||
Returns a float with the highest | Returns a float with the highest ground-level Z coord if parameters are valid, ''0'' if the point you tried to test is outside the loaded world map, ''false'' otherwise. | ||
==Example== | ==Example== | ||
This clientside function determines if a player is under a ceiling. | This clientside function determines if a player is under a ceiling or not. | ||
<syntaxhighlight lang="lua"> | |||
function isPlayerUnderCover ( thePlayer ) | |||
--we get the player's position | |||
local px, py, pz = getElementPosition ( thePlayer ) | |||
--we'll check for ground level at the player's position, and also 500 units over him. | |||
--if these ground levels match, it must mean there were no obstacles (such as a ceiling) over the player, | |||
return getGroundPosition ( px, py, pz ) ~= getGroundPosition ( px, py, pz + 530 ) | |||
end | |||
</syntaxhighlight> | |||
==Another example== | |||
This clientside function returns the distance between you and the ground (if there is) | |||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
function | function getGroundDistance( thePlayer, zHeight ) | ||
-- | local x,y,z = getElementPosition(thePlayer) -- get position | ||
local groundPosition = getGroundPosition(x,y,z) -- get default ground pos | |||
local hit, x1, y1, groundPosition = processLineOfSight(x,y,z+1,x,y,z-(zHeight+0.7)) -- using zHeight get a better ground position | |||
local distance = getDistanceBetweenPoints3D(x, y, z, x,y, (groundPosition or z)) -- get distance between both positions | |||
return distance -- return the distance | |||
-- | |||
end | end | ||
-- Some cool examples: | |||
addCommandHandler("gdistance",function(_, amount) | |||
local distance = getGroundDistance(localPlayer, tonumber(amount)) | |||
outputChatBox("The distance to reach ground is: " .. distance) | |||
end) | |||
addCommandHandler("do_im_flying",function() | |||
local distance = getGroundDistance(localPlayer, 20) | |||
if distance > 1 then | |||
outputChatBox("Superman!! the distance between you and ground is: " .. distance) | |||
else | |||
outputChatBox("naah") | |||
end | |||
end) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==See Also== | ==See Also== | ||
{{Client_world_functions}} | {{Client_world_functions}} | ||
[[ru:getGroundPosition]] |
Latest revision as of 05:23, 12 December 2023
This function gets the Z level of the highest ground below a point.
It is required that the point is near enough to the local player so that it's within the area where collision data is loaded. If this is not the case, an incorrect position will be returned.
Syntax
float getGroundPosition ( float x, float y, float z )
Required Arguments
- x: A floating point number representing the X world coordinate of the point.
- y: A floating point number representing the Y world coordinate of the point.
- z: A floating point number representing the Z world coordinate of the point.
Returns
Returns a float with the highest ground-level Z coord if parameters are valid, 0 if the point you tried to test is outside the loaded world map, false otherwise.
Example
This clientside function determines if a player is under a ceiling or not.
function isPlayerUnderCover ( thePlayer ) --we get the player's position local px, py, pz = getElementPosition ( thePlayer ) --we'll check for ground level at the player's position, and also 500 units over him. --if these ground levels match, it must mean there were no obstacles (such as a ceiling) over the player, return getGroundPosition ( px, py, pz ) ~= getGroundPosition ( px, py, pz + 530 ) end
Another example
This clientside function returns the distance between you and the ground (if there is)
function getGroundDistance( thePlayer, zHeight ) local x,y,z = getElementPosition(thePlayer) -- get position local groundPosition = getGroundPosition(x,y,z) -- get default ground pos local hit, x1, y1, groundPosition = processLineOfSight(x,y,z+1,x,y,z-(zHeight+0.7)) -- using zHeight get a better ground position local distance = getDistanceBetweenPoints3D(x, y, z, x,y, (groundPosition or z)) -- get distance between both positions return distance -- return the distance end -- Some cool examples: addCommandHandler("gdistance",function(_, amount) local distance = getGroundDistance(localPlayer, tonumber(amount)) outputChatBox("The distance to reach ground is: " .. distance) end) addCommandHandler("do_im_flying",function() local distance = getGroundDistance(localPlayer, 20) if distance > 1 then outputChatBox("Superman!! the distance between you and ground is: " .. distance) else outputChatBox("naah") end end)
See Also
- createSWATRope
- getBirdsEnabled
- getCoronaReflectionsEnabled
- getGarageBoundingBox
- getGaragePosition
- getGarageSize
- getGroundPosition
- getInteriorFurnitureEnabled
- getNearClipDistance
- getPedsLODDistance
- getRoofPosition
- getScreenFromWorldPosition
- getVehiclesLODDistance
- getWorldFromScreenPosition
- isAmbientSoundEnabled
- isLineOfSightClear
- isWorldSoundEnabled
- processLineOfSight
- resetAmbientSounds
- resetBlurLevel
- resetColorFilter
- resetCoronaReflectionsEnabled
- resetNearClipDistance
- resetPedsLODDistance
- resetVehiclesLODDistance
- resetWorldSounds
- setAmbientSoundEnabled
- setBirdsEnabled
- setColorFilter
- setCoronaReflectionsEnabled
- setInteriorFurnitureEnabled
- setInteriorSoundsEnabled
- setNearClipDistance
- setPedsLODDistance
- setVehiclesLODDistance
- setWorldSoundEnabled
- testLineAgainstWater
- areTrafficLightsLocked
- getAircraftMaxHeight
- getAircraftMaxVelocity
- getCloudsEnabled
- getFarClipDistance
- getFogDistance
- getGameSpeed
- getGravity
- getHeatHaze
- getInteriorSoundsEnabled
- getJetpackMaxHeight
- getMinuteDuration
- getMoonSize
- getOcclusionsEnabled
- getRainLevel
- getSunColor
- getSunSize
- getTime
- getTrafficLightState
- getWeather
- getWindVelocity
- getSkyGradient
- getPlayerBlurLevel
- getZoneName
- isGarageOpen
- removeWorldModel
- resetFarClipDistance
- resetFogDistance
- resetHeatHaze
- resetMoonSize
- resetRainLevel
- resetSkyGradient
- resetSunColor
- resetSunSize
- resetWindVelocity
- restoreAllWorldModels
- restoreWorldModel
- setAircraftMaxHeight
- setAircraftMaxVelocity
- setCloudsEnabled
- setFarClipDistance
- setFogDistance
- setGameSpeed
- setGarageOpen
- setGravity
- setHeatHaze
- setInteriorSoundsEnabled
- setMinuteDuration
- setMoonSize
- setOcclusionsEnabled
- setRainLevel
- setSkyGradient
- setSunColor
- setSunSize
- setTime
- setTrafficLightState
- setTrafficLightsLocked
- setWeather
- setWeatherBlended
- setWindVelocity
- setJetpackMaxHeight
- setPlayerBlurLevel