[Tool] Torchlight Savegame Analyse

Hier gehören allgemeine Fragen rund ums Modding/Mods, Tools und Dinge, die nicht in die Unterforen passen, hinein.

Moderatoren: Malgardian, FOE, frx

LordXeoN
Rattenfänger
Beiträge: 3
Registriert: Mi 4. Nov 2009, 14:13

[Tool] Torchlight Savegame Analyse

Beitrag von LordXeoN »

Hallo,
Ich hab mich heute mal hingesetzt und die *.svt dateien also die Savegames angeschaut.


Alle Werte werden ohne Gegenstandsboni gespeichert und bedenkt das mit Boni, die maximal Länge nicht überschritten werden darf. Sonnst hat man z.b. einen Char mit -leben ,der immer Stirbt.

für alle die googlen müssten uint länge ist:
1 Byte= 255
2 Byte= 65535
4 Byte= 4294967295

int die Hälfte da die andere negativ ist :D

Folgende Offsets habe ich gefunden:

0x21 | 00 Unretire / 01 retire (1 Byte)
0xC5 | Level uint (2 Byte)
0xC9 | Experience uint (4 Byte)
0xD1 | Fame uint (4 Byte)
0xD9 | Life int (4 Byte)
0xE5 | Mana int (4 Byte)

0x22B | Stärke uint (2 Byte)
0x22F | Geschick uint (2 Byte)
0x233 | Verteidigung uint (2 Byte)
0x237 | Magie uint (2 Byte)

0x23B | Gold int (4Byte)

nachtrag:

0xFD | freie Statpoints uint (2 Byte)
0x101 | freie skillpoints uint (2 Byte)

nachtrag 2:
0x18 | Schwierigkeitsgrad uint 00: Easy / 01: Normal / 02: Hard / 03: Very Hard
0x1C | Hardcorecheckbit 00 Normal mode / 01 Hardcoremode
0x40 | Cheatingbit 4E nicht gecheatet / D6 gecheatet (Name bleibt)

Ja es ist traurig man kann technisch gesehen nicht über Level 65535 Steigen... wie traurig... :lol:

Wer lust hat einen Savegame Editor zuschreiben... hat ja jetzt schonmal ein paar daten^^
Benutzeravatar
BhaalsHeir
Tränkesammler
Beiträge: 59
Registriert: Do 5. Nov 2009, 13:40

Re: Torchlight Savegame Analyse

Beitrag von BhaalsHeir »

Habe unbedachterweise meinen Char "retired", was ich nicht wollte, und wollt den wieder haben - nur so zur einführung ;) .....
Um das Ganze mal zu präzisieren (bei mir hats gute 2 Stunden gedauert bis ich das hinbekommen habe - habe bisher noch NIE mit nem Hexeditor gearbeitet) wie das "unretiren" funktioniert; ein Post aus dem englischen Forum der mir weitergeholfen hat :)

Code: Alles auswählen

BACK UP YOUR SAVE FILE.

Download Hex Workshop (http://www.hexworkshop.com/)
Go to your save file locations. If you're unsure which character is which since save files are numbered open 0.svt in Hexworkshop and you should see a character name on the right side example: "G.e.n.e.r.i.c" the dots will be inbetween every letter, don't worry about why.
Now press Control+G a window should pop up, make sure 'Hex' is selected and 'Begininng of File' is selected and in the box write
21
and press okay, if your character is retired it should say '01' you need to change it to '00' so highlight it and on the right most side it should say int8 '1' click that and change it to 0.
Go to file, then save and your character should be unretired.
Mein "Barb" lebt wieder ;)

Aber Cave: Saved euren "shared stash" vorher - den hatte ich leider verloren... und darunter n paar nette Set/Unique-Items...

