DEdit – Datenbank Editor

Dokumentations version 1.0d , 2004-06-05


PickPocket-Item Tutorial 1: Schritt für Schritt zu einer ersten, einfachen Datenbank

Schritt 1: DEdit starten und ein RPS auswählen.

Das erste, was wir tun, sobald DEdit geladen wird, ist das gegegnete System, roleplaying system (RPS) genannt, auszuwählen. Im linken oberen Eck des Editors befindet sich die Auswahlbox, in der alle derzeit zur Verfügung stehenden Systeme aufgelistet sind. Mit Klick auf das kleine Dreieck erhalten wir die Auswahlliste, und wählen AD&D – Deutsch.

 

Das gewählte RPS definiert eine Reihe wichtiger Paramter für die Datenbank. z.B. die Speicher-Ordnern, die Sprache, verfügbare Tavernentypen & Rassen, usw. Das "Standard" RPS ist "AD&D - English". In diesem Tutorial verwenden wir die deutsprachige Version "AD&D - Deutsch". Für mehr Informationen zum RPS, lesen sie die RPSEdit Dokumentation.

Schritt 2: Einen neuen Datensatz anlegen

Zuerst überprüfen wir, ob wir auf der PPItem-Seite arbeiten. Der Bildschirm von DEdit ist aus verschiedenen Seiten wie ein Karteikartensystem aufgebaut. Die einzelnen Seiten können durch einen Klick auf den Namen der Seite am oberen Rand nach vorne gebracht werden. Wir klicken daher auf "PPItems".

In der oberen, rechten Ecke der Seite befindet sich ein Knopf New....Darauf klicken wir nun, um einen neuen Datensatz anzulegen. Ein New PPItem Fenster mit einem Auswahlmenü verschiedener Objekttypen und Subtypen erscheint. Wir wählen Rucksackgegenstand als Objekttyp und Proviant als Subtyp. Dann klicken wir auf OK. Ein leerer "Rucksackgegenstand/Proviant" Eintrag wird der Datenbank hinzugefügt.

 

Vorsicht: Der New.. Knopf am oberen Rand (-den wir gerade dazu benutzt haben, einen Datensatz hinzuzufügen) darf nicht mit dem New... Knopf am unteren Bildschirmrand verwechselt werden. Dieser Knopf legt einen neue Datenbank an! Ist die momentane Datenbank nicht gesichert, so erscheint eine Warnung, ob die Datenbank gesichert werden soll. Mit "Abbrechen" kehrt man wieder zurück.

Schritt 3: Den Eintrag schreiben

Es gibt zwei Textfelder auf der PPItem-Seite. Eines ist mit Long (lang) das andere mit Short (kurz) bezeichnet. Wir klicken in das Short Feld um unseren Cursor dort zu bestimmen. In dem Feld kann nun die Beschreibung geschrieben werden, wobei es wichtig ist, sich an die Grammatik-Regeln für den Objekttyp (in diesem Fall Rucksackgegenstand/Proviant) zu halten! Diese können entweder an anderen Datensätzen des Objekttyps erkannt werden, oder im TavernMaker-Feedback-Forum nachgelesen werden. Wir schreiben jetzt einfach

 

 z.B. ein Topf mit Marmelade

 

Nun klicken wir in das Long-Feld, um den Cursor dort zu erhalten. Hier schreiben wir jetzt

 

 z.B. Ein Topf mit Pfirsichmarmelade.

 

Wichtig: 

-          Zeilen müssen nicht mit "Return" abgeschlossen werden, da TavernMaker einen automatischen Zeilenumbruch macht.

-          Es können keine Tabulatoren benützt werden.

-          Folgende Zeichen sind im Text nicht erlaubt: § $ % < > { }

 

 

Die Grammatik-Regeln für die einzelnen Objekttypen sind absolut wichtig! Eine PPItem-Datenbank ist eine Datenbank von "Textbausteinen", die in die eigenltichen Beschreibungen dann per $DB-Befehl eingefügt werden. Innerhalb eines Objekttyps müssen sie daher untereinander austauschbar sein. Wird z.B. ein Objekttyp so definiert, dass er mit Artikel im 4.Fall beginnt, so kann er in der Beschreibung z.B. an Stellen wir "Er spricht über <...>" eingesetzt werden und z.B. ergeben: "Er spricht über das Wetter". Wenn nun aber eine Eintragung plötzlich mit unbestimmten Artikel und im ersten Fall steht, würde der Satz höchst seltsam aussehen, etwa: "Er spricht über ein Baum". Zu den richtigen Objekttypen gibt es ein eigenes Tutorial "Wie finde ich die richtigen Grammatik-Regeln für PPItems?". Für den Augenblick jedoch reicht es, diesem Tutorial Schritt für Schritt zu folgen.

