SmoothMoveCamera: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Removed latest pointless changes.)
(change code style)
 
Line 18: Line 18:
<section name="Clientside Script" class="client" show="true">
<section name="Clientside Script" class="client" show="true">
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
local sm = {}
local sm = {moov = 0, object1 = nil, object2 = nil}
sm.moov = 0
 
sm.object1,sm.object2 = nil,nil
local function removeCamHandler()
local function removeCamHandler()
if(sm.moov == 1)then
    if (sm.moov == 1) then
sm.moov = 0
        sm.moov = 0
end
    end
end
end
   
   
local function camRender()
local function camRender()
if (sm.moov == 1) then
    if (sm.moov == 1) then
local x1,y1,z1 = getElementPosition(sm.object1)
        local x1,y1,z1 = getElementPosition(sm.object1)
local x2,y2,z2 = getElementPosition(sm.object2)
        local x2,y2,z2 = getElementPosition(sm.object2)
setCameraMatrix(x1,y1,z1,x2,y2,z2)
        setCameraMatrix(x1, y1, z1, x2, y2, z2)
else
    else
removeEventHandler("onClientPreRender",root,camRender)
        removeEventHandler("onClientPreRender", root, camRender)
end
    end
end
end


   
   
function smoothMoveCamera(x1,y1,z1,x1t,y1t,z1t,x2,y2,z2,x2t,y2t,z2t,time)
function smoothMoveCamera(x1, y1, z1, x1t, y1t, z1t, x2, y2, z2, x2t, y2t, z2t, time)
if(sm.moov == 1)then return false end
    if (sm.moov == 1) then return false end
sm.object1 = createObject(1337,x1,y1,z1)
    sm.object1 = createObject(1337, x1, y1, z1)
sm.object2 = createObject(1337,x1t,y1t,z1t)
    sm.object2 = createObject(1337, x1t, y1t, z1t)
        setElementCollisionsEnabled (sm.object1,false)  
    setElementCollisionsEnabled(sm.object1, false)  
setElementCollisionsEnabled (sm.object2,false)  
    setElementCollisionsEnabled(sm.object2, false)  
setElementAlpha(sm.object1,0)
    setElementAlpha(sm.object1, 0)
setElementAlpha(sm.object2,0)
    setElementAlpha(sm.object2, 0)
setObjectScale(sm.object1,0.01)
    setObjectScale(sm.object1, 0.01)
setObjectScale(sm.object2,0.01)
    setObjectScale(sm.object2, 0.01)
moveObject(sm.object1,time,x2,y2,z2,0,0,0,"InOutQuad")
    moveObject(sm.object1, time, x2, y2, z2, 0, 0, 0, "InOutQuad")
moveObject(sm.object2,time,x2t,y2t,z2t,0,0,0,"InOutQuad")
    moveObject(sm.object2, time, x2t, y2t, z2t, 0, 0, 0, "InOutQuad")
sm.moov = 1
    sm.moov = 1
setTimer(removeCamHandler,time,1)
    setTimer(removeCamHandler, time, 1)
setTimer(destroyElement,time,1,sm.object1)
    setTimer(destroyElement, time, 1, sm.object1)
setTimer(destroyElement,time,1,sm.object2)
    setTimer(destroyElement, time, 1, sm.object2)
addEventHandler("onClientPreRender",root,camRender)
    addEventHandler("onClientPreRender", root, camRender)
return true
    return true
end
end
</syntaxhighlight>
</syntaxhighlight>
Line 64: Line 62:
<section name="Clientside Script" class="client" show="true">
<section name="Clientside Script" class="client" show="true">
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
local sm = {}
local sm = {moov = 0, object1 = nil, object2 = nil}
sm.moov = 0
 
sm.object1,sm.object2 = nil,nil
local function removeCamHandler()
local function removeCamHandler()
if(sm.moov == 1)then
    if (sm.moov == 1) then
sm.moov = 0
        sm.moov = 0
end
    end
end
end
   
   
local function camRender()
local function camRender()
if (sm.moov == 1) then
    if (sm.moov == 1) then
local x1,y1,z1 = getElementPosition(sm.object1)
        local x1, y1, z1 = getElementPosition(sm.object1)
local x2,y2,z2 = getElementPosition(sm.object2)
        local x2, y2, z2 = getElementPosition(sm.object2)
