CallClientFunction

From Multi Theft Auto: Wiki

Jump to: navigation, search

This function allows you to call any clientside function from the server's side. Of course only those which are available clientside. It doesn't matter if it's a MTA function, a Lua standard function or a custom function.

Numbers are automatically converted to a string and vice versa clientside to avoid data being lost. If you don't need this feature just delete it.

Important Note: Bear in mind that the funcname has to be a string! Avoid using callClientFunction in the serverside onResourceStart-event since the client did not add the event handler onServerCallsClientFunction yet.

Syntax

void callClientFunction( element client, string funcname, [ var arg1, ... ] )

Required Arguments

  • client: The element of the player who should be affected.
  • funcname: The name of the function that should be called clientside. May also be a function in a table, e.g. "math.round".

Optional Arguments

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

  • arg1-argn: The arguments that should be passed to the function.

Code

Click to collapse [-]
Serverside Script

function callClientFunction(client, funcname, ...)
    local arg = { ... }
    if (arg[1]) then
        for key, value in next, arg do
            if (type(value) == "number") then arg[key] = tostring(value) end
        end
    end
    -- If the clientside event handler is not in the same resource, replace 'resourceRoot' with the appropriate element
    triggerClientEvent(client, "onServerCallsClientFunction", resourceRoot, funcname, unpack(arg or {}))
end
Click to collapse [-]
Clientside Script

function callClientFunction(funcname, ...)
    local arg = { ... }
    if (arg[1]) then
        for key, value in next, arg do arg[key] = tonumber(value) or value end
    end
    loadstring("return "..funcname)()(unpack(arg))
end
addEvent("onServerCallsClientFunction", true)
addEventHandler("onServerCallsClientFunction", resourceRoot, callClientFunction)

Example

Click to collapse [-]
Server

This example sets the player's minute duration.

-- define the onPlayerJoin handler function
function onPlayerJoin()
    -- set the minute duration
    callClientFunction(source, "setMinuteDuration", 10000)
end
-- add the event handler
addEventHandler("onPlayerJoin", root, onPlayerJoin)

Author: NeonBlack

See Also

  • callClientFunction » This function allows you to call any clientside 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 it's arguments are of the right types and calls the error-function if one isn't.
  • doForAllElements » This function can be used to execute a specified function for all elements of a specified type.
  • iterElements » Returns an iterator for your for loops saving time typing ipairs( getElementsByType( type ) ), instead you type: iterElements( type ).
  • findRotation » Takes two points and returns the direction from point A to point B.
  • FormatDate » Formats a date on the basis of a format string and returns it.
  • getAge » This function calculates the age of a birthday.
  • IfElse » Returns one of two values based on a boolean expression.
  • isLeapYear » Checks if the given year is a leap year.
  • math.round » Rounds a number whereas the number of decimals to keep and the method may be set.
  • setVehicleGravityPoint » This clientside function sets a vehicle's gravity in the direction of a 3 dimensional coordinate with the strength specified.
  • string.explode » This function splits a string at a given separator pattern and returns a table with the pieces.
  • table.copy » This function copies a whole table and all the tables in that 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.size » Finds the absolute size of a table.
  • var_dump »This function outputs information about one or more variables using outputConsole().
  • RGBToHex » This function returns a string representing the color in hexadecimal.
  • onVehicleWeaponFire » This code implements an event that is triggered when a player in a vehicle fires a vehicles weapon.
  • toHex » This function converts a decimal number to a hexadecimal number, as a fix to be used clientside.
  • getElementSpeed » This function allows you to get element speed in kph or mph units.
  • setElementSpeed » This function allows you to set moving element speed in kph or mph units.
  • centerWindow » This function center the window in any resolution.
Personal tools