Pular para conteúdo

Biblioteca para Macros em Lua

Variáveis

parametro / parameter

variável parametro ou variável parameter

variável arg[indice]

(Não é uma função) Possui os parâmetros passado para a macro, onde a variável "parametro" contém a cadeia de caracteres completa e a variável "arg" contém um arranjo, onde cada item representa um argumento separado por espaço.

Se o usuário digitar /minhaMacro Texto de Teste:

parametro arg[1] arg[2] arg[3]
"Texto de Teste" "Texto" "de" "Teste"

A variável "parametro" conterá "Texto de Teste"

A variável "parameter" conterá "Texto de Teste"

A variável arg[1] conterá "Texto". A variável arg[2] conterá "de". A variável arg[3] conterá "Teste". E #arg contém a quantidade de argumentos.

Exemplo: Fazer um teste de resistência parametrizado.

local dificuldade = tonumber(parametro)
if dificuldade == nil then
    escrever("Utilize: /macro <NÚMERO>")
    return
end

local resultado = rolar("1d20 + 5", "Dificuldade " .. dificuldade)
if resultado >= dificuldade then
    enviar("Passou no teste!")
else
    enviar("Não passou no teste")
end

meuJogador / myPlayer

variável meuJogador ou variável myPlayer

(Não é uma função) objeto Jogador representando o usuário da macro naquela mesa.

Exemplo 1: Escrever na tela o seu próprio login.

escrever(meuJogador.login);

myCharacter

variável myCharacter

(Não é uma função) Objeto Personagem representando o personagem principal do usuário naquela mesa.

Observações:

  • Se o jogador não possuir nenhum personagem, acessar esta variável irá causar um erro com uma mensagem informativa de que "o jogador não possui nenhum personagem" e a macro pára de executar.

Exemplo 1: Escrever na tela o nome do seu personagem.

write(myCharacter.nome)

sheet

variável sheet

(Não é uma função) O Objeto Nodo raiz representando o NodeDatabase/Sheet do personagem principal do usuário logado.

Observações:

  • Se o jogador não possuir nenhum personagem, acessar esta variável causará um erro com uma mensagem informativa de que "o jogador não possui nenhum personagem," e a macro será interrompida.
  • A execução da macro pode ser pausada até que o NodeDatabase/Ficha seja carregado pela internet.
  • O Objeto Nodo retornado é o mesmo da variável "sheet" usada para programar as fichas/lua forms.
  • As alterações feitas no objeto nodo retornado são sincronizadas normalmente, conforme as regras de permissões do Node Database.
  • Se houver algum erro ao carregar o NodeDatabase, a macro será interrompida.

Exemplo: Exibir a estrutura dos dados armazenados na ficha e aumentar a CA em 1 se for uma ficha D&D 5.

-- Exibir no chat a estrutura dos dados armazenados na ficha
write(utils.tableToStr(sheet, true))

-- Se for uma ficha D&D 5, aumentar a CA em 1
sheet.CA = (tonumber(sheet.CA) or 0) + 1

-- Exibir no chat a quantidade de PV que o personagem tem
write(sheet.PV)

mesa / room

variável mesa ou variável room

(Não é uma função) Objeto Mesa representando a mesa em que a macro está sendo executada.

Exemplo 1: Exibir algumas informações da mesa na tela.

escrever(mesa.nome)
escrever(mesa.sistema)
escrever(mesa.msgStatus)

jogadores / players

variável jogadores ou variável players

(Não é uma função) Arranjo de Objeto Jogador, representando os usuários que estão na mesa no momento.

