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.
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.