Autor Thema: FBDj - Technik  (Gelesen 20475 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Artist

  • Blasenteetrinker
  • *****
  • Beiträge: 1.061
  • Team Fusion
Re: FBDj - Technik
« Antwort #40 am: 25.Januar.2013, 17:25 »
Du hast ja Recht, aber bevor ich mich in diese Tiefen stürze, will ich wissen, dass "ich hier die richtige Version, den richtigen Quellcode, den richtigen ... habe", ok? Wäre ja doof, wenn ich Stunden mit Suche und Fixing verbracht habe, nur um dann festzustellen, dass der Quellcode, den ich hier habe, die halbfertige und völlig verbuggte 1.9.preAlpha eines Wahnsinnigen war, der damit die Welt von allen Smileys befreien wollte.
 ;)

Offline ZG26-Ruhland

  • Moderator
  • Blasenteetrinker
  • *****
  • Beiträge: 819
Re: FBDj - Technik
« Antwort #41 am: 25.Januar.2013, 23:21 »
Hm, ich habe gerade ein interessantes Gespräch geführt mit einem... sagen wir, einem Befürworter unseres Servers.  ;) Ich habe an euch mal eine PN geschickt, die eventuell einen Teil zur Lösung beitragen könnte.
Das ZG26. Professionelle Fahrzeug- und Gebäudedemontage seit 2008. http://www.zg26.de

Offline usrusr

  • Blasenteetrinker
  • *****
  • Beiträge: 824
Re: FBDj - Technik
« Antwort #42 am: 26.Januar.2013, 00:57 »
Noch mal zu den Gunstats: wenn mir jemand das exakte FBDj.jar vom Server irgendwo hinkopieren könnte, wäre es eine Sache von Minuten, herauszufinden ob die falschen Angaben daran liegen, dass die FBDj-Version zu alt ist oder daran, dass der eingesetzte FBDj eigentlich könnte, aber falsch konfiguriert ist. (die FBDjConfiguration.ser vielleicht eher nicht herumschicken, da steht auch das Datenbankpasswort drin)

Offline SkyDog

  • Administrator
  • Blasenteetrinker
  • *****
  • Beiträge: 882
    • http://www.sturmovik.de
Re: FBDj - Technik
« Antwort #43 am: 26.Januar.2013, 01:01 »
Noch mal zu den Gunstats: wenn mir jemand das exakte FBDj.jar vom Server irgendwo hinkopieren könnte, wäre es eine Sache von Minuten, herauszufinden ob die falschen Angaben daran liegen, dass die FBDj-Version zu alt ist oder daran, dass der eingesetzte FBDj eigentlich könnte, aber falsch konfiguriert ist. (die FBDjConfiguration.ser vielleicht eher nicht herumschicken, da steht auch das Datenbankpasswort drin)

PN
"Ich hätte gerne zwei Martini." "Dry?" "Nein, zwei."
________________________________________
System: i2700K @ 3,5Ghz, 16 Gig RAM, NVidia GTX460, Asus Xonar D1, Windows 10 Pro 64 Bit, 22Zoll 1920x1200

Offline usrusr

  • Blasenteetrinker
  • *****
  • Beiträge: 824
Re: FBDj - Technik
« Antwort #44 am: 26.Januar.2013, 01:06 »
PN
Verdammt, so schnell werde ich auf meine großspurigen Töne von wegen "wenigen Minuten" festgenagelt ;)

Edit:

Genau der Code, den wir bereits besprochen hatten:
    if ((MainController.CONFIG.getServerVersion().equalsIgnoreCase("410m")) ||
      (MainController.CONFIG.getServerVersion().equalsIgnoreCase("411m")))
    {
      this.commandLength = 28;
    } // alle anderen Versionsangaben: 26
und
      this.pilot.setScore(Integer.parseInt(userStatData[1]));
      this.pilot.setEAir(Integer.parseInt(userStatData[3]));

      this.pilot.setFiBull(Integer.parseInt(userStatData[(this.commandLength - 7)]));
      this.pilot.setHiBull(Integer.parseInt(userStatData[(this.commandLength - 6)]));
      this.pilot.setHiABull(Integer.parseInt(userStatData[(this.commandLength - 5)]));
      this.pilot.setFiRock(Integer.parseInt(userStatData[(this.commandLength - 4)]));
      this.pilot.setHiRock(Integer.parseInt(userStatData[(this.commandLength - 3)]));
      this.pilot.setFiBomb(Integer.parseInt(userStatData[(this.commandLength - 2)]));
      this.pilot.setHiBomb(Integer.parseInt(userStatData[(this.commandLength - 1)]));
Ich würde also vermuten, dass serverVersion nicht 410m oder 411m ist.

