obj.get("property") zugreifen und neue Werte mit obj.set("property", neuerWert) oder obj.set({property: neuerWert, property2: neuerWert2}) festlegen.Hinweis: Die Eigenschaft id eines Objekts ist eine weltweit eindeutige ID: Keine zwei Objekte sollten dieselbe ID haben, selbst über verschiedene Objekttypen hinweg nicht. Da außerdem häufig auf die ID eines Objekts zugegriffen wird und sich diese nie ändert, gibt es eine Abkürzung, mit der du darauf zugreifen kannst, indem du obj.id anstelle von obj.get("_id") verwendest, wenn du möchtest (beide funktionieren).
Pathv2 (auf der neuesten VTT-Engine verfügbar)
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _id |
Eine eindeutige ID für dieses Objekt. Global einzigartig für alle |
|
| _Typ | "pathv2" | Kann verwendet werden, um den Objekttyp zu identifizieren oder nach dem Objekt zu suchen. Schreibgeschützt. |
| _pageid | ID der Seite, auf der sich das Objekt befindet. Schreibgeschützt. | |
| Form | "" | "pol", "free", "eli" oder "rec" Legt fest, ob der Pfad als Polylinie, Freihand, Ellipse oder Rechteck angezeigt wird. |
| Punkte | Ein JSON-String mit einem Array von x,y-Punkten, die zum Erstellen des Pfades verwendet werden. | |
| füllen | "transparent" | Füllfarbe. Verwende die Zeichenfolge "transparent" oder eine Hex-Farbe als Zeichenfolge, zum Beispiel "#000000". |
| Strich | „#000000“ | Strichfarbe. |
| Drehung | 0 | Drehung (in Grad). |
| Ebene | "" | Aktuelle Ebene, entweder „gmlayer“, „objects“, „map“, „walls“ oder „foreground“. Die Wandebene wird für dynamische Beleuchtung verwendet und Pfade auf der Wandebene blockieren das Licht. |
| Strichbreite | 5 | |
| Y | 0 | Y-Koordinate für die Mitte des Pfades |
| X | 0 | X-Koordinate für den Mittelpunkt des Pfades |
| kontrolliert von | "" |
Durch Kommas getrennte Liste der Spieler-IDs, die den Pfad steuern können. Kontrollierende Spieler können den Pfad löschen. Wenn der Pfad von einem Spieler erstellt wurde, wird dieser Spieler automatisch in die Liste aufgenommen. Alle Spielerwird dadurch dargestellt, dass „alle“ in der Liste vorhanden ist. |
| BarrierType | "Wand" |
Zu den Optionen für dynamische Lichtbarrieren gehören „Wand“, „Einweg“ und „Transparent“. |
| oneWayReversed | false |
Boolescher Wert |
| fadeOnOverlap | WAHR | Wenn auf „true“ gesetzt, führt die Überlappung der inneren Begrenzung einer Grafik auf der Objektebene mit dem Objekt auf der Vordergrundebene dazu, dass ihre Deckkraft den Wert von fadeOpacity annimmt. Wenn auf „false“ gesetzt, bleibt das Objekt unabhängig von Überlappungen vollständig deckend. |
| fadeOpacity | 0.3 | Dieser Wert bestimmt, wie durchsichtig das Objekt ist, wenn es von einer Grafik auf der Objektebene überlagert wird und fadeOnOverlap auf „true“ gesetzt ist. |
| renderAsScenery | "false" | Wenn auf „true“ gesetzt, wird dieses Objekt durch die Dynamische Beleuchtung und die Maske ein-/ausblenden verdeckt. |
Die Eigenschaft Form hat die folgenden Werte:
- "pol" - Polylinie. Zwischen jedem aufeinanderfolgenden Punkt wird eine gerade Linie gezogen. Wenn der Anfangs- und der Endpunkt gleich sind, entsteht eine geschlossene Form.
- "frei" - Freihand. Es wird eine Kurve gezeichnet, wobei die Punkte als Hilfslinien dienen. Wenn der Anfangs- und der Endpunkt gleich sind, entsteht eine geschlossene Form.
- "eli" - Ellipse. Eine Ellipse wird mit Hilfe der Punkte gezeichnet, um einen Begrenzungsrahmen festzulegen. Nur die ersten beiden Punkte werden verwendet.
- "rec" - Rechteck. Ein Rechteck wird mit Hilfe der Punkte gezeichnet, um einen Begrenzungsrahmen festzulegen. Nur die ersten beiden Punkte werden verwendet.
Die Eigenschaft points ist ein JSON-String, der ein Array von Punkten enthält. Die Punkte werden als ein Array mit zwei Positionen dargestellt, das eine x- und eine y-Position enthält. Ein Dreieck von (0,0) zu (0,70) zu (70,0) und zurück zu (0,0) würde wie folgt dargestellt werden "[[0,0],[0,70],[70,0],[0,0]]".
Die Eigenschaften x und y positionieren das PathV2-Objekt auf der Seite. Sie geben an, wo die Mitte der Zeichnung sein soll. Für einige Formen (Ellipsen und Rechtecke) ist das ziemlich einfach herauszufinden. Für komplexere Formen (Polylinien und Freiflächen) musst du die Minimal- und Maximalwerte über die Punkteigenschaft ermitteln und den Punkt verwenden, der sich in gleicher Entfernung dazwischen befindet.
Pfad (Klassischer Spieltisch)
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _id |
Eine eindeutige ID für dieses Objekt. Global einzigartig für alle |
|
| _Typ | "pfad" | Kann verwendet werden, um den Objekttyp zu identifizieren oder nach dem Objekt zu suchen. Schreibgeschützt. |
| _pageid | ID der Seite, auf der sich das Objekt befindet. Schreibgeschützt. | |
| _path | Eine JSON-Zeichenfolge, die die Zeilen im Pfad beschreibt. Schreibgeschützt, außer beim Erstellen eines neuen Pfads. Weitere Informationen finden Sie im Abschnitt über Pfade. | |
| füllen | "transparent" | Füllfarbe. Verwende die Zeichenfolge "transparent" oder eine Hex-Farbe als Zeichenfolge, zum Beispiel "#000000". |
| Strich | "#000000" | Strichfarbe. |
| Drehung | 0 | Drehung (in Grad). |
| Ebene | "" | Aktuelle Ebene, entweder „gmlayer“, „objects“, „map“, „walls“ oder „foreground“. Die Wandebene wird für Dynamische Beleuchtung verwendet, und Pfade auf der Wandebene blockieren das Licht. |
| Strichbreite | 5 | |
| Breite | 0 | |
| Höhe | 0 | |
| Oben | 0 | Y-Koordinate für den Mittelpunkt des Pfades |
| Links | 0 | X-Koordinate für den Mittelpunkt des Pfades |
| ScaleX | 1 | |
| SkalaY | 1 | |
| kontrolliert von | "" |
Komma-getrennte Liste der Spieler-IDs, die den Pfad kontrollieren können. Kontrollierende Spieler/innen können den Pfad löschen. Wenn der Pfad von einem Spieler/einer Spielerin erstellt wurde, wird dieser/diese automatisch in die Liste aufgenommen. Alle Spielerwird dadurch dargestellt, dass „alle“ in der Liste vorhanden ist. |
| barrierType | "Wand" |
Zu den Optionen für dynamische Lichtbarrieren gehören „Wand“, „Einweg“ und „Transparent“. |
| oneWayReversed | false |
Boolescher Wert |
| fadeOnOverlap | WAHR | Wenn auf „true“ gesetzt, führt die Überlappung der inneren Begrenzung einer Grafik auf der Objektebene mit dem Objekt auf der Vordergrundebene dazu, dass ihre Deckkraft den Wert von fadeOpacity annimmt. Wenn auf „false“ gesetzt, bleibt das Objekt unabhängig von Überlappungen vollständig deckend. |
| fadeOpacity | 0.3 | Dieser Wert bestimmt, wie durchsichtig das Objekt ist, wenn es von einer Grafik auf der Objektebene überlagert wird und fadeOnOverlap auf „true“ gesetzt ist. |
| renderAsScenery | "false" | Wenn auf „true“ gesetzt, wird dieses Objekt durch die Dynamische Beleuchtung und die Maske ein-/ausblenden verdeckt. |
Weitere Informationen zum Format von_path-Daten finden Sie im Abschnitt zu Pfaden.
Fenster
Hinweis: Fenster und Tür verwenden im Vergleich zu anderen Objekttypen eine invertierte Achse. Zum Beispiel: Eine Variable für oben, die bei einem anderen Objekt den Wert 100 hätte, ist bei einem Fenster oder einer Tür y -100.
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. | |
| _Typ | "fenster" | Schreibgeschützt. |
| Farbe | Eine hexadezimale Farbe des Pfads. | |
| X | 0 | Koordinatenmittelpunkt der Tür auf der x-Achse. |
| y | 0 | Koordinatenmittelpunkt der Tür auf der Y-Achse. |
| ist offen | false | Bestimmt, ob sich ein Spieler durch dieses Fenster bewegen kann. |
| ist gesperrt | false | Verhindert, dass Spieler mit dem Fenster interagieren können. |
| Pfad | Dargestellt als zwei Handles (handle0 und handle1) mit jeweils x- und y-Koordinaten. |
Beispiel
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();
}
});
Tür
Hinweis: Fenster und Tür verwenden im Vergleich zu anderen Objekttypen eine umgekehrte Achse. Zum Beispiel wäre eine obere Variable, die bei einem anderen Objekt 100 beträgt, bei Fenster oder Tür y -100.
|
Eigenschaft |
Standardwert |
Anmerkungen |
|
_ID |
Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. |
|
|
_Typ |
"Tür" |
Schreibgeschützt. |
|
Farbe |
Eine hexadezimale Farbe des Pfades. |
|
|
x |
0 |
Koordinatenmittelpunkt der Tür auf der x-Achse. |
|
y |
0 |
Koordinatenmittelpunkt der Tür auf der y-Achse. |
|
isOpen |
false |
Bestimmt, ob sich ein Spieler durch diese Tür bewegen kann. |
|
isLocked |
false |
Verhindert, dass Spieler mit der Tür interagieren können. |
|
isSecret |
FALSCH |
Entfernt ein Türsymbol aus der Spieleransicht und fungiert als Barriere. |
|
Pfad |
Dargestellt als zwei Handles (handle0 und handle1) mit jeweils x- und y-Koordinaten. |
Text
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. | |
| _Typ | "Text" | Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt. |
| _pageid | ID der Seite, auf der sich das Objekt befindet. Schreibgeschützt. | |
| oben | 0 | |
| Links | 0 | |
| Breite | 0 | |
| Höhe | 0 | |
| Text | "" | |
| Schriftgröße | 16 | Um optimale Ergebnisse zu erzielen, halte dich an die voreingestellten Größen im Bearbeitungsmenü: 8, 10, 12, 14, 16, 18, 20, 22, 26, 32, 40, 56, 72, 100, 200, 300. |
| Drehung | 0 | |
| Farbe | "rgb(0, 0, 0)" | |
| Strich | "transparent" | |
| Schriftfamilie | "Arial" | Wenn dies nicht festgelegt ist, wird die Schriftgröße bei einer späteren Änderung des Werts der Eigenschaft "text" auf 8 verkleinert. Mögliche Werte (Groß-/Kleinschreibung spielt keine Rolle): "Arial", "Patrick Hand", "Contrail One", "Shadows Into Light" und "Candal". Wenn du einen ungültigen Namen angibst, wird eine unbenannte Serifenschrift mit fester Zeichenbreite verwendet. |
| Ebene | "" | Aktuelle Ebene, entweder „gmlayer“, „objects“, „map“, „walls“ oder „foreground“. Die Wandebene wird für Dynamische Beleuchtung verwendet, und Pfade auf der Wandebene blockieren das Licht. |
| kontrolliert von | "" | Durch Kommas getrennte Liste der Spieler-IDs, die den Text steuern können. Kontrollierende Spieler dürfen den Text löschen. Wenn der Text von einem Spieler erstellt wurde, wird dieser Spieler automatisch in die Liste aufgenommen.
Alle Spieler wird dadurch dargestellt, dass „alle“ in der Liste enthalten ist. |
| fadeOnOverlap | WAHR | Wenn auf „true“ gesetzt, führt die Überlappung der inneren Begrenzung einer Grafik auf der Objektebene mit dem Objekt auf der Vordergrundebene dazu, dass ihre Deckkraft den Wert von fadeOpacity annimmt. Wenn auf „false“ gesetzt, bleibt das Objekt unabhängig von Überlappungen vollständig deckend. |
| fadeOpacity | 0.3 | Dieser Wert bestimmt, wie durchsichtig das Objekt ist, wenn es von einer Grafik auf der Objektebene überlagert wird und fadeOnOverlap auf „true“ gesetzt ist. |
| renderAsScenery | "false" | Wenn auf „true“ gesetzt, wird dieses Objekt durch die Dynamische Beleuchtung und die Maske ein-/ausblenden verdeckt. |
Grafik (Spielmarker/Karte/Karte etc.)
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. | |
| _Typ | "Grafik" | Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt. |
| _subtyp | "Token" | Kann „Token“ (für Spielmarker und Karten) oder „Karte“ (für Karten) sein. Schreibgeschützt. |
| _kartenid | Wenn die Grafik eine Karte ist, auf eine ID setzen. Schreibgeschützt. | |
| _pageid | ID der Seite, auf der sich das Objekt befindet. Schreibgeschützt. | |
| imgsrc | Die URL des Bildes der Grafik Siehe den Hinweis zu imgsrc- und Avatar-Einschränkungen unten. | |
| bar1_link | Auf eine ID setzen, wenn Bar 1 mit einem Charakter verknüpft ist. | |
| bar2_link | ||
| bar3_link | ||
| repräsentiert | ID des Charakters, den dieses Spielmarker darstellt. | |
| Links | 0 | Anzahl der Pixel vom linken Rand der Karte bis zur Mitte der Grafik. |
| Oben | 0 | Anzahl der Pixel vom oberen Rand der Karte bis zur Mitte der Grafik. |
| Breite | 0 | Breite der Grafik in Pixel. |
| Höhe | 0 | Höhe der Grafik in Pixel. |
| Rotation | 0 | Die Ausrichtung des Spielmarkers in Grad. |
| Ebene | "" |
Aktuelle Ebene, entweder „gmlayer“, „objects“, „map“, „walls“ oder „foreground“. Die Wandebene wird für Dynamische Beleuchtung verwendet, und Pfade auf der Wandebene blockieren das Licht. |
| istzeichnen | "false" | Diese Eigenschaft kann über das Kontextmenü „Erweitert“ geändert werden. |
| disableSnapping | FALSCH | Deaktiviere das Einrasten der Grafik am Raster. |
| disableTokenMenu | FALSCH | Deaktiviere die grafischen Spielmarker-Menüeinstellungen (Spielmarker-Blasen und Radialmenü). |
| flipv | FALSCH | Vertikal spiegeln. |
| fliph | FALSCH | Horizontal spiegeln. |
| Name | "" | Der Name des Spielmarkers. |
| gmnotes | "" | Notizen auf dem Spielmarker sind nur für den SL sichtbar. |
| kontrolliert von | "" | Durch Kommas getrennte Liste der Spieler-IDs, die die Grafik steuern können. Kontrollierende Spieler können die Grafik löschen. Wenn die Grafik von einem Spieler erstellt wurde, wird dieser Spieler automatisch in die Liste aufgenommen.
Alle Spieler wird dadurch dargestellt, dass „alle“ in der Liste enthalten ist. |
| bar1_value | "" | Aktueller Wert von Leiste 1. Dies kann eine Zahl oder ein Text sein. |
| bar2_value | "" | |
| bar3_value | "" | |
| bar1_max | "" | Maximalwert von Leiste 1. Wenn sowohl _value als auch _max festgelegt sind, wird möglicherweise eine Leiste über dem Spielmarker angezeigt, die den Prozentsatz von Leiste 1 anzeigt. |
| bar2_max | "" | |
| bar3_max | "" | |
| aura1_radius | "" | Radius der Aura, in den Seiteneinstellungen festgelegten Einheiten nutzend. Kann eine Ganzzahl oder eine Gleitkommazahl sein. Auf die leere Zeichenfolge setzen, um die Aura zu löschen. |
| aura2_radius | "" | |
| aura1_color | „#FFFF99“ | Eine hexadezimale Farbe oder die der Aura. |
| aura2_color | „#59E594“ | |
| aura1_square | FALSCH | Ist die Aura ein Kreis oder ein Quadrat? |
| aura2_square | FALSCH | |
| tint_color | "transparent" | Hexadezimale Farbe oder „transparent“. Tönt die Farbe der Grafik. |
| Statusmarker | "" | Eine durch Kommas getrennte Liste der derzeit aktiven Statusmarker. Weitere Informationen findest du in den folgenden Hinweisen. |
| token_markers | "" | Ein stringifiziertes JSON-Array, das ein Objekt für jeden aktuell im Spiel befindlichen Spielmarker enthält. Ein Beispiel findest du unten. |
| Name anzeigen | FALSCH | Ob das Namensschild des Spielmarkers angezeigt wird. |
| showplayers_name | "false" | Zeigen Sie allen Spielern das Namensschild. |
| showplayers_bar1 | FALSCH | Zeige allen Spielern Leiste 1. |
| showplayers_bar2 | FALSCH | |
| showplayers_bar3 | FALSCH | |
| showplayers_aura1 | FALSCH | Zeige Aura 1 allen Spielern. |
| showplayers_aura2 | FALSCH | |
| Spieleredit_name | WAHR | Ermögliche kontrollierenden Spielern das Bearbeiten des Namens des Spielmarkers. Zeigt den kontrollierenden Spielern auch das Namensschild, selbst wenn showplayers_name falsch ist. |
| Spieleredit_bar1 | WAHR | Ermögliche kontrollierenden Spielern das Bearbeiten der Leiste 1 des Spielmarkers. Zeigt den kontrollierenden Spielern auch Leiste 1, selbst wenn showplayers_bar1 falsch ist. |
| Spieleredit_bar2 | WAHR | |
| Spieleredit_bar3 | WAHR | |
| Spieleredit_aura1 | WAHR | Ermögliche kontrollierenden Spielern das Bearbeiten von Aura 1 des Spielmarkers. Zeigt den kontrollierenden Spielern auch Aura 1, selbst wenn showplayers_aura1 falsch ist. |
| Spieleredit_aura2 | WAHR | |
| licht_radius | "" | Dynamischer Radius der Beleuchtung. |
| light_dimradius | "" | Beginn des Dämmerlichtradius. Wenn ‚light_dimradius‘ die leere Zeichenfolge ist, sendet der Spielmarker helles Licht bis zur Entfernung ‚light_radius‘ aus. Wenn ‚light_dimradius‘ einen Wert hat, sendet der Spielmarker helles Licht bis zum Wert ‚light_dimradius‘ aus und Dämmerlicht von dort bis zum Wert ‚light_radius‘. |
| light_otherplayers | FALSCH | Zeige allen Spielern das Licht des Spielmarkers. |
| light_hassight | FALSCH | Das Licht hat ‚Sicht‘, um Spieler im Rahmen der Einstellung ‚Sichtlinie erzwingen‘ zu steuern. |
| light_angle | „360“ | Winkel (in Grad) des Lichts. „180“ bedeutet beispielsweise, dass das Licht nur für die vordere „Hälfte“ des „Sichtfelds“ angezeigt wird. |
| light_losangle | „360“ | Winkel (in Grad) des Sichtfelds der Grafik (vorausgesetzt, dass light_hassight auf wahr gesetzt ist). |
| letzter Zug | "" | Der letzte Zug des Spielmarkers. Es handelt sich um eine durch Kommas getrennte Liste von Koordinaten. ‚300,400‘ würde beispielsweise bedeuten, dass der Spielmarker seine letzte Bewegung bei „left=300, top=400" begonnen hat. Es wird immer davon ausgegangen, dass die aktuellen oberen + linken Werte des Spielmarkers den ‚Endpunkt‘ des letzten Zuges darstellen. Wegpunkte werden durch mehrere Koordinatensätze angezeigt. Beispielsweise würde ‚300,400,350,450,400,500‘ bedeuten, dass der Spielmarker bei „left=300, top=400" begann, dann einen Wegpunkt bei „left=350, top=450" und einen weiteren Wegpunkt bei „left=400, top=500" setzte und dann die Bewegung an seinen aktuellen oberen + linken Koordinaten beendete. |
| light_multiplier | "1" | Multiplikator für die Wirksamkeit von Lichtquellen. Ein Multiplikator von zwei würde es dem Spielmarker ermöglichen, bei gleicher Lichtquelle doppelt so weit zu sehen wie ein Spielmarker mit einem Multiplikator von eins. |
| adv_fow_view_distance | "" | Der Radius um einen Spielmarker, in dem Erweiterter Kriegsnebel aufgedeckt wird. |
| light_sensitivity_multiplier | 100 | Multiplikator für die Wirksamkeit von Lichtquellen. Ein Multiplikator von 200 würde es dem Spielstein ermöglichen, bei gleicher Lichtquelle doppelt so weit zu sehen wie ein Spielstein mit einem Multiplikator von 100. |
|
nachtsicht_effekt |
Ändert den Nachtsichteffekt. Weitere Optionen sind „Dimmen“ und „Nachtaktiv“. | |
| bar_location | Passt die Position der Spielmarker-Leisten an. Optionen sind Überschneidungen-Top, Überschneidungen-Bottom, Bottom. | |
|
compact_bar |
Passt an, ob die Leiste kompakt ist oder nicht. Eine andere Option ist kompakt. | |
| bewegung_sperren | FALSCH | Eine Option zum Fixieren einer Grafik. Wert ist entweder wahr oder falsch. |
| fadeOnOverlap | WAHR | Wenn auf „true“ gesetzt, führt die Überlappung der inneren Begrenzung einer Grafik auf der Objektebene mit dem Objekt auf der Vordergrundebene dazu, dass ihre Deckkraft den Wert von fadeOpacity annimmt. Wenn auf „false“ gesetzt, bleibt das Objekt unabhängig von Überlappungen bei seiner eingestellten baseOpacity. |
| fadeOpacity | .3 | Dieser Wert bestimmt, wie durchsichtig das Objekt ist, wenn es von einer Grafik auf der Objektebene überlagert wird und fadeOnOverlap auf „true“ gesetzt ist. |
| renderAsScenery | "false" | Wenn auf „true“ gesetzt, wird dieses Objekt durch die Dynamische Beleuchtung und die Maske ein-/ausblenden verdeckt. |
| baseOpacity | 1.0 | Dieser Wert bestimmt die anfängliche Deckkraft von Grafiken. Sie ist auf jeder Ebene aktiv, nicht nur auf der Vordergrundebene. |
Beispiel für Spielmarker
{
"id":59, // die Datenbank-ID für
„name“: „Bane“, // der Name (nicht eindeutig) des Markers
‚stichwort‘: ‚Bane::59‘, // wie der Spielmarker tatsächlich referenziert wird.
// dies wird die ID für benutzerdefinierte Markierungen beinhalten, jedoch
// nicht für Standardmarkierungen.
„url“: „https://s3.amazonaws.com/files.d20.io/images/59/yFnKXmhLTtbMtaq-Did1Yg/icon.png?1575153187“
// ^die URL für das Bild des Spielmarkers
}
Wichtige Hinweise zu verknüpften Charakteren + Spielmarkern
Beachte, dass bei Spielmarkern, die mit Charakteren verknüpft sind, das Feld gesteuertVon für Zeichenfiguren das Feld gesteuertVon auf dem Spielmarker überschreibt.
Für Spielmarker-Leisten, die mit einem Attribut verknüpft sind, wird das Setzen eines Wertes am Spielmarker-Wert automatisch die zugrunde liegenden Attributwerte aktualisieren, sodass es nicht manuell gemacht werden muss.
Darüber hinaus werden Sie bei einer Änderung des Attributs (oder der Spielmarker-Leiste) im Spiel ein Änderung:Attribut (und eigenschaftsspezifisches Änderung:Attribut:Aktuell) Event hören, gefolgt von einem Änderung:Grafik (und Änderung:Grafik:bar1_Wert) Ereignis. Es kann auf jedes Ereignis reagiert werden, die zugrunde liegenden Werte werden jedoch beim ersten Attributfeuer nicht aktualisiert.
Wichtige Hinweise zu Status-Stichwörtern
Seit dem 6. August 2013 hat sich der Umgang mit Statusmarkierungen auf Spielmarkern geändert. Die Eigenschaft ‚statusmarkers‘ des Grafikobjekts ist jetzt eine durch Kommas getrennte Liste all der Farben und Symbole der Status-Stichwörter, die aktiv sein sollen. Das Format ist wie folgt:
//Komma getrennt (Verwenden von Verbinden um zu erstellen oder Trennen zur Wandlung in ein Array).
//Wenn auf ein Statussymbol/eine Statusfarbe ein „@“-Symbol folgt, wird die Zahl nach
//„@“ als Abzeichen auf dem Symbol angezeigt
Statusmarker = „rot,blau,schädel,tot,braun@“ 2,grün@6"
Sie können zwar direkt auf die Eigenschaftstatusmarkerszugreifen, um die Abwärtskompatibilität mit vorhandenen Skripten aufrechtzuerhalten und eine einfache Möglichkeit zu bieten, mit den Statusmarkierungen zu arbeiten, ohne Code schreiben zu müssen, um die Zeichenfolge selbst aufzuteilen und zu analysieren. Wir bieten jedoch eine Satz „virtueller“ Eigenschaften für das Objekt, die Sie festlegen/mit den Statusmarkierungen verwenden können. Jeder Statusmarker verfügt über die Eigenschaft „status_<markername>“. Zum Beispiel:
obj.get("status_red"); // Gibt „falsch“ zurück, wenn die Markierung nicht aktiv ist, „wahr“, wenn sie aktiv ist, und eine Zeichenfolge (z. B. „2“ oder „5“), wenn aktuell ein Abzeichen auf der Markierung gesetzt ist
obj.get('status_bluemarker'); // Wird aus Gründen der Abwärtskompatibilität weiterhin unterstützt und entspricht der Ausführung von obj.get("status_blue");
obj.set("status_red", false); // würde die Markierung entfernen
obj.set("status_skull", "2"); // würde ein Abzeichen von „2“ auf das Totenkopfsymbol setzen und es dem Spielmarker hinzufügen, wenn es nicht bereits aktiv ist.
Beachte, dass diese virtuellen Eigenschaften keine Ereignisse haben. Daher musst du change:graphic:statusmarkers verwenden, um auf Änderungen an den Statusmarkierungen eines Spielmarkers zu lauschen, und beispielsweise change:graphic:status_red ist KEIN gültiges Ereignis und wird niemals ausgelöst.
Die vollständige Liste der verfügbaren Statusmarkierungen (in der gleichen Reihenfolge, in der sie in der Markierungsleiste erscheinen):
„rot“, „blau“, „grün“, „braun“, „lila“, „rosa“, „gelb“, „tot“, „Schädel“, „schläfrig“, „halbherz“, „halbdunst“, „interdiction“, „Schnecke“, „Blitzspirale“, „Schlüssel“, „verkettetes Herz“, „chemischer Pfeil“, „Todeszone“, „trinkmich“, „Randriss“, „Ninja-Maske“, „Stoppuhr“, „Fischernetz“, „Overdrive“, „stark“, „Faust“, „Vorhängeschloss“, „Dreiblatt“, „flauschiger Flügel“, „verprügelt“, „betreten“, „gepfeilt“, „Aura“, „Rückenschmerzen“, „schwarze Flagge“, „blutendes Auge“, „Pfeilschild“, „gebrochenes Herz“, „Spinnennetz“, „zerbrochenes Schild“, „fliegende Flagge“, „radioaktiv“, „Trophäe“, „gebrochener Schädel“, „gefrorene Kugel“, „rollende Bombe“, „weißer Turm“, „zugreifen“, „schreiend“, „Granate“, „Wachgeschütz“, „Alle für einen“, „Engelskostüm“, „Zielscheibe“
Seite
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. | |
| _Typ | "Seite" | Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt. |
| _zorder | „“ | Durch Kommas getrennte Liste von IDs, die die Reihenfolge der Objekte auf der Seite angeben. toFront und toBack (und ihre zugehörigen Kontextmenüelemente) können diese Liste neu anordnen. Schreibgeschützt. |
| Name | „“ | Titel der Seite. |
| Raster anzeigen | WAHR | Zeige das Raster auf der Karte an. |
| Dunkelheit zeigen | FALSCH | Nebel des Krieges auf der Karte zeigen. |
| Showbeleuchtung | FALSCH | Verwende dynamische Beleuchtung. |
| Breite | 25 | Breite in Einheiten. |
| Höhe | 25 | Höhe in Einheiten. |
| snapping_increment | 1 | Größe eines Rasterraums in Einheiten. |
| grid_opacity | 0.5 | Deckkraft der Gitterlinien. |
| fog_opacity | 0.35 | Undurchsichtigkeit des Nebels des Krieges für den GM. |
| Hintergrundfarbe | „#FFFFFF“ | Hexadezimale Farbe des Kartenhintergrunds. |
| Gitterfarbe | „#C0C0C0“ | Hexadezimale Farbe der Gitterlinien. |
| Gittertyp | "square" | Eines von „square“, „hex“ oder „hexr“. (hex entspricht Hex(V) und hexr entspricht Hex(H)) |
| Maßstabsnummer | 5 | Der Abstand einer Einheit. |
| Scale_Units | „ft“ | Der für die Skala zu verwendende Einheitentyp. |
| Rasterbeschriftungen | FALSCH | Gitterbeschriftungen für sechseckiges Gitter anzeigen. |
| Diagonaltyp | „vier“ | Eines von „foure“, „pythagorean“ (euklidisch), „dreifünf“ oder „manhattan“. |
| archiviert | FALSCH | Ob die Seite im Archivspeicher abgelegt wurde. |
| lightupdatedrop | FALSCH | Aktualisiere die Dynamische Beleuchtung nur, wenn du ein Objekt ablegst. |
| lightenforcelos | FALSCH | Erzwinge die Sichtlinie für Objekte. |
| lightrestrictmove | FALSCH | Erlaube nicht, dass sichtbare Objekte durch Wände der Dynamischen Beleuchtung bewegt werden. |
| Lichtglobalillum | FALSCH | Wenn "true" überall dort ist, wo ein Spielmarker "sehen" kann, wird davon ausgegangen, dass helles Licht vorhanden ist. |
| Jukeboxtrigger | Steuert die Seite Automatische Wiedergabe beim Laden. Zu den Optionen gehören ‚nonestopall‘ oder die ID des Tracks | |
| dynamic_lighting_enabled | FALSCH | |
| daylight_mode_enabled | FALSCH | |
| daylightModeOpacity | 1 | |
| explorer_mode | "Aus" | Optionen: "aus", "einfach" |
| darknessEffect | "keinen" | Optionen: "keinen", "darkfog", "lightfog" |
Kampagne
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | "Wurzel" | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. |
| _Typ | "campaign" | Kann verwendet werden, um den Objekttyp zu identifizieren oder nach dem Objekt zu suchen — beachte jedoch, dass es nur ein Campaign-Objekt gibt und auf dieses über Campaign() zugegriffen werden kann. Schreibgeschützt. |
| Zugreihenfolge | "" | Eine JSON-Zeichenfolge der Zugreihenfolge. Siehe unten. |
| Initiative-Seite | FALSCH | ID der Seite, die für den Tracker verwendet wird, wenn das Zugreihenfolgefenster geöffnet ist. Wenn false eingestellt ist, wird das Zugreihenfolgefenster geschlossen. |
| Spielerseiten-ID | FALSCH | ID der Seite, auf die das Spieler-Lesezeichen gesetzt ist. Spielern wird diese Seite standardmäßig angezeigt, es sei denn, sie wird durch spielerspezifische Seiten unten überschrieben. |
| playerspecificpages | FALSCH | Ein Objekt (KEIN JSON-STRING) im Format: {"player1_id": "page_id", "player2_id": "page_id" ... }. Jeder Spieler, der in diesem Objekt auf eine Seite festgelegt ist, überschreibt die Spieler-Seiten-ID. |
| _journalfolder | "" | Eine JSON-Zeichenfolge, die Daten über die Ordnerstruktur des Spiels enthält. Schreibgeschützt. |
| _jukeboxfolder | "" | Eine JSON-Zeichenfolge, die Daten über die Jukebox-Playlist-Struktur des Spiels enthält. Schreibgeschützt. |
| foregroundLayerVisible | WAHR | Wenn auf „true“ gesetzt, sehen Spieler Objekte auf der Vordergrundebene. Wenn auf „false“ gesetzt, sehen Spieler keine Objekte auf der Vordergrundebene. Hinweis: Das ist eine globale Einstellung, die alle Seiten betrifft. |
Zugreihenfolge
Die Zugreihenfolge ist eine JSON-Zeichenfolge, die die aktuelle Zugreihenfolgeliste darstellt. Es handelt sich um ein Array von Objekten. Derzeit kann die Zugreihenfolge jeweils nur Objekte von einer Seite enthalten – die aktuelle Seiten-ID für die Zugreihenfolge ist das Attribut „initiativepage“. Stelle sicher, dass du beide synchron hältst, da es sonst zu seltsamen Ergebnissen kommen kann.
Um mit der Zugreihenfolge zu arbeiten, solltest du JSON.parse() verwenden, um ein Objekt zu erhalten, das den aktuellen Status der Zugreihenfolge darstellt (HINWEIS: Überprüfe zunächst, ob es sich nicht um eine leere Zeichenfolge "" handelt... falls, initialisiere es selbst mit einem leeren Array). Hier ist ein Beispiel für ein Zugreihenfolge-Objekt:
[
{
"id":"36CA8D77-CF43-48D1-8682-FA2F5DFD495F", //Die ID des Grafikelements. Wenn dies eingestellt ist, zieht die Zugreihenfolgeliste automatisch den Namen und das Symbol für die Liste basierend auf der Grafik auf dem Spieltisch ein.
„pr“: „0“, //Der aktuelle Wert für das Element in der Liste. Kann eine Zahl oder Text sein.
"custom":"" // Benutzerdefinierter Titel für den Gegenstand. Wird ignoriert, wenn die ID auf einen anderen Wert als „-1“ gesetzt ist.
},
{
„id“: „-1“, // Für benutzerdefinierte Elemente MUSS die ID auf „-1“ gesetzt werden (beachten Sie, dass dies ein STRING und keine ZAHL ist).
„pr“: „12“,
„custom“: „Test Custom“ // Der Name, der für benutzerdefinierte Elemente angezeigt werden soll.
}
]
Um die Zugreihenfolge zu ändern, bearbeite das aktuelle Zugreihenfolge-Objekt und verwende dann JSON.stringify(), um das Attribut in der Kampagne zu ändern. Achte darauf, dass die Ordnung für die Zugreihenfolge in der Liste mit der Ordnung des Arrays übereinstimmt. Zum Beispiel fügt push() ein Element am Ende der Liste hinzu, unshift() fügt am Anfang hinzu, etc.
var zugreihenfolge;
if(Campaign().get("turnorder") == "") zugreihenfolge = []; // HINWEIS: Wir prüfen zunächst, ob die Zugreihenfolge nicht nur eine leere Zeichenfolge ist. Wenn ja, behandeln Sie es wie ein leeres Array.
else zugreihenfolge = JSON.parse(Campaign().get("turnorder"));
// Füge einen neuen benutzerdefinierten Eintrag am Ende der Zugreihenfolge hinzu.
turnorder.push({
id: "-1",
pr: "15",
custom: "Turn Counter"
});
Campaign().set("turnorder", JSON.stringify(turnorder));
Spieler
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. | |
| _Typ | "spieler" | Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt. |
| _d20userid | Benutzer-ID – standortweit. Die Benutzerseite des Spielers im Wiki lautet beispielsweise /User:ID, wobei ID derselbe Wert ist, der in _d20userid gespeichert ist. Schreibgeschützt. | |
| _DisplayName | "" | Der aktuelle Anzeigename des Spielers. Kann auf der Einstellungsseite des Benutzers geändert werden. Schreibgeschützt. |
| _online | FALSCH | Schreibgeschützt. |
| _letzte Seite | "" | Die Seiten-ID der letzten Seite, die der Spieler als SL angesehen hat. Diese Eigenschaft wird für Spieler oder SL, die als Spieler beigetreten sind, nicht aktualisiert. Schreibgeschützt. |
| _Makroleiste | "" | Durch Kommas getrennte Zeichenfolge der Makros in der Makroleiste des Players. Schreibgeschützt. |
| SprechenAls | "" | Die Spieler- oder Charakter-ID des Spielers, den der Spieler aus dem Dropdown-Menü „Als“ ausgewählt hat. Wenn die leere Zeichenfolge eingestellt ist, spricht der Spieler als er selbst. Bei Festlegung auf ein Charakter lautet der Wert „Charakter|ID“, wobei „ID“ die ID des Charakters ist. Wenn der SL als ein anderer Spieler spricht, lautet der Wert „Spieler|ID“, wobei „ID“ die ID des Spielers ist. |
| Farbe | „#13B9F0“ | Die Farbe des Quadrats mit dem Namen des Spielers sowie die Farbe seiner Maße auf der Karte, seiner Ping-Kreise usw. |
| MakroleisteAnzeigen | FALSCH | Ob die Makroleiste des Spielers angezeigt wird. |
Makro
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. | |
| _Typ | "makro" | Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt. |
| _playerid | Die ID des Spielers, der dieses Makro erstellt hat. Schreibgeschützt. | |
| Name | "" | Der Name des Makros. |
| action | "" | Der Text des Makros. |
| sichtbar für | "" | Durch Kommas getrennte Liste der Spieler-IDs, die das Makro zusätzlich zum Spieler, der es erstellt hat, sehen dürfen.
Alle Spieler wird dadurch dargestellt, dass „alle“ in der Liste enthalten ist. |
| istokenaction | FALSCH | Ist dieses Makro eine Token-Aktion, die angezeigt werden soll, wenn Token ausgewählt werden? |
Wurf-Tabelle
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. | |
| _Typ | „Rolltisch“ | Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt. |
| Name | „Neue-Tabelle“ | |
| Showplayer | WAHR |
Tabellenelement
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. | |
| _Typ | „tableitem“ | Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt. |
| _rollabletableid | "" | ID der Tabelle, zu der dieses Element gehört. Schreibgeschützt. |
| avatar | "" | URL zu einem Bild, das für den Tabellengegenstand verwendet wird. Siehe den Hinweis zu Avatar- und imgsrc-Einschränkungen unten. |
| Name | "" | |
| Gewicht | 1 | Gewicht des Tabellengegenstands im Vergleich zu den anderen Gegenständen in derselben Tabelle. Einfach ausgedrückt ist die Wahrscheinlichkeit, dass ein Gegenstand mit dem Gewicht 3 beim Würfeln auf dem Tisch ausgewählt wird, dreimal höher als bei einem Gegenstand mit dem Gewicht 1. |
Charakter
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. | |
| _Typ | "charakter" | Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt. |
| avatar | "" | URL zu einem Bild, das für den Charakter verwendet wird. Siehe den Hinweis zu Avatar- und imgsrc-Einschränkungen unten. |
| Name | "" | |
| biografie | "" | Die Biografie des Charakters. Weitere Informationen zum Zugriff auf die Felder „Notizen“, „GMNotes“ und „Bio“ findest du im folgenden Hinweis. |
| gmnotes | "" | Notizen zum Charakter sind nur für den SL sichtbar. Weitere Informationen zum Zugriff auf die Felder „Notizen“, „GMNotes“ und „Bio“ findest du im folgenden Hinweis. |
| archiviert | FALSCH | |
| inplayerjournals | "" | Durch Kommas getrennte Liste der Spieler-IDs, die diesen Charakter sehen können. Verwende „alle“, um allen Spielern die Möglichkeit zu geben, die Ansicht anzuzeigen.
Alle Spieler wird dadurch dargestellt, dass „alle“ in der Liste enthalten ist. |
| kontrolliert von | "" | Durch Kommas getrennte Liste der Spieler-IDs, die diesen Charakter steuern und bearbeiten können. Verwende "alle", um allen Spielern die Möglichkeit zum Bearbeiten zu geben.
Alle Spieler wird dadurch dargestellt, dass „alle“ in der Liste vorhanden ist. |
| _defaulttoken | "" | Eine JSON-Zeichenfolge, die die Daten für den Standard-Spielmarker des Charakters enthält, sofern einer festgelegt ist. Beachte, dass dies ein „Blob“ ist, ähnlich wie „bio“ und „notes“, daher musst du eine Rückruffunktion an get() übergeben. Schreibgeschützt. |
Attribut
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. | |
| _Typ | "attribut" | Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt. |
| _characterid | "" | ID des Charakters, zu dem dieses Attribut gehört. Schreibgeschützt. Obligatorisch bei Verwendung von createObj. |
| Name | "Untitled" | |
| aktuell | "" | Auf den aktuellen Wert des Attributs kann im Chat und in Makros mit der Syntax @{Character Name|Attribute Name} oder in Fähigkeiten mit der Syntax @{Attribute Name} zugegriffen werden. |
| max. | "" | Auf den Maximalwert des Attributs kann im Chat und in Makros mit der Syntax @{Character Name|Attribute Name|max} oder in Fähigkeiten mit der Syntax @{Attribute Name|max} zugegriffen werden. |
Wichtig: Lies den Hinweis unten zum Arbeiten mit Charakterblättern, um zu erfahren, wie sich die Standardwerte von Charakterblättern auf die Verwendung von Attributen auswirken.
Fähigkeit
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. | |
| _Typ | "fähigkeit" | Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt. |
| _characterid | "" | Der Charakter, zu dem diese Fähigkeit gehört. Schreibgeschützt. Obligatorisch bei Verwendung von createObj. |
| Name | "Untitled_Ability" | |
| beschreibung | "" | Die Beschreibung erscheint nicht in der Charakterbogen-Oberfläche. |
| action | "" | Der Text der Fähigkeit. |
| istokenaction | FALSCH | Handelt es sich bei dieser Fähigkeit um eine Spielmarker-Aktion, die angezeigt werden sollte, wenn Spielmarker ausgewählt werden, die mit dem übergeordneten Charakter verknüpft sind? |
Notiz
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. | |
| _Typ | "notiz" | Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt. |
| avatar | "" | URL zu einem Bild, das für das Handout verwendet wird. Siehe den Hinweis zu Avatar- und imgsrc-Einschränkungen unten. |
| Name | "Mysterious Note" | |
| anmerkungen | "" | Enthält den Text in der Notiz. Weitere Informationen zur Verwendung von Notizen und SLNotizen findest du im folgenden Hinweis. |
| gmnotes | "" | Enthält den Text in der Notiz, den nur der SL sieht. Weitere Informationen zur Verwendung von Notizen und SLNotizen findest du im folgenden Hinweis. |
| inplayerjournals | "" | Durch Kommas getrennte Liste der Spieler-IDs, die diese Notiz sehen können. Verwende "alle", um die Anzeige allen Spielern anzuzeigen.
Alle Spieler wird dadurch dargestellt, dass "alle" in der Liste vorhanden ist. |
| archiviert | FALSCH | |
| kontrolliert von | "" | Durch Kommas getrennte Liste der Spieler-IDs, die diese Notiz kontrollieren und bearbeiten können.
Alle Spieler wird dadurch dargestellt, dass „alle“ in der Liste enthalten ist. |
Hinweis: Die API hat keinen Zugriff auf die Ordnerhierarchie. Von der API erstellte Handouts werden auf der Stammebene platziert.
Deck
Beachte, dass es Hilfs-API-Methoden zum "Ziehen", "Austeilen" oder "Mischen" von Karten aus dem Deck gibt. SieheAPI-Update-Forumsbeitrag vom März 2018.
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | "" | ID des Decks |
| _Typ | "kartenspiel" | |
| Name | "" | Name des Decks |
| _currentDeck | "" | eine durch Kommas getrennte Liste der Karten, die sich derzeit im Stapel befinden (einschließlich der Karten, die auf den Spieltisch/Hände gespielt wurden). Ändert sich, wenn der Stapel gemischt wird. |
| _currentIndex | -1 | der aktuelle Index unseres Platzes im Stapel, „Welche Karte wird als nächstes gezogen?“ |
| _currentCardShown | WAHR | Zeige die aktuelle Karte oben auf dem Spielstapel |
| Showplayer | WAHR | Zeige den Spielern den Spielstapel |
| spielerzugs | WAHR | Können Spieler Karten ziehen? |
| avatar | "" | die „Rückseite“ der Karten für dieses Deck |
| angezeigt | FALSCH | Zeig den Spielstapel auf dem Spielbrett (ist der Stapel derzeit sichtbar?) |
| player_seenumcards | WAHR | Können die Spieler sehen, wie viele Karten die anderen Spieler auf der Hand haben? |
| player_seefrontofcards | FALSCH | Können Spieler die Vorderseiten von Karten sehen, wenn sie in die Karten der anderen Spieler schauen? |
| gm_seenumcards | WAHR | Kann der GM die Anzahl der Karten in der Hand jedes Spielers sehen? |
| gm_seefrontofcards | FALSCH | Kann der GM die Vorderseiten der Karten sehen, wenn er in die Hand jedes Spielers schaut? |
| unendliche Karten | FALSCH | Gibt es eine „unendliche“ Anzahl an Karten in diesem Deck? |
| _cardSequencer | -1 | Wird intern verwendet, um den Stapel beim Kartenziehen voranzutreiben. |
| Karten gespielt | "Gesicht nach oben" | Wie werden Karten aus diesem Stapel auf die Tischplatte gespielt? „offen“ oder „verdeckt“. |
| Standardhöhe | "" | Was ist die Standardhöhe für Karten, die auf der Tischplatte gespielt werden? |
| Standardbreite | "" | |
| Discardpilemode | "keinen" | Welche Art von Ablagestapel hat dieses Deck? „none“ = kein Ablagestapel, „choosebacks“ = den Spielern erlauben, die Rückseiten der Karten zu sehen und eine auszuwählen, „choosefronts“ = die Vorderseiten sehen und auswählen, „drawtop“ = die zuletzt abgeworfene Karte ziehen, „drawbottom“ = die älteste ziehen abgelegte Karte. |
| _discardPile | "" | Was ist der aktuelle Ablagestapel für dieses Deck? Durch Kommas getrennte Liste von Karten. Diese Karten wurden aus dem Spiel entfernt und werden erst nach einem Rückruf wieder in den Stapel gelegt. |
Karte
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| Name | "" | Name der Karte |
| avatar | "" | Vorderseite der Karte |
| card_back | "" | Bild der Kartenrückseite überschreiben |
| _deckid | "" | ID des Decks |
| _Typ | "Karten" | |
| _ID | "" |
Hand
Beachte, dass jeder Spieler nur EINE Hand haben sollte.
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| currentHand | "" | Durch Kommas getrennte Liste der im Moment in deiner Hand befindlichen Karten. Beachte, dass dies nicht mehr schreibgeschützt ist. Idealerweise sollte es nur mit den Kartenspielfunktionen angepasst werden. |
| _Typ | "hand" | |
| _ElternID | "" | ID des Spielers, dem das Blatt gehört |
| _ID | "" | |
| aktuelle Ansicht | „bydeck“ | Wenn der Spieler das Blatt öffnet, ist die Ansicht „nach Deck“ oder „nach Karte“? |
Jukebox-Track
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _ID | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. | |
| _Typ | „Jukeboxtrack“ | Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt. |
| spielen | FALSCH | Boolescher Wert, der bestimmt, ob der Titel abgespielt wird oder nicht. Wenn Sie dies auf „true“ und Softstop auf „false“ setzen, wird ein Titel abgespielt. |
| Softstop | FALSCH | Boolescher Wert, der verwendet wird, um zu bestimmen, ob ein Track ohne Schleife mindestens einmal beendet wurde oder nicht. Dies muss auf „false“ gesetzt werden, um sicherzustellen, dass ein Titel abgespielt wird. |
| betreff | "" | Die sichtbare Bezeichnung für den Titel im Jukebox-Tab. |
| Lautstärke | 30 | Der Lautstärkepegel des Titels. Beachte, dass dies auf eine Ganzzahl (keine Zeichenfolge) festgelegt werden muss, oder du könntest die Funktionalität beeinträchtigen. Werte von 0-100 (Prozentsatz). |
| schleife | FALSCH | Soll der Track geloopt werden? Wenn ja, auf „true“ setzen. |
Benutzerdefinierte Effekte
| Eigenschaft | Standardwert | Anmerkungen |
|---|---|---|
| _id | Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt. | |
| _Typ | „custfx“ | Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt. |
| Name | "" | Der sichtbare Name für den FX im FX-Listing. |
| erläuterung | {} | Javascript-Objekt, das den FX beschreibt. |
imgsrc- und Avatar-Eigenschaftseinschränkungen
Auch wenn du die Eigenschaftenimgsrc und avatar jetzt bearbeiten kannst, haben wir zur Sicherheit aller Roll20-Benutzer die folgenden Einschränkungen für diese Eigenschaften eingeführt:
- Du musst eine Bilddatei verwenden, die in deine Roll20-Bibliothek hochgeladen wurde - keine externe Website (wie Imgur) und nicht den Roll20-Marktplatz. Es beginnt mit "https://s3.amazonaws.com/files.d20.io/images/" bei Bildern, die auf den Hauptserver hochgeladen wurden, oder "https://s3.amazonaws.com/files.staging.d20.io/images/" für Bilder auf dem Entwicklungsserver. Du kannst die Quell-URL eines Bildes mit den Entwicklertools deines Browsers anzeigen.
- Du musst die Abfragezeichenfolge in die URL einfügen – zum Beispiel "https://s3.amazonaws.com/files.staging.d20.io/images/123456/med.png?12345678", nicht nur "https://s3.amazonaws.com/files.staging.d20.io/images/123456/med.png"
- Für Grafikobjekte (Spielmarker) musst du die "Daumen"-Größe des Bildes verwenden. Es sollte wie folgt aussehen: "https://s3.amazonaws.com/files.staging.d20.io/images/123456/thumb.png?12345678".
In Zukunft könnten wir ein Werkzeug hinzufügen, damit Bilder speziell für die Verwendung mit Mod (API)-Skripten hochgeladen werden können, aber vorerst verwende einfach Bilder, die in deine eigene Bibliothek hochgeladen wurden. Beachte, dass wenn du ein Bild aus deiner Bibliothek löschst, es aus allen Spielen entfernt wird, die dieses Bild verwenden, einschließlich Spiele, die deine Mod (API) Skripte verwenden.
Verwendung der Felder "Notizen", "GMNotes" und "Bio" asynchron
Um auf die Felder "Notizen", "gmnotes" oder "bio" in Charakteren und Notizen zuzugreifen, musst du eine Rückruffunktion als zweites Argument an die get()-Funktion übergeben. Hier ist ein Beispiel:
var charakter = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
charakter.get("bio", function(bio) {
log(bio); // hier etwas mit der Charakterbiografie machen.
});
Du kannst den Wert dieser Felder wie gewohnt festlegen. Beachte, dass es derzeit (Stand 09.05.2016) einen Fehler bei diesen asynchronen Feldern gibt, durch den das Setzen dieser Felder durch das Übergeben von Werten an createObj stillschweigend fehlschlägt und das Objekt in einem seltsamen Zustand hinterlässt. Du solltest diese Werte nur mit .set festlegen, bis dieses Problem behoben ist. Details im Forum. Es gibt auch einen Fehler (Stand 05.11.2016), bei dem das Festlegen der Eigenschaften 'notes' und 'gmnotes' im selben set()-Aufruf dazu führt, dass die zweite Eigenschaft im Aufruf fälschlicherweise festgelegt wird. Details im Forum.
Arbeiten mit Charakterbögen
Die Funktion 'Charakterbögen' hat Einfluss auf die Verwendung des Objekttyps 'Attribut', weil die Bögen die Möglichkeit bieten, für jedes Attribut einen Standardwert anzugeben. Wenn das Attribut jedoch auf den Standardwert gesetzt ist, gibt es im Spiel noch kein tatsächliches Attribut-Objekt für diesen Charakter. Wir bieten eine einfache Funktion an, die diese Komplexität vor dir verbirgt. Du solltest diese Funktion verwenden, um den Wert eines Attributs künftig zu ermitteln, besonders wenn du weißt, dass im Spiel Charakterbögen verwendet werden.
getAttrByName(character_id, attribute_name, value_type)
Gib einfach die ID des Charakters, den Namen (nicht die ID) des Attributs (z. B. "HP" oder "Str") an und ob du den "current" oder "max" für den Werttyp möchtest. Hier ist ein Beispiel:
var Charakter = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
getAttrByName(character.id, "str"); // der aktuelle Wert von str, zum Beispiel „12“
getAttrByName(character.id, "str", "max"); //der Maximalwert von str, zum Beispiel „[[floor(@{STR}/2-5)]]“
Beachte, dass Felder mit automatisch berechneten Werten die Formel und nicht das Ergebnis des Werts zurückgeben. Du kannst diese Formel dann an sendChat() übergeben, um die Dice-Engine zur automatischen Berechnung des Ergebnisses für dich zu verwenden.
Schau dir unbedingt auch die Dokumentation zum Charakterbogen an, um weitere Informationen darüber zu erhalten, wie die Charakterbögen mit der API interagieren.
getAttrByName holt nur den Wert des Attributs, nicht das Attributobjekt selbst. Wenn du auf andere Eigenschaften des Attributs als „current“ oder „max“ verweisen oder Eigenschaften des Attributs ändern möchtest, musst du eine der anderen oben genannten Funktionen verwenden, z. B. findObjs.
Falls das angeforderte Attribut nicht existiert, gibt getAttrByName() undefined zurück.
Objekte erschaffen
createObj(Typ, Attribute)
Hinweis: Derzeit kannst du die Objekte „Grafik“, „Text“, „Pfad“, „Charakter“, „Fähigkeit“, „Attribut“, „Handout“, „Rollabletable“, „Tableitem“ und „Makro“ erschaffen.
Du kannst mit der Funktion createObj ein neues Objekt im Spiel erschaffen. Du musst den Typ des Objekts (eine der gültigen _type Eigenschaften aus der obigen Objektliste) sowie ein attribute-Objekt übergeben, das eine Liste von Eigenschaften für das Objekt enthält. Beachte, dass du die ID des übergeordneten Objekts in der Liste der Eigenschaften übergeben musst, wenn das Objekt ein übergeordnetes Objekt hat (z. B. Attribute und Fähigkeiten gehören zu Charakteren, Grafiken, Texte und Pfade gehören zu Seiten usw.). Beispielsweise musst du beim Erstellen eines Attributs die Eigenschaft characterid einbeziehen. Beachte, dass du beim Erstellen neuer Objekte keine schreibgeschützten Eigenschaften festlegen kannst, diese werden automatisch auf ihren Standardwert gesetzt. Die einzige Ausnahme hiervon besteht darin, dass du beim Erschaffen eines Pfads die Eigenschaft „Pfad“ einbeziehen musst, diese jedoch nicht mehr geändert werden kann, sobald der Pfad zum ersten Mal erschaffen wurde.
createObj gibt das neue Objekt zurück, sodass du damit weiterarbeiten kannst.
// Erschaffe ein neues Stärkeattribut für alle Charaktere, die dem Spiel hinzugefügt werden.
on("add:character", function(obj) {
createObj("attribute", {
name: "Strength",
current: 0,
max: 30,
characterid: obj.id
});
});
Objekte löschen
object.remove()
Hinweis: Derzeit können Sie die Objekte „Grafik“, „Text“, „Pfad“, „Charakter“, „Fähigkeit“, „Attribut“, „Handout“, „Rollabletable“, „Tableitem“ und „Makro“ löschen.
Du kannst mit der Funktion .remove() vorhandene Spielobjekte löschen. Die Funktion .remove() funktioniert bei allen Objekten, die du mit der Funktion createObj erschaffen kannst. Du rufst die Funktion direkt auf dem Objekt auf. Beispiel: mycharacter.remove();.
Globale Objekte
Es gibt mehrere Objekte, die überall in deinem Skript global verfügbar sind.
Campaign() (Funktion)
Eine Funktion, die das Campaign-Objekt zurückgibt. Da es nur eine Kampagne gibt, verweist dieses global immer auf die einzige Kampagne im Spiel. Nützlich, um beispielsweise mit Campaign().get("playerpageid") zu überprüfen, ob sich ein Objekt auf der aktiven Seite befindet.
state
Die Variable state ist ein Objekt im globalen Bereich, auf das alle in einem Spiel ausgeführten Skripte zugreifen können. Du kannst jederzeit von jeder Funktion oder jedem Callback aus auf das state-Objekt zugreifen, indem du einfach die globale Variable mit dem Namen state verwendest. Zusätzlich bleibt das state-Objekt zwischen den Ausführungen der Sandbox bestehen, sodass du es verwenden kannst, um Informationen zu speichern, die in zukünftigen Ausführungen deines Skripts verfügbar sein sollen.
Hinweis: Du solltest das state-Objekt verwenden, um Informationen zu speichern, die nur von der API benötigt werden, da diese nicht an Spieler-Computer gesendet werden und deine Spieldatei nicht größer machen. Speichere Werte, die im Spiel benötigt werden, in den Eigenschaften der Roll20-Objekte.
Speicherbare Typen
Das state-Objekt ist nur in der Lage, einfache Datentypen beizubehalten, wie sie vom JSON-Standard unterstützt werden.
| Rolle | Beispiele | Beschreibung |
|---|---|---|
| Boolescher Wert |
true false
|
Der Wert true oder false. |
| Nummer |
123.5 10 1.23e20
|
Jedes von Javascript unterstützte Zahlenformat. Gleitkomma oder Ganzzahl. |
| Zeichenfolge |
'Hello Fantasy' "oh, and World"
|
Eine Standardtextzeichenfolge. |
| Array |
[ 1, 2, 3, 4 ][ 'A','B','C'][1, 2, ['bob', 3], 10, 2,5]
|
Eine geordnete Sammlung beliebiger Typen, einschließlich anderer Arrays. |
| Objekt | { key: 1, value: 'roll20' } |
Ein einfaches Schlüssel-/Wertobjekt mit Zeichenfolgenschlüsseln und einem beliebigen Typ als Wert, einschließlich anderer Objekte. |
Warnung: Während Funktionen zunächst zu funktionieren scheinen, wenn sie im state gespeichert werden, verschwinden sie, wenn der state zum ersten Mal aus der Persistenz wiederhergestellt wird, z. B. bei einem Sandbox-Neustart.
-
Hinweis: Dazu gehören Roll20-Objekte, die du aus Ereignissen oder den Funktionen
findObjs(),getObj(),filterObjs(),createObj()usw. erhältst.
Wichtige Erinnerungen
Das state-Objekt wird von allen Skripten in einer Sandbox gemeinsam genutzt. Um zu verhindern, dass andere Skripte beschädigt werden, ist es wichtig, einige einfache Richtlinien zu befolgen:
-
Niemals direkt dem Stamm-
state-Objekt zuweisen.
state = { break: 'all the things' }; // TUN DAS NIEMALS!!!
-
Vermeide die Verwendung lokaler Variablen mit dem Namen
statein deinen Skripten. Dies funktioniert zwar, ist jedoch für spätere Benutzer Ihrer Skripte verwirrend und kann zu Problemen führen, wenn der Code unvorsichtig bearbeitet wird.
function turn(){
var state = Campaign().get('turnorder'); // Schlechte Praxis, vermeide sie!
// ...
}
-
Immer platziere deine Eigenschaften unter mindestens einer Namespace-Eigenschaft. Stellen Sie sicher, dass Sie eine ausreichend beschreibende Namespace-Eigenschaft verwenden. Vermeiden Sie Namen wie
SkriptoderEinstellungen. Am besten verwenden Sie entweder den Namen Ihres Moduls oder Ihren eigenen Namen bzw. Handle.
if( ! state.MyModuleNamespace ) {
state.MyModuleNamespace = { module: 'my module', ok: 'das ist in Ordnung!', count: 0 };
}
state.MyModuleNamespace.count++;
Beispielverwendung
Dies ist ein funktionierendes Beispiel, das das state-Objekt entsprechend verwendet.
on('ready',function() {
"use strict";
// Überprüfe, ob die Namespace-Eigenschaft vorhanden ist, und erstelle sie, wenn nicht.
if( ! state.MyModuleNS ) {
state.MyModuleNS = {
version: 1.0,
config: {
color1: '#ff0000',
color2: '#0000ff'
},
count: 0
};
}
// Verwendung der state-Eigenschaften zum Konfigurieren einer Nachricht an den Chat.
sendChat(
'Test Module',
'<span style="color: '+state.MyModuleNS.config.color1+';">'+
'State test'+
'</span> '+
'<span style="color: '+state.MyModuleNS.config.color2+';">'+
'Script v'+state.MyModuleNS.version+' started '+(++state.MyModuleNS.count)+' times!'+
'</span>'
);
});
Objekte finden/filtern
Die API stellt mehrere Hilfsfunktionen zur Verfügung, die du zum Auffinden von Objekten verwenden kannst.
getObj(type, id)
Diese Funktion ruft ein einzelnes Objekt ab, wenn der _type des Objekts und die _id übergeben werden. Es ist am besten, diese Funktion nach Möglichkeit den anderen Suchfunktionen vorzuziehen, da sie die einzige ist, die nicht die gesamte Sammlung von Objekten durchlaufen muss.
on("change:graphic:represents", function(obj) {
if(obj.get("represents") != "") {
var Character = getObj("character", obj.get("represents") );
}
});
findObjs(attrs)
Übergebe dieser Funktion eine Liste von Attributen, und sie gibt alle übereinstimmenden Objekte als Array zurück. Beachte, dass dies für alle Objekte aller Typen auf allen Seiten gilt – daher möchtest du wahrscheinlich mindestens einen Filter für _type und _pageid einschließen, wenn du mit Tabletop-Objekten arbeitest.
var currentPageGraphics = findObjs({
_pageid: Campaign().get("playerpageid"),
_type: "graphic",
});
_.each(currentPageGraphics, function(obj) {
//Machen Sie etwas mit obj, das sich auf der aktuellen Seite befindet und eine Grafik ist.
});
Sie können auch ein optionales zweites Argument übergeben, das ein Objekt mit einer Liste von Optionen enthält, einschließlich:
- caseInsensitive (true/false): Wenn true, werden Zeichenfolgen-Eigenschaften ohne Rücksicht auf die Groß-/Kleinschreibung der Zeichenfolge verglichen.
var targetTokens = findObjs({
name: "target"
}, {caseInsensitive: true});
// Gibt alle Token mit einem Namen wie 'target', 'Target', 'TARGET' usw. zurück.
filterObjs(callback)
Führt die bereitgestellte Rückruffunktion für jedes Objekt aus. Wenn der Rückruf „true“ zurückgibt, wird das Objekt in das Ergebnisarray aufgenommen. Derzeit ist es für die meisten Zwecke nicht ratsam, filterObjs() zu verwenden – da findObjs() über eine integrierte Indizierung für eine bessere Ausführungsgeschwindigkeit verfügt, ist es fast immer besser, findObjs() zu verwenden, um Objekte des gewünschten Typs abzurufen Zuerst filtern Sie sie dann mit der nativen .filter()-Methode für Arrays.
var results = filterObjs(function(obj) {
if(obj.get("left") < 200 && obj.get("top") < 200) return true;
else return false;
});
// Ergebnisse ist ein Array aller Objekte, die sich in der oberen linken Ecke des Spieltisches befinden.
getAllObjs()
Gibt ein Array aller Objekte im Spiel (alle Typen) zurück. Entspricht dem Aufruf von filterObjs und der Rückgabe von true für jedes Objekt.
getAttrByName(character_id, attribute_name, value_type)
Ruft den Wert eines Attributs ab und verwendet dabei den Standardwert aus dem Charakterbogen, wenn das Attribut nicht vorhanden ist. value_type ist ein optionaler Parameter, mit dem du 'current' oder 'max' angeben kannst.
getAttrByName holt nur den Wert des Attributs, nicht das Attributobjekt selbst. Wenn du auf andere Eigenschaften des Attributs als „current“ oder „max“ verweisen oder Eigenschaften des Attributs ändern möchtest, musst du eine der anderen oben genannten Funktionen verwenden, z. B.findObjs.
Für sich wiederholende Abschnitte kannst du das Formatrepeating_section_$n_attribute verwenden, wobeindie Nummer der sich wiederholenden Zeile ist (beginnend mit Null). Beispielsweise wird repeating_spells_$2_name den Wert von name aus der dritten Zeile von repeating_spells zurückgeben.
Du kannst ein Verhalten erreichen, das getAttrByName entspricht, indem du Folgendes tust:
// current und max sind vollständig abhängig vom Attribut und dem Spielsystem
// in Frage; Es gibt keine Funktion, um sie automatisch zu ermitteln.
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 || 'aktuell';
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');
}
}