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 undsind und nicht geändert werden können. Sie müssen mitobj.get("property")auf Eigenschaften von Objekten zugreifen und mitobj.set("property", newvalue)oderobj.set({property: newvalue, property2: newvalue2})neue Werte festlegen.

Hinweis:Die Eigenschaftideines Objekts ist eine global eindeutige ID: Keine zwei Objekte sollten dieselbe ID haben, auch nicht über verschiedene Objekttypen hinweg. Da außerdem häufig auf die ID eines Objekts zugegriffen wird und sie sich nie ändert, gibt es eine Verknüpfung, über die Sie darauf zugreifen können, indem Sieobj.idanstelle vonobj.get("_id")verwenden, wenn Sie möchten (beide werden). arbeiten).


Pfad

Eigentum Standardwert Anmerkung
_Ausweis  

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.
_Weg    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. Verwenden Sie als Zeichenfolge die Zeichenfolge „transparent“ oder eine Hexadezimalfarbe, beispielsweise „#000000“.
Schlaganfall „#000000“ Strichfarbe (Randfarbe).
Drehung 0 Drehung (in Grad).
ebene „“ Aktuelle Ebene, eine von „gmlayer“, „objects“, „map“ oder „walls“. Die Wandebene wird für dynamische Beleuchtung verwendet und Pfade auf der Wandebene blockieren das Licht.
Strichbreite 5  
breite 0  
Größe 0  
oben 0 Y-Koordinate für die Mitte des Pfades
munition 0 X-Koordinate für den Mittelpunkt des Pfades
ScaleX 1  
SkalaY 1  
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 FALSCH

Boolescher Wert

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 umgekehrte Achse. Beispielsweise ist eine Top-Variable, die für ein anderes Objekt 100 wäre, für Fenster oder Tür y -100.

Eigentum Standardwert Anmerkung
_Ausweis   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.
j 0 Koordinatenmittelpunkt der Tür auf der y-Achse.
ist offen FALSCH Bestimmt, ob sich ein Spieler durch dieses Fenster bewegen kann.
ist gesperrt FALSCH 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. Beispielsweise ist eine Top-Variable, die für ein anderes Objekt 100 wäre, für Fenster oder Tür y -100.

Eigentum

Standardwert

Anmerkung

_Ausweis

 

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.

j

0

Koordinatenmittelpunkt der Tür auf der y-Achse.

ist offen

FALSCH

Bestimmt, ob sich ein Spieler durch diese Tür bewegen kann.

ist gesperrt

FALSCH

Verhindert, dass Spieler mit der Tür interagieren können.

ist geheim

FALSCH

Entfernt ein Türsymbol aus der Spieleransicht und fungiert als Barriere.

Weg

 

Dargestellt als zwei Handles (handle0 und handle1) mit jeweils x- und y-Koordinaten.


Text

Eigentum Standardwert Anmerkung
_Ausweis   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.
Spitze 0  
links 0  
Breite 0  
Größe 0  
Text „“  
Schriftgröße 16 Um optimale Ergebnisse zu erzielen, halten Sie sich 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)“  
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“. Die Angabe eines ungültigen Namens führt dazu, dass eine unbenannte, monospaced Serifenschriftart verwendet wird.
Schicht „“ „gmlayer“, „objects“, „map“ oder „walls“.
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 Spielerwird dadurch dargestellt, dass „alle“ in der Liste vorhanden ist.


Grafik (Token/Karte/Karte/usw.)

Eigentum Standardwert Anmerkung
_Ausweis   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 "Zeichen" Kann „token“ (für Token und Karten) oder „card“ (für Karten) sein. Schreibgeschützt.
_Ausweiskarte   Legen Sie eine ID fest, wenn es sich bei der Grafik um eine Karte handelt. 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 Zeichens, das dieses Token darstellt.
links 0 Anzahl der Pixel vom linken Rand der Karte bis zur Mitte der Grafik.
Spitze 0 Anzahl der Pixel vom oberen Rand der Karte bis zur Mitte der Grafik.
Breite 0 Breite der Grafik in Pixel.
Größe 0 Höhe der Grafik in Pixel.
Drehung 0 Die Ausrichtung des Tokens in Grad.
ebene „“ „gmlayer“, „objects“, „map“ oder „walls“.
zeichnet FALSCH Diese Eigenschaft kann über das Kontextmenü „Erweitert“ geändert werden.
flipv FALSCH Vertikal spiegeln.
fliph FALSCH Horizontal spiegeln.
skill „“ Der Name des Tokens.
gmnotes „“ Hinweise auf dem Token sind nur für den GM 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 Spielerwird dadurch dargestellt, dass „alle“ in der Liste vorhanden ist.

