Beiträge von JoPi98

    Das kann man nicht so genau sagen. Es kommt immer auf die Größe, Detailgrad, ... des Modells an. Je größer und detailreicher ein Modell ist, desto mehr arbeit macht dann auch das Texturieren. Dann gibts Modelle, an denen kann viel animiert, eingebaut, ... werden. Wenn man dann noch Skripte benötigt, muss man entweder darauf warten oder sich welche schreiben. Wenn unvorhergesehene Fehler auftreten, können diese einem auch einen Strich durch die Rechnung machen. Auch Zeit und Lust spielen hier eine große Rolle.
    Alles in allem kostet es viel Zeit und Gedullt.

    Am einfachsten ist es, wenn du dir das Rübenlager anschaust und hier die fillTypes "sugarBeet" duch "fertilizer" ersetzt. Dann müsstest du noch die Plane anpassen. Danach kannst du dort Dünger einlagern und mit der Schaufel wieder entnehmen.

    Wenn du Skripte über die register.lua in andere Geräte implementierst, dann kann man die l10n Texte nicht so einfach übernehmen.


    Das ganze lässt sich aber wie folgt ändern.
    Als erstes müssen die l10n Texte in der register.lua aufgerufen werden.
    [lua]function ManualHydraulics_Register:loadMap(name)
    if self.firstRun == nil then
    -- weitere Einträge
    self.texts = {};
    self.manHyd_fp = g_i18n:getText("MANHYD_fp");
    -- und dann die restlichen l10n Texte nach dem gleichen Prinzip
    end;
    g_currentMission.manualHydraulics = self;
    end;[/lua]


    Jetzt müssen die Texte noch in der ManualHydraulics.lua aufgerufen werden:
    Folgendes:
    [lua]g_currentMission:addHelpButtonText(g_i18n:getText("MANHYD_fp"), InputBinding.MANHYD_fp);[/lua]
    muss durch
    [lua]g_currentMission:addHelpButtonText(g_currentMission.manualHydraulics.texts.manHyd_fp, InputBinding.MANHYD_fp);[/lua]
    ersetzt werden.
    Das ganze müsstest du dann auch noch mit den anderen Einträgen machen.


    Ich hoffe, du verstehst was ich da gemacht habe, wenn nicht, dann versuche ich es dir noch besser zu erklären.

    Du solltest dir angewöhnen die ganze log. anzuhängen, denn dein geposteter Auszug kann von so ziemlich jedem Skript kommen...da müsste man schon hellsehen können, um das Problem zu lösen... ;)

    Der Fehler kommt von der InteractiveControlPanel.lua. Füg ganz unten mal folgendes hinzu:
    [lua]-- Numbered Button
    OverlayNumberedButton = {};
    local OverlayNumberedButton_mt = Class(OverlayNumberedButton);


    function OverlayNumberedButton:new(overlay, number, onClick, target, disabledColor)
    local disabledColor = disabledColor;
    if disabledColor == nil then
    disabledColor = {0.8, 0.8, 0.8, 0.4};
    end;
    return setmetatable( {overlay=overlay, number=number, onClick=onClick, target=target, isDisabled=false, disabledColor=disabledColor}, OverlayNumberedButton_mt);
    end;


    function OverlayNumberedButton:delete()
    self.overlay:delete();
    end;


    function OverlayNumberedButton:mouseEvent(posX, posY, isDown, isUp, button)
    local isOver = posX >= self.overlay.x and posX <= self.overlay.x+self.overlay.width and posY >= self.overlay.y and posY <= self.overlay.y+self.overlay.height;
    if not self.isDisabled and isOver then
    self.overlay:setColor(1.0, 1.0, 1.0, 1.0);


    if isDown and button == Input.MOUSE_BUTTON_LEFT and self.onClick ~= nil then
    if self.target ~= nil then
    self.onClick(self.target, self.number);
    else
    self.onClick(self.number);
    end;
    end;


    else
    self:reset();
    end;
    end;


    function OverlayNumberedButton:render()
    self.overlay:render();
    end;


    function OverlayNumberedButton:setIsDisabled(isDisabled)
    if self.isDisabled ~= isDisabled then
    self.isDisabled = isDisabled;
    self:reset();
    end;
    end;


    function OverlayNumberedButton:reset()
    if self.isDisabled then
    self.overlay:setColor(unpack(self.disabledColor));
    else
    self.overlay:setColor(1.0, 1.0, 1.0, 0.8);
    end;
    end;[/lua]


    Das sollte den Fehler beheben.

    Schön, dass der Krone Emsland jetzt doch im Pack ist (ich finde diese kleinen Maschinen einfach schöner als die großen)! :thumbup:


    PS. Habt ihr das Greiferskript auch im Bezug auf die Fixierung der Baumstämme in der Zange optimiert oder wieso funktioniert es jetzt doch mit zwei Baumstämmen im Greifer? :huh:

    Das mit dem Tagebuch scheint interessant zu werden, man kann so den Fortschritt auch besser nachvollziehen. :)
    Wird das Tagebuch eigentlich wöchentlich, etc. aktualisiert oder nur wenn ihr auch ein Update bringt?

    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