Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Truhen neu „befüllen“ in Drakensang
#1
Vorneweg: das ist natürlich „Cheaten“ und nur was für Leute, die das wirklich wollen. Ferner benutze ich den SQLite-Browser, der hier irgendwo zum Download verlinkt ist.

Ausgangslage war die erste Reise von Avestreu nach Ferdok. Da ich eh plante, mehrmals Loszureisen (und nein, ich „fliehe“ nicht, ich wollte mich nur nochmal vergewissern, ob auch alles erledigt ist bzw. ob Bredo nicht doch noch was anderes in der Kiepe hatte). Dazu legte ich erst mal mehrere Savegames an um zu sehen, ob sich dadurch der Inhalt der beiden Truhen veränderte. Tat er nicht, und ich empfand 14 Pfeile und 5 Wurfdolche aus der einen und eine dunkle Lederhose plus grüner Hut nicht gerade angemessen… und vor allem: nach fünffachem Neuladen verschiedener Savegames immer das selbe Ergebnis. Wovon der Inhalt abhängt, weiß ich nicht, bei mir wars einfach immer dasselbe.

In Kunars Beiträgen in seinem Reisebericht fand ich seine Berichte über die Inhalte von Truhen durch Neu-Zusammenstellung der Party. Das habe ich nicht versucht, da zu wenig Auswahl.

Also betrat ich das Neuland „Entlang der Rakula“ und speicherte sofort neu ab. Dann öffnete ich mittels SQLite die savegamse.dsa. Dort findet sich im Fenster „Browse Data“ an vierter Position der Eintrag „Instance_Chest“, die beiden fraglichen Truhen befinden sich ganz unten als letzte Einträge unter „currentencounter“, eine Kiste unter der Zeilenüberschrift „LootTable“ heisst „loot_kiste-trash“, die andere „loot_kiste_ammo“ - also einmal Müll und einmal Munition. Weiter hinten lautet eine Zeilenüberschrift „Loot-Table-seed“, in dem eine Zahl steht, bei mir waren es 9??6 (weiß ich nicht mehr) und 21??8. Ich las etwas höher Einträge die „loot_kiste_waffen_reich“ oder „loot_kiste_armor_reich“ und kopierte diese in meine beiden Encounter-truhen und änderte die Zahlen um, einfach mal in 9936 und 22784.

Bei Durchstöbern der Kisten „Entlang der Rakula“ entdeckte ich diesmal in der Rüstungstruhe eine Kettenhaube und dunkle Lederhose, in der Waffenkiste ein Lang- und ein Breitschwert.

Ab da habe ich dann bei jedem erneuten Betreten andere Zahlen eingesetzt (jedes Mal wieder „…_armor_reich“ und „…-waffen_reich“ kopiert) und festgestellt:
- in der Waffenkiste ab da jedes Mal ein Breitschwert kombiniert mit etwas anderem
- in der Rüstungstruhe immer eine dunkle Lederhose mit einem anderen Gegenstand.

Hier meine bisherigen Funde:

Waffen: (jeweils zzgl. Breitschwert)

8350 schw. Armbrust
8352 Anderthalbhänder
8440 Langschwert
8441 Langschwert
8445 Schw. Armbrust
8446 schw. Armbrust
8500 schw. Dolch
8508 schw. Armbrust
8510 schw. Armbrust
8620 Säbel
8621 Streitkolben
8626 Streitaxt
8640 Wurfbeil (?)
9632 Säbel
9730 Säbel
9732 Säbel
9781 Anderthalbhänder
9822 Kriegshammer (!)
2636 Andergaster

Rüstung: (jeweils zzgl. Dunkle Lederhose)

18608 Spitzhut
19600 Kettenhandschuhe
19800 nur eine dunkle Lederhose (?)
21688 Stahlkniekacheln
21886 Nietenarmschienen
22100 Spitzhut
22200 Kettenhandschuhe
22376 Kettenhandschuhe
22398 Flügelhelm
22400 Flügelhelm
22476 Lederwams
22500 Soldatenstiefel
22508 Lederwams
22512 Stahlkniekacheln
22516 Spitzhut
22517 Spitzhut
22612 Spitzhut
22784 Kettenhaube
22786 Kettenhaube
23186 Nietenarmschienen

