Crystals-DSA-Foren

Normale Version: Der HEX-Thread / Spielstandsprobleme
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
Ich hab mir eben ein kleines Programm geschrieben, das mir die Formatierung von Copy and Paste aus dem Hex-Editor erleichtert. Vielleicht kann es jemand von euch brauchen. Vorraussetzung:

Die Bereiche des Hex-Editors mit Copy and Paste in den Text-Editor kopieren, und das File abspeichern.

- Der Konverter wandelt es in Leerzeichen getrennte Bytes um.
- Danach kann das neue File z.B. in Excel eingelesen werden.
- Beim Einlesen leerzeichen getrennt auswählen, und schon hat man jedes Byte in ner einzelnen Spalte.

Tabellenbreite: 16 Byte

P.S. Ich habe darauf verzichtet die einzelnen Fehler abzufangen, die generiert werden, also keine Sorge wenn er mal meckert :)


Für Hinweise, Bugs, Verbesserungsvorschläge bin ich dankbar :)
Zitat:Beitrag: #501RE: Der HEX-Thread

Ich habe mir gerade mal den aufbau des DSA1-Savegames angeschaut, da ich mit den absoluten HEX-Adressen der Chars nix anfangen konnte.

Dabei kam ich zu dem Schluss, dass die Chars unabhängig von der Position in der Leiste gespeichert werden, sondern dem Alphabet nach.Auch werden die Helden, die einmal in der Gruppe waren grundsätzlich mitgespeichert werden, auch wenn sie nicht in der Party sind, da ja deren Stati erhalten bleiben müssen, auch wenn Sie die Gruppe in einem Tempel verlassen müssen.

dadurch kann man nur festhalten, das der Erste Char somit die absolute HEX-Adresse

0x01848A haben müsste.

weitere Details folgen noch


Ich habe mir den Beitrag gelöscht und einen neuen Erstellt, da die Edit-Funktion irgendwie nicht wollte.

Ich habe heute Nachmittag mal das Char-Hex eines DSA1 Chars auseinandergenommen, und mit den Erkenntnissen von Crystal und JackyD verglichen.

Es ist eigentlich alles gleich bis auf die Items im Rucksack und am Körper (dieser hat auch weniger Anlegemöglichkeiten). Der wichtigste Unterschied bei den Items, dass diese in DSA1 nur 14 Bytes Länge haben.

Der Aufbau von JackyD lässt sich auch auf diese Items anwenden.

Eine Erkenntnis ist mir für das 8. Byte der Items gekommen wo JackyD noch 2 ?? hatte.
Es handelt sich dabei um den Status für "abgenutzt" 00=regulär, alles über 00 bringt den Status abgenutzt.

Auch hatte JackyD noch ein Fragezeichen bei dem Geld wegen Dummywerten. Es ist hier definitiv das ganze Geld des Chars
eingetragen. zb 8F DB --> DB8F --> 56207 --> 562D 0S 7H


Ich habe mir mit den bisherigen Erkenntnissen mal eine Übersichtstable gemacht damit ichs leichter finde. Siehe Anhang
Real_Neo schrieb:
Zitat:Beitrag: #501RE: Der HEX-Thread
dadurch kann man nur festhalten, das der Erste Char somit die absolute HEX-Adresse

0x01848A haben müsste.

weitere Details folgen noch
Bei DSA1 Savegames gibt es keinerlei feste Charakter-Offsets. Am Ende des Savegames befinden sich alle Charaktere in .CHR Form, der Offset dieser Liste steht im Savegame am in vier Bytes Offset 16 (hex 0x10).

Code:
(Savegame-Dateigröße - CHR-Listen-Offset) / 1754 = Anzahl Charaktere im Savegame

nun gibt es in den .CHR Strukturen am Offset 138 (hex 0x8A), also ausgehend vom CHR-Datei Anfang, d.h. der Erste Name, in einem Byte die Party Position (00 = nicht in der Party, 01-06 Position in der Party).