setCameraMatrix(x1,y1,z1,x2,y2,z2)
        setCameraMatrix(x1, y1, z1, x2, y2, z2)
else
    else
removeEventHandler("onClientPreRender",root,camRender)
        removeEventHandler("onClientPreRender", root, camRender)
end
    end
end
end


function smoothMoveCamera(x1,y1,z1,x1t,y1t,z1t,x2,y2,z2,x2t,y2t,z2t,time)
function smoothMoveCamera(x1, y1, z1, x1t, y1t, z1t, x2, y2, z2, x2t, y2t, z2t, time)
if(sm.moov == 1)then
    if (sm.moov == 1) then
destroyElement(sm.object1)
        destroyElement(sm.object1)
destroyElement(sm.object2)
        destroyElement(sm.object2)
killTimer(timer1)
        killTimer(timer1)
killTimer(timer2)
        killTimer(timer2)
killTimer(timer3)
        killTimer(timer3)
removeEventHandler("onClientPreRender",root,camRender)
        removeEventHandler("onClientPreRender", root, camRender)
end
    end
sm.object1 = createObject(1337,x1,y1,z1)
    sm.object1 = createObject(1337, x1, y1, z1)
sm.object2 = createObject(1337,x1t,y1t,z1t)
    sm.object2 = createObject(1337, x1t, y1t, z1t)
        setElementCollisionsEnabled (sm.object1,false)  
    setElementCollisionsEnabled(sm.object1, false)  
setElementCollisionsEnabled (sm.object2,false)  
    setElementCollisionsEnabled(sm.object2, false)  
setElementAlpha(sm.object1,0)
    setElementAlpha(sm.object1, 0)
setElementAlpha(sm.object2,0)
    setElementAlpha(sm.object2, 0)
setObjectScale(sm.object1,0.01)
    setObjectScale(sm.object1, 0.01)
setObjectScale(sm.object2,0.01)
    setObjectScale(sm.object2, 0.01)
moveObject(sm.object1,time,x2,y2,z2,0,0,0,"InOutQuad")
    moveObject(sm.object1, time, x2, y2, z2, 0, 0, 0, "InOutQuad")
moveObject(sm.object2,time,x2t,y2t,z2t,0,0,0,"InOutQuad")
    moveObject(sm.object2, time, x2t, y2t, z2t, 0, 0, 0, "InOutQuad")
sm.moov = 1
    sm.moov = 1
timer1 = setTimer(removeCamHandler,time,1)
    timer1 = setTimer(removeCamHandler, time, 1)
timer2 = setTimer(destroyElement,time,1,sm.object1)
    timer2 = setTimer(destroyElement, time, 1, sm.object1)
timer3 = setTimer(destroyElement,time,1,sm.object2)
    timer3 = setTimer(destroyElement, time, 1, sm.object2)
addEventHandler("onClientPreRender",root,camRender)
    addEventHandler("onClientPreRender", root, camRender)
return true
    return true
end
end
</syntaxhighlight>
</syntaxhighlight>
Line 116: Line 112:
<section name="Clientside Script" class="client" show="true">
<section name="Clientside Script" class="client" show="true">
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
local sm = {}
local sm = {moov = 0}
sm.moov = 0


local function removeCamHandler()
local function removeCamHandler()
if(sm.moov == 1)then
    if (sm.moov == 1) then
sm.moov = 0
        sm.moov = 0
end
    end
end
end


local start
local start, animTime
local animTime
local tempPos, tempPos2 = {{},{}}, {{},{}}
local tempPos = {{},{}}
local tempPos2 = {{},{}}


local function camRender()
local function camRender()
local now = getTickCount()
    local now = getTickCount()
if (sm.moov == 1) then
    if (sm.moov == 1) then
local x1, y1, z1 = interpolateBetween(tempPos[1][1], tempPos[1][2], tempPos[1][3], tempPos2[1][1], tempPos2[1][2], tempPos2[1][3], (now-start)/animTime, "InOutQuad")
        local x1, y1, z1 = interpolateBetween(tempPos[1][1], tempPos[1][2], tempPos[1][3], tempPos2[1][1], tempPos2[1][2], tempPos2[1][3], (now-start) / animTime, "InOutQuad")