Schritt 4: Flags – wealth

Der Schieber links unten ist mit Wealth beschriftet. Frei übersetzt "Wohlstand". Hier wird der durchschnittliche Wert, dem dieser Datensatz angehören soll, eingestellt. Wenn die Beschreibungen nicht für einen bestimmten Wert beschränkt sein sollen, kann die Einstellung auf 0 = alle wealth levels bleiben. Oft beschreibt der Datensatz aber "wertvolle" oder "billige" Objekte. In so einem Fall kann ein Wert zwischen 1 = extrem armselig ,  5 = durchschnittlich ,  10 = extrem wertvoll eingestellt werden. Entweder, indem der Schieber verschoben wird, oder indem man ins Feld links daneben den entsprechenden Zahlenwert eingibt.

 

Unsere Marmeladentopf kann sich im Gepäck von so ziemlich jedem befinden. Daher lassen wir den wealth flag auf 0.

 

So wie die Flags bei den Beschreibungen die Auswahl der Datensätze bei der Texterzeugung limitieren, limitieren die PPItem Flags die Auswahl der Einträge, die mittels $DB Befehl in den Beschreibungen (zufällig) eingefügt werden. Immer, wenn in einer Beschreibung ein $DB Befehl ausgeführt wird, werden alle PPItem-Datenbanken durch die Flags gefiltered und danach einer zufällig gewählt.
Der wealth Flag von PPItem-Einträgen wirkt jedoch ein wenig anders als der wealth Flag der Beschreibungen. Für Beschreibungen gilt: Die vom Benutzer in WinTavern eingestellte Peisklasse der Tavernen limitiert die Auswahl der Beschreibungen. (z.B. "teure Tavernen" lassen nur Datensätze mit wealth 5-10 zu.)
Für PPItem-Datenbanken gilt aber: Der wealth Flag der Beschreibung (aus der der $DB Befehl aufgerufen wird) limitiert die Auswahl der PPItem-Einträge! Ein Beispiel. Der Benutzer erzeugt eine "billige" Taverne, indem er die Preisklasse "billig" gewählt hat.. Es werden nur Beschreibungen mit einem wealth flag von 1-5 (bzw. 0) zugelassen. Der Computer wählt zufällig eine Beschreibung mit wealth flag 5. Innerhalb der Beschreibung wird der $DB Befehl verwendet, um ein Schwert zu generieren. Der "Wert" dieses Schwertes liegt jetzt aber nicht mehr im wealth flag von 1-5, sondern (da der Befehl in einer Beschreibung mit wealth 5 steht) im Bereich 3-8. Es könnte also mit "8" durchaus ein überdurchschnittlich wertvolles Schwert ausgewählt werde!
Teure Gegenstände können also durchaus in billigen Tavernen, jedoch nicht an billigen Tischen ausgwählt werden!

Schritt 5: Flags – tavern type

Es gibt zwei kombinierte Drop-Down-Listen-Felder auf der PPItem-Seite. Das oberste wird mit Tavern type bezeichnet. Hier wählen wir, für welche Tavernentyen unser PPItem-Textbaustein erlaubt ist. Aus dem Drop-Down-Menu kann ein Eintrag gewählt und anschließend mit dem Add Knopf in die Liste aufgenommen werden. Um einen Eintrag wieder zu entfernen, muß er in der Liste aktiviert werden und mit dem Delete Knopf gelöscht werden. Wenn der Typ alle hinzugefügt wird, wird die Liste automatisch bis auf diesen Eintrag geleert. Wie die Bezeichnung es schon sagt, sind derartige Datensätze für alle Tavernen geeignet. .

 

Wir wollen einmal davon ausgehen, dass sich ein Marmeladentopf nur im Gepäck eines Reisenden befinden kann, da man ihn sonst nicht mit sich herum schleppen würde. Daher wählen wir den Typ: Gasthaus an einer Reiseroute.

 

