PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zum Einsatz eines Hex-Editors



Gimp1969
04-07-07, 09:03
Hallo Fan-Gemeinde von SH3!
Ich hätte da mal wieder eine Frage:
Öffne ich eine beispielsweise .zon-Datei im Hex-Editor(WinHex) zwar einiges klar lesen, geht es aber um bestimmte Wert, die ich verändern will, stehen da nur seltsame Zeichen.
Kann mir jemand sagen, wie ich diese seltsamen Zeichen in eine lesbare Variante übersetzen kann, oder nach welchen Muster diese verschlüsselt wurden (8-bit / 16-bit / ? )?
Gimp

Gimp1969
04-07-07, 09:03
Hallo Fan-Gemeinde von SH3!
Ich hätte da mal wieder eine Frage:
Öffne ich eine beispielsweise .zon-Datei im Hex-Editor(WinHex) zwar einiges klar lesen, geht es aber um bestimmte Wert, die ich verändern will, stehen da nur seltsame Zeichen.
Kann mir jemand sagen, wie ich diese seltsamen Zeichen in eine lesbare Variante übersetzen kann, oder nach welchen Muster diese verschlüsselt wurden (8-bit / 16-bit / ? )?
Gimp

rowi58
04-07-07, 14:19
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by Gimp1969:
Hallo Fan-Gemeinde von SH3!
Ich hätte da mal wieder eine Frage:
Öffne ich eine beispielsweise .zon-Datei im Hex-Editor(WinHex) zwar einiges klar lesen, geht es aber um bestimmte Wert, die ich verändern will, stehen da nur seltsame Zeichen.
Kann mir jemand sagen, wie ich diese seltsamen Zeichen in eine lesbare Variante übersetzen kann, oder nach welchen Muster diese verschlüsselt wurden (8-bit / 16-bit / ? )?
Gimp </div></BLOCKQUOTE>

Moin Gimp1969,

mit der Information kann man Dir wenig helfen. Daher meine Fragen:
- was willst Du in der ZON-Datei verändern?
- bevor Du mit einem Hex-Editor daran gehst - hast Du es schon mal mit Timetravellers MiniTweaker versucht?
- wenn nicht, besorg Dir mal den MiniTweaker - da steht in der ReadMe viel drim zum Hex-Editing (welcher Art der gesuchte Werrt ist, wo er relativ oder absolut vorkommt etc.)

Lesen kann man die Daten mit einem Hex-Editor nur schlecht - es sein denn, man hat sich an die Hexadezimaldarstellung gewöhnt und kann die beiden Fenster (Hex und Ascii) paralell lesen.

Und Pack3D solltest Du auch paralell dazu öffnen - nur um dort besser die Daten lesen zu können.

Wenn Du mal ein Beispiel benennst, könnte ich Dir hier anhand von ein paar Screenshots )schon mal Lupe downloaden) zeigen wi es geht.

Gruß
rowi58

Gimp1969
05-07-07, 04:36
Hallo rowi58,
mein Ansinnen ist es beispielsweise, die Flak auf den Booten zu tauschen: 3,7cm auf das Vordeck eines Typ IID Bootes und/oder in diesen Typ ein Schnorchel einbauen (Für die Realisten: Ende 43 wurde der Schnorchel zur Erprobung in den Typ IID eingebaut um damit Erfahrungen zu sammeln) oder ein Radar.
Vieleicht auch just for fun auf dem Rumpf eines IX den Turm eines IID zu setzen.
Meine Versuche dies durch Änderungen in der BASIC.cfg durchzuführen sind fehlgeschlagen oder brachten nicht den gewünschten Erfolg!
Gimp1969
PS: Möglicherweise läßt sich mein Ansinne niemals umsetzen!

