M MY Multiplayer: Wiki

Variáveis globais

Variáveis globais definidas automaticamente em todo script Lua do MY Multiplayer (MYMP) e dentro de handlers de evento.

O MY Multiplayer (MYMP) disponibiliza variáveis globais automáticas em todo script Lua, além de variáveis de contexto temporárias preenchidas durante a execução de handlers de evento.

Em todo script

Variável Lado Descrição
root Compartilhado Elemento raiz da árvore de elementos. Todos os elementos existem abaixo dele.
resourceRoot Compartilhado Elemento raiz do recurso que está executando o script; elementos criados ficam nele.
localPlayer Cliente Elemento player correspondente ao jogador local deste cliente.
exports Compartilhado Tabela de acesso às funções exportadas por outros recursos em meta.xml.

Dentro de um handler de evento

O MYMP define estas variáveis imediatamente antes de executar a função do handler e restaura os valores anteriores assim que ela termina.

Variável Lado Descrição
source Compartilhado Elemento no qual o evento foi disparado.
this Compartilhado Elemento ao qual o handler foi ligado em addEventHandler.
eventName Compartilhado Nome do evento disparado (string).
client Servidor Jogador que enviou o evento remoto, quando originado por um cliente via triggerServerEvent.
sourceResource Compartilhado Recurso que disparou o evento ou que chamou a função exportada.

Chamando funções exportadas (exports)

As sintaxes exports.recurso:funcao(...) e exports.recurso.funcao(...) têm o mesmo comportamento. Para a chamada funcionar:

  1. A função precisa estar declarada em uma tag <export> no meta.xml daquele recurso para o mesmo lado (server, client ou shared) em que está sendo chamada.
  2. O recurso alvo precisa estar em execução.

Caso contrário, a chamada registra um erro no log e devolve false.

Exemplo

addEvent("onShopBuy", true)

addEventHandler("onShopBuy", resourceRoot, function(itemId)
    -- client: o jogador que enviou o evento pelo cliente
    local price = exports.shop:getPrice(itemId)
    outputServerLog(getPlayerName(client) .. " comprou " .. itemId .. " por " .. tostring(price))
end)