Tavern type Flags sind unmittelbar mit den in WinTavern ausgewählten Tavernentypen verknüpft. Wird dort zB ein Restaurant generiert, so werden nur Datensätze mit den Flags alle oder Restaurant zugelassen.

Schritt 6: Flags – races

Die zweite kombinierte Drop-Down-Liste ist mit Race flags beschriftet. Hier wird ausgewählt, für welche Rassen der PPItem-Textbaustein erlaubt ist. Alle gesetzten Flags sind hier mit einem logischen ODER verknüpft. Das bedeutet, wenn etwa Gnome und Halblinge gesetzt sind, kann der Textbaustein in Beschreibungen auftauchen, die entweder Gnome oder Halblinge oder beides in ihren Rassen-Flags stehen haben.

PPItem-Textbausteine mit dem Flag unbekannt können überall verwendet werden.

 

Da wir jeder der Rassen die Marmelade zutrauen, verwenden wir die Einstellung: unbekannt.

 

An dieser Stelle möchte ich darauf hinweisen, dass die race flags hier in den PPItem-Textbausteinen unterschiedlich von den race flags in den (Tisch-)Beschreibungen funktionieren. Während die race flags in den Beschreibungen sämtlich erwähnten Rassen aufzählen, werden sie bei den PPItem-Textbausteinen als Limitierung der verwendbaren Datensätze verwendet. In Beispielen: In einer "rein menschlichen Taverne" mit "rein menschlichen Gästen" sollte keiner der Gäste ein "Elfenschwert" tragen. Auch wäre es höchst unwahrscheinlich, dass ein Zwerg einen elfischen Langbogen trägt... Natürlich gibt es Ausnahmen (etwa das Geschenk des Elfenkönigs and den Zwergenheld..), aber derart spezielle Beschreibungs-Datensätze müssen die fortgeschrittenen Script Befehle verwenden. Darum müssen wir uns aber beim Erstellen der PPItem-Datenbank keinerlei Gedanken machen. Hier geht es einfacher: Es wird ein "Elfenschwert" beschriebeb, also bekommt der Datensatz den race flags "Elfen" und unter Umständen noch "Halbelfen" - fertig.

Schritt 7: Flags – chance

In der unteren linken Ekce befindet sich eine Zahlen-Box namens Chance. Hier wird eingegeben, mit welcher (relativen) Wahrscheinlichkeit dieser PPItem-Textbaustein ausgewählt werden kann. Normalerweise bleibt der Wert auf 100%, doch für seltenere Dinge kann er auf einen niedrigeren Wert gesetzt werden. Wir beschließen, dass unser Marmeladetopf etwas durchaus alltägliches ist, und lassen den Wert bei 100%.

 

Was genau ist dieser Chance? Jedesmal, wenn der $DB Befehl einen Eintrag wählt, wird die PPItem-Datebank zunächst auf ihre Flags gefiltert und anschließend ein Eintrag zufällig gewählt. Was würde nun passieren, gäbe es in der Datenbank 9 Beschreibungen für durchschnittliche Schwerter und eine Beschreibung für ein heiliges Schwert mit magischem Bonus +5 ? Bei einer reinen, zufälligen Auswahl würde durchschnittlich jeder zehnte Gast, der ein Schwert besitzt, auch ein derartig seltenes Schwert bei sich tragen! Das ist mit Sicherheit kein wünschenswertes Ergebnis. Wenn nun jedoch die Chance dieser seltenen Waffe auf 1% gesetzt wird, so besthet bei einer zufälligen Wahl nur eine 1%-Chance, dass der Eintrag akzeptiert wird. Die Gesamt-Wahrscheinlich keit hat sich daher von 10% auf 0,1% gesenkt, und nur jeder 1000 Gast wird (im Durchschnitt) so eine Waffe tragen.

Schritt 8: Flags – unique

Ebenfalls in der linken unteren Ekce befindet sich eine Checkbox mit Namen Unique (=einmalig). Hier wird gewählt, ob der selbe PPItem-Textbaustein innerhalb einer generierten Taverne mehrmals auftauchen darf. Wir beschließen, dass unser Marmeladentopf durchaus in mehreren Rucksäcken auftauchen könnte, das es jedoch merkwürdig wäre, würden alle Menschen nur Pfirsich-Marmelade mit sich herumtragen. Daher wollen wir den Eintrag pro Taverne nur einmal zulassen, und die Checkbox wird daher angekreuzt.