Im Gegensatz zu meiner früheren Vermutung scheint das aber doch keine frei setzbare Konfigurationsvariable zu sein, sondern wird in CommandServer.java (ein eigener Parser für die Serverversion, die auf der Konsole als Antwort auf "server" kommt!) automatisch eingestellt.

Korrektur: halbautomatisch!

In CommandServer.java findet sich folgendes "Schmuckstück":
        String response = (String)this.commandDataReceived.get(i);
        if (response.startsWith("Description:"))
        {
          String version = response.split("\\(")[1];
          version = version.split("\\)")[0];
          MainController.writeDebugLogFile(1, "IL2 Server Version(" + version + ")");
          MainController.CONFIG.setServerVersion(version);
          break;
        }
Auf deutsch:
FBDj erwartet, dass die Serverversion exakt im Format "blablabla (411m)" in der ServerDescription-Zeile in confs.ini angegeben wird.
ServerDescription=Der Server zu forum.sturmovik.de HSFX (411m), nur echt mit echten Deutschen! würde funktionieren,
ServerDescription=Der Server zu forum.sturmovik.de (411m, HSFX), nur echt mit echten Deutschen!
ServerDescription=Der Server zu forum.sturmovik.de HSFX ( 411m ), nur echt mit echten Deutschen!
ServerDescription=Der Server zu forum.sturmovik.de HSFX (4.11m), nur echt mit echten Deutschen!
ServerDescription=Der Server zu forum.sturmovik.de HSFX [411m], nur echt mit echten Deutschen!
und so weiter führen alle zu defekten Gunstats!
« Letzte Änderung: 26.Januar.2013, 01:27 von usrusr »

Offline usrusr

  • Blasenteetrinker
  • *****
  • Beiträge: 824
Re: FBDj - Technik
« Antwort #45 am: 26.Januar.2013, 01:29 »
FBDj erwartet, dass die Serverversion exakt im Format "blablabla (411m)" in der ServerDescription-Zeile in confs.ini angegeben wird.
ServerDescription=Der Server zu forum.sturmovik.de HSFX (411m), nur echt mit echten Deutschen! würde funktionieren,
ServerDescription=Der Server zu forum.sturmovik.de (411m, HSFX), nur echt mit echten Deutschen!
ServerDescription=Der Server zu forum.sturmovik.de HSFX ( 411m ), nur echt mit echten Deutschen!
ServerDescription=Der Server zu forum.sturmovik.de HSFX (4.11m), nur echt mit echten Deutschen!
ServerDescription=Der Server zu forum.sturmovik.de HSFX [411m], nur echt mit echten Deutschen!
und so weiter führen alle zu defekten Gunstats!
...das alles natürlich nur unter der Annahme, dass der FBDj sein CommandServer auch tatsächlich einsetzt ;)

Offline Artist

  • Blasenteetrinker
  • *****
  • Beiträge: 1.061
  • Team Fusion
Re: FBDj - Technik
« Antwort #46 am: 26.Januar.2013, 12:44 »
@usrusr: Ja, die Stellen habe ich auch schon alle gefunden. Aber bitte der Reihe nach: *Erst* will ich von SykDog, Ruhland, Raven (wo ist eigentlich dieser große Schweiger?  ;)) die oben genannte Bestätigung und *dann* fange ich an zu debuggen und zu fixen und *dann* können wir ausprobieren, ob sich die von Ruhland ergatterten cvs-Dateien einfügen lassen, ok?

@usrusr: Was hast Du denn da für einen Quellcode?
statt
this.pilot.setFiBull(Integer.parseInt(userStatData[(this.commandLength - 7)]));
steht bei mir:
pilot.setFiBull(Integer.parseInt(userStatData[commandLength-7]));

Ich habe hier (MainWindowApp.properties)
Application.version = 1.8b2

@SkyDog, Ruhland, Raven:
Und bitte: Welche Version wird auf fly.sturmovik.de verwendet?

Artist

Offline ZG26-Ruhland

  • Moderator
  • Blasenteetrinker
  • *****
  • Beiträge: 819
Re: FBDj - Technik
« Antwort #47 am: 26.Januar.2013, 13:09 »
@Artist
FBDj Release 1.8Beta2
Das ZG26. Professionelle Fahrzeug- und Gebäudedemontage seit 2008. http://www.zg26.de

Offline Artist

  • Blasenteetrinker
  • *****
  • Beiträge: 1.061
  • Team Fusion
Re: FBDj - Technik
« Antwort #48 am: 26.Januar.2013, 15:39 »
Danke. Dann sind wir auf dem richtigen Weg!  8)

Offline usrusr

  • Blasenteetrinker
  • *****
  • Beiträge: 824
