Pen & Paper - Spielsysteme > GURPS
GURPS Character Sheet!
OldSam:
Neues von der Entwicklungsfront:
Positiv ist, es sind wieder ein paar wichtige Fortschritte zu verzeichnen, leider gab es aber auch einen großen Rückschlag...
Bislang hatten wir für den Datenimport einen provisorischen XML-Filter benutzt, um ein paar Testdaten (Attribute u.ä.) einsetzen zu können, nun habe ich mich dran gesetzt diesen deutlich zu erweitern, um alle benötigten Features abzudecken.
Ärgerlicherweise stellte sich im Laufe dieser Weiterentwicklung heraus, dass die .gcs-Files komplexer sind als gedacht, weil sie in einem größeren Ausmaß Programm-Logik voraussetzen. Einzelne Werte wie Attribute o.ä. lassen sich zwar beim Parsing leicht erfassen, manche Dinge wie z.B. der Schaden den ein Charakter mit einem Breitschwert macht, sind aber ziemlich verwickelt. Im letzteren Beispiel muss nach dem Auslesen des allgemeinen Waffenschadens zunächst die Berechnung des spezifischen Basic Damage im eigenen Programm implementiert werden (weil eben nicht der Ergebnis-Wert in der Datei steht). Das ist zwar zunächst noch gut machbar, führt aber spätestens dann zu größeren Problemen, wenn man versucht vorherzusagen welche Faktoren es alle gibt, die Einfluss auf den Schade haben könnte (bspw. sowas wie Striking ST oder Skill-Boni). - Sehr unschön, weil man so gezwungen wäre ziemlich viel GURPS-Logik zu reimplementieren ohne sicher zu sein alles abgedeckt zu haben und gleichzeitig potentielle neue Fehlerquellen aufmacht :-/
Klar ist daher jetzt, dass der bisherige XML-Parsing-Ansatz mit den .gcs-Files verworfen wird und sich der Alpha-Release noch verzögert. Momentan ist jetzt die Frage, ob wir stattdessen den Weg über ein simples HTML-Export-Template gehen oder doch nochmal den Versuch wagen im GCS selbst eine passende, neue Export-Schnittstelle zu implementieren...
Ayatollah Jones:
Zum Glück ist GCS OpenSource. Einfach mal einen SVN Snapshot (Version vom 02.01.2011) geholt und nachgesehen.
Du musst nicht selber parsen, sondern kannst das dem GCS überlassen. Das geht relativ einfach:
Die Libs GCS.jar sowie TrollworksToolkit.jar müssen sich in deinem Classpath befinden. Beide sind unter ".../gcs/GURPS Character Sheet.app/Contents/Resources/Java"
Dann musst du com.trollworks.ttk.preferences.Preferences initialisieren und kannst über den Konstruktor von com.trollworks.gcs.character.GURPSCharacter(File f) eine entsprechende Objektinstanz erzeugen. Über die kannst du alle Daten des GCS-Charakters abrufen.
Hier eine kleine Beispielklasse für dich:
--- Code: ---/**
* Öffnet eine GCS-Datei und stellt ein Objekt zur Verfügung, mit dem die
* Charakterdaten ausgelesen werden können.
*
* @author Ayatollah Jones
*/
package de.zeroboyz.explorational;
import java.io.File;
import java.io.IOException;
import com.trollworks.gcs.character.GURPSCharacter;
import com.trollworks.ttk.preferences.Preferences;
/**
* Die Klasse GcsWrapper bietet den Zugriff auf ein <code>charcter</code> -
* Objekt aus der GCS-Library
*/
public class GcsWrapper
{
public static void main(String[] args)
{
GcsWrapper wrapper = new GcsWrapper();
try
{
GURPSCharacter gcsChar = wrapper.getCharacter("/dein/pfad/zum/character.gcs");
System.out.println(gcsChar.getDescription().getName());
}
catch (IOException e)
{
e.printStackTrace();
}
}
/**
* Konstruktor stellt die Preferences ein.
* Muss aufgerufen werden
*/
public GcsWrapper()
{
Preferences.setPreferenceFile("gcs.pref");
}
/**
* @see #getCharacter(String)
* @param gcsFile File-Objekt, das auf eine GCS-Datei zeigt.
* @return Ein Charaktersheet-Objekt.
* @throws IOException
*/
public GURPSCharacter getCharacter(File gcsFile) throws IOException
{
return new GURPSCharacter(gcsFile);
}
/**
* Läd aus einem <code>.gcs</code>-File ein GURPSCharacter-Sheet Objekt und
* gibt es zurück
*
* @param filename Pfad zur Datei.
* @return Ein Charaktersheet-Objekt.
* @throws IOException
*/
public GURPSCharacter getCharacter(String filename) throws IOException
{
return getCharacter(new File(filename));
}
}
--- Ende Code ---
Sollte sich dann mal was am GCS ändern, musst du nur noch die Libs austauschen.
Wenn du noch Fragen hast, stehe ich dir gerne zur Verfügung.
OldSam:
--- Zitat von: Ayatollah Jones am 6.01.2011 | 13:56 ---Hier eine kleine Beispielklasse für dich:
--- Ende Zitat ---
Cool, vielen Dank! :d
Das könnte wirklich helfen, ich werde das auf jeden Fall mal ausprobieren... Hatte vor ner Weile mal die Quellen durchgesehen, aber in der Hinsicht nicht viel hingekriegt (mache aber auch nur noch selten was mit Programmierung und mit Java noch seltener)
OldSam:
Das Programm ist jetzt nach längerer Zeit endlich in der frühen "Alpha-Phase" angelangt, d.h. die wichtigen Kern-Funktionen laufen bereits alle! yeeeha! :headbang:
Wir haben gerade angefangen das Ganze ein wenig auf seine Praxistauglichkeit zu testen, um die allernervigsten bugs zu eliminieren und auch ein paar elementare funktionelle Defizite aufzuspüren, also wo eine Zusatzfunktion nötig ist, um den Arbeitsprozess nicht auszubremsen bzw. entscheidend beschleunigen zu können ("gut" ist das natürlich eh noch nicht, aber dann immerhin schon brauchbar). Der "public alpha"-Release wurde deswegen noch ein wenig verzögert, weil das noch keinem viel hilft, der die Spezifika nicht kennt... ;)
In jedem Fall wird es erstmal ein Baustellen-Release, also viele Dinge sind noch unschön und provisorisch, aber nichtsdestotrotz ist das Entscheidende jetzt schon möglich:
Man kann Charakter-Templates mit eigenem Grafik-Hintergrund, eigenen Fonts usw. erstellen, die Variablen aus den .gcs-Dateien importieren und als Werte in das Template eintragen lassen und das Ergebnis dann (zum ausdrucken) als pdf oder png exportieren! :d
Morgen gibt's min. den ersten Screenshot, vielleicht hauen wir auch schon die alpha1-jar-Datei raus, falls jemand damit rumspielen möchte...
Morvar:
Hab im Anhang mal das Ergebnis des BetaTest meines Programmes für den Charakterbogen (gcs) für den GCA rangehängt.
Nur die Programmteile des Bogens sind übersetzt..die Variablen holt er sich ja aus der GCA Datei.
Gruß Morvar
[gelöscht durch Administrator]
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln