[Arbeitshilfe]Fehleranalyse & system log

  • Hola, que tal... liebe Community,


    Einleitung
    Kommen wir mal zu eine ganz trockenen und langweiligen Thema... die Fehleranalyse. Ich weiss die meisten werden jetzt denken, warum brauche ich den ganze Mist. Was natürlich auch erklärt warum der Fragen-Bereich in der TWZ fast ungenutzt blieb. :help:
    Viele von euch haben sich nun mühselig durch die gesammelten Werke der Tutorials gearbeitet, nach langer Zeit ist endlich Land in Sicht und trotzdem funzt die ganze Geschichte nicht wie sie soll. Als erstes möchte ich diesen Thread dazu nutzen allen ein großes Danke schön zu sagen, die sich die Mühe gemacht haben und ihre Zeit investieren anderen Menschen weiter zu helfen, zum einem für die vielen Tutorials die es auch dem blutigsten Anfänger erlauben einen kleinen Blick hinter die Kulissen des großen Ganzen zu werfen und natürlich zum anderen dem Support im Bereich "Tipps, Tricks & Fragen" der ehemaligen Zone. *Amen* ...und natürlich auch den Jungs und Mädels hier im Totalwar-Forum.
    Denjenigen unter euch welche gerade die ersten Schritte auf diesen Terrain proben und an einigen Punkten nicht weiterkommen, sei gesagt: es ist noch kein Meister vom Himmel gefallen und selbst erfahrene Modder stossen immer mal wieder auf Probleme welche einem graue Haare wachsen lassen. Ich denke gigantus kann da ein Lied drauf anstimmen... und schon wären wir beim Thema.


    Im eigentlichen Sinne ist dies kein Tutorial, sondern soll über die Zeit eine Art Sammlung der möglichen Fehler beinhalten, angefangen vom einfachen CTD (crash to desktop) mit Fehlermeldung im log bis zu Abstürzen ohne Meldung im log.
    Nun wird es mir garantiert nicht möglich sein sämtliche Fehler aufzulisten, oder gar ausfindig zu machen. Deshalb gehe ich erstmal auf die einfachsten Fehler ein, sozusagen die Anfänger-/ Routinefehler. Würde mich allerdings über Unterstützung freuen.


    Aber nun zum eigentlichen Thema, wie den meisten von uns schon aufgefallen ist, ist die Kunst Programmierung ein kleines Mysterium... es passieren Dinge die man nicht so geplant hat und zweitens noch nicht wusste das es sie gibt. Der erste Schritt um eine Lösung zu finden, ergo hinter das Geheimnis des gerade geschehenen zu steigen ist: man wende sich an das system log.
    Diese mal kurze und auch mal längere Datei ist unser kleiner Helfer beim anfindig machen von kleinen bis mittelschweren Problemen, ergo egal was passiert, egal wo sich das Spiel aufhängt, der erste Blick ist immer in diese Datei. In den meisten Fällen gibt sie auch Aufschluss darüber wo der Fehler liegt.
    Das system log findet ihr in eurem Hauptordner von Medieval 2 (kurze Anmerkung: bei Rome TW gibt es kein system log, dazu aber später).
    Wenn ihr nun euer log geöffnet habt, findet ihr meistens eine ellenlange Liste mit Fehler-/ Ignorier-/ Warnung-/ Wasweissichmeldungen. Die meisten davon könnt ihr irgnorieren, im speziellen Fall wenn euch das log eine Meldung anzeigt: [warning] [system io] [data.missing]
    ...auf diesen ganzen Firlefanz braucht ihr nicht zu achten. Wichtiger sind diese Einträge, welche euch auf einen Fehler hinweisen:
    17:25:39.987 [script.err] [error] Script Error in addi/data/export_descr_buildings.txt, at line 41, column 137
    unit(Conquistadores) does not match up to the ownership for faction(hre)


    Womit wir auch schon bei der Gebrauchsanweisung für das log wären. Bei vielen Fehlermeldungen erhaltet ihr eine ausführliche Erklärung was ihr und vorallem wo ihr was falsch gemacht habt:
    17:25:39.987 [script.err] [error] Script Error in addi/data/export_descr_buildings.txt, at line 41, column 137
    ...in dem Fall habe ich einer Einheit eine Fraktion zugeordnet welche diese Einheit gar nicht besitzt. Die wichtigen Einträge im log sind für euch, einmal das der Fehler in der export_descr_buildings (EDB) liegt und sich in der Zeile 41 dieses Scriptes befindet.
    Der erste Schritt zum beheben des Problemes sollte sein, entweder in den Modfolder, oder wenn ihr keinen benutzt in den Ordner data vom Hauptspiel zu gehen und dort die EDB mit dem Editor öffnet.
    Wie finde ich die im log markierte Zeile???
    Jeder Editor hatte eine Funktionsleiste. Wie auch die meisten Anwendungsprgramme so ist auch der Editor aufgebaut. Als erstes geht ihr auf den button "bearbeiten" und dann auf "Gehe zu...", oder über die Tastenkombination Strg + G gelangt ihr ebenfalls auf diese Funktion.
    Hinweis: diese Funktion könnt ihr nur benutzen wenn ihr ohne Zeilenumbruch arbeitet. Falls dieser aktiviert ist, ist der Button farblich matt hinterlegt, was ein Hinweis dafür ist das ihr diese Funktion nicht benutzen könnt. Unter Format (rechts von "bearbeiten" zu finden) könnt ihr den Zeilenumbruch deaktivieren, indem das Häckchen entfernt wird.
    Um nun zu eurem Fehler zu gelangen gebt ihr einfach in das Funktionsfeld die Zahl aus dem log ein, der Editor wird dann automatisch zu dieser Zeile springen und ihr solltet euren Fehler gefunden haben.


    Hinweis zur Fehlersuche/ Einträge in der medieval2.preference.cfg zur Lokalisierung von möglichen Fehlern:
    Es gibt mehrere mögliche Einstellungen in der medieval2.preference.cfg-Datei, um eure Fehler besser lokalisieren zu können. Zwischen diesen Einträgen könnt ihr nun wechseln wenn euch einer dieser Befehle nicht bei der Fehlersuche weiterhilft. Die Einträge müssen in die .cfg-Datei gesetzt werden welche für eure Mod zuständig ist.
    Allgemein:
    [log]
    to = logs/Name eurer Mod.system.log.txt
    level = * trace


    Für Scripte:
    [log]
    to=logs/system.log.txt
    level=*script* trace


    für KI:
    [ai]
    ltgd_logging = true
    [log]
    to = logs/Name eurer Mod.system.log.txt
    level = ai.ltgd trace


    Original:
    [log]
    ## log potentially critical errors for debugging
    # to = logs/system.log.txt
    # level = * trace


    Glossar:
    Name eurer Mod = an diese Stelle müsst ihr nun den Namen eures Modfolders setzen!!!


    Ich denke das sollte erstmal als kleine Einleitung reichen und zum Thema wie benutze ich das System log. Natürlich gibt es auch Fehlermeldungen wo es nicht einfach damit getan ist zu dieser besagten Zeile im Script zu hüpfen, einmal weil es keine Angabe gibt oder weil ein Folgefehler aufgetreten ist. Letzteres bedeutet wiederum dass das log in erster Instanz nur einen Hauptfehler anzeigt. Sollten mehrere Fehler in einem Script oder über mehrere Scripts verteilt sein, dann muss man die Fehlermeldungen step by step abarbeiten. Bedeutet im Klartext, den ersten angezeigten Fehler ausschließen indem man ihn behebt. Was zur Folge hat das der nächste Fehler im Script angezeigt wird. Dies muss man nun solange machen bis das log "sauber" ist.
    Bei manchen Geschichten lohnt es sich sogar nochmal von vorn zu beginnen, besonders effektiv wenn man noch nicht "viel" gemacht hat, als stundenlang mit dem log zu verbringen. Aber das ist eine Entscheidung die jeder selber für sich im stillen Kämmerlein treffen muss.

  • ...wie ich schon im Eingangspost erwähnt habe gibt es eine Reihe von verschiedenen Fehlertypen, sei es das stinknormale CTD oder ein KTM. In diesem Abschnitt möchte ich auf die CTD´s eingehen welche zum einen eine Fehlermeldung im log generieren und zum anderen gleich zu Beginn des Ladevrogangs auftreten, ergo kurz nach doppelklicken des Icons auf euren Desktop bricht das Programm den Ladevorgang ab, das Maximale was ihr sehen könnt ist der Ladebildschirm... das aber in den seltensten Fällen.


    Hierbei handelt es sich um grobe Schnitzer in den Scripten, wie diese auftreten ist in erster Instanz egal, sei es durch verschreiben, oder irgendwas im Script vergessen Klammer, Komma, Leerzeichen, etc. PP. Der Möglichkeiten gibt es viele was man in einem Script falsch machen kann.
    Das wichtigste wenn man eine Änderung in den Scripten vornimmt, ist sich an die vorgegebene Schreibweise zu halten.


    Fasel-/ Routinefehler
    Viele Fehlertypen sind mir im Laufe der Zeit unter die Finger gekommen, mit seinen Fehlern reift der Mensch, manchmal aber auch nicht. Und mit der Zeit schleichen sich selbst beim größten Routinier alte, kleine Anfängerfehler ein. Gott sei Dank sind diese immer schnell ausfindig gemacht und somit auch schnell aus der Welt geschafft und eine ruhige Nacht gesichert.


    Ein typischer Fehler:
    17:12:07.981 [script.err] [error] Script Error in addi/data/export_descr_buildings.txt, at line 19, column 93
    Expected '}', found ''
    ...ich habe versucht eine neue Einheit irgendeinem Gebäude zu zuordnen. Was ist passiert??? Die Meldung ist eindeutig, mein Fehler lag hier, das ich zwar die Zeile eingefügt habe aber nicht abgeschlossen.
    Analyse des Eintrags im log:
    1.) Fehler befindet sich in der EDB
    2.) Fehler ist in Zeile 19 der EDB zu finden
    3.) ich habe vergessen diesen Eintrag mit einer geschweiften Klammer abzuschliessen
    ...bedeutet im Klartext, ich habe zwar meine Einheit eingefügt, diese Einheit ist auch soweit in Ordnung, es sei denn nach dem beheben des Fehlers kommt eine weitere Fehlermeldung. Aber ich habe am Ende des Eintrags keine geschweifte Klammer gesetzt. Diese Klammer schließt in vielen Scripten einen Eintrag ab, wenn nun diese Klammer nicht gesetzt wird, bedeutet es für das Programm das eigentlich noch was kommen muss, da aber nichts mehr folgt hat das Programm ein Problem mit sich selber und ihr erlebt einen wunderschöne Rauschmieß und landet etwas unsanft auf dem Desktop.


    Diese ganzen einfachen Meldungen kommen bei kleineren Fehlern zu Hauf im log vor. Das wichtigste an dieser Stelle ist die Funktion des system logs zu erkennen und zu lernen wie man solche Fehlerquellen und vorallem die Fehlerursache ausfindig macht. Es ist wichtig mit dem system log zu arbeiten.
    Wenn ihr alle Fehlerquellen über das log ausschließen könnt und trotzdem eure Mod nicht startet... jetzt ist der Moment gekommen wo ihr eure Frage im Forum stellen könnt.


    Vielleicht mal noch ein paar einfache, dafür aber immer wieder gern gemachte Fehler:
    Komma vergessen um die Fraktion abzuschliessen oder zu unterteilen:
    17:13:41.806 [script.err] [error] Script Error in addi/data/export_descr_buildings.txt, at line 19, column 82
    Expected faction or culture type, or 'all' - faction or culture type could be wrong; terminate list with comma; enclose list in {}


    hidden_resource zwar richtig eingesetzt, aber vergessen diesen hidden_resource in die Liste am Anfang der EDB einzusetzen:
    17:15:25.510 [script.err] [error] Script Error in addi/data/export_descr_buildings.txt, at line 41, column 124
    Hidden resource condition, unrecognised hidden resource 'america'


    Beim einfügen von Einheiten die Groß-/ Kleinschreibung nicht beachtet/ oder vertippt:
    17:16:44.667 [script.err] [error] Script Error in addi/data/export_descr_buildings.txt, at line 19, column 46
    Unknown unit type specified: town Militia


    Beim einfügen von neuen Gebäuden vergessen das Gebäude durch eine geschweifte Klammer abzuschliessen, ergo dem Programm nicht gesagt das der Eintrag für das Gebäude an dieser Stelle zu Ende ist:
    17:23:43.037 [script.err] [error] Script Error in addi/data/export_descr_buildings.txt, at line 36, column 9
    Expected '}', found 'wooden_wall'


    ...ich denke das soll´s zu den einfachen Fehlern gewesen sein. Die meisten dieser Fehler sind gut ausgewiesen und auch leicht verständlich. Dies wird wohl der Fehlertyp sein über den ihr am meisten stolpern werdet wenn ihr euch in die Materie modding einarbeitet. Vorteil, ihr könnt diese Fehler schnell selber beheben ohne Hilfe in Anspruch zu nehmen. Und jetzt kommen wir wieder zu dem Spruch den ich, was weiss ich wie oft, schon benutzt habe, Das wichtigste beim modden/ programmieren ist das Verständnis für die Scripte und deren Kommandos, ergo dem was ein Script ausführen soll... Wenn ich das nicht verstehe werde ich immer wieder Probleme bei meiner Arbeit/ Hobby haben. Jetzt ist es natürlich nicht notwendig das sich jemand von Euch mit dem ganzen Geschwus auseinander setzen muss nur weil er eine Einheit oder ein Gebäude im Script für seine Lieblingsnation freischalten will. Hier bleibt es natürlich beim altbewährten Weg... im Forum unter "Tipps, Tricks & Fragen" einfach seine Frage stellen. Sollten immer noch Unklarheiten bestehen und ihr die Fehlerquelle nicht eingrenzen können, einfach im Forum nachfragen.

  • ...dies sind Fragen welche ich so oder so ähnlich oft genug gehört habe und manchmal Nachts davon träume.
    Als erstes denke ich sollten wir mit ein paar allgemeinen Tipps anfangen wie man am besten an eine Map rangeht. In den meisten Fällen enden solche fehlgeschlagenen Versuche mit einem KTM (kick back to menu), bedeutet im Klartext, eigentlich gibt es zwei Fehlertypen, einmal den:
    Ich komme nicht ins Menu und fliege schon bei der Auswahl des Buttons Kampagne zurück.
    und
    Ich fliege beim laden der Kampagne zurück ins Menu


    Egal welcher Fehler bei euch auf tritt, hier erstmal ein paar allgemeine Hinweise:


    - als erstes, stellt sicher das ihr die map.rwm-Datei im base-Ordner gelöscht habt, weil sonst werden eure Änderungen nicht übernommen. Ist zwar in dem Sinne kein KTM, aber wird immer wieder gerne nachgefragt.


    - wenn ihr die map.rwm-Datei gelöscht habt und auf einmal beim anklicken des Buttons Kampagne wieder ins Startmenu zurück segelt, stellt sicher das sich die map.rwm auch neu generiert hat. Wieso sich diese Datei in manchen Ausnahmefällen nicht selbstständig wieder erstellt habe ich bis heute keine plausible Erklärung gefunden. Das einzigste was ihr in diesem Falle tun könnt, eure gesamte Dateien mit den Änderungen ins Hauptspiel kopieren und dort diese map.rwm-Datei löschen, so das sich diese Datei mit den Originaldateien wieder selber erstellen kann und nun könnt ihr diese Datei mit den übernommenen Einstellungen in euren Modfolder kopieren.


    - wenn keine Fehlermeldung im log angezeigt wird gibt es zwei Möglichkeiten:
    -> einmal die Einstellung auf error
    [log]
    to = logs/system.log.txt
    level = * error


    -> und zum anderen die Einstellung auf trace
    [log]
    to = logs/system.log.txt
    level = * trace
    ...bei letzterer Einstellung wird euch ein detailierteres/ umfangreicheres Fehlerbild geliefert.


    - auch ist es hilfreich -show_err beim shortcut mit anzuhängen. Hierfür einfach euer Icon auf dem Desktop rechtklicken und dann auf Verknüpfung gehen und diesen Befehl an euren Zielpfad anhängen. Den - (Bindestrich) nicht vergessen.


    - stellt immer sicher das ihr noch wisst was ihr als letztes gemacht habt. Somit ist es schon möglich von eurer Seite aus den Fehler einzugrenzen.


    - geht immer step by step vor wenn ihr eine neue Karte für das Spiel bastelt. Also nicht versuchen an einem Wochenende 199 Regionen + 15 Fraktionen zu erschaffen nur weil es gerade gut läuft. Glaubt mir sowas geht meistens in die Hose. Zumal auch keiner mehr realisieren kann wo letztendlich der Fehler passierte. Mein Vorschlag immer max. 5 Regionen ( bei der ersten Karte immer nur eine Region) komplett erstellen, ergo die Provinzen in die map_regions einzeichnen und alle dazugehörigen Scripte ebenfalls bearbeiten und dann austesten wie die Map läuft, somit könnt ihr die Fehlerquelle sehr gut eingrenzen und vorallem die Ursache relativ schnell finden.


    - denkt immer daran euch back ups anzulegen von der Version eurer Mod die absolut fehlerfrei lief, bedeutet im Klartext, ihr habt 2 Regionen eingefügt welche geladen wurden und liefen, ergo legt ihr von dieser Version eures Modfolders eine Sicherungkopie an. Wenn jetzt irgendetwas schief geht bei den nächsten Schritten und ihr den Fehler nicht findet geht zwar die Arbeit von ein paar Stunden flöten, aber nicht euer gesamtes Werk ist futsch. Ihr kopiert euch dann eure back up zurück in den Hauptordner von Medieval 2 oder eben nach mods und arbeitet so weiter. Entweder es klappt jetzt mit der neuen Provinz oder wenn es wieder nicht funzt und euch die Mod abstürzt, dann sucht euch Hilfe hier im Forum. Es geht bei den back ups immer darum den Schaden so gering wie möglich zu halten, insbesondere für eure Freizeit.


    - Wenn ihr bei Problemen nachfragen müsst, bitte immer daran denken die system log gleich mit an den Fragethread anzuhängen, das erleichtert vielen von uns die Hilfe bei der Beantwortung eurer Frage. Auch ist es wichtig zu sagen welche map man bearbeitet, oder ob diese Karte mit der ihr Probleme habt aus einer anderen Mod stammt.
    Als kleiner Hinweis: es gibt nichts wofür man sich schämen müsste oder was peinlich wäre... jeder von uns hat mal klein angefangen und die selben Fragen gestellt die ihr gerade in dem Moment stellt!!!


    - stellt sicher das ihr in den Limits liegt, ergo 199 Regionen + Wasser. Nicht das der Teufel schon im Detail steckt. Weitere mir bekannte Limits:
    -> Kartengröße für map_regions 510 x 510 Pixel
    -> Kartengröße für die map_heights/ _climate/ _groundtypes 1021 x 1021 Pixel
    ...es ist natürlich auch möglich mit mehreren verschiedenen "Wassertypen" zu arbeiten, bedeutet ihr möchtet das Mittelmeer in einem helleren Blau darstellen als den Atlantik um meinetwegen die verschiedenen Wassertiefen zu simulieren (welche allerdings keine Auswirkung auf das Verhalten der Schiffe haben, es sei denn ihr macht die Wasserfläche nicht passierbar), hier ist es wichtig zu wissen das die maximale Regionenzahl 200 beträgt, da ihr aber 2 Regionen für die Meere benötigt, passen demzufolge nur noch 198 Regionen auf´s Land.
    Solltet ihr dieses Limit überschreiten schmiert euch das Spiel beim anklicken des Kampangnenbuttons ab und ihr habt ein astreines KTM. Dieses KTM wird verursacht, da durch die Limitüberschreitung die map.rwm-Datei nicht neu generiert wird. Hier müsst ihr nun die Anzahl an Regionen wieder entsorgen welche ihr zuviel im Spiel habt, so das ihr immer auf das Endergebnis von max. 200 kommt.


    Denke mit diesen Hinweisen sollte jeder klar kommen, so das wir nun auf ganz spezielle Fehler eingehen können.

  • Die meisten Fehler welche auftreten können, passieren meistens an der selben Stelle. So ist es für einen erfahrenen Modder möglich die Fehlerursache einzugrenzen. Natürlich kann es auch sein das ihr ein paar Abweichungen zu meinen Notizen bemerkt, das hängt einfach damit zusammen das ich in den meisten Fällen nur auf die Hauptfehler eingehe, bedeutet wenn ihr nicht nur einen Fehler in eurer Karte habt, sondern, entweder einen Folgefehler, oder einen zusätzlichen Fehler in einem Script welches nichts mit der Karte zutun hat, dann passt natürlich die Fehleranalyse nicht mehr auf euer ganz spezielles Problem. Ich habe bei diesen ganzen Beispielen immer nur einen Fehler im Programm den ich mit Absicht provoziert habe.


    -> KTM: Ihr fliegt nach dem anklicken des Buttons "Kampagne starten" wieder zurück ins Hauptmenu.
    - erster Blick geht wie immer ins system log, dann in den base-Odner: Wichtig: eine neue map.rwm-Datei wurde generiert!!!
    Fehlerursache: in den meisten Fällen ist eure map-regions.tga zu groß, bedeutet nicht das ihr die 510 Pixel überschritten habt, weil dann hätte sich die map.rwm nicht neu erstellt. Sondern es gibt noch ein weiteres Limit bei dieser Datei: die map_regions.tga darf eine Größe von 13 MB nicht überschreiten.
    Dies kann hervorgerufen werden durch zu große Landmassen, oder was mir auch dieses Problem verursachte, die unbegehbaren Regionen habe ich zu groß gestaltet.


    -> CTD: direkt beim anklicken des Buttons "Kampagne starten" fliegt ihr zurück auf den Desktop.
    - erster Blick system log: keine Meldung
    - zweiter Blick base-Ordner: Wichtig: map.rwm-Datei hat sich nicht wieder neu erstellt
    -Fehlerursache: Crash der Karte durch zu viele und vorallem zu große Wasserflächen, passiert gern bei Karten die eine größere Inselwelt darstellen und bei Verwendung von mehreren verschiedenen Wassertypen.
    -Weitere Fehlerursachen können sein: das Maximum an Regionen überschritten, ergo eure Karte enthält mehr als 200 Regionen, wenn ihr in diesem Limit seid und das Spiel trotzdem abschmiert, dann bitte die RGB-Codes checken, weil in dem Fall ist ein RGB-Code doppelt vergeben. Auch aufpassen wenn ihr mit mehreren verschiedenen Wasserflächen arbeitet, jede Wasserfläche benötigt einen separaten RGB-Code.
    -Fehler bei der Höhen-/ Breitenangabe in der descr_terrain.txt. Wichtig: die Abmessungen müssen mit der map_regions.tga übereinstimmen!!!
    - zu großes Gebiet markiert für unbegehbares Land
    - Flüsse nicht korrekt in der map_features.tga eingezeichnet. Hinweis: auch Flüsse welche eine Region nicht komplett durchlaufen, ergo in dieser Region enden, teilen diese Region!!!


    -> CTD: Euch schmiert das Spiel auf halben Weg beim laden der Kampagne ab.
    - in den meisten Fällen ist die radar_map.tga zu groß. Hinweis: radar_map.tga und map_regions.tga müssen die selbe Größe habe, ergo 1:1.


    -> CTD: Euch schmiert das Spiel kurz vor Ende des Ladevorgangs der Kampagne ab.
    - in dem Fall benutzt ihr eine Rebellenfraktion welche nicht in der descr_rebel_factions.txt (data) und/oder rebel_faction_descr.txt (data/ text) enthalten ist.


    -> CTD: Nach anklicken des Buttons "Kampagne starten" schmiert das Spiel kurz nach erscheinen des Ladebalkens ab.
    - in den meisten Fällen liegt hier ein Verschreiber in der descr_strat.txt bei den Namen für die Charaktere der einzelnen Nationen vor (Groß-/Kleinschreibung, etc.) oder ihr benutzt einen Namen welcher nicht dieser Fraktion zugeordnet wurde. In dem Fall bitte die descr_names.txt (data) checken obe die Namen auch den Fraktionen richtig zugordnet sind.


    -> KTM´s mit Meldung im system log
    Typische Logmeldungen wie oben bei den einfachen Fehlern schon beschrieben:
    17:13:41.806 [script.err] [error] descr_strat.txt, at line xx, column xX. could not create settlement xyz at script line xx


    - in den meisten Fällen liegt hier ein Fehler bei den RGB-Codes vor, gleiche Farbe für unterschiedliche Regionen verwendet.
    - ebenfalls sehr häufig, das die RGB-Codes in der map_regions.tga nicht mit denen übereinstimmen welche ihr bei den Provinzen in der descr_regions.txt eingetragen habt.


    17:12:07.981 [script.err] [error]descr_strat.txt, at line xxx, column x. You have chosen an invalid tile(0,0)for the settlement of xyz
    - irgendwelche Pixel/ Regionen in der map_regions.tga benutzen eine Farbe (RGB) welche nicht zu der Region gehört, oder zu irgendeiner Region welche in der descr_regions.txt eingetragen ist.
    - Stadt/ Hafen wurde auf falschen/ unpassierbaren Untergrund gesetzt. Was sein kann unbegehbarer Wald, hohe Gebirgszüge, auf Flüsse oder ins Wasser (Meer).


    17:23:43.037 [script.err] [error]descr_strat.txt, at line xx, column xX. You are trying to place xyz in this region(xyz), but it already has a settlement(zyx)
    - der Stadt in der besagten Provinz wurde ein falscher RGB-Code zugewiesen. Der RGB-Code für Städte muss immer 0,0,0 sein. Auch wenn das Pixel schwarz aussieht, stellt sicher das es das richtige schwarz ist!!!


    -> CTD nach starten einer Schlacht
    15:37:21.140 [data.invalid] [error] Failed to parse climate in file 'mods/Colonialism_Total_War/data/descr_aerial_map_ground_types.txt'
    - wenn euch das Spiel beim starten einer Schlacht abstürzt kann dies viele Ursachen habe, angefangen bei den beiden descr_geography_new-Dateien, welche vergessen wurden nach dem entpacken des Spieles zu löschen, bis hin zu fehlerhaft eingebauten Einheiten. In unserem speziellen Fall bezieht sich der Fehler aber wieder auf die Karte.
    Wie aus der Fehlermeldung rauszulesen ist kann das Programm einen Klimatypen nicht indentifizieren. Dies kann viele Ursachen habe, da das log aber schon einen Verweis auf eine Datei gibt ist es immer ratsam mit dieser Datei bei der Suche anzufangen. Mögliche Fehler können hier sein, Zielpfad zur texture nicht korrekt, ergo das Programm kann die zuverwendenten texturen nicht finden oder eine/ alle dieser texturen ist Fehlerhaft, was ebenfalls dazu führt das es vom Programm nicht eingelesen werden kann.
    Da es sich hier um einen neuen Klimatypen handelt welcher ins Spiel eingebaut wurde, kann die Ursache des Klasse A Absturzes eine viel breitere Palette an Möglichkeiten umfassen. Ich zitiere hier einfach mal gigantus:

    Zitat

    Zitat von »gigantus«
    ein komplett neues klima hat bisher noch keiner erfolgreich eingebaut.
    Ein bestehendes zu modifizieren ist einfacher.


    An dieser Stelle möchte ich erstmal auf die bereits bestehenden Klimazonen, welche problemlos auf der Karte verwendet werden können eingehen:
    Wichtig: das Verhältnis zwischen map_regions.tga und map_climates.tga ist immer 1:2 + 1 Pixel, ergo wenn die map_regions.tga eine Größe von 500 Pixel hat, muss die map_climates eine Größe von 1001 Pixel haben. Dies auch beachten bei der Suche nach Koordinaten!!!


    Sub-Arctic - Dark Green RGB(0, 166, 81 )
    Alpine - Green RGB(57, 181, 74 )
    Highland - Light Green RGB(141, 198, 63 )
    Swamp - Yellow RGB(255, 242, 0 )
    Deep Temperate Forest - Light Orange RGB(247, 148, 29 )
    Light Temperate Forest - Orange RGB(242, 101, 34 )
    Infertile Temperate Grassland - Red RGB(237, 28, 36 )
    Fertile Temperate Grassland - Dark Pink RGB(237, 20, 91 )
    Mediterranean - Pink RGB(236, 0, 140 )
    Semi-Arid - Blue RGB(0, 114, 188 )
    Sandy Desert - Dark Purple RGB(102, 45, 145 )
    Rocky Desert - Mauve RGB(146, 39, 143 )


    ...auch hier wieder der Hinweis, die RGB-Codes müssen akurat sein, nicht es sieht wie das Grün oder Lila aus, sondern es muss genau die angegebene Farbe sein, ansonsten "Hallo, Guten Morgen... Desktop".
    Theorie: nun ist es ja so, das ich bis jetzt immer behauptet habe, das alles was programmiert wurde auch irgendwie wieder änderbar ist. Bleiben wir gleich bei diesem Fehler, ich denke Nessj999 hat die neue Klimazone korrekt eingebaut, jedenfalls was die Kampagnenkarte anbelangt. Haken an der ganzen Geschichte, sobald eine Schlachtkarte gestartet wird benötigt das Programm ebenfalls texturen um diese auf dem "Schlachtfeld" zuladen, ergo müssen ebenfalls noch separate texturen für diesen Bereich des Spieles ins Programm implementiert werden. Hier denke ich liegt der Schlüssel der Lösung im Ordner "terrain" (data)


    Dies sind natürlich nicht alle Fehler welche bei der Erstellung einer Karte auftreten können, aber die Auswahl des Fehlertyps umfasst ein relativ große Palette der Möglichkeiten auf die ihr stossen könnt wenn ihr eure Karte austesten wollt. Ich habe mir allerdings auch Dopplungen von Fehlern erspart die, wenn sie auftreten nur eine logische Schlussfolgerung zu lassen, ergo habe ich als Fehlertyp die Stadt ausgewählt, aber den selben Fehler bei einem Hafen rausgelassen. Ich denke diese Schlussfolgerung kann jeder, nachdem er sich in die Materie eingelesen hat, für sich selber treffen.

  • Natürlich gibt es auch Geschichten wo die Karte ohne Probleme ins Spiel implementiert wird und es zu keinerlei CTD´s oder KTM´s kommt und dennoch ist man mit dem Ergebnis seiner Arbeit nicht zu 100% zufrieden.
    Dies kann viele Ursachen haben, angefangen bei Scripten welche nur indirekt was mit der Karte zutun haben oder kleineren Geschichten auf der Karte selber, ergo in der map_regions.tga.
    Allerdings sind dies auch die Fehler welche uns am meisten Kopfzerbrechen bereiten und in mehreren Fällen auch einen nochmaligen Versuch mit der Karte nach sich ziehen, weil man eben den Fehler nicht lokalisieren kann.
    Alles was ihr jetzt in diesem Abschnitt lesen werdet möchte ich nicht zu 100% unterschreiben, bedeutet ich habe zwar diesen Fehler in meiner Mod provoziert, somit steht dieser Fehler separat und abgeschottet im Programm, weil ich ausschliessen kann das ein weiterer Fehler in dieser Mod vorhanden ist.
    Bedeutet im Klartext, sämtliche Angaben zu diesen Fehlern sind rein subjektiv und müssen nicht mehr zutreffen wenn ein weiterer Fehler in der Mod vorhanden ist. Oder anders ausgedrückt, es muss nicht zwangsläufig zu den selben Symptomen führen wenn sich mehrere Fehler überschneiden.


    kein CTD oder KTM, aber... meine Karte hat beim drüber scrollen pinkfarbene/ grünliche Gebiete.
    - entweder ihr benutzt eine Farbe welche für die map_groundtypes/ -climates nicht vorgesehen ist. Hier kann ich allerdings keine Aussage treffen was passiert wenn sich RGB-Codes in verschiedenen Scripten gleichen. Dies könnte ebenfalls zu einem Konflikt führen, aber kanns nicht bestätigen.


    - vertippt/ falscher Name von texturen oder fehlender/ bzw. unkorrekter Pfad zu den texturen im descr_aerial_map_ground_types.txt, ergo texture kann nicht vom Programm gefunden werden. Diesen Punkt habe ich selber getestet und es führt immer wieder zu diesem Fehler.


    kein CTD oder KTM, aber... oft sind bei drüber scrollen diagonale Linien sichbar.
    - zu große Karte in Kombination mit zu wenig Regionen, wenn euch das mal passiert beim austesten der Karte, einfach keine grauen Haare wachsen lassen, die Linien verschwinden wieder sobald ihr die Anzahl an Regionen auf dieser Karte erhöht habt. Dieser Fehler tritt fast ausschliesslich auf Karten auf, welche 510 Pixel groß sind und erst eine Region beinhalten.


    kein CTD oder KTM, aber... sobald ich den Button "Rundenende" benutze, stürzt mir das Spiel ab und ich bin wieder auf dem Desktop, obwohl alles richtig geladen wurde.
    - in der descr_character.txt sind die Bewegungspunkte für einen/ alle Charaktere zu hoch eingestellt. Ein genaues Maximum kann ich nicht benennen, aber als Faustregel: max. 200. Hatte allerdings auch schon den Wert höher gesetzt ohne Probleme, hier vielleicht selber testen was für euch am idealsten ist.
    - ihr habt in der descr_regions.txt einen faction creator welcher aber nicht in der descr_strat vorkommt. Dieser Fehler kann auch zu einem KTM führen mit Fehlermeldung im log und Angabe der betreffenden Zeile im Script, was in dem Moment die Fehlersuche vereinfacht.


    kein CTD oder KTM, aber... sobald ich über die Karte scrolle stürzt das Spiel ab und ich befinde mich wieder auf dem Desktop.
    - nicht genügend Provinzen auf der Karte, selber CTD wie bei "Runde beenden" nur das dieser Fehler früher auftritt, da ihr euch eure Karte anschauen wolltet und das Programm diesen Fehler somit schon eher "entdeckt" hat.


    - Fehler bei der Rebellenfraktion einer Provinz welche nicht zum "Eigentümer" (owner) und/ oder zum faction_creator passt. Beim überscrollen der besagten Provinz stürzt das Spiel ab, ergo die Provinz merken über der sich gerade euer Mauszeiger befindet und ihr solltet in den Scripten fündig werden.


    - Fehler im descr_sounds_accents, durch falsche Zuordnung der fraktionsspezifischen Dialekte. Ok hört sich richtig hochtrabend an, ist es aber nicht:
    accent English
    factions england, scotland, russia, poland, hungary, denmark, normans, saxons


    accent Scottish <- diesen Akzent gibt es nicht im Spiel, ergo muss die Fraktion Schottland nach "English" kopiert werden.
    factions


    accent French
    factions france


    accent German
    factions hre


    accent Mediterranean
    factions milan, venice, sicily, papal_states, byzantium, spain, portugal, slave


    accent East_European
    factions


    accent Arabic
    factions turks, moors, egypt, mongols, timurids, aztecs


    accent Mongolian <- diesen Akzent gibt es ebenfalls nicht im Spiel, ergo diese Nationen am besten zu dem Akzent "Arabic" kopieren.
    factions
    Dieser Fehler kann einmal auftreten wenn ihr über die besagten Provinzen scrollt, oder ihr habt einen Diplomaten oder anderen Charakter von den betroffenen Fraktionen in einem anderen Terretorium welche nicht von diesem Fehler betroffen ist, dann wird euch das Spiel beim anklicken des Charakters auf den Desktop zurück schleudern.


    - einige fehlerhafte hidden_resource können ebenfalls beim überscrollen der Region ein CTD veruraschen. Hier kann ich wieder nicht genau sagen was der Auslöser dafür ist, normalerweise dürfte bei einem fehlerhaften hidden_resource das Spiel gar nicht starten, ergo ihr landet kurz nach dem ihr das Icon auf eurem Desktop doppelt anklickt wieder auf dem selbigen und erhaltet eine Fehlermeldung im system log. Wieso, weshalb warum das Programm manchmal startet und einem erst auf der Karte wieder rauschmeißt... keine Ahnung. Könnte aber mit dem Limit zusammen hängen, weil dieser Fehler trat bei mir immer nur dann auf wenn ich über 60 hidden_resources im Spiel lag. Als Faustregel hatten viele Modder mal die Zahl 64 in den raum gestellt, ergo als maximales Limit. Ich hatte allerdings auch schon Probleme mit 63... und nein, ich habe mich nicht verzählt.


    So, ich denke das soll´s erstmal für die Karte gewesen sein. Mit den meisten Fehlertypen decken wir jetzt ein breites Spektrum was alles passieren kann ab, was eigentlich zum Verständnis aller reichen sollte. Natürlich wird es immer wieder vorkommen das man mit bestimmten Fehlertypen/ -meldungen nichts anfangen kann. Das bedeutet nicht das ihr keine Ahnung habt, ich glaube jeder Modder kennt das, an einem Punkt angelangt zu sein wo man selber nicht mehr weiter weiss und sich dann halt Hilfe von Außerhalb holen muss, ergo hier im Forum.


    Glossar:
    ...auch wenn ich bei vielen Abkürzungen dahinter eine Klammer gesetzt habe mit der jeweiligen Erklärung, denke ich das es besser ist die ganzen Abkürzungen nochmal einzeln aufzulisten.
    - CTD = crash to desktop, bedeutet wenn das Spiel euch, egal an welcher Stelle, wieder zurück auf den Desktop befördert, ihr also quasi raus geschmissen werdet.
    - KTM = kick back to menu, bedeutet wenn euch das Spiel, egal an welcher Stelle, wieder ins Hauptmenu zurückt schmeißt.
    - EDB = export_descr_buildings, Datei im Ordner data, welche ihr nach dem entpacken dort finden könnt.
    Ich glaube den Rest hatte ich ausgeschrieben... :alt:

  • Rome TW ist zwar vom Grundaufbau identisch mit Medieval 2, oder besser gesagt Medieval 2 basiert auf der selben Engine wie Rome, somit treffen die meisten Fehler auf beide Spiele gleichermaßen zu.
    Ein kleiner Unterschied, allerdings mit großer Wirkung, in Rome TW werdet ihr vergebens nach einem system log suchen, ergo muss nach einer Ausweichmöglichkeit gesucht werden. Die einfachste Methode ist, einfach das Icon von Rome auf euren Desktop rechtsklicken und dann auf Eigenschaften gehen. Wie weiter oben schon beschrieben, hängt ihr nun -show_err an den Zielpfad.
    Auch wenn nicht immer ein Fehler angezeigt wird, stellt trotzdem sicher das ihr diesen Befehl im shortcut drin habt!!!


    Wie auch schon bei Medieval 2 so auch bei Rome, entstehen die meisten CTD´s und KTM´s fast immer an der selben Stelle, ergo wird euch das Spiel bei dem gleichen Fehler immer wieder an der selben Stelle abstürzen. Hier ist es einmal wichtig, natürlich, sich in den Scripten auszukennen.
    Wer seine ersten Schritte, auf den Brettern die eine Mod werden sollen, geht, ist gut beraten sich erstmal mit der Grundmaterie zu beschäftigen, als gleich ein Megaprojekt in Angriff zu nehmen. Bedeutet, testet erstmal mit den ganzen Scripten ein wenig hin und her. Somit bekommt ihr ein "Gefühl" für die ganze Geschichte. Ergo, Aufbau der Scripte... Warum macht das Programm gerade das jetzt und sonst nicht???... Wieso stürzt meine Mod ab???... etc. PP. Dies alles könnt ihr euch mit der Zeit aneignen, ergo learning by doing. Vorallem ist in diesem Prozess die Lerneffizenz am höchsten. Ihr macht eure eignen Fehler und lernt diese zu suchen und im Endeffekt auch abzustellen.


    Ich weiss, ist ein langweiliges Thema, ich mag das ganze auch nicht als "Gute-Nacht-Geschichte", aber der nächste Hinweis, lest euch die ganzen Tutorials durch. Diese sind von Menschen geschrieben welche ihr Vorhaben umgesetzt haben. Wenn ihr all diese Tipps beherzigt, schränkt ihr eure Fehlerquote, ergo, somit auch die CTD´s und KTM´s ein. Natürlich werdet ihr nicht davor gefeit sein, mal wieder von einem dieser bösen Abstürze heimgesucht zu werden. Hier ist es nun wichtig das man, was ich auch schon weiter oben geschrieben habe, genau weiss was ich als letztes geändert habe. Ergo nicht versuchen die gesamte descr_strat in 2 Stunden komplett neu zu schreiben, sondern step by step, in dem Fall Fraktion für Fraktion, zu bearbeiten und nach jedem Schritt das Spiel zu testen.
    Wenn das Spiel läuft, legt euch einen Ordner an, meinetwegen unter "Eigene Dateien" und kopiert euch die Scripte, mit der jeweils letzten funktionierenden Änderung, darein. Somit könnt Fehler auf einen kleinst möglichen Radius eingrenzen.
    Wenn jetzt jemand der Meinung ist, das alles dauert ihm zu lang. Na gut, aber man sollte bedenken das nicht umsonst soviele Menschen über mehrere Jahre an einem Spiel arbeiten. Wer jetzt immer noch der Meinung ist, das alles wäre zu umständlich und dauert zu lange, darf sich als Genie bezeichnen, jedenfalls bis zum ersten ungeklärten Absturz. :grübel:
    Als allgemeiner Hinweis: ...in der Ruhe liegt die Kraft!!!


    Und jetzt kommen wir zu dem Sinn dieses Threads, für Medieval 2 war er nur als kleine Hilfestellung gedacht, bei Rome kann er helfen Fehler zu finden. Die oben aufgelisteten Fehler treffen auch für Rome zu, ergo wenn ihr bei einem Problem nicht weiterkommt, erst einmal schauen wo genau euer Spiel abstürzt. Hierbei ist es nicht egal ob der Fehler beim laden der Kampagne am Anfang, in der Mitte oder am Ende auftritt. Über die genaue Position des Absturzes, sei es nun ein CTD oder KTM, kann man die Fehlerursache einschränken.


    Ihr könnt euch natürlich auch einen "Modfolder" für Rome anlegen, somit bleiben die Originaldateien "sauber" und ihr könnt im Zweifelsfall einfach diesen Folder löschen und euer Spiel läuft wieder in den gewohnten Bahnen.
    Als kleiner Leitfaden:
    - erstellt euch einen neuen Ordner in \data\world\maps\campaign\ und nennt diesen Ordner, meinetwegen, my_campaign
    - kopiert euch den gesamten Ordner imperial_campaign in diesen Ordner
    - ebenfalls müsst ihr noch die Dateien aus dem base-Ordner nach my_campaign kopieren Wichtig: nicht den Ordner kopieren, sondern nur die gesamten Dateien!!!
    - jetzt legt ihr euch eine Kopie von imperial_campaign_regions_and_settlement_names.txt im Ordner text an und benennt diese um in my_ campaign_regions_and_settlement_names.txt
    Wichtig: diese Datei bleibt im Ordner text vom Original, ergo /data/ text/, NICHT in den Ordner my_campaign kopieren!!!


    Jetzt Rome testen, wenn alles läuft, könnt ihr nun anfangen euch, meinetwegen, eine neue Karte einzubauen.


    Um einige Fehler von vornherein ausschliessen zu können, möchte ich hier ein paar Tipps auflisten:


    - als erstes wie immer, legt euch Sicherungskopien an!!!


    - map_climates.tga
    Die Größe dieser Datei ist immer das doppelte von der map_regions.tga + 1 Pixel, bedeutet, wenn eure map_regions.tga 200 Pixel groß ist, dann muss eure map_climates.tga 401 Pixel groß sein.
    Diese Datei beinhaltet 12 Klimazonen, welche exakt durch RGB-Codes bestimmt sind, stellt also immer sicher das diese RGB-Codes genau sind:
    Sub-Arctic - Dark Green RGB(0, 166, 81 )
    Alpine - Green RGB(57, 181, 74 )
    Highland - Light Green RGB(141, 198, 63 )
    Swamp - Yellow RGB(255, 242, 0 )
    Deep Temperate Forest - Light Orange RGB(247, 148, 29 )
    Light Temperate Forest - Orange RGB(242, 101, 34 )
    Infertile Temperate Grassland - Red RGB(237, 28, 36 )
    Fertile Temperate Grassland - Dark Pink RGB(237, 20, 91 )
    Mediterranean - Pink RGB(236, 0, 140 )
    Semi-Arid - Blue RGB(0, 114, 188 )
    Sandy Desert - Dark Purple RGB(102, 45, 145 )
    Rocky Desert - Mauve RGB(146, 39, 143 )


    map_features.tga
    Die Größe der Datei ist die selbe wie die map_regions.tga!!!
    Diese Datei beinhaltet die Position von Vukanen, Flüssen und Kliffs, auch diese sind wiederum durch RGB-Codes genau definiert:
    River - Blue (0,0,255 )
    Volcano - Red (255,0,0 )
    Cliff - Yellow (255,255,0 )
    River Crossing - Light Blue (0,255,255 )
    River Source - White (255,255,255 )
    Wichtig: Flüsse können nicht diagonal über der Karte verlaufen!!! Wenn ihr eine Biegung einbauen wollt, müsst ihr erst ein Pixel nach unten setzen und dann das nächste Pixel nach rechts oder links.
    Es ist aber möglich Flüsse zu teilen oder einen Fluss in einen anderen münden zu lassen, dabei ist aber zu beachten das der Fluss nicht aus dem Nichts entsteht.


    map_ground_types.tga
    Diese Datei hat, wie die map_climates.tga die doppelte Größe der map_regions.tga + 1 Pixel!!!
    Es gibt 14 verschiedene Bodenarten/ Untergründe welche ebenfalls durch RGB-Codes vorgegeben sind:
    Fertile Low - Grey-Blue (0, 128, 128 )
    Fertile Medium - Light Green (96, 160, 64 )
    Fertile High - Olive (101, 124, 0 )
    Wilderness - Black (0, 0, 0 )
    Mountains High - Light Brown (196, 128, 128 )
    Mountains Low - Brown (98, 65, 65 )
    Hills - Olive-Brown (128, 128, 64 )
    Forest Dense - Dark Green (0, 64, 0 )
    Forest Sparse - Green (0, 128, 0 )
    Swamp - Bright Green (0, 255, 128 )
    Ocean - Dark Maroon (64, 0, 0 )
    Sea Deep - Dark Red (128, 0, 0 )
    Sea Shallow - Red (196, 0, 0 )
    Beach - White (0, 0, 0 )


    map_heights.tga
    In dieser Datei werden über Graustufen die unterschiedlichen Höhen der Karte bestimmt ( RGB - 100, 100, 100 ). Wobei gilt, je heller, desto höher dieser Abschnitt der Karte. Für den niedrigsten Punkt könnt ihr den RGB-Code 1, 1, 1 benutzen. Wichtig: benutzt niemals den RGB-Code 0, 0, 0 -den benutzt das Programm für Wasser !!!


    map_regions.tga
    Diese Datei dürfte den meisten bekannt sein, hier sind die Provinzen eingestellt mit den dazu gehörigen Städten und Häfen, ergo die Grenzen welche ihr im Spiel seht werden hier festgelegt.
    - Jede Region muss einen anderen RGB-Code habe, welcher aber frei wählaber ist. Also aufpassen das sich nichts überschneidet, ungewollt.
    Wichtig: jede Provinz muss eine Stadt haben, welche genau ein Pixel in dieser Datei darstellt!!! Ein Hafen hingegen bei den Küstenregionen ist nicht Pflicht.
    - RGB-Code für eine Stadt: 0, 0, 0 (Schwarz)
    Wichtig: dieses Pixel darf nicht an eine andere Region grenzen, so das diese berührt wird!!!
    - Häfen werden ebenfalls durch ein Pixel in dieser Datei dargestellt, hier ist, wie bei der Stadt, der RGB-Code vorgegeben: 255, 255, 255 (weiß)
    - Was auch noch wichtig ist bei der Erstellung einer Karte, die Landfläche muss größer sein als die Wasserfläche. Jedenfalls führten bei mir zu kleine Landflächen zum CTD. Möglich ist vielleicht eine 50 : 50 Verteilung als Minimum für die Landfläche.


    Das sollte erstmal reichen um die meisten unter uns zu verwirren. Wie gesagt, nehmt euch nur kleine Abschnitte vor, ändert diese und legt euch Sicherungskopien an. Falls dann doch mal was schief geht, könnt ihr immer auf eine eurer Sicherungskopien zurückgreifen und müsst nicht komplett von vorne anfangen, falls ihr den Fehler nicht findet.
    Viel Spaß beim modden, so wenig wie möglich Abstürze und was weiss ich... Euer Addi :hallo:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!