Switch to full style
Diskussionen rund um Eressea, das Fantasy-Strategiespiel.
Antwort erstellen

Magellan und Fantasya

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

Re: Magellan und Fantasya

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

Re: Magellan und Fantasya

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.

Re: Magellan und Fantasya

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

Re: Magellan und Fantasya

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.

Re: Magellan und Fantasya

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.

Re: Magellan und Fantasya

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.

Re: Magellan und Fantasya

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?

Re: Magellan und Fantasya

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.

Re: Magellan und Fantasya

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#L854
https://github.com/magellan2/magellan2/ ... r.java#L52

Re: Magellan und Fantasya

12.12.2019 21:29

Ich habe jetzt im Bugtracker den Fehler #415 erstellt.
Antwort erstellen