obj.get("property")
auf Eigenschaften von Objekten zugreifen und mitobj.set("property", newvalue)
oderobj.set({property: newvalue, property2: newvalue2})
neue Werte festlegen.Hinweis:Die Eigenschaftid
eines 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.id
anstelle 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 |
|
_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 durch
des Charakters überschrieben wird.
Bei Token-Balken (z. B.bar1_value
undbar1_max
), bei denen der Token mit einem Attribut verknüpft ist (z. B.bar1_link
ist festgelegt), werden durch Festlegen eines Werts für den Balken automatischaktuellen
und/odermax. des zugrunde liegenden Attributs aktualisiert Es gibt auch
Werte, 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 Eigenschaftstatusmarkers
zugreifen, 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:statusmarkers
verwenden, um auf Änderungen an den Statusmarkierungen eines Tokens zu lauschen, und beispielsweisechange:graphic:status_red
ist 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. toFront undtoBack (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 Einstellungfalse wird 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 Eigenschaftenimgsrc
undavatar
bearbeiten können, haben wir zur Sicherheit aller Roll20-Benutzer die folgenden Einschränkungen für diese Eigenschaften eingeführt:
- Sie müssen eine Bilddatei verwenden, die in Ihre Roll20-Bibliothekhochgeladen wurde – keine externe Website (wie Imgur) und nicht den Roll20-Marktplatz. Es beginnt mit „https://s3.amazonaws.com/files.d20.io/images/“für auf den Hauptserver hochgeladene Bilder oder „https://s3.amazonaws.com/files.staging“. .d20.io/images/'für Bilder, die auf den Dev-Server hochgeladen wurden. Sie können die Quell-URL eines Bildes mit den Entwicklertools Ihres Browsers anzeigen.
- Sie müssen die Abfragezeichenfolge in die URL einfügen – zum Beispiel „https://s3.amazonaws.com/files.staging.d20.io/images/123456/med.png?12345678“, nicht nur „https“. ://s3.amazonaws.com/files.staging.d20.io/images/123456/med.png'
- Für Grafikobjekte (Tokens) müssen Sie die „Daumen“-Größe des Bildes verwenden. Es sollte wie folgt aussehen: „https://s3.amazonaws.com/files.staging.d20.io/images/123456/thumb.png?12345678“.
In 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.
getAttrByName
holt 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()
undefiniert
zurü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 FunktioncreateObj
können Sie im Spiel ein neues Objekt erstellen. Sie müssen den Typ des Objekts (eine der gültigen_type
Eigenschaften aus der obigen Objektliste) sowie einAttribute
Objekt ü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-ID
einbeziehen. 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.
createObj
gibt 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 VariableZustand
ist 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 NamenStatus
verwenden. 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 |
wahr falsch
|
Der Wertwahr oderfalsch . |
Anzahl |
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 Status gespeichert werden, verschwinden sie, wenn derStatus
zum 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 Funktionen
findObjs()
,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 Stammobjekt
Status
.
Zustand = { break: 'all the things' }; // TUN SIE DAS NIEMALS!!!
-
Vermeiden Siedie Verwendung lokaler Variablen mit dem Namen
Status
in 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 wie
Skript
oderEinstellungen
. 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 vontrue
fü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_type
ist ein optionaler Parameter, mit dem Sie „current“ oder „max“ angeben können.
getAttrByName
holt 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_attribute
verwenden, wobein
die Nummer der sich wiederholenden Zeile ist (beginnend mit Null). Beispielsweise gibtRepeating_spells_$2_Name
den Wert vonName
aus der dritten Zeile vonRepeating_Spells
zurück.
Sie können ein Verhalten erreichen, dasgetAttrByName
entspricht, 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');
}
}