Pular para o conteúdo

exports

Compartilhada Resources

Existe uma forma mais curta e mais legível, equivalente a call:

local saldo = exports.contas:getSaldo(jogador)

Repare nos dois pontos: exports.contas:getSaldo(...) é exatamente call(getResourceFromName("contas"), "getSaldo", ...). A função proxy sempre consome seu primeiro argumento como self; usando ponto (exports.contas.getSaldo(jogador)), o primeiro argumento real — jogador — é engolido e não chega à função exportada.

Se o resource não estiver rodando, um aviso é registrado no console de debug e a chamada devolve false.

-- resource "contas"
function debitar(jogador, valor)
if getResourceName(sourceResource) ~= "loja" then
outputDebugString("debitar só pode ser chamado pela loja", 2)
return false
end
contas[jogador] = (contas[jogador] or 0) - valor
return true
end