Re: FBDj - Technik
« Antwort #49 am: 26.Januar.2013, 17:56 »
@usrusr: Was hast Du denn da für einen Quellcode?
statt
this.pilot.setFiBull(Integer.parseInt(userStatData[(this.commandLength - 7)]));
steht bei mir:
pilot.setFiBull(Integer.parseInt(userStatData[commandLength-7]));
Decompiler-Output von dem Code, der - egal wie die Version sich nun im Detail nennt - tatsächlich auf dem Server läuft. Die beiden Zeilen bedeuten exakt das gleiche, die obere ist nur etwas umständlicher geschreiben (wie wenn man "(1*2)+3" schreibt statt "1*2+3"). Für den Decompiler ist es natürlich einfacher, immer "this." davorzuschreiben, wenn auf ein member zugegriffen wird als jedes mal einzeln darüber nachzudenken, ob in diesem Fall ein "this." notwendig ist oder nicht.

Solange die ServerDescription-Zeile in confs.ini die Version nicht bereits im benötigten Format angibt sehe ich im Augenblick ehrlich gesagt überhaupt keinen Anlass, irgend etwas zu debuggen oder umzuschreiben: das Gunstat-Problem lässt sich aller Voraussicht nach mit einem kleinen Eingriff in die confs.ini beheben, die verzögerte Aktualisierung der persönlichen Statistik ist dem FBDj von Anfang an in die Wiege gelegt und lässt sich nicht durch einen kleinen Eingriff, der weniger kaputt macht als er verbessert ändern und wenn noch Missionsobjekte in den CSV-Dateien dann müssen die dort sowieso nachgetragen bzw. korrigiert werden. Habe ich noch ein offenes Thema übersehen?

Hilfreich wäre vielleicht noch ein kleines externes Tool, mit dem man automatisch die Objekte in .mis-Dateien mit den CSV-Dateien abgleichen kann. Vielleicht reicht hier aber auch einfach ein aufmerksames Auge auf fbdj/config/Default/FBDjLogFile.txt, ich könnte mir gut vorstellen, dass die unbekannten Objekte, über die der FBDj bisher gestolpert ist dort gemeldet werden.

Offline SkyDog

  • Administrator
  • Blasenteetrinker
  • *****
  • Beiträge: 882
    • http://www.sturmovik.de
Re: FBDj - Technik
« Antwort #50 am: 26.Januar.2013, 18:34 »
Hilfreich wäre vielleicht noch ein kleines externes Tool, mit dem man automatisch die Objekte in .mis-Dateien mit den CSV-Dateien abgleichen kann. Vielleicht reicht hier aber auch einfach ein aufmerksames Auge auf fbdj/config/Default/FBDjLogFile.txt, ich könnte mir gut vorstellen, dass die unbekannten Objekte, über die der FBDj bisher gestolpert ist dort gemeldet werden.

Das log ist leer. Kann man das logging abschalten/einschalten?
"Ich hätte gerne zwei Martini." "Dry?" "Nein, zwei."
________________________________________
System: i2700K @ 3,5Ghz, 16 Gig RAM, NVidia GTX460, Asus Xonar D1, Windows 10 Pro 64 Bit, 22Zoll 1920x1200

Offline Artist

  • Blasenteetrinker
  • *****
  • Beiträge: 1.061
  • Team Fusion
Re: FBDj - Technik
« Antwort #51 am: 26.Januar.2013, 18:41 »
Das log ist leer. Kann man das logging abschalten/einschalten?
Rein geraten: Reiter "Config", Bereich "Dynamic Settings", Eintrag "LogDetail(0,1,2)" auf 1 oder 2 setzen?

Offline usrusr

  • Blasenteetrinker
  • *****
  • Beiträge: 824
Re: FBDj - Technik
« Antwort #52 am: 26.Januar.2013, 20:16 »
Mit 1 sollte man die folgenden CSV-relevanten Einträge im Log finden können, vielleicht wäre es gut, das zunächst mal mit LogDetail=1, aber noch ohne die neuen CSVs zu verifizieren:

"EventLogController.processLocationEvent(PILOTTAKEOFF) - Error Plane name was Unknown for (" + pilotName + ")");
"EventLogController.processVictimEvent - Error Unknown Victim (" + victimName + ") for Attacker (" + attackerName + ")");
"EventLogController.pilotAttackerEvent - Error Unknown Attacker (" + attackerName + ") for Victim (" + victimName + ")");
"EventLogController.pilotAttackerEvent - Error Unknown Victim (" + victimName + ") for Attacker (" + attackerName + ")");
(alles in EventLogController.java)

Immer, wenn eine der "Error Unknown Attacker/Victim"-Meldungen geschrieben wird wurde ein Abschuss gegen Spieler oder Objekt nicht in der Datenbank erfasst, weil FBDj wegen fehlenden CSV-Einträgen (oder übersehenem Pilot-Join? Das ist wohl eher selten ein Problem) nicht erkennen konnte, wie der Abschuss zu klassifizieren ist (Bodenziel oder Luftziel und so weiter)
« Letzte Änderung: 26.Januar.2013, 20:18 von usrusr »

