• Ich hab mir die Tage für den Case Puma CVx 160 das GasLimiterscript mit der Register.lua umgebaut dass ich die in allen Fahrzeugen drin hab. Das Funktioniert auch soweit.
    Jetzt hab ich jedoch 2 Probleme,
    1. Der Fehler mit dem Text, da muss ich bestimmt noch was in der Register.lua ändern damit das angezeigt wird
    und
    2. Ich kann das Script mit dem Standgas nur bedienen wenn ich mit der Auswahl aufn Schlepper bin, das Problem ist wenn ich beim Puma was ankuppel komm ich perdu nicht mehr auf die Schlepperauswahl. Da muss denke ich bestimmt das Gaslimiter.lua Script nochmal umgeschriben werden damit das auch funktioniert wenn ich z.B. aufm Gewicht als aktuelle Auswahl bin.


    LG

  • Zu Problem 1: Ich würde dir empfehlen mal as Helfertoolsskript anzuschauen, da ist es mMn am besten gelöst. Dort wird in dem Hauptskript mit einer Variable gearbeitet, welche dann in der register.lua auf den l10n Text zugreift. Wie das jetzt genau gemacht ist, ist schwer zu erklären, am besten einfach mal nachschauen. Solltest du dennoch Probleme damit haben, kannst du auch gerne nochmal nachfragen.


    Zu Problem 2: Füge in
    [lua]function Speziname:update(dt)[/lua]
    mal folgendes ein
    [lua]if self:getIsActiveForInput(false) then[/lua]
    denn dann kannst du das Skript auch ohne selektierten Traktor nutzen.


    Solltest du das nicht wollen, müsstest du dem Traktor das "Selectable Skript" hinzufügen (zu finden auf Modhoster), dann lässt er sich wieder auswählen.


    Ich hoffe, dass ich dir hiermit helfen konnte. :)

  • Ne, Helfertools gibt es für LS 13 im ModHub.
    Ich versuche es dir aber mal hier zu erklären.


    Als erstes setzt du dort wo dein Skript den Text aufruft, das wäre
    [lua]g_currentMission:addExtraPrintText(string.format(g_i18n:getText("GasLimiter_controls"), self.typeDesc) .. " " .. InputBinding. getKeyNamesOfDigitalAction(InputBinding.mehrRPM) .. "/" .. InputBinding.getKeyNamesOfDigitalAction(InputBinding.wenigerRPM));[/lua]
    die die Variable ein, damit du sie in der register.lua aufrufen kannst.
    Das sieht dann so aus:
    [lua]g_currentMission:addExtraPrintText(g_currentMission.gasLimiter.texts.controls) .. " " .. InputBinding. getKeyNamesOfDigitalAction(InputBinding.mehrRPM) .. "/" .. InputBinding.getKeyNamesOfDigitalAction(InputBinding.wenigerRPM));[/lua]


    Nun musst du in der register.lua folgenden Code in
    [lua]function gasLimiter_Register:loadMap(name)[/lua]
    unter
    [lua]for k, v in pairs(VehicleTypeUtil.vehicleTypes) do
    ...
    end;[/lua]
    einfügen.
    Der Code sieht so aus:
    [lua]self.texts = {}
    self.texts.controls = g_i18n:getText("GasLimiter_controls");[/lua]


    Es sollte dann etwa so aussehen:
    [lua]function gasLimiter_Register:loadMap(name)
    if self.firstRun == nil then
    ...
    for k, v in pairs(VehicleTypeUtil.vehicleTypes) do
    ...
    end;
    self.texts = {}
    self.texts.controls = g_i18n:getText("GasLimiter_controls");
    end;
    end;[/lua]


    Jetzt musst du noch folgendes hinzufügen
    [lua]g_currentMission.gasLimiter = self;[/lua]
    damit die register.lua weiß, was anstatt
    [lua]self[/lua]
    in deinem Hauptskript genutzt wird.
    Dies fügst du zwischen die zwei untersten
    [lua]end;[/lua]
    des Bereichs
    [lua]function gasLimiter_Register:loadMap(name)[/lua]
    ein.


    Sollte dann etwa so aussehen:
    [lua]function gasLimiter_Register:loadMap(name)
    ...
    self.texts = {}
    self.texts.controls = g_i18n:getText("GasLimiter_controls");
    end;
    g_currentMission.gasLimiter = self;
    end;[/lua]


    Ich hoffe, dass man das so verstehen kann. :D

Jetzt mitmachen!

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