API: Objekte

Es gibt verschiedene Objekttypen, die in der gesamten Roll20-API verwendet werden. Hier ist eine kurze Auflistung der einzelnen Elemente, was sie sind und welche Eigenschaften sie enthalten (zusammen mit den Standardwerten). Als allgemeine Faustregel gilt, dass Eigenschaften, die mit einem Unterstrich (_) beginnen, schreibgeschützt sind und nicht geändert werden können. Du musst auf Eigenschaften von Objekten mit 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
Objekte in diesem Spiel. Schreibgeschützt.

_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
Objekte in diesem Spiel. Schreibgeschützt.

_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:


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 state in 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 wieSkriptoderEinstellungen. 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');
    }
}
War dieser Beitrag hilfreich?
22 von 24 fanden dies hilfreich