Forma de uso: jogadores[1] contém o primeiro jogador, jogadores[2] contém o segundo jogador, jogadores[3] contém o terceiro, jogadores[#jogadores] possui o último jogador.

Exemplo 1: Exibir na tela o login de todos os jogadores da mesa.

for i = 1, #jogadores, 1 do
    escrever(jogadores[i].login)
end

Exemplo 2: Dar +voz para todos os espectadores da mesa.

for i = 1, #jogadores, 1 do
    if jogadores[i].isEspectador then
        jogadores[i]:requestSetVoz(true)
    end
end

inRoom

variável inRoom

(Não é uma função) Booleano (1) indicando se a macro está sendo executada em algum chat associado a alguma mesa.

  1. true | false

Funções

| function escrever(texto[, quebrarLinha, permitirSmileys])/ function write(texto[, quebrarLinha, permitirSmileys]) | | --- | Escreve um texto na tela do chat. Este texto não é enviado para ninguém e aparecerá somente no chat do próprio usuário.

Parâmetros:

  • texto - Cadeia de caracteres contendo o texto que deseja escrever.
  • (OPCIONAL) quebrarLinha - Booleano (true/ false) indicando se o RRPG deve adicionar uma quebra de linha no chat antes de escrever o texto. Se omitido, o valor padrão true é assumido.
  • (OPCIONAL) permitirSmileys - Booleano (true/ false) indicando se o RRPG deve interpretar smileys/memes neste texto. Se omitido, o valor padrão true é assumido.

Exemplo:

escrever("Olá mundo!!!");

| function enviar(mensagem)/ function send(mensagem) | | --- | Envia uma mensagem comum para o chat, como se o usuário a tivesse digitado.

Parâmetros:

  • mensagem - Cadeia de caracteres contendo o texto que deseja enviar.

Exemplo:

enviar("Olá, tudo bem?!");
function agir(acao)/ function act(acao)

Envia uma mensagem como ação para o chat.

Parâmetros:

  • acao - Cadeia de caracteres contendo a acao que deseja enviar.

Exemplo:

agir("saca sua espada longa");
function narrar(narracao)/ function narrate(narracao)

Envia uma mensagem de narração para o chat.

Parâmetros:

  • narracao - Cadeia de caracteres contendo a narração que deseja enviar.

Observação: Apenas o mestre consegue enviar mensagens de narração.

Exemplo:

narrar("Após uma péssima noite de descanso, Gruumsh acorda com as mãos algemadas");
function enviarNPC(npc, mensagem)/ function sendNPC(npc, mensagem)

Envia uma mensagem para o chat como se um NPC estivesse falando

Parâmetros:

  • npc - Cadeia de caracteres contendo o nome do NPC.
  • mensagem - Cadeia de caracteres contendo a mensagem que deseja enviar.

Observação: Apenas o mestre consegue enviar mensagens como NPC.

Exemplo:

enviarNPC("Rei Darik", "Guardas, prendam estes infelizes!");
function rolar(rolagem[, mensagemAdicional])/ function roll(rolagem[, mensagemAdicional])

Executa uma rolagem de dados no chat.

Parâmetros:

  • rolagem - Cadeia de caracteres contendo a rolagem a ser feita. Exemplo: "1d20 + 5"
  • (OPCIONAL) mensagemAdicional - Uma cadeia de caracteres opcional que acompanhará a rolagem na interface.

Retorno:

  • Esta função retorna um número contendo o resultado e um objeto rolagem com informações detalhadas do resultado.

Importante:

  • Esta função espera a rolagem ser feita na interface para continuar a execução da Macro. Se, por algum motivo, a rolagem não puder ser feita, a macro pára de executar. Uma possível situação de exemplo é quando a mesa está moderada e o usuário não possui o modo +voz para enviar mensagens.

Exemplo 1:

local resultado = rolar("1d20 + 5");  if resultado >= 15 then         enviar("Acertou!"); else         enviar("Errou!"); end;

Exemplo 2:

local resultado = rolar("1d20 + 5", "Rolagem de ataque");  if resultado >= 15 then         rolar("1d8 + 5", "Rolagem de dano");  end;

Exemplo 3: Rolar 4d6 e selecionar os 3 maiores números da rolagem.

local resultado, rolagem = rolar("4d6"); local dados = {};  -- coletar os resultados individuais de cada dado for i = 1, #rolagem.ops, 1 do         local op = rolagem.ops[i];                if op.tipo == "dado" then                 for j = 1, #op.resultados, 1 do                         dados[#dados + 1] = op.resultados[j];                 end;         end; end-- Ordenar os resultados, menores primeiro table.sort(dados);  local texto = "";  -- Pegar os ultimos 3, isto é, os 3 maiores.. de traz para frente * **for* i = #dados, #dados - 2, -1 do                 texto = texto .. " " .. dados[i]; end;  enviar("Os 3 maiores números foram:" .. texto);
function rolarLocal(rolagem)/ function rollLocal(rolagem)

Executa uma rolagem de dados local, isto é, uma rolagem que não será exibida em lugar nenhum.

Parâmetros:

  • rolagem - Cadeia de caracteres contendo a rolagem a ser feita. Exemplo: "1d20 + 5"

Retorno:

  • Esta função retorna um número contendo o resultado e um objeto rolagem com informações detalhadas do resultado.

Exemplos:

O comportamento da função "rolarLocal" é igual a da função "rolar", portanto, consulte os exemplos de "rolar".

function esperar(milisegundos)/ function wait(milisegundos)

Realiza uma pausa cronometrada na execução da Macro.

Parâmetros:

  • milisegundos - Um número em milisegundos representando o intervalo de tempo que a execução da Macro ficará pausada. 1000 = 1 segundo, 500 = 0,5 segundos.
function load(luaCode)

Interpreta um código de macro escrita na linguagem LUA

Parâmetros:

  • luaCode - Cadeia de caracteres contendo um código na linguagem LUA (seguindo o mesmo padrão de uma macro).

Retorno:

  • Se luaCode possui um código Lua válido, retorna uma função que poderá ser invocada
  • Se lucaCode não possui um código Lua válido, retorna dois valores: nil e uma mensagem de erro.

Exemplo:

local func, errorMsg = load("write(1 + 5 + 9 + 10)");   if func ~= nil then   -- O codigo foi carregado. Vamos invocá-lo agora   func(); else   write("could not load lua code: " .. errorMsg); end
function Log.e(tag, msg) function Log.w(tag, msg) function Log.i(tag, msg) function Log.d(tag, msg) function Log.v(tag, msg)

Emmit log message to the Firecast's log file and to the Firecast's console window. Use the /console command to reveal the console

Arguments:

  • tag - Used to identify the source of a log message. It usually identifies the location or activity where the log call occurs.
  • msg - The message you would like to be logged

Log severity:

Log.e Error message A situation that represents an unhandled error that may interrupt some operation
Log.w Warning message A situation that can be handled but may cause some unintended behavior
Log.i Informational/Notice message A normal but significant condition that may require special handling.
Log.d Debug message A developer debug message
Log.v Verbose message Algorithm steps message, very low priority messages. Remarks: Messages of this severity are not emitted in the Firecast’s log files In the Firecast’s console, you need to execute the command “filter add *” to be able to see these messages.
function showMessage(msg)

Exibe uma janela para o usuário contendo uma mensagem.

Parâmetros:

  • msg - Cadeia de caracteres contendo a mensagem que deverá ser exibida para o usuário.

Observação:

  • A execução da macro é pausada até que o usuário pressione OK na janela.
function alert(msg)

Exibe uma janela para o usuário contendo uma mensagem de alerta.

Parâmetros:

  • msg - Cadeia de caracteres contendo a mensagem que deverá ser exibida para o usuário.

Observação:

  • A execução da macro é pausada até que o usuário pressione OK na janela.
function toast(message)

Show a quick informative message to the user that does not require user interaction and hides automatically after a short time

Parameters

  • message - The message string to be shown
function confirmOkCancel(question)

Exibe uma janela para o usuário onde ele deve escolher responder/ "Ok"/ "Cancelar"

Parâmetros:

  • question - Cadeia de caracteres contendo a mensagem que deverá ser exibida para o usuário.

Retorno:

  • true se o usuário responder "Ok"/ false se o usuário responder "Cancelar"

Observação:

  • A execução da macro é pausada até que o usuário responda a janela.

Exemplo:

if confirmOkCancel("Será adicionado 6 à rolagem") then   write("O usuario respondeu OK"); else   write("O usuario respondeu Cancelar"); end
function confirmYesNo(question)

Exibe uma janela para o usuário onde ele deve escolher responder/ "Sim"/ "Não"

Parâmetros:

  • question - Cadeia de caracteres contendo a pergunta que deverá ser exibida para o usuário.

Retorno:

  • true se o usuário responder "Sim"/ false se o usuário responder "Não"

Observação:

  • A execução da macro é pausada até que o usuário responda a janela.

Exemplo:

if confirmYesNo("Deseja continuar?") then   write("O usuario respondeu Sim"); else   write("O usuario respondeu Não"); end
function inputQuery(prompt[, initialValue, allowEmptyString])

Exibe uma janela para o usuário onde ele deve digitar um valor.

Parâmetros:

  • prompt - Cadeia de caracteres orientando o usuário o que ele deve preencher.
  • (OPCIONAL) initialValue - Cadeia de caracteres contendo uma sugestão de valor inicial para o usuário.
  • (OPCIONAL) allowEmptyString - true se o usuário pode informar um texto em branco. O padrão é false.

Retorno:

  • Se o usuário confirmar o valor, esta função retorna o valor escrito pelo usuário
  • Se o usuário escolher cancelar na janela exibida, a macro pára de executar.

Observação:

  • A execução da macro é pausada até que o usuário responda a janela.

Exemplo:

local bonus = inputQuery("Bônus de Ataque"); local defesa = inputQuery("Defesa", "10");   if roll("1d20 + " .. bonus) >= tonumber(defesa) then   write("Acertou"); else   write("Errou"); end;
function selectImageURL([defaultURL])

Esta função exibe uma janela para o usuário escolher uma URL de uma imagem.

Parâmetros:

  • (OPCIONAL) defaultURL - Texto contendo uma URL sugerida para o usuário

Retorno:

  • Retorna a URL de uma imagem escolhida pelo usuário

Observação:

  • A execução da macro é pausada até que o usuário responda a janela.
  • Se o usuário cancelar a janela, a macro pára de executar.

Exemplo:

local url = selectImageURL(); write("Imagem escolhida: " .. url);
function choose(prompt, options, [defaultOptionIndex, shortCircuit])

Exibe um diálogo para que o usuário possa escolher uma opção dentre uma lista de opções.

Parâmetros

  • prompt - Uma cadeia de caracteres contendo uma orientação ao usuário sobre o que ele deve selecionar.
  • options - Um array/arranjo/lista de cadeias de caracteres/textos, contendo as opções que devem ser apresentadas ao usuário.
  • (OPCIONAL) defaultOptionIndex - Um número contendo um índice informado qual dos itens de "options" deve ser apresentado como a escolha padrão. Se não informado, nenhuma opção será mostrada como padrão.
  • (OPCIONAL) shortCircuit - Avaliação Curto-Circuito: Se for "true" e se houver apenas uma opção a ser mostrada ao usuario, a interface não é exibida e esta opçao é automaticamente selecionada. Se não informado, este parâmetro assume o valor false.

Retorno:

Esta função retorna dois valores na seguinte ordem:

    • index - Um número, o índice de "options" que foi escolhido pelo usuário
    • text - O texto equivalente ao índice escolhido pelo usuário, conforme "options"

Observações:

  • A execução da macro é pausada até que o usuário responda a janela.
  • Se o usuário cancelar a janela, a macro pára de executar.
  • Lembre-se que indices de arrays em lua começa do número 1 ao invés de 0
  • Se "options" não for válido/ se for um arranjo com 0 itens, a macro pára de executar como se o usuário tivesse cancelado a janela.

Exemplo:

local indice, texto = choose("O que deseja fazer?", {"Atacar", "Defender"}, 1);   escrever("O usuário escolheu o índice: " .. indice); escrever("O usuário escolheu: " .. texto);
function chooseMultiple(prompt, options)

Exibe um diálogo para que o usuário possa escolher uma/ mais opções dentre uma lista de opções.

Parâmetros

  • prompt - Uma cadeia de caracteres contendo uma orientação ao usuário sobre o que ele deve selecionar.
  • options - Um array/lista/arranjo de textos/cadeias de caracteres, contendo as opções que devem ser apresentadas ao usuário.

Retorno:

Esta função retorna dois valores na seguinte ordem:

    • indexes - Um array/arranjo/lista de números, contendo os índices de "options" que foram escolhidos pelo usuário
    • texts - Um array/arranjo/lista de textos equivalentes aos índices escolhidos pelo usuário, conforme "options"

Observação:

  • A execução da macro é pausada até que o usuário responda a janela.
  • Se o usuário cancelar a janela, a macro pára de executar.
  • Lembre-se que indices de arrays em lua começa do número 1 ao invés de 0
  • Se "options" não for válido/ se for um arranjo com 0 itens, a macro pára de executar como se o usuário tivesse cancelado a janela.

Exemplo:

local indices, textos = chooseMultiple("Bônus ativos", {"Cobertura", "Defesa Total", "Escondido"});   for i = 1, #indices, 1 do    escrever("O usuário escolheu o índice: " .. indices[i]);    escrever("O usuário escolheu: " .. textos[i]); end;
function chooseCharacter(prompt[, filter, shortCircuit])

Exibe um diálogo para que o usuário possa escolher um personagem da lista de personagens que estão na biblioteca da mesa.

Parâmetros

  • prompt - Uma cadeia de caracteres contendo uma orientação ao usuário sobre o que ele deve selecionar.
  • (OPCIONAL) filter - Uma cadeia de caracteres informando quais persnagens devem ser apresentados na interface de seleção e pode ser um dos seguintes valores:
    • "all" - Todos os personagens da mesa deverão ser apresentados na janela (Opção padrão caso não seja informado filter)
    • "pc" - Apenas os personagens de jogadores deverão ser apresentados na janela.
    • "pcOnline" - Apenas os personagens de jogadores que estão online deverão ser apresentados na janela.
    • "npc" - Apenas os personagens do mestre deverão ser apresentados.
    • "mine" - Apenas os personagens do jogador que executar a macro deverão ser apresentados.
  • (OPCIONAL) shortCircuit - Avaliação Curto-Circuito: Se for "true" e se houver apenas um personagem a ser mostrado ao usuario, a interface não é exibida e este personagem é automaticamente selecionado. Se não informado, este parâmetro assume o valor false .

Retorno:

Observações:

  • A execução da macro é pausada até que o usuário responda a janela.
  • Se o usuário cancelar a janela, a macro pára de executar.
  • Se o filtro especificado por "filter" não for capaz de apresentar nenhum personagem para escolha, um erro será exibido para o usuário.

Exemplo:

local personagem = chooseCharacter("Qual personagem deseja testar a força?", "pc"); escrever("Você selecionou: " .. personagem.nome);
function chooseCharacterOfPlayer(prompt, player [, shortCircuit])

Exibe um diálogo para que o usuário possa escolher um personagens da lista de personagens de um jogador na mesa.

Parâmetros

  • prompt - Uma cadeia de caracteres contendo uma orientação ao usuário sobre o que ele deve selecionar.
  • player - Uma cadeia de caracteres contendo o login do usuário ou um Objeto Jogador representando de qual jogador os personagens deverão ser apresentados na tela.
  • (OPCIONAL) shortCircuit - Avaliação Curto-Circuito: Se for "true" e se houver apenas um personagem a ser mostrado ao usuario, a interface não é exibida e este personagem é automaticamente selecionado. Se não informado, este parâmetro assume o valor false .

Retorno:

Observações:

  • A execução da macro é pausada até que o usuário responda a janela.
  • Se o usuário cancelar a janela, a macro pára de executar.
  • Se o jogador não possuir nenhum personagem, um erro é lançado.

Exemplo:

local player = choosePlayer("Selecione um jogador");   local personagem = chooseCharacterOfPlayer("Selecione um personagem", player); escrever(personagem.nome);   local personagem2 = chooseCharacterOfPlayer("Selecione um personagem", "AlyssonRPG"); escrever(personagem2.nome);
function chooseCharacters(prompt[, filter])

Exibe um diálogo para que o usuário possa escolher um/ mais personagens da lista de personagens que estão na biblioteca da mesa.

Parâmetros

  • prompt - Uma cadeia de caracteres contendo uma orientação ao usuário sobre o que ele deve selecionar.
  • (OPCIONAL) filter - Uma cadeia de caracteres informando quais persnagens devem ser apresentados na interface de seleção e pode ser um dos seguintes valores:
    • "all" - Todos os personagens da mesa deverão ser apresentados na janela (Opção padrão caso não seja informado filter)
    • "pc" - Apenas os personagens de jogadores deverão ser apresentados na janela.
    • "pcOnline" - Apenas os personagens de jogadores que estão online deverão ser apresentados na janela.
    • "npc" - Apenas os personagens do mestre deverão ser apresentados.
    • "mine" - Apenas os personagens do jogador que executar a macro deverão ser apresentados.

Retorno:

  • Um array/arranjo/lista de Objeto Personagem representando os personagens que o usuário escolheu.

Observações:

  • A execução da macro é pausada até que o usuário responda a janela.
  • Se o usuário cancelar a janela, a macro pára de executar.
  • Se o filtro especificado por "filter" não for capaz de apresentar nenhum personagem para escolha, um erro será exibido para o usuário.

Exemplo:

local personagens = chooseCharacters("Quais personagens deseja testar a força?", "pcOnline");   for i = 1, #personagens, 1 do   escrever("Você selecionou: " .. personagens[i].nome); end;
function choosePlayer(prompt[, shortCircuit])

Exibe um diálogo para que o usuário possa escolher um jogador da lista de jogadores que estão na mesa.

Parâmetros

  • prompt - Uma cadeia de caracteres contendo uma orientação ao usuário sobre o que ele deve selecionar.
  • (OPCIONAL) shortCircuit - Avaliação Curto-Circuito: Se for "true" e se houver apenas um jogador a ser mostrado ao usuario, a interface não é exibida e este jogador é automaticamente selecionado. Se não informado, este parâmetro assume o valor false .

Retorno:

Observações:

  • A execução da macro é pausada até que o usuário responda a janela.
  • Se o usuário cancelar a janela, a macro pára de executar.

Exemplo:

local jogador = choosePlayer("De qual jogador voce quer obter informações?") escrever("Você selecionou: " .. jogador.login);   if jogador.isMestre then    escrever("O jogador é mestre na mesa"); end;
function choosePlayers(prompt)

Exibe um diálogo para que o usuário possa escolher um/ mais jogadores da lista de jogadores que estão na mesa.

Parâmetros

  • prompt - Uma cadeia de caracteres contendo uma orientação ao usuário sobre o que ele deve selecionar.

Retorno:

  • Um array/lista de Objeto Jogador representando os jogadores que o usuário escolheu.

Observações:

  • A execução da macro é pausada até que o usuário responda a janela.
  • Se o usuário cancelar a janela, a macro pára de executar.

Exemplo:

local jogadores = choosePlayers("Selecione quais jogadores devem rolar iniciativa");   for i = 1, #jogadores, 1 do    escrever("Rolar iniciativa de " .. jogadores[i].login); end;

| function getCharacterOfPlayer(player) | | --- | Retorna o personagem principal de um jogador da mesa.

Parâmetros

  • player - Uma cadeia de caracteres contendo o login do usuário ou um Objeto Jogador representando de qual jogador se deve obter o personagem principal.

Retorno:

Observações:

  • A execução da macro é pausada até que o usuário responda a janela.
  • Se o usuário cancelar a janela, a macro pára de executar.
  • Se o jogador não possuir nenhum personagem, um erro é lançado.
  • Se o jogador possuir dois/ mais personagens, o personagem principal dele será retornado.

Exemplo:

local player = choosePlayer("Escolha um jogador");   local personagemPrincipal = getCharacterOfPlayer(player); escrever(personagemPrincipal.nome);

| function getCharacterSheet(character) | | --- | Retorna o Node Database/sheet de um personagem.

Parâmetros

  • character - Um Objeto Personagem representando o personagem de qual se deve obter o NodeDatabase/sheet

Retorno:

  • O Objeto Nodo raiz representando o NodeDatabase/Sheet do personagem

Observações:

  • A execução da macro pode ser pausada até que o NodeDatabase/Ficha seja carregada pela internet.
  • O Objeto Nodo retornado é o mesmo daquela variável "sheet" usada para programar as fichas/lua forms.
  • As alterações feitas no objeto nodo retornado são sincronizadas normalmente, confome as regras de permissões do Node Database.
  • Se houver algum erro ao carregar o NodeDatabase, a macro pára de executar.

Exemplo:

local personagem = chooseCharacter("Escolha um personagem", "pc") local node = getCharacterSheet(personagem);   -- Escrever no chat a estrutura dos dados armazenados da ficha write(utils.tableToStr(node, true));   -- Se for a ficha D\&D 5, a linha abaixo aumenta a CA em 1 node.CA = (tonumber(node.CA) or 0) + 1;

| function getUserNDB(name[, options]) | | --- | Open a per-user NodeDatabase that is physically stored in the Firecast server.

Arguments:

  • name - A string identifying which remote user NodeDatabase should be opened
  • (OPTIONAL) options - A Lua table describing additional settings that may contain:
    • create - a boolean. If true, the NodeDatabase can be created if it does not exist. Default: false

Return:

Remarks:

  • The content of NodeDatabases opened by this function is stored separately per-user. Each user will have their own copy of the NodeDatabase identified by the “name” argument

| function getUserRoomNDB(name[, options]) | | --- | Open a per user NodeDatabase in the current room that is physically stored in the Firecast server.

Arguments:

  • name - A string identifying which remote user NodeDatabase in the current room should be opened
  • (OPTIONAL) options - A Lua table describing additional settings that may contain:
    • create - a boolean. If true, the NodeDatabase can be created if it does not exist. Default: false

Return:

Remarks:

  • The content of NodeDatabases opened by this function is stored separately per-user and per-room. Each user in the current room will have their own copy of the NodeDatabase identified by the “name”.

| function getRoomNDB(name[, options]) | | --- | Open a per room NodeDatabase that is physically stored in the Firecast server.

Arguments:

  • name - A string identifying which remote NodeDatabase of the current room should be opened
  • (OPTIONAL) options - A Lua table describing additional settings that may contain:
    • create - a boolean. If true, the NodeDatabase can be created if it does not exist. Default: false

Return:

Remarks:

  • The content of NodeDatabases opened by this function is stored separately per-room. All users of the current room will access the same content of the NodeDatabase identified by the “name”.
  • By default, users with the +GM mode can read and modify the NodeDatabase of the room while other users can only read values.
  • To open a NodeDatabase of the room, one of the following statements must be true:
    • The current user is a Gold subscriber; or
    • The creator of the room is a Platinum subscriber.
function invoke(macroName [, parameter])

Esta função invoca/tra macro e aguarda sua execução.

Parâmetros:

  • macroName - Cadeia de caracteres identificando qual macro deve ser invocada.
    • Exemplo: Se deseja invocar a macro /obterBonusAtaque, o valor "obterBonusAtaque" deverá se passado aqui, sem a barra.
  • (OPCIONAL) parameter - Cadeia de caracteres contendo os parâmetros que devem ser passados para a macro quando ela for invocada.

Retorno:

  • Se a macro invocada tiver sido executada sem erros, o retorno desta função é idêntico ao "return" da macro invocada (nil se ela não especificou valor de return).

Observação:

  • A execução desta macro é pausada até a/tra macro seja executada.
  • Se a macro invocada parar de executar (exemplo: Pois o usuário cancelou um inputQuery), esta macro também pára de executar. Exemplo (duas macros, uma invocando a/tra):

Macro: ObterBonusAtaque

| local attack = inputQuery("Informe o Bônus de Ataque"); local damageBonus = inputQuery("Informe o Bônus de Dano");   return attack, tonumber(damageBonus); | | --- | Macro que invoca/tra macro

local bonusAttack, damage = invoke("ObterBonusAtaque") write("Ataque informado: " .. bonusAttack) write("Dano informado: " .. damage);