local x2,y2,z2 = interpolateBetween(tempPos[2][1], tempPos[2][2], tempPos[2][3], tempPos2[2][1], tempPos2[2][2], tempPos2[2][3], (now-start)/animTime, "InOutQuad")
        local x2, y2, z2 = interpolateBetween(tempPos[2][1], tempPos[2][2], tempPos[2][3], tempPos2[2][1], tempPos2[2][2], tempPos2[2][3], (now-start) / animTime, "InOutQuad")
setCameraMatrix(x1,y1,z1,x2,y2,z2)
        setCameraMatrix(x1, y1, z1, x2, y2, z2)
else
    else
removeEventHandler("onClientRender",root,camRender)
        removeEventHandler("onClientRender", root, camRender)
fadeCamera(true)
        fadeCamera(true)
end
    end
end
end


function smoothMoveCamera(x1,y1,z1,x1t,y1t,z1t,x2,y2,z2,x2t,y2t,z2t,time)
function smoothMoveCamera(x1, y1, z1, x1t, y1t, z1t, x2, y2, z2, x2t, y2t, z2t, time)
if(sm.moov == 1) then
    if(sm.moov == 1) then
killTimer(timer1)
        killTimer(timer1)
killTimer(timer2)
        killTimer(timer2)
removeEventHandler("onClientRender",root,camRender)
        removeEventHandler("onClientRender", root, camRender)
fadeCamera(true)
        fadeCamera(true)
end
    end
fadeCamera(true)
    fadeCamera(true)
sm.moov = 1
    sm.moov = 1
timer1 = setTimer(removeCamHandler,time,1)
    timer1 = setTimer(removeCamHandler, time, 1)
timer2 = setTimer(fadeCamera, time-1000, 1, false) --
    timer2 = setTimer(fadeCamera, time - 1000, 1, false)
start = getTickCount()
    start = getTickCount()
animTime = time
    animTime = time
tempPos[1] = {x1,y1,z1}
    tempPos[1], tempPos[2] = {x1, y1, z1}, {x1t, y1t, z1t}
tempPos[2] = {x1t,y1t,z1t}
    tempPos2[1], tempPos2[2] = {x2, y2, z2}, {x2t, y2t, z2t}
tempPos2[1] = {x2,y2,z2}
    addEventHandler("onClientRender", root, camRender)
tempPos2[2] = {x2t,y2t,z2t}
    return true
addEventHandler("onClientRender",root,camRender)
return true
end
end
</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 10:37, 29 October 2023


This function allows you to create a cinematic-camera-flight, which moves from a specific position to a specific position.

Syntax

bool smoothMoveCamera ( float x1, float y1, float z1, float x1t, float y1t, float z1t, float x2, float y2, float z2, float x2t, float y2t, float z2t, int time )
  • x1, y1, z1: The camera's start position.
  • x1t, y1t, z1t: The camera's start look at.
  • x2, y2, z2: The camera's end position.
  • x2t, y2t, z2t: The camera's end look at.
  • time: The speed of the camera's movement.

Code

This version returns false if a smoothMoveCamera is in progress:

Click to collapse [-]
Clientside Script
local sm = {moov = 0, object1 = nil, object2 = nil}

local function removeCamHandler()
    if (sm.moov == 1) then
        sm.moov = 0
    end
end
 
local function camRender()
    if (sm.moov == 1) then
        local x1,y1,z1 = getElementPosition(sm.object1)
        local x2,y2,z2 = getElementPosition(sm.object2)
        setCameraMatrix(x1, y1, z1, x2, y2, z2)
    else
        removeEventHandler("onClientPreRender", root, camRender)
    end
end

 
function smoothMoveCamera(x1, y1, z1, x1t, y1t, z1t, x2, y2, z2, x2t, y2t, z2t, time)
    if (sm.moov == 1) then return false end
    sm.object1 = createObject(1337, x1, y1, z1)
    sm.object2 = createObject(1337, x1t, y1t, z1t)
    setElementCollisionsEnabled(sm.object1, false) 
    setElementCollisionsEnabled(sm.object2, false) 
    setElementAlpha(sm.object1, 0)
    setElementAlpha(sm.object2, 0)
    setObjectScale(sm.object1, 0.01)
    setObjectScale(sm.object2, 0.01)
    moveObject(sm.object1, time, x2, y2, z2, 0, 0, 0, "InOutQuad")
    moveObject(sm.object2, time, x2t, y2t, z2t, 0, 0, 0, "InOutQuad")
    sm.moov = 1
    setTimer(removeCamHandler, time, 1)
    setTimer(destroyElement, time, 1, sm.object1)
    setTimer(destroyElement, time, 1, sm.object2)
    addEventHandler("onClientPreRender", root, camRender)
    return true
