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:
- A função precisa estar declarada em uma tag
<export>no meta.xml daquele recurso para o mesmo lado (server,clientoushared) em que está sendo chamada. - 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)