PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Map tree data break



P.M.S.M.K.
08.03.2008, 19:29
Wie der Name schon sagt: "Map tree data break"
Doch meine Frage ist nicht, was das ist, sondern erst WANN das passiert?
Wie es dazu kommt, weiss ich auch.
Ich habe gelesen, dass das irgendwann passiert, aber es muss ja einen Grund haben, warum das irgendwann passiert. Würde mich freuen, wenn Antworten kommen, denn mein Spiel besteht aus vielen "in den Ordner kopierten" Bildern.
Mit freundlichen Grüßen,
P.M.S.M.K.

Mani
08.03.2008, 19:43
Zitat aus dem E-Book:
Ursache:
Dieser Fehler tritt beispielsweise dann auf, wenn in eurem Projekt-Hauptverzeichnis die Datei "RPG_RT.LMT" fehlt oder beschädigt ist. Diese Datei ist das Kartenverzeichnis und praktisch eine Art "Index", durch den jede einzelne Karte eures Makerprojektes (die vielen *.lmu-Dateien) von der RPG_RT.EXE während des Spiels aufgerufen und dargestellt werden können.
Auslöser kann das einfache "kopieren von Ressourcen in die entsprechenden Ressourcenordner eures Makerprojektes" sein (wurde getestet und stellte sich leider als wahr heraus).
Problemlösung:
Grundsätzlich gilt die Regel, dass ihr immer ein Backup von euren Maker-Projekten machen solltet, und das am Besten immer dann, wenn ihr etwas an eurem Projekt verändert habt und das Arbeiten mit dem Maker einstellt. Denn tritt erst einmal dieser Fehler auf und ihr habt kein Backup zur Hand, ist euer Projekt auf Ewig im Nirvana gelandet und vollkommen unbrauchbar. Reparieren lässt sich dieser Fehler nicht.
Einstufung der Fehlermeldung:
Sie ist das schlimmste, was der Maker an Fehlermeldungen ausgeben kann. Wenn ihr diese Meldung seht, ist euer Projekt nämlich tot... zumindest galt das bislang. Doch die Lösung ist banaler als banal:
Erstellt ein komplett neues Projekt und legt dort so viele neue Maps an, wie ihr Maps in eurem altem Projekt habt (also habt ihr in eurem Hauptprojekt 200 Maps, müsst ihr in diesem neuem Projekt auch 200 Maps anlegen). Dabei ist ChipSet und dergleichen vollkommen egal. Es geht lediglich darum, die Anzahl der Maps anzulegen, die in eurem Hauptprojekt sind.
Habt ihr das, speichert alles ab und schließt das Projekt. Kopiert dann einfach die Datei "RPG_RT.LMT" dieses "neuen Projekts" in das alte Projekt an die Stelle, an der sich die beschädigte "RPG_RT.LMT" befindet. Euer Projekt müsste nun wieder tadellos funktionieren. Eventuell müsst ihr die Map-Verschachtelungen, die ihr bei der Projekterstellung gemacht habt, wieder komplett neu machen, aber besser so als wenn eure ganze Arbeit hinüber wäre :-)

Im E-Book ist eine Analyse der Fehlermeldungen. ;)

Alpha Cross
08.03.2008, 19:43
Dazu gibt es verschiedene Ursachen:

-PC stürzt ab
-RPG-Maker wird "falsch" beendet, durch Task Manager z.B.
-Du importierst Daten falsch, nicht durch den Editor sondern durch Drag & Drop im Explorer

Edit: Omg du warst um Sekunden schneller als ich:
Dein Post 19:43 und meiner: 19:43

P.M.S.M.K.
08.03.2008, 19:52
Im E-Book ist eine Analyse der Fehlermeldungen.
Das habe ich schon gelesen. Ich wollte wissen, WANN es passiert.;)



-PC stürzt ab
-RPG-Maker wird "falsch" beendet, durch Task Manager z.B.
-Du importierst Daten falsch, nicht durch den Editor sondern durch Drag&Drop im Eplorer
Achso. Wenn ich also den RPG Maker geöffnet habe und davor, zum Beispiel, eine Char Setgrafik in den Ordner kopiere, statt es zu importieren, und dann mein PC abstürzt, kommt der Map tree data break Fehler?!:)

Danke für die Antworten!;)

Spark Amandil
08.03.2008, 20:00
Nein. Ein Fehler tritt nie mit Ankündigung auf. Schwere schonmal gar nicht.
Es kann sein dass er auftritt, es kann aber auch sein dass du die ganze Zeit Glück hast. Es kann in 3 Wochen passieren, in 2 Jahren oder aber auch in den nächsten 5 Minuten.