end

This Version allows cancellation of current smoothMoveCamera progress and doing another one.

Click to collapse [-]
Clientside Script
local sm = {moov = 0, object1 = nil, object2 = nil}

local function removeCamHandler()
    if (sm.moov == 1) then
        sm.moov = 0
    end
end
 
local function camRender()
    if (sm.moov == 1) then
        local x1, y1, z1 = getElementPosition(sm.object1)
        local x2, y2, z2 = getElementPosition(sm.object2)
        setCameraMatrix(x1, y1, z1, x2, y2, z2)
    else
        removeEventHandler("onClientPreRender", root, camRender)
    end
end

function smoothMoveCamera(x1, y1, z1, x1t, y1t, z1t, x2, y2, z2, x2t, y2t, z2t, time)
    if (sm.moov == 1) then
        destroyElement(sm.object1)
        destroyElement(sm.object2)
        killTimer(timer1)
        killTimer(timer2)
        killTimer(timer3)
        removeEventHandler("onClientPreRender", root, camRender)
    end
    sm.object1 = createObject(1337, x1, y1, z1)
    sm.object2 = createObject(1337, x1t, y1t, z1t)
    setElementCollisionsEnabled(sm.object1, false) 
    setElementCollisionsEnabled(sm.object2, false) 
    setElementAlpha(sm.object1, 0)
    setElementAlpha(sm.object2, 0)
    setObjectScale(sm.object1, 0.01)
    setObjectScale(sm.object2, 0.01)
    moveObject(sm.object1, time, x2, y2, z2, 0, 0, 0, "InOutQuad")
    moveObject(sm.object2, time, x2t, y2t, z2t, 0, 0, 0, "InOutQuad")
    sm.moov = 1
    timer1 = setTimer(removeCamHandler, time, 1)
    timer2 = setTimer(destroyElement, time, 1, sm.object1)
    timer3 = setTimer(destroyElement, time, 1, sm.object2)
    addEventHandler("onClientPreRender", root, camRender)
    return true
end

Below example is the function as previous one except it's using interpolateBetween function. Also this version may fix little periodic flickering which happen in previous examples.

Click to collapse [-]
Clientside Script
local sm = {moov = 0}

local function removeCamHandler()
    if (sm.moov == 1) then
        sm.moov = 0
    end
end

local start, animTime
local tempPos, tempPos2 = {{},{}}, {{},{}}

local function camRender()
    local now = getTickCount()
    if (sm.moov == 1) then
        local x1, y1, z1 = interpolateBetween(tempPos[1][1], tempPos[1][2], tempPos[1][3], tempPos2[1][1], tempPos2[1][2], tempPos2[1][3], (now-start) / animTime, "InOutQuad")
        local x2, y2, z2 = interpolateBetween(tempPos[2][1], tempPos[2][2], tempPos[2][3], tempPos2[2][1], tempPos2[2][2], tempPos2[2][3], (now-start) / animTime, "InOutQuad")
        setCameraMatrix(x1, y1, z1, x2, y2, z2)
    else
        removeEventHandler("onClientRender", root, camRender)
        fadeCamera(true)
    end
end

function smoothMoveCamera(x1, y1, z1, x1t, y1t, z1t, x2, y2, z2, x2t, y2t, z2t, time)
    if(sm.moov == 1) then
        killTimer(timer1)
        killTimer(timer2)
        removeEventHandler("onClientRender", root, camRender)
        fadeCamera(true)
    end
    fadeCamera(true)
    sm.moov = 1
    timer1 = setTimer(removeCamHandler, time, 1)
    timer2 = setTimer(fadeCamera, time - 1000, 1, false)
    start = getTickCount()
    animTime = time
    tempPos[1], tempPos[2] = {x1, y1, z1}, {x1t, y1t, z1t}
    tempPos2[1], tempPos2[2] = {x2, y2, z2}, {x2t, y2t, z2t}
    addEventHandler("onClientRender", root, camRender)
    return true
end

See Also

