<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.multitheftauto.com/wiki/ES/callClientFunction?action=history&amp;feed=atom</id>
	<title>ES/callClientFunction - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.multitheftauto.com/wiki/ES/callClientFunction?action=history&amp;feed=atom"/>
	<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=ES/callClientFunction&amp;action=history"/>
	<updated>2026-06-16T09:19:47Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=ES/callClientFunction&amp;diff=30618&amp;oldid=prev</id>
		<title>Kzman: Created page with &quot;{{Useful Function}} &lt;lowercasetitle/&gt; __NOTOC__ Esta función permite llamar cualquier función del lado del cliente desde el lado del servidor. Por supesto que solo aquellas dis...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=ES/callClientFunction&amp;diff=30618&amp;oldid=prev"/>
		<updated>2012-05-13T02:16:21Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Useful Function}} &amp;lt;lowercasetitle/&amp;gt; __NOTOC__ Esta función permite llamar cualquier función del lado del cliente desde el lado del servidor. Por supesto que solo aquellas dis...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Useful Function}}&lt;br /&gt;
&amp;lt;lowercasetitle/&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
Esta función permite llamar cualquier función del lado del cliente desde el lado del servidor. Por supesto que solo aquellas disponibles en en lado del cliente. No importa si es una función del MTA, una función Lua estándar o una función creada.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Los números se convierten automáticamenta a un string y vice versa en el lado del cliente para evitar una posible perdida de datos. Si no necesitas esta característica, solo borrala.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Nota Importante:''' Ten en cuenta que que el nombre de funcion debe ser un '''string'''! Evita usar callClientFunction dentro del evento onResourceStart del lado del servidor ya que el cliente no ha añadido aún el controlador de eventos onServerCallsClientFunction.&lt;br /&gt;
&lt;br /&gt;
==Sintaxis==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;void callClientFunction( element cliente, string nombreFuncion, [ var arg1, ... ] )&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Argumentos Requeridos===&lt;br /&gt;
* '''cliente''': El elemento player correspondiente al jugador afectado.&lt;br /&gt;
* '''nombreFuncion''': El nombre de la función que que debe ser llamada del lado del cliente. También puede ser una función dentro de un tabla, p.ej. &amp;quot;math.round&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Argumentos opcionales===&lt;br /&gt;
{{OptionalArg}}&lt;br /&gt;
* '''arg1-argn''': Los argumentos que deben ser pasados a la función.&lt;br /&gt;
&lt;br /&gt;
==Código==&lt;br /&gt;
&amp;lt;section name=&amp;quot;Script Servidor&amp;quot; class=&amp;quot;server&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function callClientFunction(cliente, nombreFuncion, ...)&lt;br /&gt;
    local arg = { ... }&lt;br /&gt;
    if (arg[1]) then&lt;br /&gt;
        for key, value in next, arg do&lt;br /&gt;
            if (type(value) == &amp;quot;number&amp;quot;) then arg[key] = tostring(value) end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    -- Si el controlador de eventos del lado del cliente no está en el mismo resource, reemplaza 'resourceRoot' por el elemento apropiado&lt;br /&gt;
    triggerClientEvent(cliente, &amp;quot;onServerCallsClientFunction&amp;quot;, resourceRoot, nombreFuncion, unpack(arg or {}))&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;section name=&amp;quot;Script Cliente&amp;quot; class=&amp;quot;client&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
function callClientFunction(nombreFuncion, ...)&lt;br /&gt;
    local arg = { ... }&lt;br /&gt;
    if (arg[1]) then&lt;br /&gt;
        for key, value in next, arg do arg[key] = tonumber(value) or value end&lt;br /&gt;
    end&lt;br /&gt;
    loadstring(&amp;quot;return &amp;quot;..nombreFuncion)()(unpack(arg))&lt;br /&gt;
end&lt;br /&gt;
addEvent(&amp;quot;onServerCallsClientFunction&amp;quot;, true)&lt;br /&gt;
addEventHandler(&amp;quot;onServerCallsClientFunction&amp;quot;, resourceRoot, callClientFunction)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ejemplo==&lt;br /&gt;
&amp;lt;section name=&amp;quot;Servidor&amp;quot; class=&amp;quot;server&amp;quot; show=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
En este ejemplo se establece la duración del minuto del jugador.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
-- define la función para controlar playerJoinging&lt;br /&gt;
function playerJoinging()&lt;br /&gt;
    -- establece la duración del minuto&lt;br /&gt;
    callClientFunction(source, &amp;quot;setMinuteDuration&amp;quot;, 10000)&lt;br /&gt;
end&lt;br /&gt;
-- añade el controlador de eventos&lt;br /&gt;
addEventHandler(&amp;quot;onPlayerJoin&amp;quot;, root, playerJoinging)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vea también==&lt;br /&gt;
{{Funciones Útiles}}&lt;/div&gt;</summary>
		<author><name>Kzman</name></author>
	</entry>
</feed>