bar1_value „“ Aktueller Wert von Balken 1. Dies kann eine Zahl oder ein Text sein.
bar2_value „“  
bar3_value „“  
bar1_max „“ Maximalwert von Balken 1. Wenn sowohl _value als auch _max festgelegt sind, wird möglicherweise ein Balken über dem Token angezeigt, der den Prozentsatz von Balken 1 anzeigt.
bar2_max „“  
bar3_max „“  
aura1_radius „“ Radius der Aura, unter Verwendung der in den Seiteneinstellungen festgelegten Einheiten. 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 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 Statusmarkierungen. Weitere Informationen finden Sie in den folgenden Hinweisen.
token_markers „“ Ein stringifiziertes JSON-Array, das ein Objekt für jeden aktuell im Spiel befindlichen Token-Marker enthält:. Ein Beispiel finden Sie unten.
Name anzeigen FALSCH Ob das Typenschild des Tokens angezeigt wird.
showplayers_name FALSCH Zeigen Sie allen Spielern das Namensschild.
showplayers_bar1 FALSCH Zeige allen Spielern Bar 1.
showplayers_bar2 FALSCH  
showplayers_bar3 FALSCH  
showplayers_aura1 FALSCH Zeige Aura 1 allen Spielern.
showplayers_aura2 FALSCH  
Spieleredit_name WAHR Ermöglichen Sie kontrollierenden Spielern, den Namen des Tokens zu bearbeiten. Zeigt den kontrollierenden Spielern auch das Namensschild an, auch wenn showplayers_name falsch ist.
Spieleredit_bar1 WAHR Ermöglichen Sie kontrollierenden Spielern, die Leiste 1 des Tokens zu bearbeiten. Zeigt den kontrollierenden Spielern auch Bar 1 an, auch wenn showplayers_bar1 falsch ist.
Spieleredit_bar2 WAHR  
Spieleredit_bar3 WAHR  
Spieleredit_aura1 WAHR Ermöglichen Sie kontrollierenden Spielern, die Aura 1 des Tokens zu bearbeiten. Zeigt den kontrollierenden Spielern auch Aura 1 an, auch wenn showplayers_aura1 falsch ist.
Spieleredit_aura2 WAHR  
licht_radius „“ Dynamischer Beleuchtungsradius.
light_dimradius „“ Beginn des Dimmlichtradius. Wenn „light_dimradius“ die leere Zeichenfolge ist, sendet der Token helles Licht bis zur Entfernung „light_radius“ aus. Wenn „light_dimradius“ einen Wert hat, sendet der Token helles Licht bis zum Wert „light_dimradius“ aus und dimmt das Licht von dort bis zum Wert „light_radius“.
light_otherplayers FALSCH Zeigen Sie allen Spielern das Licht des Tokens.
light_hassight FALSCH Das Licht hat „Sicht“, um Spieler im Rahmen der Einstellung „Sichtlinie erzwingen“ zu steuern.
Lichtwinkel „360“ Winkel (in Grad) des Lichtwinkels. „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 true gesetzt ist)
letzter Zug „“ Der letzte Zug des Tokens. Es handelt sich um eine durch Kommas getrennte Liste von Koordinaten. „300.400“ würde beispielsweise bedeuten, dass der Token seine letzte Bewegung bei links=300, oben=400 begonnen hat. Es wird immer davon ausgegangen, dass die aktuellen oberen + linken Werte des Tokens 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 Token bei links=300, oben=400 begann, dann einen Wegpunkt bei links=350, oben=450 und einen weiteren Wegpunkt bei links=400, oben=500 setzte und dann die Bewegung beendete an seinen aktuellen oberen + linken Koordinaten.
light_multiplier "1" Multiplikator für die Wirksamkeit von Lichtquellen. Ein Multiplikator von zwei würde es dem Spielstein ermöglichen, bei gleicher Lichtquelle doppelt so weit zu sehen wie ein Spielstein mit einem Multiplikator von eins.
adv_fow_view_distance „“ Der Radius um einen Spielstein, in dem Advanced Fog of War 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.
night_vision_effect
  Ändert den Nachtsichteffekt. Weitere Optionen sind „Dimmen“ und „Nachtaktiv“.
bar_location   Passt die Position der Tokenleisten an. Zu den Optionen gehören „overlap_top“, „overlap_bottom“, „bottom“.
compact_bar
  Passt an, ob die Stange kompakt ist oder nicht. Eine andere Option ist kompakt.
lockBewegung FALSCH Eine Option zum Fixieren einer Grafik. Boolescher wahrer oder falscher Wert

Beispiel für Token-Marker