Siehe auch
http://freedsa.schattenkind.net/index.php/Spielstand
http://freedsa.schattenkind.net/index.php/CHR/NPC
Servus,

kann mir jemand erklären wie ich in "Sternenschweif" die Magieresistenz hochhexen kann? Habe leider nicht soviel Ahnung davon.

MfG
Wäre es einfacher für dich, einige hundert Menchalkräuter ins Inventar zu hexen? Gehexte MR würde sonst wieder neu berechnet werden, weil sie sich nach den Eigenschaften richtet.
Klar, macht Sinn. Hast Du denn ne Anleitung zum Menchal-Hexen?

MfG
Zum HEXen selbst nicht. Aber die HEX-ID für Menchal kann ich dir geben.
-> HEX-Liste, Buchstabe M
Ich will Dich nicht nerven, aber kannst Du mir wenigstens ein wenig auf die Sprünge helfen? Was kann ich mit den HEX-ID ´s im HEX-Editor anfangen?

Sorry nochmal falls ich deine Geduld überstrapaziere.

MfG
Nachdem die Menchalkakteen ihre Wirkung verloren haben, muß die MR dann aber doch ggf. wieder auf den richtigen Wert zurückgeHEXt werden, daß es einen Bug gibt, der einen Teil der Menchal-Wirkung permanent werden läßt.
Elgor v. Prem schrieb:Ich will Dich nicht nerven, aber kannst Du mir wenigstens ein wenig auf die Sprünge helfen? Was kann ich mit den HEX-ID ´s im HEX-Editor anfangen?
Nun ja. Wenn man die genaue Stelle kennt und die ID's richtig platziert, hast du hinterher im Gepäck auch die Menchal drin, wie es gewünscht ist. ;) Was anderes machen wir auch nicht.
Eine Anleitung würde sehr umfangreich ausfallen und ist nicht mal so in 5 Minuten gemacht, weil man sich ja auch Gedanken um eine verständliche Formulierung machen muss.
Da ich aber oft noch mit anderen Dingen beschäftigt bin, bin ich bisher nie dazu gekommen und andere hier wollten es auch nicht machen.
Schlussendlich "leben" wir praktisch davon. Das ist unser Exklusiv-Service, der uns mit sehr attraktiv gemacht hat. :) Die schnellste Vorgehensweise wäre, dass du deinen Spielstand hier hochlädst, dann wird sich jemand darum kümmern. JackyD, Peridor oder ich. Je nachdem, wer schneller ist.

Zurgrimm schrieb:Nachdem die Menchalkakteen ihre Wirkung verloren haben, muß die MR dann aber doch ggf. wieder auf den richtigen Wert zurückgeHEXt werden, daß es einen Bug gibt, der einen Teil der Menchal-Wirkung permanent werden läßt.
Das trifft bei Menchal glaub ich nicht zu. Aber für Belmart, dort bleibt ein Rest MR übrig.
"Der Datei-Typ ist nicht erlaubt. Bitte löschen Sie das Attachment oder wählen Sie ein anderes."???

MfG
Aus Gründen der Platzersparnis sind nur gepackte Spielstände erlaubt. Entweder mit ZIP oder RAR packen und dann hochladen. GAM-Dateien werden vom Forum abgelehnt.
Alles klar und besten Dank im Vorraus.

MfG
Dein Jäger hat 3x 99 Menchal bekommen, das reicht bis Riva. :) Den Spielstand nochmal extra reinladen, nachdem Sternenschweif hochgefahren ist, damit die Änderung sichtbar wird.
Besten Dank!
Für kleinere Veränderungen and den Charakter-Werten könnt ihr euch auch an meinem betagten Editor versuchen, den ich hier hochgeladen habe. Unterstützt wird aber nur DSA2/3 ...

Und macht vorsichtshalber ein Backup, habe ihn schon seeeeeeeeehr lange nicht mehr verwendet.
Scheí¯jian schrieb:Für kleinere Veränderungen and den Charakter-Werten könnt ihr euch auch an meinem betagten Editor versuchen, den ich hier hochgeladen habe. Unterstützt wird aber nur DSA2/3 ...