Der Fehler wird sich dir nie zeigen wenn du 413 Dateien kopiert hast, er wird sich auch nicht zeigen wenn du den maker 14 mal abgeschossen hast, ob und wann er sich zeigt ist für dich als User nie ersichtlich.

P.M.S.M.K.
08.03.2008, 20:11
Es muss doch irgendwie möglich sein, dass der Fehler sich bemerkbar macht, bevor er auftritt. Ich meine, im Makercode gibt es bestimmt keinen Befehl wie:
"Wurde eine Datei kopiert, statt importiert, verwende für variable X einen Wert, der die Tage feststellt, wo der Fehler "Map tree data break" auftritt.":D
Vielleicht irgendwo im Makerscript/code? Ich kenne mich in diesem Bereich leider noch nicht so ganz aus.

Spark Amandil
08.03.2008, 20:14
Meinst du ernsthaft wenn schwerwiegende Fehler so leicht zu reproduzieren wären, dass es sie dann noch gäbe?
Solche Fehler können dir in anderer Weise übrigens bei so ziemlich jedem Programm/Spiel unterlaufen wenn du Pech hast. Kenn genug Programme die nach ner Neuinstallation schreien weil sie mal über den Taskmanager abgeschossen wurden oder mitten in der Nutzung der PC einfror.

Engel der Furcht
08.03.2008, 20:14
hm,also irgendwo müssen doch die daten gespeichert sein,welche datei richtig importiert wurde!

Cherry
08.03.2008, 21:36
das ist ja das komische oO

es wird scheinbar nirgends gespeichert, ob eine Datei importiert wurde, aber irgendwie hat der Fehler doch damit zu tun

Nemica
08.03.2008, 22:22
Also meine Projekte scheinen absolut MTDB-resistent zu sein. Ich hab mal nach
allen Regeln der Kunst grafiken kopiert, verändert, rausgelöscht, umbenannt,
etc... aber nix is passiert. Das Projekt ging immer noch tadellos.

Err... what? oO

Orange4
09.03.2008, 12:45
@nightgirl1200:
Naja, wie gesagt kann dieser Fehler immer und überall auftauchen. Das du ihn nicht "beabsichtigt" auslösen konntest, zeigt, wie "gefährlich" er ist.
Diese Dinge wie falsches Importieren ect. sind einfach Sachen, die den Fehler häufig auslösen KÖNNEN, aber nunmal nicht müssen. Vor soetwas ist man nie ganz sicher.

Da hilft nur eines:
Regelmäßig das Projekt sichern.

The Best Isaac
09.03.2008, 13:09
Als ich noch mit dem Maker gearbeitet hatte, hab ich den Ressourcen-Manager nie dazu verwendet, Pictures zu importieren. War mir einfach zu umständlich, tausend Bilder einzeln zu importieren.
Vom "Map tree data break" hab ich erst vor einiger Zeit erfahren, als ich mal das E-Book las.

Engel der Furcht
09.03.2008, 13:12
wenn man aber nicht richtig importierm,funktioniert das Spiel nicht auf anderen Rechnern-.-
obwohl doch irgenwie nirgendwo gespeichert wird,was alles importiert wurde...
ein bissl merkwürdig!

XARGOTH
09.03.2008, 13:55
hm
es gibt doch ein programm mit dem man feststellen kann was importiert und was nicht importiert ist.
also wird es irgendwie versteckt gespeichert sein... denk ich doch mal.

Mars
09.03.2008, 13:55
wenn man aber nicht richtig importierm,funktioniert das Spiel nicht auf anderen Rechnern-.-
Echt? Bei dem TLJ-Intro war so weit ich weiß nichts importiert, hat aber auf allen Rechnern afaik einwandfrei funktioniert oO
Aber dank Makenshi sag ich zum Thema "Map tree data break - Importieren oder einfach nur kopieren" lieber nichts mehr. Naja, ich bleibe bei meiner Ansicht :o

WeTa
09.03.2008, 16:26
Echt? Bei dem TLJ-Intro war so weit ich weiß nichts importiert, hat aber auf allen Rechnern afaik einwandfrei funktioniert oO
Aber dank Makenshi sag ich zum Thema "Map tree data break - Importieren oder einfach nur kopieren" lieber nichts mehr. Naja, ich bleibe bei meiner Ansicht :o

Afaik werden nicht importierte Grafiken nicht in die Setupdatei reingenommen die der Maker auf Klick erstellen kann. Muss aber nicht stimmen, die hab ich eh erst einmal benutzt :D
Und ich gehöre ebenfalls zu dem Personenkreis der schon seit Jahren makert ohne einen MTDB zu sehen. :D