Das sind nur Stichproben. Ich würde gerne wissen, ob das jemand reproduzieren kann und unter welcher Nummer ein Langbogen, Schild resp. Schulterpolster zu finden wären….Oder gibt es eine Liste innerhalb der static.db oder anderswo, wo die Nummern aufgeschlüsselt werden?
Zitieren
#2
Achja, was ich eigentlich bei der Gelegenheit fragen wollte und nicht gefunden habe: wie kann ich in Stadtgebieten Truhen-Inhalte verändern? Mit den veränderten Nummern fand ich die Kisten anschliessend "leer" vor...
Zitieren
#3
Die Truhen funktionieren folgendermaßen:

Für jede Truhe existiert ein Eintrag in der Tabelle _Instance_chest im der game.db4 bzw. im Savegame. In der Spalte LootTable ist die Loot Tabelle angegeben. Die Loot Tabellen findest du in der static.db in der Tabelle _DSA_LootTables. Diese ist so aufgebaut.

LootTableName
Hier steht der Name aus der Spalte LootTable in der game.db4

LootTableValue
Die maximale Anzahl der zu findenden Gegenstände. Dies kann ein fester Wert sein, du findest hier aber auch Einträge wie w2 oder w3, d.h. es wird vorher ausgewürfelt, wie viele Gegenstände in der Truhe sind. Dieses Auswürfeln ist fest im Spiel verdrahtet. Wichtig: 0 bedeutet 1, 1 bedeutet 2 usw.

LootTableContent
Der tatsächliche Inhalt der Truhe. Die Einträge in dieser Spalte sind folgendermaßen aufgebaut:
Item/robable_fussel/100/1/1/;

Der erste Wert nennt die Tabelle, in der der Gegenstand ist. Im obige Beispiel die Tabelle _Template_Item.
Der zweite Wert ist der Name des Gegenstands. Diesen findest du in der Splate Id der entsprechenden Tabelle.
Die Zahl 100 aus dem Beispiel legt die Wahrscheinlichkeit, dass der Gegenstand in der Truhe ist, in Prozent fest. 100 bedeutet also, dass der Gegenstand immer zu finden ist. Die zweite Zahl ist die Anzahl der Gegenstände. 1 bedeutet also einen Fussel, bei 10 würdest du 10 Fussel finden. Die letzte Zahl ist der Wert des Gegenstandes. Diesen findest du in der Spalte Value der entsprechenden Tabelle.

Wenn wir uns jetzt deine Truhe mit der Loot Tabelle loot_kiste_armor_reich ansehen, finden wir folgende Einträge:

LootTableValue hat den Wert 1, also findest du zwei Gegenstände in der Truhe.

LootTableContent hat diesen Eintrag:
Armor/hose_leder_01/100/1/35/;Armor/beine_stahlkniekacheln/100/1/750/;Armor/torso_lederruestung/100/1/500/;Armor/helm_sturmhaube/100/1/750/;Armor/helm_kettenhaube_kurz/100/1/700/;Armor/schuhe_soldatenstiefel/50/1/250/;Armor/helm_fluegelhelm_01/100/1/1000/;Armor/armschienen_nieten_01/100/1/300/;Armor/handschuhe_kette/100/1/1200/;Armor/hut_heilmagier/100/1/50/;

Hier gibt es jede Menge zu finden. Alle Rüstungsteile bis auf die Soldatenstiefel, sin zu 100% drin. Da Value die Anzahl der Gegenstände auf zwei begrenzt, findest du auch nicht mehr.

Um Einfluss auf den Inhalt zu nehmen hast du mehrere Möglichkeiten.

a) Du änderst den LootTableValue. DAnn findest mehr von den angegebenen Gegenständen.
b) Du änderst oder erweiterst den Eintrag in LootTableContent.
c) Du änderst beides.
d) Du erstellst eine eigene Loot Tabelle und trägst diesen bei der Truhe ein.
Zitieren
#4
Den Zwölfen zum Gruße!