Und macht vorsichtshalber ein Backup, habe ihn schon seeeeeeeeehr lange nicht mehr verwendet.

Der Editor ist wirklich super (wenn er denn funktioniert, hab ihn mir nur mal angesehen), aber du brauchst das nicht in jedem Thread zu posten. :) Ich denke, die meisten lesen die "neuesten Beiträge" und sehen das dann sowieso.
Boneman schrieb:Der Editor ist wirklich super (wenn er denn funktioniert, hab ihn mir nur mal angesehen), aber du brauchst das nicht in jedem Thread zu posten. :) Ich denke, die meisten lesen die "neuesten Beiträge" und sehen das dann sowieso.
Also zumindest mit der CD-Version von Sternenschweif und Riva sollte er funktionieren (egal ob gepatched oder nicht). Bei unbekannten Spielstands-Versionen verweigert er, aus gutem Grund, onehin von vornherein das Öffnen. Jedenfalls habe ich ihn damals selbst eingesetzt und soweit ich mich erinnern kann ohne größere Probleme, entstanden ist er hauptsächlich aus "Eigenbedarf". Nur das Editieren des Vermögens bei Riva hat glaub ich nicht immer funktioniert ...

Ich bin hier halt mehrfach über dieses Thema "gestolpert", deswegen dachte ich, dass ich halt einfach kurz überall wo es darum ging darauf hinweise. :)

Wenn ich die Zeit hätte, würde ich glatt nochmal die NLT spielen :cool: Bzw. "Schicksalsklinge" hab ich noch nie gespielt und hab ich leider auch nicht in meinem Besitz, weswegen der Editor auch nur mit 2 und 3 funktioniert.
Scheí¯jian schrieb:Für kleinere Veränderungen and den Charakter-Werten könnt ihr euch auch an meinem betagten Editor versuchen, den ich hier hochgeladen habe. Unterstützt wird aber nur DSA2/3 ...

Und macht vorsichtshalber ein Backup, habe ihn schon seeeeeeeeehr lange nicht mehr verwendet.

Hey vielen Dank!
EDIT: Zu früh gefreut, leider funktioniert genau die Änderung am Vermögen nicht, die ich für den Phex-Tempel in Tiefhusen bräuchte :(
Wo stehen die Dukaten in einem Savegame? Hexeditor habe ich und weiß auch, wie man ihn bedient. Habe auf der HP nichts gefunden.
2. Edit: Hab endlich einen funktionierenden Editor gefunden ;) http://pc.cheats.de/fixedcheats_69246.php?hits=1878
Ok, dann fang ich mal an, falls das hier nicht so recht passt oder ihr's lieber im Wiki habt, kann ja ein Mod das entsprechend verschieben.

Als Start-Offset der Charaktere nehmen wir mal den ersten Buchstaben des Namens, wie ihr das auch hier gemacht habt. Ich geb mal aus Faulheit alle Offsets dezimal an, weil sich damit leichter rechnen lässt.

Das 3. Byte hinter den guten/schlechten Eigenschaften ab Offset 52 ist ein Modifikator der auf die aktuellen guten/schlechten Eigenschafts-Werte aufgerechnet wird. Er hat aber seltsamerweise keine Auswirkung auf berechnete Werte wie die AT/PA Basis und ich weiss nicht genau, wann diese modifizierten Werte zum Einsatz kommen. Gifte/Zauber sind es zumindest schonmal nicht.

Offset 127 enthält den aktuellen Hunger-Wert in Prozent, 128 den aktuellen Durst-Wert (steht auch schon so bei euch im Wiki).

Offset 138 enthält die aktuelle Position des Charakters in der Party (1 Byte).

Jetzt die vielleicht interessanteren Sachen:

Offset 138 - 1 Byte
Gesundheitszustand als Bit-Maske. 1. Bit = tot, 2. Bit = schlafend, 3. Bit = versteinert, 7. Bit = bewusstlos.
Die anderen Bits scheinen nicht belegt zu sein. Ein bewusstloser, versteinerter und schlafender Zustand hat also den Wert 01000110 = 46 (Hex).

