• Hallo ich habe jetzt mal was im IC_Button Script umgeschrieben ich will das man per IC Schneidwerk anmachen kann und wieder ausmachen kann und jetzt ist das Problem ich kann es anmachen aber nicht aus. Vielleicht kann ja wer helfen?


    So sieht es bis jetzt aus.


    [lua]function Button:doAction(noEventSend, forceAction)
    if self.vehicle ~= nil then
    if self.event == "toggleBeaconLight" then
    if forceAction == nil then
    if self.vehicle.beaconLightsActive then
    self.vehicle:setBeaconLightsVisibility(false, true);
    else
    self.vehicle:setBeaconLightsVisibility(true, true);
    end;
    end;
    elseif self.event == "toggleFrontLight" then
    if forceAction == nil then
    if self.vehicle.lightsTypesMask == 0 then
    self.vehicle:setLightsTypesMask(1, true);
    elseif self.vehicle.lightsTypesMask == 1 then
    self.vehicle:setLightsTypesMask(0, true);
    elseif self.vehicle.lightsTypesMask == 2 then
    self.vehicle:setLightsTypesMask(3, true);
    elseif self.vehicle.lightsTypesMask == 3 then
    self.vehicle:setLightsTypesMask(2, true);
    end;
    end;
    elseif self.event == "toggleIndoorLight" then
    if forceAction == nil then
    local state = not self.vehicle.cl.turnOn;
    self.vehicle:setCablight(state, true);
    end;
    elseif self.event == "toggleCutter" then
    if forceAction == nil then
    local state = not self.vehicle.cl.turnOn;
    self.vehicle:setIsTurnedOn(state, true);
    end;
    elseif self.event == "toggleWarningLights" then
    if forceAction == nil then
    if self.vehicle.turnSignalState == 3 then
    self.vehicle:setTurnSignalState(0);
    else
    self.vehicle:setTurnSignalState(3);
    end;
    end;
    end;
    end;
    end;[/lua]


    Das mit toggle cutter ist das was ich jetzt geändert habe. Und vielleicht kann ja wer helfen.



    MfG :thumbsup:

  • Nunja, du übergibst ja auch den Status vom Cablight.
    Heißt im Normalfall wenn dein Cablight an ist, dann solltest du dein Cutter auch ausschalten können.


    Wenn ich jetzt nicht ganz faslch liege, sollte es so klappen:


    [lua] elseif self.event == "toggleCutter" then
    if forceAction == nil then
    if self.vehicle:getIsTurnedOnAllowed(not self.isTurnedOn) then
    self.vehicle:setIsTurnedOn(not self.isTurnedOn, true);
    end;
    end;
    [/lua]


    Ich prüfe jetzt aber nur ob anschalten erlaubt ist, getIsTurnedOnAllowed() , im LS13 gab es noch getIsStartThreshingAllowed() ,das finde ich aber in der aktuellen Script Docu nicht mehr. Kann also sein, das es jetzt nur mit getIsTurnOnAllowed() eventuell zu einem Konflikt kommt. Kann ich so aber nicht sagen, das musst du einfach mal testen.

  • In Zeile 100 ist der gleiche Fehler wie auch im ersten geposteten Abschnitt, wegen dem cablight.


    Ändern in:
    [lua] if self.event == "toggleCutter" then
    self.isOpen = self.vehicle.isTurnedOn;
    [/lua]


    Und ich glaube auch in dem von mir gepostetem Abschnitt ist noch ein Fehler, da wo du den Cutter eingetragen hast, das muss glaube ich so aussehen:
    [lua] elseif self.event == "toggleCutter" then
    if forceAction == nil then
    if self.vehicle:getIsTurnedOnAllowed() then
    self.vehicle:setIsTurnedOn(not self.vehicle.isTurnedOn, true);
    end;
    end;
    [/lua]


    Dort hatte ich nur stehen self.vehicle:setIsTurnedOn(not self.isTurnedOn, true), da muss aber meine ich noch das vehicle. dazwischen.
    Also beide Abschnitte in bei dir ersetzen und testen.

  • Entweder auf false oder gar nicht hinschreiben. Es definiert ob es ein Event auslöst, sprich ob es im MP die Aktion an alle anderen Spieler sendet.



    Hmmmm... Eigentlich ja, aber...
    [lua]function TurnOnVehicle:setIsTurnedOn(isTurnedOn, noEventSend)
    if isTurnedOn ~= self.isTurnedOn then
    SetTurnedOnEvent.sendEvent(self, isTurnedOn, noEventSend)
    self.isTurnedOn = isTurnedOn;
    if self.isTurnedOn then
    self:onTurnedOn(noEventSend);
    else
    self:onTurnedOff(noEventSend);
    end;
    end;
    end; [/lua]


    isTurnedOn ist ~= set.isTurnedOn, somit wird das Event gesendet. Bei onTurnedOn brauchst du es nicht, da dies weder in der TurndOnVehicle.lua noch in der Combine.lua ein Event senden soll.


    Aber ins Grübeln hast du mich jetzt doch gebracht...

  • Im Event selbst wird bestimmt, ob es weitergeleitet wird oder nicht.


    [lua]
    function SetTurnedOnEvent.sendEvent(vehicle, isTurnedOn, noEventSend)
    if isTurnedOn ~= vehicle.isTurnedOn then
    if noEventSend == nil or noEventSend == false then
    if g_server ~= nil then
    g_server:broadcastEvent(SetTurnedOnEvent:new(vehicle, isTurnedOn), nil, nil, vehicle);
    else
    g_client:getServerConnection():sendEvent(SetTurnedOnEvent:new(vehicle, isTurnedOn));
    end;
    end;
    end;
    end;
    [/lua]


    Übergibst du true, wird kein Broadcast ausgelöst :)

  • Guten Abend zusammen! Hier würde ich glatt mal nach fragen wollen da ich ein ähnliches Problem besitze.


    Zapfwellen-Betrieb (PTO) ein/ausschalten über IC.


    Funktion ist soweit gegeben,nur leider bleibt der "Sound" des angehängten Gerätes (Presse,Ladewagen ect.) an.
    Ich muss nun 2 mal "B" drücken,dann ist alles i.o.


    Kann man da irgendetwas machen dieses Problem in den Griff zu bekommen?
    Zu meinem entsetzen,haben mich die vorigen Beiträge nicht zum Ziel gebracht!


    Anbei mal die Lua und die Log!


    Schönen Abend noch!

Jetzt mitmachen!

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