P.M.S.M.K.
09.03.2008, 17:39
Bei mir ist dieser Fehler bei meinem aktuellen Projekt auch noch nicht vorgekommen. Bis jetzt noch nicht...:eek:
Ich habe aber schon eine Lösung: Jeden Abend das Spiel sichern, wie Orange4schon gesagt hat.
Wie kann das aber sein, dass es nirgendwo gespeichert wird, ob die Import-Funktion verwendet wurde. WENN es nirgendwo gespeichert ist, muss dieser Fehler vielleicht an irgendetwas anderes liegen. Im E-Book allerdings steht, dass es getestet wurde.:confused:

Cherry
09.03.2008, 20:16
wenn man aber nicht richtig importierm,funktioniert das Spiel nicht auf anderen Rechnern-.-
obwohl doch irgenwie nirgendwo gespeichert wird,was alles importiert wurde...
ein bissl merkwürdig!

Erm - du verwechselst da was. Das, was du meinst, tritt auf, wenn man die Ressourcen ins RTP kopiert (was übrigens eines der bescheurtsten Dinge ist, die man tun kann).

Wir reden vom in-den-Projektordner-Kopieren.

mfG Cherry

P.M.S.M.K.
09.03.2008, 21:32
Könnte es vielleicht damit zusammenhängen::eek:
Alle Dateien, die man importiert, werden irgendwie protokolliert.
Wenn man also die Dateien in den Ordner reinkopiert, statt zu importieren, kann natürlich nichts protokolliert werden.
Irgendwann kommt der RPG Maker dann durch ungüngstige Verkettung von Ereignissen, mit den Ressourcen durcheinander und zeigt uns diese Fehlermeldung.:D Alles nur Theorie, bewiesen ist nichts.:D

Engel der Furcht
09.03.2008, 21:42
allerdings frage ich mich dann,warum die Fehler Meldung "Map Tree Data Break",das bedeutet ja eigentlich,dass was mit dem Kartenbaum nicht stimmt,und nihct mit den Ressis.

Dhan
09.03.2008, 23:56
@Engel: Fehlermeldungen müssen auch nicht immer stimmen, kann ja sein dass der irgendwie beeinflusst wird





tatsächlich verändern sich die Ressis selbst beim importieren, sieht man an der Dateigröße, ob die jetzt protokolliert werden kA



was ich mir als ursache definitiv vorstellen kann, ist, dass die karten beim erstellen tatsächlich als dateien erstellt werden, ihre position im kartenbaum jedoch noch im arbeitsspeicher des makers sind und wenn der unterbrochen wird, bevor er speichern kann (z.B. durch direkt computer ausschalten, kabel bzw akku ziehn, systemabsturz, manuelles ausschalten des makers per task manager oder win patrol etc), sowas auftritt

Cherry
10.03.2008, 06:02
Der Maker nimmt beim importieren ja auch Änderungen vor (transparente Farbe setzen, Farbtiefe auf 8 Bit ändern, ggf in XYZ konvertieren, ...), daher verändert sich die Dateigröße.

Im Map Tree sind eigentlich nur folgende Informationen gespeichert:


---RPG Maker LcfMapTree---

Introduction
Rather than try to lex the database next (which doesn’t look fun at all), I’ll attempt to lex the map tree next. See the RPG_Maker_Map_Grammar_Guide for an explanation of RPG Integers, the syntax used in this guide, and other particulars.


Properties not in the lmt file
The following properties do not appear in the lmt file, but in the respective lmu files for each map:
Chipset
Width
Height
ScrollType
UseParallelBkgrd?
BkgrdFileName
HorizPan?
VertPan?
HorizAuto?
HorizAutoSpd
VertAuto?
VertAutoSpd


A word about the map tree file
The map tree file is a lot simpler than the individual maps’ files. However, there’s a few things in it that remain a myster to me. As always, if you can decipher the “unknown” imperials (even if they turn out to be size hints) send me an email:
Sorlok_Reaves@yahoo.com


The Map Tree File Format
<lmt_map_tree_file> ::= <file_type> <tree_node>+ <map_end>
<file_type> ::= <str_len> <character>+


The end of the file
I haven’t fully figured out what all that junk at the end of the map tree file means. For lexing purposes, you’ll basically just detect a map number followed immediately by a null terminal, and then a handful of digits (which varies depending on the map, but seems to increase in length as the number of nodes increases.) For now, we will lex it as a node, and cut off program execution at that point.


