LcfMapUnit: Unterschied zwischen den Versionen
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 9: | Zeile 9: | ||
*Stringlängen-Byte (0x0A) | *Stringlängen-Byte (0x0A) | ||
*String "LcfMapUnit" | *String "LcfMapUnit" | ||
+ | |||
+ | ==Datei-Inhalt== | ||
+ | Der gesamte Inhalt einer Mapdatei ist in einem einfachen Array zusammengefasst. | ||
+ | |||
+ | {| class="wikitable" style="width: 100%;" | ||
+ | ! !! !!Inhalt!!Datentyp!!Details | ||
+ | |- | ||
+ | |1||0x01||[[ChipSet]]-ID||BER||Führt zu schweren Fehlern im Editor wenn ungültig. | ||
+ | |- | ||
+ | |2||0x02||Breite||BER||Beeinflusst die Datengröße von #71/0x47 und #72/0x48 | ||
+ | |- | ||
+ | |3||0x03||Höhe||BER||Beeinflusst die Datengröße von #71/0x47 und #72/0x48 | ||
+ | |- | ||
+ | |11||0x0B||Scrolltyp||BER||0: Gar nicht, 1: Vertikal, 2: Horizontal, 3: Beides | ||
+ | |- | ||
+ | |31||0x1F||[[Panorama]] verwenden||Boolean|| | ||
+ | |- | ||
+ | |32||0x20||Panorama-Dateiname||String||Schwarzer Bildschirm wenn leer bei aktiviertem #31/0x1F. | ||
+ | |- | ||
+ | |33||0x21||Panorama-Scrolling Horizontal||Boolean|| | ||
+ | |- | ||
+ | |34||0x22||Panorama-Scrolling Vertikal||Boolean|| | ||
+ | |- | ||
+ | |35||0x23||Panorama-AutoScrolling Horizontal||Boolean|| | ||
+ | |- | ||
+ | |36||0x24||Panorama-Tempo Horizontal||BER||Normaler Bereich: -8 bis +8 | ||
+ | |- | ||
+ | |37||0x25||Panorama-AutoScrolling Vertikal||Boolean|| | ||
+ | |- | ||
+ | |38||0x26||Panorama-Tempo Vertikal||BER||Normaler Bereich: -8 bis +8 | ||
+ | |- | ||
+ | |71||0x47||Untere Ebene||16bit-Vektor Breite*Höhe|| | ||
+ | |- | ||
+ | |72||0x48||Obere Ebene||16bit-Vektor Breite*Höhe|| | ||
+ | |- | ||
+ | |81||0x51||'''[[#MapEvent|MapEvents]]'''||Zweidimensionaler Array|| | ||
+ | |- | ||
+ | |91||0x5B||Speicherzähler|| ||Bei abweichendem Wert wird die Map neu geladen, anstatt das Backup innerhalb des [[LcfSaveData|Spielstands]] zu verwenden. | ||
+ | |} | ||
+ | |||
+ | ==MapEvent== | ||
+ | {| class="wikitable" style="width: 100%;" | ||
+ | ! !! !!Inhalt!!Datentyp!!Details | ||
+ | |- | ||
+ | |1||0x01||Eventname||String||Weniger als 12 Bytes | ||
+ | |- | ||
+ | |2||0x02||X-Koordinate||BER|| | ||
+ | |- | ||
+ | |3||0x03||Y-Koordinate||BER|| | ||
+ | |- | ||
+ | |5||0x05||'''[[#Eventseite|Eventseiten]]'''||Zweidimensionaler Array|| | ||
+ | |} | ||
+ | |||
+ | ==Eventseite== | ||
+ | {| class="wikitable" style="width: 100%;" | ||
+ | ! !! !!Inhalt!!Datentyp!!Details | ||
+ | |- | ||
+ | |2||0x02||'''[[#Seitenvoraussetzungen|Seitenvoraussetzungen]]'''||Eindimensionaler Array|| | ||
+ | |- | ||
+ | |21||0x15||[[CharSet]]-Dateiname||String||Bei leerem Namen wird vom ChipSet ausgegangen. | ||
+ | |- | ||
+ | |22||0x16||Charakter-Index||BER||Je nach Fall Charakter 0~7 oder UpperTile 0~143. | ||
+ | |- | ||
+ | |23||0x17||Blickrichtung||BER||0: Hoch, 1: Rechts, 2: Runter, 3: Links | ||
+ | |- | ||
+ | |24||0x18||Laufschritt||BER||0: Links, 1: Mitte, 2: Rechts | ||
+ | |- | ||
+ | |25||0x19||Durchlässige Grafik||Boolean|| | ||
+ | |- | ||
+ | |31||0x1F||Bewegungstyp||BER||0: Stehen, 1: Zufall, 2: Vertikal, 3: Horizontal, 4: Verfolgen, 5: Flüchten, 6: Route verwenden | ||
+ | |- | ||
+ | |32||0x20||Bewegungsfrequenz||BER||Zwischen 1 und 8 | ||
+ | |- | ||
+ | |33||0x21||Event-Auslöser||BER||0: Ansprechen, 1: Berührung durch Spieler, 2: Beliebige Berührung, 3: Autostart, 4: Parallel | ||
+ | |- | ||
+ | |34||0x22||Anzeigepriorität||BER||0: Niedrig, 1: Gleichauf mit Spieler, 2: Hoch | ||
+ | |- | ||
+ | |35||0x23||Nicht mit anderen Events überlappen||Boolean|| | ||
+ | |- | ||
+ | |36||0x24||Animationstyp||BER|| | ||
+ | |- | ||
+ | |37||0x25||Bewegungstempo||BER|| | ||
+ | |- | ||
+ | |41||0x29||'''[[#Bewegungsroute|Bewegungsroute]]'''||Eindimensionaler Array|| | ||
+ | |- | ||
+ | |51||0x33||Datengröße||BER|| | ||
+ | |- | ||
+ | |52||0x34||Eventseiteninhalt|| || | ||
+ | |} | ||
+ | |||
+ | ==Seitenvoraussetzungen== | ||
+ | {| class="wikitable" style="width: 100%;" | ||
+ | ! !! !!Inhalt!!Datentyp!!Details | ||
+ | |- | ||
+ | |1||0x01||Trigger-Bits||BER||1: [[Switch]] 1, 2: Switch 2, 4: [[Variable]], 8: Gegenstand, 16: Gruppenheld, 32: Timer 1, 64: Timer 2 (RPG2003) | ||
+ | |- | ||
+ | |2||0x02||Switch-ID 1||BER|| | ||
+ | |- | ||
+ | |3||0x03||Switch-ID 2||BER|| | ||
+ | |- | ||
+ | |4||0x04||Variablen-ID||BER|| | ||
+ | |- | ||
+ | |5||0x05||Var-Vergleichswert||BER||In RPG2000 immer als Minimalwert ohne frei wählbaren Operator. | ||
+ | |- | ||
+ | |6||0x06||Gegenstands-ID||BER|| | ||
+ | |- | ||
+ | |7||0x07||Helden-ID||BER|| | ||
+ | |- | ||
+ | |8||0x08||Timer-Vergleichswert 1||BER||In Gesamtsekunden. | ||
+ | |- | ||
+ | |9||0x09||Timer-Vergleichswert 2||BER||In Gesamtsekunden (RPG2003). | ||
+ | |- | ||
+ | |10||0x0A||Var-Operator||BER||0: ==, 1: >=, 2: <=, 3: >, 4: <, 5: != (RPG2003) | ||
+ | |} | ||
+ | |||
+ | ==Bewegungsroute== | ||
+ | {| class="wikitable" style="width: 100%;" | ||
+ | ! !! !!Inhalt!!Datentyp!!Details | ||
+ | |- | ||
+ | |11||0x0B||Gesamtdatengröße||BER|| | ||
+ | |- | ||
+ | |12||0x0C||Bewegungskommandos|| || | ||
+ | |- | ||
+ | |21||0x15||Route wiederholen||Boolean|| | ||
+ | |- | ||
+ | |22||0x16||Unausführbare Aktionen ignorieren||Boolean|| | ||
+ | |} | ||
+ | |||
+ | ==Links== | ||
+ | *[https://dev.makerpendium.de/docs/lucifer/main-en.htm?page=lmu LcfMapUnit-Spezifikation] auf [[MakerDev Library]] | ||
{{NavboxLucifer}} | {{NavboxLucifer}} | ||
[[Kategorie:RPG Maker 2000]] [[Kategorie:RPG Maker 2003]] [[Kategorie:Dateiformat]] | [[Kategorie:RPG Maker 2000]] [[Kategorie:RPG Maker 2003]] [[Kategorie:Dateiformat]] |
Aktuelle Version vom 13. November 2022, 19:17 Uhr
LcfMapUnit (kurz: LMU) ist das Map-Dateiformat, das von RPG_RT.exe (RPG Maker 2000 / 2003) verwendet wird.
Dateinamen werden nach dem Muster "Map%.4d.lmu" (z.B. "Map0825.lmu" bei #825) von ID 1 bis 9999 an Maps vergeben, die MapID-Bereiche späterer Iterationen des RPG Makers sind stets eine Ziffer kürzer und enden damit schon bei 999.
Maps werden in einer MapTree-Datei mit dem Namen RPG_RT.lmt zusammengefasst und angeordnet. Sämtliche Daten, die nicht nur für eine Map selbst, sondern auch für die aktuell im Spiel geöffnete von Bedeutung sein können, bspw. um Musik anhand von Einstellungen in der Baumstruktur richtig auszuwählen, werden in diesem MapTree gespeichert, während der Rest in den LMU-Dateien untergebracht wird.
Header
- Stringlängen-Byte (0x0A)
- String "LcfMapUnit"
Datei-Inhalt
Der gesamte Inhalt einer Mapdatei ist in einem einfachen Array zusammengefasst.
Inhalt | Datentyp | Details | ||
---|---|---|---|---|
1 | 0x01 | ChipSet-ID | BER | Führt zu schweren Fehlern im Editor wenn ungültig. |
2 | 0x02 | Breite | BER | Beeinflusst die Datengröße von #71/0x47 und #72/0x48 |
3 | 0x03 | Höhe | BER | Beeinflusst die Datengröße von #71/0x47 und #72/0x48 |
11 | 0x0B | Scrolltyp | BER | 0: Gar nicht, 1: Vertikal, 2: Horizontal, 3: Beides |
31 | 0x1F | Panorama verwenden | Boolean | |
32 | 0x20 | Panorama-Dateiname | String | Schwarzer Bildschirm wenn leer bei aktiviertem #31/0x1F. |
33 | 0x21 | Panorama-Scrolling Horizontal | Boolean | |
34 | 0x22 | Panorama-Scrolling Vertikal | Boolean | |
35 | 0x23 | Panorama-AutoScrolling Horizontal | Boolean | |
36 | 0x24 | Panorama-Tempo Horizontal | BER | Normaler Bereich: -8 bis +8 |
37 | 0x25 | Panorama-AutoScrolling Vertikal | Boolean | |
38 | 0x26 | Panorama-Tempo Vertikal | BER | Normaler Bereich: -8 bis +8 |
71 | 0x47 | Untere Ebene | 16bit-Vektor Breite*Höhe | |
72 | 0x48 | Obere Ebene | 16bit-Vektor Breite*Höhe | |
81 | 0x51 | MapEvents | Zweidimensionaler Array | |
91 | 0x5B | Speicherzähler | Bei abweichendem Wert wird die Map neu geladen, anstatt das Backup innerhalb des Spielstands zu verwenden. |
MapEvent
Inhalt | Datentyp | Details | ||
---|---|---|---|---|
1 | 0x01 | Eventname | String | Weniger als 12 Bytes |
2 | 0x02 | X-Koordinate | BER | |
3 | 0x03 | Y-Koordinate | BER | |
5 | 0x05 | Eventseiten | Zweidimensionaler Array |
Eventseite
Inhalt | Datentyp | Details | ||
---|---|---|---|---|
2 | 0x02 | Seitenvoraussetzungen | Eindimensionaler Array | |
21 | 0x15 | CharSet-Dateiname | String | Bei leerem Namen wird vom ChipSet ausgegangen. |
22 | 0x16 | Charakter-Index | BER | Je nach Fall Charakter 0~7 oder UpperTile 0~143. |
23 | 0x17 | Blickrichtung | BER | 0: Hoch, 1: Rechts, 2: Runter, 3: Links |
24 | 0x18 | Laufschritt | BER | 0: Links, 1: Mitte, 2: Rechts |
25 | 0x19 | Durchlässige Grafik | Boolean | |
31 | 0x1F | Bewegungstyp | BER | 0: Stehen, 1: Zufall, 2: Vertikal, 3: Horizontal, 4: Verfolgen, 5: Flüchten, 6: Route verwenden |
32 | 0x20 | Bewegungsfrequenz | BER | Zwischen 1 und 8 |
33 | 0x21 | Event-Auslöser | BER | 0: Ansprechen, 1: Berührung durch Spieler, 2: Beliebige Berührung, 3: Autostart, 4: Parallel |
34 | 0x22 | Anzeigepriorität | BER | 0: Niedrig, 1: Gleichauf mit Spieler, 2: Hoch |
35 | 0x23 | Nicht mit anderen Events überlappen | Boolean | |
36 | 0x24 | Animationstyp | BER | |
37 | 0x25 | Bewegungstempo | BER | |
41 | 0x29 | Bewegungsroute | Eindimensionaler Array | |
51 | 0x33 | Datengröße | BER | |
52 | 0x34 | Eventseiteninhalt |
Seitenvoraussetzungen
Inhalt | Datentyp | Details | ||
---|---|---|---|---|
1 | 0x01 | Trigger-Bits | BER | 1: Switch 1, 2: Switch 2, 4: Variable, 8: Gegenstand, 16: Gruppenheld, 32: Timer 1, 64: Timer 2 (RPG2003) |
2 | 0x02 | Switch-ID 1 | BER | |
3 | 0x03 | Switch-ID 2 | BER | |
4 | 0x04 | Variablen-ID | BER | |
5 | 0x05 | Var-Vergleichswert | BER | In RPG2000 immer als Minimalwert ohne frei wählbaren Operator. |
6 | 0x06 | Gegenstands-ID | BER | |
7 | 0x07 | Helden-ID | BER | |
8 | 0x08 | Timer-Vergleichswert 1 | BER | In Gesamtsekunden. |
9 | 0x09 | Timer-Vergleichswert 2 | BER | In Gesamtsekunden (RPG2003). |
10 | 0x0A | Var-Operator | BER | 0: ==, 1: >=, 2: <=, 3: >, 4: <, 5: != (RPG2003) |
Bewegungsroute
Inhalt | Datentyp | Details | ||
---|---|---|---|---|
11 | 0x0B | Gesamtdatengröße | BER | |
12 | 0x0C | Bewegungskommandos | ||
21 | 0x15 | Route wiederholen | Boolean | |
22 | 0x16 | Unausführbare Aktionen ignorieren | Boolean |