Hilken ZK 18000: Füllstand nach laden stimmt nicht

  • Hallo,


    ich habe ein Problem mit dem Hilken Anhängern. Wenn ich z.B. beim Hilken ZK18000 den Aufbau mit Plane auswähle, den Anhänger voll belade, dann speichere und den Spielstand wieder lade, hat der Anhänger statt der gespeicherten 19.000 Liter Inhalt nur noch 18.000 Liter. In der Vehicle.xml steht, dass der Anhänger 19.000 Liter Inhalt hat, geladen wird er aber Ingame mit 18.000 Liter. Lässt sich bei den anderen Anhängern, bei denen sich durch das Wechseln des Aufbaus die Kapazität verändern lässt, auch reproduzieren (z.B. bei dem Tridem).


    Frage: hat jemand anderes das Problem auch schon gesehen und eventuell eine Lösung? Ich nehme an, dass das Problem im Script liegt habe aber noch nicht dir richtige Stelle gefunden.


    Gruß
    Andreas

  • Hallo,


    nachdem ich mich jetzt etwas mit Materie auseinandergesetzt habe, ist auch klar was schief läuft. Problem ist, dass zuerst der Füllstand über die Funktion in der Fillable.lua gesetzt wird. Diese begrenzt den Wert in self.fillLevel auf den Wert der in self.capacity steht. Da die Kapazität des Wagens aber erst später entsprechend des Aufbaus angepasst wird und der eigentliche Wert im Savegame nicht noch mal geladen wird, bleibt die fillLevel auf dem Wert der der in der Fillable.lua gesetzt wurde. Abhilfe habe ich jetzt geschaffen in dem ich in der VariableBody.lua die Funktion VariableBody:loadFromAttributesAndNodes etwas verändert habe:


    [lua]function VariableBody:loadFromAttributesAndNodes(xmlFile, key, resetVehicles)
    if not resetVehicles then
    local fillLevel = getXMLFloat(xmlFile, key.."#fillLevel");
    local idx = Utils.getNoNil(getXMLInt(xmlFile,key.."#varBody.activeIdx"),1);
    if idx > table.getn(self.varBody.nodes) then
    idx = 1;
    end;
    local idx2 = Utils.getNoNil(getXMLInt(xmlFile,key.."#varBody.activeSubIdx"),1);
    if idx2 > table.getn(self.varBody.nodes[idx].parts) then
    idx2 = 1;
    end;
    self:changeVariableBody(idx, idx2, true);
    self:setFillLevel(fillLevel, self.currentFillType);
    end;
    return BaseMission.VEHICLE_LOAD_OK;
    end;[/lua]


    Dadurch wird der aktuelle Wert noch mal aus dem Savegame geladen und entsprechend gesetzt.


    Vielleicht kann sich ja mal einer der Skriptexperten dazu äußern ob diese Vorgehensweise eher :thumbsup: oder eher :thumbdown: ist ;) !


    Gruß
    Andreas

Jetzt mitmachen!

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