Mit dem Thema Rüstungsteile und Waffen aus Zufallstruhen habe ich mich eine ganze Weile beschäftigt. So ganz erschließt sich mir die Hintergrundmechanik noch nicht, aber ich erläutere einmal, was ich herausgefunden habe.

Die "1" bzw. "w4" in den Mengenangaben der Tabellen steht nicht für "2" bzw. "2-5". Das sieht man daran, dass auch mal nur ein Gegenstand in der Truhe sein kann. Es ist also noch etwas komplizierter. (Vielleicht liegt es auch daran, dass einige Gegenstände nicht zu 100% in der Truhe sind, was die effektive Anzahl Fundstücke heruntersetzt.)

(07.08.2013, 08:07)Lord Demon schrieb: LootTableContent
Der tatsächliche Inhalt der Truhe. Die Einträge in dieser Spalte sind folgendermaßen aufgebaut:
Item/robable_fussel/100/1/1/;
(...)
Die Zahl 100 aus dem Beispiel legt die Wahrscheinlichkeit, dass der Gegenstand in der Truhe ist, in Prozent fest. 100 bedeutet also, dass der Gegenstand immer zu finden ist. Die zweite Zahl ist die Anzahl der Gegenstände. 1 bedeutet also einen Fussel, bei 10 würdest du 10 Fussel finden. Die letzte Zahl ist der Wert des Gegenstandes. Diesen findest du in der Spalte Value der entsprechenden Tabelle.

Hat mal jemand ausprobiert, ob ein Ändern der Anzahl der Gegenstände auf 10 (also 11) tatsächlich alle Einträge bringt und nur die mit einer Wahrscheinlichkeit von weniger als 100% nicht immer? Die Wahrscheinlichkeit ist ja nicht die effektive Wahrscheinlichkeit dafür, dass ein Gegenstand in der Truhe ist. Das wird auch durch die Anzahl der Gegenstände begrenzt. Diese muss in der LootTableSeed-Angabe stecken, denn die Truheninhalte lassen sich alleine damit reproduzieren (wenn die Art der Befüllung richtig ist, wohlgemerkt). Es bleibt nach wie vor das Rätsel, warum in den Truhen mit "armen" und "reichen" Rüstungsteilen ein ein bestimmtes Kleidungsstück dabei ist, wenn zwei Gegenstände drin sind.

Ich habe mal einige Experimente für die "mittleren" Rüstungsteile gemacht, denn von dieser Truhe findet sich bereits eine in Avestreu bei den Kahlkopfräubern. Ich habe dafür mit den Spielständen ein wenig gehext, so dass man den Inhalt als Beute beim Taschendiebstahl bei Feldwebel Erland und Fuhrmann Holdwin findet (und die beiden im Gespräch bleiben, auch wenn man näher kommt).

die Liste der Truheninhalte:

Armor/schuhe_lederstiefel_03/50/1/140/;
Armor/schuhe_dranor/50/1/100/;
Armor/schuhe_scharlatan/50/1/160/;
Armor/hose_leder_02/100/1/35/;
Armor/hose_leder_rot/100/1/35/;
Armor/beine_lederschienen_oben_01/100/1/500/;
Armor/torso_wattierter_waffenrock/100/1/400/;
Armor/oberteil_heilmagier/100/1/16/;
Armor/helm_tobrischer_hut/100/1/60/;
Armor/helm_lederkappe/100/1/50/;
Armor/arme_lederschienen/100/1/150/;

einige Werte, die ich aus dem Spiel heraus erreicht habe:

12264 - 5 Gegenstände: Lederstiefel, Lederkappe, Stulpenstiefel, rote Hose, braune Hose
5097 - 4 Gegenstände: rote Hose, Tellerhelm, Magiergewand, Schnabelschuhe
11885 - 3 Gegenstände: Beinschienen, Armschienen, Lederkappe
27066 - 1 Gegenstand: Lederkappe
30750 - 3 Gegenstände: Magierrobe, braune Hose, Lederkappe
17025 - 5 Gegenstände: Lederstiefel, Tellerhelm, Beinschienen, Lederkappe, rote Hose

Interessant ist, dass die Reihenfolge der Gegenstände anders sein kann. Es ist also kein einfaches Aktivieren und Deaktivieren von Truheninhalten.

