Diskussionen rund um Eressea, das Fantasy-Strategiespiel.
24.07.2019 16:39
Hallo!
Ich nutze Magellan auch für die Reports von Fantasya. Jetzt hat Fantasya einige andere Gegenstände als Eressea, ich habe daher im Magellanordner unter Rules eine eigene Config für Fantasya angelegt und die fehlenden Gegenstände ergänzt. Aber es zeigt keine Wirkung in Magellan, ich vermute er lädt die config gar nicht.
Evtl. liegt es am Header der Config
VERSION 42
RULES "$Id: eressea.cr 1392"
MAGELLAN
"magellan.library.gamebinding.EresseaSpecificStuff";class
"ERESSEA";orderFileStartingString
Hat einer eine Idee was ich da für Fantasy eintragen muss?
Gruss
Marcel
08.08.2019 20:04
Fantasya liefert auch einen cr aus? Wie lauten denn da die ersten Zeilen der CR-Text-Datei?
Bei Eressea haben wir da:
VERSION 66
"UTF-8";charset
"de";locale
1;noskillpoints
1562441508;date
"Eressea";Spiel
[...]
Der SpielTag "Eressea" ist der Spielname, und der wird verwendet, um die Rules-Datei zu laden, wenn Du einen Blick werfen willst:
- Code:
private Rules loadRules(String name) throws IOException {
String ending = new File("XML").exists() ? ".xml" : ".cr";
if (name != null) {
name = name.toLowerCase();
}
ending = ending.toLowerCase();
RulesReader.log.fine("loading rules for \"" + name + "\" (ending: " + ending + ")");
File rules = new File(Resources.getResourceDirectory(), "etc/rules/" + name + ending);
[....]
Sollte also "Fantasya";Spiel im cr stehen, sollte die Rules datei fantasya.cr benant sein und schon auch geladen werden. Theoretisch.
Viel Glück
Fiete
08.08.2019 20:15
Bei Fantasya haben wir:
VERSION 64
"utf-8";charset
"de";locale
"fantasya";Spiel
0;noskillpoints
1564931057801;date
"Standart";Konfiguration
Ist zwar kleingeschrieben, aber das sollte in dem Fall egal sein.
08.08.2019 20:32
Danke, na denn:
Damit sollte die Datei wie vorgeschlagen heißen und auch geladen werden. Allerdings befürchte ich, dass McMercy das genauso probiert hat.
Dummerweise erscheint dazu nix in der errors.txt, zumindest nicht beim normalen Laden. Da würde sich ein Blick rein lohnen, ob beim Laden des CRs eine entsprechende Fehlermeldung im Log auftaucht. Das wäre mein zweiter Tipp.
Location der errors.txt auf einem Win 10 Rechner:
C:\Users\{user}\AppData\Roaming\Magellan\default
Gruß
Fiete
09.08.2019 10:25
Die Karten-CRs von meinem privaten Exporter liest Magellan übrigens auch nicht. Da war ein nicht essentielles Tag im Header, auf dem es absolut bestand, kann mich gerade nicht erinnern, welches. Wir haben das damals mit Trial und Error rausgefunden.
Was ist denn 'Standart"; Konfiguration ? Das kann nicht aus Eressea kommen, denn wir schreiben Standard mit D.
10.08.2019 09:52
Hi!
Das Lesen des Cr ist an sich kein Problem, der wird eingelesen. Die Rules Datei heißt fantasya.cr und in der Rules Datei habe ich jetzt auch den Header entsprechend geändert.
VERSION 42
RULES "$Id: fantasya.cr 1392"
MAGELLAN
"magellan.library.gamebinding.EresseaSpecificStuff";class
"fantasya";orderFileStartingString
stutzig macht mich nur die Zeile mit gamebinding.EresseaSpecificStuff, kann es sein, dass dort doch wieder eressea Regeln geladen werden? Kann man in Magellan nirgendwo sehen, welche Rules Datei er nun wirklich geladen hat?
Ich habe jetzt einfach mal die zusätzlichen Items in der Eressea.cr Rules Datei ergänzt und siehe da, es wird in Magellan sauber angezeigt, d.h. es werden trotzdem die Eressea Regeln geladen. Also irgendwo muss noch hinterlegt sein, dass die Regel Datei geladen wird.
27.08.2019 21:32
GameSpecificStuff sind Klassen, die in Magellan extra für bestimmte Spiele programmiert worden sind, weil Anpassungen der Regeldatei dafür nicht ausreichten. Nach Blick in den Code erkenne ich da:
- Allanon
- atlantis
- drac (ich vermute Draconis?)
- e3a (Ich vermute E3)
- e4 (unvollständig)
aber kein Fantasya. Damit vermute ich weiter, dass für Fantasya die normalen Klassen genutzt werden können, soll heißen Eressea.
Warum in Deinem Fall weiter die eressea.cr als Rules geladen werden und nicht die fantasya.cr - kann ich Dir leider nicht sagen. Sry.
08.12.2019 14:50
Ich habe mir mal den Magellan-Quellcode geholt, in Visual Studio Code geladen und per Debug gestartet. loadRules() in RulesReader.java wird mehrfach aufgerufen. Zuerst mit "Fantasya" und die fantasya.cr wird auch geladen, danach aber nochmal mit "Eressea" (per getGameSpecificStuff() in GenericRules.java). Ich nehme an, dass dadurch die Fantasya-Regeln wieder überschrieben werden?
08.12.2019 16:29
klingt danach. Kannst Du sehen, "woher" der Aufruf der loadRules mit "Eressea" kommt? Der ist ja dann falsch, vermutlich irgendein Default-Value.
08.12.2019 18:30
Habe ich ja geschrieben: Die Klasse GenericRules wird geladen und getGameSpecificStuff() lädt dann wieder die Eressea-Regeln (weil die Default sind).
https://github.com/magellan2/magellan2/ ... .java#L854https://github.com/magellan2/magellan2/ ... r.java#L52
12.12.2019 21:29
Ich habe jetzt im Bugtracker den Fehler #415 erstellt.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.