Hoffe es hilft euch (vor allem die mit Hex-Editoren keinerlei Erfahrung haben) weiter....
bhaalsi - Destroyer 88/55; normal -> easy! :)
Chuck - Alchemist 62/xx; hard -> immer noch zu leicht ^^
RSAdity - Vanquisher 12/6; very hard -> fordernd =)
Benutzeravatar
BLUmen7od
Minenerkunder
Beiträge: 16
Registriert: So 1. Nov 2009, 03:32

Re: Torchlight Savegame Analyse

Beitrag von BLUmen7od »

LordXeoN hat geschrieben:Hallo,
Ich hab mich heute mal hingesetzt und die *.svt dateien also die Savegames angeschaut.


Alle Werte werden ohne Gegenstandsboni gespeichert und bedenkt das mit Boni, die maximal Länge nicht überschritten werden darf. Sonnst hat man z.b. einen Char mit -leben ,der immer Stirbt.

für alle die googlen müssten uint länge ist:
1 Byte= 255
2 Byte= 65535
4 Byte= 4294967295

int die Hälfte da die andere negativ ist :D

Folgende Offsets habe ich gefunden:

0x21 | 00 Unretire / 01 retire (1 Byte)
0xC5 | Level uint (2 Byte)
0xC9 | Experience uint (4 Byte)
0xD1 | Fame uint (4 Byte)
0xD9 | Life int (4 Byte)
0xE5 | Mana int (4 Byte)

0x22B | Stärke uint (2 Byte)
0x22F | Geschick uint (2 Byte)
0x233 | Verteidigung uint (2 Byte)
0x237 | Magie uint (2 Byte)

0x23B | Gold int (4Byte)

nachtrag:

0xFD | freie Statpoints uint (2 Byte)
0x101 | freie skillpoints uint (2 Byte)

nachtrag 2:
0x18 | Schwierigkeitsgrad uint 00: Easy / 01: Normal / 02: Hard / 03: Very Hard
0x1C | Hardcorecheckbit 00 Normal mode / 01 Hardcoremode
0x40 | Cheatingbit 4E nicht gecheatet / D6 gecheatet (Name bleibt)

Ja es ist traurig man kann technisch gesehen nicht über Level 65535 Steigen... wie traurig... :lol:

Wer lust hat einen Savegame Editor zuschreiben... hat ja jetzt schonmal ein paar daten^^
Vielen Dank für die gute Arbeit!
Nur durch deine Hilfe bin ich hinter noch ein paar Bugs gekommen...natürlich sind die Offsets nicht für jeden Char gültig, sondern man muss ihn je nach Charname (und noch irgendwelchen Eintragungen) natürlich nach hinten verschieben. Bei mir z.B. waren die meisten Einträge 8 Byte in einem Char und 12 Byte in einem anderen weiter hinten. Oder hattest du bei dir die Diskrepanz schon berücksichtigt? Jedenfalls scheint es, als wäre Gold auch ein uint.
Benutzeravatar
Izual
Skelettschnetzler
Beiträge: 106
Registriert: Fr 30. Okt 2009, 14:48
Wohnort: Ebene der Verzweiflung
Kontaktdaten:

Re: Torchlight Savegame Analyse

Beitrag von Izual »

LordXeoN hat geschrieben:Hallo,
Ich hab mich heute mal hingesetzt und die *.svt dateien also die Savegames angeschaut.


Alle Werte werden ohne Gegenstandsboni gespeichert und bedenkt das mit Boni, die maximal Länge nicht überschritten werden darf. Sonnst hat man z.b. einen Char mit -leben ,der immer Stirbt.

für alle die googlen müssten uint länge ist:
1 Byte= 255
2 Byte= 65535
4 Byte= 4294967295

int die Hälfte da die andere negativ ist :D

Folgende Offsets habe ich gefunden:

0x21 | 00 Unretire / 01 retire (1 Byte)
0xC5 | Level uint (2 Byte)
0xC9 | Experience uint (4 Byte)
0xD1 | Fame uint (4 Byte)
0xD9 | Life int (4 Byte)
0xE5 | Mana int (4 Byte)

0x22B | Stärke uint (2 Byte)
0x22F | Geschick uint (2 Byte)
0x233 | Verteidigung uint (2 Byte)
0x237 | Magie uint (2 Byte)

0x23B | Gold int (4Byte)

nachtrag:

0xFD | freie Statpoints uint (2 Byte)
0x101 | freie skillpoints uint (2 Byte)

nachtrag 2:
0x18 | Schwierigkeitsgrad uint 00: Easy / 01: Normal / 02: Hard / 03: Very Hard
0x1C | Hardcorecheckbit 00 Normal mode / 01 Hardcoremode
0x40 | Cheatingbit 4E nicht gecheatet / D6 gecheatet (Name bleibt)

Ja es ist traurig man kann technisch gesehen nicht über Level 65535 Steigen... wie traurig... :lol:

Wer lust hat einen Savegame Editor zuschreiben... hat ja jetzt schonmal ein paar daten^^
Toll..das heißt man kann seinen Char von Cheated auf Uncheated zurückstellen?
Vielleicht sollte RunicGames solche Dateien später mal schützen lassen...
Rettet euch selbst!
Benutzeravatar
BhaalsHeir
Tränkesammler
Beiträge: 59
Registriert: Do 5. Nov 2009, 13:40

Re: Torchlight Savegame Analyse

Beitrag von BhaalsHeir »

Izual hat geschrieben: Toll..das heißt man kann seinen Char von Cheated auf Uncheated zurückstellen?
Vielleicht sollte RunicGames solche Dateien später mal schützen lassen...
Solange es nur um SP geht ist das denke ich irrelevant. Ich probiere momentan ja auch ein wenig rum (BOSS-Maps); das macht im Gegensatz zu dem normalen Dungeonlvls richtig Spaß und ist definitiv fordernder.
Wenns um MP geht sollte das aber definitiv nicht mehr gehen ;)
so far.....
bhaalsi - Destroyer 88/55; normal -> easy! :)
Chuck - Alchemist 62/xx; hard -> immer noch zu leicht ^^
RSAdity - Vanquisher 12/6; very hard -> fordernd =)
Jupiter
Rattenfänger
Beiträge: 8
Registriert: Mo 9. Nov 2009, 10:23

Re: Torchlight Savegame Analyse

Beitrag von Jupiter »

LordXenoN,

ich hab mir nun den HexEditor besorgt den BhaalHeir hergenommen hatte um sein Char zu "unretiren" und würde gern mein als Cheater gemarkten Char wieder zurückwandeln - ich brauch die Truhe -.-

ich krieg das bloß irgendwie nicht hin. Kannst du mir da weiterhelfen, bzw. hat jemand anderes eine Lösung?

lg Jupiter
Benutzeravatar
mrjeremaja
Tränkesammler
Beiträge: 38
Registriert: Di 10. Nov 2009, 17:42

Re: Torchlight Savegame Analyse

Beitrag von mrjeremaja »

Hey, gute Arbeit! :-)

Habs zwar noch nicht ausprobiert, werd ich aber noch.

Ich spiele Torchlight auf zwei Rechnern: Zu Hause auf der "großen schnellen tollen Kiste", unterwegs auf meinem Lappy. Hab mich momentan geärgert die Savegames manuell zu syncen, vor allem muss man dabei höllisch aufpassen, welches nun das neuere Savegame ist, um nicht versehentlich das alte zu überschreiben.

Deine Daten sind ein guter Anfang, einen Savegame-Editor zu schreiben, der solche Aufgaben automatisch übernimmt. ;-)
LordXeoN
Rattenfänger
Beiträge: 3
Registriert: Mi 4. Nov 2009, 14:13

Re: Torchlight Savegame Analyse

Beitrag von LordXeoN »

so BLUmen7od hatte erwähnt das manche Offsets nicht stimmen ...

... habs noch mal geschaut und er hat recht.