rowi58
06-07-07, 00:03
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by Gimp1969:
Hallo rowi58,
mein Ansinnen ist es beispielsweise, die Flak auf den Booten zu tauschen: 3,7cm auf das Vordeck eines Typ IID Bootes und/oder in diesen Typ ein Schnorchel einbauen (Für die Realisten: Ende 43 wurde der Schnorchel zur Erprobung in den Typ IID eingebaut um damit Erfahrungen zu sammeln) oder ein Radar.
Vieleicht auch just for fun auf dem Rumpf eines IX den Turm eines IID zu setzen.
Meine Versuche dies durch Änderungen in der BASIC.cfg durchzuführen sind fehlgeschlagen oder brachten nicht den gewünschten Erfolg!
Gimp1969
PS: Möglicherweise läßt sich mein Ansinne niemals umsetzen! </div></BLOCKQUOTE>

Moin Gimp1969,

für das ist die ZON-Datei und der Einsatz eines Hex-Editors völlig ungeeignet.

Die Geschütze - egel welcher Typ und welche Größe - werden grundsätzlich über sog. None3D-Knoten in der DAT-Datei angebunden (Du hast sie schon richtig identifiziert - M0x, S0x, A0x - allerdings ist der Buchstabe relativ unerheblich und dient mehr der Orientierung für die Programmierer).

Normaler Weise kann man über so einen Knoten alle passenden und unpassenden Geschütze einbinden - funktioniert bei überwasserschiffen auch sehr gut.

Bei U-Booten haben wir das Problem, dass die Steuerung nicht so einfach gestaltet ist. Grundsätzlich werden die Geschütze auch bei U-Booten in der EQP-Datei festgelegt (siehe Post von Trainer1942). Hinzu kommt noch der Eintrag in der Basic.cfg beim entsprechenden TU-yp, welche Geschütztypen generell für den Knoten zulässig und ab wann verfügbar sind.

SIM- und ZON-Datei braucht man hier nicht. In der SIM-Datei werden für die Geschütze - das freut mich als alten Artilleristen naturlich ganz besonders - die Höhen- und Seitenrichtbereiche festgelegt und die Höhen- und Seitenrichtgeschwindigkeit (in Winkelgraden pro Sekunde) bestimmt. Dazu noch bei einigen Schiffen die Feuerbeschränkungen (UBI - das ist alleresrte Sahne!!!).

Versuch es doch mal mit einer (im thread) beschrieben Kombination aus Änderungen der EQP- und Basic-Datei.

Gruß
rowi58

Gimp1969
06-07-07, 02:51
Guten Morgen rowi58,
Danke für deine angebotene Hilfe.
Änderungen in den EQP- und Basic-Datein habe ich beim Typ IID schon versucht, mit dem Ergebnis, das dann im Spiel das Boot völlig ohne Flak startete (Flak (jeder Art) waren alle ab 01/1939 freigegeben). Auch wurde von mir die jeweilige EQP-Datei verändert (wie von in einem anderen thread vorgeschlagen), allerdings mit dem gleichen Ergebnis, dass im Spiel das Boot völlig ohne Flak war (weder auf dem Turm noch auf dem Vordeck (das mit dem Turm hat mich an meisten gewundert!)).
Du hast "Kontenpunkte" erwähnt, wie funktioniert das?
Ich habe nämlich versucht, ähnlich wie im Mod für das IX mit dem Flakturm vom VII vorzugehen und dieses Typ IX-Boot mit Flakturm VII für mich zu modden um die "Abläufe" zu verstehen. Das Problem dabei war, dass die Flak nicht bemannbar war, und die Deckkannone im Turm steckte. Ich habe allerding nie herausbekommen, wie dann der Turm nach "hinten" oder die Deckkannone nach "vorne" verschoben wird. Es gibt zwar hier im thread Bilder von diesem "Flak-U-Boot-mit-Deckkannone" allerdings sind die LINKS tot und/oder die Anleitung dazu lückenhaft.
Wäre es möglich mir das mit den Knoten zu erklären?
Ist das einfach?

Gimp1969

