CallClientFunction
From Multi Theft Auto: Wiki
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
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
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
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
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.
- getPointFromDistanceRotation » Finds a point based on a starting point, direction and distance.
- getTimestamp » With this function you can get the UNIX timestamp.
- 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.
- setTableProtected » Protects a table and makes it read-only.
- 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.
- getAlivePlayersInTeam » This function returns a table of the alive players in a team.
- getResourceSettings » This function returns a table of the resource settings.
- 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.
- coroutine.resume » Fix for hidden coroutine error messages
- getPlayerFromNamePart » This function allows you to get player From his Name part.