Pular para o conteúdo

Resources

Compartilhada

Um resource é um valor userdata, igual ao MTA. getThisResource() devolve o próprio resource, e getResourceName transforma ele no nome da pasta que aparece no console e no server.cfg.

local este = getThisResource()
getResourceName(este) -- "meu-resource"
getResourceState(este) -- "running"
tostring(este) -- "resource: meu-resource"

O mesmo resource é sempre o mesmo valor, então == e chaves de tabela funcionam como você espera. Como extensão do MTAX, no servidor toda função que recebe um resource também aceita o nome puro, o que mantém funcionando os scripts escritos antes deste tipo existir:

getResourceState("scoreboard") -- igual a getResourceState(getResourceFromName("scoreboard"))

O cliente não aceita esse atalho: lá um nome no lugar de um resource registra um aviso e a chamada devolve false. Resolva antes com getResourceFromName.

A classe Resource também está disponível: Resource.getThis(), res:getName(), res.state, res.rootElement.

Cada resource roda no seu próprio ambiente Lua, isolado dos demais. Para atravessar essa fronteira existe call e a forma exports.

Estas 7 funções existem no servidor e no cliente. Você pode usá-las em scripts declarados em server_files, client_files ou shared_files.

Veja também as funções de Resources exclusivas do servidor e as exclusivas do cliente.