rowi58
06-07-07, 23:43
<BLOCKQUOTE class="ip-ubbcode-quote"><div class="ip-ubbcode-quote-title">quote:</div><div class="ip-ubbcode-quote-content">Originally posted by Gimp1969:
Guten Morgen rowi58,
...
Du hast "Kontenpunkte" erwähnt, wie funktioniert das?
Ich habe nämlich versucht, ähnlich wie im Mod für das IX mit dem Flakturm vom VII vorzugehen und dieses Typ IX-Boot mit Flakturm VII für mich zu modden um die "Abläufe" zu verstehen. Das Problem dabei war, dass die Flak nicht bemannbar war, und die Deckkannone im Turm steckte. Ich habe allerding nie herausbekommen, wie dann der Turm nach "hinten" oder die Deckkannone nach "vorne" verschoben wird. Es gibt zwar hier im thread Bilder von diesem "Flak-U-Boot-mit-Deckkannone" allerdings sind die LINKS tot und/oder die Anleitung dazu lückenhaft.
Wäre es möglich mir das mit den Knoten zu erklären?
Ist das einfach?

Gimp1969 </div></BLOCKQUOTE>

Moin Gimp1969,

zu Deinem Fragen mit den Knoten mal eine kurze Ein- und Anleitung. über die "None3D-Knoten werden u.a. Objekte, die un einer anderen DAT-Datei abgelegt sind, an ein bestimmtes Objekt - hier der U-Boot-Rumpf - angebunden. Diese Anbindung muss natürlich eine definierte Lage im Raum haben - eine möglichst passende - damit das alles auch schön aussieht. Diese Lage kann man auch - natürlich - verschieben.

