DestinyScript unterteilt Daten, wie z.B. Zahlen oder Zeichenketten (Strings), in verschiedene Typen. Etwas Ähnliches ist man unter Umständen vom RPG Maker bereits gewohnt, der Switches zum Speichern von einem aus zwei möglichen Werten (meist "OFF" und "ON" genannt) und Variablen für Ganzzahlen in einem je nach Version verschieden definierten Bereich bietet.
Switches vom RPG Maker entsprechen bei DestinyScript und vielen anderen Sprachen einem sogenannten "Bool", nur dass die möglichen Werte andere Fachbezeichnungen haben. "OFF" entspricht einem false oder der 0, "ON" hingegen true, bzw. einer 1.
Die Variablen des RPG Makers sind ein Datentyp, der normalerweise als "Dword" bezeichnet wird. In dieser Dokumentation werden hin und wieder "Variable" und "Dword" in verschiedenen Kontexten als nicht dieselben Dinge erwähnt, auch wenn sie technisch gesehen identisch sind.
Speichergröße | Wertebereich | Anmerkungen | |
---|---|---|---|
Byte | 1 | 0 255 |
Die kleinste Größenordnung für Ganzzahlen. Wird bspw. für Paletteneintrags-Angaben in den Pixeln von Pictures verwendet. |
Word | 2 | -32768 32767 |
Die mittlere Größenordnung für Ganzzahlen. Findet selten Anwendung, kann jedoch zum Kleinhalten von Netzwerk-Datenverkehr genutzt werden, wenn eine Vielzahl eher mittelgroß geratener Werte übertragen werden soll (siehe "Client[]" und "Server"). |
Dword | 4 | -2147483648 2147483647 |
Der größte Wertebereich für Ganzzahlen, den RPG_RT.exe und Destiny.dll bieten können. Wird von DestinyScript sehr häufig genutzt, auch die Variablen des RPG Makers sind technisch gesehen Dwords. |
Float | 8 | -1.7E+308 1.7E+308 -5.0E-324 5.0E-324 |
Speichert bis zu 15 Ziffern einer (Gleit-)Kommazahl, das Komma selbst kann an einer beliebigen Stelle platziert werden. Je mehr Ziffern vor ihm stehen, desto weniger haben dahinter noch Platz (und andersherum). |
Speichergröße | Wertebereich | Anmerkungen | |
---|---|---|---|
Bool | 1 | 0 1 |
Entspricht in DestinyScript einem Byte, beschränkt sich jedoch auf nur zwei mögliche Werte. Entspricht technisch den Switches vom RPG Maker. |
String | 4+N | 0 bis 2147483647 Zeichen |
Das Format für Zeichenketten, das bei allem, was Text ist, Anwendung findet. |
Handle | N/A | N/A | Nur zum Identifizieren von Grafiken gedacht, Speichern nicht möglich. |
Damit gelesene Werte und sonstige Ergebnisse von Abfragen und Aufrufen gespeichert werden können, müssen passende Speicherbereiche existieren. Diese sind in der nachfolgenden Tabelle aufgelistet. Wieviele Werte diese in sich aufnehmen können, variiert je nach Destiny-Version und manuellen Anpassungen.
Datentyp | Herkunft | Anmerkungen | |
---|---|---|---|
a[] | String | Destiny.dll | "A" steht für "ANSI", das Format aller verwendeten Strings. |
d[] | Dword | Destiny.dll | "D" steht für "Dword". |
f[] | Float | Destiny.dll | "F" steht für "Floating Point Number", die englische Bezeichnung für "Gleitkommazahl". |
s[] | Bool | RPG_RT.exe | "S" steht für "Switch" (deutsch auch "Schalter", im Weiteren immer "Switch" betitelt). |
v[] | Dword | RPG_RT.exe | "V" steht für "Variable". |
Von Eigenschaften sowie jenen Methoden, die im Objekte-Bereich dieser Dokumentation den Block für einen "OUTPUT"-Typ unter der Beschreibung stehen haben, kann der jeweilige Wert, der dabei herauskommt, in einer typenpassenden Speicherstelle abgelegt werden.
Das letzte der soeben genannten Beispiele weist die Besonderheit auf, dass "Actor[].Weapon" einen geringeren Zahlen-Datentyp verwendet (Word) als den, dem eine Variable angehört (Dword). In solchen und selbst in umgekehrten Fällen werden Zahlen automatisch in das passende Format geändert, sofern es sich bei Quelle und Ziel jeweils um ein Byte, Word, Dword (bzw. eine Variable) oder Float handelt.
Der Switch aus dem dritten Beispiel wiederum wird durch seine Beschaffenheit als Bool daran scheitern, die gewünschte Information der Größe eines Dwords zu speichern, anschließend wird es zu einer Fehlermeldung kommen. Sollen Zahlen, Bools und/oder Strings untereinander in ein passendes Format geändert werden, muss DestinyScript explizit dazu angewiesen werden (siehe Objekt "Convert").
Die Angabe, auf welchen Teil eines Datenspeicherbereiches (z.B. "d[5]") oder eines Listenobjektes (z.B. "Actor[3]") zugegriffen wird, muss nicht direkt erfolgen. Diese kann auch über die Datenausgabe anderer Werte, Eigenschaften und/oder Methodenaufrufe geregelt werden, wichtig ist nur, dass ein passender Wert dabei herauskommt.