Offline ZG26-Ruhland

  • Moderator
  • Blasenteetrinker
  • *****
  • Beiträge: 819
Re: FBDj - Technik
« Antwort #53 am: 27.Januar.2013, 11:00 »
Wie ich gerade erfahren habe, ist der Raven wohl im Urlaub und deswegen hier nicht zugegen.
Skydog, kannst du dich um diese Sache kümmern?
Das ZG26. Professionelle Fahrzeug- und Gebäudedemontage seit 2008. http://www.zg26.de

Offline ZG26-Ruhland

  • Moderator
  • Blasenteetrinker
  • *****
  • Beiträge: 819
Re: FBDj - Technik
« Antwort #54 am: 27.Januar.2013, 22:24 »
Ich habe den Wert bei LogDetail auf 2 gesetzt (war vorher 0) und werde mal schauen, was sich da tut.
Was wäre der nächste Schritt, wenn ich die von Usr aufgeführten Einträge/Fehlermeldungen vorfinde? Die CSV per C&P austauschen, FBDj neustarten und schauen was passiert?
« Letzte Änderung: 27.Januar.2013, 22:27 von ZG26-Ruhland »
Das ZG26. Professionelle Fahrzeug- und Gebäudedemontage seit 2008. http://www.zg26.de

Offline LoHan

  • Blasenteetrinker
  • *****
  • Beiträge: 2.303
    • Zerstörergeschwader 1
Re: FBDj - Technik
« Antwort #55 am: 27.Januar.2013, 22:39 »
Bloß jut das ich mir datt nich antue.......  8)

Offline SkyDog

  • Administrator
  • Blasenteetrinker
  • *****
  • Beiträge: 882
    • http://www.sturmovik.de
FBDj - Technik
« Antwort #56 am: 27.Januar.2013, 22:40 »
Bin grad außer Landes - ab Donnerstag mache ich wieder mit ...
"Ich hätte gerne zwei Martini." "Dry?" "Nein, zwei."
________________________________________
System: i2700K @ 3,5Ghz, 16 Gig RAM, NVidia GTX460, Asus Xonar D1, Windows 10 Pro 64 Bit, 22Zoll 1920x1200

Offline ZG26-Ruhland

  • Moderator
  • Blasenteetrinker
  • *****
  • Beiträge: 819
Re: FBDj - Technik
« Antwort #57 am: 27.Januar.2013, 22:45 »
@Lohan
Wo bleibst du eigentlich? Fliegen!

@Usr
[27 Jan, 2013 22:34:52] EventLogParser.checkPilotName - Unknown pilotName (860_bld) from eventLog
[27 Jan, 2013 22:34:52] EventLogController.processVictimEvent - Error - Attacker Not found (860_bld) Event (PLANEDAMAGEDBY) Victim (Amarok)
[27 Jan, 2013 22:35:33] EventLogParser.checkPilotName - Unknown pilotName (860_bld) from eventLog
[27 Jan, 2013 22:35:33] EventLogController.processVictimEvent - Error - Attacker Not found (860_bld) Event (SHOTDOWN) Victim (II./ZG26-Lafutsch)
Hier, die beiden sind in das gleiche Bodenobjekt (Palme) hineingerasselt. Das betreffende Bodenobjekt kann ich also genau bestimmen. Und nun?
Das ZG26. Professionelle Fahrzeug- und Gebäudedemontage seit 2008. http://www.zg26.de

Offline Artist

  • Blasenteetrinker
  • *****
  • Beiträge: 1.061
  • Team Fusion
Re: FBDj - Technik
« Antwort #58 am: 27.Januar.2013, 22:49 »
Was wäre der nächste Schritt, wenn ich die von Usr aufgeführten Einträge/Fehlermeldungen vorfinde? Die CSV per C&P austauschen, FBDj neustarten und schauen was passiert?
Bloß nicht! :D
Fehlerlog an usrusr und mich senden und warten bis SkyDog wieder da ist. Sonst kommt alles durcheinander und das ist mit Software selten gut  :-X

Artist

Offline ZG26-Ruhland

  • Moderator
  • Blasenteetrinker
  • *****
  • Beiträge: 819
Re: FBDj - Technik
« Antwort #59 am: 27.Januar.2013, 22:52 »
Ich habe jetzt von Hand das Libyen-Szenario geladen, auf welchem Einsätze mit der A-20 bisher keine Punkte brachten. Ich schicke euch dann morgen Abend die Log-Datei. Hoffen wir, dass bis dahin jemand die A-20 pilotiert hat.  ;)
Das ZG26. Professionelle Fahrzeug- und Gebäudedemontage seit 2008. http://www.zg26.de