Schritt 9: Speichern der Datenbank

Jetzt haben wir unseren ersten Eintrag abgeschlossen. Es ist daher an der Zeit, die Datenbank zu speichern. In der rechten, unteren Ecke der PPItem-Seite findet sich ein Save... Knopf. Wir klicken darauf und bekommen ein Standard-Windows-Save-Fenster. Es befindet sich (-danke RPS-) automatisch im richtigen Verzeichnis, so daß im Regelfall in kein anderes Verzeichnis gewechselt werden muß. Einfach einen Dateinamen eingeben und speichern anklicken.

Der Dateityp ist automatisch PPItem database und der Suffix *.txt. Weder das eine noch das andere davon kann geändert werden.

Sobald eine Datenbank gespeichert wurde, erscheint ihre Pfad-Angabe in der Titelleiste des DEdit Fensters. Ein Stern nach dem Dateinamen zeigt an, dass die geöffnete Datenbank verändert und noch nicht gesichert wurde.

 

Manchmal (-nicht wenn wir hier alles richtig gemacht haben-) erscheint beim Speichern ein Check Results Pop-up Fenster. DEdit überprüft beim Speichern automatisch, ob alle wesentlichen Einträge gemacht wurden. Findet es Fehler, so werden die betroffenen Datensätze in rot angezeigt.

Schritt 10: mehr Flexibilität hinzufügen

Nun haben wir also unseren Marmeladentopf. Großartig. Aber er beinhaltet immer nur Pfirsichmarmelade, und das ist auf die Dauer doch recht eintönig. Wir könnten nun einfach einen weiteren "Marmeladen-Topf" Eintrag mit anderere Marmelade erstellen, oder - und das geht viel besser - wir können TavernMakers Skript-Befehle verwenden. Die meisten der Befehle, die auch in den Beschreibungen der Tische funktionieren, könne auch für PPItem-Textbausteine verwendet werden. Speziell die Befehle $OneOf , $Direct und $Random sollten wir hier gut gebrauchen können! Erweitern wir unseren Marmeladentopf doch mit dem $OneOf Befehl...

Wir können die Ausgabe (wie bei den Beschreibungen auch) durch Gedrückt-halten der F4-Taste als Vorschau betrachten. Da unser Marmeladentopf nun bei jedem Aufruf etwas anderes beinhaltet, kann der Datensatz innerhalb einer Taverne ruhig mehrmals verwendet werden. Aus diesem Grund werden wir die unique Checkbox nicht ankreuzen. Wir speichern die Datenbank mit dem Tasten-Kürzel
STRG + S
(Quicksave).

 

Es ist sehr wichtig zu überprüfen, dass wirklich alle möglichen Ausgaben einen Datensatzes mit den gewählten Flags übereinstimmen!
Aus diesem Grund ist es daher zum Beispiel nicht zulässig, einen Satz wie den folgenden zu schreiben: "Dieser Ring ist $OneOf{<wertvoll>,<billig>}."
Welcher Wealth-Flag sollte jetzt hier gewählt werden? In solchen Fällen ist es notwendig, wirklich zwei unterschiedliche Datenbank-Einträge zu machen. Einen mit "wertvoll" und Wealth>6 und einen mit "billig" und Wealth<4.
Ähnliches gilt für die anderen Flags.

Schritt 11: Mehr Einträge - einige Ratschläge

Wir wissen jetzt, wie man einen gültigen Eintrag erstellt. Einfach Schritt 2 bis 8 wiederholen und mehrere Datensätze schreiben! Folgende Ratschläge/Hinweise:

 

 

Qualität ist wichtig! Es ist besser, wenige Eintragungen mit großer Portion an Kreativität zu schreiben, anstatt einer Masse an mehr oder weniger ähnlichen Beschreibungen mit nur leichten Abänderungen. Für diese eignen sich die Skript-Befehle viel, viel besser!

 

Es ist wichtig, dass short text und the long text eines Datensatzes zusammen passen! (Vorschau bei gedrückter F4-Tastet).
Ein Beispiel. Wenn wor dem $OneOf Befhel verwenden um ein Schwert einmal 'scharf' und einmal 'schartig' zu erzeugen, und wir wollen dies auch im Shorttext erwähnen ('ein scharitges Schwert') dann ist es
nicht genug, den selben $OneOf Befehl auch dort zu verwenden! Warum? Beide Befehle werden unabhängig behandelt, und so kann es passieren, dass im short text von einem "schartigen Schwert" die Rede ist, in dessen Beschreibung dann aber das "scharfe Schwert" beschrieben wird! Diese Probleme können mittels Script-Variablen gelöst werden. Das wird aber erst in fortgeschrittenen Tutorials erklärt. Für einfache Datenbanken gilt die Regel: Mit F4-Taste überprüfen, dass die Ausgabe stets zusammen passt. Im Zweifelsfall lieber zwei Datensätze anstatt einem mit $OneOf.

 

Ein dritter, absolut wichtiger Punkt sind die Grammatischen Regeln der Datensätze. Datensätze eines Typs müssen grammatikalisch immer zusammen passen.

 

Allen Anfängen empfehle ich zunächst einmal, vorhandene Datentypen/Subtypen auszubauen, und einfach dem Beispiel der existierenden Datansätze zu folgen. Später, wenn der Umgang mit den PPItems klarer ist, können dann eigene Datentypen erzeugt werden. Dabei ist jedoch darauf zu achten, dass keine bereits verwendeten Typennamen gewählt werden! Im Zweifelsfall im Forum bzw. per Email nachfragen!

Schritt 13: Datenbank Kommentare

Jede Datenbank hat einen kleinen comment-Bereich, in dem Erzeugungsdatum, Datenbank-Autor und einige Textzeilen gespeichert sind. Dieser Bereich wird über den Comments... Knopf aufgerufen.

Schritt 14: Testen & Verifizieren

Sobald eine Datenbank im richtigen Verzeichnis gespeichert ist, wird sie von TavernMaker auch verwendet. TavernMaker verwendet automatisch alle gültigen Datenbanken im vom RPS angegebenen Verzeichnis. Entfernt man daher alle anderen Datenbanken, außer die eigenen, so wird nur diese für Testzwecke verwendet.

PPItem Datenbanken lassen sich jedoch auf nach folgender Anleitung rasch testen:

-          Speichern der PPItem Datenbank (CRTL + S)

-          Zur Descriptions-Seiten von DEdit wechseln

-          Eine neue Beschreibung anlegen (beliebiger Typ)

-          Den Cursor in einem der beiden Textfelder platzieren

-          Auswahl von Typ/Subtyp in den Listboxen von “Add $DB” und Einfügen des Befehls.

-          Einen typsichen Satz schreiben, in dem der zu testende PPItem-Textbaustein verwendet werden soll (sowohl mit %s als auch mit %l im $DB Befehl).

-          Mit F4 die unterschiedlichen Möglichkeiten der Ergebnisse überprüfen. Alles so, wie erwünscht?

 

Sobald man mit den Ergebnissen der Datenbank zufrieden ist, sollte man sie an den Projektleiter schicken.

Dies ist ein wichtiger Schritt, denn nur der Projektleiter kann eine Datenbank verifizieren, und nur derat behandelte Datenbanken können mit anderen Usern getauscht werden. Konkret bedeutet das: TavernMaker akzeptiert alle Datenbanken als gültig, wenn sie vom selben Autor erstellt wurden, für den TavernMaker auf diesem PC registriert wurde (für Test-Zwecke), und solche, die von einem Projektleiter verifiziert wurden.

 

Daher: Die eigenen Datenbanken nicht weitergeben!

Das Konzept von TeamWare ist, dass alle am selben Strang ziehen. Meine Erfahrung mit meiner ursprünglichen TavernMaker-Version hat gezeigt, dass viele User zwar Datenbanken schreiben, sie aber dann 'vergessen' an mich zu schicken. Das Ergebnis war ein Chaos von verschiedentsten Programm- & Datenbankversionen im Netz. Um diese zu umgehen, haben wir die Registrierung und das Verifizieren der Datenbanken eingeführt. Auf diese Weise laufen alle Linien wieder am zentralen Punkt der TavernMaker-Homepage zusammen. Zum Nutzen von allen.

Die TavernMaker Homepage ist daher der einzige Ort, an dem das Programm & die AddOns als Downloads zur Verfügung stehen.

Ich freue mich sehr über einen Link zu dieser Seite, aber bitte keine TavernMaker-Dateien von anderen Seiten aus zum Download anbieten!