Call: Difference between revisions
m (Adding code tag where necessary) |
No edit summary |
||
Line 24: | Line 24: | ||
You cannot call a server function from the client or vice versa. See [[triggerServerEvent]] and [[triggerClientEvent]] for possibilities to do that. | You cannot call a server function from the client or vice versa. See [[triggerServerEvent]] and [[triggerClientEvent]] for possibilities to do that. | ||
There is an easier syntax replacing this function. For example, you can instead of:<br> | There is an easier syntax replacing this function. For example, you can instead of:<br> | ||
<syntaxhighlight lang="lua">call ( getResourceFromName ( "resource" ), "exportedFunction", 1, "2", "three" )</syntaxhighlight> | <syntaxhighlight lang="lua">call ( getResourceFromName ( "resource" ), "exportedFunction", 1, "2", "three" )</syntaxhighlight> | ||
Line 32: | Line 31: | ||
<syntaxhighlight lang="lua">exports["resource-name"]:exportedFunction ( 1, "2", "three" )</syntaxhighlight> | <syntaxhighlight lang="lua">exports["resource-name"]:exportedFunction ( 1, "2", "three" )</syntaxhighlight> | ||
<!-- These only work from r5939 | |||
When using the [[call]] function, two extra "hidden" variables are passed to the exported function: | When using the [[call]] function, two extra "hidden" variables are passed to the exported function: | ||
* '''sourceResource''' - The resource that called the exported function | * '''sourceResource''' - The resource that called the exported function | ||
* '''sourceResourceRoot''' - The resource root element of the resource which called the exported function. | * '''sourceResourceRoot''' - The resource root element of the resource which called the exported function. | ||
--> | |||
==Syntax== | ==Syntax== | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> |
Revision as of 23:59, 26 November 2013
This function is used to call a function from another resource (which must be running).
The function which you wish to call must first be exported within the resource's meta. For example:
<meta> <info author="jbeta" type="script" description="Scoreboard resource" /> <script src="scoreboard_client.lua" type="client"/> <script src="scoreboard_exports.lua" type="server"/> <script src="scoreboard_http.lua" type="server"/> <export function="getScoreboardColumns" http="true" /> <export function="getScoreboardRows" http="true" /> <export function="addScoreboardColumn" type="server"/> <export function="removeScoreboardColumn" type="server"/> <export function="setPlayerScoreboardForced" type="server"/> <export function="setScoreboardForced" type="client"/> </meta>
This enables other resources to call a function from this resource.
You cannot call a server function from the client or vice versa. See triggerServerEvent and triggerClientEvent for possibilities to do that.
There is an easier syntax replacing this function. For example, you can instead of:
call ( getResourceFromName ( "resource" ), "exportedFunction", 1, "2", "three" )
do much like a normal call:
exports.resource:exportedFunction ( 1, "2", "three" )
If the resource name contains illegal characters (such as hyphens), you can also do:
exports["resource-name"]:exportedFunction ( 1, "2", "three" )
Syntax
var... call ( resource theResource, string theFunction, [ arguments... ] )
Required Arguments
- theResource: This is a resource pointer which refers to the resource you are calling a function from.
- theFunction: This is a string with the name of the function which you want to call.
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.
- arguments: Any arguments you may want to pass to the function when it is called. Any number of arguments of can be specified, each being passed to the designated function.
Returns
Returns anything that the designated function has returned appropriately. If the function does not exist, is not exported, or the call was not successful it will return nil.
Example
This extract shows adding of a "kills" column to the scoreboard resource. This then sets the gameShowKills variable to true, telling the rest of the script to start outputting kills.
function showKills ( option ) if option == false then -- Remove the "kills" column gameShowKills = false call(getResourceFromName("scoreboard"), "removeScoreboardColumn", "kills") else -- Add the "kills" column gameShowKills = true call(getResourceFromName("scoreboard"), "addScoreboardColumn", "kills") outputDebugString ( "Showing kills now..." ) end end
See Also
- abortRemoteRequest
- call
- fetchRemote
- getResourceConfig
- getResourceDynamicElementRoot
- getResourceExportedFunctions
- getResourceFromName
- getResourceName
- getResourceRootElement
- getResourceState
- getThisResource
- getRemoteRequests
- getRemoteRequestInfo