{
          „id“:59, // die Datenbank-ID für
          „name“: „Bane“, // der Name (nicht eindeutig) des Markers
          „tag“: „Bane::59“, // wie auf das Token tatsächlich verwiesen wird
          // Dies schließt die ID für benutzerdefinierte Markierungen ein, nicht jedoch
          // 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 Token-Markers }

Wichtige Hinweise zu verknüpften Charakteren + Token

Beachten Sie, dass bei Token, die mit Charakteren verknüpft sind, das Feld, gesteuert durch“ auf dem Token durch das Feld „, gesteuert durchdes Charakters überschrieben wird.

Bei Token-Balken (z. B.bar1_valueundbar1_max), bei denen der Token mit einem Attribut verknüpft ist (z. B.bar1_linkist festgelegt), werden durch Festlegen eines Werts für den Balken automatischaktuellenund/odermax. des zugrunde liegenden Attributs aktualisiert Es gibt auchWerte, sodass Sie nicht beide manuell einstellen müssen.

Wenn das Attribut (oder die Token-Leiste) im Spiel geändert wird, hören Sie außerdem das Ereignischange:attribute(und eigenschaftsspezifisch, z. B.change:attribute:current), gefolgt von einem Ereignischange:graphic(undchange:graphic:bar1_value) Ereignis. Sie können auf jedes der beiden Ereignisse reagieren, die zugrunde liegenden Balkenwerte werden jedoch noch nicht aktualisiert, wenn das Attributereignis ausgelöst wird, da es zuerst ausgelöst wird.

Wichtige Hinweise zu Statusmarkierungen

Seit dem 6. August 2013 hat sich die Art und Weise geändert, wie Statusmarkierungen auf Token gehandhabt werden. Die Eigenschaft „statusmarkers“ des Grafikobjekts ist jetzt eine durch Kommas getrennte Liste aller Statusmarkierungsfarben/-symbole, die auf dem Token aktiv sein sollten. Das Format ist wie folgt:

//Komma-getrennt (verwenden Sie Join zum Erstellen oder Teilen, um es in ein Array umzuwandeln). 
//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 „false“ zurück, wenn die Markierung nicht aktiv ist, „true“, wenn dies der Fall 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 Token hinzufügen, wenn es nicht bereits aktiv ist.

Beachten Sie, dass diese virtuellen Eigenschaften keine Ereignisse haben. Daher müssen Siechange:graphic:statusmarkersverwenden, um auf Änderungen an den Statusmarkierungen eines Tokens zu lauschen, und beispielsweisechange:graphic:status_redist KEIN gültiges Ereignis und wird dies auch tun niemals feuern.

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“, „halb-Herz“, „halb-Dunst“. „, „interdiction“, „snail“, „lightning-helix“, „spanner“, „chained-heart“, „chemical-bolt“, „death-zone“, „drink-me“, „edge-crack“, „Ninja-Maske“, „Stoppuhr“, „Fischernetz“, „Overdrive“, „stark“, „Faust“, „Vorhängeschloss“, „Dreiblätter“, „Fluffy-Wing“, „pummeled“, „Tread“. „, „arrowed“, „aura“, „back-pain“, „black-flag“, „Bleeding-eye“, „bolt-shield“, „broken-heart“, „cobweb“, „broken-shield“, „fliegende Flagge“, „radioaktiv“, „Trophäe“, „gebrochener Schädel“, „gefrorene Kugel“, „rollende Bombe“, „weißer Turm“, „greifen“, „schreien“, „Granate“, „Sentry-Gun“, „All-for-One“, „Engel-Outfit“, „Archery-Target“

Seite

Eigentum Standardwert Anmerkung
_Ausweis   Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "Buchseite" 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. toFrontundtoBack(und die zugehörigen Kontextmenüelemente) können diese Liste neu anordnen. Schreibgeschützt.
skill „“ Titel der Seite.
Raster anzeigen WAHR Zeigen Sie das Raster auf der Karte an.
Dunkelheit zeigen FALSCH Nebel des Krieges auf der Karte anzeigen.
Showbeleuchtung FALSCH Verwenden Sie dynamische Beleuchtung.
breite 25 Breite in Einheiten.
Größe 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 "quadrat" 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.
Lichtupdatedrop FALSCH Aktualisieren Sie Dynamic Lighting nur, wenn ein Objekt abgelegt wird.
lightenforcelos FALSCH Sichtlinie für Objekte erzwingen.
lightrestrictmove FALSCH Lassen Sie nicht zu, dass sich sichtbare Objekte durch Dynamic Lighting-Wände bewegen.
Lichtglobalillum FALSCH Wenn „true“ überall dort ist, wo ein Token „sehen“ kann, wird davon ausgegangen, dass helles Licht vorhanden ist.
Jukeboxtrigger   Steuert die Seitenwiedergabe beim Laden. Zu den Optionen gehören „nonestopall“ oder die ID des Tracks

Kampagne

Eigentum Standardwert Anmerkung
_Ausweis "Wurzel" Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "kampagne" Kann verwendet werden, um den Objekttyp zu identifizieren oder nach dem Objekt zu suchen. Beachten Sie jedoch, dass es nur ein Campaign-Objekt gibt und überCampaign()darauf zugegriffen werden kann. Schreibgeschützt.
Turnorder „“ Eine JSON-Zeichenfolge der Zugreihenfolge. Siehe unten.
Initiativeseite FALSCH ID der Seite, die für den Tracker verwendet wird, wenn das Abbiegereihenfolgefenster geöffnet ist. Bei der Einstellungfalsewird das Abbiegereihenfolgefenster geschlossen.
Spielerseiten-ID FALSCH ID der Seite, auf die das Player-Lesezeichen gesetzt ist. Spielern wird diese Seite standardmäßig angezeigt, es sei denn, sie wird durch die folgenden spielerspezifischen Seiten überschrieben.
Spielerspezifische Seiten FALSCH Ein Objekt (KEIN JSON-STRING) im Format: {"player1_id": "page_id", "player2_id": "page_id" ... } Jeder Player, der in diesem Objekt auf eine Seite festgelegt ist, überschreibt die Playerpage-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.

 Zugreihenfolge

Die Abbiegereihenfolge ist eine JSON-Zeichenfolge, die die aktuelle Abbiegereihenfolgeliste darstellt. Es handelt sich um ein Array von Objekten. Derzeit kann die Abbiegereihenfolge jeweils nur Objekte von einer Seite enthalten – die aktuelle Seiten-ID für die Abbiegereihenfolge ist das Attribut „initiativepage“. Stellen Sie sicher, dass Sie beide synchron halten, da es sonst zu seltsamen Ergebnissen kommen kann.

Um mit der Abbiegereihenfolge zu arbeiten, sollten SieJSON.parse()verwenden, um ein Objekt abzurufen, das den aktuellen Status der Abbiegereihenfolge darstellt (HINWEIS: Stellen Sie zunächst sicher, dass es sich nicht um eine leere Zeichenfolge""handelt ... wenn initialisieren Sie es selbst mit einem leeren Array. Hier ist ein Beispiel für ein Turn-Reihenfolge-Objekt:

[
    {
     „id“: „36CA8D77-CF43-48D1-8682-FA2F5DFD495F“, //Die ID des Grafikobjekts. Wenn dies eingestellt ist, ruft die Zugreihenfolgeliste automatisch den Namen und das Symbol für die Liste basierend auf der Grafik auf der Tischplatte ab.
     „pr“: „0“, //Der aktuelle Wert für das Element in der Liste. Kann eine Zahl oder ein Text sein.
     „custom“: //Benutzerdefinierter Titel für den Artikel. 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 Abbiegereihenfolge zu ändern, bearbeiten Sie das aktuelle Abbiegereihenfolgeobjekt und verwenden Sie dannJSON.stringify(), um das Attribut in der Kampagne zu ändern. Beachten Sie, dass die Reihenfolge für die Turn-Reihenfolge in der Liste mit der Reihenfolge des Arrays übereinstimmt, also zum Beispielpush()ein Element am Ende der Liste hinzufügt,unshift()am Anfang hinzufügt usw .

var turnorder;
if(Campaign().get("turnorder") == "") turnorder = []; //HINWEIS: Wir prüfen zunächst, ob die Turnorder nicht nur eine leere Zeichenfolge ist. Wenn ja, behandeln Sie es wie ein leeres Array.
else turnorder = JSON.parse(Campaign().get("turnorder"));

//Fügen Sie einen neuen benutzerdefinierten Eintrag am Ende der Zugreihenfolge hinzu.
turnorder.push({
    id: "-1",
    pr: "15",
    custom: "Turn Counter"
});
Campaign().set("turnorder", JSON.stringify(turnorder));
 

Player:

Eigentum Standardwert Anmerkung
_Ausweis   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.
_Anzeigename „“ 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 GM angesehen hat. Diese Eigenschaft wird für Spieler oder GMs, die als Spieler beigetreten sind, nicht aktualisiert. Schreibgeschützt.
_Makroleiste „“ Durch Kommas getrennte Zeichenfolge der Makros in der Makroleiste des Players. Schreibgeschützt.
sprechend „“ Die Spieler- oder Charakter-ID des Spielers, den der Spieler aus der Dropdown-Liste „Als“ ausgewählt hat. Wenn die leere Zeichenfolge eingestellt ist, spricht der Spieler als er selbst. Bei Festlegung auf ein Zeichen lautet der Wert „Zeichen|ID“, wobei „ID“ die ID des Zeichens ist. Wenn der GM 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.
Makroleiste anzeigen FALSCH Ob die Makroleiste des Players angezeigt wird.

Makro

Eigentum Standardwert Anmerkung
_Ausweis   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.
skill „“ Der Name des Makros.
Aktion „“ 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 Spielerwird dadurch dargestellt, dass „alle“ in der Liste vorhanden ist.

istokenaction FALSCH Ist dieses Makro eine Token-Aktion, die angezeigt werden soll, wenn Token ausgewählt werden?

 


Rollbarer Tisch

Eigentum Standardwert Anmerkung
_Ausweis   Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ „rollbarer Tisch“ Kann zur Identifizierung des Objekttyps oder zur Suche nach dem Objekt verwendet werden. Schreibgeschützt.
skill „Neue-Tabelle“  
Showplayer WAHR  

Tabellenelement 

Eigentum Standardwert Anmerkung
_Ausweis   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 das Tabellenelement verwendet wird. Siehe den Hinweis zu Avatar- und imgsrc-Einschränkungen unten.
skill „“  
Gewicht 1 Gewicht des Tabellenelements im Vergleich zu den anderen Elementen in derselben Tabelle. Einfach ausgedrückt ist die Wahrscheinlichkeit, dass ein Gegenstand mit dem Gewicht 3 beim Rollen auf dem Tisch ausgewählt wird, dreimal höher als bei einem Gegenstand mit dem Gewicht 1.

PC sheet

Eigentum Standardwert Anmerkung
_Ausweis   Eine eindeutige ID für dieses Objekt. Weltweit einzigartig für alle Objekte in diesem Spiel. Schreibgeschützt.
_Typ "pC sheet" 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.
skill „“  
biografie „“ Die Biografie der Figur. Weitere Informationen zum Zugriff auf die Felder „Notizen“, „GMNotes“ und „Bio“ finden Sie im folgenden Hinweis.
gmnotes „“ Hinweise zum Charakter sind nur für den GM sichtbar. Weitere Informationen zum Zugriff auf die Felder „Notizen“, „GMNotes“ und „Bio“ finden Sie im folgenden Hinweis.
archiviert FALSCH  
inplayerjournals „“ Durch Kommas getrennte Liste der Spieler-IDs, die diesen Charakter sehen können. Verwenden Sie „alle“, um allen Spielern die Möglichkeit zu geben, die Ansicht anzuzeigen.

Alle Spielerwird dadurch dargestellt, dass „alle“ in der Liste vorhanden ist.

kontrolliert von „“ Durch Kommas getrennte Liste der Spieler-IDs, die diesen Charakter steuern und bearbeiten können. Verwenden Sie „alle“, um allen Spielern die Möglichkeit zum Bearbeiten zu geben.

Alle Spielerwird dadurch dargestellt, dass „alle“ in der Liste vorhanden ist.

_defaulttoken „“ Eine JSON-Zeichenfolge, die die Daten für das Standardtoken des Charakters enthält, sofern eines festgelegt ist. Beachten Sie, dass dies ein „Blob“ ist, der „bio“ und „notes“ ähnelt. Daher müssen Sie eine Rückruffunktion an get() übergeben. Schreibgeschützt.

Attribut

Eigentum Standardwert Anmerkung
_Ausweis   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 voncreateObj.
skill "Ohne Titel"  
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.
maximum-abbr „“ 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: Lesen Sie den Hinweis unten zum Arbeiten mit Charakterblättern, um zu erfahren, wie sich die Standardwerte von Charakterblättern auf die Verwendung von Attributen auswirken.


Attribut

Eigentum Standardwert Anmerkung
_Ausweis   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 voncreateObj.
skill „Untitled_Ability“  
Beschreibung „“ Die Beschreibung erscheint nicht im Charakterblatt-Interface.
Aktion „“ Der Text der Fähigkeit.
istokenaction FALSCH Handelt es sich bei dieser Fähigkeit um eine Token-Aktion, die angezeigt werden sollte, wenn Token ausgewählt werden, die mit dem übergeordneten Charakter verknüpft sind?

Notiz

Eigentum Standardwert Anmerkung
_Ausweis   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.
skill „Geheimnisvolle Notiz“  
Notizen „“ Enthält den Text im Handout. Weitere Informationen zur Verwendung von Notes und GMNotes finden Sie im folgenden Hinweis.
gmnotes „“ Enthält den Text im Handout, den nur der GM sieht. Weitere Informationen zur Verwendung von Notes und GMNotes finden Sie im folgenden Hinweis.
inplayerjournals „“ Durch Kommas getrennte Liste der Spieler-IDs, die dieses Handout sehen können. Verwenden Sie „alle“, um die Anzeige allen Spielern anzuzeigen.

Alle Spielerwird dadurch dargestellt, dass „alle“ in der Liste vorhanden ist.

archiviert FALSCH  
kontrolliert von „“ Durch Kommas getrennte Liste der Spieler-IDs, die dieses Handout kontrollieren und bearbeiten können.

Alle Spielerwird dadurch dargestellt, dass „alle“ in der Liste vorhanden ist.

Hinweis:Die API hat keinen Zugriff auf die Ordnerhierarchie. Von der API erstellte Handouts werden auf der Stammebene platziert.


Deck

Beachten Sie, dass es Hilfs-API-Methoden zum „Ziehen“, „Austeilen“ oder „Mischen“ von Karten aus dem Deck gibt. SieheAPI-Update-Forumsbeitrag vom März 2018.

Eigentum Standardwert Anmerkung
_Ausweis „“ ID des Decks
_Typ "Deck"  
skill „“ Name des Decks
_currentDeck „“ eine durch Kommas getrennte Liste der Karten, die sich derzeit im Stapel befinden (einschließlich der Karten, die auf die Tischplatte/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 Zeigen Sie die aktuelle Karte oben auf den Stapel
Showplayer WAHR Zeigen Sie den Spielern das Deck
Spieler können zeichnen WAHR Können Spieler Karten ziehen?
avatar „“ die „Rückseite“ der Karten für dieses Deck
angezeigt FALSCH Zeige den Stapel auf dem Spielbrett (ist der Stapel derzeit sichtbar?)
player_seenumcards WAHR Können Spieler die Anzahl der Karten in den Händen anderer Spieler sehen?
player_seefrontofcards FALSCH Können Spieler die Vorderseiten von Karten sehen, wenn sie in die Hände anderer 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 "nichts" 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 „“ Wie hoch ist der aktuelle Ablagestapel für dieses Deck? Durch Kommas getrennte Liste von Karten. Hierbei handelt es sich um Karten, die aus dem Spiel entfernt wurden und erst nach einem Rückruf wieder in den Stapel gelegt werden.

Karte

Eigentum Standardwert Anmerkung
skill „“ Name der Karte
avatar „“ Vorderseite der Karte
_deckid „“ ID des Decks
_Typ "Karte"  
_Ausweis „“  

Handl.

Beachten Sie, dass jeder Spieler nur EINE Hand haben sollte.

Eigentum Standardwert Anmerkung
currentHand „“ Durch Kommas getrennte Liste der aktuell in der Hand befindlichen Karten. Beachten Sie, dass dies nicht mehr schreibgeschützt ist. Idealerweise sollte es nur mit den Kartenspielfunktionen angepasst werden.
_Typ "kartenhand"  
_Eltern ID „“ ID des Spielers, dem die Hand gehört
_Ausweis „“  
aktuelle Ansicht „bydeck“ Wenn der Spieler die Hand öffnet, ist die Ansicht „bydeck“ oder „bycard“?

Jukebox-Track

Eigentum Standardwert Anmerkung
_Ausweis   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.
spiele 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.
titel „“ Die sichtbare Bezeichnung für den Titel im Jukebox-Tab.
Volumen 30 Der Lautstärkepegel des Tracks. Beachten Sie, dass dies auf eine Ganzzahl (keine Zeichenfolge) festgelegt werden muss, da sonst die Funktionalität beeinträchtigt werden kann. Werte von 0-100 (Prozentsatz).
schleife FALSCH Soll der Track geloopt werden? Wenn ja, auf „true“ setzen.

Benutzerdefinierte Effekte

Eigentum Standardwert Anmerkung
_Ausweis   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.
skill „“ Der sichtbare Name für den FX im FX-Listing.
erläuterung {} Javascript-Objekt, das den FX beschreibt.

imgsrc- und Avatar-Eigenschaftseinschränkungen

Während Sie jetzt die Eigenschaftenimgsrcundavatarbearbeiten können, haben wir zur Sicherheit aller Roll20-Benutzer die folgenden Einschränkungen für diese Eigenschaften eingeführt:


In der 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 Handouts zuzugreifen, müssen Sie eine Rückruffunktion als zweites Argument an die Funktion get() übergeben. Hier ist ein Beispiel:

var Character = getObj("character", "-JMGkBaMgMWiQdNDwjjS");
Character.get("bio", function(bio) {
    log(bio); // hier etwas mit der Charakterbiografie machen.
});

Sie können den Wert dieser Felder wie gewohnt festlegen. Beachten Sie, dass es derzeit (Stand 09.05.2016) einen Fehler bei diesen asynchronen Feldern gibt, der dazu führt, dass das Setzen dieser Felder durch die Übergabe von Werten an createObj stillschweigend fehlschlägt und das Objekt in einem seltsamen Zustand zurückbleibt. Sie sollten diese Werte nur mit .set festlegen, bis dieses Problem behoben ist. Details zumForum. Es gibt auch einen Fehler (Stand 05.11.2016), bei dem der Versuch, sowohl die Eigenschaften „notes“ als auch „gmnotes“ im selben set()-Aufruf festzulegen, dazu führt, dass die zweite Eigenschaft im Aufruf falsch festgelegt wird. Details zumForum.


Arbeiten mit Charakterblättern

Die Funktion „Zeichenblätter“ wirkt sich auf die Verwendung des Objekttyps „Attribute“ aus, da die Blätter die Möglichkeit haben, für jedes Attribut auf dem Blatt einen Standardwert anzugeben. Wenn das Attribut jedoch auf den Standardwert gesetzt ist, gibt es im Spiel noch kein tatsächliches Attributobjekt für diesen Charakter. Wir bieten eine Komfortfunktion, die Ihnen diese Komplexität verheimlicht. Sie sollten diese Funktion verwenden, um künftig den Wert eines Attributs zu ermitteln, insbesondere wenn Sie wissen, dass ein Spiel ein Charakterblatt verwendet.

getAttrByName(character_id, attribute_name, value_type)

Geben Sie einfach die ID des Zeichens, den-Namen(nicht die ID) des Attributs (z. B. „HP“ oder „Str“) und dann, wenn Sie möchten, „current“ oder „max“ für value_type an. Hier ist ein Beispiel:

var Character = 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)]]“


Beachten Sie, dass Felder mit automatisch berechneten Werten die Formel und nicht das Ergebnis des Werts zurückgeben. Sie können diese Formel dann an sendChat() übergeben, um die Dice-Engine zur automatischen Berechnung des Ergebnisses für Sie zu verwenden.

Schauen Sie sich unbedingt auch die Dokumentation zuCharacter Sheetan, um weitere Informationen darüber zu erhalten, wie die Character Sheets mit der API interagieren.

getAttrByNameholt nurWert des Attributs, nicht das Attributobjekt selbst. Wenn Sie auf andere Eigenschaften des Attributs als „current“ oder „max“ verweisen oder Eigenschaften des Attributs ändern möchten, müssen Sie eine der anderen oben genannten Funktionen verwenden, z. B.findObjs.

Falls das angeforderte Attribut nicht existiert, gibtgetAttrByName()undefiniertzurück.


Objekte erstellen

createObj(Typ, Attribute)

Hinweis: Derzeit können Sie die Objekte „Grafik“, „Text“, „Pfad“, „Charakter“, „Fähigkeit“, „Attribut“, „Handout“, „Rollabletable“, „Tableitem“ und „Makro“ erstellen.

Mit der FunktioncreateObjkönnen Sie im Spiel ein neues Objekt erstellen. Sie müssen den Typ des Objekts (eine der gültigen_typeEigenschaften aus der obigen Objektliste) sowie einAttributeObjekt übergeben, das eine Liste von Eigenschaften für das Objekt enthält. Beachten Sie, dass Sie die ID des übergeordneten Objekts in der Liste der Eigenschaften übergeben müssen, 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 müssen Sie beim Erstellen eines Attributs die EigenschaftZeichen-IDeinbeziehen. Beachten Sie außerdem, dass Sie beim Erstellen neuer Objekte keine schreibgeschützten Eigenschaften festlegen können, diese werden automatisch auf ihren Standardwert gesetzt. Die einzige Ausnahme hiervon besteht darin, dass Sie beim Erstellen eines Pfads die Eigenschaft „Pfad“ einbeziehen müssen, diese jedoch nicht mehr geändert werden kann, sobald der Pfad zum ersten Mal erstellt wurde.

createObjgibt das neue Objekt zurück, sodass Sie damit weiterarbeiten können.

//Erstelle 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.

Sie können vorhandene Spielobjekte mit der Funktion.remove()löschen. Die Funktion .remove() funktioniert bei allen Objekten, die Sie mit der Funktion createObj erstellen können. Sie rufen die Funktion direkt am Objekt auf. Beispiel:mycharacter.remove();.


Globale Objekte

Es gibt mehrere Objekte, die überall in Ihrem Skript global verfügbar sind.

Campaign() (Funktion)

Eine Funktion, die dasKampagnen-Objekt zurückgibt. Da es nur eine Kampagne gibt, verweist dieser Global immer auf die einzige Kampagne im Spiel. Nützlich, um beispielsweise mithilfe vonCampaign().get("playerpageid")zu überprüfen, ob sich ein Objekt auf der aktiven Seite befindet.


Zustand

Die VariableZustandist ein Objekt im globalen Bereich, auf das alle in einem Spiel ausgeführten Skripte zugreifen können. Sie können jederzeit von jeder Funktion oder jedem Callback aus auf dasStatus--Objekt zugreifen, indem Sie einfach die globale Variable mit dem NamenStatusverwenden. Darüber hinaus bleibt dasStatus--Objekt zwischen Ausführungen derSandboxbestehen, sodass Sie es zum Speichern von Informationen verwenden können, die Sie in zukünftigen Ausführungen Ihres Skripts haben möchten.

Hinweis:Sie sollten das Statusobjekt verwenden, um Informationen zu speichern, die nur von der API benötigt werden, da diese nicht an Spielercomputer gesendet werden und Ihre Spieldatei nicht größer machen. Speichern Sie Werte, die im Spiel benötigt werden, in den Eigenschaften der Roll20-Objekte.

Speicherbare Typen

DasStatus--Objekt ist nur in der Lage, einfache Datentypen beizubehalten, wie sie vomJSONStandard unterstützt werden.

Typ Beispiele Description:
Boolescher Wert wahrfalsch Der Wertwahroderfalsch.
Anzahl 123,5101,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 Status gespeichert werden, verschwinden sie, wenn derStatuszum ersten Mal aus der Persistenz wiederhergestellt wird, z. B. bei einem Sandbox-Neustart.

  • Hinweis:Dazu gehören Roll20-Objekte, die Sie aus Ereignissen oder den FunktionenfindObjs(),getObj(),filterObjs(),createObj()usw. erhalten.

Wichtige Erinnerungen

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

  • NiemalsDirekte Zuordnung zum StammobjektStatus.
Zustand = { break: 'all the things' }; // TUN SIE DAS NIEMALS!!!

 

  • Vermeiden Siedie Verwendung lokaler Variablen mit dem NamenStatusin Ihren 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, vermeiden Sie sie!
    // ...
}

 

  • ImmerPlatzieren Sie Ihre 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.
Wenn( ! state.MyModuleNamespace ) {
    state.MyModuleNamespace = { module: 'my module', ok: 'das ist in Ordnung!', count: 0 };
}
state.MyModuleNamespace.count++;

Beispielverwendung

Dies ist ein funktionierendes Beispiel, das dasZustand--Objekt entsprechend verwendet.

on('ready',function() {
    "use strict";

    // Überprüfen Sie, ob die Namespace-Eigenschaft vorhanden ist, und erstellen Sie sie, wenn nicht.
    if( ! state.MyModuleNS ) {
        state.MyModuleNS = {
            Version: 1.0,
            Konfiguration: {
                color1: '#ff0000',
                color2: '#0000ff'
            },
            Anzahl: 0
        };
    }

    // Verwenden der Statuseigenschaften zum Konfigurieren einer Nachricht an den Chat. 
    sendChat(
        'Testmodul',
        '<span style="color: '+state.MyModuleNS.config.color1+';">'+
            'Statustest'+
        '</span> '+
        '<span style="color: '+state.MyModuleNS.config.color2+';">'+
            'Skript v'+state.MyModuleNS.version+' gestartet '+(++state.MyModuleNS .count)+' mal!'+
        '</span>'
    );
});

Objekte suchen/filtern

Die API stellt mehrere Hilfsfunktionen zur Verfügung, die zum Auffinden von Objekten verwendet werden können.

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)