Table functions

  • addTableChangeHandler » This function monitors the changes of a table.
  • pairsByKeys » This function sort pairs table.
  • rangeToTable » This function converts a string range to a table containing number values.
  • setTableProtected » This function protects a table and makes it read-only.
  • setTableToSql » This function is used to save the table in the database (sql).
  • Sort_Functions » These functions are able to sort your tables by a key.
  • getKeyFromValueInTable » This function returns the key of the specified value in a table.
  • getTableFromSql » This functionality is used to obtain saved tables using the function (SetTableToSql ).
  • isValueInTable » This function returns true if the value exists in the table, false if the value does not exist in the table.
  • 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.deepmerge » This function deep merges two tables. Every nested table will be correspondingly merged.
  • table.element » This function returns a new table with only userdata content.
  • table.flip » This function returns the table from the last value to the first value, such as reflection.
  • table.fromString » This function converts string to a table.
  • table.getRandomRows » This function returns random rows from table.
  • 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.

ACL functions

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

Account functions

  • getPlayerFromAccountName » This function is used to obtain a player by the name of his account.
  • isPlayerAccount » This function checks if the account is a valid player account (account exists and is not a guest account)

Camera functions

  • smoothMoveCamera » This function allows you to create a cinematic camera flight.
  • sCamera » The function creates a speed camera in-game, fines speeding vehicles, and notifies the driver and take money from player based on vehicle speed.

Colshape functions

Cursor functions

Drawing functions

Effects functions

  • attachEffect » This function allows you attach an effect to an element.
  • setScreenFlash » This function will make the screen flash(like a screenshot).

Element functions

  • autoAttach » This function attaches one element into another at the same position and rotation they are.
  • attachElementToBone » This function allows you to attach an element to ped bone accurately using new bone functions.
  • getElementDirectionCardialPoint » This function returns the direction of the element according to the wind rose.
  • getElementSpeed » This function returns the specified element's speed in m/s, km/h or mph.
  • getElementUsingData » This function returns table elements that contains the elements data with the given key and value.
  • getElementZoneFullName » This function allows you to retrieve the zone full name of a element.
  • 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.
  • getNearestElement » This function returns the nearest element (of a specific type) to a player.
  • getPositionInFrontOfElement » This function returns position in provided distance away from element, including element's rotation.
  • isElementInAir » This function checks if an element is in air or not.
  • 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.
  • isElementPlayer » This function checks whether the element is a player or not.
  • 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

  • onClientPlayerTimeChange » This code implements an event that is triggered when the player's real time change.
  • onPlayerZoneChange » This code implements an event that is triggered when the player enters a new area on the map.
  • 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.
  • unbindControlKeys » This function allows you to unbind each key bound to a control individually. Use this function with bindControlKeys.
  • getBoundControls » This function returns a table of control names that are bound to the specified key.
  • isCommandHandlerAdded » This function allows you to check if a command is added or not in the respective resource.

Data functions

  • levenshtein » This function can be used to calculate the Levenshtein distance between two strings.
  • gregorianToJalali » This function converts gregorian date to jalali/shamsi date.
  • byte2human » This function converts an integer (number of bytes) into a human-readable unit.
  • capitalize » This function capitalizes a given string.
  • convertDate » This function converts date to another look.
  • 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.
  • findRotation3D » This function takes two sets of XYZ coordinates. It returns the 3D direction from point A to point B.
  • findRotation » This function takes two points and returns the direction from point A to point B.
  • formatDate » This function formats a date on the basis of a format string and returns it.
  • formatNumber » This function formats large numbers by adding commas.
  • generateRandomASCIIString » This function returns a random string which uses ASCII characters.
  • generateString » This function generates a random string with any characters.
  • getAge » This function calculates the age of a given birthday.
  • getDistanceBetweenElements » Returns the distance between two elements.
  • 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.
  • getElementRelatedAngle » This function returns the related angle between one element to another. This is useful to check which side an element is to another.
  • getFreeDimension » This function get free dimension.
  • 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.
  • getRealMonth » This function returns the current month 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.
  • gradientString » This function transforms a string in a new coloured gradient string.
  • hex2rgb » This function convert hex to rgb.
  • hexColorToRGB » This function convert hex string/number to RGBA values.
  • 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.
  • RGBToHSV » This function convert RGB to HSV color space.
  • RGBToDecimal » This function convert RGB to Decimal color.
  • 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.
  • string.insert » This function inserts a string within another string at a given position.
  • splitMultiple » This function improves the split function so that multiple characters can be used as the split at character.
  • switch » This function allows the value of a variable or expression to control the flow of program execution via a multiway branch.
  • tocolor2rgba » This function convert tocolor to rgba.
  • 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.
  • fixPersianString » This function returns a fixed sorted bilingual RTL for strings consisting of Farsi/Arabic and English.