Die folgenden Beispiele beziehen sich auf den "None2D-Knoten" des Flakgeschützes auf dem Rumpf des Typ II D U-Boots: DAT-Datei ist die NSS_Uboat2D.dat, benötigt wird die Pack3D-Version 1.221005 (oder die62 KB Variante mit Namen 3Pack3D.jar - findest Du u.a.

HIER (http://files.filefront.com/P3dAllVersionrar/;6051035;;/fileinfo.html)

Dann brauchst Du einen Hex-Editor. Ist im Prinzip egal welchen, meine Beispiele beziehen sich auf den freeware Hex-Editor "XVI32" von Christian Maas. Wenn Du ihn downloaden willst - hier gibt es ihn:

Hex-Editor (http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm)

Aber andere Hex-Editoren (sollten) die gleiche Funktionalitäten haben.

1.
Öffne die Datei NSS_Uboat2D.dat mit der oben genannten Version von Pack3D.

http://img211.imageshack.us/img211/1629/hex04jo1.jpg

(Sorry das die Screens so groß sind - aber sonst kann man nichts erkennen.)
Gehe im linken Navigationsfenster zu "non3D nodes", aufklicken und dann zum Eintrag "cfg#A01..." gehen. Dort sind alle wichtigen Information zu diesem none3D-Knoten enthalten, die Du dann im Hex-Editor brauchst.
Gelb unterlegt die Objekt-ID, der Typ, die Größe und die Lagewerte für X, Y und Z, den wir später brauchen.

2.
Pack3D ist hinterhältig. Die Objekt ID sollte immer aus 16 Zeichen bestehen (also 8 Byte, die aus 8 mal 2 Zeichen HEX bestehen in der Range von &lt;00&gt; bis &lt;FF&gthttp://forums.ubi.com/infopop/emoticons/icon_wink.gif. Ist aber das erste Zeichen im Bereich (HEX) vnn &lt;00&gt; bis &lt;0F&gt;, so "unterschlägt Pack3D die "führende Null" und stellt nur 15 Zeichen dar. Also aufpassen - und eigentlich von Rechts nach Links lesen und zählen. (Dieser Fehler pasiert Pack3D nur beim ersten Byte, die folgenden Bytes (2. bis 8.) sind in Ordnung.)
Zum Verständnis der Lagewerte: X-Wert bestimmt die Lage Bachbord oder Steuerbord - aslo rechts oder links, Y-Wert bestimmt die Höhenlage und der Z-Wert die Lage Bug oder Heck - und denn willst Du ja verschieben. Postive Werte bedeuten, dass sich das Objekt weiter zum Bug hin befindet, negative Werte, dass es sich zum Heck hin orientiert (immer vorausgesetzt, das das Rumpfobjekt auch in Koordinatensysten zentriert platziert wurde, was man bei UBI nicht immer voraussetzen kann.).

3.
Nun öffne die NSS_Uboat2D.dat mit dem Hex-Editor und such nach dem Bereich, der den None3D-Knoten beschreibt:

http://img238.imageshack.us/img238/8568/hex01ts5.jpg

Du kannst entweder (ganz korrekt) nach dem HEX-String der Objekt-ID suchen oder in diesem Fall auch nach dem String cfg#A01. Der Hex-Editor zeigt dann im linken Fenster den Bereich in ASCII-Zeichen und im linken Fensterbereich HEX-dezimal an. Der Block für den None3D-Knoten habe ich in roten Zeichen dargestellt, er beginnt mit der &lt;04&gt; für die Größe, gefolgt vom Typ und der Objekt-ID (hellblau unterlegte 8 Zeichen). er endet ein Zeichen nach dem letzten Zeichen des Knotennamens (HEX &lt;00&gthttp://forums.ubi.com/infopop/emoticons/icon_wink.gif.

4.
Ich habe Dir mal die Werte für die X-, Y- und Z-Werte farblich markiert (die darauf folgenden 3 mal 4 Zwichen für die XY-Werte, XZ-Werte und YZ-Werte brauchen wir nicht, sind bei nach "vorne" gerichteten Geschützknoten (in SH3) immer NULL).
Wir wollen jetzt die Lage des Geschützknoten nach "vorne" verschieben. Dazu gehe mit dem Cursor im linken Fenster auf das erste Zeichen (von insgesamt 4 Zeichen) des Z-Wertes (im Screen das dunkelblau markierte Zeichen)

http://img110.imageshack.us/img110/9169/hex02ud3.jpg

Dann klicke im Hex-Editor auf "Tools" und dann "Decode number" (bzw. auf die Befehlsfolge in Deinem Hex-Editor, die dieser entspricht) und Du bekommst eine "Werteliste" angezeigt:

http://img339.imageshack.us/img339/8195/hex03yp9.jpg

Wenn Du dann etwas herunterscrollst siehst Du den blau unterlegten Wert von 0,5... bei Typ 32 bit single. Vergleich nun das Ergebnis mit der Wertdarstellung in Pack3D - bingo.

5.
Jetzt wollen wir das ganze Geschütz zum Bug hin verschieben, d.h. also, dass der Z-Wert "größer" werden muss (weiter von der Mitte entfernt; negative Werte würden bedeuten, der Knoten wird zum Heck hin verschoben). Der Cursor bleibt im Hex-Editor an Ort und Stelle.

http://img392.imageshack.us/img392/1023/hex05li5.jpg

Gehe wieder über "Tools" und "Encode number" vor. Es öffnet sich dan das folgende Fenster.

http://img365.imageshack.us/img365/6554/hex06hz0.jpg

Dort gibst Du dann den gewünschten Wert ein (hier mal z.B. 0,64). Bitte besonders beachten: beim XVI32 Hex-Editor ist das Dezimaltrennzeichen ein KOMMA, ob es bei Deimem Hex-Editor ebenfalls ein KOMMA oder der PUNKT ist, musst Du selbst herausfinden. Wichtig ebenfalls: aktiviere die Funktion "überschreiben" und den Hextyp (hier 32 bit single).

6.
Was jetzt folgt ist mühsame "Handarbeit". Du brauchst jetzt eine kleine Testmission, um Dir das Ergebnis der "Verschiebung" anzusehen. Wirst Du sicher noch etliche Male korrigieren müssen, bis Du einen Wert gefunden hast, der die (auf die Lage bezogen) gefällt.

Und bei allem nicht vergessen: vorher eine Sicherungskopie der NSS_Uboat2D.dat ziehen.

Gruß
rowi58

Gimp1969
09-07-07, 03:47
Hallo rowi58,
Vielen Dank für deine Antwort und der umfassenden Erklärung.
Ich werde mich demnächst daran machen, mir das mal zu Gemüte zu führen (ich hoffe ich kapier das!).
Werde mich wieder melden, wenns geklappt hat! (Kann allerdings ein paar Tage dauern!)
Gimp 1969