Ich vermute, die Fahrzeugpannenberechnung gefunden zu haben. Folgendes findet sich im Script "player.script" im unteren Drittel:
foreach ($grid.lines.children()) {
foreach (.getVehicles()) {
$transportVehicle = current;
$vehicleData = MAIN.$gameData.$ownVehicles[.$id];
$vehicle = MAIN.$grid.getGridObject($vehicleData["name"]);
$maintenanceLevel = MAIN.$gameData.$maintenanceLevel[$vehicle.$type];
$targetCondition = 1.0 / (1.0 + $transportVehicle.travelDistance / (200000.0 * (0.1 + $vehicle.$reliability * 0.9) * (0.1 + $maintenanceLevel * 0.009)));
$vehicleData["condition"] = $transportVehicle.condition = $vehicleData["condition"] * 0.8 + $targetCondition * 0.2;
$vehicleData["monthlyInCome"] = $vehicleData["moneyEarned"];
$vehicleData["moneyEarned"] = 0;
$transportVehicle.attractiveness = $vehicle.$attractiveness * $vehicleData["condition"];
$vehicleData["travelDistance"] = $transportVehicle.travelDistance;
$vehicleData["passengersTransported"] = $transportVehicle.passengersTransported;
$vehicleData["yearlyProfit"] += $vehicleData["monthlyInCome"] + $vehicleData["fuelExpenses"] - int($data.$maintenanceLevel[$vehicle.$type] * $vehicle.$price * 0.0005);
}
}
Alles anzeigen
Das wird unter anderem im Event "mainClock.onMonth" ausgelöst. Interessant ist hier das:
$targetCondition = 1.0 / (1.0 + $transportVehicle.travelDistance / (200000.0 * (0.1 + $vehicle.$reliability * 0.9) * (0.1 + $maintenanceLevel * 0.009)));
$vehicleData["condition"] = $transportVehicle.condition = $vehicleData["condition"] * 0.8 + $targetCondition * 0.2;
Wenn ich richtig vermute, passiert hier folgendes. Es wird für jede Linie (foreach ($grid.lines.children()) und dort für jedes Fahrzeug (foreach (.getVehicles) so einiges berechnet. Profit, Attraktivität, gefahrene Kilometer und eben auch Zustand.
Bei jedem Aufruf dieses Events wird der Zustand neu berechnet - aus dem alten Zustand (der ist am Anfang, wenn man das Fahrzeug kauft auf 1 - vermutlich), der gefahrenen Kilometer und der Menge an Wartung, die man investiert.
Nun gibt mehrere Möglichkeiten, das Ausfallverhalten zu verändern. Entweder man cheatet und setzt "$targetCondition" schlicht auf 1.0. Dadurch sollte das Fahrzeug nicht altern. Oder man ändert die Konstanten.
Wenn man das in Excel ausprobiert, bekommt man nur minimalste Änderungen des Zustands. Wie z.B. 0,9992529508 bei 10km gefahrener Strecke, einer Verlässlichkeit von 60% (0,6) und einer Wartung von 50% (0,5). Da das aber bei jedem "Tick" weniger wird, kann das schnell weniger werden. Je nachdem wie schnell so ein "timeTick" verstreicht.
Man könnte einfach eine Null an die 200000 hängen, dann könnte die Ausfallhäufigkeit zehnmal kleiner sein. Oder man dividiert die gefahrenen Kilometer durch 10, das sollte den gleichen Effekt haben.
Blöderweise lässt sich die Ausfallrate schlecht testen, da das scheinbar zufällig ist. Da müsste man eben mal länger testen. Freiwillige??
Leider hab ich noch nicht die Logik gefunden, die das Fahrzeug eine Panne haben lässt. Dort könnte man vielleicht einfacher an den Schräubchen drehen.
Wie immer: Alles nur eine Vermutung - keine Garantie, dass das so funktioniert