-
Notifications
You must be signed in to change notification settings - Fork 0
CHR NPC
CHR/NPC Dateien sind 1754 Bytes lang und besitzen keinen Header an dem die Spiel-Version erkannt werden kann.
0x0 | 16 byte Character-Array | Name | Dateistruktur: 1754 bytes |
0x10 | 16 byte Character-Array | Name | |
0x20 | 1 byte (?) | Anzahl belegter Gegenstandsslots | |
0x21 | 1 byte integer (unsigned) | Typus | |
0x22 | 1 byte integer (unsigned) | Geschlecht | |
0x23 | 1 byte integer (unsigned) | Größe (in cm) | |
0x24 | 2 byte integer (unsigned) | Gewicht (in Unzen) | |
0x26 | 1 byte integer (unsigned) | Gottheit | |
0x27 | 1 byte integer (unsigned) | Stufe | |
0x28 | 4 byte integer (?) | Abenteuerpunkte | |
0x2C | 4 byte integer (?) | Geld (in Hellern) | |
0x30 | 1 byte integer (?) | RS-Bonus1 (RS-Bonus = RS-Bonus1 + RS-Bonus2) | |
0x31 | 1 byte integer (?) | RS-Bonus2 (RS-Bonus = RS-Bonus1 + RS-Bonus2) | |
0x32 | 1 byte integer (signed) | RS-BE (Rüstungsbehinderung) | |
0x33 | 1 byte integer (?) | Verbleibende BP in Kampfrunde | |
0x34 | 1 byte integer (signed char) | Mut (normaler Wert) | |
0x35 | 1 byte integer (signed char) | Mut (momentaner Wert) | |
0x36 | 1 byte integer (signed char) | Mut (Bonus/Malus) | |
0x37 | 1 byte integer (signed char) | Klugheit (normaler Wert) | |
0x38 | 1 byte integer (signed char) | Klugheit (momentaner Wert) | |
0x39 | 1 byte integer (signed char) | Klugheit (Bonus/Malus) | |
0x3A | 1 byte integer (signed char) | Charisma (normaler Wert) | |
0x3B | 1 byte integer (signed char) | Charisma (momentaner Wert) | |
0x3C | 1 byte integer (signed char) | Charisma (Bonus/Malus) | |
0x3D | 1 byte integer (signed char) | Fingerfertigkeit (normaler Wert) | |
0x3E | 1 byte integer (signed char) | Fingerfertigkeit (momentaner Wert) | |
0x3F | 1 byte integer (signed char) | Fingerfertigkeit (Bonus/Malus) | |
0x40 | 1 byte integer (signed char) | Gewandtheit (normaler Wert) | |
0x41 | 1 byte integer (signed char) | Gewandtheit (momentaner Wert) | |
0x42 | 1 byte integer (signed char) | Gewandtheit (Bonus/Malus) | |
0x43 | 1 byte integer (signed char) | Intuition (normaler Wert) | |
0x44 | 1 byte integer (signed char) | Intuition (momentaner Wert) | |
0x45 | 1 byte integer (signed char) | Intuition (Bonus/Malus) | |
0x46 | 1 byte integer (signed char) | Körperkraft (normaler Wert) | |
0x47 | 1 byte integer (signed char) | Körperkraft (momentaner Wert) | |
0x48 | 1 byte integer (signed char) | Körperkraft (Bonus/Malus) | |
0x49 | 1 byte integer (signed char) | Aberglaube (normaler Wert) | |
0x4A | 1 byte integer (signed char) | Aberglaube (momentaner Wert) | |
0x4B | 1 byte integer (signed char) | Aberglaube (Bonus/Malus) | |
0x4C | 1 byte integer (signed char) | Höhenangst (normaler Wert) | |
0x4D | 1 byte integer (signed char) | Höhenangst (momentaner Wert) | |
0x4E | 1 byte integer (signed char) | Höhenangst (Bonus/Malus) | |
0x4F | 1 byte integer (signed char) | Raumangst (normaler Wert) | |
0x50 | 1 byte integer (signed char) | Raumangst (momentaner Wert) | |
0x51 | 1 byte integer (signed char) | Raumangst (Bonus/Malus) | |
0x52 | 1 byte integer (signed char) | Goldgier (normaler Wert) | |
0x53 | 1 byte integer (signed char) | Goldgier (momentaner Wert) | |
0x54 | 1 byte integer (signed char) | Goldgier (Bonus/Malus) | |
0x55 | 1 byte integer (signed char) | Totenangst (normaler Wert) | |
0x56 | 1 byte integer (signed char) | Totenangst (momentaner Wert) | |
0x57 | 1 byte integer (signed char) | Totenangst (Bonus/Malus) | |
0x58 | 1 byte integer (signed char) | Neugier (normaler Wert) | |
0x59 | 1 byte integer (signed char) | Neugier (momentaner Wert) | |
0x5A | 1 byte integer (signed char) | Neugier (Bonus/Malus) | |
0x5B | 1 byte integer (signed char) | Jähzorn (normaler Wert) | |
0x5C | 1 byte integer (signed char) | Jähzorn (momentaner Wert) | |
0x5D | 1 byte integer (signed char) | Jähzorn (Bonus/Malus) | |
0x5E | 2 byte integer (signed) | Lebensenergie aktuell | |
0x60 | 2 byte integer (signed) | Lebenspunkte maximal | |
0x62 | 2 byte integer (signed) | Astralenergie aktuell | |
0x64 | 2 byte integer (signed) | Astralspunkte maximal | |
0x66 | 1 byte integer (signed) | Magieresistenz | |
0x67 | 1 byte integer (?) | Basiswert Atacke/Parade | |
0x68 | 7 x 1 byte integer (?) | Attackewerte | |
0x6F | 7 x 1 byte integer (?) | Paradewerte | |
0x76 | 1 byte integer (signed) | Attacke (Bonus/Malus) der Waffe | |
0x77 | 1 byte integer (signed) | Parade (Bonus/Malus) der Waffe | |
0x78 | 1 byte integer (signed) | Gattung der aktuellen Waffe | |
0x79 | 1 byte integer (signed) | momentaner Attackenmodifikator (0x00 = normal; 0x02 = aggressiv; 0xFE = vorsichtig) | |
0x7A | 1 bytes integer (signed) | permanenter LE Verlust | |
0x7B | 1 bytes | Helden-ID für heldenbezogene Timer | |
0x7C | 1 bytes | Startausrüstung erhalten = 1, noch nicht erhalten = 0 | |
0x7D | 1 bytes | Wirkung von Kräutern {keine = 0, Belmart = 1, Menchalkaktus = 2} | |
0x7E | 1 bytes | Unbekannt (Unbenutzt) | |
0x7F | 1 byte integer (unsigned) | Hunger (in Prozent) | |
0x80 | 1 byte integer (unsigned) | Durst (in Prozent) | |
0x81 | 1 bytes signed | Kampf-ID des Helden | |
0x82 | 1 byte | Blickrichtung | |
0x83 | 1 byte | Anzahl verbleibender Aktionen pro Kampfrunde (wird im Kampf geändert) | |
0x84 | 1 bytes | Unbekannt | |
0x85 | 1 byte integer signed | Zauberspruch-ID | |
0x86 | 1 byte integer (signed) | Kampf-ID des zuletzt angegriffenen Gegners | |
0x87 | 1 byte | Nummer der Heldengruppe | |
0x88 | 1 byte integer | Tempel-ID (TYPEINDEX) in welcher sich der Held befindet | |
0x89 | 1 byte integer signed | NPC-ID {Held = 0, NARIELL = 1, HARIKA = 2, CURIAN = 3, ARDORA = 4, GARSVIK = 5, ERWO = 6} | |
0x8A | 1 byte integer (unsigned) | Position in der Heldengruppe (0x01 bis 0x06, 0x00 = nicht in der Heldengruppe) | |
0x8B | 4 bytes integer (?) | Unbekannt | |
0x8F | 4 bytes integer (?) | Unbekannt | |
0x93 | 1 byte signed | Rezept-ID (Alchemist) | |
0x94 | 1 byte | Unbekannt | |
0x95 | 1 byte | Unbekannt | |
0x96 | 1 byte | Verbleibende Kampfrunden geblendet | |
0x97 | 1 byte | Verbleibende Kampfrunden Ecliptifactus | |
0x98 | 1 byte | Unbekannt | |
0x99 | 1 byte integer (signed) | Schutz vor magischem Feuer (Feuerbann) 0/1 | |
0x9A | 1 byte integer | Unsichtbar (Visibili Vanitar) 0 / 1 | |
0x9B | 1 byte | Unbekannt | |
0x9C | 1 byte | Herbergs-ID (TYPEINDEX) in welcher sich der Held befindet (Alchemist) | |
0x9D | 2 byte | Unbekannt | |
0x9F | 1 byte | im Gefängnis = 1, normal = 0 | |
0xA0 | 1 byte (bool) | Axxeleratus aktiviert = 1 | |
0xA1 | 1 byte (bool) | Betrunken | |
0xA2 | 8 bytes | Unbekannt (Unbenutzt) | |
0xAA | 1 byte bitfield | Status (Bitflags: Bit0 = tot, Bit1 = schläft, Bit2 = versteinert, Bit4 = Chamaelioni, Bit5 = verflucht, Bit6 = bewusstlos) | |
0xAB | 1 byte bitfield | Status (Bitflags: Bit1 = Duplicatus) | |
0xAC | 2 bytes | Unbekannt (Unbenutzt) | |
0xAE | 5 byte struct | leerer Slot für Krankheiten | |
0xB3 | 7× 5 byte struct | Slots für Krankheiten { 1-Wundfieber, 2-Dumpfschädel, 3-Blaue Keuche, 4-Paralyse, 5-Schlachtenfieber, 6-Frostschäden, 7-Tollwut } | |
0xD6 | 5 byte struct | leerer Slot für Gifte | |
0xDB | 9× 5 byte struct | Slots für Gifte { 1-Shurinknollengift, 2-Arax, 3-Angstgift, 4-Schlafgift, 5-Goldleim, 6-Krötenschemel, 7-Lotusgift, 8-Kukris, 9-Bannstaubvergiftung } | |
0x108 | 9× 1 byte integer (signed) | Talentwerte Kampf | |
0x111 | 10× 1 byte integer (signed) | Talentwerte Körper | |
0x11B | 7× 1 byte integer (signed) | Talentwerte Gesellschaft | |
0x122 | 6× 1 byte integer (signed) | Talentwerte Natur | |
0x128 | 9× 1 byte integer (signed) | Talentwerte Wissen | |
0x131 | 9× 1 byte integer (signed) | Talentwerte Handwerk | |
0x13A | 2× 1 byte integer (signed) | Talentwerte Intuition | |
0x13C | 1 byte integer (signed) | Aufgesparte Talentsteigerungen | |
0x13D | 1 byte integer (unsigned) | Zauber[0] | |
0x13E | 5× 1 byte integer (signed) | Zauberfertigkeiten Antimagie | |
0x143 | 12× 1 byte integer (signed) | Zauberfertigkeiten Beherrschung | |
0x14F | 6× 1 byte integer (signed) | Zauberfertigkeiten Dämonologie | |
0x155 | 3× 1 byte integer (signed) | Zauberfertigkeiten Elemente | |
0x158 | 6× 1 byte integer (signed) | Zauberfertigkeiten Bewegung | |
0x15E | 5× 1 byte integer (signed) | Zauberfertigkeiten Heilung | |
0x163 | 7× 1 byte integer (signed) | Zauberfertigkeiten Hellsicht | |
0x16A | 4× 1 byte integer (signed) | Zauberfertigkeiten Illusion | |
0x16E | 9× 1 byte integer (signed) | Zauberfertigkeiten Kampf | |
0x177 | 2× 1 byte integer (signed) | Zauberfertigkeiten Verständigung | |
0x179 | 16× 1 byte integer (signed) | Zauberfertigkeiten Verwandlung | |
0x189 | 10× 1 byte integer (signed) | Zauberfertigkeiten Veränderung | |
0x193 | 1 byte integer (signed) | Aufgesparte Zaubersteigerungen | |
0x194 | 1 byte integer (unsigned) | Magische Schulung | |
0x195 | 1 byte integer (unsigned) | Stabzauber (aktiv beim Zauberstab, Magier) | |
0x196* | 14 bytes* | Gegenstand Kopf (Helm) | |
0x1A4* | 14 bytes* | Gegenstand Arm (Armschiene) | |
0x1B2* | 14 bytes* | Gegenstand Körper (Rüstung) | |
0x1C0* | 14 bytes* | Gegenstand rechte Hand | |
0x1CE* | 14 bytes* | Gegenstand linke Hand | |
0x1DC* | 14 bytes* | Gegenstand Beine (Hose) | |
0x1EA* | 14 bytes* | Gegenstand Füße (Schuhe) | |
0x1F8* | 14 bytes* | Gegenstand Rucksack #1 | |
0x206* | 14 bytes* | Gegenstand Rucksack #2 | |
0x214* | 14 bytes* | Gegenstand Rucksack #3 | |
0x222* | 14 bytes* | Gegenstand Rucksack #4 | |
0x230* | 14 bytes* | Gegenstand Rucksack #5 | |
0x23E* | 14 bytes* | Gegenstand Rucksack #6 | |
0x24C* | 14 bytes* | Gegenstand Rucksack #7 | |
0x25A* | 14 bytes* | Gegenstand Rucksack #8 | |
0x268* | 14 bytes* | Gegenstand Rucksack #9 | |
0x276* | 14 bytes* | Gegenstand Rucksack #10 | |
0x284* | 14 bytes* | Gegenstand Rucksack #11 | |
0x292* | 14 bytes* | Gegenstand Rucksack #12 | |
0x2A0* | 14 bytes* | Gegenstand Rucksack #13 | |
0x2AE* | 14 bytes* | Gegenstand Rucksack #14 | |
0x2BC* | 14 bytes* | Gegenstand Rucksack #15 | |
0x2CA* | 14 bytes* | Gegenstand Rucksack #16 | |
0x2D8 | 2 byte integer (?) | momentane Last | |
0x2DA | 1024 bytes | Charakter Bild (32x32 Pixel, 8 bpp, Palette #1) |
- ab DSA 2 sind die Items 27 Bytes groß, von daher verschieben sich die Item offsets wie folgt:
Offset | Datentyp | Bedeutung |
Offset | Datentyp | Bedeutung |
0x00 | 2 byte | Item-ID |
0x02 | 2 byte | Zähler für gestapelte Gegenstände |
0x04 | 1 byte | Flags: Bit7: analysiert/Odem Arcanum (in Riva wird bei Analyse Bit 6 & 7 gesetzt), Bit6 + Bit5: permanent vergiftet, Bit3: magisch, Bit2: leer, Bit1: halbleer, Bit0: kaputt |
0x05 | ||
0x06 | 1 byte | Bruchfaktor(genaugenommen der Waffenzustand, die Werte im Spiel reichen von -99(unzerbrechlich)und von -5 bis 7. Werte > 7 werden im Spiel nicht mehr richtig dargestellt. Besitzt eine Waffe einen Zustand von 7 und wird weiter beschädigt, dann zerbricht sie) |
0x07 | 1 byte | Benutzt, wenn nicht 0 |
0x08 | 1 byte | Timer für Lichtquellen (Fackel/Lampe)(zählt runter) |
0x09 | 1 byte | Gifttyp für mit Gift behandelte Waffen { 0-kein Gift, 1-Schurinknollengift, 2-Arax, 3-Angstgift, 4-Schlafgift, 5-Goldleim, 6-Krötenschemelgift, 7-Lotosgift, 8-Kukris, 9-Bannstaub, 10-Expurgicum, 11-Vomicum } |
0x0a | 1 byte | Giftzähler für mit Gift behandelte Waffen (Anzahl der erfolgreichen Treffer bis das Gift verbraucht ist) |
0x0b | ||
0x0c | ||
0x0d |
Offset | Datentyp | Bedeutung |
0x10 | 1 byte | Schuhzustand (ab DSA 2) |
Infos von Kunar (Larian Forum)
Heldenportrait
Die Portraits stehen am Ende der Heldendatei (*.CHR) und umfassen offset 0002D0 0A bis 0006D0 09 (oder anders ausgedrückt ab 2d0 (720) + a (10), also 2da (730)). Es sind 32x32 Pixel, also die letzten 1024 Byte in der Datei.
Auch NSC-Portraits lassen sich so benutzen, indem man die NPC-Dateien aus dem TEMP-Verzeichnis kopiert. Sie entsprechen den CHR-Datei der Helden (erwähnte ich bereits früher in diesem Faden).
Die Portraits benutzen nur die 32 Farben, welche mit den Hexcodes 20-3F beschrieben werden.
CHR/NPC Dateien sind 1519 Bytes lang und besitzen einen Header an dem erkannt werden kann welches Spiel in welcher Version die Datei erstellt hat.
CHR Dateien gibt es in Sternenschweif/Schatten über Riva nicht mehr: die Spielercharaktere werden im Unterverzeichnis GAMES
in den CHARS*.DAT
Dateien gespeichert (Dateigröße/1519 = enthaltene CHRs).
12 bytes | Identifier (= "DSA VERSION\0") | Header: 16 bytes |
1 byte | Unbekannt | |
1 byte | Version Spielnummer (Schweif = 2, Riva = 3) | |
1 byte | Version Major | |
1 byte | Version Minor | |
... |