Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Page 1 of 2 12 Last »
Results 1 to 20 of 23
  1. View Forum Posts #1 Reply With Quote
    Ehrengarde Gottfried's Avatar
    Join Date
    Mar 2006
    Posts
    2,512
     
    Gottfried is offline

    [Tool] DecDat

    DecDat

    Der eine oder andere erinnert sich vielleicht noch an das, ebenfalls von mir zusammengeschraubte Tool ReaDat. Das hier vorgestellte DecDat (Oder kurz: "d2") kann ungefähr als großer Bruder von ebendiesem betrachtet werden.

    Aber wozu braucht man einen großen Bruder? DecDat kann etwas mehr als ReaDat, und das was ReaDat konnte in verbesserter Art und Weise.
    ReaDat konnte benutzt werden um sich den Inhalt einer Dat zu Gemüte zu führen. Es wurden alle Symbole aufgelistet und über verschiedene Tabellen verteilt, Funktionen, Instanzen und Prototypen konnte man sich in Form der Parsertokens genauer ansehen.
    DecDat geht noch einen Schritt weiter: Es ist möglich den Daedaluscode (fast*) in seiner Urform anzuzeigen. Das konnte der GothicSourcer auch, allerdings hat der bei schmutzigeren Angelegenheiten (Ikarus und LeCo.) gerne aufgegeben.

    Neben diesem neuen Hauptaspekt, der Möglichkeit die Dat vollständig als Daedalusscript zu rekonstruieren (Über die Exportdefinition auch über mehrere Dateien verteilt) wurde das Interface überarbeitet. Es gibt nur noch eine Tabelle in der alle Symbole aufgelistet sind, dafür ist ein neues Suchfeld hinzugekommen, das mit Regulären Ausdrücken gefüttert werden kann. (Das fehlende Suchfeld hat ReaDat ziemlich nutzlos gemacht, finde ich.)
    Bisher ist nur die Suche nach ID, Typ und Name möglich, mir ist bewusst dass das immer noch beschränkt ist, aber immerhin besser als nichts.

    Ohne jetzt zu weit abzuschweifen: Ich habe dieses Tool aus zwei Gründen erstellt.
    1. Ich habe den Quellcode von ReaDat verloren und es ist unwartbar geworden - trotz einiger Makel die ich noch ausmerzen wollte
    2. Ich brauchte eine verlässliche Möglichkeit eine .dat wieder zu rekonstruieren. (Auch mit anspruchsvollerem Code, den der Gothicsourcer nicht packt.)

    Das Tool kann, wie ReaDat auch, genutzt werden um den Bytecode besser zu verstehen, gleichzeitig kann es als letzter Notnagel verloren geglaubter Skripte dienen.
    Zu der mysteriösen "Exportdefinition", sowieso zu den Regulären Ausdrücken und den Kürzeln der Tokens sind knappe Hilfedateien in das Programm integriert.

    * Beim Parsen der Scripte gehen ein paar Informationen verloren, so kann es sein dass ein Instanzname als int interpretiert wird oä. Wer wirklich eine .dat vollständig benutzbar machen möchte, sollte auf jeden Fall die Reihenfolge der Symbole einhalten!
    Desweiteren geht natürlich die Formatierung verloren.


    Dieses Programm wurde entgegen der anderen Tools die ich bisher hier her geschleppt habe nicht mit C# angefertigt, sondern mit Java. (Swing für die Oberfläche.)
    Ich kann bisher noch keinen fehlerfreien Export garantieren. Wer einen Fehler findet möge ihn bitte melden!

    In weiser Vorraussicht hänge ich den Quellcode dieses Mal direkt an. Ich möchte ihn nicht nochmal verlieren

    Ich wünsche allen interressierten ein fröhliches Dekompilieren!

    MfG Gottfried
    Attached Thumbnails Attached Thumbnails DecDat_Gui.png  
    Attached Files
    Last edited by Gottfried; 22.05.2012 at 22:48.

  2. View Forum Posts #2 Reply With Quote
    research NicoDE's Avatar
    Join Date
    Dec 2004
    Posts
    7,410
     
    NicoDE is offline
    Dein Programm ist großartig!
    Es wird mir in ein paar Wochen die Arbeit wesentlich vereinfachen. Vielen vielen Dank für die Mühen und das Bereitstellen der Quelltexte.

    ps@Lehona: Netter Versuch
    "Unter diesen schwierigen Umständen bin ich mir sicher, daß diese guten Menschen meinen augenblicklichen Bedarf an deren Gold verstehen werden." -- Connor
    Last edited by NicoDE; 23.05.2012 at 23:10.

  3. View Forum Posts #3 Reply With Quote
    Dea
    Join Date
    Jul 2007
    Posts
    10,455
     
    Lehona is offline
    Quote Originally Posted by NicoDE View Post
    Dein Programm ist großartig!
    Es wird mir in ein paar Wochen die Arbeit wesentlich vereinfachen. Vielen vielen Dank für die Mühen und das Bereitstellen der Quelltexte.
    Da du dich in Rätseln ausdrückst übernehm ich das mal: Wirst du uns eventuell mitteilen wofür du DecDat benutzen möchtest? Klingt ja doch sehr interessant.

    Edit: Immer diese Geheimniskrämerei *mecker*
    Last edited by Lehona; 23.05.2012 at 23:30.

  4. #4 Reply With Quote
    Marcello
    Gast
     
    hallo gottfried,

    ich hoffe, ich habe das richtig verstanden: man kann mit deinem programm sozusagen kompilierte dateien manipulieren und sie wieder über die exportfunktion z.b. als .dat zusammenfügen, d.h. das original wurde dann verändert, auch wenn ein paar infos verloren gehen?

    unabhängig davon gefällt es mir wirklich gut.
    Last edited by Marcello; 19.02.2014 at 22:37.

  5. View Forum Posts #5 Reply With Quote
    Dea
    Join Date
    Jul 2007
    Posts
    10,455
     
    Lehona is offline
    Man kann damit kompilierte .dat-Dateien (evtl. nur die Gothic.dat) dekompilieren. Danach kannst du die Scripte natürlich mit Gothic wieder kompilieren

  6. #6 Reply With Quote
    Marcello
    Gast
     
    Quote Originally Posted by Lehona View Post
    Man kann damit kompilierte .dat-Dateien (evtl. nur die Gothic.dat) dekompilieren. Danach kannst du die Scripte natürlich mit Gothic wieder kompilieren
    habs mal eben ausprobiert- funktioniert wunderbar. danke dir für die erklärung

  7. View Forum Posts #7 Reply With Quote
    Legende der Amazonen Bisasam's Avatar
    Join Date
    Dec 2006
    Location
    Meine Faust in Sinis Gesicht
    Posts
    9,640
     
    Bisasam is offline
    Blöde Frage: Wie bringt man das Ding in Gang?

    In der DecDat1.0a.zip finde ich ein paar txt-dokumente und eine .jar mit der ich nichts anfangen kann.


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  8. View Forum Posts #8 Reply With Quote
    now also in your universe  Milky-Way's Avatar
    Join Date
    Jun 2007
    Posts
    15,323
     
    Milky-Way is offline
    Hast du Java installiert? Dann solltest du die .jar ausführen können.

  9. View Forum Posts #9 Reply With Quote
    Legende der Amazonen Bisasam's Avatar
    Join Date
    Dec 2006
    Location
    Meine Faust in Sinis Gesicht
    Posts
    9,640
     
    Bisasam is offline
    Kein Java. Hab grad nach gegoogelt aber der lädt mir das immer nur als Browser-Plugin. Nehme an das ist falsch, denn das bringt rein gar nichts was die datei angeht.


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  10. View Forum Posts #10 Reply With Quote
    Schwertmeister
    Join Date
    May 2009
    Posts
    924
     
    Umfi is offline
    Quote Originally Posted by Bisasam View Post
    Kein Java. Hab grad nach gegoogelt aber der lädt mir das immer nur als Browser-Plugin. Nehme an das ist falsch, denn das bringt rein gar nichts was die datei angeht.
    DIE JRE sollte reichen:
    http://www.oracle.com/technetwork/ja...s-2133155.html

    Sollte es mit Java 8 nicht laufen, hier die 7er:
    http://www.oracle.com/technetwork/ja...ad-432155.html

  11. View Forum Posts #11 Reply With Quote
    Legende der Amazonen Bisasam's Avatar
    Join Date
    Dec 2006
    Location
    Meine Faust in Sinis Gesicht
    Posts
    9,640
     
    Bisasam is offline
    Ah gut, jetzt hab ich das Ding endlich aufgekriegt.
    Leider exportiert das Programm (zumindest soweit ich das gesehen habe) nicht so sauber wie der Gothic-Sourcer das könnte wenn er nicht bei Ikarus den Löffel abgeben würde.
    Mir wird fast alles in eine Content.d geklatscht. Wenn ich damit versuche ein Backup aufzuspielen...

    Oder habe ich die Auswahl nur übersehen, mit der man die dat sauber in ihre Ursprungsdaten zerlegen kann?


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  12. View Forum Posts #12 Reply With Quote
    Dea
    Join Date
    Jul 2007
    Posts
    10,455
     
    Lehona is offline
    Nein, aber du darfst dir nächstes Mal ruhig die Hilfedateien anschauen (zugegeben, die jeweiligen Menüpunkte haben aus irgendeinem Grund die entsprechende Datei nicht gefunden)

    Exportdefinition ist hier der Stichpunkt - wenn du wirklich die komplette Ordnerstruktur rekonstruieren willst, ist das eine Menge arbeitet. Aber meistens reicht es ja, in der einen Content.d entsprechende Dinge nachzuschauen.

  13. View Forum Posts #13 Reply With Quote
    Provinzheld Herobrine's Avatar
    Join Date
    Oct 2012
    Location
    Minental von Khorinis (Gothic)
    Posts
    275
     
    Herobrine is offline
    DecDat hat Fehler bei Conditional Statements: Wenn man mehrere Bedingungen an einem if Statement setzt, die aus "Und" und "Oder" Verknüpfungen bestehen, dann gibt es ein Problem bei der Klammersetzung. Wenn man "Oder" Verknüpfungen miteinander verbinden möchte, dass sie anschließend als "Und" Verknüpfungen weiterverwendet werden können, dann lässt DecDat die Klammern um die verbundenen "Oder" Verknüpfungen einfach weg.

    So sollte es aussehen:
    Code:
    if (((condition_1) || (condition_2)) && (condition_3)) { };
    So sieht es aus:
    Code:
    if ((condition_1) || (condition_2) && (condition_3)) { };

  14. View Forum Posts #14 Reply With Quote
    now also in your universe  Milky-Way's Avatar
    Join Date
    Jun 2007
    Posts
    15,323
     
    Milky-Way is offline
    Bist du dir sicher, dass Gothic das nicht beides gleich interpretiert, weil von links nach rechts ausgewertet wird?

    Sprich, weil keine Klammern vorhanden sind, zuerst
    (condition_1) || (condition_2)
    und dann
    <Ergebnis> && (condition_3)

    Du kannst meine Vermutung ja mal im Spiel ueberpruefen und ausserdem anschauen, was aus
    if ((condition_3) && ((condition_1) || (condition_2))) { };
    wird. Hier waere die Reihenfolge ja wichtig, und ich vermute, dass die Klammern korrekt gesetzt werden.

  15. View Forum Posts #15 Reply With Quote
    Dea
    Join Date
    Jul 2007
    Posts
    10,455
     
    Lehona is offline
    Der &&-Operator bindet stärker als der ||-Operator, also im Prinzip das, was Milky sagt (auch wenn es nichts mit "von Links nach Rechts" zu tun hat).

    if (a && b || c) ist äquivalent zu if ((a && b) || c).

    Edit: Ich bin anscheinend ein Idiot, der Posts nicht richtig lesen kann Wenn DecDat sich tatsächlich so verhält, ist das ein Bug.

  16. #16 Reply With Quote
    benjaminfoo
    Gast
     
    Gute Arbeit, freut mich zu sehen, dass es immer noch verrückte Devs gibt !

    P.S. - Kannst du deinen Code auf Github oder ähnlich hochladen?

  17. View Forum Posts #17 Reply With Quote
    Dea
    Join Date
    Jul 2007
    Posts
    10,455
     
    Lehona is offline
    An DecDat wird meines Wissens eh nicht weiter gearbeitet, warum genau brauchst du den Code auf GitHub? Wenn du hier eine verbesserte Version hochladen willst, kannst du das gerne tun Notfalls kann ich das nächste Woche auch gerne bei GitHub hochladen

  18. View Forum Posts #18 Reply With Quote
    Abenteurer daharn's Avatar
    Join Date
    Jul 2004
    Location
    Unter deinem Bett!
    Posts
    60
     
    daharn is offline
    Kann die Sache mit den conditions mittlerweile jemand bestätigen?
    Hat es jemand geschafft, damit eine Gothic.dat zu laden und dann zu exportieren?
    "Ich habe gern einen freien Rücken..."

  19. #19 Reply With Quote
    werauchimmer
    Gast
     
    Quote Originally Posted by ...Es... View Post
    Kann die Sache mit den conditions mittlerweile jemand bestätigen?
    Ja, verschachtelte Conditions werden verkehrt aufgelöst.

    PS: Der Fehler gilt übrigens auch für Rechenoperationen, d.h. aus (a + b) * c wird a + b * c.
    Es werden also die Prioritäten der Operatoren allgemein falsch rum ausgewertet.
    Last edited by werauchimmer; 09.01.2017 at 20:42.

  20. View Forum Posts #20 Reply With Quote
    Veteran N1kX's Avatar
    Join Date
    Aug 2018
    Location
    Serov
    Posts
    671
     
    N1kX is offline
    I understand correctly, since decdat indicates an error
    unhandled exception occured: java.lang.ArrayIndexOutOfBoundsException: -1


    it turns out that gothic.dat compiled with errors? I met this in a recent update of Odyssee 2.6.4, an error pops up in the function b_addon_piratesgohome (64070 ID)
    in version 2.6.3 this is not.

Page 1 of 2 12 Last »

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide