M MY Multiplayer: Wiki

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:

  1. La función debe estar declarada en una etiqueta <export> del meta.xml de ese recurso para el lado (server, client o shared) desde el que se invoca.
  2. 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)