Übergeben Sie dieser Funktion eine Liste von Attributen und sie gibt alle übereinstimmenden Objekte als Array zurück. Beachten Sie, dass dies für alle Objekte aller Typen auf allen Seiten gilt. Daher möchten Sie wahrscheinlich mindestens einen Filter für _type und _pageid einschließen, wenn Sie mit Tabletop-Objekten arbeiten.

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 String-Eigenschaften ohne Rücksicht auf die Groß-/Kleinschreibung des Strings verglichen
var targetTokens = findObjs({
    name: "target"
}, {caseInsensitive: true});
//Gibt alle Token mit den Namen „target“, „Target“, „TARGET“ usw. zurück.

filterObjs(Rückruf)

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 der Tischplatte befinden.

getAllObjs()

Gibt ein Array aller Objekte im Spiel (alle Typen) zurück. Entspricht dem Aufruf von filterObjs und der Rückgabe vontruefür jedes Objekt.


getAttrByName(character_id, attribute_name, value_type)

Ruft den Wert eines Attributs ab und verwendet dabei den Standardwert aus dem Zeichenblatt, wenn das Attribut nicht vorhanden ist. value_typeist ein optionaler Parameter, mit dem Sie „current“ oder „max“ angeben können.

getAttrByNameholt nurWert des Attributs, nicht das Attributobjekt selbst. Wenn Sie auf andere Eigenschaften des Attributs als „current“ oder „max“ verweisen oder Eigenschaften des Attributs ändern möchten, müssen Sie eine der anderen oben genannten Funktionen verwenden, z. B.findObjs.

Für sich wiederholende Abschnitte können Sie das FormatRepeating_section_$n_attributeverwenden, wobeindie Nummer der sich wiederholenden Zeile ist (beginnend mit Null). Beispielsweise gibtRepeating_spells_$2_Nameden Wert vonNameaus der dritten Zeile vonRepeating_Spellszurück.

Sie können ein Verhalten erreichen, dasgetAttrByNameentspricht, indem Sie Folgendes tun:

// current und max sind vollständig abhängig vom Attribut und Spielsystem
// in Frage; Es ist keine Funktion verfügbar, 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: Attributename,
            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?
21 von 23 fanden dies hilfreich