GetElementSpeed

From Multi Theft Auto: Wiki
Jump to: navigation, search

This function returns the speed of an element in m/s, km/h or mph.

Syntax

float/nil getElementSpeed ( element theElement [, int/string unit="m/s" ] )

Required arguments

Optional arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.

  • Unit: The unit of the speed returned. If not specified, the unit will be m/s. It can be specified as a string or number as follows:
    • 0 or m/s: meters per second (speed unit of the International System of Units, used in formal contexts).
    • 1 or km/h: kilometres per hour (the most common speed unit, used in most countries).
    • 2 or mph: miles per hour (used in some English-speaking countries).

Returns

This function returns a number containing the element's speed if the arguments provided are valid. It returns nil plus an error otherwise.

Code

Click to collapse [-]
Function source

It is recommended to use MTA:SA 1.4 or higher with this function to use OOP.

function getElementSpeed(theElement, unit)
    -- Check arguments for errors
    assert(isElement(theElement), "Bad argument 1 @ getElementSpeed (element expected, got " .. type(theElement) .. ")")
    local elementType = getElementType(theElement)
    assert(elementType == "player" or elementType == "ped" or elementType == "object" or elementType == "vehicle" or elementType == "projectile", "Invalid element type @ getElementSpeed (player/ped/object/vehicle/projectile expected, got " .. elementType .. ")")
    assert((unit == nil or type(unit) == "string" or type(unit) == "number") and (unit == nil or (tonumber(unit) and (tonumber(unit) == 0 or tonumber(unit) == 1 or tonumber(unit) == 2)) or unit == "m/s" or unit == "km/h" or unit == "mph"), "Bad argument 2 @ getElementSpeed (invalid speed unit)")
    -- Default to m/s if no unit specified and 'ignore' argument type if the string contains a number
    unit = unit == nil and 0 or ((not tonumber(unit)) and unit or tonumber(unit))
    -- Setup our multiplier to convert the velocity to the specified unit
    local mult = (unit == 0 or unit == "m/s") and 50 or ((unit == 1 or unit == "km/h") and 180 or 111.84681456)
    -- Return the speed by calculating the length of the velocity vector, after converting the velocity to the specified unit
    return (Vector3(getElementVelocity(theElement)) * mult).length
end

Example

Click to collapse [-]
Clientside example

This example draws the local player's speed rounded to a single decimal in the top-right corner of the screen in different units.

local sx = guiGetScreenSize()
local function drawSpeed()
    local vehicle = getPedOccupiedVehicle(getLocalPlayer())
    local speedms, speedkmh, speedmph = getElementSpeed(vehicle), getElementSpeed(vehicle, 1), getElementSpeed(vehicle, 2)
    local roundedSpeedms, roundedSpeedkmh, roundedSpeedmph = math.floor(speedms) == speedms and speedms or string.format(speedms, "%.1f"), math.floor(speedkmh) == speedkmh and speedkmh or string.format(speedkmh, "%.1f"), math.floor(speedmph) == speedmph and speedmph or string.format(speedmph, "%.1f")
    local speedoText = "Current speed: " .. roundedSpeedms .. " m/s | " .. roundedSpeedkmh .. " km/h | " .. roundedSpeedmph .. " mph"
    dxDrawText(speedoText, sx - dxGetTextWidth(speedoText), 0)
end
addEventHandler("onClientPreRender", getRootElement(), drawSpeed)

See also

ACL functions

  • aclGroupClone » This function clone a group to another group with/without ACLs and/or objects.
  • getPlayerAcls » This function returns a table of all ACL groups on a player.
  • isPlayerInACL » This function checks if a player element is in an ACL group.
  • renameAclGroup » This function gives an existing ACL group a new name.

Account functions

Camera functions

  • smoothMoveCamera » This function allows you to create a cinematic camera flight.

Cursor functions

  • getCursorMovedOn » This function checks in which way the cursor is currently moving.

Drawing functions

Effects functions

  • attachEffect » This function allows you attach an effect to an element.

Elements functions

  • getElementSpeed » This function returns the specified element's speed in m/s, km/h or mph.
  • getElementsInDimension » This function returns a table of elements that are in the specified dimension.
  • getElementsWithinMarker » This function returns a table of elements that are within a marker's collision shape.
  • isElementInPhotograph » This function checks if an element is in the player's camera picture area.
  • isElementInRange » This function allows you to check if an element's range to a main point is within the maximum range.
  • isElementMoving» This function checks if an element is moving.
  • isElementWithinAColShape» This function checks if an element is within a collision shape element.
  • multi_check » This function checks one element to many, handy and clean.
  • setElementSpeed » This function allows you to set the speed of an element in kph or mph units.

Events

  • onVehicleWeaponFire » This code implements an event that is triggered when a player in a vehicle fires a vehicle's weapon.

Input functions

  • bindControlKeys » This function allows you to bind each key bound to a control individually. Doing this bypasses a little MTA restriction.
  • getBoundControls » This function returns a table of control names that are bound to the specified key.
  • unbindControlKeys » This function allows you to unbind each key bound to a control individually. Use this function with bindControlKeys.
  • getClipboard » This event returns the contents of the clipboard by pressing ctrl + v / ctrl + V. Event triggered ONLY if cursor is showing.

Data functions

  • byte2human » This function converts an integer (number of bytes) into a human-readable unit.
  • capitalize » This function capitalizes a given string.
  • convertNumber » This function converts and formats large numbers.
  • convertServerTickToTimeStamp » This function converts server ticks to a unix timestamp.
  • convertTextToSpeech » This function converts the provided text to a speech in the provided language which players can hear.
  • findRotation » This function takes two points and returns the direction from point A to point B.
  • findRotation3D » This function takes two sets of XYZ coordinates. It returns the 3D direction from point A to point B.
  • FormatDate » This function formats a date on the basis of a format string and returns it.
  • generateString » This function generates a random string with any characters.
  • generateRandomASCIIString » This function returns a random string which uses ASCII characters.
  • getAge » This function calculates the age of a given birthday.
  • getDistanceBetweenPointAndSegment2D » This function takes point coordinates and line (a segment) starting and ending coordinates. It returns the shortest distance between the point and the line.
  • getEasterDate » This function returns easter date monthday and month for a given year.
  • getKeyFromValueInTable » This function returns the key of the specified value in a table.
  • getOffsetFromXYZ » This function allows you to take an entity and a position and calculate the relative offset between them accounting for rotations.
  • getPointFromDistanceRotation » This function finds a point based on a starting point, direction and distance.
  • getRealMonthH » This function convert english months to arabic months
  • getRealMonthM » This function gives you the real months name
  • getRGColorFromPercentage »This function returns two integers representing red and green colors according to the specified percentage.
  • getScreenRotationFromWorldPosition » This function returns a screen relative rotation to a world position.
  • getTimestamp » This function returns the UNIX timestamp of a specified date and time.
  • isLeapYear » This function returns a boolean representing if a given year is a leap year.
  • isValidMail » This function checks whether a provided e-mail string is valid.
  • removeHex » This function is used to remove hexadecimal numbers (colors, for example) from strings.
  • RGBToHex » This function returns a string representing the color in hexadecimal.
  • secondsToTimeDesc » This function converts a plain seconds-integer into a user-friendly time description.
  • string.count » This function counts the amount of occurences of a string in a string.
  • string.explode » This function splits a string at a given separator pattern and returns a table with the pieces.
  • switch » This function allows the value of a variable or expression to control the flow of program execution via a multiway branch.
  • toHex » This function converts a decimal number to a hexadecimal number, as a fix to be used client-side.
  • var dump » This function outputs information about one or more variables using outputConsole.
  • wavelengthToRGBA » This function converts a physical wavelength of light to a RGBA color.
  • getDistanceBetweenElements » Esta funcion sirve para obtener la distancia entre dos elementos.
  • isLowerOrUpper »This function checks whether the letter is large or small.

GUI functions

  • centerWindow » This function centers a CEGUI window element responsively in any resolution.
  • guiMoveElement » This function moves guiElement by/like using moveObject.