The Tree Nodes
Every map has at least one tree node; the root node. This is the folder icon at the top of the RPG Maker’s map tree viewer. Following this, a number of other nodes are listed in ascending order. These are either maps or areas, and they form a tree structure through the use of a “parent” reference.
As an aside, we will lex all tree properties and interpret them in the lexer itself. I realize now the foolishness of ignoring size hints in the lmu parser. We will also lex all numbers as rpg_bytes, and convert to integers in the lexer. This avoids potential lexing bugs that plague the lmu lexer.
<tree_node> ::= <tree_node_id> <end_of_file: 00>? <tree_property>+ <area_layout> <null: 00>
<tree_property> ::= <long_property> | <background_music> | <monster_encounters>
<long_property> ::= <imperial> <size_hint> <byte>+
<imperials> ::= (01,Map Name) , (02,Parent) , (03,Tree Depth) , (04,Type of Node) , (05,Unknown Property 1) , (06,Unknown Area Property) , (07,Has Children) , (0B,BGM Options) , (15,Battle Background) , (16,Battle Background File) , (1F,Teleport Option) , (20,Escape Option) , (21,Save Option) , (2C,Encounter Steps) (Italics denote optional properties)
<background_music> ::= <imp:0C> <size_hint> <sub_imp:01> <str_len> <character>* <null:00>
<monster_encounters> ::= <imp:29> <size_hint> (<none:00> | <monsters>)
<monsters> ::= <
<area_layout> ::= <imp:33><size_hint><x_min_byte>4 <y_min_byte>4 <x_max+1_byte>4 <y_max+1_byte>4


A note on byte order
The size of the area_layout is fixed at 0x10. Each value (x_min, y_max+1, etc.) is made of four bytes, arranged in reverse order.


(0C,BGM File Name) ,


0A – Length Hint
“LcfMapTree”
09 — Number of maps, areas, and root nodes(1)


End:
09 00 -- 01 03 08 02 04 05 06 07 08 01 01 23 00
11 00 02 01 03 0A 0C 0D 0E 0F 10 04 05 06 07 08 09 0B 10 01 01 10 02 01 0A 03 01 0B 00

05 und 06 sind unbekannt, aber ich glaube noch immer nicht, dass das etwas mit dem Map Tree Data Break zu tun haben soll.

Ich erkläre mir das eher so:

Kopiert man eine Ressource, anstatt sie zu importieren, und verwendet sie dann im Maker (z.B. bei Show Picture), dann kann, wenn die Datei dem Maker aus irgendeinem Grund nicht in den Kram passt (hätte man sie importiert, hätte er sie zurechtgebogen), etwas passieren (z.B. irgendwelche ungültigen Werte im RAM oder dergleichen), was quasi zufälligerweise dazu führt, dass der Maker beim Speichern das Map Trees Mist baut.

Ich würde das ja gerne genauer analysieren, aber dafür bräuchte ich eine defekte rpg_rt.lmt.

mfG Cherry

P.M.S.M.K.
14.03.2008, 17:33
@Cherry1
Wäre es aber so rum wie du es erzählst, wie erklärst du dir dann, dass diese Fehlermeldung IRGENDWANN auftritt.

Cherry
14.03.2008, 18:33
Gar nicht.

Aber ich bin gerade dabei, die Sache genauer zu analysieren.

Vielleicht kann ich ein Project Rescue Tool machen oder so.

P.M.S.M.K.
23.03.2008, 22:05
@Cherry1
Ein Programmrettungstool wäre zu aufwändig.
Mach` doch so ein Programm: Man kopiert ein Backup vom Spiel in ein anderen Ordner und immer wenn im Maker abgespeichert wird, wird das Abgespeicherte zu dem Backup "gesendet".

MA-Simon
24.03.2008, 05:33
@Cherry1
Ein Programmrettungstool wäre zu aufwändig.
Mach` doch so ein Programm: Man kopiert ein Backup vom Spiel in ein anderen Ordner und immer wenn im Maker abgespeichert wird, wird das Abgespeicherte zu dem Backup "gesendet".

Tollig! Sowas bräuchte ich auch (:

Dhan
24.03.2008, 09:54
Und wie soll das verhindern, dass auch die korrupte Version gesendet wird?
Lasst einfach ma Cherry machen, scheint zu wissen was ma tut

P.M.S.M.K.
24.03.2008, 10:21
@Dhan
Es müsste doch möglich sein, dass Backup mit den letzten Änderungen im Orginal zu aktualisieren.

Cherry
24.03.2008, 10:55
es geht aber drum, dass es so auch passieren kann, dass die KAPUTTE Version gesichert wird!
achja: Hat wer eine kaputte rpg_rt.lmt für mich?

Xardas der Dunkle
26.03.2008, 03:02
@P.M.S.M.K.
Sowas ähnliches gibt es, brauch Cherry gar nicht programmieren.

http://de.wikipedia.org/wiki/Subversion_%28Software%29

Ist eig. für die Versionsverwaltung beim Programmieren gedacht, aber wieso soll man es nicht auch für sein Makerprojekt benutzen? Habe ich btw. schon gemacht xD.