Jedoch sind Folgende Daten weiterhin richtig und Fix:
ACHTUNG!!!! Die Veschiebung er gibt sich aus dem 2 Zeichen längerem Namen Vanquisher im Vergleich zu Destroyer & Alchemist
Beim Vanquisher sind die Werte wie Folgt:
0x23 | 00 Unretire / 01 retire (1 Byte)
0x1A | Schwierigkeitsgrad uint 00: Easy / 01: Normal / 02: Hard / 03: Very Hard
0x1E | Hardcorecheckbit 00 Normal mode / 01 Hardcoremode
0x42 | Cheatingbit 4E nicht gecheatet / D6 gecheatet (Name bleibt)
-----------------------------------------------------
Beim Destroyer/ Alchemist
0x21 | 00 Unretire / 01 retire (1 Byte)
0x18 | Schwierigkeitsgrad uint 00: Easy / 01: Normal / 02: Hard / 03: Very Hard
0x1C | Hardcorecheckbit 00 Normal mode / 01 Hardcoremode
0x40 | Cheatingbit 4E nicht gecheatet / D6 gecheatet (Name bleibt)

Veschiebung gilt nicht für level etc.
Suche garde feste Werte wie Trennsymbole um denn rest eindeutig zu identifizieren:
so weit bin ich schon: Suche im Code nach dem 3. 803F Hexcode:
dann gilt dahinter folgendes:

2byte Level |2 Frei|
4byte Erfahrung |4 Frei|
4byte Fame |4 Frei|
4byte Leben |8 Frei|
4Byte Mana

nun ja hab es mit 4 verschieden saves getestet alle verschiedene Namen etc.
Hoffe es funktioniert^^.

Ansonnsten wenn mir einer sagen kann was es mit den DE11+6byte auf sich hat die immer wieder in jedem Save öfter vorkommen wäre dankbar^^

war mal 'n bischen im Off. Forum unterwegs und das gefunden:
http://forums.runicgames.com/viewtopic. ... =tool+save
ist nen Tool womit man zumindest Hardcore & retire switchen kann.. sowie Diffic. wechseln
Benutzeravatar
mrjeremaja
Tränkesammler
Beiträge: 38
Registriert: Di 10. Nov 2009, 17:42

Re: Torchlight Savegame Analyse

Beitrag von mrjeremaja »

Hey klasse. So ein Programm hab ich mir vorgestellt. Nur vielleicht auch eins, dass noch viel mehr Details über den Helden ausspuckt wäre schön =) Zum Beispiel, Level, Health, Mana, welche Rüstung trägt er, etc.

Wenn dann aber die Funktionalität dazuokmmen sollte, diese Werte nicht nur zu lesen, sondern auch zu "ändern", dann bin ich der Meinung sollte dieses Prog fairerweise das Cheat-Bit automatisch setzen und dies nicht erlauben es rauszunehmen.
Benutzeravatar
BLUmen7od
Minenerkunder
Beiträge: 16
Registriert: So 1. Nov 2009, 03:32

Re: Torchlight Savegame Analyse

Beitrag von BLUmen7od »

Es scheint einen klaren Zusammenhang zwischen dem Char-Level und dem Enchantment zu geben. Erklärung: ab einem Level größer als 99 (siehe Savegame-Werte) ändern sich beim erfolgreichen Enchanten die Itemwerte nicht mehr. Ergo wird sich das Enchanten wohl am Char-Level orientieren und im Levelbereich ab 100 keine Random-Werte mehr ausspucken.

Das wäre natürlich ärgerlich für Level-100-Chars.

Nachtrag: die Orientierung erfolgt anscheinend NICHT an den Exp, sondern ausschließlich am Levelwert. Inwieweit Fame eine Rolle spielt, muss noch rausgefunden werden.

Nachtrag-Nachtrag: Fame scheint auf das Enchantment selbst keinen Einfluss zu haben, subjektiv aber auf die Häufigkeit der Dischants (gibts das im Englischen überhaupt?) - müsste bestätigt werden.
Antworten