API:CDataNodeStorage

Aus STNE-Wiki

Wechseln zu: Navigation, Suche
fertige Scripte | Anleitungen und FAQ | Überblick über die Scripting-Sektion | API-Übersicht | Hilfen zum Arbeiten im Wiki

CDataNodeStorage ermöglicht es, Daten dauerhaft zu speichern. Diese sind dann auch noch vorhanden, wenn das Script nicht gerade ausgeführt wird. Mögliche Daten sind Texte (Strings) und Zahlen (z.B. Integer).

Zum Einrichten einer Datenbank ist lediglich folgende Zeile nötig:

Var Speicher As New CDataNodeStorage('ScriptName_Speicher', 1);

Wenn als zweiter Parameter eine 1 gesetzt ist, wird unter Datenbank->Scripting->Daten ein neuer Eintrag mit dem Namen des ersten Parameters (hier: ScriptName_Speicher) erstellt. Dieser lässt sich auch nicht wieder löschen. Überlege dir also vorher, ob du eine Datenbank anlegen willst.


Mit der Variable Speicher kannst du nun auf die Datenbank zugreifen und Werte reinschreiben.

Beispiel:

Speicher.Items.Add('Knoten');

Damit wird in der Datenbank ein neuer Knoten mit dem Namen Knoten angelegt.

Beachte: Speicher.Items gibt ein Objekt des Typs CDataNodeList zurück! Darin sind alle Elemente der obersten Ebene der Datenbank enthalten.


Struktur

Die Struktur der Datenbank ist folgendermaßen aufgebaut:

   Knoten
   {
       KindKnoten1
       {
            KindKindKnoten='Wert1';
       }
       KindKnoten2='Wert2';        
   }

Das Anlegen der oben gezeigten Struktur funktioniert so:


   Speicher.Items.Add('Knoten');
   Speicher.Item('Knoten').Items.Add('KindKnoten1');
   Speicher.Item('Knoten').Items.Add('KindKnoten2');
   Speicher.Item('Knoten').Items.Item('KindKnoten1').Items.Add('KindKindKnoten');
   Speicher.Item('Knoten').Items.Item('KindKnoten1').Items.Item('KindKindKnoten').Value = 'Wert1';
   Speicher.Item('Knoten').Items.Item('KindKnoten2').Value = 'Wert2';

Das mag natürlich auf den ersten Blick noch etwas verwirrend sein, deshalb jetzt Schritt für Schritt:

- In der ersten Zeile wird der obersten Ebene der Datenbank der Knoten 'Knoten' hinzugefügt.

- In der zweiten Zeile wird nun der gerade neu erstellten Ebene 'Knoten' ein Knoten hinzugefügt ('KindKnoten1') und somit eine neue Ebene erstellt.

- In der dritten Zeile passiert wieder das Gleiche, nur dass diesmal ein zweiter Knoten in die gleiche Ebene wie KindKnoten1 eingefügt wird.

- In der vierten Zeile wir eine weitere Ebene eingefügt, diesmal als Unterebene von 'KindKnoten1'.

- In der fünften Zeile wird dem 'KindKindKnoten' der Wert "Wert1" zugewiesen.

- In der letzten Zeile wird schließlich dem Knoten 'KindKnoten2' der Wert "Wert2" zugewiesen.


Jeder Knoten in der Datenbank kann einen Wert haben. Es muss aber keiner eingetragen werden. Um einen Wert auszulesen verfährt man ähnlich wie beim Eintragen eines Wertes: Speicher.Item('Knoten').Items.Item('KindKnoten2').Value;

gibt den Wert "Wert2" zurück, welcher im Script wie gewohnt verwendet werden kann.


Für eine detailliertere Beschreibung, was man mit der Datenbank so alles machen kann, schau dir den Eintrag zur CDataNodeList an, sowie CDataNode


Methoden

Die Eigenschaften oder Methoden sind die folgenden:

Methode Erklärung
Copy Kopiert die Datenbank und erstellt eine neue mit dem angegebenem Namen
Delete Löscht den Inhalt der Datenbank
Items Gibt ein Objekt des Typs CDataNodeList zurück (wichtigster Parameter)
LoadFromUser Damit kann man eine Datenbank von einem anderen User laden, wenn diese freigegben wurde. ACHTUNG: Fehlermeldung wenn die Datenbank nicht existiert!
Rename Ändert den Namen der Datenbank

Die vollständige Liste findest du direkt im Objektexplorer unter (http://game.stne.net/ObjectExplorer.aspx?p=CDataNodeStorage)


--SimonSlater 16:28, 20. Aug. 2010 (CEST)

Persönliche Werkzeuge