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

 

Ergebnis 1 bis 5 von 5
  1. Beiträge anzeigen #1 Zitieren
    General Avatar von uhrparis
    Registriert seit
    Jan 2006
    Beiträge
    3.193
     
    uhrparis ist offline

    Timestamp einer MOD-Datei ändern

    Timestamp einer MOD-Datei ändern

    Ich selbst habe keinen blassen Schimmer wie das geht noch werde ich es in kurzer Zeit verstehen können.
    Ich brauchte einfach von eurer Seite etwas Hilfe und sich Bitte hier den Post anzusehen.
    http://forum.worldofplayers.de/forum...6&#post7200326
    Wenn die Übersetzungsarbeiten dieser Riesen - Mod abgeschlossen sind habt ihr ja auch etwas davon

    Danke schonmal

    Mfg. uhrparis

  2. Beiträge anzeigen #2 Zitieren
    Provinzheld Avatar von Huntelaar
    Registriert seit
    Jul 2008
    Beiträge
    216
     
    Huntelaar ist offline
    Da gibt es eine einfache Möglichkeit. Du extrahierst deine MOD.Datein mit GothicVDFS in einen Ordner. Dann packst du deine gerade eben extrahierten Dateien in eine neue .mod-Datei ein mit GothicVDFS, wobei du dann deinen Zeitstempel selber bestimmen kannst.

  3. Beiträge anzeigen #3 Zitieren
    Drachentöter Avatar von Lonewulf
    Registriert seit
    Jan 2008
    Beiträge
    4.852
     
    Lonewulf ist offline
    So hab ich es bisher auch gemacht. Hatte aber im von uhrparis verlinktem Thread nur gefragt um eventuell nicht unnötig erst extrahieren zu müssen.

    Für Morrowind gibts z.B. dafür ein Tool um mit einem Klick den Timstamp eines Plugins zusetzen. Hab damit immer meine Plugins auf die richtige Ladereihenfolge gebracht wenns Probleme gab.

  4. Beiträge anzeigen #4 Zitieren
    Demigod Avatar von Sumpfkrautjunkie
    Registriert seit
    Nov 2004
    Ort
    München
    Beiträge
    9.108
     
    Sumpfkrautjunkie ist offline
    Mit etwas HEX-erei (einem HexEditor (z.B. so einem: http://www.pcfreunde.de/download/d5754/hex-editor-mx/ )) kann man das manuell machen.

    Man öffnet die VDF mit einem Hexeditor.
    Im Hintergrund öffnet man auch noch den Windows-Taschenrechner.

    In der Mitte des Hexeditors sind Kombinationen aus jeweils 2 Zahlen bzw Buchstaben, z.B.
    1A 44 B3
    Diese zweier-Kombinationen sind Bytes:
    Sie sind in der Hexadezimalschreibweise dargestellt, daher auch die Buchstaben. Ein Byte kann alle Zahlen von 0-255 darstellen.
    Der Windows-Taschenrechner bietet eine Unwandlungsfunktion von Byte (Hex) in Dezimalzahlen (Dez) und Binärzahlen (Bin), sofern man in der Ansicht "Wissenschaftlich" eingestellt hat.
    Binärzahlen, auch Bits genannt sind Einsen und Nullen.
    Einpaar Beispiele für Hex-Werte:
    A3 = 163
    EF = 239
    10 = 16
    32 = 50

    Beispiele für Binärzahlen:
    100101 = 37
    10=2
    11111=31
    1000001=65

    Für die folgenden Schritte ist dieses Basiswissen nötig.

    Der Timestamp ist in einer Kombination aus Hex- und Binärzahlen gespeichert: Man muss also recht viel umrechnen.

    Der Timestamp besteht aus 4 Bytes, und zwar vom
    280. bis einschließlich dem 283.

    Ich mache das ganze mal an einem konkreten Beispiel, undzwar der Meshes_Addon.vdf des Orignalspiels.
    Der Timestamp davon liegt bei:
    28.7.2003 17:48:46

    Die Bytes sind:
    17 8E FC 2E

    Jetzt müssen wir das ganze Rückwärts lesen:
    Wir nehmen erstmel die letzten 2 Bytes:
    FC 2E

    Und geben sie in umgekehrter Reihenfloge in den Taschenrechner ein (den Modus auf Hex stellen):
    2E FC
    Das Ganze wandeln wir in Binärzahlen um:
    10111011111100

    Hier drin stekt das Datum.
    Wir schreiben die Zahl am besten mal auf einen Zettel und zählen die Ziffern:
    14
    es müssen aber 16 sein, daher tun wir vorne noch 2 Nullen hin (die werden nämlich nicht mitausgegeben, da sie nichts am Wert ändern):
    0010111011111100
    Die ersten 7 Bits sind die Anzahl der Jahre, die nach 1980 vergangen sind.
    die nächsten 4 Bits sind die Monate und die letzten 5 Bits die Tage (deshalb mussten wir auch die 2 Nullen hinzufügen, damit diese Aufteilung stimmt).
    Also:
    0010111 lassen wir vom Taschenrechner umwandeln: 23
    1980+23 = 2003
    Wir haben somit das Jahr.
    Dann die nächsten 4 Bits:
    0111=7
    Der Monat ist der 7.
    Die letzten 5 Bits:
    11100=28
    Der Tag ist der 28.

    Und siehe da: Das ist das exakte Datum des Timestamps.

    Dann kommt nur noch die Uhrzeit:
    Wir haben ja noch die Bytes
    17 8E nicht betrachtet.
    Diese geben ähnlich verschlüsselt die Uhrzeit an.
    Wir geben diese Bytes in umgekehrter Reihenfolge in den Taschenrechner ein, und wandeln sie in Binärzahlen um:
    8E 17 =1000111000010111
    Jetzt nur noch gucken, ob Nullen fehlen:
    Es sind 16 Zifferm, also muss man keine Nullen ergänzen.

    Die ersten 5 Bits sind die Stunde:
    10001=17
    Die nächsten 6 Bits sind die Minute:
    110000=48
    und die letzten 5 Bits die Hälfte der Sekunden:
    10111=23

    Rechnet man die Sekunden mal 2, so bekommt man die im Timestamp angezeigten Sekunden:
    46

    Und die Uhrzeit stimmt auch mit der im Timestamp überein

    Und um den Timestamp zu ändern, muss man das Ganze Spiel von hinten machen.
    Beispiel:
    Wir ändern den Timestamp auf den 1.8.2003 12:13:28:
    Zuerstmal die Uhrzeit:
    12=1100=01100 (da es 5 Bits sein müssen, eine 0 davor)
    13=1101=001101(da es 6 Bits sein müssen, zwei 0 davor)
    28/2=14=1110=01110(da es 5 Bits sein müssen, eine 0 davor)
    Zusammengesetzt:
    0110000110101110
    In Hex umgewandelt:
    61 AE

    Umgestellt:
    AE 61

    Nun das Datum:
    2003-1980=23=10111=0010111(da es 7 Bits sein müssen, zwei 0 davor)
    8=1000
    1=1=00001(da es 5 Bits sein müssen, vier 0 davor)
    Zusammengesetzt:
    0010111100000001
    In Hex umgewandelt:
    2F 01
    Umgestellt:
    01 2F

    So nun noch an die Uhrzeit drangehangen:
    AE 61 01 2F

    Damit überschreiben wir nun die Originalen 4 Bytes und speichern die veränderte Datei.

    Und Tada! Der Timestamp steht nun auf unserem Beispieldatum.
    Will man nur das Datum ändern, kann man die beiden Bytes der Uhrzeit in Ruhe lassen und nur die beiden Bytes des Datums verändern.
    Geändert von Sumpfkrautjunkie (13.09.2008 um 14:05 Uhr)

  5. Beiträge anzeigen #5 Zitieren
    General Avatar von uhrparis
    Registriert seit
    Jan 2006
    Beiträge
    3.193
     
    uhrparis ist offline
    Danke Sumpfkrautjunkie

    Wenn ich ehrlich bin habe ich auf deinen Post gewartet.
    Danke das du dir so viel Mühe gemacht hast.
    Dein Post wird uns eine sehr gute Hilfe sein
    Ich werde deinen Post in unserem geschlossenen Thread verlinken.

    Mfg. uhrparis

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
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