Es wird immer das jüngste Fahrzeug repariert. Und das immer und immer wieder. Definitiv ein Bug...
Gut, dann mache ich da wohl doch nichts falsch. Ausschließen möchte ich sowas ja nie 
Ich habe einfach nach jedem Fahrzeuggkauf einen Dummy-LKW oder -Bus gekauft, der auf ner kurzen Linie fährt, sodass die Folgen, wenn Ladung verloren geht, etwas abgemildert werden.
Hm, da hätte ich auch drauf kommen können. Mal sehen, vielleicht kann man am Script was schrauben, dass die Logik wieder passt.
Muss echt sagen, dass ich die Mission sch**** fand. Hab diesen Thread vorher nicht gelesen und hab mir nen Wolf geärgert mit Verkehr, dem Leute zum Cafe gurken, Reparier-Bug und letztendlich mit Schiffen, die einfach machen was sie wollen, Ladung nicht mitnehmen und anderthalb Jahre für nen Umlauf brauchen....
Ich gehe erstmal immer ohne Vorkenntnisse in eine Mission rein. Ist ja auch sonst langweilig. Nur wenn ich eine Aufgabe nicht erfüllen kann, schaue ich nach bzw. frage hier dezent nach. Will ja keine Lösung haben, nur Tipps. Generell fand ich die Mission aber sehr gut machbar – wenn man auf die Medaillen verzichten kann.
[Edit: möglicher Fix ungetestet]
Natürlich nicht als ganze Datei, sondern wie zuletzt als Quellcode zum selber einpflegen. Möchte da keinen Ärger mit UG bekommen.
if (toolsProduced >= taskParams.tools) then
local oldest = 0
local offset = 0
local purchase = 999999999
local vehicleAge = 0
local vehicles = game.interface.getVehicles() -- hole alle Fahrzeuge
for i = 1, #vehicles do -- Schleife über alle Fahrzeuge
local vehicle = game.interface.getEntity(vehicles[i]) -- wähle ein spezielles Fahrzeug aus
for v = 1, #vehicle.vehicles do -- Teilfahrzeuge vom Fahrzeug (Multiunit?)
-- Bestimme das Alter des Fahrzeugs in Tagen
-- Abfrage ist fehlerhaft; purchase wird nie neu gesetzt → immer das zuletzt gekaufte Fahrzeug aus der Liste wird so gewählt
--if (vehicle.vehicles[v].purchaseDate.year * 365 + vehicle.vehicles[v].purchaseDate.month * 30 + vehicle.vehicles[v].purchaseDate.day) < purchase then
vehicleAge = vehicle.vehicles[v].purchaseDate.year * 365 + vehicle.vehicles[v].purchaseDate.month * 30 + vehicle.vehicles[v].purchaseDate.day
if vehicleAge < purchase then
-- Fahrzeug ist älter als das bisher älteste Fahrzeug
oldest = vehicle.id -- id des aktuellen Fahrzeugs
offset = v -- welcher Fahrzeugteil (?)
purchase = vehicleAge -- setze Alter auf Fahrzeugalter
end
end
end
if oldest ~= 0 then
local fixVehicle = game.interface.getEntity(oldest)
local vehiclePart = fixVehicle.vehicles
vehiclePart[offset].purchaseDate = nil
game.interface.replaceVehicle(oldest, vehiclePart)
end
task.getUserState().periodToolsProduced.value = task.getUserState().periodToolsProduced.value + taskParams.tools
end
Alles anzeigen
Wenn ich keinen Logikfehler habe, dann sollte hier jetzt immer das älteste Fahrzeug gewählt werden. Ich kann den Code aktuell nicht testen, also bitte mit Vorsicht genießen. Wer ihn getestet hat, möge mir oder hier eine Rückmeldung geben.