Motivation
Man kennt es: Die Freude über einen guten Fund weicht mit zunehmender Spieldauer dem Frust, sich von einem anderen guten Gegenstand trennen zu müssen. Der Stauraum ist voll, also was tun? Dank TQVault ist die Misere nicht so schlimm, wie sie sein könnte, aber einige Gegenstände sammelt man doch lieber beim Charakter selbt. Besonders wenn der Charakter selffound gespielt wird oder Mod-eigene Gegenstände in TQVault nur kryptisch zu erkennen sind. Also warum nicht einfach das Inventar, die Karawane und vor allem den Übergabebereich erweitern? Wie das geht möchte ich in diesem Thema beschreiben und liefere gleich ein paar Dateien mit, die es Moddern und Interessierten möglich macht, ihren Stauraum zu erweitern.
Grundlagen
Wir wollen die Größe des Inventars, der Karawane und des Übergabefensters ändern, aber dazu müssen neben der eigentlichen Stauraumänderung noch andere Dinge angepasst werden:
- die Position von Bildern, Fenstern, Texten, etc.
- die Bilder von Inventar, Karawane, etc.
Die Zahlenspielereien, die zur Änderung der Größe und Position des Inventars, Karawane und Co. nötig sind, werden in diesem Tutorial beschrieben. Die nötigen Bilder sind für die hier beschriebene Änderung im klassischen TQ-Stil sowie den D2I-Stil von mir angefertigt worden und im Download zu finden. Wenn jemand andere Änderungen möchte oder andere Grafikstile wünscht, der/die muss selbst zum Grafikwerkzeug seiner Wahl greifen.
Die Größe eines Stauraumfeldes beträgt 32x32 Pixel. Die Ausmaße des gesamten Stauraumes dividiert durch 32 ergeben somit die Anzahl der Stauraumfelder. Hier eine kleine Übersicht über die häufig genutzen Maße:
1 Feld = 32 Pixel
5 Felder = 160 Pixel
6 Felder = 192 Pixel
8 Felder = 256 Pixel
12 Felder = 384 Felder
16 Felder = 512 Pixel
18 Felder = 576 Pixel
Randbedingungen
1) Die Änderung von Positionen und Bildern funktionieren als Soft-Mod
2) Die Erweiterung des Inventars funktioniert nur als Hard-Mod
3) Die Erweiterung der Karawane und des Übergabebereiches funktioniert als Soft-Mod, aber für bestehende Charaktere müssen die winsys-Dateien angepasst werden.
Tutorial
In diesem Tutorial beschreibe ich die Erweiterung des Inventars von 5 auf 8 Felder in der Höhe, um zwei Stäbe/Bögen untereinander lagern zu können. Die Karawane wird von 8 (breit) x 15 (hoch) auf 16 x 18 erweitert und der Übergabebereiches von 6 x 12 auf ebenfalls 16 x 18. Die Höhe wurde geändert, damit das Karawanen- und Charakterfenster gleich groß bleiben und das Übergabefenster den möglichen Platz ausnutzt. Die Karawane und der Übergabebereich sind nachher also gleich groß. (Warum die Entwickler den Übergabebereich kleiner als die Karawane gewählt haben, obwohl beide das gleiche Fenster nutzen, bleibt wohl ihr Geheimnis.)
Das Inventar in der Höhe von 5 auf 8 Felder vergrößern
1) Eckgrafiken des Charakterinventars verschieben:
- records\ingameui\player character\characterllcorneroverlaybitmap.dbr (linke untere Ecke)
records\ingameui\player character\characterlrcorneroverlaybitmap.dbr (rechte untere Ecke)
Variable: bitmapPositionY
Original (5 Felder hohes Inventar): 609
Neu (8 Felder hohes Inventar): 705
- records\ingameui\player inventory\inventorygrid0.dbr (Hauptstauraum)
records\ingameui\player inventory\inventorygrid1.dbr (Zusatzbeutel)
Variable: inventoryYSize
Original (5 Felder hohes Inventar): 160
Neu (8 Felder hohes Inventar): 256
- records\xpack\game\gameengine.dbr
Variable: UICharInventorySack0DimsY (Hauptstauraum)
Variable: UICharInventorySack1DimsY (Zusatzbeutel)
Original (5 Felder hohes Inventar): 160
Neu (8 Felder hohes Inventar): 256
- records\xpack\ui\character\characterwindowimage.dbr
Variable: bitmapName
Original (TQ-Stil): XPack\UI\Character\CharacterWindow01.tex
Neu (TQ-Stil): HBFs_ExtendedUI\CharacterWindow01.tex
- records\ingameui\player inventory\inventorytab1bitmap.dbr (1. Beutel)
records\ingameui\player inventory\inventorytab2bitmap.dbr (2. Beutel)
records\ingameui\player inventory\inventorytab3bitmap.dbr (3. Beutel)
Variable: bitmapName
Original (TQ-Stil): InGameUI\CharacterScreen\InventoryExtra01.tex
Neu (TQ-Stil): HBFs_ExtendedUI\InventoryExtra01.tex
Man muss freilich nicht die Verweise auf neue Bilder ändern, sondern kann auch die bestehenden Texturen durch seine eigenen ersetzen. Ich bevorzuge allerdings die Variante mit den geänderten Links, weil man dann immer noch die Originalbilder hat - für den Fall der Fälle. So können verschiedene Bilder(archive) für Stauraumlösungen nebeneinander existieren und man kann mit der jeweiligen Database (die ohnehin die Größe bestimmt) die gewünschten Bilder verwenden.
6) Ausmaße des Charakterfensters anpassen:
- records\xpack\ui\character\characterwindow.dbr
Variable: windowDefaultExtentY
Original (5 Felder hohes Inventar): 637
Neu (8 Felder hohes Inventar): 733
1) Button zum Schließen des Karawanen/Übergabefensters verschieben:
- records\ingameui\tradewindow\closebutton.dbr
Variable: bitmapPositionX
Original (8 Felder breite Karawane): 320
Neu (16 Felder breite Karawane): 544
Die Stauraumfelder innerhalb des Fensters werden um 16 Pixel nach links verschoben und sind 16 Pixel näher am rechten Rand. Daher ist das verbreiterte Karawanenfenster nur 7x32=224 Pixel breiter statt 8x32.
2) Vergrößertes Hintergrundbild für Karawanenfenster einbinden:
- records\xpack\ui\caravan\backgroundimage.dbr
Variable: bitmapName
Original (TQ-Stil): XPack\UI\Caravan\CaravanWindow01.tex
Neu (TQ-Stil): HBFs_ExtendedUI\CaravanWindow01.tex
- records\xpack\ui\caravan\largestashplate.dbr (für noch nicht erweiterte Karawane)
records\xpack\ui\caravan\smallstashplate.dbr (für 1x erweiterte Karawane)
Variable: bitmapName
Original (TQ-Stil): XPack\UI\Caravan\StorageAreaUnlock01.tex
Neu (TQ-Stil): HBFs_ExtendedUI\StorageAreaUnlock01.tex
Original (TQ-Stil): XPack\UI\Caravan\StorageAreaUnlock02.tex
Neu (TQ-Stil): HBFs_ExtendedUI\StorageAreaUnlock02.tex
- records\xpack\ui\caravan\titlebitmap.dbr
Variable: bitmapName
Original (TQ-Stil): XPack\UI\Caravan\CaravanTitle01.tex
Neu (TQ-Stil): HBFs_ExtendedUI\CaravanTitle01.tex
- records\xpack\ui\caravan\caravandrivername.dbr (Name des Karawanenhändlers)
records\xpack\ui\caravan\caravandrivertext.dbr (Die Bezeichnung "Karawanenhändler")
Variable: textBoxX
Original (8 Felder breite Karawane): 120
Neu (16 Felder breite Karawane): 232
- records\xpack\ui\caravan\caravanwindow.dbr
Variable: windowDefaultExtentX
Original (8 Felder breite Karawane): 341
Neu (16 Felder breite Karawane): 565
Variable: windowDefaultExtentY
Original (15 Felder hohe Karawane): 637
Neu (18 Felder hohe Karawane): 733
- records\xpack\ui\caravan\stashincreasebutton.dbr
Variable: bitmapPositionX
Original (8 Felder breite Karawane): 115
Neu (16 Felder breite Karawane): 227
- records\xpack\ui\caravan\stashincreasecosttext.dbr
Variable: textBoxX
Original (8 Felder breite Karawane): 120
Neu (16 Felder breite Karawane): 232
- records\xpack\ui\caravan\stashinventory.dbr
Variable: inventoryX
Original: 43 (8 Felder im Karawanenfenster, aber links und rechts noch Platz)
Neu: 27 (um halbes Feld nach links verschoben, sodass im normalen Karawanenfenster ein Feld mehr reinpasst)
Variable: inventoryXSize
Original (8 Felder breite Karawane): 256
Neu (16 Felder breite Karawane): 512
Die Höhe der Karawane wird hier nicht geändert, denn sie gibt nur die Start-Karawane mit ihren 5 Feldern Höhe an. Die Änderung der vollständig erweiterten Karawane erfolgt in den nächsten Schritten.
10) Größe und Kosten bei Karawanenerweiterung ändern:
- records\xpack\ui\caravan\stashwindow.dbr
Variable: InventoryHeightArray
Original (15 Felder hohe Karawane): 5;10;15
Neu (18 Felder hohe Karawane): 5;10;18
Variable: InventoryCostArray
Original: 10.000;500.000;1.000.000 (letzte Kosten nicht nötig)
Neu: 100.000;5.000.000;10.000.000 (letzte Kosten nicht nötig)
- records\xpack\ui\caravan\transferbutton.dbr
Variable: bitmapPostionX
Original (8 Felder breite Karawane): 175
Neu (16 Felder breite Karawane): 399
- records\xpack\ui\caravan\windowtitle.dbr
Variable: textBoxX
Original (8 Felder breite Karawane): 145
Neu (16 Felder breite Karawane): 257
1) Position und Ausmaße des Übergabebereiches ändern:
- records\xpack\ui\caravan\transferinventory.dbr
Variable: inventoryX
Original: 75 (6 Felder breit, aber links und rechts noch Platz)
Neu: 27 (um 1,5 Felder nach links verschoben, sodass im normalen Fenster 3 Felder mehr reinpassen)
Variable: inventoryY
Original: 62 (12 Felder hoch, aber oben und unten noch Platz)
Neu: 12 (damit es zur Karawane passt)
Variable: inventoryXSize
Original (6 Felder breiter Übergabe-Stauraum): 192
Neu (16 Felder breiter Übergabe-Stauraum): 512
Variable: inventoryXSize
Original (12 Felder hoher Übergabe-Stauraum): 384
Neu (18 Felder hoher Übergabe-Stauraum): 576
- records\xpack\ui\caravan\transferwindow.dbr
Variable: TransferPlate
Original: Records\XPack\UI\Caravan\TransferPlate.dbr
Neu: NOT*Records\XPack\UI\Caravan\TransferPlate.dbr
Die TransferPlate-Grafik ist rein kosmetischer Natur. Im Hintergrund ist das normale Karawanenfenster zu sehen. Die Überlagerung mit der TransferPlate-Grafik ist nur notwendig, wenn der Übergabebereich kleiner als die Karawane ist. In diesem Tutorial sind aber beide Stauräume gleich groß, daher wird diese Grafik nicht mehr benötigt.
Karawane von bestehenden Charakteren und Übergabebereich in winsys-Dateien anpassen
Damit die oben durchgeführten Änderungen tatsächlich wirken, muss der Stauraum von bestehenden Charakteren und dem Übergabebereich in den Sicherungsdateien ebenfalls angepasst werden. Dazu gibt es jeweils zwei Dateien:
- winsys.dxb
- winsys.dxg
Diese Dateien befinden sich für den Übergabebereich unter:
My Games\Titan Quest - Immortal Throne\SaveData\Sys\
Für den jeweiligen Charakter unter:
My Games\Titan Quest - Immortal Throne\SaveData\Main\_<Charaktername>\
Sicherheitshinweise
Beachte
Nach einer Veränderung an den winsys-Dateien müssen die Checksummen angepasst werden, sonst erkennt das Spiel die Dateien als manipuliert und die Inhalte der Karawane bzw. des Übergabebereiches gehen verloren. Dazu bitte das folgende Programm nutzen:
:: TQCaravanFix
Zusätzlich empfehle ich ein Backup aller winsys-Dateien anzulegen.
Rücksetzen/Verkleinern von Stauräumen in den winsys-Dateien
Wenn man die Stauräume in den winsys-Dateien wieder auf die originalen oder kleinere Ausmaße zurücksetzt, gehen keine Items verloren. Allerdings hat man keinen Zugriff mehr auf die Items auf den erweiterten Feldern - auch wenn sie weiterhin sichtbar sind - egal ob man die nötige Hard- oder Soft-Mod verwendet. Beim erneuten Erweitern der Stauräume in den winsys-Dateien sind bei Verwendung (Ausnahmen siehe unten) der entsprechenden Hard- oder Soft-Mod alle Items wieder zugänglich.
Die nachfolgenden Aussagen gelten nicht für Mod-eigene Items. Wer eine Mod verwendet, die eigene Items ins Spiel bringt, sollte betreffende Charaktere nie ohne die Mod laden, sonst gehen solche Items verloren. Das gilt immer - egal ob der Übergabebereich erweitert wurde oder der Originale ist. Aus diesem Grund ist es nicht zu empfehlen, Mod-eigene-Items im Übergabebereich zu lagern, weil sie beim Spielen von Nicht-Mod-Charakteren gelöscht werden, sobald der Charakter den Karawanentreiber anspricht - auch wenn nur die Karawane und nicht das Übergabefenster benutzt wurde!
In diesem Sinne einfach den Rat von Xuthus, dem Karawanentreiber von Rhakotis beherzigen: "Sei einfach vorsichtig, wo du deine Sachen hintust."
Charakterinventar
Wird der Charakter ohne die Hard-Mod geladen, gehen keine Items im Inventar verloren. Allerdings hat man keinen Zugriff mehr auf die Items auf den erweiterten Feldern - auch wenn sie weiterhin sichtbar sind. Beim erneuten Laden mit der Hard-Mod sind alle Items wieder zugänglich.
Karawane und Übergabebereich
Wird der Charakter ohne die Soft- oder Hard-Mod geladen, gehen keine Items in der Karawane oder dem Übergabebereich verloren. Allerdings hat man nur noch Zugriff auf die Items, die sich im (nun verkleinerten) Karawanenfenster bzw. Übergabebereich befinden. Neben dem originalen Stauraum kann das rechtsseitig (und beim Übergabebereich auch unterhalb) noch 1-2 Zusatzfelder betreffen. Alles was über das Karawanenfenster hinausgeht, ist - auch wenn es sichtbar ist - nicht zugänglich. Beim erneuten Laden mit der Soft- oder Hard-Mod sind alle Items wieder zugänglich.
Karawane und Inventar mit bzw. ohne Mod sowie Übergabebereich mit bzw. ohne Mod (v.l.n.r.):
Downloads und Verwendung
Für das Anpassen der winsys-Dateien habe ich ein kleines Programm geschrieben, dass als "TitanQuestIT-CaravanMod.exe" folgendem Download beiliegt. Damit kann man sich die aktuelle Größe von Karawane und Übergabebereich anschauen bzw. diese ändern.
Nach der Änderung ist das Starten des TQCaravanFix notwendig, daher habe ich die TQCaravanFix.exe gleich mit reingepackt.
Für die interessierten Modder habe ich die notwendigen Grafiken und Records beigelegt. Daraus können die Bilder-Archive konstruiert werden sowie per Binary-Update-Trick auch beliebige database.arz angepasst werden. Dem Download liegen dabei zwei Varianten bei: Einmal für das normale TQIT 1.17 und eine weitere für die Mod Diablo 2 Immortal 1.64.
:: HBFs Caravan Mod
In meiner Lost Treasures Mod sind diese Änderungen bereits enthalten. Lediglich die überarbeitete Version meines Karawanen-Programmes würde ich diesen Nutzern empfehlen.
Wer das normale Spiel - TQIT 1.17 (d.h. mit Fanpatch und Patchfix) - mit dem erweiterten Stauraum nutzen möchte, braucht die Programme und ein paar Dateien aus dem o.g. Caravan Mod. Die Arbeit mit dem Einbinden in die Database habe ich mal bereits übernommen:
:: database.arz -> ins Installationsverzeichnis nach TQIT/database verschieben
Dazu dann einfach die "HBFs_ExtendedUI.arc" und "Text_DE.arc" (identisch mit der Text_DE.arc aus dem aktuellen Lost Treasures Mod) ins Installationsverzeichnis nach TQIT/resources verschieben. Bestehende Dateien sollten vor dem Ersetzen freilich gesichert werden.
Wer ebenfalls die Mod Diablo 2 Immortal spielt, kann hier eine modifizierte Version 1.64 herunterladen:
Diablo 2 Immortal.arz -> ins Mod-Verzeichnis unter database verschieben
Dazu wird die o.g. database.arz für TQIT 1.17 benötigt, sonst ist das Inventar nur 5 Felder hoch. Als letztes noch die "DiabloTextures_ExtendedUI.arc" in den Resources-Ordner der Mod verschieben und fertig.
Wer außerdem noch seine Charaktere über TQVault verwaltet, der kann hier eine von mir angepasste Version von TQVault 2.3.1.4 herunterladen:
TQVault XL - Xtra Large and Xtra Light
Damit hat man Zugriff auf das erweiterte Inventar, die vergrößerte Karawane sowie den Übergabebereich. Zusätzlich besitzen nun alle TQVault-Beutel ebenfalls 8 Felder in der Höhe, sodass der Charakterinhalt 1:1 verschoben werden kann. Ein weiterer Vorteil: Die Vault-Beutel sind nicht so schnell voll, denn es passen nun bspw. 2 Stäbe untereinander.
Um die Karawanen von bestehenden Charakteren und den Übergabebereich anzupassen, sind in jedem Fall die
TitanQuestIT-CaravanMod.exe
und
TQCaravanFix.exe
zu benutzen.
Wenn beide Dateien sich im selben Ordner befinden, wird die TQCaravanFix.exe automatisch bei einer Änderung durch TitanQuestIT-CaravanMod.exe gestartet. Falls sie nicht startet, muss dies manuell nachgeholt werden.