RU/getElementSpeed

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

Эта функция возвращает скорость элемента в м/с, км/ч или миль/ч.

Синтаксис

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

Аргументы

Дополнительные аргументы

Примечание. При использовании необязательных аргументов Вам может потребоваться предоставить все аргументы перед тем аргументом, который Вы хотите использовать. Для более подробной информации ознакомьтесь с необязательными аргументами.

  • Unit: Единицы измерения. Если не установлены, вернет в м/с. Они могут быть заданы текстом или числом:
    • 0 or m/s: метров в секунду.
    • 1 or km/h: километров в час.
    • 2 or mph: миль в час.

Возврат

Вернет скорость элемнта если он есть, или nil если его нет.

Код

Click to collapse [-]
Для сервера и клиента
function getElementSpeed(theElement, unit)
    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)")
    unit = unit == nil and 0 or ((not tonumber(unit)) and unit or tonumber(unit))
    local mult = (unit == 0 or unit == "m/s") and 50 or ((unit == 1 or unit == "km/h") and 180 or 111.84681456)
    return (Vector3(getElementVelocity(theElement)) * mult).length
end

Пример

Click to collapse [-]
Клиент
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("onClientRender", getRootElement(), drawSpeed)

Смотрите также

Функции таблиц

  • pairsByKeys » Эта функция сортирует pairs таблицы.

ACL фунции

  • aclGroupClone » Эта функция создает копию группы с другим названием с/буз ACL'ов и/или объектов.

События

  • isEventHandlerAdded » Эта функция проверяет, создано событие или нет.

Функции машины

  • getVehicleRPM » Эта функция получает кол-во оборотов машины.