Offset 170, 8 Krankheits-Einträge mit je 5 Bytes.
| Byte | Bedeutung
--------------------
| 0 | Status, 00=nicht krank, 01=Heilungs-Phase, FF=Krankheits-Phase
| 1 | Dauer in Tagen des aktuellen Status
| 2 | #Tage ab der Stufe 3 der aktuellen Phase erreicht wird
| 3 | #Tage ab der Stufe 2 der aktuellen Phase erreicht wird
| 4 | #Tage ab der Stufe 1 der aktuellen Phase erreicht wird

Wird Stufe 3 während der Krankheit erreicht, hat man die Krankheit überstanden. Mit jeder erreichten Stufe verschlimmert sich die Krankheit. Hat man eine Krankheit schonmal gehabt, wird Stufe 1 nicht so schnell erreicht (der Wert ist > 0, obwohl Status=0).
In der Heilungs-Phase hat man mit erreichen der Stufe 3 die Heilung abgeschlossen und alle Werte sind wiederhergestellt.

Art der Krankheiten nach Position in den Einträgen (also Eintrag1=Offset170, Eintrag2=Offset175, ...):
| Eintrag | Beschreibung
-----------------------
| 1 | Wundfieber
| 2 | Dumpfschädel
| 3 | Blaue Keuche
| 4 | Paralyse
| 5 | Schlachtfeld-Fieber
| 6 | Frotstschäden
| 7 | Tollwut
| 8 | <nicht verwendet>


Offset 219, 9 Vergiftungs-Einträge mit je 5 Bytes
Die Einträge sind analog wie die Krankheits-Einträge
| Byte | Bedeutung
--------------------
| 0 | Status, 00=nicht vergiftet, 01=Heilungs-Phase, FF=Vergiftungs-Phase
| 1 | Dauer des aktuellen Status
| 2 | #Stunden ab der Stufe 3 der aktuellen Phase erreicht wird
| 3 | #Stunden ab der Stufe 2 der aktuellen Phase erreicht wird
| 4 | #Stunden ab der Stufe 1 der aktuellen Phase erreicht wird

Die Bedeutungen sind analog wie bei den Krankheiten. Man durchläuft alle Stufen, bis man die Vergiftung überstanden hat - bis auf Vergiftungen natürlich, die tödlich enden. Wobei die Dauer der Stufen dieses mal glaube ich in Stunden ist und nicht in Tagen, das weiss ich aber nicht genau.

Art der Vergiftungen nach Position in den Einträgen (Eintrag1=Offset219,Eintrag2=Offset223,...):
| Eintrag | Beschreibung
-----------------------
| 1 | Shurinknollen-Gift
| 2 | Arax-Gift
| 3 | Angst-Gift
| 4 | Schlaf-Gift
| 5 | ? Goldleim
| 6 | Krötenschemel-Gift
| 7 | ? Kukris
| 8 | ? Expurgicum
| 9 | Bannstaub


Bei DSA2/3 gibt es bei Offset 10951 jeweils 6 Party Einträge.
Jeder Eintrag beginnt mit einem Head:
| Offset | Länge | Bedeutung
------------------------------------
| .......0 | ........4 | Signatur 'PART'
| .......4 | ........2 | Größe in Bytes der Party-Struktur

Anschliessend folgen 7 Party-Positionen mit 4 Bytes (32-Bit Werte)
| Offset | Länge | Bedeutung
------------------------------------
| .......6 | ........4 | 1. Position in der Party, 04=1. Charakter, 05=2. Charakter usw.
| .....10 | ........4 | 2. Position in der Party, 04=1. Charakter, 05=2. Charakter usw.
usw.

Bei DSA2 folgen 18 unbekannte Bytes, bei DSA3 geht's direkt weiter mit
1 Byte = Anzahl der Mitglieder in der Party
4 Bytes = Vermögen der Party
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52