Variables globales
Variables globales disponibles automáticamente en todo script Lua de MY Multiplayer (MYMP) y dentro de handlers de evento.
MY Multiplayer (MYMP) define variables globales automáticas en todo script Lua, además de variables contextuales temporales mientras se ejecuta un handler de evento.
En todo script
| Variable | Lado | Descripción |
|---|---|---|
root |
Compartido | El elemento raíz del árbol de elementos. Todo elemento se ubica debajo de él. |
resourceRoot |
Compartido | El elemento raíz del recurso que ejecuta el script; los elementos que crea quedan debajo de él. |
localPlayer |
Cliente | El elemento player que representa al jugador local de este cliente. |
exports |
Compartido | Tabla para llamar funciones que otros recursos declaran en meta.xml. |
Dentro de un handler de evento
MYMP asigna estas variables antes de invocar el handler y restaura sus valores anteriores cuando este termina.
| Variable | Lado | Descripción |
|---|---|---|
source |
Compartido | El elemento en el que se disparó el evento. |
this |
Compartido | El elemento al que se asoció el handler mediante addEventHandler. |
eventName |
Compartido | El nombre del evento disparado (string). |
client |
Servidor | El jugador que envió el evento remoto, cuando provino de un cliente con triggerServerEvent. |
sourceResource |
Compartido | El recurso que disparó el evento o que llamó a la función exportada. |
Llamar funciones exportadas (exports)
exports.recurso:funcion(...) y exports.recurso.funcion(...) funcionan igual. Para que la llamada tenga éxito:
- La función debe estar declarada en una etiqueta
<export>del meta.xml de ese recurso para el lado (server,clientoshared) desde el que se invoca. - El recurso de destino debe estar en ejecución.
De lo contrario, la llamada registra un error en el log y devuelve false.
Ejemplo
addEvent("onShopBuy", true)
addEventHandler("onShopBuy", resourceRoot, function(itemId)
-- client: el jugador que envió el evento desde su cliente
local price = exports.shop:getPrice(itemId)
outputServerLog(getPlayerName(client) .. " compró " .. itemId .. " por " .. tostring(price))
end)