Comboboxes
Gridlists
Labels
  • guiLabelAddEffect » This function add a effects to the gui-label like (shadow, outline).

Marker functions

Math functions

  • mathNumber » This function is a workaround for the client-side floating-point precision of 24-bits.
  • math.hypot » This function returns the Hypotenuse of the triangle given by sides x and y.
  • math.percent » This function returns a percentage from two number values.
  • math.round » Rounds a number whereas the number of decimals to keep and the method may be set.
  • reMap » Re-maps a number from one range to another.
  • math.isPointInPolygon » Check if point is inside polygon or not.
  • math.polygonArea » Compute area of any polygon.
  • math.randomDiff » Generates a pseudo-random integer that's always different from the last random number generated.

Ped functions

  • getAlivePlayers » This function returns a table of the alive players client-side.
  • getAlivePlayersInTeam » This function returns a table of the alive players in a team.
  • getPlayersInVehicles » This function returns a table of the players insides vehicles from a specified dimension.
  • getGuestPlayers » This function gets a players not login or players Guest .
  • getOnlineAdmins » This function returns a table of all logged-in administrators.
  • getPedEyesPosition » This function allows you to get peds eyes position.
  • getPedMaxHealth » This function returns a pedestrians's maximum health by converting it from their maximum health stat.
  • getPedMaxOxygenLevel » This function returns a ped's maximum oxygen level by converting it from their maximum underwater stamina stat.
  • getPlayerFromNamePart » This function returns a player from partial name.
  • getPlayerFromSerial » This function returns a player from their serial.
  • getPlayersByData » This function returns a table of players that have the specified data name.
  • getPlayersInGroup » This function returns all Players In Group .
  • getPlayersInPhotograph » This function returns a table of all players in photograph.
  • isPedAiming» This function checks if a pedestrian is aiming their weapon.
  • isPedAimingNearPed » This is similar to isPedAiming but uses a colshape to be more precise.
  • isPedDrivingVehicle » This function checks if a specified pedestrian is driving a vehicle.
  • isPlayerInTeam » This function checks if a player is in a specified team.

Player functions

  • countPlayersInRange » This function returns the number of players that are within a certain range of the specified coordinates.

Resource functions

Sound functions

Browser functions

  • playVideo » This function plays a video on the screen.

Table functions

  • rangeToTable » This function converts a string range to a table containing number values.
  • setTableProtected » This function protects a table and makes it read-only.
  • Sort_Functions » These functions are able to sort your tables by a key.
  • table.compare » This function checks whether two given tables are equal.
  • table.copy » This function copies a whole table and all the tables in that table.
  • table.empty » This function checks whether a table is empty.
  • table.map » This function goes through a table and replaces every field with the return of the passed function, where the field's value is passed as first argument and optionally more arguments.
  • table.merge » This function merges two or more tables together.
  • table.random » This function retrieves a random value from a table.
  • table.removeValue » This function removes a specified value from a table.
  • table.size » This function returns the absolute size of a table.

Team functions

Vehicle funcions

Weapon functions

XML functions

  • getXMLNodes » This function returns all children of a XML node.

Utility

  • animate » This function allows you to use interpolateBetween without render event and easily used.
  • callClientFunction » This function allows you to call any client-side function from the server's side.
  • callServerFunction » This function allows you to call any server-side function from the client's side.
  • Check » This function checks if its arguments are of the right type and calls the error-function if one is not.
  • coroutine.resume » This function applies a fix for hidden coroutine error messages.
  • getBanFromName » This functions returns the ban of the given playername.
  • getCurrentFPS » This function returns the frames per second at which GTA: SA is running.
  • IfElse » This function returns one of two values based on a boolean expression.
  • isCursorOnElement » This function checks whether the cursor is in a particular area.
  • isMouseInCircle » This function checks if a cursor position is in circular area or not.
  • isMouseInPosition » This function allows you to check whether the mouse cursor/pointer is within a rectangular position.
  • iterElements » This function returns a time-saving iterator for your for-loops.
  • thisCommandHandlersExist » This method checks a string if this exist as command Handlers
  • vector3:compare » This method checks whether two vectors match, with optional precision.