Ich habe dann mal die Zahlen von 1 bis 10 durchprobiert:

1 - Stulpenstiefel, braune Hose
2 - Lederstiefel, Wattierter Waffenrock, rote Hose
3 - nichts
4 - Lederstiefel, Magierrobe, Stulpenstiefel, Halbschuhe, braune Hose
5 - Armschienen, braune Lederhose, Halbschuhe
6 - Waffenrock, Tellerhelm, braune Hose
7 - Lederstiefel, Stulpenstiefel, Halbschuhe
8 - rote Hose
9 - Lederkappe
10 - Beinschienen, Armschienen, Waffenrock, braune Hose

Dies zeigt, dass die Zahlen auch nicht einfach für einen Bereich von Inhalten stehen. Es ist also nicht so, dass man aus einer Zufallstabelle eine Zahl nimmt und 1-10 steht für X, 10-20 für Y. Benachbarte Zahlen weisen keine Gemeinsamkeit in den Inhalten auf. Interessant außerdem, dass bestimmte Zahlen einfach einen Leerstand produzieren.

Dann habe ich Zahlen unter einer 2er-Potenz probiert:
4095 - Lederstiefel, Waffenrock, Armschienen, rote Hose
8191 - Lederstiefel, Armschienen, braune Hose, Halbschuhe

Dann habe ich die Hälfte, ein Viertel, das Doppelte der ersten Truhenbefüllung probiert:
6132 - braune Hose, Beinschienen, Magierrobe, Halbschuhe
3076 - Lederstiefel, Magierrobe, Tellerhelm, Beinschienen, Stulpenstiefel
24528 - Stulpenstiefel

Das dritte Beispiel zeigt, dass "reichhaltige" Kombinationen sich auch nicht einfach vorhersehen lassen.

Dann habe ich probiert, wie hoch ich mit den Zahlen gehen kann:
99999999999 - 4 Gegenstände
(Einer 10er-Potenz höher war die Truhe leer.)

Die drei Stiefelpaare bei "7" fand ich interessant. Sie sind die ersten drei Gegenstände aus der Befüllung - auch in dieser Reihenfolge.

Binär geschrieben ist 7 "111". Das wäre kompatibel mit einer "binären" Befüllung. Allerdings müssten weitere Bits dann die Anzahl der Gegenstände und ihre Reihenfolge festlegen. So einfach umrechnen ließ sich das ja nicht, wie ich bereits weiter oben festgestellt habe. Dennoch ist so ein Spezialfall interessant für die weitere Erforschung.

Ich habe dann noch einmal mit Zahlen knapp unter einer Zweierpotenz experimentiert:

31 - Lederstiefel, rote Hose, Magierrobe, Waffenrock, Lederkappe

31 entspricht binär "11111". Das wären also fünf Gegenstände. Das stimmt hier sogar, allerdings sind sowohl Auswahl als auch Reihenfolge nicht wie in der Liste der Inhalte.

Sprich, ich kann die Bedeutung der Zahlencodes nicht vollständig enträtseln, weiß aber, was sie abbilden müssen. Ich bin gespannt, ob jemand im Forum noch eine Idee hat! Wir reden über Zahlencodes, die mehrere Informationen gleichzeitig abbilden müssen: Anzahl, Art und Reihenfolge der Gegenstände.
Ärger im Svellttal? Auf der Suche nach dem Salamanderstein? Dann hilft der Sternenschweif-Reiseführer von Kunar!
Zitieren
#5
Wenn ich eine Truhe neu befüllen wollte, würde ich einfach die alte Truhe in den _graveyard_setzen und dann ein Duplikat andie gleiche Stelle packen. Alternativ dazu kann man auch die vorhandene Truhe nehmen aus der game.db4 nehmen, die zusätzlichen Felder, die im Savegame benötigt werden, mit null ausfüllen und dann ins Savegame patchen.

LootTableValue legt die maximale Anzahl der Gegenstände fest. Das können also auch weniger sein, wenn Gegenstände eine Wahrscheinlichkeit von weniger als 100% haben.
Zitieren




Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste