|
Wie erstelle ich Heldenbriefe?
Es gibt prinzipiell drei Möglichkeiten, um Heldenbriefe aus den im DSA4 Werkzeug gespeicherten Helden zu erstellen. Sie bedienen verschiedene Zielgruppen und wünschen.
1. Das einfache Drucken. Dies ist die schnellste und einfachste Methode, jedoch können hier vorhandene Darstellungsfehler schlecht korrigiert werden und der Heldenbrief kann nicht personalisiert werden. Dennoch: in den meisten Fällen reicht es.
2. Das Verarbeiten von Vorlagen. Langsamer Start, aber gut personalsierbar und einfach zu erlernen. Dennoch, vieles ist nicht möglich, und man ist auf mich angewiesen. Trotzdem eine nette Alternative.
3. XSL - mein eindeutiger Favorit, wenn auch die komplexeste Variante - aber auch bei weitem die veränderbarste. Hiermit könnt Ihr den Heldenbrief genauso gestalten, wie Ihr ihn haben wollt. Man braucht aber ein wenig Einarbeitung.
Einfaches DruckenDas geht wirklich einfach - spätestens nachdem die entsprechenden Schriftarten installiert wurden. Die von mir verwendeten Schriftarten finden sich in dem folgenden Paktet: fonts.zip.
Im Heldeneditor wählt Ihr den Knopf "Ausgeben" unten links, und dann die Option "Drucken". Ihr solltet nun eine Druckvorschau sehen. Mit dem Pfeil nach rechts könnt Ihr die zweite Seite (das Talentblatt) anschauen, mit den Prozentangaben könnt Ihr in die Druckvorschau rein- und rauszoomen. Wählt Ihr schließlich "Print" wird der Heldenbrief gedruckt.
Es kann sein, dass Euch die Darstellung nicht gefällt, die Seite zu groß oder zu klein ist, Wörter über den Rand hinausragen - tut mir leid, ich weiß, dass diese Ausgabemöglichkeit nicht perfekt ist. Teilt mir solche Fehler mit, vielleicht sind sie einfach korrigierbar. Ansonsten schaut Euch die anderen Ausgabemöglichkeiten an.
Vorlagen für HeldenbriefeHierbei werden Vorlagendateien - das Format der Vorlagendateien wird weiter unten erklärt - geladen, mit den Daten des Helden verarbeitet und eine Ausgabedatei geschrieben. Da Ihr die Vorlagendateien selber erstellen könnt, können die Heldenbriefe aussehen wie Ihr wollt - ein paar Kleinigkeiten vorausgesetzt, die in der Natur des Vorlagendateienformats liegen.
Wählt im Heldeneditor denjenigen Helden aus, von dem Ihr einen Heldenbrief erstellen wollen. Drückt auf "Ausgeben" (unten links) und dann auf "Vorlage bearbeiten". Jetzt erscheint ein Dialog, mit dem die Vorlagendatei bestimmt wird. Als nächstes wird eingegeben, unter welchen Namen die fertige Datei gespeichert werden soll. Es ist üblicherweise sinnvoll, dass diese Datei die selbe Endung hat, wie die Vorlagendatei. Beispiel: Ist der Name der Vorlage etwa MeineVorlage.html, so nennt die zu speichernde Datei MeinHeld.html (die ID des Helden wird ohnehin automatisch vorgeschlagen). Die erstellte Datei kann dann mit dem für diese Dateien üblichen Programm betrachtet und ausgedruckt werden.
Das DSA4 Werkzeug enthält von vorneherein drei (nicht sonderlich hübsche) Vorlagendateien: in HTML, RTF und TXT. Sie befinden sich im Installationsverzeichnis und tragen den Namen vorlage.html, vorlage.rtf und vorlage.txt.
Wie sehen Vorlagendateien aus?Sie können - und sollen - Vorlagen selber erstellen. Ich würde mich sehr freuen, wenn Sie diese mir zuschicken würden, damit ich sie hier auf der Seite anbieten kann.
Vorlagendatein müssen in einem sogenannten 'clear text'-Format gespeichert sein: das heißt, wenn Sie die Datei in einem einfach Text-Editor wie Notepad öffnen, können Sie den Text (großteils) lesen. Das DSA4 Werkzeug geht nämlich ungeachtet des sonstigen Formats durch die Datei und sucht nach bestimmten Tags. Diese ersetzt es widerum durch die jeweiligen Werte ersetzt. Tags sind immer von Ausrufezeichen (!) eingeschlossen und bestehen nur aus alphanumerischen Zeichen (das sind alle Buchstaben und Zahlen). Gültige Tags wären also !DSA!, !Version!, !k3W1! - Groß- und Kleinschreibung muss hier beachtet werden. !dsa !, !tal 10!, !Name, !t&w! hingegen sind keine gültigen Tags.
Am einfachsten ist es, schaut man sich die bereits mitgelieferten Vorlagen an, damit man ein Gefühl dafür bekommt, wie das System funktioniert. Wenn Sie eigene gestalten, würde ich mich sehr freuen, wenn Sie mir diese zuschicken würden, damit ich Sie hier anbieten kann.
Folgende Tags erkennt das DSA4 Werkzeug V1.21:
!Name! - der Name des Helden
!ID! - die ID, wie sie im Programm mitgeführt wird. Üblicherweise für Heldenbriefe nicht notwendig
!Rasse!, !Kultur!, !Profession! - die jeweilige Bezeichnung
!Geschlecht! - männlich oder weiblich
!MU!, !KL!, !IN!, !CH!, !FF!, !GE!, !KO!, !KK! - die jeweilige Eigenschaft, wobei die Modifikatoren bereits eingerechnet sind
!LE!, !AU!, !AE! - Lebensenergie, Ausdauer, Astralenergie, jeweils die effektiven Maximalwerte. Wenn die Astralenergie 0 ist, wird stattdessen ein Strich (-) zurückgeliefert.
!AT!, !PA!, !FK!, !INI! - die Kampfbasiswerte
!SO! - Sozialstatus
!MR! - Magieresistenz, inklusive aller Modifikatoren
!AP! - Abenteuerpunkte. Das Programm liefert in dieser Version stets 0 zurück, da Helden ja noch nicht gesteigert werden können.
!APG! - Abenteuerpunkteguthaben. Das Programm liefert in dieser Version stets 0 zurück, da Helden noch nicht gesteigert werden können.
!APV! - Verwendete Abenteuerpunkte. Das Programm liefert in dieser Version stets 0 zurück, da Helden noch nicht gesteigert werden können.
!ST! - Stufe. Es wir immer die 1 zurückgegeben, in dieser Version, da Helden noch nicht gesteigert werden können.
Folgende Tags beziehen sich auf Teile des Helden, die er üblicherweise in einer unbestimmten Anzahl hat - Talente, Vorteile, etc. Die ersten zwei Buchstaben - stets kleingeschrieben - verweisen auf das konkrete 'Subsystem' des Helden.
!ch...! - bezieht sich auf die Gesamtheit der Vor- und Nachteile
!vt...! - bezieht sich nur auf die Vorteile
!nt...! - bezieht sich nur auf die Nachteile
!sf...! - zählt nur die Sonderfertigkeiten
!sp...! - bezieht sich auf die Sprachen
!sc...! - auf die Schriften
!kt...! - hier wird auf die Kampftechniken zurückgegriffen
!t...! - hierdurch greifen wir auf Talente zurück, und zwar je nach dem zweiten Buchstaben auf eine bestimme Talentgruppe
!tk...! Körperlich
!tg...! Gesellschaftlich
!tn...! Natur
!tw...! Wissen
!th...! Handwerk
!ta...! Alle fünf genannten Gruppen
Statt den ... muss man noch einsetzen, was man genau haben möchte.
!...l! -Wird 'l' (kleines L) eingesetzt, z.B. !vtl!, wird eine Liste der entsprechenden Elemente zurückgegeben, im Beispiel eine Liste der Vorteile des Helden. Die Elemente werden durch Kommas getrennt und stehen in einer kompakteb Form da: Werte werden hingeschrieben, ob es nun Talentwerte, Stufe o.ä. ist. Sind keine entsprechenden Elemente vorhanden, wird ein Strich (-) zurückgegeben.
!...Anzahl! - gibt die Anzahl der Elemente in dem entsprechenden Subsystem zurück. Ist für die !for!-Anweisung sehr praktisch (siehe weiter unten). !taAnzahl! etwa gibt die Anzahl der Talente des Helden zurück.
!...$! - $ steht für eine Zahl. Hierbei wird das $-te Element zurückgegeben, ebenfalls in einer kompakten Schreibweise (sprich: mit Wert, so passend, u.ä.). Wird dabei etwa mit !nt7! der siebte Nachteil des Helden verlangt, wird einfach nichts zurückgegeben und der Tag gelöscht.
!...$Name! - gibt nur den Namen des $-ten Elements zurück. !tk1Name! gibt den Namen des ersten körperlichen Talents zurück, z.B. Athletik.
!...$W! - gibt den Wert zurück, mit einem vorangehenden + bei positiven Werten. Dies gilt für Talente, Kampftechniken, Sprachen und Schriften.
!...$S! - gibt bei Vor- und Nachteilen (insbesondere bei Schlechten Eigenschaften) die Stufe wieder, sofern vorhanden. Wenn nicht, wird das Tag einfach gelöscht.
!...$Probe! - gibt die Probe, auf welches das Talent geprüft wird, in der Form MU/KK/KL. Das gilt natürlich nur für Talente.
!...$p1!, !...$p2!, !...$p3! - gibt die 1., 2. oder 3. Eigenschaft, auf welche die Probe gewürfelt wird, zurück. Im oberen Beispiel würde also !...$p2! KK zurückgeben. Gilt auch nur für Talente.
!...$aAT!, !...$aPA! - gibt die Boni zurück, die auf Attacke bzw. Parade verteilt wurden (nur Kampftechniken)
!...$AT!, !...$PA! - gibt die tatsächlichen Attacke und Parade-Werte in dieser Kampftechnik wider
!...$M!, !...$Z! - bei Sprachen: gibt an, ob es sich dabei für den Helden um eine Mutter- oder Zweitsprache handelt. Insofern, wird 'Muttersprache' bzw. 'Zweitsprache' zurückgegeben, ansonsten wird das Tag ersatzlos gelöscht.
!...$SKT! - gibt wider, nach welcher Spalte das Talent, die Kampftechnik, die Sprache oder die Schrift gesteigert wird.
!...$Beschreibung! - liefert, sofern im Programm vorhanden, eine kurze Beschreibung. Dies gilt für alle oben genannten Möglichkeiten.
!for!X!(...)!endfor! - dies ist ein besonderer Konstrukt, der dazu dient, um Listen unbekannter oder bekannter Länge zu verarbeiten. X muss eine Zahl sein, oder aber ein Tag, welches zu einer Zahl berechnet wird - wie etwa !chAnzahl! zur Anzahl der vorhandenen Vor- und Nachteile ausgerechnet wird. Dann wird (...) X-mal wiederholt.
Bsp.: !for!2!blah!endfor! wird zu blahblah
Ist X 0, so entfällt das ganze Konstrukt. Doch nicht genug: Befindet sich in (...) das Dollarzeichen $ so wird dieses als Variable durch eine hochzählende Zahl ersetzt.
Bsp.: !for!3!.$..!endfor! wird zu .1...2...3..
In (...) können aber auch weitere Tags vorkommen (und jetzt wird dieser Befehl richtig interessant), und in diesen Tags widerum kann auch das $ vorkommen! Folgender Befehl etwa gibt eine Liste aller Kampftechniken aus: !for!ktAnzahl!!kt$!, !endfor!
for-Schleifen können geschachtelt werden. Das $-Zeichen wird immer durch die entsprechende Zahl ersetzt, außer es stehen zwei Dollarzeichen hintereinander ($$), die werden dann durch eines ersetzt ($) und dann von der äußeren for-Schleife durch eine Zahl ersetzt.
!for!2!!for!3! innen: $ außen: $$ !endfor!!endfor! würde zu innen: 1 außen: 1 innen: 2 außen: 1 innen: 3 außen: 1 innen: 1 außen: 2 innen: 2 außen: 2 innen: 3 außen: 2 innen: 1 außen: 3 innen: 2 außen: 3 innen: 3 außen: 3
Durch das for-Konstrukt ist das sinnvolle Bearbeiten von Listen möglich.
!if!B!(...)!endif! - ist noch nicht implementiert, steht aber auf der ToDo-Liste. Hierbei wird (...) nur geschrieben wenn B wahr ist, und B ist eine Bedingung etwa der Form tkAnzahl=10 u.ä.
Heldenbrief durch XSLWie gesagt ist das meine bevorzugte Variante - aus vielen guten Gründen:
- Es ist die vorgesehene Methode: das DSA4 Werkzeug beruht nicht umsonst auf einem XML-Format - zahlreiche Werkzeuge sind dadurch automatisch verwendbar. Standards ermöglichen eine schnelle Entwicklung
- Standards zu erlernen ist gut: statt die oben vorgestellte Sprache für Vorlagen für das DSA4 Werkzeug zu erlernen - die glücklicherweise sehr einfach ist - sollte man lieber XSL lernen. Es ist zwar schwieriger, aber man hat deutlich mehr davon. Es ist in immer mehr Berufen von Vorteil, sich mit Technologien wie XML, XSL u.ä. sich auszukennen.
- Es ist mächtig: mit XSL:FO kann man etwa direkt aus den exportierten Helden des DSA4 Werkzeugs PDF-Dateien erstellen. Oder eben Websiten, Text-Dateien oder jedes beliebige andere Format. Theoretisch setzt vor allem die Vorstellungskraft hier Grenzen, die Technik aber kaum.
- Es ist eine stabile Methode: es mag vielleicht ein Witz erscheinen, bei einer so jungen Technik von Stabilität zu sprechen - aber dadurch, dass weltweit Abermillionenmal täglich XSL zum Einsatz kommt können wir davon ausgehen, dass sie gut praxisgetestet ist - ganz im Gegensatz zu den anderen beiden Techniken.
- Es ist vollständig personalisierbar: beide anderen Methoden zum Erstellen von Heldenbriefen haben entscheidende Nachteile und Grenzen.
- Ihr seid nicht von mir abhängig: Welche Tags ich hinzufüge, wie ich den Heldenbrief ausdrucke - das entscheide letztlich ich (solange ich der einzige Programmierer des DSA4 Werkzeugs bleibe). Mit XSL habt Ihr eine Möglichkeit, ohne direkt das DSA4 Werkzeug zu verändern, alles einzustellen.
- Es ist eine billige Methode: XSL, XML und die Tools gibt es alle in kostenlosen Varianten, die Standards sind offen und für jeden zugänglich, kostenfreie Tutorials finden sich im Netz zuhauf, man kann XSLs mit jedem beliebigen Texteditor schreiben.
- Ihr könnt am Beispiel lernen: Gerhard Mayers Heldenbrief wird mit dem DSA4 Werkzeug mitgeliefer. Im Programmverzeichnis findet Ihr alle Dateien seines Heldenbriefpakets, insbesondere die HeldenbriefKurzanleitung.html, eine Anleitung von Gerhard, wie das Paket zu benutzen ist. Aber Ihr habt die Möglichkeit seine XSL zu verändern und müsst nich bei Null starten. Und Ihr könnt sehen, wie er bestimmte Probleme gelöst habt und an seinem Beispiel lernen.
- Es ist erweiterbar: Ihr könnt auch Waffen, Inventar und alles beliebige Euren Helden hinzuschreiben und das dann ausdrucken, und müsst nicht warten, bis das DSA4 Werkzeug das beherrscht. Gerhard Mayer macht das am Beispiel der Waffen.
Es hat noch viele weitere Beispiele. Ich werde hier nicht erklären, wie man XSL-Dateien schreibt - dafür gibt es zahlreiche gute Seiten im Netz, gebt in einer beliebigen Suchmaschine einfach "XSL lernen" oder ähnliches ein. Falls das jemand besonders auf das DSA4 Werkzeug abgestimmt schreiben möchte, mag er das gerne tun, ich werde es auf alle Fälle veröffentlichen.
Was ich aber erkläre ist, wie man vorgeht, um mit dem DSA4 Werkzeug XSL zu verwenden und - ganz grob - wie die ganze Technik eigentlich funktioniert.
Wählt man Ausgeben -> XML Exportieren kann man in eine beliebige Datei seinen Helden als XML-Datei exportieren. Dabei sieht die Datei genauso aus, als ob man den Helden ganz normal exportiert hätte, bloß endet die Datei auf .xml statt .xdi und hat zusätzlich die Zeile <?xml-stylesheet type="text/xsl" href="dsa4person.xsl" ?>. Diese kleine Zeile teilt dem XML-fähigen Browser (zur Zeit scheint es bloß im Internet Explorer zu klappen, mit dem Opera und dem Mozilla erzielte ich nicht die gewünschten Ergebnisse) mit, dass die in dieser Datei vorhandenen Daten - der Held eben - mit Hilfe der XSL-Datei dsa4person.xsl verarbeitet werden sollen.
In dsa4person.xsl steht nun darin, wie die einzelnen Elemente der XML Datei, in der unser Held steht, transformiert werden - in dem beigefügten Beispiel in eine (X)HTML-Datei. Erst nachdem der Browser diese Transformation gemacht hat, zeigt er das Ergebnis an.
Die dsa4person.xsl greift dabei noch nebenher auf die data.xdi zurück, um sich Informationen über bestimmte Talente u.ä. zu beschaffen, so dass diese Informationen nicht bei jedem Helden dazugeschrieben werden müssen. Das alles aber macht der Browser automatisch! Nichts davon müsst Ihr ihm beibringen, nur noch das genau 'wie' gilt es auszuformulieren.
Dabei kann XSL alles, was eine normale Programmiersprache auch kann: es kann rechnen, Daten zusammentragen, Entscheidungen treffen etc. In Gerhard Mayers Heldenbrief wird etwa die Seite für die Zauberfertigkeiten nur angezeigt, wenn der Held eine AE größer 0 besitzt. Die Höhe der Tabellen für die Vor- und Nachteile hängen von ihrer tatsächlichen Anzahl ab. Informationen aus zwei Dateien werden zusammengefügt. In einer älteren Version berechnete XSL die AT und PA-Werte selbstständig (dies wurde hinfällig, als das DSA4 Werkzeug die Werte lieferte, dadurch konnte die XSL stark vereinfacht werden).
Zudem ist XSL natürlich auch mit CSS kombinierbar: so kann man in eine CSS leicht veränderbare optische Parameter wie Farben und Schriftarten eintragen, während die XSL den grundlegenden Aufbau des Heldenbriefes enthält und in der vom DSA4 Werkzeug zur Verfügung stehenden XML-Datei die Daten des Helden und schließlich in der data.xdi die gebrauchten sonstigen Werte stehen.
Wie gesagt: durchaus komplex, aber ich glaube fest, dass es sich lohnt. Wenn jemand Fragen hat, oder Anregungen, oder seine Ergebnisse dem Projekt zur Verfügung stellen möchte, kann er sich jederzeit an Gerhard Mayer oder mich, Denny Vrandecic, wenden.
Installation
Hauptmenü
Helden
Heldenbriefe
FAQ
Regeländerungen und -deutungen
e-Mail: denny@nodix.de
|