ES/callServerFunction
From Multi Theft Auto: Wiki
Note: Se recomienda encerecidamente que valides la funcion que está siendo llamada o potencialmente un cliente puede hacer lo que quiera con tu servidor - banear jugadores, agregarse a sí mismo como admin (dependiende de que tan bien estén configuradas las ACL ) etc. Por esta razón es que esta función no viene incluida dentro de MTA. |
Esta funcion te permite llamar cualquier funcion de servidor desde el lado del cliente. Obviamente solo aquellas que están disponibles del lado del servidor. No importa si es una funcion MTA, una funcion estándar Lua o una funcion creada.
Los numeros se convierten automáticamente a string y vice versa en el servidor para evitar pérdida de datos. Si no necesitas esta caracterñistica, solo elimínala.
Nota Importante: Ten presente que ¡el nombre de la función debe ser un string!
Sintaxis
void callServerFunction( string funcname, [ var arg1, ... ] )
Argumentos Requeridos
- funcname: El nombre de la funcion de servidor que será llamada. Tambien puede ser una funcion dentro de una tabla, p.ej. "math.round".
Argumentos Opcionales
NOTA: cuando se usan argumentos opcionales, debes poporcionar all arguments antes del que deseas usar. For more information on optional arguments, mira los Argumentos Opcionales.
- arg1-argn: The arguments that should be passed to the function.
Código
Click to collapse [-]
Clientside Scriptfunction callServerFunction(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 -- Si el controlador de eventos en el servidor no está dentro de mismo resource, reemplaza 'resourceRoot' con el elemento apropiado triggerServerEvent("onClientCallsServerFunction", resourceRoot , funcname, unpack(arg)) end
Click to collapse [-]
Serverside Scriptfunction callServerFunction(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("onClientCallsServerFunction", true) addEventHandler("onClientCallsServerFunction", resourceRoot , callServerFunction)
Ejemplo
Click to collapse [-]
ClienteEn este ejemplo se quitan a los jugaores de su equipo.
-- obtiene el elemento de jugador local local _local = getLocalPlayer() -- define el la funcion del controlador de comandos function cmdLeaveTeam() -- establece el equipo del jugador a nil callServerFunction("setPlayerTeam", _local) end -- y en controlador de eme addCommandHandler("leaveTeam", cmdLeaveTeam, false)
Vea También
- callClientFunction » Esta función permite llamar cualquier función del lado del cliente desde el lado del servidor.
- callServerFunction » Esta función permite llamar cualquier función del lado del servidor desde el lado del cliente.
- centerWindow » Esta función centra la ventana en cualquier resolución.
- Check » Esta funcion verifica si sus argumentos son de los tipos correctos y llama la función error si uno no lo es.
- coroutine.resume » Fix for hidden coroutine error messages
- doForAllElements » Esta función puede ser usada para ejecutar una funcion especifica para todos los elementos de un tipo especifico.
- dxDrawColorText » Esta función dibuja un texto dx con soporte para códigos de color #RRGGBB.
- findRotation » Toma dos puntos y devuelve la dirección del punto A al punto B.
- FormatDate » Formatea una fecha sobre la basándose en una cadena de formato y la devuelve.
- getAge » Esta función la edad según el cumpleaños.
- getAlivePlayersInTeam » Esta función devuelve una tabla de los jugadores vivos en un equipo.
- getCursorMoveOn » Esta función verifica de que forma se está moviendo el cursor actualmente.
- getElementSpeed » Esta función permite obtener la velocidad del elemento en unidades de kph o mph.
- getPlayerFromNamePart » Esta función permite obtener al jugador a partir de una parte de su nombre.
- getPointFromDistanceRotation »Encuentra un punto basado en su punto inicial, dirección y distancia.
- getResourceSettings » Esta función devuelve una tabla con los datos del resource.
- getTimestamp » Con esta funcion se puede obtener la marca de Tiempo Unix.
- IfElse » Devuelve uno de dos valores basado en una expresión booleana.
- isLeapYear » Comprueba si año proporcionado es bisiesto.
- iterElements » Devuelve un iterador para tus bucles, ahorrando tiempo en escribir ipairs( getElementsByType( type ) ), en lugar de eso escribes: iterElements( type ).
- math.round »Redondea un número mientras pueden establecerce el numero de decimales y el método.
- onVehicleWeaponFire » Este código implementa un evento que provocado cuando un jugador en un vehículo dispara un arma del vehículo.
- RGBToHex » Esta funcion devuelve un string que representa el color en hexadecimal.
- setElementSpeed » Esta funcio permite establecer la velocidad de movimiento de un elemento en unidades de kph o mph.
- setTableProtected » Protege una table y la hace de solo lectura.
- setVehicleGravityPoint » Esta función del lado del cliente establece una gravedad de vehiculo en la dirección de una coordenada tridimensional con la fuerza especificada.
- string.explode » Esta función divide un string con un patrón separador dado y devuelve una tabla con las partes.
- table.copy » Esta función copia una tabla completa y todas las tablas dentro de ella.
- table.map » Esta función recorre una tabla y reemplaza cada campo con lo que devuelva la función que es pasada, donde los valores de campo son pasados como primer argumento y opcionalmente más argumentos.
- table.size » Encuentra el tamaño completo de una tabla.
- toHex » Esta función convierte un número decimal a un número hexadecimal, como una corrección para el lado del cliente.
- var_dump » Esta función entrega información acerca de una o más variables usando outputConsole().
- multi_check » Esta función comprueba de de uno a varios elementos, util y limpia.
- isElementInPhotograph » Esta función comprueba si un elemento estuvo en la foto de cámara de un jugador. Necesita se escrita aun. --Ransom 21:45, 2 May 2012 (UTC)