Gelöst: Logmate - LUA-Debugging lässt sich nicht aktivieren!


Abonniere unseren Kanal auf WhatsApp (klicke hier zum abonnieren).
  • Hallo Zusammen,


    wie der Titel schon sagt, bekomme ich im Logmate das Debugging für LUA nicht gestartet. Genauer gesagt bekomme ich keine "print"-Anweisungen aus dem Script angezeigt.
    Laut diversen (übereinstimmenden) Quellen im Internet müssen beim Start der railworks.exe folgende Schalter mitgegeben werden,
    -LogMate -SetLuaFilters="All" -lua-debug-messages
    um LUA-print Befehle im Logmate anzuzeigen. Ich habe diese Optionen sowohl in einer Windows Verknüpfung, als auch in Steam in den Startoptionen eingetragen (sollte ja prinzipiell eh das gleiche sein).
    Zu Testzwecken habe ich nur bei einer Anweisung, die definitiv ausgeführt wird, ein "print("Test!");" vor den funktionierenden "Syscall" gepackt. Es erscheint aber keine Ausgabe "Test!" im Logmate. Die normalen Log Inhalte sind natürlich vorhanden.
    Was mache ich hier falsch? *nurbf*


    Danke schonmal für Eure Hilfe.


    Grüße


    -setter-

    resistance is futile!!!

    Einmal editiert, zuletzt von -setter- () aus folgendem Grund: Typo

  • Laut diversen (übereinstimmenden) Quellen im Internet müssen beim Start der railworks.exe folgende Schalter mitgegeben werden,-LogMate -SetLuaFilters="All" -lua-debug-messages

    Ich kenne nur "-SetLogFilters"

    Egal, wie weit Draußen man die Wahrheit über Bord wirft, irgendwann wird sie irgendwo an Land gespült.

  • @Prelli:
    Danke Schonmal für die Korrektur...ich hatte die info mit dem "SetLuaFilters=..." von hier.


    Jetzt (mit der Option "SetLogFilters=...") habe ich jede Menge neue Reiter im LogMate.
    Das Dumme ist nur , das meine Testausgabe leider auch hier beim erfolgten Syscall (im Reiter "all") nicht auftaucht :( .


    das ganze sieht ungefähr so aus:

    C
    function OnEvent ( event )	
            if ( event ) == "Audiodatei"	then							
    		print ("MEIN DEBUG TEXT!")
    		SysCall ( "ScenarioManager:PlayDialogueSound", "Audiodatei.wav" );
    	end
    end

    Und beim Auslösen des Events "Audiodatei", wird korrekt die Datei "Audiodatei.wav" abgespielt, aber der gewünschte Text erscheint (auch nicht im erweiterten) Log.


    Irgendetwas ist da immer noch Krumm *ka*


    -setter-

  • @StS: Wenn ich jetzt "print" durch "Debugprint" ersetze, bekomme ich ausser einer Fehlermeldung im Logmate (die vorher nicht da war) nichts neues zu sehen (DIe Fehlermeldung war irgendetwas mit "Error...Global 'Debugprint'..." (genaueres müsste ich heute Abend nochmal schauen). Das klang für mich so als ob der Interpretor mit dem genannten Befehl gar nichts anfangen kann.
    Ich habe dann nochmal weitergestöbert und egal in welchen Foren, Blogs oder im Rail-sim Wiki (LUA-Tutorial#1 - ziemlich weit unten), ist es mit dem Befehl print ("Welcher Text auch immer hier steht!") umgesetzt.
    Bei den meisten Beispielen wurde eine Funktion Eingebaut, um das Debugging leicht ein und ausschalten zu können. Die Ausgabe selbst erfolgt aber immer mit dem print ().
    Hier ein Beispiel:



    Prinzipiell sollte es aber keine Rolle spielen, ob ich die Debugmeldung in eine Funtkion packe oder direkt per print() aufrufe.
    Hat keiner noch eine andere Idee warum im LogMate nichts angezeigt wird?


    Grüße


    -setter-

  • @StS: Danke, die Lösung war zwar versteckt (ich habe "print" statt "Print" geschrieben) - der Interpreter nimmt es scheinbar sehr genau - *shau*
    Nichts desto trotz hättest Du mir das ja auch einfach sagen können...ich vertrage Kritik durchaus :)
    Das ändert aber nichts an der Tatsache, das in Deinem, wie in meinem Beispielscript, die Funktion "function PrintDebug ( message)" völlig unabhängig vom richtigen Aufruf des "Print ()" Befehls erst im Script erzeugt wird und für reine Testzwecke nicht benötigt wird (Gerade selbt erfolgreich getestet).


    Also für alle nochmal die korrekte Lösung:


    Die richtigen Schalter zum starten des TS: -LogMate -SetLogFilters="All" -lua-debug-messages


    der Aufruf des "Print" Befehls muss mit großem "P" und kleinem "rint" erfolgen!


    Die Ausgabe des Befehls "Print ();" ist im Reiter Allgemein sichtbar.


    Danke


    -setter-

  • Das war keine Kritik, ich hab mich nur an diesen Skript erinnert, der nicht von mir ist.
    Graue Zellen sagten mir, das muss irgendwie Initialisiert werden. Da viel mir dieser Skript wieder ein.
    Ob das so geht oder nicht, so weit gehen mein Wissenstand nicht.
    Gut das das so einfach war.
    StS

    Keine Hilfe und Auskunft per PN, da meist von allgemeinem Interesse. Diese Fragen bitte im Forum stellen.

  • @StS ich habe das auch nicht negativ aufgefasst :)
    Im Gegenteil, wenn du meinen syntaktischen Fehler nichtmal gesehen hast, bin ich um so Dankbarer, das Du überhaupt Hilfestellung gegeben hast.
    Ich könnte mich sowieso beissen, das ich es nicht Einfach mal mit einem großen "P" versucht habe, sondern mehrere Stunden damit vergeudet habe den Fehler woanders zu suchen.
    Jetzt kann ich auch endlich das Eigentliche Problem in meinem Script debuggen.
    Wenn das dann alles mal klappt, werde ich es auch hier Zeigen.
    Mehr wird (noch) nicht verraten :D


    Nochmals Danke


    grüße


    -setter-


    PS: Ich denke hier kann dann auch Zu, da das Thema geklärt ist. *closed*


    Anmerkung Auf Wunsch des Thread-Erstellers geschlossen *closed* /BlueAngel