obj.get("propiedad")
y establecer nuevos valores utilizandoobj.set("propiedad", nuevovalor)
oobj.set({property: newvalue, property2: newvalue2})
.Nota:La propiedadid
de un objeto es un ID único a nivel global: ningún objeto debería tener el mismo, incluso entre diferentes tipos de objetos. Además, dado que el id de un objeto se accede con frecuencia y nunca cambia, hay un acceso directo disponible en el que puedes acceder a él usandoobj.id
en lugar deobj.get("_id")
si lo deseas (cualquiera de las dos opciones funcionará).
Pathv2 (Jumpgate Tabletop)
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id |
Un identificador único para este objeto. Único a nivel mundial entre todos los |
|
_type | "pathv2" | Puede ser utilizado 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. | |
shape | "" | "pol", "free", "eli", or "rec" Determines if the path is displayed as a polyline, freehand, ellipse, or rectangle. |
points | A JSON string containing and array of x,y points used to create the path. | |
llenar | "transparente" | Color de relleno. Utilice la cadena "transparente" o un color hexadecimal como una cadena, por ejemplo "#000000" |
trazo | "#000000" | Color del trazo (borde). |
rotación | 0 | Rotación (en grados). |
capa | "" | Capa actual, una de "gmlayer", "objects", "map" o "walls". La capa de muros se utiliza para la iluminación dinámica, y los caminos en la capa de muros bloquearán la luz. |
ancho_trazo | 5 | |
y | 0 | Coordenada Y para el centro de la trayectoria |
x | 0 | Coordenada X para el centro de la trayectoria |
Controlado por | "" |
Lista de IDs de jugadores separados por comas que pueden controlar la trayectoria. Los jugadores que tienen control pueden eliminar la trayectoria. Si la trayectoria fue creada por un jugador, ese jugador se incluye automáticamente en la lista. Todos los jugadoresse representa al tener 'todos' en la lista. |
tipoDeBarrera | "pared" |
Las opciones de tipo de barrera de iluminación dinámica incluyen "pared", "unidireccional" y "transparente" |
unaVíaInvertida | falso |
booleano |
The shape property has the following values:
- "pol" - Polyline. A straight line is drawn between each consecutive point. If the starting point and ending point are the same, it creates a closed shape.
- "free" - Freehand. A curve is drawn using the points as guides. If the starting point and ending point are the same, it creates a closed shape.
- "eli" - Ellipse. An ellipse is draw using the points to set a bounding box. Only the first two points are used.
- "rec" - Rectangle. A rectangle is draw using the points to set a bounding box. Only the first two points are used.
The points property is a JSON string containing an array of points. Points are represented as a two position array of an x and y location. A triangle from (0,0) to (0,70) to (70,0), and back to (0,0) would be represented as "[[0,0],[0,70],[70,0],[0,0]]".
The x and y properties position the PathV2 object on the page. They specify where the center of the drawing should be. For some shapes (ellipses and rectangles), that is pretty easy to figure out. For more complex shapes (polylines and freehands), you will need to find the minimum and maximum values from the points property and use the point equidistant between them.
Path (Classic Tabletop)
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id |
Un ID único para este objeto. Globally unique across all |
|
_type | "senda" | Can be used to identify the object type or search for the object. 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 en el camino. Solo lectura, excepto al crear un nuevo camino. Consulte la sección sobre Caminos para obtener más información. | |
fill | "transparente" | Fill color. Use the string "transparent" or a hex color as a string, for example "#000000" |
stroke | "#000000" | Stroke (border) color. |
rotacion | 0 | Rotation (in degrees). |
capa | "" | Current layer, one of "gmlayer", "objects", "map", or "walls". The walls layer is used for dynamic lighting, and paths on the walls layer will block light. |
stroke_width | 5 | |
anchura | 0 | |
altura | 0 | |
top | 0 | Y-coordinate for the center of the path |
izquierda | 0 | X-coordinate for the center of the path |
escalaX | 1 | |
escalaY | 1 | |
controlado por | "" |
Comma-delimited list of player IDs who can control the path. Controlling players may delete the path. If the path was created by a player, that player is automatically included in the list. Todos los jugadoresse representa con 'todos' en la lista. |
barrierType | "wall" |
Dynamic Lighting Barrier type options include "wall", "oneWay", and "transparent" |
oneWayReversed | falso |
boolean |
Para obtener más información sobre el formato de los datos del camino_path
, consulta la sección sobre caminos.
Ventana
Nota: La ventana y la puerta 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 ventana o puerta.
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | Un ID único para este objeto. Único a nivel global entre todos los objetos de este juego. Solo lectura. | |
_type | "ventana" | Solo lectura. |
color | Un color hexadecimal del camino. | |
x | 0 | Coordenada central de la puerta en el eje x. |
y | 0 | Coordenada central de la puerta en el eje y. |
isOpen | falso | Determina si un jugador puede moverse a través de esta ventana. |
isLocked | falso | Impide que los jugadores puedan interactuar con la ventana. |
ruta | Representado como dos asas (asa0 y asa1) cada una 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: La ventana y la puerta 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 la ventana o puerta.
Propiedad |
Valor predeterminado |
Notas |
_id |
Un ID único para este objeto. Globalmente único entre todos los objetos en este juego. Solo lectura. |
|
_type |
"puerta" |
Solo lectura. |
color |
Un color hexadecimal de la ruta. |
|
x |
0 |
Centro de coordenadas de la puerta en el eje x. |
y |
0 |
Centro de coordenadas de la puerta en el eje y. |
isOpen |
falso |
Determina si un jugador puede moverse a través de esta puerta. |
isLocked |
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 una barrera. |
camino |
Representado por dos manijas (manija0 y manija1) cada una con coordenadas x e y. |
Texto
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | Un ID único para este objeto. Único en todo el juego. Solo lectura. | |
_type | "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. | |
parte superior | 0 | |
izquierda | 0 | |
ancho | 0 | |
altura | 0 | |
texto | "" | |
tamano_fuente | 16 | Para obtener los mejores resultados, utiliza 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)" | |
stroke | "transparent" | |
tipo_letra | "Arial" | Si esto no se establece, al cambiar más tarde el valor de la propiedad "texto", el tamaño de la fuente se reducirá a 8. Valores posibles (el caso no es importante): "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 | "" | "gmlayer", "objects", "map" o "walls". |
controladopor | "" | Lista delimitada por comas de los ID de los jugadores que pueden controlar el texto. Los jugadores controladores pueden borrar el texto. Si el texto ha sido creado por un jugador, éste se incluirá automáticamente en la lista.
Todos los jugadoresse representa teniendo 'todos' en la lista. |
Gráfico (Token/Mapa/Carta/etc.)
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | Un ID único para este objeto. Globalmente único entre todos los objetos en este juego. Solo lectura. | |
_type | "gráfico" | Se puede usar para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
_subtype | "ficha" | Puede ser "token" (para tokens y mapas) o "card" (para cartas). Solo lectura. |
_cardid | Se establece en un ID si la imagen es una carta. Solo lectura. | |
_pageid | ID of the page the object is in. Solo lectura. | |
imgsrc | La URL de la imagen del gráfico. Ver la nota sobre imgsrc y las restricciones de avatar a continuación. | |
bar1_link | Establece un ID si la Barra 1 está vinculada a un personaje. | |
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 de la imagen. |
arriba | 0 | Número de píxeles desde el borde superior del mapa hasta el centro de la imagen. |
ancho | 0 | Ancho de la imagen, en píxeles. |
alto | 0 | Alto de la imagen, en píxeles. |
rotation | 0 | La orientación del token en grados. |
layer | "" | "gmlayer", "objetos", "mapa" o "paredes". |
esdibujo | false | Esta propiedad se cambia desde el menú contextual Avanzado. |
flipv | false | Voltear verticalmente. |
fliph | false | Voltear horizontalmente. |
nombre | "" | El nombre del token. |
gmnotes | "" | Notas sobre el token solo visibles para el GM. |
controlledby | "" | Lista de identificadores de jugador separados por comas que pueden controlar el gráfico. Los jugadores que controlan pueden eliminar el gráfico. Si el gráfico fue creado por un jugador, ese jugador se incluye automáticamente en la lista.
Todos los jugadoresse representa con 'todos' en la lista. |
bar1_value | "" | Valor actual de la Barra 1. Esto puede ser un número o un texto. |
Valor de barra2 | "" | |
Valor de barra3 | "" | |
Valor máximo de Barra 1. | "" | Valor máximo. Si _value y _max están establecidos, se puede mostrar una barra encima del token que muestra el porcentaje de Barra 1. |
Valor máximo de barra2 | "" | |
Valor máximo de barra3 | "" | |
Radio de aura1 | "" | Radio del aura, utilizando las unidades establecidas en la configuración de la página. Puede ser un número entero o decimal. Establecer como una cadena vacía para borrar el aura. |
radio_aura2 | "" | |
color_aura1 | "#FFFF99" | Un color hexadecimal o del aura. |
color_aura2 | "#59E594" | |
cuadrado_aura1 | falso | ¿El aura es un círculo o un cuadrado? |
aura2_cuadrado | falso | |
tinte_color | "transparent" | 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 siguientes para obtener más información. |
marcadores_token | "" | Una matriz JSON convertida en cadena que contiene un objeto para cada marcador de token actualmente en el juego:. Puedes encontrar un ejemplo a continuación. |
showname | false | Si se muestra la placa del nombre del token. |
showplayers_name | false | Mostrar la placa del nombre a todos los jugadores. |
showplayers_bar1 | false | Mostrar la Barra 1 a todos los jugadores. |
showplayers_bar2 | false | |
showplayers_bar3 | falso | |
showplayers_aura1 | falso | Mostrar Aura 1 a todos los jugadores. |
showplayers_aura2 | falso | |
nombre_jugador | verdadero | Permitir a los jugadores controladores editar el nombre del token. También muestra la placa de identificación a los jugadores controladores, incluso si showplayers_name es falso. |
playersedit_bar1 | verdadero | Permitir a los jugadores controladores editar el Bar 1 del token. También muestra el Bar 1 a los jugadores controladores, incluso si showplayers_bar1 es falso. |
playersedit_bar2 | verdadero | |
playersedit_bar3 | verdadero | |
playersedit_aura1 | verdadero | Permitir a los jugadores controlar la Aura 1 del token. También muestra la Aura 1 a los jugadores que la controlan, incluso si showplayers_aura1 es falso. |
playersedit_aura2 | verdadero | |
light_radius | "" | Radio de iluminación dinámica. |
light_dimradius | "" | Inicio del radio de luz tenue. Si light_dimradius es una cadena vacía, el token emitirá 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. |
Iluminación de otros jugadores | falso | Mostrar la luz del token a todos los jugadores. |
Iluminación con línea de visión | falso | La luz tiene "visión" para controlar a los jugadores en relación con la configuración de "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á para la "mitad" frontal del "campo de visión". |
light_losangle | "360" | Ángulo (en grados) del campo de visión de la gráfica (asumiendo que light_hassight está configurado como true) |
lastmove | "" | El último movimiento del token. Es una lista de coordenadas separadas por comas. Por ejemplo, "300,400" significa que el token comenzó su último movimiento en left=300, top=400. Siempre se asume que los valores actuales de top + left del token son el "punto final" del último movimiento. Los puntos de ruta están indicados por múltiples conjuntos de coordenadas. Por ejemplo, "300,400,350,450,400,500" indicaría que el token comenzó en la posición izquierda=300, arriba=400, luego estableció un punto de ruta en la posición izquierda=350, arriba=450, otro punto de ruta en la posición izquierda=400, arriba=500, y luego finalizó el movimiento en sus coordenadas actuales de arriba + izquierda. |
light_multiplier | "1" | Multiplicador sobre la eficacia de las fuentes de luz. Un multiplicador de dos permitiría que el token vea 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 un token donde se revela la Iluminación avanzada de Niebla. |
light_sensitivity_multiplier | 100 | Multiplicador en la efectividad de fuentes de luz. Un multiplicador de 200 permitiría que el token vea el doble de lejos que un token con un multiplicador de 100, con la misma fuente de luz. |
night_vision_effect |
Cambia el Efecto de Visión nocturna. Otras opciones incluyen “Atenuación” y “Nocturno” | |
bar_location | Ajusta la ubicación de las barras del token. Opciones incluyen ’overlap_top’, ‘overlap_bottom’,‘bottom’ | |
compact_bar |
Ajusta si la barra es compacta o no. Otra opción es compacta. | |
lockMovement | false | Una opción para bloquear un gráfico en su lugar. Valor booleano verdadero o falso |
Ejemplo de Marcadores de fichas
{
"id":59, // el id de la base de datos para el
"name":"Bane", // el nombre (no único) del marcador
"tag":"Bane::59", // cómo se referencia realmente el token
// esto incluirá el id para marcadores personalizados, pero no
// para marcadores predeterminados.
"url":"https://s3.amazonaws.com/files.d20.io/images/59/yFnKXmhLTtbMtaq-Did1Yg/icon.png?1575153187"
// ^la url para la imagen del marcador de fichas
}
Notas Importantes Sobre Personajes y Fichas Conectados
Tenga en cuenta que para los tokens que están vinculados a Caracteres, el campocontroladopor
del token queda anulado por el campocontroladopor
del Carácter.
Para las barras de tokens (por ejemplo,bar1_value
ybar1_max
) en las que el token está vinculado a un Atributo (por ejemplo,bar1_link
está configurado), al establecer un valor en la barra se actualizarán automáticamente también los valorescurrent
y/omax
del Atributo subyacente, por lo que no tendrá que configurar ambos manualmente.
Además, cuando se modifique el atributo (o la barra de fichas) en el juego, oirá un eventochange:attribute
(y específico de la propiedad, por ejemplochange:attribute:current
), seguido de un eventochange:graphic
(ychange:graphic:bar1_value
). Puedes elegir responder a cualquiera de los eventos, pero los valores de la barra subyacente aún no se actualizarán cuando se active el evento del atributo, ya que se activa primero.
Notas importantes sobre los marcadores de estado
A partir del 6 de agosto de 2013, la forma en que se manejan los marcadores de estado en las fichas ha cambiado. La propiedad "statusmarkers" del objeto Gráfico ahora es una lista separada por comas de todos los colores/íconos de los marcadores de estado que deberían estar activos en la ficha. El formato es el siguiente:
//Separado por comas (usa join para crear o split para convertir en una matriz).
//Si un ícono/color de estado va seguido de un símbolo "@", el número después de
//@ se mostrará como insignia en el ícono
statusmarkers = "rojo,azul,calavera,muerto,marrón@2,verde@6"
Aunque puede acceder directamente a la propiedadstatusmarkers
, para mantener la compatibilidad con los scripts existentes y proporcionar una forma sencilla de trabajar con los marcadores de estado sin necesidad de escribir código para manejar la división y el análisis sintáctico de 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 marca de estado tiene una propiedad "estado_<markername>". Por ejemplo:
obj.get("estado_rojo"); //Devolverá falso si la marca no está activa, verdadero si lo está y una cadena (por ejemplo, "2" o "5") si actualmente hay un distintivo configurado en la marca
obj.get('estado_marcadorazul'); //Sigue siendo compatible con la retrocompatibilidad y es equivalente a hacer obj.get("estado_azul");
obj.set("estado_rojo", falso); //eliminaría la marca
obj.set("estado_calavera", "2"); //configuraría un distintivo de "2" en el icono de calavera y lo agregaría al token si aún no está activo.
Tenga en cuenta que estas propiedades virtuales no tienen eventos, por lo que debe utilizarchange:graphic:statusmarkers
para escuchar los cambios en los marcadores de estado de una ficha, y por ejemplochange:graphic:status_red
NO es un evento válido y nunca se disparará.
La lista completa de marcas de estado disponibles (en el mismo orden en que aparecen en la bandeja de marcas):
"rojo", "azul", "verde", "marrón", "morado", "rosa", "amarillo", "muerto", "calavera", "adormilado", "media corazón", "media neblina", "prohibición", "caracol", "rayo brillante", "llave de tuercas", "corazón encadenado", "rayo químico", "zona de la muerte", "bebe esto", "grieta en el filo", "máscara de ninja", "cronómetro", "red de pesca", "sobremarcha", "fuerte", "puño", "candado", "tres hojas", "ala esponjosa", "golpeado", "pisada", "con flechas", "aura", "dolor de espalda", "bandera negra", "ojo sangrante", "escudo con rayo", "corazón roto", "telaraña", "escudo roto", "bandera voladora", "radiactivo", "trofeo", "cráneo roto", "orbe congelado", "bomba rodante", "torre blanca", "atraco", "gritando", "granada", "torreta de vigilancia", "todo para uno", "traje de ángel", "blanco de tiro con arco"
Página
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | Un ID único para este objeto. Único a nivel mundial entre todos los objetos de este juego. Sólo lectura. | |
_type | "pagina" | Se puede usar para identificar el tipo de objeto o buscar el objeto. Sólo lectura. |
_zorder | "" | Lista separada por comas de IDs que especifican el orden de los objetos en la página. toFront ytoBack (y sus elementos de menú contextual asociados) pueden reordenar esta lista. Read-only. |
name | "" | Título de la página. |
showgrid | verdadero | Mostrar la rejilla en el mapa. |
showdarkness | false | Mostrar la niebla de guerra en el mapa. |
showlighting | false | Usar iluminación dinámica. |
width | 25 | Ancho en unidades. |
height | 25 | Altura en unidades. |
snapping_increment | 1 | Size of a grid space in units. |
grid_opacity | 0.5 | Opacity of the grid lines. |
fog_opacity | 0.35 | Opacity of the fog of war for the GM. |
background_color | "#FFFFFF" | Hexadecimal color of the map background. |
gridcolor | "#C0C0C0" | Color hexadecimal de las líneas de la cuadrícula. |
tipo_rejilla | "cuadrado" | Una de "cuadrado", "hex" o "hexr". (hex corresponde a Hex(V), y hexr corresponde a Hex(H)) |
número_escala | 5 | La distancia de una unidad. |
unidades_escala | "ft" | El tipo de unidades a usar para la escala. |
gridlabels | false | Mostrar etiquetas de rejilla para rejilla hexagonal. |
diagonaltype | "foure" | Uno de "foure", "pitagórico" (Euclideano), "threefive", o "manhattan". |
archived | falso | Si la página ha sido archivada. |
luzactualizada | falso | Solo actualizar la Iluminación Dinámica cuando un objeto es soltado. |
iluminarmostrarlosobstaculos | falso | Establece la línea de visión para los objetos. |
lightrestrictmove | falso | No permitas que los objetos que tienen visión se muevan a través de paredes de Iluminación Dinámica. |
lightglobalillum | falso | Si es verdadero, se asume que hay luz brillante en cualquier lugar donde un token puede "ver". |
jukeboxtrigger | Controla la reproducción de la página al cargarse. Las opciones incluyen 'nonestopall' o el id-de-la-pista | |
dynamic_lighting_enabled | falso | |
daylight_mode_enabled | falso | |
daylightModeOpacity | 1 | |
explorer_mode | "off" | Options: "off", "basic" |
darknessEffect | "none" | Options: "none", "darkfog", "lightfog" |
Campaña
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | "root" | Un ID único para este objeto. Único en todo el juego. Sólo lectura. |
_type | "campaign" | Se puede utilizar para identificar el tipo de objeto o buscar el objeto — sin embargo, ten en cuenta que solo hay un objeto de campaña, y se puede acceder a través deCampaign() . Solo lectura. |
turnorder | "" | Una cadena JSON del orden de turno. Ver abajo. |
initiativepage | falso | ID de la página utilizada para el seguimiento cuando la ventana del orden de turno está abierta. Cuando se establece en false , se cierra la ventana de orden de turno. |
playerpageid | falso | ID de la página en la que se encuentra el marcador del reproductor. Los jugadores ven esta página por defecto, a menos que sea anulada por las páginas específicas de los jugadores que aparecen a continuación. |
páginas específicas para cada jugador | falso | Un objeto (NO UNA CADENA JSON) con el formato: {"player1_id": "page_id", "player2_id": "page_id" ... } Cualquier jugador asignado a una página en este objeto anulará el playerpageid. |
_carpeta de viaje | "" | Una cadena JSON que contiene datos sobre la estructura de carpetas del juego. Solo lectura. |
_carpetajukebox | "" | Una cadena JSON que contiene datos sobre la estructura de la lista de reproducción del juego. Solo lectura. |
Orden de turno
El orden de turno es una cadena JSON que representa la lista de órdenes de turno actuales. Es un conjunto 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úrate de mantenerlos sincronizados o podrías obtener resultados extraños.
Para trabajar con el orden de turno, debes usarJSON.parse()
para obtener un objeto que represente el estado actual del orden de turno (NOTA: Asegúrate de que no sea una cadena vacía""
primero... si lo es, inicialízalo tú mismo con un conjunto vacío). Aquí tienes un ejemplo de objeto de orden de turno:
[
{
"id":"36CA8D77-CF43-48D1-8682-FA2F5DFD495F", //El ID del objeto gráfico. Si esto está configurado, la lista de orden de turno tomará automáticamente el nombre e icono de la lista basándose en el gráfico del juego de mesa.
"pr":"0", //El valor actual del elemento en la lista. Puede ser un número o texto.
"custom":"" //Título personalizado para el elemento. Será ignorado si el ID se establece a un valor diferente de "-1".
},
{
"id":"-1", //Para elementos personalizados, el ID DEBE establecerse en "-1" (tenga en cuenta que esto es una CADENA, no un NÚMERO.
"pr":"12",
"custom":"Test Custom" //El nombre a mostrar para los elementos personalizados.
}
]
Para modificar el orden de turno, edita el objeto del orden de turno actual y luego usaJSON.stringify()
para cambiar el atributo en la Campaña. Ten en cuenta que el orden para el orden de turno en la lista es el mismo que el orden del arreglo, así que por ejemplopush()
agrega un elemento al final de la lista,unshift()
agrega al principio, etc.
var turnorder;
if(Campaign().get("turnorder") == "") turnorder = []; //NOTA: Verificamos que turnorder no sea simplemente una cadena vacía primero. Si lo es, trátalo como un arreglo vacío.
else turnorder = JSON.parse(Campaign().get("turnorder"));
//Agregar una nueva entrada personalizada al final del orden de turno.
turnorder.push({
id: "-1",
pr: "15",
custom: "Contador de Turnos"
});
Campaign().set("turnorder", JSON.stringify(turnorder));
Jugador
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | Un ID único para este objeto. Único en todo el juego para todos los objetos. Sólo lectura. | |
_type | "jugador" | Se puede usar para identificar el tipo de objeto o buscar el objeto. Sólo lectura. |
_d20userid | ID de usuario - en todo el sitio. Por ejemplo, la página de usuario del jugador en la wiki es /Usuario:ID, donde ID es el mismo valor almacenado en _d20userid. Sólo lectura. | |
_displayname | "" | El nombre de visualización actual del jugador. Puede ser cambiado desde la página de configuración del usuario. Sólo lectura. |
_online | falso | Sólo lectura. |
_lastpage | "" | El id de la última página que el jugador vio como GM. Esta propiedad no se actualiza para los jugadores o GMs que se han unido como jugadores. Sólo lectura. |
_macrobar | "" | Cadena delimitada por comas de las macros en la barra de macros del jugador. Sólo lectura. |
hablandoComo | "" | [El ID del jugador o personaje] de quien el jugador ha seleccionado en el menú desplegable "Como". Cuando se establece como una cadena vacía, el jugador está hablando como él o ella misma. Cuando se establece como un personaje, el valor es "personaje|ID", donde ID es el ID del personaje. Cuando el GM está hablando 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 medidas en el mapa, sus círculos de ping, etc. |
mostrarbarrademacr | falso | Si se muestra la barra de macros del jugador. |
Macro
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | Una identificación única para este objeto. Único a nivel mundial entre todos los objetos de este juego. Sólo lectura. | |
_type | "macro" | Se puede usar para identificar el tipo de objeto o buscar el objeto. Sólo lectura. |
_playerid | La ID del jugador que creó este macro. Sólo lectura. | |
nombre | "" | El nombre de la macro. |
acción | "" | El texto de la macro. |
visiblepara | "" | Lista delimitada por comas de ID de jugadores que pueden ver la macro además del jugador que la creó.
Todos los Jugadores se representa teniendo 'all' en la lista. |
istokenaction | falso | ¿Es esta macro una acción de token que debería aparecer cuando se seleccionan tokens? |
Tabla Lanzable
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | Un ID único para este objeto. Único en todo el juego. Sólo lectura. | |
Tipo | "rollabletable" | Puede ser utilizado para identificar el tipo de objeto o buscar el objeto. Sólo lectura. |
nombre | "nueva-tabla" | |
showplayers | verdadero |
Tabla Artículo
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | Un ID único para este objeto. Globalmente único en todos los objetos de este juego. Solo lectura. | |
_type | "tableitem" | Puede utilizarse para identificar el tipo de objeto o para buscarlo. Solo lectura. |
_identificadordemestradorolável | "" | ID da tabela a qual este item pertence. Solo lectura. |
avatar | "" | URL de uma imagem usada para o item da tabela. Veja a nota sobre restrições de avatar e imgsrc abaixo. |
nome | "" | |
peso | 1 | Peso do item da tabela em comparação com os outros itens na mesma tabela. Simplemente dicho, un elemento con peso 3 tiene tres veces más probabilidades de ser seleccionado al tirar en la tabla que un elemento con peso 1. |
Personaje
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | Un ID único para este objeto. Único a nivel global entre todos los objetos en este juego. Solo lectura. | |
_type | "character" | Puede ser utilizado para identificar el tipo de objeto o buscar el objeto. Solo lectura. |
img Avatar | "" | URL a una imagen utilizada para el personaje. Ver la nota sobre las restricciones de avatar e imgsrc a continuación. |
nombre | "" | |
bio | "" | Biografía del personaje. Ver la nota a continuación sobre cómo acceder a los campos Notas, Notas del GM y bio. |
notasgm | "" | Notas sobre el personaje solo visibles para el GM. Ver la nota a continuación sobre cómo acceder a los campos Notas, Notas del GM y bio. |
archivado | falso | |
enjournaljugadores | "" | Lista separada por comas de los ID de jugador que pueden ver este personaje. Usar "all" para dar a todos los jugadores la capacidad de ver.
Todos los Jugadores se representa teniendo 'all' en la lista. |
controladopor | "" | Lista separada por comas de los ID de jugador que pueden controlar y editar este personaje. Usar "all" para dar a todos los jugadores la capacidad de editar.
Todos los jugadoresestán representados al tener 'todos' en la lista. |
_defaulttoken | "" | Una cadena JSON que contiene los datos para el token predeterminado del personaje si está configurado. Ten en cuenta que esto es un "bloque" similar a "bio" y "notas", por lo que debes pasar una función de retorno a get(). Solo lectura. |
Característica
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | Un ID único para este objeto. Único a nivel global entre todos los objetos de este juego. Sólo lectura. | |
_type | "atributo" | Se puede utilizar para identificar el tipo de objeto o buscar el objeto. Sólo lectura. |
_ID de personaje | "" | ID del personaje al que pertenece este atributo. Sólo lectura. Obligatorio al utilizarcreateObj . |
nombre | "Sin título" | |
actual | "" | El valor actual del atributo se puede acceder en el chat y en las macros con la sintaxis@{Character Name|Attribute Name} o en las habilidades con la sintaxis@{Attribute Name} . |
máx | "" | El valor máximo del atributo se puede acceder en el chat y en las macros con la sintaxis@{Character Name|Attribute Name|max} o en las habilidades con la sintaxis@{Attribute Name|max} . |
Importante: Consulta la nota a continuación sobre cómo funcionan las hojas de personaje para obtener información sobre cómo los valores predeterminados afectan el uso de los atributos.
Característica
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | Un ID único para este objeto. Único en todo el juego. Sólo lectura. | |
Tipo | "característica" | Se puede usar para identificar el tipo de objeto o buscar el objeto. Sólo lectura. |
_characterid | "" | El personaje al que pertenece esta característica. Solo lectura. Obligatorio al usarcreateObj . |
nombre | "Habilidad_sin_título" | |
descripción | "" | La descripción no aparece en la interfaz de la hoja de personaje. |
acción | "" | El texto de la habilidad. |
istokenaction | falso | ¿Esta habilidad es una acción de ficha que debería aparecer cuando se seleccionan fichas vinculadas a su personaje padre? |
Nota
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | Un ID único para este objeto. Globalmente único en todos los objetos de este juego. Solo lectura. | |
_type | "folleto" | Puede utilizarse para identificar el tipo de objeto o para buscarlo. Solo lectura. |
avatar | "" | URL de una imagen utilizada para el folleto. Vea la nota sobre las restricciones de avatar e imgsrc más abajo. |
nombre | «Nota Misteriosa» | |
notasq | "" | Contiene el texto en el folleto. Consulta la nota a continuación sobre cómo usar Notas y Notas del GM. |
notasgm | "" | Contiene el texto en el folleto que solo el GM ve. Consulta la nota a continuación sobre cómo usar Notas y Notas del GM. |
enjugadoresjuego | "" | Lista separada por comas de la ID de los jugadores que pueden ver este folleto. Usa "todo" para mostrar a todos los jugadores.
Todos los jugadoresestán representados al tener 'todos' en la lista. |
archivado | falso | |
controlledby | "" | Lista de IDs de jugadores delimitada por comas que pueden controlar y editar esta nota.
All Players is represented by having 'all' in the list. |
Nota:La API no tiene acceso a la jerarquía de carpetas. Las notas creadas por la API se colocarán en el nivel raíz.
Mazos
Ten en cuenta que hay métodos auxiliares de la API para "robar", "repartir" o "mezclar" cartas del Mazo. Verpublicación del foro de actualización de API de marzo de 2018.
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | "" | id del mazo |
Tipo | "mazo" | |
nombre | "" | nombre del mazo |
_currentDeck | "" | una lista separada por comas de cartas que actualmente están en el mazo (incluyendo aquellas que se han jugado en la mesa/manos). Cambios cuando el mazo se baraja. |
_currentIndex | -1 | el índice actual de nuestro lugar en la baraja, '¿qué carta se sacará a continuación?' |
_currentCardShown | verdadero | mostrar la carta actual en la parte superior de la baraja |
mostrarjugadores | verdadero | mostrar la baraja a los jugadores |
losjugadorespuedencoger | verdadero | ¿pueden los jugadores robar cartas? |
avatar | "" | el "dorso" de las cartas de esta baraja |
se muestra | false | mostrar el mazo en el tablero de juego (¿está visible el mazo actualmente?) |
players_seenumcards | verdadero | ¿pueden los jugadores ver el número de cartas en las manos de otros jugadores? |
jugadores_seefrontofcards | falso | ¿los jugadores pueden ver las caras de las cartas al mirar en las manos de otros jugadores? |
gm_ver_cartasjuego | verdadero | ¿el GM puede ver la cantidad de cartas en la mano de cada jugador? |
gm_ver_carasdecartas | false | ¿el GM puede ver las caras de las cartas al mirar en la mano de cada jugador? |
cartasinfin | falso | ¿hay un número 'infinito' de cartas en esta baraja? |
_cardSequencer | -1 | usado internamente para avanzar la baraja cuando se sacan cartas. |
cartasjugadas | "caraarriba" | ¿cómo se juegan las cartas de esta baraja en la mesa de juego? 'caraarriba' o 'carabajo'. |
alturapordefecto | "" | ¿cuál es la altura por defecto para las cartas jugadas en la mesa de juego? |
defaultwidth | "" | |
discardpilemode | "none" | qué tipo de montón de descarte tiene esta baraja? 'none' = sin montón de descarte, 'choosebacks' = permitir a los jugadores ver las cartas de espaldas y elegir una, 'choosefronts' = ver las caras y elegir, 'drawtop' = tomar la carta descartada más reciente, 'drawbottom' = tomar la carta descartada más antigua. |
_discardPile | "" | cuál es el montón de descarte actual para esta baraja? lista de cartas separadas por comas. Estas son cartas que han sido sacadas del juego y no se volverán a poner en la baraja en una mezcla hasta que se realice un recuerdo. |
Carta
Property | Default Value | Notes |
---|---|---|
nombre | "" | Nombre de la tarjeta |
avatar | "" | Anverso de la tarjeta |
card_back | "" | Override card back image |
_deckid | "" | ID de la cubierta |
_type | "tarjeta" | |
_id | "" |
Mano
Tenga en cuenta que cada jugador sólo debe tener UNA mano.
Propiedad | Valor predeterminado | Notas |
---|---|---|
manos actuales | "" | lista de cartas separadas por comas que se encuentran actualmente en la mano Ten en cuenta que esto ya no es solo lectura Idealmente, solo debería ajustarse con las funciones del mazo de cartas |
_type | "mano" | |
_parentid | "" | ID del jugador al que pertenece la mano |
_id | "" | |
vista actual | "porbaraja" | cuando el jugador abre la mano, ¿es la vista 'por mazo' o 'por carta'? |
Tema del Jukebox
Propiedad | Valor predeterminado | Notas |
---|---|---|
_id | Un ID único para este objeto. Globalmente único en todos los objetos de este juego. Solo lectura. | |
_tipo | "jukeboxtrack" | Se puede usar para identificar el tipo de objeto o buscar el objeto. Read-only. |
jugando | false | Boolean used to determine whether or not the track is playing. Setting this to "true" and softstop to "false" plays a track. |
softstop | false | Boolean used to determine whether or not a non-looped track has finished at least once. This must be set to "false" to ensure that a track will play. |
title | "" | The visible label for the track in the jukebox tab. |
volume | 30 | El nivel de volumen de la pista. Ten en cuenta que esto debe establecerse como un número entero (no una cadena), o podrías romper la funcionalidad. Valores de 0 a 100 (porcentaje). |
bucle | false | ¿La pista debe repetirse en bucle? Establecer como verdadero si es así. |
Modificación Personalizada
Property | Default Value | Notes |
---|---|---|
_id | A unique ID for this object. Único a nivel global entre todos los objetos de este juego. Read-only. | |
_type | "custfx" | Puede usarse para identificar el tipo de objeto o buscar el objeto. Read-only. |
nombre | "" | El nombre visible de la FX en la lista de FX. |
definición | {} | Objeto Javascript que describe la FX. |
Restricciones de las propiedades imgsrc y avatar
Si bien ahora puedes editar las propiedades imgsrc
y avatar
, para brindar seguridad a todos los usuarios de Roll20, hemos establecido las siguientes restricciones para estas propiedades:
- Debes usar un archivo de imagen que haya sido cargado en tu biblioteca de Roll20 - no un sitio externo (como Imgur), y no el Mercado Roll20. Comenzará con 'https://s3.amazonaws.com/files.d20.io/images/' para las imágenes cargadas en el servidor principal, o 'https://s3.amazonaws.com/files.staging.d20.io/images/' para las imágenes cargadas en el servidor de desarrollo. Puedes ver la URL de origen de una imagen utilizando las herramientas de desarrollo de tu navegador.
- Debes incluir la cadena de consulta en la URL, por ejemplo 'https://s3.amazonaws.com/files.staging.d20.io/images/123456/med.png?12345678', no solo 'https://s3.amazonaws.com/files.staging.d20.io/images/123456/med.png'
- Para objetos gráficos (tokens), debes usar el tamaño "thumb" de la imagen. Debe verse como 'https://s3.amazonaws.com/files.staging.d20.io/images/123456/thumb.png?12345678'.
En el futuro puede que agreguemos una herramienta para que las imágenes se puedan subir específicamente para usar con scripts de Mod (API), pero por ahora simplemente utiliza imágenes subidas a tu propia biblioteca. Ten en cuenta que si eliminas una imagen de tu biblioteca, será eliminada de todos los Juegos que utilicen esa imagen, incluidos los Juegos que utilicen tus scripts de Mod (API).
Usar los campos Notas, Notas del DJ y Biografía Asincrónicos
Para acceder a los campos "notes", "gmnotes" o "bio" en los Personajes y Tablas de mano, debes pasar una función de devolución de llamada como segundo argumento a la función get(). Aquí tienes un ejemplo:
var character = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
character.get("bio", function(bio) {
log(bio); //haz algo con la biografía del personaje aquí.
});
Puedes establecer el valor de estos campos de forma normal. Ten en cuenta que actualmente (a partir del 2016/05/09) hay un error con estos campos asincrónicos, mediante el cual establecerlos mediante la asignación de valores a createObj falla silenciosamente, dejando el objeto en un estado extraño. Debes establecer estos valores usando .set hasta que se resuelva este problema. Detalles en el foro. También hay un error (a partir de 2016/11/05) donde intentar establecer tanto las propiedades de notas y gmnotes en la misma llamada set() hace que la segunda propiedad en la llamada se establezca erróneamente. Detalles en el foro.
Trabajando con Hojas de Personaje
La función de Hojas de Personaje afecta el uso del tipo de objeto Atributos, ya que las hojas tienen la capacidad de especificar un valor predeterminado para cada atributo en la hoja. Sin embargo, si el atributo se establece en el valor predeterminado, aún no se ha creado un objeto de Atributo real en el juego para ese Personaje. Proporcionamos una función de conveniencia que oculta esta complejidad de ti. Deberías usar esta función para obtener el valor de un atributo en adelante, especialmente si sabes que un juego está utilizando una Hoja de Personaje.
getAttrByName(character_id, attribute_name, value_type)
Simplemente especifica el ID del personaje, el nombre (no ID) del atributo (por ejemplo, "HP" o "Str"), y luego si deseas el valor "actual" o "máximo" para el tipo de valor. Aquí tienes 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)]]"
Ten en cuenta que los campos que tienen valores auto-calculados devolverán la fórmula en lugar del resultado del valor. Luego puedes pasar esa fórmula a sendChat() para usar el motor de dados y calcular el resultado automáticamente.
Asegúrate de también consultar laGuía de la Hoja de Personajepara obtener más información sobre cómo interactúan las Hojas de Personaje con la API.
getAttrByName
sóloobtendrá el valor del atributo, no el objeto atributo en sí. Si deseas hacer referencia a propiedades del atributo que no sean "actual" o "máximo", o si deseas cambiar propiedades del atributo, debes usar una de las otras funciones mencionadas anteriormente, como findObjs
.
En el caso de que el atributo solicitado no exista,getAttrByName()
devolveráundefined
.
Creando Objetos
createObj(type, attributes)
Nota: actualmente puedes crear objetos 'gráfico', 'texto', 'ruta', 'personaje', 'habilidad', 'atributo', 'apunte', 'tabla lanzable', 'elemento de tabla', y 'macro'.
Puedes crear un nuevo objeto en el juego usando la funcióncreateObj
. Debes especificar el tipo del objeto (uno de las propiedades_type
válidas de la lista de objetos de arriba), así como también un objetoattributes
que contiene una lista de propiedades para el objeto. Tenga en cuenta que si el objeto tiene un objeto padre (por ejemplo, los atributos y las habilidades pertenecen a los personajes, los gráficos, los textos y los trazados pertenecen a las páginas, etc.), debe pasar el ID del padre en la lista de propiedades (por ejemplo, debe incluir la propiedadcharacterid
al crear un atributo). También ten en cuenta que incluso al crear nuevos objetos, no puedes establecer propiedades de solo lectura, estas se establecerán automáticamente en su valor predeterminado. La única excepción a esto es al crear un Camino, debes incluir la propiedad 'path', pero no se puede modificar una vez que el camino se haya creado inicialmente.
createObj
devolverá el nuevo objeto, para que puedas seguir 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: "Fuerza",
current: 0,
max: 30,
characterid: obj.id
});
});
Eliminar Objetos
object.remove()
Nota: actualmente puedes eliminar los objetos 'graphic', 'text', 'path', 'character', 'ability', 'attribute', 'handout', 'rollabletable', 'tableitem' y 'macro'.
Puedes eliminar objetos de juego existentes usando la función .remove()
. La función .remove() funciona en todos los objetos que puedes crear con la función createObj. Llamas a la función directamente en el objeto. Por ejemplo,mycharacter.remove();
.
Objetos Globales
Hay varios objetos que están disponibles globalmente en cualquier parte de tu script.
Campaign() (función)
Una función que devuelve el objetoCampaign
. Dado que solo hay una campaña, este global siempre apunta a la única campaña en el juego. Útil para hacer cosas como verificar si un objeto está en la página activa usandoCampaign().get("playerpageid")
.
estado
La variablestate
es un objeto de ámbito global al que pueden acceder todos los scripts que se ejecuten en un juego. Puede acceder al objetostate
desde cualquier función o llamada de retorno en cualquier momento con sólo utilizar la variable global denominadastate
. Además, elestado
se persiste entre ejecuciones delSandbox, por lo que puedes usarlo para almacenar información que deseas tener en ejecuciones futuras de tu script.
Nota:Debería utilizar el objeto de estado para almacenar información que sólo necesite la API, ya que no se envía a los ordenadores de los jugadores y no aumenta el tamaño de su archivo de juego. Almacene los valores necesarios en el juego en las propiedades de los objetos Roll20.
Tipos almacenables
El objeto de estadosólo es capaz de persistir tipos de datos simples, tal y como admite el estándarJSON.
Tipo | Ejemplos | Descripción |
---|---|---|
Booleano |
verdadero falso
|
El valorverdadero ofalso . |
Número |
123.5 10 1.23e20
|
Cualquier formato de número soportado por Javascript. Punto flotante o entero. |
Cadena |
'Hola Fantasía' "oh, y Mundo"
|
Una cadena estándar de texto. |
Arreglo |
[ 1, 2, 3, 4 ] [ 'A','B','C'] [1, 2, ['bob', 3], 10, 2.5]
|
Una colección ordenada de cualquiera de los tipos, incluidos otros arrays. |
Objeto | { key: 1, value: 'roll20' } |
Un objeto simple de clave/valor 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 inicialmente, desaparecerán la primera vez que el estadose restaure desde la persistencia, como en un reinicio de la caja de arena.
-
Nota: Esto incluye objetos Roll20 que obtienes de eventos o las funciones
encontrarObjs()
,obtenerObj()
,filtrarObjs()
,crearObj()
, etc.
Recordatorios importantes
El objetostate
se comparte entre todos los scripts de una caja de arena. Para evitar romper otros scripts, es importante seguir algunas pautas simples:
-
Nuncaasignar directamente a la raíz
estado
objeto.
estado = { break: 'all the things' }; // ¡¡¡NUNCA HAGAS ESTO!!!
-
Eviteutilizando variables locales denominadas
state
en sus scripts. Si bien esto funcionará, será confuso para los usuarios posteriores de tus scripts y podría causar problemas si se edita descuidadamente el código.
function turn(){
var state = Campaign().get('turnorder'); // Mala práctica, evítala!
// ...
}
-
Siempre coloca tus propiedades debajo de al menos una propiedad de espacio de nombres. Asegúrate de usar una propiedad de espacio de nombres lo suficientemente descriptiva. Evita nombres como
script
oajustes
. Es mejor usar el nombre de tu módulo o tu propio nombre o identificador.
if( ! state.MyModuleNamespace ) {
state.MyModuleNamespace = { module: 'mi módulo', bien: '¡esto está bien!', cuenta: 0 };
}
state.MyModuleNamespace.cuenta++;
Ejemplo de uso
Este es un ejemplo de trabajo que utiliza elestado
del objeto correctamente.
on('ready',function() {
"use strict";
// Verifica si la propiedad con namespace existe, creándola si no existe
if( ! state.MyModuleNS ) {
state.MyModuleNS = {
versión: 1.0,
configuración: {
color1: '#ff0000',
color2: '#0000ff'
},
conteo: 0
};
}
// Utilizando las propiedades del estado para configurar un mensaje en el chat.
sendChat(
'Test Module',
'<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>'
);
});
Encontrar/Filtrar Objetos
La API proporciona varias funciones auxiliares que se pueden usar para encontrar objetos.
getObj(tipo, id)
Esta función obtiene un solo objeto si se pasa el _tipo del objeto y el _id. Es mejor usar esta función en lugar de las otras funciones de búsqueda siempre que sea posible, 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(attrs)
Pasa esta función una lista de atributos y devolverá todos los objetos que coincidan como un array. Ten en cuenta que esto opera en todos los objetos de todos los tipos en todas las páginas, así que probablemente quieras incluir al menos un filtro para _type y _pageid si estás trabajando con objetos de juego de mesa.
var currentPageGraphics = findObjs({
_pageid: Campaign().get("playerpageid"),
_type: "graphic",
});
_.each(currentPageGraphics, function(obj) {
//Hacer algo con obj, que está en la página actual y es un gráfico.
});
También puedes pasar un segundo argumento opcional que contenga un objeto con una lista de opciones, incluyendo:
- caseInsensitive(verdadero/falso): Si es verdadero, las propiedades de cadena se compararán sin tener en cuenta la mayúsculas y minúsculas de la cadena
var targetTokens = findObjs({
name: "target"
}, {caseInsensitive: true});
//Devuelve todos los tokens con un nombre de '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 el array de resultados. Actualmente, no se recomienda utilizar filterObjs() para la mayoría de los casos, debido a que findObjs() tiene un índice incorporado para mejorar la velocidad de ejecución, es casi siempre mejor usar findObjs() para obtener objetos del tipo deseado primero, y luego filtrarlos utilizando el método .filter() nativo para arrays.
var results = filterObjs(function(obj) {
if(obj.get("left") < 200 && obj.get("top") < 200) return true;
else return false;
});
//Results es un array de todos los objetos que están en la esquina superior izquierda del tablero.
getAllObjs()
Devuelve una matriz de todos los objetos en el Juego (todos los tipos). Equivalente a llamar a filterObjs y simplemente devolver verdadero
para cada objeto.
getAttrByName(character_id, attribute_name, value_type)
Obtiene el valor de un atributo, utilizando el valor predeterminado de la hoja de personaje si el atributo no está presente. value_type
es un parámetro opcional, que puedes usar para especificar "actual" o "máx".
getAttrByName
sóloobtendrá el valor del atributo, no el objeto atributo en sí. Si deseas hacer referencia a propiedades del atributo que no sean "actual" o "máx", o si deseas cambiar propiedades del atributo, debes usar una de las otras funciones anteriores, como findObjs
.
Para secciones repetidas, puedes usar el formatorepeating_section_$n_attribute
, donden
es el número de fila repetida (comenzando desde cero). Por ejemplo,repeating_spells_$2_name
retornará el valor dename
de la tercera fila derepeating_spells
.
Puedes lograr el comportamiento equivalente agetAttrByName
con el siguiente:
// current and max are completely dependent on the attribute and game system
// in question; there is no function available for determining them automatically
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');
}
}