obj.get("propiedad")y establecer nuevos valores utilizandoobj.set("propiedad", nuevo valor)uobj.set({property: newvalue, property2: newvalue2}).Nota:La propiedadidde un objeto es un identificador único a nivel global: no debe haber dos objetos con el mismo identificador, ni siquiera entre objetos de tipos diferentes. Además, dado que se accede con frecuencia al identificador de un objeto y este nunca cambia, existe un atajo disponible que le permite acceder a él utilizandoobj.iden lugar deobj.get("_id")si lo desea (ambos funcionan).
Pathv2 (disponible en la última versión del motor VTT)
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id |
Un identificador único para este objeto. Único en todo el mundo entre todos los objetos |
|
| _tipo | «pathv2» | Se puede utilizar para identificar el tipo de objeto o buscar el objeto . Solo lectura. |
| _pageid | ID de la página en la que se encuentra el objeto. Solo lectura. | |
| forma | "" | «pol», «free», «eli» o «rec» Determina si la ruta se muestra como una polilínea, a mano alzada, una elipse o un rectángulo. |
| puntos | Una cadena JSON que contiene una matriz de puntos x, y utilizados para crear la ruta. | |
| llenar | "transparente" | Color de relleno. Utilice la cadena «transparent» o un color hexadecimal como cadena, por ejemplo «#000000». |
| accidente cerebrovascular | «#000000» | Color del trazo (borde). |
| rotación | 0 | Rotación (en grados). |
| capa | "" | Capa actual, una de «gmlayer», «objects», «map», «walls» o «foreground». La capa de paredes se utiliza para la iluminación dinámica, y los caminos en la capa de paredes bloquearán la luz. |
| anchura_del_trazo | 5 | |
| y | 0 | Coordenada Y del centro de la ruta |
| x | 0 | Coordenada X del centro de la ruta |
| controlado por | "" |
Lista delimitada por comas de los ID de los jugadores que pueden controlar la ruta. Los jugadores que controlan pueden eliminar la ruta. Si la ruta fue creada por un jugador, ese jugador se incluye automáticamente en la lista. Todos los jugadoresestán representados por la palabra «todos» en la lista. |
| tipo de barrera | "muro" |
Las opciones dinámicas de tipo de barrera de iluminación incluyen «pared», «unidireccional» y «transparente». |
| oneWayReversed | falso |
booleano |
| desvanecer al solaparse | verdadero | Cuando es verdadero, la superposición del límite interior de un gráfico de capa de objeto con el objeto de la capa en primer plano hará que su opacidad se convierta en el valor de fadeOpacity. Cuando sea falso, permanecerá con opacidad total independientemente de la superposición. |
| opacidad de desvanecimiento | 0.3 | Este valor determina la opacidad del objeto cuando se superpone un gráfico en la capa del objeto y fadeOnOverlap se establece en true. |
| renderizarComoPaisaje | falso | Cuando sea verdadero, este objeto quedará oculto por la iluminación dinámica y la máscara Ocultar/Revelar. |
La propiedad shape tiene los siguientes valores:
- «pol»:polilínea. Se traza una línea recta entre cada punto consecutivo. Si el punto inicial y el punto final son iguales, se crea una forma cerrada.
- «libre»- A mano alzada. Se dibuja una curva utilizando los puntos como guías. Si el punto inicial y el punto final son iguales, se crea una forma cerrada.
- «eli» - Elipse. Se dibuja una elipse utilizando los puntos para establecer un cuadro delimitador. Solo se utilizan los dos primeros puntos.
- «rec»: rectángulo. Se dibuja un rectángulo utilizando los puntos para establecer un cuadro delimitador. Solo se utilizan los dos primeros puntos.
La propiedad points es una cadena JSON que contiene una matriz de puntos. Los puntos se representan como una matriz de dos posiciones con una ubicación x e y. Un triángulo desde (0,0) hasta (0,70) y desde (70,0) hasta (0,0) se representaría como «[[0,0],[0,70],[70,0],[0,0]]».
Las propiedades x eyposicionan el objeto PathV2 en la página. Especifican dónde debe estar el centro del dibujo. Para algunas formas (elipses y rectángulos), eso es bastante fácil de averiguar. Para formas más complejas (polilíneas y dibujos a mano alzada), deberá encontrar los valores mínimo y máximo de la propiedad de los puntosy utilizar el punto equidistante entre ellos.
Camino (Mesa clásica)
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id |
Un identificador único para este objeto. Único en todo el mundo entre todos los objetos |
|
| _tipo | "vía" | Se puede utilizar para identificar el tipo de objeto o buscar el objeto . Solo lectura. |
| _pageid | ID de la página en la que se encuentra el objeto. Solo lectura. | |
| _path | Una cadena JSON que describe las líneas de la ruta. Solo lectura, excepto al crear una nueva ruta. Consulte la sección sobre rutas para obtener más información. | |
| llenar | "transparente" | Color de relleno. Utilice la cadena «transparent» o un color hexadecimal como cadena, por ejemplo «#000000». |
| accidente cerebrovascular | «#000000» | Color del trazo (borde). |
| rotación | 0 | Rotación (en grados). |
| capa | "" | Capa actual, una de «gmlayer», «objects», «map», «walls» o «foreground». La capa de paredes se utiliza para la iluminación dinámica, y los caminos en la capa de paredes bloquearán la luz. |
| anchura_del_trazo | 5 | |
| ancho | 0 | |
| alto | 0 | |
| arriba | 0 | Coordenada Y del centro de la ruta |
| izquierda | 0 | Coordenada X del centro de la ruta |
| escalaX | 1 | |
| escalaY | 1 | |
| controlado por | "" |
Lista delimitada por comas de los ID de los jugadores que pueden controlar la ruta. Los jugadores que controlan pueden eliminar la ruta. Si la ruta fue creada por un jugador, ese jugador se incluye automáticamente en la lista. Todos los jugadoresestán representados por la palabra «todos» en la lista. |
| tipo de barrera | "muro" |
Las opciones dinámicas de tipo de barrera de iluminación incluyen «pared», «unidireccional» y «transparente». |
| oneWayReversed | falso |
booleano |
| desvanecer al solaparse | verdadero | Cuando es verdadero, la superposición del límite interior de un gráfico de capa de objeto con el objeto de la capa en primer plano hará que su opacidad se convierta en el valor de fadeOpacity. Cuando sea falso, permanecerá con opacidad total independientemente de la superposición. |
| opacidad de desvanecimiento | 0.3 | Este valor determina la opacidad del objeto cuando se superpone un gráfico en la capa del objeto y fadeOnOverlap se establece en true. |
| renderizarComoPaisaje | falso | Cuando sea verdadero, este objeto quedará oculto por la iluminación dinámica y la máscara Ocultar/Revelar. |
Para obtener más información sobre el formato de los datos de ruta, consulte la sección sobre rutas.
Ventana
Nota: Las ventanas y puertas utilizan un eje invertido en comparación con otros tipos de objetos. Por ejemplo, una variable superior que sería 100 para otro objeto es y -100 para una ventana o puerta.
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. | |
| _tipo | "ventana" | Solo lectura. |
| color | Un color hexadecimal de la ruta. | |
| x | 0 | Coordine el centro de la puerta en el eje x. |
| y | 0 | Coordine el centro de la puerta en el eje y. |
| está abierto | falso | Determina si un jugador puede moverse a través de esta ventana. |
| está bloqueado | falso | Impide que los jugadores puedan interactuar con la ventana. |
| vía | Representado como dos manejadores (manejador0 y manejador1), cada uno con coordenadas x e y. |
Ejemplo
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
});
}
if (msg.type === 'api' && msg.content === '!dw') {
const win = getObj('window', '-NG38yUgghBBoV8YR0y1');
win.remove();
}
});
Puerta
Nota: Las ventanas y puertas deutilizan un eje invertido en comparación con otros tipos de objetos. Por ejemplo, una variable superior que sería 100 para otro objeto es y -100 para una ventana o puerta.
|
Propiedad |
Valor predeterminado |
Notas |
|
_id |
Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. |
|
|
_tipo |
puerta |
Solo lectura. |
|
color |
Un color hexadecimal de la ruta. |
|
|
x |
0 |
Coordine el centro de la puerta en el eje x. |
|
y |
0 |
Coordine el centro de la puerta en el eje y. |
|
está abierto |
falso |
Determina si un jugador puede atravesar esta puerta. |
|
está bloqueado |
falso |
Impide que los jugadores puedan interactuar con la puerta. |
|
esSecreto |
falso |
Elimina un icono de puerta de la vista del jugador y funciona como barrera. |
|
vía |
Representado como dos manejadores (manejador0 y manejador1), cada uno con coordenadas x e y. |
Texto
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. | |
| _tipo | "texto" | Se puede utilizar para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
| _pageid | ID de la página en la que se encuentra el objeto. Solo lectura. | |
| arriba | 0 | |
| izquierda | 0 | |
| ancho | 0 | |
| alto | 0 | |
| texto | "" | |
| tamaño de fuente | 16 | Para obtener los mejores resultados, utilice los tamaños preestablecidos en el menú de edición: 8, 10, 12, 14, 16, 18, 20, 22, 26, 32, 40, 56, 72, 100, 200, 300. |
| rotación | 0 | |
| color | rgb(0, 0, 0) | |
| accidente cerebrovascular | "transparente" | |
| familia_tipográfica | «Arial» | Si no se configura, al cambiar posteriormente el valor de la propiedad «text», el tamaño de fuente se reducirá a 8. Valores posibles (no importa si se escribe en mayúsculas o minúsculas): «Arial», «Patrick Hand», «Contrail One», «Shadows Into Light» y «Candal». Si se especifica un nombre no válido, se utilizará una fuente serif monoespaciada sin nombre. |
| capa | "" | Capa actual, una de «gmlayer», «objects», «map», «walls» o «foreground». La capa de paredes se utiliza para la iluminación dinámica, y los caminos en la capa de paredes bloquearán la luz. |
| controlado por | "" | Lista delimitada por comas de los ID de los jugadores que pueden controlar el texto. Los jugadores que controlan pueden eliminar el texto. Si el texto ha sido creado por un jugador, dicho jugador se incluye automáticamente en la lista.
Todos los jugadoresestán representados por la palabra «todos» en la lista. |
| desvanecer al solaparse | verdadero | Cuando es verdadero, la superposición del límite interior de un gráfico de capa de objeto con el objeto de la capa en primer plano hará que su opacidad se convierta en el valor de fadeOpacity. Cuando sea falso, permanecerá con opacidad total independientemente de la superposición. |
| opacidad de desvanecimiento | 0.3 | Este valor determina la opacidad del objeto cuando se superpone un gráfico en la capa del objeto y fadeOnOverlap se establece en true. |
| renderizarComoPaisaje | falso | Cuando sea verdadero, este objeto quedará oculto por la iluminación dinámica y la máscara Ocultar/Revelar. |
Gráfico (ficha/mapa/tarjeta/etc.)
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. | |
| _tipo | «gráfico» | Se puede utilizar para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
| _subtipo | "ficha" | Puede ser «ficha» (para fichas y mapas) o «tarjeta» (para tarjetas). Solo lectura. |
| _cardid | Establezca un ID si el gráfico es una tarjeta. Solo lectura. | |
| _pageid | ID de la página en la que se encuentra el objeto. Solo lectura. | |
| imgsrc | La URL de la imagen del gráfico. Véase la nota sobre las restricciones de imgsrc y avatar más abajo. | |
| bar1_link | Establezca un ID si la barra 1 está vinculada a un carácter. | |
| bar2_link | ||
| bar3_link | ||
| representa | ID del personaje que representa este token. | |
| izquierda | 0 | Número de píxeles desde el borde izquierdo del mapa hasta el centro del gráfico. |
| arriba | 0 | Número de píxeles desde el borde superior del mapa hasta el centro del gráfico. |
| ancho | 0 | Ancho del gráfico, en píxeles. |
| alto | 0 | Altura del gráfico, en píxeles. |
| rotación | 0 | La orientación del token en grados. |
| capa | "" |
Capa actual, una de «gmlayer», «objects», «map», «walls» o «foreground». La capa de paredes se utiliza para la iluminación dinámica, y los caminos en la capa de paredes bloquearán la luz. |
| isdrawing | falso | Esta propiedad se modifica desde el menú contextual Avanzado. |
| desactivarAjustar | falso | Desactivar el ajuste gráfico a la cuadrícula. |
| desactivarMenúToken | falso | Desactive la configuración del menú de tokens gráficos (burbujas de tokens y menú radial). |
| flipv | falso | Gire verticalmente. |
| fliph | falso | Gire horizontalmente. |
| special Ability Name | "" | El nombre del token. |
| gmnotes | "" | Notas sobre la ficha solo visibles para el GM. |
| controlado por | "" | Lista delimitada por comas de los ID de los jugadores que pueden controlar el gráfico. Los jugadores que controlan pueden eliminar el gráfico. Si el gráfico ha sido creado por un jugador, dicho jugador se incluye automáticamente en la lista.
Todos los jugadoresestán representados por la palabra «todos» en la lista. |
| valor_bar1 | "" | Valor actual de la barra 1. Puede ser un número o un texto. |
| bar2_valor | "" | |
| valor_bar3 | "" | |
| bar1_máximo | "" | Valor máximo de la barra 1. Si se establecen tanto _value como _max, es posible que se muestre una barra encima del token que indique el porcentaje de la barra 1. |
| bar2_máximo | "" | |
| bar3_máximo | "" | |
| aura1_radio | "" | Radio del aura, utilizando las unidades establecidas en la configuración de la página. Puede ser un número entero o un número flotante. Establezca la cadena vacía para borrar el aura. |
| aura2_radio | "" | |
| aura1_color | #FFFF99 | Un color hexadecimal o el aura. |
| aura2_color | «#59E594» | |
| aura1_cuadrado | falso | ¿El aura es un círculo o un cuadrado? |
| aura2_cuadrado | falso | |
| color_tinte | "transparente" | Color hexadecimal o «transparente». Tintará el color del gráfico. |
| marcadores de estado | "" | Una lista delimitada por comas de los marcadores de estado actualmente activos. Consulte las notas a continuación para obtener más información. |
| marcadores_token | "" | Una matriz JSON convertida en cadena que contiene un objeto para cada marcador de ficha que hay actualmente en el juego:. A continuación puede encontrar un ejemplo. |
| nombre de la muestra | falso | Si se muestra la placa con el nombre del token. |
| nombre de los actores | falso | Muestre la placa de identificación a todos los jugadores. |
| barra_de_reproductores1 | falso | Mostrar la barra 1 a todos los jugadores. |
| barra_de_reproducción2 | falso | |
| barra_de_reproducción3 | falso | |
| showplayers_aura1 | falso | Mostrar Aura 1 a todos los jugadores. |
| showplayers_aura2 | falso | |
| edit_name_jugadores | verdadero | Permitir a los jugadores controladores editar el nombre del token. También muestra la placa de identificación a los jugadores que controlan, incluso si showplayers_name es falso. |
| editores_bar1 | verdadero | Permitir a los jugadores controladores editar la barra 1 del token. También muestra la barra 1 a los jugadores que controlan, incluso si showplayers_bar1 es falso. |
| editadores_bar2 | verdadero | |
| edit_bar3 | verdadero | |
| editores_aura1 | verdadero | Permitir a los jugadores controladores editar el Aura 1 de la ficha. También muestra Aura 1 a los jugadores que controlan, incluso si showplayers_aura1 es falso. |
| editores_aura2 | verdadero | |
| radio_de_luz | "" | Radio de iluminación dinámico. |
| radio_de_atenuación_de_luz | "" | Inicio del radio de luz tenue. Si light_dimradius es una cadena vacía, el token emitirá una luz brillante hasta la distancia light_radius. Si light_dimradius tiene un valor, el token emitirá luz brillante hasta el valor light_dimradius y luz tenue desde allí hasta el valor light_radius. |
| luz_otrosjugadores | falso | Muestre la luz del token a todos los jugadores. |
| luz_hassight | falso | La luz tiene «visión» para controlar a los jugadores a efectos de la configuración «Aplicar línea de visión». |
| ángulo de luz | «360» | Ángulo (en grados) del ángulo de la luz. Por ejemplo, «180» significa que la luz solo se mostraría en la «mitad» delantera del «campo de visión». |
| luz_losángeles | «360» | Ángulo (en grados) del campo de visión del gráfico (suponiendo que light_hassight está establecido en verdadero). |
| último movimiento | "" | El último movimiento de la ficha. Es una lista de coordenadas delimitadas por comas. Por ejemplo, «300,400» significaría que la ficha comenzó su último movimiento en la posición izquierda=300, arriba=400. Siempre se supone que los valores actuales superior + izquierdo del token son el «punto final» del último movimiento. Los puntos de referencia se indican mediante múltiples conjuntos de coordenadas. Por ejemplo, «300,400,350,450,400,500» indicaría que el token comenzó en izquierda=300, arriba=400, luego estableció un punto de referencia en izquierda=350, arriba=450, otro punto de referencia en izquierda=400, arriba=500, y luego terminó el movimiento en sus coordenadas actuales arriba + izquierda. |
| multiplicador_de_luz | «1» | Multiplicador de la eficacia de las fuentes de luz. Un multiplicador de dos permitiría al token ver el doble de lejos que un token con un multiplicador de uno, con la misma fuente de luz. |
| adv_fow_view_distance | "" | El radio alrededor de una ficha en el que se revela la Niebla de Guerra Avanzada. |
| multiplicador_de_sensibilidad_a_la_luz | 100 | Multiplicador de la eficacia de las fuentes de luz. Un multiplicador de 200 permitiría que el token viera el doble de lejos que un token con un multiplicador de 100, con la misma fuente de luz. |
|
efecto_de_visión_nocturna |
Cambia el efecto de visión nocturna. Otras opciones incluyen «Atenuación» y «Nocturno». | |
| ubicación_de_la_barra | Ajusta la ubicación de las barras de tokens. Las opciones incluyen «overlap_top», «overlap_bottom» y «bottom». | |
|
barra compacta |
Ajusta si la barra es compacta o no. Otra opción es compacta. | |
| bloquearMovimiento | falso | Opción para bloquear un gráfico en su lugar. Valor booleano verdadero o falso |
| desvanecer al solaparse | verdadero | Cuando es verdadero, la superposición del límite interior de un gráfico de capa de objeto con el objeto de la capa en primer plano hará que su opacidad se convierta en el valor de fadeOpacity . Cuando sea falso, permanecerá en su baseOpacity establecida independientemente de la superposición. |
| opacidad de desvanecimiento | .3 | Este valor determina la opacidad del objeto cuando se superpone un gráfico en la capa del objeto y fadeOnOverlap se establece en true. |
| renderizarComoPaisaje | falso | Cuando sea verdadero, este objeto quedará oculto por la iluminación dinámica y la máscara Ocultar/Revelar. |
| opacidad base | 1.0 | Este valor determina la opacidad inicial de los gráficos. Está activo en cualquier capa, no solo en la capa de primer plano. |
Ejemplo de marcadores simbólicos
{
"id":59, // el identificador de la base de datos para el
"name":"Bane", // el nombre (no único) del marcador
"tag":"Bane::59", // cómo se hace referencia al token
// esto incluirá el identificador para los marcadores personalizados, pero no
// para los marcadores predeterminados.
"url":"https://s3.amazonaws.com/files.d20.io/images/59/yFnKXmhLTtbMtaq-Did1Yg/icon.png?1575153187"
// ^la URL de la imagen del marcador del token
}
Notas importantes sobre los personajes vinculados + fichas
Tenga en cuenta que, en el caso de los tokens vinculados a personajes, el campocontrolledbydel token se sustituye por el campocontrolledbydel personaje.
En el caso de las barras de tokens (por ejemplo,bar1_valueybar1_max) en las que el token está vinculado a un atributo (por ejemplo,bar1_linkestá establecido), al establecer un valor para la barra se actualizarán automáticamente también los valoresactualesy/omáximosdel atributo subyacente, por lo que no es necesario establecer ambos manualmente.
Además, cuando se modifica el atributo (o barra de fichas) en el juego, se escuchará unevento change:attribute(y específico de la propiedad, por ejemplo,change:attribute:current), seguido de un eventochange:graphic(ychange:graphic:bar1_value). Puede elegir responder a cualquiera de los dos eventos, pero los valores de barra subyacentes aún no se actualizarán cuando se active el evento de atributo, ya que este se activa primero.
Notas importantes sobre los indicadores de estado
A partir del 6 de agosto de 2013, ha cambiado la forma en que se gestionan los marcadores de estado en los tokens. La propiedad «statusmarkers» del objeto gráfico es ahora una lista delimitada por comas de todos los colores/iconos de marcadores de estado que deben estar activos en el token. El formato es el siguiente:
Delimitado por comas (utilice «join» para crear o «split» para convertirlo en una matriz).
//Si un icono/color de estado va seguido del símbolo «@», el número que aparece después de
//«@» se mostrará como insignia en el icono
statusmarkers = «red,blue,skull,dead,brown@2,green@6»
Aunque puede acceder directamente a la propiedadstatusmarkers, para mantener la compatibilidad con los scripts existentes y facilitar el trabajo con los marcadores de estado sin necesidad de escribir código para dividir y analizar la cadena usted mismo, proporcionamos un conjunto de propiedades «virtuales» en el objeto que puede establecer/obtener para trabajar con los marcadores de estado. Cada marcador de estado tiene una propiedad «status_<markername>». Por ejemplo:
obj.get("status_red"); //Devolverá false si el marcador no está activo, true si lo está y una cadena (por ejemplo, "2" o "5") si actualmente hay una insignia establecida en el marcador
obj.get('status_bluemarker'); //Sigue siendo compatible con versiones anteriores y es equivalente a obj.get("status_blue");
obj.set("status_red", false); //eliminaría el marcador
obj.set("status_skull", "2"); //establecería una insignia de "2" en el icono de la calavera y la añadiría al token si aún no está activa.
Tenga en cuenta que estas propiedades virtuales no tienen eventos, por lo que debe utilizarchange:graphic:statusmarkerspara escuchar los cambios en los marcadores de estado de un token y, por ejemplo,change:graphic:status_redNO es un evento válido y nunca se activará.
La lista completa de marcadores de estado disponibles (en el mismo orden en que aparecen en la bandeja de marcadores):
«rojo», «azul», «verde», «marrón», «morado», «rosa», «amarillo», «muerto», «calavera», «somnoliento», «medio corazón», «media neblina», «interdicción», «caracol», «hélice de rayo», «llave inglesa», «corazón encadenado», «perno químico», «zona mortal», «bébame», «grieta en el borde», «máscara ninja», «cronómetro», «red de pesca», «sobremarcha», «fuerte», «puño», «candado», «tres hojas», «ala esponjosa», «apaleado», «pisada», «flecha», «aura», «dolor de espalda», «bandera negra», «ojo sangrante», «escudo de perno», «corazón roto», «telaraña», «escudo roto», «bandera ondeando», «radioactivo», «trofeo», «cráneo roto», «orbe congelado», «bomba rodante», «torre blanca», «agarrar», «gritar», «granada», «ametralladora», «todos para uno», «traje de ángel», «blanco de tiro con arco»
Página
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. | |
| _tipo | página | Se puede utilizar para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
| _zorder | "" | Lista de ID delimitada por comas que especifica el orden de los objetos en la página. toFrontytoBack(y sus elementos asociados del menú contextual) pueden reordenar esta lista. Solo lectura. |
| nombre | "" | Título de la página. |
| mostrar cuadrícula | verdadero | Mostrar la cuadrícula en el mapa. |
| mostraroscuridad | falso | Mostrar la niebla de guerra en el mapa. |
| iluminación de espectáculos | falso | Utilice iluminación dinámica. |
| ancho | 25 | Ancho en unidades. |
| alto | 25 | Altura en unidades. |
| incremento_de_encaje | 1 | Tamaño de un espacio de cuadrícula en unidades. |
| opacidad_de_la_cuadrícula | 0.5 | Opacidad de las líneas de la cuadrícula. |
| opacidad_de_la_niebla | 0.35 | Opacidad de la niebla de guerra para el GM. |
| color_de_fondo | #FFFFFF | Color hexadecimal del fondo del mapa. |
| color de la cuadrícula | #C0C0C0 | Color hexadecimal de las líneas de la cuadrícula. |
| tipo_de_red | "cuadrada" | Uno de «cuadrado», «hexagonal» o «hexagonal». (hex corresponde a Hex(V) y hexr corresponde a Hex(H)) |
| número_escala | 5 | La distancia de una unidad. |
| unidades_de_escala | «ft» | El tipo de unidades que se utilizarán para la escala. |
| etiquetas de cuadrícula | falso | Mostrar etiquetas de cuadrícula para cuadrícula hexagonal. |
| tipo diagonal | «cuatro» | Uno de «cuatro», «pitagórico» (euclidiano), «trescinco» o «manhattan». |
| archivado | falso | Si la página se ha archivado. |
| iluminación actualizada | falso | Actualice la iluminación dinámica solo cuando se suelte un objeto. |
| fuerza luminosa | falso | Aplicar la línea de visión para los objetos. |
| restricción de luz | falso | No permita que los objetos que tienen visión se muevan a través de las paredes de iluminación dinámica. |
| lightglobalillum | falso | Si es cierto que un token puede «ver» en cualquier lugar, se supone que hay luz brillante presente. |
| jukeboxtrigger | Controla la reproducción de la página al cargarla. Las opciones incluyen «nonestopall» o el id-de-la-pista. | |
| iluminación_dinámica_activada | falso | |
| modo_luz_diurna_activado | falso | |
| Opacidad del modo de luz diurna | 1 | |
| modo explorador | apagado | Opciones: «desactivado», «básico» |
| efecto oscuridad | "ninguno" | Opciones: «ninguna», «niebla oscura», «niebla clara» |
Campaña
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | raíz | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. |
| _tipo | "campaña" | Se puede utilizar para identificar el tipo de objeto o buscar el objeto; sin embargo, tenga en cuenta que solo hay un objeto Campaña y que se puede acceder a él a través deCampaign(). Solo lectura. |
| orden de giro | "" | Una cadena JSON del orden de turno. Véase más abajo. |
| página de iniciativas | falso | ID de la página utilizada para el rastreador cuando se abre la ventana del orden de turno. Cuando se establece enfalso, se cierra la ventana del orden de turno. |
| id de la página del jugador | falso | ID de la página en la que está establecido el marcador del reproductor. Los jugadores ven esta página de forma predeterminada, a menos que se sustituya por las páginas específicas de los jugadores que se indican a continuación. |
| páginas específicas de los jugadores | falso | Un objeto (NO UNA CADENA JSON) con el formato: {"player1_id": "page_id", "player2_id": "page_id" ... } Cualquier reproductor establecido en una página de este objeto anulará el playerpageid. |
| _carpeta_del_diario | "" | Una cadena JSON que contiene datos sobre la estructura de carpetas del juego. Solo lectura. |
| _carpeta_jukebox | "" | Una cadena JSON que contiene datos sobre la estructura de la lista de reproducción del jukebox del juego. Solo lectura. |
| Capa de primer plano visible | verdadero | Cuando sea verdadero, ustedes verán los objetos en la capa del primer plano. Cuando sea falso, no lo harán. Nota: esta es una configuración global que afecta a todas las páginas. |
Orden de turno
El orden de turno es una cadena JSON que representa la lista actual del orden de turno. Es una matriz de objetos. Actualmente, el orden de turno solo puede contener objetos de una página a la vez; el ID de página actual para el orden de turno es el atributo «initiativepage». Asegúrese de mantenerlos sincronizados o podría obtener resultados extraños.
Para trabajar con el orden de turno, deberá utilizarJSON.parse()para obtener un objeto que represente el estado actual del orden de turno (NOTA: compruebe primero que no sea una cadena vacía""... si lo es, inicialícela usted mismo con una matriz vacía). Aquí hay un ejemplo de objeto de orden de turno:
[
{
"id":"36CA8D77-CF43-48D1-8682-FA2F5DFD495F", //El ID del objeto gráfico. Si se configura esta opción, la lista de turnos extraerá automáticamente el nombre y el icono para la lista basándose en el gráfico de la mesa.
"pr":"0", //El valor actual del elemento de la lista. Puede ser un número o texto.
"custom":"" //Título personalizado para el artículo. Se ignorará si el ID se establece en un valor distinto de «-1».
},
{
"id":"-1", //Para los elementos personalizados, el ID DEBE establecerse en "-1" (tenga en cuenta que se trata de una CADENA, no de un NÚMERO).
"pr":"12",
"custom":"Prueba personalizada" //El nombre que se mostrará para los elementos personalizados.
}
]
Para modificar el orden de turno, edite el objeto de orden de turno actual y, a continuación, utiliceJSON.stringify()para cambiar el atributo en la campaña. Tenga en cuenta que el orden de los turnos en la lista es el mismo que el orden de la matriz, por lo que, por ejemplo,push()añade un elemento al final de la lista,unshift()lo añade al principio, etc.
var turnorder;
if(Campaign().get("turnorder") == "") turnorder = []; //NOTA: Primero comprobamos que el turnorder no sea solo una cadena vacía. Si es así, trátelo como una matriz vacía.
else turnorder = JSON.parse(Campaign().get("turnorder"));
//Añada una nueva entrada personalizada al final del orden de turno.
turnorder.push({
id: "-1",
pr: "15",
custom: "Turn Counter"
});
Campaign().set("turnorder", JSON.stringify(turnorder));
Jugador
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. | |
| _tipo | "jugador" | Se puede utilizar para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
| _d20idusuario | ID de usuario: para todo el sitio. Por ejemplo, la página de usuario del jugador en la wiki es /User:ID, donde ID es el mismo valor almacenado en _d20userid. Solo lectura. | |
| _displayname | "" | El nombre actual que aparece en pantalla del jugador. Se puede cambiar desde la página de configuración del usuario. Solo lectura. |
| _en línea | falso | Solo lectura. |
| _última página | "" | El identificador de la última página que el jugador vio como GM. Esta propiedad no se actualiza para los jugadores o GM que se han unido como jugadores. Solo lectura. |
| macrobar | "" | Cadena delimitada por comas de las macros de la barra de macros del reproductor. Solo lectura. |
| hablando como | "" | El ID del jugador o personaje que usted ha seleccionado en el menú desplegable «Como». Cuando se establece en la cadena vacía, el jugador habla como él o ella mismo(a). Cuando se establece en un personaje, el valor es«personaje|ID», donde ID es el ID del personaje. Cuando el GM habla como otro jugador, el valor es«jugador|ID», donde ID es el ID del jugador. |
| color | «#13B9F0» | El color del cuadrado junto al nombre del jugador, así como el color de sus mediciones en el mapa, sus círculos de ping, etc. |
| mostrar barra de macros | falso | Si se muestra la barra de macros del jugador. |
Macro
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. | |
| _tipo | "macro" | Se puede utilizar para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
| _playerid | El ID del jugador que creó esta macro. Solo lectura. | |
| special Ability Name | "" | El nombre de la macro. |
| acción | "" | El texto de la macro. |
| visible para | "" | Lista delimitada por comas con los ID de los jugadores que pueden ver la macro, además del jugador que la ha creado.
Todos los jugadoresestán representados por la palabra «todos» en la lista. |
| istokenaction | falso | ¿Es esta macro una acción de token que debería aparecer cuando se seleccionan los tokens? |
Tablas para tiradas
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. | |
| _tipo | mesa plegable | Se puede utilizar para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
| special Ability Name | «nueva tabla» | |
| reproductores de espectáculos | verdadero |
Elemento de tabla
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. | |
| _tipo | «elemento de tabla» | Se puede utilizar para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
| _rollabletableid | "" | ID de la tabla a la que pertenece este elemento. Solo lectura. |
| avatar | "" | URL de una imagen utilizada para el elemento de la tabla. Consulte la nota sobre las restricciones relativas a los avatares y las fuentes de imágenes (imgsrc) más abajo. |
| special Ability Name | "" | |
| peso | 1 | Peso del elemento de la tabla en comparación con los demás elementos de la misma tabla. En pocas palabras, un elemento con peso 3 tiene tres veces más probabilidades de ser seleccionado al tirar los dados que un elemento con peso 1. |
Personaje
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. | |
| _tipo | "personaje" | Se puede utilizar para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
| avatar | "" | URL de una imagen utilizada para el personaje. Consulte la nota sobre las restricciones relativas a los avatares y las fuentes de imágenes (imgsrc) más abajo. |
| special Ability Name | "" | |
| biografía | "" | La biografía del personaje. Consulte la nota siguiente sobre cómo acceder a los campos Notas, GMNotas y biografía. |
| gmnotes | "" | Notas sobre el personaje que solo puede ver el GM. Consulte la nota siguiente sobre cómo acceder a los campos Notas, GMNotas y biografía. |
| archivado | falso | |
| diarios de jugadores | "" | Lista delimitada por comas con los ID de los jugadores que pueden ver este personaje. Utilice «all» para que todos los jugadores puedan ver.
Todos los jugadoresestán representados por la palabra «todos» en la lista. |
| controlado por | "" | Lista delimitada por comas con los ID de los jugadores que pueden controlar y editar este personaje. Utilice «all» para dar a todos los jugadores la posibilidad de editar.
Todos los jugadoresestán representados por la palabra «todos» en la lista. |
| _defaulttoken | "" | Una cadena JSON que contiene los datos del token predeterminado del personaje, si se ha establecido uno. Tenga en cuenta que se trata de un «blob» similar a «bio» y «notes», por lo que debe pasar una función de devolución de llamada a get(). Solo lectura. |
Atributo
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. | |
| _tipo | "atributo" | Se puede utilizar para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
| _characterid | "" | ID del personaje al que pertenece este atributo. Solo lectura. Obligatorio cuando se utilizacreateObj. |
| special Ability Name | "Sin título" | |
| actual | "" | Se puede acceder al valor actual del atributo en el chat y las macros con la sintaxis@{Character Name|Attribute Name} o en las habilidades con la sintaxis@{Attribute Name}. |
| máxima | "" | Se puede acceder al valor máximo del atributo en el chat y las macros con la sintaxis@{Character Name|Attribute Name|max} o en las habilidades con la sintaxis@{Attribute Name|max}. |
Importante: Consulte la nota siguiente sobre cómo trabajar con hojas de personaje para obtener información sobre cómo los valores predeterminados de las hojas de personaje afectan al uso de los atributos.
Habilidad
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. | |
| _tipo | "habilidad" | Se puede utilizar para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
| _characterid | "" | El personaje al que pertenece esta habilidad. Solo lectura. Obligatorio cuando se utilizacreateObj. |
| special Ability Name | «Sin título_Habilidad» | |
| Descripción | "" | La descripción no aparece en la interfaz de la hoja de personaje. |
| acción | "" | El texto de la habilidad. |
| istokenaction | falso | ¿Es esta habilidad una acción simbólica que debería aparecer cuando se seleccionan los símbolos vinculados a su personaje principal? |
Nota
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. | |
| _tipo | "nota" | Se puede utilizar para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
| avatar | "" | URL de una imagen utilizada para el folleto. Consulte la nota sobre las restricciones relativas a los avatares y las fuentes de imágenes (imgsrc) más abajo. |
| special Ability Name | «Nota misteriosa» | |
| notas | "" | Contiene el texto del folleto. Consulte la nota siguiente sobre el uso de Notes y GMNotes. |
| gmnotes | "" | Contiene el texto del folleto que solo ve el GM. Consulte la nota siguiente sobre el uso de Notes y GMNotes. |
| diarios de jugadores | "" | Lista delimitada por comas con los ID de los jugadores que pueden ver este documento. Utilice «all» para mostrar a todos los jugadores.
Todos los jugadoresestán representados por la palabra «todos» en la lista. |
| archivado | falso | |
| controlado por | "" | Lista delimitada por comas con los ID de los jugadores que pueden controlar y editar este documento.
Todos los jugadoresestán representados por la palabra «todos» en la lista. |
Nota: La API no tiene acceso a la jerarquía de carpetas. Los folletos creados por la API se colocarán en el nivel raíz.
Cubierta
Tenga en cuenta que hay métodos API auxiliares para «robar», «repartir» o «barajar» cartas del mazo. Véasela publicación del foro sobre la actualización de la API de marzo de 2018.
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | "" | id de la baraja |
| _tipo | cubierta | |
| special Ability Name | "" | nombre de la baraja |
| _barajaActual | "" | Una lista delimitada por comas de las cartas que se encuentran actualmente en el mazo (incluidas aquellas que se han jugado sobre la mesa o en las manos). Cambios cuando se baraja el mazo. |
| _currentIndex | -1 | el índice actual de nuestra posición en la baraja, «¿qué carta se sacará a continuación?». |
| _currentCardShown | verdadero | mostrar la carta actual en la parte superior del mazo |
| reproductores de espectáculos | verdadero | mostrar el mazo a los jugadores |
| jugadores pueden dibujar | verdadero | ¿Pueden ustedes robar cartas? |
| avatar | "" | la «parte posterior» de las cartas de esta baraja |
| mostrar | falso | mostrar el mazo en el tablero de juego (¿el mazo está visible actualmente?) |
| jugadores_vieron_tarjetas | verdadero | ¿Pueden los jugadores ver el número de cartas que tienen los demás jugadores en la mano? |
| jugadores_ven_las_cartas_del_rival | falso | ¿Pueden los jugadores ver el anverso de las cartas cuando miran las manos de otros jugadores? |
| gm_seenumcards | verdadero | ¿Puede el GM ver el número de cartas que tiene cada jugador en la mano? |
| gm_ver_tarjetas_delanteras | falso | ¿Puede el GM ver el anverso de las cartas cuando mira la mano de cada jugador? |
| tarjetas infinitas | falso | ¿Hay un número «infinito» de cartas en esta baraja? |
| _cardSequencer | -1 | Se utiliza internamente para avanzar el mazo al robar cartas. |
| cartas jugadas | «faceup» | ¿Cómo se juegan las cartas de esta baraja sobre la mesa? «boca arriba» o «boca abajo». |
| altura predeterminada | "" | ¿Cuál es la altura predeterminada para las cartas jugadas sobre la mesa? |
| ancho predeterminado | "" | |
| modo de descarte | "ninguno" | ¿Qué tipo de pila de descarte tiene este mazo? «none» = sin pila de descartes, «choosebacks» = permite a los jugadores ver el reverso de las cartas y elegir una, «choosefronts» = ver el anverso y elegir, «drawtop» = robar la carta descartada más recientemente, «drawbottom» = robar la carta descartada más antigua. |
| _pilaDeDescartes | "" | ¿Cuál es la pila de descartes actual de este mazo? Lista de tarjetas delimitadas por comas. Son cartas que se han retirado del juego y no se volverán a colocar en el mazo al barajarlo hasta que se realice una recuperación. |
Tarjeta
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| special Ability Name | "" | Nombre de la tarjeta |
| avatar | "" | Parte delantera de la tarjeta |
| card_back | "" | Anular la imagen del reverso de la tarjeta |
| _deckid | "" | ID de la baraja |
| _tipo | «tarjeta» | |
| _id | "" |
Mano
Tenga en cuenta que cada jugador solo debe tener UNA mano.
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| mano actual | "" | Lista de cartas actualmente en la mano, separadas por comas. Tenga en cuenta que esto ya no es de solo lectura. Lo ideal sería ajustarlo únicamente con las funciones de la baraja de cartas. |
| _tipo | mano | |
| _parentid | "" | ID del jugador al que pertenece la mano. |
| _id | "" | |
| vista actual | «bydeck» | Cuando el jugador abre la mano, ¿la vista es «por baraja» o «por carta»? |
Pista de Jukebox
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. | |
| _tipo | «jukeboxtrack» | Se puede utilizar para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
| jugando | falso | Booleano utilizado para determinar si la pista se está reproduciendo o no. Si se establece en «true» y softstop en «false», se reproduce una pista. |
| parada suave | falso | Booleano utilizado para determinar si una pista sin bucle ha finalizado al menos una vez. Debe establecerse en «false» para garantizar que se reproduzca una pista. |
| título | "" | La etiqueta visible para la pista en la pestaña del reproductor. |
| volumen | 30 | El nivel de volumen de la pista. Tenga en cuenta que esto debe establecerse como un número entero (no una cadena), o podría interrumpir la funcionalidad. Valores de 0 a 100 (porcentaje). |
| bucle | falso | ¿Se debe reproducir la pista en bucle? Establezca en verdadero si es así. |
Efectos especiales personalizados
| Propiedad | Valor predeterminado | Notas |
|---|---|---|
| _id | Un identificador único para este objeto. Único en todo el mundo entre todos los objetos de este juego. Solo lectura. | |
| _tipo | «custfx» | Se puede utilizar para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
| special Ability Name | "" | El nombre visible para el FX en la lista de FX. |
| definición | {} | Objeto Javascript que describe el FX. |
Restricciones de las propiedades imgsrc y avatar
Aunque ahora puede editar las propiedadesimgsrcyavatar, con el fin de garantizar la seguridad de todos los usuarios de Roll20, hemos establecido las siguientes restricciones para dichas propiedades:
- Debe utilizar un archivo de imagen que haya subido a su biblioteca Roll20, no a un sitio externo (como Imgur) ni al mercado Roll20. Comenzará con«https://s3.amazonaws.com/files.d20.io/images/»para las imágenes subidas al servidor principal, o«https://s3.amazonaws.com/files.staging.d20.io/images/»para las imágenes subidas al servidor de desarrollo. Puede ver la URL de origen de una imagen utilizando las herramientas de desarrollo de su navegador.
- Debe incluir la cadena de consulta en la URL, por ejemplo,«https://s3.amazonaws.com/files.staging.d20.io/images/123456/med.png?12345678», y no solo«https://s3.amazonaws.com/files.staging.d20.io/images/123456/med.png».
- Para los objetos gráficos (tokens), debe utilizar el tamaño «miniatura» de la imagen. Debería aparecer como«https://s3.amazonaws.com/files.staging.d20.io/images/123456/thumb.png?12345678».
En el futuro, es posible que añadamos una herramienta para que se puedan cargar imágenes específicamente para su uso con scripts Mod (API), pero por ahora utilice las imágenes cargadas en su propia biblioteca. Tenga en cuenta que si elimina una imagen de su biblioteca, se eliminará de todos los juegos que utilicen esa imagen, incluidos los juegos que utilicen sus scripts Mod (API).
Uso de los campos Notas, GMNotas y Biografía Asíncrono
Para acceder a los campos «notes», «gmnotes» o «bio» en Personajes y Fichas, debe pasar una función de devolución de llamada como segundo argumento a la función get(). Aquí tiene un ejemplo:
var character = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
character.get("bio", function(bio) {
log(bio); //haga algo con la biografía del personaje aquí.
});
Puede establecer el valor de estos campos como de costumbre. Tenga en cuenta que actualmente (a fecha de 09/05/2016) existe un error con estos campos asíncronos, por el que al configurarlos pasando valores a createObj falla silenciosamente, dejando el objeto en un estado extraño. Solo debe establecer estos valores utilizando .set hasta que se resuelva este problema. Detalles sobre el foro. También hay un error (a fecha de 05/11/2016) por el que, al intentar establecer las propiedades notes y gmnotes en la misma llamada a set(), la segunda propiedad de la llamada se establece de forma errónea. Detalles sobre el foro.
Trabajar con hojas de personaje
La función Hojas de personajes afecta al uso del tipo de objeto Atributos, ya que las hojas tienen la capacidad de especificar un valor predeterminado para cada atributo de la hoja. Sin embargo, si el atributo se establece en el valor predeterminado, aún no se ha creado un objeto Atributo real en el juego para ese personaje. Ofrecemos una función práctica que le oculta esta complejidad. Debe utilizar esta función para obtener el valor de un atributo en el futuro, especialmente si sabe que un juego utiliza una hoja de personaje.
getAttrByName(id_carácter, nombre_atributo, tipo_valor)
Simplemente especifique el ID del personaje, elnombre(no el ID) del atributo (por ejemplo, «HP» o «Str») y, a continuación, si desea el «actual» o el «máximo» para value_type. Aquí tiene un ejemplo:
var character = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
getAttrByName(character.id, "str"); // el valor actual de str, por ejemplo "12"
getAttrByName(character.id, "str", "max"); //el valor máximo de str, por ejemplo, «[[floor(@{STR}/2-5)]]»
Tenga en cuenta que los campos que tienen valores calculados automáticamente devolverán la fórmula en lugar del resultado del valor. A continuación, puede pasar esa fórmula a sendChat() para utilizar el motor de dados y calcular el resultado automáticamente.
Asegúrese de consultar también la hoja de personaje para obtener más información sobre cómo interactúan las hojas de personaje con la API.
getAttrByNamesoloobtendrá el valor del atributo, no el objeto del atributo en sí. Si desea hacer referencia a propiedades del atributo distintas de «current» o «max», o si desea cambiar las propiedades del atributo, debe utilizar una de las otras funciones anteriores, comofindObjs.
En caso de que el atributo solicitado no exista,getAttrByName()devolveráundefined.
Creación de objetos
createObj(tipo, atributos)
Nota: actualmente puede crear objetos «gráfico», «texto», «ruta», «carácter», «habilidad», «atributo», «folleto», «tabla desplegable», «elemento de tabla» y «macro».
Puede crear un nuevo objeto en el juego utilizando la funcióncreateObj. Debe pasar el tipo del objeto (una de las propiedades_typeválidas de la lista de objetos anterior), así como un objetode atributosque contenga una lista de propiedades para el objeto. Tenga en cuenta que si el objeto tiene un objeto padre (por ejemplo, los atributos y habilidades pertenecen a los personajes, los gráficos, los textos y las rutas pertenecen a las páginas, etc.), debe pasar el ID del padre en la lista de propiedades (por ejemplo, debe incluir la propiedadcharacteridal crear un atributo). Tenga en cuenta también que, incluso al crear nuevos objetos, no puede establecer propiedades de solo lectura, ya que se establecerán automáticamente con su valor predeterminado. La única excepción a esto es cuando se crea una ruta, en cuyo caso debe incluir la propiedad «path», pero esta no se puede modificar una vez creada la ruta.
createObjdevolverá el nuevo objeto, para que pueda continuar trabajando con él.
//Crear un nuevo atributo de Fuerza en cualquier personaje que se añada al juego.
on("add:character", function(obj) {
createObj("attribute", {
name: "Strength",
current: 0,
max: 30,
characterid: obj.id
});
});
Eliminación de objetos
objeto.eliminar()
Nota: actualmente puede eliminar objetos «gráfico», «texto», «ruta», «carácter», «habilidad», «atributo», «folleto», «tabla desplegable», «elemento de tabla» y «macro».
Puede eliminar objetos de juego existentes utilizando la función.remove(). La función .remove() funciona con todos los objetos que puede crear con la función createObj. Usted llama a la función directamente en el objeto. Por ejemplo,miPersonaje.eliminar();.
Objetos globales
Hay varios objetos que están disponibles globalmente en cualquier parte de su script.
Campaña() (función)
Función que devuelve el objetoCampaña. Dado que solo hay una campaña, este global siempre apunta a la única campaña del juego. Útil para comprobar si un objeto se encuentra en la página activa utilizandoCampaign().get("playerpageid").
estado
La variablede estadoes un objeto en el ámbito global al que pueden acceder todos los scripts que se ejecutan en un juego. Puede acceder al objetostatedesde cualquier función o callback en cualquier momento simplemente utilizando la variable global denominadastate. Además, el objetode estadose mantiene entre las ejecuciones del Sandbox, por lo que puede utilizarlo para almacenar información que desee tener en futuras ejecuciones de su script.
Nota:Debe utilizar el objeto de estado para almacenar información que solo necesita la API, ya que no se envía a los ordenadores de los jugadores y no aumenta el tamaño del archivo del juego. Almacene los valores que se necesitan en el juego en las propiedades de los objetos Roll20.
Tipos almacenables
El objetode estadosolo es capaz de conservar tipos de datos simples, tal y como admite el estándar JSON .
| Tipo | Ejemplos | Descripción |
|---|---|---|
| Booleano |
verdaderofalso
|
El valorverdaderoofalso. |
| Número |
123,5101,23e20
|
Cualquier formato numérico compatible con Javascript. Punto flotante o entero. |
| Cadena |
«Hola, fantasía» «Oh, y mundo»
|
Una cadena de texto estándar. |
| Matriz |
[ 1, 2, 3, 4 ][ 'A','B','C'][1, 2, ['bob', 3], 10, 2.5]
|
Una colección ordenada de cualquiera de los tipos, incluyendo otras matrices. |
| Objeto | { key: 1, value: 'roll20' } |
Un objeto clave/valor simple con claves de cadena y cualquiera de los tipos como valor, incluidos otros objetos. |
Advertencia:aunque las funciones parecerán funcionar cuando se almacenen en el estado inicial, desaparecerán la primera vez que se restaureel estadodesde la persistencia, como por ejemplo al reiniciar el entorno de pruebas.
-
Nota:Esto incluye los objetos Roll20 que se obtienen de eventos o de las funciones
findObjs(),getObj(),filterObjs(),createObj(), etc.
Recordatorios importantes
El objetode estadose comparte entre todos los scripts de un entorno aislado. Para evitar dañar otros scripts, es importante seguir unas sencillas pautas:
-
Nunca asigne directamente al objeto
de estadoraíz.
state = { break: 'all the things' }; // ¡¡¡NUNCA HAGA ESTO!!!
-
Evite utilizar variables locales llamadas
stateen sus scripts. Aunque esto funcionará, resultará confuso para los usuarios posteriores de sus scripts y podría causar problemas si el código se edita sin cuidado.
función turn(){
var state = Campaign().get('turnorder'); // ¡Mala práctica, evítela!
// ...
}
-
Siempre coloquen sus propiedades debajo de al menos una propiedad de espacio de nombres. Asegúrese de utilizar una propiedad de espacio de nombres suficientemente descriptiva. Evite nombres como
scriptosettings. Lo mejor es utilizar el nombre de su módulo o su propio nombre o apodo.
if( ! state.MyModuleNamespace ) {
state.MyModuleNamespace = { module: 'my module', ok: 'this is fine!', count: 0 };
}
state.MyModuleNamespace.count++;
Ejemplo de uso
Este es un ejemplo práctico que utiliza el objetode estadode forma adecuada.
on('ready',function() {
"use strict";
// Compruebe si existe la propiedad del espacio de nombres y, si no existe, créela.
if( ! state.MyModuleNS ) {
state.MyModuleNS = {
version: 1.0,
config: {
color1: '#ff0000',
color2: '#0000ff'
},
count: 0
};
}
// Uso de las propiedades de estado para configurar un mensaje para el chat.
sendChat(
'Módulo de prueba',
'<span style="color: '+state.MyModuleNS.config.color1+';">'+
'Prueba de estado'+
'</span> '+
'<span style="color: '+state.MyModuleNS.config.color2+';">'+
'Script v'+state.MyModuleNS.version+' iniciado '+(++state.MyModuleNS.count)+' veces!'+
'</span>'
);
});
Buscar/filtrar objetos
La API proporciona varias funciones auxiliares que se pueden utilizar para buscar objetos.
getObj(type, id)
Esta función obtiene un único objeto si se le pasa el _type del objeto y el _id. Siempre que sea posible, es mejor utilizar esta función en lugar de otras funciones de búsqueda, ya que es la única que no tiene que iterar a través de toda la colección de objetos.
on("change:graphic:represents", function(obj) {
if(obj.get("represents") != "") {
var character = getObj("character", obj.get("represents"));
}
});
findObjs(atributos)
Pase a esta función una lista de atributos y le devolverá todos los objetos que coincidan como una matriz. Tenga en cuenta que esto funciona con todos los objetos de todos los tipos en todas las páginas, por lo que probablemente desee incluir al menos un filtro para _type y _pageid si está trabajando con objetos de mesa.
var currentPageGraphics = findObjs({
_pageid: Campaign().get("playerpageid"),
_type: "graphic",
});
_.each(currentPageGraphics, function(obj) {
//Haga algo con obj, que se encuentra en la página actual y es un gráfico.
});
También puede pasar un segundo argumento opcional que contenga un objeto con una lista de opciones, entre las que se incluyen:
- caseInsensitive(verdadero/falso): si es verdadero, las propiedades de cadena se compararán sin tener en cuenta las mayúsculas y minúsculas de la cadena.
var targetTokens = findObjs({
name: "target"
}, {caseInsensitive: true});
//Devuelve todos los tokens con el nombre «target», «Target», «TARGET», etc.
filterObjs(callback)
Ejecutará la función de devolución de llamada proporcionada en cada objeto y, si la devolución de llamada devuelve verdadero, el objeto se incluirá en la matriz de resultados. Actualmente, no es recomendable utilizar filterObjs() para la mayoría de los fines, ya que findObjs() tiene una indexación integrada para mejorar la velocidad de ejecución, por lo que casi siempre es mejor utilizar findObjs() para obtener primero los objetos del tipo deseado y, a continuación, filtrarlos utilizando el método nativo .filter() para matrices.
var results = filterObjs(function(obj) {
if(obj.get("left") < 200 && obj.get("top") < 200) return true;
else return false;
});
//Results es una matriz de todos los objetos que se encuentran en la esquina superior izquierda de la mesa.
obtenerTodosLosObjetos()
Devuelve una matriz con todos los objetos del juego (de todos los tipos). Equivalente a llamar a filterObjs y simplemente devolvertruepara cada objeto.
getAttrByName(id_carácter, nombre_atributo, tipo_valor)
Obtiene el valor de un atributo, utilizando el valor predeterminado de la hoja de personaje si el atributo no está presente. value_typees un parámetro opcional que puede utilizar para especificar «current» (actual) o «max» (máximo).
getAttrByNamesoloobtendrá el valor del atributo, no el objeto del atributo en sí. Si desea hacer referencia a propiedades del atributo distintas de «current» o «max», o si desea cambiar las propiedades del atributo, debe utilizar una de las otras funciones anteriores, comofindObjs.
Para las secciones repetidas, puede utilizar el formatorepeating_section_$n_attribute, dondenes el número de fila repetida (empezando por cero). Por ejemplo,repeating_spells_$2_namedevolverá el valor denamede la tercera fila derepeating_spells.
Puede lograr un comportamiento equivalente agetAttrByName conlo siguiente:
// current y max dependen completamente del atributo y del sistema de juego
// en cuestión; no hay ninguna función disponible para determinarlos automáticamente
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');
}
}