Drakensang Savegame Format (*.dsa) - Druckversion +- Crystals-DSA-Foren (https://www.crystals-dsa-foren.de) +-- Forum: DSA - Drakensang (https://www.crystals-dsa-foren.de/forumdisplay.php?fid=23) +--- Forum: Fragen zur Technik (https://www.crystals-dsa-foren.de/forumdisplay.php?fid=39) +--- Thema: Drakensang Savegame Format (*.dsa) (/showthread.php?tid=1433) Seiten:
1
2
|
Drakensang Savegame Format (*.dsa) - Shazu - 02.08.2008 Ja mir ist ein bisschen langweilig, da hab ich mir mal die Savegames angeschaut Und die sind toll! Es sind SQLite Datenbanken. D. h. sie lassen sich mit einem Programm wie z. B. SQLite Database Browser öffnen und editieren/anschauen. Viele Sachen sind einfach selbsterklärend und sollten einfach so geändert werden können . Was ich mir ganz lustig vorstelle zu ändern wären z. B. das Verhalten verschiedener Fraktionen zueinander in der Tabelle _Factions. Man könnte damit wohl z. B. einigen Monstern erklären, dass sie einen nicht angreifen sollen - dafür aber andere Monster oder so Achtung SPOILERALARM: es findet sich z. B. eine Liste aller 626 Quests (interner Questname und Queststatus) in der Tabelle _Story_Tasks RE: Drakensang Savegame Format (*.dsa) - Shazu - 02.08.2008 Ach und für die, die cheaten wollen: _Instance_PC die Zeile ohne ID und Klasse = Hero raussuchen. Der Rest sollte selbsterklärend sein RE: Drakensang Savegame Format (*.dsa) - Obi-Wahn - 03.08.2008 Da kann man ja wirklich alles machen. Cheaten leicht gemacht. RE: Drakensang Savegame Format (*.dsa) - Borbaradwurm - 04.08.2008 Obi-Wahn schrieb:Da kann man ja wirklich alles machen.Schade das es in Drakensang nicht mehr alle Charakterklassen aus der Nordlandtrilogie gibt, sonnst könnte man anhand der Konvertierungsregeln von DSA3 zu DSA4 einen Heldenimporter schreiben. RE: Drakensang Savegame Format (*.dsa) - NoTime - 05.08.2008 Ich gebe zu ich will auch etwas cheaten. Wenn ich ein Savegame unter Vista öffne, dann tauchen zwar die ganzen Oberordner (_Instance_x) auf, aber wenn ich dann auf etwas klicke erscheinen keine Werte. Liegt das an Vista, oder muss ich zusätzlich noch was installieren? Ach ja, ich habe SQliteTool 1.0 installiert. Bitte helft mir schnell Grüße NoTime RE: Drakensang Savegame Format (*.dsa) - Alarion - 05.08.2008 Hallo alle zusammen! Ich habe selber mal ein wenig rumprobiert, und habe auch recht einfach herausgefunden, wie man den Characterbogen seines Heldens editiert (mit SFs, Talenten, Zaubern, usw). Nur kann ich beim besten Willen nicht den Inventarbogen finden. Irgendwie interessiert es mich, wie eine Datenbank sowas realisieren will. Alles in einen Eintrag? Aber in der PC-Tabelle finde ich nur einen Eintrag auf irgendeinen StorageIndex, den ich dann aber nirgendwo wiederfinden kann. Daher die Frage: hat irgendjemand gefunden, wo das Inventar der Helden gespeichert wird? Hesinde zum Gruße Alarion RE: Drakensang Savegame Format (*.dsa) - NoTime - 05.08.2008 Alarion, kannst du mir sagen, wie du vorgegangen bist und welche Programme du verwendest? Ich sehe irgendwie nur _Instance_Pc kann da aber keinen Wert Hero finden, aber auch sonst kann ich keine Werte sehen. Grüße Alarion schrieb:Hallo alle zusammen! RE: Drakensang Savegame Format (*.dsa) - Alarion - 05.08.2008 Also ich habe ein SQLite-Tool benutzt (SQLite Database Browser, http://sqlitebrowser.sourceforge.net/, für Windows) benutzt und mit diesem einfach den Spielstand geöffnet. Bei diesem Programm gibt es drei Tabs, der interessante ist Browse Data, hier kann man die einzelnen Datenbanken anzeigen und die Werte betrachten (und ggf. auch verändern). Wenn man sich dort _Instance_PC ansieht, hat man für jeden Helden (und auch für manche mehrmals, wahrscheinlich aus storygründen) eine Zeile, bei mir ist mein Character ganz unten (hat als Id CharWizardPC, als Name Hero). Die Spalten sind verschiedene Einträge (AP, Talente, Sonderfertigkeiten, alles mögliche), aber eben kein ersichtliches Inventar... RE: Drakensang Savegame Format (*.dsa) - NoTime - 05.08.2008 Danke Dir, ich werde das mal gleich ausprobieren. RE: Drakensang Savegame Format (*.dsa) - NoTime - 05.08.2008 Bringt TaATAdjustSchwert ändern was ? Ich habe bei mir mal Schwerter auf 15 gestellt , was sollte man noch ändern. RE: Drakensang Savegame Format (*.dsa) - Alarion - 05.08.2008 Ich denke, das ist ein Bonus auf den Talentwert. Z.B. der Archetyp Krieger bekommt ja +2 auf Schwerter, die nicht direkt aus dem Talent kommen. Ist also im Endeffekt ein direkter Bonus auf das Talent, denke ich. (Ich weiß aber nicht, ob und wie das auf AT/PA angerechnet wird...) RE: Drakensang Savegame Format (*.dsa) - Crystal - 05.08.2008 Ich glaube, wenn ihr an den Talentwerten was ändert, müsst ihr auch die AT/PA-Werte entsprechend der hinzugekommenen Punkte ändern. Sonst bringt euch das nichts. RE: Drakensang Savegame Format (*.dsa) - NoTime - 05.08.2008 Ist ja eine richtige Wissenschaft das Cheaten - ich habe jetzt etwas manipuliert und bin froh, dass das Spiel noch absturzfrei läuft, echt genial - Danke nochmal RE: Drakensang Savegame Format (*.dsa) - Jinnay - 05.08.2008 Also was das Inventar anbelangt, es gibt Tabellen wie zum Beispiel _Instance_Armor ...in ihr sind alle Rüstungs und Kleidungsgegenstände aufgezählt die im Spiel bisher aufgetaucht sind und auch ein paar mehr... Jeder Datansatz enthält Informationen zum Gegenstand und dazu, wo er sich befindet. Das Inventar scheint sich über den Wert StorageSlotId aufzubauen Solche Tabellen gibt es für die meisten Gegenstandskategorien und so baut sich das ganze Inventar auf... eine interessante Lösung muss ich ja mal sagen. Ich werd damit gleich mal etwas rumspielen udn euch meine Erkenntnisse mitteilen RE: Drakensang Savegame Format (*.dsa) - Borbaradwurm - 05.08.2008 Das Inventar ist über eine Relation aufgebaut, z.B. von _Instance_Ammo (StorageGUID) und _Instance_PC (Guid), das Problem ist das diese Schlüssel der Gegenstände, Inventare der Helden ("Guid" der Helden aus in _Instance_PC) scheinbar über die anderen Attribute des Tupels anhand einer Prüfsumme errechnet wird, da sie nur einmal vorkommen dürfen. Genaugenommen könnte man das Inventar nur dann editieren wenn man den Primärschlüssel der jeweiligen Gegestandstabelle ausrechnen kann. edit: wenn die Prüfsumme der Schlüssel wird nicht überprüft, leider kann man die Schlüssel in SQLite Database Browser nicht kopieren (auch nicht durch Import/Export) sodass man mit diesem Programm nur vorhandene Gegenstände editieren kann und nicht neue hinzufügen... RE: Drakensang Savegame Format (*.dsa) - Borbaradwurm - 06.08.2008 Okay, okay ich will nichts gesagt haben der SQLite Database Browser kann das, wenn man über die SQL Query Funktion ein ensprechendes SQL Statement eingibt, z.B.: Code: UPDATE _Instance_Money SET StackCount = StackCount + 100000 WHERE StorageGUID IN (SELECT Guid FROM _Instance_PC WHERE Name="Hero") RE: Drakensang Savegame Format (*.dsa) - Alarion - 06.08.2008 Stimmt ja, man kann bei dem Browser auch SQL-Queries ausführen. Genial, da helfen mir meine Gymnasial-SQL-Kenntnisse sogar mal. Vielen dank, Borbaradwurm, auf die Idee wäre ich selber gar nicht gekommen. :-) RE: Drakensang Savegame Format (*.dsa) - Borbaradwurm - 06.08.2008 Okay, um mit dem SQL Browser neue Gegenstände hinzuzufügen muss man in den neuen Zeilen die StorageGUID auf die Guid des Helden (aus _Instance_PC) setzten, die Guid des neuen Gegenstandes auf die Guid eines anderen Gegenstands aus derselben Tabelle setzten (weil die Schlüssel einmalig sein sollen teilt die Datenbank dann neue Schlüssel zu). StorageSlotId: ist das Inventory Slot zahlen von 0-47 sind die nicht-Quest-Item-Slots wobei jedes Slot pro StorageGUID nur einmal verwendet werden darf, ähnlich muss man auch bei Gegenständen aufpassen die gerade vom Helden "gegezogen" sind, jedes EquipmentSlot nur einmal benutzen. RE: Drakensang Savegame Format (*.dsa) - Jinnay - 07.08.2008 Ich hab mir das ganze etwas einfacher gemacht und den Gegenstand einfach in eine Truhe geschmissen. Zum einfügen des Gegenstandes habe ich in die Savegamedatei die Template Tabellen aus %root\Drakensang\export\db\game.db4 importiert. Hier mal eine Beispielhafte SQL~Query welche ein Paar Amazonenbeinschienen einfügt. Code: INSERT INTO _Instance_Armor Die Guid (der Primärschlüssel) wird auf Null gesetzt, da er automatisch vergeben wird, verwendet man den Guid eines anderen Gegenstandes verschwindet dieser aus der Table. Diese Query fügt ein Paar Beinschienen in einer Kiste ein und ist erst einsetzbar wenn man ein paar Quests in Ferdok gelöst hat. Wenn ihr die Template Tabelle richtig importiert habt könnt ihr den Ausdruck 'beine_amazonenruestung' durch irgendetwas ersetzen, was euch interessanter vorkommt Viel Spaß beim experimentieren... Wer schlau ist benutzt replace Ps. mir ist bewusst, dass es sicher auch eine elegantere Methode gibt.. nur leider bin ich in SQLite nicht sonderlich bewandert. Bei Zeiten werde ich das ganze wohl mal programmatisch lösen. EDIT: Nochmal etwas übersichtlicher, allerdings in zwei Statements gesplittet. Nochimmer in die Kiste und 'beine_amazonenruestung' durch einen beliebigen Ausrüstungsgegenstand aus der _Template_Armor ersetzbar. Code: INSERT INTO "_Instance_Armor" Code: UPDATE "_Instance_Armor" RE: Drakensang Savegame Format (*.dsa) - Borbaradwurm - 07.08.2008 Jinnay schrieb:Die Guid (der Primärschlüssel) wird auf Null gesetzt, da er automatisch vergeben wird, verwendet man den Guid eines anderen Gegenstandes verschwindet dieser aus der Table.Oh ja, Null, da war doch was, mein SQL ist wohl doch etwas eingrostet. Mein Kommentar bezieht sich übrigens aufs händische hinzufügen einer neuen Zeile im SQLite Browser, wo kein Schlüssel vergeben wird. Jinnay schrieb:Wenn ihr die Template Tabelle richtig importiert habt könnt ihr den Ausdruck 'beine_amazonenruestung' durch irgendetwas ersetzen, was euch interessanter vorkommtWegen dem Importieren habe ich bewusst kein SQL Statement gepostet. Jinnay schrieb:Bei Zeiten werde ich das ganze wohl mal programmatisch lösen.Ich warscheinlich auch... |