Existem vários tipos diferentes de objetos que são utilizados nos scripts de modificação. Aqui está uma breve lista de cada um deles, o que são e quais as propriedades que contêm (juntamente com os valores predefinidos). Como regra geral, as propriedades que começam por um sublinhado (_) são de leitura exclusiva e não podem ser alteradas. Deve aceder às propriedades dos objetos utilizando obj.get("propriedade") e definir novos valores utilizando obj.set("propriedade", novoValor) ou obj.set({propriedade: novoValor, propriedade2: novoValor2}).
Nota: A propriedade «id» de um objeto é um identificador único a nível global: não devem existir dois objetos com o mesmo identificador, mesmo entre tipos diferentes de objetos. Além disso, uma vez que o id de um objeto é frequentemente consultado e nunca se altera, existe um atalho disponível que lhe permite aceder ao mesmo utilizando obj.id em vez de obj.get("_id"), se assim o desejar (ambas as formas funcionam).
Apenas para o Mod Script Sandbox v1.5. Os objetos também suportam a propriedade obj.type, equivalente a obj.get("type") ou obj.get("_type").
if ('graphic' === obj.type) {
// fazer algo
}
Pathv2 (disponível na versão mais recente do motor VTT)
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"pathv2" |
Pode ser utilizado para identificar o tipo de objeto ou pesquisar o objeto. Apenas para leitura. |
_pageid |
ID da página em que o objeto se encontra. Somente leitura. | |
forma |
"" |
pol, free, eli ou rec Determina se o percurso é apresentado como uma polilinha, um traço à mão livre, uma elipse ou um retângulo. |
pontos |
Uma string JSON contendo uma matriz de pontos x,y utilizados para criar o caminho. | |
preencher |
"transparente" |
Cor de preenchimento. Utilize a cadeia de caracteres «transparent» ou um código de cor hexadecimal como cadeia de caracteres, por exemplo, #000000
|
acidente vascular cerebral |
#000000 |
Cor do traço (borda). |
rotação |
0 |
Rotação (em graus). |
camada |
"" |
Camada atual: uma das seguintes: gmlayer, objetos, mapa, paredes ou primeiro plano. Os traços na camada das paredes bloqueiam a luz. |
largura do traço |
5 |
|
y |
0 |
Coordenada Y para o centro do caminho |
x |
0 |
Coordenada X para o centro do caminho |
controlado por |
"" |
Lista delimitada por vírgulas de IDs de jogadores que podem controlar o caminho. Os jogadores controladores podem excluir o caminho. Caso o caminho tenha sido criado por um jogador, esse jogador será automaticamente incluído na lista. A opção «Todos os jogadores » é representada pela inclusão de todos na lista. |
tipo de barreira |
"parede" |
As opções de tipo de barreira de iluminação dinâmica incluem «parede», «unidirecional» e «transparente»
|
oneWayReversed |
falso |
booleano |
desvanecer sobreposição |
verdadeiro |
Quando esta opção estiver ativada, a sobreposição do limite interior do elemento gráfico de uma camada de objeto com o objeto da camada de primeiro plano fará com que a sua opacidade assuma o valor definido em fadeOpacity. Quando falso, permanecerá com opacidade total, independentemente da sobreposição. |
opacidade de desvanecimento |
0.3 |
Este valor determina a opacidade do objeto quando este é sobreposto por um elemento gráfico na camada do objeto e a propriedade ` fadeOnOverlap ` está definida como `true` |
renderizarComoCenário |
false |
Quando verdadeiro, este objeto será ocultado pela iluminação dinâmica e pela Máscara Ocultar/Revelar. |
interaçãoManualReset |
false |
Quando esta opção estiver definida como verdadeira, as interações no objeto serão reiniciadas. |
interação desencadeada |
falso |
Será definido como verdadeiro quando uma interação for acionada. |
A propriedade «shape» tem os seguintes valores:
-
pol-Polilinha. É traçada uma linha reta entre cada ponto consecutivo. Se o ponto inicial e o ponto final forem os mesmos, cria-se uma forma fechada. -
grátis- À mão livre. Uma curva é desenhada utilizando os pontos como guias. Se o ponto inicial e o ponto final forem os mesmos, cria-se uma forma fechada. -
eli- Elipse. Uma elipse é desenhada utilizando os pontos para definir uma caixa delimitadora. Apenas os dois primeiros pontos são utilizados. -
rec- Retângulo. Um retângulo é desenhado utilizando os pontos para definir uma caixa delimitadora. Apenas os dois primeiros pontos são utilizados.
A propriedade «points » é uma cadeia de caracteres JSON que contém um conjunto de pontos. Os pontos são representados como uma matriz de duas posições de localização x e y. Um triângulo que vai de (0,0) a (0,70), passando por (70,0), e regressando a (0,0) seria representado como [[0,0],[0,70],[70,0],[0,0]]. As propriedades x e y posicionam o objeto PathV2 na página. Eles especificam onde deve estar o centro do desenho. Para algumas formas (elipses e retângulos), isso é bastante fácil de determinar. No caso de formas mais complexas (polilinhas e desenhos à mão livre), terá de determinar os valores mínimo e máximo da propriedade «pontos» e utilizar o ponto equidistante entre ambos.
Apenas para o Mod Script Sandbox v1.5. Métodos de instância: toFront(), toBack(), toAbove(target), toBelow(target). O alvo pode ser um objeto gráfico, de texto, de caminho ou «pathv2», ou ainda o identificador de um desses objetos.
Caminho (Mesa Clássica)
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"caminho" |
Pode ser utilizado para identificar o tipo de objeto ou pesquisar o objeto. Somente leitura. |
_pageid |
ID da página em que o objeto se encontra. Somente leitura. | |
_path |
Matriz JSON de comandos de desenho. Cada comando tem o formato ["M", x, y] ou ["L", x, y] (movimento ou linha), ou ["C", ...] para uma curva. x e y são os deslocamentos em relação ao canto superior esquerdo do percurso. Indique o caminho durante a criação. A partir daí, apenas para leitura. |
|
preencher |
"transparente" |
Cor de preenchimento. Utilize a expressão «transparent» ou um código de cor hexadecimal como expressão, por exemplo, #000000
|
acidente vascular cerebral |
#000000 |
Cor do traço (borda). |
rotação |
0 |
Rotação (em graus). |
camada |
"" |
Camada atual: «gmlayer», «objects», «map», «walls» ou «foreground». Os traços na camada das paredes bloqueiam a luz. |
largura do traço |
5 |
|
largura |
0 |
|
altura |
0 |
|
topo |
0 |
Coordenada Y para o centro do caminho |
esquerda |
0 |
Coordenada X para o centro do caminho |
escalaX |
1 |
|
escalaY |
1 |
|
controlado por |
"" |
Lista delimitada por vírgulas de IDs de jogadores que podem controlar o caminho. Os jogadores controladores podem excluir o caminho. Caso o caminho tenha sido criado por um jogador, esse jogador será automaticamente incluído na lista. A opção «Todos os jogadores » é representada pela inclusão de todos na lista. |
tipo de barreira |
"parede" |
As opções de tipo de barreira de iluminação dinâmica incluem «parede», «oneWay» e «transparente»
|
oneWayReversed |
falso |
booleano |
desvanecer sobreposição |
verdadeiro |
Quando estiver definido como «true», a sobreposição do limite interior do elemento gráfico de uma camada de objeto com o objeto da camada de primeiro plano fará com que a sua opacidade assuma o valor definido em «fadeOpacity». Quando falso, permanecerá com opacidade total, independentemente da sobreposição. |
opacidade de desvanecimento |
0.3 |
Este valor determina a opacidade do objeto quando este é sobreposto por um elemento gráfico na camada do objeto e a propriedade ` fadeOnOverlap ` está definida como `true` |
renderizarComoCenário |
falso |
Quando verdadeiro, este objeto será ocultado pela iluminação dinâmica e pela Máscara Ocultar/Revelar. |
interaçãoManualReset |
falso |
Quando esta opção estiver definida como verdadeira, as interações no objeto serão reiniciadas. |
interação desencadeada |
falso |
Será definido como verdadeiro quando uma interação for acionada. |
Indique o caminho (armazenado como _path) ao criar um caminho clássico. O formato é descrito na linha _path acima.
Apenas para o Mod Script Sandbox v1.5. Métodos de instância: toFront(), toBack(), toAbove(target), toBelow(target). O alvo pode ser um objeto gráfico, de texto, de caminho ou «pathv2», ou ainda o identificador de um desses objetos.
Janela
Observação: Janelas e portas utilizam um eixo invertido em comparação com outros tipos de objetos. Por exemplo, uma variável superior que seria 100 para outro objeto é y -100 para janela ou porta.
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"janela" |
Somente leitura. |
_pageid |
Página à qual esta janela pertence. Indique o «pageid» aquando da criação. A partir daí, apenas para leitura. |
|
cor |
"#ff0000" |
A cor hexadecimal da janela. |
x |
0 |
Centro de coordenadas da janela no eixo x. |
y |
0 |
Centro de coordenadas da janela no eixo y. |
está aberto |
falso |
Determina se um jogador pode passar por esta janela. |
está bloqueado |
falso |
Impede que os utilizadores interajam com a janela. |
caminho |
Duas alças, handle0 e handle1, cada uma com os valores x e y. Essas coordenadas correspondem a deslocamentos em relação às coordenadasx/y deste objeto, no mesmo eixo y invertido. |
Exemplo
on('chat:message', function(msg) {
if (msg.type === 'api' && msg.content === '!cw') {
const currentPageID = Campaign().get('playerpageid');
const win = createObj('window', {
x: 70,
y: -70,
pageid: currentPageID,
path: {
handle0: {
x: -70,
y: 0,
},
handle1: {
x: 35,
y: 0,
},
},
color: '#000000'
});
}
if (msg.type === 'api' && msg.content === '!mw') {
const win = getObj('window', '-NG38yUgghBBoV8YR0y1');
win.set({
x: 240,
y: -139
});
}
se (msg.type === 'api' && msg.content === '!dw') {
const win = getObj('window', '-NG38yUgghBBoV8YR0y1');
win.remove();
}
});
Porta
Nota: As janelas e as portas utilizam um eixo invertido em comparação com outros tipos de objetos. Por exemplo, uma variável «top», que seria igual a 100 para outro objeto, é igual a y - 100 no caso de uma janela ou porta.
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
«porta» |
Somente leitura. |
_pageid |
Página à qual esta porta pertence. Indique o «pageid» ao criar. A partir daí, será apenas de leitura. |
|
cor |
"" |
Um código hexadecimal da cor da porta. |
x |
0 |
Coordene o centro da porta no eixo x. |
y |
0 |
Coordene o centro da porta no eixo y. |
está aberto |
falso |
Determina se um jogador pode passar por esta porta. |
está bloqueado |
falso |
Impede que os jogadores interajam com a porta. |
éSecreto |
falso |
Remove um ícone de porta da visualização do jogador e funciona como uma barreira. |
caminho |
Duas alças, handle0 e handle1, cada uma com os valores x e y. Essas coordenadas correspondem a desvios em relação às coorden adasx/y deste objeto, no mesmo eixo y invertido. |
Texto
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"texto" |
Pode ser utilizado para identificar o tipo de objeto ou pesquisar o objeto. Somente leitura. |
_pageid |
ID da página em que o objeto se encontra. Somente leitura. | |
topo |
0 |
|
esquerda |
0 |
|
largura |
0 |
|
altura |
0 |
|
texto |
"" |
|
tamanho da fonte |
16 |
Para obter melhores resultados, utilize os tamanhos predefinidos no menu de edição: 8, 10, 12, 14, 16, 18, 20, 22, 26, 32, 40, 56, 72, 100, 200, 300. |
rotação |
0 |
|
cor |
rgb(0, 0, 0) |
|
acidente vascular cerebral |
"transparente" |
|
família de fontes |
"Arial" |
Se esta opção não estiver definida, ao alterar posteriormente o valor da propriedade «text», o «font_size» será reduzido para 8. Valores possíveis (não se distingue maiúsculas de minúsculas): Arial, Patrick Hand, Contrail One, Shadows Into Light e Candal. Especificar um nome inválido resulta na utilização de uma fonte serifada monoespaçada sem nome. |
camada |
"" |
Camada atual: «gmlayer», «objects», «map», «walls» ou «foreground». |
controlado por |
"" |
Lista delimitada por vírgulas de IDs de jogadores que podem controlar o texto. Os jogadores controladores podem excluir o texto. Se o texto foi criado por um jogador, esse jogador é automaticamente incluído na lista. A opção «Todos os jogadores » é representada pela inclusão de todos na lista. |
desvanecer sobreposição |
verdadeiro |
Quando estiver definido como «true», a sobreposição do limite interior do elemento gráfico de uma camada de objeto com o objeto da camada de primeiro plano fará com que a sua opacidade assuma o valor definido em «fadeOpacity». Quando falso, permanecerá com opacidade total, independentemente da sobreposição. |
opacidade de desvanecimento |
0.3 |
Este valor determina a opacidade do objeto quando este é sobreposto por um elemento gráfico na camada do objeto e a propriedade ` fadeOnOverlap ` está definida como `true` |
renderizarComoCenário |
falso |
Quando verdadeiro, este objeto será ocultado pela iluminação dinâmica e pela Máscara Ocultar/Revelar. |
interaçãoManualReset |
falso |
Quando esta opção estiver definida como verdadeira, as interações no objeto serão reiniciadas. |
interação desencadeada |
falso |
Será definido como verdadeiro quando uma interação for acionada. |
Apenas para o Mod Script Sandbox v1.5. Métodos de instância: toFront(), toBack(), toAbove(target), toBelow(target). O alvo pode ser um objeto gráfico, de texto, de caminho ou «pathv2», ou ainda o identificador de um desses objetos.
Pinos
O objeto «pin» representa os «Map Pins», marcadores interativos que aparecem diretamente no mapa. Os pins podem exibir imagens, mostrar dicas de ferramentas, conter notas do GM e podem ser vinculados a apostilas no seu diário. Podem ser visíveis ou ocultos, permitindo revelações dramáticas, iluminando um local descoberto, ou podem ser utilizados como marcadores de informação para um jogo mais interativo. Informações adicionais sobre pins podem ser encontradas na Central de Ajuda.
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo, semelhante ao de outros objetos Roll20. Somente leitura. | |
_tipo |
"alfinete" |
O tipo de pino. Somente leitura. |
_pageid |
"" |
O ID da página à qual este pin pertence. Somente leitura. |
x |
0 |
A coordenada X do pin na página. |
y |
0 |
A coordenada Y do pin na página. |
cor de fundo |
N.º 242424 |
Cor de fundo do alfinete (hexadecimal ou transparente). Suporta cadeias de cores HTML #RRGGBB ou #RRGGBBAA (translucidez) |
forma |
"lágrima" |
Formato do pino. Os valores válidos são: lágrima, círculo, losango, quadrado
|
ícone |
"ponto base" |
Ícone integrado quando «customizationType» é «icon»
|
imagem fixa |
"" |
URL da imagem apresentada quando «customizationType» é «image»
|
tipo de personalização |
"ícone" |
Determina se o marcador apresenta o ícone ou a imagem do marcador. Defina «pinImage » como um URL de imagem válido quando utilizar «customizationType: image». Ao alternar o «customizationType» entre «icon» e «image», o «pinImage» não é apagado; o URL é mantido |
utilizarIcon |
falso |
Quando useTextIcon estiver definido como «true», o pino apresenta um rótulo de texto em vez de um ícone ou de uma imagem. Essa etiqueta é retirada do iconText; apenas os primeiros 3 caracteres são apresentados |
texto do ícone |
"" |
Rótulo de texto (utilizam-se os primeiros 3 caracteres) quando useTextIcon é verdadeiro |
tamanho da imagem da dica de ferramenta |
"média" |
Tamanho da imagem na dica de ferramenta do pin. Os valores válidos são pequeno, médio, grande e XL
|
link |
"" |
ID do folheto ao qual este pin está associado. O campo «linkType» só aceita «handout » ou «». |
tipo de ligação |
"" |
O tipo de objeto vinculado. Valores válidos: folheto, "" (cadeia de caracteres vazia). |
subLink |
"" |
Texto do título para o qual deve deslocar-se no folheto em anexo. Utiliza-se com subLinkType (headerPlayer ou headerGM). |
subTipoDeLink |
"" |
O tipo de subligação. Valores válidos: headerPlayer, headerGM, "" (cadeia de caracteres vazia). |
título |
"" |
O texto do título exibido no pin. |
notas |
"" |
Uma sequência de caracteres normal. Não se trata de nenhum dos campos de texto livre ou de dados de distribuição. |
Notas GM |
"" |
Cadeia de caracteres normal, apenas para GM. Não se trata de nenhum dos campos de texto livre ou de dados de distribuição. |
tooltipImage |
"" |
Identificador de imagem Roll20 para a imagem da dica de ferramenta exibida no pin. |
Visível para |
"" |
mostra o alfinete a todos. "" oculta-o aos jogadores. |
autoNotasTipo |
"" |
Formato para notas geradas automaticamente. Valores válidos: "" (cadeia de caracteres vazia), blockquote. |
tooltipVisibleTo |
todos |
Controla quem pode visualizar a dica de ferramenta. Valores válidos: todos, "" (cadeia de caracteres vazia). |
tooltipTitleVisibleTo |
todos |
Controla quem pode visualizar o título da dica de ferramenta. Valores válidos: todos, "" (cadeia de caracteres vazia). |
placa de identificaçãoVisívelPara |
todos |
Controla quem pode visualizar a placa de identificação. Valores válidos: todos, "" (cadeia de caracteres vazia). |
imagemVisívelPara |
todos |
Controla quem pode visualizar a imagem. Valores válidos: todos, "" (cadeia vazia). |
notasVisíveisPara |
todos |
Controla quem pode visualizar as notas. Valores válidos: todos, "" (cadeia de caracteres vazia). |
gmNotasVisíveisPara |
todos |
Controla quem pode visualizar as notas do GM. Valores válidos: todos, "" (cadeia de caracteres vazia). |
escala |
1.0 |
Fator de escala para o pino. Deve estar entre 0,25 e 2,0. |
imagemDesincronizada |
falso |
Se a imagem do pin está desincronizada do objeto a que está associada. Definir qualquer propriedade desincronizada define as três para o mesmo valor. |
notasDesincronizadas |
falso |
Se as notas do pin estão dessincronizadas em relação ao objeto a ele associado. Definir qualquer propriedade desincronizada define as três para o mesmo valor. |
gmNotasDesincronizadas |
falso |
Se as notas do GM do pino estão desincronizadas em relação ao objeto a que está associado. Definir qualquer propriedade desincronizada define as três para o mesmo valor. |
Nota 1: Se pretender utilizar conteúdo personalizado nos pinos (para substituir a imagem, as notas e as notas do GM do Handout), deve definir pelo menos uma das propriedades «desincronizadas» como «true» (o que fará com que todas elas sejam definidas).
Nota 2: Valores válidos para ícones: base-dot, base-castle, base-skullSimple, base-spartanHelm, base-radioactive, base-heart, base-star, base-starSign, base-pin, base-speechBubble, base-file, base-plus, base-circleCross, base-dartBoard, base-badge, base-flagPin, base-crosshair, base-scrollOpen, base-diamond, base-photo, base-fourStarShort, base-circleStar, base-lock, base-crown, base-leaf, base-signpost, base-beer, base-compass, base-video, chave-base, baú-base, aldeia-base, espada-para-cima-base, casa-base, casa-base2, igreja-base, governo-base, ferreiro-base, estábulo-base, engrenagem-base, ponte-base, montanha-base, exclamação-base, interrogação-base.
Gráfico (Ficha/Mapa/Cartão/Etc.)
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"gráfico" |
Pode ser utilizado para identificar o tipo de objeto ou pesquisar o objeto. Somente leitura. |
_subtipo |
"marcador" |
Pode ser um marcador (marcadores e mapas), uma carta ou um marcador de dados. Somente leitura. |
_cardid |
Defina como um ID se o gráfico for um cartão. Somente leitura. | |
_pageid |
ID da página em que o objeto se encontra. Somente leitura. | |
imgsrc |
O URL da imagem do gráfico. Consulte a nota sobre as restrições relativas a imgsrc e avatares abaixo. |
|
bar1_link |
Defina um ID se a barra 1 estiver associada a um personagem. | |
bar2_link |
||
bar3_link |
||
bar4_link |
||
representa |
ID da personagem que este token representa. |
|
esquerda |
0 |
Número de pixels desde a margem esquerda do mapa até ao centro do gráfico. |
topo |
0 |
Número de pixels desde a borda superior do mapa até o centro do gráfico. |
largura |
0 |
Largura do gráfico, em pixels. |
altura |
0 |
Altura do gráfico, em pixels. |
rotação |
0 |
A orientação do token em graus. |
camada |
"" |
Camada atual: «gmlayer», «objects», «map», «walls» ou «foreground». |
está a desenhar |
falso |
Esta propriedade é alterada a partir do menu de contexto Avançado. |
desativar encaixe |
falso |
Desative o encaixe gráfico na grelha. |
desativarMenuToken |
falso |
Desative as configurações do menu de tokens gráficos (bolhas de token e menu radial). |
flipv |
falso |
Vire verticalmente. |
fliph |
falso |
Inverter horizontalmente. |
nome |
"" |
O nome do token. |
Notas GM |
"" |
Notas exclusivas para o GM. Uma cadeia de caracteres síncrona, frequentemente HTML codificado em URL (pode começar por %3Cp%3E). Este não é um campo de texto livre nem um campo de texto simples. |
controlado por |
"" |
Lista delimitada por vírgulas de IDs de jogadores que podem controlar o gráfico. Os jogadores controladores podem excluir o gráfico. Se o gráfico foi criado por um jogador, esse jogador é automaticamente incluído na lista. A opção «Todos os jogadores » é representada pela inclusão de todos na lista. |
valor da barra 1 |
"" |
Valor atual da Barra 1. Pode ser um número ou texto. |
valor da barra 2 |
"" |
|
valor da barra 3 |
"" |
|
bar4_value |
"" |
|
bar1_max |
"" |
Valor máximo da Barra 1. Se _value e _max estiverem ambos definidos, poderá ser exibida uma barra acima do token mostrando a percentagem da Barra 1. |
bar2_max |
"" |
|
bar3_max |
"" |
|
bar4_max |
"" |
|
aura1_raio |
"" |
Raio da aura, utilizando as unidades definidas nas definições da página. Pode ser um número inteiro ou um número flutuante. Defina como uma string vazia para limpar a aura. |
aura2_raio |
"" |
|
aura1_color |
#FFFF99 |
Um código hexadecimal da cor da aura. |
aura2_color |
#59E594 |
|
aura1_opções |
"círculo" |
Define a forma de uma aura. As opções válidas são círculo ou quadrado. Nota: Mantido em sincronia com aura1_square
|
aura2_opções |
"círculo" |
Define a forma de uma aura. As opções válidas são «círculo » ou «quadrado ». Nota: Mantém-se em sincronia com aura2_square
|
aura1_quadrado |
falso |
A aura é um círculo ou um quadrado? |
aura2_quadrado |
falso |
|
cor_da_tinta |
"transparente" |
Cor hexadecimal ou transparente. Irão alterar a cor do gráfico. |
marcadores de estado |
"" |
Uma lista delimitada por vírgulas dos indicadores de estado atualmente ativos. Os marcadores personalizados utilizam a etiqueta «nome::id» dos marcadores de campanha _token_markers. Consulte as notas abaixo. |
nome da exibição |
falso |
Se a placa de identificação do token está visível. |
Mostrar nomes dos participantes |
falso |
Por favor, apresente a placa de identificação a todos os jogadores. |
barra de reprodução1 |
falso |
Mostrar a barra 1 a todos os jogadores. |
barra de reprodução2 |
falso |
|
barra de reprodução3 |
falso |
|
showplayers_bar4 |
false |
|
Mostrar jogadores_aura1 |
falso |
Mostre Aura 1 a todos os jogadores. |
Mostrar jogadores_aura2 |
falso |
|
edit_name dos jogadores |
verdadeiro |
Permita que os jogadores que controlam a ficha editem o nome da mesma. Mostrará também a placa de identificação aos jogadores que controlam a ação, mesmo que a variável «showplayers_name» esteja definida como «false». |
edit_bar1 |
verdadeiro |
Permita que os jogadores responsáveis controlem a edição da Barra 1 do token. Mostrará também a Barra 1 aos jogadores que controlam o jogo, mesmo que o parâmetro ` showplayers_bar1 ` esteja definido como falso. |
edit_bar2 |
verdadeiro |
|
edit_bar3 |
verdadeiro |
|
playersedit_bar4 |
verdadeiro |
|
bar1_número_de_autorização |
"" |
Defina a forma como a sobreposição da barra 1 é apresentada. Valores válidos: todos, oculto. "" significa que apenas os editores verão o valor |
bar2_num_permissão |
"" |
|
bar3_num_permissão |
"" |
|
bar4_num_permissão |
"" |
|
editores de jogadores_aura1 |
verdadeiro |
Permita que os jogadores que controlam o token editem a Aura 1 do mesmo. Mostrará também a Aura 1 aos jogadores que controlam a ação, mesmo que a variável ` showplayers_aura1 ` esteja definida como `false`. |
editores de jogadores_aura2 |
verdadeiro |
|
raio_de_luz |
"" |
ILUMINAÇÃO DINÂMICA HERDADA (DESCONTINUADA ): raio de luz intensa. Consulte «bright_light_distance». |
raio_da_luz |
"" |
Iluminação Dinâmica Antiga (OBsoleta ): Início do raio de luz fraca. Se light_dimradius for uma cadeia de caracteres vazia, o token emitirá uma luz intensa até à distância light_radius. Se light_dimradius tiver um valor, o token emitirá luz intensa até ao valor de light_dimradius e, a partir daí, luz mais fraca até ao valor de light_radius. Consulte «low_light_distance» na documentação sobre Iluminação Dinâmica |
outros jogadores |
falso |
Iluminação Dinâmica Antiga (DESCONTINUADA ): mostra a luz deste token a todos os jogadores. Isto não é «has_night_vision». |
visão_leve |
false |
Iluminação Dinâmica Obsoleta: esta luz proporciona visibilidade aos jogadores que controlam a situação, para efeitos da regra «Linha de Visão». Consulte has_bright_light_vision. |
ângulo de incidência da luz |
"360" |
ILUMINAÇÃO DINÂMICA DESCONTINUADA: ângulo em graus. O valor 180 indica que há luz na metade da frente do campo. Consulte has_directional_bright_light, directional_bright_light_center e directional_bright_light_total. |
luz_losangle |
"360" |
Iluminação Dinâmica Obsoleta: Ângulo (em graus) do campo de visão do gráfico (partindo do princípio de que light_hassight está definido como true). Consulte has_limit_field_of_vision, limit_field_of_vision_center e limit_field_of_vision_total na documentação sobre Iluminação Dinâmica |
lados |
"" |
Lista de imagens secundárias delimitada por barras verticais. Cada entrada está codificada em URL. Divida pelo caractere | e, em seguida, descodifique com a função decodeURIComponent. |
lado da corrente |
0 |
Divida em partes laterais. Apenas para o Mod Script Sandbox v1.5. Ao definir «currentSide», o «imgsrc» é atualizado automaticamente, incluindo as imagens do Marketplace. Se o mesmo .set() também incluir um imgsrc válido, esse imgsrc será utilizado em vez disso. |
último movimento |
"" |
O último movimento da ficha. Trata-se de uma lista de coordenadas delimitadas por vírgulas. Por exemplo, «300,400» significaria que o token iniciou o seu último movimento com a posição à esquerda = 300 e a posição superior = 400. Parte-se sempre do princípio de que os valores atuais de «topo» e «esquerda» do token correspondem ao «ponto final» do último movimento. Os pontos de referência são indicados por vários conjuntos de coordenadas. Por exemplo, «300,400,350,450,400,500» indicaria que o token começou com as coordenadas esquerda=300, superior=400, definiu depois um ponto de passagem com as coordenadas esquerda=350, superior=450, outro ponto de passagem com as coordenadas esquerda=400, superior=500 e, por fim, concluiu o movimento nas suas coordenadas atuais de superior + esquerda. |
multiplicador de luz |
"1" |
Multiplicador de iluminação dinâmica «Legacy», OBsoleto. 1 corresponde à visão normal. A iluminação dinâmica atual utiliza o parâmetro «light_sensitivity_multiplier», em que 100 corresponde ao valor normal. |
distância de visualização adv_fow |
"" |
O raio em torno de um token onde a Névoa de Guerra Avançada é revelada. |
multiplicador_de_sensibilidade_à_luz |
100 |
Multiplicador da eficácia das fontes de luz. Um multiplicador de 200 permitiria que o token visse duas vezes mais longe do que um token com um multiplicador de 100, com a mesma fonte de luz. |
efeito_de_visão_noturna |
null |
Efeito de visão noturna. «null» é o efeito padrão. Outros valores incluem «Dimming » e «Nocturnal». |
localização do bar |
null |
O local onde se encontram as barras de fichas. «null» é a localização predefinida. Outros valores: overlap_top, overlap_bottom, bottom. |
compact_bar |
null |
Estilo de bar. O valor predefinido é «null ». O «compact» utiliza a barra «compact». |
bloquearMovimento |
falso |
Uma opção para fixar um gráfico no lugar. Valor booleano verdadeiro ou falso |
desvanecer sobreposição |
verdadeiro |
Quando esta opção estiver ativada, a sobreposição do limite interior do elemento gráfico de uma camada de objeto com o objeto da camada de primeiro plano fará com que a sua opacidade assuma o valor definido em `fadeOpacity`. Quando estiver definido como «false», manterá a sua opacidade base definida, independentemente da sobreposição. |
opacidade de desvanecimento |
.3 |
Este valor determina a opacidade do objeto quando este é sobreposto por um elemento gráfico na camada do objeto e a propriedade ` fadeOnOverlap ` está definida como `true` |
renderizarComoPaisagem |
falso |
Quando verdadeiro, este objeto será ocultado pela iluminação dinâmica e pela Máscara Ocultar/Revelar. |
opacidade da base |
1.0 |
Opacidade inicial do elemento gráfico, em qualquer camada. |
interaçãoManualReset |
falso |
Quando esta opção estiver definida como verdadeira, as interações no objeto serão reiniciadas. |
interação acionada |
falso |
Será definido como verdadeiro quando uma interação for acionada. |
Propriedades atuais da iluminação dinâmica (para além dos campos «light_*» herdados acima):
| Propriedade | Padrão |
|---|---|
tem_visão_em_luz_intensa |
falso |
possui visão noturna |
falso |
tonalidade_de_visão_noturna |
null |
distância_de_visão_noturna |
0 |
emite_luz_intensa |
falso |
distância_da_luz_intensa |
0 |
emite_luz_fraca |
falso |
distância_em_condições_de_baixa_iluminação |
0 |
opacidade_da_luz_fraca |
0 |
lightColor |
«transparente» |
has_limit_field_of_vision |
falso |
limite_do_campo_de_visão_central |
0 |
limite_do_campo_de_visão_total |
0 |
tem_campo_limitado_de_visão_noturna |
falso |
campo_limite_do_centro_da_visão_noturna |
0 |
campo_limite_da_visão_noturna_total |
0 |
has_directional_bright_light |
falso |
luz_brilhante_direcional_central |
0 |
luz_direcional_intensa_total |
0 |
has_directional_dim_light |
falso |
luz_direcional_dim_centro |
0 |
luz_direcional_dim_total |
0 |
tooltip |
"" |
mostrar_dica |
falso |
gm_only_tooltip |
falso |
renderAsDarkness |
falso |
Apenas para o Mod Script Sandbox v1.5. Ao definir «currentSide», o «imgsrc» é atualizado automaticamente:
const setRandomSide = (obj) => {
if ('graphic' === obj.type) {
obj.set({
currentSide: randomInteger(obj.get('sides')?.split('|').length ?? 1) - 1
});
}
};
Apenas para o Mod Script Sandbox v1.5. Métodos apresentados no gráfico:
-
createCopy(propriedades)— copia da mesma forma queo createObj, incluindo as imagens do Marketplace (imgsrc/sides). Devolve o novo gráfico. -
toFront(),toBack(),toAbove(target),toBelow(target)— idênticas às funções globais.O alvopode ser um objeto ou um identificador.
obj.createCopy({ pageid, layer, left: x, top: y });
Exemplo de marcadores simbólicos
A lista de marcadores disponíveis em todo o jogo é Campaign().get('_token_markers'). Cada entrada tem o seguinte formato:
{
"id":59, // o identificador da base de dados para o
"name":"Bane", // o nome (não exclusivo) do marcador
"tag":"Bane::59", // a forma como o token é efetivamente referido
// isto incluirá o identificador para marcadores personalizados, mas não
// para marcadores predefinidos.
"url":"https://s3.amazonaws.com/files.d20.io/images/59/yFnKXmhLTtbMtaq-Did1Yg/icon.png?1575153187"
// ^a URL da imagem do marcador de token
}
Notas importantes sobre personagens associados + tokens Tenha em atenção que, no caso dos tokens associados a personagens, o campo «controlledby» do token é substituído pelo campo «controlledby» do personagem. No caso das barras de tokens (por exemplo,bar1_value e bar1_max), em que o token está associado a um Atributo (por exemplo,bar1_link está definido), ao atribuir um valor à barra, os valores atual e/ou máximo do Atributo subjacente serão também atualizados automaticamente, pelo que não é necessário definir ambos manualmente. Além disso, quando o Atributo (ou barra de token) for modificado no jogo, ouvirá um evento «change:attribute» (e um evento específico da propriedade, por exemplo,«change:attribute:current»), seguido de um evento «change:graphic» (e «change:graphic:bar1_value»). É possível optar por responder a qualquer um dos eventos, mas os valores da barra subjacente ainda não serão atualizados quando o evento de atributo for acionado, uma vez que ele é acionado primeiro.
Notas importantes sobre os indicadores de estado A partir de 6 de agosto de 2013, a forma como os indicadores de estado nos tokens são tratados sofreu alterações. A propriedade «statusmarkers» do objeto «Graphic» é agora uma lista delimitada por vírgulas de todas as cores/ícones dos marcadores de estado que devem estar ativos no token. O formato é o seguinte:
//Delimitado por vírgulas (utilize join para criar ou split para transformar em uma matriz).
//Se um ícone/cor de estado for seguido do símbolo «@», o número após
//«@» será apresentado como o emblema no ícone
statusmarkers = "red,blue,skull,dead,brown@2,green@6"
Embora seja possível aceder diretamente à propriedade `statusmarkers`, para manter a compatibilidade com versões anteriores dos scripts existentes e para proporcionar uma forma fácil de trabalhar com os marcadores de estado sem necessidade de escrever código para dividir e analisar a cadeia de caracteres por si próprio, disponibilizamos um conjunto de propriedades virtuais no objeto que pode definir/obter para trabalhar com os marcadores de estado. Cada marcador de estado possui uma propriedade «status_<markername> ». Por exemplo:
obj.get("status_red"); //Retornará falso se o marcador não estiver ativo, verdadeiro se estiver, e uma string (por exemplo, "2" ou "5") se houver atualmente um emblema definido no marcador
obj.get('status_bluemarker'); //Ainda é suportado para compatibilidade com versões anteriores e é equivalente a obj.get("status_blue");
obj.set("status_red", false); //removeria o marcador
obj.set("status_skull", "2"); //definiria um emblema de "2" no ícone da caveira e o adicionaria ao token se ele ainda não estiver ativo.
Tenha em atenção que estas propriedades virtuais não têm eventos; por isso, deve utilizar «change:graphic:statusmarkers» para detetar alterações nos marcadores de estado de um token; e, por exemplo, «change:graphic:status_red» NÃO é um evento válido e nunca será acionado. A lista completa de marcadores de estado disponíveis (na mesma ordem em que aparecem na bandeja de marcadores):
"vermelho", "azul", "verde", "castanho", "roxo", "rosa", "amarelo", "morto", "crânio", "sonolento", "meio coração", "meia névoa", "interdição", "caracol", "hélix relâmpago", "chave inglesa", "coração acorrentado", "parafuso químico", "zona da morte", "beba-me", "fenda na borda", "máscara de ninja", "cronómetro", "rede de pesca", "overdrive", "forte", "punho", "cadeado", "três folhas", "asa fofa", "espancado", "pisada", "flechado", "aura", "dor nas costas", "bandeira preta", "olho sangrando", "escudo de parafuso", "coração partido", "teia de aranha", "escudo quebrado", "bandeira voando", "radioativo", "troféu", "crânio partido", "orbe congelado", "bomba rolante", "torre branca", "agarrar", "gritar", "granada", "arma sentinela", "todos por um", "traje de anjo", "alvo de tiro com arco"
Página
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um identificador único para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"página" |
Pode ser utilizado para identificar o tipo de objeto ou pesquisar o objeto. Somente leitura. |
_zorder |
"" |
Lista de IDs delimitada por vírgulas que especifica a ordem dos objetos na página. A cadeia de caracteres armazenada tem frequentemente uma vírgula no final; elimine os segmentos vazios ao dividi-la. Os métodos toFront e toBack reescrevem esta lista. Somente leitura. |
nome |
"" |
Título da página. |
mostrar grade |
verdadeiro |
Mostre a grelha no mapa. |
mostrar escuridão |
falso |
Mostrar a névoa de guerra no mapa. |
iluminação de exposição |
falso |
Iluminação dinâmica obsoleta: Para utilizar a iluminação dinâmica, consulte dynamic_lighting_enabled na documentação sobre iluminação dinâmica |
largura |
25 |
Largura em unidades. |
altura |
25 |
Altura em unidades. |
incremento de encaixe |
1 |
Tamanho de um espaço da grelha em unidades. |
opacidade da grelha |
0.5 |
Opacidade das linhas da grelha. |
opacidade_da_neblina |
0.35 |
Opacidade da névoa da guerra para o GM. |
cor de fundo |
"#ffffff" |
Cor hexadecimal do fundo do mapa. Armazenado em minúsculas. |
cor da grade |
#C0C0C0 |
Cor hexadecimal das linhas da grelha. |
tipo_de_grade |
"quadrada" |
Um dos seguintes: quadrado, hexagonal (Hex V), hexagonal (Hex H), dimétrico ou isométrico. |
número da escala |
5 |
A distância de uma unidade. |
unidades de escala |
"pé" |
O tipo de unidades a utilizar para a escala. |
rótulos da grelha |
falso |
Exibir rótulos da grelha para a grelha hexagonal. |
tipo diagonal |
"quatro" |
Um dos seguintes: «foure», «pitagórico » (euclidiano), «três-cinco» ou «manhattan». |
arquivado |
false |
Se a página foi colocada no armazenamento de arquivo. |
atualização de luz |
falso |
Atualize a iluminação dinâmica apenas quando um objeto for solto. |
força leve |
falso |
Iluminação Dinâmica Obsoleta: Aplicar a linha de visão aos objetos. |
restrição de luz |
falso |
Não permita que objetos dotados de visão atravessem paredes de iluminação dinâmica. |
iluminação global |
falso |
Iluminação Dinâmica Obsoleta: Se o valor for «true» em qualquer local onde um token possa «ver», presume-se que existe luz intensa. Consulte «daylight_mode_enabled» na documentação sobre iluminação dinâmica |
adv_fow_enabled |
falso |
O «Legacy Advanced Fog of War» foi descontinuado. |
adv_fow_dim_reveals |
falso |
OBSOLETO: «Nuvem de Guerra Avançada» (Legacy): a luz fraca revela a nuvem de guerra. |
adv_fow_show_grid |
falso |
OBSOLETA: «Fog of War» avançado (versão antiga): mostra a grelha através do nevoeiro. |
desvio_da_grelha_x |
0 |
Desvio da grelha horizontal. |
deslocamento_da_grelha_y |
0 |
Desvio da grelha vertical. |
force_lighting_refresh |
null |
Configure para solicitar uma atualização da iluminação dinâmica. O valor por predefinição é «null», não um valor booleano. |
jukeboxtrigger |
null |
Reproduzir a página ao carregar. As opções incluem «nenhuma», «parar», «todas» ou um identificador de faixa. |
iluminação_dinâmica_ativada |
falso |
Utilize a iluminação dinâmica |
modo_diurno_ativado |
falso |
Utilizar o Modo Luz do Dia |
opacidade do modo de luz do dia |
1 |
define a intensidade da luz no Modo Luz do Dia |
modo explorador |
"desligado" |
Opções: desativado, básico
|
efeito escuridão |
"nenhum" |
Opções: nenhuma, nevoeiro escuro, nevoeiro claro
|
_colocação |
0 |
Apenas para o Mod Script Sandbox v1.5. Chave de ordenação no menu da página. As páginas existentes utilizam valores esparsos (por exemplo, 2000). Ordene por este número; não o utilize como índice de uma matriz. Apenas para leitura, exceto através dos métodos de colocação. |
_caminho |
"," |
Apenas para o Mod Script Sandbox v1.5. Identificadores de pastas de páginas delimitados por vírgulas. Os valores começam normalmente com uma vírgula e podem terminar com vírgulas adicionais. Elimine os segmentos vazios ao dividir. Apenas para leitura, exceto através dos métodos de colocação. |
_wrapperAutoColor |
#ffffff |
Apenas para o Mod Script Sandbox v1.5. Cor do invólucro calculada. Somente leitura. |
useAutoWrapper |
verdadeiro |
Apenas para o Mod Script Sandbox v1.5. Quando for verdadeiro, utilize o _wrapperAutoColor. |
wrapperColor |
null |
Apenas para o Mod Script Sandbox v1.5. Utilizado quando useAutoWrapper estiver definido como «false». |
Apenas para o Mod Script Sandbox v1.5. Métodos: placeBefore(obj), placeAfter(obj) (ondeobj é uma página ou uma pasta de páginas), placeIn(obj) (ondeobj é uma pasta de páginas). A navegação entre os níveis das pastas atualiza _path.
PáginaPasta
Apenas para o Mod Script Sandbox v1.5.
Os objetos «pageFolder» são pastas no menu da página. Pode criá-los e eliminá-los. Ao eliminar uma pasta, os seus subelementos são movidos um nível acima no menu.
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"pageFolder" |
Somente leitura. |
nome |
«Nova pasta» |
Apresentado no menu da página. |
_colocação |
0 |
Ordem no menu da página. |
_caminho |
"," |
Identificadores de pastas da página principal, separados por vírgulas. |
Métodos: placeBefore(obj), placeAfter(obj) (página ou pasta de páginas), placeIn(obj) (pasta de páginas). A alteração de pastas atualiza o _path para esta pasta e as suas subpastas. A função remove() move os elementos filhos para cima e, em seguida, elimina a pasta.
var folder = createObj('pageFolder', { name: 'Dungeons' });
Campanha
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
"raiz" |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. |
_tipo |
"campanha" |
Pode ser utilizado para identificar o tipo de objeto ou para pesquisar o objeto — no entanto, tenha em atenção que existe apenas um objeto «Campaign», ao qual se pode aceder através de Campaign(). Somente leitura. |
ordem de rotação |
"" |
Uma sequência JSON da ordem de jogada. Consulte abaixo. |
página de iniciativa |
false |
ID da página utilizada para o rastreador quando a janela de ordem de jogada está aberta. Quando definido como «false», a janela da ordem de jogada fecha-se. |
ID da página do jogador |
false |
ID da página em que o marcador do reprodutor está definido. Os jogadores visualizam esta página por predefinição, a menos que tal seja substituído pelas páginas específicas do jogador indicadas abaixo. |
páginas específicas dos jogadores |
false |
Um objeto (NÃO UMA STRING JSON) com o seguinte formato: {player1_id: page_id, player2_id: page_id } … } Qualquer leitor associado a uma página neste objeto substituirá o «playerpageid». |
_pasta de diários |
"" |
Uma sequência JSON que contém dados sobre a estrutura de pastas do jogo. Somente leitura. |
_jukeboxfolder |
"" |
Uma string JSON que contém dados sobre a estrutura da lista de reprodução do jukebox do jogo. Somente leitura. |
_marcadores_de_token_ |
"[]" |
Matriz JSON dos marcadores de token disponíveis no jogo (predefinidos e personalizados). Somente leitura. Consulte o exemplo «Token Markers» na secção «Gráficos». |
camada de primeiro plano visível |
verdadeiro |
Quando verdadeiro, os jogadores visualizarão objetos na camada de primeiro plano. Quando falso, eles não o farão. Observação: esta é uma configuração global que afeta todas as páginas. |
tokenBubbleMax |
3 |
Os valores válidos são 3 ou 4, representando o número de bolhas de fichas. Disponível na versão atualizada do VTT Engine. |
Estas propriedades adicionais são lidas no objeto devolvido pela função Campaign(), e não através da função get:
| Propriedade | Sandbox | Notas |
|---|---|---|
sandboxVersion |
ambos |
«1,0» ou «1,5»
|
nodeVersion |
ambos |
Cadeia de caracteres da versão do Node.js para o processo da sandbox |
nome da folha |
Apenas v1.5 | Nome abreviado da ficha de personagem configurada |
resumo calculado |
Apenas v1.5 | Nomes de propriedades calculadas disponíveis no Beacon |
resumo da ação |
Apenas v1.5 | Ações disponíveis na folha do Beacon |
log(Campaign().sandboxVersion);
Ordem de jogada A ordem de jogada é uma cadeia de caracteres JSON que representa a lista atual da ordem de jogada. Trata-se de uma matriz de objetos. Atualmente, a ordem de jogada só pode conter objetos de uma página de cada vez – o ID da página atual para a ordem de jogada é o atributo «initiativepage ». Certifique-se de manter ambos sincronizados, caso contrário, poderá obter resultados inesperados. Para trabalhar com a ordem de jogada, deverá utilizar o método JSON.parse() para obter um objeto que represente o estado atual da ordem de jogada (NOTA: Verifique primeiro se não se trata de uma cadeia de caracteres vazia ""…; caso seja, inicialize-o manualmente com um array vazio). Eis um exemplo de objeto de ordem de jogada:
[
{
"id":"36CA8D77-CF43-48D1-8682-FA2F5DFD495F", // O ID do objeto gráfico. Se esta opção estiver ativada, a lista de ordem de jogada irá automaticamente extrair o nome e o ícone para a lista com base no gráfico na mesa.
"pr":"0", //O valor atual do item na lista. Pode ser um número ou texto.
"custom":"" //Título personalizado para o item. Será ignorado se o ID estiver definido para um valor diferente de "-1".
},
{
"id":"-1", //Para itens personalizados, o ID DEVE ser definido como "-1" (tenha em atenção que se trata de uma STRING e não de um NUMBER.
"pr":"12",
"custom":"Teste Personalizado" // O nome a apresentar para os itens personalizados.
Para alterar a ordem de jogadas, edite o objeto da ordem de jogadas atual e, em seguida, utilize a função JSON.stringify() para alterar o atributo na Campanha. Note que a ordem dos elementos na lista corresponde à ordem do array; assim, por exemplo, a função `push()` adiciona um elemento ao final da lista, a função `unshift()` adiciona-o ao início, etc.
var turnorder;
if(Campaign().get("turnorder") == "") turnorder = []; //NOTA: Verificamos primeiro se a turnorder não é apenas uma string vazia. Caso seja, trate-o como uma matriz vazia.
else turnorder = JSON.parse(Campaign().get("turnorder"));
//Adicionar uma nova entrada personalizada ao final da ordem de jogadas.
turnorder.push({
id: "-1",
pr: "15",
custom: "Turn Counter"
});
Campaign().set("turnorder", JSON.stringify(turnorder));
Jogador
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"jogador" |
Pode ser utilizado para identificar o tipo de objeto ou pesquisar o objeto. Somente leitura. |
_d20userid |
ID do utilizador — em todo o site. Por exemplo, a página de utilizador do jogador na wiki é /User:ID, em que ID corresponde ao mesmo valor guardado em _d20userid. Somente leitura. |
|
_displayname |
"" |
O nome de exibição atual do jogador. Pode ser alterado na página de definições do utilizador. Somente leitura. |
online |
false |
Somente leitura. |
_última página |
"" |
O ID da última página que o jogador visualizou como GM. Esta propriedade não é atualizada para jogadores ou GMs que se juntaram como jogadores. Somente leitura. |
_macrobar |
"" |
Sequência de caracteres, delimitada por vírgulas, das macros presentes na barra de macros do jogador. Somente leitura. |
falando como |
"" |
O ID do jogador ou da personagem que o jogador selecionou no menu suspenso «As ». Quando definido como uma string vazia, o jogador está a falar em seu próprio nome. Quando definido como uma personagem, o valor é personagem|<ID> onde <ID> corresponde ao ID da personagem. |
cor |
"#13B9F0" |
A cor do quadrado junto ao nome do jogador, bem como a cor das suas marcações no mapa, dos seus círculos de ping, etc. |
mostrar barra de macros |
false |
Se a barra de macros do jogador está visível. |
Macro
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"macro" |
Pode ser utilizado para identificar o tipo de objeto ou pesquisar o objeto. Somente leitura. |
_playerid |
A identificação do jogador que criou esta macro. Somente leitura. | |
nome |
"" |
O nome da macro. |
action |
"" |
O texto da macro. |
Visível para |
"" |
Lista delimitada por vírgulas de IDs de jogadores que podem visualizar a macro, além do jogador que a criou. A opção «Todos os jogadores » é representada pela inclusão de todos na lista. |
istokenaction |
false |
Esta macro é uma ação de token que deve aparecer quando os tokens são selecionados? |
Tabela rolável
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"mesa dobrável" |
Pode ser utilizado para identificar o tipo de objeto ou pesquisar o objeto. Somente leitura. |
nome |
"nova tabela" |
|
Mostrar jogadores |
verdadeiro |
Apenas para o Mod Script Sandbox v1.5. A função createToken(propriedades) cria um gráfico cujos lados provêm dos avatares dos itens da tabela (são permitidas imagens do Marketplace). Devolve o gráfico. Se nenhum elemento da tabela tiver um avatar, não é criado nada.
Item da tabela
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"item da tabela" |
Pode ser utilizado para identificar o tipo de objeto ou pesquisar o objeto. Somente leitura. |
_rollabletableid |
"" |
ID da tabela à qual este item pertence. Somente leitura. |
avatar |
"" |
URL para uma imagem utilizada no item da tabela. Consulte a nota sobre as restrições relativas ao avatar e ao imgsrc abaixo. |
nome |
"" |
|
peso |
1 |
Peso do item da tabela em comparação com os outros itens da mesma tabela. Em termos simples, um item com peso 3 tem três vezes mais probabilidades de ser selecionado ao lançar o dado do que um item com peso 1. |
Personagem
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"personagem" |
Pode ser utilizado para identificar o tipo de objeto ou pesquisar o objeto. Somente leitura. |
avatar |
"" |
URL para uma imagem utilizada para o personagem. Consulte a nota sobre as restrições relativas ao avatar e ao imgsrc abaixo. |
nome |
"" |
|
biografia |
"" |
A biografia da personagem. Consulte a nota abaixo sobre como aceder aos campos Notas, GMNotas e biografia. |
Notas GM |
"" |
Notas sobre a personagem visíveis apenas pelo GM. Consulte a nota abaixo sobre como aceder aos campos Notas, GMNotas e biografia. |
arquivado |
false |
|
diários de jogadores |
"" |
Lista delimitada por vírgulas com os IDs dos jogadores que podem visualizar este personagem. Utilize a opção «Todos» para permitir que todos os jogadores possam visualizar. A opção «Todos os jogadores » é representada pela inclusão de todos na lista. |
controlado por |
"" |
Lista delimitada por vírgulas de IDs de jogadores que podem controlar e editar este personagem. Utilize a opção «Todos» para atribuir a todos os jogadores a capacidade de editar. A opção «Todos os jogadores » é representada pela inclusão de todos na lista. |
_defaulttoken |
"" |
Uma cadeia de caracteres JSON correspondente ao token predefinido da personagem, caso este esteja definido. Trata-se de um blob, tal como a biografia e as notas, pelo que o get() aceita uma função de retorno de chamada. Não utilize o set(). Escreva-o utilizando o método setDefaultTokenForCharacter. |
inParty |
false |
Se a personagem faz parte do grupo. |
etiquetas |
"[]" |
Matriz JSON de cadeias de caracteres. Sem espaços nem vírgulas. As etiquetas inválidas são removidas; é enviado um aviso para a Consola de Saída do Mod. Disponível em ambas as versões de sandbox. |
Apenas para o Mod Script Sandbox v1.5. O `sheetEnvironment ` é «legacy» ou «beacon». Leia-o como character.sheetEnvironment (não através de get).
Apenas para o Mod Script Sandbox v1.5. A função createToken(propriedades, opções, callback) cria um gráfico a partir do token predefinido da personagem. Caso não exista um token predefinido, é utilizado o avatar da personagem. Se também não houver nenhum avatar, a criação falha. São permitidas imagens do Marketplace. Uma vez que o _defaulttoken é assíncrono, o gráfico é passado para a função de retorno de chamada, em vez de ser devolvido.
| Opção | Padrão | Notas |
|---|---|---|
preferAvatar |
false |
Prefira utilizar o avatar da personagem como imgsrc. |
multilateral |
false |
Como são criados os «sides »: «false» mantém os «sides» tal como no token predefinido;«true»/«ensure» adiciona «imgsrc» e «avatar» caso não existam «sides»; «replace» substitui os «sides» existentes; «append» e «prepend» adicionam«imgsrc»/«avatar». |
obj.createToken({ pageid, layer, left: x, top: y }, { multisided: 'ensure' }, function (token) {
token.set('status_green', 5);
});
Atributo
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"atributo" |
Pode ser utilizado para identificar o tipo de objeto ou pesquisar o objeto. Somente leitura. |
_characterid |
"" |
ID do personagem ao qual este atributo pertence. Somente leitura. Obrigatório ao utilizar o` createObj`. |
nome |
"Sem título" |
|
atual |
"" |
É possível aceder ao valor atual do atributo no chat e nas macros utilizando a sintaxe @{Nome da personagem|Nome do atributo} ou nas habilidades utilizando a sintaxe @{Nome do atributo}. |
max |
"" |
O valor máximo do atributo pode ser acedido no chat e nas macros através da sintaxe @{Nome da Personagem|Nome do Atributo|max} ou nas habilidades através da sintaxe @{Nome do Atributo|max}. |
Importante: Consulte a nota abaixo sobre como trabalhar com fichas de personagem para obter informações sobre a forma como os valores predefinidos das fichas de personagem afetam a utilização dos atributos.
Habilidade
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único em todo o mundo entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"habilidade" |
Pode ser utilizado para identificar o tipo de objeto ou pesquisar o objeto. Somente leitura. |
_characterid |
"" |
A personagem à qual esta habilidade pertence. Somente leitura. Obrigatório ao utilizar o` createObj`. |
nome |
"Sem título_Habilidade" |
|
descrição: |
"" |
A descrição não aparece na interface da ficha de personagem. |
action |
"" |
O texto da habilidade. |
istokenaction |
false |
Esta habilidade é uma ação simbólica que deve ser exibida quando os símbolos ligados ao seu personagem pai são selecionados? |
Folheto
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único a nível global entre todos os objetos deste jogo. Somente leitura. | |
_tipo |
"folheto" |
Pode ser utilizado para identificar o tipo de objeto ou pesquisar o objeto. Somente leitura. |
_pins |
"[]" |
Uma sequência JSON contendo uma matriz de objetos que representam cada um dos pinos associados às partes deste folheto. |
avatar |
"" |
URL para uma imagem utilizada no material informativo. Consulte a nota sobre as restrições relativas ao avatar e ao imgsrc abaixo. |
nome |
"Nota Misteriosa" |
|
notas |
"" |
Contém o texto da apostila. Consulte a nota abaixo sobre a utilização de Notas e GMNotas. |
Notas GM |
"" |
Contém o texto do folheto que apenas o GM pode visualizar. Consulte a nota abaixo sobre a utilização de Notas e GMNotas. |
diários de jogadores |
"" |
Lista delimitada por vírgulas com os IDs dos jogadores que têm acesso a este documento. Utilize a opção «Todos» para apresentar a informação a todos os jogadores. A opção «Todos os jogadores » é representada pela inclusão de todos na lista. |
arquivado |
false |
|
controlado por |
"" |
Lista delimitada por vírgulas de IDs de jogadores que podem controlar e editar este documento. A opção «Todos os jogadores » é representada pela inclusão de todos na lista. |
etiquetas |
"[]" |
Matriz JSON de cadeias de caracteres. Aplicam-se as mesmas regras que às etiquetas de personagens. Disponível em ambas as versões de sandbox. |
Nota: Campaign().get("_journalfolder") é legível. Os scripts não conseguem gravar na pasta do diário. Os documentos criados por scripts são colocados na pasta raiz.
Convés
Existem funções auxiliares do Mod Script para comprar, distribuir, baralhar, recuperar, recolher, retirar, jogar e entregar cartas: shuffleDeck, cardInfo, recallCards, dealCardsToTurn, drawCard, pickUpCard, takeCardFromPlayer, playCardToTable, giveCardToPlayer. Estão disponíveis em ambas as versões de teste. Consulte a documentação da função.
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
"" |
identificação do baralho |
_tipo |
"convés" |
|
nome |
"" |
nome do baralho |
_baralho atual |
"" |
uma lista delimitada por vírgulas das cartas que se encontram atualmente no baralho (incluindo aquelas que foram jogadas na mesa/mãos). Alterações quando o baralho é embaralhado. |
_currentIndex |
-1 |
o índice atual da nossa posição no baralho: «Que carta será tirada a seguir?» |
_currentCardShown |
verdadeiro |
Mostre a carta atual no topo do baralho. |
Mostrar jogadores |
verdadeiro |
Mostre o baralho aos jogadores. |
Os jogadores podem desenhar |
verdadeiro |
Os jogadores podem comprar cartas? |
avatar |
"" |
o verso das cartas deste baralho |
visível |
false |
Mostrar o baralho no tabuleiro de jogo (o baralho está atualmente visível?) |
jogadores_cartões_vistos |
verdadeiro |
Os jogadores conseguem ver o número de cartas que os outros jogadores têm na mão? |
jogadores_vercartasfrente |
false |
Os jogadores conseguem ver a face das cartas quando olham para as mãos dos outros jogadores? |
gm_cartas_vistas |
verdadeiro |
O GM consegue ver o número de cartas que cada jogador tem na mão? |
Olá, |
false |
O GM pode ver a face das cartas ao olhar para a mão de cada jogador? |
cartões infinitos |
false |
Existe um número infinito de cartas neste baralho? |
_cardSequencer |
-1 |
Utilizado internamente para avançar o baralho ao comprar cartas. |
cartas jogadas |
"faceup" |
Como as cartas deste baralho são jogadas na mesa? com a face para cima ou para baixo. |
altura padrão |
"" |
Qual é a altura padrão das cartas colocadas na mesa? |
largura padrão |
"" |
|
modo de descarte |
"nenhuma" |
Que tipo de pilha de descarte este baralho possui? none = sem pilha de descarte, choosebacks = permite que os jogadores vejam o verso das cartas e escolham uma, choosefronts = ver a face das cartas e escolher, drawtop = retirar a carta descartada mais recentemente, drawbottom = retirar a carta descartada há mais tempo. |
_pilha de descarte |
"" |
Qual é a pilha de descarte atual deste baralho? lista de cartões separados por vírgulas. Estas são cartas que foram removidas do jogo e não serão colocadas de volta no baralho ao embaralhar, até que seja realizada uma recuperação. |
Cartas
| Propriedade | Valor padrão | Notas |
|---|---|---|
nome |
"" |
Nome do cartão |
avatar |
"" |
Frente do cartão |
card_back |
"" |
Substituir a imagem do verso do cartão |
_deckid |
"" |
Identificação do baralho |
_tipo |
"cartas" |
|
_id |
"" |
Apenas para o Mod Script Sandbox v1.5. A função createToken(propriedades, opções) cria um gráfico como se a carta tivesse sido colocada na mesa (são permitidas imagens do Marketplace). Devolve o gráfico.
| Opção | Padrão | Notas |
|---|---|---|
asCard |
verdadeiro |
Se for verdade, o elemento gráfico é um cartão. Se for falso, um token multifacetado que apenas se assemelha ao cartão. |
de face para cima |
baralho predefinido |
Mostrar a face ou o verso; define o valor de currentSide. |
Mão
Observe que cada jogador deve ter apenas UMA mão.
| Propriedade | Valor padrão | Notas |
|---|---|---|
mão atual |
"" |
lista delimitada por vírgulas das cartas atualmente na mão. Observe que isto não é mais somente para leitura. Idealmente, ele deve ser ajustado apenas com as funções do baralho de cartas. |
_tipo |
mão |
|
_parentid |
"" |
Identificação do jogador a quem pertence a mão |
_id |
"" |
|
visualização atual |
"pai-de-cabeceira" |
Quando o jogador abre a mão, a visualização é por baralho ou por carta? |
Faixa da Jukebox
| Propriedade | Valor padrão | Notas |
|---|---|---|
_id |
Um ID exclusivo para este objeto. Único a nível global em todos os objetos deste jogo. Somente leitura. | |
_tipo |
"jukeboxtrack" |
Pode ser utilizado para identificar o tipo de objeto ou para procurar o objeto. Apenas para leitura. |
jogando |
false |
Booleano utilizado para determinar se a faixa está ou não a ser reproduzida. Se definir este valor como «true» e «softstop» como «false», a faixa será reproduzida. |
paragem suave |
false |
Booleano utilizado para determinar se uma faixa não repetida foi concluída pelo menos uma vez. Este valor deve ser definido como «false» para garantir que uma faixa seja reproduzida. |
título |
"" |
A etiqueta visível para a faixa na guia jukebox. |
volume |
30 |
O nível de volume da faixa. Observe que isso deve ser definido como um número inteiro (não uma string), caso contrário, poderá comprometer a funcionalidade. Valores de 0 a 100 (percentagem). |
repetir |
false |
A faixa deve ser repetida? Defina como verdadeiro, se for o caso. |
Efeitos especiais personalizados
| Propriedade | Valor por defeito | Notas |
|---|---|---|
_id |
Um identificador único para este objeto. Único a nível global entre todos os objetos deste jogo. Apenas para leitura. | |
_tipo |
"custfx" |
Pode ser utilizado para identificar o tipo de objeto ou para procurar o objeto. Apenas para leitura. |
nome |
"" |
O nome visível para o FX na Lista de FX. |
definição |
{} |
Objeto Javascript que descreve o efeito especial. |
Restrições relativas às propriedades «imgsrc » e «avatar »
Embora já seja possível editar as propriedades «imgsrc» e «avatar», a fim de garantir a segurança de todos os utilizadores do Roll20, implementámos as seguintes restrições para essas propriedades:
-
Deve utilizar um ficheiro de imagem que tenha sido carregado na sua Biblioteca do Roll20 – não num site externo (como o Imgur) nem no Roll20 Marketplace. Os URLs guardados são reescritos na CDN do Roll20 (geralmente
https://files.d20.io/images/...). Não é necessário utilizar o prefixos3.amazonaws.com, nem deve esperar quea função get("imgsrc")corresponda ao URL que indicou. - Inclua a cadeia de consulta no URL que nos enviar.
- Os valores
«imgsrc» dos elementos gráficos já não têm de utilizar o nome«thumb». Os URLs das imagens são ajustados para um formato de armazenamento corrigido e para uma localização na CDN; não espere queobj.get('imgsrc')corresponda ao URL que indicou no momento da criação. A função `findObjs()`normaliza e faz a correspondência de URLs, pelo que ainda pode efetuar pesquisas com qualquer URL válida.
Se apagar uma imagem da sua biblioteca, esta será removida de todos os jogos que a utilizam, incluindo os jogos que utilizam os seus scripts de modificação.
Apenas para o Mod Script Sandbox v1.5. Os métodos `createCopy ` e `createToken` permitem criar elementos gráficos que utilizam imagens do Marketplace, através da cópia de um objeto existente.
Utilizando os campos Notas, GMNotas e Biografia Assíncrono
Para aceder aos campos «notas», «gmnotes» ou «biografia» nas secções «Personagens» e «Folhetos», deve passar uma função de retorno como segundo argumento à função get(). Eis um exemplo:
var character = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
character.get("bio", function(bio) {
log(bio); //faça algo com a biografia da personagem aqui.
});
Defina estes campos com a função set() depois de o objeto ter sido criado. Não passe bio, notas ou gmnotes para a função createObj. Defina as notas e as notas gm em chamadas separadas do método set(). «Graphic gmnotes» é uma cadeia de caracteres normal e não faz parte desta lista. A variável _defaulttoken é um blob: leia-a utilizando uma função de retorno de chamada e grave-a com a função setDefaultTokenForCharacter.
Trabalhando com fichas de personagens
A funcionalidade Fichas de Personagem afeta a utilização do tipo de objeto Atributos, pois as fichas têm a capacidade de especificar um valor padrão para cada atributo na ficha. No entanto, se o atributo estiver definido para o valor padrão, ainda não existe um objeto Atributo real criado no jogo para esse Personagem. Oferecemos uma função prática que oculta essa complexidade de si. Recomenda-se utilizar esta função para obter o valor de um atributo no futuro, especialmente se tiver conhecimento de que um jogo está a utilizar uma Ficha de Personagem. getAttrByName(character_id, attribute_name, value_type) Basta indicar o ID da personagem, o nome (não o ID) do atributo (por exemplo,HP ou Str) e, em seguida, indicar se pretende o valor atual ou o valor máximo para value_type. Eis um exemplo:
var character = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
getAttrByName(character.id, "str"); // o valor atual de str, por exemplo, "12"
getAttrByName(character.id, "str", "max"); //o valor máximo de str, por exemplo, "[[floor(@{STR}/2-5)]]"
Observe que os campos com valores calculados automaticamente retornarão a fórmula em vez do resultado do valor. Em seguida, pode passar essa fórmula para sendChat() para utilizar o mecanismo de dados para calcular o resultado automaticamente. Certifique-se de que consulta também a documentação sobre as Fichas de Personagem para obter mais informações sobre a forma como estas interagem com os Scripts de Mod. Consulte também setAttrs, getSheetDefaultValue, getSheetItem e setSheetItem (ambas as sandboxes). Apenas para o Mod Script Sandbox v1.5. getComputed, setComputed, performAction. Consulte a documentação da função.
A função `getAttrByName ` apenas irá obter o valor do atributo, e não o próprio objeto do atributo. Caso pretenda consultar propriedades do atributo que não sejam «current» ou «max», ou caso pretenda alterar as propriedades do atributo, deverá utilizar uma das outras funções acima referidas, como, por exemplo, a função «findObjs». Se o objeto de atributo não existir, a função getAttrByName() devolve o valor predefinido da ficha de personagem para esse nome, caso a ficha o defina; caso contrário, devolve «undefined ».
Criação de objetos
createObj(tipo, atributos)
Pode criar «gráfico», «texto», «caminho», «pathv2», «carácter», «ability», «atributo», «folheto», «rollabletable», «tableitem», «macro», «card», «baralho», «custfx», «window», «door»e «alfinete». Apenas para o Mod Script Sandbox v1.5. 'pageFolder'. Pode criar um novo objeto no jogo utilizando a função createObj. Deve indicar o tipo do objeto (uma das propriedades _type válidas da lista de objetos acima), bem como um objeto de atributos que contenha uma lista de propriedades do objeto. Tenha em atenção que, se o objeto tiver um objeto pai (por exemplo, os atributos e as habilidades pertencem às personagens, enquanto os gráficos, os textos e os percursos pertencem às páginas, etc.), deverá indicar o ID do objeto pai na lista de propriedades (por exemplo, deverá incluir a propriedade «characterid» ao criar um atributo). Tenha também em atenção que, mesmo ao criar novos objetos, não é possível definir propriedades de leitura apenas; estas serão automaticamente definidas para o seu valor predefinido. A única exceção a esta regra ocorre quando se cria um «Path»: é necessário incluir a propriedade «path», mas esta não pode ser alterada após a criação inicial do «Path». A função `createObj` irá devolver o novo objeto, pelo que poderá continuar a trabalhar com ele.
// Criar um atributo «Força» nas personagens adicionadas após a conclusão da fase de testes.
// A atribuição de «add:character» antes de «ready» também é acionada para personagens que já existem.
on("ready", function() {
on("add:character", function(obj) {
createObj("attribute", {
name: "Força",
current: 0,
max: 30,
characterid: obj.id
});
});
});
Eliminando objetos
objeto.remover()
Pode eliminar os objetos «graphic», «text», «path», «pathv2», «character», «ability», «attribute», «handout», «rollabletable», «tableitem», «macro», «card», «deck», «custfx», «window», «door» e «pin». Apenas para o Mod Script Sandbox v1.5. 'pageFolder'.
Pode eliminar objetos de jogo existentes utilizando a função .remove(). A função .remove() funciona em todos os objetos que pode criar com a função createObj. Chame a função diretamente no objeto. Por exemplo, mycharacter.remove();.
Objetos Globais
Existem vários objetos que estão globalmente disponíveis em qualquer parte do seu script.
Campanha() (função)
Uma função que devolve o objeto «Campaign ». Como existe apenas uma campanha, este global sempre aponta para a única campanha no jogo. Útil para realizar ações como verificar se um objeto se encontra na página ativa, utilizando Campaign().get("playerpageid").
estado
A variável de estado é um objeto no âmbito global, acessível a todos os scripts em execução num jogo. Pode aceder ao objeto «state» a partir de qualquer função ou callback, em qualquer momento, bastando para isso utilizar a variável global denominada «state». Além disso, o objeto de estado é mantido entre as execuções do Mod Script Sandbox, pelo que pode utilizá-lo para armazenar informações que pretenda ter em futuras execuções do seu script. Nota: Deve utilizar o objeto «state» para armazenar informações que sejam necessárias apenas aos Mod Scripts, uma vez que estas não são enviadas para os computadores dos jogadores e não aumentam o tamanho do ficheiro do seu jogo. Guarde os valores necessários no jogo nas propriedades dos objetos do Roll20.
Tipos armazenáveis
O objeto de estado só permite a persistência de tipos de dados simples, tal como previsto pela norma JSON.
| Tipo | Exemplos | Descrição: |
|---|---|---|
Booleano |
verdadeiro falso
|
O valor «verdadeiro » ou «falso». |
Número |
123,5 10 1,23e20
|
Qualquer formato numérico suportado por Javascript. Ponto flutuante ou inteiro. |
Cordão |
«Olá, Fantasia» «Ah, e Mundo»
|
Uma sequência padrão de texto. |
Matriz |
[ 1, 2, 3, 4 ][ 'A', 'B', 'C'][1, 2, ['bob', 3], 10, 2,5]
|
Uma coleção ordenada de qualquer um dos tipos, incluindo outras matrizes. |
Objeto |
{ key: 1, value: 'roll20' } |
Um objeto simples de chave/valor com chaves de cadeia de caracteres e qualquer um dos tipos como valor, incluindo outros objetos. |
Aviso: Embora as funções pareçam funcionar quando armazenadas no estado inicialmente, estas desaparecerão na primeira vez que o estado for restaurado a partir da persistência, por exemplo, aquando do reinício da sandbox.
-
Nota: Isto inclui os objetos do Roll20 que obtém através de eventos ou das funções
findObjs(),getObj(),filterObjs(),createObj(), etc.
Lembretes importantes
O objeto de estado é partilhado entre todos os scripts numa sandbox. Para evitar danificar outros scripts, é importante seguir algumas diretrizes simples:
-
Nunca atribua valores diretamente ao objeto
de estadoraiz.
state = { break: 'tudo' }; // NUNCA FAÇA ISTO!!!
-
Evite utilizar variáveis locais com o nome
«state»nos seus scripts. Embora isso funcione, poderá causar confusão para os utilizadores posteriores dos seus scripts e poderá causar problemas se o código for editado de forma descuidada.
função turn(){
var state = Campaign().get('turnorder'); // Má prática, evite-a!
// ...
}
-
Certifique-se de que coloque as suas propriedades abaixo de, pelo menos, uma propriedade de espaço de nomes. Certifique-se de utilizar uma propriedade de namespace suficientemente descritiva. Evite nomes como
«script» ou«configurações». É aconselhável utilizar o nome do seu módulo, o seu próprio nome ou o seu nome de utilizador.
if( ! state.MyModuleNamespace ) {
state.MyModuleNamespace = { module: 'o meu módulo', ok: 'está tudo bem!', count: 0 };
}
state.MyModuleNamespace.count++;
Exemplo de utilização
Este é um exemplo prático que utiliza o objeto de estado de forma adequada.
on('ready', function() {
"use strict";
// Verifica se a propriedade com namespace existe, criando-a caso não exista
if( ! state.MyModuleNS ) {
state.MyModuleNS = {
version: 1.0,
config: {
color1: '#ff0000',
color2: '#0000ff'
},
count: 0
};
}
// Utilização das propriedades do estado para configurar uma mensagem para o chat.
sendChat(
'Módulo de teste',
'<span style="color: '+state.MyModuleNS.config.color1+';">'+
'Teste de estado'+
'</span> '+
'<span style="color: '+state.MyModuleNS.config.color2+';">'+
'Script v'+state.MyModuleNS.version+' iniciado '+(++state.MyModuleNS.count)+' vezes!'+
'</span>'
);
});
Localização/Filtragem de Objetos
Os scripts Mod disponibilizam várias funções auxiliares que podem ser utilizadas para localizar objetos.
getObj(type, id)
Esta função obtém um único objeto se lhe forem passados o _type do objeto e o _id. É recomendável utilizar esta função em vez das outras funções de pesquisa sempre que possível, pois é a única que não precisa iterar por toda a coleção de objetos.
on("change:graphic:represents", function(obj) {
if(obj.get("represents") != "") {
var character = getObj("character", obj.get("represents"));
}
});
encontrarObj (atributos)
Passe uma lista de atributos para esta função, e ela retornará todos os objetos correspondentes como uma matriz. Tenha em atenção que isto aplica-se a todos os objetos de todos os tipos em todas as páginas – por isso, provavelmente convém incluir, pelo menos, um filtro para _type e _pageid, caso esteja a trabalhar com objetos de mesa.
var currentPageGraphics = findObjs({
_pageid: Campaign().get("playerpageid"),
_type: "graphic",
});
_.each(currentPageGraphics, function(obj) {
//Fazer algo com obj, que se encontra na página atual e é um elemento gráfico.
});
Também é possível passar um segundo argumento opcional que contém um objeto com uma lista de opções, incluindo:
- caseInsensitive (verdadeiro/falso): Se for verdadeiro, as propriedades das cadeias de caracteres serão comparadas sem ter em conta as maiúsculas e minúsculas da cadeia de caracteres
var targetTokens = findObjs({
name: "target"
} , {caseInsensitive: true});
// Devolve todos os tokens cujo nome seja «target», «Target», «TARGET», etc.
- startsWith (verdadeiro/falso): Se for verdadeiro, as propriedades de cadeia de caracteres correspondem como prefixo.
-
tagMatch: Ao comparar
etiquetas:«all»(padrão; o objeto possui todas as etiquetas indicadas),«any»(pelo menos uma),«only»(exatamente o conjunto indicado).
var knights = findObjs({ type: 'character', name: 'Sir' }, { startsWith: true });
filtrarObjs(retorno de chamada)
Executará a função de retorno de chamada fornecida em cada objeto e, se a função retornar verdadeiro, o objeto será incluído na matriz de resultados. Atualmente, não é recomendável utilizar filterObjs() para a maioria dos fins – devido ao facto de findObjs() possuir alguma indexação integrada para uma melhor velocidade de execução, é quase sempre preferível utilizar findObjs() para obter primeiro os objetos do tipo desejado e, em seguida, filtrá-los utilizando o método nativo .filter() para matrizes.
var results = filterObjs(function(obj) {
if(obj.get("left") < 200 && obj.get("top") < 200) return true;
else return false;
});
//Results é um array com todos os objetos que se encontram no canto superior esquerdo do tampo da mesa.
obterTodosObjetos()
Retorna uma matriz de todos os objetos no jogo (todos os tipos). Equivale a chamar a função `filterObjs` e simplesmente devolver «true» para cada objeto.
obterAtributoPorNome(identificador_do_caractere, nome_do_atributo, tipo_de_valor)
Obtém o valor de um atributo, utilizando o valor padrão da ficha de personagem caso o atributo não esteja presente. value_type é um parâmetro opcional, que pode utilizar para especificar o valor atual ou o valor máximo. A função `getAttrByName ` apenas irá obter o valor do atributo, e não o próprio objeto do atributo. Caso pretenda consultar propriedades do atributo que não sejam «current» ou «max», ou caso pretenda alterar as propriedades do atributo, deve utilizar uma das outras funções acima referidas, como, por exemplo, a função «findObjs». Para secções repetidas, pode utilizar o formato repeating_section_$n_attribute, em que n é o número da linha repetida (começando por zero). Por exemplo, repeating_spells_$2_name irá devolver o valor de «name» da terceira linha de repeating_spells. Pode obter um comportamento equivalente ao do `getAttrByName`da seguinte forma:
// os valores «current» e «max» dependem inteiramente do atributo e do sistema de jogo
// em questão; não existe nenhuma função disponível para os determinar automaticamente
function myGetAttrByName(character_id,
attribute_name,
attribute_default_current,
attribute_default_max,
value_type) {
attribute_default_current = attribute_default_current || '';
attribute_default_max = attribute_default_max || '';
value_type = value_type || 'current';
var attribute = findObjs({
type: 'attribute',
characterid: character_id,
name: attribute_name
}, {caseInsensitive: true})[0];
if (!attribute) {
attribute = createObj('attribute', {
characterid: character_id,
name: attribute_name,
current: attribute_default_current,
max: attribute_default_max
});
}
if (value_type == 'max') {
return attribute.get('max');
} else {
return attribute.get('current');
}
}