Lichter per IC schalten!

  • Hi,


    ich hab mir den Lexion 770 von SFm bei Modhub gehold und da er kein Lichtscript hatte dieses verbaut und die Arbeitslichter wider per IC bedienbar gemacht, nun hab ich volgendes Problem ich würde gerne die Rul auch per IC steuern wie ichs bei einem meiner traktoren (selber gebaut) drinne habe, aber obwohl sich die betreffenden Lua´s sehr ähneln weis ich nicht wie ich was eintragen muss die sich die Einträge unterscheiden von der arte her.


    Im Anhang ist die InteractiveButtens.lua welche es zu ändern gild nur weis ich halt nicht wie cihs eintargen muss, kann mri da einer helfen? :)

  • Hi,


    Ich habe das im LS11 bei einer Selbstfahrspritze so eingetragen:


    Im Update Teil, st5eht es bei dir jetzt so:
    [lua] if self.vehicle ~= nil then
    if self.event == "togglePipe" then
    self.isOpen = self.vehicle.targetPipeState ~= 1;
    elseif self.event == "toggleWorkingLightFront" then
    self.isOpen = self.vehicle.B3["work"][1].a;
    elseif self.event == "toggleWorkingLightRear" then
    self.isOpen = self.vehicle.B3["work"][2].a;
    elseif self.event == "togglePipeLight" then
    self.isOpen = self.vehicle.B3["work"][3].a;
    elseif self.event == "toggleChopper" then
    self.isOpen = not self.vehicle.isStrawActive;
    end;
    end;
    [/lua]
    da noch das bei:
    [lua] elseif self.event == "toggleBeaconLights" then
    self.isOpen = self.vehicle.beaconLightsActive;
    [/lua]
    sieht dann so aus:
    [lua] if self.vehicle ~= nil then
    if self.event == "togglePipe" then
    self.isOpen = self.vehicle.targetPipeState ~= 1;
    elseif self.event == "toggleWorkingLightFront" then
    self.isOpen = self.vehicle.B3["work"][1].a;
    elseif self.event == "toggleWorkingLightRear" then
    self.isOpen = self.vehicle.B3["work"][2].a;
    elseif self.event == "togglePipeLight" then
    self.isOpen = self.vehicle.B3["work"][3].a;
    elseif self.event == "toggleChopper" then
    self.isOpen = not self.vehicle.isStrawActive;
    elseif self.event == "toggleBeaconLights" then
    self.isOpen = self.vehicle.beaconLightsActive;
    end;
    end;
    [/lua]


    Im unteren Teil, bei Button:doAction(noEventSend, forceAction) kopierst du das rein:
    [lua] elseif self.event == "toggleBeaconLights" then
    if self.vehicle ~= nil then
    if self.vehicle.beaconLightsActive then
    self.vehicle:setBeaconLightsVisibility(false);
    else
    self.vehicle:setBeaconLightsVisibility(true);
    end;
    end;
    [/lua]


    Einfach irgendwo zwischen den Elseif, am besten meinen Teil markieren und vor einem anderen Elseif einfügen...;)!


    Im LS11 musste ich bei der Spritze dann in der XML noch diese Zeile eintragen:

    XML
    <button name="beaconLight" mark="XXX" size="0.03" event="toggleBeaconLights" onMessage="LEXION_onMessage" offMessage="LEXION_offMessage" />


    Der Button Name, muss dabei den gleichen Namen wie in der Moddesc haben wo du den Text anlegst.



    Ob das ganze so im Ls13 funktioniert weiß ich nicht, da ich den Lexion noch nicht im Einsatz habe und auch nicht getestet habe.

  • Na das ist doch schön wenn es funktioniert.
    Zum Licht, da bin ich mir nicht sicher, da ich auch kein Fahrzeug habe wo ich es testen kann, musst du es halt selber mal testen...;)!


    Wie gehabt, im oberen Teil, dieses reinkopieren.
    [lua] elseif self.event == "toggleLight" then
    self.isOpen = self.vehicle.lightsActive;
    [/lua]
    Irgendwo vor ein anderes elseif, damit du mit dem end; nicht durcheinander kommst.


    im unteren Teil, musst du mal dieses hier versuchen:
    [lua] elseif self.event == "toggleLight" then
    if self.vehicle ~= nil then
    if self.vehicle.lightsActive then
    self.vehicle:setVisibility(light.realLight, false);
    else
    self.vehicle:setVisibility(light.realLight, true);
    end;
    end;
    [/lua]
    Aber ob es so geht, keine Garantie...!

  • hmm get nicht ich kann auf das butten klikken wie ich will das licht get net an und es kommt ein fehler in der Log. :(



    fals du dazu nichts weist wie mans beheben kann wir könntens auch erstmal mit dem warnblinker weiterversuchen und später hirdrauf zurück kommen. ;)

  • Sorry, deinen LOG Fehler Post habe ich nicht gesehen, hatte da grad selber geantwortet...!


    Versuch es bitte mal so, im unteren Teil, das "SetVisibility" ersetzen. Und zwar so:


    [lua] elseif self.event == "toggleLight" then
    if self.vehicle ~= nil then
    if self.vehicle.lightsActive then
    self.vehicle:onDeactivateLights();
    else
    self.vehicle:activateRealLights();
    end;
    end;
    [/lua]

  • Ähm, du hast im ersten Post geschrieben das du das Beleuchtungsskript eingebaut hast. Hast du da alle Lichter auf das Bel.Skript umgebaut? Oder hast du die eingetragenen die der Lexion hat drin gelassen???


    Ich kanns ja nicht testen, auf umbauen habe ich ehrlich gesagt auch keine richtige Lust, also wenn du mir den Lexion mal schicken könntest dann könnte ich da selber mal testen...!

  • Moin,


    ich denke RealLights ist die falsche Anlaufstelle.


    Ich würde das Ganze wiefolgt probieren :


    [lua]
    elseif self.event == "toggleLight" then
    self.isOpen = self.lightsState ~= 0;


    -----------------------------------------------------------------

    elseif self.event == "toggleLight" then
    if self.vehicle ~= nil then
    Steerable.setNextLightsState(self.vehicle);
    end;
    [/lua]


    Grüße

  • Hi,


    Fiat80-90DT hatte recht mit dem wie er es geschrieben hat, so geht es:


    Im oberen Teil muss es so stehen:


    [lua] elseif self.event == "toggleLight" then
    self.isOpen = self.vehicle.lightsState ~= 0;
    [/lua]


    im unteren Teil, wo der Status dann geprüft/geändert wird, muss es so stehen:
    [lua] elseif self.event == "toggleLight" then
    if self.vehicle ~= nil then
    Steerable.setNextLightsState(self.vehicle);
    end;
    [/lua]


    Du hast bei deinem jetzt nur ein Orginal eingetragenes Licht drin, Arbeitslichter hast du über BeleuchtungV31, ich denke, wenn du Arbeitslichter über das Standartskript laufen lässt, dann wird man die Lichter auch über den IC Button durchschalten können, also ein Klick, Fahrlicht geht an, 2.Klick, Arbeitslicht geht an usw. bis keine weiteren Lichter mehr vorhanden sind, dann gehen sie aus.


    Mit Warnblinker geht es auch, muss dann so eingetragen sein:
    [lua] elseif self.event == "toggleWarningLights" then
    self.isOpen = self.vehicle.B3.wl;
    [/lua]


    bzw.
    [lua] elseif self.event == "toggleWarningLights" then
    if self.vehicle ~= nil then
    if self.vehicle.B3.wl then
    self.vehicle:setState("warnlights", false);
    self.vehicle:setState("dirLeft", false);
    self.vehicle:setState("dirRight", false);
    else
    self.vehicle:setState("warnlights", true);
    self.vehicle:setState("dirLeft", true);
    self.vehicle:setState("dirRight", true);
    end;
    end;
    [/lua]


    ich habe dir das ganze geschickt, also musst du nix mehr ändern. Viel Spass damit...

  • jo danke ncohmal, du hättest nen preis verdient! :D :thumbup:


    ich wills nicht übertreiben aber wenns möglich ist warum sollte man nicht, also könnte man es so machen das man genau wie die Pipe auch das SW per Ic runter und hoch lassen, und an und abschalten kann? hab das schonmal bei nem drescher gesehen und find eifach genial, muss nicht sein wäre aber geil! ;)

Jetzt mitmachen!

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