GUI functions

  • centerWindow » This function centers a CEGUI window element responsively in any resolution.
  • isMouseOnGUICloseButton » This function allows you to check whether the mouse cursor/pointer is within a gui-window's native close button.
  • isMouseOnGuiElement » This function allows you to check whether or not your mouse is over a specific gui element, this is especially useful if the gui element has a parent.
  • guiMoveElement » This function moves guiElement by/like using moveObject.
  • guiSetStaticImageMovable » This function allows you to move a static image like a gui window.
Comboboxes
Gridlists
Labels
  • guiLabelAddEffect » This function add an effects to the gui-label like (shadow, outline).

Marker functions

Math functions

  • reMap » Re-maps a number from one range to another.
  • math.clamp » This function returns the number between range of numbers or it's minimum or maximum.
  • math.getBezierPoint » Get N-th order bezier point.
  • math.hypot » This function returns the Hypotenuse of the triangle given by sides x and y.
  • math.isPointInPolygon » Check if point is inside polygon or not.
  • math.lerp » Get val between two integer.
  • math.percent » This function returns a percentage from two number values.
  • math.polygonArea » Compute area of any polygon.
  • math.randomDiff » Generates a pseudo-random integer that's always different from the last random number generated.
  • math.rotVecToEulerAngle » Rotation Vector To Euler Angle
  • math.round » Rounds a number whereas the number of decimals to keep and the method may be set.
  • mathNumber » This function is a workaround for the client-side floating-point precision of 24-bits.
  • math.percentProgress » Returns a percentage progress from two specific values.
  • math.average » This function returns the simple arithmetic mean of multiple numbers.
  • math.absin » This function returns a formula representing the just positive half of a sine wave.

Map functions

Ped functions

  • getAlivePlayersInTeam » This function returns a table of the alive players in a team.
  • 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.
  • getPedGender » This function allows you to get peds their gender.
  • 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.
  • getPedWeaponSkill » This function returns a ped's corresponding weapon skill level name.
  • getPedHitBone » This function gets the approximate number of the bone where the ped is hit.
  • 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.
  • getPlayersInPhotograph » This function returns a table of all players in photograph.
  • getPlayersInVehicles » This function returns a table of the players insides vehicles from a specified dimension.
  • getPlayerNameFromID » This function will get the player name from the ID element data.
  • 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.
  • isPedDiving » This feature checks that pedestrian is diving in the water.
  • isPedDrivingVehicle » This function checks if a specified pedestrian is driving a vehicle.
  • isPedNearbyWall » This function checks if player/ped is nearby a objects like buildings or walls.
  • isPlayerInTeam » This function checks if a player is in a specified team.
  • setPedAttack » This function will make a ped attack a specified target.
  • setPedFollow » This function will make a ped follow a specified target.

Player functions

Resource functions

Sound functions

Browser functions

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

Team functions

Vehicle functions

Weapon functions

Object functions

XML functions

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

Engine functions

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.
  • checkPassiveTimer » This function allows you to use passive timers in your conditions. For example you want to prevent players repeatedly using a command.
  • coroutine.resume » This function applies a fix for hidden coroutine error messages.
  • compact » This function create table containing variables and their values.
  • getBanBySerial » This function returns the ban if the serial is banned.
  • getBanFromName » This functions returns the ban of the given playername.
  • getCurrentFPS » This function returns the frames per second at which GTA: SA is running.
  • getSkinNameFromID » This function returns the name of the skin from the given id.
  • IfElse » This function returns one of two values based on a boolean expression.
  • isLastExecuteInTimer » This function check if the execute is the last execute in the timer.
  • 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.
  • PlotTrajectoryAtTime » Calculate projectile/water trajectory.
  • preprocessor » This function allow you to use gcc macros.
  • vector3:compare » This method checks whether two vectors match, with optional precision.
  • svgCreateRoundedRectangle » This function creates a rectangle with rounded edges.
  • debounce » This function is removing unwanted input noise.
  • listAllFiles » This function lists all files and subdirectories within a given directory and its subdirectories.

String functions