Füllstandsanzeige für Anhänger

  • Hallo Ihr Spezialisten,


    ich hätte da mal eine ( oder mehrere )Frage(n). Ich möchte mir gern in meine Silagewagen eine Füllstandsanzeige einbauen so wie (oder ähnlich) es bei einigen Dreschern der Fall ist. Da ich vom Scripten eigentlich nicht viel Ahnung habe könnt ihr Euch sicherlich vorstellen dass ich dann damit auch gescheitert bin. Ich gebe mich aber nicht geschlagen und hoffe nun auf Eure Hilfe. In meinen ersten Versuche habe ich die Zeilen aus der Lexion770 Lua kopiert in in die Trailer-Lua kopiert, und zwar dorthin:


    [lua]
    --[[function Trailer:readUpdateStream(streamId, timestamp, connection)
    end;
    function Trailer:writeUpdateStream(streamId, connection, dirtyMask)
    end;]]
    function Trailer:update(dt)
    local prozent = self.grainTankFillLevel/self.grainTankCapacity*100;
    if prozent > 0 then
    renderText(0.78, 0.84, 0.02,""..string.format("LEXION 770: %.0f (%d%%)", self.grainTankFillLevel-1, prozent).."");
    end;
    end;


    function Trailer:updateTick(dt)
    --### trailer unloading


    if self.tipState == Trailer.TIPSTATE_OPENING or self.tipState == Trailer.TIPSTATE_OPEN then
    [/lua]


    Ich habe die Angabe "grainTank" weggelassen da es sich ja um einen Trailer handelt. Dieser Eintrag führte dann dazu dass ich zwar den Trailer kaufen konnte aber das Spiel sich dann aufhängte und in der log einen :Lua: Error running function: update ... attempt to perform arithmetic on" Fehler anzeigte.


    Könnte mir vielleicht jemand weiterhelfen?


    Gruß


    flenssam


    So ist das im Leben. Mal verliert man, mal gewinnen die anderen. Denn wenn man schon kein Glück hat kommt immer noch ein wenig Pech dazu.

  • Hey,


    ich hatte das auch schon geändert ("Ich habe die Angabe "grainTank" weggelassen") leider ohne Erfolg. Ich bin mir ja auch nicht sicher dass es überhaupt in die -function Trailer:update- gehört :S


    So ist das im Leben. Mal verliert man, mal gewinnen die anderen. Denn wenn man schon kein Glück hat kommt immer noch ein wenig Pech dazu.

  • hmm im Update Teil stimmt eig schon nur andere Frage self.fillLevel stimmt auf jedenfall für anhänger self.grainTankFillLevel ist nur bei Anhänger, aber in welches Script hast du den den Scriptteil reinkopiert weil sollte es in einem anderen oder einzelnen Script sein brauchste ja noch das Trailer.lua Script das er die Variable findet müsste eig ganz oben im Script ne Zeile sein.

  • eine Frage noch, willst nur du die Füllstandsanzeige sehen, oder alle MP teilnehmer?


    Ich kenne das script von dem Drescher jetzt nicht, aber ich glaube das macht es für alle sichtbar wieviel der Drecher hat.
    Wenn man nun in einer Zugmaschiene sitzt, kann man mit der Zeile
    [lua]local f,c = self:getAttachedTrailersFillLevelAndCapacity();
    [/lua] werte des Hängers abfragen


    f ist dann der aktuelle Füllstand, und c ist die Ladekapazität


    Wenn man das nun in einem Zugfahrzeug scriptet, müsste es theoretisch den Füllstand von jedem Hänger bzw Gerät anzeigen.

  • Hey,


    also meine Überlegung ist folgende: da ich die meiste Zeit im SP spiele benutze ich zum Bsp zum abfahren des Getreides oder auch zum Maishäckseln den AFH. Das funtzt so weit auch super. Das ärgerliche am AFH ist aber dass er sich das eine und andere Mal in irgendwelchen Bäumen aufhängt oder, beim Maisfahren vorgekommen, den Entladetrigger verpasst hat. Mit einer Füllstandsanzeige für Anh. kann ich immer kontrollieren ob der AFH seine Route fährt, bei längerem Stillstand der Anzeige kann ich das ggf. dann korrigieren. Die Anzeige des AFH erscheint ja auch nur dann wenn er im Verkehr fest steckt. Ebenso macht es für mich Sinn wenn ich den Häcksler selbst fahre zu sehen wie voll ist der Anh. des Abfahrers so dass ich ihn z.B schon früher abfahren lasse bevor er wieder in den Bäumen dreht. Ich hoffe Ihr versteht was ich meine. Ich glaube auch dass hier ne' ganze Menge User sind die so ähnlich denken wie ich. :rolleyes:


    So ist das im Leben. Mal verliert man, mal gewinnen die anderen. Denn wenn man schon kein Glück hat kommt immer noch ein wenig Pech dazu.


  • hmm im Update Teil stimmt eig schon nur andere Frage self.fillLevel stimmt auf jedenfall für anhänger self.grainTankFillLevel ist nur bei Anhänger, aber in welches Script hast du den den Scriptteil reinkopiert weil sollte es in einem anderen oder einzelnen Script sein brauchste ja noch das Trailer.lua Script das er die Variable findet müsste eig ganz oben im Script ne Zeile sein.




    Also ich habe es in die Trailer Lua kopiert, das war für mich jetzt am logischsten... :whistling:


    Update:


    So, habe das nochmals in die trailer Lua kopiert, jetzt erfolgt folgende Fehlermeldung in der Log...[infobox]...Documents/My Games/FarmingSimulator2011/mods/B_Joskin_Silospace/Scripts/Trailer.lua(612) : 'end' expected (to close 'function' at line 510) near ''[/infobox]
    Und so sieht die Lua im Moment aus:[lua]
    --[[function Trailer:readUpdateStream(streamId, timestamp, connection)
    end;
    function Trailer:writeUpdateStream(streamId, connection, dirtyMask)
    end;]]
    function Trailer:update(dt)
    local prozent = self.FillLevel/self.Capacity*100;
    if prozent > 0 then
    renderText(0.78, 0.84, 0.02,""..string.format("Joskin Silospace: %.0f (%d%%)", self.FillLevel-1, prozent).."");
    end;
    end;


    function Trailer:updateTick(dt)
    --### trailer unloading


    if self.tipState == Trailer.TIPSTATE_OPENING or self.tipState == Trailer.TIPSTATE_OPEN then


    [/lua]


    So ist das im Leben. Mal verliert man, mal gewinnen die anderen. Denn wenn man schon kein Glück hat kommt immer noch ein wenig Pech dazu.

    Einmal editiert, zuletzt von flenssam ()

  • Schau mal ob diese render-Zeile funzt:
    [lua]renderText(0.78, 0.84, 0.02, "Joskin Silospace: " .. tostring(self.FillLevel-1) .. "(" .. tostring(prozent) .. "%)");[/lua]


    Edit: hier haut es Strichpunkte in den Code, die da nicht hingehören. Am Ende der Zeile nur der letze ; (Strichpunkt), die anderen zwei davor löschen!

  • Ich hab den Eintrag in der Lua geändert, leider immer noch ohne Funktion. Der Fehler in der Log ist immer noch so wie im Infokasten.
    Ich habe die kompl. Lua als DateiAnh. beigefügt, ansonsten wäre sie zu groß.

    Dateien

    • Trailer.lua

      (23,45 kB, 170 Mal heruntergeladen, zuletzt: )


    So ist das im Leben. Mal verliert man, mal gewinnen die anderen. Denn wenn man schon kein Glück hat kommt immer noch ein wenig Pech dazu.

  • So, ich hab das gerade mal durchgeschaut. In der lua fehlt ein end; in Zeile 567 vor [lua]self.lastFillLevel = self.fillLevel;[/lua]


    Die Funktion selbst habe ich mir dann mal in einen Hilken eingebaut. Folgende Version funktioniert:
    [lua]function Trailer:update(dt)
    local prozent = self.fillLevel/self.capacity*100;
    if prozent > 0 then
    renderText(0.78, 0.84, 0.02, "Joskin Silospace: " .. tostring(math.floor(self.fillLevel-1)) .. " (" .. tostring(math.floor(prozent)) .. "%)");
    end;
    end;[/lua]


    Die Überzähligen zwei Strichpunkte am Ende der renderText-Zeile bitte wieder entfernen!
    Groß- bzw. Kleinschreibung bei fillLevel und capacity beachten! Das math.floor macht Ganzzahlen aus den Werten.

  • Hey,


    Vielen Dank für Eure Hilfe. :thumbsup: :thumbsup:


    Das ganze funktioniert Tadellos, genauso hatte ich es mir vorgestellt.


    webalizer super dass Du da nochmal draufgeschaut hattest, vielleicht könntest Du ja mal ein Tut ins Wiki ( vorausgesetzt Du möchtest es so weitergeben) schreiben, so geht es dann wenigsten nicht verloren.


    An die Moderatoren: ich denke wir können dann hier als gelöst schließen.


    Vielen Dank


    flenssam


    So ist das im Leben. Mal verliert man, mal gewinnen die anderen. Denn wenn man schon kein Glück hat kommt immer noch ein wenig Pech dazu.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!